-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbadoo.user.js
21 lines (18 loc) · 12.3 KB
/
badoo.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// ==UserScript==
// @name BadooNearbyAutolike
// @author nemanjan00
// @include https://badoo.com/*
// @include https://*.badoo.com/*
// @include http://badoo.com/*
// @include http://*.badoo.com/*
// @include https://blendr.com/*
// @include https://*.blendr.com/*
// @include http://blendr.com/*
// @include http://*.blendr.com/*
// @downloadURL https://raw.githubusercontent.com/nemanjan00/BadooNearbyLike/master/badoo.user.js
// @namespace https://github.com/nemanjan00/BadooNearbyAutolike
// @updateURL https://raw.githubusercontent.com/nemanjan00/BadooNearbyLike/master/badoo.user.js
// @version 9
// ==/UserScript==
var code = atob("d2luZG93Lm9wZW5lciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJvcGVuZXIiKSB8fCAiS2FrbyBvdm8gcmFkaSwgamVzbW8gbGkgc2FkIHUgdmV6aT8gOjMiOwoKd2luZG93LmJvdCA9IHsKCWdldENoYXQ6IGZ1bmN0aW9uKGlkKXsKCQl2YXIgdXJsID0gIi9hcGkucGh0bWw/U0VSVkVSX09QRU5fTUVTU0VOR0VSIjsKCgkJdmFyIGJvZHkgPSB7InZlcnNpb24iOjEsIm1lc3NhZ2VfdHlwZSI6NDY4LCJtZXNzYWdlX2lkIjo0MSwiYm9keSI6W3sibWVzc2FnZV90eXBlIjo0NjgsInNlcnZlcl9vcGVuX21lc3NlbmdlciI6eyJjb250YWN0c191c2VyX2ZpZWxkX2ZpbHRlciI6eyJwcm9qZWN0aW9uIjpbMzMwLDIwMCw3MDAsNTgwLDY0MCw2MDAsNjEwLDI1MCwzNDAsMjgwLDIzMCw2NTAsODAwLDUwMV0sInByb2ZpbGVfcGhvdG9fc2l6ZSI6eyJzcXVhcmVfZmFjZV9waG90b19zaXplIjp7IndpZHRoIjoxMDAsImhlaWdodCI6MTAwfX19LCJjaGF0X3VzZXJfZmllbGRfZmlsdGVyIjp7InByb2plY3Rpb24iOlszMzAsMzMxLDIwMCw3MDAsNTgwLDY0MCw2MDAsNjEwLDI1MCwzNDAsMjgwLDI5MCwyOTEsMzEwLDMwMSwzMDIsNjgwLDMwMywzMDQsMjEwLDIzMCw3MzEsNjUwLDU3MF0sInByb2ZpbGVfcGhvdG9fc2l6ZSI6eyJzcXVhcmVfZmFjZV9waG90b19zaXplIjp7IndpZHRoIjozMDAsImhlaWdodCI6MzAwfX19LCJpbml0aWFsX3NjcmVlbl91c2VyX2ZpZWxkX2ZpbHRlciI6eyJwcm9qZWN0aW9uIjpbNDEwLDQ5MCw0NzEsODAwXSwidW5pdGVkX2ZyaWVuZHNfZmlsdGVyIjpbeyJzZWN0aW9uX3R5cGUiOjF9XX0sInVzZXJfaWQiOmlkfX1dfTsKCgkJdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKCQkJYm90Ll9zZW5kUmVxdWVzdCh1cmwsIGJvZHkpLnRoZW4oZnVuY3Rpb24oY2hhdCl7CgkJCQljaGF0ID0gY2hhdC5ib2R5WzBdLmNsaWVudF9vcGVuX21lc3Nlbmdlci5hY3RpdmVfY2hhdC5pbml0aWFsX2NoYXRfc2NyZWVuOwoJCQkJCgkJCQlyZXNvbHZlKGNoYXQgIT0gdW5kZWZpbmVkICYmIGNoYXQudHlwZSA9PSAyKTsKCQkJfSk7CgkJfSk7CgkJcmV0dXJuIHByb21pc2U7Cgl9LAoJc2VuZE1lc3NhZ2U6IGZ1bmN0aW9uKGlkKXsKCQl2YXIgdXJsID0gIi9hcGkucGh0bWw/U0VSVkVSX1NFTkRfQ0hBVF9NRVNTQUdFIjsKCgkJdmFyIGJvZHkgPSB7InZlcnNpb24iOjEsIm1lc3NhZ2VfdHlwZSI6MTA0LCJtZXNzYWdlX2lkIjoxNCwiYm9keSI6W3sibWVzc2FnZV90eXBlIjoxMDQsImNoYXRfbWVzc2FnZSI6eyJtc3NnIjp3aW5kb3cub3BlbmVyLCJtZXNzYWdlX3R5cGUiOjEsInVpZCI6IjE0ODQxODc5Nzg1MjAiLCJmcm9tX3BlcnNvbl9pZCI6IjIyNzU2MjIyNCIsInRvX3BlcnNvbl9pZCI6aWQsInJlYWQiOmZhbHNlLCJjaGF0X2Jsb2NrX2lkIjoyfX1dfTsKCgkJdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKCQkJYm90Ll9zZW5kUmVxdWVzdCh1cmwsIGJvZHkpLnRoZW4oZnVuY3Rpb24odXNlcil7CgkJCQlyZXNvbHZlKHRydWUpOwoJCQl9KTsKCQl9KTsKCQlyZXR1cm4gcHJvbWlzZTsKCX0sCglnZXRVc2VyOiBmdW5jdGlvbihpZCl7CgkJdmFyIHVybCA9ICIvYXBpLnBodG1sP1NFUlZFUl9HRVRfVVNFUiI7CgoJCXZhciBib2R5ID0geyIkZ3BiIjoiYmFkb28uYm1hLkJhZG9vTWVzc2FnZSIsInZlcnNpb24iOjEsIm1lc3NhZ2VfdHlwZSI6NDAzLCJtZXNzYWdlX2lkIjo2LCJib2R5IjpbeyIkZ3BiIjoiYmFkb28uYm1hLk1lc3NhZ2VCb2R5IiwibWVzc2FnZV90eXBlIjo0MDMsInNlcnZlcl9nZXRfdXNlciI6eyIkZ3BiIjoiYmFkb28uYm1hLlNlcnZlckdldFVzZXIiLCJ1c2VyX2lkIjppZCwiY2xpZW50X3NvdXJjZSI6MiwidXNlcl9maWVsZF9maWx0ZXIiOnsiJGdwYiI6ImJhZG9vLmJtYS5Vc2VyRmllbGRGaWx0ZXIiLCJwcm9qZWN0aW9uIjpbODAwLDM3MCwyMDAsMjMwLDIxMCwzMCwzNjAsOTMsMzAxLDMwMiw2ODAsMzAzLDMwNCwyNTAsNjAwLDI5MCwyOTEsNjEwLDMxMCw2OTAsNjkxLDY5Miw2OTMsNDQwLDMxMSw0OTAsNjYwLDY1MCw0NjAsNzUwLDczMSw3MzAsMTAwLDM0MCw1ODAsNTcwLDQxMCw0MjAsNDgwLDkwLDQ3MCw3NDIsNzQxLDc0MCw1NTAsNjgxLDY3MCw4NzAsMzMwLDMzMSwyNjAsNTMwLDU0MF0sInJlcXVlc3RfYWxidW1zIjpbeyIkZ3BiIjoiYmFkb28uYm1hLlNlcnZlckdldEFsYnVtIiwicHJldmlld19zaXplIjp7IiRncGIiOiJiYWRvby5ibWEuUGhvdG9TaXplIiwiaGVpZ2h0IjoxODAsIndpZHRoIjoxODB9LCJhbGJ1bV90eXBlIjoyfSx7IiRncGIiOiJiYWRvby5ibWEuU2VydmVyR2V0QWxidW0iLCJwcmV2aWV3X3NpemUiOnsiJGdwYiI6ImJhZG9vLmJtYS5QaG90b1NpemUiLCJoZWlnaHQiOjE4MCwid2lkdGgiOjE4MH0sImFsYnVtX3R5cGUiOjR9XSwidW5pdGVkX2ZyaWVuZHNfZmlsdGVyIjpbeyIkZ3BiIjoiYmFkb28uYm1hLlVuaXRlZEZyaWVuZHNGaWx0ZXIiLCJjb3VudCI6NSwic2VjdGlvbl90eXBlIjozfSx7IiRncGIiOiJiYWRvby5ibWEuVW5pdGVkRnJpZW5kc0ZpbHRlciIsImNvdW50Ijo1LCJzZWN0aW9uX3R5cGUiOjF9LHsiJGdwYiI6ImJhZG9vLmJtYS5Vbml0ZWRGcmllbmRzRmlsdGVyIiwiY291bnQiOjUsInNlY3Rpb25fdHlwZSI6Mn1dLCJyZXF1ZXN0X2ludGVyZXN0cyI6eyIkZ3BiIjoiYmFkb28uYm1hLlNlcnZlckludGVyZXN0c0dldCIsInVzZXJfaWQiOmlkLCJsaW1pdCI6NTAwfX0sInZpc2l0aW5nX3NvdXJjZSI6eyIkZ3BiIjoiYmFkb28uYm1hLlByb2ZpbGVWaXNpdGluZ1NvdXJjZSIsInBlcnNvbl9pZCI6aWQsInNvdXJjZV9mb2xkZXIiOjI1LCJ2aXNpdGluZ19zb3VyY2UiOjJ9fX1dfTsKCgkJdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKCQkJYm90Ll9zZW5kUmVxdWVzdCh1cmwsIGJvZHkpLnRoZW4oZnVuY3Rpb24odXNlcil7CgkJCQl1c2VyID0gdXNlci5ib2R5WzBdLnVzZXI7CgoJCQkJcmVzb2x2ZSh1c2VyKTsKCQkJfSk7CgkJfSk7CgkJcmV0dXJuIHByb21pc2U7Cgl9LAoKCWdldFVzZXJzOiBmdW5jdGlvbihwYWdlID0gMCl7CgkJdmFyIHVybCA9ICIvYXBpLnBodG1sP1NFUlZFUl9HRVRfVVNFUl9MSVNUX1dJVEhfU0VUVElOR1MiOwoKCQlib2R5ID0geyJ2ZXJzaW9uIjoxLCJtZXNzYWdlX3R5cGUiOjQxNiwibWVzc2FnZV9pZCI6MjQsImJvZHkiOlt7Im1lc3NhZ2VfdHlwZSI6NTAyLCJzZXJ2ZXJfZ2V0X3NlYXJjaF9zZXR0aW5ncyI6eyJjb250ZXh0X3R5cGUiOjJ9fSx7Im1lc3NhZ2VfdHlwZSI6MjQ1LCJzZXJ2ZXJfZ2V0X3VzZXJfbGlzdCI6eyJmb2xkZXJfaWQiOjI1LCJ1c2VyX2ZpZWxkX2ZpbHRlciI6eyJwcm9qZWN0aW9uIjpbMjUwLDIwMCwyMTAsMjMwLDMxMCwzMzAsNTMwLDU0MCwzNDAsMzMxLDY4MCwyOTAsMjkxLDMwMSwzMDMsMzA0LDMwMiwyNjBdLCJwcm9maWxlX3Bob3RvX3NpemUiOnsic3F1YXJlX2ZhY2VfcGhvdG9fc2l6ZSI6eyJ3aWR0aCI6MTgwLCJoZWlnaHQiOjE4MH19fSwib2Zmc2V0IjpwYWdlKjEwMCwicHJlZmVycmVkX2NvdW50IjoxMDAsInByb21vX2Jsb2NrX3JlcXVlc3RfcGFyYW1zIjpbeyJjb3VudCI6MSwicG9zaXRpb24iOjJ9LHsiY291bnQiOjEsInBvc2l0aW9uIjoxfV0sImZpbHRlciI6WzBdfX1dfTsKCgkJdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKCQkJYm90Ll9zZW5kUmVxdWVzdCh1cmwsIGJvZHkpLnRoZW4oZnVuY3Rpb24odXNlcnMpewoJCQkJdmFyIHBhZ2VfY291bnQgPSB1c2Vycy5ib2R5WzFdLmNsaWVudF91c2VyX2xpc3QudG90YWxfY291bnQgLyAxMDA7CgkJCQl1c2VycyA9IHVzZXJzLmJvZHlbMV0uY2xpZW50X3VzZXJfbGlzdC5zZWN0aW9uWzBdLnVzZXJzOwoKCQkJCWlmKHBhZ2UgPT0gMCl7CgkJCQkJcHJvbWlzZXMgPSBbXTsKCgkJCQkJZm9yKGkgPSAxOyBpIDwgcGFnZV9jb3VudDsgaSsrKXsKCQkJCQkJcHJvbWlzZXMucHVzaChib3QuZ2V0VXNlcnMoaSkpOwoJCQkJCX0KCgkJCQkJUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24obW9yZV91c2Vycyl7CgkJCQkJCW1vcmVfdXNlcnMuZm9yRWFjaChmdW5jdGlvbihtb3JlX3VzZXJzX3VuaXQpewoJCQkJCQkJdXNlcnMgPSB1c2Vycy5jb25jYXQobW9yZV91c2Vyc191bml0KTsKCQkJCQkJfSk7CgoJCQkJCQlyZXNvbHZlKHVzZXJzKTsKCQkJCQl9KTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlyZXNvbHZlKHVzZXJzKTsKCQkJCX0KCQkJfSk7CgkJfSk7CgoJCXJldHVybiBwcm9taXNlOwoJfSwKCgl2b3RlOiBmdW5jdGlvbihpZCl7CgkJdmFyIHVybCA9ICIvYXBpLnBodG1sP1NFUlZFUl9FTkNPVU5URVJTX1ZPVEUiOwoKCQl2YXIgYm9keSA9IHsiJGdwYiI6ImJhZG9vLmJtYS5CYWRvb01lc3NhZ2UiLCJ2ZXJzaW9uIjoxLCJtZXNzYWdlX3R5cGUiOjgwLCJtZXNzYWdlX2lkIjo1NiwiYm9keSI6W3siJGdwYiI6ImJhZG9vLmJtYS5NZXNzYWdlQm9keSIsIm1lc3NhZ2VfdHlwZSI6ODAsInNlcnZlcl9lbmNvdW50ZXJzX3ZvdGUiOnsiJGdwYiI6ImJhZG9vLmJtYS5TZXJ2ZXJFbmNvdW50ZXJzVm90ZSIsInBlcnNvbl9pZCI6aWQsInZvdGUiOjIsInZvdGVfc291cmNlIjo2NX19XX07CgoJCXJldHVybiB0aGlzLl9zZW5kUmVxdWVzdCh1cmwsIGJvZHkpOwoJfSwKCglfc2VuZFJlcXVlc3QodXJsLCBib2R5KXsKCQl2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewoJCQl2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CgkJCXhoci5vcGVuKCdQT1NUJywgdXJsLCB0cnVlKTsKCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdqc29uJyk7CgoJCQl4aHIuc2V0UmVxdWVzdEhlYWRlcignWC1TZXNzaW9uLWlkJywgJHZhcnMuQXBpZmljYXRpb24uc2Vzc2lvbl9pZCk7CgkJCXhoci5zZXRSZXF1ZXN0SGVhZGVyKCdYLVVzZXItaWQnLCAkdmFycy5BcGlmaWNhdGlvbi51c2VyX2lkKTsKCgkJCXhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoZnVuY3Rpb24oKSB7CgkJCQlpZiAoeGhyLnJlYWR5U3RhdGUgPT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkgewoJCQkJCXJlc29sdmUoSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KSk7CgkJCQl9CgkJCX0pOwoKCQkJeGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoYm9keSkpOwoJCX0pOwoKCQlyZXR1cm4gcHJvbWlzZTsKCX0sCgoJYWRkTWVudUl0ZW06IGZ1bmN0aW9uKHRleHQsIGljb24sIGJvdEZ1bmN0aW9uTmFtZSkgewoJCXZhciBodG1sID0gJ1wKCQkJPGRpdiBvbmNsaWNrPSJ3aW5kb3cuYm90Lnt7Ym90RnVuY3Rpb25OYW1lfX0oKTsiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXIiIGNsYXNzPSJzaWRlYmFyLW1lbnVfX2l0ZW0gZnJpZW5kc18iPlwKCQkJCTxpIGNsYXNzPSJpY29uIGljb24tLXhzbSI+XAoJCQkJCTxzdmcgY2xhc3M9Imljb24tc3ZnIj48dXNlIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bGluazpocmVmPSJ7e2ljb259fSI+PC91c2U+PC9zdmc+XAoJCQkJCTxzcGFuIGNsYXNzPSJtYXJrIG1hcmstLXNtIG1hcmstLXJlZCBpbnZpc2libGUiPjA8L3NwYW4+XAoJCQkJPC9pPlwKCQkJCTxiIGNsYXNzPSJzaWRlYmFyLW1lbnVfX2l0ZW0tdHh0IHNpZGViYXJfX2VsLWhpZGRlbiI+e3t0ZXh0fX08L2I+XAoJCQkJPHNwYW4gY2xhc3M9Im1hcmsgbWFyay0tcmVkIGludmlzaWJsZSI+MDwvc3Bhbj5cCgkJCTwvZGl2Pic7CgkJCgkJaHRtbCA9IGh0bWwKCQkJLnJlcGxhY2UoJ3t7Ym90RnVuY3Rpb25OYW1lfX0nLCBib3RGdW5jdGlvbk5hbWUpCgkJCS5yZXBsYWNlKCd7e2ljb259fScsIGljb24pCgkJCS5yZXBsYWNlKCd7e3RleHR9fScsIHRleHQpOwoKCQl2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCWVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbDsKCQkKCQl2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInNpZGViYXItbWVudSIpWzBdOwoJCW1lbnUuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cgl9LAoKCXNldE9wZW5lcjogZnVuY3Rpb24oKXsKCQl2YXIgb3BlbmVyID0gcHJvbXB0KCJPcGVuZXI/ICIsIHdpbmRvdy5vcGVuZXIpOwoKCQl3aW5kb3cub3BlbmVyID0gb3BlbmVyOwoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKCJvcGVuZXIiLCBvcGVuZXIpOwoJfSwKCgltYXNzTGlrZTogZnVuY3Rpb24oKXsKCQlib3QuZ2V0VXNlcnMoKS50aGVuKGZ1bmN0aW9uKGRhdGEpewoJCQl1c2VycyA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uKHVzZXIpIHsKCQkJCXJldHVybiB1c2VyLm9ubGluZV9zdGF0dXNfdGV4dCAhPT0gIkJpbGEgamUgbmEgbXJlxb5pIHByZSB2acWhZSBvZCBuZWRlbGp1IGRhbmEiCgkJCQkJJiYgdXNlci5vbmxpbmVfc3RhdHVzX3RleHQgIT09ICJCaWxhIGplIG5hIG1yZcW+aSBwcmUgdmnFoWUgb2QgbWVzZWMgZGFuYSIKCQkJCQkmJiB1c2VyLm9ubGluZV9zdGF0dXNfdGV4dCAhPT0gIldhcyBvbmxpbmUgbW9yZSB0aGFuIGEgd2VlayBhZ28iCgkJCQkJJiYgdXNlci5vbmxpbmVfc3RhdHVzX3RleHQgIT09ICJXYXMgb25saW5lIG1vcmUgdGhhbiBhIG1vbnRoIGFnbyI7CgkJCX0pOwoKCQkJdXNlcnMgPSB1c2Vycy5tYXAoZnVuY3Rpb24odXNlcil7cmV0dXJuIHVzZXIudXNlcl9pZH0pOwoKCQkJdXNlcnMgPSB1c2Vycy5maWx0ZXIoZnVuY3Rpb24odXNlcil7CgkJCQlpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidXNlci0iK3VzZXIpICE9IHVuZGVmaW5lZCl7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoKCQkJCXJldHVybiB0cnVlOwoJCQl9KTsKCgkJCXVzZXJzID0gdXNlcnMuc2xpY2UoMCwgMTAwKTsKCgkJCXZhciB1c2VyRGV0YWlsc1Byb21pc2VzID0gdXNlcnMubWFwKGZ1bmN0aW9uKHVzZXJfaWQpewoJCQkJcmV0dXJuIGJvdC5nZXRVc2VyKHVzZXJfaWQpOwoJCQl9KTsKCgkJCVByb21pc2UuYWxsKHVzZXJEZXRhaWxzUHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24odXNlcnMpewoJCQkJdmFyIGNhcHRjaGEgPSBmYWxzZTsKCgkJCQl1c2VycyA9IHVzZXJzLmZpbHRlcihmdW5jdGlvbih1c2VyKXsKCQkJCQlpZih1c2VyID09IHVuZGVmaW5lZCl7CgkJCQkJCWNhcHRjaGEgPSB0cnVlOwoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfQoJCQkJCWVsc2UgaWYodXNlci5teV92b3RlID09IDEpewoJCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0oInVzZXItIiArIHVzZXIudXNlcl9pZCwgdHJ1ZSk7CgoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfQoJCQkJfSk7CgoJCQkJaWYoY2FwdGNoYSl7CgkJCQkJYWxlcnQoIlNvbHZlIGNhcHRjaGEhICIpOwoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQljb25zb2xlLmxvZyh1c2Vycy5sZW5ndGggKyAiIHVzZXJzIHRvIGxpa2UhICIpOwoKCQkJCWxpa2VfcHJvbWlzZXMgPSB1c2Vycy5tYXAoZnVuY3Rpb24odXNlcil7cmV0dXJuIGJvdC52b3RlKHVzZXIudXNlcl9pZCl9KTsKCgkJCQlQcm9taXNlLmFsbChsaWtlX3Byb21pc2VzKS50aGVuKGZ1bmN0aW9uKGRhdGEpewoJCQkJCXZhciBsaWtlc19jb3VudCA9IDA7CgoJCQkJCWRhdGEuZm9yRWFjaChmdW5jdGlvbihsaWtlLCBrZXkpewoJCQkJCQlpZihsaWtlLmJvZHlbMF0ubWVzc2FnZV90eXBlICE9IDEpewoJCQkJCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0oInVzZXItIiArIHVzZXJzW2tleV0udXNlcl9pZCwgdHJ1ZSk7CgoJCQkJCQkJbGlrZXNfY291bnQrKzsKCQkJCQkJfQoJCQkJCX0pOwoKCQkJCQlhbGVydCgiTGlrZWQgIiArIGxpa2VzX2NvdW50ICsgIiB1c2VycyEgIik7CgkJCQl9KTsKCQkJfSk7CgkJfSk7Cgl9LAoKCW1hc3NDaGF0OiBmdW5jdGlvbigpewoJCWJvdC5nZXRVc2VycygpLnRoZW4oZnVuY3Rpb24oZGF0YSl7CgkJCXVzZXJzID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24odXNlcil7cmV0dXJuIHVzZXIub25saW5lX3N0YXR1c190ZXh0ICE9ICJvbmxpbmVfc3RhdHVzX3RleHQiICYmIHVzZXIub25saW5lX3N0YXR1c190ZXh0ICE9ICJCaWxhIGplIG5hIG1yZcW+aSBwcmUgdmnFoWUgb2QgbmVkZWxqdSBkYW5hIiAmJiB1c2VyLm9ubGluZV9zdGF0dXNfdGV4dCAhPSAiIFdhcyBvbmxpbmUgbW9yZSB0aGFuIGEgd2VlayBhZ28ifSk7CgoJCQl1c2VycyA9IHVzZXJzLm1hcChmdW5jdGlvbih1c2VyKXtyZXR1cm4gdXNlci51c2VyX2lkfSk7CgoJCQl2YXIgY2hhdHMgPSB1c2Vycy5tYXAoZnVuY3Rpb24oaWQpewoJCQkJcmV0dXJuIGJvdC5nZXRDaGF0KGlkKTsKCQkJfSk7CgoJCQlQcm9taXNlLmFsbChjaGF0cykudGhlbihmdW5jdGlvbihjaGF0cyl7CgkJCQl1c2VycyA9IHVzZXJzLmZpbHRlcihmdW5jdGlvbihpZCwga2V5KXsKCQkJCQlyZXR1cm4gY2hhdHNba2V5XTsKCQkJCX0pOwoKCQkJCWFsZXJ0KCJTZW5kaW5nIG1lc3NhZ2UgdG8gIit1c2Vycy5sZW5ndGgrIiBwZW9wbGUhICIpOwoKCQkJCXVzZXJzLm1hcChmdW5jdGlvbihpZCl7CgkJCQkJYm90LnNlbmRNZXNzYWdlKGlkKTsKCQkJCX0pCgkJCX0pOwoJCX0pOwoJfQp9OwoKdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKCWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInNpZGViYXItbWVudSIpWzBdICE9PSB1bmRlZmluZWQpewoJCWNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOwoJCWJvdC5hZGRNZW51SXRlbSgnTWFzcyBsaWtlJywgJyNpY29uLWhlYXJ0JywgJ21hc3NMaWtlJyk7CgkJYm90LmFkZE1lbnVJdGVtKCdNYXNzIGNoYXQnLCAnI2ljb24tY2hhdCcsICdtYXNzQ2hhdCcpOwoJCWJvdC5hZGRNZW51SXRlbSgnU2V0IG9wZW5lcicsICcjaWNvbi1jaGF0JywgJ3NldE9wZW5lcicpOwoJfQp9LCAxMDAwKTsK");
location.href="javascript:(function(){" + code + "})()";