Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1hcXVpbGF1bi0xMDAwLW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnQVFVSUxBVU4gMTAwMCBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM0ODI4VycsCiAgICAgIHByaWNlOiAn4oKsNiw3NScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0Jlc3RzZWxsZXIgcHJvZG90dGkgcGVyIGxhIGNhc2EnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ0N1cmEgZGVsIGJ1Y2F0bycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1hcXVpbGF1bi0xMDAwLW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiQVFVSUxBVU4gMTAwMCBNTCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzQ4MjhXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDYsNzUiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTdGFuaG9tZSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICJDdXJhIGRlbCBidWNhdG8iLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmVzdC1uZXR0b3lhbnRzLW1lbmFnZXJkIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSI5OTM2Njg4NTEzMzU3Ij4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81ODk5MF8xXzNkZDI0NjhlLTM1ZjktNDMxMy05YmZiLTY3OWY1YjVjYmEyOS5qcGc/dj0xNzM4MDU5MDEyJndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzU4OTkwXzFfM2RkMjQ2OGUtMzVmOS00MzEzLTliZmItNjc5ZjViNWNiYTI5LmpwZz92PTE3MzgwNTkwMTImd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTg5OTBfMV8zZGQyNDY4ZS0zNWY5LTQzMTMtOWJmYi02NzlmNWI1Y2JhMjkuanBnP3Y9MTczODA1OTAxMiZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81ODk5MF8xXzNkZDI0NjhlLTM1ZjktNDMxMy05YmZiLTY3OWY1YjVjYmEyOS5qcGc/dj0xNzM4MDU5MDEyJndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzU4OTkwXzFfM2RkMjQ2OGUtMzVmOS00MzEzLTliZmItNjc5ZjViNWNiYTI5LmpwZz92PTE3MzgwNTkwMTImd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTg5OTBfMV8zZGQyNDY4ZS0zNWY5LTQzMTMtOWJmYi02NzlmNWI1Y2JhMjkuanBnP3Y9MTczODA1OTAxMiA5OTh3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzU4OTkwXzFfM2RkMjQ2OGUtMzVmOS00MzEzLTliZmItNjc5ZjViNWNiYTI5LmpwZz92PTE3MzgwNTkwMTImd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gRGV0ZXJzaXZvIEVzcGVydG8gTGFuYSBFIERlbGljYXRpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9Ijk5OCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0Xzk5MzY2ODg1MTMzNTciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iOTkzNjY4ODUxMzM1NyIgZGF0YS12YXJpYW50LWlkPSI1MDkyODAyMjU4NTY3NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvYXF1aWxhdW4tMTAwMC1tbCI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4ODUxMzM1NyIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tNTUlCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg4NTEzMzU3IiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9hcXVpbGF1bi0xMDAwLW1sIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4ODUxMzM1NyIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg4NTEzMzU3IEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODg1MTMzNTciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0ZXJzaXZvIEVzcGVydG8gTGFuYSBFIERlbGljYXRpIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgQVFVSUxBVU4gMTAwMCBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNiw3NQogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw2LDc1CiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxNSwwMAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPuKCrDYsNzU8L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPmwKICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4ODUxMzM1NyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MDkyODAyMjU4NTY3NyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODg1MTMzNTctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2Njg4NTEzMzU3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg4NTEzMzU3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iOTkzNjY4ODUxMzM1NyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0Xzk5MzY2ODg1MTMzNTciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iOTkzNjY4ODUxMzM1NyIgZGF0YS12YXJpYW50LWlkPSI1MDkyODAyMjU4NTY3NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvYXF1aWxhdW4tMTAwMC1tbCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcnNpdm8gRXNwZXJ0byBMYW5hIEUgRGVsaWNhdGkKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEFRVUlMQVVOIDEwMDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+UHVsaXNjZSBlIHNtYWNjaGlhIGVmZmljYWNlbWVudGUgaSB0ZXNzdXRpIGRlbGljYXRpLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgYXppb25lIGFudGktaW5mZWx0cmltZW50byBwZXJtZXR0ZSBkaSBwcmVzZXJ2YXJlIGxhIG1vcmJpZGV6emEgZSBsZSBmaWJyZSBkZWkgdGVzc3V0aS48L3NwYW4+PC9saT48bGk+PHNwYW4+Q29udGllbmUgb2x0cmUgbCc4NyUgZGkgaW5ncmVkaWVudGkgZGkgb3JpZ2luZSBuYXR1cmFsZS48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODg1MTMzNTciIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMjI1ODU2NzciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODg1MTMzNTctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODg1MTMzNTctc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODg1MTMzNTciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw2LDc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTM2Njg4NTEzMzU3IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1ibHVlLWNyeXN0YWwtbGF2YW5kYS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ0JMVUUgQ1JZU1RBTCBMQVZBTkRBJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwMjU4OTFXJywKICAgICAgcHJpY2U6ICfigqw4LDk5JywKICAgICAgaXRlbV9icmFuZDogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnQmxhY2sgRnJpZGF5IDIwMjUnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ0N1cmEgZGVsbGEgYmlhbmNoZXJpYScsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1ibHVlLWNyeXN0YWwtbGF2YW5kYS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIkJMVUUgQ1JZU1RBTCBMQVZBTkRBIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAyNTg5MVciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsOCw5OSIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkN1cmEgZGVsbGEgYmlhbmNoZXJpYSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJibGFjay1mcmlkYXktMjAyNSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iOTk2ODY1NDg0NDIzNyI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfSTEwMjk5XzFfY2RkYTUzNzgtZGQ0YS00MjRlLWE5NjEtOTFlYzg3NGMxM2JkLmpwZz92PTE3Mzk4NjQ4MDQmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfSTEwMjk5XzFfY2RkYTUzNzgtZGQ0YS00MjRlLWE5NjEtOTFlYzg3NGMxM2JkLmpwZz92PTE3Mzk4NjQ4MDQmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfSTEwMjk5XzFfY2RkYTUzNzgtZGQ0YS00MjRlLWE5NjEtOTFlYzg3NGMxM2JkLmpwZz92PTE3Mzk4NjQ4MDQmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfSTEwMjk5XzFfY2RkYTUzNzgtZGQ0YS00MjRlLWE5NjEtOTFlYzg3NGMxM2JkLmpwZz92PTE3Mzk4NjQ4MDQmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfSTEwMjk5XzFfY2RkYTUzNzgtZGQ0YS00MjRlLWE5NjEtOTFlYzg3NGMxM2JkLmpwZz92PTE3Mzk4NjQ4MDQmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfSTEwMjk5XzFfY2RkYTUzNzgtZGQ0YS00MjRlLWE5NjEtOTFlYzg3NGMxM2JkLmpwZz92PTE3Mzk4NjQ4MDQmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9JMTAyOTlfMV9jZGRhNTM3OC1kZDRhLTQyNGUtYTk2MS05MWVjODc0YzEzYmQuanBnP3Y9MTczOTg2NDgwNCAxMjAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9JMTAyOTlfMV9jZGRhNTM3OC1kZDRhLTQyNGUtYTk2MS05MWVjODc0YzEzYmQuanBnP3Y9MTczOTg2NDgwNCZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBCTFVFIENSWVNUQUwgLSBDUklTVEFMTEkgQU5USVRBUk1FIFBST0ZVTUFUSSBOb3RhIGxhdmFuZGEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTY4NjU0ODQ0MjM3IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5Njg2NTQ4NDQyMzciIGRhdGEtdmFyaWFudC1pZD0iNTEwNzQ3MTI1MDI2MDUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2JsdWUtY3J5c3RhbC1sYXZhbmRhIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTY4NjU0ODQ0MjM3IiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01MyUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5Njg2NTQ4NDQyMzciID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2JsdWUtY3J5c3RhbC1sYXZhbmRhIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTk2ODY1NDg0NDIzNyIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTY4NjU0ODQ0MjM3IEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5Njg2NTQ4NDQyMzciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQkxVRSBDUllTVEFMIC0gQ1JJU1RBTExJIEFOVElUQVJNRSBQUk9GVU1BVEkgTm90YSBsYXZhbmRhIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgQkxVRSBDUllTVEFMIExBVkFOREEKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDgsOTkKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsOCw5OQogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTksMDAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTk2ODY1NDg0NDIzNyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTA3NDcxMjUwMjYwNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5Njg2NTQ4NDQyMzctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTY4NjU0ODQ0MjM3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTY4NjU0ODQ0MjM3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iOTk2ODY1NDg0NDIzNyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0Xzk5Njg2NTQ4NDQyMzciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iOTk2ODY1NDg0NDIzNyIgZGF0YS12YXJpYW50LWlkPSI1MTA3NDcxMjUwMjYwNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvYmx1ZS1jcnlzdGFsLWxhdmFuZGEiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQkxVRSBDUllTVEFMIC0gQ1JJU1RBTExJIEFOVElUQVJNRSBQUk9GVU1BVEkgTm90YSBsYXZhbmRhCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBCTFVFIENSWVNUQUwgTEFWQU5EQQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5Qcm90ZWdnZSBlZmZpY2FjZW1lbnRlIGdsaSBpbmR1bWVudGkgZGFsbGUgdGFybWUuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlByb2Z1bWEgYW5jaGUgYXJtYWRpIGUgY2Fzc2V0dGkuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkZhY2lsZSBkYSB1c2FyZTogc2FjY2hldHRvIHByb250byBhbGwndXNvLiA8L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5Njg2NTQ4NDQyMzciIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTEwNzQ3MTI1MDI2MDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5Njg2NTQ4NDQyMzctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5Njg2NTQ4NDQyMzctc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5Njg2NTQ4NDQyMzciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw4LDk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTY4NjU0ODQ0MjM3IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1zYW5pLWNsZWFuLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnU0FOSS1DTEVBTicsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM1MTAzVycsCiAgICAgIHByaWNlOiAn4oKsNSw5OScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0FjY2Vzc29yaSBwZXIgbGEgY2FzYScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnQWNjZXNzb3JpIHBlciBsYSBjYXNhJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LXNhbmktY2xlYW4tdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJTQU5JLUNMRUFOIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzNTEwM1ciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNSw5OSIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkFjY2Vzc29yaSBwZXIgbGEgY2FzYSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJob3VzZWhvbGQtYWNjZXNzb3JpZXMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2OTA2NzYwNDUiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzkwNzk4XzEuanBnP3Y9MTczODA2Mjg0NCZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF85MDc5OF8xLmpwZz92PTE3MzgwNjI4NDQmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfOTA3OThfMS5qcGc/dj0xNzM4MDYyODQ0JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzkwNzk4XzEuanBnP3Y9MTczODA2Mjg0NCZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF85MDc5OF8xLmpwZz92PTE3MzgwNjI4NDQgODAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF85MDc5OF8xLmpwZz92PTE3MzgwNjI4NDQmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gUGFubm8gU3BlY2lhbGUgUGF2aW1lbnRpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjgwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI4MDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0Xzk5MzY2OTA2NzYwNDUiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iOTkzNjY5MDY3NjA0NSIgZGF0YS12YXJpYW50LWlkPSI1MDkyODAzMjQ0ODg0NSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvc2FuaS1jbGVhbiI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDY3NjA0NSIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tNTclCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwNjc2MDQ1IiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9zYW5pLWNsZWFuIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDY3NjA0NSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwNjc2MDQ1IEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTA2NzYwNDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFubm8gU3BlY2lhbGUgUGF2aW1lbnRpIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgU0FOSS1DTEVBTgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNSw5OQogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw1LDk5CiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxNCwwMAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkwNjc2MDQ1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUwOTI4MDMyNDQ4ODQ1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDY3NjA0NS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2OTA2NzYwNDUtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTA2NzYwNDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTM2NjkwNjc2MDQ1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfOTkzNjY5MDY3NjA0NSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI5OTM2NjkwNjc2MDQ1IiBkYXRhLXZhcmlhbnQtaWQ9IjUwOTI4MDMyNDQ4ODQ1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9zYW5pLWNsZWFuIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhbm5vIFNwZWNpYWxlIFBhdmltZW50aQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgU0FOSS1DTEVBTgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5Bc3NvcmJlIGxvIHNwb3JjbyBwacO5IGluY3Jvc3RhdG8uPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkxhIHN1YSBjb21wb3NpemlvbmUgaW4gbWljcm9maWJyYSDDqCBtb3JiaWRhIGVkIGVmZmljYWNlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5TaSBhc2NpdWdhIHJhcGlkYW1lbnRlIHNlbnphIGxhc2NpYXJlIG9kb3JpLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDY3NjA0NSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MDkyODAzMjQ0ODg0NSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDY3NjA0NS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDY3NjA0NS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDY3NjA0NSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDUsOTk8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2OTA2NzYwNDUiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1uZXV0cmFsLXNwcmF5LTI1MG1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnTkVVVFJBTCBTUFJBWSAyNTBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM1NDU5VycsCiAgICAgIHByaWNlOiAn4oKsNSw1MCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0JsYWNrIEZyaWRheSAyMDI1JywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdEZW9kb3JhbnRpIHBlciBhbWJpZW50aScsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1uZXV0cmFsLXNwcmF5LTI1MG1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiTkVVVFJBTCBTUFJBWSAyNTBNTCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzU0NTlXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDUsNTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTdGFuaG9tZSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICJEZW9kb3JhbnRpIHBlciBhbWJpZW50aSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJibGFjay1mcmlkYXktMjAyNSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iOTkzNjY5MTM2NDE3MyI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzk2NTFfMV9jZjZkYTgzNC0yYjgwLTQ5YWMtOGZlZS1hNTBlZGRkNTM0MTEuanBnP3Y9MTczODA1OTk5MyZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zOTY1MV8xX2NmNmRhODM0LTJiODAtNDlhYy04ZmVlLWE1MGVkZGQ1MzQxMS5qcGc/dj0xNzM4MDU5OTkzJndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzM5NjUxXzFfY2Y2ZGE4MzQtMmI4MC00OWFjLThmZWUtYTUwZWRkZDUzNDExLmpwZz92PTE3MzgwNTk5OTMmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzk2NTFfMV9jZjZkYTgzNC0yYjgwLTQ5YWMtOGZlZS1hNTBlZGRkNTM0MTEuanBnP3Y9MTczODA1OTk5MyZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zOTY1MV8xX2NmNmRhODM0LTJiODAtNDlhYy04ZmVlLWE1MGVkZGQ1MzQxMS5qcGc/dj0xNzM4MDU5OTkzJndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzM5NjUxXzFfY2Y2ZGE4MzQtMmI4MC00OWFjLThmZWUtYTUwZWRkZDUzNDExLmpwZz92PTE3MzgwNTk5OTMmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zOTY1MV8xX2NmNmRhODM0LTJiODAtNDlhYy04ZmVlLWE1MGVkZGQ1MzQxMS5qcGc/dj0xNzM4MDU5OTkzIDE2MDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzM5NjUxXzFfY2Y2ZGE4MzQtMmI4MC00OWFjLThmZWUtYTUwZWRkZDUzNDExLmpwZz92PTE3MzgwNTk5OTMmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gRGlzdHJ1Z2dpLU9kb3JpIFBlciBMYSBDYXNhIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjE2MDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfOTkzNjY5MTM2NDE3MyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI5OTM2NjkxMzY0MTczIiBkYXRhLXZhcmlhbnQtaWQ9IjUwOTI4MDM0NzQyNjA1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9uZXV0cmFsLXNwcmF5LTI1MG1sIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkxMzY0MTczIiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01NiUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTEzNjQxNzMiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL25ldXRyYWwtc3ByYXktMjUwbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkxMzY0MTczIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTEzNjQxNzMgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MTM2NDE3MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0cnVnZ2ktT2RvcmkgUGVyIExhIENhc2EgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgTkVVVFJBTCBTUFJBWSAyNTBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNSw1MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw1LDUwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxMiw1MAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPuKCrDIyLDAwPC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj5sCiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2OTEzNjQxNzMiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMzQ3NDI2MDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkxMzY0MTczLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MTM2NDE3My1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MTM2NDE3MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2OTEzNjQxNzMiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2NjkxMzY0MTczIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2OTEzNjQxNzMiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMzQ3NDI2MDUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL25ldXRyYWwtc3ByYXktMjUwbWwiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzdHJ1Z2dpLU9kb3JpIFBlciBMYSBDYXNhIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgTkVVVFJBTCBTUFJBWSAyNTBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5FbGltaW5hIGFsbCdpc3RhbnRlIGkgY2F0dGl2aSBvZG9yaSBpbiBjYXNhLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5Gb3JtdWxhIHNlbnphIHByb2Z1bW8uPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkNvbnRpZW5lIG9sdHJlIGlsIDk1JSBkaSBpbmdyZWRpZW50aSBkaSBvcmlnaW5lIG5hdHVyYWxlLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MTM2NDE3MyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MDkyODAzNDc0MjYwNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MTM2NDE3My1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MTM2NDE3My1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MTM2NDE3MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDUsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2OTEzNjQxNzMiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1hY3RpdmUtZHJhaW4tMTAwMG1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnQUNUSVZFIERSQUlOIDEwMDBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM1MTExVycsCiAgICAgIHByaWNlOiAn4oKsNSw5OScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0JsYWNrIEZyaWRheSAyMDI1JywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdEZXRlcnNpdmkgc3BlY2lmaWNpJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LWFjdGl2ZS1kcmFpbi0xMDAwbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJBQ1RJVkUgRFJBSU4gMTAwME1MIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzNTExMVciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNSw5OSIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkRldGVyc2l2aSBzcGVjaWZpY2kiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmxhY2stZnJpZGF5LTIwMjUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2OTA4MDcxMTciPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzkwMjQ4XzFfM2M2MGVlOGQtMDk5OS00ZDI2LTg0NzctYWU4OTEzYTRjM2U5LmpwZz92PTE3MzgwNTk4OTUmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfOTAyNDhfMV8zYzYwZWU4ZC0wOTk5LTRkMjYtODQ3Ny1hZTg5MTNhNGMzZTkuanBnP3Y9MTczODA1OTg5NSZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF85MDI0OF8xXzNjNjBlZThkLTA5OTktNGQyNi04NDc3LWFlODkxM2E0YzNlOS5qcGc/dj0xNzM4MDU5ODk1JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzkwMjQ4XzFfM2M2MGVlOGQtMDk5OS00ZDI2LTg0NzctYWU4OTEzYTRjM2U5LmpwZz92PTE3MzgwNTk4OTUmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfOTAyNDhfMV8zYzYwZWU4ZC0wOTk5LTRkMjYtODQ3Ny1hZTg5MTNhNGMzZTkuanBnP3Y9MTczODA1OTg5NSA4MDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzkwMjQ4XzFfM2M2MGVlOGQtMDk5OS00ZDI2LTg0NzctYWU4OTEzYTRjM2U5LmpwZz92PTE3MzgwNTk4OTUmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gRGlzZ29yZ2FudGUgUG90ZW50ZSBTY2FyaWNoaSDigJMgY29uIHNvZGEgY2F1c3RpY2EiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iODAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjgwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfOTkzNjY5MDgwNzExNyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI5OTM2NjkwODA3MTE3IiBkYXRhLXZhcmlhbnQtaWQ9IjUwOTI4MDMyNjQ1NDUzIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9hY3RpdmUtZHJhaW4tMTAwMG1sIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwODA3MTE3IiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01NyUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTA4MDcxMTciID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2FjdGl2ZS1kcmFpbi0xMDAwbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwODA3MTE3IiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTA4MDcxMTcgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDgwNzExNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNnb3JnYW50ZSBQb3RlbnRlIFNjYXJpY2hpIOKAkyBjb24gc29kYSBjYXVzdGljYSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEFDVElWRSBEUkFJTiAxMDAwTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDUsOTkKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsNSw5OQogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTQsMDAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj7igqw1LDk5PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj5sCiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2OTA4MDcxMTciIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMzI2NDU0NTMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkwODA3MTE3LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDgwNzExNy1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDgwNzExNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2OTA4MDcxMTciIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2NjkwODA3MTE3IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2OTA4MDcxMTciIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMzI2NDU0NTMiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2FjdGl2ZS1kcmFpbi0xMDAwbWwiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzZ29yZ2FudGUgUG90ZW50ZSBTY2FyaWNoaSDigJMgY29uIHNvZGEgY2F1c3RpY2EKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEFDVElWRSBEUkFJTiAxMDAwTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+RWZmaWNhY2UgcGVyIHNibG9jY2FyZSBnbGkgc2NhcmljaGkgb3R0dXJhdGkuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkFnaXNjZSByYXBpZGFtZW50ZSBncmF6aWUgYWxsYSBzdWEgZm9ybXVsYSBhIGJhc2UgZGkgc29kYSBjYXVzdGljYS48L3NwYW4+PC9saT48bGk+PHNwYW4+QWdpc2NlIGluIHNvbGkgNSBtaW51dGkuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkwODA3MTE3IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUwOTI4MDMyNjQ1NDUzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkwODA3MTE3LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkwODA3MTE3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwODA3MTE3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWdnaXVuZ2kgYWwgY2FycmVsbG8gLSA8c3BhbiBjbGFzcz0iYnV0dG9uX19wcmljZSI+4oKsNSw5OTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iOTkzNjY5MDgwNzExNyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1zY3JhdGNoeS1jbG90aC1ibHVlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnU0NSQVRDSFkgQ0xPVEggQkxVRScsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDMyODAxVycsCiAgICAgIHByaWNlOiAn4oKsNCw5OScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0FjY2Vzc29yaSBwZXIgbGEgY2FzYScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnQWNjZXNzb3JpIHBlciBsYSBjYXNhJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LXNjcmF0Y2h5LWNsb3RoLWJsdWUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJTQ1JBVENIWSBDTE9USCBCTFVFIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzMjgwMVciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNCw5OSIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkFjY2Vzc29yaSBwZXIgbGEgY2FzYSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJob3VzZWhvbGQtYWNjZXNzb3JpZXMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODQ0NTAxMjUiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzU2NzUyXzFfZTE1ZTJiZDctNzQ4NS00MmNiLThkNTQtMzZjMzVkZjFlNDE1LmpwZz92PTE3MzgwNTgxMzEmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTY3NTJfMV9lMTVlMmJkNy03NDg1LTQyY2ItOGQ1NC0zNmMzNWRmMWU0MTUuanBnP3Y9MTczODA1ODEzMSZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81Njc1Ml8xX2UxNWUyYmQ3LTc0ODUtNDJjYi04ZDU0LTM2YzM1ZGYxZTQxNS5qcGc/dj0xNzM4MDU4MTMxJndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzU2NzUyXzFfZTE1ZTJiZDctNzQ4NS00MmNiLThkNTQtMzZjMzVkZjFlNDE1LmpwZz92PTE3MzgwNTgxMzEmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTY3NTJfMV9lMTVlMmJkNy03NDg1LTQyY2ItOGQ1NC0zNmMzNWRmMWU0MTUuanBnP3Y9MTczODA1ODEzMSZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81Njc1Ml8xX2UxNWUyYmQ3LTc0ODUtNDJjYi04ZDU0LTM2YzM1ZGYxZTQxNS5qcGc/dj0xNzM4MDU4MTMxIDk5OHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTY3NTJfMV9lMTVlMmJkNy03NDg1LTQyY2ItOGQ1NC0zNmMzNWRmMWU0MTUuanBnP3Y9MTczODA1ODEzMSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBNaWNyb2ZpYnJhIERvcHBpYSBUZXNzaXR1cmEgUGVyIFN1cGVyZmljaSBMYXZhYmlsaSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2Njg0NDUwMTI1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODQ0NTAxMjUiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMTIwMzQzODEiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL3NjcmF0Y2h5LWNsb3RoLWJsdWUiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODQ0NTAxMjUiIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSI+LTYwJQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmhvbWUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NDQ1MDEyNSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvc2NyYXRjaHktY2xvdGgtYmx1ZSIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODQ0NTAxMjUiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NDQ1MDEyNSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg0NDUwMTI1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pY3JvZmlicmEgRG9wcGlhIFRlc3NpdHVyYSBQZXIgU3VwZXJmaWNpIExhdmFiaWxpIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgU0NSQVRDSFkgQ0xPVEggQkxVRQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNCw5OQogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw0LDk5CiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxMiw1MAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2Njg0NDUwMTI1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUwOTI4MDEyMDM0MzgxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4NDQ1MDEyNS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODQ0NTAxMjUtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODQ0NTAxMjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTM2Njg0NDUwMTI1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfOTkzNjY4NDQ1MDEyNSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI5OTM2Njg0NDUwMTI1IiBkYXRhLXZhcmlhbnQtaWQ9IjUwOTI4MDEyMDM0MzgxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9zY3JhdGNoeS1jbG90aC1ibHVlIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pY3JvZmlicmEgRG9wcGlhIFRlc3NpdHVyYSBQZXIgU3VwZXJmaWNpIExhdmFiaWxpCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBTQ1JBVENIWSBDTE9USCBCTFVFCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPkFkYXR0YSBhIHR1dHRlIGxlIHN1cGVyZmljaSBsYXZhYmlsaSBkZWdsaSBpbnRlcm5pLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5JbCBzdW8gbGF0byBhYnJhc2l2byBwZXJtZXR0ZSBkaSByaW11b3ZlcmUgbG8gc3BvcmNvIGluY3Jvc3RhdG8gZGVsbGUgc3VwZXJmaWNpLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5JbCBzdW8gbGF0byBsaXNjaW8gcGVybWV0dGUgZGkgZmFyIGJyaWxsYXJlIGxlIHN1cGVyZmljaS48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODQ0NTAxMjUiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMTIwMzQzODEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODQ0NTAxMjUtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODQ0NTAxMjUtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODQ0NTAxMjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw0LDk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTM2Njg0NDUwMTI1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1teS1icnVzaC1ncmVlbi1vcmFuZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdNWSBCUlVTSCBHUkVFTiAmIE9SQU5HRScsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDMyMzA2VycsCiAgICAgIHByaWNlOiAn4oKsMyw5OScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0FjY2Vzc29yaSBwZXIgbGEgY2FzYScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnQWNjZXNzb3JpIHBlciBsYSBjYXNhJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LW15LWJydXNoLWdyZWVuLW9yYW5nZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIk1ZIEJSVVNIIEdSRUVOICYgT1JBTkdFIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzMjMwNlciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsMyw5OSIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkFjY2Vzc29yaSBwZXIgbGEgY2FzYSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJob3VzZWhvbGQtYWNjZXNzb3JpZXMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODM4NjAzMDEiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzg3NDAyXzFfN2VjYTExZDQtZjZkYS00ODBmLThkMDUtZGE2M2EwODI0ZTgwLmpwZz92PTE3MzgwNTgwMDkmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfODc0MDJfMV83ZWNhMTFkNC1mNmRhLTQ4MGYtOGQwNS1kYTYzYTA4MjRlODAuanBnP3Y9MTczODA1ODAwOSZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF84NzQwMl8xXzdlY2ExMWQ0LWY2ZGEtNDgwZi04ZDA1LWRhNjNhMDgyNGU4MC5qcGc/dj0xNzM4MDU4MDA5JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzg3NDAyXzFfN2VjYTExZDQtZjZkYS00ODBmLThkMDUtZGE2M2EwODI0ZTgwLmpwZz92PTE3MzgwNTgwMDkmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfODc0MDJfMV83ZWNhMTFkNC1mNmRhLTQ4MGYtOGQwNS1kYTYzYTA4MjRlODAuanBnP3Y9MTczODA1ODAwOSZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF84NzQwMl8xXzdlY2ExMWQ0LWY2ZGEtNDgwZi04ZDA1LWRhNjNhMDgyNGU4MC5qcGc/dj0xNzM4MDU4MDA5IDk5OHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfODc0MDJfMV83ZWNhMTFkNC1mNmRhLTQ4MGYtOGQwNS1kYTYzYTA4MjRlODAuanBnP3Y9MTczODA1ODAwOSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBTcGF6em9sYSBNdWx0aXVzbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2NjgzODYwMzAxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODM4NjAzMDEiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMDk4Mzg5MjUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL215LWJydXNoLWdyZWVuLW9yYW5nZSI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4Mzg2MDMwMSIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tNTYlCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjgzODYwMzAxIiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9teS1icnVzaC1ncmVlbi1vcmFuZ2UiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjgzODYwMzAxIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODM4NjAzMDEgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4Mzg2MDMwMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGF6em9sYSBNdWx0aXVzbyAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIE1ZIEJSVVNIIEdSRUVOICZhbXA7IE9SQU5HRQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsMyw5OQogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqwzLDk5CiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqw5LDAwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODM4NjAzMDEiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMDk4Mzg5MjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjgzODYwMzAxLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4Mzg2MDMwMS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4Mzg2MDMwMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2ODM4NjAzMDEiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2NjgzODYwMzAxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODM4NjAzMDEiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMDk4Mzg5MjUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL215LWJydXNoLWdyZWVuLW9yYW5nZSI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGF6em9sYSBNdWx0aXVzbwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgTVkgQlJVU0ggR1JFRU4gJmFtcDsgT1JBTkdFCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPkZhY2lsaXRhIGxhIHB1bGl6aWEgbmVsbGUgem9uZSBwacO5IGluYWNjZXNzaWJpbGkuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlJlc2lzdGVudGUgZWQgZWZmaWNhY2UgYSBsdW5nbyB0ZXJtaW5lLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgZm9ybWEgcGVybWV0dGUgZGkgcmFnZ2l1bmdlcmUgaSBwdW50aSBwacO5IGRpZmZpY2lsaS48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODM4NjAzMDEiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMDk4Mzg5MjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODM4NjAzMDEtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODM4NjAzMDEtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODM4NjAzMDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqwzLDk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTM2NjgzODYwMzAxIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1mZWV0LWV4Zm8tNzUtbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdGRUVUIEVYRk8gNzUgTUwnLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzMzM5MFcnLAogICAgICBwcmljZTogJ+KCrDUsNTAnLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdCbGFjayBGcmlkYXkgMjAyNScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnQ3VyYSBkZWkgcGllZGknLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtZmVldC1leGZvLTc1LW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiRkVFVCBFWEZPIDc1IE1MIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzMzM5MFciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNSw1MCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkN1cmEgZGVpIHBpZWRpIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImJsYWNrLWZyaWRheS0yMDI1IiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSI5OTM2Njg1NDk4NzAxIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF85ODg4NV8xX2RkMDVlNGQ3LWM2MTYtNGYxZi1hNDU0LTQxMzkxYjJkMzA0ZC5qcGc/dj0xNzM4MDU4MzYxJndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzk4ODg1XzFfZGQwNWU0ZDctYzYxNi00ZjFmLWE0NTQtNDEzOTFiMmQzMDRkLmpwZz92PTE3MzgwNTgzNjEmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfOTg4ODVfMV9kZDA1ZTRkNy1jNjE2LTRmMWYtYTQ1NC00MTM5MWIyZDMwNGQuanBnP3Y9MTczODA1ODM2MSZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF85ODg4NV8xX2RkMDVlNGQ3LWM2MTYtNGYxZi1hNDU0LTQxMzkxYjJkMzA0ZC5qcGc/dj0xNzM4MDU4MzYxJndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzk4ODg1XzFfZGQwNWU0ZDctYzYxNi00ZjFmLWE0NTQtNDEzOTFiMmQzMDRkLmpwZz92PTE3MzgwNTgzNjEmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfOTg4ODVfMV9kZDA1ZTRkNy1jNjE2LTRmMWYtYTQ1NC00MTM5MWIyZDMwNGQuanBnP3Y9MTczODA1ODM2MSA5OTh3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzk4ODg1XzFfZGQwNWU0ZDctYzYxNi00ZjFmLWE0NTQtNDEzOTFiMmQzMDRkLmpwZz92PTE3MzgwNTgzNjEmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gRXNmb2xpYW50ZSBGcmVzY2hlenphIFBpZWRpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9Ijk5OCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0Xzk5MzY2ODU0OTg3MDEiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iOTkzNjY4NTQ5ODcwMSIgZGF0YS12YXJpYW50LWlkPSI1MDkyODAxNTMxMTE4MSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvZmVldC1leGZvLTc1LW1sIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg1NDk4NzAxIiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01MiUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODU0OTg3MDEiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2ZlZXQtZXhmby03NS1tbCIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODU0OTg3MDEiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NTQ5ODcwMSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg1NDk4NzAxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzZm9saWFudGUgRnJlc2NoZXp6YSBQaWVkaSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEZFRVQgRVhGTyA3NSBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNSw1MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw1LDUwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxMSw1MAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPuKCrDAsMDc8L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPm1sCiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODU0OTg3MDEiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMTUzMTExODEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2Njg1NDk4NzAxLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4NTQ5ODcwMS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NTQ5ODcwMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2ODU0OTg3MDEiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2Njg1NDk4NzAxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODU0OTg3MDEiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMTUzMTExODEiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2ZlZXQtZXhmby03NS1tbCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2ZvbGlhbnRlIEZyZXNjaGV6emEgUGllZGkKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEZFRVQgRVhGTyA3NSBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5SaWR1Y2UgZSBtaWdsaW9yYSBwcm9ncmVzc2l2YW1lbnRlIGxlIHpvbmUgcnV2aWRlIGRlaSBwaWVkaS48L3NwYW4+PC9saT48bGk+PHNwYW4+QXJyaWNjaGl0byBjb24gcG9sdmVyZSBkaSBwaWV0cmEgcG9taWNlIGUgbWVudG9sby48L3NwYW4+PC9saT48bGk+PHNwYW4+Q29udGllbmUgcGnDuSBkZWwgOTglIGQnaW5ncmVkaWVudGkgZGkgb3JpZ2luZSBuYXR1cmFsZS48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODU0OTg3MDEiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMTUzMTExODEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODU0OTg3MDEtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODU0OTg3MDEtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODU0OTg3MDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw1LDUwPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI5OTM2Njg1NDk4NzAxIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1kaXNpbmZldHRhbnRlLWxpcXVpZG8tYnVjYXRvLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnZGlzaW5mZXR0YW50ZSBsaXF1aWRvIGJ1Y2F0bycsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM1MjM1VycsCiAgICAgIHByaWNlOiAn4oKsNiw5OScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0JsYWNrIEZyaWRheSAyMDI1JywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdDdXJhIGRlbGxhIGJpYW5jaGVyaWEnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtZGlzaW5mZXR0YW50ZS1saXF1aWRvLWJ1Y2F0by10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogImRpc2luZmV0dGFudGUgbGlxdWlkbyBidWNhdG8iLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM1MjM1VyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw2LDk5IiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiQ3VyYSBkZWxsYSBiaWFuY2hlcmlhIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImJsYWNrLWZyaWRheS0yMDI1IiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDI0NDkyMjk2NjM0OSI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzAwNTNfMV9iMzY2ODUyNC0wM2NkLTRjMDktYjkyZC02Yjc4NTZhZGM1MGUuanBnP3Y9MTc1Njc5NzE2NiZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMDA1M18xX2IzNjY4NTI0LTAzY2QtNGMwOS1iOTJkLTZiNzg1NmFkYzUwZS5qcGc/dj0xNzU2Nzk3MTY2JndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMwMDUzXzFfYjM2Njg1MjQtMDNjZC00YzA5LWI5MmQtNmI3ODU2YWRjNTBlLmpwZz92PTE3NTY3OTcxNjYmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzAwNTNfMV9iMzY2ODUyNC0wM2NkLTRjMDktYjkyZC02Yjc4NTZhZGM1MGUuanBnP3Y9MTc1Njc5NzE2NiZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMDA1M18xX2IzNjY4NTI0LTAzY2QtNGMwOS1iOTJkLTZiNzg1NmFkYzUwZS5qcGc/dj0xNzU2Nzk3MTY2JndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMwMDUzXzFfYjM2Njg1MjQtMDNjZC00YzA5LWI5MmQtNmI3ODU2YWRjNTBlLmpwZz92PTE3NTY3OTcxNjYmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMDA1M18xX2IzNjY4NTI0LTAzY2QtNGMwOS1iOTJkLTZiNzg1NmFkYzUwZS5qcGc/dj0xNzU2Nzk3MTY2IDI0MDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMwMDUzXzFfYjM2Njg1MjQtMDNjZC00YzA5LWI5MmQtNmI3ODU2YWRjNTBlLmpwZz92PTE3NTY3OTcxNjYmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iZGlzaW5mZXR0YW50ZSBsaXF1aWRvIGJ1Y2F0byIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIyNDAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjI0MDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMjQ0OTIyOTY2MzQ5IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMjQ0OTIyOTY2MzQ5IiBkYXRhLXZhcmlhbnQtaWQ9IjUyMzIzMjUyOTk0MzgxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9kaXNpbmZldHRhbnRlLWxpcXVpZG8tYnVjYXRvIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDI0NDkyMjk2NjM0OSIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tNTAlCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDI0NDkyMjk2NjM0OSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvZGlzaW5mZXR0YW50ZS1saXF1aWRvLWJ1Y2F0byIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjQ0OTIyOTY2MzQ5IiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjQ0OTIyOTY2MzQ5IEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjQ0OTIyOTY2MzQ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJU0lORkVUVEFOVEUgTElRVUlETyBCVUNBVE8gCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBkaXNpbmZldHRhbnRlIGxpcXVpZG8gYnVjYXRvCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAgcHJpY2UtLW9uLXNhbGUiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqw2LDk5CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDYsOTkKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDE0LDAwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjQ0OTIyOTY2MzQ5IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUyMzIzMjUyOTk0MzgxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyNDQ5MjI5NjYzNDktc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDI0NDkyMjk2NjM0OS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyNDQ5MjI5NjYzNDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDI0NDkyMjk2NjM0OSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMjQ0OTIyOTY2MzQ5IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMjQ0OTIyOTY2MzQ5IiBkYXRhLXZhcmlhbnQtaWQ9IjUyMzIzMjUyOTk0MzgxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9kaXNpbmZldHRhbnRlLWxpcXVpZG8tYnVjYXRvIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJU0lORkVUVEFOVEUgTElRVUlETyBCVUNBVE8KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2luZmV0dGFudGUgbGlxdWlkbyBidWNhdG8KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+SWwgdHVvIGJ1Y2F0byBzZW1wcmUgZGlzaW5mZXR0YXRvIHF1YW5kbyBuZSBoYWkgYmlzb2dubyE8L3NwYW4+PC9saT48bGk+PHNwYW4+RWxpbWluYSBiYXR0ZXJpIGUgZnVuZ2hpIGFuY2hlIGEgIGJhc3NlIHRlbXBlcmF0dXJlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5HYXJhbnRpc2NlIHVuIGJ1Y2F0byBzZW1wcmUgcHVsaXRvLCBmcmVzY28gZSBkaXNpbmZldHRhdG8sIG9nbmkgdm9sdGEgY2hlIHZ1b2kuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDI0NDkyMjk2NjM0OSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MjMyMzI1Mjk5NDM4MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyNDQ5MjI5NjYzNDktc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjQ0OTIyOTY2MzQ5LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDI0NDkyMjk2NjM0OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDYsOTk8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMjQ0OTIyOTY2MzQ5IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1mZWV0LWRlby0xMDAtbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdGRUVUwqAgREVPIDEwMCBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM2OTM4VycsCiAgICAgIHByaWNlOiAn4oKsNSw5OScsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0JsYWNrIEZyaWRheSAyMDI1JywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdEZW9kb3JhbnRlJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LWZlZXQtZGVvLTEwMC1tbC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIkZFRVTCoCBERU8gMTAwIE1MIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzNjkzOFciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNSw5OSIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIkRlb2RvcmFudGUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmxhY2stZnJpZGF5LTIwMjUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwMjU4ODAyNTczNjQ1Ij4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83Nzk0OF8xXzNlNDk1MmQxLWY3MWMtNDc2OS05NjNhLTEyNDljMDNlM2IxYy5qcGc/dj0xNzU3NDAxNTk2JndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc3OTQ4XzFfM2U0OTUyZDEtZjcxYy00NzY5LTk2M2EtMTI0OWMwM2UzYjFjLmpwZz92PTE3NTc0MDE1OTYmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzc5NDhfMV8zZTQ5NTJkMS1mNzFjLTQ3NjktOTYzYS0xMjQ5YzAzZTNiMWMuanBnP3Y9MTc1NzQwMTU5NiZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83Nzk0OF8xXzNlNDk1MmQxLWY3MWMtNDc2OS05NjNhLTEyNDljMDNlM2IxYy5qcGc/dj0xNzU3NDAxNTk2JndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc3OTQ4XzFfM2U0OTUyZDEtZjcxYy00NzY5LTk2M2EtMTI0OWMwM2UzYjFjLmpwZz92PTE3NTc0MDE1OTYmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzc5NDhfMV8zZTQ5NTJkMS1mNzFjLTQ3NjktOTYzYS0xMjQ5YzAzZTNiMWMuanBnP3Y9MTc1NzQwMTU5NiZ3aWR0aD0xMDY2IDEwNjZ3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc3OTQ4XzFfM2U0OTUyZDEtZjcxYy00NzY5LTk2M2EtMTI0OWMwM2UzYjFjLmpwZz92PTE3NTc0MDE1OTYgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzc5NDhfMV8zZTQ5NTJkMS1mNzFjLTQ3NjktOTYzYS0xMjQ5YzAzZTNiMWMuanBnP3Y9MTc1NzQwMTU5NiZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJGRUVUwqAgREVPIDEwMCBNTCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMjU4ODAyNTczNjQ1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMjU4ODAyNTczNjQ1IiBkYXRhLXZhcmlhbnQtaWQ9IjUyMzcwNzE4MDk3NzQxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9mZWV0LWRlby0xMDAtbWwiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjU4ODAyNTczNjQ1IiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01MiUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjU4ODAyNTczNjQ1IiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9mZWV0LWRlby0xMDAtbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDI1ODgwMjU3MzY0NSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDI1ODgwMjU3MzY0NSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDI1ODgwMjU3MzY0NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnRpdHJhc3BpcmFudGUgUGllZGkgMjRIIEFudGlvZG9yZSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEZFRVTCoCBERU8gMTAwIE1MCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAgcHJpY2UtLW9uLXNhbGUiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqw1LDk5CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDUsOTkKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDEyLDUwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjU4ODAyNTczNjQ1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUyMzcwNzE4MDk3NzQxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyNTg4MDI1NzM2NDUtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDI1ODgwMjU3MzY0NS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyNTg4MDI1NzM2NDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDI1ODgwMjU3MzY0NSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMjU4ODAyNTczNjQ1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMjU4ODAyNTczNjQ1IiBkYXRhLXZhcmlhbnQtaWQ9IjUyMzcwNzE4MDk3NzQxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9mZWV0LWRlby0xMDAtbWwiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW50aXRyYXNwaXJhbnRlIFBpZWRpIDI0SCBBbnRpb2RvcmUKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEZFRVTCoCBERU8gMTAwIE1MCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPlJlZ29sYSBsYSB0cmFzcGlyYXppb25lIHBlciAyNCBvcmU8L3NwYW4+PC9saT48bGk+PHNwYW4+UmlkdWNlIGwndW1pZGl0w6AgZSBsYSBzZW5zYXppb25lIGRpIG1hY2VyYXppb25lPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkZsYWNvbmUgY29tcHJlc3NvIGRhIDEwMCBtbDwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyNTg4MDI1NzM2NDUiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTIzNzA3MTgwOTc3NDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjU4ODAyNTczNjQ1LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDI1ODgwMjU3MzY0NS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyNTg4MDI1NzM2NDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw1LDk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDI1ODgwMjU3MzY0NSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1qb2ludHMtYnJ1c2gtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdKT0lOVFMgQlJVU0gnLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzNzA3OVcnLAogICAgICBwcmljZTogJ+KCrDQsOTknLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdBY2Nlc3NvcmkgcGVyIGxhIGNhc2EnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ0FjY2Vzc29yaSBwZXIgbGEgY2FzYScsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1qb2ludHMtYnJ1c2gtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJKT0lOVFMgQlJVU0giLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM3MDc5VyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw0LDk5IiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiQWNjZXNzb3JpIHBlciBsYSBjYXNhIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImhvdXNlaG9sZC1hY2Nlc3NvcmllcyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTAyODExMDkwNjE5NjUiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzUxOTAyXzFfOWNiYzNlYWQtMWY3OC00MzE1LWI2YzMtNGZlMGM4YWMzNzI0LmpwZz92PTE3NTk5MTk1OTYmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTE5MDJfMV85Y2JjM2VhZC0xZjc4LTQzMTUtYjZjMy00ZmUwYzhhYzM3MjQuanBnP3Y9MTc1OTkxOTU5NiZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81MTkwMl8xXzljYmMzZWFkLTFmNzgtNDMxNS1iNmMzLTRmZTBjOGFjMzcyNC5qcGc/dj0xNzU5OTE5NTk2JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzUxOTAyXzFfOWNiYzNlYWQtMWY3OC00MzE1LWI2YzMtNGZlMGM4YWMzNzI0LmpwZz92PTE3NTk5MTk1OTYmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTE5MDJfMV85Y2JjM2VhZC0xZjc4LTQzMTUtYjZjMy00ZmUwYzhhYzM3MjQuanBnP3Y9MTc1OTkxOTU5NiZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81MTkwMl8xXzljYmMzZWFkLTFmNzgtNDMxNS1iNmMzLTRmZTBjOGFjMzcyNC5qcGc/dj0xNzU5OTE5NTk2IDk5OHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTE5MDJfMV85Y2JjM2VhZC0xZjc4LTQzMTUtYjZjMy00ZmUwYzhhYzM3MjQuanBnP3Y9MTc1OTkxOTU5NiZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJKT0lOVFMgQlJVU0giCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9Ijk5OCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAyODExMDkwNjE5NjUiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAyODExMDkwNjE5NjUiIGRhdGEtdmFyaWFudC1pZD0iNTI0NDk2Nzg2MjMwNTMiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2pvaW50cy1icnVzaCI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyODExMDkwNjE5NjUiIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSI+LTUwJQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmhvbWUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyODExMDkwNjE5NjUiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2pvaW50cy1icnVzaCIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjgxMTA5MDYxOTY1IiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjgxMTA5MDYxOTY1IEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMjgxMTA5MDYxOTY1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYXp6b2xhIFB1bGl6aWEgU3BlY2lhbGUgRnVnaGUgUGlhc3RyZWxsZSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEpPSU5UUyBCUlVTSAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNCw5OQogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw0LDk5CiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqw5LDkwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjgxMTA5MDYxOTY1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUyNDQ5Njc4NjIzMDUzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyODExMDkwNjE5NjUtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDI4MTEwOTA2MTk2NS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyODExMDkwNjE5NjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDI4MTEwOTA2MTk2NSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMjgxMTA5MDYxOTY1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMjgxMTA5MDYxOTY1IiBkYXRhLXZhcmlhbnQtaWQ9IjUyNDQ5Njc4NjIzMDUzIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9qb2ludHMtYnJ1c2giPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BhenpvbGEgUHVsaXppYSBTcGVjaWFsZSBGdWdoZSBQaWFzdHJlbGxlCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBKT0lOVFMgQlJVU0gKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+RmFjaWxpdGEgbGEgcHVsaXppYSBkZWxsZSBmdWdoZSBkZWxsZSBwaWFzdHJlbGxlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5VbiBkZXNpZ24gYXBwb3NpdGFtZW50ZSBzdHVkaWF0byBwZXIgcmFnZ2l1bmdlcmUgbGUgem9uZSBwacO5IGRpZmZpY2lsaS48L3NwYW4+PC9saT48bGk+PHNwYW4+TGUgc3VlIGZpYnJlIGluIG55bG9uIHBlcm1ldHRvbm8gZGkgcmltdW92ZXJlIGVmZmljYWNlbWVudGUgbG8gc3BvcmNvLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyODExMDkwNjE5NjUiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTI0NDk2Nzg2MjMwNTMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjgxMTA5MDYxOTY1LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDI4MTEwOTA2MTk2NS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyODExMDkwNjE5NjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw0LDk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDI4MTEwOTA2MTk2NSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1wZXJmZWN0LWNvdmVyYWdlLWxpcXVpZC1jb25jZWFsZXIwMi10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1BFUkZFQ1QgQ09WRVJBR0UgTElRVUlEIENPTkNFQUxFUjAyJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwMjMyOThXJywKICAgICAgcHJpY2U6ICfigqw2LDUwJywKICAgICAgaXRlbV9icmFuZDogJ0Zsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ0Zsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0JsYWNrIEZyaWRheSAyMDI1JywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdUcnVjY28gdmlzbycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1wZXJmZWN0LWNvdmVyYWdlLWxpcXVpZC1jb25jZWFsZXIwMi10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIlBFUkZFQ1QgQ09WRVJBR0UgTElRVUlEIENPTkNFQUxFUjAyIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAyMzI5OFciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNiw1MCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIkZsb3JtYXIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiVHJ1Y2NvIHZpc28iLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmxhY2stZnJpZGF5LTIwMjUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwMDIzNDg0MTk1MTQ5Ij4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQ0ODk0XzFfZmU4Y2YzMGYtM2RhZi00OTU1LTg2ZmMtNGMwOWE5NmFiOTFjLmpwZz92PTE3NDM0OTU4Mjcmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0NDg5NF8xX2ZlOGNmMzBmLTNkYWYtNDk1NS04NmZjLTRjMDlhOTZhYjkxYy5qcGc/dj0xNzQzNDk1ODI3JndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDQ4OTRfMV9mZThjZjMwZi0zZGFmLTQ5NTUtODZmYy00YzA5YTk2YWI5MWMuanBnP3Y9MTc0MzQ5NTgyNyZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQ0ODk0XzFfZmU4Y2YzMGYtM2RhZi00OTU1LTg2ZmMtNGMwOWE5NmFiOTFjLmpwZz92PTE3NDM0OTU4Mjcmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0NDg5NF8xX2ZlOGNmMzBmLTNkYWYtNDk1NS04NmZjLTRjMDlhOTZhYjkxYy5qcGc/dj0xNzQzNDk1ODI3JndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDQ4OTRfMV9mZThjZjMwZi0zZGFmLTQ5NTUtODZmYy00YzA5YTk2YWI5MWMuanBnP3Y9MTc0MzQ5NTgyNyA5OTh3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDQ4OTRfMV9mZThjZjMwZi0zZGFmLTQ5NTUtODZmYy00YzA5YTk2YWI5MWMuanBnP3Y9MTc0MzQ5NTgyNyZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBDb3JyZXR0b3JlIExpcXVpZG8gQ29wZXJ0dXJhIFBlcmZldHRhIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9Ijk5OCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDIzNDg0MTk1MTQ5IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDIzNDg0MTk1MTQ5IiBkYXRhLXZhcmlhbnQtaWQ9IjUxMzgzODEzODAwMjY5IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9wZXJmZWN0LWNvdmVyYWdlLWxpcXVpZC1jb25jZWFsZXIwMiI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwMjM0ODQxOTUxNDkiIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSI+LTQzJQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvcm1hcgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDAyMzQ4NDE5NTE0OSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcGVyZmVjdC1jb3ZlcmFnZS1saXF1aWQtY29uY2VhbGVyMDIiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDAyMzQ4NDE5NTE0OSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDAyMzQ4NDE5NTE0OSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDAyMzQ4NDE5NTE0OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JyZXR0b3JlIExpcXVpZG8gQ29wZXJ0dXJhIFBlcmZldHRhICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFBFUkZFQ1QgQ09WRVJBR0UgTElRVUlEIENPTkNFQUxFUjAyCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAgcHJpY2UtLW9uLXNhbGUiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqw2LDUwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDYsNTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDExLDUwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDIzNDg0MTk1MTQ5IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUxMzgzODEzODAwMjY5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwMjM0ODQxOTUxNDktc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDAyMzQ4NDE5NTE0OS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwMjM0ODQxOTUxNDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDAyMzQ4NDE5NTE0OSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDIzNDg0MTk1MTQ5IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDIzNDg0MTk1MTQ5IiBkYXRhLXZhcmlhbnQtaWQ9IjUxMzgzODEzODAwMjY5IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9wZXJmZWN0LWNvdmVyYWdlLWxpcXVpZC1jb25jZWFsZXIwMiI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JyZXR0b3JlIExpcXVpZG8gQ29wZXJ0dXJhIFBlcmZldHRhIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUEVSRkVDVCBDT1ZFUkFHRSBMSVFVSUQgQ09OQ0VBTEVSMDIKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+Q29ycmVnZ2UgbGUgaW1wZXJmZXppb25pIGUgcmlkdWNlIGJvcnNlIGUgb2NjaGlhaWUuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkxhIHN1YSBwdW50YSBkYWxsYSBzcHVnbmEgbW9yYmlkYSBmYWNpbGl0YSBsYSBwcmVjaXNpb25lLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5Gb3JtdWxhIGEgYmFzZSBkaSBvbGlvIGRpIG5vY2kgZGkgbWFjYWRhbWlhLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwMjM0ODQxOTUxNDkiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTEzODM4MTM4MDAyNjkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDIzNDg0MTk1MTQ5LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDAyMzQ4NDE5NTE0OS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwMjM0ODQxOTUxNDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw2LDUwPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDAyMzQ4NDE5NTE0OSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==