xiaomianao666

小程序:dm盒子

Mar 6th, 2023
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@dm盒子@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiZG3nm5LlrZAiLCJhdXRob3IiOiJjeSIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjI5LCJjb2xfdHlwZSI6InRleHRfY2VudGVyXzEiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6InRvb2wiLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoi5b2x6KeGIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbmlmICghZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkge1xuICAgIG9yZ1NldHRpbmdzID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBmb250U2l6ZTogMjUsXG4gICAgICAgIGRtRnJvbTogJ+W3puWyuOWumOW8uScsXG4gICAgICAgIGRtU2NvcGU6ICdvdGhlcidcbiAgICB9KTtcbiAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJywgb3JnU2V0dGluZ3MpO1xufVxuZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuZm9udFNpemUgPSBkbVNldHRpbmdzLmZvbnRTaXplO1xuZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XG5kbVNjb3BlID0gZG1TZXR0aW5ncy5kbVNjb3BlO1xuc2VsZWN0QXJyYXkgPSBbJ+W3puWyuOWumOW8uScsICdmY+WumOW8uScsICfkuInmlrnmibbpo44nXTtcbmlmICghc2VsZWN0QXJyYXkuaW5jbHVkZXMoZG1Gcm9tKSkge1xuICAgIGRtRnJvbSA9ICflt6blsrjlrpjlvLknO1xuICAgIGRtU2V0dGluZ3MuZG1Gcm9tID0gJ+W3puWyuOWumOW8uSc7XG59XG5pZiAoZG1TY29wZSA9PSB1bmRlZmluZWQpIHtcbiAgICBkbVNjb3BlID0gJ290aGVyJztcbiAgICBkbVNldHRpbmdzLmRtU2NvcGUgPSAnb3RoZXInO1xufVxuc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicsIEpTT04uc3RyaW5naWZ5KGRtU2V0dGluZ3MpKTtcbi8vIOS4u+mhteWxleekulxubGV0IGVsID0gW107XG5pZiAoZ2V0SXRlbShcInJlYWRfcG9saWN5XCIpICE9PSBcIjFcIikge1xuICAgIGVsLnB1c2goe1xuICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD48Zm9udCBjb2xvcj0jODcxZjc4PuS7peS4i+aVsOaNruadpea6kOS6jue9kee7nO+8jOWmguaCqOWWnOasou+8jOivt+aUr+aMgeWumOaWuTwvZm9udD48L3NtYWxsPicsXG4gICAgICAgIGRlc2M6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9I2YyMGMwMD7mnKzop4TliJnku4XpmZDlhY3otLnlrabkuaDkuqTmtYHkvb/nlKjvvIzor7fkuo7lr7zlhaXlkI4yNOWwj+aXtuWGheWIoOmZpO+8jOS7u+S9lee7hOe7h+aIluS4quS6uuS4jeW+l+S7peS7u+S9leaWueW8j+aWueazleS8oOaSreaIluWUruWNluatpOinhOWImeeahOaVtOS9k+aIlumDqOWIhu+8gTwvZm9udD48L3NtYWxsPicsXG4gICAgICAgIHVybDogJCgnI25vSGlzdG9yeSMnKS5sYXp5UnVsZSgoKSA9PiB7XG4gICAgICAgICAgICBzZXRJdGVtKFwicmVhZF9wb2xpY3lcIiwgXCIxXCIpXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgIHJldHVybiBcInRvYXN0Oi8v5L2g5bey5ZCM5oSP6K+l5Y2P6K6uXCJcbiAgICAgICAgfSksXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBzaW5nbGVfZG5wbHVpbl9uZXdXaW5kb3dfaW5pdCgpIHtcbiAgICBsZXQgYmFzZV9zZWFyY2hfanMgPSAnaGlrZXI6Ly9maWxlcy9ydWxlcy9kekhvdXNlL2pzL+aWreaPkuWFg+e0oC5qcyc7XG4gICAgaWYgKCFmZXRjaChiYXNlX3NlYXJjaF9qcykpIHtcbiAgICAgICAgd3JpdGVGaWxlKGJhc2Vfc2VhcmNoX2pzLCBmZXRjaCgnaHR0cDovL2hpa2VyLm5va2lhLnByZXNzL2hpa2VydWxlL3J1bGVsaXN0Lmpzb24/aWQ9MTc5MCcpKTtcbiAgICB9XG4gICAgZXZhbChmZXRjaChiYXNlX3NlYXJjaF9qcykucmVwbGFjZShiYXNlNjREZWNvZGUoXCJRR3B6T2c9PVwiKSwgXCJcIikpO1xuICAgIHJldHVybiBpbml0X2R1YW5QbHVpbigpXG59XG52YXIgaGVscEZyb20gPSAnaGlrZXI6Ly9wYWdlL0luc3RydWN0aW9uX0Jvb2suaHRtbD9ydWxlPWRt55uS5a2QJztcbnZhciBBUElGcm9tID0gJ2hpa2VyOi8vcGFnZS9BUEkuaHRtbD9ydWxlPWRt55uS5a2QJztcbnRyeSB7XG4gICAgdmFyIGhlbHBGaWxlID0gSlNPTi5wYXJzZShmZXRjaChoZWxwRnJvbSkpLnJ1bGU7XG4gICAgdmFyIEFQSUZpbGUgPSBKU09OLnBhcnNlKGZldGNoKEFQSUZyb20pKS5ydWxlO1xuICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL2NhY2hlL0luc3RydWN0aW9uX0Jvb2suaHRtbCcsIGhlbHBGaWxlKTtcbiAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9jYWNoZS9BUEkuaHRtbCcsIEFQSUZpbGUpO1xufSBjYXRjaCAoZSkge1xuICAgIGxvZygn5ouJ5Y+W5byC5bi4Jylcbn1cblxubGV0IGQyID0gW3tcbiAgICB0aXRsZTogXCLop6PmnpBcIixcbiAgICBkZXNjOiAn5bC96YeP6L6T5YWl5qCH5YeG55qEUEPnq6/lrpjpk75+JyxcbiAgICBjb2xfdHlwZTogXCJpbnB1dFwiLFxuICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcbiAgICAgICAgaWYgKGRtU2V0dGluZ3Muc2VhcmNoKSB7XG4gICAgICAgICAgICBzZWFyY2hUeXBlPWRtU2V0dGluZ3Muc2VhcmNoLnNlYXJjaFR5cGU7XG4gICAgICAgICAgICBzZWFyY2hOYW1lPWRtU2V0dGluZ3Muc2VhcmNoLnNlYXJjaE5hbWU7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgc2VhcmNoVHlwZT0yO1xuICAgICAgICAgICAgc2VhcmNoTmFtZT1cIueugOW9sVwiO1xuICAgICAgICB9XG4gICAgICAgIHNob3dMb2FkaW5nKFwi6I635Y+W5by55bmV5LitflwiKTtcbiAgICAgICAgcmV0dXJuICQucmVxdWlyZShcImhpa2VyOi8vcGFnZS9sYXp5VG9KaWV4aT9ydWxlPWRt55uS5a2QXCIpLnBhcnNlRG0oaW5wdXQsIHNlYXJjaFR5cGUsIHNlYXJjaE5hbWUpO1xuICAgIH0pLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ2NvbmRpdGlvbicsICcnKSxcbiAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgb25DaGFuZ2U6IFwicHV0TXlWYXIoJ2NvbmRpdGlvbicsaW5wdXQpXCIsXG4gICAgfVxufSwge1xuICAgIGltZzogJ2h0dHBzOi8vZ2ltZzIuYmFpZHUuY29tL2ltYWdlX3NlYXJjaC9zcmM9aHR0cCUzQSUyRiUyRmluZXdzLmd0aW1nLmNvbSUyRm5ld3NhcHBfbWF0Y2glMkYwJTJGMTA2ODM2NjE1NzElMkYwLmpwZyZyZWZlcj1odHRwJTNBJTJGJTJGaW5ld3MuZ3RpbWcuY29tJmFwcD0yMDAyJnNpemU9Zjk5OTksMTAwMDAmcT1hODAmbj0wJmc9MG4mZm10PWF1dG8/c2VjPTE2NTgzNjk4OTAmdD0xOGY5NTVmYzJjNzNlYmQ2NTg2MDdjYzYwODA4MWNmNScsXG4gICAgdGl0bGU6ICflvLnluZXnm5LlrZAnLFxuICAgIGNvbF90eXBlOiBcImNhcmRfcGljXzFcIixcbiAgICBkZXNjOiAnMCcsXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLnJ1bGUoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIGQgPSBbXTtcbiAgICAgICAgICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcbiAgICAgICAgICAgIGlmIChkbVNldHRpbmdzLnNlYXJjaCkge1xuICAgICAgICAgICAgICAgIHNlYXJjaFR5cGU9ZG1TZXR0aW5ncy5zZWFyY2guc2VhcmNoVHlwZTtcbiAgICAgICAgICAgICAgICBzZWFyY2hOYW1lPWRtU2V0dGluZ3Muc2VhcmNoLnNlYXJjaE5hbWU7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBzZWFyY2hUeXBlPTI7XG4gICAgICAgICAgICAgICAgc2VhcmNoTmFtZT1cIueugOW9sVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAneaQnOe0ouaWueW8jzo8c21hbGw+PHNtYWxsPjEt6LCD55So5bCP56iL5bqP5pCc57Si77ybMi3osIPnlKjlsI/nqIvluo/liIbnu4TmkJzntKI8L3NtYWxsPjwvc21hbGw+JyxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcbiAgICAgICAgICAgIH0se1xuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogc2VhcmNoVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXCJwdXRNeVZhcignc2VhcmNoVHlwZScsaW5wdXQpXCIsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSx7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ3lsI/nqIvluo/lkI0v5YiG57uE5ZCNOicsXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXG4gICAgICAgICAgICB9LHtcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHNlYXJjaE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXG4gICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFwicHV0TXlWYXIoJ3NlYXJjaE5hbWUnLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+eCueWHu+S/neWtmCcsXG4gICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuICAgICAgICAgICAgICAgICAgICBkbVNldHRpbmdzLnNlYXJjaD17fTtcbiAgICAgICAgICAgICAgICAgICAgZG1TZXR0aW5ncy5zZWFyY2guc2VhcmNoVHlwZSA9IE51bWJlcihnZXRNeVZhcignc2VhcmNoVHlwZScpKTtcbiAgICAgICAgICAgICAgICAgICAgZG1TZXR0aW5ncy5zZWFyY2guc2VhcmNoTmFtZSA9IGdldE15VmFyKCdzZWFyY2hOYW1lJyk7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nLCBKU09OLnN0cmluZ2lmeShkbVNldHRpbmdzKSk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2sodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcInRvYXN0Oi8v5L+d5a2Y5oiQ5YqfflwiO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChkKTtcbiAgICAgICAgfSk7XG4gICAgfSlcbn0sIHtcbiAgICB0aXRsZTogXCLlvLnluZXmnaXmupDvvJpcIiArIGRtRnJvbSxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICBvcHRpb25zID0gWyflt6blsrjlrpjlvLknLCAnZmPlrpjlvLknLCAn5LiJ5pa55om26aOOJ107XG4gICAgICAgIHJldHVybiAkKG9wdGlvbnMsIDEpLnNlbGVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjdXJTZXR0aW5ncyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcbiAgICAgICAgICAgIGN1clNldHRpbmdzLmRtRnJvbSA9IGlucHV0O1xuICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicsIEpTT04uc3RyaW5naWZ5KGN1clNldHRpbmdzKSk7XG4gICAgICAgICAgICB1cGRhdGVJdGVtKCflvLnluZXmnaXmupAnLCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5by55bmV5p2l5rqQ77yaXCIgKyBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZG1Gcm9tLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gXCJ0b2FzdDovL+WIh+aNouadpea6kOS4ujpcIiArIGlucHV0O1xuICAgICAgICB9KVxuICAgIH0pLFxuICAgIGNvbF90eXBlOiBcInRleHRfY2VudGVyXzFcIixcbiAgICBleHRyYToge1xuICAgICAgICBpZDogJ+W8ueW5leadpea6kCdcbiAgICB9XG59LCB7XG4gICAgdGl0bGU6IFwi5by55bmV5aSn5bCPOlwiICsgZm9udFNpemUsXG4gICAgY29sX3R5cGU6IFwidGV4dF8yXCIsXG4gICAgdXJsOiBcImlucHV0Oi8vLy8vL+ivt+i+k+WFpeS4gOS4quWQiOmAgueahOaVsOWtl++8jOm7mOiupOaYrzI1LmpzOlwiICsgJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgIGN1clNldHRpbmdzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuICAgICAgICBjdXJTZXR0aW5ncy5mb250U2l6ZSA9IGlucHV0O1xuICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJywgSlNPTi5zdHJpbmdpZnkoY3VyU2V0dGluZ3MpKTtcbiAgICAgICAgdXBkYXRlSXRlbSgn5by55bmV5aSn5bCPJywge1xuICAgICAgICAgICAgdGl0bGU6IFwi5by55bmV5aSn5bCP77yaXCIgKyBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZm9udFNpemUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gXCJ0b2FzdDovL+W8ueW5leWkp+Wwj+W3suS/ruaUueS4ulwiICsgaW5wdXQ7XG4gICAgfSksXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaWQ6ICflvLnluZXlpKflsI8nXG4gICAgfVxufSwge1xuICAgIHRpdGxlOiBcIuS9nOeUqOWfn++8mlwiICsgZG1TY29wZSxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICBvcHRpb25zID0gWydnbG9iYWwnLCAnb3RoZXInXTtcbiAgICAgICAgcmV0dXJuICQob3B0aW9ucywgMSkuc2VsZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGN1clNldHRpbmdzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuICAgICAgICAgICAgY3VyU2V0dGluZ3MuZG1TY29wZSA9IGlucHV0O1xuICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicsIEpTT04uc3RyaW5naWZ5KGN1clNldHRpbmdzKSk7XG4gICAgICAgICAgICB1cGRhdGVJdGVtKCfkvZznlKjln58nLCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5L2c55So5Z+f77yaXCIgKyBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZG1TY29wZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly/liIfmjaLkvZznlKjln5/kuLo6XCIgKyBpbnB1dDtcbiAgICAgICAgfSlcbiAgICB9KSxcbiAgICBjb2xfdHlwZTogXCJ0ZXh0XzJcIixcbiAgICBleHRyYToge1xuICAgICAgICBpZDogJ+S9nOeUqOWfnydcbiAgICB9XG59LCB7XG4gICAgdGl0bGU6ICfkvb/nlKjmiYvlhownLFxuICAgIGNvbF90eXBlOiAndGV4dF8zJyxcbiAgICB1cmw6ICdoaWtlcjovL3BhZ2UvZG9jI2ltbWVyc2l2ZVRoZW1lIycsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgbmV3V2luZG93OiBmYWxzZSxcbiAgICAgICAgZG9jVHlwZTogJ2hlbHAnXG4gICAgfVxufSwge1xuICAgIHRpdGxlOiAn6a2U5pat6YWN572uJyxcbiAgICBjb2xfdHlwZTogJ3RleHRfMycsXG4gICAgdXJsOiBzaW5nbGVfZG5wbHVpbl9uZXdXaW5kb3dfaW5pdCgpLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIG5ld1dpbmRvdzogdHJ1ZVxuICAgIH1cbn0sIHtcbiAgICB0aXRsZTogJ+mjnuS8oCcsXG4gICAgY29sX3R5cGU6ICd0ZXh0XzMnLFxuICAgIHVybDogXCJzaGFyZTovL1wiK2dldFZhcignZG1fc2hhcmUnLCAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnKVxufSwge1xuICAgIHRpdGxlOiAnQVBJ5paH5qGjJyxcbiAgICBkZXNjOiAn6LCD55So5b+F55yLJyxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxuICAgIHVybDogJ2hpa2VyOi8vcGFnZS9kb2MnLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIG5ld1dpbmRvdzogZmFsc2UsXG4gICAgICAgIGRvY1R5cGU6ICdBUEknXG4gICAgfVxufSwge1xuICAgIHRpdGxlOiAnPGJpZz48Yj7mrKLov47mnaXliLBkbeebkuWtkO+8mjwvYj48L2JpZz5cXG48Zm9udCBjb2xvcj1ibHVlPjxicj7miJHmmK/kuIDkuKrlvLnluZXmlbDmja7nmoTmlLbnurPnm5LvvIzkuLrop6PmnpDmnKzouqvmt7vliqDlhazpkqXmnaXojrflj5blvLnluZXmlbDmja7vvIzorqnlvLnluZXlj6/ku6XlnKjmtbfpmJTnmoTop4TliJnph4zoh6rnlLHmtYHliqh+5pSv5oyBdHjjgIFtZ3R244CBYmlsaeetiS4uLuKYhSleLV4o4piFPC9mb250PicsXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxuICAgIHVybDogJCgpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly/nlrzvvIzliKvngrnvvIFcIlxuICAgIH0pXG59LCB7XG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9IzIwYjJhYT7mlbDmja7otYTmupDmlLbpm4bkuo7nvZHnu5zvvIzmtbfpmJTkuI3mj5Dkvpvku7vkvZXotYTmupDvvIE8L2ZvbnQ+PC9zbWFsbD4nLFxuICAgIGRlc2M6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9I2ZmN2Y1MD7mnKzop4TliJnku4XpmZDlrabkuaDkuI7kuqTmtYHvvIzor7flr7zlhaXlkI4yNOWwj+aXtuWGheWIoOmZpO+8jOivt+WLv+S8oOaSre+8gTwvZm9udD48L3NtYWxsPicsXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICByZXR1cm4gXCJ0b2FzdDovL+i2hei/hzI05bCP5pe25LqG5ZCX77yf6YKj5Yig5LqG5ZCn77yBXCJcbiAgICB9KVxufV1cbmlmIChnZXRJdGVtKFwicmVhZF9wb2xpY3lcIikgPT0gXCIxXCIpIHtcbiAgICBkMi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBlbC5wdXNoKGVsZW1lbnQpXG4gICAgfSk7XG59XG5zZXRSZXN1bHQoZWwpO1xuIiwic2VhcmNoX3VybCI6IiIsImdyb3VwIjoiI++4j+KDo+W3peWFtyIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJ0ZXh0XzUiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJJbnN0cnVjdGlvbl9Cb29rLmh0bWxcIixcInBhdGhcIjpcIkluc3RydWN0aW9uX0Jvb2suaHRtbFwiLFwicnVsZVwiOlwiPCFkb2N0eXBlIGh0bWw+XFxuPGh0bWw+XFxuPGhlYWQ+XFxuPG1ldGEgY2hhcnNldD0nVVRGLTgnPjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGggaW5pdGlhbC1zY2FsZT0xJz5cXG5cXG48c3R5bGUgdHlwZT0ndGV4dC9jc3MnPmh0bWwge292ZXJmbG93LXg6IGluaXRpYWwgIWltcG9ydGFudDt9OnJvb3QgeyAtLWJnLWNvbG9yOiNmZmZmZmY7IC0tdGV4dC1jb2xvcjojMzMzMzMzOyAtLXNlbGVjdC10ZXh0LWJnLWNvbG9yOiNCNUQ2RkM7IC0tc2VsZWN0LXRleHQtZm9udC1jb2xvcjphdXRvOyAtLW1vbm9zcGFjZTpcXFwiTHVjaWRhIENvbnNvbGVcXFwiLENvbnNvbGFzLFxcXCJDb3VyaWVyXFxcIixtb25vc3BhY2U7IC0tdGl0bGUtYmFyLWhlaWdodDoyMHB4OyB9XFxuLm1hYy1vcy0xMSB7IC0tdGl0bGUtYmFyLWhlaWdodDoyOHB4OyB9XFxuaHRtbCB7IGZvbnQtc2l6ZTogMTRweDsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3IpOyBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7IGZvbnQtZmFtaWx5OiBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgfVxcbmJvZHkgeyBtYXJnaW46IDBweDsgcGFkZGluZzogMHB4OyBoZWlnaHQ6IGF1dG87IGluc2V0OiAwcHg7IGZvbnQtc2l6ZTogMXJlbTsgbGluZS1oZWlnaHQ6IDEuNDI4NTc7IG92ZXJmbG93LXg6IGhpZGRlbjsgYmFja2dyb3VuZDogaW5oZXJpdDsgdGFiLXNpemU6IDQ7IH1cXG5pZnJhbWUgeyBtYXJnaW46IGF1dG87IH1cXG5hLnVybCB7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfVxcbmE6YWN0aXZlLCBhOmhvdmVyIHsgb3V0bGluZTogMHB4OyB9XFxuLmluLXRleHQtc2VsZWN0aW9uLCA6OnNlbGVjdGlvbiB7IHRleHQtc2hhZG93OiBub25lOyBiYWNrZ3JvdW5kOiB2YXIoLS1zZWxlY3QtdGV4dC1iZy1jb2xvcik7IGNvbG9yOiB2YXIoLS1zZWxlY3QtdGV4dC1mb250LWNvbG9yKTsgfVxcbiN3cml0ZSB7IG1hcmdpbjogMHB4IGF1dG87IGhlaWdodDogYXV0bzsgd2lkdGg6IGluaGVyaXQ7IHdvcmQtYnJlYWs6IG5vcm1hbDsgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgcG9zaXRpb246IHJlbGF0aXZlOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyBvdmVyZmxvdy14OiB2aXNpYmxlOyBwYWRkaW5nLXRvcDogMzZweDsgfVxcbiN3cml0ZS5maXJzdC1saW5lLWluZGVudCBwIHsgdGV4dC1pbmRlbnQ6IDJlbTsgfVxcbiN3cml0ZS5maXJzdC1saW5lLWluZGVudCBsaSBwLCAjd3JpdGUuZmlyc3QtbGluZS1pbmRlbnQgcCAqIHsgdGV4dC1pbmRlbnQ6IDBweDsgfVxcbiN3cml0ZS5maXJzdC1saW5lLWluZGVudCBsaSB7IG1hcmdpbi1sZWZ0OiAyZW07IH1cXG4uZm9yLWltYWdlICN3cml0ZSB7IHBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXJpZ2h0OiA4cHg7IH1cXG5ib2R5LnR5cG9yYS1leHBvcnQgeyBwYWRkaW5nLWxlZnQ6IDMwcHg7IHBhZGRpbmctcmlnaHQ6IDMwcHg7IH1cXG4udHlwb3JhLWV4cG9ydCAuZm9vdG5vdGUtbGluZSwgLnR5cG9yYS1leHBvcnQgbGksIC50eXBvcmEtZXhwb3J0IHAgeyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cXG4udHlwb3JhLWV4cG9ydCAudGFzay1saXN0LWl0ZW0gaW5wdXQgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XFxuICBib2R5LnR5cG9yYS1leHBvcnQgeyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyB9XFxuICAjd3JpdGUgeyBwYWRkaW5nLWxlZnQ6IDIwcHg7IHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cXG4gIC5Db2RlTWlycm9yLXNpemVyIHsgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50OyB9XFxuICAuQ29kZU1pcnJvci1ndXR0ZXJzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxufVxcbiN3cml0ZSBsaSA+IGZpZ3VyZTpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XFxuI3dyaXRlIG9sLCAjd3JpdGUgdWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG5pbWcgeyBtYXgtd2lkdGg6IDEwMCU7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGltYWdlLW9yaWVudGF0aW9uOiBmcm9tLWltYWdlOyB9XFxuYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7IGNvbG9yOiBpbmhlcml0OyBmb250OiBpbmhlcml0OyB9XFxuaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXSwgaW5wdXRbdHlwZT1cXFwicmFkaW9cXFwiXSB7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IHBhZGRpbmc6IDBweDsgfVxcbiosIDo6YWZ0ZXIsIDo6YmVmb3JlIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiN3cml0ZSBoMSwgI3dyaXRlIGgyLCAjd3JpdGUgaDMsICN3cml0ZSBoNCwgI3dyaXRlIGg1LCAjd3JpdGUgaDYsICN3cml0ZSBwLCAjd3JpdGUgcHJlIHsgd2lkdGg6IGluaGVyaXQ7IH1cXG4jd3JpdGUgaDEsICN3cml0ZSBoMiwgI3dyaXRlIGgzLCAjd3JpdGUgaDQsICN3cml0ZSBoNSwgI3dyaXRlIGg2LCAjd3JpdGUgcCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbnAgeyBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgeyBicmVhay1hZnRlcjogYXZvaWQtcGFnZTsgYnJlYWstaW5zaWRlOiBhdm9pZDsgb3JwaGFuczogNDsgfVxcbnAgeyBvcnBoYW5zOiA0OyB9XFxuaDEgeyBmb250LXNpemU6IDJyZW07IH1cXG5oMiB7IGZvbnQtc2l6ZTogMS44cmVtOyB9XFxuaDMgeyBmb250LXNpemU6IDEuNnJlbTsgfVxcbmg0IHsgZm9udC1zaXplOiAxLjRyZW07IH1cXG5oNSB7IGZvbnQtc2l6ZTogMS4ycmVtOyB9XFxuaDYgeyBmb250LXNpemU6IDFyZW07IH1cXG4ubWQtbWF0aC1ibG9jaywgLm1kLXJhd2Jsb2NrLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwIHsgbWFyZ2luLXRvcDogMXJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxcbi5oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9XFxuLm1kLWJsb2NrbWV0YSB7IGNvbG9yOiByZ2IoMjA0LCAyMDQsIDIwNCk7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxcbmEgeyBjdXJzb3I6IHBvaW50ZXI7IH1cXG5zdXAubWQtZm9vdG5vdGUgeyBwYWRkaW5nOiAycHggNHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOCwgMjM4LCAyMzgsIDAuNyk7IGNvbG9yOiByZ2IoODUsIDg1LCA4NSk7IGJvcmRlci1yYWRpdXM6IDRweDsgY3Vyc29yOiBwb2ludGVyOyB9XFxuc3VwLm1kLWZvb3Rub3RlIGEsIHN1cC5tZC1mb290bm90ZSBhOmhvdmVyIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IH1cXG4jd3JpdGUgaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXSB7IGN1cnNvcjogcG9pbnRlcjsgd2lkdGg6IGluaGVyaXQ7IGhlaWdodDogaW5oZXJpdDsgfVxcbmZpZ3VyZSB7IG92ZXJmbG93LXg6IGF1dG87IG1hcmdpbjogMS4yZW0gMHB4OyBtYXgtd2lkdGg6IGNhbGMoMTAwJSArIDE2cHgpOyBwYWRkaW5nOiAwcHg7IH1cXG5maWd1cmUgPiB0YWJsZSB7IG1hcmdpbjogMHB4OyB9XFxudHIgeyBicmVhay1pbnNpZGU6IGF2b2lkOyBicmVhay1hZnRlcjogYXV0bzsgfVxcbnRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XFxudGFibGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMHB4OyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGF1dG87IGJyZWFrLWluc2lkZTogYXV0bzsgdGV4dC1hbGlnbjogbGVmdDsgfVxcbnRhYmxlLm1kLXRhYmxlIHRkIHsgbWluLXdpZHRoOiAzMnB4OyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVycyB7IGJvcmRlci1yaWdodDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxuLkNvZGVNaXJyb3ItbGluZW51bWJlciB7IHVzZXItc2VsZWN0OiBub25lOyB9XFxuLkNvZGVNaXJyb3IgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XFxuLkNvZGVNaXJyb3ItcGxhY2Vob2xkZXIgeyBvcGFjaXR5OiAwLjM7IH1cXG4uQ29kZU1pcnJvciBwcmUgeyBwYWRkaW5nOiAwcHggNHB4OyB9XFxuLkNvZGVNaXJyb3ItbGluZXMgeyBwYWRkaW5nOiAwcHg7IH1cXG5kaXYuaHI6Zm9jdXMgeyBjdXJzb3I6IG5vbmU7IH1cXG4jd3JpdGUgcHJlIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XFxuI3dyaXRlLmZlbmNlcy1uby1saW5lLXdyYXBwaW5nIHByZSB7IHdoaXRlLXNwYWNlOiBwcmU7IH1cXG4jd3JpdGUgcHJlLnR5LWNvbnRhaW4tY20geyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVycyB7IG1hcmdpbi1yaWdodDogNHB4OyB9XFxuLm1kLWZlbmNlcyB7IGZvbnQtc2l6ZTogMC45cmVtOyBkaXNwbGF5OiBibG9jazsgYnJlYWstaW5zaWRlOiBhdm9pZDsgdGV4dC1hbGlnbjogbGVmdDsgb3ZlcmZsb3c6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBwcmU7IGJhY2tncm91bmQ6IGluaGVyaXQ7IHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OyB9XFxuLm1kLWZlbmNlcy1hZHYtcGFuZWwgeyB3aWR0aDogMTAwJTsgbWFyZ2luLXRvcDogMTBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nLXRvcDogMHB4OyBwYWRkaW5nLWJvdHRvbTogOHB4OyBvdmVyZmxvdy14OiBhdXRvOyB9XFxuI3dyaXRlIC5tZC1mZW5jZXMubW9jay1jbSB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxcbi5tZC1mZW5jZXMubWQtZmVuY2VzLXdpdGgtbGluZW5vIHsgcGFkZGluZy1sZWZ0OiAwcHg7IH1cXG4jd3JpdGUuZmVuY2VzLW5vLWxpbmUtd3JhcHBpbmcgLm1kLWZlbmNlcy5tb2NrLWNtIHsgd2hpdGUtc3BhY2U6IHByZTsgb3ZlcmZsb3cteDogYXV0bzsgfVxcbi5tZC1mZW5jZXMubW9jay1jbS5tZC1mZW5jZXMtd2l0aC1saW5lbm8geyBwYWRkaW5nLWxlZnQ6IDhweDsgfVxcbi5Db2RlTWlycm9yLWxpbmUsIHR3aXR0ZXJ3aWRnZXQgeyBicmVhay1pbnNpZGU6IGF2b2lkOyB9XFxuLmZvb3Rub3RlcyB7IG9wYWNpdHk6IDAuODsgZm9udC1zaXplOiAwLjlyZW07IG1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogMWVtOyB9XFxuLmZvb3Rub3RlcyArIC5mb290bm90ZXMgeyBtYXJnaW4tdG9wOiAwcHg7IH1cXG4ubWQtcmVzZXQgeyBtYXJnaW46IDBweDsgcGFkZGluZzogMHB4OyBib3JkZXI6IDBweDsgb3V0bGluZTogMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBiYWNrZ3JvdW5kOiAwcHggMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtc2hhZG93OiBub25lOyBmbG9hdDogbm9uZTsgcG9zaXRpb246IHN0YXRpYzsgd2lkdGg6IGF1dG87IGhlaWdodDogYXV0bzsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgY3Vyc29yOiBpbmhlcml0OyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyBsaW5lLWhlaWdodDogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyB0ZXh0LWFsaWduOiBsZWZ0OyBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgZGlyZWN0aW9uOiBsdHI7IH1cXG5saSBkaXYgeyBwYWRkaW5nLXRvcDogMHB4OyB9XFxuYmxvY2txdW90ZSB7IG1hcmdpbjogMXJlbSAwcHg7IH1cXG5saSAubWF0aGpheC1ibG9jaywgbGkgcCB7IG1hcmdpbjogMC41cmVtIDBweDsgfVxcbmxpIGJsb2NrcXVvdGUgeyBtYXJnaW46IDFyZW0gMHB4OyB9XFxubGkgeyBtYXJnaW46IDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuYmxvY2txdW90ZSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMHB4OyB9XFxuYmxvY2txdW90ZSA+IDpmaXJzdC1jaGlsZCwgbGkgPiA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwcHg7IH1cXG4uZm9vdG5vdGVzLWFyZWEgeyBjb2xvcjogcmdiKDEzNiwgMTM2LCAxMzYpOyBtYXJnaW4tdG9wOiAwLjcxNHJlbTsgcGFkZGluZy1ib3R0b206IDAuMTQzcmVtOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XFxuI3dyaXRlIC5mb290bm90ZS1saW5lIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XFxuQG1lZGlhIHByaW50IHtcXG4gIGJvZHksIGh0bWwgeyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgaGVpZ2h0OiA5OSU7IGJyZWFrLWFmdGVyOiBhdm9pZDsgYnJlYWstYmVmb3JlOiBhdm9pZDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgfVxcbiAgI3dyaXRlIHsgbWFyZ2luLXRvcDogMHB4OyBwYWRkaW5nLXRvcDogMHB4OyBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cXG4gIC50eXBvcmEtZXhwb3J0ICogeyAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7IH1cXG4gIC50eXBvcmEtZXhwb3J0ICN3cml0ZSB7IGJyZWFrLWFmdGVyOiBhdm9pZDsgfVxcbiAgLnR5cG9yYS1leHBvcnQgI3dyaXRlOjphZnRlciB7IGhlaWdodDogMHB4OyB9XFxuICAuaXMtbWFjIHRhYmxlIHsgYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxcbiAgLnR5cG9yYS1leHBvcnQtc2hvdy1vdXRsaW5lIC50eXBvcmEtZXhwb3J0LXNpZGViYXIgeyBkaXNwbGF5OiBub25lOyB9XFxufVxcbi5mb290bm90ZS1saW5lIHsgbWFyZ2luLXRvcDogMC43MTRlbTsgZm9udC1zaXplOiAwLjdlbTsgfVxcbmEgaW1nLCBpbWcgYSB7IGN1cnNvcjogcG9pbnRlcjsgfVxcbnByZS5tZC1tZXRhLWJsb2NrIHsgZm9udC1zaXplOiAwLjhyZW07IG1pbi1oZWlnaHQ6IDAuOHJlbTsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyBiYWNrZ3JvdW5kOiByZ2IoMjA0LCAyMDQsIDIwNCk7IGRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdy14OiBoaWRkZW47IH1cXG5wID4gLm1kLWltYWdlOm9ubHktY2hpbGQ6bm90KC5tZC1pbWctZXJyb3IpIGltZywgcCA+IGltZzpvbmx5LWNoaWxkIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsgfVxcbiN3cml0ZS5maXJzdC1saW5lLWluZGVudCBwID4gLm1kLWltYWdlOm9ubHktY2hpbGQ6bm90KC5tZC1pbWctZXJyb3IpIGltZyB7IGxlZnQ6IC0yZW07IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbnAgPiAubWQtaW1hZ2U6b25seS1jaGlsZCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMCU7IH1cXG4jd3JpdGUgLk1hdGhKYXhfRGlzcGxheSB7IG1hcmdpbjogMC44ZW0gMHB4IDBweDsgfVxcbi5tZC1tYXRoLWJsb2NrIHsgd2lkdGg6IDEwMCU7IH1cXG4ubWQtbWF0aC1ibG9jazpub3QoOmVtcHR5KTo6YWZ0ZXIgeyBkaXNwbGF5OiBub25lOyB9XFxuLk1hdGhKYXhfcmVmIHsgZmlsbDogY3VycmVudGNvbG9yOyB9XFxuW2NvbnRlbnRlZGl0YWJsZT1cXFwidHJ1ZVxcXCJdOmFjdGl2ZSwgW2NvbnRlbnRlZGl0YWJsZT1cXFwidHJ1ZVxcXCJdOmZvY3VzLCBbY29udGVudGVkaXRhYmxlPVxcXCJmYWxzZVxcXCJdOmFjdGl2ZSwgW2NvbnRlbnRlZGl0YWJsZT1cXFwiZmFsc2VcXFwiXTpmb2N1cyB7IG91dGxpbmU6IDBweDsgYm94LXNoYWRvdzogbm9uZTsgfVxcbi5tZC10YXNrLWxpc3QtaXRlbSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XFxuLnRhc2stbGlzdC1pdGVtLm1kLXRhc2stbGlzdC1pdGVtIHsgcGFkZGluZy1sZWZ0OiAwcHg7IH1cXG4ubWQtdGFzay1saXN0LWl0ZW0gPiBpbnB1dCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgbWFyZ2luLWxlZnQ6IC0xLjJlbTsgbWFyZ2luLXRvcDogY2FsYygxZW0gLSAxMHB4KTsgYm9yZGVyOiBub25lOyB9XFxuLm1hdGggeyBmb250LXNpemU6IDFyZW07IH1cXG4ubWQtdG9jIHsgbWluLWhlaWdodDogMy41OHJlbTsgcG9zaXRpb246IHJlbGF0aXZlOyBmb250LXNpemU6IDAuOXJlbTsgYm9yZGVyLXJhZGl1czogMTBweDsgfVxcbi5tZC10b2MtY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWxlZnQ6IDBweDsgfVxcbi5tZC10b2MtY29udGVudDo6YWZ0ZXIsIC5tZC10b2M6OmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxcbi5tZC10b2MtaXRlbSB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogcmdiKDY1LCAxMzEsIDE5Nik7IH1cXG4ubWQtdG9jLWl0ZW0gYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbi5tZC10b2MtaW5uZXI6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxcbi5tZC10b2MtaW5uZXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGN1cnNvcjogcG9pbnRlcjsgfVxcbi5tZC10b2MtaDEgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiAwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cXG4ubWQtdG9jLWgyIC5tZC10b2MtaW5uZXIgeyBtYXJnaW4tbGVmdDogMmVtOyB9XFxuLm1kLXRvYy1oMyAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDRlbTsgfVxcbi5tZC10b2MtaDQgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiA2ZW07IH1cXG4ubWQtdG9jLWg1IC5tZC10b2MtaW5uZXIgeyBtYXJnaW4tbGVmdDogOGVtOyB9XFxuLm1kLXRvYy1oNiAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDEwZW07IH1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OGVtKSB7XFxuICAubWQtdG9jLWgzIC5tZC10b2MtaW5uZXIgeyBtYXJnaW4tbGVmdDogMy41ZW07IH1cXG4gIC5tZC10b2MtaDQgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiA1ZW07IH1cXG4gIC5tZC10b2MtaDUgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiA2LjVlbTsgfVxcbiAgLm1kLXRvYy1oNiAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDhlbTsgfVxcbn1cXG5hLm1kLXRvYy1pbm5lciB7IGZvbnQtc2l6ZTogaW5oZXJpdDsgZm9udC1zdHlsZTogaW5oZXJpdDsgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XFxuLmZvb3Rub3RlLWxpbmUgYTpub3QoLnJldmVyc2Vmb290bm90ZSkgeyBjb2xvcjogaW5oZXJpdDsgfVxcbi5tZC1hdHRyIHsgZGlzcGxheTogbm9uZTsgfVxcbi5tZC1mbi1jb3VudDo6YWZ0ZXIgeyBjb250ZW50OiBcXFwiLlxcXCI7IH1cXG5jb2RlLCBwcmUsIHNhbXAsIHR0IHsgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7IH1cXG5rYmQgeyBtYXJnaW46IDBweCAwLjFlbTsgcGFkZGluZzogMC4xZW0gMC42ZW07IGZvbnQtc2l6ZTogMC44ZW07IGNvbG9yOiByZ2IoMzYsIDM5LCA0MSk7IGJhY2tncm91bmQ6IHJnYigyNTUsIDI1NSwgMjU1KTsgYm9yZGVyOiAxcHggc29saWQgcmdiKDE3MywgMTc5LCAxODUpOyBib3JkZXItcmFkaXVzOiAzcHg7IGJveC1zaGFkb3c6IHJnYmEoMTIsIDEzLCAxNCwgMC4yKSAwcHggMXB4IDBweCwgcmdiKDI1NSwgMjU1LCAyNTUpIDBweCAwcHggMHB4IDJweCBpbnNldDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbi5tZC1jb21tZW50IHsgY29sb3I6IHJnYigxNjIsIDEyNywgMyk7IG9wYWNpdHk6IDAuNjsgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7IH1cXG5jb2RlIHsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IGluaXRpYWw7IH1cXG5hLm1kLXByaW50LWFuY2hvciB7IHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7IGJvcmRlci1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDsgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7IHJpZ2h0OiAwcHggIWltcG9ydGFudDsgb3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6IDBweCAwcHggIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOiBpbml0aWFsICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiBpbml0aWFsICFpbXBvcnRhbnQ7IH1cXG4ub3Mtd2luZG93cy5tb25vY29sb3ItZW1vamkgLm1kLWVtb2ppIHsgZm9udC1mYW1pbHk6IFxcXCJTZWdvZSBVSSBTeW1ib2xcXFwiLCBzYW5zLXNlcmlmOyB9XFxuLm1kLWRpYWdyYW0tcGFuZWwgPiBzdmcgeyBtYXgtd2lkdGg6IDEwMCU7IH1cXG5bbGFuZz1cXFwiZmxvd1xcXCJdIHN2ZywgW2xhbmc9XFxcIm1lcm1haWRcXFwiXSBzdmcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxcbltsYW5nPVxcXCJtZXJtYWlkXFxcIl0gLm5vZGUgdGV4dCB7IGZvbnQtc2l6ZTogMXJlbTsgfVxcbnRhYmxlIHRyIHRoIHsgYm9yZGVyLWJvdHRvbTogMHB4OyB9XFxudmlkZW8geyBtYXgtd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDBweCBhdXRvOyB9XFxuaWZyYW1lIHsgbWF4LXdpZHRoOiAxMDAlOyB3aWR0aDogMTAwJTsgYm9yZGVyOiBub25lOyB9XFxuLmhpZ2hsaWdodCB0ZCwgLmhpZ2hsaWdodCB0ciB7IGJvcmRlcjogMHB4OyB9XFxubWFyayB7IGJhY2tncm91bmQ6IHJnYigyNTUsIDI1NSwgMCk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IH1cXG4ubWQtaHRtbC1pbmxpbmUgLm1kLXBsYWluLCAubWQtaHRtbC1pbmxpbmUgc3Ryb25nLCBtYXJrIC5tZC1pbmxpbmUtbWF0aCwgbWFyayBzdHJvbmcgeyBjb2xvcjogaW5oZXJpdDsgfVxcbi5tZC1leHBhbmQgbWFyayAubWQtbWV0YSB7IG9wYWNpdHk6IDAuMyAhaW1wb3J0YW50OyB9XFxubWFyayAubWQtbWV0YSB7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgLnR5cG9yYS1leHBvcnQgaDEsIC50eXBvcmEtZXhwb3J0IGgyLCAudHlwb3JhLWV4cG9ydCBoMywgLnR5cG9yYS1leHBvcnQgaDQsIC50eXBvcmEtZXhwb3J0IGg1LCAudHlwb3JhLWV4cG9ydCBoNiB7IGJyZWFrLWluc2lkZTogYXZvaWQ7IH1cXG59XFxuLm1kLWRpYWdyYW0tcGFuZWwgLm1lc3NhZ2VUZXh0IHsgc3Ryb2tlOiBub25lICFpbXBvcnRhbnQ7IH1cXG4ubWQtZGlhZ3JhbS1wYW5lbCAuc3RhcnQtc3RhdGUgeyBmaWxsOiB2YXIoLS1ub2RlLWZpbGwpOyB9XFxuLm1kLWRpYWdyYW0tcGFuZWwgLmVkZ2VMYWJlbCByZWN0IHsgb3BhY2l0eTogMSAhaW1wb3J0YW50OyB9XFxuLm1kLWZlbmNlcy5tZC1mZW5jZXMtbWF0aCB7IGZvbnQtc2l6ZTogMWVtOyB9XFxuLm1kLWZlbmNlcy1hZHZhbmNlZDpub3QoLm1kLWZvY3VzKSB7IHBhZGRpbmc6IDBweDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgYm9yZGVyOiAwcHg7IH1cXG4ubWQtZmVuY2VzLWFkdmFuY2VkOm5vdCgubWQtZm9jdXMpIHsgYmFja2dyb3VuZDogaW5oZXJpdDsgfVxcbi50eXBvcmEtZXhwb3J0LXNob3ctb3V0bGluZSAudHlwb3JhLWV4cG9ydC1jb250ZW50IHsgbWF4LXdpZHRoOiAxNDQwcHg7IG1hcmdpbjogYXV0bzsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcbi50eXBvcmEtZXhwb3J0LXNpZGViYXIgeyB3aWR0aDogMzAwcHg7IGZvbnQtc2l6ZTogMC44cmVtOyBtYXJnaW4tdG9wOiA4MHB4OyBtYXJnaW4tcmlnaHQ6IDE4cHg7IH1cXG4udHlwb3JhLWV4cG9ydC1zaG93LW91dGxpbmUgI3dyaXRlIHsgLS13ZWJraXQtZmxleDoyOyBmbGV4OiAyIDEgMCU7IH1cXG4udHlwb3JhLWV4cG9ydC1zaWRlYmFyIC5vdXRsaW5lLWNvbnRlbnQgeyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMHB4OyBtYXgtaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuIGF1dG87IHBhZGRpbmctYm90dG9tOiAzMHB4OyBwYWRkaW5nLXRvcDogNjBweDsgd2lkdGg6IDMwMHB4OyB9XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XFxuICAudHlwb3JhLWV4cG9ydC1zaWRlYmFyLCAudHlwb3JhLWV4cG9ydC1zaWRlYmFyIC5vdXRsaW5lLWNvbnRlbnQgeyB3aWR0aDogMjQwcHg7IH1cXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcXG4gIC50eXBvcmEtZXhwb3J0LXNpZGViYXIgeyBkaXNwbGF5OiBub25lOyB9XFxufVxcbi5vdXRsaW5lLWNvbnRlbnQgbGksIC5vdXRsaW5lLWNvbnRlbnQgdWwgeyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgbGlzdC1zdHlsZTogbm9uZTsgfVxcbi5vdXRsaW5lLWNvbnRlbnQgdWwgeyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgfVxcbi5vdXRsaW5lLWNvbnRlbnQgc3Ryb25nIHsgZm9udC13ZWlnaHQ6IDQwMDsgfVxcbi5vdXRsaW5lLWV4cGFuZGVyIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMS40Mjg1N3JlbTsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmctbGVmdDogNHB4OyB9XFxuLm91dGxpbmUtZXhwYW5kZXI6OmJlZm9yZSB7IGNvbnRlbnQ6IFxcXCLvhKVcXFwiOyBwb3NpdGlvbjogcmVsYXRpdmU7IGZvbnQtZmFtaWx5OiBJb25pY29uczsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDhweDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbi5vdXRsaW5lLWl0ZW0geyBwYWRkaW5nLXRvcDogM3B4OyBwYWRkaW5nLWJvdHRvbTogM3B4OyBjdXJzb3I6IHBvaW50ZXI7IH1cXG4ub3V0bGluZS1leHBhbmRlcjpob3Zlcjo6YmVmb3JlIHsgY29udGVudDogXFxcIu+Eo1xcXCI7IH1cXG4ub3V0bGluZS1oMSA+IC5vdXRsaW5lLWl0ZW0geyBwYWRkaW5nLWxlZnQ6IDBweDsgfVxcbi5vdXRsaW5lLWgyID4gLm91dGxpbmUtaXRlbSB7IHBhZGRpbmctbGVmdDogMWVtOyB9XFxuLm91dGxpbmUtaDMgPiAub3V0bGluZS1pdGVtIHsgcGFkZGluZy1sZWZ0OiAyZW07IH1cXG4ub3V0bGluZS1oNCA+IC5vdXRsaW5lLWl0ZW0geyBwYWRkaW5nLWxlZnQ6IDNlbTsgfVxcbi5vdXRsaW5lLWg1ID4gLm91dGxpbmUtaXRlbSB7IHBhZGRpbmctbGVmdDogNGVtOyB9XFxuLm91dGxpbmUtaDYgPiAub3V0bGluZS1pdGVtIHsgcGFkZGluZy1sZWZ0OiA1ZW07IH1cXG4ub3V0bGluZS1sYWJlbCB7IGN1cnNvcjogcG9pbnRlcjsgZGlzcGxheTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogaW5oZXJpdDsgfVxcbi5vdXRsaW5lLWxhYmVsOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cXG4ub3V0bGluZS1pdGVtOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiByZ2IoMjQ1LCAyNDUsIDI0NSk7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0ZW0taG92ZXItYmctY29sb3IpOyB9XFxuLm91dGxpbmUtaXRlbTpob3ZlciB7IG1hcmdpbi1sZWZ0OiAtMjhweDsgbWFyZ2luLXJpZ2h0OiAtMjhweDsgYm9yZGVyLWxlZnQ6IDI4cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDogMjhweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbi5vdXRsaW5lLWl0ZW0tc2luZ2xlIC5vdXRsaW5lLWV4cGFuZGVyOjpiZWZvcmUsIC5vdXRsaW5lLWl0ZW0tc2luZ2xlIC5vdXRsaW5lLWV4cGFuZGVyOmhvdmVyOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XFxuLm91dGxpbmUtaXRlbS1vcGVuID4gLm91dGxpbmUtaXRlbSA+IC5vdXRsaW5lLWV4cGFuZGVyOjpiZWZvcmUgeyBjb250ZW50OiBcXFwi74SjXFxcIjsgfVxcbi5vdXRsaW5lLWNoaWxkcmVuIHsgZGlzcGxheTogbm9uZTsgfVxcbi5pbmZvLXBhbmVsLXRhYi13cmFwcGVyIHsgZGlzcGxheTogbm9uZTsgfVxcbi5vdXRsaW5lLWl0ZW0tb3BlbiA+IC5vdXRsaW5lLWNoaWxkcmVuIHsgZGlzcGxheTogYmxvY2s7IH1cXG4udHlwb3JhLWV4cG9ydCAub3V0bGluZS1pdGVtIHsgcGFkZGluZy10b3A6IDFweDsgcGFkZGluZy1ib3R0b206IDFweDsgfVxcbi50eXBvcmEtZXhwb3J0IC5vdXRsaW5lLWl0ZW06aG92ZXIgeyBtYXJnaW4tcmlnaHQ6IC04cHg7IGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuLnR5cG9yYS1leHBvcnQgLm91dGxpbmUtZXhwYW5kZXI6OmJlZm9yZSB7IGNvbnRlbnQ6IFxcXCIrXFxcIjsgZm9udC1mYW1pbHk6IGluaGVyaXQ7IHRvcDogLTFweDsgfVxcbi50eXBvcmEtZXhwb3J0IC5vdXRsaW5lLWV4cGFuZGVyOmhvdmVyOjpiZWZvcmUsIC50eXBvcmEtZXhwb3J0IC5vdXRsaW5lLWl0ZW0tb3BlbiA+IC5vdXRsaW5lLWl0ZW0gPiAub3V0bGluZS1leHBhbmRlcjo6YmVmb3JlIHsgY29udGVudDogXFxcIuKIklxcXCI7IH1cXG4udHlwb3JhLWV4cG9ydC1jb2xsYXBzZS1vdXRsaW5lIC5vdXRsaW5lLWNoaWxkcmVuIHsgZGlzcGxheTogbm9uZTsgfVxcbi50eXBvcmEtZXhwb3J0LWNvbGxhcHNlLW91dGxpbmUgLm91dGxpbmUtaXRlbS1vcGVuID4gLm91dGxpbmUtY2hpbGRyZW4sIC50eXBvcmEtZXhwb3J0LW5vLWNvbGxhcHNlLW91dGxpbmUgLm91dGxpbmUtY2hpbGRyZW4geyBkaXNwbGF5OiBibG9jazsgfVxcbi50eXBvcmEtZXhwb3J0LW5vLWNvbGxhcHNlLW91dGxpbmUgLm91dGxpbmUtZXhwYW5kZXI6OmJlZm9yZSB7IGNvbnRlbnQ6IFxcXCJcXFwiICFpbXBvcnRhbnQ7IH1cXG4udHlwb3JhLWV4cG9ydC1zaG93LW91dGxpbmUgLm91dGxpbmUtaXRlbS1hY3RpdmUgPiAub3V0bGluZS1pdGVtIC5vdXRsaW5lLWxhYmVsIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxcbi5tZC1pbmxpbmUtbWF0aC1jb250YWluZXIgbWp4LWNvbnRhaW5lciB7IHpvb206IDAuOTU7IH1cXG5cXG5cXG4uQ29kZU1pcnJvciB7IGhlaWdodDogYXV0bzsgfVxcbi5Db2RlTWlycm9yLmNtLXMtaW5uZXIgeyBiYWNrZ3JvdW5kOiBpbmhlcml0OyB9XFxuLkNvZGVNaXJyb3Itc2Nyb2xsIHsgb3ZlcmZsb3c6IGF1dG8gaGlkZGVuOyB6LWluZGV4OiAzOyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlciwgLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgfVxcbi5Db2RlTWlycm9yLWd1dHRlcnMgeyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2IoMjIxLCAyMjEsIDIyMSk7IGJhY2tncm91bmQ6IGluaGVyaXQ7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG4uQ29kZU1pcnJvci1saW5lbnVtYmVyIHsgcGFkZGluZzogMHB4IDNweCAwcHggNXB4OyB0ZXh0LWFsaWduOiByaWdodDsgY29sb3I6IHJnYigxNTMsIDE1MywgMTUzKTsgfVxcbi5jbS1zLWlubmVyIC5jbS1rZXl3b3JkIHsgY29sb3I6IHJnYigxMTksIDAsIDEzNik7IH1cXG4uY20tcy1pbm5lciAuY20tYXRvbSwgLmNtLXMtaW5uZXIuY20tYXRvbSB7IGNvbG9yOiByZ2IoMzQsIDE3LCAxNTMpOyB9XFxuLmNtLXMtaW5uZXIgLmNtLW51bWJlciB7IGNvbG9yOiByZ2IoMTcsIDEwMiwgNjgpOyB9XFxuLmNtLXMtaW5uZXIgLmNtLWRlZiB7IGNvbG9yOiByZ2IoMCwgMCwgMjU1KTsgfVxcbi5jbS1zLWlubmVyIC5jbS12YXJpYWJsZSB7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IH1cXG4uY20tcy1pbm5lciAuY20tdmFyaWFibGUtMiB7IGNvbG9yOiByZ2IoMCwgODUsIDE3MCk7IH1cXG4uY20tcy1pbm5lciAuY20tdmFyaWFibGUtMyB7IGNvbG9yOiByZ2IoMCwgMTM2LCA4NSk7IH1cXG4uY20tcy1pbm5lciAuY20tc3RyaW5nIHsgY29sb3I6IHJnYigxNzAsIDE3LCAxNyk7IH1cXG4uY20tcy1pbm5lciAuY20tcHJvcGVydHkgeyBjb2xvcjogcmdiKDAsIDAsIDApOyB9XFxuLmNtLXMtaW5uZXIgLmNtLW9wZXJhdG9yIHsgY29sb3I6IHJnYigxNTIsIDI2LCAyNik7IH1cXG4uY20tcy1pbm5lciAuY20tY29tbWVudCwgLmNtLXMtaW5uZXIuY20tY29tbWVudCB7IGNvbG9yOiByZ2IoMTcwLCA4NSwgMCk7IH1cXG4uY20tcy1pbm5lciAuY20tc3RyaW5nLTIgeyBjb2xvcjogcmdiKDI1NSwgODUsIDApOyB9XFxuLmNtLXMtaW5uZXIgLmNtLW1ldGEgeyBjb2xvcjogcmdiKDg1LCA4NSwgODUpOyB9XFxuLmNtLXMtaW5uZXIgLmNtLXF1YWxpZmllciB7IGNvbG9yOiByZ2IoODUsIDg1LCA4NSk7IH1cXG4uY20tcy1pbm5lciAuY20tYnVpbHRpbiB7IGNvbG9yOiByZ2IoNTEsIDAsIDE3MCk7IH1cXG4uY20tcy1pbm5lciAuY20tYnJhY2tldCB7IGNvbG9yOiByZ2IoMTUzLCAxNTMsIDExOSk7IH1cXG4uY20tcy1pbm5lciAuY20tdGFnIHsgY29sb3I6IHJnYigxNywgMTE5LCAwKTsgfVxcbi5jbS1zLWlubmVyIC5jbS1hdHRyaWJ1dGUgeyBjb2xvcjogcmdiKDAsIDAsIDIwNCk7IH1cXG4uY20tcy1pbm5lciAuY20taGVhZGVyLCAuY20tcy1pbm5lci5jbS1oZWFkZXIgeyBjb2xvcjogcmdiKDAsIDAsIDI1NSk7IH1cXG4uY20tcy1pbm5lciAuY20tcXVvdGUsIC5jbS1zLWlubmVyLmNtLXF1b3RlIHsgY29sb3I6IHJnYigwLCAxNTMsIDApOyB9XFxuLmNtLXMtaW5uZXIgLmNtLWhyLCAuY20tcy1pbm5lci5jbS1ociB7IGNvbG9yOiByZ2IoMTUzLCAxNTMsIDE1Myk7IH1cXG4uY20tcy1pbm5lciAuY20tbGluaywgLmNtLXMtaW5uZXIuY20tbGluayB7IGNvbG9yOiByZ2IoMCwgMCwgMjA0KTsgfVxcbi5jbS1uZWdhdGl2ZSB7IGNvbG9yOiByZ2IoMjIxLCA2OCwgNjgpOyB9XFxuLmNtLXBvc2l0aXZlIHsgY29sb3I6IHJnYigzNCwgMTUzLCAzNCk7IH1cXG4uY20taGVhZGVyLCAuY20tc3Ryb25nIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxcbi5jbS1kZWwgeyB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxcbi5jbS1lbSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxcbi5jbS1saW5rIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cXG4uY20tZXJyb3IgeyBjb2xvcjogcmVkOyB9XFxuLmNtLWludmFsaWRjaGFyIHsgY29sb3I6IHJlZDsgfVxcbi5jbS1jb25zdGFudCB7IGNvbG9yOiByZ2IoMzgsIDEzOSwgMjEwKTsgfVxcbi5jbS1kZWZpbmVkIHsgY29sb3I6IHJnYigxODEsIDEzNywgMCk7IH1cXG5kaXYuQ29kZU1pcnJvciBzcGFuLkNvZGVNaXJyb3ItbWF0Y2hpbmdicmFja2V0IHsgY29sb3I6IHJnYigwLCAyNTUsIDApOyB9XFxuZGl2LkNvZGVNaXJyb3Igc3Bhbi5Db2RlTWlycm9yLW5vbm1hdGNoaW5nYnJhY2tldCB7IGNvbG9yOiByZ2IoMjU1LCAzNCwgMzQpOyB9XFxuLmNtLXMtaW5uZXIgLkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZDogaW5oZXJpdDsgfVxcbi5Db2RlTWlycm9yIHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB9XFxuLkNvZGVNaXJyb3Itc2Nyb2xsIHsgaGVpZ2h0OiAxMDAlOyBvdXRsaW5lOiAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm94LXNpemluZzogY29udGVudC1ib3g7IGJhY2tncm91bmQ6IGluaGVyaXQ7IH1cXG4uQ29kZU1pcnJvci1zaXplciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbi5Db2RlTWlycm9yLWd1dHRlci1maWxsZXIsIC5Db2RlTWlycm9yLWhzY3JvbGxiYXIsIC5Db2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXIsIC5Db2RlTWlycm9yLXZzY3JvbGxiYXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDY7IGRpc3BsYXk6IG5vbmU7IG91dGxpbmU6IDBweDsgfVxcbi5Db2RlTWlycm9yLXZzY3JvbGxiYXIgeyByaWdodDogMHB4OyB0b3A6IDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbi5Db2RlTWlycm9yLWhzY3JvbGxiYXIgeyBib3R0b206IDBweDsgbGVmdDogMHB4OyBvdmVyZmxvdzogYXV0byBoaWRkZW47IH1cXG4uQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyIHsgcmlnaHQ6IDBweDsgYm90dG9tOiAwcHg7IH1cXG4uQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyIHsgbGVmdDogMHB4OyBib3R0b206IDBweDsgfVxcbi5Db2RlTWlycm9yLWd1dHRlcnMgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyB6LWluZGV4OiAzOyBvdmVyZmxvdy15OiBoaWRkZW47IH1cXG4uQ29kZU1pcnJvci1ndXR0ZXIgeyB3aGl0ZS1zcGFjZTogbm9ybWFsOyBoZWlnaHQ6IDEwMCU7IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyBwYWRkaW5nLWJvdHRvbTogMzBweDsgbWFyZ2luLWJvdHRvbTogLTMycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxcbi5Db2RlTWlycm9yLWd1dHRlci13cmFwcGVyIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA0OyBiYWNrZ3JvdW5kOiAwcHggMHB4ICFpbXBvcnRhbnQ7IGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBib3R0b206IDBweDsgei1pbmRleDogNDsgfVxcbi5Db2RlTWlycm9yLWd1dHRlci1lbHQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGN1cnNvcjogZGVmYXVsdDsgei1pbmRleDogNDsgfVxcbi5Db2RlTWlycm9yLWxpbmVzIHsgY3Vyc29yOiB0ZXh0OyB9XFxuLkNvZGVNaXJyb3IgcHJlIHsgYm9yZGVyLXJhZGl1czogMHB4OyBib3JkZXItd2lkdGg6IDBweDsgYmFja2dyb3VuZDogMHB4IDBweDsgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogaW5oZXJpdDsgbWFyZ2luOiAwcHg7IHdoaXRlLXNwYWNlOiBwcmU7IG92ZXJmbG93LXdyYXA6IG5vcm1hbDsgY29sb3I6IGluaGVyaXQ7IHotaW5kZXg6IDI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IHZpc2libGU7IH1cXG4uQ29kZU1pcnJvci13cmFwIHByZSB7IG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgd29yZC1icmVhazogbm9ybWFsOyB9XFxuLkNvZGVNaXJyb3ItY29kZSBwcmUgeyBib3JkZXItcmlnaHQ6IDMwcHggc29saWQgdHJhbnNwYXJlbnQ7IHdpZHRoOiBmaXQtY29udGVudDsgfVxcbi5Db2RlTWlycm9yLXdyYXAgLkNvZGVNaXJyb3ItY29kZSBwcmUgeyBib3JkZXItcmlnaHQ6IG5vbmU7IHdpZHRoOiBhdXRvOyB9XFxuLkNvZGVNaXJyb3ItbGluZWJhY2tncm91bmQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwcHg7IHotaW5kZXg6IDA7IH1cXG4uQ29kZU1pcnJvci1saW5ld2lkZ2V0IHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyOyBvdmVyZmxvdzogYXV0bzsgfVxcbi5Db2RlTWlycm9yLXdyYXAgLkNvZGVNaXJyb3Itc2Nyb2xsIHsgb3ZlcmZsb3cteDogaGlkZGVuOyB9XFxuLkNvZGVNaXJyb3ItbWVhc3VyZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cXG4uQ29kZU1pcnJvci1tZWFzdXJlIHByZSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cXG4uQ29kZU1pcnJvciBkaXYuQ29kZU1pcnJvci1jdXJzb3IgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHZpc2liaWxpdHk6IGhpZGRlbjsgYm9yZGVyLXJpZ2h0OiBub25lOyB3aWR0aDogMHB4OyB9XFxuLkNvZGVNaXJyb3IgZGl2LkNvZGVNaXJyb3ItY3Vyc29yIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XFxuLkNvZGVNaXJyb3ItZm9jdXNlZCBkaXYuQ29kZU1pcnJvci1jdXJzb3IgeyB2aXNpYmlsaXR5OiBpbmhlcml0OyB9XFxuLmNtLXNlYXJjaGluZyB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDAsIDAuNCk7IH1cXG5zcGFuLmNtLXVuZGVybGluZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxcbnNwYW4uY20tc3RyaWtldGhyb3VnaCB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XFxuLmNtLXR3LXN5bnRheGVycm9yIHsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MywgMCwgMCk7IH1cXG4uY20tdHctZGVsZXRlZCB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XFxuLmNtLXR3LWhlYWRlcjUgeyBmb250LXdlaWdodDogNzAwOyB9XFxuLmNtLXR3LWxpc3RpdGVtOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XFxuLmNtLXR3LWJveCB7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1jb2xvcjogaW5oZXJpdDsgYm9yZGVyLXRvcC13aWR0aDogMHB4ICFpbXBvcnRhbnQ7IH1cXG4uY20tdHctdW5kZXJsaW5lIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgLkNvZGVNaXJyb3IgZGl2LkNvZGVNaXJyb3ItY3Vyc29yIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XFxufVxcblxcblxcbjpyb290IHtcXG4gICAgLS1wcmltYXJ5LWNvbG9yOiAjMzczNTJmO1xcbiAgICAtLWJnLWNvbG9yOiAjZmZmZmZmO1xcbiAgICAtLWJnLWNvbG9yLWRhcms6ICNmN2Y2ZjM7XFxuICAgIC0tZGFyay10cmFpdDogI2U5ZTllNztcXG4gICAgLS1saWdodC10cmFpdC0xMDA6ICNlY2VkZWM7XFxuICAgIC0tbGlnaHQtdHJhaXQtMjAwOiAjYzcwMDAwO1xcbiAgICAtLWxpZ2h0LXRyYWl0LTMwMDogIzM3MzUyZjtcXG4gICAgLS1saWdodC10cmFpdC00MDA6ICNmN2Y2ZjM7XFxuICAgIC0tdGV4dC1jb2xvcjogIzM3MzUyZjtcXG4gICAgLS10ZXh0LWNvbG9yLXNlY29uZGFyeTogIzczNzI2ZTtcXG4gICAgLS10ZXh0LWhpZ2hsaWdodC1jb2xvcjogI2ZmZjtcXG4gICAgLS10ZXh0LWhpZ2hsaWdodC1iZzogcmdiYSh2YXIoLS1wcmltYXJ5LWNvbG9yLXJnYiksIDAuMyk7XFxuICAgIC0tc2VsZWN0LXRleHQtYmctY29sb3I6ICNjMGU1ZjQ7XFxuXFx0LS1zZWFyY2gtc2VsZWN0LXRleHQtY29sb3I6IzQ0ODM2MTtcXG4gICAgLS1zZWFyY2gtc2VsZWN0LWJnLWNvbG9yOiAjZWRmM2VjO1xcbiAgICAtLWNvZGUtY29sb3I6ICM5YTZlM2E7XFxuICAgIC0tYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICAtLWZvbnQtc2l6ZTogMTZweDtcXG4gICAgLS1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBIZWx2ZXRpY2EsIFxcXCJBcHBsZSBDb2xvciBFbW9qaVxcXCIsIEFyaWFsLCBzYW5zLXNlcmlmLCBcXFwiU2Vnb2UgVUkgRW1vamlcXFwiLCBcXFwiU2Vnb2UgVUkgU3ltYm9sXFxcIjtcXG4gICAgLS1tb25vc3BhY2U6ICdTRiBNb25vIE1lZGl1bScsICdGaXJhIENvZGUnLCAnQ291c2luZScsICdDb25zb2xhcycsIG1vbm9zcGFjZTtcXG4gICAgLS1oZWFkaW5nLWNoYXItY29sb3I6IHZhcigtLWxpZ2h0LXRyYWl0LTQwMCk7XFxuICAgIC0tY29sb3ItcG9wb3Zlci1iZy1jb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIC0tcmF3YmxvY2stZWRpdC1wYW5lbC1iZDogdmFyKC0tYmctY29sb3ItZGFyayk7XFxuICAgIC0tY29udHJvbC10ZXh0LWNvbG9yOiAjNzI3MDZiO1xcbiAgICAtLW1ldGEtY29udGVudC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XFxuICAgIC0tcHJpbWFyeS1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcXG4gICAgLS1zaWRlLWJhci1iZy1jb2xvcjogdmFyKC0tYmctY29sb3ItZGFyayk7XFxuICAgIC0taXRlbS1ob3Zlci1iZy1jb2xvcjogI2U4ZTdlNDtcXG4gICAgLS1hY3RpdmUtZmlsZS1iZy1jb2xvcjogI2U4ZTdlNDtcXG4gICAgLS1hY3RpdmUtZmlsZS1ib3JkZXItY29sb3I6IHZhcigtLWJnLWNvbG9yKTtcXG4gICAgLS13aW5kb3ctYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYmctY29sb3IpO1xcbiAgICAtLWZvY3VzLXJpbmctY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5odG1sIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG5cXG5ib2R5IHtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcXG59XFxuXFxuY29kZSB7XFxuICAgIGNvbG9yOiAjZWM1NzU3O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZGViO1xcbiAgICBwYWRkaW5nOiAwIDJweCAwIDJweDtcXG59XFxuXFxuI3dyaXRlIHtcXG4gICAgbWF4LXdpZHRoOiA4NjBweDtcXG4gICAgbWFyZ2luOiAwIGF1dG87XFxuICAgIHBhZGRpbmc6IDMwcHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDAwcHgpIHtcXG4gICAgI3dyaXRlIHtcXG4gICAgICAgIG1heC13aWR0aDogMTAyNHB4O1xcbiAgICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTgwMHB4KSB7XFxuICAgICN3cml0ZSB7XFxuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcXG4gICAgfVxcbn1cXG5cXG4jd3JpdGU+dWw6Zmlyc3QtY2hpbGQsICN3cml0ZT5vbDpmaXJzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi10b3A6IDMwcHg7XFxufVxcblxcbmEge1xcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XFxufVxcblxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG1hcmdpbi10b3A6IDJyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XFxuICAgIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuaDE6aG92ZXIgYS5hbmNob3IsIGgyOmhvdmVyIGEuYW5jaG9yLCBoMzpob3ZlciBhLmFuY2hvciwgaDQ6aG92ZXIgYS5hbmNob3IsIGg1OmhvdmVyIGEuYW5jaG9yLCBoNjpob3ZlciBhLmFuY2hvciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG59XFxuXFxuaDEgdHQsIGgxIGNvZGUsIGgyIHR0LCBoMiBjb2RlLCBoMyB0dCwgaDMgY29kZSwgaDQgdHQsIGg0IGNvZGUsIGg1IHR0LCBoNSBjb2RlLCBoNiB0dCwgaDYgY29kZSB7XFxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG59XFxuXFxuaDEge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XFxuICAgIGZvbnQtc2l6ZTogMi4yZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XFxufVxcblxcbmgyIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xcbiAgICBmb250LXNpemU6IDEuNzVlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMjI1O1xcbn1cXG5cXG5oMyB7XFxuICAgIGZvbnQtc2l6ZTogMS40ZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xcbn1cXG5cXG5oNCB7XFxuICAgIGZvbnQtc2l6ZTogMS4yZW07XFxufVxcblxcbmg1IHtcXG4gICAgZm9udC1zaXplOiAxZW07XFxufVxcblxcbmg2IHtcXG4gICAgZm9udC1zaXplOiAxZW07XFxuICAgIGNvbG9yOiB2YXIoLS1saWdodC10cmFpdC0zMDApO1xcbn1cXG5cXG5wLCBibG9ja3F1b3RlLCB1bCwgb2wsIGRsLCB0YWJsZSB7XFxuICAgIG1hcmdpbjogMC44ZW0gMDtcXG59XFxuXFxubGk+b2wsIGxpPnVsIHtcXG4gICAgbWFyZ2luOiAwIDA7XFxufVxcblxcbmhyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtdHJhaXQtMTAwKTtcXG4gICAgaGVpZ2h0OiAxLjVweDtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbmEsXFxuLm1kLWRlZi11cmwge1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYm9yZGVyLWJvdHRvbTowLjA1ZW0gc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogIzM3MzUyZjtcXG4gICAgb3BhY2l0eTowLjY7XFxuICAgIHRyYW5zaXRpb246IGFsbCAuMXMgZWFzZS1pbjsgXFxufVxcblxcbmE6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIG9wYWNpdHk6MTtcXG59XFxuXFxuc3VwLm1kLWZvb3Rub3RlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtdHJhaXQtNDAwKTtcXG4gICAgY29sb3I6ICM4ODg4ODQ7XFxufVxcblxcbmxpIHAuZmlyc3Qge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcblxcbnVsLCBvbCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG59XFxuXFxudWw6Zmlyc3QtY2hpbGQsIG9sOmZpcnN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXRvcDogMC4zNSU7XFxufVxcblxcbnVsOmxhc3QtY2hpbGQsIG9sOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG5cXG5tYXJrLCAudHktZmlsZS1zZWFyY2gtbWF0Y2gtdGV4dCwgLm1kLXNlYXJjaC1oaXQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmRlYmVjO1xcblxcdGNvbG9yOiAjZDQ0YzQ3O1xcbn1cXG5cXG5tYXJrIHtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBjb2xvcjogIzQwMmMxYjtcXG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGVjYzg7XFxuICAgIHBhZGRpbmctbGVmdDogNHB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgIHBhZGRpbmctdG9wOiAycHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAycHg7XFxuICAgIG1hcmdpbi1yaWdodDogMnB4O1xcbn1cXG5cXG4ubWQtc2VhcmNoLWhpdCAqIHtcXG4gICAgY29sb3I6IHZhcigtLXNlYXJjaC1zZWxlY3QtdGV4dC1jb2xvcik7XFxufVxcblxcbi8qIFNlYXJjaCBoaWdobGlnaHQgKi9cXG4uY20tc2VhcmNoLWhpdC5Db2RlTWlycm9yLXNlbGVjdGVkdGV4dCwgLm1kLXNlYXJjaC1oaXQubWQtc2VhcmNoLXNlbGVjdCwgLm1kLXNlYXJjaC1zZWxlY3Qge1xcbiAgICBvdXRsaW5lOiAwcHggc29saWQgdmFyKC0tc2VhcmNoLXNlbGVjdC10ZXh0LWNvbG9yKTtcXG59XFxuXFxuLm91dGxpbmUtaXRlbS5zZWxlY3QsIC50eS1zZWFyY2gtaXRlbS1saW5lLnNlbGVjdCwgLnR5LXNlYXJjaC1pdGVtLnNlbGVjdCB7XFxuICAgIG91dGxpbmUtd2lkdGg6IDJweDtcXG59XFxuXFxuLm91dGxpbmUtaXRlbS5zZWxlY3Qge1xcbiAgICBvdXRsaW5lLW9mZnNldDogMHB4O1xcbn1cXG5cXG5ibG9ja3F1b3RlIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNzVweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XFxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIHBhZGRpbmc6IDEwcHggMTRweCA3cHggMjJweDtcXG59XFxuXFxuYmxvY2txdW90ZSBibG9ja3F1b3RlIHtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuXFxudGFibGUge1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB3b3JkLWJyZWFrOiBpbml0aWFsO1xcbn1cXG5cXG50YWJsZSB0ciB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXJrLXRyYWl0KTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbn1cXG5cXG50YWJsZSB0ciB0aCB7XFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLXRyYWl0KTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiA2cHggMTNweDtcXG59XFxuXFxudGFibGUgdHIgdGQge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLXRyYWl0KTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiA2cHggMTNweDtcXG59XFxuXFxudGFibGUgdHIgdGg6Zmlyc3QtY2hpbGQsIHRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG59XFxuXFxudGFibGUgdHIgdGg6bGFzdC1jaGlsZCwgdGFibGUgdHIgdGQ6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxufVxcblxcblxcbmtiZCB7XFxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLWRhcmspO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLXRyYWl0KTtcXG4gICAgYm94LXNoYWRvdzogMCAycHggMCB2YXIoLS1kYXJrLXRyYWl0KTtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTtcXG59XFxuXFxuLm1kLWZlbmNlcywgY29kZSwgdHQge1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y2ZjM7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbiAgICBwYWRkaW5nOiAycHggNHB4IDBweCA0cHg7XFxuICAgIGZvbnQtc2l6ZTogMC45NzVlbTtcXG4gICAgZm9udC13ZWlnaHQ6IG1lZGl1bTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSlcXG59XFxuLm1kLWZlbmNlcyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XFxuICAgIG1hcmdpbi10b3A6IDE1cHg7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XFxufVxcblxcbiN3cml0ZSBwcmUubWQtbWV0YS1ibG9jayB7XFxuICAgIHBhZGRpbmc6IDFyZW07XFxuICAgIGZvbnQtc2l6ZTogODUlO1xcbiAgICBsaW5lLWhlaWdodDogMS40NTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3ItZGFyayk7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7XFxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG59XFxuXFxuI3dyaXRlIC5tYXRoamF4LWJsb2NrIC5tZC1yYXdibG9jay10b29sdGlwIHtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG59XFxuXFxuI3dyaXRlIC5tYXRoamF4LWJsb2NrIC5tZC1tYXRoLWNvbnRhaW5lciB7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbn1cXG5cXG4jd3JpdGUgLm1kLW1hdGhibG9jay1wYW5lbCAubWQtcmF3YmxvY2stY29udHJvbDpmaXJzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxufVxcblxcbi5tZC1tYXRoamF4LW1pZGxpbmUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvcik7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG59XFxuXFxuLm1kLWlubGluZS1tYXRoIHNjcmlwdCB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2RlLWNvbG9yKTtcXG59XFxuXFxuLkNvZGVNaXJyb3ItbGluZXMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDtcXG59XFxuXFxuLmNvZGUtdG9vbHRpcCB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbn1cXG5cXG4jd3JpdGUgLmNvZGUtdG9vbHRpcCB7XFxuICAgIGJvdHRvbTogaW5pdGlhbDtcXG4gICAgdG9wOiAxMDAlO1xcbiAgICBsZWZ0OiBpbml0aWFsO1xcbiAgICByaWdodDogLTFweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmctY29sb3ItZGFyayk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstdHJhaXQpO1xcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLXRvcDogMDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7XFxufVxcblxcbiN3cml0ZSAubWQtbWF0aGJsb2NrLXBhbmVsIC5jb2RlLXRvb2x0aXAge1xcbiAgICByaWdodDogMDtcXG4gICAgYm9yZGVyOiBub25lO1xcbn1cXG5cXG4vKiBUT0RPICovXFxuI3dyaXRlIC5tZC10YXNrLWxpc3QtaXRlbT5pbnB1dCB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogaW5pdGlhbDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIC8qIGJvcmRlci1yYWRpdXM6IDEwMCU7ICovXFxuICAgIG1hcmdpbi1sZWZ0OiAtMS40NXJlbTtcXG4gICAgaGVpZ2h0OiAwLjk1cmVtO1xcbiAgICB3aWR0aDogMC45NXJlbTtcXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMzVzO1xcbn1cXG5cXG4jd3JpdGUgLm1kLXRhc2stbGlzdC1pdGVtPmlucHV0OmZvY3VzIHtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuXFxuI3dyaXRlIC5tZC10YXNrLWxpc3QtaXRlbT5pbnB1dFtjaGVja2VkXSB7XFxuICAgIGJhY2tncm91bmQ6ICMyZWFhZGM7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyZWFhZGM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xcbn1cXG5cXG4jd3JpdGUgLm1kLXRhc2stbGlzdC1pdGVtPmlucHV0W2NoZWNrZWRdOjpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGNvbnRlbnQ6ICfinJMnO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIG1hcmdpbi10b3A6IDAuMDVyZW07XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgdGV4dC1hbGlnbjogYWJzb2x1dGU7XFxuICAgIGNvbG9yOiB2YXIoLS1iZy1jb2xvcik7XFxuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xcbiAgICBmb250LXdlaWdodDogNzYwO1xcbn1cXG5cXG4jd3JpdGUgLm1kLXRhc2stbGlzdC1pdGVtPmlucHV0W2NoZWNrZWRdOjphZnRlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xcbn1cXG5cXG4vKiBUT0RPICovXFxuLm1kLWltYWdlPi5tZC1tZXRhIHtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuICAgIHBhZGRpbmc6IDJweCAwcHggMHB4IDRweDtcXG4gICAgZm9udC1zaXplOiAwLjllbTtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxufVxcblxcbi5tZC10b2Mge1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcXG59XFxuXFxuLyogU291cmNlIG1vZGUgKi9cXG4uQ29kZU1pcnJvci5jbS1zLXR5cG9yYS1kZWZhdWx0ICosIC5jbS1zLXR5cG9yYS1kZWZhdWx0ICoge1xcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vc3BhY2UpO1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSkgIWltcG9ydGFudDtcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogbWVkaXVtO1xcbn1cXG5cXG4uQ29kZU1pcnJvci5jbS1zLXR5cG9yYS1kZWZhdWx0IGRpdi5Db2RlTWlycm9yLWN1cnNvciB7XFxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tdGV4dC1jb2xvcik7XFxufVxcblxcbi5zaWRlYmFyLXRhYnMge1xcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xcbn1cXG5cXG4ub3V0bGluZS1leHBhbmRlciB7XFxuICAgIHdpZHRoOiAxLjVyZW07XFxuICAgIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xcbn1cXG5cXG4ub3V0bGluZS1leHBhbmRlcjpiZWZvcmUsIC5vdXRsaW5lLWV4cGFuZGVyOmhvdmVyOmJlZm9yZSwgLm91dGxpbmUtaXRlbS1vcGVuPi5vdXRsaW5lLWl0ZW0+Lm91dGxpbmUtZXhwYW5kZXI6YmVmb3JlLCAub3V0bGluZS1pdGVtLW9wZW4+Lm91dGxpbmUtaXRlbT4ub3V0bGluZS1leHBhbmRlcjpob3ZlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXGYxMjVcXFwiO1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTI1bXMgZWFzZS1pbi1vdXQ7XFxufVxcblxcbi5vdXRsaW5lLWl0ZW0tb3Blbj4ub3V0bGluZS1pdGVtPi5vdXRsaW5lLWV4cGFuZGVyOmhvdmVyOmJlZm9yZSwgLm91dGxpbmUtaXRlbS1vcGVuPi5vdXRsaW5lLWl0ZW0+Lm91dGxpbmUtZXhwYW5kZXI6YmVmb3JlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbn1cXG5cXG4ub3V0bGluZS1sYWJlbDpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG59XFxuXFxuI3RvYy1kcm9wbWVudSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLWRhcmspO1xcbn1cXG5cXG4jdG9jLWRyb3BtZW51IC5vdXRsaW5lLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG5cXG4uZHJvcGRvd24tbWVudSAuZGl2aWRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbi5jb250ZXh0LW1lbnUge1xcbiAgICBib3JkZXI6IG5vbmUhaW1wb3J0YW50O1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCkgYnJpZ2h0bmVzcygxLjEpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1kYXJrKTtcXG4gICAgYm94LXNoYWRvdzogMCAyNS42cHggNTcuNnB4IDAgcmdiYSgwLCAwLCAwLCAuMjIpLCAwIDQuOHB4IDE0LjRweCAwIHJnYmEoMCwgMCwgMCwgLjE4KSFpbXBvcnRhbnQ7XFxufVxcblxcbi5maWxlLW5vZGUtYmFja2dyb3VuZCB7XFxuICAgIGhlaWdodDogMzFweDtcXG59XFxuXFxuLmZpbGUtbm9kZS1jb250ZW50OmhvdmVyIC5maWxlLW5vZGUtaWNvbiwgLmZpbGUtbm9kZS1jb250ZW50OmhvdmVyIC5maWxlLW5vZGUtb3Blbi1zdGF0ZSB7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcblxcbi5maWxlLW5vZGUtaWNvbiB7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5cXG4uZmlsZS1saWJyYXJ5LW5vZGU6bm90KC5maWxlLW5vZGUtcm9vdCk6Zm9jdXM+LmZpbGUtbm9kZS1jb250ZW50IHtcXG4gICAgb3V0bGluZTogbm9uZTtcXG59XFxuXFxuLyogTmV3IGZpbGUgYW5pbWF0aW9uICovXFxuLmJsaW5rLWFyZWEge1xcbiAgICBhbmltYXRpb246IG5vbmU7XFxufVxcblxcbi5maWxlLWxpc3QtaXRlbS1zdW1tYXJ5IHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xcbn1cXG5cXG4jbWQtc2VhcmNocGFuZWwgaW5wdXQge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuXFxuI21kLXNlYXJjaHBhbmVsIGlucHV0OmZvY3VzIHtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZXRhLWNvbnRlbnQtY29sb3IpO1xcbn1cXG5cXG4jbWQtc2VhcmNocGFuZWwgLnNlYXJjaC10eXBlLXNlbGVjdGlvbiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbn1cXG5cXG4jbWQtc2VhcmNocGFuZWwgLmJ0bjpub3QoLmNsb3NlLWJ0bik6aG92ZXIge1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG5cXG4ubWFjLXNlYW1sZXNzLW1vZGUgI3R5cG9yYS1zaWRlYmFyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZS1iYXItYmctY29sb3IpO1xcbn1cXG5cXG4jbWQtbm90aWZpY2F0aW9uIC5idG4ge1xcbiAgICBib3JkZXI6IDA7XFxufVxcblxcbi8qIENPREUgSElHSExJR0hUICovXFxucHJlLkNvZGVNaXJyb3ItbGluZSB7XFxuICAgIGNvbG9yOiAjOTk5OTk5IWltcG9ydGFudFxcbn1cXG5cXG4uY20tdmFyaWFibGUge1xcbiAgICBjb2xvcjogIzM3MzUyZiFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1rZXl3b3JkIHtcXG4gICAgY29sb3I6ICMwMjc3YWEgIWltcG9ydGFudFxcbn1cXG5cXG4uY20tdGFnIHtcXG4gICAgY29sb3I6ICNmZjVhNWEhaW1wb3J0YW50XFxufVxcblxcbi5jbS12YXJpYWJsZS0zIHtcXG4gICAgY29sb3I6ICM0OGZmMDAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tYnJhY2tldCwgLmNtLWVycm9yIHtcXG4gICAgY29sb3I6ICNmZjVhNWEhaW1wb3J0YW50XFxufVxcblxcbi5jbS1hdHRyaWJ1dGUge1xcbiAgICBjb2xvcjogIzAyNzdhYSFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1kZWYge1xcbiAgICBjb2xvcjogI2RjNGE2OCFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1jb21tZW50IHtcXG4gICAgY29sb3I6ICM3MDgwOTAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tc3RyaW5nIHtcXG4gICAgY29sb3I6ICM2Njk5MDAhaW1wb3J0YW50O1xcbiAgICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBjb21tb24tbGlnYXR1cmVzIWltcG9ydGFudDtcXG59XFxuXFxuLmNtLXRhZzpub3QoKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcblxcbi5jbS1vcGVyYXRvciB7XFxuICAgIGNvbG9yOiAjOWE2ZTNiIWltcG9ydGFudDtcXG59XFxuXFxuLmNtLW51bWJlciB7XFxuICAgIGNvbG9yOiAjOTkwMDU1IWltcG9ydGFudDtcXG59XFxuXFxuLmNtLW1ldGEge1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcikgIWltcG9ydGFudDtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMCFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1hdG9tIHsgY29sb3I6ICM4NDVkYzQ7IH1cXG5cXG4uY20tYnVpbHRpbiB7XFxuICAgIGNvbG9yOiAjNjY5OTAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1wcm9wZXJ0eSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tdmFyaWFibGUtMiB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKSAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tdmFyaWFibGUtMyB7XFxuICAgIGNvbG9yOiAjODQ1ZGM0O1xcbn1cXG5cXG4vKiBDT0RFIEhJR0hMSUdIVCAqL1xcbi5maWxlLXRyZWUtbm9kZS5hY3RpdmU+LmZpbGUtbm9kZS1iYWNrZ3JvdW5kIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWN0aXZlLWZpbGUtYmctY29sb3IpO1xcbiAgICBib3JkZXItbGVmdDogMHB4IHNvbGlkICNkYWQ5ZDYhaW1wb3J0YW50O1xcbiAgICBib3JkZXItY29sb3I6ICNkYWQ5ZDYhaW1wb3J0YW50O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlN2U0IWltcG9ydGFudDtcXG59XFxuXFxuLkNvZGVNaXJyb3ItZ3V0dGVycyB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmMWYzZjQ1MDtcXG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuXFxuLnR5LWZvb3RlciwgLnNpZGViYXItZm9vdGVyLCBmb290ZXIge1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEyMCUpIGJsdXIoMjBweCkgYnJpZ2h0bmVzcygwLjg1KTtcXG4gICAgYm9yZGVyOiBub25lIWltcG9ydGFudDtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjZmMztcXG59XFxuXFxuLmNvZGUtdG9vbHRpcCB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMxMzMzNDtcXG4gICAgYm94LXNoYWRvdzogMCAyNS42cHggNTcuNnB4IDAgcmdiYSgwLCAwLCAwLCAuNTIpLCAwIDQuOHB4IDE0LjRweCAwIHJnYmEoMCwgMCwgMCwgLjI4KSFpbXBvcnRhbnQ7XFxufVxcblxcbiNzaWRlYmFyLWZpbGVzLW1lbnUge1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIGJvcmRlcjogbm9uZSFpbXBvcnRhbnQ7XFxuICAgIGJveC1zaGFkb3c6IDAgMjUuNnB4IDU3LjZweCAwICNmN2Y2ZjMsIDAgNC44cHggMTQuNHB4IDAgcmdiYSgwLCAwLCAwLCAuMjgpO1xcbn1cXG5cXG4uY29kZS10b29sdGlwLm1kLXRvb2x0aXAtaGlkZS5tZC1ob3Zlci10aXAge1xcbiAgICBib3gtc2hhZG93OiAwIDI1LjZweCA1Ny42cHggMCByZ2JhKDAsIDAsIDAsIC41MiksIDAgNC44cHggMTQuNHB4IDAgcmdiYSgwLCAwLCAwLCAuMjgpO1xcbn1cXG5cXG4jdHlwb3JhLXNpZGViYXIge1xcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuXFxuI2Zvb3Rlci13b3JkLWNvdW50LWluZm8sICNzcGVsbC1jaGVjay1wYW5lbCB7XFxuICAgIGJvcmRlcjogbm9uZSFpbXBvcnRhbnQ7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTIwJSkgYmx1cigyMHB4KSBicmlnaHRuZXNzKDAuODUpIWltcG9ydGFudDtcXG4gICAgYm94LXNoYWRvdzogMCAyNS42cHggNTcuNnB4IDAgcmdiYSgwLCAwLCAwLCAuMzIpLCAwIDQuOHB4IDE0LjRweCAwIHJnYmEoMCwgMCwgMCwgLjI4KSFpbXBvcnRhbnQ7XFxufVxcblxcbi8qIFdpbmRvd3MvTGludXggdW5pYm9keSBtb2RlICovXFxuLm1lZ2FtZW51LWNvbnRlbnQsXFxuLm1lZ2FtZW51LW9wZW5lZCBoZWFkZXIge1xcbiAgICBjb2xvcjogIHZhcigtLXByaW1hcnktY29sb3IpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2xvci1kYXJrKTtcXG59XFxuXFxuI3JlY2VudC1maWxlLXBhbmVsLWFjdGlvbi1idG4ge1xcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgICBib3JkZXI6IDFweCB2YXIoLS1saWdodC10cmFpdC0zMDApIHNvbGlkO1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0YWJsZSB0ZDpudGgtY2hpbGQoMSkge1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLWRhcmspO1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0YWJsZSB0ZDpudGgtY2hpbGQoMikge1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLWRhcmspO1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0Ym9keSB0cjpob3ZlciB0ZDpudGgtY2hpbGQoMSkge1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxuICAgIGJhY2tncm91bmQ6IHZhciggLS1hY3RpdmUtZmlsZS1iZy1jb2xvcik7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LXBhbmVsIHRib2R5IHRyOmhvdmVyIHRkOm50aC1jaGlsZCgyKSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKCAtLWFjdGl2ZS1maWxlLWJnLWNvbG9yKTtcXG59XFxuXFxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgaW5wdXRbdHlwZT0ndGV4dCddIHtcXG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gICAgYm9yZGVyOiAxcHggdmFyKC0tY29udHJvbC10ZXh0LWNvbG9yKSBzb2xpZDtcXG59XFxuXFxuI3JlY2VudC1maWxlLXBhbmVsLWFjdGlvbi1idG4ge1xcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudSwgLm1lZ2FtZW51LWNvbnRlbnQge1xcblxcdGJhY2tncm91bmQ6IHZhcigtLXNpZGUtYmFyLWJnLWNvbG9yKTtcXG5cXHRjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxufVxcblxcbiN0b3AtdGl0bGViYXIsICN0b3AtdGl0bGViYXIgKiB7XFxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuXFx0Y29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1oZWFkZXIgI21lZ2FtZW51LW1lbnUtaGVhZGVyLXRpdGxlOmJlZm9yZSB7XFxuXFx0Y29sb3I6ICB2YXIoLS10ZXh0LWNvbG9yKTtcXG59XFxuXFxubWVnYW1lbnUtYmFjay1idG4ge1xcblxcdGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG5cXHRib3JkZXItY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1oZWFkZXIgI21lZ2FtZW51LW1lbnUtaGVhZGVyLXRpdGxlLFxcbi5tZWdhbWVudS1tZW51LWhlYWRlcjpob3ZlcixcXG4ubWVnYW1lbnUtbWVudS1oZWFkZXI6Zm9jdXMge1xcblxcdGNvbG9yOiBpbmhlcml0O1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0YWJsZSB0cjpudGgtY2hpbGQoMm4gKyAxKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICB2YXIoLS1zaWRlLWJhci1iZy1jb2xvcik7XFxufVxcblxcblxcbjwvc3R5bGU+PHRpdGxlPuS9v+eUqOivtOaYjjwvdGl0bGU+XFxuPC9oZWFkPlxcbjxib2R5IGNsYXNzPSd0eXBvcmEtZXhwb3J0IG9zLXdpbmRvd3MnPjxkaXYgY2xhc3M9J3R5cG9yYS1leHBvcnQtY29udGVudCc+XFxuPGRpdiBpZD0nd3JpdGUnICBjbGFzcz0nJz48YmxvY2txdW90ZT48aDEgaWQ9J+WJjeiogCc+PHNwYW4+5YmN6KiAPC9zcGFuPjwvaDE+PHA+PHNwYW4+5L2/55So6K+05piO5pyJ54K56ZW/77yM6K+36Ieq6KGM6YCJ5oup5qih5Z2X6L+b6KGM6Lez6L2s6ZiF6K+744CC5pys5L2/55So6K+05piO5LiN5LuF5YaZ5LqGZG3nm5LlrZDnmoTkuIDkupvkuovpobnvvIzkuZ/kuIDlrprnqIvluqbkuIrkvZzkuoblhbPkuo7op6PmnpDlkozmlq3mj5LnmoTor7TmmI7jgILmjqjojZDplb/mjInkuIvmlrnnmoTnm67lvZXntKLlvJXnq6DoioLnhLblkI7lnKjlvLnmoYbpgInmi6nmiZPlvIDnvZHpobXigJTigJQmZ3Q777yI5Lya5Zyo5rWP6KeI5Zmo5omT5byA5bm26Lez6L2s5Yiw55u45bqU55qE56ug6IqC77yM5pSv5oyB6aG16Z2i57yp5pS+77yJ55qE5pa55byP6L+b6KGM6ZiF6K+744CCPC9zcGFuPjwvcD48L2Jsb2NrcXVvdGU+PGRpdiBjbGFzcz0nbWQtdG9jJyBtZHR5cGU9J3RvYyc+PHAgY2xhc3M9XFxcIm1kLXRvYy1jb250ZW50XFxcIiByb2xlPVxcXCJsaXN0XFxcIj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMVxcXCIgZGF0YS1yZWY9XFxcIm43XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5L2V5Li6ZG3nm5LlrZBcXFwiPuS9leS4umRt55uS5a2QPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMVxcXCIgZGF0YS1yZWY9XFxcIm4yNVxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+WmguS9leS9v+eUqFxcXCI+5aaC5L2V5L2/55SoPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yNlxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI3g15YWs6ZKl5ZKManNvbuWFrOmSpVxcXCI+eDXlhazpkqXlkoxqc29u5YWs6ZKlPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yOVxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+mAmuWFjeWFrOmSpVxcXCI+6YCa5YWN5YWs6ZKlPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm40MVxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+aWreaPkuWFrOmSpVxcXCI+5pat5o+S5YWs6ZKlPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm40NFxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+iBmuWQiOWHveaVsOaWsOeJiOW3suenu+mZpFxcXCI+6IGa5ZCI5Ye95pWw44CQ5paw54mI5bey56e76Zmk44CRPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm41MFxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+mjnuS8oOaWsFxcXCI+6aOe5Lyg44CQ5paw44CRPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yOThcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPliLfmlrDlhazpkqXmlofku7ZcXFwiPuWIt+aWsOWFrOmSpeaWh+S7tjwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDFcXFwiIGRhdGEtcmVmPVxcXCJuNTZcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPlhazpkqXmnKzotKhcXFwiPuWFrOmSpeacrOi0qDwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDFcXFwiIGRhdGEtcmVmPVxcXCJuODRcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPlsI/nmb3np5Hmma5cXFwiPuWwj+eZveenkeaZrjwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuODVcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPkvZXosJPop6PmnpBcXFwiPuS9leiwk+ino+aekDwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuMTI2XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj6Kej5p6Q5LuO5ZOq5p2lXFxcIj7op6PmnpDku47lk6rmnaU8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjE2NlxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+S4gOS7veaZruaOpea4heWNlVxcXCI+5LiA5Lu95pmu5o6l5riF5Y2VPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4xODlcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPkvZXosJPmlq3mj5ItLS0tLS3prZTmlq1cXFwiPuS9leiwk+aWreaPkuKAlOKAlCZndDvprZTmlq08L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjE5MlxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+mtlOaWreeahOS9v+eUqFxcXCI+6a2U5pat55qE5L2/55SoPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yMDNcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPkvZXosJNjbXPmqKHmnb9cXFwiPuS9leiwk0NNU+aooeadvzwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuMjE5XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5L2V6LCT5pat5o+S57G75bCP56iL5bqPXFxcIj7kvZXosJPmlq3mj5LnsbvlsI/nqIvluo88L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjIyMlxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+S9leiwk+mAmuWFjeWwj+eoi+W6j1xcXCI+5L2V6LCT6YCa5YWN5bCP56iL5bqPPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yMjRcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPkvZXosJPlhY3ll4XlsI/nqIvluo9cXFwiPuS9leiwk+WFjeWXheWwj+eoi+W6jzwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDFcXFwiIGRhdGEtcmVmPVxcXCJuMjI4XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj6ZqQ6JeP5pON5L2cXFxcIj7pmpDol4/mk43kvZw8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjIyOVxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+WFrOmSpeS4juengemSpVxcXCI+5YWs6ZKl5LiO56eB6ZKlPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yMzNcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPpo57nk5zlvLnluZXlupNcXFwiPumjnueTnOW8ueW5leW6kzwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDFcXFwiIGRhdGEtcmVmPVxcXCJuMjU4XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5rOo5oSP5LqL6aG5XFxcIj7ms6jmhI/kuovpobk8L2E+PC9zcGFuPjwvcD48L2Rpdj48cD4mbmJzcDs8L3A+PHA+Jm5ic3A7PC9wPjxoMSBpZD0n5L2V5Li6ZG3nm5LlrZAnPjxzcGFuPuS9leS4umRt55uS5a2QPC9zcGFuPjwvaDE+PHVsPjxsaT48cD48c3Bhbj5kbeebkuWtkO+8jOWPiOWQjeW8ueW5leebkuWtkO+8jOWGhemDqOWwgeijheS6huW8ueW5leWHveaVsOOAgjwvc3Bhbj48L3A+PC9saT48bGk+PHA+PHNwYW4+ZG3nm5LlrZDlj6rmmK/kuIDkuKrmlLbnurNkbeaVsOaNrueahOebkuWtkO+8jOS4jeaPkOS+m+WcqOe6v+aSreaUvuWSjOWcsOWdgOmHh+mbhuWKn+iDveOAgjwvc3Bhbj48L3A+PC9saT48bGk+PHA+PHNwYW4+ZG3nm5LlrZDmj5Dkvps8L3NwYW4+PGNvZGU+5YWs6ZKlPC9jb2RlPjxzcGFuPuWPr+S7peiuqeino+aekOacrOi6q+aLpeacieS7jmRt55uS5a2Q6I635Y+W5pWw5o2u55qE6IO95YqbPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPuS7pOaJgOacieaWreaPkuexu+eahOWwj+eoi+W6j+mDveiDveeVheS6q+W8ueW5leKAlOKAlCZndDvkuI3lho3lsYDpmZDkuo7kuKrliKvnmoTlsI/nqIvluo88L3NwYW4+PC9saT48bGk+PHNwYW4+5YWs6ZKl5a+5eDXll4XmjqLnmoTmma7pgJrmjqXlj6Plkoxqc29u5o6l5Y+j6YO95pSv5oyB4oCU4oCUJmd0O+ino+WGs+S8mOi0qHg15peg5rOV5L2/55So6Zeu6aKYPC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48cD48c3Bhbj5kbeebkuWtkOWPr+S7peS+m+WklumDqOWwj+eoi+W6j+eugOWNleiwg+eUqDwvc3Bhbj48L3A+PC9saT48bGk+PHA+PHNwYW4+ZG3nm5LlrZDlj6/ku6XmlK/mjIHojrflj5blvLnluZXmlofku7blubbku6V4bWzmoLzlvI/liIbkuqvigJTigJTmlrnkvr/lnKjlhbbku5borr7lpIfkuIrmlK/mjIHliqDovb3lvLnluZXnmoTmkq3mlL7lmajkuIrliqDovb3mkq3mlL7vvIzkvovlpoLigJzlvLnlvLlQbGF54oCdPC9zcGFuPjwvcD48L2xpPjwvdWw+PHA+PHNwYW4+5aaC5LiK5omA6L+w77yMPC9zcGFuPjxzdHJvbmc+PHNwYW4+ZG3nm5LlrZDmiZPnoLTkuoblsI/nqIvluo/kuYvpl7TnmoTlo4HlnpLvvIzorqnlvLnluZXog73lnKjlkITkuKrlsI/nqIvluo/oh6rnlLHmtYHliqg8L3NwYW4+PC9zdHJvbmc+PHNwYW4+77yM5aaC5q2k5LiA5p2l77yM5by55bmV5Yqf6IO95Lmf5bCx5LiN5pi+5b6X5Y+q5piv5LiA5Liq6KOF6aWw5oCn55qE5Yqf6IO95LqG44CC5o6o6I2Q6YWN5ZCI5L2/55So55qE5pat5o+S57G75bCP56iL5bqP5pyJ5paw55Wq44CB5pCc54uXUeOAgWNtc+Wwj+eoi+W6j+etieetieOAguiHs+S6juWmguS9leiOt+WPluWwj+eoi+W6j++8jOeci+i/memHjO+8mijpg6jliIbop4TliJnnlLHkvZzogIXpmZDml7bliIbkuqvvvIzkuI3lj6/lvLrmsYJ+KTwvc3Bhbj48L3A+PHA+PHNwYW4+54K55Ye76ZO+5o6l5p+l55yLUVHpopHpgZPluJblrZDjgJDlsI/nmb3liJ3lhaXpl6gt5paw5omL5YWl6Zeo77yM5aaC5L2V6I635Y+W5bCP56iL5bqP44CR77yaPC9zcGFuPjxhIGhyZWY9J2h0dHBzOi8vcXVuLnFxLmNvbS9xcXdlYi9xdW5wcm8vc2hhcmU/X3d2PTMmYW1wO193d3Y9MTI4JmFtcDthcHBDaGFubmVsPXNoYXJlJmFtcDtpbnZpdGVDb2RlPTF3QnZzMSZhbXA7YXBwQ2hhbm5lbD1zaGFyZSZhbXA7Y29udGVudElEPVRqVUEmYW1wO2J1c2luZXNzVHlwZT0yJmFtcDtmcm9tPTI0NjYxMCZhbXA7Yml6PWthJmFtcDtzaGFyZVNvdXJjZT01JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9xdW4ucXEuY29tL3Fxd2ViL3F1bnByby9zaGFyZT9fd3Y9MyZfd3d2PTEyOCZhcHBDaGFubmVsPXNoYXJlJmludml0ZUNvZGU9MXdCdnMxJmFwcENoYW5uZWw9c2hhcmUmY29udGVudElEPVRqVUEmYnVzaW5lc3NUeXBlPTImZnJvbT0yNDY2MTAmYml6PWthJnNoYXJlU291cmNlPTU8L2E+PC9wPjxwPiZuYnNwOzwvcD48aDEgaWQ9J+WmguS9leS9v+eUqCc+PHNwYW4+5aaC5L2V5L2/55SoPC9zcGFuPjwvaDE+PGgyIGlkPSd4NeWFrOmSpeWSjGpzb27lhazpkqUnPjxzcGFuPng15YWs6ZKl5ZKManNvbuWFrOmSpTwvc3Bhbj48L2gyPjxwPjxzcGFuPueCueWHu+eUn+aIkHg15YWs6ZKl5ZKManNvbuWFrOmSpe+8jOaMieagvOW8j+Whq+WGme+8jOa3u+WKoOS6huWFrOmSpeeahOino+aekOWPo+WwhuS8muWkjeWItuWIsOWJquWIh+adv++8jOeCueWHu+mtlOaWremFjee9rueEtuWQjua3u+WKoOWNs+WPr+S9v+eUqDwvc3Bhbj48L3A+PHA+PHNwYW4+5L2/55So5re75Yqg5LqG5YWs6ZKl55qE6Kej5p6Q5Y+j5Y676Kej5p6Q6KeG6aKR5peg6KeG6KeE5YiZ77yI54m55Yir5rOo5oSP5b+F6aG75YWz6Zet5paw55Wq55qE5by55bmV5byA5YWz77yb5LiN5pSv5oyB6a2U5pat5aSa57q/6Lev77yJ77yM6YO95Y+v5Lul6I635Y+W5by55bmV5pWw5o2uPC9zcGFuPjwvcD48aDIgaWQ9J+mAmuWFjeWFrOmSpSc+PHNwYW4+6YCa5YWN5YWs6ZKlPC9zcGFuPjwvaDI+PHA+PHNwYW4+6YCa5YWN5YWs6ZKl5piv5LiA5Liq6IO96LCD5Y+WZG3nm5LlrZDmlbDmja7nmoTll4XmjqLmqKHlvI/nmoTliqjmgIHop6PmnpDmqKHmnb88L3NwYW4+PC9wPjxwPjxzcGFuPuWPqumcgOimgTwvc3Bhbj48c3Ryb25nPjxzcGFuPuabv+aNojwvc3Bhbj48L3N0cm9uZz48c3Bhbj7njrDmnInpgJrlhY3lsI/nqIvluo/nmoTliqjmgIHop6PmnpDnmoRsYXp55Y2z5Y+v44CC5Li+5Liq5L6L5a2Q5L6L5aaC57uZMTkyMOmAmuWFjeWwj+eoi+W6j+abv+aNomxhennvvJo8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vZmE5OGYyMzg2YjdmN2M3M2RmMGZjNjFkMGVmMGQ5MGYyNDBmZWQyZi5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyMjIzNTEzOTY2OFxcXCI+PC9wPjxwPjxzcGFuPuaIkOWTgeWwj+eoi+W6j+WmguS4i++8mjwvc3Bhbj48L3A+PHByZSBjbGFzcz1cXFwibWQtZmVuY2VzIG1kLWVuZC1ibG9jayB0eS1jb250YWluLWNtIG1vZGVMb2FkZWRcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiBsYW5nPVxcXCJ0ZXh0XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcInRleHRcXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PHNwYW4+PHNwYW4+4oCLPC9zcGFuPng8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj5odHRwczovL2NtZC5pbS9jNDY1PC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY20tdGV4dD1cXFwiXFxcIiBjbS16d3NwPVxcXCJcXFwiPlxcbjwvc3Bhbj48L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj7lsI/nqIvluo/vvJoxOTIwcGtpPC9zcGFuPjwvcHJlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAwcHg7IHdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB0cmFuc3BhcmVudDsgdG9wOiA3NHB4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiA3NHB4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+PHNwYW4+5L2G5piv6L+Z5Liq5Yqo5oCB6Kej5p6Q5qih5p2/5aaC5p6c5aWX5ZyodXJs5Yqg5a+G55qE6YCa5YWN5bCP56iL5bqP6YKj5LmI5bCG5peg5rOV5Yy56YWN5Yiw5by55bmV5pWw5o2u77yM5L6L5aaC5b2x6KeG5bel5Y6C77yM5aaC5LiL5Zu+5omA56S6PC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzMzMzhkOGNlOGE2N2U3MDBiZmYwYmRlODI1NzlkZjM3Y2RjYzdkM2YucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjUwOTE5MDk1OTFcXFwiPjwvcD48cD48c3Bhbj7kvYbliqjmgIHop6PmnpDmqKHmnb/kvp3ml6flj6/nlKjvvIzkvp3ml6fkvJrmjInnhaflvLnluZXmoLzlvI/mi7zmjqXpk77mjqXov5Tlm57pooTnlZnnmoTlvLnluZXmjqXlj6Pmlrnkvr/oh6rlt7HmiYvliqjmt7vliqDlvLnluZXmlbDmja7vvIjor7fpmIXor7vpmpDol4/mk43kvZwt6aOe55Oc5by55bmV5bqT6YOo5YiG77yJ77yM6Z2e5bi46YCC5ZCI5LyY6LSo5YiH54mH6Lev57q/55qE6YCa5YWN5bCP56iL5bqP77yM6YKj5LmI55u05o6l5aWX5bCx5piv5LqG77yI5aaC5p6c5LiN5oeC5LuA5LmI5piv5YiH54mH77yM6K+36ZiF6K+75bCP55m956eR5pmu6YOo5YiG77yJ44CCPC9zcGFuPjwvcD48cD48bWFyaz48c3Bhbj5UaXDvvJrpgJrlhY3lhazpkqXlpZfnlKjnmoTmmK/pgJrnlKjljLnphY3mqKHmnb/vvIzlr7nkuo7pnIDopoHlpKfph4/or7fmsYLlj4LmlbDmr5TlpoJVQeOAgXJlZmVyZXLjgIFjb29raWXnrYnnmoTlsJHpg6jliIbop4bpopHll4XmjqLlh7rmnaXnmoTpk77mjqXml6Dms5XmraPluLjmkq3mlL7jgILpppnlhY3mmoLml7bmkJ7kuI3lrprvvIzlhYjnlKjljLnphY3pobbnnYDjgII8L3NwYW4+PC9tYXJrPjxzcGFuPuS9k+eOsOWcqOS4iuaWueWwj+eoi+W6j+eahOWwseaYr+iKkuaenOe6v+i3r+WHoOS5juS4jeWPr+aSreaUvu+8jOS9huW5tuS4jeaYr+Wll+i/meS4quWKqOaAgeino+aekOiKkuaenOe6v+i3r+WwseaXoOazleaSreaUvu+8jOWPquaYr+S4iuaWueWwj+eoi+W6j+eahOiKkuaenOe6v+i3r+aJgOeUqOino+aekO+8jOmAmueUqOWMuemFjeaXoOazleWXheaOouW+l+WIsOWPr+aSreaUvumTvuaOpeOAguWDj+S4i+aWueWwj+eoi+W6j+WwseWPr+S7pe+8iOavlOi+g+S4jemUmeS6hu+8ie+8mjwvc3Bhbj48L3A+PHByZSBjbGFzcz1cXFwibWQtZmVuY2VzIG1kLWVuZC1ibG9jayB0eS1jb250YWluLWNtIG1vZGVMb2FkZWRcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiBsYW5nPVxcXCJ0ZXh0XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcInRleHRcXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PHByZT48c3Bhbj54eHh4eHh4eHh4PC9zcGFuPjwvcHJlPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1jb2RlXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItbGluZWJhY2tncm91bmRcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlclxcXCIgc3R5bGU9XFxcImxlZnQ6IDBweDsgd2lkdGg6IDBweDtcXFwiPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+aHR0cHM6Ly9jbWQuaW0vNmZoazwvc3Bhbj48L3ByZT48L2Rpdj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPjxzcGFuIGNtLXRleHQ9XFxcIlxcXCIgY20tendzcD1cXFwiXFxcIj5cXG48L3NwYW4+PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+5bCP56iL5bqP77yaQUJtb3ZpZWRtUEtJPC9zcGFuPjwvcHJlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAwcHg7IHdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB0cmFuc3BhcmVudDsgdG9wOiA3NHB4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiA3NHB4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+Jm5ic3A7PC9wPjxoMiBpZD0n5pat5o+S5YWs6ZKlJz48c3Bhbj7mlq3mj5LlhazpkqU8L3NwYW4+PC9oMj48cD48c3Bhbj7mlq3mj5LlhazpkqXmmK/osIPnlKjmlq3mj5LmqKHlvI/nmoTliqjmgIHop6PmnpDmqKHmnb/jgII8L3NwYW4+PG1hcms+PHNwYW4+5b+F6aG75pCt6YWNeDXlhazpkqXmiJbogIVqc29u5YWs6ZKl5aWX5aOz55qE6Kej5p6Q5Y+j5L2/55So5omN6IO96I635Y+W5by55bmV5pWw5o2u5ZCm5YiZ5bCx5ZKM5pmu6YCa55qE5pat5o+S5LqM57qn5beu5LiN5aSa77yM5Zug5Li65aaC5p6c55u05o6l6K6+572u5pat5o+S6ZmE5Yqg5by55bmV55qE5qih5byP6YKj5LmI5bCx5Lya5ZKM5re75Yqg5LqG5YWs6ZKl55qE6Kej5p6Q5Y+j5Y+R55Sf5pWw5o2u5Yay56qB77yM5LiN5aaC55u05o6l57uZ5o6l5Y+j5re75Yqg5YWs6ZKl5pSv5oyB77yM5L2V5b+F6K6p5pat5o+S5Yqo5oCB6Kej5p6Q5Y2V54us5a6e546wPC9zcGFuPjwvbWFyaz48c3Bhbj7jgILkuI7pgJrlhY3lhazpkqXlkIznkIbvvIx1cmzliqDlr4bnmoTpgJrlhY3lsI/nqIvluo/pgqPkuYjlsIbml6Dms5XljLnphY3liLDlvLnluZXmlbDmja7jgILmraTlpJbmlq3mj5LlhazpkqU8L3NwYW4+PHN0cm9uZz48c3Bhbj7lj6rmnInlrpjmlrnnur/ot6/miY3kvJrotbDmlq3mj5I8L3NwYW4+PC9zdHJvbmc+PHNwYW4+77yM5YW25L2Z5YiH54mH5ZKM55u06ZO+57q/6Lev6YO95piv5ZeF5o6i44CCPC9zcGFuPjwvcD48cD4mbmJzcDs8L3A+PGgyIGlkPSfogZrlkIjlh73mlbDmlrDniYjlt7Lnp7vpmaQnPjxzcGFuPuiBmuWQiOWHveaVsOOAkOaWsOeJiOW3suenu+mZpOOAkTwvc3Bhbj48L2gyPjxwPjxzcGFuPmpzb27ogZrlkIjlh73mlbDvvIzlj6/ku6Xovr7liLDprZTmlq3lpJrnur/ot6/mlYjmnpzjgILlm6DkuLrlkozprZTmlq3lpJrnur/ot6/lhrLnqoHvvIzmt7vliqDov5nkuKrmqKHlnZfkvr/mjbfnlJ/miJDogZrlkIjlh73mlbDjgJDlkozprZTmlq3kuIDmoLflj6rmlK/mjIFqc29u44CRPC9zcGFuPjwvcD48cD48c3Bhbj7lj6ropoHmjInmoLzlvI/ovpPlhaXlsLHlj6/ku6XkuobvvIzpgJflj7fmmK/kuK3mlofnmoTpgJflj7fvvIwj5Lmf5piv5Lit5paH55qE77yI6Jm954S26LKM5Ly85rKh5pyJ5Yy65Yir77yJ44CQ5rOo5oSP77ya5ZKManNvbuWFrOmSpeWQjOeQhu+8jOiBmuWQiOWHveaVsOeUn+aIkOWQjumcgOimgeiHquihjOS/ruaUueeJueauimpzb27nmoTlj5blh7p1cmzmlrnlvI/vvIzor6bop4HlhazpkqXmnKzotKjjgJE8L3NwYW4+PC9wPjxwPjxzcGFuPui+k+WFpeWujOWQjueCueehruWumueUn+aIkOeahOiBmuWQiOWHveaVsOS8muWkjeWItuWIsOWJqui0tOadv++8jOWGjeeCueWHu+mtlOaWremFjee9ruW/q+aNt+i3s+i9rOeymOi0tOWcqOi+k+WFpeahhueCueWHu+S/neWtmOWNs+WPr+a3u+WKoOa3u+WKoOiBmuWQiOWHveaVsOino+aekOmFjee9ruOAgjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS9iYjU3NTZjNzBkZDE0M2E3ZTk2MjJkYzQwZGQwNTE3ZjNjNmM5ZmI0LnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjI1MDE0OTE5MzgzXFxcIj48L3A+PHA+Jm5ic3A7PC9wPjxoMiBpZD0n6aOe5Lyg5pawJz48c3Bhbj7po57kvKDjgJDmlrDjgJE8L3NwYW4+PC9oMj48cD48c3Bhbj7ovpPlhaXlrpjnvZHlnLDlnYDvvIzljbPlj6/ojrflj5blvLnluZXmlofku7blubbovazmjaLkuLp4bWzmoLzlvI/lvLnluZXmlofku7blv6vmjbfliIbkuqvliLDlhbblroPorr7lpIfmlK/mjIHliqDovb3lvLnluZXnmoTmkq3mlL7lmajov5vooYzmkq3mlL7jgII8L3NwYW4+PC9wPjxwPjxzcGFuPuWumOe9keWcsOWdgOW7uuiuruS4jeimgeaQuuW4puWQjumdoueahOWPguaVsO+8mjwvc3Bhbj48L3A+PHA+PHNwYW4+5L6L5aaC6L+Z5qC35LiA5Liq5a6Y572R6ZO+5o6l77yaPC9zcGFuPjxhIGhyZWY9J2h0dHBzOi8vd3d3LmlxaXlpLmNvbS92XzF5bmxwcWJhaXAwLmh0bWw/dmZybT1wY3dfaG9tZSZhbXA7dmZybWJsaz1CJmFtcDt2ZnJtcnN0PWZjc18wX3AxMScgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSd1cmwnPmh0dHBzOi8vd3d3LmlxaXlpLmNvbS92XzF5bmxwcWJhaXAwLmh0bWw/dmZybT1wY3dfaG9tZSZ2ZnJtYmxrPUImdmZybXJzdD1mY3NfMF9wMTE8L2E+PC9wPjxwPjxzcGFuPuS9oOW6lOivpei+k+WFpeeahOaYr++8mjwvc3Bhbj48YSBocmVmPSdodHRwczovL3d3dy5pcWl5aS5jb20vdl8xeW5scHFiYWlwMC5odG1sJyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly93d3cuaXFpeWkuY29tL3ZfMXlubHBxYmFpcDAuaHRtbDwvYT48L3A+PHA+PHNwYW4+5o6o6I2Q5L2/55SoPC9zcGFuPjxzdHJvbmc+PHNwYW4+5by55by5UGxheeaSreaUvuWZqDwvc3Bhbj48L3N0cm9uZz48c3Bhbj7vvIzmnInnnYDlrozlloTnmoTlvLnluZXov4fmu6Tlip/og73vvIzlpoLkuIvvvJo8L3NwYW4+PC9wPjxwPjxzcGFuPumHjeimgeeahOWPguaVsOiuvue9ruekuuS+i++8jDwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS81YmM4ZmVlOTk5YWUyMzE5YzUzN2UyYjY3ZmUxODM5MDdlMDJmMGJjLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS84YzY5MzRlYzE3YmVmMDFjY2QzYjEwNmVkMWNhZTA5ZmRmMTFlNTExLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIj48L3A+PHA+PHNwYW4+5Zug5Li66I635Y+W5Yiw55qE5by55bmV5pWw6YeP6Z2e5bi45aSa77yM5Zug5q2k6L+Z5Liq6K6+572u6Z2e5bi45b+F6KaB77yBPC9zcGFuPjwvcD48YmxvY2txdW90ZT48cD48c3Bhbj7mnIDmlrDniYjnmoTlvLnlvLlQbGF55pSv5oyB5Liy5rWB5pKt5pS+77yM5omA5Lul5o6o6I2Q6Zi/6YeM5LqR55uY5bCP55m9576K5L+d5a2Y6KeG6aKR5Yiw572R55uY5bm26K6+572u5by55by5UGxheeS4uum7mOiupOesrOS4ieaWueaSreaUvuWZqO+8jOmCo+S5iOWwseWPr+S7peS4jemcgOimgeS4i+i9veinhumikeWIsOacrOWcsO+8jOiAjOebtOaOpee9keebmOaSreaUvuW5tuWKoOi9veW8ueW5lTwvc3Bhbj48L3A+PHA+PHNwYW4+44CQ6ZmE77ya5by55by5UGxheem7mOiupOaUr+aMgeS4gOS6m+WKqOa8q+ermeOAgeiFvuiur+OAgeWlh+W8guOAgWJpbGnlkoxiaWxp5ryr5ri45by55bmV77yM5YW25Lit6IW+6K6v5ZKM5aWH5byC6ZyA6KaB5omL5Yqo6L6T5YWl572R5Z2A77yM5ZOU5ZOp5Y+v5Lul55u05o6l5pCc57Si44CRPC9zcGFuPjwvcD48L2Jsb2NrcXVvdGU+PGgyIGlkPSfliLfmlrDlhazpkqXmlofku7YnPjxzcGFuPuWIt+aWsOWFrOmSpeaWh+S7tjwvc3Bhbj48L2gyPjxwPjxzcGFuPuWFrOmSpeeahOi/nOeoi+S7o+eggeWfuuS6jui/nOeoi++8jOWmguaenOWPkeeUn+WPmOWKqOWPr+iDveW9seWTjeS9v+eUqO+8jOi/meaXtuWAmeWPr+S7peS9v+eUqOeCueWHu2Rt55uS5a2Q55qE6aaW6aG15qyi6L+O5Zu+5qGI5Y2z5Y+v5riF6Zmk57yT5a2YPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtL2JjNzZiODYyZmNjMmQ5NjQ2ZmNhODdlOTcyZjRmMGY1NGZmOTU5OWIucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjUwMTE5Mjk2MjZcXFwiPjwvcD48cD48c3Bhbj7lhbblrp7kuI3nlKjnkIbkvJrvvIzlm6DkuLrkuIDoiKzmg4XlhrXkuIvkuI3kvJrliqjov5znqIvmlofku7bvvIzogIzkuJTlvojlpKflj6/og73mnKrmnaXlvojplb/lvojplb/kuIDmrrXml7bpl7Tpg73kuI3kvJrmnInmm7TmlrDvvIzvvIw8L3NwYW4+PC9wPjxwPjxzcGFuPuWmguiLpea4hemZpOe8k+WtmOWQjuWPkeeOsOmAmuWFjeWwj+eoi+W6j+ayoeacieWIt+aWsO+8jOWPr+S7peWJjeW+gOS9v+eUqOS6humAmuWFjeWFrOmSpeeahOebuOW6lOWwj+eoi+W6j+mVv+aMieWwj+eoi+W6j+agh+mimO+8jOeEtuWQjuWcqOW8ueahhuS4remAieaLqea4hemZpOe8k+WtmOWNs+WPr+OAgjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS8yMTkzMTRmNzM1NDc3NjlhZGM1MzFkZmQzOTU2YjIyYjhhNmI2NDQzLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjI1MjMzNDQ0MDYzXFxcIj48L3A+PGgxIGlkPSflhazpkqXmnKzotKgnPjxzcGFuPuWFrOmSpeacrOi0qDwvc3Bhbj48L2gxPjxwPjxzcGFuPuWFtuWunuaJgOiwk+WFrOmSpeWwseaYr+S4k+mXqOS4uuino+aekOiwg+eUqGRt55uS5a2Q5YaF5by55bmV5pWw5o2u6ICM5YaZ55qE5LiA5Liq5Ye95pWw77yM5YiG5Li6eDXlkoxqc29u5Ye95pWw77yM6YKj5LmI55+l6YGT5LqG5YWs6ZKl5pys6LSo5LmL5ZCO5a6M5YWo5LiN6ZyA6KaB5YCf5YqpZG3nm5LlrZDoh6rluKbnmoTnlJ/miJDlhazpkqXmqKHlnZfvvIzlj6/ku6Xoh6rlt7HloavlhYXmjqXlj6PmiJborrjkvJrmm7Tkvr/mjbfjgII8L3NwYW4+PG1hcms+PHNwYW4+5Y+q6ZyA6KaB6K6w5L2P5LiA54K577yMZG3nm5LlrZDlj6rmmK/kuIDkuKrmlLbnurNkbeaVsOaNrueahOebkuWtkO+8gTwvc3Bhbj48L21hcms+PHNwYW4+5YWs6ZKl5aOz5a2Q5aaC5LiL77yaPC9zcGFuPjwvcD48dWw+PGxpPjxwPjxzcGFuPng15YWs6ZKlPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IHN0eWxlPVxcXCJvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcHg7IGhlaWdodDogMHB4OyB0b3A6IDEwLjRweDsgbGVmdDogOHB4O1xcXCI+PHRleHRhcmVhIGF1dG9jb3JyZWN0PVxcXCJvZmZcXFwiIGF1dG9jYXBpdGFsaXplPVxcXCJvZmZcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiB0YWJpbmRleD1cXFwiMFxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMWVtOyBwYWRkaW5nOiAwcHg7IHdpZHRoOiAxMDAwcHg7IGhlaWdodDogMWVtOyBvdXRsaW5lOiBub25lO1xcXCI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbFxcXCIgdGFiaW5kZXg9XFxcIi0xXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNpemVyXFxcIiBzdHlsZT1cXFwibWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4O1xcXCI+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbGluZXNcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IG91dGxpbmU6IG5vbmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1jb2RlXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItbGluZWJhY2tncm91bmRcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlclxcXCIgc3R5bGU9XFxcImxlZnQ6IDBweDsgd2lkdGg6IDBweDtcXFwiPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj7kv67mlLnimIXlkI3np7DimIU8L3NwYW4+PC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPmZ1bmN0aW9uPC9zcGFuPiAoPHNwYW4gY2xhc3M9XFxcImNtLWRlZlxcXCI+dmlwVXJsPC9zcGFuPikgezwvc3Bhbj48L3ByZT48ZGl2IGNsYXNzPVxcXCJcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPnRyeTwvc3Bhbj4gezwvc3Bhbj48L3ByZT48L2Rpdj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj5vcmlnaW5Vcmw8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1vcGVyYXRvclxcXCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+J+ino+aekOaOpeWPoyc8L3NwYW4+PHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj4rPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZS0yXFxcIj52aXBVcmw8L3NwYW4+Ozwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPnJjPC9zcGFuPig8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwiaHR0cHM6Ly9jaGVueWluZzIuY29kaW5nLm5ldC9wL2hpa2VyL2QvanNXaXRoZG0vZ2l0L3Jhdy9tYXN0ZXIveDVQS0kuanNcXFwiPC9zcGFuPiwgPHNwYW4gY2xhc3M9XFxcImNtLW51bWJlclxcXCI+MjQ8L3NwYW4+KTs8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPnJldHVybjwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5nZXRGb3I8L3NwYW4+KDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZS0yXFxcIj52aXBVcmw8L3NwYW4+LDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZS0yXFxcIj5vcmlnaW5Vcmw8L3NwYW4+KTs8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICB9PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+Y2F0Y2g8L3NwYW4+ICg8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj5lPC9zcGFuPikgezwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwiXFxcIjwvc3Bhbj47PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAgfTwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPn08L3NwYW4+PC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDBweDsgd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB0b3A6IDI3M3B4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiAyNzNweDtcXFwiPjwvZGl2PjwvZGl2PjwvZGl2PjwvcHJlPjxwPiZuYnNwOzwvcD48L2xpPjxsaT48cD48c3Bhbj7mma7pgILmgKdqc29u5YWs6ZKlPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IHN0eWxlPVxcXCJvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcHg7IGhlaWdodDogMHB4OyB0b3A6IDEwLjRweDsgbGVmdDogOHB4O1xcXCI+PHRleHRhcmVhIGF1dG9jb3JyZWN0PVxcXCJvZmZcXFwiIGF1dG9jYXBpdGFsaXplPVxcXCJvZmZcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiB0YWJpbmRleD1cXFwiMFxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMWVtOyBwYWRkaW5nOiAwcHg7IHdpZHRoOiAxMDAwcHg7IGhlaWdodDogMWVtOyBvdXRsaW5lOiBub25lO1xcXCI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbFxcXCIgdGFiaW5kZXg9XFxcIi0xXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNpemVyXFxcIiBzdHlsZT1cXFwibWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4O1xcXCI+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbGluZXNcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IG91dGxpbmU6IG5vbmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjxwcmU+eDwvcHJlPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1jb2RlXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItbGluZWJhY2tncm91bmRcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlclxcXCIgc3R5bGU9XFxcImxlZnQ6IDBweDsgd2lkdGg6IDBweDtcXFwiPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj7kv67mlLnimIXlkI3np7DimIU8L3NwYW4+PC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPmZ1bmN0aW9uPC9zcGFuPiAoPHNwYW4gY2xhc3M9XFxcImNtLWRlZlxcXCI+dmlwVXJsPC9zcGFuPikgezwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPnRyeTwvc3Bhbj4gezwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiA8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj5iZnVybDwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj49PC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPkpTT048L3NwYW4+LjxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+cGFyc2U8L3NwYW4+KDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+cmVxdWVzdDwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcIuino+aekOaOpeWPo1xcXCI8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1vcGVyYXRvclxcXCI+Kzwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlLTJcXFwiPnZpcFVybDwvc3Bhbj4sIHs8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tcHJvcGVydHlcXFwiPnRpbWVvdXQ8L3NwYW4+OiA8c3BhbiBjbGFzcz1cXFwiY20tbnVtYmVyXFxcIj41MDAwPC9zcGFuPjwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAgfSkpLjxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+dXJsPC9zcGFuPjs8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5yYzwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcImh0dHBzOi8vY2hlbnlpbmcyLmNvZGluZy5uZXQvcC9oaWtlci9kL2pzV2l0aGRtL2dpdC9yYXcvbWFzdGVyL2pzb25QS0kuanNcXFwiPC9zcGFuPiwgPHNwYW4gY2xhc3M9XFxcImNtLW51bWJlclxcXCI+MjQ8L3NwYW4+KTs8L3NwYW4+PC9wcmU+PGRpdiBjbGFzcz1cXFwiXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPnJldHVybjwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5nZXRGb3I8L3NwYW4+KDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZS0yXFxcIj52aXBVcmw8L3NwYW4+LDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZS0yXFxcIj5iZnVybDwvc3Bhbj4pPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj4rPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCI7e1VzZXItQWdlbnRAJycmYW1wOyZhbXA7UmVmZXJlckAnJ31cXFwiPC9zcGFuPjs8L3NwYW4+PC9wcmU+PC9kaXY+PGRpdiBjbGFzcz1cXFwiXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICB9PC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+Y2F0Y2g8L3NwYW4+ICg8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj5lPC9zcGFuPikgezwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwiXFxcIjwvc3Bhbj47PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAgfTwvc3Bhbj48L3ByZT48ZGl2IGNsYXNzPVxcXCJcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPn08L3NwYW4+PC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDBweDsgd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB0b3A6IDMyMnB4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiAzMjJweDtcXFwiPjwvZGl2PjwvZGl2PjwvZGl2PjwvcHJlPjxwPjxzcGFuPuaZrumAguaAp2pzb27lhazpkqXpkojlr7nlpKfpg6jliIbnmoRqc29u6Kej5p6Q77yManNvbuino+aekOi/lOWbnueahOaVsOaNruWkp+mDqOWIhumDveWPr+S7pemAmui/h+i/meS4quWFrOmSpeWPluWHuuaSreaUvuWcsOWdgCzlhbfkvZPmg4XlhrXlhbfkvZPliIbmnpDjgILkvYbkuI3nrqHlpoLkvZXvvIzlj6ropoHorrDkvY/kv67mlLliZnVybOWPmOmHj+WNs+WPrzwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS8xM2E0NmUyOGVkNTcyOWJkMmJlZGMwZTA3MDc2NDE2ODU5YzVlZDM1LnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDg1OTE0MjE5XFxcIj48L3A+PHA+PHNwYW4+5Li+5Liq5q+U6L6D57u85ZCI55qE5L6L5a2Q77yM5aaC5LiLPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IHN0eWxlPVxcXCJvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcHg7IGhlaWdodDogMHB4OyB0b3A6IDEwLjRweDsgbGVmdDogOHB4O1xcXCI+PHRleHRhcmVhIGF1dG9jb3JyZWN0PVxcXCJvZmZcXFwiIGF1dG9jYXBpdGFsaXplPVxcXCJvZmZcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiB0YWJpbmRleD1cXFwiMFxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMWVtOyBwYWRkaW5nOiAwcHg7IHdpZHRoOiAxMDAwcHg7IGhlaWdodDogMWVtOyBvdXRsaW5lOiBub25lO1xcXCI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbFxcXCIgdGFiaW5kZXg9XFxcIi0xXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNpemVyXFxcIiBzdHlsZT1cXFwibWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4O1xcXCI+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbGluZXNcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IG91dGxpbmU6IG5vbmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjxwcmU+PHNwYW4+eHh4eHh4eHh4eDwvc3Bhbj48L3ByZT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTtcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItY29kZVxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWFjdGl2ZWxpbmVcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCBDb2RlTWlycm9yLWxpbmViYWNrZ3JvdW5kXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItYWN0aXZlbGluZS1ndXR0ZXJcXFwiIHN0eWxlPVxcXCJsZWZ0OiAwcHg7IHdpZHRoOiAwcHg7XFxcIj48L2Rpdj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPjxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1kZWZcXFwiPmJmdXJsPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPj08L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+SlNPTjwvc3Bhbj4uPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj5wYXJzZTwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5yZXF1ZXN0PC9zcGFuPig8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwi6Kej5p6Q5Y+jXFxcIjwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj4rPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPnZpcFVybDwvc3Bhbj4sIHs8c3BhbiBjbGFzcz1cXFwiY20tcHJvcGVydHlcXFwiPmhlYWRlcnM8L3NwYW4+OiB7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+XFxcIlVzZXItQWdlbnRcXFwiPC9zcGFuPjogPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcIuS+i+Wmgu+8jERhcnQvMi4xNCAoZGFydDppbylcXFwiPC9zcGFuPiw8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj5cXFwicmVmZXJlclxcXCI8L3NwYW4+OiA8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwi5aSn5qaC546H5piv572R56uZ5Z+f5ZCNXFxcIjwvc3Bhbj59fSkpLjxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+ZGF0YTwvc3Bhbj4uPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj51cmw8L3NwYW4+Ozwvc3Bhbj48L3ByZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMHB4OyB3aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7IHRvcDogNTBweDtcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyc1xcXCIgc3R5bGU9XFxcImRpc3BsYXk6IG5vbmU7IGhlaWdodDogNTBweDtcXFwiPjwvZGl2PjwvZGl2PjwvZGl2PjwvcHJlPjxwPjxzcGFuPmhlYWRlcuaYr+aQuuW4pueahOiuv+mXruadpea6kOS/oeaBrzwvc3Bhbj48L3A+PHVsPjxsaT48c3Bhbj5Vc2VyLUFnZW5077yaVUHvvIznroDljZXnmoTor7TlsLHmmK/orqnop6PmnpDns7vnu5/liKTmlq3kvaDmmK/ku47lk6rkuKrmtY/op4jlmajorr/pl67nmoTnvZHnq5npobXpnaLvvIzmm7TlpJror7foh6rooYznmb7luqY8L3NwYW4+PC9saT48bGk+PHNwYW4+6Zmk5LqGVUHvvIzov5jmnIlSZWZlcmVy5Y+C5pWw77ya5Y2z5p2l5rqQ77yM566A5Y2V55qE6K+05bCx5piv6K6p6Kej5p6Q57O757uf5Yik5pat5L2g5piv5LuO5ZOq6YeM6K6/6Zeu55qE572R6aG177yM5q+U5aaC5piv5LiN5piv5LuO6Ieq5a62572R56uZ6L+b6KGM55qE6K6/6Zeu5ZKM5pWw5o2u6K+35rGCPC9zcGFuPjwvbGk+PC91bD48cD48Y29kZT5KU09OLnBhcnNlKHJlcXVlc3QoJnF1b3Q76Kej5p6Q5Y+jJnF1b3Q7ICsgdmlwVXJsLCB7aGVhZGVyczogeyZxdW90O1VzZXItQWdlbnQmcXVvdDs6ICZxdW90O+S+i+Wmgu+8jERhcnQvMi4xNCAoZGFydDppbykmcXVvdDssJnF1b3Q7cmVmZXJlciZxdW90OzogJnF1b3Q75aSn5qaC546H5piv572R56uZ5Z+f5ZCNJnF1b3Q7fX0pKTwvY29kZT48c3Bhbj7ov5nkuIDmrrXlrZfnrKbkuLLmnIDnu4jkvJrop6PmnpDlvpfliLBqc29u5a2X56ym5Liy77yM5YGH6K6+6I635b6X55qE5piv5LiA5q615b2i5aaC5LiL5pa55qC85byP55qEanNvbuWtl+espuS4su+8mjwvc3Bhbj48L3A+PHByZSBjbGFzcz1cXFwibWQtZmVuY2VzIG1kLWVuZC1ibG9jayB0eS1jb250YWluLWNtIG1vZGVMb2FkZWRcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiBsYW5nPVxcXCJqc29uXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcImpzb25cXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PHByZT48c3Bhbj54eHh4eHh4eHh4PC9zcGFuPjwvcHJlPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1jb2RlXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItbGluZWJhY2tncm91bmRcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlclxcXCIgc3R5bGU9XFxcImxlZnQ6IDBweDsgd2lkdGg6IDBweDtcXFwiPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ezwvc3Bhbj48L3ByZT48L2Rpdj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+J2NvZGUnPC9zcGFuPjo8c3BhbiBjbGFzcz1cXFwiY20tbnVtYmVyXFxcIj4yMDA8L3NwYW4+LDwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+J2RhdGEnPC9zcGFuPjp7PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmcgY20tcHJvcGVydHlcXFwiPid1cmwnPC9zcGFuPjo8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj4n6L+U5Zue55qE5pKt5pS+6ZO+5o6l77yM5Lmf5piv5oiR5Lus6KaB5Y+W5Ye65p2l55qE5pKt5pS+6ZO+5o6lJzwvc3Bhbj4sPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmcgY20tcHJvcGVydHlcXFwiPidtc2cnPC9zcGFuPjo8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj4nc3VjZXNz77yM6Kej5p6Q5ZWG5oiW6Kej5p6Q5L2c6ICF5oiW6Kej5p6Q6LSt5Lmw6ICF6aKE5YWI6K6+5a6a55qE5raI5oGvJzwvc3Bhbj48L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICA8c3BhbiBjbGFzcz1cXFwiY20tdGFiXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIGNtLXRleHQ9XFxcIlxcdFxcXCI+ICAgIDwvc3Bhbj59LDwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+J3R5cGUnPC9zcGFuPjo8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj4n6KeG6aKR55qE5qC85byP57G75Z6L77yM5L6L5aaCbTN1OOOAgW1wNOOAgWZsduetiSc8L3NwYW4+LDwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+J3BsYXllcic8L3NwYW4+OjxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPiflj6/ku6XnkIbop6PkuLrmjqjojZDkvb/nlKjnmoTmkq3mlL7lmagnPC9zcGFuPjwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPn08L3NwYW4+PC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDBweDsgd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB0b3A6IDIyM3B4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiAyMjNweDtcXFwiPjwvZGl2PjwvZGl2PjwvZGl2PjwvcHJlPjxwPjxzcGFuPui/meS4gOautei/lOWbnueahOaVsOaNruWwseaYrzwvc3Bhbj48L3A+PHByZSBjbGFzcz1cXFwibWQtZmVuY2VzIG1kLWVuZC1ibG9jayB0eS1jb250YWluLWNtIG1vZGVMb2FkZWRcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiBsYW5nPVxcXCJqc1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvciBjbS1zLWlubmVyIGNtLXMtbnVsbC1zY3JvbGwgQ29kZU1pcnJvci13cmFwXFxcIiBsYW5nPVxcXCJqc1xcXCI+PGRpdiBzdHlsZT1cXFwib3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3B4OyBoZWlnaHQ6IDBweDsgdG9wOiAxMC40cHg7IGxlZnQ6IDhweDtcXFwiPjx0ZXh0YXJlYSBhdXRvY29ycmVjdD1cXFwib2ZmXFxcIiBhdXRvY2FwaXRhbGl6ZT1cXFwib2ZmXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTFlbTsgcGFkZGluZzogMHB4OyB3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDFlbTsgb3V0bGluZTogbm9uZTtcXFwiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxcXFwiIHRhYmluZGV4PVxcXCItMVxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zaXplclxcXCIgc3R5bGU9XFxcIm1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy1ib3R0b206IDBweDtcXFwiPjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWxpbmVzXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyBvdXRsaW5lOiBub25lO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48cHJlPjxzcGFuPnh4eHh4eHh4eHg8L3NwYW4+PC9wcmU+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj5iZnVybDwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj49PC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPkpTT048L3NwYW4+LjxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+cGFyc2U8L3NwYW4+KDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+cmVxdWVzdDwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcIuino+aekOWPo1xcXCI8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1vcGVyYXRvclxcXCI+Kzwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj52aXBVcmw8L3NwYW4+LCB7PHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj5oZWFkZXJzPC9zcGFuPjogezxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmcgY20tcHJvcGVydHlcXFwiPlxcXCJVc2VyLUFnZW50XFxcIjwvc3Bhbj46IDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCLkvovlpoLvvIxEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIjwvc3Bhbj4sPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+XFxcInJlZmVyZXJcXFwiPC9zcGFuPjogPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcIuWkp+amgueOh+aYr+e9keermeWfn+WQjVxcXCI8L3NwYW4+fX0pKTwvc3Bhbj48L3ByZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMHB4OyB3aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7IHRvcDogNTBweDtcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyc1xcXCIgc3R5bGU9XFxcImRpc3BsYXk6IG5vbmU7IGhlaWdodDogNTBweDtcXFwiPjwvZGl2PjwvZGl2PjwvZGl2PjwvcHJlPjxwPjxzcGFuPueEtuWQjuS7juS4iuaWuei/meS4gOauteaVsOaNruS4reWPluWHumRhdGHkuK3nmoR1cmzvvIzpgJrov4flr7nosaE8L3NwYW4+PHN0cm9uZz48c3Bhbj4mIzM5Oy4mIzM5Ozwvc3Bhbj48L3N0cm9uZz48c3Bhbj7nmoTmlrnlvI/ojrflj5bvvIzlpoLkuIs8L3NwYW4+PC9wPjxwcmUgY2xhc3M9XFxcIm1kLWZlbmNlcyBtZC1lbmQtYmxvY2sgdHktY29udGFpbi1jbSBtb2RlTG9hZGVkXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PHByZT48c3Bhbj54eHh4eHh4eHh4PC9zcGFuPjwvcHJlPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1jb2RlXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItbGluZWJhY2tncm91bmRcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlclxcXCIgc3R5bGU9XFxcImxlZnQ6IDBweDsgd2lkdGg6IDBweDtcXFwiPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj51cmw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj49PC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+YmZ1cmw8L3NwYW4+LjxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+ZGF0YTwvc3Bhbj4uPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj51cmw8L3NwYW4+PC9zcGFuPjwvcHJlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAwcHg7IHdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB0cmFuc3BhcmVudDsgdG9wOiAyNXB4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiAyNXB4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+PHNwYW4+6YKj5LmI5aaC5p6c5bCG5LiK6L+w5Lik5q2l6L+e6LW35p2l5YaZ77yM5bCx5piv5LiK6Z2i55qE57u85ZCI5L6L5a2Q5LqG44CCPC9zcGFuPjwvcD48cD4mbmJzcDs8L3A+PC9saT48L3VsPjxoMSBpZD0n5bCP55m956eR5pmuJz48c3Bhbj7lsI/nmb3np5Hmma48L3NwYW4+PC9oMT48aDIgaWQ9J+S9leiwk+ino+aekCc+PHNwYW4+5L2V6LCT6Kej5p6QPC9zcGFuPjwvaDI+PHVsPjxsaT48cD48c3Bhbj7op6PmnpDvvIznroDljZXnmoTor7TlsLHmmK/op6PmnpDop4bpopHnmoTnvZHpobXlnLDlnYDlubbov5Tlm57kuIDkuKrlj6/mkq3mlL7nmoTop4bpopHpk77mjqU8L3NwYW4+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPumCo+i0n+i0o+ino+aekOeahOaOpeWPo+WwseaYr+ino+aekOaOpeWPoyzop6PmnpDmjqXlj6PlpKfpg73plb/ov5nmoLfvvJo8L3NwYW4+PHN0cm9uZz48c3Bhbj5odHRwczovL+Wfn+WQjS/lkITnp43ot6/lvoTlrZfnrKYv5LiA6ZW/5Liy5Lmx5LiD5YWr57Of55qE5a2X56ym77yIS2V577yJLz91cmw9PC9zcGFuPjwvc3Ryb25nPjwvcD48dWw+PGxpPjxzcGFuPuacgOaYjuaYvueahOeJueeCueWwseaYr+S7pTwvc3Bhbj48c3Ryb25nPjxzcGFuPj91cmw957uT5p2fPC9zcGFuPjwvc3Ryb25nPjwvbGk+PGxpPjxzdHJvbmc+PHNwYW4+P3VybD08L3NwYW4+PC9zdHJvbmc+PHNwYW4+5ZCO6Z2i5o6l55qE5bCx5piv6KeG6aKR55qE572R6aG15Zyw5Z2APC9zcGFuPjwvbGk+PC91bD48cD48c3Bhbj7kuL7kuKrkvovlrZDvvJrlnKjmtY/op4jlmajnmoTlnLDlnYDmoI/ovpPlhaXop6PmnpDmjqXlj6Mr6KeG6aKR5Zyw5Z2A5ZCO77yM5Zue6L2m5oiW5Yi35paw77yM5rWP6KeI5Zmo5bCx5Lya5pKt5pS+6KeG6aKR77yM5aaC5LiL5Zu+5omA56S6PC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzhkZDZlNTcyNDkyMjZmMmI0ZGMyYmJmMzdjOWE5MWI2ZTdmZjQ1YWEucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIwMTQ2MjI4NzRcXFwiPjwvcD48L2xpPjxsaT48cD48c3Bhbj7pgqPkuYjljp/nkIbmmK/ku4DkuYjvvJ/moLnmja7ljp/nkIbnmoTkuI3lkIzvvIzop6PmnpDkuZ/lpKfoh7Tlj6/ku6XliIbkuLrvvJo8L3NwYW4+PC9wPjx1bD48bGk+PHA+PHNwYW4+566X5rOV57G777ya6YCa6L+H6Kej5p6Q57O757uf5YaF572u55qEdmlw6LSm5Y+35LuO572R56uZ5LiK5Y+W5Ye65Zyw5Z2APC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj7liIfniYfnsbvvvJo8L3NwYW4+PC9wPjx1bD48bGk+PHNwYW4+5LuO566X5rOV57G76Kej5p6Q5Ye655qE57uT5p6c5Lit57yT5a2Y5bm26Ieq5Yqo5LiK5Lyg5Yiw6Kej5p6Q57O757ufPC9zcGFuPjwvbGk+PGxpPjxzcGFuPuagueaNruS6keebmOaIluejgeWKm+etieWkmuenjemAlOW+hOmAlOW+hOiOt+WPluWIsOi1hOa6kOW5tuS4iuS8oOWIsOino+aekOezu+e7nzwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHA+PHNwYW4+6LCI5LiN5LiK6LCB5LyY6LCB5Yqj77yM5YW35L2T5oOF5Ya15YW35L2T5YiG5p6QPC9zcGFuPjwvcD48L2xpPjwvdWw+PC9saT48bGk+PHA+PHNwYW4+5YW25a6e5oiR5Lus5LiN5YWz5b+D5Y6f55CG55qE6K+d77yM6Kej5p6Q5Y+j5bqU6K+l5YiG5Li65Lul5LiL5Lik57G777yaPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPuaZrumAmuino+aekOWPo++8muWmguS4iuaWueWbvuS+i+WwseaYr+S4gOS4quaZrumAmuino+aekOWPo++8jOS5n+WwseaYr+ivtOino+aekOWPo+WQjumdouaLvOaOpeWcsOWdgOWQjuWbnui9puWIt+aWsOWwseS8muiHquWKqOi/lOWbnuinhumikeaVsOaNrue7j+eUsea1j+iniOWZqOWXheaOouWHuue7k+aenOW5tuW8gOWni+aSreaUvu+8iOiHquW4puaSreaUvuWZqOaJgOS7peWPr+S7peaSreaUvu+8ieOAgjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5qc29u6Kej5p6Q5Y+j77yaanNvbuaOpeWPo+aMieS4iuaWueagvOW8j+aLvOaOpeWlveWQjuWbnui9puWIt+aWsOi/lOWbnueahOaYr+S4gOS4qmpzb27lrZfnrKbkuLLvvIzkuI3lj6/ku6Xnm7TmjqXmkq3mlL7vvIzlv4Xpobvku47kuK3mj5Dlj5blh7p1cmznhLblkI7orqnmkq3mlL7lmajliqDovb3miY3og73mkq3mlL7vvIhqc29u6Kej5p6Q5Y+j5LiN5o+Q5L6b5pKt5pS+5Zmo77yM6Iez5LqO5aaC5L2V5Y+W5Ye6dXJs5Y+v5Lul5Y+C54Wn5LiL5paH55qE5YWs6ZKl5pys6LSo6YOo5YiG77yJ44CC5aaC5LiL5Zu+5omA56S66L+U5Zue55qE5bCx5pivanNvbuWtl+espuS4su+8iOWPr+S7peiHquihjOeZvuW6puS6huino+S7gOS5iOaYr2pzb27moLzlvI/vvIk8L3NwYW4+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS85MzExM2Q2YzIzYTk5MTJiNDc1ZDI3ODUwZWIyZjY4NTEyZmM4YTlkLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDg1MDQzNTIzXFxcIj48c3Bhbj7kuIDoiKzmnaXor7TlvbHop4ZhcHDkvb/nlKjnmoTpg73mmK9qc29u6Kej5p6Q5Y+j77yM5pyJ6Ieq5bu655qE77yM5pyJ5LuO6Kej5p6Q5ZWG5Lmw55qE77yM5Lmf5pyJ5LuO6Kej5p6Q5ZWG6YKj6YeM5YG35p2l55qE44CC5Zug5Li6anNvbui/lOWbnueahOaVsOaNruaYr+aYjuaWh+aVsOaNru+8jOebuOW6lOeahOino+aekOmAn+W6puWPr+iDveS8muabtOW/q++8jOWFt+S9k+aDheWGteWFt+S9k+WIhuaekOOAgjwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHA+PHNwYW4+5LuO6Kej5p6Q54mH5rqQ55qE6KeS5bqm5p2l6K+077yM5Y+v5Lul5Li65Lik57G777yaPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPuWumOino+ino+aekO+8mumhvuWQjeaAneS5ie+8jOWwseaYr+e7meS4gOS4quWumOaWuee9keWdgO+8jOi/lOWbnuS4gOS4quWPr+aSreaUvueahOWcsOWdgDwvc3Bhbj48L2xpPjxsaT48c3Bhbj7liIfniYfop6PmnpDvvJrop6PmnpDllYboh6rooYzlr7nop4bpopHotYTmupDov5vooYzliIfniYfkuIrkvKDliLDlm77luornrYnkupHnq6/vvIznlJ/miJDnibnlrprnmoTlrZfnrKbkuLLnp5jpkqXvvIzlj6rmnInmi6XmnInnm7jlupTnp5jpkqXnmoTop6PmnpDlj6PmiY3og73op6PmnpDlh7rop4bpopHmlbDmja7vvIzkuIDoiKzmnaXor7TmtbflpJblvbHniYfpg73mmK/liIfniYfotYTmupA8L3NwYW4+PC9saT48L3VsPjwvbGk+PC91bD48aDIgaWQ9J+ino+aekOS7juWTquadpSc+PHNwYW4+6Kej5p6Q5LuO5ZOq5p2lPC9zcGFuPjwvaDI+PHA+PHNwYW4+6Kej5p6Q5LuO5ZOq5p2l77yM5peg6Z2e5bCx5Lul5LiL5Yeg56eNPC9zcGFuPjwvcD48dWw+PGxpPjxwPjxzcGFuPuS7juino+aekOWVhuWkhOi0reS5sDwvc3Bhbj48L3A+PHVsPjxsaT48c3Bhbj7lvojlpJrlvbHop4bnvZHnq5npg73kuZ/mmK/kvb/nlKjnmoTop6PmnpDkuLrnlKjmiLfmj5Dkvpvop4bpopHmkq3mlL7mnI3liqHvvIzogIzlvbHop4bnvZHnq5nku5bku6zmiYDnlKjnmoTop6PmnpDlpKflpJrlsLHmnaXoh6rkuJPpl6jlgZrop6PmnpDns7vnu5/nmoTnq5nngrk8L3NwYW4+PC9saT48bGk+PHNwYW4+5b2T54S26YOo5YiG6YOo5YiG5b2x6KeG572R56uZ5ZKMYXBw5piv6Ieq6Lqr54us56uL5YiH54mH5a2Y5YKo5LiN5L6d6LWW6Kej5p6Q77yM5q+U5aaC5bCP6Iu55p6c5b2x6KeG44CB6aOe55Ocb3LngavpvpnmnpzlvbHop4bjgIHphbfkupHnrYlhcHDku6Xlj4rlk5TlmIDnrYnlvbHop4bnvZHnq5k8L3NwYW4+PC9saT48bGk+PHNwYW4+5oiq6Iez55uu5YmN5LyY6LSo55qE6Kej5p6Q5ZWG5pyJ5om26aOO44CB5bem5bK444CB5rGf5rmW44CB6aOe5LqR562J562J77yMfOS4jeaMh+i3r+WPr+S7peiHquihjOeZvuW6puaQnOe0ou+8iOivtOS4gOS4quaQnOe0ouW8leaTjueahOWwj+aKgOW3p++8jOWmguaenOeZvuW6puWVpeS5n+aQnOS4jeWIsOWPr+S7peaNoueUqOWFtuS7lueahOaQnOe0ouW8leaTjuaQnOe0ou+8jOWQjOaXtuWtpuS8muWIqeeUqOaXtumXtOajgOe0ouWOu+iOt+WPluacgOaWsOeahOaQnOe0ouaVsOaNru+8jOmCo+S5iOWfuuacrOS4iuWPr+S7peaQnOWIsOS9oOaDs+imgeeahOS4nOilv++8iTwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHA+PHNwYW4+6Kej5p6Q5ZWG5byA5pS+55qE5pmu6YCa5o6l5Y+jPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPumDqOWIhuWkp+Wei+eahOino+aekOWVhumDveaYr+acieW8gOaUvuWFjei0ueeahOS8mOi0qOaZrumAmuino+aekOWPo+aUvuWHuuOAguS4gOiIrOadpeivtOWwseWumOino+iAjOiogOaZrumAmuaOpeWPo+S4jmpzb27mjqXlj6Pnm7jmr5TovoPln7rmnKzkuIrlsLHmmK/lk43lupTpgJ/luqblkozotYTmupDmmK/lkKblj6/op4HnmoTljLrliKvjgILlvIDmlL7nmoTmjqXlj6PkuIDoiKzkuI3mlK/mjIHliIfniYfvvIzlhbfkvZPmg4XlhrXlhbfkvZPliIbmnpDjgII8L3NwYW4+PC9saT48bGk+PHNwYW4+5LiN5piv6K+05byA5pS+55qE5pmu6YCa5o6l5Y+j5bCx5LiN5aW977yM5bCx5q+UanNvbuino+aekOWPo+W3ru+8jOWFt+S9k+mXrumimOWFt+S9k+WIhuaekOOAgjwvc3Bhbj48c3Ryb25nPjxzcGFuPuS4jeeEtuWwseS4jeS8muaciXg15YWs6ZKl5LqGPC9zcGFuPjwvc3Ryb25nPjwvbGk+PC91bD48L2xpPjxsaT48cD48c3Bhbj7nvZHkuIrnvZHlj4vliIbkuqvnmoTop6PmnpA8L3NwYW4+PC9wPjx1bD48bGk+PHNwYW4+6K+055m95LqG572R5Y+L5YiG5Lqr55qE6Kej5p6Q5Z+65pys5LiK5pyA57uI6YO95piv5p2l6Ieq6Kej5p6Q5ZWG77yM5b2T54S25Lmf5pyJ5Y+v6IO95piv6Ieq5bu655qE6Kej5p6Q57O757uf77yM5piv55qE6Kej5p6Q57O757uf5Y+v5Lul6Ieq5bu65L2G57ud5LiN5piv5LiA6Iis5Lq66ICD6JmR55qEPC9zcGFuPjwvbGk+PGxpPjxzcGFuPuaLv+e9keS4iuWIhuS6q+eahOino+aekOWPr+S7peS7juWTqumHjOaJvuWRou+8jOS4vuS4quS+i+WtkOavlOWmguiEmuacrOe9keermeS4iuivuOWmguafkOafkHZpcOinhumikeino+aekOiEmuacrOWFtuWunumDveaYr+WGhee9rueahOino+aekO+8jOW9k+eEtuS4gOiIrOadpeivtOi/meS6m+iEmuacrOS4iueahOino+aekOmDveaYr+S4gOS6m+avlOi+g+aZrumAmueahOino+aekO+8jOW9k+eEtuS5n+acieWPr+iDveWHuueOsOS4gOS6m+S8mOi0qOeahOino+aekDwvc3Bhbj48L2xpPjxsaT48c3Bhbj7lhbblrp7mnInkuIDkuKrnvZHnq5nluJblrZDlsLHkuJPpl6jmlLbpm4bkuIDkupvop6PmnpDvvIzmr5TlpoLvvJo8L3NwYW4+PGEgaHJlZj0naHR0cHM6Ly93d3cueXFrZjEwMC5jbi8xNzI1Ly5odG1sJz48c3Bhbj7nq5nplb/lv4XlpIfvvIHnpo/liKnvvIHlvbHop4Z2aXDop6PmnpDmjqXlj6PmsYfmgLvvvIHkuI3lrprmnJ/mm7TmlrAt55uK5oCd5L+x5LmQ6YOoICh5cWtmMTAwLmNuKTwvc3Bhbj48L2E+PHNwYW4+5YW25a6e6YGT6ZW/5LuT5bqT6YeM5bCx5pyJ5LiA5Liq5bCP56iL5bqP5Y+r5YGa6a2U5pat6Kej5p6Q54is6Jmr77yI5pWw5o2u5p2l5rqQ5bCx5piv6L+Z5Liq572R5Z2A77yJ77yM5Y+v5Lul6Ieq6KGM5Zyo6YGT6ZW/5LuT5bqT5pCc57Si5bm25a+85YWlPC9zcGFuPjwvbGk+PGxpPjxzcGFuPuS4gOS6m+W9seinhlHnvqTlkozlvbHop4bpopHpgZPlj6/og73kvJrlh7rnjrDmnInkurrliIbkuqvop6PmnpDvvIzogIzov5nkupvop6PmnpDlvoDlvoDnm7jlr7nnrpflvpfkuIrmr5TovoPlj6/nlKjnmoTop6PmnpA8L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxwPjxzcGFuPuiHquihjOaKk+WPljwvc3Bhbj48L3A+PHVsPjxsaT48c3Bhbj7lhbblrp7op6PmnpDmnIDnu4jpg73mmK/mnaXoh6rop6PmnpDllYbvvIzlvojlpJrlvbHop4bnvZHnq5nlkozlvbHop4ZhcHDpg73mmK/kvb/nlKjnmoTop6PmnpA8L3NwYW4+PC9saT48bGk+PHNwYW4+6YKj5LmI5bCx5Y+v5Lul5a+5572R56uZ5a6h5p+l572R57uc5pWw5o2u5oiW6ICF5oqT5Y+WYXBw5pWw5o2u5LuO5Lit5Y+R546w6Kej5p6Q5Y+jJmx0O+KAlOKAlCZndDvlhbfkvZPnmoToh6rooYznmb7luqbmiJbku47lhbbku5bnmoTlnLDmlrnkuobop6M8L3NwYW4+PC9saT48bGk+PHNwYW4+5b2T54S2546w5Zyo55qE5b2x6KeG572R56uZ5ZKM5b2x6KeGYXBw5aSn5aSa6YO95piv5pyJ6Ziy55uX5py65Yi255qE77yM5omA5Lul5Y+v6IO96YGH5Yiw5peg5rOV5oqT5YyF55qE6Zeu6aKYPC9zcGFuPjwvbGk+PC91bD48L2xpPjwvdWw+PHA+Jm5ic3A7PC9wPjxoMiBpZD0n5LiA5Lu95pmu5o6l5riF5Y2VJz48c3Bhbj7kuIDku73mma7mjqXmuIXljZU8L3NwYW4+PC9oMj48cD48c3Bhbj7kuI3kv53or4Hlj6/nlKjmgKfvvIzkuI3kv53or4HmuIXmmbDluqbvvIzkuI3kv53or4Hlk43lupTpgJ/luqbjgIHkuI3kv53or4EuLi48L3NwYW4+PC9wPjxwPjxzcGFuPuWPquiDveS/neivgeWug+S7rOmDvea0u+S6huW+iOS5hS4u6YO95piv6ICB54mM5a2QLi48L3NwYW4+PC9wPjxvbCBzdGFydD0nJyA+PGxpPjxhIGhyZWY9J2h0dHBzOi8vangubTN1OC50di9qaWV4aS8/dXJsPScgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSd1cmwnPmh0dHBzOi8vangubTN1OC50di9qaWV4aS8/dXJsPTwvYT48L2xpPjxsaT48YSBocmVmPSdodHRwczovL3d3dy44MDkwLmxhLzgwOTAvP3VybD0nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL3d3dy44MDkwLmxhLzgwOTAvP3VybD08L2E+PC9saT48bGk+PGEgaHJlZj0naHR0cHM6Ly9qeC5tM3U4LnB3Lz91cmw9JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9qeC5tM3U4LnB3Lz91cmw9PC9hPjwvbGk+PGxpPjxhIGhyZWY9J2h0dHBzOi8vangubW1rdi5jbi9qc29uLnBocD91cmw9JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9qeC5tbWt2LmNuL2pzb24ucGhwP3VybD08L2E+PC9saT48L29sPjxociAvPjxwPjxzcGFuPuS4i+aWueeci+i1hOa6kO+8jOS4iuaWuemDvei/mOihjDwvc3Bhbj48L3A+PG9sIHN0YXJ0PScnID48bGk+PGEgaHJlZj0naHR0cHM6Ly9hcGkub2tqeC5jYzozMzg5L2p4LnBocD91cmw9JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9hcGkub2tqeC5jYzozMzg5L2p4LnBocD91cmw9PC9hPjwvbGk+PGxpPjxhIGhyZWY9J2h0dHBzOi8vangucGFyd2l4LmNvbTo0NDMzL3BsYXllci8/dXJsPScgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSd1cmwnPmh0dHBzOi8vangucGFyd2l4LmNvbTo0NDMzL3BsYXllci8/dXJsPTwvYT48L2xpPjwvb2w+PHA+PHNwYW4+5Y+q5pyJ5LiA5Y+l6K+d77yM6YKj5bCx5piv5o6l5Y+j5Zyo57K+5LiN5Zyo5aSa77yM5b6I5aSa6Kej5p6Q5Y+j6YO95piv55u45LqS5aWX5aiD77yM6LWE5rqQ5p2l5rqQ6YO95piv5ZCM5LiA5Liq77yM5omA5Lul5b6I5pyJ5Y+v6IO95LiA5Liq6Kej5p6Q6Kej5p6Q5LiN5Ye65p2l77yM5YW25LuW55qE6Kej5p6Q5Lmf6Kej5p6Q5LiN5Ye65p2l77yM5Zug5Li65a6D5Lus55qE5qC55rqQ5b6I5Y+v6IO96YO95piv5ZCM5LiA5Liq44CCPC9zcGFuPjwvcD48cD48c3Ryb25nPjxzcGFuPui/meS7vea4heWNleS7heS+m+WPguiAg+WSjOa1i+ivle+8jOmDveWPquaYr3g15pmu6YCa5o6l5Y+j5LuF5LuF5Li65pa55L6/5LqG6Kej5LuA5LmI5piv6Kej5p6Q6ICM5bey44CCPC9zcGFuPjwvc3Ryb25nPjwvcD48cD4mbmJzcDs8L3A+PHA+Jm5ic3A7PC9wPjxoMiBpZD0n5L2V6LCT5pat5o+SLS0tLS0t6a2U5patJz48c3Bhbj7kvZXosJPmlq3mj5LigJTigJQmZ3Q76a2U5patPC9zcGFuPjwvaDI+PHA+PHNwYW4+5LqG6Kej5a6M6Kej5p6Q56m256uf5piv5LiA5Liq5LuA5LmI5Lic6KW/5LmL5ZCO77yM6YKj5LmI5pat5o+S5bCx5b6I5aW955CG6Kej5LqG77yMPC9zcGFuPjxjb2RlPuaWreaPkuaYr+S4gOS4quW3peWFtzwvY29kZT48c3Bhbj7vvIzlj6/ku6XluK7kvaDphY3nva7lpb3op6PmnpDvvIzphY3nva7lpb3lkI7lj6ropoHngrnlh7vlsIHoo4Xlpb3nmoTop4bpopHlvbHniYfnmoTlrpjnvZHnvZHlnYDpgqPkuYjlsLHkvJroh6rliqjmi7zmjqXmoLzlvI/lubbmj5DkuqTor7fmsYLmnIDlkI7osIPnlKjmkq3mlL7lmajmkq3mlL7vvIzkuI3nlKjoh6rlt7HlnKjmtY/op4jlmajmi7zmjqXnhLblkI7lho3liLfmlrDku47ogIzop6PmlL7lj4zmiYvvvIzmiYDku6Xmlq3mj5Llj6rmmK/kuIDkuKo8L3NwYW4+PGNvZGU+5bel5YW3PC9jb2RlPjxzcGFuPu+8jOS4jeaPkOS+m+S7u+S9leWGheWuuTwvc3Bhbj48L3A+PHA+PHNwYW4+6YKj6a2U5pat5Y+I5piv5LuA5LmI77yM6a2U5pat5Lmf5Y+q5piv5LiA5LiqPC9zcGFuPjxjb2RlPuW3peWFtzwvY29kZT48c3Bhbj7kuI3mj5Dkvpvku7vkvZXlhoXlrrnvvIzlj6/ku6XnkIbop6PkuLrmlq3mj5LnmoTliqDlvLrniYjvvIzog73mm7Tlpb3nmoTop6PmlL7lj4zmiYvjgILprZTmlq3lj4jlkI1NeUZpbGVk77yM5LuT5bqT6Ieq5Y+W44CCPC9zcGFuPjwvcD48aDIgaWQ9J+mtlOaWreeahOS9v+eUqCc+PHNwYW4+6a2U5pat55qE5L2/55SoPC9zcGFuPjwvaDI+PHA+PHNwYW4+55+l6YGT5LqG5LuA5LmI5piv6Kej5p6Q5LqG5ZCn77yM5Lmf55+l6YGT5LqG5LuA5LmI5piv6a2U5pat5LqG5ZCn77yf6YKj5LmI5aaC5L2V5L2/55So6a2U5pat5bqU6K+l5piv6KeB5ZCN55+l5oSP5LqG77yM5aSq6L+H6K+m57uG55qE5LiN6K6y77yM5oyR5LiA5Lqb6YeN54K55p2l6K6y5LiA5LiL5YWl6Zeo44CC6aaW5YWI56ys5LiA5q2l6YCJ5oup5bCP55m95LiA6ZSu5ouJ5Y+W77yM5peg6K665piv55yf5bCP55m96L+Y5piv5pyJ5pyJ6LWE5rqQ6K6k6K+G6Kej5p6Q55qE5pyL5Y+L6YO95o6o6I2Q56ys5LiA5q2l55u05o6l5ouJ5Y+W77yM54S25ZCO6Ieq5bex5YaN5omL5Yqo5Yig6Zmk5ZKM5re75Yqg6Ieq5bex55qE6Kej5p6Q6YWN572u77yM5Zug5Li65LiA6ZSu5ouJ5Y+W5Lya5biu5L2g55u05o6l5oqK546v5aKD6YO96YWN572u5aW977yM5YyF5ous5Li76aKY562J6ICM5LiN55So5Y676L+H5aSa55qE566h6L+Z5Lqb6Zey5p2C5LqL6aG544CCPC9zcGFuPjwvcD48cD48c3Bhbj7kuIvpnaLmmK/kuIDlvKDot6/nur/mjIfljZflm77vvJo8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vNjQzMTAyYTI5YjA5YWIzMzFhNDZiNTAyOTMyNGM4YTcxZTY3MzFhMS5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCLprZTmlq3kvb/nlKjmlZnnqItcXFwiPjwvcD48cD48c3Bhbj7lhbbkuK3prZTmlq3nmoTlpJrnur/ot6/vvIzliJ3mraXkuobop6PprZTmlq3kuYvlkI7lj6/ku6Xljrvnhp/mgonkuIDkuIvvvIzku6XkuIvmmK/lrpjmlrnop6Pph4o8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vOGEwMzAxMjg5OThjNTM1YjA2ZDI2ZTI5NmRkZWE5MzczNjU5OWIxYi5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyMjIwNTc1MzMxMVxcXCI+PC9wPjxwPjxzcGFuPui/mOacieS4gOeCueW+iOmHjeimgeeahOWwseaYr+Wkh+S7ve+8jOWmguaenOaIkeacieW+iOWkmuino+aekO+8jOaAleS4ouWkse+8jOWPr+S7peebtOaOpeWvvOWHuu+8geS5n+WPr+S7peebtOaOpeWvvOWFpe+8ge+8iDwvc3Bhbj48c3Ryb25nPjxzcGFuPumtlOaWreS4u+mhteeahOaoquadoeaYr+WPr+S7pea7keWKqOeahDwvc3Bhbj48L3N0cm9uZz48c3Bhbj7vvInvvIzlpoLlm77miYDnpLrlj7Pmu5Hlj6/ku6XnnIvliLDvvIzlj6ropoHmjInmoLzlvI/mnaXpgqPkuYjkuIDoiKzlsLHmsqHmnInpl67popjjgILlhbblrp7ngrnlh7vkuInop5Lnrq3lpLTlj6/ku6XlvLnnqpfnm7TmjqXpgInmi6nvvIzkuZ/lj6/ku6Xlj5HnjrDph4zovrnov5jmnInmibnph4/mk43kvZzvvIjliKDpmaTvvInnmoTlip/og708L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vNjc2NjdiNjY5YzVlNDY5YmJhOGYyYzQ0MDk1MjZlYWQ5ZTM0NmU4NS5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyMjIxMzkyNzAxMlxcXCI+PC9wPjxwPjxzcGFuPuWcqOihpeWFheS4gOeCue+8muWcqOaWreaPkuaOpeWPo+iuvue9rumhtemdoueCueWHu+S7u+aEj+S4gOS4quino+aekOWPr+S7peWNleeLrOWvueWFtui/m+ihjOeJueWumuaTjeS9nO+8mjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS80OGU0YjMwNzk1Y2E3MzVjNzk2YjYzNmNhMWI1YWIwZWJiZGFjZjMwLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMjE1MjM2MTM2XFxcIj48L3A+PHA+PG1hcms+PHNwYW4+5rOo5oSP55qE5piv77yaZG3nm5LlrZDnmoTlhazpkqXlkozlpJrnur/ot6/mmK/lhrLnqoHnmoQ8L3NwYW4+PC9tYXJrPjxzcGFuPu+8jOWJqeS4i+eahOiHquW3seaRuOe0ou+8jOiusuWIsOeahOWfuuacrOmDveaYr+aguOW/g+ayoeiusuWIsOeahOmDveS4jeaYr+W+iOmHjeimgTwvc3Bhbj48L3A+PGgyIGlkPSfkvZXosJNjbXPmqKHmnb8nPjxzcGFuPuS9leiwk0NNU+aooeadvzwvc3Bhbj48L2gyPjxwPjxzcGFuPkNNU+WPr+S7peeugOWNleeahOeQhuino+S4uuS4gOenjemHh+mbhuWumOe9keinhumikee9keWdgOeahOiHquWKqOWMlui9r+S7tu+8jOW5tuaMieeFp+aMh+WumueahOagvOW8j+WwgeijheWtmOWCqOWlveWQjuWPr+S7pemAmui/h+e7meWHuueahEFQSeaOpeWPo+WOu+iuv+mXrui/meS6m+aVsOaNru+8jOiAjOi/meexu0FQSeaOpeWPo+WPr+S7peensOS5i+S4umNtc+aOpeWPo+OAguWboOS4uuino+aekOaYr+mcgOimgeinhumikee9keWdgOeahO+8jOaJgOS7pWNtc+eahOS9nOeUqOWwseS4jeiogOiAjOWWu+OAgjwvc3Bhbj48L3A+PHA+PHNwYW4+5Zue5YiwY21z5qih5p2/77yMY21z5qih5p2/5piv6YGT6ZW/55qE5LiA5Liq5bCP56iL5bqP77yM6YCa6L+H5aGr5YaZY21z5o6l5Y+j5bCx5Y+v5Lul55Sf5oiQY21z5bCP56iL5bqP55qE5LiA5Liq5bCP56iL5bqP77yM5Lmf5piv5LiA5LiqPC9zcGFuPjxjb2RlPuW3peWFtzwvY29kZT48c3Bhbj7kuI3mj5Dkvpvku7vkvZXlrp7otKjlhoXlrrnjgII8L3NwYW4+PC9wPjxwPjxzcGFuPumCo2Ntc+aOpeWPo+S7juWTqumHjOiOt+WPlu+8n+adpea6kOS6jmNtc+mHh+mbhui1hOa6kOe9keOAgeadpea6kOS6jmFwcOaKk+WMheOAgee9keermeaKk+WMheOAgeS4gOS6m+ino+aekOS5n+S8muaUvuWHuumHh+mbhu+8iOmHh+mbhuWNs2Ntc++8iS4uLjwvc3Bhbj48L3A+PHA+PHNwYW4+5YW25a6e5pu055u05o6l55qE5pa55rOV77yM5Y+v5Lul5LuO5YaZ5aW955qEY21z5bCP56iL5bqP5Lit5o+Q5Y+W5Ye6Y21z5o6l5Y+j77yaPC9zcGFuPjwvcD48b2wgc3RhcnQ9JycgPjxsaT48cD48c3Bhbj7plb/mjInlsI/nqIvluo/lkI3lrZfvvIzlvLnnqpfngrnlh7vnvJbovpHop4TliJnvvIzmib7liLDlsI/nqIvluo/pk77mjqXvvIzljbPlj6/ojrflvpdjbXPmjqXlj6M8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vNDQ5ODg5ZGExYzU3NTQ5OGY3MTA5MjMyODUwOWQ0ZTAyYjJjNDQ2YS5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyMjA5NDgxNzM4MFxcXCI+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPuWmguaenOS9oOeci+S4jeWIsOWwj+eoi+W6j+mTvuaOpe+8jOmCo+aYr+WboOS4uuayoeacieW8gOWPkeiAheetvuWQjTwvc3Bhbj48L3A+PHA+PHNwYW4+4oCU4oCUJmd0O+aJvuWIsOiuvue9ruKAlOKAlCZndDvpgInmi6nlvIDlj5HmiYvlhozkuI7mqKHlvI/igJTigJQmZ3Q76YCJ5oup5byA5Y+R6ICF562+5ZCN4oCU4oCUJmd0O+iHquWumuS5ieW8gOWPkeiAheaYteensDwvc3Bhbj48L3A+PHA+PHNwYW4+6YKj5LmI5bCx5Y+v5Lul55yL5Yiw5LqGPC9zcGFuPjwvcD48L2xpPjwvb2w+PHA+PHNwYW4+5LiL6Z2i5piv5LiA5LiqY21z6LWE5rqQ572R5ZCI6ZuG55qE5L2/55So5pWZ56iL77yM6YeM6Z2i6YO95pivY21z5bCP56iL5bqP5Y+v5Lul55u05o6l5L2/55SoPC9zcGFuPjwvcD48cD48c3Bhbj7ngrnlh7vpk77mjqXmn6XnnItRUemikemBk+W4luWtkOOAkOeUqOW/g+mHh+mbhuS9v+eUqOaWueazlSjpnZ7prZTmlq3niYgp44CR77yaPC9zcGFuPjxhIGhyZWY9J2h0dHBzOi8vcXVuLnFxLmNvbS9xcXdlYi9xdW5wcm8vc2hhcmU/X3d2PTMmYW1wO193d3Y9MTI4JmFtcDthcHBDaGFubmVsPXNoYXJlJmFtcDtpbnZpdGVDb2RlPTF3QnZzMSZhbXA7YXBwQ2hhbm5lbD1zaGFyZSZhbXA7Y29udGVudElEPVVnSlcmYW1wO2J1c2luZXNzVHlwZT0yJmFtcDtmcm9tPTI0NjYxMCZhbXA7Yml6PWthJmFtcDtzaGFyZVNvdXJjZT01JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9xdW4ucXEuY29tL3Fxd2ViL3F1bnByby9zaGFyZT9fd3Y9MyZfd3d2PTEyOCZhcHBDaGFubmVsPXNoYXJlJmludml0ZUNvZGU9MXdCdnMxJmFwcENoYW5uZWw9c2hhcmUmY29udGVudElEPVVnSlcmYnVzaW5lc3NUeXBlPTImZnJvbT0yNDY2MTAmYml6PWthJnNoYXJlU291cmNlPTU8L2E+PC9wPjxwPjxzcGFuPuS4juWFtuWvu+aJvmNtc+aOpeWPo++8jOS4jeWmguebtOaOpeS9v+eUqOW3suacieeahGNtc+Wwj+eoi+W6j++8jOmikemBk+S5n+S8muacieWkp+S9rOWBtuWwlOWIhuS6q2Ntc+Wwj+eoi+W6jzwvc3Bhbj48L3A+PGgyIGlkPSfkvZXosJPmlq3mj5LnsbvlsI/nqIvluo8nPjxzcGFuPuS9leiwk+aWreaPkuexu+Wwj+eoi+W6jzwvc3Bhbj48L2gyPjxwPjxzcGFuPumhvuWQjeaAneS5ieWwseaYr+aUr+aMgeaWreaPkuiwg+eUqOino+aekOeahOWwj+eoi+W6j++8jOWDj2Ntc+aooeadv+eUn+aIkOeahGNtc+Wwj+eoi+W6j+WwseaYr+aWreaPkuexu+eahOWwj+eoi+W6jzwvc3Bhbj48L3A+PHA+PHNwYW4+6L+Y5pyJ55qE5aSn5L2s5YaZ5aW95bCB6KOF5pyJ5pat5o+S6LCD55So5pa55rOV55qE572R56uZ5bCP56iL5bqP5oiW6ICFYXBw5bCP56iL5bqPPC9zcGFuPjwvcD48aDIgaWQ9J+S9leiwk+mAmuWFjeWwj+eoi+W6jyc+PHNwYW4+5L2V6LCT6YCa5YWN5bCP56iL5bqPPC9zcGFuPjwvaDI+PHA+PHNwYW4+6YCa5YWN5bCP56iL5bqP5bCx5piv5aSn5L2s5YaZ5aW955qEPC9zcGFuPjxzdHJvbmc+PHNwYW4+5LiN6ZyA6KaB5pat5o+S6Kej5p6QPC9zcGFuPjwvc3Ryb25nPjxzcGFuPueahOe9keermeWwj+eoi+W6j+aIluiAhWFwcOWwj+eoi+W6j++8jOiAjOaYr+ebtOaOpeS7jua6kOermeWXheaOouiOt+W+l+inhumikeaSreaUvumTvuaOpe+8jOS5n+WwseaYr+ivtOi/meaYr+WOn+a7i+WOn+WRs+eahOWwj+eoi+W6j++8jOe9keermeWGheWuueaYr+WVpe+8jOS7luWwseaYr+WVpeOAguS5n+aYr+aVsOmHj+acgOWkmueahOWwj+eoi+W6j+OAgjwvc3Bhbj48L3A+PGgyIGlkPSfkvZXosJPlhY3ll4XlsI/nqIvluo8nPjxzcGFuPuS9leiwk+WFjeWXheWwj+eoi+W6jzwvc3Bhbj48L2gyPjxwPjxzcGFuPuWFjeWXheWwj+eoi+W6j+S5n+aYr+WOn+a7i+WOn+WRs+eahOWwj+eoi+W6j++8jOS9huebuOavlOmAmuWFjeWwj+eoi+W6j++8jOWug+S4jemcgOimgeS7jue9keermeWXheaOouinhumikeaSreaUvumTvuaOpe+8jOiAjOaYr+mAmui/h+ino+WvhuS7o+eggeebtOaOpeiOt+WPluinhumikeaSreaUvumTvuaOpeeahHVybOeEtuWQjuebtOaOpeaSreaUvu+8jOaJgOS7peS4gOiIrOadpeivtOWFjeWXheWwj+eoi+W6j+S8muW/q+S6jumAmuWFjeWwj+eoi+W6j+WTjeW6lOi1hOa6kOeahOmAn+W6puOAgjwvc3Bhbj48L3A+PHA+Jm5ic3A7PC9wPjxwPiZuYnNwOzwvcD48aDEgaWQ9J+makOiXj+aTjeS9nCc+PHNwYW4+6ZqQ6JeP5pON5L2cPC9zcGFuPjwvaDE+PGgyIGlkPSflhazpkqXkuI7np4HpkqUnPjxzcGFuPuWFrOmSpeS4juengemSpTwvc3Bhbj48L2gyPjxwPjxzcGFuPuacieWFrOmSpe+8jOmCo+iCr+WumuacieengemSpeS6huWVpu+8jOS4jei/h+ayoee7meWHuuadpee9ouS6hu+8jOaIkeaYr+S4jeaYr+W+iOWdj348L3NwYW4+PC9wPjxwPjxzcGFuPuWHgOeejuivtO+8jGRt55uS5a2Q5Luj56CB5riF5pmw5Y+v6KeB77yM5pyJ6IO95Yqb6Ieq5bex5pS55LiA5LiL5YWs6ZKl5bCx5Y+v5Lul5b6X5Yiw56eB6ZKl5LqGfjwvc3Bhbj48L3A+PHA+PHNwYW4+6Iez5LqO5Y6f5Zug5Zib77yM6YKj6IKv5a6a5piv5pyJ5Y6f5Zug55qE77yM56eB6ZKl5L2T6aqM5pyq5b+F5bCx5q+U5YWs6ZKl6KaB5aW977yM6ICM5LiUPC9zcGFuPjxtYXJrPjxzcGFuPuengemSpeS4jeS4gOWumueos+Wumjwvc3Bhbj48L21hcms+PHNwYW4+4oCU4oCUJmd0O+aJgOS7pei/mOaYr+aIkeiHquW3seadpeaJv+WPl+WQp++8gTwvc3Bhbj48L3A+PGgyIGlkPSfpo57nk5zlvLnluZXlupMnPjxzcGFuPumjnueTnOW8ueW5leW6kzwvc3Bhbj48L2gyPjxwPjxzcGFuPuWFrOOAgeengemSpeS4jemHjeimgeWVpu+8jDwvc3Bhbj48c3Ryb25nPjxzcGFuPumHjeimgeeahOaYr+WFtuWunmRt55uS5a2Q5YaF572u5LqG6aOe55Oc5by55bmV5bqT5pCc57Si5byV5pOOPC9zcGFuPjwvc3Ryb25nPjxzcGFuPuOAgjwvc3Bhbj48L3A+PHA+PHNwYW4+6YKj5aaC5L2V5L2/55So5ZGi77yf5q2l6aqk5aaC5LiL77yaPC9zcGFuPjwvcD48b2wgc3RhcnQ9JycgPjxsaT48cD48c3Bhbj7pgInmi6lkbeebkuWtkOS9nOS4uuaQnOe0ouW8leaTju+8jOaQnOe0oumcgOimgeiOt+WPluW8ueW5leaVsOaNrueahOinhumike+8jOi/memHjOS7peS6uuS4lumXtOS4uuS+izwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS82YjNhZjkzYzRiMDZhZmQ5YWE5ZDc0YzhmNWY3YmZiNDI4MDk2YmU4LnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIxMjM0ODIyNjY3XFxcIj48L3A+PC9saT48bGk+PHA+PHNwYW4+5pCc57Si5Yiw5oOz6KaB55qE6KeG6aKR57uT5p6c5ZCO77yM5YaN6YCJ5oup6KeG6aKR55u45bqU55qE6ZuG5pWw6L+b6KGM5pKt5pS+4oCU4oCUJmd0Ozwvc3Bhbj48bWFyaz48c3Bhbj5kbeebkuWtkOWPquaYr+S4gOS4quaVsOaNruaUtue6s+ebkuWtkO+8jOS4jeaPkOS+m+WcqOe6v+inhumikeaSreaUvuOAgemHh+mbhuetieWKn+iDvTwvc3Bhbj48L21hcms+PHNwYW4+4oCU4oCUJmd0O+aJgOS7peiCr+WumuaYr+aSreaUvuS4jeS6hueahOWVpuKAlOKAlCZndDvkvYbmmK/liKvlv5jorrDmiJHku6znmoTnm67nmoTmmK/ku4DkuYg8L3NwYW4+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPui/m+WFpeinhumikeaSreaUvumhtemdouWQjuWwseWPr+S7peiOt+WPlumjnueTnOW8ueW5leaVsOaNruS6hu+8jOaTjeS9nOWmguS4i++8mjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS9jYzQyMDNmNzIyNWM0MDljOGVmMzcwY2NlNjUwZGUwNTUzYTcwNzRlLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDAwMTI2MTI0XFxcIj48L3A+PHA+PHNwYW4+5aSN5Yi255qE5by55bmV5Zyw5Z2A5bCx5piv5oiR5Lus6KaB6I635Y+W55qE5by55bmV5pWw5o2u5ZWmPC9zcGFuPjwvcD48cD48c3Bhbj7mjqXkuIvmnaXlsLHmmK/mib7kuIDkuKrmlK/mjIHmlq3mj5LnmoTlpoJjbXPlsI/nqIvluo/jgIHmiJbogIXlpZfmnIlkbeebkuWtkOS6jOe6p+WKqOaAgeino+aekOaooeadv+eahOmAmuWFjW9y5YWN5ZeF5bCP56iL5bqP5p2l5pKt5pS+55u45bqU55qE5b2x6KeG5Ymn6ZuGPC9zcGFuPjwvcD48cD48c3Bhbj7liLDkuobov5nkuIDmraXlhbblrp7kuZ/og73njJzliLDkuobjgILkuIvpnaLlgZrlsZXnpLrvvJo8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vOWZmOGViYTBjNmRhYWNhYTQxNzRjZGQyYWUyZDlkNzFhNjc3MTEwYi5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyMjAwMTEyMjAzMFxcXCI+PC9wPjxwPjxzcGFuPuWhq+WFpeW8ueW5leWcsOWdgOS5i+WQju+8jOmCo+S5iOWwseS8muacieW8ueW5leaVsOaNruWKoOi9veWHuuadpeS6hu+8iOWmguWbvu+8iTwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS9lYjQyZDMwY2I0YzRlMDMwYWZkNTdlOGFiOWYwYzM1MTE2M2U3YWRjLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDAxNTE3NzA1XFxcIj48L3A+PHA+Jm5ic3A7PC9wPjwvbGk+PC9vbD48cD48c3Bhbj7pgqPkuYjpl67popjmnaXkuobllaXml7blgJnnlKjpo57nk5zlvJXmk47ojrflj5blvLnluZXlkaLvvIzmiJHnmoTlu7rorq7mmK/lvZPlrpjmlrnlvLnluZXmiJbogIXlhbbku5bnmoTnrKzkuInmlrnlvLnluZXml6Dms5Xojrflj5bliLDmiJbogIXkuI3og73mu6HotrPnmoTml7blgJnkvb/nlKg8L3NwYW4+PC9wPjxwPjxzcGFuPuWFtuWunjwvc3Bhbj48bWFyaz48c3Bhbj7mm7TlgLzlvpfkuIDmj5DnmoTlupTor6XmmK/vvIzpo57nk5zlvLnluZXkuI3ku4Xku4Xlj6rmmK/mi6XmnInlm73lhoXop4bpopHnmoTlvLnluZXmlbDmja7vvIzku5bov5jmnInlpJbniYflkozlkITnp43nsbvlnovniYfmupDnmoTlvLnluZU8L3NwYW4+PC9tYXJrPjxzcGFuPu+8jOi/meS4quaXtuWAmeWmguaenOS9oOmcgOimgeW8ueW5le+8jOmCo+S5iOmjnueTnOaQnOe0ouW8leaTjuWwseacieWkp+eUqOS6hu+8gTwvc3Bhbj48L3A+PHA+PHNwYW4+6KGl5YWF5LiA54K577ya5by55bmV5Zyw5Z2A5piv5Y+v5Lul56e75qSN5Yiw5Lu75oSP5bCP56iL5bqP6KeG6aKR5pKt5pS+5Zyw5Z2A55qE77yM6YKj5LmI6Ieq54S25pivPC9zcGFuPjxzdHJvbmc+PHNwYW4+5LiN6ZyA6KaB6Kej5p6Q5Lmf5LiN6ZyA6KaB5pat5o+S5Lmf5LiN6ZyA6KaBZG3nm5LlrZDliqjmgIHop6PmnpDkuZ/og73liqDovb3lvLnluZU8L3NwYW4+PC9zdHJvbmc+PHNwYW4+5LqG5b2T54S25pyJ5Lqb5bCP56iL5bqP5Yqg6L2955qE6KeG6aKR5Zyw5Z2A5piv5pyJPC9zcGFuPjxzdHJvbmc+PHNwYW4+5pe25pWI5oCnPC9zcGFuPjwvc3Ryb25nPjxzcGFuPueahO+8jOaJgOS7peWPr+iDveS8muWHuueOsOaSreaUvuS4jeS6hueahOaDheWGteKAlOKAlCZndDvnp7vmpI3nmoTml7blgJnpnIDopoHms6jmhI/kuIvlvLnluZXnmoTmoLzlvI/vvIzlpoLkuIvvvJrvvIjlsI/nmb3lsKTlhbbms6jmhI/oirHmi6zlj7cmIzM5O3t9JiMzOTvnmoTlrZjlnKjvvIk8L3NwYW4+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS9jZDg0NDQ1ODc5Y2E2YmE3ZjAzOTM2Mjg4Yjk5YzlkMjdjMmYyODAzLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDAyOTA1NTgyXFxcIj48L3A+PHA+PHNwYW4+5Y+v6IO95L2g5Y+R546w5LqG5LiK5pa55oiq5Zu+6YeM5piv5pyJPC9zcGFuPjxzdHJvbmc+PHNwYW4+6aKE55WZ5by55bmV5o6l5Y+j5ZKMZG06JiMzOTsmIzM5Ozwvc3Bhbj48L3N0cm9uZz48c3Bhbj7lhpnlpb3nmoTmoLzlvI/lrZjlnKjnmoTvvIzpgqPlhbblrp7lsLHmmK/lm6DkuLrov5nkuKrlsI/nqIvluo/lpZfkuoZkbeebkuWtkOWKqOaAgeino+aekOaIluiAheaYr+aWreaPkuexu+Wei+eahOWwj+eoi+W6j++8jOWPr+S7peaWueS+v+e7meayoeacieW8ueW5leaVsOaNrueahOinhumikeW/q+mAn+a3u+WKoOW8ueW5leiAjOS4jeeUqOiHquW3seS/ruaUueagvOW8j+OAgjwvc3Bhbj48L3A+PHA+Jm5ic3A7PC9wPjxwPiZuYnNwOzwvcD48aDEgaWQ9J+azqOaEj+S6i+mhuSc+PHNwYW4+5rOo5oSP5LqL6aG5PC9zcGFuPjwvaDE+PG9sIHN0YXJ0PScnID48bGk+PHA+PGRlbD48c3Bhbj7lhazpkqXmsqHms5XlkozprZTmlq3lubblj5HlpJrnur/ot6/kuIDotbfkvb/nlKjjgILkvYbmmK/pkojlr7nlhazpkqXvvIxkbeebkuWtkOWinuWKoOS6huS4gOS4quiHqjwvc3Bhbj48c3Ryb25nPjxzcGFuPuWKqOaLvOaOpeWkmue6v+i3r+aOpeWPo+eahOWKn+iDveaooeWdlzwvc3Bhbj48L3N0cm9uZz48c3Bhbj7igJTigJQmZ3Q75pa55L6/5bCG5bi455So55qE5LyY6LSo5o6l5Y+j6Ieq5Yqo5ou85o6l5oiQ5LiA5Liq6L+U5Zue5aSa57q/6Lev55qE5Ye95pWw5o6l5Y+j44CC5LqL5a6e5LiK6L+Z5bey57uP6Laz55+j77yM5bCG5omL5aS055So55qE5aSa55qE77yM5aW955So55qEanNvbue7k+WQiOiBmuWQiOWcqOS4gOi1t+WwseWPr+S7peS6huOAgjwvc3Bhbj48L2RlbD48L3A+PHA+PGRlbD48c3Bhbj5UaXDvvJrmtbfpmJTlpJrnur/ot6/nmoTlrp7njrDnm67liY3pg73mmK88L3NwYW4+PHN0cm9uZz48c3Bhbj7lubblj5E8L3NwYW4+PC9zdHJvbmc+PHNwYW4+55qE5pa55byP5YyF5ous6a2U5pat5aSa57q/6Lev77yI5b6I6LS56Kej5p6Q77yJ77yM5Lmf5bCx5piv6K+054K55Ye76Kej5p6Q5LiA5Liq6KeG6aKR55qE5pe25YCZ5b+F6aG75YWI5oqK5omA5pyJ6Kej5p6Q6YO95bCd6K+V6Kej5p6Q6I635Y+W5Y+v5pKt5pS+6ZO+5o6l77yM5pyA5ZCO5bCG5omA5pyJ5b6X5Yiw55qE57uT5p6c6L+U5Zue77yM57uE5oiQ5aSa57q/6Lev5qC85byP44CC5L2G5piv6YOo5YiG6Kej5p6Q6YOo5YiG6KeG6aKR6LWE5rqQ55qE6ZO+5o6l6Kej5p6Q5Ye65p2l5ZCO5piv5pyJ5pe25pWI5oCn55qE77yM5omA5Lul5Y+v6IO96ZO+5o6l5aSx5pWI44CC5omA5Lul5q2j56Gu55qE6aOf55So5pa55byP5piv5aSa57q/6Lev5Ye65p2l5ZCO5aaC5p6c5b2T5YmN57q/6Lev6IO95pKt55S76LSo5ruh6Laz5bCx5b2T5YmN57q/6Lev55u05o6l55yL77yM5aaC6Iul6Kej5p6Q5aSx6LSl6ams5LiK5YiH5o2i77yM5LiN5o6o6I2Q55yL5Ymn5Lit6YCU5YiH5o2i5Zug5Li65aSn5qaC546H6ZO+5o6l5bey57uP5aSx5pWI77yI6a2U5pat5re75Yqg5LqG5aSa6Lev57yT5a2Y77yM5L2G5piv5a6e6ZmF5L2T6aqM5oSf6KeJ5pWI5p6c5bm25LiN5piv5b6I55CG5oOz77yMZG3nm5LlrZDnmoTogZrlkIjlh73mlbDkuZ/msqHmnInmj5DkvpvlpJrnur/ot6/nvJPlrZjvvIk8L3NwYW4+PC9kZWw+PG1hcms+PHNwYW4+6K+l5Yqf6IO95bey5Zyo5paw54mI56e76Zmk77yM5bm25pu/5o2i5Li64oCc6aOe5Lyg4oCdPC9zcGFuPjwvbWFyaz48L3A+PC9saT48bGk+PHA+PHNwYW4+5bim5pyJ5by55bmV5pWw5o2u55qE6Kej5p6Q5Y+j6Kej5p6Q5paw55Wq6KeG6aKR5pe25Lya5ZKM5paw55Wq6Ieq5bim55qE5by55bmV5pWw5o2u5Yay56qB5omA5Lul6ZyA6KaB5YWz6Zet5paw55Wq55qE5by55bmV5byA5YWzPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj7lpoLoi6Xkvb/nlKjop6PmnpDmtYvor5XjgIHprZTmlq3op6PmnpDmtYvor5Xlh7rnjrDmlbDmja7plJnkubHnmoTpl67popjlj6/ku6XkuI3nlKjnkIbkvJrvvIzov5nmmK/mraPluLjnjrDosaHvvIjomb3nhLbmiJHlubbkuI3mmK/lvojmuIXmpZrlhbfkvZPljp/lm6AuLi7vvInvvIzkvYbov5nlubbkuI3lpqjnoo3kvaDlnKjmlrDnlarjgIHmkJzni5dR44CBY21z5bCP56iL5bqP562J5pat5o+S57G75bCP56iL5bqP5Lit5q2j5bi45L2/55SoPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj7pgLvovpHpg73mmK/lhYjojrflj5blvLnluZXlho3liqDovb3op4bpopHvvIhUZW5jZW506Lev57q/55qE5by55bmV5pWw5o2u5a2Y5YKo5Yiw5pys5Zyw6ICX5pe25Y+v6IO955u45a+56L6D6ZW/77yJPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj7mma7pgILmgKdqc29u5YWs6ZKl5Y+q6YCC5ZCI5aSn6YOo5YiGanNvbueUn+aIkOWFrOmSpe+8jOivpue7hueahOS9v+eUqOaWueazleWPguingeWFrOmSpeacrOi0qOmDqOWIhjwvc3Bhbj48L3A+PC9saT48bGk+PHA+PHNwYW4+5ZeF5o6i5Yqo5oCB6Kej5p6Q5qih5p2/5ZKM5pat5o+S5Yqo5oCB6Kej5p6Q5qih5p2/5Y+q6YCC55So5LqOdXJs5pyq57uP5Yqg5a+G55qE6YCa5YWN5bCP56iL5bqPPC9zcGFuPjwvcD48cD48ZGVsPjxzcGFuPumAmuWFjeaooeadv+WvueS6juacieS6m+Wwj+eoi+W6j+eahOmDqOWIhuino+aekOe6v+i3r+aUr+aMgeW5tuS4jeaYr+W+iOWlve+8jOacieWXheaOouWksei0peeahOWPr+iDvTwvc3Bhbj48L2RlbD48L3A+PHA+PGRlbD48bWFyaz48c3Bhbj7pgJrlhY3lhazpkqXlt7Lnu4/mm7/mjaLmiJDkuobpppnlhY3lvLrlipt4NeWXheaOou+8jOmmmeWFjeiDveaSreeahOmDveiDveaSre+8jOS4jeiDveaSreeahOWfuuacrOS4iumDveaYr+e9keermeacrOi6q+aXoOazleaSreaUvjwvc3Bhbj48L21hcms+PC9kZWw+PC9wPjxwPjxzdHJvbmc+PHNwYW4+572R56uZ5ZKM6Kej5p6Q55qE6Ziy5ZeF5o6i6IO95Yqb5Lmf5Zyo5aKe5by677yM5LiN5L+d6K+B5LiA55u05pu05paw5omA5Lul5Y+v6IO95Lya5Ye6546w5ZeF5o6i5aSx6LSl55qE5Yeg546HPC9zcGFuPjwvc3Ryb25nPjwvcD48L2xpPjxsaT48cD48bWFyaz48c3Bhbj7kuI3opoHmm7TmlLlkbeebkuWtkOWwj+eoi+W6j+eahOWQjeWtlzwvc3Bhbj48L21hcms+PHNwYW4+77yM5ZCm5YiZ5YW25LuW5LqM57qn5Yqo5oCB6Kej5p6Q5L6d6LWWZG3nm5LlrZDnmoTpgJrlhY3lsI/nqIvluo/lkozmlq3mj5LnsbvlsIbml6Dms5Xojrflj5bmlbDmja7lubbmiqXplJk8L3NwYW4+PC9wPjwvbGk+PC9vbD48ZGl2IGFsaWduPVxcXCJyaWdodFxcXCI+XFxuICAgIDxoNj5cXG4gICAgICAgIOS+oOWQjVxcbiAgICA8L2g2PlxcbiAgICA8aDY+5Yid54mIMjAyMi82LzI1PC9oNj5cXG4gICAgPGg2PuesrOS6jOeJiC3kv67orqIyMDIyLzcvMTI8L2g2PlxcbjwvZGl2PjxwPiZuYnNwOzwvcD48cD4mbmJzcDs8L3A+PHA+Jm5ic3A7PC9wPjwvZGl2PjwvZGl2PlxcbjwvYm9keT5cXG48L2h0bWw+XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmlofmoaPlsZXnpLpcIixcInBhdGhcIjpcImRvY1wiLFwicnVsZVwiOlwianM6XFxyXFxuZCA9IFtdO1xcclxcbmRvY1R5cGUgPSBNWV9QQVJBTVMuZG9jVHlwZTtcXHJcXG5pZiAoZG9jVHlwZSA9PSAnaGVscCcpIHtcXHJcXG4gICAgcGF0aCA9ICdoaWtlcjovL2ZpbGVzL2NhY2hlL0luc3RydWN0aW9uX0Jvb2suaHRtbCc7XFxyXFxuICAgIGQucHVzaCh7XFxyXFxuICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJyxcXHJcXG4gICAgICAgIHVybDogZ2V0UGF0aChwYXRoKSxcXHJcXG4gICAgICAgIGRlc2M6ICdhdXRvJ1xcclxcbiAgICB9KTtcXHJcXG59IGVsc2Uge1xcclxcbiAgICBkLnB1c2goe1xcclxcbiAgICAgICAgdGl0bGU6SlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvQVBJLmh0bWwnKSkucnVsZSxcXHJcXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcclxcbiAgICB9KTtcXHJcXG59XFxyXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiQVBJ5paH5qGjXCIsXCJwYXRoXCI6XCJBUEkuaHRtbFwiLFwicnVsZVwiOlwiPHA+4oCc4oCc4oCU4oCU4oaT5L2/55So5paH5qGj4oaT4oCU4oCU4oCd4oCdPC9wPlxcclxcbuWPr+S7peWcqOi/meS4u+mhteWujOaIkOS4gOS6m+WfuuehgOWPguaVsOeahOiuvue9ru+8muW8ueW5leWkp+Wwj+OAgeW8ueW5leadpea6kO+8iOm7mOiupOS9nOeUqOWfn+aYr+mZpOS6hnR444CBYmlsaeOAgW1ndHblpJbnmoTmiYDmnInlrpjpk77vvIzlj6/ku6Xkv67mlLnkuLrlhajlsYDkvZznlKjojIPlm7TvvIksdHjjgIFiaWxp44CBbWd0duS4uuWunuaXtuW8ueW5leWHveaVsOOAglxcclxcbjxoMiBpZD1cXFwi5bCP56iL5bqP6YCa5YWN6LCD55So5pa55rOVXFxcIj7lsI/nqIvluo/pgJrlhY3osIPnlKjmlrnms5U8L2gyPlxcclxcbjxwcmU+PGNvZGU+bGF6eSA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXHJcXG4gICAgcmV0dXJuICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2xhenlUb1g1P3J1bGU9ZG3nm5LlrZAnKS52aWRlb1g1KCk7XFxyXFxufSlcXHJcXG5sYXp5ID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICByZXR1cm4gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbGF6eVRvWDU/cnVsZT1kbeebkuWtkCcpLmRyWDUoKTtcXHJcXG59KVxcclxcbmxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxyXFxuICAgIHJldHVybiAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9sYXp5VG9YNT9ydWxlPWRt55uS5a2QJykuY2xhc3NpY2FsWDUoKTtcXHJcXG59KVxcclxcbjwvY29kZT48L3ByZT5cXHJcXG48cD7igJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJQ8L3A+XFxyXFxuPGgyIGlkPVxcXCLmlq3mj5Llh73mlbDosIPnlKhcXFwiPuaWreaPkuWHveaVsOiwg+eUqDwvaDI+XFxyXFxuPGgzIGlkPVxcXCLlgJ/liqnphY3nva7liqnmiYtcXFwiPuWAn+WKqemFjee9ruWKqeaJizwvaDM+XFxyXFxu5Y+C5pWw55qG5Li65pWw57uE77yM5bCG5Lya5ZKM6YWN572u5Yqp5omL6YeM6L655L+d5a2Y5ZCv55So55qE6Kej5p6Q5ou85o6l6L+U5Zue5aSa57q/6Lev77yM5by55bmV55Sx6YWN572u5Yqp5omL566h55CG44CC55u45b2T5LqO5YWN5ZeF6aaW5Y+R44CCXFxyXFxuPHByZT48Y29kZT5yZXR1cm4gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvbXVsUGFyc2U/cnVsZT3phY3nva7liqnmiYtcXFwiKS5tdWxQYXJzZShbJ3ZpcFVybCddLCBbJ2JmdXJsJ10sIFsn6Kej5p6Q5ZCNJ10sIFt7IFxcXCJVc2VyLUFnZW50XFxcIjogXFxcIk1vemlsbGEvNS4wXFxcIiB9XSk7XFxyXFxuPC9jb2RlPjwvcHJlPlxcclxcbjxwPuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlDwvcD5cXHJcXG48aDMgaWQ9XFxcIuaWreaPki3prZTmlq1cXFwiPuaWreaPki3prZTmlq08L2gzPlxcclxcbjxwcmU+PGNvZGU+cmV0dXJuICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2xhenlUb0ppZXhpP3J1bGU9ZG3nm5LlrZAnKS5kclg1KCfmoIflh4blrpjpk74nLCAn5pKt5pS+dXJsJyk7XFxyXFxucmV0dXJuICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2xhenlUb0ppZXhpP3J1bGU9ZG3nm5LlrZAnKS5jbGFzc2ljYWxYNSgn5qCH5YeG5a6Y6ZO+JywgJ+aSreaUvnVybCcpO1xcclxcbnJldHVybiAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9sYXp5VG9KaWV4aT9ydWxlPWRt55uS5a2QJykuSnNvbmRtKCfmoIflh4blrpjpk74nLCAn5pKt5pS+dXJsJyk7XFxyXFxuPC9jb2RlPjwvcHJlPlxcclxcbjxwPuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlDwvcD5cXHJcXG48aDIgaWQ9XFxcIuiOt+WPluaMh+WumueahOW8ueW5leaWh+S7tlxcXCI+6I635Y+W5oyH5a6a55qE5by55bmV5paH5Lu2PC9oMj5cXHJcXG7ov5Tlm57lgLzmmK/lvLnluZXmlofku7bnmoTmnKzlnLDot6/lvoQs5Y+C5pWw5piv5qCH5YeG55qE5a6Y5pa56ZO+5o6lXFxyXFxuPHByZT48Y29kZT5kbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKOWumOmTvik7XFxyXFxuZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcclxcbmRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCjlrpjpk74pO1xcclxcbmRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLk1HZG0o5a6Y6ZO+KTtcXHJcXG5kbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKOWumOmTvik7XFxyXFxuZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKOWumOmTvik7XFxyXFxuPC9jb2RlPjwvcHJlPlxcclxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5by55bmV5Ye95pWw5rGH5oC7XCIsXCJwYXRoXCI6XCJkbUZ1blwiLFwicnVsZVwiOlwiLy8g5YWl5Y+j5Ye95pWw4oCU4oCU6Lev55SxXFxyXFxuJC5leHBvcnRzLmRtUm91dGUgPSBmdW5jdGlvbiAodmlwVXJsKSB7XFxyXFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXHJcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxyXFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxyXFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxyXFxuICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcclxcbiAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXHJcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcclxcbiAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcclxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxyXFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcclxcbiAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICBkZWZhdWx0OlxcclxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgfVxcclxcbiAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgaWYgKHZpcFVybC5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxyXFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXHJcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcclxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxyXFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxyXFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvbWd0di8pKSB7XFxyXFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSh2aXBVcmwpO1xcclxcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL3FxLmNvbS8pKSB7XFxyXFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSh2aXBVcmwpO1xcclxcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL2JpbGkvKSkge1xcclxcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSh2aXBVcmwpO1xcclxcbiAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICBkbSA9IGdldFZhcignZG1fc2hhcmUnLCAnJyk7XFxyXFxuICAgICAgICB9XFxyXFxuICAgIH1cXHJcXG4gICAgcmV0dXJuIGRtO1xcclxcbn1cXHJcXG5cXHJcXG5cXHJcXG4vL+WumOaWueW8ueW5leWHveaVsHwgcXFcXHJcXG4kLmV4cG9ydHMuVFhkbSA9IGZ1bmN0aW9uIChyZWFsdXJsKSB7XFxyXFxuICAgIGlmIChnZXRJdGVtKCdUWF9mcm9tXycgKyBNWV9SVUxFLnRpdGxlLCAnJykgPT0gcmVhbHVybCkge1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnVFhfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgfVxcclxcbiAgICB0cnkge1xcclxcbiAgICAgICAgdmFyIHZpZDtcXHJcXG4gICAgICAgIC8vIOmAgumFjVBD56uv6ZO+5o6l77yI6LGG55Oj55S16KeG5Ymn6YCa55So77yJXFxyXFxuICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgIHZpZCA9IHJlYWx1cmwuc3BsaXQoJy5odG1sJylbMF0uc3BsaXQoJy8nKS5wb3AoKTtcXHJcXG4gICAgICAgICAgICBsb2codmlkKTtcXHJcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgICAgICAvLyDmkLrluKZ2aWTlj4LmlbDnmoTnp7vliqjnq6/pk77mjqVcXHJcXG4gICAgICAgICAgICB2aWQgPSByZWFsdXJsLnNwbGl0KCc9JylbMV07XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICB2YXIgZGF0YSA9ICcnO1xcclxcbiAgICAgICAgLy8g5by55bmV5qC35byPXFxyXFxuICAgICAgICB2YXIgY3QgPSAxO1xcclxcbiAgICAgICAgLy8g5a2X5L2T5aSn5bCPXFxyXFxuICAgICAgICB2YXIgc2l6ZSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKS5mb250U2l6ZTtcXHJcXG4gICAgICAgIHRyeSB7XFxyXFxuICAgICAgICAgICAgZGFubXVEYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9kbS52aWRlby5xcS5jb20vYmFycmFnZS9iYXNlLycgKyB2aWQsIHtcXHJcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBQQ19VQSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vdi5xcS5jb20vXFxcIlxcclxcbiAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFxcXCJHRVRcXFwiXFxyXFxuICAgICAgICAgICAgfSkpLnNlZ21lbnRfaW5kZXg7XFxyXFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICAgICAgLy8g6IGa5b2x44CB6LGG55Oj44CB5pCc54uX562J6IW+6K6v55S15b2x6ZO+5o6lXFxyXFxuICAgICAgICAgICAgbG9nKCd2aWTlj4LmlbDplJnor68s546w5bCG5YW26KeG5Li6Y2lk6YeN5paw6I635Y+WJyk7XFxyXFxuICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3QoJ2h0dHBzOi8vcGJhY2Nlc3MudmlkZW8ucXEuY29tL3RycGMudmlkZW9zZWFyY2guc2VhcmNoX2NnaS5odHRwL2xvYWRfcGxheXNvdXJjZV9saXN0X2luZm8/cGFnZU51bT0wJmlkPScgKyB2aWQgKyAnJmRhdGFUeXBlPTImcGFnZUNvbnRleHQ9bmVlZF9hc3luYyUzRHRydWUmc2NlbmU9MiZwbGF0Zm9ybT0yJmFwcElkPTEwNzE4JnNpdGU9cXEmdmFwcGlkPTM0MzgyNTc5JnZzZWNyZXQ9ZTQ5NmIwNTc3NThhZWIwNGIzYTJkNjIzYzk1MmExYzQ3ZTA0ZmZiMGEwMWUxOWNmJmdfdGs9JmdfdnN0az0mZ19hY3RrPScpO1xcclxcbiAgICAgICAgICAgIHZpZCA9IEpTT04ucGFyc2UoZGF0YSkuZGF0YS5ub3JtYWxMaXN0Lml0ZW1MaXN0WzBdLnZpZGVvSW5mby5maXJzdEJsb2NrU2l0ZXNbMF0uZXBpc29kZUluZm9MaXN0WzBdLmlkO1xcclxcbiAgICAgICAgICAgIGxvZygn55yf5a6edmlkOicgKyB2aWQpO1xcclxcbiAgICAgICAgICAgIGRhbm11RGF0YSA9IEpTT04ucGFyc2UoZmV0Y2goJ2h0dHBzOi8vZG0udmlkZW8ucXEuY29tL2JhcnJhZ2UvYmFzZS8nICsgdmlkLCB7XFxyXFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogUENfVUEsXFxyXFxuICAgICAgICAgICAgICAgICAgICBcXFwiUmVmZXJlclxcXCI6IFxcXCJodHRwczovL3YucXEuY29tL1xcXCJcXHJcXG4gICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcXFwiR0VUXFxcIlxcclxcbiAgICAgICAgICAgIH0pKS5zZWdtZW50X2luZGV4O1xcclxcbiAgICAgICAgfVxcclxcbiAgICAgICAgdXJsID0gW107XFxyXFxuICAgICAgICBmb3IgKHZhciBwcm9wIGluIGRhbm11RGF0YSkge1xcclxcbiAgICAgICAgICAgIHVybC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9kbS52aWRlby5xcS5jb20vYmFycmFnZS9zZWdtZW50LycgKyB2aWQgKyAnLycgKyBkYW5tdURhdGFbcHJvcF0uc2VnbWVudF9uYW1lXFxyXFxuICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICBiYXRjaEZldGNoKHVybCkubWFwKGZ1bmN0aW9uIChhKSB7XFxyXFxuICAgICAgICAgICAgZGFubXVEYXRhID0gSlNPTi5wYXJzZShhKS5iYXJyYWdlX2xpc3Q7XFxyXFxuICAgICAgICAgICAgLy8g5by55bmV5Li656m6XFxyXFxuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhbm11RGF0YSkgPT09ICdbXScpIHtcXHJcXG4gICAgICAgICAgICAgICAgbG9nKCfmraTpobXkuLrnqbonKTtcXHJcXG4gICAgICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYW5tdURhdGEubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXlj5HpgIHml7bpl7RcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lcG9pbnQgPSBkYW5tdURhdGFbaV0udGltZV9vZmZzZXQgLyAxMDAwO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leminOiJsijpu5jorqQpXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSAxNjc3NzIxNTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGFubXVEYXRhW2ldLmNvbnRlbnRfc3R5bGUgIT0gJycpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JIZXggPSBkYW5tdURhdGFbaV0uY29udGVudF9zdHlsZS5tYXRjaCgvXFxcXFtcXFwiW1xcXFxTXFxcXHNdKyg/PVxcXCIsXFxcIikvKVswXS5yZXBsYWNlKCdbXFxcIicsICcnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBwYXJzZUludChjb2xvckhleCwgMTYpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXlhoXlrrlcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gZGFubXVEYXRhW2ldLmNvbnRlbnQ7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQuaW5kZXhPZignPCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignPicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignJicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXHUwMDAwJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcYicpICE9IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wZGF0YSA9IGA8ZCBwPVxcXCIke01hdGgucm91bmQodGltZXBvaW50KX0sJHtjdH0sJHtzaXplfSwke2NvbG9yfSwwXFxcIj4ke2NvbnRlbnR9PC9kPlxcXFxuYFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgKz0gdGVtcGRhdGE7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGxvZygn5LiN55+l57yY55Sx55qE5byC5bi477yM55u05o6l6Lez6L+HJylcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgIH0pO1xcclxcbiAgICAgICAgLy8g5pyA57uI5b6F5YaZ5YWl55qE5by55bmV5pWw5o2uXFxyXFxuICAgICAgICBkYW5tdXN0ciA9IGA8P3htbCB2ZXJzaW9uPVxcXCIxLjBcXFwiIGVuY29kaW5nPVxcXCJVVEYtOFxcXCI/PlxcXFxuPGk+XFxcXG4ke2RhdGF9PC9pPmA7XFxyXFxuICAgICAgICAvLyDlhpnlhaXlvLnluZVcXHJcXG4gICAgICAgIGRtID0gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdUWF9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICAgICAgc2F2ZUZpbGUoZG0sIGRhbm11c3RyKTtcXHJcXG4gICAgICAgIHNldEl0ZW0oJ1RYX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsIHJlYWx1cmwpO1xcclxcbiAgICAgICAgcHV0VmFyKCdkbV9zaGFyZScsIGRtKTtcXHJcXG4gICAgICAgIHJldHVybiBkbTtcXHJcXG4gICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgbG9nKCflh7rplJnkuoYnKVxcclxcbiAgICAgICAgc2hvd0xvYWRpbmcoJ+WkqeWRkOaSuO+8jOiOt+WPluWksei0peS6huWRou+8gScpO1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnVFhfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgfVxcclxcbn1cXHJcXG5cXHJcXG4vLyDlrpjmlrlBUEl8YmlsaVxcclxcbiQuZXhwb3J0cy5iaWxpZG0gPSBmdW5jdGlvbiAocmVhbHVybCkge1xcclxcbiAgICBmdW5jdGlvbiBvdmVycmlkZVNhdmUoZG0pIHtcXHJcXG4gICAgICAgIHZhciBkYW5tdURhdGEgPSByZXF1ZXN0KGRtKTtcXHJcXG4gICAgICAgIHZhciBzaXplID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpLmZvbnRTaXplO1xcclxcbiAgICAgICAgdmFyIGRhdGEgPSAnJztcXHJcXG4gICAgICAgIHRkID0gcGRmYShkYW5tdURhdGEsICdpJiZkJyk7XFxyXFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRkLmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgdGltZXBvaW50ID0gcGRmaCh0ZFtpXSwgJ2QmJnAnKS5zcGxpdChcXFwiLFxcXCIpWzBdO1xcclxcbiAgICAgICAgICAgIGN0ID0gcGRmaCh0ZFtpXSwgJ2QmJnAnKS5zcGxpdChcXFwiLFxcXCIpWzFdO1xcclxcbiAgICAgICAgICAgIGNvbG9yID0gcGRmaCh0ZFtpXSwgJ2QmJnAnKS5zcGxpdChcXFwiLFxcXCIpWzNdO1xcclxcbiAgICAgICAgICAgIC8vIOW8ueW5leWGheWuuVxcclxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBwZGZoKHRkW2ldLCAnZCYmVGV4dCcpO1xcclxcbiAgICAgICAgICAgIGlmIChjb250ZW50LmluZGV4T2YoJzwnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJz4nKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJyYnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFx1MDAwMCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXGInKSAhPSAtMSkge1xcclxcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgdGVtcGRhdGEgPSBgPGQgcD1cXFwiJHtNYXRoLnJvdW5kKHRpbWVwb2ludCl9LCR7Y3R9LCR7c2l6ZX0sJHtjb2xvcn0sMFxcXCI+JHtjb250ZW50fTwvZD5cXFxcbmA7XFxyXFxuICAgICAgICAgICAgZGF0YSArPSB0ZW1wZGF0YTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIGRhbm11c3RyID0gYDw/eG1sIHZlcnNpb249XFxcIjEuMFxcXCIgZW5jb2Rpbmc9XFxcIlVURi04XFxcIj8+XFxcXG48aT5cXFxcbiR7ZGF0YX08L2k+YDtcXHJcXG4gICAgICAgIHNhdmVGaWxlKGRtLCBkYW5tdXN0cik7XFxyXFxuICAgIH1cXHJcXG5cXHJcXG5cXHJcXG4gICAgaWYgKGdldEl0ZW0oJ2JpbGlfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgJycpID09IHJlYWx1cmwpIHtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ2JpbGlfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgfVxcclxcbiAgICB0cnkge1xcclxcbiAgICAgICAgdmFyIGVwaWQsIGRhdGEsIGNpZDtcXHJcXG4gICAgICAgIGlmIChyZWFsdXJsLm1hdGNoKC9lcC8pKSB7XFxyXFxuICAgICAgICAgICAgZXBpZCA9IHJlYWx1cmwuc3BsaXQoJ2VwJylbMV0uc3BsaXQoJz8nKVswXTtcXHJcXG4gICAgICAgICAgICBmZXRjaF91cmwgPSBcXFwiaHR0cHM6Ly9hcGkuYmlsaWJpbGkuY29tL3BnYy92aWV3L3dlYi9zZWFzb24/ZXBfaWQ9XFxcIiArIGVwaWQ7XFxyXFxuICAgICAgICB9IGVsc2UgaWYgKHJlYWx1cmwubWF0Y2goL2F2LykpIHtcXHJcXG4gICAgICAgICAgICAvLyBhaWTmnIDlsI/ljZXkvY0t5Y2V6ZuGXFxyXFxuICAgICAgICAgICAgYWlkID0gcmVhbHVybC5zcGxpdCgnYXYnKVsxXS5zcGxpdCgnPycpWzBdO1xcclxcbiAgICAgICAgICAgIGxvZygnYWlkOicgKyBhaWQpO1xcclxcbiAgICAgICAgICAgIGZldGNoX3VybCA9IFxcXCJodHRwczovL2FwaS5iaWxpYmlsaS5jb20veC93ZWItaW50ZXJmYWNlL3ZpZXc/YWlkPVxcXCIgKyBhaWQ7XFxyXFxuICAgICAgICAgICAgY2lkID0gSlNPTi5wYXJzZShmZXRjaChmZXRjaF91cmwsIHtcXHJcXG4gICAgICAgICAgICAgICAgXFxcImhlYWRlcnNcXFwiOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFBDX1VBXFxyXFxuICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgIFxcXCJyZWZlcnJlclxcXCI6IHJlYWx1cmwsXFxyXFxuICAgICAgICAgICAgICAgIFxcXCJtZXRob2RcXFwiOiBcXFwiR0VUXFxcIixcXHJcXG4gICAgICAgICAgICB9KSkuZGF0YS5jaWQ7XFxyXFxuICAgICAgICAgICAgZmlsZSA9ICdodHRwczovL2NvbW1lbnQuYmlsaWJpbGkuY29tLycgKyBjaWQgKyAnLnhtbCc7XFxyXFxuICAgICAgICAgICAgZG0gPSAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ2JpbGlfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgICAgICAgICBkb3dubG9hZEZpbGUoZmlsZSwgZG0pO1xcclxcbiAgICAgICAgICAgIG92ZXJyaWRlU2F2ZShkbSk7XFxyXFxuICAgICAgICAgICAgc2V0SXRlbSgnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlLCByZWFsdXJsKTtcXHJcXG4gICAgICAgICAgICBwdXRWYXIoJ2RtX3NoYXJlJywgZG0pO1xcclxcbiAgICAgICAgICAgIHJldHVybiBkbTtcXHJcXG4gICAgICAgIH0gZWxzZSBpZiAocmVhbHVybC5tYXRjaCgvc3N8bWQvKSkge1xcclxcbiAgICAgICAgICAgIGlmIChyZWFsdXJsLm1hdGNoKC9zcy8pKSB7XFxyXFxuICAgICAgICAgICAgICAgIC8vIOmHh+mbhuWIsOeahHNz6ZO+5o6l5aSa5Y2K5bCx5piv55S15b2x77yMc2Vhc29uX2lk5Lmf6IO95Luj6KGo5Y2V6ZuG5a+55YW25aSE55CGXFxyXFxuICAgICAgICAgICAgICAgIHNlYXNvbl9pZCA9IHJlYWx1cmwuc3BsaXQoJ3NzJylbMV0uc3BsaXQoJz8nKVswXTtcXHJcXG4gICAgICAgICAgICAgICAgbG9nKCdzZWFzb25faWQ6JyArIHNlYXNvbl9pZCk7XFxyXFxuICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgLy8g55Sx55Wq5YmnbWTmn6Xor6JzZWFzb25faWTvvIzlho3nu4/lkIzmoLfpgLvovpHlpITnkIbvvIjlvZPlgZrljZXpm4blpITnkIYt5pyq6aqM6K+B77yJXFxyXFxuICAgICAgICAgICAgICAgIG1kID0gcmVhbHVybC5zcGxpdCgnbWQnKVsxXS5zcGxpdCgnPycpWzBdO1xcclxcbiAgICAgICAgICAgICAgICBsb2coJ21kOicgKyBtZCk7XFxyXFxuICAgICAgICAgICAgICAgIGZldGNoX3VybCA9IFxcXCJodHRwczovL2FwaS5iaWxpYmlsaS5jb20vcGdjL3Jldmlldy91c2VyP21lZGlhX2lkPVxcXCIgKyBlcGlkO1xcclxcbiAgICAgICAgICAgICAgICBzZWFzb25faWQgPSBKU09OLnBhcnNlKGZldGNoKGZldGNoX3VybCwge1xcclxcbiAgICAgICAgICAgICAgICAgICAgXFxcImhlYWRlcnNcXFwiOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQVxcclxcbiAgICAgICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJyZWZlcnJlclxcXCI6IHJlYWx1cmwsXFxyXFxuICAgICAgICAgICAgICAgICAgICBcXFwibWV0aG9kXFxcIjogXFxcIkdFVFxcXCIsXFxyXFxuICAgICAgICAgICAgICAgIH0pKS5yZXN1bHQubWVkaWEuc2Vhc29uX2lkO1xcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICBmZXRjaF91cmwgPSAnaHR0cHM6Ly9hcGkuYmlsaWJpbGkuY29tL3BnYy93ZWIvc2Vhc29uL3NlY3Rpb24/c2Vhc29uX2lkPScgKyBzZWFzb25faWQ7XFxyXFxuICAgICAgICAgICAgY2lkID0gSlNPTi5wYXJzZShmZXRjaChmZXRjaF91cmwsIHtcXHJcXG4gICAgICAgICAgICAgICAgXFxcImhlYWRlcnNcXFwiOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFBDX1VBXFxyXFxuICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgIFxcXCJyZWZlcnJlclxcXCI6IHJlYWx1cmwsXFxyXFxuICAgICAgICAgICAgICAgIFxcXCJtZXRob2RcXFwiOiBcXFwiR0VUXFxcIixcXHJcXG4gICAgICAgICAgICB9KSkucmVzdWx0Lm1haW5fc2VjdGlvbi5lcGlzb2Rlc1swXS5jaWRcXHJcXG4gICAgICAgICAgICBmaWxlID0gJ2h0dHBzOi8vY29tbWVudC5iaWxpYmlsaS5jb20vJyArIGNpZCArICcueG1sJztcXHJcXG4gICAgICAgICAgICBkbSA9ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICAgICAgICAgIGRvd25sb2FkRmlsZShmaWxlLCBkbSk7XFxyXFxuICAgICAgICAgICAgb3ZlcnJpZGVTYXZlKGRtKTtcXHJcXG4gICAgICAgICAgICBzZXRJdGVtKCdiaWxpX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsIHJlYWx1cmwpO1xcclxcbiAgICAgICAgICAgIHB1dFZhcignZG1fc2hhcmUnLCBkbSk7XFxyXFxuICAgICAgICAgICAgcmV0dXJuIGRtO1xcclxcbiAgICAgICAgfVxcclxcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZmV0Y2goZmV0Y2hfdXJsLCB7XFxyXFxuICAgICAgICAgICAgXFxcImhlYWRlcnNcXFwiOiB7XFxyXFxuICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogUENfVUFcXHJcXG4gICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgIFxcXCJyZWZlcnJlclxcXCI6IHJlYWx1cmwsXFxyXFxuICAgICAgICAgICAgXFxcIm1ldGhvZFxcXCI6IFxcXCJHRVRcXFwiLFxcclxcbiAgICAgICAgfSkpO1xcclxcbiAgICAgICAgdHJ5IHtcXHJcXG4gICAgICAgICAgICBkYXRhLnJlc3VsdC5lcGlzb2Rlcy5mb3JFYWNoKGVwID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgaWYgKGVwLmxpbmsgPT0gcmVhbHVybCkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgY2lkID0gKGVwLmNpZCkudG9TdHJpbmcoKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vYnJlYWs7XFxyXFxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpXFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgICAgICBmaWxlID0gJ2h0dHBzOi8vY29tbWVudC5iaWxpYmlsaS5jb20vJyArIGNpZCArICcueG1sJztcXHJcXG4gICAgICAgICAgICBkbSA9ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICAgICAgICAgIGRvd25sb2FkRmlsZShmaWxlLCBkbSk7XFxyXFxuICAgICAgICAgICAgb3ZlcnJpZGVTYXZlKGRtKTtcXHJcXG4gICAgICAgICAgICBzZXRJdGVtKCdiaWxpX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsIHJlYWx1cmwpO1xcclxcbiAgICAgICAgICAgIHB1dFZhcignZG1fc2hhcmUnLCBkbSk7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICByZXR1cm4gZG07XFxyXFxuICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgIGxvZygn5Ye66ZSZ5LqGJylcXHJcXG4gICAgICAgIHNob3dMb2FkaW5nKCflpKnlkZDmkrjvvIzojrflj5blpLHotKXkuoblkaLvvIEnKTtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ2JpbGlfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgfVxcclxcbn1cXHJcXG5cXHJcXG4vL+WumOaWueW8ueW5leWHveaVsHwgbWd0dlxcclxcbiQuZXhwb3J0cy5NR2RtID0gZnVuY3Rpb24gKHJlYWx1cmwpIHtcXHJcXG4gICAgaWYgKGdldEl0ZW0oJ01nX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsICcnKSA9PSByZWFsdXJsKSB7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdNZ19mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxuICAgIHRyeSB7XFxyXFxuICAgICAgICB2YXIgdmlkID0gcmVhbHVybC5zcGxpdCgnLycpWzVdLnNwbGl0KCcuaHRtbCcpWzBdO1xcclxcbiAgICAgICAgdmFyIGNpZCA9IHJlYWx1cmwuc3BsaXQoJy8nKVs0XTtcXHJcXG4gICAgICAgIHZhciBmaWxlTnVtID0gMDtcXHJcXG4gICAgICAgIHZhciBkYXRhID0gJydcXHJcXG4gICAgICAgIC8vIOWtl+S9k+Wkp+Wwj1xcclxcbiAgICAgICAgdmFyIHNpemUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZm9udFNpemU7XFxyXFxuICAgICAgICAvLyDlrrnplJnlpITnkIZcXHJcXG4gICAgICAgIHZhciBlcnJOdW0gPSAwO1xcclxcbiAgICAgICAgZGFubXVGcm9tID0gSlNPTi5wYXJzZShmZXRjaChgaHR0cHM6Ly9nYWxheHkuYnoubWd0di5jb20vZ2V0Y3RsYmFycmFnZT92ZXJzaW9uPTMuMC4wJnZpZD0ke3ZpZH0mYWJyb2FkPTAmcGlkPTAmb3M9JnV1aWQ9JmRldmljZWlkPTJjYzA5MmNiLWY5ZGYtNGY0Zi1hMWNlLTMzYzdmZTM1NzVjZiZjaWQ9MzkzNzE3JnRpY2tldD0mbWFjPSZwbGF0Zm9ybT0wJmFwcFZlcnNpb249My4wLjAmcmVxdHlwZT1mb3JtLXBvc3QmY2FsbGJhY2s9anNvbnBfMTY1ODIxNjg3MzY0OF8xOTA3NCZhbGxvd2VkUkM9MWAsIHtcXHJcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogUENfVUEsXFxyXFxuICAgICAgICAgICAgICAgICdSZWZlcmVyJzogcmVhbHVybFxcclxcbiAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJ1xcclxcbiAgICAgICAgfSkubWF0Y2goL3tbXFxcXFNcXFxcc10rfS8pKS5kYXRhLmNkbl92ZXJzaW9uO1xcclxcbiAgICAgICAgLy8gRFZE44CB55S15b2x44CB5bCR6YOo5YiG5Ymn6ZuGXFxyXFxuICAgICAgICBpZiAoZGFubXVGcm9tID09IHVuZGVmaW5lZCkge1xcclxcbiAgICAgICAgICAgIHZhciB0aW1lID0gMDtcXHJcXG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xcclxcbiAgICAgICAgICAgICAgICAvLyDor7fmsYLlvLnluZVcXHJcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11RGF0YSA9IEpTT04ucGFyc2UoZmV0Y2goYGh0dHBzOi8vZ2FsYXh5LmJ6Lm1ndHYuY29tL2Nkbi9vcGJhcnJhZ2U/dmVyc2lvbj0zLjAuMCZ2aWQ9JHt2aWR9JmFicm9hZD0wJnBpZD0wJm9zPSZ1dWlkPSZkZXZpY2VpZD0yY2MwOTJjYi1mOWRmLTRmNGYtYTFjZS0zM2M3ZmUzNTc1Y2YmY2lkPSR7Y2lkfSZ0aWNrZXQ9Jm1hYz0mcGxhdGZvcm09MCZ0aW1lPSR7dGltZX0mZGV2aWNlPTAmYWxsb3dlZFJDPTEmYXBwVmVyc2lvbj0zLjAuMCZyZXF0eXBlPWZvcm0tcG9zdCZjYWxsYmFjaz1qc29ucF8xNjU4NDU5MTc4OTk4XzUxNTAmYWxsb3dlZFJDPTFgLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IFBDX1VBLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IHJlYWx1cmxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCdcXHJcXG4gICAgICAgICAgICAgICAgICAgIH0pLm1hdGNoKC97W1xcXFxTXFxcXHNdK30vKSkuZGF0YTtcXHJcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCfor7fmsYLlpLHotKUnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIGRhbm11ID0gZGFubXVEYXRhLml0ZW1zO1xcclxcbiAgICAgICAgICAgICAgICAvLyDnm7Toh7PlvLnluZXkuLrnqbrigJTigJTnnJ/nmoTmmK/vvIzlpoLmnpzlvLnluZXlpKrlsJHlr7zoh7Tmn5DkuIDpobXmsqHmnInmlbDmja7pgqPlsoLkuI3mmK/or6/mnYDvvJ/vvJ/vvJ/nu5nku5bkuKrlhYHorrgo6L+e57utKeepuuWAvOeahOacgOWkp+asoeaVsOWQp+OAguOAglxcclxcbiAgICAgICAgICAgICAgICBpZiAoZGFubXUgPT0gbnVsbCkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgZXJyTnVtICs9IDE7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyTnVtID4gMikge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAvLyDlpoLmnpzog73ojrflj5bliLDmlbDmja7lsLHlsIbnqbrlgLzmrKHmlbDmuIUw77yM5L+d6K+B6ZSZ6K+v56m65YC85piv6L+e57ut55qE77yM5bC95Y+v6IO96YG/5YWN6K+v5p2AXFxyXFxuICAgICAgICAgICAgICAgIGVyck51bSA9IDA7XFxyXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGFubXUubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWPkemAgeaXtumXtFxcclxcbiAgICAgICAgICAgICAgICAgICAgdGltZXBvaW50ID0gZGFubXVbaV0udGltZSAvIDEwMDA7XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXmoLflvI9cXHJcXG4gICAgICAgICAgICAgICAgICAgIGN0ID0gMTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYW5tdVtpXS52Ml9wb3NpdGlvbikge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOmhtuerr+W8ueW5lVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0ID0gNTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leminOiJsijpu5jorqQpXFxyXFxuICAgICAgICAgICAgICAgICAgICBjb2xvciA9IDE2Nzc3MjE1O1xcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g6aKc6Imy6K6+572u4oCU4oCU5Y+v6Ieq6KGM5L+u5pS55pu/5o2ibGVmdOS4unJpZ2h0KOWOn+adpeaYr+W3puWPs+a4kOWPmOeahOminOiJsu+8jOS9hnhtbOagvOW8j+acrOi6q+W5tuS4jeaUr+aMge+8jOaJgOS7peS6jOmAieS4gOWQp++8jGxlZnTkuIDoiKzpopzoibLmr5TovoPmt7HvvIxyaWdodOS4gOiIrOminOiJsuavlOi+g+a1hSlcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYW5tdVtpXS52Ml9jb2xvcikge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gKGRhbm11W2ldLnYyX2NvbG9yLmNvbG9yX2xlZnQuciA8PCAxNikgKyAoZGFubXVbaV0udjJfY29sb3IuY29sb3JfbGVmdC5nIDw8IDgpICsgKGRhbm11W2ldLnYyX2NvbG9yLmNvbG9yX2xlZnQuYik7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXlhoXlrrlcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBkYW5tdVtpXS5jb250ZW50O1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQuaW5kZXhPZignPCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignPicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignJicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXHUwMDAwJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcYicpICE9IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICB0ZW1wZGF0YSA9IGA8ZCBwPVxcXCIke01hdGgucm91bmQodGltZXBvaW50KX0sJHtjdH0sJHtzaXplfSwke2NvbG9yfSwwXFxcIj4ke2NvbnRlbnR9PC9kPlxcXFxuYFxcclxcbiAgICAgICAgICAgICAgICAgICAgZGF0YSArPSB0ZW1wZGF0YTtcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICB0aW1lID0gZGFubXVEYXRhLm5leHQ7XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAvLyDkuIDoiKzliafpm4blkoznu7zoibpcXHJcXG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xcclxcbiAgICAgICAgICAgICAgICAvLyDor7fmsYLlvLnluZVcXHJcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11RGF0YSA9IEpTT04ucGFyc2UoZmV0Y2goYGh0dHBzOi8vYnVsbGV0LXdzLmhpdHYuY29tLyR7ZGFubXVGcm9tfS8ke2ZpbGVOdW19Lmpzb25gLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IFBDX1VBLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IHJlYWx1cmxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCdcXHJcXG4gICAgICAgICAgICAgICAgICAgIH0pKS5kYXRhO1xcclxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ+W8ueW5leaVsOaNruiOt+WPluWujOavlScpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgZGFubXUgPSBkYW5tdURhdGEuaXRlbXM7XFxyXFxuICAgICAgICAgICAgICAgIGlmIChkYW5tdSA9PSBudWxsKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ+i/meS4gOmhteayoeacieaVsOaNricpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g5beu54K55b+Y6K6w5YqgMeS6hu+8jOatu+W+queOr+imgeW0qea6g35cXHJcXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOdW0gKz0gMTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGFubXUubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWPkemAgeaXtumXtFxcclxcbiAgICAgICAgICAgICAgICAgICAgdGltZXBvaW50ID0gZGFubXVbaV0udGltZSAvIDEwMDA7XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXmoLflvI9cXHJcXG4gICAgICAgICAgICAgICAgICAgIGN0ID0gMTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYW5tdVtpXS52Ml9wb3NpdGlvbikge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOmhtuerr+W8ueW5lVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0ID0gNTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leminOiJsijpu5jorqQpXFxyXFxuICAgICAgICAgICAgICAgICAgICBjb2xvciA9IDE2Nzc3MjE1O1xcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g6aKc6Imy6K6+572u4oCU4oCU5Y+v6Ieq6KGM5L+u5pS55pu/5o2ibGVmdOS4unJpZ2h0KOWOn+adpeaYr+W3puWPs+a4kOWPmOeahOminOiJsu+8jOS9hnhtbOagvOW8j+acrOi6q+W5tuS4jeaUr+aMge+8jOaJgOS7peS6jOmAieS4gOWQp++8jGxlZnTkuIDoiKzpopzoibLmr5TovoPmt7HvvIxyaWdodOS4gOiIrOminOiJsuavlOi+g+a1hSlcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYW5tdVtpXS52Ml9jb2xvcikge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gKGRhbm11W2ldLnYyX2NvbG9yLmNvbG9yX2xlZnQuciA8PCAxNikgKyAoZGFubXVbaV0udjJfY29sb3IuY29sb3JfbGVmdC5nIDw8IDgpICsgKGRhbm11W2ldLnYyX2NvbG9yLmNvbG9yX2xlZnQuYik7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXlhoXlrrlcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBkYW5tdVtpXS5jb250ZW50O1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQuaW5kZXhPZignPCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignPicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignJicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXHUwMDAwJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcYicpICE9IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICB0ZW1wZGF0YSA9IGA8ZCBwPVxcXCIke01hdGgucm91bmQodGltZXBvaW50KX0sJHtjdH0sJHtzaXplfSwke2NvbG9yfSwwXFxcIj4ke2NvbnRlbnR9PC9kPlxcXFxuYFxcclxcbiAgICAgICAgICAgICAgICAgICAgZGF0YSArPSB0ZW1wZGF0YTtcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICBmaWxlTnVtICs9IDE7XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgfVxcclxcblxcclxcbiAgICAgICAgLy8g5pyA57uI5b6F5YaZ5YWl55qE5by55bmV5pWw5o2uXFxyXFxuICAgICAgICBkYW5tdXN0ciA9IGA8P3htbCB2ZXJzaW9uPVxcXCIxLjBcXFwiIGVuY29kaW5nPVxcXCJVVEYtOFxcXCI/PlxcXFxuPGk+XFxcXG4ke2RhdGF9PC9pPmA7XFxyXFxuICAgICAgICAvLyDlhpnlhaXlvLnluZVcXHJcXG4gICAgICAgIGRtID0gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdNZ19mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICAgICAgc2F2ZUZpbGUoZG0sIGRhbm11c3RyKTtcXHJcXG4gICAgICAgIHNldEl0ZW0oJ01nX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsIHJlYWx1cmwpO1xcclxcbiAgICAgICAgcHV0VmFyKCdkbV9zaGFyZScsIGRtKTtcXHJcXG4gICAgICAgIHJldHVybiBkbTtcXHJcXG4gICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgbG9nKCflh7rplJnkuoYnKVxcclxcbiAgICAgICAgc2hvd0xvYWRpbmcoJ+WkqeWRkOaSuO+8jOiOt+WPluWksei0peS6huWRou+8gScpO1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnTWdfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgfVxcclxcbn1cXHJcXG5cXHJcXG4vL+W3puWyuOW8ueW5leW6k3zlrpggXFxyXFxuJC5leHBvcnRzLnp1b2FuZG0gPSBmdW5jdGlvbiAocmVhbHVybCkge1xcclxcbiAgICBpZiAoZ2V0SXRlbSgnenVvYW5fZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgJycpID09IHJlYWx1cmwpIHtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ3p1b2FuX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgIH1cXHJcXG4gICAgdHJ5IHtcXHJcXG4gICAgICAgIHZhciBkYXRhID0gJyc7XFxyXFxuICAgICAgICAvLyDlvLnluZXmoLflvI9cXHJcXG4gICAgICAgIHZhciBjdCA9IDE7XFxyXFxuICAgICAgICAvLyDlrZfkvZPlpKflsI9cXHJcXG4gICAgICAgIHZhciBzaXplID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpLmZvbnRTaXplO1xcclxcbiAgICAgICAgdHJ5IHtcXHJcXG4gICAgICAgICAgICB2YXIgZGFubXVEYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9kbWt1LnRoZWZpbGVob3N0aW5nLmNvbS8/YWM9ZG0mdXJsPScgKyByZWFsdXJsKSkuZGFubXVrdTtcXHJcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgICAgICBsb2coXFxcIuivt+axguWksei0pTpcXFwiICsgZS5tZXNzYWdlKTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGFubXVEYXRhLmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgLy8g5by55bmV5Y+R6YCB5pe26Ze0XFxyXFxuICAgICAgICAgICAgdGltZXBvaW50ID0gZGFubXVEYXRhW2ldWzBdO1xcclxcbiAgICAgICAgICAgIC8vIOW8ueW5leagt+W8j1xcclxcbiAgICAgICAgICAgIGN0ID0gMTtcXHJcXG4gICAgICAgICAgICBpZiAoZGFubXVEYXRhW2ldWzFdID09ICd0b3AnKSB7XFxyXFxuICAgICAgICAgICAgICAgIC8vIOmhtuerr+W8ueW5lVxcclxcbiAgICAgICAgICAgICAgICBjdCA9IDU7XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIC8vIOminOiJsuiuvue9rlxcclxcbiAgICAgICAgICAgIHZhciBoZXggPSBkYW5tdURhdGFbaV1bMl0ucmVwbGFjZSgnIycsICcnKTtcXHJcXG4gICAgICAgICAgICBpZiAoaGV4Lmxlbmd0aCA9PSAzKSB7XFxyXFxuICAgICAgICAgICAgICAgIGxldCB0ID0gJydcXHJcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZXgubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIHQgKz0gaGV4LnNsaWNlKGksIGkgKyAxKS5jb25jYXQoaGV4LnNsaWNlKGksIGkgKyAxKSlcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICBoZXggPSB0XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIGNvbG9yID0gcGFyc2VJbnQoaGV4LCAxNik7XFxyXFxuICAgICAgICAgICAgLy8g5by55bmV5YaF5a65XFxyXFxuICAgICAgICAgICAgY29udGVudCA9IGRhbm11RGF0YVtpXVs0XTtcXHJcXG4gICAgICAgICAgICBpZiAoY29udGVudC5pbmRleE9mKCc8JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCc+JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCcmJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcdTAwMDAnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFxiJykgIT0gLTEpIHtcXHJcXG4gICAgICAgICAgICAgICAgY29udGludWU7XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIHRlbXBkYXRhID0gYDxkIHA9XFxcIiR7TWF0aC5yb3VuZCh0aW1lcG9pbnQpfSwke2N0fSwke3NpemV9LCR7Y29sb3J9LDBcXFwiPiR7Y29udGVudH08L2Q+XFxcXG5gO1xcclxcbiAgICAgICAgICAgIGRhdGEgKz0gdGVtcGRhdGE7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICAvLyDmnIDnu4jlvoXlhpnlhaXnmoTlvLnluZXmlbDmja5cXHJcXG4gICAgICAgIGRhbm11c3RyID0gYDw/eG1sIHZlcnNpb249XFxcIjEuMFxcXCIgZW5jb2Rpbmc9XFxcIlVURi04XFxcIj8+XFxcXG48aT5cXFxcbiR7ZGF0YX08L2k+YDtcXHJcXG4gICAgICAgIC8vIOWGmeWFpeW8ueW5lVxcclxcbiAgICAgICAgZG0gPSAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ3p1b2FuX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgICAgICBzYXZlRmlsZShkbSwgZGFubXVzdHIpO1xcclxcbiAgICAgICAgc2V0SXRlbSgnenVvYW5fZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgcmVhbHVybCk7XFxyXFxuICAgICAgICBwdXRWYXIoJ2RtX3NoYXJlJywgZG0pO1xcclxcbiAgICAgICAgcmV0dXJuIGRtO1xcclxcbiAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICBsb2coJ+WHuumUmeS6hicpXFxyXFxuICAgICAgICBzaG93TG9hZGluZygn5aSp5ZGQ5pK477yM6I635Y+W5aSx6LSl5LqG5ZGi77yBJyk7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICd6dW9hbl9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxufVxcclxcbi8vZmPlvLnluZXns7vnu5/lrpjlvLnkuIvovb3lh73mlbB8POKAlOKAlOe9kee7nOaOpeWPo++8jOS4lOeUqOS4lOePjeaDnO+8jOW5tuS4jeeos+WumlxcclxcbiQuZXhwb3J0cy5mY2RtID0gZnVuY3Rpb24gKHJlYWx1cmwpIHtcXHJcXG4gICAgaWYgKGdldEl0ZW0oJ2ZjX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsICcnKSA9PSByZWFsdXJsKSB7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdmY19mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxuICAgIHRyeSB7XFxyXFxuICAgICAgICBmaWxlID0gXFxcImh0dHBzOi8vZmMuaG9tZTk5OS5jYy8/dXJsPVxcXCIgKyByZWFsdXJsXFxyXFxuICAgICAgICBkbSA9ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnZmNfZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgICAgIHZhciBkYXRhID0gJyc7XFxyXFxuICAgICAgICB2YXIgc2l6ZSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKS5mb250U2l6ZTtcXHJcXG4gICAgICAgIGRhbm11RGF0YSA9IGZldGNoKGZpbGUsIHtcXHJcXG4gICAgICAgICAgICB0aW1lb3V0OiAyNTAwMCxcXHJcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogUENfVUEsXFxyXFxuICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vZmMuaG9tZTk5OS5jYy9cXFwiLFxcclxcbiAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgbWV0aG9kOiBcXFwiR0VUXFxcIlxcclxcbiAgICAgICAgfSlcXHJcXG4gICAgICAgIGlmIChkYW5tdURhdGEubWF0Y2goL+S4jeaUr+aMgeeahOinhumikee9keWdgC8pIHx8IGRhbm11RGF0YSA9PSAnJykge1xcclxcbiAgICAgICAgICAgIGxvZygn6I635Y+W5by55bmV5aSx6LSlJyk7XFxyXFxuICAgICAgICAgICAgcmV0dXJuIGRtO1xcclxcbiAgICAgICAgfVxcclxcbiAgICAgICAgdHJ5IHtcXHJcXG4gICAgICAgICAgICB0ZCA9IHBkZmEoZGFubXVEYXRhLCAnaSYmZCcpO1xcclxcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGQubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgLy8g5by55bmV5Y+R6YCB5pe26Ze0XFxyXFxuICAgICAgICAgICAgICAgIHRpbWVwb2ludCA9IHRkW2ldLm1hdGNoKC9bMC05XSsvZylbMF07XFxyXFxuICAgICAgICAgICAgICAgIGN0ID0gdGRbaV0ubWF0Y2goL1swLTldKy9nKVsxXTtcXHJcXG4gICAgICAgICAgICAgICAgY29sb3IgPSB0ZFtpXS5tYXRjaCgvWzAtOV0rL2cpWzNdO1xcclxcbiAgICAgICAgICAgICAgICAvLyDlvLnluZXlhoXlrrlcXHJcXG4gICAgICAgICAgICAgICAgY29udGVudCA9IHBkZmgodGRbaV0sICdkJiZUZXh0Jyk7XFxyXFxuICAgICAgICAgICAgICAgIGlmIChjb250ZW50LmluZGV4T2YoJzwnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJz4nKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJyYnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFx1MDAwMCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXGInKSAhPSAtMSkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgdGVtcGRhdGEgPSBgPGQgcD1cXFwiJHtNYXRoLnJvdW5kKHRpbWVwb2ludCl9LCR7Y3R9LCR7c2l6ZX0sJHtjb2xvcn0sMFxcXCI+JHtjb250ZW50fTwvZD5cXFxcbmBcXHJcXG4gICAgICAgICAgICAgICAgZGF0YSArPSB0ZW1wZGF0YTtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgZGFubXVzdHIgPSBgPD94bWwgdmVyc2lvbj1cXFwiMS4wXFxcIiBlbmNvZGluZz1cXFwiVVRGLThcXFwiPz5cXFxcbjxpPlxcXFxuJHtkYXRhfTwvaT5gO1xcclxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgICAgIGxvZygn6L2s5o2i5aSx6LSlJyk7XFxyXFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCc7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICBsb2coJ+aIluiuuOaIkOWKn+S6hn4nKTtcXHJcXG4gICAgICAgIHNhdmVGaWxlKGRtLCBkYW5tdXN0cik7XFxyXFxuICAgICAgICBzZXRJdGVtKCdmY19mcm9tXycgKyBNWV9SVUxFLnRpdGxlLCByZWFsdXJsKTtcXHJcXG4gICAgICAgIHB1dFZhcignZG1fc2hhcmUnLCBkbSk7XFxyXFxuICAgICAgICByZXR1cm4gZG07XFxyXFxuICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgIGxvZygn5by55bmV5paH5Lu26Kej5p6Q5aSx6LSlJyk7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdmY19mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxufVxcclxcbi8vIOesrOS4ieaWueW8ueW5leW6k+WHveaVsHw84oCU4oCU5pGY6Ieq6LWE5rqQ572R6YeHLnh5eu+8jOmmmeS9rHl5ZHMgIFxcclxcbiQuZXhwb3J0cy5mdWZlbmdfVGhpcmQgPSBmdW5jdGlvbiAoc3JjKSB7XFxyXFxuICAgIHZhciBkYW5tdSA9IFtdO1xcclxcbiAgICB0cnkge1xcclxcbiAgICAgICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcImh0dHBzOi8vZG1rdS5ieXRlYW1vbmUuY24vZG1rdS8/YWM9ZG0maWQ9XFxcIiArIG1kNShzcmMuc3BsaXQoJ1xcXCInKVswXS5zcGxpdCgnPycpWzBdKS5zbGljZSgxMikgKyAnIFAnLCB7fSkpO1xcclxcbiAgICAgICAgaWYgKGpzb24uZGFubXVrdSkge1xcclxcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvbi5kYW5tdWt1Lmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgICAgIGRhbm11LnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDoganNvbi5kYW5tdWt1W2ldWzRdLFxcclxcbiAgICAgICAgICAgICAgICAgICAgdGltZToganNvbi5kYW5tdWt1W2ldWzBdXFxyXFxuICAgICAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgIH07XFxyXFxuICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvbi5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICBkYW5tdS5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGpzb25baV0udGV4dCxcXHJcXG4gICAgICAgICAgICAgICAgICAgIHRpbWU6IGpzb25baV0udGltZVxcclxcbiAgICAgICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICB9XFxyXFxuICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgIGxvZygn5Ye66ZSZ5LqGJylcXHJcXG4gICAgICAgIHNob3dMb2FkaW5nKCflpKnlkZDmkrjvvIzojrflj5blpLHotKXkuoblkaLvvIEnKTtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS5qc29uJztcXHJcXG4gICAgfVxcclxcbiAgICBsZXQgZGFubXQgPSBKU09OLnN0cmluZ2lmeShkYW5tdSk7XFxyXFxuICAgIGRtID0gXFxcImhpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0uanNvblxcXCJcXHJcXG4gICAgc2F2ZUZpbGUoZG0sIGRhbm10KTtcXHJcXG4gICAgcmV0dXJuIGRtO1xcclxcbn1cXHJcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuino+aekOiwg+eUqOaxh+aAu1wiLFwicGF0aFwiOlwibGF6eVRvSmlleGlcIixcInJ1bGVcIjpcIi8vIHZpZGVv5ZeF5o6i6Kej5p6Q77yM5Li76KaB5L6b6YWN572u5Yqp5omL6LCD55So77yM5Y+C5pWw5Li65pWw57uEXFxuJC5leHBvcnRzLnZpZGVvWDUgPSBmdW5jdGlvbiAodmlwVXJsLCB1cmxzLCBuYW1lcywgaGVhZGVycykge1xcbiAgICBkbVNldHRpbmdzID0gSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSk7XFxuICAgIGRtRnJvbSA9IGRtU2V0dGluZ3MuZG1Gcm9tO1xcbiAgICBkbVNjb3BlID0gZG1TZXR0aW5ncy5kbVNjb3BlO1xcbiAgICBpZiAoZG1TY29wZSA9PSAnZ2xvYmFsJykge1xcbiAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQodmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGlmICh2aXBVcmwubWF0Y2goL3lvdWt1fHFpeWl8aXhpZ3VhfG1pZ3V8c29odXxwcHR2fGxlfGNjdHZ8MTkwNS5jb20vKSkge1xcbiAgICAgICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQodmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL21ndHYvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLk1HZG0odmlwVXJsKTtcXG4gICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9xcS5jb20vKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLlRYZG0odmlwVXJsKTtcXG4gICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9iaWxpLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5iaWxpZG0odmlwVXJsKTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgZG0gPSBnZXRWYXIoJ2RtX3NoYXJlJyk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaWYgKGhlYWRlcnMpIHtcXG4gICAgICAgIHZhciBoZWFkZXJzID0gaGVhZGVycztcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBoZWFkZXJzID0gW107XFxuICAgIH1cXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIG5hbWVzOiBuYW1lcyxcXG4gICAgICAgIHVybHM6IHVybHMsXFxuICAgICAgICBkYW5tdTogZG0sXFxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzXFxuICAgIH0pXFxufVxcblxcbi8v6aaZ5YWN54mI77yM5pyq6aqM6K+B5Y+v55So5oCnXFxuJC5leHBvcnRzLmNsYXNzaWNhbFg1ID0gZnVuY3Rpb24gKHZpcFVybCwgb3JpZ2luVXJsKSB7XFxuICAgIC8vIOaEn+iwoummmeS9rOaPkOS+m+mAmuWFjeKAlOKAlGRt6a2U5pS5XFxuICAgIGZ1bmN0aW9uIHg1cnVsZShqaWV4dXJsLCBzcmN1cmwpIHtcXG4gICAgICAgIHNob3dMb2FkaW5nKFxcXCLnvZHpobXorr/pl67mo4DntKLkuK3vvIzor7fnqI3lgJkuLi5cXFwiKTtcXG4gICAgICAgIHZhciB2aWRlbyA9ICd3ZWJSdWxlOi8vJyArIGppZXh1cmwgKyAnQCcgKyAkLnRvU3RyaW5nKChzcmN1cmwpID0+IHtcXG4gICAgICAgICAgICAvL2ZiYS5sb2coZmJhLmdldFVybHMoKSk7XFxuICAgICAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA9PSBudWxsIHx8IHdpbmRvdy5fX2NvdW50ID09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuX19jb3VudCA9IDBcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID49IDIzKSB7XFxuICAgICAgICAgICAgICAgIC8vIHJldHVybiBzcmN1cmxcXG4gICAgICAgICAgICAgICAgYmZ1cmwgPSBzcmN1cmwuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgYXJncyA9IHNyY3VybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB3aW5kb3cuX19jb3VudCA9IHdpbmRvdy5fX2NvdW50ICsgMTtcXG4gICAgICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPiAxICYmIHdpbmRvdy5fX2NvdW50IDw9IDMgJiYgd2luZG93Ll9fY291bnQgIT0gbnVsbCAmJiB3aW5kb3cuX19jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5pbm5lclRleHQuc2VhcmNoKC/op6blj5HkuobpmLLnm5fpk7585pyq5o6I5p2DfOaOpeWPo+mYsuebl3zor7fliLDkuLvnq5nop4LnnIsvKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmN1cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xot7PpmLLnm5fpqozor4HkuIAnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gbG9jYXRpb24uaHJlZjtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V6Lez6Ziy55uX6aqM6K+B5LqMJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IHNyY3VybFxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93Ll9fY291bnQgPiAzICYmIHdpbmRvdy5fX2NvdW50ICE9IG51bGwgJiYgd2luZG93Ll9fY291bnQgIT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgICAgIGlmICh1cmxzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5oaWRlTG9hZGluZygpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ajgOe0ouWksei0pe+8jOWPr+iDvemTvuaOpeaXoOazleiuv+mXruOAgic7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJscy5sZW5ndGggPT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V55u06ZO+5LiOSlNPTuino+aekCcpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbMF0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIXVybHNbMF0ubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OC8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9meV9icmlkZ2VfYXBwLmxvZyh1cmxzWzBdKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzWzBdLmluZGV4T2YoJ2JpbGl2aWRlbycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzWzBdICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzWzBdXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbMF0uaW5kZXhPZigndGl0YW4ubWd0di5jb20nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXSArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IHVybHNbMF0uc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IHVybHNbMF0ubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIWxvY2F0aW9uLmhyZWYubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OC8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGxvY2F0aW9uLmhyZWYubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gZmJhLmZldGNoKGxvY2F0aW9uLmhyZWYsIHt9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9cXFxcPG1ldGEvLnRlc3QoaHRtbCkgJiYgIS9cXFxcPGh0bWwvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIEpTT04ucGFyc2UoaHRtbCkudXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IEpTT04ucGFyc2UoaHRtbCkudXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL+ayoeacieaJvuWIsOermeeCuXznvZHpobXml6Dms5XmiZPlvIB8NDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCfml6Xlv5fmo4DntKLnrKwnICsgd2luZG93Ll9fY291bnQgKyAn5qyhJyk7XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1tpXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4fFxcXFwuY3NzfFxcXFwuanNcXFxcPy8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1tpXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIikubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5iaWxpYmlsaS5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZigndGl0YW4ubWd0di5jb20nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnd3d3Lm1ndHYuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ2p1aGFva2FuJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5qdWhhb2thbi5jYy8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignb2piaycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vdi5vamJranguY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly92Lm9qYmtqeC5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3drZmlsZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3NoZW5nbGlueWl5YW5nJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly96eXouc2RsandvbWVuLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8venl6LnNkbGp3b21lbi5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3BlaXpxLm9ubGluZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vcGxheS5wZWl6cS5vbmxpbmUvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3BsYXkucGVpenEub25saW5lLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSAodXJsc1tpXSArICcjaXNWaWRlbz10cnVlIycpLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9ICh1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJykubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIGZvciBpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9LCBzcmN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHZpZGVvXFxuICAgIH1cXG4gICAgLy8g5Yik5pat5by55bmV57q/6Lev5p2l5rqQXFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaWYgKHZpcFVybC5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL2JpbGkvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBzaG93TG9hZGluZygn5rKh5pyJ5by55bmV5a6Y572R5Yy56YWNJyk7XFxuICAgICAgICAgICAgcHV0VmFyKCdkbVBhdGgnLCBnZXRWYXIoJ2RtX3NoYXJlJywgJycpKTtcXG4gICAgICAgICAgICByZXR1cm4geDVydWxlKG9yaWdpblVybCwgb3JpZ2luVXJsKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBwdXRWYXIoJ2RtUGF0aCcsIGRtKTtcXG4gICAgcmV0dXJuIHg1cnVsZShvcmlnaW5VcmwsIG9yaWdpblVybCk7XFxufVxcblxcblxcblxcbi8vIOmBk+mVv+S7k+W6k+mAmuWFjeeJiOacrO+8jOacqumqjOivgeWPr+eUqOaAp1xcbiQuZXhwb3J0cy5kclg1ID0gZnVuY3Rpb24gKHZpcFVybCwgcGxheVVybCkge1xcbiAgICBmdW5jdGlvbiB4NXJ1bGUocGxheVVybCwgbXMsIHRtLCByZWNoYW5nZSkge1xcbiAgICAgICAgLy8gbG9nKCfosIPnlKjku5PlupPlhY3ll4XmjqLkvKDlj4LotoXml7bkuLo6Jyttcyk7XFxuICAgICAgICB0bSA9IHBhcnNlSW50KHRtKSB8fCA1MDAwO1xcbiAgICAgICAgY29uc3Qge1xcbiAgICAgICAgICAgIGlzVmlkZW8sXFxuICAgICAgICAgICAgZ2V0SGVhZGVycyxcXG4gICAgICAgICAgICBpc0JhZFZpZGVvXFxuICAgICAgICB9ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZ2xvYmFsUGFyc2U/cnVsZT3pgZPplb/ku5PlupNQcm8nKTtcXG4gICAgICAgIGxldCByZWFsVXJsID0gaXNWaWRlbyhwbGF5VXJsLCByZWNoYW5nZSk7XFxuICAgICAgICAvL2xvZyhyZWFsVXJsKTtcXG4gICAgICAgIGlmICh0eXBlb2YgKHJlYWxVcmwpID09ICdzdHJpbmcnKSB7IC8vYm9vbOWAvOWwseaYr+Wksei0pVxcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGxldCBydXJsID0gcmVhbFVybC5zcGxpdChcXFwiO1xcXCIpWzBdLnNwbGl0KFxcXCIjXFxcIilbMF07XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcXVlc3QocnVybCwge1xcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogdG1cXG4gICAgICAgICAgICAgICAgfSkpLnVybFxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxVcmxcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy9yZXR1cm4gcmVhbFVybFxcbiAgICAgICAgfVxcbiAgICAgICAgLy9sb2coXFxcIuiuv+mXrui2heaXtjpcXFwiK3RtKTtcXG4gICAgICAgIGxvZyhcXFwi5bCd6K+V6YGT6ZW/5LuT5bqTeDXlhY3ll4U6XFxcIiArIHBsYXlVcmwpO1xcbiAgICAgICAgY2xlYXJWYXIoXFxcIl94NWp4VXJsXFxcIik7XFxuICAgICAgICBsZXQgYmFkID0gJChcXFwi572R57uc5LiN5L2z5oiW6ICF55aR5Ly85a+55pa5572R56uZ5oyC5LqG77yM5L2g6KaB5p+l55yL5YW2572R6aG15ZCX77yfXFxcIikuY29uZmlybSgocGxheVVybCkgPT4ge1xcbiAgICAgICAgICAgIGxvZyhcXFwi572R56uZ55yL6LW35p2l5oyC5LqGOlxcXCIgKyBwbGF5VXJsKTtcXG4gICAgICAgICAgICByZXR1cm4gcGxheVVybFxcbiAgICAgICAgfSwgcGxheVVybCk7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHZhciBiYWNrID0gcmVxdWVzdChwbGF5VXJsLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGdldEhlYWRlcnMocGxheVVybCksXFxuICAgICAgICAgICAgICAgIHRpbWVvdXQ6IHRtXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgLy92YXIgYmFjaz1mZXRjaChwbGF5VXJsLHtoZWFkZXJzOiB7J1VzZXItQWdlbnQnOiBQQ19VQX19KTtcXG4gICAgICAgICAgICBpZiAoIWJhY2spIHtcXG4gICAgICAgICAgICAgICAgbG9nKFxcXCLnvZHnq5lcXFwiICsgcGxheVVybCArIFxcXCLnoa7lrp7llaXkuZ/msqHov5Tlm55cXFwiKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhZFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLyNFWFRJTkYvLnRlc3QoYmFjaykpIHtcXG4gICAgICAgICAgICAgICAgLy9sZXQgbGNhY2hlPVxcXCIvc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL2NhY2hlL3ZpZGVvLm0zdThcXFwiO1xcbiAgICAgICAgICAgICAgICAvL3dyaXRlRmlsZShsY2FjaGUsYmFjayk7XFxuICAgICAgICAgICAgICAgIC8vcmV0dXJuIGxjYWNoZStcXFwiIyNcXFwiK3BsYXlVcmwrXFxcIiNpc1ZpZGVvPXRydWUjXFxcIlxcbiAgICAgICAgICAgICAgICBwbGF5VXJsID0gY2FjaGVNM3U4KHBsYXlVcmwpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxheVVybFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKCEv6Kem5Y+R5LqG6Ziy55uX6ZO+fOacquaOiOadg3zmjqXlj6PpmLLnm5cvLnRlc3QoYmFjaykpICYmICghL2h0dHB8dXJsLy50ZXN0KGJhY2spKSAmJiAoIS9tc2d8Y29kZXxodG1sLy50ZXN0KGJhY2spKSkge1xcbiAgICAgICAgICAgICAgICBsb2coYmFjayk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/nlpHkvLzlr7nmlrnmlbDmja7liqDlr4bkuobvvIzlhbfkvZPmlbDmja7nnIvml6Xlv5cnXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGxvZyhlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgIHJldHVybiBiYWRcXG4gICAgICAgIH1cXG4gICAgICAgIGxvZygn5byA5aeLeDXlhY3ll4XmjqInKTtcXG4gICAgICAgIC8vIHJlcXVpcmUoJ2h0dHBzOi8vaGpkaG54LmNvZGluZy5uZXQvcC9oaWtlci9kL2RyL2dpdC9yYXcvbWFzdGVyL2pzL2xzZy5qcycpOy8v5byV55So5pys5Zyw5YKo5a2Y5o+S5Lu2XFxuICAgICAgICBjb25zdCBsc2cgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9sb2NhbFN0b3JhZ2U/cnVsZT3pgZPplb/ku5PlupNQcm9cXFwiKTsgLy/lvJXnlKjlrZDpobXpnaLmnKzlnLDlgqjlrZjmj5Lku7ZcXG4gICAgICAgIGxldCBsb2NhbF9tcyA9IGxzZy5nZXRJdGVtKCd0aW1lb3V0Jyk7XFxuICAgICAgICBsZXQgbXMgPSBwYXJzZUludChtcykgfHwgcGFyc2VJbnQobG9jYWxfbXMpIHx8IDUwMDA7XFxuICAgICAgICBsZXQgbWF4X2NvdW50ID0gTWF0aC5jZWlsKG1zIC8gMjUwKTtcXG4gICAgICAgIGxvZyhcXFwi5pys5qyh5ZeF5o6i6LaF5pe2OlxcXCIgKyBtcyArIFxcXCLlhbHorqHlvoXmipPljIU6XFxcIiArIG1heF9jb3VudCArIFxcXCLmrKFcXFwiKTtcXG4gICAgICAgIHNob3dMb2FkaW5nKCfll4XmjqLkuK3vvIzoi6XlpLHotKXlsLHliIfmjaJ3ZWLll4XmjqIuLi4nKTtcXG4gICAgICAgIGxldCBfeDUgPSAkLnRvU3RyaW5nKChpc1ZpZGVvLCByZWNoYW5nZSwgcGxheVVybCwgbWF4X2NvdW50LCBQQ19VQSwgaXNCYWRWaWRlbykgPT4ge1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGZiYSkgPT0gJ3VuZGVmaW5lZCcgfHwgIWZiYSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZiYSA9IGZ5X2JyaWRnZV9hcHA7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKHJlcXVlc3QpID09ICd1bmRlZmluZWQnIHx8ICFyZXF1ZXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmYmEuZ2V0SW50ZXJuYWxKcygpKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGZiYS5wdXRWYXIoXFxcIl94NWp4VXJsXFxcIiwgcGxheVVybCk7XFxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY291bnQgPT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmNvdW50ID0gMTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsZXQgdGV4dCA9ICcnO1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXFxcImJvZHlcXFwiKS5pbm5lclRleHQ7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coZS5tZXNzYWdlKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmICgv6Kem5Y+R5LqG6Ziy55uX6ZO+fOacquaOiOadg3zmjqXlj6PpmLLnm5cvLnRlc3QodGV4dCkgJiYgd2luZG93LmNvdW50ID09PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLmo4DmtYvliLDmnInmjojmnYPvvIzlvIDlp4vov4fmjojmnYNcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7XFxuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gZmJhLmdldFZhcihcXFwiX3g1anhVcmxcXFwiKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB3aW5kb3cuY291bnQrKztcXG4gICAgICAgICAgICAgICAgLy8gZmJhLmxvZygnY291bnQ6Jyt3aW5kb3cuY291bnQrJyxtYXhfY291bnQ6JyttYXhfY291bnQpO1xcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LmNvdW50ID49IG1heF9jb3VudCkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwi6LaF6L+HXFxcIiArIG1heF9jb3VudCAqIDI1MCArIFxcXCLmr6vnp5LmnKrojrflj5bliLDotYTmupDlnLDlnYDvvIzot7PliLDmupDnvZHpobUs5Lul5LiL5piv5Yqg6L296L+H55qE5Zyw5Z2AXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcXFwiYm9keVxcXCIpLmlubmVyVGV4dDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYmEubG9nKHRleHQpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coZS5tZXNzYWdlKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhKU09OLnN0cmluZ2lmeShfZ2V0VXJscygpKSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmJhLmdldFZhcihcXFwiX3g1anhVcmxcXFwiKTtcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBtdXRlTWUoZWxlbSkge1xcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtLnBhdXNlKCk7XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB2YXIgdmlkZW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwidmlkZW9cXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIGF1ZGlvcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXFxcImF1ZGlvXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICB2MiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXFxcImVtYmVkXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICB2MyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXFxcIiNwbGF5ZXJcXFwiKTtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbCh2aWRlb3MsIGZ1bmN0aW9uICh2aWRlbykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZSh2aWRlbyk7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwoYXVkaW9zLCBmdW5jdGlvbiAoYXVkaW8pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRlTWUoYXVkaW8pO1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHYyLCBmdW5jdGlvbiAodikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZSh2KTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbCh2MywgZnVuY3Rpb24gKHYpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRlTWUodik7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XFxuICAgICAgICAgICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgICAgICAgICAgLy8gZmJhLmxvZyhKU09OLnN0cmluZ2lmeSh1cmxzKSk7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpIGluIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdSA9IHVybHNbaV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IGRlY29kZVVSSUNvbXBvbmVudCh1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSB1bmVzY2FwZSh1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL3VybD1odHRwLy50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSB1LnNwbGl0KFxcXCJ1cmw9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYmEubG9nKFxcXCJ1cmzliIblibI6XFxcIit1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC91cmw9XFxcXC8vLnRlc3QodSkgJiYgL1xcXFwubTN1OC8udGVzdCh1KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdCA9IHUubWF0Y2goLyguKilcXFxcL1xcXFwvKC4qPylcXFxcLy8pWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ID0gaG9zdCArIHUuc3BsaXQoXFxcInVybD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coXFxcInVybOWIhuWJsjpcXFwiK3UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3ZpZD1odHRwLy50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSB1LnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCJ2aWTliIblibI6XFxcIiArIHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3ZpZD1cXFxcLy8udGVzdCh1KSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0ID0gdS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBob3N0ICsgdS5zcGxpdChcXFwidmlkPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwidmlk5YiG5YmyOlxcXCIgKyB1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcPyguKik9aHR0cC8udGVzdCh1KSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBcXFwiaHR0cFxcXCIgKyB1LnNwbGl0KC9cXFxcPyguKik9aHR0cC8pLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwi5YW25LuW5YiG5YmyOlxcXCIgKyB1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy98aW5kZXhcXFxcLm0zdTgkXFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoL1xcXFwvMVxcXFwubTN1OC8udGVzdCh1KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHUucmVwbGFjZSgvJmZyb209Lip8Jm5leHQ9Lip8Jmp1bXA9LiovLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlYWxVcmwgPSBpc1ZpZGVvKHUsIHJlY2hhbmdlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIChyZWFsVXJsKSA9PSAnc3RyaW5nJyAmJiAhaXNCYWRWaWRlbyh1KSkgeyAvL+i/h+a7pOWQiuavm+inhumikVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAuc2V0V2ViVWEoUENfVUEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIChmYmEuZ2V0SGVhZGVyVXJsKSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIChyZWNoYW5nZSkgIT09ICdmdW5jdGlvbicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBiYWNrVXJsID0gZmJhLmdldEhlYWRlclVybCh1LnJlcGxhY2UoXFxcIjt7XFxcIixcXFwiI2lzVmlkZW89dHJ1ZSM7e1xcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiYWNrVXJsID0gZmJhLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKCc7eycsICcjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7eycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUxID0gYmFja1VybC5zcGxpdCgnI2lnbm9yZUltZycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUyID0gJyNpZ25vcmVJbWcnICsgYmFja1VybC5zcGxpdCgnI2lnbm9yZUltZycpWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSB1MS5yZXBsYWNlKC8mZnJvbT0uKnwmbmV4dD0uKnwmanVtcD0uKi8sICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdXJsPWh0dHAvLnRlc3QodTEpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSB1MS5zcGxpdChcXFwidXJsPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3VybD1cXFxcLy8udGVzdCh1MSkgJiYgL1xcXFwubTN1OC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdDEgPSB1MS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSBob3N0MSArIHUxLnNwbGl0KFxcXCJ1cmw9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coXFxcInVybOWIhuWJsjpcXFwiK3UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPWh0dHAvLnRlc3QodTEpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSB1MS5zcGxpdChcXFwidmlkPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3ZpZD1cXFxcLy8udGVzdCh1MSkgJiYgL1xcXFwubTN1OC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdDEgPSB1MS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSBob3N0MSArIHUxLnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD8oLiopPWh0dHAvLnRlc3QodTEpICYmIC9cXFxcLm0zdTgvLnRlc3QodTEpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSBcXFwiaHR0cFxcXCIgKyB1MS5zcGxpdCgvXFxcXD8oLiopPWh0dHAvKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrVXJsID0gdTEgKyB1MjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coJ+i/lOWbnuiHquWKqOWKoGNvb2tpZemTvuaOpTonK2JhY2tVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn6L+U5Zue6ZO+5o6lOicgKyB1ICsgJ+W5tuiHquWKqOWKoOS6hmNvb2tpZSzlhbfkvZNjb29raWXlnKjop4bpopHmkq3mlL7lpITmn6XnnIsnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBiYWNrVXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdTEgKyAnI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgdTIucmVwbGFjZSgnI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjOycsICc7Jyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLov5Tlm57ku5PlupN4NeWFjeWXhee7k+aenDpcXFwiICsgcmVhbFVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVhbFVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGUubWVzc2FnZSlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgLy8gZnlfYnJpZGdlX2FwcC5sb2coJ3g15aSn6IyD5Zu06ZSZ6K+vOicrZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICAgICAgYWxlcnQoJ3g15aSn6IyD5Zu06ZSZ6K+vOicgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5oql6ZSZ57uT5p2feDUnXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgaXNWaWRlbywgcmVjaGFuZ2UsIHBsYXlVcmwsIG1heF9jb3VudCwgUENfVUEsIGlzQmFkVmlkZW8pO1xcbiAgICAgICAgbGV0IHVzZVdlYiA9IGxzZy5nZXRJdGVtKFxcXCLpgJrlhY1cXFwiLCBcXFwiWDVcXFwiKSA9PT0gXFxcIldFQlxcXCI7XFxuICAgICAgICAvL2xvZyhcXFwi5LuT5bqT5L2/55Sod2Vi6YCa5YWN5pu/5LujeDU6XFxcIit1c2VXZWIpO1xcbiAgICAgICAgbGV0IHJ1bGVIZWFkID0gdXNlV2ViICYmIHBhcnNlSW50KGdldEFwcFZlcnNpb24oKSkgPj0gMjMzOSA/IFxcXCJ3ZWJSdWxlOi8vXFxcIiA6IFxcXCJ4NVJ1bGU6Ly9cXFwiO1xcbiAgICAgICAgbGV0IHg1VXJsID0gcnVsZUhlYWQgKyBwbGF5VXJsICsgJ0AnICsgX3g1O1xcbiAgICAgICAgcmV0dXJuIHg1VXJsXFxuICAgIH1cXG4gICAgLy8g5Yik5pat5by55bmV57q/6Lev5p2l5rqQXFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaWYgKHZpcFVybC5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL2JpbGkvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBzaG93TG9hZGluZygn5rKh5pyJ5by55bmV5a6Y572R5Yy56YWNJyk7XFxuICAgICAgICAgICAgcHV0VmFyKCdkbVBhdGgnLCBnZXRWYXIoJ2RtX3NoYXJlJywgJycpKTtcXG4gICAgICAgICAgICByZXR1cm4geDVydWxlKHBsYXlVcmwsIDgwMDApO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHB1dFZhcignZG1QYXRoJywgZG0pO1xcbiAgICByZXR1cm4geDVydWxlKHBsYXlVcmwsIDgwMDApO1xcbn1cXG5cXG4vLyDprZTmlq1KU09O5YWN5ZeF6Kej5p6Q6LCD55SoXFxuJC5leHBvcnRzLkpzb25kbSA9IGZ1bmN0aW9uICh2aXBVcmwsIGJmdXJsKSB7XFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaWYgKHZpcFVybC5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL2JpbGkvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBkbT1nZXRWYXIoJ2RtX3NoYXJlJywnJyk7IFxcbiAgICAgICAgICAgIGZyb20gPSAn6aKE55WZ5by55bmV5o6l5Y+jJztcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgIG5hbWVzOiBbZnJvbV0sXFxuICAgICAgICBkYW5tdTogZG1cXG4gICAgfSk7XFxufVxcblxcbi8vIOmtlOaWreW8ueW5leino+aekOW8leaTjuiwg+eUqFxcbiQuZXhwb3J0cy5wYXJzZURtID0gZnVuY3Rpb24gKHZpcFVybCxzZWFyY2hUeXBlLCBzZWFyY2hOYW1lKSB7XFxuICAgIHRyeSB7XFxuICAgICAgICAvLyDojrflj5blvLnluZVcXG4gICAgICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgICAgIGRtRnJvbSA9IGRtU2V0dGluZ3MuZG1Gcm9tO1xcbiAgICAgICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXG4gICAgICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIGlmICh2aXBVcmwubWF0Y2goL3lvdWt1fHFpeWl8aXhpZ3VhfG1pZ3V8c29odXxwcHR2fGxlfGNjdHZ8MTkwNS5jb20vKSkge1xcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQodmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL21ndHYvKSkge1xcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLlRYZG0odmlwVXJsKTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGRtID0gZ2V0VmFyKCdkbV9zaGFyZScsICcnKTtcXG4gICAgICAgICAgICAgICAgZnJvbSA9ICfpooTnlZnlvLnluZXmjqXlj6MnO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIC8vIOWkjeWItuW8ueW5lei3r+W+hFxcbiAgICAgICAgY29weShkbSk7XFxuICAgICAgICAvLyDosIPnlKjmkJzntKJcXG4gICAgICAgIGZpbG1OYW1lPWdldFBhZ2VUaXRsZSgpO1xcbiAgICAgICAgc3dpdGNoIChzZWFyY2hUeXBlKSB7XFxuICAgICAgICAgICAgY2FzZSAxOlxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcIiArIGZpbG1OYW1lICsgXFxcIiZydWxlPVxcXCIrc2VhcmNoTmFtZStcXFwiJnNpbXBsZT10cnVlXFxcIjtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAyOlxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcIiArIGZpbG1OYW1lICsgXFxcIiZncm91cD1cXFwiK3NlYXJjaE5hbWUrXFxcIiZzaW1wbGU9dHJ1ZVxcXCI7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/kuI3opoHkubHlhpnlj4LmlbDvvIExLeiwg+eUqOWwj+eoi+W6j+aQnOe0ou+8mzIt6LCD55So5bCP56iL5bqP5YiG57uE5pCc57SiXFxcIjtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lh7rplJnkuobvvIHlsLHov5nmoLflkKfvvIFcXFwiO1xcbiAgICB9XFxufVxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YCa5YWN6LCD55So5rGH5oC7XCIsXCJwYXRoXCI6XCJsYXp5VG9YNVwiLFwicnVsZVwiOlwiLy8g5Y6f55Sf5ZeF5o6iLemAmuWFjVxcbiQuZXhwb3J0cy52aWRlb1g1ID0gZnVuY3Rpb24gKCkge1xcbiAgICAvLyDlrprkvY3nnJ/lrp7nur/ot68t5bi46KeEXFxuICAgIGxldCB0cyA9IC9peGlndWF8aXFpeWl8cXEuY29tfG1ndHZ8bGUuY29tfGJpbGl8c29odXx5b3VrdXxwcHR2fGNjdHZ8MTkwNS5jb20vO1xcbiAgICBpZiAoIWlucHV0Lm1hdGNoKHRzKSkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBsZXQgRnJvbSA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkubWF0Y2goL3ZhciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKTtcXG4gICAgICAgICAgICBsZXQg5Yqg5a+GID0gRnJvbS5lbmNyeXB0O1xcbiAgICAgICAgICAgIC8vIGxldCDmnaXoh6ogPSBGcm9tLmZyb207XFxuICAgICAgICAgICAg5Y6f6ZO+ID0gRnJvbS51cmw7XFxuICAgICAgICAgICAgLy9sb2coRnJvbSlcXG4gICAgICAgICAgICBpZiAo5Yqg5a+GID09ICcxJykge1xcbiAgICAgICAgICAgICAgICDljp/pk74gPSB1bmVzY2FwZSjljp/pk74pO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAo5Yqg5a+GID09ICcyJykge1xcbiAgICAgICAgICAgICAgICDljp/pk74gPSB1bmVzY2FwZShiYXNlNjREZWNvZGUo5Y6f6ZO+KSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgvXFxcXC5tcDR8XFxcXC5tM3U4fFxcXFwuZmx2Ly50ZXN0KOWOn+mTvikpIHtcXG4gICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoJ+iOt+WPluS4jeWIsOWumOe9keWcsOWdgO+8jOWwhuebtOmTvuaSreaUvicpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW+WOn+mTvl0sXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11OiBnZXRWYXIoJ2RtX3NoYXJlJywgJycpXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHMudGVzdCjljp/pk74pKSB7XFxuICAgICAgICAgICAgICAgIOWumOmTviA9IOWOn+mTvjtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBzaG93TG9hZGluZygn6I635Y+W5LiN5Yiw5a6Y572R5Zyw5Z2A77yM5bCG55u06ZO+5pKt5pS+Jyk7XFxuICAgICAgICAgICAgICAgIC8v55uX54mI56uZ5Zyw5Z2AXFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBbcGxheVBhcnNlLnBsYXllclMoaW5wdXQpXSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6IGdldFZhcignZG1fc2hhcmUnLCAnJylcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIC8vIOiLpeWPkeeUn+W8guW4uOWImeebtOaOpeS4uuepuumTvui1sOWXheaOolxcbiAgICAgICAgICAgIOWumOmTviA9ICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIOWumOmTviA9IGlucHV0O1xcbiAgICB9XFxuICAgIC8vIOWIpOaWreW8ueW5lee6v+i3r+adpea6kFxcbiAgICBkbVNldHRpbmdzID0gSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSk7XFxuICAgIGRtRnJvbSA9IGRtU2V0dGluZ3MuZG1Gcm9tO1xcbiAgICBkbVNjb3BlID0gZG1TZXR0aW5ncy5kbVNjb3BlO1xcbiAgICBpZiAoZG1TY29wZSA9PSAnZ2xvYmFsJykge1xcbiAgICAgICAgaWYgKOWumOmTvi5tYXRjaCh0cykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1lbHNle1xcbiAgICAgICAgICAgIGRtPWdldFZhcignZG1fc2hhcmUnLCcnKTtcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGlmICjlrpjpk74ubWF0Y2goL3lvdWt1fHFpeWl8aXhpZ3VhfG1pZ3V8c29odXxwcHR2fGxlfGNjdHZ8MTkwNS5jb20vKSkge1xcbiAgICAgICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQo5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIGlmICjlrpjpk74ubWF0Y2goL21ndHYvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLk1HZG0o5a6Y6ZO+KTtcXG4gICAgICAgIH0gZWxzZSBpZiAo5a6Y6ZO+Lm1hdGNoKC9xcS5jb20vKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLlRYZG0o5a6Y6ZO+KTtcXG4gICAgICAgIH0gZWxzZSBpZiAo5a6Y6ZO+Lm1hdGNoKC9iaWxpLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5iaWxpZG0o5a6Y6ZO+KTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgc2hvd0xvYWRpbmcoJ+ayoeacieW8ueW5leWumOe9keWMuemFjScpO1xcbiAgICAgICAgICAgIGRtID0gZ2V0VmFyKCdkbV9zaGFyZScsICcnKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgdXJsczogW1xcXCJ2aWRlbzovL1xcXCIgKyBpbnB1dF0sXFxuICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgZGFubXU6IGRtXFxuICAgIH0pXFxufVxcblxcbi8vIOmBk+mVv+S7k+W6k+mAmuWFjVxcbiQuZXhwb3J0cy5kclg1ID0gZnVuY3Rpb24gKCkge1xcbiAgICBmdW5jdGlvbiB4NXJ1bGUocGxheVVybCwgbXMsIHRtLCByZWNoYW5nZSkge1xcbiAgICAgICAgLy8gbG9nKCfosIPnlKjku5PlupPlhY3ll4XmjqLkvKDlj4LotoXml7bkuLo6Jyttcyk7XFxuICAgICAgICB0bSA9IHBhcnNlSW50KHRtKSB8fCA1MDAwO1xcbiAgICAgICAgY29uc3Qge1xcbiAgICAgICAgICAgIGlzVmlkZW8sXFxuICAgICAgICAgICAgZ2V0SGVhZGVycyxcXG4gICAgICAgICAgICBpc0JhZFZpZGVvXFxuICAgICAgICB9ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZ2xvYmFsUGFyc2U/cnVsZT3pgZPplb/ku5PlupNQcm8nKTtcXG4gICAgICAgIGxldCByZWFsVXJsID0gaXNWaWRlbyhwbGF5VXJsLCByZWNoYW5nZSk7XFxuICAgICAgICAvL2xvZyhyZWFsVXJsKTtcXG4gICAgICAgIGlmICh0eXBlb2YgKHJlYWxVcmwpID09ICdzdHJpbmcnKSB7IC8vYm9vbOWAvOWwseaYr+Wksei0pVxcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGxldCBydXJsID0gcmVhbFVybC5zcGxpdChcXFwiO1xcXCIpWzBdLnNwbGl0KFxcXCIjXFxcIilbMF07XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcXVlc3QocnVybCwge1xcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogdG1cXG4gICAgICAgICAgICAgICAgfSkpLnVybFxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxVcmxcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy9yZXR1cm4gcmVhbFVybFxcbiAgICAgICAgfVxcbiAgICAgICAgLy9sb2coXFxcIuiuv+mXrui2heaXtjpcXFwiK3RtKTtcXG4gICAgICAgIGxvZyhcXFwi5bCd6K+V6YGT6ZW/5LuT5bqTeDXlhY3ll4U6XFxcIiArIHBsYXlVcmwpO1xcbiAgICAgICAgY2xlYXJWYXIoXFxcIl94NWp4VXJsXFxcIik7XFxuICAgICAgICBsZXQgYmFkID0gJChcXFwi572R57uc5LiN5L2z5oiW6ICF55aR5Ly85a+55pa5572R56uZ5oyC5LqG77yM5L2g6KaB5p+l55yL5YW2572R6aG15ZCX77yfXFxcIikuY29uZmlybSgocGxheVVybCkgPT4ge1xcbiAgICAgICAgICAgIGxvZyhcXFwi572R56uZ55yL6LW35p2l5oyC5LqGOlxcXCIgKyBwbGF5VXJsKTtcXG4gICAgICAgICAgICByZXR1cm4gcGxheVVybFxcbiAgICAgICAgfSwgcGxheVVybCk7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHZhciBiYWNrID0gcmVxdWVzdChwbGF5VXJsLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGdldEhlYWRlcnMocGxheVVybCksXFxuICAgICAgICAgICAgICAgIHRpbWVvdXQ6IHRtXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgLy92YXIgYmFjaz1mZXRjaChwbGF5VXJsLHtoZWFkZXJzOiB7J1VzZXItQWdlbnQnOiBQQ19VQX19KTtcXG4gICAgICAgICAgICBpZiAoIWJhY2spIHtcXG4gICAgICAgICAgICAgICAgbG9nKFxcXCLnvZHnq5lcXFwiICsgcGxheVVybCArIFxcXCLnoa7lrp7llaXkuZ/msqHov5Tlm55cXFwiKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhZFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLyNFWFRJTkYvLnRlc3QoYmFjaykpIHtcXG4gICAgICAgICAgICAgICAgLy9sZXQgbGNhY2hlPVxcXCIvc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL2NhY2hlL3ZpZGVvLm0zdThcXFwiO1xcbiAgICAgICAgICAgICAgICAvL3dyaXRlRmlsZShsY2FjaGUsYmFjayk7XFxuICAgICAgICAgICAgICAgIC8vcmV0dXJuIGxjYWNoZStcXFwiIyNcXFwiK3BsYXlVcmwrXFxcIiNpc1ZpZGVvPXRydWUjXFxcIlxcbiAgICAgICAgICAgICAgICBwbGF5VXJsID0gY2FjaGVNM3U4KHBsYXlVcmwpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxheVVybFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKCEv6Kem5Y+R5LqG6Ziy55uX6ZO+fOacquaOiOadg3zmjqXlj6PpmLLnm5cvLnRlc3QoYmFjaykpICYmICghL2h0dHB8dXJsLy50ZXN0KGJhY2spKSAmJiAoIS9tc2d8Y29kZXxodG1sLy50ZXN0KGJhY2spKSkge1xcbiAgICAgICAgICAgICAgICBsb2coYmFjayk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/nlpHkvLzlr7nmlrnmlbDmja7liqDlr4bkuobvvIzlhbfkvZPmlbDmja7nnIvml6Xlv5cnXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGxvZyhlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgIHJldHVybiBiYWRcXG4gICAgICAgIH1cXG4gICAgICAgIGxvZygn5byA5aeLeDXlhY3ll4XmjqInKTtcXG4gICAgICAgIC8vIHJlcXVpcmUoJ2h0dHBzOi8vaGpkaG54LmNvZGluZy5uZXQvcC9oaWtlci9kL2RyL2dpdC9yYXcvbWFzdGVyL2pzL2xzZy5qcycpOy8v5byV55So5pys5Zyw5YKo5a2Y5o+S5Lu2XFxuICAgICAgICBjb25zdCBsc2cgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9sb2NhbFN0b3JhZ2U/cnVsZT3pgZPplb/ku5PlupNQcm9cXFwiKTsgLy/lvJXnlKjlrZDpobXpnaLmnKzlnLDlgqjlrZjmj5Lku7ZcXG4gICAgICAgIGxldCBsb2NhbF9tcyA9IGxzZy5nZXRJdGVtKCd0aW1lb3V0Jyk7XFxuICAgICAgICBsZXQgbXMgPSBwYXJzZUludChtcykgfHwgcGFyc2VJbnQobG9jYWxfbXMpIHx8IDUwMDA7XFxuICAgICAgICBsZXQgbWF4X2NvdW50ID0gTWF0aC5jZWlsKG1zIC8gMjUwKTtcXG4gICAgICAgIGxvZyhcXFwi5pys5qyh5ZeF5o6i6LaF5pe2OlxcXCIgKyBtcyArIFxcXCLlhbHorqHlvoXmipPljIU6XFxcIiArIG1heF9jb3VudCArIFxcXCLmrKFcXFwiKTtcXG4gICAgICAgIHNob3dMb2FkaW5nKCfll4XmjqLkuK3vvIzoi6XlpLHotKXlsLHliIfmjaJ3ZWLll4XmjqIuLi4nKTtcXG4gICAgICAgIGxldCBfeDUgPSAkLnRvU3RyaW5nKChpc1ZpZGVvLCByZWNoYW5nZSwgcGxheVVybCwgbWF4X2NvdW50LCBQQ19VQSwgaXNCYWRWaWRlbykgPT4ge1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGZiYSkgPT0gJ3VuZGVmaW5lZCcgfHwgIWZiYSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZiYSA9IGZ5X2JyaWRnZV9hcHA7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKHJlcXVlc3QpID09ICd1bmRlZmluZWQnIHx8ICFyZXF1ZXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmYmEuZ2V0SW50ZXJuYWxKcygpKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGZiYS5wdXRWYXIoXFxcIl94NWp4VXJsXFxcIiwgcGxheVVybCk7XFxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY291bnQgPT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmNvdW50ID0gMTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsZXQgdGV4dCA9ICcnO1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXFxcImJvZHlcXFwiKS5pbm5lclRleHQ7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coZS5tZXNzYWdlKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmICgv6Kem5Y+R5LqG6Ziy55uX6ZO+fOacquaOiOadg3zmjqXlj6PpmLLnm5cvLnRlc3QodGV4dCkgJiYgd2luZG93LmNvdW50ID09PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLmo4DmtYvliLDmnInmjojmnYPvvIzlvIDlp4vov4fmjojmnYNcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7XFxuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gZmJhLmdldFZhcihcXFwiX3g1anhVcmxcXFwiKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB3aW5kb3cuY291bnQrKztcXG4gICAgICAgICAgICAgICAgLy8gZmJhLmxvZygnY291bnQ6Jyt3aW5kb3cuY291bnQrJyxtYXhfY291bnQ6JyttYXhfY291bnQpO1xcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LmNvdW50ID49IG1heF9jb3VudCkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwi6LaF6L+HXFxcIiArIG1heF9jb3VudCAqIDI1MCArIFxcXCLmr6vnp5LmnKrojrflj5bliLDotYTmupDlnLDlnYDvvIzot7PliLDmupDnvZHpobUs5Lul5LiL5piv5Yqg6L296L+H55qE5Zyw5Z2AXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcXFwiYm9keVxcXCIpLmlubmVyVGV4dDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYmEubG9nKHRleHQpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coZS5tZXNzYWdlKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhKU09OLnN0cmluZ2lmeShfZ2V0VXJscygpKSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmJhLmdldFZhcihcXFwiX3g1anhVcmxcXFwiKTtcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBtdXRlTWUoZWxlbSkge1xcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtLnBhdXNlKCk7XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB2YXIgdmlkZW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwidmlkZW9cXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIGF1ZGlvcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXFxcImF1ZGlvXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICB2MiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXFxcImVtYmVkXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICB2MyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXFxcIiNwbGF5ZXJcXFwiKTtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbCh2aWRlb3MsIGZ1bmN0aW9uICh2aWRlbykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZSh2aWRlbyk7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwoYXVkaW9zLCBmdW5jdGlvbiAoYXVkaW8pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRlTWUoYXVkaW8pO1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHYyLCBmdW5jdGlvbiAodikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZSh2KTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbCh2MywgZnVuY3Rpb24gKHYpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRlTWUodik7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XFxuICAgICAgICAgICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgICAgICAgICAgLy8gZmJhLmxvZyhKU09OLnN0cmluZ2lmeSh1cmxzKSk7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpIGluIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdSA9IHVybHNbaV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IGRlY29kZVVSSUNvbXBvbmVudCh1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSB1bmVzY2FwZSh1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL3VybD1odHRwLy50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSB1LnNwbGl0KFxcXCJ1cmw9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYmEubG9nKFxcXCJ1cmzliIblibI6XFxcIit1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC91cmw9XFxcXC8vLnRlc3QodSkgJiYgL1xcXFwubTN1OC8udGVzdCh1KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdCA9IHUubWF0Y2goLyguKilcXFxcL1xcXFwvKC4qPylcXFxcLy8pWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ID0gaG9zdCArIHUuc3BsaXQoXFxcInVybD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coXFxcInVybOWIhuWJsjpcXFwiK3UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3ZpZD1odHRwLy50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSB1LnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCJ2aWTliIblibI6XFxcIiArIHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3ZpZD1cXFxcLy8udGVzdCh1KSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0ID0gdS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBob3N0ICsgdS5zcGxpdChcXFwidmlkPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwidmlk5YiG5YmyOlxcXCIgKyB1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcPyguKik9aHR0cC8udGVzdCh1KSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBcXFwiaHR0cFxcXCIgKyB1LnNwbGl0KC9cXFxcPyguKik9aHR0cC8pLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwi5YW25LuW5YiG5YmyOlxcXCIgKyB1KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy98aW5kZXhcXFxcLm0zdTgkXFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoL1xcXFwvMVxcXFwubTN1OC8udGVzdCh1KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHUucmVwbGFjZSgvJmZyb209Lip8Jm5leHQ9Lip8Jmp1bXA9LiovLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlYWxVcmwgPSBpc1ZpZGVvKHUsIHJlY2hhbmdlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIChyZWFsVXJsKSA9PSAnc3RyaW5nJyAmJiAhaXNCYWRWaWRlbyh1KSkgeyAvL+i/h+a7pOWQiuavm+inhumikVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAuc2V0V2ViVWEoUENfVUEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIChmYmEuZ2V0SGVhZGVyVXJsKSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIChyZWNoYW5nZSkgIT09ICdmdW5jdGlvbicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBiYWNrVXJsID0gZmJhLmdldEhlYWRlclVybCh1LnJlcGxhY2UoXFxcIjt7XFxcIixcXFwiI2lzVmlkZW89dHJ1ZSM7e1xcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiYWNrVXJsID0gZmJhLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKCc7eycsICcjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7eycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUxID0gYmFja1VybC5zcGxpdCgnI2lnbm9yZUltZycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUyID0gJyNpZ25vcmVJbWcnICsgYmFja1VybC5zcGxpdCgnI2lnbm9yZUltZycpWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSB1MS5yZXBsYWNlKC8mZnJvbT0uKnwmbmV4dD0uKnwmanVtcD0uKi8sICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdXJsPWh0dHAvLnRlc3QodTEpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSB1MS5zcGxpdChcXFwidXJsPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3VybD1cXFxcLy8udGVzdCh1MSkgJiYgL1xcXFwubTN1OC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdDEgPSB1MS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSBob3N0MSArIHUxLnNwbGl0KFxcXCJ1cmw9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coXFxcInVybOWIhuWJsjpcXFwiK3UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPWh0dHAvLnRlc3QodTEpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSB1MS5zcGxpdChcXFwidmlkPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3ZpZD1cXFxcLy8udGVzdCh1MSkgJiYgL1xcXFwubTN1OC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdDEgPSB1MS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSBob3N0MSArIHUxLnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD8oLiopPWh0dHAvLnRlc3QodTEpICYmIC9cXFxcLm0zdTgvLnRlc3QodTEpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTEgPSBcXFwiaHR0cFxcXCIgKyB1MS5zcGxpdCgvXFxcXD8oLiopPWh0dHAvKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrVXJsID0gdTEgKyB1MjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coJ+i/lOWbnuiHquWKqOWKoGNvb2tpZemTvuaOpTonK2JhY2tVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn6L+U5Zue6ZO+5o6lOicgKyB1ICsgJ+W5tuiHquWKqOWKoOS6hmNvb2tpZSzlhbfkvZNjb29raWXlnKjop4bpopHmkq3mlL7lpITmn6XnnIsnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBiYWNrVXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdTEgKyAnI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgdTIucmVwbGFjZSgnI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjOycsICc7Jyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLov5Tlm57ku5PlupN4NeWFjeWXhee7k+aenDpcXFwiICsgcmVhbFVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVhbFVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGUubWVzc2FnZSlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgLy8gZnlfYnJpZGdlX2FwcC5sb2coJ3g15aSn6IyD5Zu06ZSZ6K+vOicrZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICAgICAgYWxlcnQoJ3g15aSn6IyD5Zu06ZSZ6K+vOicgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5oql6ZSZ57uT5p2feDUnXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgaXNWaWRlbywgcmVjaGFuZ2UsIHBsYXlVcmwsIG1heF9jb3VudCwgUENfVUEsIGlzQmFkVmlkZW8pO1xcbiAgICAgICAgbGV0IHVzZVdlYiA9IGxzZy5nZXRJdGVtKFxcXCLpgJrlhY1cXFwiLCBcXFwiWDVcXFwiKSA9PT0gXFxcIldFQlxcXCI7XFxuICAgICAgICAvL2xvZyhcXFwi5LuT5bqT5L2/55Sod2Vi6YCa5YWN5pu/5LujeDU6XFxcIit1c2VXZWIpO1xcbiAgICAgICAgbGV0IHJ1bGVIZWFkID0gdXNlV2ViICYmIHBhcnNlSW50KGdldEFwcFZlcnNpb24oKSkgPj0gMjMzOSA/IFxcXCJ3ZWJSdWxlOi8vXFxcIiA6IFxcXCJ4NVJ1bGU6Ly9cXFwiO1xcbiAgICAgICAgbGV0IHg1VXJsID0gcnVsZUhlYWQgKyBwbGF5VXJsICsgJ0AnICsgX3g1O1xcbiAgICAgICAgcmV0dXJuIHg1VXJsXFxuICAgIH1cXG4gICAgLy8g5a6a5L2N55yf5a6e57q/6LevLeW4uOinhFxcbiAgICBsZXQgdHMgPSAvaXhpZ3VhfGlxaXlpfHFxLmNvbXxtZ3R2fGxlLmNvbXxiaWxpfHNvaHV8eW91a3V8cHB0dnxjY3R2fDE5MDUuY29tLztcXG4gICAgaWYgKCFpbnB1dC5tYXRjaCh0cykpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgbGV0IEZyb20gPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC92YXIgcGxheWVyXy4qPz0oLio/KTwvKVsxXSk7XFxuICAgICAgICAgICAgbGV0IOWKoOWvhiA9IEZyb20uZW5jcnlwdDtcXG4gICAgICAgICAgICAvLyBsZXQg5p2l6IeqID0gRnJvbS5mcm9tO1xcbiAgICAgICAgICAgIOWOn+mTviA9IEZyb20udXJsO1xcbiAgICAgICAgICAgIC8vbG9nKEZyb20pOlxcbiAgICAgICAgICAgIGlmICjliqDlr4YgPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgIOWOn+mTviA9IHVuZXNjYXBlKOWOn+mTvik7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICjliqDlr4YgPT0gJzInKSB7XFxuICAgICAgICAgICAgICAgIOWOn+mTviA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSjljp/pk74pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKC9cXFxcLm1wNHxcXFxcLm0zdTh8XFxcXC5mbHYvLnRlc3Qo5Y6f6ZO+KSkge1xcbiAgICAgICAgICAgICAgICBzaG93TG9hZGluZygn6I635Y+W5LiN5Yiw5a6Y572R5Zyw5Z2A77yM5bCG55u06ZO+5pKt5pS+Jyk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBb5Y6f6ZO+XSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh0cy50ZXN0KOWOn+mTvikpIHtcXG4gICAgICAgICAgICAgICAg5a6Y6ZO+ID0g5Y6f6ZO+O1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHNob3dMb2FkaW5nKCfojrflj5bkuI3liLDlrpjnvZHlnLDlnYDvvIzlsIbnm7Tpk77mkq3mlL4nKTtcXG4gICAgICAgICAgICAgICAgLy/nm5fniYjnq5nlnLDlnYBcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtwbGF5UGFyc2UucGxheWVyUyhpbnB1dCldLFxcbiAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgLy8g6Iul5Y+R55Sf5byC5bi45YiZ55u05o6l5Li656m66ZO+6LWw5ZeF5o6iXFxuICAgICAgICAgICAg5a6Y6ZO+ID0gJ2h0dHBzOi8vZW1wdHkuaHRtbCc7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICDlrpjpk74gPSBpbnB1dDtcXG4gICAgfVxcbiAgICAvLyDliKTmlq3lvLnluZXnur/ot6/mnaXmupBcXG4gICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcbiAgICBkbUZyb20gPSBkbVNldHRpbmdzLmRtRnJvbTtcXG4gICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXG4gICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXG4gICAgICAgIGlmICjlrpjpk74ubWF0Y2godHMpKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICBkbT1nZXRWYXIoJ2RtX3NoYXJlJywnJyk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBpZiAo5a6Y6ZO+Lm1hdGNoKC95b3VrdXxxaXlpfGl4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZXxjY3R2fDE5MDUuY29tLykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSBpZiAo5a6Y6ZO+Lm1hdGNoKC9tZ3R2LykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKOWumOmTvik7XFxuICAgICAgICB9IGVsc2UgaWYgKOWumOmTvi5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKOWumOmTvik7XFxuICAgICAgICB9IGVsc2UgaWYgKOWumOmTvi5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKOWumOmTvik7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHNob3dMb2FkaW5nKCfmsqHmnInlvLnluZXlrpjnvZHljLnphY0nKTtcXG4gICAgICAgICAgICBwdXRWYXIoJ2RtUGF0aCcsICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCcpO1xcbiAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoaW5wdXQsIDgwMDApO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHB1dFZhcignZG1QYXRoJywgZG0pO1xcbiAgICByZXR1cm4geDVydWxlKGlucHV0LCA4MDAwKTtcXG59XFxuXFxuXFxuLy8g6aaZ5L2s6YCa5YWNXFxuJC5leHBvcnRzLmNsYXNzaWNhbFg1ID0gZnVuY3Rpb24gKCkge1xcbiAgICBmdW5jdGlvbiB4NXJ1bGUoamlleHVybCwgc3JjdXJsKSB7XFxuICAgICAgICBzaG93TG9hZGluZyhcXFwi572R6aG16K6/6Zeu5qOA57Si5Lit77yM6K+356iN5YCZLi4uXFxcIik7XFxuICAgICAgICB2YXIgdmlkZW8gPSAnd2ViUnVsZTovLycgKyBqaWV4dXJsICsgJ0AnICsgJC50b1N0cmluZygoc3JjdXJsKSA9PiB7XFxuICAgICAgICAgICAgLy9mYmEubG9nKGZiYS5nZXRVcmxzKCkpO1xcbiAgICAgICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPT0gbnVsbCB8fCB3aW5kb3cuX19jb3VudCA9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgd2luZG93Ll9fY291bnQgPSAwXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+PSAyMykge1xcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gc3JjdXJsXFxuICAgICAgICAgICAgICAgIGJmdXJsID0gc3JjdXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgIGFyZ3MgPSBzcmN1cmwubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgd2luZG93Ll9fY291bnQgPSB3aW5kb3cuX19jb3VudCArIDE7XFxuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID4gMSAmJiB3aW5kb3cuX19jb3VudCA8PSAzICYmIHdpbmRvdy5fX2NvdW50ICE9IG51bGwgJiYgd2luZG93Ll9fY291bnQgIT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuaW5uZXJUZXh0LnNlYXJjaCgv6Kem5Y+R5LqG6Ziy55uX6ZO+fOacquaOiOadg3zmjqXlj6PpmLLnm5d86K+35Yiw5Li756uZ6KeC55yLLykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICghc3JjdXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V6Lez6Ziy55uX6aqM6K+B5LiAJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS6jCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBzcmN1cmxcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5fX2NvdW50ID4gMyAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICBpZiAodXJscy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEuaGlkZUxvYWRpbmcoKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mo4DntKLlpLHotKXvvIzlj6/og73pk77mjqXml6Dms5Xorr/pl67jgIInO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHMubGVuZ3RoID09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+WwneivleebtOmTvuS4jkpTT07op6PmnpAnKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmxzWzBdLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OHxcXFxcL3ZpZGVvXFxcXC90b3NcXFxcLy8pICYmICF1cmxzWzBdLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8bTN1OFxcXFwucHd8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1swXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1swXS5pbmRleE9mKCdiaWxpdmlkZW8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1swXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5iaWxpYmlsaS5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzWzBdLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzWzBdICsgJyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICd3d3cubWd0di5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSB1cmxzWzBdLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSB1cmxzWzBdLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OHxcXFxcL3ZpZGVvXFxcXC90b3NcXFxcLy8pICYmICFsb2NhdGlvbi5ocmVmLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8bTN1OFxcXFwucHd8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IGZiYS5mZXRjaChsb2NhdGlvbi5ocmVmLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEvXFxcXDxtZXRhLy50ZXN0KGh0bWwpICYmICEvXFxcXDxodG1sLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBKU09OLnBhcnNlKGh0bWwpLnVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gSlNPTi5wYXJzZShodG1sKS51cmwubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC/msqHmnInmib7liLDnq5nngrl8572R6aG15peg5rOV5omT5byAfDQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSkubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGxvY2F0aW9uLmhyZWYubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5pel5b+X5qOA57Si56ysJyArIHdpbmRvdy5fX2NvdW50ICsgJ+asoScpO1xcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiB1cmxzKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIXVybHNbaV0ubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OHxcXFxcLmNzc3xcXFxcLmpzXFxcXD8vKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbaV0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIikuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKFxcXCI7e1xcXCIsIFxcXCIjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7e1xcXCIpLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzW2ldLmluZGV4T2YoJ2JpbGl2aWRlbycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdqdWhhb2thbicpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3Lmp1aGFva2FuLmNjL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ29qYmsnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3Yub2pia2p4LmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vdi5vamJranguY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCd3a2ZpbGUnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdzaGVuZ2xpbnlpeWFuZycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8venl6LnNkbGp3b21lbi5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3p5ei5zZGxqd29tZW4uY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdwZWl6cS5vbmxpbmUnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3BsYXkucGVpenEub25saW5lL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9wbGF5LnBlaXpxLm9ubGluZS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gKHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSAodXJsc1tpXSArICcjaXNWaWRlbz10cnVlIycpLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSAvL2VuZCBmb3IgaVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgc3JjdXJsKTtcXG4gICAgICAgIHJldHVybiB2aWRlb1xcbiAgICB9XFxuICAgIC8vIOWumuS9jeecn+Wunue6v+i3ry3luLjop4RcXG4gICAgbGV0IHRzID0gL2l4aWd1YXxpcWl5aXxxcS5jb218bWd0dnxsZS5jb218YmlsaXxzb2h1fHlvdWt1fHBwdHZ8Y2N0dnwxOTA1LmNvbS87XFxuICAgIGlmICghaW5wdXQubWF0Y2godHMpKSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGxldCBGcm9tID0gSlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KS5tYXRjaCgvdmFyIHBsYXllcl8uKj89KC4qPyk8LylbMV0pO1xcbiAgICAgICAgICAgIGxldCDliqDlr4YgPSBGcm9tLmVuY3J5cHQ7XFxuICAgICAgICAgICAgLy8gbGV0IOadpeiHqiA9IEZyb20uZnJvbTtcXG4gICAgICAgICAgICDljp/pk74gPSBGcm9tLnVybDtcXG4gICAgICAgICAgICAvL2xvZyhGcm9tKTpcXG4gICAgICAgICAgICBpZiAo5Yqg5a+GID09ICcxJykge1xcbiAgICAgICAgICAgICAgICDljp/pk74gPSB1bmVzY2FwZSjljp/pk74pO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAo5Yqg5a+GID09ICcyJykge1xcbiAgICAgICAgICAgICAgICDljp/pk74gPSB1bmVzY2FwZShiYXNlNjREZWNvZGUo5Y6f6ZO+KSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgvXFxcXC5tcDR8XFxcXC5tM3U4fFxcXFwuZmx2Ly50ZXN0KOWOn+mTvikpIHtcXG4gICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoJ+iOt+WPluS4jeWIsOWumOe9keWcsOWdgO+8jOWwhuebtOmTvuaSreaUvicpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW+WOn+mTvl0sXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHMudGVzdCjljp/pk74pKSB7XFxuICAgICAgICAgICAgICAgIOWumOmTviA9IOWOn+mTvjtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBzaG93TG9hZGluZygn6I635Y+W5LiN5Yiw5a6Y572R5Zyw5Z2A77yM5bCG55u06ZO+5pKt5pS+Jyk7XFxuICAgICAgICAgICAgICAgIC8v55uX54mI56uZ5Zyw5Z2AXFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBbcGxheVBhcnNlLnBsYXllclMoaW5wdXQpXSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIC8vIOiLpeWPkeeUn+W8guW4uOWImeebtOaOpeS4uuepuumTvui1sOWXheaOolxcbiAgICAgICAgICAgIOWumOmTviA9ICdodHRwczovL2VtcHR5Lmh0bWwnO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAg5a6Y6ZO+ID0gaW5wdXQ7XFxuICAgIH1cXG4gICAgLy8g5Yik5pat5by55bmV57q/6Lev5p2l5rqQXFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICBpZiAo5a6Y6ZO+Lm1hdGNoKHRzKSkge1xcbiAgICAgICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQo5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfWVsc2V7XFxuICAgICAgICAgICAgZG09Z2V0VmFyKCdkbV9zaGFyZScsJycpO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaWYgKOWumOmTvi5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKOWumOmTvi5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSjlrpjpk74pO1xcbiAgICAgICAgfSBlbHNlIGlmICjlrpjpk74ubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSjlrpjpk74pO1xcbiAgICAgICAgfSBlbHNlIGlmICjlrpjpk74ubWF0Y2goL2JpbGkvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSjlrpjpk74pO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBzaG93TG9hZGluZygn5rKh5pyJ5by55bmV5a6Y572R5Yy56YWNJyk7XFxuICAgICAgICAgICAgcHV0VmFyKCdkbVBhdGgnLCBnZXRWYXIoJ2RtX3NoYXJlJywgJycpKTtcXG4gICAgICAgICAgICByZXR1cm4geDVydWxlKGlucHV0LCBpbnB1dCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcHV0VmFyKCdkbVBhdGgnLCBkbSk7XFxuICAgIHJldHVybiB4NXJ1bGUoaW5wdXQsIGlucHV0KTtcXG59XFxuXCJ9XSIsImljb24iOiJodHRwOi8vaW1nLXFuLTAuNTFtaXouY29tL0VsZW1lbnQvMDAvOTAvNzUvMDkvMzFjN2JkMmZfRTkwNzUwOV8wODhmOWMzMi5wbmchL3F1YWxpdHkvOTAvdW5zaGFycC90cnVlL2NvbXByZXNzL3RydWUvZm9ybWF0L3BuZy9maC8zMjAiLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment