# Name: smd_article_stats v0.2 # Type: Admin/Client side plugin # Get article/excerpt statistics and display them to visitors # Author: Stef Dawson # URL: http://stefdawson.com/ # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE3OiJzbWRfYXJ0aWNsZV9zdGF0cyI7czo2OiJhdXRob3Ii O3M6MTE6IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3Rl ZmRhd3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6MzoiMC4yIjtzOjExOiJkZXNjcmlwdGlv biI7czo1OToiR2V0IGFydGljbGUvZXhjZXJwdCBzdGF0aXN0aWNzIGFuZCBkaXNwbGF5IHRo ZW0gdG8gdmlzaXRvcnMiO3M6NDoiY29kZSI7czozOTA5OiJpZiAoQHR4cGludGVyZmFjZSA9 PSAnYWRtaW4nKSB7DQoJcmVnaXN0ZXJfY2FsbGJhY2soInNtZF9hcnRpY2xlX2luZm8iLCAi YXJ0aWNsZSIpOw0KfQ0KDQovLyBDbGllbnQtc2lkZSBpbmZvDQpmdW5jdGlvbiBzbWRfYXJ0 aWNsZV9zdGF0cygkYXR0cywgJHRoaW5nPU5VTEwpIHsNCglnbG9iYWwgJHRoaXNhcnRpY2xl Ow0KDQoJYXNzZXJ0X2FydGljbGUoKTsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSd3 cmFwdGFnJyA9PiAnJywNCgkJJ2NsYXNzJyA9PiBfX0ZVTkNUSU9OX18sDQoJCSdicmVhaycg PT4gJycsDQoJCSdsYWJlbCcgPT4gJycsDQoJCSdsYWJlbHRhZycgPT4gJycsDQoJCSdpdGVt JyA9PiAnJywNCgkpLCAkYXR0cykpOw0KDQoJJG91dCA9IGFycmF5KCk7DQoJJGl0ZW0gPSBk b19saXN0KCRpdGVtKTsNCgkkb3V0W10gPSBzbWRfYXJ0aWNsZV9pbmZvX2NvdW50KCRpdGVt LCAkdGhpc2FydGljbGVbJ2JvZHknXSwgJHRoaXNhcnRpY2xlWydleGNlcnB0J10sICR0aGlz YXJ0aWNsZVsndGl0bGUnXSk7DQoNCglyZXR1cm4gZG9MYWJlbCgkbGFiZWwsICRsYWJlbHRh ZykuZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRjbGFzcyk7DQp9DQoNCi8vIEFk bWluLXNpZGUgaW5mbyAtLSBhdXRvLXVwZGF0ZWQgdmlhIGpRdWVyeQ0KZnVuY3Rpb24gc21k X2FydGljbGVfaW5mbygkZXZlbnQsICRzdGVwKSB7DQoJZXh0cmFjdChncHNhKGFycmF5KCd2 aWV3JykpKTsNCg0KCWlmKCEkdmlldyB8fCBncHMoJ3NhdmUnKSB8fCBncHMoJ3B1Ymxpc2gn KSkgew0KCQkkdmlldyA9ICd0ZXh0JzsNCgl9DQoNCglpZiAoJHZpZXcgPT0gJ3RleHQnKSB7 DQoJCSRzY3JlZW5fbG9jcyA9IGFycmF5KA0KCQkJJ25vbmUnID0+ICcnLA0KCQkJJ2V4Y2Vy cHRfYmVsb3cnID0+ICdkYXxhcnRpY2xlLW1haW4nLA0KCQkJJ3N0YXR1c19hYm92ZScgPT4g J2pxfCN3cml0ZS1zdGF0dXN8YmVmb3JlJywNCgkJCSd0aXRsZV9hYm92ZScgPT4gJ2pxfCNh cnRpY2xlLW1haW58cHJlcGVuZCcsDQoJCQkndGV4dGlsZV9oZWxwX2Fib3ZlJyA9PiAnanF8 I2FydGljbGUtY29sLTF8cHJlcGVuZCcsDQoJCQkndGV4dGlsZV9oZWxwX2JlbG93JyA9PiAn anF8I3RleHRpbGVfaGVscHxhZnRlcicsDQoJCSk7DQoNCgkJLy8gQ2hlY2sgaGlkZGVuIHBy ZWYgYW5kIHNhbml0aXplDQoJCSRwb3NuID0gZ2V0X3ByZWYoJ3NtZF9hcnRpY2xlX3N0YXRz X3BvcycsICdzdGF0dXNfYWJvdmUnKTsNCgkJJHBvc24gPSAoYXJyYXlfa2V5X2V4aXN0cygk cG9zbiwgJHNjcmVlbl9sb2NzKSkgPyAkcG9zbiA6ICdzdGF0dXNfYWJvdmUnOw0KCQkkcGxh Y2VyID0gZXhwbG9kZSgnfCcsICRzY3JlZW5fbG9jc1skcG9zbl0pOw0KDQoJCSRpZCA9IChl bXB0eSgkR0xPQkFMU1snSUQnXSkgPyBncHMoJ0lEJykgOiAkR0xPQkFMU1snSUQnXSk7DQoJ CSRpdGVtID0gYXJyYXkoJ2V4Y2VycHQnLCAnYm9keScpOw0KCQlpZiAoZW1wdHkoJGlkKSkg ew0KCQkJJHJzID0gYXJyYXkoJ0JvZHknID0+ICcnLCAnRXhjZXJwdCcgPT4gJycsICdTdGF0 dXMnID0+ICcnKTsNCgkJfSBlbHNlIHsNCgkJCSRycyA9IHNhZmVfcm93KCdCb2R5LCBFeGNl cnB0LCBTdGF0dXMnLCAndGV4dHBhdHRlcm4nLCAnSUQ9Jy5kb1NsYXNoKCRpZCkpOw0KCQl9 DQoNCgkJJGJ3YyA9IHNtZF9hcnRpY2xlX2luZm9fY291bnQoJGl0ZW0sICRyc1snQm9keSdd LCAnJywgJycpOw0KCQkkZXdjID0gc21kX2FydGljbGVfaW5mb19jb3VudCgkaXRlbSwgJycs ICRyc1snRXhjZXJwdCddLCAnJyk7DQoJCSR3b3JkcyA9ICRid2MgKyAkZXdjOw0KCQkkaWRs aW5rID0gKCRpZCAmJiBpbl9hcnJheSgkcnNbJ1N0YXR1cyddLCBhcnJheSg0LDUpKSkgPyAn PGEgaHJlZj0iJyAucGVybWxpbmt1cmxfaWQoJGlkKS4nIj4nIC4kaWQuICc8L2E+JyA6ICRp ZDsNCgkJJG91dDEgPSAnPGZpZWxkc2V0PjxsZWdlbmQ+QXJ0aWNsZSBTdGF0czwvbGVnZW5k PjxzcGFuIGNsYXNzPSJzbWRfYXJ0aWNsZV9zdGF0c193YyI+Jy4kd29yZHMuJzwvc3Bhbj4g d29yZDxzcGFuIGNsYXNzPSJzbWRfYXJ0aWNsZV9zdGF0c193ZCI+Jy4oKCR3b3Jkcz09MSk/ Jyc6J3MnKS4nPC9zcGFuPjogKCA8c3BhbiBjbGFzcz0ic21kX2FydGljbGVfc3RhdHNfYmMi PicuJGJ3Yy4nPC9zcGFuPiAvIDxzcGFuIGNsYXNzPSJzbWRfYXJ0aWNsZV9zdGF0c19lYyI+ Jy4kZXdjLic8L3NwYW4+ICknLigoJGlkKSA/ICcgfCBpZDogJyAuJGlkbGluayA6ICcnKS4n PC9maWVsZHNldD4nOw0KCQkkb3V0MiA9IDw8PEVPSlMNCjxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij4NCmpRdWVyeShmdW5jdGlvbigpIHsNCglqUXVlcnkoIiNib2R5LCAjZXhj ZXJwdCIpLmtleXVwKGZ1bmN0aW9uKCkgew0KCQl2YXIgYmR5ID0galF1ZXJ5KCIjYm9keSIp LnZhbCgpOw0KCQliZHkgKz0gKGJkeS5sZW5ndGg+MCkgPyAiICIgOiAiIjsNCgkJdmFyIGV4 YyA9IGpRdWVyeSgiI2V4Y2VycHQiKS52YWwoKTsNCgkJZXhjICs9IChleGMubGVuZ3RoPjAp ID8gIiAiIDogIiI7DQoJCXZhciBid2MgPSBiZHkucmVwbGFjZSgvKDwoW14+XSspPikvaWcs IiIpLnNwbGl0KC9ccysvKS5sZW5ndGgtMTsNCgkJdmFyIGV3YyA9IGV4Yy5yZXBsYWNlKC8o PChbXj5dKyk+KS9pZywiIikuc3BsaXQoL1xzKy8pLmxlbmd0aC0xOw0KCQl2YXIgd2RzID0g YndjK2V3YzsNCgkJalF1ZXJ5KCIuc21kX2FydGljbGVfc3RhdHNfd2MiKS50ZXh0KHdkcyk7 DQoJCWpRdWVyeSgiLnNtZF9hcnRpY2xlX3N0YXRzX3dkIikudGV4dCgoKHdkcz09MSk/IiI6 InMiKSk7DQoJCWpRdWVyeSgiLnNtZF9hcnRpY2xlX3N0YXRzX2JjIikudGV4dChid2MpOw0K CQlqUXVlcnkoIi5zbWRfYXJ0aWNsZV9zdGF0c19lYyIpLnRleHQoZXdjKTsNCgl9KTsNCn0p Ow0KPC9zY3JpcHQ+DQpFT0pTOw0KCQlpZiAoJHBsYWNlclswXSA9PSAnanEnKSB7DQoJCQll Y2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+alF1ZXJ5KGZ1bmN0aW9uKCkg eyBqUXVlcnkoIicuJHBsYWNlclsxXS4nIikuJy4kcGxhY2VyWzJdLicoXCcnLiRvdXQxLidc Jyk7IH0pOzwvc2NyaXB0PicuJG91dDI7DQoJCX0gZWxzZSBpZiAoJHBsYWNlclswXSA9PSAn ZGEnKSB7DQoJCQllY2hvIGRvbV9hdHRhY2goJHBsYWNlclsxXSwgJG91dDEuJG91dDIsICRv dXQxLCAnZGl2Jyk7DQoJCX0NCgl9DQp9DQoNCi8vIExpYnJhcnkgZnVuY3Rpb24NCmZ1bmN0 aW9uIHNtZF9hcnRpY2xlX2luZm9fY291bnQoJGl0ZW0sICRib2R5LCAkZXhjZXJwdCwgJHRp dGxlKSB7DQoJJHdvcmRzID0gMDsNCgkkbm90YWdzID0gJy8oPChbXj5dKz8pPikvJzsNCgkk Ym9keSA9IHByZWdfcmVwbGFjZSgkbm90YWdzLCAnJywgdHJpbSgkYm9keSkpIC4gKChzdHJs ZW4oJGJvZHkpPT0wKSA/ICcnIDogJyAnKTsNCgkkZXhjZXJwdCA9IHByZWdfcmVwbGFjZSgk bm90YWdzLCAnJywgdHJpbSgkZXhjZXJwdCkpIC4gKChzdHJsZW4oJGV4Y2VycHQpPT0wKSA/ ICcnIDogJyAnKTsNCgkkdGl0bGUgPSBwcmVnX3JlcGxhY2UoJG5vdGFncywgJycsIHRyaW0o JHRpdGxlKSkgLiAoKHN0cmxlbigkdGl0bGUpPT0wKSA/ICcnIDogJyAnKTsNCg0KCWZvcmVh Y2ggKCRpdGVtIGFzICR3aGF0bm90KSB7DQoJCXN3aXRjaCAoJHdoYXRub3QpIHsNCgkJCWNh c2UgImJvZHkiOg0KCQkJCSR3b3JkcyArPSBwcmVnX21hdGNoX2FsbCgnQFxzK0AnLCAkYm9k eSwgJG0pOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZXhjZXJwdCI6DQoJCQkJJHdvcmRzICs9 IHByZWdfbWF0Y2hfYWxsKCdAXHMrQCcsICRleGNlcnB0LCAkbSk7DQoJCQkJYnJlYWs7DQoJ CQljYXNlICJ0aXRsZSI6DQoJCQkJJHdvcmRzICs9IHByZWdfbWF0Y2hfYWxsKCdAXHMrQCcs ICR0aXRsZSwgJG0pOw0KCQkJCWJyZWFrOw0KCQl9DQoJfQ0KCXJldHVybiAkd29yZHM7DQp9 DQoiO3M6NDoidHlwZSI7czoxOiIxIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3Mi O3M6MToiMCI7czo0OiJoZWxwIjtzOjM2NzA6IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8aDE+ c21kX2FydGljbGVfc3RhdHM8L2gxPgoKCTxwPlB1dCB0aGlzIHRhZyBpbiB5b3VyIGFydGlj bGUgZm9ybSB0byBkaXNwbGF5IGluZm8gYWJvdXQgdGhlIGN1cnJlbnQgYXJ0aWNsZS4gVGFn cyBhcmUgaWdub3JlZC4gTm90ZSB0aGF0IGl0IG9ubHkgZGlzcGxheXMgdGhlIGFjdHVhbCBu dW1iZXIgb2Ygd29yZHMgZW50ZXJlZCBpbiB0aGUgYXJ0aWNsZSBpdHNlbGYgJiM4MjEyOyBp ZiBzb21lIG9mIHRoZSBjb250ZW50IGlzIGRlcml2ZWQgZnJvbSBvdGhlciBmb3JtcywgaXQg d2lsbCBub3QgYmUgaW5jbHVkZWQuPC9wPgoKCTxoMj5BdHRyaWJ1dGVzPC9oMj4KCgk8dWw+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5pdGVtPC9zcGFuPiA6IGxpc3Qgb2YgaXRlbXMg eW91IHdhbnQgdG8gZGlzcGxheS4gQ3VycmVudGx5IGNob29zZSBmcm9tIDxjb2RlPmJvZHk8 L2NvZGU+LCA8Y29kZT5leGNlcnB0PC9jb2RlPiBvciA8Y29kZT50aXRsZTwvY29kZT4gdG8g Z2V0IHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIHJlbGV2YW50IGZpZWxkczwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5sYWJlbDwvc3Bhbj4gOiBsYWJlbCB0ZXh0IHRvIG91 dHB1dCBiZWZvcmUgdGhlIHJlcXVlc3RlZCBpbmZvPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPmxhYmVsdGFnPC9zcGFuPiA6IChYKUhUTUwgdGFnIHdpdGhvdXQgYnJhY2tldHMg dG8gd3JhcCBhcm91bmQgdGhlIGxhYmVsPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PndyYXB0YWc8L3NwYW4+IDogKFgpSFRNTCB0YWcgd2l0aG91dCBicmFja2V0cyB0byB3cmFw IGFyb3VuZCB0aGUgb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNz PC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzbmFtZSB0byBh cHBseSB0byB0aGUgd3JhcHRhZzwvbGk+Cgk8L3VsPgoKCTxoMj5BZG1pbiBzaWRlPC9oMj4K Cgk8cD5PbiB0aGUgV3JpdGUgdGFiLCB0aGUgbnVtYmVyIG9mIHdvcmRzIGluIHRoZSBib2R5 IC8gZXhjZXJwdCBhcmUgZGlzcGxheWVkIGluIGEgc3RhdHMgcGFuZWwuIEl0IGlzIHVwZGF0 ZWQgaW4gcmVhbCB0aW1lIGFzIHdvcmRzIGFyZSBlbnRlcmVkLiBUaGUgYXJ0aWNsZSBJRCBp cyBhbHNvIGRpc3BsYXllZDsgaHlwZXJsaW5rZWQgdG8gdGhlIGFydGljbGUgaXRzZWxmIGlm IGl0IGlzIGxpdmUgb3Igc3RpY2t5LjwvcD4KCgk8cD5JZiB5b3Ugd2lzaCB0byBtb3ZlIHRo ZSBwYW5lbCB0byBhIGRpZmZlcmVudCBsb2NhdGlvbiBvbiB0aGUgV3JpdGUgdGFiIHlvdSBj YW4gbWFuaXB1bGF0ZSBhIGhpZGRlbiBwcmVmZXJlbmNlICh5b3UgY291bGQgdXNlIHRoZSBz bWRfcHJlZmFsaXplciBwbHVnaW4gZm9yIHRoaXMgdGFzaykuIENyZWF0ZSBhIEhpZGRlbiBw cmVmZXJlbmNlIGZvciB5b3VyIHVzZXIgbmFtZSBjYWxsZWQgPGNvZGU+c21kX2FydGljbGVf c3RhdHNfcG9zPC9jb2RlPiBhbmQgZ2l2ZSBpdCBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1 ZXM6PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnN0YXR1c19hYm92ZTwv c3Bhbj4gOiAoZGVmYXVsdCBsb2NhdGlvbikgYWJvdmUgdGhlIFN0YXR1cyBib3g8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZXhjZXJwdF9iZWxvdzwvc3Bhbj4gOiBCZW5lYXRo IHRoZSBhdXRob3IgaW5mbywgdW5kZXIgdGhlIEV4Y2VycHQ8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+dGl0bGVfYWJvdmU8L3NwYW4+IDogYWJvdmUgdGhlIFRpdGxlIGJveDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj50ZXh0aWxlX2hlbHBfYWJvdmU8L3NwYW4+ IDogYWJvdmUgdGhlIFRleHRpbGUgSGVscCB0d2lzdHk8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+dGV4dGlsZV9oZWxwX2JlbG93PC9zcGFuPiA6IGJlbG93IHRoZSBUZXh0aWxl IEhlbHAgdHdpc3R5PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm5vbmU8L3NwYW4+ IDogZGlzYWJsZSB0aGUgcGFuZWw8L2xpPgoJPC91bD4KCgk8aDI+Q2hhbmdlbG9nPC9oMj4K Cgk8dWw+CgkJPGxpPjI0IEF1ZyAwOSB8IDAuMSB8IEluaXRpYWwgcmVsZWFzZTwvbGk+CgkJ PGxpPjA3IE5vdiAwOSB8IDAuMiB8IEltcHJvdmVkIGNvdW50aW5nIHRvIGlnbm9yZSB0YWdz IGFuZCBhZGRlZCByZWFsLXRpbWUgYWRtaW4tc2lkZSBjb3VudGVyIChib3RoIHRoYW5rcyBz cGVla2UpPC9saT4KCTwvdWw+CgoJPGgyPkNyZWRpdHM8L2gyPgoKCTxwPlRoYW5rcyB0byBi b3RoIHplbSBhbmQgaWJsYXN0b2ZmIGZvciB0aGUgb3JpZ2luYWwgd29ya3MgdGhhdCB0aGlz IHBsdWdpbiBib3Jyb3dzIGFzIGl0cyBmb3VuZGF0aW9uLjwvcD4KCjwvZGl2Pgo8IS0tICoq KiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3Nt ZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWln aHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9z cGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2Nr IHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3Jv dW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIw cHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDog MjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRl cjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBh ZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMt c2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMyNzU2ODU7IGZvbnQ6IGJvbGQgMTJw eCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4 IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5kZXJs aW5lO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlm OyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9y bTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNv bG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6 MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFs aWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hl bHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQojc21kX2hl bHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCAucmVxdWlyZWQg e2NvbG9yOnJlZDt9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1cHggMjBweCA1cHggMzBweDsg fQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9zdHlsZT4KPCEtLSAq KiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiJiYThhNmFiZTg4 ZTcwMDMzYmEwN2ZlMjRiZjExOWZmYyI7fQ==