# Name: soo_wordfest v0.3 # Type: Client side plugin # Word game for article comments # Author: Jeff Soo # URL: http://ipsedixit.net/txp/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEyOiJzb29fd29yZGZlc3QiO3M6NjoiYXV0aG9yIjtzOjg6 IkplZmYgU29vIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI1OiJodHRwOi8vaXBzZWRpeGl0Lm5l dC90eHAvIjtzOjc6InZlcnNpb24iO3M6MzoiMC4zIjtzOjExOiJkZXNjcmlwdGlvbiI7czoz MDoiV29yZCBnYW1lIGZvciBhcnRpY2xlIGNvbW1lbnRzIjtzOjQ6ImhlbHAiO3M6Nzc5Nzoi PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KZGl2I3NlZF9oZWxwIHByZSB7cGFkZGluZzogMC41 ZW0gMWVtOyBiYWNrZ3JvdW5kOiAjZWVlOyBib3JkZXI6IDFweCBkYXNoZWQgI2NjYzt9CmRp diNzZWRfaGVscCBoMSwgZGl2I3NlZF9oZWxwIGgyLCBkaXYjc2VkX2hlbHAgaDMsIGRpdiNz ZWRfaGVscCBoMyBjb2RlIHtmb250LWZhbWlseTogc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6 IGJvbGQ7fQpkaXYjc2VkX2hlbHAgaDEsIGRpdiNzZWRfaGVscCBoMiwgZGl2I3NlZF9oZWxw IGgzIHttYXJnaW4tbGVmdDogLTFlbTt9CmRpdiNzZWRfaGVscCBoMiwgZGl2I3NlZF9oZWxw IGgzIHttYXJnaW4tdG9wOiAyZW07fQpkaXYjc2VkX2hlbHAgaDEge2ZvbnQtc2l6ZTogMi40 ZW07fQpkaXYjc2VkX2hlbHAgaDIge2ZvbnQtc2l6ZTogMS44ZW07fQpkaXYjc2VkX2hlbHAg aDMge2ZvbnQtc2l6ZTogMS40ZW07fQpkaXYjc2VkX2hlbHAgaDQge2ZvbnQtc2l6ZTogMS4y ZW07fQpkaXYjc2VkX2hlbHAgaDUge2ZvbnQtc2l6ZTogMWVtO21hcmdpbi1sZWZ0OjFlbTtm b250LXN0eWxlOm9ibGlxdWU7fQpkaXYjc2VkX2hlbHAgaDYge2ZvbnQtc2l6ZTogMWVtO21h cmdpbi1sZWZ0OjJlbTtmb250LXN0eWxlOm9ibGlxdWU7fQpkaXYjc2VkX2hlbHAgbGkge2xp c3Qtc3R5bGUtdHlwZTogZGlzYzt9CmRpdiNzZWRfaGVscCBsaSBsaSB7bGlzdC1zdHlsZS10 eXBlOiBjaXJjbGU7fQpkaXYjc2VkX2hlbHAgbGkgbGkgbGkge2xpc3Qtc3R5bGUtdHlwZTog c3F1YXJlO30KZGl2I3NlZF9oZWxwIGxpIGEgY29kZSB7Zm9udC13ZWlnaHQ6IG5vcm1hbDt9 CmRpdiNzZWRfaGVscCBsaSBjb2RlOmZpcnN0LWNoaWxkIHtiYWNrZ3JvdW5kOiAjZGRkO3Bh ZGRpbmc6MCAuM2VtO21hcmdpbi1sZWZ0Oi0uM2VtO30KZGl2I3NlZF9oZWxwIGxpIGxpIGNv ZGU6Zmlyc3QtY2hpbGQge2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjA7bWFyZ2luLWxlZnQ6 MDt9CmRpdiNzZWRfaGVscCBkZm4ge2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHlsZTpvYmxp cXVlO30KZGl2I3NlZF9oZWxwIC5yZXF1aXJlZCwgZGl2I3NlZF9oZWxwIC53YXJuaW5nIHtj b2xvcjpyZWQ7fQpkaXYjc2VkX2hlbHAgLmRlZmF1bHQge2NvbG9yOmdyZWVuO30KPC9zdHls ZT4KIDxkaXYgaWQ9InNlZF9oZWxwIj4KCgk8aDE+c29vX3dvcmRmZXN0PC9oMT4KCiA8ZGl2 IGlkPSJ0b2MiPgoKCTxoMj5Db250ZW50czwvaDI+CgoJPHVsPgoJCTxsaT48YSBocmVmPSIj b3ZlcnZpZXciPk92ZXJ2aWV3PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN1c2FnZSI+VXNh Z2U8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3RhZ3MiPlRhZ3M8L2E+Cgk8dWw+CgkJPGxp PjxhIGhyZWY9IiNzb29fd29yZGZlc3QiPnNvb193b3JkZmVzdDwvYT48L2xpPgoJCTxsaT48 YSBocmVmPSIjc29vX3dvcmRmZXN0X3J1bGVzIj5zb29fd29yZGZlc3RfcnVsZXM8L2E+PC9s aT4KCQk8bGk+PGEgaHJlZj0iI3Nvb19pZl93b3JkZmVzdCI+c29vX2lmX3dvcmRmZXN0PC9h PjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNzb29faWZfd29yZGZlc3RpdmUiPnNvb19pZl93b3Jk ZmVzdGl2ZTwvYT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48YSBocmVmPSIjZXhhbXBsZXMi PkV4YW1wbGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNub3RlcyI+Tm90ZXM8L2E+PC9s aT4KCQk8bGk+PGEgaHJlZj0iI3N1cHBvcnQiPlN1cHBvcnQ8L2E+PC9saT4KCQk8bGk+PGEg aHJlZj0iI2hpc3RvcnkiPkhpc3Rvcnk8L2E+PC9saT4KCTwvdWw+CgogPC9kaXY+CgoJPGgy IGlkPSJvdmVydmlldyI+T3ZlcnZpZXc8L2gyPgoKCTxwPlN1YnZlcnQgdGhlIGRvbWluYW50 IHBhcmFkaWdtIGFuZCBhZGQgZmVzdGl2aXR5IHRvIHlvdXIgY29tbWVudHMgd2l0aCB0aGlz IFRleHRwYXR0ZXJuIHZlcnNpb24gb2YgQWxsZW4gQ2hhbmcmIzgyMTc7cyBkZWxpZ2h0ZnVs bHkgY2xldmVyIDxhIGhyZWY9Imh0dHA6Ly9jaGFvdGljcGF0dGVybi5jb20vYWJvdXQvI29u LXdvcmRmZXN0Ij5Xb3JkZmVzdCBnYW1lPC9hPiBmb3IgPGEgaHJlZj0iaHR0cDovL3N5bXBo b255LWNtcy5jb20vIj5TeW1waG9ueSA8c3BhbiBjbGFzcz0iY2FwcyI+Q01TPC9zcGFuPjwv YT4gY29tbWVudGVycy4gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92 aWV3dG9waWMucGhwP2lkPTMwMDY5Ij48c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBQ YWNrPC9hPiBjb21wYXRpYmxlIChidXQgZm9yIG5vbi1FbmdsaXNoIHVzYWdlIHBsZWFzZSBz ZWUgPGEgaHJlZj0iI25vdGVzIj5Ob3RlczwvYT4pLjwvcD4KCgk8cD5UaGUgb2JqZWN0IG9m IDxzdHJvbmc+V29yZGZlc3Q8L3N0cm9uZz4gaXMgdG8gbWVldCBhIHNldCBvZiBjb25zdHJh aW50cyBvbiB3cml0aW5nIGEgY29tbWVudCBtZXNzYWdlLiBUaGVyZSBpcyBhIGNvbmRpdGlv bmFsIHRhZyB0aGF0IGFsbG93cyB5b3UgdG8gZmxhZyBzdWNjZXNzZnVsIGNvbW1lbnRzIGhv d2V2ZXIgeW91IGNob29zZS48L3A+CgoJPGgyIGlkPSJ1c2FnZSI+VXNhZ2U8L2gyPgoKCTxw PkF0IGEgbWluaW11bSwgeW91IG11c3Qgc3RpY2sgYSA8Y29kZT5zb29fd29yZGZlc3Q8L2Nv ZGU+IHRhZyBzb21ld2hlcmUgYWJvdmUgdGhlIGFydGljbGUgY29tbWVudHMsIHRoZW4gdXNl IG9uZSBvciBtb3JlIDxzdHJvbmc+c29vX3dvcmRmZXN0PC9zdHJvbmc+IG91dHB1dCB0YWdz IGluIHlvdXIgYXJ0aWNsZSBhbmQvb3IgY29tbWVudCBmb3Jtcy48L3A+CgoJPGgyIGlkPSJ0 YWdzIj5UYWdzPC9oMj4KCgk8aDMgaWQ9InNvb193b3JkZmVzdCI+c29vX3dvcmRmZXN0PC9o Mz4KCgk8cD5BIHNpbmdsZSB0YWcgeW91IHVzZSB0byBzZXQgdGhlIHJ1bGVzIG9mIHRoZSBn YW1lLiBZb3UgY291bGQgcHJvYmFibHkgcHV0IGl0IGFueXdoZXJlLCBzbyBsb25nIGFzIGl0 IGNvbWVzIGJlZm9yZSBhbnkgb3RoZXIgPHN0cm9uZz5zb29fd29yZGZlc3Q8L3N0cm9uZz4g dGFncywgYnV0IHRoZSBpbnRlbnQgaXMgdG8gdXNlIGl0IGRpcmVjdGx5IGluIGFuIGFydGlj bGUgYm9keS4gVGhpcyBhbGxvd3MgeW91IHRvIGVuYWJsZSBhbmQgc2V0IHJ1bGVzIGZvciB0 aGUgZ2FtZSBvbiBhIHBlci1hcnRpY2xlIGJhc2lzOyBpdCB3b3VsZG4mIzgyMTc7dCBiZSBw YXJ0aWN1bGFybHkgZmVzdGl2ZSB0byBoYXZlIHRoZSBzYW1lIHJ1bGVzIGFjcm9zcyBhcnRp Y2xlcy4gVGhlIHRhZyBpdHNlbGYgZG9lc24mIzgyMTc7dCBvdXRwdXQgYW55dGhpbmc7IGl0 IGp1c3Qgc2V0cyBnbG9iYWwgdmFyaWFibGVzIHVzZWQgYnkgdGhlIG90aGVyIHRhZ3MuPC9w PgoKCTxwPjxzcGFuIGNsYXNzPSJ3YXJuaW5nIj5Ob3RlOjwvc3Bhbj4gd2hpbGUgdGhlcmUg aXMgc29tZSBtaWxkIGVycm9yIGNoZWNraW5nLCBpdCBpcyByZWFsbHkgdXAgdG8geW91IHRv IHBpY2sgYSBzZW5zaWJsZSBzZXQgb2YgcnVsZXMuPC9wPgoKPHByZT4mIzYwO3R4cDpzb29f d29yZGZlc3QgLyYjNjI7CjwvcHJlPgoKCTxoND5BdHRyaWJ1dGVzPC9oND4KCgk8cD5BbGwg YXR0cmlidXRlcyA8c3BhbiBjbGFzcz0iZGVmYXVsdCI+ZGVmYXVsdDwvc3Bhbj4gdG8gZW1w dHksIHNvIHlvdSA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPm11c3Q8L3NwYW4+IHNldCBhdCBs ZWFzdCBvbmUgYXR0cmlidXRlIHRvIGVuYWJsZSA8c3Ryb25nPldvcmRmZXN0PC9zdHJvbmc+ LiBFYWNoIGF0dHJpYnV0ZSB5b3Ugc2V0IGNyZWF0ZXMgYW4gYWRkaXRpb25hbCBydWxlIGZv ciB0aGUgZ2FtZS48L3A+CgoJPHA+QWxsIG9mIHRoZSB0ZXh0IGF0dHJpYnV0ZXMgYXJlIGNh c2UtaW5zZW5zaXRpdmUuIChGb3Igbm9uLUVuZ2xpc2ggd2Vic2l0ZXMgcGxlYXNlIHNlZSA8 YSBocmVmPSIjbm90ZXMiPk5vdGVzPC9hPi4pPC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+bXVz dF9jb250YWluPC9jb2RlPiA8ZW0+KHRleHQpPC9lbT48YnIgLz4KVGV4dCB0aGF0IG11c3Qg YXBwZWFyIHNvbWV3aGVyZSBpbiB0aGUgY29tbWVudC48L2xpPgoJCTxsaT48Y29kZT5tdXN0 X2JlZ2luPC9jb2RlPiA8ZW0+KHRleHQpPC9lbT48YnIgLz4KVGV4dCB0aGF0IG11c3QgYXBw ZWFyIGF0IHRoZSBzdGFydCBvZiB0aGUgY29tbWVudC48L2xpPgoJCTxsaT48Y29kZT5tdXN0 X2VuZDwvY29kZT4gPGVtPih0ZXh0KTwvZW0+PGJyIC8+ClRleHQgdGhhdCBtdXN0IGFwcGVh ciBhdCB0aGUgZW5kIG9mIHRoZSBjb21tZW50LjwvbGk+CgkJPGxpPjxjb2RlPmFuYWdyYW08 L2NvZGU+IDxlbT4odGV4dCk8L2VtPjxiciAvPgpUZXh0IGZvciB3aGljaCBhbiBhbmFncmFt IG11c3QgYXBwZWFyIHNvbWV3aGVyZSBpbiB0aGUgY29tbWVudC48L2xpPgoJCTxsaT48Y29k ZT53b3JkX2NvdW50PC9jb2RlPiA8ZW0+KGludGVnZXIpPC9lbT48YnIgLz4KRXhhY3QgbnVt YmVyIG9mIHdvcmRzIGFsbG93ZWQuPC9saT4KCQk8bGk+PGNvZGU+bWF4X3dvcmRfY291bnQ8 L2NvZGU+IDxlbT4oaW50ZWdlcik8L2VtPjxiciAvPgpNYXhpbXVtIG51bWJlciBvZiB3b3Jk cyBhbGxvd2VkLjwvbGk+CgkJPGxpPjxjb2RlPm1pbl93b3JkX2xlbmd0aDwvY29kZT4gPGVt PihpbnRlZ2VyKTwvZW0+PGJyIC8+Ck1pbmltdW0gd29yZCBsZW5ndGguPC9saT4KCQk8bGk+ PGNvZGU+bWF4X3dvcmRfbGVuZ3RoPC9jb2RlPiA8ZW0+KGludGVnZXIpPC9lbT48YnIgLz4K TWF4aW11bSB3b3JkIGxlbmd0aC48L2xpPgoJCTxsaT48Y29kZT5ub3Rfd29yZF9sZW5ndGg8 L2NvZGU+IDxlbT4oaW50ZWdlcik8L2VtPjxiciAvPgpXb3JkIGxlbmd0aCB0aGF0IG11c3Qg YmUgYXZvaWRlZC48L2xpPgoJPC91bD4KCgk8aDMgaWQ9InNvb193b3JkZmVzdF9ydWxlcyI+ c29vX3dvcmRmZXN0X3J1bGVzPC9oMz4KCgk8cD5BIHNpbmdsZSB0YWcgdGhhdCBkaXNwbGF5 cyB0aGUgcnVsZXMgaW4gZWZmZWN0LiBJdCBpc24mIzgyMTc7dCBjb250ZXh0IHNlbnNpdGl2 ZSwgc28geW91IGNhbiB1c2UgaXQgYW55d2hlcmUgZm9sbG93aW5nIHRoZSA8YSBocmVmPSIj c29vX3dvcmRmZXN0Ij48Y29kZT5zb29fd29yZGZlc3Q8L2NvZGU+PC9hPiB0YWcsIGJ1dCBw cmVzdW1hYmx5IHlvdSB3aWxsIHdhbnQgdG8gdXNlIGl0IGluIGFuIGFydGljbGUgb3IgY29t bWVudCBmb3JtLjwvcD4KCgk8cD5Vc2VzIHRoZSBzdHJpbmdzIHNldCBpbiB0aGUgcGx1Z2lu JiM4MjE3O3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9w aWMucGhwP2lkPTMwMDY5Ij48c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBQYWNrPC9h PiBkZWZpbml0aW9ucywgc28geW91IGNhbiB0cmFuc2xhdGUgb3IgZWRpdCB0aGVzZSBhcyBk ZXNpcmVkLjwvcD4KCjxwcmU+JiM2MDt0eHA6c29vX3dvcmRmZXN0X3J1bGVzIC8mIzYyOwo8 L3ByZT4KCgk8aDQ+QXR0cmlidXRlczwvaDQ+CgoJPHA+U3RhbmRhcmQgVHhwIGF0dHJpYnV0 ZXM7IG5vbmUgIDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+LjwvcD4K Cgk8dWw+CgkJPGxpPjxjb2RlPmh0bWxfaWQ8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+Y2xh c3M8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+d3JhcHRhZzwvY29kZT48L2xpPgoJCTxsaT48 Y29kZT5icmVhazwvY29kZT48L2xpPgoJPC91bD4KCgk8aDMgaWQ9InNvb19pZl93b3JkZmVz dCI+c29vX2lmX3dvcmRmZXN0PC9oMz4KCgk8cD5BIHN0YW5kYXJkIFR4cCBjb25kaXRpb25h bCB0YWcgdGhhdCBzaW1wbHkgY2hlY2tzIHdoZXRoZXIgb3Igbm90IGFueSA8c3Ryb25nPldv cmRmZXN0PC9zdHJvbmc+IHJ1bGVzIGhhdmUgYmVlbiBzZXQuPC9wPgoKPHByZT4mIzYwO3R4 cDpzb29faWZfd29yZGZlc3QmIzYyOwouLi4gb3V0cHV0IGlmIFdvcmRmZXN0IHJ1bGVzIGFy ZSBpbiBlZmZlY3QgLi4uCiYjNjA7dHhwOmVsc2UgLyYjNjI7Ci4uLiBvdGhlcndpc2UgdGhp cyAuLi4KJiM2MDsvdHhwOnNvb19pZl93b3JkZmVzdCYjNjI7CjwvcHJlPgoKCTxoND5BdHRy aWJ1dGVzPC9oND4KCgk8cD5Ob25lLjwvcD4KCgk8aDMgaWQ9InNvb19pZl93b3JkZmVzdGl2 ZSI+c29vX2lmX3dvcmRmZXN0aXZlPC9oMz4KCgk8cD5BIHN0YW5kYXJkIFR4cCBjb25kaXRp b25hbCB0YWcgdGhhdCBjaGVja3Mgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgY29tbWVu dCBtZWV0cyB0aGUgY3VycmVudCA8c3Ryb25nPldvcmRmZXN0PC9zdHJvbmc+IHJ1bGVzLiA8 c3BhbiBjbGFzcz0icmVxdWlyZWQiPlVzZSBvbmx5PC9zcGFuPiBpbiBhIGNvbW1lbnQgZGlz cGxheSBmb3JtLjwvcD4KCjxwcmU+JiM2MDt0eHA6c29vX2lmX3dvcmRmZXN0aXZlJiM2MjsK Li4uIG91dHB1dCBpZiBjb21tZW50IGlzIHByb3Blcmx5IFdvcmRmZXN0aXZlIC4uLgomIzYw O3R4cDplbHNlIC8mIzYyOwouLi4gb3RoZXJ3aXNlIHRoaXMgLi4uCiYjNjA7L3R4cDpzb29f aWZfd29yZGZlc3RpdmUmIzYyOwo8L3ByZT4KCgk8aDQ+QXR0cmlidXRlczwvaDQ+CgoJPHA+ Tm9uZS48L3A+CgoJPGgyIGlkPSJleGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoKCTxwPlNlZSA8 YSBocmVmPSJodHRwOi8vaXBzZWRpeGl0Lm5ldC90eHAvODgvd29yZGZlc3QiPmh0dHA6Ly9p cHNlZGl4aXQubmV0L3R4cC84OC93b3JkZmVzdDwvYT4gZm9yIHdvcmtpbmcgZXhhbXBsZXMu PC9wPgoKCTxoMiBpZD0ibm90ZXMiPk5vdGVzPC9oMj4KCgk8aDM+SW50ZXJuYXRpb25hbGl6 YXRpb248L2gzPgoKCTxwPkRlc3BpdGUgaGF2aW5nIGFkZGVkIHRoZSA8YSBocmVmPSJodHRw Oi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MzAwNjkiPjxzcGFu IGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IFBhY2s8L2E+IGZ1bmN0aW9ucywgSSByZWFsbHkg aGF2ZSBubyBleHBlcmllbmNlIGluIGRlYWxpbmcgd2l0aCBpbnRlcm5hdGlvbmFsaXphdGlv bi4gSSYjODIxNzttIHF1aXRlIHN1cmUgdGhlIGFuYWdyYW0gZnVuY3Rpb24gY3VycmVudGx5 IG9ubHkgd29ya3Mgd2l0aGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+QVNDSUk8L3NwYW4+ IHNldC4gSSBmZWFyIHRoZSBvdGhlciB0ZXh0LWJhc2VkIGZ1bmN0aW9ucyBhcmUgc2ltaWxh cnkgbGltaXRlZCwgdXNpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gZnVuY3Rp b25zIHN1Y2ggYXMgPGNvZGU+c3Vic3RyKCk8L2NvZGU+IHRoYXQgb25seSB3b3JrIHdpdGgg c2luZ2xlLWJ5dGUgdGV4dC4gQW55IGhpbnRzIG9yIHN1Z2dlc3Rpb25zIGFwcHJlY2lhdGVk LjwvcD4KCgk8aDIgaWQ9InN1cHBvcnQiPlN1cHBvcnQ8L2gyPgoKCTx1bD4KCQk8bGk+PGEg aHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTMx NDMwIj5UZXh0cGF0dGVybiBzdXBwb3J0IGZvcnVtIHRocmVhZDwvYT48L2xpPgoJCTxsaT48 YSBocmVmPSJodHRwOi8vaXBzZWRpeGl0Lm5ldC90eHAvODgvd29yZGZlc3QiPk9ubGluZSBk b2N1bWVudGF0aW9uPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9pcHNlZGl4aXQu bmV0L2luZm8vMi9jb250YWN0Ij5Db250YWN0IHRoZSBhdXRob3I8L2E+PC9saT4KCTwvdWw+ CgoJPGgyIGlkPSJoaXN0b3J5Ij5WZXJzaW9uIEhpc3Rvcnk8L2gyPgoKCTxoMz4wLjMgKDIw MTctMDItMTUpPC9oMz4KCgk8cD5UZXh0cGF0dGVybiA0LjYgY29tcGF0aWJpbGl0eSB1cGRh dGU8L3A+CgoJPGgzPjAuMiAoQXVndXN0IDIsIDIwMDkpPC9oMz4KCgk8cD5BZGRlZCA8Y29k ZT5hbmFncmFtPC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+c29vX3dvcmRmZXN0PC9jb2Rl Pi48L3A+CgoJPGgzPjAuMSAoQXVndXN0IDEsIDIwMDkpPC9oMz4KCgk8cD5Ib3Qgb2ZmIHRo ZSBncmlsbC48L3A+CgogPC9kaXY+IjtzOjQ6ImNvZGUiO3M6NjA0MDoiCmlmKGNsYXNzX2V4 aXN0cygnXFRleHRwYXR0ZXJuXFRhZ1xSZWdpc3RyeScpKSB7CglUeHA6OmdldCgnXFRleHRw YXR0ZXJuXFRhZ1xSZWdpc3RyeScpCgkJLT5yZWdpc3Rlcignc29vX3dvcmRmZXN0JykKCQkt PnJlZ2lzdGVyKCdzb29fd29yZGZlc3RfcnVsZXMnKQoJCS0+cmVnaXN0ZXIoJ3Nvb19pZl93 b3JkZmVzdCcpCgkJLT5yZWdpc3Rlcignc29vX2lmX3dvcmRmZXN0aXZlJykKCQk7Cn0KCmZ1 bmN0aW9uIHNvb193b3JkZmVzdCggJGF0dHMgKSB7CglnbG9iYWwgJHNvb193b3JkZmVzdDsK CSRpbnRlZ2VyX2F0dHMgPSBhcnJheSgKCQknd29yZF9jb3VudCcJCT0+ICcnLAoJCSdtYXhf d29yZF9jb3VudCcJPT4gJycsCgkJJ21pbl93b3JkX2xlbmd0aCcJPT4gJycsCgkJJ21heF93 b3JkX2xlbmd0aCcJPT4gJycsCgkJJ25vdF93b3JkX2xlbmd0aCcJPT4gJycsCgkpOwoJJGF0 dHMgPSBsQXR0cyhhcnJheSgKCQknbXVzdF9jb250YWluJwkJPT4gJycsCgkJJ211c3RfYmVn aW4nCQk9PiAnJywKCQknbXVzdF9lbmQnCQkJPT4gJycsCgkJJ2FuYWdyYW0nCQkJPT4gJycs CgkpICsgJGludGVnZXJfYXR0cywgJGF0dHMpOwoJZm9yZWFjaCAoICRhdHRzIGFzICRuYW1l ID0+ICR2YWx1ZSApIHsKCQlpZiAoIGFycmF5X2tleV9leGlzdHMoJG5hbWUsICRpbnRlZ2Vy X2F0dHMpICkKCQkJJHZhbHVlID0gYWJzKGludHZhbCgkdmFsdWUpKTsKCQlpZiAoIGlzX3N0 cmluZygkdmFsdWUpICkKCQkJJHZhbHVlID0gdHJpbSgkdmFsdWUpOwoJCWlmICggJG5hbWUg PT0gJ2FuYWdyYW0nICkKCQkJJHZhbHVlID0gcHJlZ19yZXBsYWNlKCcvW15hLXpcc1wnXS9p JywgJycsICR2YWx1ZSk7CgkJaWYgKCAkdmFsdWUgKQoJCQkkc29vX3dvcmRmZXN0WyRuYW1l XSA9ICR2YWx1ZTsKCX0KfQoKZnVuY3Rpb24gc29vX3dvcmRmZXN0X3J1bGVzKCAkYXR0cyAp IHsKCWdsb2JhbCAkc29vX3dvcmRmZXN0OwoJZXh0cmFjdChsQXR0cyhhcnJheSgKCQknaHRt bF9pZCcJCT0+CScnLAoJCSdjbGFzcycJCQk9PgknJywKIAkJJ3dyYXB0YWcnCQk9PgknJywK IAkJJ2JyZWFrJwkJCT0+CScnLAoJKSwgJGF0dHMpKTsKCglmb3JlYWNoICggJHNvb193b3Jk ZmVzdCBhcyAkcnVsZSA9PiAkdmFsdWUgKSB7CgkJJGRpc3BsYXkgPSBzb29fd29yZGZlc3Rf Z1R4dCgkcnVsZSk7CgkJaWYgKCBpc19zdHJpbmcoJHZhbHVlKSApIHsKCQkJJGlzX3BsdXJh bCA9IHN0cl93b3JkX2NvdW50KCR2YWx1ZSkgPiAxOwoJCQkkcGF0dGVybiA9ICcvXHsoW159 XSspXHwoW159XSspXH0vJzsKCQkJcHJlZ19tYXRjaCgkcGF0dGVybiwgJGRpc3BsYXksICRt YXRjaCk7CgkJCWlmICggY291bnQoJG1hdGNoKSApIHsKCQkJCSRyZXBsYWNlbWVudCA9ICRp c19wbHVyYWwgPyAkbWF0Y2hbMl0gOiAkbWF0Y2hbMV07CgkJCQkkZGlzcGxheSA9IHByZWdf cmVwbGFjZSgkcGF0dGVybiwgJHJlcGxhY2VtZW50LCAkZGlzcGxheSk7CgkJCX0KCQkJJHZh bHVlID0gc29vX3dvcmRmZXN0X2dUeHQoJ2xxdW8nKSAuICR2YWx1ZSAuCgkJCQlzb29fd29y ZGZlc3RfZ1R4dCgncnF1bycpOwoJCX0KCQkkZGlzcGxheSA9IHN0cl9yZXBsYWNlKCd7eH0n LCAkdmFsdWUsICRkaXNwbGF5KTsKCQlpZiAoICR2YWx1ZSApCgkJCSRvdXRbXSA9ICRkaXNw bGF5OwoJfQoJcmV0dXJuIGRvV3JhcCgkb3V0LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3Ms ICcnLCAnJywgJycsICRodG1sX2lkKTsKfQoKZnVuY3Rpb24gc29vX2lmX3dvcmRmZXN0KCAk YXR0cywgJHRoaW5nICkgewoJZ2xvYmFsICRzb29fd29yZGZlc3Q7CglyZXR1cm4gcGFyc2Uo RXZhbEVsc2UoJHRoaW5nLCBpc19hcnJheSgkc29vX3dvcmRmZXN0KSkpOwp9CgpmdW5jdGlv biBzb29faWZfd29yZGZlc3RpdmUoICRhdHRzLCAkdGhpbmcgKSB7CgoJZ2xvYmFsICRzb29f d29yZGZlc3QsICR0aGlzY29tbWVudDsKCglpZiAoIGlzX2FycmF5KCRzb29fd29yZGZlc3Qp ICkKCQlleHRyYWN0KCRzb29fd29yZGZlc3QpOwoJZWxzZQoJCXJldHVybjsKCglhc3NlcnRf Y29tbWVudCgpOwoJJGNvbW1lbnQgPSB0cmltKHN0cnRvbG93ZXIoc3RyaXBfdGFncygkdGhp c2NvbW1lbnRbJ21lc3NhZ2UnXSkpKTsKCgkkcGFzcyA9IHRydWU7CgoJaWYgKCAhIGVtcHR5 KCRtdXN0X2NvbnRhaW4pICkKCQlpZiAoICRjb21tZW50ID09IHN0cl9pcmVwbGFjZSgkbXVz dF9jb250YWluLCAnJywgJGNvbW1lbnQpICkKCQkJJHBhc3MgPSBmYWxzZTsKCglpZiAoICRw YXNzIGFuZCAhIGVtcHR5KCRtdXN0X2JlZ2luKSApCgkJaWYgKCBzdHJ0b2xvd2VyKCRtdXN0 X2JlZ2luKSAhPSBzdWJzdHIoJGNvbW1lbnQsIDAsIHN0cmxlbigkbXVzdF9iZWdpbikpICkK CQkJJHBhc3MgPSBmYWxzZTsKCglpZiAoICRwYXNzIGFuZCAhIGVtcHR5KCRtdXN0X2VuZCkg KQoJCWlmICggc3RydG9sb3dlcigkbXVzdF9lbmQpICE9IHN1YnN0cigkY29tbWVudCwgLSBz dHJsZW4oJG11c3RfZW5kKSkgKQoJCQkkcGFzcyA9IGZhbHNlOwoKCWlmICggJHBhc3MgYW5k ICEgZW1wdHkoJHdvcmRfY291bnQpICkKCQlpZiAoICR3b3JkX2NvdW50ICE9IHN0cl93b3Jk X2NvdW50KCRjb21tZW50KSApCgkJCSRwYXNzID0gZmFsc2U7CgoJaWYgKCAkcGFzcyBhbmQg ISBlbXB0eSgkbWF4X3dvcmRfY291bnQpICkKCQlpZiAoICRtYXhfd29yZF9jb3VudCA8IHN0 cl93b3JkX2NvdW50KCRjb21tZW50KSApCgkJCSRwYXNzID0gZmFsc2U7CgoJaWYgKCAkcGFz cyBhbmQgKCAhIGVtcHR5KCRtaW5fd29yZF9sZW5ndGgpIG9yICEgZW1wdHkoJG1heF93b3Jk X2xlbmd0aCkKCQlvciAhIGVtcHR5KCRub3Rfd29yZF9sZW5ndGgpIG9yICEgZW1wdHkoJGFu YWdyYW0pICkgKSB7CgoJCSR3b3JkcyA9IHByZWdfc3BsaXQoJy9bXFddKy8nLCAkY29tbWVu dCk7CgkJZm9yZWFjaCAoICR3b3JkcyBhcyAkd29yZCApCgkJCSR3b3JkX2xlbmd0aHNbXSA9 IHN0cmxlbigkd29yZCk7CgkJJHNfd29yZF9sZW5ndGhzID0gYXJyYXlfdW5pcXVlKCR3b3Jk X2xlbmd0aHMpOwoJCXNvcnQoJHNfd29yZF9sZW5ndGhzKTsKCQlpZiAoICRzX3dvcmRfbGVu Z3Roc1swXSA9PSAwICkKCQkJYXJyYXlfc2hpZnQoJHNfd29yZF9sZW5ndGhzKTsKCgkJaWYg KCAhIGVtcHR5KCRtaW5fd29yZF9sZW5ndGgpICkKCQkJaWYgKCAkbWluX3dvcmRfbGVuZ3Ro ID4gJHNfd29yZF9sZW5ndGhzWzBdICkKCQkJCSRwYXNzID0gZmFsc2U7CgoJCWlmICggJHBh c3MgYW5kICEgZW1wdHkoJG1heF93b3JkX2xlbmd0aCkgKQoJCQlpZiAoICRtYXhfd29yZF9s ZW5ndGggPCAkc193b3JkX2xlbmd0aHNbY291bnQoJHNfd29yZF9sZW5ndGhzKSAtIDFdICkK CQkJCSRwYXNzID0gZmFsc2U7CgoJCWlmICggJHBhc3MgYW5kICEgZW1wdHkoJG5vdF93b3Jk X2xlbmd0aCkgKQoJCQlpZiAoIGluX2FycmF5KCRub3Rfd29yZF9sZW5ndGgsICRzX3dvcmRf bGVuZ3RocykgKQoJCQkJJHBhc3MgPSBmYWxzZTsKCgkJaWYgKCAkcGFzcyBhbmQgISBlbXB0 eSgkYW5hZ3JhbSkgKSB7CgkJCSRhbmFncmFtID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2Uo Jy9bXmEtel0vaScsICcnLCAkYW5hZ3JhbSkpOwoJCQkkbGV0dGVycyA9IHN0cl9zcGxpdCgk YW5hZ3JhbSk7CgkJCXNvcnQoJGxldHRlcnMpOwoJCQkkY291bnQgPSBjb3VudCgkbGV0dGVy cyk7CgkJCSR3b3JkcyA9IHByZWdfcmVwbGFjZSgnL1teYS16XS9pJywgJycsICR3b3Jkcyk7 CgkJCSRtYXRjaCA9IGZhbHNlOwoJCQl3aGlsZSAoICEgJG1hdGNoIGFuZCBjb3VudCgkd29y ZHMpICkgewoJCQkJJHRlc3Rfc3RyaW5nID0gJHdvcmRzWzBdOwoJCQkJJGNfbWF0Y2ggPSBz dHJsZW4oJHRlc3Rfc3RyaW5nKSA9PSAkY291bnQ7CgkJCQkkaSA9IDE7CgkJCQl3aGlsZSAo ICEgJGNfbWF0Y2ggYW5kICRpIDwgY291bnQoJHdvcmRzKSApIHsKCQkJCQkkdGVzdF9zdHJp bmcgLj0gJHdvcmRzWyRpXTsKCQkJCQkkY19tYXRjaCA9IHN0cmxlbigkdGVzdF9zdHJpbmcp ID09ICRjb3VudDsKCQkJCQlpZiAoIHN0cmxlbigkdGVzdF9zdHJpbmcpID4gJGNvdW50ICkK CQkJCQkJJGkgPSBjb3VudCgkd29yZHMpOwoJCQkJCSRpKys7CgkJCQl9CgkJCQlpZiAoICRj X21hdGNoICkgewoJCQkJCSR0ZXN0X3N0cmluZyA9IHN0cnRvbG93ZXIoJHRlc3Rfc3RyaW5n KTsKCQkJCQkkdGVzdF9hcnJheSA9IHN0cl9zcGxpdCgkdGVzdF9zdHJpbmcpOwoJCQkJCXNv cnQoJHRlc3RfYXJyYXkpOwoJCQkJCSRtYXRjaCA9ICggJGxldHRlcnMgPT0gJHRlc3RfYXJy YXkgYW5kICRhbmFncmFtICE9ICR0ZXN0X3N0cmluZyApOwoJCQkJfQoJCQkJYXJyYXlfc2hp ZnQoJHdvcmRzKTsKCQkJfQoJCQkkcGFzcyA9ICRtYXRjaDsKCQl9Cgl9CgoJcmV0dXJuIHBh cnNlKEV2YWxFbHNlKCR0aGluZywgJHBhc3MpKTsKfQoKICAvLy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8v CiAvLwkJCQkJCQlNTFAgUGFjayBkZWZpbml0aW9ucwkJCQkJCS8vCi8vLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLy8KCmRlZmluZSgnU09PX1dPUkRGRVNUX1BSRUZJWCcsICdzb29fZmVzdCcpOwpnbG9i YWwgJHNvb193b3JkZmVzdF9zdHJpbmdzOwokc29vX3dvcmRmZXN0X3N0cmluZ3MgPSBhcnJh eSgKCSdtdXN0X2NvbnRhaW4nCQk9PiAnY29udGFpbiB0aGUge3dvcmR8cGhyYXNlfSB7eH0n LAoJJ211c3RfYmVnaW4nCQk9PiAnYmVnaW4gd2l0aCB0aGUge3dvcmR8cGhyYXNlfSB7eH0n LAoJJ211c3RfZW5kJwkJCT0+ICdlbmQgd2l0aCB0aGUge3dvcmR8cGhyYXNlfSB7eH0nLAoJ J3dvcmRfY291bnQnCQk9PiAnYmUgZXhhY3RseSB7eH0gd29yZHMgbG9uZycsCgknbWF4X3dv cmRfY291bnQnCT0+ICdub3QgZXhjZWVkIHt4fSB3b3JkcycsCgknbWluX3dvcmRfbGVuZ3Ro Jwk9PiAnb25seSB1c2Ugd29yZHMgdGhhdCBhcmUgYXQgbGVhc3Qge3h9IGxldHRlcnMgbG9u ZycsCgknbWF4X3dvcmRfbGVuZ3RoJwk9PiAnb25seSB1c2Ugd29yZHMgdGhhdCBhcmUgbm90 IG1vcmUgdGhhbiB7eH0gbGV0dGVycyBsb25nJywKCSdub3Rfd29yZF9sZW5ndGgnCT0+ICdh dm9pZCB1c2luZyB7eH0tbGV0dGVyIHdvcmRzJywKCSdhbmFncmFtJwkJCT0+ICdjb250YWlu IGFuIGFuYWdyYW0gb2Yge3h9JywKCSdscXVvJwkJCQk9PiAnJmxkcXVvOycsCgkncnF1bycJ CQkJPT4gJyZyZHF1bzsnLAopOwoKcmVnaXN0ZXJfY2FsbGJhY2soJ3Nvb193b3JkZmVzdF9l bnVtZXJhdGVfc3RyaW5ncycsICdsMTBuLmVudW1lcmF0ZV9zdHJpbmdzJyk7CgpmdW5jdGlv biBzb29fd29yZGZlc3RfZW51bWVyYXRlX3N0cmluZ3MoICRldmVudCwgJHN0ZXAgPSAnJywg JHByZSA9IDAgKSB7CglnbG9iYWwgJHNvb193b3JkZmVzdF9zdHJpbmdzOwoJJHIgPSBhcnJh eSgKCQknb3duZXInCQk9PiAnc29vX3dvcmRmZXN0JywKCQkncHJlZml4Jwk9PiBTT09fV09S REZFU1RfUFJFRklYLAoJCSdsYW5nJwkJPT4gJ2VuLXVzJywKCQknZXZlbnQnCQk9PiAncHVi bGljJywKCQknc3RyaW5ncycJPT4gJHNvb193b3JkZmVzdF9zdHJpbmdzLAoJCQkJKTsKCXJl dHVybiAkcjsKfQoKZnVuY3Rpb24gc29vX3dvcmRmZXN0X2dUeHQoICR3aGF0ICwgJGFyZ3Mg PSBhcnJheSgpICkgewoJZ2xvYmFsICR0ZXh0YXJyYXk7CglnbG9iYWwgJHNvb193b3JkZmVz dF9zdHJpbmdzOwoKCSRrZXkgPSBTT09fV09SREZFU1RfUFJFRklYIC4gJy0nIC4gJHdoYXQ7 Cgkka2V5ID0gc3RydG9sb3dlcigka2V5KTsKCglpZihpc3NldCgkdGV4dGFycmF5WyRrZXld KSkKCQkkc3RyID0gJHRleHRhcnJheVska2V5XTsKCgllbHNlIHsKCQkka2V5ID0gc3RydG9s b3dlcigkd2hhdCk7CgoJCWlmKCBpc3NldCggJHNvb193b3JkZmVzdF9zdHJpbmdzWyRrZXld ICkgKQoJCQkkc3RyID0gJHNvb193b3JkZmVzdF9zdHJpbmdzWyRrZXldOwoJCWVsc2UKCQkJ JHN0ciA9ICR3aGF0OwoJfQoKCWlmKCAhZW1wdHkoJGFyZ3MpICkKCQkkc3RyID0gc3RydHIo ICRzdHIgLCAkYXJncyApOwoKCXJldHVybiAkc3RyOwp9CiI7czo0OiJ0eXBlIjtzOjE6IjAi O3M6NToiZmxhZ3MiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjM6Im1kNSI7czoz MjoiZTY2MjEwZGY0NTI5NzBkNTkxZGU2MzZiMDQ5NTE0ZGEiO30=