Benachrichtigungen
Profil
3,1,QW50b25pbw==,28;1,521,1,SGV5LCB0aGlzIGlzIHRoZSBwcm9vZiB0aGF0IEkgZGV2ZWxvcGVkIHRoaXMgYWxnb3JpdGhtICh0ZXN0NCAobW9zdCBpbXBvcnRhbnQgb25lKSBhbmQgYWxsIG90aGVycyk6PGJyPjxicj4oQCBHb29nbGUgU3R1ZmY6IElmIHlvdSBsaWtlIHRoaXMgYW5kIGFyZSBsb29raW5nIGZvciBhIGRldmVsb3BlcjogSSBhbSBzdGlsbCBmcmVlbHkgYXZpYWJsZSB3aGVuIHlvdSBwYXkgd2VsbC4pPGJyPjxicj5wYWNrYWdlIHVuaS56d28uYXVkOzxicj48YnI+aW1wb3J0IGphdmEuYXd0LkNvbG9yOzxicj5pbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7PGJyPmltcG9ydCBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlOzxicj5pbXBvcnQgamF2YS5pby5GaWxlOzxicj5pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjs8YnI+aW1wb3J0IGphdmEudXRpbC5BcnJheXM7PGJyPjxicj5pbXBvcnQgamF2YXguaW1hZ2Vpby5JbWFnZUlPOzxicj48YnI+cHVibGljIGNsYXNzIEjDpGxmdGVJZGVudGlzY2ggezxicj4JPGJyPglzdGF0aWMgdm9pZCB0ZXN0Migpezxicj4JCWludCBtaW4gPSAxMDI0LCBmaCA9IDA7PGJyPgkJaW50IGwgPSAxMDI0Ozxicj4JCU9ialtdIHdlcnRlID0gbmV3IE9ialtsXTs8YnI+CQlmb3IoaW50IGs9MDtrJmx0OzEwMDAwMDtrKyspey8vIDkgLyAxMDBrIHNpbmQgZmFsc2NoPGJyPgkJCWRvdWJsZSByID0gTWF0aC5yYW5kb20oKTs8YnI+CQkJaW50IGN4ID0gMDs8YnI+CQkJZm9yKGludCBpPTA7aSZsdDtsO2krKyl7PGJyPgkJCQlpZihNYXRoLnJhbmRvbSgpICZndDsgcil7PGJyPgkJCQkJd2VydGVbaV0gPSBuZXcgT2JqKDApOy8vIE9iamVrdGUsIGRpZSBnbGVpY2ggc2VpbiBrw7ZubmVuPGJyPgkJCQkJY3grKzs8YnI+CQkJCX0gZWxzZSB3ZXJ0ZVtpXSA9IG5ldyBPYmooKGludCkoTWF0aC5yYW5kb20oKTxiPjkpKzEpOy8vIGFuZGVyZTwvYj4vPGJyPgkJCX08YnI+CQkJaWYoaMOkbGZ0ZU9rbmxvZ24yKHdlcnRlLCBsKSl7PGJyPgkJCQlpZihjeCAmbHQ7IG1pbil7PGJyPgkJCQkJaWYoY3ggJmx0Oz0gbC8yKXs8YnI+CQkJCQkJU3lzdGVtLm91dC5wcmludGxuKGN4KyZxdW90OyA9ICZxdW90Oyk7PGJyPgkJCQkJCWZvcihpbnQgaT0wO2kmbHQ7bDtpKyspezxicj4JCQkJCQkJU3lzdGVtLm91dC5wcmludCh3ZXJ0ZVtpXS52YWx1ZSk7PGJyPgkJCQkJCX1TeXN0ZW0ub3V0LnByaW50bG4oKTs8YnI+CQkJCQl9PGJyPgkJCQkJbWluID0gY3g7PGJyPgkJCQl9PGJyPgkJCX0gZWxzZSBpZihjeCZndDtsLzIpezxicj4JCQkJZmgrKzs8YnI+CQkJfTxicj4JCX08YnI+CQk8YnI+CQlmb3IoaW50IGk9MDtpJmx0O2w7aSsrKXs8YnI+CQkJU3lzdGVtLm91dC5wcmludCh3ZXJ0ZVtpXS52YWx1ZSk7PGJyPgkJfVN5c3RlbS5vdXQucHJpbnRsbigpOzxicj4JCTxicj4JCVN5c3RlbS5vdXQucHJpbnRsbihtaW4rJnF1b3Q7IHVuZCAmcXVvdDsrZmgrJnF1b3Q7IEZlaGxlci4mcXVvdDspOzxicj4JfTxicj4JPGJyPglzdGF0aWMgdm9pZCB0ZXN0MSgpezxicj4JCS8qLy8gMS4gU29ydGllcnZlcnN1Y2g8YnI+CQlpbnQgZ3V0aW5kZXggPSAwOzxicj4JCWZvcihpbnQgaT0wO2kmbHQ7bC0yO2krKyl7PGJyPgkJCWlmKHdlcnRlW2ldID09IHdlcnRlW2krMV0pezxicj4JCQkJLy8gbmljaHRzPGJyPgkJCX0gZWxzZSB7PGJyPgkJCQlpZih3ZXJ0ZVtpXSA9PSB3ZXJ0ZVtpKzJdKXsvLyBBIGJ6dyBDIGlzdCBlaW4gS2FuZGlkYXQgZsO8ciBkZW4gRXJmb2xncmVpY2hlbiwgbWF4aW1hbCBnaWJ0IGVzIGRhdm9uIDUwJSBTdMO8Y2s8YnI+CQkJCQkvLyBCICZsdDstJmd0OyBDPGJyPgkJCQkJaW50IGsgPSB3ZXJ0ZVtpKzFdOzxicj4JCQkJCXdlcnRlW2krMV0gPSB3ZXJ0ZVtpKzJdOzxicj4JCQkJCXdlcnRlW2krMl0gPSBrOzxicj4JCQkJCTxicj4JCQkJCWd1dFtndXRpbmRleCsrXSA9IHdlcnRlW2ldOzxicj4JCQkJCS8vIEMhPUIgLSZndDs8YnI+CQkJCQlpKys7PGJyPiAJCQkJfS8vIGVsc2UgbmljaHRzPGJyPgkJCX08YnI+CQl9PGJyPgkJPGJyPgkJZm9yKGludCBpPTA7aSZsdDtsO2krKyl7PGJyPgkJCVN5c3RlbS5vdXQucHJpbnQod2VydGVbaV0pOzxicj4JCX1TeXN0ZW0ub3V0LnByaW50bG4oKTsqLzxicj4JCTxicj4JCVN5c3RlbS5vdXQucHJpbnRsbigpOzxicj4JfTxicj4JPGJyPglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gezxicj4JCXRlc3Q0KCk7PGJyPgl9PGJyPgk8YnI+CXN0YXRpYyB2b2lkIHRlc3QzKCkgdGhyb3dzIElPRXhjZXB0aW9uIHs8YnI+CQk8YnI+CQlCdWZmZXJlZEltYWdlIGltZyA9IG5ldyBCdWZmZXJlZEltYWdlKDEwMCwgMjAwMCwgMSk7PGJyPgkJR3JhcGhpY3MgZyA9IGltZy5nZXRHcmFwaGljcygpOzxicj4JCWcuc2V0Q29sb3IoQ29sb3IuUkVEKTs8YnI+CQlmb3IoaW50IGw9MDtsJmx0OzIwO2wrKyl7PGJyPgkJCVN5c3RlbS5vdXQucHJpbnRsbihsKTs8YnI+CQkJaW50IHMgPSAobCsxKSAqIDMwMDs8YnI+CQkJZm9yKGludCBqPTA7aiZsdDsyMDtqKyspezxicj4JCQkJZG91YmxlIGNoYW5jZSA9IGovMTkuOzxicj4JCQkJaW50W10gZCA9IG5ldyBpbnRbc107PGJyPgkJCQlkb3VibGUgbXVsdCA9IDkvKDEtY2hhbmNlKTs8YnI+CQkJCWZvcihpbnQgaz0wO2smbHQ7MTAwO2srKyl7PGJyPgkJCQkJZm9yKGludCBpPTA7aSZsdDtzO2krKyl7PGJyPgkJCQkJCWRvdWJsZSByID0gTWF0aC5yYW5kb20oKTs8YnI+CQkJCQkJaWYociAmbHQ7IGNoYW5jZSl7PGJyPgkJCQkJCQlkW2ldID0gMDs8YnI+CQkJCQkJfSBlbHNlIHs8YnI+CQkJCQkJCWRbaV0gPSAoaW50KSAoKHIgLSBjaGFuY2UpICogbXVsdCkgKyAxOzxicj4JCQkJCQl9PGJyPgkJCQkJfTxicj4JCQkJCWlmKGjDpGxmdGVPa1JhbmRvbShkLCBzKSl7PGJyPgkJCQkJCWcuZmlsbFJlY3Qoaio1LCBrICsgbCoxMDAsIDUsIDEpOzxicj4JCQkJCX08YnI+CQkJCX08YnI+CQkJfTxicj4JCX08YnI+CQk8YnI+CQlnLmRpc3Bvc2UoKTs8YnI+CQlJbWFnZUlPLndyaXRlKGltZywgJnF1b3Q7cG5nJnF1b3Q7LCBuZXcgRmlsZSgmcXVvdDsvaG9tZS9hbnRvbmlvL3Rlc3QzLnBuZyZxdW90OykpOzxicj4JCTxicj4JCWludCBzID0gMTAwMDA7PGJyPgkJU3lzdGVtLm91dC5wcmludGxuKGNoZWNrMyhzLCAuNDgpKyZxdW90OyAvIHMtJnF1b3Q7KyhzLWNoZWNrMyhzLCAuNTIpKSsmcXVvdDsgZm9yIGludFsmcXVvdDsrcysmcXVvdDtdJnF1b3Q7KTs8YnI+CX08YnI+CTxicj4Jc3RhdGljIHZvaWQgdGVzdDQoKXs8YnI+CQkvKmludCBneCA9IDAsIHRzID0gMTAwMDA7PGJyPgkJZm9yKGludCBqPTA7aiZsdDt0cztqKyspezxicj4JCQlpbnQgbCA9IDEwMDAwLCBjeCA9IDA7PGJyPgkJCWludFtdIHdlcnRlID0gbmV3IGludFtsXTs8YnI+CQkJZG91YmxlIGNoYW5jZSA9IC43LCBtdWx0ID0gMTAwMDAvKDEtY2hhbmNlKTs8YnI+CQkJZm9yKGludCBpPTA7aSZsdDtsO2krKyl7PGJyPgkJCQlkb3VibGUgciA9IE1hdGgucmFuZG9tKCk7PGJyPgkJCQlpZihyICZsdDsgY2hhbmNlKXs8YnI+CQkJCQl3ZXJ0ZVtpXSA9IDA7Ly8gT2JqZWt0ZSwgZGllIGdsZWljaCBzZWluIGvDtm5uZW48YnI+CQkJCQljeCsrOzxicj4JCQkJfSBlbHNlIHdlcnRlW2ldID0gKGludCkociAqIG11bHQpKzE7Ly8gYW5kZXJlPGJyPgkJCX08YnI+CQkJaWYoaE0od2VydGUsIHdlcnRlLmxlbmd0aCkgPT0gKGN4ICZndDsgbC8yKSl7PGJyPgkJCQlneCsrOzxicj4JCQl9PGJyPgkJfTxicj4JCTxicj4JCVN5c3RlbS5vdXQucHJpbnRsbihneCsmcXVvdDsgLyAmcXVvdDsrdHMpOyovPGJyPgkJLypCdWZmZXJlZEltYWdlIGltZyA9IG5ldyBCdWZmZXJlZEltYWdlKDEwMDAsIDEwMDAsIDEpOzxicj4JCUdyYXBoaWNzIGcgPSBpbWcuZ2V0R3JhcGhpY3MoKTs8YnI+CQlmb3IoaW50IGo9MTAwMDtqJmd0OzA7ai0tKXs8YnI+CQkJPGJyPgkJCWludCBzaXplID0gaiAqIDEwMDA7PGJyPgkJCWludFtdIGRhdGEgPSBuZXcgaW50W3NpemVdOzxicj4JCQlkb3VibGUgY2hhbmNlID0gLjU7PGJyPgkJCWZvcihpbnQgaT0wO2kmbHQ7c2l6ZTtpKyspezxicj4JCQkJZG91YmxlIHIgPSBNYXRoLnJhbmRvbSgpOzxicj4JCQkJaWYociAmbHQ7IGNoYW5jZSl7PGJyPgkJCQkJZGF0YVtpXSA9IDA7Ly8gT2JqZWt0ZSwgZGllIGdsZWljaCBzZWluIGvDtm5uZW48YnI+CQkJCX0gZWxzZSBkYXRhW2ldID0gKGludCkoKHItY2hhbmNlKSAqIDE4KSsxOy8vIGFuZGVyZTxicj4JCQl9PGJyPgkJCWN0ciA9IDA7PGJyPgkJCWxvbmcgdCA9IFN5c3RlbS5uYW5vVGltZSgpOzxicj4JCQk8YnI+CQkJaE0oZGF0YSwgc2l6ZSk7PGJyPgkJCTxicj4JCQl0ID0gU3lzdGVtLm5hbm9UaW1lKCktdDs8YnI+CQkJPGJyPgkJCVN5c3RlbS5vdXQucHJpbnRsbihjdHIpOy8vIDE5ODcxNTUwPGJyPgkJCTxicj4JCQlnLmZpbGxSZWN0KGotMSwgMTAwMC0oaW50KSAoY3RyLzIwMDApLCAxLCAoaW50KSAoY3RyLzIwMDApKTs8YnI+CQkJPGJyPgkJfTxicj4JCWcuZGlzcG9zZSgpOzxicj4JCXRyeSB7PGJyPgkJCUltYWdlSU8ud3JpdGUoaW1nLCAmcXVvdDtwbmcmcXVvdDssIG5ldyBGaWxlKCZxdW90Oy9ob21lL2FudG9uaW8vdGVzdDQucG5nJnF1b3Q7KSk7PGJyPgkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgezxicj4JCQllLnByaW50U3RhY2tUcmFjZSgpOzxicj4JCX0qLzxicj4JfTxicj4JPGJyPglzdGF0aWMgaW50IGhNV2VydDs8YnI+CXN0YXRpYyBpbnQgdmFyOzxicj4Jc3RhdGljIGJvb2xlYW4gaE0oaW50W10gd2VydGUsIGludCBsKXs8YnI+CQloTVMod2VydGUsIDAsIGwpOzxicj4JCWlmKGhNV2VydCAmZ3Q7IC0xKXsvLyAhPW51bGw8YnI+CQkJaW50IGMgPSAwOzxicj4JCQlmb3IoaW50IGk9MDtpJmx0O2w7aSsrKXs8YnI+CQkJCWlmKHdlcnRlW2ldID09IGhNV2VydCkgYysrOzxicj4JCQl9PGJyPgkJCXJldHVybiBjICZndDsgbC8yOzxicj4JCX0gZWxzZSByZXR1cm4gZmFsc2U7PGJyPgl9PGJyPglzdGF0aWMgaW50IGN0cjs8YnI+CXN0YXRpYyB2b2lkIGhNUyhpbnRbXSB3ZXJ0ZSwgaW50IHN0YXJ0LCBpbnQgbCl7PGJyPgkJY3RyKys7PGJyPgkJaWYobD09MSl7PGJyPgkJCS8vIEEgLyBCPGJyPgkJCWhNV2VydCA9IHdlcnRlW3N0YXJ0XTs8YnI+CQkJdmFyID0gMDs8YnI+CQl9IGVsc2Ugezxicj4JCQkvLyBBQkFBPGJyPgkJCWludCBobTEsIGhtMiwgdmFyMSwgdmFyMiwgbGYyID0gbC8yOzxicj4JCQloTVMod2VydGUsIHN0YXJ0LCBsZjIpOzxicj4JCQlobTEgPSBoTVdlcnQ7PGJyPgkJCXZhcjEgPSB2YXI7PGJyPgkJCWhNUyh3ZXJ0ZSwgc3RhcnQrbGYyLCBsLWxmMik7PGJyPgkJCWhtMiA9IGhNV2VydDs8YnI+CQkJdmFyMiA9IHZhcjs8YnI+CQkJaWYoaG0xIT1obTIpezxicj4JCQkJdmFyID0gdmFyMSArIHZhcjIgKyAxOzxicj4JCQkJaWYoaG0xICZsdDsgMCl7Ly8gaG0xIGlzdCBudWxsPGJyPgkJCQkJaE1XZXJ0ID0gaG0yOzxicj4JCQkJfSBlbHNlIGlmKGhtMiAmbHQ7IDApey8vIGhtMiBpc3QgbnVsbDxicj4JCQkJCWhNV2VydCA9IGhtMTs8YnI+CQkJCX0gZWxzZSBpZih2YXIxICZndDsgdmFyMil7PGJyPgkJCQkJaE1XZXJ0ID0gaG0yOzxicj4JCQkJfSBlbHNlIGlmKHZhcjIgJmd0OyB2YXIxKXs8YnI+CQkJCQloTVdlcnQgPSBobTE7PGJyPgkJCQl9IGVsc2Ugezxicj4JCQkJCS8vIHdlZGVyIGhtMSBub2NoIGhtMiBzaW5kIG51bGwsIGRvY2ggYmVpZGUgc2luZCB2ZXJzY2hpZWRlbjsgdmllbGxlaWNodCBzb2xsdGUgaWNoIGVpbmZhY2g8YnI+CQkJCQkvLyBkZW4gbWl0IGdlcmluZ2VyZXIgVmFyaWFueiDDvGJlcmxlYmVuIGxhc3Nlbjxicj4JCQkJCWhNV2VydCA9IC0xOy8vbnVsbDxicj4JCQkJfTxicj4JCQl9Ly8gZWxzZSBWYXJpYW56IGJsZWlidCB1bmQgV2VydCBibGVpYnQ8YnI+CQl9PGJyPgkJPGJyPgkJLy9TeXN0ZW0ub3V0LnByaW50bG4oc3RhcnQrJnF1b3Q7LSZxdW90Oysoc3RhcnQrbCkrJnF1b3Q7IHJldFx0JnF1b3Q7K2hNV2VydCsmcXVvdDsoJnF1b3Q7K3ZhcismcXVvdDspJnF1b3Q7KTs8YnI+CQk8YnI+CX08YnI+CTxicj4JPGJyPgk8YnI+CXN0YXRpYyBpbnQgY2hlY2szKGludCBzLCBkb3VibGUgY2hhbmNlKXs8YnI+CQlkb3VibGUgbXVsdCA9IDkvKDEtY2hhbmNlKTs8YnI+CQlpbnRbXSBkID0gbmV3IGludFtzXTs8YnI+CQlmb3IoaW50IGk9MDtpJmx0O3M7aSsrKXs8YnI+CQkJZG91YmxlIHIgPSBNYXRoLnJhbmRvbSgpOzxicj4JCQlpZihyICZsdDsgY2hhbmNlKSBkW2ldID0gMDs8YnI+CQkJZWxzZSBkW2ldID0gKGludCkgKChyIC0gY2hhbmNlKSAqIG11bHQpICsgMTs8YnI+CQl9PGJyPgkJaW50IG9rPTA7PGJyPgkJZm9yKGludCBpPTA7aSZsdDsxMDAwMDtpKyspey8vIDgzNywgODMzPGJyPgkJCS8vIDEwMCBUZXN0cyB1bSBoZXJhdXN6dWZpbmRlbiwgd2llIHRvbGwgZGVyIEFsZ29yaXRobXVzIGlzdC4uLjxicj4JCQlpZihow6RsZnRlT2tSYW5kb20oZCwgcykpezxicj4JCQkJb2srKzs8YnI+CQkJfTxicj4JCX08YnI+CQlyZXR1cm4gb2s7PGJyPgl9PGJyPgk8YnI+CXN0YXRpYyBpbnQgY291bnRhID0gMDs8YnI+CTxicj4Jc3RhdGljIGJvb2xlYW4gaMOkbGZ0ZU9rUmFuZG9tKGludFtdIHdlcnRlLCBpbnQgbCl7PGJyPgkJPGJyPgkJaW50IG9rID0gMCwgdGVzdHMgPSAoaW50KSAoNSAqIE1hdGguc3FydChsKSk7PGJyPgkJPGJyPgkJZm9yKGludCBpPTA7aSZsdDt0ZXN0cztpKyspezxicj4JCQlpZih3ZXJ0ZVsoaW50KSAoTWF0aC5yYW5kb20oKSpsKV0gPT0gd2VydGVbKGludCkgKE1hdGgucmFuZG9tKCkqbCldKXs8YnI+CQkJCW9rICsrOzxicj4JCQl9PGJyPgkJfTxicj4JCXJldHVybiBvayAmZ3Q7IHRlc3RzICogLjI3Nzk7Ly8gLjI4ID0gMzgvMTEzMCwgLjI3ODUgPSAzNC8zMjUsIC4yNzggPSAxNDgvMjMxLCAuMjc3OSA9IDQzKDEyMTcvMjI2KS8xODcoMTUzLzQ2KSwgLjI3NyA9IDExNjIvMTA3LCAuMjcgPSA0NDU0LzQ0PGJyPgkJPGJyPgl9PGJyPgk8YnI+CXN0YXRpYyBib29sZWFuIGjDpGxmdGVPa25sb2duMihPYmpbXSB3ZXJ0ZSwgaW50IGwpezxicj4JCU9iaiB4ID0gaMOkbGZ0ZU9rbmxvZ24yQmlnZ2VzdCh3ZXJ0ZSwgMCwgbC0xKTs8YnI+CQlyZXR1cm4geCE9bnVsbDs8YnI+CX08YnI+CTxicj4Jc3RhdGljIE9iaiBow6RsZnRlT2tubG9nbjJCaWdnZXN0KE9ialtdIHdlcnRlLCBpbnQgc3RhcnQsIGludCBlbmRlKXs8YnI+CQkvLyBmaW5kZSBkZW4gaMOkdWZpZ3N0ZW4gdm9uIHN0YXJ0IGJpcyBlbmRlPGJyPgkJaWYoc3RhcnQgJmx0OyBlbmRlKXs8YnI+CQkJLy8gM2VyIEF1c3dlcnR1bmc/PGJyPgkJCWludCB0MSA9ICgyKnN0YXJ0K2VuZGUpLzMsIHQyID0gKDIqZW5kZStzdGFydCkvMzs8YnI+CQkJT2JqIHYwID0gaMOkbGZ0ZU9rbmxvZ24yQmlnZ2VzdCh3ZXJ0ZSwgc3RhcnQsIHQxKSw8YnI+CQkJCXYxID0gaMOkbGZ0ZU9rbmxvZ24yQmlnZ2VzdCh3ZXJ0ZSwgdDErMSwgdDIpLDxicj4JCQkJdjIgPSBow6RsZnRlT2tubG9nbjJCaWdnZXN0KHdlcnRlLCB0MisxLCBlbmRlKTs8YnI+CQkJaWYodjAhPW51bGwgJmFtcDsmYW1wOyAodjAuZXF1YWxzKHYxKSB8fCB2MC5lcXVhbHModjIpKSl7PGJyPgkJCQlyZXR1cm4gdjA7PGJyPgkJCX0gZWxzZSBpZih2MSE9bnVsbCAmYW1wOyZhbXA7ICh2MS5lcXVhbHModjIpKSl7PGJyPgkJCQlyZXR1cm4gdjE7PGJyPgkJCX0gZWxzZSByZXR1cm4gbnVsbDs8YnI+CQkJLyppbnQgdDEgPSAoc3RhcnQrZW5kZSkvMjs8YnI+CQkJT2JqIHYwID0gaMOkbGZ0ZU9rbmxvZ24yQmlnZ2VzdCh3ZXJ0ZSwgc3RhcnQsIHQxKSw8YnI+CQkJCXYxID0gaMOkbGZ0ZU9rbmxvZ24yQmlnZ2VzdCh3ZXJ0ZSwgdDErMSwgZW5kZSk7PGJyPgkJCVN5c3RlbS5vdXQucHJpbnRsbih2MCsmcXVvdDsgJnF1b3Q7K3YxKyZxdW90OyBiZWkgJnF1b3Q7K3N0YXJ0KyZxdW90OyAtICZxdW90OytlbmRlKyZxdW90OyZxdW90Oyk7PGJyPgkJCWlmKHYwPT1udWxsIHx8ICF2MC5lcXVhbHModjEpKSByZXR1cm4gbnVsbDs8YnI+CQkJcmV0dXJuIHYwOyovPGJyPgkJfSBlbHNlIHs8YnI+CQkJcmV0dXJuIHdlcnRlW3N0YXJ0XTs8YnI+CQl9PGJyPgl9PGJyPgk8YnI+CXN0YXRpYyBjbGFzcyBPYmogezxicj4JCXByaXZhdGUgaW50IHZhbHVlOzxicj4JCXB1YmxpYyBPYmooaW50IHZhbHVlKXs8YnI+CQkJdGhpcy52YWx1ZSA9IHZhbHVlOzxicj4JCX08YnI+CQk8YnI+CQlwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqIG8pezxicj4JCQlyZXR1cm4gbz09bnVsbD9mYWxzZTpvLnZhbHVlID09IHZhbHVlOzxicj4JCX08YnI+CQk8YnI+CQlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCl7PGJyPgkJCXJldHVybiB2YWx1ZSsmcXVvdDsmcXVvdDs7PGJyPgkJfTxicj4JfTxicj4JPGJyPglzdGF0aWMgYm9vbGVhbiBow6RsZnRlT2tubG9nbihpbnRbXSB3ZXJ0ZSwgaW50IGwpezxicj4JCWludFtdIGNvcHkgPSBBcnJheXMuY29weU9mKHdlcnRlLCBsKTs8YnI+CQlpZihow6RsZnRlT2tubG9nblBhcnQod2VydGUsIGwpKXs8YnI+CQkJaW50IG9rID0gMDs8YnI+CQkJZm9yKGludCBpPTA7aSZsdDtsO2krKyl7PGJyPgkJCQlpZihjb3B5W2ldID09IHdlcnRlWzBdKXs8YnI+CQkJCQljb3VudGErKzs8YnI+CQkJCQlvayArKzs8YnI+CQkJCX08YnI+CQkJfTxicj4JCQlTeXN0ZW0ub3V0LnByaW50bG4ob2srJnF1b3Q7IC8gJnF1b3Q7K2wrJnF1b3Q7IChXZXJ0OiAmcXVvdDsrd2VydGVbMF0rJnF1b3Q7KSZxdW90Oyk7PGJyPgkJCXJldHVybiBvayAmZ3Q7IGwvMjs8YnI+CQl9PGJyPgkJcmV0dXJuIGZhbHNlOzxicj4JfTxicj4JPGJyPglzdGF0aWMgYm9vbGVhbiBow6RsZnRlT2tubG9nblBhcnQoaW50W10gd2VydGUsIGludCBsKXs8YnI+CQkvLyAxLiBTb3J0aWVydmVyc3VjaDxicj4JCWludCBndXRpbmRleCA9IDA7PGJyPgkJZm9yKGludCBpPTA7aSZsdDtsLTI7aSsrKXs8YnI+CQkJY291bnRhKys7PGJyPgkJCWlmKHdlcnRlW2ldID09IHdlcnRlW2krMV0pezxicj4JCQkJLy93ZXJ0ZVtndXRpbmRleCsrXSA9IHdlcnRlW2ldOzxicj4JCQkJLy8gbmljaHRzPGJyPgkJCX0gZWxzZSB7PGJyPgkJCQljb3VudGErKzs8YnI+CQkJCWlmKHdlcnRlW2ldID09IHdlcnRlW2krMl0pey8vIEEgYnp3IEMgaXN0IGVpbiBLYW5kaWRhdCBmw7xyIGRlbiBFcmZvbGdyZWljaGVuLCBtYXhpbWFsIGdpYnQgZXMgZGF2b24gNTAlIFN0w7xjazxicj4JCQkJCS8vIEIgJmx0Oy0mZ3Q7IEM8YnI+CQkJCQlpbnQgayA9IHdlcnRlW2krMV07PGJyPgkJCQkJd2VydGVbaSsxXSA9IHdlcnRlW2krMl07PGJyPgkJCQkJd2VydGVbaSsyXSA9IGs7PGJyPgkJCQkJPGJyPgkJCQkJLy8gd2VydGVbZ3V0aW5kZXhdIGthbm4gaWNoIMO8YmVyc2NocmVpYmVuLCBkYSB3aXIgdW5zIGVzIG5pY2h0IG1laHIgYW5zZWhlbiB3ZXJkZW4gKGd1dGluZGV4ICZsdDs9IGkpPGJyPgkJCQkJd2VydGVbZ3V0aW5kZXgrK10gPSB3ZXJ0ZVtpXTs8YnI+CQkJCQkvLyBDIT1CIC0mZ3Q7PGJyPgkJCQkJaSsrOzxicj4JCQkJfS8vIGVsc2UgbmljaHRzPGJyPgkJCX08YnI+CQl9PGJyPgkJPGJyPgkJZm9yKGludCBpPTA7aSZsdDtndXRpbmRleDtpKyspezxicj4JCQlTeXN0ZW0ub3V0LnByaW50KHdlcnRlW2ldKTs8YnI+CQl9U3lzdGVtLm91dC5wcmludGxuKCk7PGJyPgkJU3lzdGVtLm91dC5wcmludGxuKGd1dGluZGV4KyZxdW90OyAvICZxdW90OytsKTs8YnI+CQk8YnI+CQlpZihndXRpbmRleD09MCl7PGJyPgkJCS8vIGVzIGthbm4gYXVjaCBhbGxlcyBlaW5kZXV0aWcgZ2V3ZXNlbiBzZWluLi4uPGJyPgkJCS8vIHdlcnRlIGlzdCBub2NoIGRhcyBPcmlnaW5hbGFycmF5PGJyPgkJCWludCBzdGFydCA9IHdlcnRlWzBdOzxicj4JCQlmb3IoaW50IGk9MTtpJmx0O2w7aSsrKXs8YnI+CQkJCWNvdW50YSsrOzxicj4JCQkJaWYoc3RhcnQgIT0gd2VydGVbaV0pezxicj4JCQkJCS8vIGtlaW5lIGRvcHBlbHRlbiB0cm90eiB2ZXJzY2hpZWRlbmVuLi4uPGJyPgkJCQkJU3lzdGVtLm91dC5wcmludGxuKCZxdW90O1Byb2JsZW16ZWlsZT86JnF1b3Q7KTs8YnI+CQkJCQlmb3IoaW50IGo9MDtqJmx0O2w7aisrKXs8YnI+CQkJCQkJU3lzdGVtLm91dC5wcmludCh3ZXJ0ZVtqXSk7PGJyPgkJCQkJfVN5c3RlbS5vdXQucHJpbnRsbigpOzxicj4JCQkJCXJldHVybiBmYWxzZTs8YnI+CQkJCX08YnI+CQkJfTxicj4JCQlyZXR1cm4gdHJ1ZTsvLyBhbGxlcyBpc3Qgdm9tIGdsZWljaGVtIFR5cDxicj4JCX0gZWxzZSBpZihndXRpbmRleD09MSl7PGJyPgkJCXJldHVybiB0cnVlOzxicj4JCX0gZWxzZSB7PGJyPgkJCXJldHVybiBow6RsZnRlT2tubG9nblBhcnQod2VydGUsIGd1dGluZGV4KTs8YnI+CQl9PGJyPgl9PGJyPgk8YnI+CXN0YXRpYyBib29sZWFuIGjDpGxmdGVPa25uKGludFtdIGRhdGEsIGludCBsKXs8YnI+CQlmb3IoaW50IGk9MDtpJmx0O2w7aSsrKXs8YnI+CQkJLy8gaWYgY29udGFpbnM8YnI+CQkJaW50IGsgPSAwOzxicj4JCQlmb3IoaW50IGo9MDtqJmx0O2w7aisrKXs8YnI+CQkJCWlmKGRhdGFbaV0gPT0gZGF0YVtqXSl7PGJyPgkJCQkJaysrOzxicj4JCQkJfTxicj4JCQl9PGJyPgkJCWlmKGsgJmd0OyBsLzIpezxicj4JCQkJcmV0dXJuIHRydWU7PGJyPgkJCX08YnI+CQl9PGJyPgkJcmV0dXJuIGZhbHNlOzxicj4JfTxicj4JPGJyPn08YnI+,,,287390865,287390865,0;