<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>Twitter</name>
	<version>0.0.3</version>
  <mincmsversion>1.5.0</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBUd2l0dGVyIGZyb20gQ01TTVMuIEJvdGggc2VuZCBhbmQgcmVjZWl2ZSBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZS48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5Db25maWd1cmUgeW91ciBUd2l0dGVyIGNyZWRlbnRpYWxzIGluIHRoZSBiYWNrZW5kLiBVc2Uge2Ntc19tb2R1bGUgbW9kdWxlPSJUd2l0dGVyIn0gaW4geW91ciBwYWdlcy90ZW1wbGF0ZXMuPC9wPgo8cD5PdGhlciBtb2R1bGVzIGNhbiBjYWxsIHRoZSBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlU3RhdHVzKCRtZXNzYWdlLCAkc2hvcnRlbikgKHdpdGggYSAxNDAgbWF4IG1lc3NhZ2UpIHRvIHNlbmQgbWVzc2FnZSB0byBUd2l0dGVyLjwvcD4KPHA+VGhleSBjYW4gYWxzbyB1c2UgdGhlIHB1YmxpYyBmdW5jdGlvbiBzaG9ydGVuVXJscygkbWVzc2FnZSkgdG8gb25seSBzaG9ydGVuIHRoZSB1cmxzIGNvbnRhaW5lZCBpbnRvIHRoZSBtZXNzYWdlLjwvcD4KPGgzPldoYXQgUGFyYW1ldGVycyBEb2VzIEl0IFRha2U8L2gzPgo8cD4KPHVsPgogIDxsaT48Yj5saW1pdDwvYj4gLSBJZiB5b3Ugc2V0IHRoYXQsIGl0IHdpbGwgbGltaXQgdGhlIG51bWJlciBvZiBsYXRlc3QgdHdpdHRlciB1cGRhdGVzIHRvIHRoaXMgdmFsdWUuPC9saT4KICA8bGk+PGI+dGVtcGxhdGU8L2I+IC0gU2VsZWN0IGEgY3VzdG9tIHRlbXBsYXRlIHNldCBpbiB0aGUgYWRtaW4gcGFubmVsLjwvbGk+CiAgPGxpPjxiPnVzZXJfaWQ8L2I+IC0gU3BlY2lmeSBhbiB1c2VyIGlkPC9saT4KICA8bGk+PGI+c2NyZWVuX25hbWU8L2I+IC0gU3BlY2lmeSBhbiB1c2VyIHNjcmVlbiBuYW1lPC9saT4KIDwvdWw+CiA8L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyIDxhIGhyZWY9Im1haWx0bzpqY2NAbW9ycmlzLWNoYXBtYW4uY29tIj4mbHQ7amNjQG1vcnJpcy1jaGFwbWFuLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBKZWFuLUNocmlzdG9waGUgQ3V2ZWxpZXIgJmx0O2pjY0Btb3JyaXMtY2hhcG1hbi5jb20mZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMC4wLjM8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDAuMC4xIC0gMjkgSnVuZSAyMDA5LiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPC91bD48YnIgLz4=</about>
	<description>This module allow you to manage your Twitter from CMSMS.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgVHdpdHRlciAiZGVmYXVsdCIgYWN0aW9uCgogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCgogIAogICRwdWJsaWNfdGltZWxpbmUgPSAkdGhpcy0+Z2V0VGltZWxpbmUoJ3VzZXInLCAkcGFyYW1zKTsKICAKICAkdGltZWxpbmUgPSBUd2VldDo6cGFyc2VUaW1lbGluZSgkcHVibGljX3RpbWVsaW5lLT5zdGF0dXMpOwogIAogIGlmIChpc3NldCgkcGFyYW1zWydsaW1pdCddKSkKICB7CiAgCSR0aW1lbGluZSA9IGFycmF5X3NsaWNlKCR0aW1lbGluZSwgMCwgJHBhcmFtc1snbGltaXQnXSk7CiAgfQogIAogICR0aGlzLT5zbWFydHktPmFzc2lnbigndGltZWxpbmUnLCAkdGltZWxpbmUpOwogIAogIGlmICghaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgfHwgISR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKSkKICB7CiAgICAvLyAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2RlZmF1bHQnKTsKICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3RpbWVsaW5lLnRwbCcpOwogIH0KICBlbHNlIAogIHsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICB9IAo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKCXsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJfQoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFR3aXR0ZXIgImRlZmF1bHRhZG1pbiIgYWRtaW4gYWN0aW9uCiAgIAogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX2hlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKS4KCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ3R3aXR0ZXInLCR0aGlzLT5MYW5nKCd0aXRsZV90d2l0dGVyJykpLgoJJHRoaXMtPlNldFRhYkhlYWRlcigndGVtcGxhdGVzJywkdGhpcy0+TGFuZygndGl0bGVfdGVtcGxhdGVzJykpLgoJJHRoaXMtPlNldFRhYkhlYWRlcignb3B0aW9ucycsJHRoaXMtPkxhbmcoJ3RpdGxlX29wdGlvbnMnKSkuCgkkdGhpcy0+RW5kVGFiSGVhZGVycygpLiR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZm9vdGVycycsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfdHdpdHRlcl90YWInLCR0aGlzLT5TdGFydFRhYigndHdpdHRlcicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF90ZW1wbGF0ZXNfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ3RlbXBsYXRlcycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9vcHRpb25zX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdvcHRpb25zJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCdkZWZhdWx0YWRtaW4nKTsKCi8vIEdlbmVyYWwKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwovLyBUd2l0dGVyIFRhYgoKaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbicpID09ICcnIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcpID09ICcnKQp7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R3aXR0ZXJfdGFiJywgJzxwPicgLiAkdGhpcy0+TGFuZygnbm9fdHdpdHRlcl9jcmVkZW50aWFsX3NldCcpIC4gJzwvcD4nKTsKfQplbHNlIAp7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXR1c190aXRsZScsICR0aGlzLT5MYW5nKCdzdGF0dXNfdGl0bGUnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICcnLCAnc3RhdHVzJywgJycsICcnLCAnJywgJycsICc3MCcsJzInLCAnJywgJycsICdzdHlsZT0iaGVpZ2h0OiBhdXRvOyB3aWR0aDogYXV0bzsiJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1cGRhdGUnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICd1cGRhdGUnLCAkdGhpcy0+TGFuZygndXBkYXRlJykpKTsgCgkKCWlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpCgl7CgkJLy9lY2hvICd0ZXN0JzsKCQkkdGhpcy0+dXBkYXRlU3RhdHVzKCRwYXJhbXNbJ3N0YXR1cyddKTsKCX0KCQogICRwdWJsaWNfdGltZWxpbmUgPSAkdGhpcy0+Z2V0VGltZWxpbmUoJ2ZyaWVuZHMnKTsKICAkdGltZWxpbmUgPSBUd2VldDo6cGFyc2VUaW1lbGluZSgkcHVibGljX3RpbWVsaW5lLT5zdGF0dXMpOwogICR0aW1lbGluZSA9IGFycmF5X3NsaWNlKCR0aW1lbGluZSwgMCwgMTApOwogIAoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aW1lbGluZScsICR0aW1lbGluZSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpbWVsaW5lX3N0YXR1cycsICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3RpbWVsaW5lLnRwbCcpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndHdpdHRlcl90YWInLCAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbi50d2l0dGVyLnRhYi50cGwnKSk7Cn0KCi8vIFRlbXBsYXRlcyBUYWJzCi8vKioqKioqKioqKioqKioqKgoKICAgICR0ZW1wbGF0ZV9saXN0ID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIAogICAgJHJvd2NsYXNzID0gJ3JvdzEnOwogICAgCiAgICAkdGVtcGxhdGVzID0gYXJyYXkoKTsKICAgIAogICAgZm9yZWFjaCAoJHRlbXBsYXRlX2xpc3QgYXMgJHRlbXBsYXRlKQogICAgewogICAgICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgIAogICAgICAgICRvbmVyb3ctPm5hbWUgPSAkdGVtcGxhdGU7CiAgICAgICAgJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZVRlbXBsYXRlJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlVGVtcGxhdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgndGVtcGxhdGUnPT4kdGVtcGxhdGUpLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKICAgICAgICAkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ21hbmFnZVRlbXBsYXRlJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXRUZW1wbGF0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCd0ZW1wbGF0ZSc9PiR0ZW1wbGF0ZSkpOwogICAgICAgICRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwogICAgICAgICR0ZW1wbGF0ZXNbXSA9ICRvbmVyb3c7CiAgICAKICAgICAgICAoJHJvd2NsYXNzPT0icm93MSI/JHJvd2NsYXNzPSJyb3cyIjokcm93Y2xhc3M9InJvdzEiKTsKICAgIH0KICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXMnLCAkdGVtcGxhdGVzKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygndGl0bGVfdGVtcGxhdGUnKSk7ICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGR0ZW1wbGF0ZWxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ21hbmFnZVRlbXBsYXRlJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfdGVtcGxhdGUnKSxhcnJheSgpKSk7ICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGR0ZW1wbGF0ZWljb24nLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ21hbmFnZVRlbXBsYXRlJywgJycsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfdGVtcGxhdGUnKSwnJywgJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkpOwogICAgCiAgICAKCi8vIE9wdGlvbiBUYWIKLy8qKioqKioqKioqKioKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdvcHRpb25zX3RpdGxlJywgJHRoaXMtPkxhbmcoJ3NldF90d2l0dGVyX2NyZWRlbnRpYWwnKSk7CgppZiAoaXNzZXQoJHBhcmFtc1sndHdpdHRlcl9sb2dpbiddKSAmJiBpc3NldCgkcGFyYW1zWydzdWJtaXRfb3B0aW9ucyddKSkKewoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2xvZ2luJywgJHBhcmFtc1sndHdpdHRlcl9sb2dpbiddKTsKfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsb2dpbl90aXRsZScsICR0aGlzLT5MYW5nKCdsb2dpbicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsb2dpbicsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndHdpdHRlcl9sb2dpbicsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbicpKSk7CgppZiAoaXNzZXQoJHBhcmFtc1sndHdpdHRlcl9wYXNzd29yZCddKSAmJiBpc3NldCgkcGFyYW1zWydzdWJtaXRfb3B0aW9ucyddKSAmJiAkcGFyYW1zWyd0d2l0dGVyX3Bhc3N3b3JkJ10gIT0gJycpCnsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcsICRwYXJhbXNbJ3R3aXR0ZXJfcGFzc3dvcmQnXSk7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFzc3dvcmRfdGl0bGUnLCAkdGhpcy0+TGFuZygncGFzc3dvcmQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncGFzc3dvcmQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRQYXNzd29yZCgkaWQsICd0d2l0dGVyX3Bhc3N3b3JkJywgJycsIDYwKSk7CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0X29wdGlvbnMnXSkgJiYgaXNzZXQoJHBhcmFtc1sndGltZW91dCddKSAmJiBpc19udW1lcmljKCRwYXJhbXNbJ3RpbWVvdXQnXSkgJiYgJHBhcmFtc1sndGltZW91dCddID4gMCApCnsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aW1lb3V0JywgJHBhcmFtc1sndGltZW91dCddKTsKfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aW1lb3V0X3RpdGxlJywgJHRoaXMtPkxhbmcoJ3RpbWVvdXQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGltZW91dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndGltZW91dCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aW1lb3V0JykpKTsKCgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9vcHRpb25zJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0X29wdGlvbnMnLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsgCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdvcHRpb25zX3RhYicsICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluLm9wdGlvbnMudGFiLnRwbCcpKTsKIAovL2VjaG8gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luJykgLiAnIC0tLSAnIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkJykgIC4gJzxiciAvPic7IAoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnBhbmVsLnRwbCcpOwoKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deleteTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIiIpKQ0KCXsNCglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsNCgl9DQoNCi8qIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tDQoNCiAgIENvZGUgZm9yIERvY3VtZW50c0xpYnJhcnkgIm1hbmFnZUNhdGVnb3JpZXMiIGFkbWluIGFjdGlvbg0KICAgDQogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQ0KICAgDQogICBUeXBpY2FsbHksIHRoaXMgd2lsbCBkaXNwbGF5IHNvbWV0aGluZyBmcm9tIGEgdGVtcGxhdGUNCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4NCiAgIA0KKi8NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pKQ0Kew0KCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCgkNCgkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCg0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.manageTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQ0KDQogICBDb2RlIGZvciBEb2N1bWVudHNMaWJyYXJ5ICJtYW5hZ2VUZW1wbGF0ZSIgYWRtaW4gYWN0aW9uDQogICANCiAgIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tDQogICANCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQ0KICAgb3IgZG8gc29tZSBvdGhlciB0YXNrLg0KICAgDQoqLw0KDQovLyBST0NLIEFORCBMT0FEDQoNCmlmIChpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSAmJiAkcGFyYW1zWyd0ZW1wbGF0ZSddICE9ICcnKQ0Kew0KCSR0aXRsZSA9ICRwYXJhbXNbJ3RlbXBsYXRlJ107DQoJDQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdGJ1dHRvbiddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseWJ1dHRvbiddKSkNCgl7DQoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddLCAkcGFyYW1zWyd0ZW1wbGF0ZWRldGFpbHMnXSk7DQoJCQ0KCQlpZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0YnV0dG9uJ10pKQ0KCQl7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpKTsNCgkJfQ0KCX0NCn0NCmVsc2UgDQp7DQoJJHRpdGxlID0gJyc7DQp9DQoNCi8vIERFVEFJTFMNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnbWFuYWdlVGVtcGxhdGUnLCAkcmV0dXJuaWQpKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3RlbXBsYXRlJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfdGVtcGxhdGUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndGVtcGxhdGUnLCAkdGl0bGUsIDUwKSk7DQoJDQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3RvcmUnXSkpDQoJew0KCQkkdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ3RpbWVsaW5lJyk7DQoJfQkNCgllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pICYmICRwYXJhbXNbJ3RlbXBsYXRlJ10gIT0gJycpDQoJew0KCQkkdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOw0KCX0NCgllbHNlIA0KCXsNCgkJJHRlbXBsYXRlY29kZSA9ICcnOw0KCX0NCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvZGVfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnY29kZScpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RleHRhcmVhX3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJHRlbXBsYXRlY29kZSwgJ3RlbXBsYXRlZGV0YWlscycsICdwYWdlYmlndGV4dGFyZWEnLCAnJywnJywgJycsIDkwLCAxNSwgJ0VkaXRBcmVhJykpOw0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9kZXRhaWxzX3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXRidXR0b24nLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZGV0YWlsc19hcHBseScsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhcHBseWJ1dHRvbicsICR0aGlzLT5MYW5nKCdhcHBseScpKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfcmVzdG9yZScsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdyZXN0b3JlJywgJHRoaXMtPkxhbmcoJ3Jlc3RvcmUnKSkpOw0KDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21hbmFnZXRlbXBsYXRlLnRwbCcpOw0KCQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.send.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIk1hbmFnZSBUd2l0dGVyIikpCgl7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCX0KCi8qIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCgogICBDb2RlIGZvciBUd2l0dGVyICJzZW5kIiBhZG1pbiBhY3Rpb24KICAgCiAgIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCiAgIAogICBUeXBpY2FsbHksIHRoaXMgd2lsbCBkaXNwbGF5IHNvbWV0aGluZyBmcm9tIGEgdGVtcGxhdGUKICAgb3IgZG8gc29tZSBvdGhlciB0YXNrLgogICAKKi8KCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/Tweet.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKICAKICAvKgogICAqIFJlbGF0aW9uIGNsYXNzCiAgICogCiAgICogVGhpcyBjbGFzcyBhbGxvdyBtYW5hZ2VtZW50IG9mIGEgVHdlZXQgb2JqZWN0CiAgICogCiAgICogCiAgICogQ29weXJpZ2h0czogTW9ycmlzICYgQ2hhcG1hbiBCZWxnaXVtIC0gSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyIC0gMjAwOQogICAqIAogICAqLwoKY2xhc3MgVHdlZXQgZXh0ZW5kcyBDbXNPYmplY3QgCnsKICB2YXIgJGNyZWF0ZWRfYXQ7Cgl2YXIgJGlkOwoJdmFyICR0ZXh0OwoJdmFyICRzb3VyY2U7CgkKCXZhciAkYXV0aG9yX25hbWU7Cgl2YXIgJHBpY3R1cmU7Cgl2YXIgJHhtbDsKCQoJcHVibGljIGZ1bmN0aW9uIGdldFdoZW4oKQoJewoJCXJldHVybiBzZWxmOjpkaXN0YW5jZV9vZl90aW1lX2luX3dvcmRzKHN0cnRvdGltZSgkdGhpcy0+Y3JlYXRlZF9hdCkpIC4gJyBhZ28nOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGV4dCgpCgl7CgkJJHRleHQgPSAkdGhpcy0+dGV4dDsKCQkKCQlpZigoc3RycG9zKCR0ZXh0LCdodHRwJykgIT09IGZhbHNlKSB8fCAoc3RycG9zKCR0ZXh0LCdAJykgIT09IGZhbHNlKXx8IChzdHJwb3MoJHRleHQsJyMnKSAhPT0gZmFsc2UpKQoJCXsKCQkgICR3b3JkcyA9IGFycmF5X3VuaXF1ZShleHBsb2RlKCcgJywgJHRoaXMtPnRleHQpKTsKCQkgIGZvcmVhY2ggKCR3b3JkcyBhcyAkd29yZCkKCQkgIHsKCQkgIAlpZiAoc3RycG9zKCR3b3JkLCdodHRwJykgIT09IGZhbHNlKQoJCSAgCXsKCQkgIAkJJHRleHQgPSBzdHJfcmVwbGFjZSgkd29yZCwgJzxhIGhyZWY9IicgLiAkd29yZCAuICciIHRhcmdldD0iX25ldyI+JyAuICR3b3JkIC4gJzwvYT4nLCAkdGV4dCk7CgkJICAJfQoJCSAgCQoJCSAgICBpZiAoc3RycG9zKCR3b3JkLCdAJykgPT09IDApCiAgICAgICAgewogICAgICAgIAkkbGluayA9IHN0cl9yZXBsYWNlKCdAJywgJycsICR3b3JkKTsKICAgICAgICAJJGxpbmsgPSBzdHJfcmVwbGFjZSgnOicsICcnLCAkbGluayk7CiAgICAgICAgCSAgICAgICAgCQogICAgICAgICAgJHRleHQgPSBzdHJfcmVwbGFjZSgkd29yZCwgJ0A8YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vJyAuICRsaW5rIC4gJyIgdGFyZ2V0PSJfbmV3Ij4nIC4gc3RyX3JlcGxhY2UoJ0AnLCAnJywgJHdvcmQpIC4gJzwvYT4nLCAkdGV4dCk7CiAgICAgICAgfQoJCSAgCQoJCSAgICBpZiAoc3RycG9zKCR3b3JkLCcjJykgPT09IDApCiAgICAgICAgewogICAgICAgICAgJHRleHQgPSBzdHJfcmVwbGFjZSgkd29yZCwgJzxhIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9zZWFyY2g/cT0nIC4gcmF3dXJsZW5jb2RlKCR3b3JkKSAuICciIHRhcmdldD0iX25ldyI+JyAuICR3b3JkIC4gJzwvYT4nLCAkdGV4dCk7CiAgICAgICAgfQogICAgICAgIAoJCSAgfQkJICAKCQl9CgkJcmV0dXJuICR0ZXh0OwoJfQoJCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNob3J0ZW5VcmxzKCRtZXNzYWdlKQoJewoJICAgJHdvcmRzID0gYXJyYXlfdW5pcXVlKGV4cGxvZGUoJyAnLCAkbWVzc2FnZSkpOwoJICAgCgkgICAkbmV3X3dvcmRzID0gYXJyYXkoKTsKCSAgIAkgICAKCSAgIGZvcmVhY2goJHdvcmRzIGFzICR3b3JkKQoJICAgewoJICAgICAgaWYgKHN0cnBvcygkd29yZCwnaHR0cCcpICE9PSBmYWxzZSkKICAgCQl7CiAgIAkJCSAgIC8vJHRleHQgPSBzdHJfcmVwbGFjZSgkd29yZCwgJzxhIGhyZWY9IicgLiAkd29yZCAuICciIHRhcmdldD0iX25ldyI+JyAuICR3b3JkIC4gJzwvYT4nLCAkdGV4dCk7CiAgIAkJCSAgICRuZXdfd29yZHNbXSA9IHNlbGY6OnNob3J0ZW5VcmwoJHdvcmQpOwogICAJCX0KICAgCQllbHNlCiAgIAkJewogICAJCSAgICRuZXdfd29yZHNbXSA9ICR3b3JkOwogICAJCX0KCSAgIH0KCSAgIAoJICAgcmV0dXJuIGltcGxvZGUoJyAnLCAkbmV3X3dvcmRzKTsKCX0KCQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzaG9ydGVuVXJsKCR1cmwpCgl7CgkgICAvLyBNYWRlIHdpdGggYml0Lmx5IChmb3IgdGhlIG1vbWVudCwgdG90b3BoZSBhY2NvdW50OiBhcGkga2V5OiBSX2M1YjA0NzQzNzMxZTg2YWJlMzFkYTQ5NGY0MGQ0Y2I0KQoJICAgCgkgICAkbWFpbl91cmwgPSAnaHR0cDovL2FwaS5iaXQubHkvc2hvcnRlbic7CgkgICAKCSAgICRwYXJhbXMgPSBhcnJheSgKCSAgICAgICd2ZXJzaW9uJyA9PiAnMi4wLjEnLAoJICAgICAgJ2Zvcm1hdCcgPT4gJ3htbCcsCgkgICAgICAnbG9naW4nID0+ICd0b3RvcGhlJywKCSAgICAgICdhcGlLZXknID0+ICdSX2M1YjA0NzQzNzMxZTg2YWJlMzFkYTQ5NGY0MGQ0Y2I0JywKCSAgICAgICdsb25nVXJsJyA9PiAkdXJsLAoJICAgICAgKTsKCSAgIC8vdmFyX2R1bXAoJHBhcmFtcyk7CgkgICAKCSAgICR4bWwgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoZmlsZV9nZXRfY29udGVudHMoJG1haW5fdXJsIC4gJz8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zKSkpOwoJICAgCgkgICBpZiAoJHhtbC0+c3RhdHVzQ29kZSA9PSAnT0snICYmICFpc3NldCgkeG1sLT5yZXN1bHRzLT5ub2RlS2V5VmFsLT5zdGF0dXNDb2RlKSkKCSAgIHsKCSAgICAgIC8vdmFyX2R1bXAoJHhtbC0+cmVzdWx0cy0+bm9kZUtleVZhbCk7CgkgICAgICByZXR1cm4gJHhtbC0+cmVzdWx0cy0+bm9kZUtleVZhbC0+c2hvcnRVcmw7CgkgICB9CgkgICBlbHNlCgkgICB7CgkgICAgICByZXR1cm4gJHVybDsKCSAgIH0KCX0KCQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVGcm9tWG1sKCR4bWwpCgl7CgkJJHR3ZWV0ID0gbmV3IHNlbGY7CQkKCQkkdHdlZXQtPnhtbCA9ICR4bWw7CgkJJHR3ZWV0LT5wYXJzZVhtbCgpOwoJCXJldHVybiAkdHdlZXQ7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBwYXJzZVhtbCgpCgl7CgkJJGNvbnRlbnQgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJHRoaXMtPnhtbCk7CgkJCgkJJHRoaXMtPmNyZWF0ZWRfYXQgPSAkY29udGVudC0+Y3JlYXRlZF9hdDsKCQkkdGhpcy0+aWQgPSAkY29udGVudC0+aWQ7CgkJJHRoaXMtPnRleHQgPSAkY29udGVudC0+dGV4dDsKCQkkdGhpcy0+c291cmNlID0gJGNvbnRlbnQtPnNvdXJjZTsKCQkKCQkkdGhpcy0+YXV0aG9yX25hbWUgPSAkY29udGVudC0+dXNlci0+c2NyZWVuX25hbWU7CgkJJHRoaXMtPnBpY3R1cmUgPSAkY29udGVudC0+dXNlci0+cHJvZmlsZV9pbWFnZV91cmw7CgkJCgkJCgkJLy92YXJfZHVtcCgkY29udGVudCk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcGFyc2VUaW1lbGluZSgkdGltZWxpbmVfeG1sKQoJewoJCSR0aW1lbGluZSA9IGFycmF5KCk7CgkJCgkJZm9yZWFjaCAoJHRpbWVsaW5lX3htbCBhcyAkc3RhdHVzKQoJCXsKCQkJJHRpbWVsaW5lW10gPSBzZWxmOjpjcmVhdGVGcm9tWG1sKCRzdGF0dXMtPmFzWG1sKCkpOwoJCX0KCQkKCQlyZXR1cm4gJHRpbWVsaW5lOwkJCgl9CgkKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRpc3RhbmNlX29mX3RpbWVfaW5fd29yZHMoJGZyb21fdGltZSwgJHRvX3RpbWUgPSBudWxsLCAkaW5jbHVkZV9zZWNvbmRzID0gZmFsc2UpCiAgewogICAgJHRvX3RpbWUgPSAkdG9fdGltZT8gJHRvX3RpbWU6IHRpbWUoKTsKICAKICAgICRkaXN0YW5jZV9pbl9taW51dGVzID0gZmxvb3IoYWJzKCR0b190aW1lIC0gJGZyb21fdGltZSkgLyA2MCk7CiAgICAkZGlzdGFuY2VfaW5fc2Vjb25kcyA9IGZsb29yKGFicygkdG9fdGltZSAtICRmcm9tX3RpbWUpKTsKICAKICAgICRzdHJpbmcgPSAnJzsKICAgICRwYXJhbWV0ZXJzID0gYXJyYXkoKTsKICAKICAgIGlmICgkZGlzdGFuY2VfaW5fbWludXRlcyA8PSAxKQogICAgewogICAgICBpZiAoISRpbmNsdWRlX3NlY29uZHMpCiAgICAgIHsKICAgICAgICAkc3RyaW5nID0gJGRpc3RhbmNlX2luX21pbnV0ZXMgPT0gMCA/ICdsZXNzIHRoYW4gYSBtaW51dGUnIDogJzEgbWludXRlJzsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBpZiAoJGRpc3RhbmNlX2luX3NlY29uZHMgPD0gNSkKICAgICAgICB7CiAgICAgICAgICAkc3RyaW5nID0gJ2xlc3MgdGhhbiA1IHNlY29uZHMnOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICgkZGlzdGFuY2VfaW5fc2Vjb25kcyA+PSA2ICYmICRkaXN0YW5jZV9pbl9zZWNvbmRzIDw9IDEwKQogICAgICAgIHsKICAgICAgICAgICRzdHJpbmcgPSAnbGVzcyB0aGFuIDEwIHNlY29uZHMnOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICgkZGlzdGFuY2VfaW5fc2Vjb25kcyA+PSAxMSAmJiAkZGlzdGFuY2VfaW5fc2Vjb25kcyA8PSAyMCkKICAgICAgICB7CiAgICAgICAgICAkc3RyaW5nID0gJ2xlc3MgdGhhbiAyMCBzZWNvbmRzJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX3NlY29uZHMgPj0gMjEgJiYgJGRpc3RhbmNlX2luX3NlY29uZHMgPD0gNDApCiAgICAgICAgewogICAgICAgICAgICRzdHJpbmcgPSAnaGFsZiBhIG1pbnV0ZSc7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX3NlY29uZHMgPj0gNDEgJiYgJGRpc3RhbmNlX2luX3NlY29uZHMgPD0gNTkpCiAgICAgICAgIHsKICAgICAgICAgICAkc3RyaW5nID0gJ2xlc3MgdGhhbiBhIG1pbnV0ZSc7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgJHN0cmluZyA9ICcxIG1pbnV0ZSc7CiAgICAgICAgIH0KICAgICAgIH0KICAgICB9CiAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPj0gMiAmJiAkZGlzdGFuY2VfaW5fbWludXRlcyA8PSA0NCkKICAgICB7CiAgICAgICAkc3RyaW5nID0gJyVtaW51dGVzJSBtaW51dGVzJzsKICAgICAgICRwYXJhbWV0ZXJzWyclbWludXRlcyUnXSA9ICRkaXN0YW5jZV9pbl9taW51dGVzOwogICAgIH0KICAgICBlbHNlIGlmICgkZGlzdGFuY2VfaW5fbWludXRlcyA+PSA0NSAmJiAkZGlzdGFuY2VfaW5fbWludXRlcyA8PSA4OSkKICAgICB7CiAgICAgICAkc3RyaW5nID0gJ2Fib3V0IDEgaG91cic7CiAgICAgfQogICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9taW51dGVzID49IDkwICYmICRkaXN0YW5jZV9pbl9taW51dGVzIDw9IDE0MzkpCiAgICAgewogICAgICAgJHN0cmluZyA9ICdhYm91dCAlaG91cnMlIGhvdXJzJzsKICAgICAgICRwYXJhbWV0ZXJzWyclaG91cnMlJ10gPSByb3VuZCgkZGlzdGFuY2VfaW5fbWludXRlcyAvIDYwKTsKICAgICB9CiAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPj0gMTQ0MCAmJiAkZGlzdGFuY2VfaW5fbWludXRlcyA8PSAyODc5KQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnMSBkYXknOwogICAgIH0KICAgICBlbHNlIGlmICgkZGlzdGFuY2VfaW5fbWludXRlcyA+PSAyODgwICYmICRkaXN0YW5jZV9pbl9taW51dGVzIDw9IDQzMTk5KQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnJWRheXMlIGRheXMnOwogICAgICAgJHBhcmFtZXRlcnNbJyVkYXlzJSddID0gcm91bmQoJGRpc3RhbmNlX2luX21pbnV0ZXMgLyAxNDQwKTsKICAgICB9CiAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPj0gNDMyMDAgJiYgJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gODYzOTkpCiAgICAgewogICAgICAgJHN0cmluZyA9ICdhYm91dCAxIG1vbnRoJzsKICAgICB9CiAgICAgZWxzZSBpZiAoJGRpc3RhbmNlX2luX21pbnV0ZXMgPj0gODY0MDAgJiYgJGRpc3RhbmNlX2luX21pbnV0ZXMgPD0gNTI1OTU5KQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnJW1vbnRocyUgbW9udGhzJzsKICAgICAgICRwYXJhbWV0ZXJzWyclbW9udGhzJSddID0gcm91bmQoJGRpc3RhbmNlX2luX21pbnV0ZXMgLyA0MzIwMCk7CiAgICAgfQogICAgIGVsc2UgaWYgKCRkaXN0YW5jZV9pbl9taW51dGVzID49IDUyNTk2MCAmJiAkZGlzdGFuY2VfaW5fbWludXRlcyA8PSAxMDUxOTE5KQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnYWJvdXQgMSB5ZWFyJzsKICAgICB9CiAgICAgZWxzZQogICAgIHsKICAgICAgICRzdHJpbmcgPSAnb3ZlciAleWVhcnMlIHllYXJzJzsKICAgICAgICRwYXJhbWV0ZXJzWycleWVhcnMlJ10gPSBmbG9vcigkZGlzdGFuY2VfaW5fbWludXRlcyAvIDUyNTk2MCk7CiAgICAgfQogICAKICAgICAgIHJldHVybiBzdHJ0cigkc3RyaW5nLCAkcGFyYW1ldGVycyk7CiAgICAgCiAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R3aXR0ZXInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUd2l0dGVyIGluc3RhbGxlZC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1R3aXR0ZXIgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdSZWFsbHk/IEFyZSB5b3Ugc3VyZQp5b3Ugd2FudCB0byB1bnNpbnN0YWxsIHRoaXMgZmluZSBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgYWxsb3cgeW91IHRvIG1hbmFnZSB5b3VyIFR3aXR0ZXIgZnJvbSBDTVNNUy4gQm90aCBzZW5kIGFuZCByZWNlaXZlIGZ1bmN0aW9ucyBhcmUgYXZhaWxhYmxlLic7CgokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZFsnYWRtaW5fdGl0bGUnXSA9ICdUd2l0dGVyIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgVHdpdHRlciBmcm9tIENNU01TLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgKGUuZy4sIEJlIHN1cmUgdG8gc2V0ICJNYW5hZ2UgVHdpdHRlciIgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISknOwokbGFuZ1snVHdpdHRlciddID0gJ1R3aXR0ZXInOwokbGFuZ1snT3B0aW9ucyddID0gJ09wdGlvbnMnOwokbGFuZ1sndGl0bGVfdHdpdHRlciddID0gJ1R3aXR0ZXInOwokbGFuZ1sndGl0bGVfb3B0aW9ucyddID0gJ09wdGlvbnMnOwoKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydhcHBseSddID0gJ0FwcGx5JzsKJGxhbmdbJ2NhbmNlbCddID0gJ2NhbmNlbCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1sncmVzdG9yZSddID0gJ1Jlc3RvcmUnOwoKLy8gQWRtaW4KCiRsYW5nWydzdGF0dXNfdGl0bGUnXSA9ICdXaGF0IGFyZSB5b3UgZG9pbmc/JzsKCiRsYW5nWydub190d2l0dGVyX2NyZWRlbnRpYWxfc2V0J10gPSAnUGxlYXNlIGNvbmZpZ3VyZSB5b3VyIFR3aXR0ZXIgYWNjb3VudCBpbnRvIHRoZSAiT3B0aW9ucyIgdGFiLic7CiRsYW5nWydzZXRfdHdpdHRlcl9jcmVkZW50aWFsJ10gPSAnUGxlYXNlIGVudGVyIHlvdXIgVHdpdHRlciBjcmVkZW50aWFsLic7CiRsYW5nWydsb2dpbiddID0gJ0xvZ2luJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sndGltZW91dCddID0gJ1RpbWVvdXQnOwoKLy8gVGVtcGxhdGVzCgokbGFuZ1sndGl0bGVfdGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzJzsKJGxhbmdbJ3RpdGxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1snY29kZSddID0gJ0NvZGUnOwokbGFuZ1sndGl0bGVfYWRkX3RlbXBsYXRlJ10gPSAnQWRkIHRlbXBsYXRlJzsKCiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDAuMC4xIC0gMjkgSnVuZSAyMDA5LiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgVHdpdHRlciBmcm9tIENNU01TLiBCb3RoIHNlbmQgYW5kIHJlY2VpdmUgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+Q29uZmlndXJlIHlvdXIgVHdpdHRlciBjcmVkZW50aWFscyBpbiB0aGUgYmFja2VuZC4gVXNlIHtjbXNfbW9kdWxlIG1vZHVsZT0iVHdpdHRlciJ9IGluIHlvdXIgcGFnZXMvdGVtcGxhdGVzLjwvcD4KPHA+T3RoZXIgbW9kdWxlcyBjYW4gY2FsbCB0aGUgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVN0YXR1cygkbWVzc2FnZSwgJHNob3J0ZW4pICh3aXRoIGEgMTQwIG1heCBtZXNzYWdlKSB0byBzZW5kIG1lc3NhZ2UgdG8gVHdpdHRlci48L3A+CjxwPlRoZXkgY2FuIGFsc28gdXNlIHRoZSBwdWJsaWMgZnVuY3Rpb24gc2hvcnRlblVybHMoJG1lc3NhZ2UpIHRvIG9ubHkgc2hvcnRlbiB0aGUgdXJscyBjb250YWluZWQgaW50byB0aGUgbWVzc2FnZS48L3A+CjxoMz5XaGF0IFBhcmFtZXRlcnMgRG9lcyBJdCBUYWtlPC9oMz4KPHA+Cjx1bD4KICA8bGk+PGI+bGltaXQ8L2I+IC0gSWYgeW91IHNldCB0aGF0LCBpdCB3aWxsIGxpbWl0IHRoZSBudW1iZXIgb2YgbGF0ZXN0IHR3aXR0ZXIgdXBkYXRlcyB0byB0aGlzIHZhbHVlLjwvbGk+CiAgPGxpPjxiPnRlbXBsYXRlPC9iPiAtIFNlbGVjdCBhIGN1c3RvbSB0ZW1wbGF0ZSBzZXQgaW4gdGhlIGFkbWluIHBhbm5lbC48L2xpPgogIDxsaT48Yj51c2VyX2lkPC9iPiAtIFNwZWNpZnkgYW4gdXNlciBpZDwvbGk+CiAgPGxpPjxiPnNjcmVlbl9uYW1lPC9iPiAtIFNwZWNpZnkgYW4gdXNlciBzY3JlZW4gbmFtZTwvbGk+CiA8L3VsPgogPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIEplYW4tQ2hyaXN0b3BoZSBDdXZlbGllciA8YSBocmVmPSJtYWlsdG86amNjQG1vcnJpcy1jaGFwbWFuLmNvbSI+Jmx0O2pjY0Btb3JyaXMtY2hhcG1hbi5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkKCQkvLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkKICAgICAgICAvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24KICAgICAgICAkZmxkcyA9ICIKCQkJaWQgSSBLRVksCgkJCWRlc2NyaXB0aW9uIEMoODApCgkJCSI7CgoJCS8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdHdpdHRlciIsCgkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIGNyZWF0ZSBhIHNlcXVlbmNlCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90d2l0dGVyX3NlcSIpOwoJCSovCgkJCgkJLy8gcGVybWlzc2lvbnMKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTWFuYWdlIFR3aXR0ZXInLCdNYW5hZ2UgVHdpdHRlcicpOwoKCQkvLyBQcmVmZXJlbmNlcwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2dpbicsJycpOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYXNzd29yZCcsJycpOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aW1lb3V0JywnNjAwJyk7CgoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7CgkJCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCQoJCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90d2l0dGVyIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQoJCSRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90d2l0dGVyX3NlcSIgKTsKCQkqLwoJCQoJCS8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIFR3aXR0ZXInKTsKCgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJICAgICBicmVhazsKCQkJY2FzZSAiMS4xIjoKCQkJICAgICBicmVhazsKCQl9CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin.options.tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskb3B0aW9uc190aXRsZX08L2gzPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRsb2dpbl90aXRsZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRsb2dpbn08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwYXNzd29yZF90aXRsZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwYXNzd29yZH08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aW1lb3V0X3RpdGxlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpbWVvdXR9PC9wPgo8L2Rpdj4KCgoKeyRzdWJtaXRfb3B0aW9uc317JGNhbmNlbH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin.twitter.tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0ic3RhdHVzX3VwZGF0ZSI+CjxoMz57JHN0YXR1c190aXRsZX08L2gzPgp7JHN0YXR1c30KPHNwYW4gY2xhc3M9ImZsb2F0OiByaWdodDsiPnskdXBkYXRlfTwvc3Bhbj4KPC9kaXY+Cgo8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNXB4OyI+CnskdGltZWxpbmVfc3RhdHVzfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD5UaGlzIGlzIGNvbnRlbnQgdGhhdCBpcyBzaG93biBpbiB0aGUgQWRtaW4gUGFuZWwsIGFib3ZlIHRoZSB0YWJiZWQgaW50ZXJmYWNlIGFyZWEuPC9wPgp7JGZvcm1fc3RhcnR9CnskdGFiX2hlYWRlcnN9Cgp7JHN0YXJ0X3R3aXR0ZXJfdGFifQp7JHR3aXR0ZXJfdGFifQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X3RlbXBsYXRlc190YWJ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZHRlbXBsYXRlaWNvbn0geyRhZGR0ZW1wbGF0ZWxpbmt9PC9wPgo8L2Rpdj4Ke2lmICR0ZW1wbGF0ZXN8Y291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPjx0aGVhZD48dHI+PHRoPnskdGl0bGVfdGVtcGxhdGV9PC90aD48dGggY2xhc3M9InBhZ2VpY29uIj7CoDwvdGg+PHRoIGNsYXNzPSJwYWdlaWNvbiI+wqA8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+Cntmb3JlYWNoIGZyb209JHRlbXBsYXRlcyBpdGVtPWVudHJ5fQogICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+PHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+PHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD48L3RyPgp7L2ZvcmVhY2h9CiAgPC90Ym9keT48L3RhYmxlPgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGR0ZW1wbGF0ZWljb259IHskYWRkdGVtcGxhdGVsaW5rfTwvcD4KPC9kaXY+CnsvaWZ9CnskZW5kX3RhYn0KCnskc3RhcnRfb3B0aW9uc190YWJ9Cnskb3B0aW9uc190YWJ9CnskZW5kX3RhYn0KCnskdGFiX2Zvb3RlcnN9CnskZm9ybV9lbmR9CjxwPlRoaXMgY29udGVudCBzaG93cyB1cCBhcyBhIGZvb3RlciBmb3IgYWxsIHRhYnMgaW4gdGhlIGFkbWluIHBhbmVsLjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/managetemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNvZGVfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRleHRhcmVhX3RlbXBsYXRlfTwvcD4KPC9kaXY+CgoJeyRmb3JtX2RldGFpbHNfc3VibWl0fQoJeyRmb3JtX2RldGFpbHNfYXBwbHl9Cgl7JGZvcm1fZGV0YWlsc19yZXN0b3JlfQp7JGZvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/timeline.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kdGltZWxpbmUgaXRlbT10d2VldH0gIAogICAgPGRpdiBpZD0ic3RhdHVzX3skdHdlZXQtPmlkfSIgc3R5bGU9ImJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgZ3JheTsiPgogICAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAyMHB4OyAiPjxpbWcgc3JjPSJ7JHR3ZWV0LT5waWN0dXJlfSIgYWx0PSJ7JHR3ZWV0LT5hdXRob3JfbmFtZX0iIC8+PC9kaXY+CiAgICAgIDxwPjxzdHJvbmc+eyR0d2VldC0+YXV0aG9yX25hbWV9PC9zdHJvbmc+IAogICAgICB7JHR3ZWV0LT5nZXRUZXh0KCl9PC9wPgogICAgICA8cD57JHR3ZWV0LT5nZXRXaGVuKCl9IGZyb20geyR0d2VldC0+c291cmNlfTwvcD4KICAgICAgPGRpdiBzdHlsZT0iY2xlYXI6IHJpZ2h0Ij48L2Rpdj4gIAogICAgPC9kaXY+ICAKey9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/Twitter.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFR3aXR0ZXIgLSBUaGlzIG1vZHVsZSBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgVHdpdHRlciBmcm9tIENNU01TLiBCb3RoIHNlbmQgYW5kIHJlY2VpdmUgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUuCiMgVmVyc2lvbjogMC4wLjEsIEplYW4tQ2hyaXN0b3BoZSBDdXZlbGllcgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMgVGhpcyBmaWxlIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBNb2R1bGVNYWtlciBtb2R1bGUsIHZlcnNpb24gMC4zLjEKIyBDb3B5cmlnaHQgKGMpIDIwMDkgYnkgU2FtdWVsIEdvbGRzdGVpbiAoc2pnQGNtc21hZGVzaW1wbGUub3JnKSAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEZvciBIZWxwIGJ1aWxkaW5nIG1vZHVsZXM6CiMgLSBSZWFkIHRoZSBEb2N1bWVudGF0aW9uIGFzIGl0IGJlY29tZXMgYXZhaWxhYmxlIGF0CiMgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnLwojIC0gQ2hlY2sgb3V0IHRoZSBTa2VsZXRvbiBNb2R1bGUgZm9yIGEgY29tbWVudGVkIGV4YW1wbGUKIyAtIExvb2sgYXQgb3RoZXIgbW9kdWxlcywgYW5kIGxlYXJuIGZyb20gdGhlIHNvdXJjZQojIC0gQ2hlY2sgb3V0IHRoZSBmb3J1bXMgYXQgaHR0cDovL2ZvcnVtcy5jbXNtYWRlc2ltcGxlLm9yZwojIC0gQ2hhdCB3aXRoIGRldmVsb3BlcnMgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KcmVxdWlyZV9vbmNlICdjbGFzc2VzL1R3ZWV0LmNsYXNzLnBocCc7CgpjbGFzcyBUd2l0dGVyIGV4dGVuZHMgQ01TTW9kdWxlCnsKCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ1R3aXR0ZXInOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRGcmllbmRseU5hbWUoKQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBsb2NhbGl6ZWQgbmFtZQoJICAgb2YgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgbmFtZSB0aGF0J3Mgc2hvd24gaW4gdGhlCgkgICBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4KCSAgIGNvbXBvbmVudCkuCgkgICAKCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0VmVyc2lvbigpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIG51bWJlciBvcgoJICAgc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIGRlc2lnbmF0aW5nIGEgdmVyc2lvbi4KCSAgIFRoZSBDTVMgd2lsbCB1c2UgdGhpcyB0byBpZGVudGlmeSB3aGV0aGVyIG9yIG5vdAoJICAgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUgaXMgY3VycmVudCwgYW5kCgkgICB0aGUgbW9kdWxlIHdpbGwgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaG93IHRvIHVwZ3JhZGUKCSAgIGl0c2VsZiBpZiByZXF1ZXN0ZWQuCSAgIAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcwLjAuMyc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEhlbHAoKQoJICAgVGhpcyByZXR1cm5zIEhUTUwgaW5mb3JtYXRpb24gb24gdGhlIG1vZHVsZS4KCSAgIFR5cGljYWxseSwgeW91J2xsIHdhbnQgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8KCSAgIHVzZSB0aGUgbW9kdWxlLgoJICAgCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0SGVscCgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEF1dGhvcigpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAnSmVhbi1DaHJpc3RvcGhlIEN1dmVsaWVyJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yRW1haWwoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgb2YgeW91ciBtb2R1bGUgZ2V0IGluIHRvdWNoIHdpdGggeW91IHRvIHNlbmQgYnVnIHJlcG9ydHMsCgkgICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5LgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnamNjQG1vcnJpcy1jaGFwbWFuLmNvbSc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldENoYW5nZUxvZygpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIG1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSBBYm91dCBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgZmlndXJlIG91dCB3aGF0J3MgY2hhbmdlZCBiZXR3ZWVuIHJlbGVhc2VzLgoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSXNQbHVnaW5Nb2R1bGUoKQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UsIGRlcGVuZGluZyB1cG9uCgkgICB3aGV0aGVyIHVzZXJzIGNhbiBpbmNsdWRlIHRoZSBtb2R1bGUgaW4gYSBwYWdlIG9yCgkgICB0ZW1wbGF0ZSB1c2luZyBhIHNtYXJ0eSB0YWcgb2YgdGhlIGZvcm0KCSAgIHtjbXNfbW9kdWxlIG1vZHVsZT0nVHdpdHRlcicgcGFyYW0xPXZhbCBwYXJhbTI9dmFsLi4ufQoJICAgCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3IKCSAgIHRlbXBsYXRlcywgcmV0dXJuICJmYWxzZSIgaGVyZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSGFzQWRtaW4oKQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uCgkgICB3aGV0aGVyIHlvdXIgbW9kdWxlIGFkZHMgYW55dGhpbmcgdG8gdGhlIEFkbWluIGFyZWEgb2YKCSAgIHRoZSBzaXRlLiBGb3IgdGhlIHJlc3Qgb2YgdGhlc2UgY29tbWVudHMsIEknbGwgYmUgY2FsbGluZwoJICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yCgkgICB3YW50IG9mIGEgYmV0dGVyIHRlcm0uCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBIYXNBZG1pbigpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBZG1pblNlY3Rpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKCSAgIHdoaWNoIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSBpdCBzaG93cwoJICAgdXAgaW4uIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgdG8gc3BlY2lmeSB0aGF0CgkgICBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKCgkgICBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgoJICAgY29udGVudCAgICAgLSB0aGUgQ29udGVudCBtZW51CgkgICBsYXlvdXQgICAgICAtIHRoZSBMYXlvdXQgbWVudQoJICAgdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CgkgICBleHRlbnNpb25zICAtIHRoZSBFeHRlbnNpb25zIG1lbnUgKHRoaXMgaXMgdGhlIGRlZmF1bHQpCgkgICBzaXRlYWRtaW4gICAtIHRoZSBTaXRlIEFkbWluIG1lbnUKCSAgIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgoJICAgbG9nb3V0ICAgICAgLSB0aGUgTG9nb3V0IG1lbnUgdGFiCgkgICAKCSAgIE5vdGUgdGhhdCBpZiB5b3UgcGxhY2UgeW91ciBtb2R1bGUgaW4gdGhlIG1haW4sCgkgICB2aWV3c2l0ZSwgb3IgbG9nb3V0IHNlY3Rpb25zLCBpdCB3aWxsIHNob3cgdXAgaW4gdGhlCgkgICBtZW51cywgYnV0IHdpbGwgbm90IGJlIHZpc2libGUgaW4gYW55IHRvcC1sZXZlbAoJICAgc2VjdGlvbiBwYWdlcy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCgl7CgkJcmV0dXJuICdjb250ZW50JzsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEFkbWluRGVzY3JpcHRpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBoYXZlIGl0IHJldHVybiBhIGRlc2NyaXB0aW9uIHN0cmluZyB0aGF0IGdldHMgc2hvd24KCSAgIGluIHRoZSBBZG1pbiBTZWN0aW9uIHBhZ2UgdGhhdCBjb250YWlucyB0aGUgbW9kdWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBWaXNpYmxlVG9BZG1pblVzZXIoKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IGl0J3MgZGlzcGxheWVkIGJ5IHRoZSBib29sZWFuCgkgICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCgkgICB0byBoaWRlIG1vZHVsZXMgZnJvbSBhZG1pbnMgd2hvIGxhY2sgcGVybWlzc2lvbiB0byB1c2UKCSAgIHRoZW0uCgkgICAKCSAgIFR5cGljYWxseSwgeW91J2xsIHVzZSBzb21lIHBlcm1pc3Npb24gdG8gc2V0IHRoaXMKCSAgIChlLmcuLCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTb21lIFBlcm1pc3Npb24nKTsgKQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCXsKICAgICAgICByZXR1cm4gdHJ1ZTsKCX0KCQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBDaGVja0FjY2VzcygpCgkgICBUaGlzIHdyYXBwZXIgZnVuY3Rpb24gd2lsbCBjaGVjayBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbiwKCSAgIGFuZCBkaXNwbGF5IGFuIGVycm9yIHBhZ2UgaWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIGFkZXF1YXRlIHBlcm1pc3Npb25zLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm0gPSAnTWFuYWdlIFR3aXR0ZXInKQoJCXsKCQlyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybSk7CgkJfQoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgRGlzcGxheUVycm9yUGFnZSgpCgkgICBUaGlzIGlzIGEgc2ltcGxlIGZ1bmN0aW9uIGZvciBnZW5lcmF0aW5nIGVycm9yIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CiAgICB9CgkKCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldERlcGVuZGVuY2llcygpCgkgICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZAoJICAgYmVmb3JlIHlvdSBjYW4gaW5zdGFsbCBpdC4KCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQKCSAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgkgICAKCSAgIEl0IHNob3VsZCByZXR1cm4gYW4gaGFzaCwgZWcuCgkgICByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgTWluaW11bUNNU1ZlcnNpb24oKQoJICAgWW91ciBtb2R1bGUgbWF5IHJlcXVpcmUgZnVuY3Rpb25zIG9yIG9iamVjdHMgZnJvbQoJICAgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIENNUyBNYWRlIFNpbXBsZS4KCSAgIEV2ZXIgc2luY2UgdmVyc2lvbiAwLjExLCB5b3UgY2FuIHNwZWNpZnkgd2hpY2ggbWluaW11bQoJICAgQ01TIE1TIHZlcnNpb24gaXMgcmVxdWlyZWQgZm9yIHlvdXIgbW9kdWxlLCB3aGljaCB3aWxsCgkgICBwcmV2ZW50IGl0IGZyb20gYmVpbmcgaW5zdGFsbGVkIGJ5IGEgdmVyc2lvbiBvZiBDTVMgdGhhdAoJICAgY2FuJ3QgcnVuIGl0LgoJICAgCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1pbmltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHJlcXVpcmVzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIjEuNS4wIjsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIE1heGltdW1DTVNWZXJzaW9uKCkKCSAgIFlvdSBtYXkgd2FudCB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIHVzaW5nIHlvdXIgbW9kdWxlIGluCgkgICBmdXR1cmUgdmVyc2lvbnMgb2YgQ01TIE1hZGUgU2ltcGxlLCBlc3BlY2lhbGx5IGlmIHlvdQoJICAgdGhpbmsgQVBJIGZlYXR1cmVzIHlvdSB1c2UgbWF5IGNoYW5nZSAtLSBhZnRlciBhbGwsIHlvdQoJICAgbmV2ZXIgcmVhbGx5IGtub3cgaG93IHRoZSBDTVMgTVMgQVBJIGNvdWxkIGV2b2x2ZS4KCSAgIAoJICAgU28sIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gZmxvb2RpbmcgeW91IHdpdGggYnVnIHJlcG9ydHMKCSAgIHdoZW4gYSBuZXcgdmVyc2lvbiBvZiBDTVMgTVMgaXMgcmVsZWFzZWQsIHlvdSBjYW4gc2ltcGx5CgkgICByZXN0cmljdCB0aGUgdmVyc2lvbi4gVGhlbiwgb2YgY291cnNlLCB0aGUgb251cyBpcyBvbiB5b3UKCSAgIHRvIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBvZiB5b3VyIG1vZHVsZSB3aGVuIGEgbmV3IHZlcnNpb24KCSAgIG9mIHRoZSBDTVMgaXMgcmVsZWFzZWQuLi4KCSAgIAoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCgkgICBtYXhpbXVtIHZlcnNpb24gdGhhdCB0aGlzIG1vZHVsZSBzdXBwb3J0cy4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkvKgoJIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIiI7Cgl9CiovCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciBpbnN0YWxsYXRpb24sIHRoZXJlIG1heSBiZSB0aGluZ3MgeW91IHdhbnQgdG8KCSAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCgkgICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJICAgQWZ0ZXIgcmVtb3ZpbmcgYSBtb2R1bGUsIHRoZXJlIG1heSBiZSB0aGluZ3MgeW91IHdhbnQgdG8KCSAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCgkgICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7Cgl9CgoKCgoJLyoqCgkgKiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCSAqIFRoaXMgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgbWVzc2FnZSBhbG9uZyB3aXRoIGEgWWVzL05vIGRpYWxvZyBib3guIElmIHRoZSB1c2VyIHJlc3BvbmRzCgkgKiBpbiB0aGUgYWZmaXJtYXRpdmUgdG8geW91ciBtZXNzYWdlLCB0aGUgdW5pbnN0YWxsIHdpbGwgcHJvY2VlZC4gSWYgdGhleSByZXNwb25kIGluIHRoZQoJICogbmVnYXRpdmUsIHRoZSB1bmluc3RhbGwgd2lsbCBiZSBjYW5jZWxlZC4gVGh1cywgeW91ciBtZXNzYWdlIHNob3VsZCBiZSBvZiB0aGUgZm9ybQoJICogIkFsbCBtb2R1bGUgZGF0YSB3aWxsIGJlIGRlbGV0ZWQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IgoJICoKCSAqIElmIHlvdSBkb24ndCB3YW50IHRoZSBkaWFsb2csIGhhdmUgdGhpcyBtZXRob2QgcmV0dXJuIGEgRkFMU0UsIHdoaWNoIHdpbGwgY2F1c2UgdGhlCgkgKiBtb2R1bGUgdG8gdW5pbnN0YWxsIGltbWVkaWF0ZWx5IGlmIHRoZSB1c2VyIGNsaWNrcyB0aGUgInVuaW5zdGFsbCIgbGluay4KCSAqLwoJZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7Cgl9CgkKCQoJLy8gVHdpdHRlciBmdW5jdGlvbnMKCQoJZnVuY3Rpb24gZ2V0VGltZWxpbmUoJHR5cGUgPSAncHVibGljJywgJHBhcmFtcyA9IGFycmF5KCkpCgl7CgkJc3dpdGNoICgkdHlwZSkKCQl7CgkJCWNhc2UgJ2ZyaWVuZHMnOgoJCQkJcmV0dXJuICR0aGlzLT5nZXRGcmllbmRzVGltZWxpbmUoKTsKCQkJCgkJCWNhc2UgJ3B1YmxpYyc6CgkJCQlyZXR1cm4gJHRoaXMtPmdldFB1YmxpY1RpbWVsaW5lKCk7CgkJCQoJCQljYXNlICd1c2VyJzoKCQkJCXJldHVybiAkdGhpcy0+Z2V0VXNlclRpbWVsaW5lKCRwYXJhbXMpOwoJCQkKCQl9Cgl9CgkKCWZ1bmN0aW9uIGdldEZyaWVuZHNUaW1lbGluZSgpCgl7CgkJLy8gY3VybCAtdSB1c2VyOnBhc3N3b3JkIGh0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy9mcmllbmRzX3RpbWVsaW5lLnhtbAoJCQoJCSRjb250ZW50ID0gJHRoaXMtPmdldEN1cmwoJ2h0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy9mcmllbmRzX3RpbWVsaW5lLnhtbCcsIHRydWUpOwoJCQkJCgkJJHhtbCA9IHNpbXBsZXhtbF9sb2FkX3N0cmluZygkY29udGVudCk7CgkJCgkJcmV0dXJuICR4bWw7Cgl9CgkKCWZ1bmN0aW9uIGdldFB1YmxpY1RpbWVsaW5lKCkKCXsKCQkvLyBjdXJsIC11IHVzZXI6cGFzc3dvcmQgaHR0cDovL3R3aXR0ZXIuY29tL3N0YXR1c2VzL2ZyaWVuZHNfdGltZWxpbmUueG1sCgkJCgkJJGNvbnRlbnQgPSAkdGhpcy0+Z2V0Q3VybCgnaHR0cDovL3R3aXR0ZXIuY29tL3N0YXR1c2VzL3B1YmxpY190aW1lbGluZS54bWwnLCB0cnVlKTsKCQkJCQoJCSR4bWwgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJGNvbnRlbnQpOwoJCQoJCXJldHVybiAkeG1sOwoJfQoJCglmdW5jdGlvbiBnZXRVc2VyVGltZWxpbmUoJHBhcmFtcyA9IGFycmF5KCkpCgl7CgkJLy8gY3VybCAtdSB1c2VyOnBhc3N3b3JkIGh0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy9mcmllbmRzX3RpbWVsaW5lLnhtbAoJCQoJCWlmIChpc3NldCgkcGFyYW1zWyd1c2VyX2lkJ10pKQoJCXsKCQkJJGNvbnRlbnQgPSAkdGhpcy0+Z2V0Q3VybCgnaHR0cDovL3R3aXR0ZXIuY29tL3N0YXR1c2VzL3VzZXJfdGltZWxpbmUueG1sJywgZmFsc2UsIGFycmF5KCd1c2VyX2lkJyA9PiAkcGFyYW1zWyd1c2VyX2lkJ10pKTsKCQl9CgkgIGVsc2VpZiAoaXNzZXQoJHBhcmFtc1snc2NyZWVuX25hbWUnXSkpCiAgICB7CiAgICAgICRjb250ZW50ID0gJHRoaXMtPmdldEN1cmwoJ2h0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy91c2VyX3RpbWVsaW5lLnhtbCcsIGZhbHNlLCBhcnJheSgnc2NyZWVuX25hbWUnID0+ICRwYXJhbXNbJ3NjcmVlbl9uYW1lJ10pKTsKICAgIH0KCQllbHNlCgkJewoJCQkkY29udGVudCA9ICR0aGlzLT5nZXRDdXJsKCdodHRwOi8vdHdpdHRlci5jb20vc3RhdHVzZXMvdXNlcl90aW1lbGluZS54bWwnLCB0cnVlKTsKCQl9CgkJCQkKCQkkeG1sID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKCRjb250ZW50KTsKCQkKCQlyZXR1cm4gJHhtbDsKCX0KCgkvKioKCSAqIFRoaXMgZnVuY3Rpb24gc2VuZCBhIG1lc3NhZ2UgdG8gdHdpdHRlciB3aXRoIFR3aXR0ZXIgYWNjb3VudAoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgVGhlIDE0MCBjaGFycyBtZXNzYWdlIHRvIGJlIHNlbnQKCSAqIEBwYXJhbSBib29sZWFuICRzaG9ydGVuIFRlbGwgaWYgdGhlIHVybHMgaGFzIHRvIGJlIHNob3J0ZW5lZCAodHJ1ZSBieSBkZWZhdWx0KQoJICogQHJldHVybiBib29sZWFuCgkgKi8KCQoJcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVN0YXR1cygkbWVzc2FnZSwgJHNob3J0ZW4gPSB0cnVlKQoJewoJICAgaWYgKCRzaG9ydGVuKQoJICAgewoJICAgICAgJG1lc3NhZ2UgPSBUd2VldDo6c2hvcnRlblVybHMoJG1lc3NhZ2UpOwoJICAgfQoJCWlmICgkbWVzc2FnZSAhPSAnJyAmJiBzdHJsZW4oJG1lc3NhZ2UpIDwgMTQwKQoJCXsKCQkJJGNvbnRlbnQgPSAkdGhpcy0+Z2V0Q3VybCgnaHR0cDovL3R3aXR0ZXIuY29tL3N0YXR1c2VzL3VwZGF0ZS54bWwnLCB0cnVlLCBhcnJheSgnc3RhdHVzJyA9PiAkbWVzc2FnZSkpOwoJCX0KCQllbHNlIAoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0JCgkKCXB1YmxpYyBmdW5jdGlvbiBzaG9ydGVuVXJscygkbWVzc2FnZSkKCXsKCSAgIHJldHVybiBUd2VldDo6c2hvcnRlblVybHMoJG1lc3NhZ2UpOwoJfQoJCglmdW5jdGlvbiBnZXRDdXJsKCR1cmwsICR3aXRoX2NyZWRlbnRpYWwgPSBmYWxzZSwgJGRhdGEgPSBhcnJheSgpKQoJewoJCQkvLyBjcmVhdGUgYSBuZXcgY1VSTCByZXNvdXJjZQoJCQkkY2ggPSBjdXJsX2luaXQoKTsKCQkJCgkJCS8vIHNldCBVUkwgYW5kIG90aGVyIGFwcHJvcHJpYXRlIG9wdGlvbnMKCQkJY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybCk7CgkJCQoJCQlpZiAoJHdpdGhfY3JlZGVudGlhbCkKCQkJewoJCQkJIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSUFdELCAnJyAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbicpIC4gJzonIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkJykgLiAnJyk7CgkJCX0JCQkKCQkJY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7CgkJCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CgkJCWN1cmxfc2V0b3B0KCAkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0V4cGVjdDonKSApOwoJCQkKCQkJaWYgKGNvdW50KCRkYXRhKSAhPSAwKQoJCQl7CgkJCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGEpOwoJCQl9CgkJCQoJCQkvLyBncmFiIFVSTCBhbmQgcGFzcyBpdCB0byB0aGUgYnJvd3NlcgoJCQkkb3V0cHV0ID0gY3VybF9leGVjKCRjaCk7CgkJCQoJCQkvLyBjbG9zZSBjVVJMIHJlc291cmNlLCBhbmQgZnJlZSB1cCBzeXN0ZW0gcmVzb3VyY2VzCgkJCWN1cmxfY2xvc2UoJGNoKTsKCQkJCgkJCXJldHVybiAkb3V0cHV0OwoJfQp9Cgo/Pgo=]]></data>
	</file>
</module>
