Facebook
From 1, 2 Weeks ago, written in JavaScript.
Embed
Download Paste or View Raw
Hits: 145
  1. I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CgpzdHJ1Y3QgQ29uZmlnIHsKICAgIGZsb2F0IFRYVF9TRVRUSU5HX1ZJRVc7CiAgICBmbG9hdCBUWFRfU0VUVElOR18xWFNDOwogICAgZmxvYXQgVFhUX1NFVFRJTkdfMlhTQzsKICAgIGZsb2F0IFRYVF9TRVRUSU5HXzRYU0M7CiAgICBmbG9hdCBUWFRfU0VUVElOR184WFNDOwogICAgaW50IERQSTsKICAgIGludCBGb3Y7CiAgICBpbnQgdG91Y2hzZW5zaXRpdml0eTsKICAgIGludCBYOwogICAgZmxvYXQgWTsKfTsKCkNvbmZpZyByZWFkQ29uZmlnKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlbmFtZSkgewogICAgQ29uZmlnIGNvbmZpZzsKICAgIHN0ZDo6aWZzdHJlYW0gZmlsZShmaWxlbmFtZSk7CiAgICBzdGQ6OnN0cmluZyBsaW5lOwoKICAgIHdoaWxlIChzdGQ6OmdldGxpbmUoZmlsZSwgbGluZSkpIHsKICAgICAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKGxpbmUpOwogICAgICAgIHN0ZDo6c3RyaW5nIGtleSwgdmFsdWUsIGNvbG9uOwogICAgICAgIGlmIChpc3MgPj4ga2V5ID4+IGNvbG9uID4+IHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIlRYVF9TRVRUSU5HX1ZJRVciKSB7CiAgICAgICAgICAgICAgICBjb25maWcuVFhUX1NFVFRJTkdfVklFVyA9IHN0ZDo6c3RvZih2YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICJUWFRfU0VUVElOR18xWFNDIikgewogICAgICAgICAgICAgICAgY29uZmlnLlRYVF9TRVRUSU5HXzFYU0MgPSBzdGQ6OnN0b2YodmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PSAiVFhUX1NFVFRJTkdfMlhTQyIpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5UWFRfU0VUVElOR18yWFNDID0gc3RkOjpzdG9mKHZhbHVlKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT0gIlRYVF9TRVRUSU5HXzRYU0MiKSB7CiAgICAgICAgICAgICAgICBjb25maWcuVFhUX1NFVFRJTkdfNFhTQyA9IHN0ZDo6c3RvZih2YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICJUWFRfU0VUVElOR184WFNDIikgewogICAgICAgICAgICAgICAgY29uZmlnLlRYVF9TRVRUSU5HXzhYU0MgPSBzdGQ6OnN0b2YodmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PSAiRFBJIikgewogICAgICAgICAgICAgICAgY29uZmlnLkRQSSA9IHN0ZDo6c3RvaSh2YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICJGb3YiKSB7CiAgICAgICAgICAgICAgICBjb25maWcuRm92ID0gc3RkOjpzdG9pKHZhbHVlKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT0gInRvdWNoc2Vuc2l0aXZpdHkiKSB7CiAgICAgICAgICAgICAgICBjb25maWcudG91Y2hzZW5zaXRpdml0eSA9IHN0ZDo6c3RvaSh2YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICJYIikgewogICAgICAgICAgICAgICAgY29uZmlnLlggPSBzdGQ6OnN0b2kodmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PSAiWSIpIHsKICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgJywnIHdpdGggJy4nIGJlZm9yZSBjb252ZXJ0aW5nIHRvIGZsb2F0CiAgICAgICAgICAgICAgICBzdGQ6OnJlcGxhY2UodmFsdWUuYmVnaW4oKSwgdmFsdWUuZW5kKCksICcsJywgJy4nKTsKICAgICAgICAgICAgICAgIGNvbmZpZy5ZID0gc3RkOjpzdG9mKHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjb25maWc7Cn0KCmludCBtYWluKCkgewogICAgQ29uZmlnIGNvbmZpZyA9IHJlYWRDb25maWcoImNvbmZpZy50eHQiKTsKCiAgICAvLyBEZWZpbmluZG8gb3MgdmFsb3JlcyBjb21vIDIwMAogICAgY29uZmlnLlRYVF9TRVRUSU5HX1ZJRVcgPSAyMDA7CiAgICBjb25maWcuVFhUX1NFVFRJTkdfMVhTQyA9IDIwMDsKCiAgICAvLyBBZ29yYSB2b2PDqiBwb2RlIHVzYXIgYXMgY29uZmlndXJhw6fDtWVzIGxpZGFzCiAgICBzdGQ6OmNvdXQgPDwgIlRYVF9TRVRUSU5HX1ZJRVc6ICIgPDwgY29uZmlnLlRYVF9TRVRUSU5HX1ZJRVcgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICJUWFRfU0VUVElOR18xWFNDOiAiIDw8IGNvbmZpZy5UWFRfU0VUVElOR18xWFNDIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiVFhUX1NFVFRJTkdfMlhTQzogIiA8PCBjb25maWcuVFhUX1NFVFRJTkdfMlhTQyA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgIlRYVF9TRVRUSU5HXzRYU0M6ICIgPDwgY29uZmlnLlRYVF9TRVRUSU5HXzRYU0MgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICJUWFRfU0VUVElOR184WFNDOiAiIDw8IGNvbmZpZy5UWFRfU0VUVElOR184WFNDIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiRFBJOiAiIDw8IGNvbmZpZy5EUEkgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICJGb3Y6ICIgPDwgY29uZmlnLkZvdiA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgInRvdWNoc2Vuc2l0aXZpdHk6ICIgPDwgY29uZmlnLnRvdWNoc2Vuc2l0aXZpdHkgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICJYOiAiIDw8IGNvbmZpZy5YIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiWTogIiA8PCBjb25maWcuWSA8PCBzdGQ6OmVuZGw7CgogICAgcmV0dXJuIDA7Cn0K