function spy_f41514945a6c34a4ddb9de51d7a04fe5(){return Base64.decode('CjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzcHg7IHJpZ2h0OjIwMHB4OyI+CiAgICA8L2Rpdj4KPGRpdiBjbGFzcz0iaGVhZGVyX3dyYXBwZXIgcm93Ij4KICAgIDxkaXYgaWQ9Im1oZWFkZXIiIGNsYXNzPSJ0d2VsdmUgY29sdW1ucyBtb2JpbGUtZm91ciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWlnaHQgY2VudGVyZWQgY29sdW1ucyBtb2JpbGUtdGhyZWUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmluZSBjb2x1bW5zIG1vYmlsZS1mb3VyIGxvZ29kaXYgcm93IiBzdHlsZT0ibWF4LXdpZHRoOjQwMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2V2ZW4gY29sdW1ucyBtb2JpbGUtZm91ciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iPjxpbWcgc3JjPSIvaW1hZ2VzL3Zsb2dvLnBuZyI+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpdmUgY29sdW1ucyBtb2JpbGUtZm91ciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoNT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3RfZnJlZV9waG9uZSI+PGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDU+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aHJlZSBjb2x1bW5zIHNlYXJjaGNvbHVtbnMgbW9iaWxlLWZvdXIgZW5kIiBzdHlsZT0icGFkZGluZy1yaWdodDowcHg7ICI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmVpbmZvd3JhcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InR3byBtb2JpbGUtb25lIGNvbHVtbnMiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MHB4OyAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluaWNhcnQiPjxkaXYgY2xhc3M9Im1pbmljYXJ0Y29udGVudCI+CiAgICA8aW1nIHNyYz0iL2ltYWdlcy9jYXJ0LnBuZyIgY2xhc3M9Im1pbmljYXJ0aW1nIj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pY2FydGluZm8iPgoKICAgICAgICA8c3BhbiBjbGFzcz0ibWNfdGV4dCBlbXB0eV9jYXJ0X3RleHQiPtCa0L7RgNC30LjQvdCwINC/0YPRgdGC0LAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CjwvZGl2PgoKPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlaWdodCBvZmZzZXQtYnktdHdvIGVuZCBjb2x1bW5zIHNlYXJjaGNvbHVtbnMgbW9iaWxlLWZvdXIiPgoKICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJxdWlja2xpbmtzIj4gPGEgaHJlZj0iL29yZGVyL2NhbGMiPtCU0L7RgdGC0LDQstC60LAg0Lgg0L7Qv9C70LDRgtCwPC9hPiAmbmJzcDsKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvc2l0ZS9zaXplcyI+0KLQsNCx0LvQuNGG0LAg0YDQsNC30LzQtdGA0L7QsjwvYT4mbmJzcDsKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvc2l0ZS9nb29kT3BpbmlvbiI+0J7RgtC30YvQstGLICg0ODg5KTwvYT4gJm5ic3A7CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2tvbnRha3R5LXBhZ2UtMi5odG1sIj7QmtC+0L3RgtCw0LrRgtGLPC9hPiZuYnNwOwogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJmZWVkYmFjayIgY2xhc3M9ImFqYXgiIG9uQ2xpY2s9InNob3dGZWVkYmFja0JveCgpOyByZXR1cm4gZmFsc2U7Ij7QntCx0YDQsNGC0L3QsNGPINGB0LLRj9C30Yw8L2E+Jm5ic3A7CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImNhbGxtYW5hZ2VyIiBjbGFzcz0iYWpheCIgb25DbGljaz0ic2hvd0NhbGxSZXF1ZXN0Qm94KCk7IHJldHVybiBmYWxzZTsiPtCX0LDQutCw0LfQsNGC0YwKICAgICAgICAgICAgICAgICAgICAgICAg0LfQstC+0L3QvtC6INC80LXQvdC10LTQttC10YDQsDwvYT4KICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlaWdodCBvZmZzZXQtYnktdHdvIGVuZCBjb2x1bW5zIG1vYmlsZS1mb3VyIHNlYXJjaGZpZWxkX3dyYXBwZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IGNvbGxhcHNlIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSIvc2l0ZS9zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuaW5lIGNvbHVtbnMgbW9iaWxlLXRocmVlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJGaWx0ZXJbcXVlcnldIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aHJlZSBjb2x1bW5zIG1vYmlsZS1vbmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgc3R5bGU9Im1heC13aWR0aDoxMDBweCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icG9zdGZpeCBzaXRlX3NlYXJjaF9iIHNlY29uZGFyeSBidXR0b24gcmFkaXVzIiB2YWx1ZT0i0J3QsNC50YLQuCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbl9jb250YWN0X2ZyZWVfcGhvbmUgdGhyZWUgY29sdW1ucyBlbmQiPjwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IGNsYXNzPSJ0d2VsdmUgY29sdW1ucyBtb2JpbGUtZm91ciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wX21lbnVfbmF2Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3QtY2F0Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii96aGVuc2theWEtb2RlemhkYS1jYXQtMS5odG1sIj7QlNC70Y8g0LbQtdC90YnQuNC9PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9tdXpoc2theWEtb2RlemhkYS1jYXQtNi5odG1sIj7QlNC70Y8g0LzRg9C20YfQuNC9PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kZXRza2F5YS1vZGV6aGRhLWNhdC0xMS5odG1sIj7QlNC70Y8g0LTQtdGC0LXQuTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvemhlbnNrb2UtYmVsZS1jYXQtNDguaHRtbCI+0J/Qu9GP0LbQvdCw0Y8g0LzQvtC00LAg0Lgg0LHQtdC70YzQtTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvc3BvcnQtY2F0LTMwNi5odG1sIj7QodC/0L7RgNGCPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9zdW1raS1pLWNoZW1vZGFueS1jYXQtNDUuaHRtbCI+0KHRg9C80LrQuDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvY2hhc3ktY2F0LTE0NzkuaHRtbCI+0KfQsNGB0Ys8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYXN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvemhlbnNrYXlhLW9kZXpoZGEtY2F0LTQzNC5odG1sIj7QkdC+0LvRjNGI0LjQtSDRgNCw0LfQvNC10YDRizwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJyb3cgYnJhbmRzX3JvdyI+CiAgICA8ZGl2IGNsYXNzPSJ0d2VsdmUgY29sdW1ucyBtb2JpbGUtZm91ciI+CgogICAgICAgIDxkaXYgY2xhc3M9ImJyYW5kc19pbmRleCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICDQkdGA0LXQvdC00Ysg0L/QviDQsNC70YTQsNCy0LjRgtGDOgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3QtY2F0Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9icmFuZHMvaW5kZXguaHRtbCMxPGJyPjkiPjEtOTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjQSI+QTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjQiI+QjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjQyI+QzwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjRCI+RDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjRSI+RTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjRiI+RjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjRyI+RzwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjSCI+SDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjSSI+STwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjSiI+SjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjSyI+SzwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjTCI+TDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjTSI+TTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjTiI+TjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjTyI+TzwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjUCI+UDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjUSI+UTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjUiI+UjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjUyI+UzwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjVCI+VDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjVSI+VTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjViI+VjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjVyI+VzwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjWCI+WDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjWSI+WTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0LWNhdCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYnJhbmRzL2luZGV4Lmh0bWwjWiI+WjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CgoKPGEgaWQ9IlNjcm9sbFRvcF8xIiBjbGFzcz0idG8tdG9wIiBocmVmPSIjIj5eINCd0LDQstC10YDRhTwvYT4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGFqYXhCcmFuZEluZGV4KCk7CiAgICB2YXIgRmxvYXRIZWFkZXIgPSB7CiAgICAgICAgZGlzcGxheUZsb2F0SGVhZGVyOnRydWUsCiAgICAgICAgaGVhZGVyRWwgICAgICAgICAgOltdLAogICAgICAgIFNjcm9sbFRvcCAgICAgICAgIDpbXSwKICAgICAgICBiaWdoZWFkZXJFbGVtZW50cyA6W10sCiAgICAgICAgaW5pdCAgICAgICAgICAgICAgOmZ1bmN0aW9uICgpCiAgICAgICAgewogICAgICAgICAgICBGbG9hdEhlYWRlci5iaWdoZWFkZXJFbGVtZW50cyA9ICQoIi5waG9uZV9pbmZvLC5xdWlja2xpbmtzLC5zbG9nLC5jb250YWN0X3Bob25lLC5jb250YWN0X2VtbCIpOwogICAgICAgICAgICBGbG9hdEhlYWRlci5oZWFkZXJFbCA9ICQoJyNtaGVhZGVyJyk7CiAgICAgICAgICAgIEZsb2F0SGVhZGVyLlNjcm9sbFRvcCA9ICQoJyNTY3JvbGxUb3BfMScpOwogICAgICAgICAgICB3aW5kb3cub25zY3JvbGwgPSBmdW5jdGlvbiAoZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRmxvYXRIZWFkZXIucHJvY2VzcygpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdpbmRvdy5vbnJlc2l6ZSA9IGZ1bmN0aW9uIChlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBGbG9hdEhlYWRlci5wcm9jZXNzKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHByb2Nlc3MgICAgICAgICAgIDpmdW5jdGlvbiAoKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEZsb2F0SGVhZGVyLmRpc3BsYXlGbG9hdEhlYWRlciAmJiAod2luZG93LmlubmVyV2lkdGggPiA3OTkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgeU9mZiA9IChkb2N1bWVudC5hbGwgPyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA6IHdpbmRvdy5wYWdlWU9mZnNldCk7CiAgICAgICAgICAgICAgICBpZiAoeU9mZiA+IDQwMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBGbG9hdEhlYWRlci5zaG93KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRmxvYXRIZWFkZXIuaGlkZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRmxvYXRIZWFkZXIuaGlkZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBzaG93ICAgICAgICAgICAgICA6ZnVuY3Rpb24gKCkKICAgICAgICB7CiAgICAgICAgICAgIEZsb2F0SGVhZGVyLmhlYWRlckVsLmFkZENsYXNzKCdtaW5paGVhZGVyJyk7CiAgICAgICAgICAgICQoIi5sb2dvZGl2LC5zZWFyY2hjb2x1bW5zICIpLmhpZGUoKTsKICAgICAgICAgICAgJCgiLm1pbmloZWFkZXJfbG9nbyIpLnNob3coKTsKCiAgICAgICAgICAgICQoIi5zZWFyY2hmaWVsZF93cmFwcGVyIikucmVtb3ZlQ2xhc3MoIm9mZnNldC1ieS10d28iKS5yZW1vdmVDbGFzcygiZWlnaHQiKS5hZGRDbGFzcygnc2l4Jyk7CiAgICAgICAgICAgIEZsb2F0SGVhZGVyLlNjcm9sbFRvcC5zaG93KCk7CiAgICAgICAgfSwKICAgICAgICBoaWRlICAgICAgICAgICAgICA6ZnVuY3Rpb24gKCkKICAgICAgICB7CiAgICAgICAgICAgIEZsb2F0SGVhZGVyLmhlYWRlckVsLnJlbW92ZUNsYXNzKCdtaW5paGVhZGVyJyk7CiAgICAgICAgICAgICQoIi5sb2dvZGl2LC5zZWFyY2hjb2x1bW5zICIpLnNob3coKTsKICAgICAgICAgICAgJCgiLm1pbmloZWFkZXJfbG9nbyIpLmhpZGUoKTsKICAgICAgICAgICAgJCgiLnNlYXJjaGZpZWxkX3dyYXBwZXIiKS5hZGRDbGFzcygib2Zmc2V0LWJ5LXR3byIpLnJlbW92ZUNsYXNzKCJzaXgiKS5hZGRDbGFzcygnZWlnaHQnKTsKICAgICAgICAgICAgRmxvYXRIZWFkZXIuU2Nyb2xsVG9wLmhpZGUoKTsKICAgICAgICB9LAogICAgICAgIGRpc2FibGUgICAgICAgICAgIDpmdW5jdGlvbiAoKQogICAgICAgIHsKICAgICAgICAgICAgRmxvYXRIZWFkZXIuZGlzcGxheUZsb2F0SGVhZGVyID0gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgRmxvYXRIZWFkZXIuaW5pdCgpOwo8L3NjcmlwdD4K');}