<?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>SmartForms</name>
	<version>2.0.0</version>
    <mincmsversion>2.2.9</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgaXMgdGhpczwvaDM+CjxwPlRoaXMgaXMgYSBuZXcgZ2VuZXJhdGlvbiBvZiBmb3JtIGhhbmRsaW5nIG1vZHVsZSB0aGF0IHByb3ZpZGVzIHRoZSBhYmlsaXR5IGZvciB3ZWIgcHJvZmVzc2lvbmFscyB0byBidWlsZCBmb3JtcyB0aGUgd2F5IHRoZXkga25vdyBob3csIHVzaW5nIEhUTUwsIENTUyBhbmQgamF2YXNjcmlwdC4uIGFuZCB0aGVuIGVhc2lseSBkZWZpbmUgd2hhdCBzaG91bGQgaGFwcGVuIHdpdGggdGhlIGRhdGEgdXNlcnMgc3VibWl0dGVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgY2FuIGFsbG93IHlvdSB0byBjcmVhdGUgd2VsbCBzdHlsZWQsIGR5bmFtaWMgZm9ybXMsIHVzaW5nIHdoYXRldmVyIHRvb2xraXQgeW91IGxpa2UgKEJvb3RzdHJhcCwgRm91bmRhdGlvbiwgZXRjKS4gIGFuZCBpbnRlZ3JhdGUgamF2YXNjcmlwdC4gIFRoZW4gcXVpY2tseSBkZWZpbmUgaG93IHRoZSBmb3JtIGRhdGEgc2hvdWxkIGJlIHByb2Nlc3NlZC48L3A+Cgo8aDM+RmVhdHVyZXM8L2gzPgo8dWw+CiAgPGxpPllvdSBjcmVhdGUgdGhlIGZvcm0uIGFuZCBjYW4gZ2V0IGl0IGxvb2tpbmcgdGhlIHdheSB5b3Ugd2FudC48L2xpPgogIDxsaT5BbGxvd3MgZm9yIGphdmFzY3JpcHQgdmFsaWRhdGlvbiwgYW5kIEhUTUw1IGZpZWxkIHR5cGVzLjwvbGk+CiAgPGxpPkNhbiB2ZXJpZnkgZGF0YSBmcm9tIEhUTUw1IGF0dHJpYnV0ZXMgb24gdGhlIHNlcnZlciBzaWRlLCAgZXZlbiBpZiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gbmF0aXZlbHkuPC9saT4KICA8bGk+UHJvdmlkZXMgZGF0YSBhdHRyaWJ1dGVzIHRvIGFzc2lzdCBpbiByZW5kZXJpbmcgYW5kIGhhbmRsaW5nIHRoZSBmb3JtLjwvbGk+CiAgPGxpPkludGVncmF0ZXMgd2l0aCBzbWFydHk8L2xpPgogIDxsaT5UYWtlcyBhZHZhbnRhZ2Ugb2YgQ01TTVMgMi4yIGZlYXR1cmVzIGxpa2UgdGVtcGxhdGUgdHlwZXMgYW5kIGhvb2tzPC9saT4KICA8bGk+VGVzdHMgeW91ciBjb2RlIHRvIHRlbGwgeW91IGFib3V0IHBhcnNpbmcgZXJyb3JzIGFuZCBwb3RlbnRpYWwgcmVuZGVyaW5nLCBvciBzdWJtaXNzaW9uIHByb2JsZW1zLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGZpbGUgdXBsb2FkczwvbGk+CiAgPGxpPkFkZHJlc3NlcyBzZWN1cml0eSBpc3N1ZXM6CiAgICA8dWw+CiAgICAgIDxsaT5TdXBwb3J0cyBjYXB0Y2hhPC9saT4KICAgICAgPGxpPkhhcyBidWlsdCBpbiBob25leXBvdCBjYXB0Y2hhIHN1cHBvcnQ8L2xpPgogICAgICA8bGk+RWFjaCByZXF1ZXN0IGlzIGFzc2lnbmVkIGEgdW5pcXVlIEdVSUQsIHdoaWNoIGlzIHZhbGlkYXRlZCBvbiBzdWJtaXNzaW9uLjwvbGk+CiAgICAgIDxsaT5BdXRvbWF0aWNhbGx5IGRpc2FsbG93cyBIVE1MIHRhZ3MgaW4gc3VibWl0dGVkIHJlc3BvbnNlcy48L2xpPgogICAgICA8bGk+Rm9ybSBhdHRyaWJ1dGVzIGFyZSBwYXJzZWQgYW5kIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGFuZCB2YWxpZGF0ZWQgb24gdGhlIHNlcnZlciB0byBtaXRpZ2F0ZSBNYW4taW4tdGhlLU1pZGRsZSBhdHRhY2tzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkhhcyBtdWx0aXBsZSBzZXJ2ZXItc2lkZSBkYXRhIHZhbGlkYXRpb24gcm91dGluZXM8L2xpPgogIDxsaT5BdXRvbWF0aWNhbGx5IHNldCBmaWVsZCB2YWx1ZXMgYmFzZWQgb24gZW50ZXJlZCByZXNwb25zZSwgd2l0aG91dCByZXF1aXJpbmcgbWFya3VwIG9yIGxvZ2ljLjwvbGk+CiAgPGxpPkNyZWF0ZSB2YWxpZGF0aW9ucyBieSBhdXRvbWF0aWNhbGx5IHBhcnNpbmcgeW91ciBIVE1MIGFuZCB0ZW1wbGF0ZS48L2xpPgogIDxsaT5NdWx0aXBsZSBidWlsdC1pbiBoYW5kbGVycy9kaXNwb3NpdGlvbnMuPC9saT4KICA8bGk+RWFzaWx5IGFkZCBoYW5kbGVycyBhbmQgZGlzcG9zaXRpb25zIHZpYSB0aGUgQVBJLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGhvb2tzIGZvciB2YWxpZGF0aW9uIGFuZCBkaXNwb3NpdGlvbi9oYW5kbGluZy48L2xpPgogIDxsaT5Nb3JlPC9saT4KPC91bD4KCjxoMz5Ib3cgZG8gSSB1c2UgaXQ8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYSBtb2R1bGUgZm9yIHRoZSBleHBlcmllbmNlZCBDTVNNUyB3ZWIgcHJvZmVzc2lvbmFsLCAgeW91IHNob3VsZCBoYXZlIGdvb2QgZXhwZXJpZW5jZSB3aXRoIENNU01TLCBIVE1MLCBDU1MgYW5kIHBvdGVudGlhbGx5IGphdmFzY3JpcHQuPC9wPgo8b2w+CiAgPGxpPkNyZWF0ZSB5b3VyIGZvcm0gSFRNTCB0ZW1wbGF0ZQogICAgIDx1bD4KICAgICAgIDxsaT5DcmVhdGUgYSBuZXcgdGVtcGxhdGUgb2YgdHlwZSA8Y29kZT5TbWFydEZvcm1zOjpGb3JtPC9jb2RlPiBpbiB0aGUgRGVzaWduIG1hbmFnZXIuICBCZSBjYXJlZnVsIHRvIHJlbWVtYmVyIHRoZSBuYW1lIHlvdSBnaXZlIHRoZSBuZXcgdGVtcGxhdGUuPC9saT4KICAgICAgIDxsaT5Db3B5L3Bhc3RlIG9yIGVudGVyIHlvdXIgSFRNTCBmb3JtIGNvZGUgaW50byB0aGUgdGVtcGxhdGUuICBTYXZlIHdoZW4gcmVhZHkuPC9saT4KICAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSBhIG5ldyBjb250ZW50IHBhZ2UgYW5kIHRlc3QgeW91ciBmb3JtIEhUTUwKICAgICA8cD5BZGQgdGhpcyBjb2RlIHRvIHRoZSBjb250ZW50IGFyZWE6PC9wPgogICAgIDxwcmU+e2luY2x1ZGUgZmlsZT0nY21zX3RlbXBsYXRlOnlvdXJfdGVtcGxhdGVfbmFtZSd9PC9wcmU+CiAgICAgPHA+VGhpcyBpcyBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2Ugd2lsbCBiZSBjaGFuZ2luZyBpdCBsYXRlciBvbmNlIG91ciBmb3JtIGxvb2tzIGdvb2QuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gWW91IHByb2JhYmx5IHdhbnQgdG8gZGlzYWJsZSB0aGUgV1lTSVdZRyBlZGl0b3IgZm9yIHRoaXMgbmV3IGNvbnRlbnQgcGFnZS48L3A+CiAgPC9saT4KICA8bGk+RWRpdCwgc3R5bGUsIGFuZCBjb2RlIHlvdXIgZm9ybSBIVE1MIHRlbXBsYXRlLgogICAgIDxwPlNhdmUgdGhlIGNvbnRlbnQgcGFnZSBhbmQgdmlldyBpdCBpbiB5b3VyIGJyb3dzZXIuIFlvdSBzaG91bGQgdGVzdCBvdXQgeW91ciBIVE1MLCBDU1MsIGFuZCBqYXZhc2NyaXB0LiAgRW5zdXJlIHlvdXIgZm9ybSBpcyByZXNwb25zaXZlLCBhbmQgdGVzdCBmb3IgSFRNTCBhbmQgdmFsaWRhdGlvbiBmdW5jdGlvbmFsaXR5LiAgWW91IGNhbiBldmVuIHN1Ym1pdCB5b3VyIGZvcm0sIHRob3VnaCBhdCB0aGlzIHBvaW50IGl0IHNob3VsZCBub3QgZG8gYW55dGhpbmcgZXhjZXB0IHJlZnJlc2ggdGhlIHBhZ2UuPC9wPgogICAgIDxwPllvdSBtYXkgbmVlZCB0byByZXBlYXRlZGx5IHJlbG9hZCB0aGUgY29udGVudCBwYWdlIGFzIHlvdSBhcmUgZWRpdGluZyB0aGUgSFRNTCwgYW5kIHN0eWxpbmcgeW91ciBmb3JtLjwvcD4KICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFlvdXIgSFRNTCBmb3JtIHRhZyBzaG91bGQgYmUgYXMgc2ltcGxlIGFzIDxjb2RlPiZsdDtmb3JtJmd0OzwvY29kZT4uICBQYXJ0aWN1bGFybHksIHlvdSBzaG91bGQgbGVhdmUgb3V0IHRoZSB0aGUgbWV0aG9kLCBhbmQgYWN0aW9uIGF0dHJpYnV0ZXMuIExhdGVyLCB3aGVuIHRoZSBTbWFydEZvcm1zIG1vZHVsZSBpcyByZW5kZXJpbmcgeW91ciBmb3JtLCBhbnkgaW1wb3J0YW50IGZvcm0gYXR0cmlidXRlcyBhbmQgaGlkZGVuIHZhcmlhYmxlcyB3aWxsIGJlIGluamVjdGVkLiAgWW91IGNhbiB0aG91Z2ggYWRkIGFueSBpZCwgY2xhc3MgYW5kIHN0eWxlIGF0dHJpYnV0ZXMgdGhhdCB5b3Ugd2lzaC48L3A+CiAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3VyIEhUTUwgdmFsaWRhdGUgYXMgbXVjaCBhcyBwb3NzaWJsZS4gIFNvIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGNoZWNrIHlvdXIgb3V0cHV0IHdpdGggYSB2YWxpZGF0b3IuICBBbHNvIGNoZWNrIHRoZSBqYXZhc2NyaXB0IGNvbnNvbGUgZm9yIHdhcm5pbmdzIG9yIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Q3JlYXRlIGEgZm9ybSBpbiBTbWFydEZvcm1zIGFuZCBsaW5rIGl0IHRvIHlvdXIgZm9ybSB0ZW1wbGF0ZS4KICAgICA8b2w+CiAgICAgPGxpPkJyb3dzZSB0byA8Y29kZT5FeHRlbnNpb25zID4+IFNtYXJ0Rm9ybXM8L2NvZGU+IGluIHRoZSBDTVNNUyBhZG1pbiBwYW5lbCwgYW5kIGNyZWF0ZSBhIG5ldyBmb3JtLjwvbGk+CiAgICAgPGxpPlNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZm9ybSB5b3UgY3JlYXRlZCBhbmQgZWRpdGVkIGFib3ZlLi4uIGFuZCBvcHRpb25hbGx5IHByb3ZpZGUgYSBkZXNjcmlwdGlvbi48L2xpPgogICAgIDxsaT5DbGljayAmcXVvdDtzY2FuJnF1b3Q7ICB0aGlzIHdpbGwgcGFyc2UgeW91ciBITVRMIHRlbXBsYXRlIGFuZCBwcm92aWRlIGZlZWRiYWNrIG9uIHRoZSAmcXVvdDttZXNzYWdlcyZxdW90OyB0YWIgdG8gaW5kaWNhdGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBpbXByb3ZlbWVudHMuPC9saT4KICAgICA8bGk+UmV2aWV3IHRoZSBjb250ZW50IG9mIHRoZSAmcXVvdDtmaWVsZHMmcXVvdDsgdGFiIHRvIGVuc3VyZSB0aGF0IGFsbCBuZWNlc3NhcnkgZmllbGRzIGFyZSBwcmVzZW50LCBhbmQgdGhhdCBldmVyeXRoaW5nIGxvb2tzIGNvcnJlY3QuPC9saT4KICAgICA8bGk+QWRkIG9uZSBvciBtb3JlICZxdW90O2hhbmRsZXJzJnF1b3Q7PC9saT4KICAgICA8bGk+RW50ZXIgaW4gc29tZSB0ZXh0LCBvciBzZWxlY3QgYSBmaW5hbCBhY3Rpb24uPC9saT4KICAgICA8bGk+U2F2ZSB5b3VyIGZvcm0uPC9saT4KICAgICA8L29sPgogIDwvbGk+CiAgPGxpPkNoYW5nZSB0aGUgY2FsbCB0byByZW5kZXIgeW91ciBmb3JtLgogICAgPHA+RWRpdCB0aGUgcGFnZSB5b3UgY3JlYXRlZCBpbiBzdGVwIDIgYWJvdmUsIGFuZCBjaGFuZ2UgdGhlIGNhbGwgdG8gPGNvZGU+e1NtYXJ0Rm9ybXMgZm9ybT0neW91cmZvcm1uYW1lJ308L2NvZGU+LiAgVGhlbiBzYXZlIHRoZSBjb250ZW50IHBhZ2UuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QKICAgIDxwPlJlbG9hZCB0aGUgY29udGVudCBwYWdlIHdlIGNyZWF0ZWQgYWJvdmUgaW4geW91ciBicm93c2VyLCBhbmQgZW5zdXJlIGV2ZXJ5dGhpbmcgbG9va3MgY29ycmVjdC4gIEFuZCB0aGVuIHRlc3QgdGhlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm0uPC9wPgogICAgPHA+QmVoYXZpb3Igb2YgdGhlIGZvcm0gd2lsbCBiZSBkZXBlbmRhbnQgdXBvbiB3aGF0IGZvcm0gb3B0aW9ucyBhcmUgc2VsZWN0ZWQsIHdoYXQgdmFsaWRhdGlvbnMgYXJlIHNlbGVjdGVkLCBhbmQgdGhlIGhhbmRsZXJzLjwvcD4KICA8L2xpPgo8L29sPgoKPGgzPkJ1aWx0IGluIEZvcm0gYW5kIFRlbXBsYXRlIFRlc3RzPC9oMz4KPHVsPgogIDxsaT5WYWxpZGF0ZSB0ZW1wbGF0ZSBjb250ZW50cyA8ZW0+KFRlbXBsYXRlVmFsaWRhdG9yKTwvZW0+CiAgICA8cD5UaGlzIHRlc3QgY2hlY2tzIGZvciB2YWxpZCBmb3JtIHN0YXJ0aW5nIGFuZCBlbmRpbmcgdGFncywgd2hldGhlciB0aGV5IGFyZSBwcm92aWRlZCB2aWEgSFRNTCB0YWdzLCBvciB0aGUgQ01TTVMge2Zvcm1fc3RhcnR9IGFuZCB7Zm9ybV9lbmR9IHRhZ3MuICBJdCBhbHNvIGNoZWNrcyBpZiB5b3VyIHRlbXBsYXRlIGlzIGNhbGxpbmcge3NtdGZtX2Zvcm1fZXJyb3JzfSB0byByZXRyaWV2ZSB2YWxpZGF0aW9uIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Rm9ybSBWYWxpZGF0aW9uIDxlbT4oRm9ybVRhZ1ZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB5b3VyIHRlbXBsYXRlIGNvbnRhaW5zIG9ubHkgb25lIGZvcm0sIGFuZCBjaGVja3MgdG8gZW5zdXJlIHRoYXQgeW91IGhhdmUgbm90IHByb3ZpZGVkIGFueSBmb3JtIGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGZvcm0gcmVuZGVyaW5nIHByb2Nlc3MuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgaW5wdXQgbmFtZXMgPGVtPihGb3JtTWlzc2luZ05hbWVWYWxpZGF0b3IpPC9lbT4KICAgIDxwPldoZW4gc3VibWl0dGluZyBhIGZvcm0gdG8gYSBzZXJ2ZXIsIHRoZSBuYW1lIG9mIGVhY2ggaW5wdXQsIHRleHRhcmVhLCBhbmQgc2VsZWN0IGZpZWxkIGlzIG1hbmRhdG9yeS4gIFRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZWFjaCBvZiB0aG9zZSBmaWVsZHMgaGFzIGEgdmFsaWQgbmFtZSBhdHRyaWJ1dGUuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgbGFiZWxzIDxlbT4oRm9ybU1pc3NpbmdMYWJlbFZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBlYWNoIGlucHV0IGhhcyBzb21lIHNvcnQgb2YgbGFiZWwgZGV0ZWN0ZWQuICBUaGUgbGFiZWwgaXMgdXNlZCBhdXRvbWF0aWNhbGx5IGJ5IGZvcm0gaGFuZGxlcnMgYXMgdGhlIGh1bWFuLXJlYWRhYmxlIHZhbHVlIGZvciBlYWNoIGZpZWxkIHdoZW4gc2F2bmcgdGhlIGZvcm0uPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgdmFsdWVzIDxlbT4oRm9ybU1pc3NpbmdWYWx1ZVZhbGlkYXRvcik8L2VtPgogICAgPHA+U29tZSBpbnB1dHMgKGxpa2UgY2hlY2tib3hlcywgYW5kIHJhZGlvIGJ1dHRvbnMpIHJlcXVpcmUgYSB2YWx1ZSBhdHRyaWJ1dGUsIGFuZCByZXF1aXJlIGl0IHRvIGJlIGZpbGxlZCBpbiBzbyB0aGF0IGRhdGEgY2FuIGJlIHByb3Blcmx5IHRyYW5zbWl0dGVkIHRvIHRoZSBzZXJ2ZXIuICBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGVhY2ggb2YgeW91ciBmaWVsZHMgaGFzIGEgdmFsdWUsIGFzIHJlcXVpcmVkLjwvcD4KICA8L2xpPgogIDxsaT5EdXBsaWNhdGUgSUQgdGVzdCA8ZW0+KEZvcm1EdXBsaWNhdGVJZFZhbGlkYXRvcik8L2VtPgogICAgPHA+QXMgYSBjb252ZW5pZW5jZSwgdGhvdWdoIGl0IGlzIG5vdCBpbXBvcnRhbnQgZm9yIHRoZSBmb3JtIHN1Ym1pc3Npb24gcHJvY2VzcywgdGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBubyB0d28gaW5wdXQgZmllbGRzIGhhdmUgdGhlIHNhbWUgaWQuPC9wPgogIDwvbGk+CiAgPGxpPkR1cGxpY2F0ZSBuYW1lIHRlc3QgPGVtPihGb3JtRHVwbGljYXRlTmFtZVZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgbmFtZSBvZiBpbnB1dCBmaWVsZHMgaXMgbm90IGVycm9uZW91c2x5IGR1cGxpY2F0ZWQuICBXZSBjaGVjayBmb3IgZHVwbGljYXRlIG5hbWVzIHdpdGggZGlmZmVyZW50IHR5cGVzIG9mIGZpZWxkcy4gIEl0IGlnbm9yZXMgcmFkaW8gYnV0dG9uIGdyb3VwcywgYW5kIG90aGVyIGZpZWxkcyB3aGVyZSBpdCBpcyB2YWxpZCB0byBkdXBsaWNhdGUgdGhlIGlucHV0IG5hbWUuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+Rm9ybSBTY2FubmluZyBhbmQgU2F2aW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgc3RvcmVzIG1ldGFkYXRhIGFib3V0IHRoZSBmb3JtIHRlbXBsYXRlIGluIHRoZSBkYXRhYmFzZS4gIFRoaXMgbWV0YWRhdGEgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdmFsaWRhdG9ycyBhbmQgaGFuZGxlcnMsIGFuZCBvbiB0aGUgZnJvbnRlbmQgdG8gYWlkZSBpbiByZW5kZXJpbmcgYW5kIHZhbGlkYXRpb24gYW5kIGhhbmRsaW5nLiAgVGhlcmVmb3JlLCBlYWNoIHRpbWUgdGhlIGZvcm0gdGVtcGxhdGUgaXMgY2hhbmdlZCB0aGUgZm9ybSBtdXN0IGJlIHJlLXNjYW5uZWQuPC9wPgo8cD5UaGUgc2Nhbm5pbmcgcHJvY2VzcyB3aWxsIHBhcnNlIHRoZSBIVE1MIG9mIHRoZSBmb3JtIHRlbXBsYXRlLCBhbmQgYnVpbGQgbWV0YWRhdGEuICBJdCB3aWxsIG91dHB1dCBhIGxpc3Qgb2YgcG90ZW50aWFsIHByb2JsZW1zIHdpdGggeW91ciBmb3JtLiAgaS5lLjogIGludmFsaWQgc3ludGF4LCBtaXNzaW5nIGxhYmVscywgZXRjLiBTb21lIG9mIHRoZXNlIG1lc3NhZ2VzIG1heSBiZSBpbnRlbnRpb25hbCwgb3IgbWF5IGJlIGFuIGVycm9yIGluIHRoZSB0ZW1wbGF0ZS4gIEVhY2ggZGV2ZWxvcGVyIHdpbGwgbmVlZCB0byBkZXRlcm1pbmUgdGhpcyBmb3IgaGltc2VsZi48L3A+Cgo8aDM+UHJlLXJlbmRlciBsb2dpYzwvaDM+CjxwPlRoaXMgc21hcnR5IHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gaW5pdGlhbGl6ZSBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIHRoZSBmb3JtIGZvciB1c2Ugd2hlbiB0aGUgZm9ybSBpcyBpbml0aWFsbHkgZGlzcGxheWVkIChpLmUuOiBub3QgdGhlIHJlc3VsdCBvZiBhIHN1Ym1pc3Npb24pLiAgSXQgaXMgdXNlZnVsIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGlucHV0IGZpZWxkcyBiYXNlZCBvbiBzb21lIGxvZ2ljLjwvcD4KPHA+VGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIDxjb2RlPntzbXRmbV9zZXR9PC9jb2RlPiBzbWFydHkgcGx1Z2luLiAgaS5lOiA8Y29kZT57c210Zm1fc2V0IGZpZWxkPXdpZGdldF9jb2xvciB2YWx1ZT13aGl0ZX08L2NvZGU+LjwvcD4KPHA+VGhpcyBzaW1wbGUgZXhhbXBsZSwgd2lsbCBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGEgZmllbGQgbmFtZWQgJnF1b3Q7d2lkZ2V0X2NvbG9yJnF1b3Q7IHRvIHdoaXRlIG9uIHN1bmRheXM6PC9wPgo8cHJlPjxjb2RlPntpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJWQnID09IDB9e3NtdGZtX3NldCBmaWVsZD13aWRnZXRfY29sb3IgdmFsdWU9J3doaXRlJ317L2lmfTwvY29kZT48L3ByZT4KCjxoMz5TdWJtaXNzaW9uIFZhbGlkYXRpb25zPC9oMz4KPHA+U3VibWlzc2lvbiB2YWxpZGF0aW9ucyB0YWtlIHRoZSB1c2VyIGVudGVyZWQgcmVzcG9uc2UsIGFuZCBlbnN1cmUgdGhhdCBpdCBjb25mb3JtcyB0byB0aGUgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBlaXRoZXIgaW4gdGhlIGZvcm0gaXRzZWxmLCBvciB2aWEgYWRkaXRpb25hbCB2YWxpZGF0b3JzIHlvdSBhZGRlZC4gIFRoZXkgbWF5IGFsc28gbW9kaWZ5IHRoZSByZXNwb25zZS4gIFVzdWFsbHkgdGhvdWdoIHRoZXkgZG8gbm90IHN0b3JlIHRoZSBkYXRhIG9yIHNlbmQgdGhlIGRhdGEgYW55d2hlcmUuPC9wPgo8cD5JZiBhbnkgdmFsaWRhdGlvbnMgZmFpbCwgdGhlIGVycm9yIG1lc3NhZ2VzIGFyZSBjb2xsZWN0ZWQgYW5kIHRoZSBmb3JtIGlzIHJlLXJlbmRlcmVkLCB3aXRob3V0IGV4ZWN1dGluZyBhbnkgb2YgdGhlIGhhbmRsZXJzLjwvcD4KPHA+QmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBzdWJtaXNzaW9uIHZhbGlkYXRpb25zIHRoYXQgYXJlIGJ1aWx0IGluIHRvIFNtYXJ0Rm9ybXMuPC9wPgo8dWw+CiAgPGxpPkNoZWNrIGZvciBIVE1MIGluIGlucHV0IHN1Ym1pc3Npb24gIDxlbT4oSHRtbERldGVjdGlvblZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gZW5zdXJlcyB0aGF0IGEgdXNlciBoYXMgbm90IGFueSBpbmplY3RlZCBIVE1MIGNvZGUgKGluY2x1ZGluZyBwb3RlbnRpYWxseSBtYWxpY2lvdXMgc2NyaXB0IHRhZ3MpIGludG8gYW55IHN1Ym1pdHRlZCBmaWVsZHMuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB2YWxpZGF0b3IgZG9lcyBub3Qgb2JleSB0aGUgZGF0YS1zbXRmbS1ub3ZhbGlkYXRlIGF0dHJpYnV0ZS48L3A+CiAgPC9saT4KICA8bGk+Q2hlY2sgZm9yIHJlcXVpcmVkIGRhdGEgIDxlbT4oSHRtbFJlcXVpcmVkRmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB2YWxpZGF0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBzb21lIGRhdGEgaW4gZXZlcnkgZmllbGQgdGhhdCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQuIEVpdGhlciB2aWEgdGhlIDxjb2RlPnJlcXVpcmVkPC9jb2RlPiBIVE1MNSBhdHRyaWJ1dGUgb3IgdGhlIDxjb2RlPmRhdGEtc210Zm0tcmVxdWlyZWQ8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZC48L3A+CiAgPC9saT4KICA8bGk+Q2hlY2sgdGhlIHZhbHVlIG9mIGFsbCBTZWxlY3QgZmllbGRzLCByYWRpby1idXR0b24gZ3JvdXBzLCBhbmQgY2hlY2tib3gtZ3JvdXBzICA8ZW0+KFNlbGVjdEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZm9yIGVhY2ggb2YgdGhlIG11bHRpLW9wdGlvbiAoc2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uLWdyb3VwcyBhbmQgY2hlY2tib3gtZ3JvdXBzKSBmaWVsZHMgdGhhdCBvbmx5IGEgdmFsaWQgdmFsdWUgaXMgc3VibWl0dGVkLjwvcD4KICAgICA8cD5UaGlzIHRlc3QgaXMgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIGF1dG8tdmFsaWRhdGlvbiBpcyBlbmFibGVkIGFuZCBvbmUgb3IgbW9yZSBtdWx0aS1vcHRpb24gZmllbGRzIGFyZSBkZXRlY3RlZC48L3A+CiAgPC9saT4KICA8bGk+Q2hlY2sgdGhlIHZhbHVlIG9mIGFsbCBlbWFpbCBmaWVsZHMuICA8ZW0+KEVtYWlsUHJpbWl0aXZpZVZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGZvciBlYWNoIGVtYWlsIGZpZWxkIChkZW5vdGVkIGJ5IGVpdGhlciA8Y29kZT50eXBlPSJlbWFpbCI8L2NvZGU+IG9yIDxjb2RlPmRhdGEtc210Zm0tcHJpbWFyeT0iZW1haWwiPC9jb2RlPikgVGhhdCBlYWNoIG9mIHRoZSB2YWx1ZXMgY29udGFpbnMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLjwvcD4KICAgICA8cD5UaGlzIHRlc3QgaXMgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIGF1dG8tdmFsaWRhdGlvbiBpcyBlbmFibGVkIGFuZCBvbmUgb3IgbW9yZSBlbWFpbCBmaWVsZHMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2YgYWxsIGRhdGUgZmllbGRzLiAgPGVtPihEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IGZvciBlYWNoIGRhdGUgZmllbGQgKGRlbm90ZWQgYnkgZWl0aGVyIDxjb2RlPnR5cGU9ImRhdGUiPC9jb2RlPiBvciA8Y29kZT5kYXRhLXNtdGZtLXByaW1hcnk9ImRhdGUiPC9jb2RlPikgVGhhdCBlYWNoIG9mIHRoZSB2YWx1ZXMgaXMgYSB2YWxpZCBkYXRlLiAgVGhpcyB0ZXN0IHdpbGwgYWxzbyB2YWxpZGF0ZSB0aGUgdmFsdWVzIGdpdmVuIGFueSByYW5nZSBhdHRyaWJ1dGVzIHN1Y2ggYXMgbWluLG1heCxkYXRhLXNtdGZtLW1pbixkYXRhLXNtdGZtLW1heC4gIEEgZGF0ZSBzdHJpbmcgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IG9mIHl5eXktbW0tZGQuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQgYW5kIG9uZSBvciBtb3JlIGRhdGUgZmllbGRzIGFyZSBkZXRlY3RlZC48L3A+CiAgPC9saT4KICA8bGk+RW5zdXJlIHRoYXQgYWxsIHVwbG9hZHMgY29uZm9ybSB0byB0aGUgc3BlY2lmaWNhdGlvbnMuIDxlbT4oRmlsZVZhbGlkYXRvcik8L2VtPgogICAgIDxwPlRPRE88L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCwgYW5kIG9uZSBvciBtb3JlIGZpbGUgZmlsZXMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgaW50ZWdlciBmaWVsZHMuICA8ZW0+KEludGVnZXJGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3Qgd2lsbCBlbnN1cmUgdGhhdCB0aGUgc3BlY2lmaWVkIGZpZWxkIGlzIGFuIGludGVnZXIsIGFuZCB0aGF0IGl0J3MgdmFsdWVzIGNvbmZvcm0gdG8gZGV2ZWxvcGVyIGVudGVyZWQgcmFuZ2UgdmFsdWVzLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgZmxvYXQgZmllbGRzLiAgPGVtPihGbG9hdEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSBzcGVjaWZpZWQgZmllbGQgaXMgYSBmbG9hdCwgYW5kIHRoYXQgaXQncyB2YWx1ZXMgY29uZm9ybSB0byBkZXZlbG9wZXIgZW50ZXJlZCByYW5nZSB2YWx1ZXMuPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBmaWVsZCBtYXRjaGVzIGEgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uICA8ZW0+KFJlZ2V4RmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IHdpbGwgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBtYXRjaCB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IGZvciBlYWNoIGZpZWxkIHdpdGggYSBwYXR0ZXJuLCBvciBkYXRhLXNtdGZtLXBhdHRlcm4gYXR0cmlidXRlIHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQgaW4gdGhlIGZvcm0uPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBmaWVsZCBpcyBhbiBlbWFpbCBhZGRyZXNzLiAgPGVtPihFbWFpbEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IGFsbCBvZiB0aGUgdmFsdWVzIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgYXJlIHZhbGlkIGVtYWlsIGFkZHJlc3Nlcy48L3A+CiAgPC9saT4KICA8bGk+VmFsaWRhdGUgdmlhIFNtYXJ0eSBUZW1wbGF0ZS4gIDxlbT4oVGVtcGxhdGVWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB2YWxpZGF0b3IgYWxsb3dzIHlvdSB0byB1c2Ugc21hcnR5IHRvIHZhbGlkYXRlIHRoZSBmb3JtIHN1Ym1pc3Npb24uICBZb3UgY2FuIHVzZSBzbWFydHkgbG9naWMsIGFuZC9vciBVRFQncyBvciBvdGhlciBwbHVnaW5zIHRvIGV2YWx1YXRlIHRoZSBjb250ZW50LiAgSWYgdGhlIHRlc3QgZmFpbHMsIHRoZSB0ZW1wbGF0ZSBzaG91bGQgb3V0cHV0IGFuIGVycm9yIG1lc3NhZ2UuPC9wPgogIDwvbGk+CiAgPGxpPkNvbXB1dGUgdGhlIHZhbHVlIG9mIGEgZmllbGQsIGdpdmVuIGEgdGVtcGxhdGUuICA8ZW0+KENvbXB1dGVkVmFsdWUpPC9lbT4KICAgICA8cD5UaGlzIGlzIGEgc3BlY2lhbCBraW5kIG9mIHZhbGlkYXRpb24gdGVzdC4gIEl0IGlzIGNhcGFibGUgb2YgY29tcHV0aW5nIHRoZSB2YWx1ZSBvZiBvbmUgZmllbGQgZ2l2ZW4gdGhlIG90aGVyIGRhdGEgaW4gdGhlIHN1Ym1pdHRlZCByZXNwb25zZS4gIEl0IGlzIHVzZWZ1bCBmb3IgZG9pbmcgY2FsY3VsYXRpb25zIGFuZCBwdXR0aW5nIHRoZSBvdXRwdXQgaW50byBhIG5ldyBmaWVsZCwgb3IgZm9yIGFkanVzdGluZyB0aGUgdmFsdWUgb2Ygb25lIGZpZWxkIGJhc2VkIG9uIGxpbWl0cyBzcGVjaWZpZWQgaW4gb3RoZXIgZmllbGRzLjwvcD4KICAgICA8cD5UaGUgb3V0cHV0IG9mIGEgc21hcnR5IHRlbXBsYXRlIDxlbT4oYSBzdHJpbmcpPC9lbT4gcmVwbGFjZXMgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWVkIGZpZWxkLjwvcD4KICA8L2xpPgogIDxsaT5Vc2UgYSBob29rIHRvIHZhbGlkYXRlIHRoZSByZXNwb25zZS4gIDxlbT4oSG9va1ZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gY2FsbHMgYSBob29rIGVudGl0bGVkIDxjb2RlPlNtYXJ0Rm9ybXM6OnZhbGlkYXRlRm9ybTwvY29kZT4gYW5kIHBhc3NlcyB0aGUgZW50aXJlIGZvcm0gcmVzcG9uc2UuICBUaGUgaG9vayBoYW5kbGVycyBjYW4gY2hvb3NlIHRvIG1vZGlmeSB0aGUgcmVzcG9uc2UsIG9yIHRvIHBlcmZvcm0gdmFyaW91cyBvdGhlciB0ZXN0cy4gIElmIGEgdGVzdCBmYWlscywgdGhlbiBpdCBpcyBleHBlY3RlZCB0byB0aHJvdyBhIHNwZWNpYWwgZXhjZXB0aW9uLjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPkJ1aWx0IGluIEhhbmRsZXJzL0Rpc3Bvc2l0aW9uczwvaDM+CjxwPkZvcm0gaGFuZGxlcnMgYXJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdWJtaXNzaW9uIHZhbGlkYXRpb25zIGhhdmUgcGFzc2VkLCBhbmQgYXJlIHVzZWQgdG8gJnF1b3Q7ZG8gdGhpbmdzJnF1b3Q7IHdpdGggdGhlIGRhdGEuICBUaGV5IGRvIG5vdCB0eXBpY2FsbHkgbW9kaWZ5IHRoZSBvdXRwdXQgZGF0YS48L3A+CjxwPklmIGFuIGVycm9yIG9jY3VycyBpbiBhIGRpc3Bvc2l0aW9uLCB0eXBpY2FsbHkgdGhlIGVycm9yIGlzIGxvZ2dlZCBpbiBzb21lIGZvcm1hdCAodGhpcyBpcyB0aGUgdGFzayBvZiB0aGUgc3BlY2lmaWMgaGFuZGxlciksIGFuZCBwcm9jZXNzaW5nIGNvbnRpbnVlcy48L3A+CjxwPkJlbG93IGlzIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGJ1aWx0LWluIGRpc3Bvc2l0aW9ucy48L3A+Cjx1bD4KICA8bGk+U2F2ZSB0aGUgcmVzdWx0cyB0byBhIGZpbGUgYmFzZWQgb24gdGhlIHZhbHVlIG9mIGEgbXVsdGktb3B0aW9uIGZpZWxkLjwvbGk+CiAgPGxpPlNhdmUgdGhlIHJlc3VsdHMgdG8gYSB1bmlxdWUgZmlsZS48L2xpPgogIDxsaT5TYXZlIHRoZSByZXN1bHRzIHRvIGEgZmxhdCBmaWxlIDxlbT4odXN1YWxseSBDU1YpPC9lbT48L2xpPgogIDxsaT5TZW5kIHRoZSByZXN1bHRzIHZpYSBlbWFpbCBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBtdWx0aS1vcHRpb24gZmllbGQuPC9saT4KICA8bGk+U2VuZCB0aGUgcmVzdWx0cyB2aWEgZW1haWwgdG8gc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgogIDxsaT5TZW5kIHRoZSByZXN1bHRzIHZpYSBlbWFpbCB0byBhIHVzZXIgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3MuPC9saT4KICA8bGk+UE9TVCBmb3JtIHJlc3VsdHMgdG8gYSBVUkwvV2ViSG9vay48L2xpPgogIDxsaT5SZWRpcmVjdCB0byBhIFVSTCBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIGEgdGVtcGxhdGUuPC9saT4KICA8bGk+UmVkaXJlY3QgdG8gYSBwYWdlIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2YgYSB0ZW1wbGF0ZS48L2xpPgogIDxsaT5Vc2UgYSBob29rIHRvIGhhbmRsZS9kaXNwb3NlIG9mIHRoZSByZXNwb25zZS48L2xpPgogIDxsaT5TdG9yZSBmb3JtIHJlc3VsdHMgdG8gdGhlIHNlc3Npb24gZm9yIGxhdGVyIHByb2Nlc3NpbmcuPC9saT4KICA8bGk+U3RvcCBQcm9jZXNzaW5nIERpc3Bvc2l0aW9ucyBiYXNlZCBvbiBhIENvbmRpdGlvbjwvbGk+CjwvdWw+Cgo8aDM+Q29tbW9uIEVycm9ycyBhbmQgUHJvYmxlbXMuPC9oMz4KPHVsPgogIDxsaT5Db3VsZCBub3QgcmV0cmlldmUgZm9ybSBvYmplY3QKICAgICA8cD5TbWFydEZvcm1zIHVzZXMgdGhlIHNlc3Npb24gd2hlbiBlZGl0aW5nIGEgZm9ybS4gIFRoaXMgbWVzc2FnZSBpbmRpY2F0ZXMgdGhhdCB0aGUgc2Vzc2lvbiBoYXMgdGltZWQgb3V0LCBhbmQgYW55dGhpbmcgdW4tc2F2ZWQgaW4geW91ciBmb3JtIGhhcyBiZWVuIGxvc3QuICAgUGxlYXNlIGVuc3VyZSB0aGF0IHlvdSBzYXZlIHlvdXIgZm9ybSBvZnRlbi48cD4KICA8L2xpPgogIDxsaT5Nb2RpZmljYXRpb24gb2YgZmllbGQgdmFyaWFibGVzIGluIHNtYXJ0eQogICAgIDxwPkVhY2ggdGVtcGxhdGUgdXNlZCBieSBlYWNoIHZhbGlkYXRpb24gb3IgaGFuZGxlciBpbiB0aGUgU21hcnRGb3JtcyBtb2R1bGUgdXNlcyBpdHMgb3duIHNjb3BlIHRvIHByZXZlbnQgdmFyaWFibGUgbmFtZSBjb25mbGljdHMuICBGb3IgdGhpcyByZWFzb24geW91IGNhbm5vdCBtb2RpZnkgdGhlIHZhbHVlcyBvZiB0aGUgcmVzcG9uc2UgYnkgZWRpdGluZyB0aGUgc21hcnR5IHZhcmlhYmxlcy48L3A+CiAgPC9saT4KICA8bGk+TmFtZXMgb2YgbXVsdGlzZWxlY3QgZmllbGRzIG9yIGNoZWNrYm94IGdyb3Vwcy4KICAgICA8cD5XaGVuIHNlbmRpbmcgbXVsaXBsZSB2YWx1ZXMgZm9yIGEgc3BlY2lmaWMgZmllbGQgdG8gdGhlIHNlcnZlciwgUEhQIGV4cGVjdHMgYW4gYXJyYXkuICBUbyB0ZWxsIFBIUCB0byBleHBlY3QgYW4gYXJyYXkgb2YgdmFsdWVzLCBbXSBtdXN0IGJlIGFkZGVkIHRvIHRoZSBuYW1lIG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCwgb3IgdG8gdGhlIG5hbWUgb2YgZWFjaCBjaGVja2JveCBpbiBhIGNoZWNrYm94IGdyb3VwLjwvcD4KICAgICA8cD5XaGVuIHJlbmRlcmluZyB0aGUgZm9ybSwgU21hcnRGb3JtcyB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBlZmZlY3RlZCBmaWVsZHMsIGFuZCBhdXRvbWF0aWNhbGx5IGFwcGVuZCB0aGUgW10gdG8gdGhlIGZpZWxkIG5hbWVzIGFzIGFwcHJvcHJpYXRlLiAgWW91IGNhbiBkaXNhYmxlIHRoaXMgd2l0aCB0aGUgPGNvZGU+ZGF0YS1zbXRmbS1ub25hbWVhZGp1c3Q8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUgZm9ybSB0YWcuPC9wPgogIDwvbGk+CiAgPGxpPkNvbmRpdGlvbmFsIG9yIGR5bmFtaWMgZmllbGRzICh2aWEgc21hcnR5KQogICAgPHA+VGhlIHNjYW4gZnVuY3Rpb25hbGl0eSBvZiBTbWFydEZvcm1zIGlzIGFuIGFkbWluIHNpZGUgYWN0aW9uIHRoYXQgdGFrZXMgeW91ciBmb3JtIHRlbXBsYXRlLCBwYXNzZXMgaXQgdGhyb3VnaCBzbWFydHksIGFuZCB0aGVuIHBhcnNlcyB0aGUgcmVzdWx0aW5nIEhUTUwgY29kZS4gIFNNVEZNIHRoZW4gYnVpbGRzIGEgbGlzdCBvZiB0aGUgZmllbGRzIGFuZCB0aGVyZSB2YXJpb3VzIG9wdGlvbnMgYW5kIGF0cmlidXRlcyBmb3IgdXNlIGluIHJlbmRlcmluZywgaGFuZGxlcnMgYW5kIGRpc3Bvc2l0aW9ucy4gIFRoZSBzbWFydHkgZW52aXJvbm1lbnQgaW4gdGhlIGFkbWluIGludGVyZmFjZSBpcyBkaWZmZXJlbnQgdGhhbiB0aGF0IGluIHRoZSBmcm9udGVuZCwgb3IgZXZlbiBvbiBkaWZmZXJlbnQgQ01TTVMgY29udGVudCBwYWdlcyBvciBkaWZmZXJlbnQgc3RhdGUgb2YgeW91ciBhcHBsaWNhdGlvbi4gIFRoZXJlZm9yZSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGR5bmFtaWNhbGx5IGFkZCBhbmQgcmVtb3ZlIGZpZWxkcyBmcm9tIHRoZSB0ZW1wbGF0ZSB1c2luZyBsb2dpYyBpbiBzbWFydHkgdGVtcGxhdGVzIG9yIGR5bmFtaWNhbGx5IHJldHJpZXZlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CiAgPC9saT4KICA8bGk+VHJ5IHRvIGF2b2lkIHRoZSB1c2Ugb2Ygc21hcnR5IGNvbmRpdGlvbmFscyB0byBkaXNwbGF5IGZvcm1zIGluIHlvdXIgdGVtcGxhdGUsIHVzZSBqYXZhc2NyaXB0IHdoZXJlIHBvc3NpYmxlLiAgSG93ZXZlciwgaWYgdGhlcmUgYXJlIHNtYXJ0eSBjb25kaXRpb25hbHMgdGhhdCBjb250cm9sIHRoZSBkaXNwbGF5IG9mIGNlcnRhaW4gZmllbGRzLCB0aGVuIGl0IGlzIHN0cm9uZ2x5IGFkdmlzZWQgdGhhdCB5b3UgY3JlYXRlIGEgaGlkZGVuIGZpZWxkIGFzIGEgcGxhY2UgaG9sZGVyIGZvciB0aGF0IGZpZWxkIHByaW9yIHRvIHRoZSBjb25kaXRpb25hbC4gIFRoaXMgd2lsbCB1c3VhbGx5IGVuc3VyZSB0aGF0IHRoZSBmaWVsZCBuYW1lIGlzIHNjYW5uZWQuPC9saT4KPC91bD4KCjxoMz5Db250cm9sbGluZyBmb3JtIGJlaGF2aW9yIHdpdGggYXR0cmlidXRlczwvaDM+Cjx1bD4KICA8bGk+VXNpbmcgcmVndWxhciBIVE1MNSBhdHRyaWJ1dGVzCiAgICA8cD5TbWFydEZvcm1zIHdpbGwgcGFyc2UgYW5kIHJlbWVtYmVyIHRoZSB2YWx1ZSBvZiB2YXJpb3VzIEhUTUwgaW5wdXQgYXR0cmlidXRlcy4gIGkuZTogcmVxdWlyZWQsIG1pbiwgbWF4IGFuZCBwYXR0ZXJuLiAgVGhlc2Ugd2lsbCBiZSB1c2VkIHRvIGFsc28gcGVyZm9ybSBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIG9uIHRoZSBzdWJtaXR0ZWQgZGF0YS48L3A+CiAgICA8cD5Vc2luZyB0aGVzZSBhdHRyaWJ1dGVzIHRvIHZhbGlkYXRlIGRhdGEgb24gdGhlIHNlcnZlciBzaWRlIGlzIGEgZ29vZCB3YXkgb2YgbWl0aWdhdGluZyBtYW4taW4tdGhlLW1pZGRsZSBhdHRhY2tzLCBvciBkb2luZyBkYXRhIHZhbGlkYXRpb24gd2hlbiB0aGUgc2l0ZSB2aXNpdG9yIGlzIHVzaW5nIGEgYnJvd3NlciB0aGF0IGRvZXMgbm90IGVuZm9yY2UgdGhlbS48L3A+CiAgPC9saT4KICA8bGk+RGF0YSBhdHRyaWJ1dGVzIGZvciByZW5kZXJpbmcKICAgIDxwPlRoZSBmb2xsb3dpbmcgZGF0YSBhdHRyaWJ1dGVzIGFyZSBoaW50cyB0byB0aGUgcmVuZGVyZXIgdG8gbWFrZSBpdCBlYXN5IGZvciB0aGUgZGV2ZWxvcGVyIHRvIGludGVncmF0ZSBzbWFydHkgaW50byBhIGZvcm0sIHRvIGluY2x1ZGUgY2FwdGNoYSwgYW5kIG90aGVyIHRoaW5ncy48L3A+CiAgICA8dWw+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLWNhcHRjaGE8L2NvZGU+IC0gVGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXJlIHRoZSBjYXB0Y2hhIGRpc3BsYXkgd2lsbCBhcHBlYXIuCiAgICAgICAgIDxwPklmIHNwZWNpZmllZCwgYW5kIGlmIENhcHRjaGEgaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLCB1cG9uIHJlbmRlcmluZyB0aGUgZm9ybSwgdGhlIGNhcHRjaGEgZGlzcGxheSB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbnRlbnRzIG9mIHRoZSBtYXRjaGluZyBlbGVtZW50LjwvcD4KCSA8cD5JZiB0aGUgY2FwdGNoYSBkaXNwbGF5IHJlcXVpcmVzIGFuIGlucHV0IGZpZWxkLCAgYW5kIG5vIGVsZW1lbnQgd2l0aCB0aGUgZGF0YS1zbXRmbS1jYXB0Y2hhLWlucHV0IGF0dHJpYnV0ZSBleGlzdHMsIHRoZW4gdGhlIGNhcHRjaGEgaW5wdXQgZmllbGQgd2lsbCBhbHNvIGJlIGFwcGVuZGVkIHRvIHRoZSBjb250ZW50cyBvZiB0aGlzIGVsZW1lbnQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+PGNvZGU+ZGF0YS1zbXRmbS1jYXB0Y2hhLWlucHV0PC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB3aGVyZSwgaWYgbmVjZXNzYXJ5IGFueSBpbnB1dCBmaWVsZCBuZWVkZWQgYnkgdGhlIGNhcHRjaGEgZGlzcGxheSB3aWxsIGJlIGluc2VydGVkLgogICAgICAgICA8cD5Tb21lIGNhcHRjaGEgbWV0aG9kcyByZXF1aXJlIHRoZSB1c2VyIHRvIGVudGVyIHNvbWUgdGV4dC4gIFVzaW5nIHRoaXMgYXR0dGlidXRlIGFsbG93cyB0aGUgZm9ybSBjcmVhdG9yIHRvIGRlZmluZSB3aGVyZSBhbmQgaG93IHRoZSBpbnB1dCBmaWVsZCB3aWxsIGJlIGRpc3BsYXllZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLW5vbmFtZWFkanVzdDwvY29kZT4gLSBUaGlzIGF0dHJpYnV0ZSB3aWxsIGRpc2FibGUgdGhlIGF1dG9tYXRpYyBhcHBlbmRpbmcgb2YgW10gdG8gbmFtZXMgb2YgbXVsdGlzZWxlY3QgaW5wdXQgZmllbGRzLCBvciBpbiBjaGVja2JveCBncm91cHMuICBVc2Ugd2l0aCBjYXV0aW9uLjwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLW5vYXV0b3ZhbHVlPC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCB0byBkaXNhYmxlIGF1dG9tYXRpY2FsbHkgc2V0dGluZyB0aGUgdmFsdWUgb2YgZm9ybSBmaWVsZHMgYmFzZWQgb24gcHJlc2V0IG9yIHVzZXIgZW50ZXJlZCBkYXRhLgogICAgICAgICA8cD5XaGVuIGFwcGxpZWQgdG8gdGhlIGZvcm0gZWxlbWVudCwgbm8gYXV0b21hdGljIGZpZWxkIHZhbHVlL2NvbnRlbnQvc2VsZWN0ZWQvY2hlY2tlZCBwcm9jZXNzaW5nIHdpbGwgb2NjdXIgZm9yIGFueSBmaWVsZCB3aXRoaW4gdGhlIGZvcm0uPC9wPgoJIDxwPndoZW4gYXBwbGllZCB0byBhbiBpbmRpdmlkdWFsIGZpZWxkLCBhdXRvbWF0aWMgY2FsY3VsYXRpb24gd2lsbCBiZSBkaXNhYmxlZCBmb3IgdGhhdCBzcGVjaWZpYyBmaWVsZC48L3A+CgkgPHA+U2VlIHRoZSBzZWN0aW9uIGJlbG93IHJlZ2FyZGluZyBzZXR0aW5nIGZpZWxkIHZhbHVlcy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLXNlbGVjdGVkPC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCBvbiA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudHMgYW5kIHJhZGlvLWJ1dHRvbiBncm91cHMgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBvcHRpb24uIGkuZS46PGJyLz4KPHByZT4mbHQ7c2VsZWN0IG5hbWU9Im15c2VsZWN0IiBkYXRhLXNtdGZtLXNlbGVjdGVkPSZxdW90O3skZm9ybV9kYXRhLSZndDtteXNlbGVjdHxkZWZhdWx0Oic8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPm9wdDI8L3NwYW4+J30mcXVvdDsmZ3Q7CiAgICAmbHQ7b3B0aW9uIHZhbHVlPSJvcHQxIiZndDtPcHRpb24gMSZsdDsvb3B0aW9uJmd0OwogICAgJmx0O29wdGlvbiB2YWx1ZT0iPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5vcHQyPC9zcGFuPiImZ3Q7T3B0aW9uIDImbHQ7L29wdGlvbiZndDsKICAgICZsdDtvcHRpb24gdmFsdWU9Im9wdDMiJmd0O09wdGlvbiAzJmx0Oy9vcHRpb24mZ3Q7CiZsdDsvc2VsZWN0Jmd0OzwvcHJlPgogICAgICAgIDxwPlRoaXMgYXR0cmlidXRlIGhhcyBubyBlZmZlY3Qgb24gY2hlY2tib3ggZ3JvdXBzLCB0ZXh0YXJlYXMsIG9yIG90aGVyIHR5cGVzIG9mIGlucHV0IGZpZWxkcy48L3A+Cgk8cD5SYWRpbyBidXR0b24gZ3JvdXBzIG9yIHNlbGVjdCBlbGVtZW50cyB3aXRoIHRoaXMgYXR0cmlidXRlIGFyZSBub3Qgc3ViamVjdCB0byBhdXRvLXZhbHVlIGNhbGN1bGF0aW9ucy48L3A+CiAgICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyB0byBhaWRlIHNlcnZlciBzaWRlIGZvcm0gdmFsaWRhdGlvbgogICAgPHVsPgogICAgICA8bGk+ZGF0YS1zbXRmbS1ub3ZhbGlkYXRlCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlLCBvbiBhbnkgaW5wdXQsIHNlbGVjdCwgb3IgdGV4dGFyZWEgZmllbGRzIGluZGljYXRlcyB0byBkaXNhYmxlIGFsbCBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIGZvciB0aGF0IGZpZWxkLiAgU29tZSB2YWxpZGF0b3JzIG1heSBub3Qgb2JleSBpdC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLWFjY2VwdAogICAgICAgICA8cD5BcHBsaWNhYmxlIG9ubHkgdG8gZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGNhbiBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygd2lsZGNhcmQgbWltZSB0eXBlcyB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlcyB0aGF0IGFyZSBhY2NlcHRlZC4gaS5lLjogPGNvZGU+ZGF0YS1zbXRmbS1hY2NlcHQ9ImltYWdlLyosdGV4dC8qIjwvY29kZT4uPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1tYXhzaXplCiAgICAgICAgIDxwPkFwcGxpY2FibGUgb25seSB0byBmaWxlIGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgY2FuIHNwZWNpZnkgYSBtYXhpbXVtIHNpemUgPGVtPihpbiBieXRlcyk8L2VtPiBmb3IgYW55IHNpbmdsZSBmaWxlIHVwbG9hZGVkIHRvIHRoYXQgZmllbGQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1leHRlbnNpb24KICAgICAgICAgPHA+QXBwbGljYWJsZSBvbmx5IHRvIGZpbGUgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBjYW4gY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHZhbGlkIGZpbGUgZXh0ZW5zaW9ucyB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlcyB0aGF0IGFyZSBhY2NlcHRlZC48L3A+CgkgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBXZSBkbyBub3QgcmVjb21tZW5kIHVzaW5nIHRoaXMgYXMgc29tZSBvcGVyYXRpbmcgc3lzdGVtcywgb3IgdXNlcnMgZG8gbm90IG1haW50YWluIGEgcmVsaWdvdXMgcG9saWN5IG9uIGZpbGUgZXh0ZW5zaW9ucy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLXByaW1pdGl2ZQogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBidXQgZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgc2hvdWxkIGFwcGVhciBpbiB0aGUgdmFsdWUocykgZm9yIHRoYXQgZmllbGQuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgYXR0cmlidXRlIGFyZTogaW50LCBmbG9hdCwgZGF0ZSwgZW1haWwsIGFuZCBzdHJpbmcuICAgSWYgbm9uZSBzcGVjaWZpZmVkLCB0aGVuIHRoZSBkYXRhIHByaW1pdGl2ZSB3aWxsIGJlIGludGVycHJldGVkIGZyb20gdGhlIGZpZWxkIHR5cGUsIG9yIHN0cmluZyB3aWxsIGJlIGFzc3VtZWQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1yZXF1aXJlZAogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IGF0IGxlYXN0IG9uZSB2YWx1ZSBtdXN0IGJlIHNwZWNpZmllZCBmb3IgdGhlIGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtc210Zm0tcGF0dGVybgogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBidXQgZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkIG11c3QgY29uZmlybSB0byB0aGUgc3BlY2lmaWVkIHJlZ3VsYXIgZXhwcmVzc2lvbi48L3A+CgkgPHA+SWYgYm90aCB0aGUgZGF0YS1zbXRmbS1wYXR0ZXJuIGFuZCB0aGUgcGF0dGVybiBhdHRyaWJ1dGVzIGFyZSBwcm92aWRlZCBmb3IgYW4gaW5wdXQgZWxlbWVudCwgdGhlbiB0aGUgZGF0YS1jZmJmLXBhdHRlcm4gYXR0cmlidXRlIHdpbGwgdGFrZSBwcmVjZWRlbnNlLiAgVGhpcyBpcyB0byBhbGxvdyBmb3IgdGhpcmQgcGFydHkgbGlicmFyaWVzIHRoYXQgaGF2ZSBleHRlbmRlZCB0aGUgcHVycG9zZSBvZiB0aGUgcGF0dGVybiBhdHRyaWJ1dGUuPC9wPgoJIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gUEhQIHJlcXVpcmVzIGEgc3RhcnQgYW5kIGVuZCBkZWxpbWl0ZXIgdG8gYSByZWd1bGFyIGV4cHJlc3Npb24uIGkuZTogPGNvZGU+fFswLTldKnw8L2NvZGU+IHdoZXJlYXMgSFRNTCBkb2VzIG5vdC4gIFNtYXJ0Rm9ybXMgd2lsbCBwcm92aWRlIHRoZW0uPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1taW4gKHRvZG8pCiAgICAgICAgIDxwPkFwcGxpY2FibGUgdG8gaW50ZWdlciBhbmQgZmxvYXQgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgYSBtaW5pbXVtIHZhbHVlIGZvciBhbGwgdmFsdWVzIG9mIHRoZSBmaWVsZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLW1heCAodG9kbykKICAgICAgICAgPHA+QXBwbGljYWJsZSB0byBpbnRlZ2VyIGFuZCBmbG9hdCBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyBhIG1heGltdW0gdmFsdWUgZm9yIGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtc210Zm0tY2FwdGNoYQogICAgICAgICA8cD5UaGlzIGF0dHJpYnV0ZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzLiAgT24gcmVuZGVyIGl0IHdpbGwgYXBwZW5kIHRoZSBjb250ZW50cyBvZiBhIDxjb2RlPiZsdDtkaXYmZ3Q7PC9jb2RlPiB0YWcgd2l0aCB0aGlzIGF0dHJpYnV0ZSB3aXRoIHNvbWUgY2FwdGNoYSBpbnB1dC4gIE9uIHZhbGlkYXRpb24gdGhlIGNhcHRjaGEgd2lsbCBiZSB0ZXN0ZWQuPC9wPgogICAgICA8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5EYXRhIGF0dHJpYnV0ZXMgdXNlZnVsIGZvciBzY2FubmluZyBhbmQgZGlzcG9zaXRpb24KICAgIDx1bD4KICAgICAgPGxpPmRhdGEtc210Zm0tbm9sYWJlbAoJICA8cD5UaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIGR1cmluZyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyB0byBpbmRpY2F0ZSB0aGF0IGEgbGFiZWwgZm9yIHRoZSBmaWVsZCBpcyBub3QgcmVxdWlyZWQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1sYWJlbAogICAgICAgICA8cD5UaGlzIGF0dHJpYnV0ZSBpcyB1c2VmdWwgb24gcmFkaW8tYnV0dG9uIGFuZCBjaGVja2JveCBncm91cHMgd2hlbiB0aGUgZm9ybSBpcyBzY2FubmVkIGFuZCBwYXJzZWQuICBCZWNhdXNlIGluZGl2aWR1YWwgcmFkaW8tYnV0dG9uIG9yIGNoZWNrYm94IGZpZWxkcyBtYXkgaGF2ZSBzZXBhcmF0ZSBsYWJlbHMsIHRoaXMgYXR0cmlidXRlIGFsbG93cyBleHBsaWNpdGx5IHNwZWNpZnlpbmcgYSBsYWJlbCB0byBiZSB1c2VkIGZvciB0aGUgZmllbGQgYXMgYSB3aG9sZSBpbiB0aGUgZGlzcG9zaXRpb24gcHJvY2Vzcy48L3A+CgkgPHA+dGhpcyBhdHRyaWJ1dGUgY2FuIGJlIHVzZWQgb24gYW55IGlucHV0IGVsZW1lbnQgdG8gZm9yY2Ugc3BlY2lmeWluZyB0aGUgbGFiZWwgZm9yIHRoZSBlbGVtZW50LCBwYXJ0aWN1bGFybHkgaWYgaW4geW91ciBtYXJrdXAgYSBzcGVjaWZpYyBsYWJlbCBmaWVsZCBpcyBub3QgcmVxdWlyZWQsIGFuZCB5b3Ugd2lzaCB0byBoYXZlIHJlYWRhYmxlIHByb21wdHMgZm9yIHZhcmlvdXMgZmllbGRzLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtc210Zm0taHVtYW4KICAgICAgICAgPHA+VGhpcyBhdHRyaWJ1dGUgaXMgdXNlZnVsIG9uIHRoZSBpbmRpdmlkdWFsIG9wdGlvbnMgb2Ygc2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uIGdyb3Vwcywgb3IgY2hlY2tib3gtZ3JvdXBzIHRvIHNwZWNpZnkgYSBodW1hbiByZWFkYWJsZSB2YWx1ZSBmb3IgZWFjaCBvcHRpb24gdG8gdXNlIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlbiB0aGUgdGV4dCBwb3J0aW9uIG9mIGVhY2ggJmx0O29wdGlvbiZndDsgZWxlbWVudCwgb3IgdGhlIGxhYmVsIG9mIGVhY2ggcmFkaW8tYnV0dG9uIG9yIGNoZWNrYm94IHdpbGwgYmUgdXNlZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLXJlcGx5dG8KICAgICAgICAgPHA+VGhpcyBhdHRyaWJ1dGUgaXMgdXNlZnVsIHRvIGlkZW50aWZ5IGEgZmllbGQgdGhhdCBvbiBzdWJtaXNzaW9uIHdpbGwgY29udGFpbiBhbiBlbWFpbCBhZGRyZXNzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSByZXBseXRvLWFkZHJlc3Mgb2YgZW1haWxzIHNlbnQgdG8gYWRtaW5pc3RyYXRvcnMuPC9wPgoJIDxwPmkuZTogIDxjb2RlPiZsdDtpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0ieW91cl9lbWFpbCIgZGF0YS1zbXRmbS1yZXBseXRvIHJlcXVpcmVkJmd0OzwvY29kZT4KCSA8cD5Gb3IgZW1haWxzIHRoYXQgYXJlIHNlbnQgdG8gZml4ZWQgYWRkcmVzc2VzIG9yIHRvIGFkbWluIGdyb3VwcywgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgd2lsbCBiZSB1c2VkIGFzIHRoZSByZXBseS10byBlbWFpbCBhZGRyZXNzLjwvcD4KICAgICAgPC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KCjxoMz5TbWFydHkgcGx1Z2lucyBhbmQgdmFyaWFibGVzIGZvciBmb3JtIHJlbmRlcmluZzwvaDM+Cjx1bD4KICA8bGk+PGNvZGU+e3NtdGZtX2Zvcm1fZXJyb3JzIGFzc2lnbj1zdHJpbmd9PC9jb2RlPgogICAgIDxwPkdhdGhlciBmb3JtIGVycm9ycyBmcm9tIHNlcnZlciBzaWRlIHZhbGlkYXRpb24sIGFuZCBhc3NpZ24gdGhlbSB0byBhIHNtYXJ0eSBhcnJheS4gaS5lLjo8L3A+CiAgICAgPHByZT48Y29kZT57c210Zm1fZm9ybV9lcnJvcnMgYXNzaWduPWVycm9yc30Ke2lmICFlbXB0eSgkZXJyb3JzKX0KICAmbHQ7dWwgY2xhc3M9ImVycm9ycyImZ3Q7CiAgICB7Zm9yZWFjaCAkZXJyb3JzIGFzICRlcnJvcn0KICAgICAgICZsdDtsaSZndDt7JGVycm9yfSZsdDsvbGkmZ3Q7CiAgICB7L2ZvcmVhY2h9CiAgJmx0Oy91bCZndDsKey9pZn08L2NvZGU+PC9wcmU+CiAgPC9saT4KPC91bD4KCjxoMz5Db25maWcgdmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBzZXQgdGhlIGZvbGxvd2luZyBjb25maWcgdmFyaWFibGVzIHRvIGluZmx1ZW5jZSBtb2R1bGUgYmVoYXZpb3I6PC9wPgo8dWw+CiAgPGxpPjxjb2RlPiRjb25maWdbJ3NtdGZtX3NraXBfdmVyc2lvbmNoZWNrJ108L2NvZGU+ID0gYm9vbAogICAgIDxwPklmIGVuYWJsZWQsIFNtYXJ0Rm9ybXMgd2lsbCBub3QgdGVzdCBpZiB5b3VyIGZvcm1zIHdlcmUgc2F2ZWQgd2l0aCBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUuPC9wPgogIDwvbGk+CiAgPGxpPjxjb2RlPiRjb25maWdbJ3NtdGZtX3NraXBfZGF0ZWNoZWNrJ108L2NvZGU+ID0gYm9vbAogICAgIDxwPklmIGVuYWJsZWQsIFNtYXJ0Rm9ybXMgd2lsbCBub3QgdGVzdCBpZiB5b3VyIHRlbXBsYXRlIHdhcyBhbHRlcmVkIGFmdGVyIHlvdXIgZm9ybSB3YXMgc2F2ZWQuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+VGlwcyBhbmQgVGVjaG5pcXVlczwvaDM+Cjx1bD4KICA8bEk+U2V0dGluZyBmaWVsZCB2YWx1ZXM6CiAgICAgPHA+SW4gbW9zdCBjYXNlcywgU21hcnRGb3JtcyBjYW4gc2V0IGZpZWxkIHZhbHVlcyBhdXRvbWF0aWNhbGx5IGZvciB5b3UuICBJbmNsdWRpbmcgdGhlIHRleHQgY29udGVudCBvZiB0ZXh0YXJlYSBmaWVsZHMsIHNlbGVjdGVkIG9wdGlvbnMgaW4gc2VsZWN0IHN0YXRlbWVudHMuIGFuZCBjaGVja2VkIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9uIGZpZWxkcy4gICBUaGlzIGlzIGRvbmUgYnkgdXNpbmcgdGhlIGZvcm0gc3VibWlzc2lvbiBkYXRhLCBhbmQgYWRqdXN0aW5nIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSBvZiBlbGVtZW50cyB3aGVuIHJlZGVyaW5nIHRoZSBmb3JtLjwvcD4KICAgICA8cD5EaXNhYmxpbmcgdGhpcyBhdXRvLXZhbHVlIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBlbnRpcmUgZm9ybSBpcyBwb3NzaWJsZSBieSBhZGRpbmcgdGhlIGRhdGEtY2ZiZi1ub2F1dG92YWx1ZSBhdHRyaWJ1dGUgdG8gdGhlIGZvcm0gZWxlbWVudC48L3A+CiAgICAgPHA+RGlzYWJsaW5nIHRoaXMgYXV0by12YWx1ZSBmdW5jdGlvbmFsaXR5IGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnQgaXMgcG9zc2libGUgYnkgYWRkaW5nIHRoZSBkYXRhLXNtdGZtLW5vYXV0b3ZhbHVlIGF0dHJpYnV0ZSB0byBhbiBpbmRpdmlkdWFsIGlucHV0LCBzZWxlY3QsIG9yIHRleHRhcmVhIGVsZW1lbnQuPC9wPgogICAgIDxwPkF1dG8tdmFsdWUgY2FsY3VsYXRpb24gd2lsbCBhbHNvIGJlIGRpc2FibGVkIG9uIGluZGl2aWR1YWwgaW5wdXQgZWxlbWVudHMgKHRoYXQgYXJlIG5vdCBjaGVja2JveGVzIG9yIHJhZGlvIGJ1dHRvbnMpLCBJRiB0aGUgZWxlbWVudCBoYXMgYSB2YWx1ZSBhdHRyaWJ1dGUuPC9wPgogICAgIDxwPmF1dG8gdmFsdWUgY2FsY3VsYXRpb24gaXMgYWxzbyBkaXNhYmxlZCBmb3Igc2VsZWN0IGJveGVzLCBjaGVja2JveGVzIG9yIHJhZGlvIGJ1dHRvbnMgd2l0aCB0aGUgZGF0YS1zbXRmbS1zZWxlY3RlZCBhdHRyaWJ1dGUuPC9wPgogICAgIDxwPlRoZSA8Y29kZT57JGZvcm1fZGF0YX08L2NvZGU+IHNtYXJ0eSB2YXJpYWJsZSByZXByZXNlbnRzIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmb3JtIHJlc3BvbnNlIGluZm9ybWF0aW9uLiAgSXQgYWxzbyByZXByZXNlbnRzIGluaXRpYWwgZm9ybSBzdGF0ZSBiZWZvcmUgdGhlIGZvcm0gaGFzIGJlZW4gc3VibWl0dGVkLiAgWW91IGNhbiB1c2UgdGhpcyBvYmplY3QncyB2YXJpb3VzIG1lbWJlcnMgdG8gc2V0IHRoZSBmaWVsZCBkYXRhIHVzaW5nIHNtYXJ0eSBsb2dpYy4gIGkuZS46PC9wPgogICAgIDxwcmU+PGNvZGU+Jmx0O2lucHV0IHR5cGU9InRleHQiIG5hbWU9InNvbWV0aGluZyIgdmFsdWU9InskZm9ybV9kYXRhLT5zb21ldGhpbmd9Ii8mZ3Q7PC9jb2RlPjwvcHJlPgogIDwvbGk+CiAgPGxpPkNhcHRjaGEgdmFsaWRhdGlvbi4KICAgICA8cD5DYXB0Y2hhIHZhbGlkYXRpb24gaXMgYSB0d28gcGFydCBwcm9jZXNzLiAgYTogIHRoZSBjYXB0Y2hhIG11c3QgYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0gdXNpbmcgdGhlICZsdDtkaXYgZGF0YS1zbXRmbS1jYXB0Y2hhJmd0OyZsdDsvZGl2Jmd0OyBzeW50YXgsIGFuZCBiOiBUaGUgY2FwdGNoYSBpbnB1dCBtdXN0IGJlIHZhbGlkYXRlZCBpbiB0aGUgcmVzcG9uc2UuICBZb3UgbXVzdCBoYXZlIGEgJnF1b3Q7VmFsaWRhdGUgQ2FwdGNoYSZxdW90OyB2YWxpZGF0aW9uIGVuYWJsZWQuPC9wPgogIDwvbGk+CiAgPGxpPkxpbWl0IHRoZSBudW1iZXIgb2YgZmllbGRzLgogICAgIDxwPkZvciBhIGJldHRlciB1c2VyIGludGVyZmFjZSBpdCBpcyBpbXBvcnRhbnQgdG8gbGltaXQgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gYSBmb3JtLiAgSWYgeW91ciBmaWVsZCBoYXMgbW9yZSB0aGFuIGFib3V0IGEgZG96ZW4gZmllbGRzIHRoYXQgdGhlIHVzZXIgY2FuIGVkaXQgb3IgYWRqdXN0IHRoZW4gdHlwaWNhbGx5IHVzZXJzIHdpbGwgbm90IHJlc3BvbmQgdG8gdGhlbSwgb3IgaWYgdGhleSBkbyB0aGUgcXVhbGl0eSBvZiB0aGUgaW5mb3JtYXRpb24gc3VibWl0dGVkIGlzIHJlZHVjZWQuICBmb3IgdGhvc2UgcHVycG9zZXMgaXQgaXMgb2Z0ZW4gYmVzdCB0byBrZWVwIHRoZSBmb3JtcyBzbWFsbCwgc2ltcGxlLCBhbmQgZWFzeSB0byB1c2UuPC9wPgogIDwvbGk+CiAgPGxpPkNvbmRpdGlvbmFsIEZpZWxkcwogICAgIDxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIGhpZGUgZGlmZmVyZW50IGZpZWxkcyBiYXNlZCBvbiBjZXJ0YWluIGNvbmRpdGlvbnMsIGl0IGlzIGJlc3QgdG8gZG8gdGhhdCB1c2luZyBqYXZhc2NyaXB0IGFuZCB5b3VyIGZhdm9yaXRlIGpxdWVyeSBwbHVnaW5zIGV0Yy48L3A+CiAgICAgPHA+SGludDogIFlvdSBjYW4gc3VwcGx5IGRhdGEgdG8gamF2YXNjcmlwdCBmcm9tIHdpdGhpbiB5b3VyIHRlbXBsYXRlIHVzaW5nIHNtYXJ0eSB2YXJpYWJsZXMuIGkuZS46PC9wPgogICAgIDxwcmU+Jmx0O3NjcmlwdCZndDt2YXIgZmV1X3VpZCA9ICd7JGZldV9zbWFydHk6OmdldF9jdXJyZW50X3VzZXJpZCgpfSc7Jmx0Oy9zY3JpcHQmZ3Q7PC9wcmU+CiAgPC9saT4KICA8bGk+RHluYW1pYyBtdWx0aS1vcHRpb24gZmllbGRzCiAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gYWRkIG9wdGlvbnMgdG8gc2VsZWN0LCBvciBvdGhlciBtdWx0aS1vcHRpb24gZmllbGRzIChjaGVja2JveCBncm91cHMsIHJhZGlvLWJ1dHRvbiBncm91cHMpIGR5bmFtaWNhbGx5IHZpYSBzbWFydHkgcGx1Z2lucyB3aGVyZSB0aGUgb3B0aW9ucyBpbiB0aGUgZmllbGQgbWF5IGNoYW5nZSwgaXQgaXMgYmVzdCB0byB0dXJuIG9mZiB2YWxpZGF0aW9uIGZvciB0aGF0IGZpZWxkLjwvcD4KICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgd2lsbCB0dXJuIG9mZiBhbGwgdmFsaWRhdGlvbnMgZm9yIHRoYXQgZmllbGQsIGluY2x1ZGluZyBIVE1MIHZhbGlkYXRpb24uPC9wPgogIDwvbGk+CiAgPGxpPlByZS1maWxsZWQgZmllbGRzCiAgICAgPHA+VGhlcmUgYXJlIG51bWVyb3VzIHdheXMgdG8gcHJvdmlkZSBpbml0aWFsIGRhdGEgdG8gYSBmb3JtIChpLmUuOiBiZWZvcmUgdGhlIGZvcm0gaXMgc3VibWl0dGVkIGJ5IHRoZSB1c2VyIGZvciB0aGUgZmlyc3QgdGltZSkuIFRoZXNlIG1ldGhvZHMsIGlmIGRvbmUgY29ycmVjdGx5IHdpbGwgYWxzbyBwcmVzZXJ2ZSB1c2VyIGRhdGEgaWYgdGhlcmUgaXMgYW4gZXJyb3IgaW4gZm9ybSBzdWJtaXNzaW9uLjwvcD4KICAgICA8dWw+CiAgICAgICA8bGk+VXNpbmcgZmllbGQgbmFtZSBhcmd1bWVudHMgb24gdGhlIHNtYXJ0eSB0YWc6CiAgICAgICAgICA8cD5pLmUuOiAgPGNvZGU+e1NtYXJ0Rm9ybXMgZm9ybT0nbXlmb3JtJyBzbXRmbV9teWZpZWxkbmFtZT0nc29tZXZhbHVlJ308L2NvZGU+PC9wPgogICAgICAgPC9saT4KICAgICAgIDxsaT5DYWxsaW5nIDxjb2RlPntzbXRmbV9zZXQgZmllbGQ9ZmllbGRfbmFtZSB2YWx1ZT1zb21ldGhpbmd9PC9jb2RlPiB0aGUgJnF1b3Q7UHJlLXJlbmRlciBMb2dpYyZxdW90OyB0YWIgd2hlbiBlZGl0aW5nIHRoZSBmb3JtLjwvbGk+CiAgICAgICA8bGk+Q2FsbGluZyBhIFVEVCBmcm9tIHdpdGhpbiB0aGUgZm9ybSB0ZW1wbGF0ZSB0byBhZGp1c3QgdGhlICRmb3JtX2RhdGEgcmVzcG9uc2Ugb2JqZWN0LjwvbGk+CiAgICAgICA8bGk+VXNpbmcgdGhlIDxjb2RlPmRhdGEtc210Zm0tc2VsZWN0ZWQ8L2NvZGU+IGF0dHJpYnV0ZSBvbiBzZWxlY3QgYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbiBncm91cHMuPC9saT4KICAgICAgIDxsaT5Vc2luZyA8Y29kZT57JGZvcm1fZGF0YS0+bXlmaWVsZG5hbWV9PC9jb2RlPiBhbmQgdGhlICZxdW90O2RlZmF1bHQmcXVvdDsgc21hcnR5IG1vZGlmaWVyLgogICAgICAgICAgPHA+aS5lOiA8Y29kZT57JGZvcm1fZGF0YS0+bXlmaWVsZG5hbWV8ZGVmYXVsdDonZm9vJ308L2NvZGU+LjwvcD4KICAgICAgIDwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5QcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiBoaWRkZW4gZmllbGRzIGluIHN1Ym1pc3Npb24uCiAgICAgPHA+WW91IGNhbiB1c2UgdGhlICJWYWxpZGF0ZSB2aWEgc21hcnR5IFRlbXBsYXRlIiB2YWxpZGF0aW9uIHRvIHZlcmlmeSB0aGF0IGhpZGRlbiBmaWVsZHMgaGF2ZSBhIHByZXNldCB2YWx1ZSBvciBhcmUgZW1wdHkgdXBvbiBzdWJtaXNzaW9uLCBidXQgYmVmb3JlIGFueSB2YWx1ZXMgYXJlIGNhbGN1bGF0ZWQuCiAgICAgPHA+Rm9yIGVtcHR5IGZpZWxkcyB5b3UgY2FuIGFsc28gc2V0IGEgdmFsaWRhdGlvbiBwYXR0ZXJuLiAgaS5lOiBpZiB0aGUgaGlkZGVuIGlucHV0IG11c3QgYmUgZW1wdHkgb24gc3VibWl0IGEgcGF0dGVyIG9mOiA8Y29kZT5kYXRhLXNtdGZtLXBhdHRlcm49Il4kIjwvY29kZT4gc2hvdWxkIGJlIHN1ZmZpY2llbnQuLjwvcD4KICA8L2xJPgogIDxsaT5Xb3JraW5nIHdpdGggRmlsZXM8L2xpPgogIDxsaT5BcnJheXMgb2YgZGF0YTwvbGk+CiAgPGxpPkNhbGN1bGF0ZWQgZmllbGRzCiAgICAgIDxwPlVzZSB0aGUgIkNvbXB1dGUgYSBGaWVsZCBWYWx1ZSIgdmFsaWRhdGlvbi48L3A+CiAgPC9saT4KICA8bGk+VURUJ3MgaW4gdmFsaWRhdGlvbgogICAgIDxwPllvdSBjYW4gdXNlIHRoZSAiVmFsaWRhdGUgdmlhIFNtYXJ0eSBUZW1wbGF0ZSIgdmFsaWRhdGlvbi4gSW4gdGhlIHRlbXBsYXRlIGZvciB0aGF0IHZhbGlkYXRpb24gY2FsbCB5b3VyIFVEVC4gIElmIHlvdXIgVURUIHJldHVybnMgYW55IG91dHB1dCBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSB2YWxpZGF0aW9uIGVycm9yLjwvcD4KICA8L2xpPgogIDxsaT5VRFQncyBpbiBkaXNwb3NpdGlvbnMKICAgICA8cD5Vc2UgdGhlIFN0b3BEaXNwb3NpbmcgRGlzcG9zaXRpb24sIGFuZCBpbiB0aGF0IHRlbXBsYXRlIGNhbGwgeW91ciBVRFQuICBJZiB5b3VyIFVEVCByZXR1cm5zIGFueSBvdXRwdXQgdGhlbiBkaXNwb3Npbmcgd2lsbCBzdG9wLjwvcD4KICA8L2xpPgogIDxsaT5TdWJtaXR0aW5nIHBheW1lbnQgdG8gYSBwYXltZW50IGdhdGV3YTwvbGk+CiAgICAgIDxwPkZvciBub24taW50ZXJhY3RpdmUgc3VibWlzc2lvbnMgdG8gYSBwYXltZW50IGdhdGV3YXkgdGhhdCBqdXN0IHJldHVybnMgYSBzdWNjZXNzIG9yIGZhaWx1cmUsICB0aGUgIkNvbXB1dGUiIHZhbGlkYXRpb24gY2FuIGJlIHVzZWQsIGFuZCBhIHNtYXJ0eSBwbHVnaW4KICAgICAgICAgY3JlYXRlZCB0byBzdWJtaXQgdGhlIGluZm9ybWF0aW9uLiAgT24gZXJyb3JzLCB0aGUgcGx1Z2luIHNob3VsZCB0aHJvdyBhIFxTbWFydEZvcm1zXEZpZWxkVmFsaWRhdG9yc1xWYWxpZGF0aW9uRXhjZXB0aW9uIGVycm9yLiAgT24gc3VjZXNzLCB0aGUKCSBwbHVnaW4gc2hvdWxkIGVjaG8gdGhlIG9yZGVyIG51bWJlciBzbyB0aGF0IGl0IGNhbiBiZSBzdG9yZWQgd2hlbiB0aGUgZm9ybSBpcyBoYW5kbGVkLjwvcD4KICAgICAgPHA+Rm9yIGludGVyYWN0aXZlIHN1Ym1pc3Npb25zLCBpLmUuOiBnYXRld2F5cyB0aGF0IHJlcXVpcmUgdGhlIHVzZXIgdG8gZW50ZXIgY3JlZGl0IGNhcmQgZGV0YWlscyBvciBsb2dpbiBpbmZvcm1hdGlvbiBvbiB0aGVpciBzZWN1cmUgc2l0ZS4uLgogICAgICAgICBUT0RPCiAgICAgIDwvcD4KICA8L2xpPgogIDxsaT5DaGFpbmluZyBmb3JtcwogICAgIDxvbD4KICAgICAgIDxsaT5Vc2UgYSBVRFQgdG8gZGlzcG9zZSB0aGUgZm9ybSByZXNwb25zZSB0byB0aGUgc2Vzc2lvbi48L2xpPgogICAgICAgPGxpPkVpdGhlciB1c2luZyBhbm90aGVyIGRpc3Bvc2l0aW9uLCBvciBjb2RlIHdpdGhpbiB5b3VyIFVEVCwgcmVkaXJlY3QgdG8gdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgc2Vjb25kIGZvcm0uPC9saT4KICAgICAgIDxsaT5Vc2UgaGlkZGVuIGZpZWxkcyBpbiB0aGUgc2Vjb25kIGZvcm0gdG8gY29udGFpbiB0aGUgdmFsdWVzIGZyb20gdGhlIGZpcnN0IGZvcm0uPC9saT4KICAgICA8L29sPgogIDwvbGk+CjwvdUw+Cgo8aDQ+SG9va3M8L2g0Pgo8cD5TbWFydEZvcm1zIHVzZXMgSG9va3Mgb24gZXZlcnkgZm9ybSBzdWJtaXNzaW9uLiAgSG9va3MgYXJlIGFub3RoZXIgbWV0aG9kIG9mIHVzaW5nIHRoaXJkIHBhcnR5IGNvZGUgdG8gZG8gdmFsaWRhdGlvbiBvciBkaXNwb3NpdGlvbnMgb2YgZm9ybXMuPC9wPgo8dWw+CiAgPGxpPjxjb2RlPlNtYXJ0Rm9ybXM6OnZhbGlkYXRlRm9ybTwvY29kZT4KICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIGFsbCBvdGhlciB2YWxpZGF0aW9ucy4gIFRoZSBzYW1lIGhvb2sgaXMgY2FsbGVkIGZvciBlYWNoIGZvcm0gc28gaGFuZGxlcnMgc2hvdWxkIGNoZWNrIHRoZSB2YWx1ZSBvZiB0aGUgZm9ybV9uYW1lIHByb3BlcnR5IHRvIGRvIGRpZmZlcmVudCB2YWxpZGF0aW9ucyBmb3IgZmllbGRzIG9uIGRpZmZlcmVudCBmb3Jtcy4gIFRoZSBoYW5kbGVycyBzaG91bGQgdGhyb3cgYSBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdGlvbkVycm9yIGV4Y2VwdGlvbiBpbiB0aGUgY2FzZSBvZiBlcnJvcnMuPC9wPgogICAgIDxoNT5Bcmd1bWVudHM6PC9oNT4KICAgICA8cD5UaGlzIGhvb2sgc2VuZHMgdGhlIEZvcm1SZXNwb25zZSBvYmplY3QgYXMgaXRzIHNpbmdsZSBhcmd1bWVudC48L3A+CiAgICAgPGg1PlJldHVybnM6IDxjb2RlPnZvaWQ8L2NvZGU+PGg1PgogICAgIDxoNT5FeGFtcGxlOjwvaDU+CiAgICAgPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnU21hcnRGb3Jtczo6dmFsaWRhdGVGb3JtJywgZnVuY3Rpb24oIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSAkcmVzcG9uc2UgKXsKICAgIGlmKCAkcmVzcG9uc2UtPmZvcm0gIT0gJ215Zm9ybScgKSByZXR1cm47CiAgICAkZW1haWwgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgnZW1haWwnKTsKICAgIGlmKCAhaXNfZW1haWwoJGVtYWlsKSApIHRocm93IG5ldyBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdGlvbkVycm9yKCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyk7CiAgICAvLyBoZXJlIHdlIGNvdWxkIGNoZWNrIGlmIHRoZSBlbWFpbCBhbHJlYWR5IGV4aXN0cyBpbiBvdXIgZGF0YWJhc2UsIGV0Yy4KfSk7PC9jb2RlPjwvcHJlPgogIDwvbGk+CgogIDxsaT48Y29kZT5TbWFydEZvcm1zOjpkaXNwb3NlPC9jb2RlPgogICAgIDxwPlRoaXMgaG9vayBpcyBjYWxsZWQgYWZ0ZXIgYWxsIG90aGVyIGRpc3Bvc2l0aW9ucyAoYXNzdW1pbmcgcHJvY2Vzc2luZyBoYXMgbm90IGJlZW4gc3RvcHBlZCBieSBhIHByZXZpb3VzIGRpc3Bvc2l0aW9uKSwgYnV0IGJlZm9yZSB0aGUgZmluYWwgcmVzcG9uc2UgaXMgZ2VuZXJhdGVkIG9yIGZpbmFsIHJlZGlyZWN0IGlzIHBlcmZvcm1lZC4gIFRoZSBzYW1lIGhvb2sgaXMgY2FsbGVkIGZvciBlYWNoIGZvcm0sIHNvIGhhbmRsZXJzIHNob3VsZCBjaGVjayB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gcHJvcGVydHkgb2YgdGhlIHJlc3BvbnNlIG9iamVjdCB0byBkbyBkaWZmZXJlbnQgcHJvY2Vzc2luZyBvbiBkaWZmZXJlbnQgZm9ybXMuICBUaGUgaGFuZGxlcnMgc2hvdWxkIHRocm93IHJ1bnRpbWUgZXhjZXB0aW9ucyBpbiB0aGUgY2FzZSBvZiBlcnJvcnMuPC9wPgogICAgIDxoNT5Bcmd1bWVudHM6PC9oNT4KICAgICA8cD5UaGlzIGhvb2sgc2VuZHMgdGhlIEZvcm1SZXNwb25zZSBvYmplY3QgYXMgaXRzIHNpbmdsZSBhcmd1bWVudC48L3A+CiAgICAgPGg1PlJldHVybnM6IDxjb2RlPnZvaWQ8L2NvZGU+PGg1PgogICAgIDxoNT5FeGFtcGxlOjwvaDU+CiAgICAgPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnU21hcnRGb3Jtczo6ZGlzcG9zZScsIGZ1bmN0aW9uKCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UgJHJlc3BvbnNlICl7CiAgICBpZiggJHJlc3BvbnNlLT5mb3JtICE9ICdteWZvcm0nICkgcmV0dXJuOwogICAgJG5hbWUgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgnbmFtZScpOwogICAgJGVtYWlsID0gJHJlc3BvbnNlLT5nZXRfZmllbGRfdmFsdWUoJ2VtYWlsJyk7CiAgICAvLyB2YWxpZGF0aW9uIGlzIGFscmVhZHkgZG9uZS4uLiBzYXZlIHRoaXMgaW5mbyBpbnRvIGFuIGVtYWlsIGxpc3QuCiAgICAkZmggPSBmb3BlbihDTVNfUk9PVF9VUkwuJy91cGxvYWRzL2VtYWlscy5kYXQnLCdhJyk7CiAgICBmcHJpbnRmKCAkZmgsICIkZW1haWwsJG5hbWVcbiIsICRlbWFpbCwgJG5hbWUgKTsKICAgIGZjbG9zZSggJGZoICk7Cn0pOzwvY29kZT48L3ByZT4KICA8L2xpPgoKICA8bGk+PGNvZGU+U21hcnRGb3Jtczo6Y2xlYW51cDwvY29kZT4KICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIGFsbCB2YWxpZGF0aW9ucyBhbmQgZGlzcG9zaXRpb25zIGFuZCBldmVuIGluIHRoZSBldmVudCBvZiB2YWxpZGF0aW9uIGVycm9ycy4gIEl0cyBpbnRlbnQgaXMgdG8gY2xlYW51cCBhbnkgdGVtcG9yYXJ5IGdhcmJhZ2UgbGVmdCBvdmVyIGZyb20gdmFsaWRhdGluZyBhbmQgcHJvY2Vzc2luZyB0aGUgc3VibWlzc2lvbi48L3A+CiAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgogICAgIDxwPlRoaXMgaG9vayBzZW5kcyB0aGUgRm9ybVJlc3BvbnNlIG9iamVjdCBhcyBpdHMgc2luZ2xlIGFyZ3VtZW50LjwvcD4KICAgICA8aDU+UmV0dXJuczogPGNvZGU+dm9pZDwvY29kZT48aDU+CiAgPC9saT4KPC91bD4KCjxoMz5BUEkgUmVmZXJlbmNlPC9oMz4KPHVsPgogIDxsaT48c3Ryb25nPkZvcm1SZXNwb25zZSBvYmplY3Q8L3N0cm9uZz4KICAgICA8cD5UaGlzIG9iamVjdCByZXByZXNlbnRzIHRoZSByZXN1bHRzIG9mIHVzZXIgZm9ybSBzdWJtaXNzaW9ucy4gIEl0IGVuY2Fwc3VsYXRlcyB0aGUgdXNlciBzdWJtaXR0ZWQgaW5mb3JtYXRpb24sIHVwbG9hZGVkIGZpbGVzLCBhbmQgbWV0YWRhdGEgYWJvdXQgdGhlIGZvcm0uICBUaGlzIG9iamVjdCBpcyBwYXNzZWQgdmlhIHNtYXJ0eSB0byBlYWNoIGRpc3Bvc2l0aW9uIGZvciB1c2UgaW4gVURUJ3MgYW5kIG90aGVyIGNvZGUuPC9wPgogICAgIDxoND5Qcm9wZXJ0aWVzOjwvaDQ+CiAgICAgPHVsPgogICAgICAgPGxpPjxjb2RlPmZvcm08L2NvZGU+IC0gPGVtPihzdHJpbmcsIHJlYWQgb25seSk8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtLjwvbGk+CiAgICAgICA8bGk+PGNvZGU+cmVtb3RlX2lwPC9jb2RlPiAtIDxlbT4oc3RyaW5nLCByZWFkIG9ubHkpPC9lbT4gLSBUaGUgSVAgYWRkcmVzcyBvZiB0aGUgY2xpZW50IGJyb3dzZXIuPC9saT4KICAgICAgIDxsaT48Y29kZT5zdWJtaXRfdGltZTwvY29kZT4gLSA8ZW0+KGludCwgcmVhZCBvbmx5KTwvZW0+IC0gVGhlIFVuaXggdGltZXN0YW1wIG9mIHRoZSB0aW1lIHRoYXQgdGhlIGZvcm0gd2FzIHN1Ym1pdHRlZC48L2xpPgogICAgICAgPGxpPjxjb2RlPnZlcnNpb248L2NvZGU+IC0gPGVtPihzdHJpbmcsIHJlYWQgb25seSk8L2VtPiAtIFRoZSBjdXJyZW50IHZlcnNpb24gb2YgU21hcnRGb3Jtcy48L2xpPgogICAgICAgPGxpPjxjb2RlPmd1aWQ8L2NvZGU+IC0gPGVtPihzdHJpbmcsIHJlYWQgb25seSk8L2VtPiAtIFRoZSB1bmlxdWUgZ3VpZCBvZiB0aGlzIHN1Ym1pc3Npb24uCiAgICAgICAgICA8cD5UbyBhaWRlIGluIHNlY3VpdHksIGFuZCB3aXRoIHVwbG9hZGluZyBtdWx0aXBsZSBmaWxlcywgQSB1bmlxdWUgZ3VpZCBzdHJpbmcgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gaXMgcmVuZGVyZWQuICBUaGlzIHByb3BlcnR5IGNvbnRhaW5zIHRoYXQgZ3VpZCB2YWx1ZS48L3A+CiAgICAgICA8L2xpPgogICAgIDwvdWw+CiAgICAgPGg0Pk1ldGhvZHM6PC9oND4KICAgICA8dWw+CiAgICAgICA8bGk+PGNvZGU+Z2V0X2ZpZWxkX3ZhbHVlKDxlbT5zdHJpbmc8L2VtPiAka2V5KTwvY29kZT4gLSBSZXR1cm4gdGhlIHZhbHVlIGZvciBhIHNwZWNpZmljIGZpZWxkLCBpZiBhbnkuCiAgICAgICAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgoJICAgPHA+PGNvZGU+JGtleTwvY29kZT4gLSA8ZW0+KHN0cmluZyk8L2VtPiAtIEEgZmllbGQgbmFtZS48L3A+CgkgICA8aDU+UmV0dXJuczogPGNvZGU+PGVtPm1peGVkPC9lbT48L2NvZGU+PC9oNT4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+PGNvZGU+Z2V0X2h1bWFuX3JlYWRhYmxlX2ZpZWxkX3ZhbHVlKDxlbT5zdHJpbmc8L2VtPiAka2V5KTwvY29kZT4gLSBSZXR1cm4gdGhlIGh1bWFuIHJlYWRhYmxlIHZhbHVlIGZvciBhIHNwZWNpZmljIGZpZWxkLCBpZiBhbnkuCiAgICAgICAgICAgPHA+RmllbGRzIHN1Y2ggYXMgc2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uIGdyb3VwcyBvciBjaGVja2JveC1ncm91cHMgY2FuIGhhdmUgYW4gZXhwbGljaXQgdmFsdWUgZm9yIGVhY2ggb3B0aW9uIHVzZWZ1bCBmb3IgcHJvY2Vzc2luZywgYW5kIGEgaHVtYW4gcmVhZGFibGUgdmFsdWUgdGhhdCBpcyBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIGluIGVtYWlscyBhbmQgcmVwb3J0cy4gVGhpcyBtZXRob2QgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBodW1hbiByZWFkYWJsZSB2YWx1ZSBmb3IgYSBmaWVsZCBpbiBhIHJlc3BvbnNlLiAgSWYgbm8gZXhwbGljaXQgaHVtYW4gcmVhZGFibGUgdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSB1c2VyIGVudGVyZWQgdmFsdWUgaXMgcmV0dXJuZWQgdmVyYmF0dW0uICBTZWUgdGhlIDxjb2RlPmRhdGEtc210Zm0taHVtYW48L2NvZGU+IGRhdGEgYXR0cmlidXRlLjwvcD4KICAgICAgICAgICA8aDU+QXJndW1lbnRzOjwvaDU+CgkgICA8cD48Y29kZT4ka2V5PC9jb2RlPiAtIDxlbT4oc3RyaW5nKTwvZW0+IC0gQSBmaWVsZCBuYW1lLjwvcD4KCSAgIDxoNT5SZXR1cm5zOiA8Y29kZT48ZW0+c3RyaW5nPC9lbT48L2NvZGU+PC9oNT4KCSAgIDxwPlRoZSBodW1hbiByZWFkYWJsZSB2YWx1ZSwgaWYgYW55IGNhbiBiZSBmb3VuZC4gIElmIG5vdCwgdGhlbiB0aGUgaW5wdXQgZmllbGQgdmFsdWUgd2lsbCBiZSByZXR1cm5lZC48L3A+CiAgICAgICA8L2xpPgogICAgICAgPGxpPjxjb2RlPmxpc3RfZmlsZXMoPGVtPnN0cmluZzwvZW0+ICRuYW1lID0gbnVsbCk8L2NvZGU+IC0gUmV0dXJuIGZpbGVzIHVwbG9hZGVkIHdpdGggdGhpcyBzdWJtaXNzaW9uIHJlcXVlc3QuICBJZiBhbnkuCiAgICAgICAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgoJICAgPHA+PGNvZGU+JG5hbWU8L2NvZGU+IC0gPGVtPihzdHJpbmcpPC9lbT4gLSBBbiBvcHRpb25hbCBmaWVsZCBuYW1lLjwvcD4KCSAgIDxoNT5SZXR1cm5zOiA8Y29kZT48ZW0+c3RyaW5nW118bnVsbDwvZW0+PC9jb2RlPjwvaDU+CiAgICAgICAgICAgPHA+SWYgYSBmaWVsZCBuYW1lIGlzIHNwZWNpZmllZCwgYW5kIG9uZSBvciBtb3JlIGZpbGVzIHdlcmUgdXBsb2FkZWQgZm9yIHRoYXQgZmllbGQsIHRoZW4gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYW4gYXJyYXkgb2YgZmlsZSBuYW1lcyByZXByZXNlbnRpbmcgdGhlIGZpbGVzIHVwbG9hZGVkIGZvciBodGF0IGZpZWxkLjwvcD4KCSAgIDxwPklmIG5vIGZpZWxkIG5hbWUgaXMgc3BlY2lmaWVkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBhcnJheSBvZiBhbGwgdXBsb2FkcyBmb3IgdGhlIGVudGlyZSBmb3JtIHN1Ym1pc3Npb24sIGtleWVkIGJ5IHRoZSBmaWVsZCBuYW1lLjwvcD4KCSAgIDxwPklmIG5vIGZpbGVzIHdlcmUgdXBsb2FkZWQgZm9yIHRoaXMgcmVzcG9uc2UgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbCwgb3IgYW4gZW1wdHkgYXJyYXkuPC9wPgogICAgICAgPC9saT4KICAgICAgIDxsaT48Y29kZT5oYXNfZmlsZXMoPGVtPnN0cmluZzwvZW0+ICRuYW1lKTwvY29kZT4gLSBUZXN0IGlmIGEgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZCBmb3IgYSBzcGVjaWZpYyBmaWVsZCBuYW1lLgogICAgICAgICAgIDxoNT5Bcmd1bWVudHM6PC9oNT4KCSAgIDxwPjxjb2RlPiRuYW1lPC9jb2RlPiAtIDxlbT4oc3RyaW5nKTwvZW0+IC0gQSBmaWVsZCBuYW1lLjwvcD4KCSAgIDxoNT5SZXR1cm5zOiA8Y29kZT48ZW0+Ym9vbDwvZW0+PC9jb2RlPjwvaDU+CiAgICAgICA8L2xpPgogICAgICAgPGxpPjxjb2RlPmlzX2ZpbGVfZmllbGQoPGVtPnN0cmluZzwvZW0+ICRuYW1lKTwvY29kZT4gLSBUZXN0IGlmIGEgc3BlY2lmaWMgZmllbGQgbmFtZSByZXByZXNlbnRzIGEgZmlsZSB1cGxvYWQgZmllbGQuCiAgICAgICAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgoJICAgPHA+PGNvZGU+JG5hbWU8L2NvZGU+IC0gPGVtPihzdHJpbmcpPC9lbT4gLSBBIGZpZWxkIG5hbWUuPC9wPgoJICAgPGg1PlJldHVybnM6IDxjb2RlPjxlbT5ib29sPC9lbT48L2NvZGU+PC9oNT4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+PGNvZGU+aGFzX3VwbG9hZHMoKTwvY29kZT4gLSBUZXN0IGlmIHRoZSBmb3JtIHJlc3BvbnNlIGNvbnRhaW5zIGFueSB1cGxvYWRlZCBmaWxlcy4KICAgICAgICAgICA8aDU+QXJndW1lbnRzOjwvaDU+CgkgICA8aDU+UmV0dXJuczogPGNvZGU+PGVtPmJvb2w8L2VtPjwvY29kZT48L2g1PgogICAgICAgPC9saT4KICAgICAgIDxsaT48Y29kZT5nZXRfZmlsZV9hc191cmwoPGVtPnN0cmluZzwvZW0+ICRuYW1lKTwvY29kZT4gLSBHZXQgdGhlIFVSTChzKSBmb3IgYWxsIGZpbGVzIHVwbG9hZGVkIHRvIGZvciBhIHNwZWNpZmllZCBmaWVsZC4KICAgICAgICAgICA8aDU+QXJndW1lbnRzOjwvaDU+CgkgICA8cD48Y29kZT4kbmFtZTwvY29kZT4gLSA8ZW0+KHN0cmluZyk8L2VtPiAtIEEgZmllbGQgbmFtZS48L3A+CgkgICA8aDU+UmV0dXJuczogPGNvZGU+PGVtPnN0cmluZ1tdfHN0cmluZ3xudWxsPC9lbT48L2NvZGU+PC9oNT4KCSAgIDxwPlNpbWlsYXIgdG8gdGhlIDxlbT48c3Ryb25nPmxpc3RfZmlsZXMoKTwvc3Ryb25nPjwvZW0+IG1ldGhvZCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYWxsIG9mIHRoZSBmaWxlcyB1cGxvYWRlZCBmb3IgYSBzcGVjaWZpYyBmaWVsZC4gIEhvd2V2ZXIsIHRoZSBvdXRwdXQgaXMgY29tcGxldGUgVVJMcyB0byB0aGUgdXBsb2FkZWQgZmlsZXMuPC9wPgoJICAgPHA+SWYgbXVsdGlwbGUgZmlsZXMgd2VyZSB1cGxvYWRlZCBmb3IgdGhlIHNwZWNpZmVkIGZpZWxkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBhcnJheSBvZiBzdHJpbmdzLjwvcD4KCSAgIDxwPklmIGEgc2luZ2xlIGZpbGUgd2FzIHVwbG9hZGVkIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhIHNpbmdsZSBzdHJpbmcuPC9wPgoJICAgPHA+SWYgbm8gZmlsZXMgd2VyZSB1cGxvYWRlZCBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbC48L3A+CiAgICAgICA8L2xpPgogICAgICAgPGxpPjxjb2RlPmhhc19lcnJvcnMoKTwvY29kZT4gLSBUZXN0IHdoZXRoZXIgYW55IGVycm9ycyBoYXZlIGJlZW4gcmVjb3JkZWQgKHlldCkgaW4gdGhlIGZvcm0gcmVzcG9uc2UuPC9saT4KICAgICAgICAgICA8cD5UaGlzIG1ldGhvZCBpcyB1c2VmdWwgaW4gdGVtcGxhdGVzIHVzZWQgZm9yIGZpZWxkIHZhbGlkYXRpb24gYW5kIGZvciB0ZW1wbGF0ZXMgdXNlZCBpbiBkaXNwb3NpdGlvbnMgdG8gY29udHJvbCBvdXRwdXQgb3IgZnVydGhlciBhY3Rpb25zLjwvcD4KCSAgIDxwPmkuZS46IGNvZGUgbGlrZSB0aGlzIGNvdWxkIGJlIHVzZWQgaW4gdGhlICJDb21wdXRlIGEgZmllbGQgdmFsdWUiIHZhbGlkYXRpb246PC9wPgoJICAgPHByZT48Y29kZT57aWYgISRyZXNwb25zZS0mZ3Q7aGFzX2Vycm9ycygpfXtzb21lX3BsdWdpbn17L2lmfTwvY29kZT48L3ByZT4KICAgICAgIDwvbGk+CiAgICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgzPkV4dGVuZGluZyBmdW5jdGlvbmFsaXR5PC9oMz4KPGg0PkFkZGluZyBWYWxpZGF0aW9uczwvaDQ+CjxoND5BZGRpbmcgRGlzcG9zaXRpb25zPC9oND4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NtYXJ0Zm9ybXMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJpdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0ICYgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KPGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNU0V4dCA9Jmd0OyAxLjAuMDwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBGZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKSAmbHQ7am9tb3JnQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMC4wPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgoJPGxpPnYxLjAgLSBJbml0aWFsIHN0YWJsZSByZWxlYXNlLjwvbGk+Cgk8bGk+djEuMSAtIFNlcHRlbWJlciAyMDE3CgkJPHA+LSBNaW5vciBidWcgZml4LjwvcD4KCQk8cD4tIEFkZHMgYmFzaWMgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25hbGl0eS48L3A+Cgk8L2xpPgoKCTxsaT52MS4xLjIgLSBTZXB0ZW1iZXIgMjAxNwoJCTxwPi0gSW1wcm92ZXMgdGhlIGVkaXQtZm9ybSBpbnRlcmZhY2UgaW4gdGhlIGV2ZW50IG9mIHNldmVyZSBlcnJvcnMgd2hlbiBwYXJzaW5nIHRoZSBmb3JtIEhUTUwuPC9wPgoJICAgICAgICA8cD4tIEltcHJvdmVzIG1lc3NhZ2VzIGFib3V0IHVua25vd24gSFRNTDUgZWxlbWVudHMuICBXaWxsIGxvb2sgYXQgdXNpbmcgYSBkaWZmZXJlbnQgbGlicmFyeSBpbiBsYXRlciB2ZXJzaW9ucy48L3A+CgkJPHA+LSBNaW5vciBidWcgZml4IHJlbGF0ZWQgdG8gc3RhdGljIHVzZSBvZiBub24tc3RhdGljIG1ldGhvZC48L3A+Cgk8L2xpPgoJPGxpPnYxLjIgLSBOb3ZlbWJlciAyMDE3CgkJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBGb3IgYWxsIGZvcm1zIHVzaW5nIGNhcHRjaGEsIHlvdSBtYXkgbmVlZCB0byByZW1vdmUgYW5kIHJlLWFkZCBhbnkgJnF1b3Q7VmFsaWRhdGUgQ2FwdGNoYSZxdW90OyB2YWxpZGF0aW9uIGluIHRoZSB2YWxpZGF0aW9uIHRhYiB0byBlbnN1cmUgdGhhdCBjYXB0Y2hhIGlzIHZhbGlkYXRlZCBvbiB0aGUgc2VydmVyIHNpZGUuPC9wPgoJCTx1bD4KCQk8bGk+Rml4ZXMgdG8gY2FwdGNoYSB2YWxpZGF0aW9uICh3YXNuJ3QgaGFwcGVuaW5nIHNlcnZlciBzaWRlKTwvbGk+CgkJPGxpPkNhbiBub3cgYXV0by1hZGQgdmFsaWF0aW9ucyBldmVuIGlmIHRoZXJlIGFyZSBleGlzdGluZyB2YWxpZGF0aW9ucy48L2xpPgoJCTxsaT5NaW5vciBmaXggdG8gdGVtcGxhdGUgaGVscCBzdHVmZi48L2xpPgoJCTxsaT5BZGRzIGEgbmV3IE1vZHVsZVJlZmVyZW5jZSBjbGFzcyBhbmQgdXNlIGl0IGluIGF0IGxlYXN0IG9uZSBwbGFjZSB0byBhbGxvdyBzdG9yaW5nIGEgc2ltcGxlIHJlZmVyZW5jZSB0byBhIG1vZHVsZSB0byB1c2UgaW52aXNpYmx5LjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+djEuMi4xIC0gRGVjZW1iZXIgMjAxNwoJCTx1bD4KCQk8bGk+Rm9ybVJlc3BvbnNlIG5vdyBjb250YWlucyBhIHRyYW5zbGF0b3IgbWVtYmVyIGFuZCBhIGdldF90cmFuc2xhdG9yKCkgbWV0aG9kLiAgTWF5IHJlbW92ZSB0aGVzZSBsYXRlci48L2xpPgoJCTxsaT5JbXByb3ZlbWVudHMgdG8gdmFsaWRhdGlvbiBlcnJvcnMuPC9saT4KCQk8bGk+Tm93IGhhbmRsZSBkaXNwb3NpdGlvbiBlcnJvcnMgc2ltaWxhciB0byB2YWxpZGF0aW9uIGVycm9ycy48L2xpPgoJCTxsaT5TbWFydHkgdGVtcGxhdGVzIGNhbiBub3cgYWNjZXNzIHJhdyByZXNwb25zZSBkYXRhLjwvbGk+CgkJPGxpPm1vcmUuLi48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPnYxLjMgLSBEZWNlbWJlciAyMDE3CgkJPHVsPgoJICAgICAgICA8bGk+UmVtb3ZlIHRoZSByZXNldCBidXR0b24gZnJvbSB0aGUgZmluYWwgbWVzc2FnZSB0ZW1wbGF0ZS48L2xpPgoJCTxsaT5GaXggaXNzdWUgd2l0aCB0aGUgaG9uZXlwb3QgZmllbGQgbm90IGJlaW5nIHByb3ZpZGVkIHRvIHRoZSByZXNwb25zZSBvYmplY3QgcHJvcGVybHkuPC9saT4KCSAgICAgICAgPGxpPkZpeCBpc3N1ZSB3aXRoIHN1Ym1pc3Npb25zIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZS48L2xpPgoJICAgICAgICA8bGk+Rml4IGxhYmVscyBpbiB0aGUgU21hcnR5IFRlbXBsYXRlIHZhbGlkYXRpb24uPC9saT4KCSAgICAgICAgPGxpPkZpeCBpc3N1ZSB3aXRoIHZhbGlkYXRpb25zIHRocm93aW5nIHRoZSB3cm9uZyBleGNlcHRpb24uPC9saT4KCSAgICAgICAgPGxpPkZpeCB0aGUgc2VsZWN0IGluIHRoZSBEcm9wZG93bi1FbWFpbCB2YWxpZGF0aW9uICh5b3UgbWF5IG5lZWQgdG8gcmVtb3ZlIGFuZCByZS1hZGQgdGhpcyB2YWxpZGF0aW9uIG9uIHlvdXIgZm9ybXMpLjwvbGk+CgkJPGxpPmZpeCBwcm9ibGVtIHRoYXQgcmVzdWx0ZWQgaW4gYW4gZW1wdHkgdGVtcGxhdGUgYmVpbmcgaW1wb3J0ZWQuPC9saT4KCSAgICAgICAgPGxpPlVuaXF1ZSBmaWxlbmFtZSBkaXNwb3NpdGlvbiBub3cgaGFzIGEgZmlsZW5hbWUgdGVtcGxhdGUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT52MS40LngKCQk8dWw+CgkgICAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRpc3Bvc2UgdmlhIGVtYWlsIHRvIGFsbCBtZW1iZXJzIG9mIGFuIGFkbWluIGdyb3VwLjwvbGk+CgkgICAgICAgIDxsaT5kYXRhLXNtdGZtLWxhYmVsIG5vdyB3b3JrcyBmb3Igc2VsZWN0IGZpZWxkcy48L2xpPgoJICAgICAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIGV4dHJhY3Rpb24gb2YgbGFiZWxzLjwvbGk+CgkJPGxpPk1pbm9yIGZpeCB0byB0aGUgU3RvcERpc3Bvc2luZyBEaXNwb3NpdGlvbi48L2xpPgoJCTxsaT5Ob3cgdXNlIGZpbHRlcl92YXIgb24gYWxsIHJlc3BvbnNlIGZpZWxkcy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPnYxLjUueAoJCTx1bD4KCQk8bGk+Rml4ZXMgZm9yIGVudGl0aWVzIGluIHZhbGlkYXRpb24gYW5kIGhhbmRsZXIgdGVtcGxhdGVzLjwvbGk+CgkJPGxpPk5vdyBlbnN1cmUgdGhhdCBtdWx0aXNlbGVjdCBmaWVsZCBuYW1lcyBlbmQgd2l0aCBbXSB3aGVuIHJlbmRlcmluZy48L2xpPgoJCTxsaT5IZWxwIGltcHJvdmVtZW50cy48L2xpPgoJCTxsaT5GaXggZm9yIGNhc2Ugd2hlbiB0aGUgZm9ybSBpcyBpbmxpbmUgYW5kIGVtcGJlZGRlZCB3aXRoaW4gYSBkZXRhaWwgdmlldyBvciBzb21lIG90aGVyIHZpZXcgb2YgYW5vdGhlciBtb2R1bGUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT52MS42LngKCQk8dWw+CgkgICAgICAgIDxsaT5Ob3cgYWxsb3cgc3BlY2lmeWluZyBhIHNtYXJ0eSByZXNvdXJjZSBhcyBhIHRlbXBsYXRlLjwvbGk+CgkgICAgICAgIDxsaT5ObyBsb25nZXIgY2hlY2sgaWYgZm9ybSBuZWVkcyBzY2FubmluZyBvbiBsb2FkIGlmIHVzaW5nIGZpbGUgYmFzZWQgdGVtcGxhdGUuPC9saT4KCSAgICAgICAgPGxpPk1vZGlmeSB0aGUgZm9ybSByZXNwb25zZSBvYmplY3QgdG8gaGF2ZSBhIGhhc19lcnJvcnMoKSBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZCBpbiB2YWxpZGF0aW9uIHRlbXBsYXRlcy48L2xpPgoJICAgICAgICA8bGk+QWRkIGFiaWxpdHkgdG8gZGlzYWJsZSBhIGRpc3Bvc2l0aW9uLjwvbGk+CgkgICAgICAgIDxsaT5BZGRzIGNvbmZpZyBlbnRyaWVzIGZvciBza2lwcGluZyB2ZXJzaW9uIGFuZCBkYXRlIGNoZWNrcy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPnYxLjcueAoJCTx1bD4KCQk8bGk+QWRkcyBFbWFpbEFkbWluR3JvdXBXaXRoUmVwbHlUbyBkaXNwb3NpdGlvbi48L2xpPgoJCTxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT52MS44LngKCSAgICAgICAgPHVsPgoJCTxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KCSAgICAgICAgPGxpPkFkZHMgdGhlIGRhdGEtc210Zm0tcmVwbHl0byBhdHRyaWJ1dGUgdGhhdCBpcyB1c2VkIHRvIG1hcmsgYSBmaWVsZCBhcyBhbiBlbWFpbCBmaWVsZCB0aGF0IGNvbnRhaW5zIGEgcmVwbHl0byBhZGRyZXNzIGZvciBhZG1pbiBlbWFpbHMuPC9saT4KCSAgICAgICAgPGxpPk1vZGlmaWVzIHRoZSB3ZWIgaG9vayBkaXNwb3NpdGlvbiBzbyB0aGF0IHRoZSAnZXh0cmEgdmFyaWFibGVzJyB0ZXh0IGFyZWEgaXMgdHJlYXRlZCBhcyBhIHNtYXJ0eSB0ZW1wbGF0ZS4KCSAgICAgICAgPC91bD4KCTwvbGk+Cgk8bGk+djEuOS54Cgk8dWw+CiAgCQk8bGk+Tm93IGF1dG8tc2V0IHRoZSB2YWx1ZSBvZiBmaWVsZHMgKGluY2x1ZGluZyBjaGVja2JveGVzLCBhbmQgcmFkaW8gYnV0dG9ucykKCQkJPHA+d2hlbiByZW5kZXJpbmcgYSBmb3JtLCBpZiB0aGVyZSBpcyBubyBzcGVjaWZpYyBjb250ZW50IHNldCBpbiB0aGUgdmFsdWUsIHdlIHNldCB0aGUgdmFsdWUsIGNvbnRlbnQsIGNoZWNrZWQsIG9yIHNlbGVjdGVkIHN0YXRlIGFwcHJvcHJpYXRlbHkgYmFzZWQgb24gdGhlIHZhbHVlIHNldCBpbiB0aGUgZm9ybSByZXNwb25zZS48L3A+CgkgICAgICAgIDwvbGk+CgkJPGxpPkFkZHMgdGhlIGRhdGEtc210Zm0tbm9hdXRvdmFsdWUgYXR0cmlidXRlIHRvIGF2b2lkIHNldHRpbmcgdGhlIHZhbHVlIGF1dG9tYXRpY2FsbHkuICBUaGlzIGF0dHJpYnV0ZSB3b3JrcyBnbG9iYWxseSBmb3IgYSBmb3JtLCBvciBvbiBlYWNoIGluZGl2aWR1YWwgZmllbGQuPC9saT4KCgkJPGxpPk5vdyBlbnN1cmUgdGhhdCBjaGVja2JveCBncm91cHMgaGF2ZSB0aGUgW10gYXBwZW5kZWQgdG8gdGhlaXIgbmFtZSBvbiByZW5kZXJpbmcuPC9saT4KCSAgICAgICAgPGxpPkFkZHMgdGhlIGRhdGEtc210Zm0tbm9uYW1lYWRqdXN0IGF0dHJpYnV0ZSB0byBhdm9pZCBhdHRlbXB0aW5nIHRvIGF1dG8tYXBwZW5kIFtdIHRvIHRoZSBuYW1lIG9mIG11bHRpc2VsZWN0IGZpZWxkcywgb3IgY2hlY2tib3ggZ3JvdXBzLjwvbGk+CgkgICAgICAgIDxsaT5FbWFpbCBkaXNwb3NpdGlvbnMgd2lsbCBub3cgZG8gbm90aGluZyBpZiB0aGUgcmVzdWx0IG9mIHBhc3NpbmcgdGhlIGJvZHkgdGVtcGxhdGUgb3Igc3ViamVjdCB0ZW1wbGF0ZSB0aHJvdWdoIHNtYXJ0eSByZXN1bHQgaW4gZW1wdHkgc3RyaW5ncy48L2xpPgoJCTxsaT5Gb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgb25seSBhbGxvdyB2YWxpZGF0aW9uIGVkaXRvcnMgdG8gYmUgcmVnaXN0ZXJlZCBmcm9tIGFkbWluIHJlcXVlc3RzLjwvbGk+Cgk8L3VsPgoJPC9saT4KCgk8bGk+djEuMTAueAoJPHVsPgogICAgICAgIAk8bGk+U2V2ZXJhbCBtaW5vciBuZXcgZmVhdHVyZXMuPC9saT4KICAgICAgICAgICAgICAgIDxsaT52MS4xMC4zIC0gZml4IHRvIHRoZSBhdXRvIHZhbGlkYXRpb24gc2Nhbm5lci4uLiB5b3UgbWF5IG5lZWQgdG8gcmVtb3ZlIGFuZCByZS1hdXRvLXZhbGlkYXRlIHZhbGlkYXRpb25zIHRoYXQgd2VyZSBhdXRvLWFkZGVkIHRvIGZpeCBhIHByb2JsZW0gd2l0aCBvcmRlcmluZyB2YWxpZGF0aW9ucy48L2xpPgoJPC91bD4KCTwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<requires>
	  <requiredname>CMSMSExt</requiredname>
	  <requiredversion>1.0.0</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_delete_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtID0gbnVsbDsKICAgIGlmKCAoJGZvcm1faWQgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZm9ybScpKSApIHsKICAgICAgICAkZm9ybSA9ICR0aGlzLT5mb3Jtc3RvcmFnZS0+bG9hZF9ieV9pZCggJGZvcm1faWQgKTsKICAgIH0KCiAgICBpZiggISRmb3JtICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGRlbGV0ZSBmb3JtIChpbnZhbGlkIGZvcm0gaWQpJyk7CiAgICAkdGhpcy0+Zm9ybXN0b3JhZ2UtPmRlbGV0ZSggJGZvcm0gKTsKCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2Zvcm1kZWxldGVkJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_disposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtX2d1aWQgICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmb3JtX2d1aWQnKTsKICAgICRkaXNwX2d1aWQgICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdkaXNwX2d1aWQnKTsKICAgICRlZGl0b3JfbmFtZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdlZGl0b3JfbmFtZScpOwogICAgJGVkaXRvciA9ICRkaXNwb3NpdGlvbiA9IG51bGw7CgogICAgJGhlbHBlciA9IG5ldyBEaXNwb3NpdGlvbkVkaXRvckhlbHBlclByb3h5KCAkdGhpcyApOwogICAgJGZvcm0gPSAkdGhpcy0+Z2V0X2Zvcm0oICRmb3JtX2d1aWQgKTsKICAgIGlmKCAkZGlzcF9ndWlkICkgewogICAgICAgICRkaXNwb3NpdGlvbiA9ICRmb3JtLT5nZXREaXNwb3NpdGlvbiggJGRpc3BfZ3VpZCApOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfZGlzcG9zaXRpb24oICRkaXNwb3NpdGlvbiApOwogICAgICAgICRlZGl0b3ItPnNldF9kaXNwb3NpdGlvbiggJGRpc3Bvc2l0aW9uICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkZWRpdG9yID0gJHRoaXMtPmdldF9kaXNwb3NpdGlvbl9lZGl0b3IoICRlZGl0b3JfbmFtZSApOwogICAgfQogICAgJGVkaXRvci0+c2V0X2hlbHBlcl9wcm94eSggJGhlbHBlciApOwogICAgJGVkaXRvci0+aGFuZGxlX2VkaXRfZm9ybSgkcGFyYW1zLCAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBkZWJ1Z19kaXNwbGF5KCRlKTsKICAgIGRpZSgpOwp9]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKc3RhdGljICR0ZXN0ZXIsICRzY2FubmVyOwoKJG1ha2VfZmllbGRfbGlzdCA9IGZ1bmN0aW9uKCBhcnJheSAkZmllbGRzICkgewogICAgJG91dCA9IFtdOwogICAgZm9yZWFjaCggJGZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgJG91dFskZmllbGQtPm5hbWVdID0gInskZmllbGQtPm5hbWV9ICh7JGZpZWxkLT50eXBlfSkiOwogICAgfQogICAgcmV0dXJuICRvdXQ7Cn07CgokZG9fc2NhbiA9IGZ1bmN0aW9uKCBGb3JtICRmb3JtLCAkc21hcnR5ICkgdXNlICgkc2Nhbm5lciwkdGVzdGVyKSB7CiAgICBzdGF0aWMgJHRlc3RlciwgJHNjYW5uZXI7CgogICAgaWYoICFpc19vYmplY3QoJHRlc3RlcikgKSB7CiAgICAgICAgLy8gb25seSBkbyB0aGlzIG9uY2UgcGVyIHJlcXVlc3QuCiAgICAgICAgJHNjYW5uZXIgPSBuZXcgVGVtcGxhdGVGb3JtU2Nhbm5lciggJHRoaXMsICRmb3JtICk7CiAgICAgICAgJHRlc3RlciA9IG5ldyBUZW1wbGF0ZUZvcm1UZXN0ZXIoICRzY2FubmVyLCAkdGhpcy0+Z2V0X2Zvcm10ZXN0cygpICk7CiAgICB9CgogICAgJHJlc3VsdHMgPSBuZXcgU2Nhbm5lZFRlbXBsYXRlKCAkc2Nhbm5lciwgJHRlc3RlciApOwogICAgcmV0dXJuICRyZXN1bHRzOwp9OwoKCnRyeSB7CiAgICAkdGhpcy0+Y21zLT5HZXRTbWFydHkoKS0+YWRkVGVtcGxhdGVEaXIoICRjb25maWdbJ2Fzc2V0c19wYXRoJ10uJy90ZW1wbGF0ZXMnICk7ICAvLyA8IGNtc21zIDIuMwoKICAgICRzY2FuX25lZWRlZCA9IGZhbHNlOwogICAgJGZvcm0gPSBuZXcgRm9ybTsKICAgICRmb3JtX2d1aWQgPSAkZGlzcF9ndWlkID0gJHZhbGlkYXRvcl9ndWlkID0gbnVsbDsKICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKCiAgICBpZiggKCRmb3JtX2lkID0gXHh0X3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2Zvcm0nKSkgKSB7CiAgICAgICAgJGZvcm0gPSAkdGhpcy0+Zm9ybXN0b3JhZ2UtPmxvYWRfYnlfaWQoICRmb3JtX2lkICk7CiAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgfQogICAgZWxzZSBpZiggKCRmb3JtX2d1aWQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZm9ybV9ndWlkJykpICkgewogICAgICAgIC8vIGdldCBpdCBmcm9tIHNlc3Npb24uCiAgICAgICAgJGZvcm0gPSAkdGhpcy0+Z2V0X2Zvcm0oICRmb3JtX2d1aWQgKTsKICAgICAgICAkc3ViYWN0aW9uID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3N1YmFjdGlvbicpOwogICAgICAgIGlmKCAkc3ViYWN0aW9uICYmICgkZ3VpZHMgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZ3VpZHMnKSkgKSB7CiAgICAgICAgICAgIC8vIGhhbmRsZSBhIHN1YmFjdGlvbgogICAgICAgICAgICAkZ3VpZHMgPSBleHBsb2RlKCcsJywkZ3VpZHMpOwogICAgICAgICAgICBpZiggIWVtcHR5KCRndWlkcykgKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2goICRzdWJhY3Rpb24gKSB7CiAgICAgICAgICAgICAgICBjYXNlICdvcmRlcl9kaXNwb3NpdGlvbnMnOgogICAgICAgICAgICAgICAgICAgICRmb3JtLT5vcmRlckRpc3Bvc2l0aW9ucyggJGd1aWRzICk7CiAgICAgICAgICAgICAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnb3JkZXJfdmFsaWRhdGlvbnMnOgogICAgICAgICAgICAgICAgICAgICRmb3JtLT5vcmRlclZhbGlkYXRpb25zKCAkZ3VpZHMgKTsKICAgICAgICAgICAgICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggKCRkaXNwX2d1aWQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZGlzcF9ndWlkJykpICkgewogICAgICAgICAgICAvLyBoYW5kbGUgYW4gdXBkYXRlZCBkaXNwb3NpdGlvbi4KICAgICAgICAgICAgJGRpc3AgPSB1dGlsczo6cmV0cmlldmVfb2JqZWN0KCRkaXNwX2d1aWQpOwogICAgICAgICAgICAkZm9ybS0+c2V0RGlzcG9zaXRpb24oICRkaXNwICk7CiAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgLy8gdG9kbzogc2V0IGN1cnJlbnQgdGFiLgogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAoJHZhbGlkYXRvcl9ndWlkID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3ZhbGlkYXRvcl9ndWlkJykpICkgewogICAgICAgICAgICAvLyBoYW5kbGUgYW4gdXBkYXRlZCB2YWxpZGF0aW9uCiAgICAgICAgICAgICR2YWxpZGF0b3IgPSB1dGlsczo6cmV0cmlldmVfb2JqZWN0KCR2YWxpZGF0b3JfZ3VpZCk7CiAgICAgICAgICAgICRmb3JtLT5zZXRWYWxpZGF0aW9uKCAkdmFsaWRhdG9yICk7CiAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgLy8gdG9kbzogc2V0IGN1cnJlbnQgdGFiCiAgICAgICAgfQogICAgfQoKICAgIC8vIGlmIHdlIGhhdmUgYSB0ZW1wbGF0ZSByZXNvdXJjZSBvciBpZC4uLgogICAgaWYoICRmb3JtLT5nZXRTbWFydHlUZW1wbGF0ZVJlc291cmNlKCkgJiYgIVx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3NjYW4nKSApIHsKICAgICAgICAkZXJycyA9IG51bGw7CiAgICAgICAgaWYoICEgXHh0X3BhcmFtOjpnZXRfYm9vbCggJHBhcmFtcywgJ3NtdGZtX3NraXBfdmVyc2lvbmNoZWNrJykgKSB7CiAgICAgICAgICAgIGlmKCB2ZXJzaW9uX2NvbXBhcmUoJGZvcm0tPnNtdGZtX3ZlcnNpb24sJHRoaXMtPkdldFZlcnNpb24oKSkgIT0gMCApIHsKICAgICAgICAgICAgICAgICRlcnJzW10gPSAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyX2Zvcm1fdmVyc2lvbmNoYW5nZScpKTsKICAgICAgICAgICAgICAgICRzY2FuX25lZWRlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoIGVtcHR5KCRmb3JtLT50ZW1wbGF0ZV9yc3JjKSAmJiAkZm9ybS0+dGVtcGxhdGVfaWQgPiAwICkgewogICAgICAgICAgICBpZiggIVx4dF9wYXJhbTo6Z2V0X2Jvb2woICRwYXJhbXMsICdzbXRmbV9za2lwX2RhdGVjaGVjaycpICkgewogICAgICAgICAgICAgICAgJHRwbCA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCggJGZvcm0tPnRlbXBsYXRlX2lkICk7CiAgICAgICAgICAgICAgICAkbW9kX3RpbWUgPSAkdHBsLT5nZXRfbW9kaWZpZWQoKTsKICAgICAgICAgICAgICAgIGlmKCAkZm9ybS0+bW9kaWZpZWQgPCAkbW9kX3RpbWUgJiYgJGZvcm0tPnRwbF9tb2RpZmllZCA8ICRtb2RfdGltZSApIHsKICAgICAgICAgICAgICAgICAgICAkZXJyc1tdID0gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycl9mb3JtX3NjYW5uZWVkZWQnKSk7CiAgICAgICAgICAgICAgICAgICAgJHNjYW5fbmVlZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiggIWVtcHR5KCRlcnJzKSApIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycnMpOwogICAgfQoKICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzY2FuJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gZmlsbCB0aGUgZm9ybSBvYmplY3Qgd2l0aCBhIG5hbWUsIHRlbXBsYXRlIGlkLCBkZXNjcmlwdGlvbiwgZXRjLi4uCiAgICAgICAgICAgICRmb3JtID0gJGZvcm0tPmFkanVzdFdpdGgoICRwYXJhbXMgKTsKCiAgICAgICAgICAgIC8vIGdldCB0aGUgbWVzc2FnZXMsIGFuZCBmaWVsZHMgYW5kIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm0KICAgICAgICAgICAgLy8gdG9kbzogZmlsdGVyIHRoZSBmaWVsZHMgZG93biB0byBvbmUgcGVyIG5hbWUuCiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+c2Nhbl9mb3JtKCAkZm9ybSApOwogICAgICAgICAgICAkZm9ybS0+YWRqdXN0V2l0aCggWyAndHBsX21vZGlmaWVkJz0+JHJlcy0+Z2V0X21vZGlmaWVkX3RpbWUoKSBdICk7CiAgICAgICAgICAgICRmb3JtLT5hZGp1c3RXaXRoKCBbICdyZXBseXRvX2ZpZWxkJz0+ICRyZXMtPmdldF9yZXBseXRvX2ZpZWxkKCkgXSApOwogICAgICAgICAgICAkZm9ybS0+YWRqdXN0V2l0aCggWyAnZmllbGRzJz0+JHJlcy0+Z2V0X2ZpZWxkcygpICwgJ2ZpZWxkX21lc3NhZ2VzJz0+JHJlcy0+Z2V0X21lc3NhZ2VzKCksICdoYXNfY2FwdGNoYSc9PiRyZXMtPmhhc19jYXB0Y2hhKCkgXSApOwogICAgICAgICAgICAkZm9ybS0+YWRqdXN0V2l0aCggWyAnc210Zm1fdmVyc2lvbic9PiR0aGlzLT5HZXRWZXJzaW9uKCkgXSApOwoKICAgICAgICAgICAgLy8gc2F2ZSB0aGUgZm9ybSB0byB0aGUgc2Vzc2lvbgogICAgICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignbWVzc2FnZXMnKTsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19zY2FubmVkX3NhdmVuZWVkZWQnKSk7CiAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIEZvcm1TY2FubmVyRXJyb3IgJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJGUtPkdldE1lc3NhZ2UoKSkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdhdXRvX3ZhbGlkYXRpb24nKSApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYigndmFsaWRhdGlvbicpOwogICAgICAgICAgICAkc2Nhbm5lciA9IG5ldyBWYWxpZGF0aW9uU2Nhbm5lciggJHRoaXMsICRmb3JtLCAkZm9ybS0+Z2V0X2ZpZWxkcygpICk7CiAgICAgICAgICAgICR2YWxpZGF0aW9ucyA9ICRzY2FubmVyLT5nZXRfdmFsaWRhdGlvbnMoKTsKICAgICAgICAgICAgaWYoICFlbXB0eSgkdmFsaWRhdGlvbnMpICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCggJHZhbGlkYXRpb25zIGFzICRvYmogKSB7CiAgICAgICAgICAgICAgICAgICAgJGZvcm0tPnNldFZhbGlkYXRpb24oJG9iaik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSBpZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnYWRkX3ZhbGlkYXRpb24nKSApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBpbml0aWF0ZSBhZGRpbmcgYSB2YWxpZGF0aW9uCiAgICAgICAgICAgICRlZGl0b3JfY2xhc3MgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndmFsaWRhdGlvbicpOwogICAgICAgICAgICBpZiggISRlZGl0b3JfY2xhc3MgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnRlcm5hbCBlcnJvcjogIE5vIHZhbGlkYXRpb24gc3BlY2lmaWVkJyk7CiAgICAgICAgICAgICRlZGl0b3IgPSAkdGhpcy0+Z2V0X3ZhbGlkYXRpb25fZWRpdG9yKCAkZWRpdG9yX2NsYXNzICk7CiAgICAgICAgICAgIGlmKCAhJGVkaXRvciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludGVybmFsIGVycm9yOiBWYWxpZGF0aW9uIG5vdCBmb3VuZCcpOwoKICAgICAgICAgICAgLy8gdGVzdCBpZiB3ZSBjYW4gaGF2ZSBtYW55IG9mIHRoZXNlLgogICAgICAgICAgICBpZiggISRlZGl0b3ItPmFsbG93c19tdWx0aXBsZSgpICYmICRmb3JtLT5oYXNWYWxpZGF0aW9uKCAkZWRpdG9yLT5nZXRfb3V0cHV0Y2xhc3MoKSApKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfbW9kX3ZhbGlkYXRpb29uZW9ubHknKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRlZGl0b3ItPmhhc19pbnRlcmZhY2UoKSApIHsKICAgICAgICAgICAgICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2VkaXRfdmFsaWRhdGlvbicsJHJldHVybmlkLCBbICdmb3JtX2d1aWQnPT4kZm9ybV9ndWlkLCAnZWRpdG9yX25hbWUnPT4kZWRpdG9yX2NsYXNzIF0pOwogICAgICAgICAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR1cmwpOwogICAgICAgICAgICAgICAgcmVkaXJlY3QoJHVybCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyB0aGVyZSdzIG5vIGVkaXRvci4KICAgICAgICAgICAgICAgICRmb3JtLT5zZXRWYWxpZGF0aW9uKCAkZWRpdG9yLT5nZXRfdmFsaWRhdGlvbigpICk7CiAgICAgICAgICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSBpZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnYWRkX2Rpc3Bvc2l0aW9uJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gaW5pdGlhdGUgYWRkaW5nIGEgZGlzcG9zaXRpb24KICAgICAgICAgICAgJGVkaXRvcl9jbGFzcyA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdkaXNwb3NpdGlvbicpOwogICAgICAgICAgICBpZiggISRlZGl0b3JfY2xhc3MgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnRlcm5hbCBlcnJvcjogIE5vIGRpc3Bvc2l0aW9uIHNwZWNpZmllZCcpOwogICAgICAgICAgICAkb2JqID0gJHRoaXMtPmdldF9kaXNwb3NpdGlvbl9lZGl0b3IoICRlZGl0b3JfY2xhc3MgKTsKICAgICAgICAgICAgaWYoICEkb2JqICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW50ZXJuYWwgZXJyb3I6IERpc3Bvc2l0aW9uIG5vdCBmb3VuZCcpOwoKICAgICAgICAgICAgaWYoICRvYmotPmhhc19pbnRlcmZhY2UoKSApIHsKICAgICAgICAgICAgICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2VkaXRfZGlzcG9zaXRpb24nLCRyZXR1cm5pZCwgWyAnZm9ybV9ndWlkJz0+JGZvcm1fZ3VpZCwgJ2VkaXRvcl9uYW1lJz0+JGVkaXRvcl9jbGFzcyBdKTsKICAgICAgICAgICAgICAgICR1cmwgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdXJsKTsKICAgICAgICAgICAgICAgIHJlZGlyZWN0KCR1cmwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJGZvcm0tPnNldERpc3Bvc2l0aW9uKCAkb2JqLT5nZXRfZGlzcG9zaXRpb24oKSApOwogICAgICAgICAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2VkaXRfdmFsaWRhdGlvbicpICYmICgkdmFsaWRhdG9yX2d1aWQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZWRpdF92YWxpZGF0aW9uJykpID49IDAgKSB7CiAgICAgICAgJHZhbGlkYXRvciA9ICRmb3JtLT5nZXRWYWxpZGF0aW9uKCR2YWxpZGF0b3JfZ3VpZCk7CiAgICAgICAgaWYoICEkdmFsaWRhdG9yICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB2YWxpZGF0aW9uIGd1aWQgJy4kdmFsaWRhdG9yX2d1aWQpOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggJHZhbGlkYXRvciApOwogICAgICAgIGlmKCAkZWRpdG9yLT5oYXNfaW50ZXJmYWNlKCkgKSB7CiAgICAgICAgICAgICR2YWxpZGF0b3JfZ3VpZCA9IHV0aWxzOjpzdG9yZV9vYmplY3QoICR2YWxpZGF0b3IsICR2YWxpZGF0b3ItPmdldF9ndWlkKCkgKTsKICAgICAgICAgICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRtaW5fZWRpdF92YWxpZGF0aW9uJywkcmV0dXJuaWQsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdndWlkJz0+JHZhbGlkYXRvcl9ndWlkIF0gKTsKICAgICAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR1cmwpOwogICAgICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdlZGl0X2Rpc3Bvc2l0aW9uJykgJiYgKCRkaXNwX2d1aWQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZWRpdF9kaXNwb3NpdGlvbicpKSA+PSAwICkgewogICAgICAgIC8vIGluaXRpYXRlIGVkaXRpbmcgb2YgYSBkaXNwb3NpdGlvbgogICAgICAgICRkaXNwID0gJGZvcm0tPmdldERpc3Bvc2l0aW9uKCRkaXNwX2d1aWQpOwogICAgICAgIGlmKCAhJGRpc3AgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGRpc3Bvc2l0aW9uIGd1aWQgJy4kZGlzcF9ndWlkKTsKICAgICAgICAkZWRpdG9yID0gJHRoaXMtPmZpbmRfZWRpdG9yX2J5X2Rpc3Bvc2l0aW9uKCAkZGlzcCApOwogICAgICAgICRkaXNwX2d1aWQgPSB1dGlsczo6c3RvcmVfb2JqZWN0KCAkZGlzcCwgJGRpc3AtPmdldF9ndWlkKCkgKTsKICAgICAgICAkdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdhZG1pbl9lZGl0X2Rpc3Bvc2l0aW9uJywkcmV0dXJuaWQsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdkaXNwX2d1aWQnPT4kZGlzcF9ndWlkIF0pOwogICAgICAgICR1cmwgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdXJsKTsKICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgIH0KICAgIGVsc2UgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2RlbF92YWxpZGF0aW9uJykgJiYgKCR2X2d1aWQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZGVsX3ZhbGlkYXRpb24nKSkgPj0gMCApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYigndmFsaWRhdGlvbicpOwogICAgICAgICAgICAkZGlzcCA9ICRmb3JtLT5nZXRWYWxpZGF0aW9uKCAkdl9ndWlkICk7CiAgICAgICAgICAgIGlmKCAhJGRpc3AgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gZ3VpZCAnLiR2X2d1aWQpOwogICAgICAgICAgICAkZm9ybS0+cmVtb3ZlVmFsaWRhdGlvbiggJHZfZ3VpZCApOwogICAgICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2RlbF9kaXNwb3NpdGlvbicpICYmICgkZGlzcF9ndWlkID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RlbF9kaXNwb3NpdGlvbicpKSA+PSAwICkgewogICAgICAgICRkaXNwID0gJGZvcm0tPmdldERpc3Bvc2l0aW9uKCAkZGlzcF9ndWlkICk7CiAgICAgICAgaWYoICEkZGlzcCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGlzcG9zaXRpb24gZ3VpZCAnLiRkaXNwX2d1aWQpOwogICAgICAgICRmb3JtLT5yZW1vdmVEaXNwb3NpdGlvbiggJGRpc3BfZ3VpZCApOwogICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignaGFuZGxlcnMnKTsKICAgIH0KICAgIGVsc2UgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpIHx8IFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2FwcGx5JykpIHsKICAgICAgICAvLyBmaWxsIHRoZSBmb3JtCiAgICAgICAgJGZvcm0gPSAkZm9ybS0+YWRqdXN0V2l0aCggJHBhcmFtcyApOwogICAgICAgICRmb3JtID0gJGZvcm0tPmFkanVzdFdpdGgoIFsgJ3NtdGZtX3ZlcnNpb24nPT4kdGhpcy0+R2V0VmVyc2lvbigpIF0gKTsKCiAgICAgICAgJHJlcyA9ICR0aGlzLT5zY2FuX2Zvcm0oICRmb3JtICk7CiAgICAgICAgJGZvcm0tPmFkanVzdFdpdGgoIFsnZmllbGRzJz0+JHJlcy0+Z2V0X2ZpZWxkcygpLCAnaGFzX2NhcHRjaGEnPT4kcmVzLT5oYXNfY2FwdGNoYSgpIF0gKTsKCiAgICAgICAgLy8gY2FuIHNhdmUgaW4gYW4gaW5jb21wbGV0ZSBzdGF0ZS4KICAgICAgICAkdGhpcy0+Zm9ybXN0b3JhZ2UtPlNhdmUoICRmb3JtICk7CgogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19mb3Jtc2F2ZWQnKSk7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19mb3Jtc2F2ZWQnKSk7CiAgICAgICAgfQogICAgfQoKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZm9ybS50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybScsJGZvcm0pOwogICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgJHRwbC0+YXNzaWduKCdmaWVsZF9saXN0JywkbWFrZV9maWVsZF9saXN0KCRmb3JtLT5maWVsZHMpKTsKICAgICR0cGwtPmFzc2lnbignZmllbGRzJywkZm9ybS0+ZmllbGRzKTsKICAgICR0cGwtPmFzc2lnbignc2Nhbl9uZWVkZWQnLCRzY2FuX25lZWRlZCk7CiAgICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2VzJywkZm9ybS0+ZmllbGRfbWVzc2FnZXMpOwogICAgJHRwbC0+YXNzaWduKCdhbGxfdGVtcGxhdGVzJyx1dGlsczo6bGlzdF9zdWl0YWJsZV90ZW1wbGF0ZXMoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2FsbF92YWxpZGF0aW9ucycsdXRpbHM6Omxpc3RfdmFsaWRhdGlvbl9lZGl0b3JzKCAkdGhpcy0+Z2V0X3ZhbGlkYXRpb25fZWRpdG9ycygpICkgKTsKICAgICR0cGwtPmFzc2lnbignYWxsX2Rpc3Bvc2l0aW9ucycsdXRpbHM6Omxpc3RfZGlzcG9zaXRpb25fZWRpdG9ycyggJHRoaXMtPmdldF9kaXNwb3NpdGlvbl9lZGl0b3JzKCkgKSApOwogICAgJHRwbC0+YXNzaWduKCdmb3JtX2hlbHAnLHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgZGllKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_validation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtX2d1aWQgICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmb3JtX2d1aWQnKTsKICAgICRndWlkICAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZ3VpZCcpOwogICAgJGVkaXRvcl9uYW1lID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2VkaXRvcl9uYW1lJyk7CiAgICAkZWRpdG9yID0gJHZhbGlkYXRpb24gPSBudWxsOwoKICAgICRoZWxwZXIgPSBuZXcgVmFsaWRhdGlvbkVkaXRvckhlbHBlclByb3h5KCAkdGhpcyApOwogICAgJGZvcm0gPSAkdGhpcy0+Z2V0X2Zvcm0oICRmb3JtX2d1aWQgKTsKICAgIGlmKCAkZ3VpZCApIHsKICAgICAgICAkdmFsaWRhdGlvbiA9ICRmb3JtLT5nZXRWYWxpZGF0aW9uKCAkZ3VpZCApOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggJHZhbGlkYXRpb24gKTsKICAgICAgICAkZWRpdG9yLT5zZXRfdmFsaWRhdGlvbiggJHZhbGlkYXRpb24gKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+Z2V0X3ZhbGlkYXRpb25fZWRpdG9yKCAkZWRpdG9yX25hbWUgKTsKICAgIH0KICAgICRlZGl0b3ItPnNldF9oZWxwZXJfcHJveHkoICRoZWxwZXIgKTsKICAgICRlZGl0b3ItPmhhbmRsZV9lZGl0X2Zvcm0oJHBhcmFtcywgJGZvcm0sICRmb3JtX2d1aWQsICRndWlkKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGRlYnVnX2Rpc3BsYXkoJGUpOwogICAgZGllKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_enable_disposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignaGFuZGxlcnMnKTsKCnRyeSB7CiAgICAkc3RhdGUgICAgICAgPSBceHRfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ3N0YXRlJywxKTsKICAgICRmb3JtX2d1aWQgICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmb3JtX2d1aWQnKTsKICAgICRkaXNwX2d1aWQgICA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdkaXNwX2d1aWQnKTsKCiAgICAkZm9ybSA9ICR0aGlzLT5nZXRfZm9ybSggJGZvcm1fZ3VpZCApOwogICAgJGRpc3AgPSAkZm9ybS0+Z2V0RGlzcG9zaXRpb24oICRkaXNwX2d1aWQgKTsKICAgICRkaXNwLT5zZXRfYWN0aXZlKCAkc3RhdGUgKTsKICAgICRmb3JtLT5zZXREaXNwb3NpdGlvbiggJGRpc3AgKTsKICAgICRmb3JtX2d1aWQgPSBcU21hcnRGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGZvcm1fZ3VpZCApOwogICAgJGRpc3BfZ3VpZCA9IFxTbWFydEZvcm1zXHV0aWxzOjpzdG9yZV9vYmplY3QoICRkaXNwLCAkZGlzcF9ndWlkICk7CiAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJ20xXycsJ2FkbWluX2VkaXRfZm9ybScsICcnLCBbICdmb3JtX2d1aWQnPT4kZm9ybV9ndWlkLCAnZGlzcF9ndWlkJz0+JGRpc3BfZ3VpZCwgJ3h0X2FjdGl2ZXRhYic9PidoYW5kbGVycycgXSApOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgZGVidWdfZGlzcGxheSgkZSk7CiAgICBkaWUoKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/action.admin_export_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtID0gbnVsbDsKICAgIGlmKCAoJGZvcm1faWQgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZm9ybScpKSApIHsKICAgICAgICAkZm9ybSA9ICR0aGlzLT5mb3Jtc3RvcmFnZS0+bG9hZF9ieV9pZCggJGZvcm1faWQgKTsKICAgIH0KCiAgICBpZiggISRmb3JtICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGRlbGV0ZSBmb3JtIChpbnZhbGlkIGZvcm0gaWQpJyk7CgogICAgJGV4cG9ydGVyID0gbmV3IEZvcm1FeHBvcnRlciggJGZvcm0gKTsKICAgICRleHBvcnRlci0+ZG93bmxvYWQoKTsKCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2Zvcm1leHBvcnRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICB0cnkgewoKICAgICAgICAgICAgaWYoICFpc3NldCgkX0ZJTEVTWydzbXRmbV9maWxlJ10pICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfbm91cGxvYWQnKSk7CiAgICAgICAgICAgIGlmKCAkX0ZJTEVTWydzbXRmbV9maWxlJ11bJ3NpemUnXSA9PSAwIHx8ICRfRklMRVNbJ3NtdGZtX2ZpbGUnXVsnZXJyb3InXSA+IDAgKSB7CgogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfYmFkdXBsb2FkJykpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZGF0YSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkX0ZJTEVTWydzbXRmbV9maWxlJ11bJ3RtcF9uYW1lJ10gKTsKICAgICAgICAgICAgLy9wcmludF9yKCRkYXRhKTtkaWUoKTsKICAgICAgICAgICAgJGltcG9ydGVyID0gbmV3IEZvcm1JbXBvcnRlciggJHRoaXMsICR0aGlzLT5mb3Jtc3RvcmFnZSwgJGRhdGEgKTsKICAgICAgICAgIC8vICBwcmludF9yKCRpbXBvcnRlcik7ZGllKCk7CiAgICAgICAgICAgICRmb3JtID0gJGltcG9ydGVyLT5pbXBvcnQoKTsKICAgICAgICAgICAgLy9wcmludF9yKCRmb3JtKTtkaWUoKTsKICAgICAgICAgICAgJHRoaXMtPmZvcm1zdG9yYWdlLT5zYXZlKCAgJGZvcm0gKTsKCiAgICAgICAgICAgIC8vIGFuZCBkb25lLgogICAgICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2ltcG9ydGVkJykpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcUnVudGltZUV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycyggJGUtPkdldE1lc3NhZ2UoKSApOwoKICAgICAgICB9CiAgICB9CgogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5faW1wb3J0X2Zvcm0udHBsJyk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_upload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0Rm9ybXMgKGMpIDIwMTctNiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIGhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAvLyBjbGVhciBvdXRwdXQgYnVmZmVycy4KICAgICRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsKICAgIGZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CgogICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICRndWlkID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRfUkVRVUVTVCwnZ3VpZCcpOwogICAgJGVsZW1lbnQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJF9SRVFVRVNULCdlbGVtZW50Jyk7CiAgICBpZiggISRndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTWlzc2luZyBndWlkIHBhcmFtJyw0MDApOwogICAgaWYoICEkZWxlbWVudCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ01pc3NpbmcgZWxlbWVudCBwYXJhbScsNDAwKTsKCiAgICBpZiggIWlzc2V0KCRfRklMRVMpIHx8ICFpc3NldCgkX0ZJTEVTWydmaWxlJ10pICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdOb3RoaW5nIHVwbG9hZGVkJyw0MDApOwogICAgJGZpbGUgPSAkX0ZJTEVTWydmaWxlJ107CiAgICBpZiggJGZpbGVbJ3NpemUnXSA9PSAwIHx8ICRmaWxlWydlcnJvciddID4gMCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignUHJvYmxlbSB1cGxvYWRpbmcgZmlsZSAnLDQwMCk7CiAgICBpZiggIWlzX3VwbG9hZGVkX2ZpbGUoJGZpbGVbJ3RtcF9uYW1lJ10pICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJbnZhbGlkIHVwbG9hZCBmaWxlICcsNDAwKTsKCiAgICAkdG1wX2xvY2F0aW9uID0gVE1QX0NBQ0hFX0xPQ0FUSU9OLicvJy4kZ3VpZDsKICAgIEBta2RpcigkdG1wX2xvY2F0aW9uKTsKICAgICR0bXBfZmlsZW5hbWUgPSBtZDUodGltZSgpLiRndWlkLiRlbGVtZW50LiRmaWxlWyd0bXBfbmFtZSddKTsKICAgIEBtb3ZlX3VwbG9hZGVkX2ZpbGUoICRmaWxlWyd0bXBfbmFtZSddLCAkdG1wX2xvY2F0aW9uLicvJy4kdG1wX2ZpbGVuYW1lICk7CgogICAgXHh0X3V0aWxzOjpzZW5kX2FqYXhfYW5kX2V4aXQoIFsgJ3RtcF9uYW1lJz0+JHRtcF9maWxlbmFtZSwgJ2VsZW1lbnQnPT4kZWxlbWVudCwgJ2d1aWQnPT4kZ3VpZCwgJ25hbWUnPT4kZmlsZVsnbmFtZSddLCAnc2l6ZSc9PiRmaWxlWydzaXplJ10gXSApOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJGNvZGUgPSAkZS0+Z2V0Q29kZSgpOwogICAgaGVhZGVyKCdIVFRQLzEuMCAnLiRjb2RlLicgJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIGhlYWRlcignU3RhdHVzICcuJGNvZGUuJyAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgZXhpdDsKfQoKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSB4dF9wYXJhbTsKdXNlIENtc0xheW91dFRlbXBsYXRlOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7Cgp0cnkgewogICAgJGlzX3N1Ym1pc3Npb24gPSBmdW5jdGlvbigpIHVzZSggJGlkICkgewogICAgICAgIC8vIGEgc3VibWlzc2lvbiBmb3IgVEhJUyBGT1JNIGlzIGluZGljYXRlZCBieSBhIHJlcXVlc3QgcG9zdAogICAgICAgIGlmKCBzdHJ0b2xvd2VyKCAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSkgIT0gJ3Bvc3QnICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAheHRfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NUICwnX19ndWlkJykgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICEgKCRzdWJtaXR0ZWRfZm9ybSA9IHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCAsICRpZC4nZm9ybScpKSApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gJHN1Ym1pdHRlZF9mb3JtOwogICAgfTsKCiAgICAkZm9ybW5hbWUgPSB4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmb3JtJyk7CiAgICBpZiggISRmb3JtbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1BsZWFzZSBzcGVjaWZ5IGEgZm9ybSBuYW1lIHdoZW4gY2FsbGluZyBTbWFydEZvcm1zJyk7CgogICAgJGZvcm0gPSAkdGhpcy0+Zm9ybXN0b3JhZ2UtPmxvYWQoICRmb3JtbmFtZSApOwogICAgaWYoICEkZm9ybSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1NvcnJ5LCBjb3VsZCBub3QgZmluZCBhIGZvcm0gd2l0aCB0aGUgbmFtZSAnLiRmb3JtbmFtZSk7CgogICAgLy8gbWFrZSBzdXJlIGl0J3MgdmVyc2lvbiBjb21wYXRpYmxlLgogICAgaWYoICEgeHRfcGFyYW06OmdldF9ib29sKCAkY29uZmlnLCAnc210Zm1fc2tpcF92ZXJzaW9uY2hlY2snKSApIHsKICAgICAgICBpZiggdmVyc2lvbl9jb21wYXJlKCRmb3JtLT5zbXRmbV92ZXJzaW9uLCR0aGlzLT5HZXRWZXJzaW9uKCkpICE9IDAgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfZm9ybV92ZXJzaW9uY2hhbmdlJykpOwogICAgfQoKICAgIC8vIGlmIHRlbXBsYXRlIG1vZGlmaWVkIHNpbmNlIGZvcm0gc2F2ZWQKICAgIGlmKCAheHRfcGFyYW06OmdldF9ib29sKCAkY29uZmlnLCAnc210Zm1fc2tpcF9kYXRlY2hlY2snKSApIHsKICAgICAgICAkdGVtcGxhdGVfb2JqID0gQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWQoICRmb3JtLT50ZW1wbGF0ZV9pZCApOwogICAgICAgIGlmKCAheHRfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ25vZGF0ZWNoZWNrJykgKSB7CiAgICAgICAgICAgICRtb2RfdGltZSA9ICR0ZW1wbGF0ZV9vYmotPmdldF9tb2RpZmllZCgpOwogICAgICAgICAgICBpZiggJGZvcm0tPm1vZGlmaWVkIDwgJG1vZF90aW1lICYmICRmb3JtLT50cGxfbW9kaWZpZWQgPCAkbW9kX3RpbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfZm9ybV9zY2FubmVlZGVkJykpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBjcmVhdGUgYSBwcmUtZmlsbGVkIHJlc3BvbnNlIHdpdGggc29tZSBwYXJlbXRlcnMgZnJvbSB0aGUgY2FsbAogICAgJGlucHV0X2RhdGEgPSBbXTsKICAgICRwcmVmaXggPSAnc210Zm1fJzsKICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgaWYoICFzdGFydHN3aXRoKCRrZXksJHByZWZpeCkgKSBjb250aW51ZTsKICAgICAgICAka2V5ID0gc3Vic3RyKCRrZXksc3RybGVuKCRwcmVmaXgpKTsKICAgICAgICAkaW5wdXRfZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgIH0KICAgIGlmKCAkaXNfc3VibWlzc2lvbigpICE9ICRmb3JtbmFtZSApIHsKICAgICAgICAvLyB0aGlzIGlzIG5vdCBhIHN1Ym1pc3Npb24KICAgICAgICAvLyB3ZSBjYW4gbW9kaWZ5IHRoZSBpbnB1dCBkYXRhIHdpdGggdmFyaWFibGVzIGFzc2lnbmVkIGluIHRoZSB0ZW1wbGF0ZQogICAgICAgIC8vIGkuZToge3NtdGZtX3NldCB3aWRnZXRfc2l6ZT0ncmVkJ30KICAgICAgICBpZiggJGZvcm0tPnByZXJlbmRlcl9sb2dpYyApIHsKICAgICAgICAgICAgJHRoaXMtPl9pbl9wcmVyZW5kZXIgPSB0cnVlOwogICAgICAgICAgICAkZm9ybV9maWVsZHMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCdzdHJpbmc6Jy4kZm9ybS0+cHJlcmVuZGVyX2xvZ2ljKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdtb2QnLCR0aGlzKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtJywkZm9ybSk7CiAgICAgICAgICAgICR0cGwtPmZldGNoKCk7IC8vIGRvIHRoZSB3b3JrLCBidXQgaWdub3JlIG91dHB1dC4KICAgICAgICAgICAgZm9yZWFjaCggJGZvcm1fZmllbGRzIGFzICRmaWVsZF9uYW1lICkgewogICAgICAgICAgICAgICAgaWYoICEgaXNzZXQoJHRoaXMtPl9wcmVyZW5kZXJfdmFyc1skZmllbGRfbmFtZV0pICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkaW5wdXRfZGF0YVskZmllbGRfbmFtZV0gPSAkdGhpcy0+X3ByZXJlbmRlcl92YXJzWyRmaWVsZF9uYW1lXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+X2luX3ByZXJlbmRlciA9IG51bGw7CiAgICAgICAgICAgICR0aGlzLT5fcHJlcmVuZGVyX3ZhcnMgPSBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICAkcmVzcG9uc2UgPSBudWxsOwogICAgaWYoICRpc19zdWJtaXNzaW9uKCkgIT0gJGZvcm1uYW1lICkgewogICAgICAgICRyZXNwb25zZSA9IG5ldyBGb3JtUmVzcG9uc2UoICR0aGlzLCAkZm9ybSwgbnVsbCwgJGlucHV0X2RhdGEgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIC8vIG5vdyBoYW5kbGUgUE9TVC4KICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBtZXJnZSBpbnB1dCBkYXRhIHdpdGggZGF0YSBvbiB0aGUgcG9zdC4KICAgICAgICAgICAgJGd1aWQgPSB4dF9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QgLCdfX2d1aWQnKTsKICAgICAgICAgICAgJHRoaXMtPl9yZXF1ZXN0X2Vycm9ycyA9IFtdOwoKICAgICAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGd1aWQgaXMgaW4gdGhlIHNlc3Npb24KICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBzdWJtaXR0aW5nIHRoZSBmb3JtIHZpYSBhIHBvc3Qgb3IgcmVsb2FkIHdpdGhvdXQgcmVuZGVyaW5nIHRoZSBmb3JtIGVhY2ggdGltZS4KICAgICAgICAgICAgaWYoICFnZXRfdXNlcmlkKEZBTFNFKSApIHsKICAgICAgICAgICAgICAgIGlmKCAhJGd1aWQgfHwgIWlzc2V0KCRfU0VTU0lPTlsnU01URk1fR1VJRF9UT0tFTiddKSB8fCAhaXNzZXQoJF9TRVNTSU9OWydTTVRGTV9HVUlEX1RPS0VOJ11bJGd1aWRdKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfc2VjdXJpdHlfcmVxdWVzdGd1aWQnKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIGhlcmUgd2UgY291bGQgY2hlY2sgaWYgdG9vIG11Y2ggdGltZSBoYXMgcGFzc2VkLCBvciBzb21lIG90aGVyIGNyaXRlcmlhLgogICAgICAgICAgICAgICAgICAgICRyZWMgPSAkX1NFU1NJT05bJ1NNVEZNX0dVSURfVE9LRU4nXVskZ3VpZF07CiAgICAgICAgICAgICAgICAgICAgaWYoICFpc3NldCgkcmVjWydmb3JtJ10pIHx8IGVtcHR5KCRyZWNbJ2Zvcm0nXSkgfHwgJGZvcm0tPm5hbWUgIT0gJHJlY1snZm9ybSddICkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfc2VjdXJpdHlfcmVxdWVzdGd1aWQnKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnU01URk1fR1VJRF9UT0tFTiddWyRndWlkXSk7CgogICAgICAgICAgICAvLyBjcmVhdGUgYSBmb3JtcmVzcG9uc2Ugb2JqZWN0CiAgICAgICAgICAgIC8vIG1lcmdlIGluIGRhdGEgZnJvbSBwYXJhbWV0ZXJzIGFzIGRlZmF1bHQgdmFsdWVzIHRvIHRoZSByZXNwb25zZS4KICAgICAgICAgICAgJHJlc3BvbnNlID0gbmV3IEZvcm1SZXNwb25zZSggJHRoaXMsICRmb3JtLCAkZ3VpZCwgJF9QT1NUICk7CgogICAgICAgICAgICBpZiggJHJlc3BvbnNlLT5fX2hwbmFtZSApIHsKICAgICAgICAgICAgICAgIC8vIG9vcHMuLi4gaG9uZXlwdCBpc24ndCBlbXB0eS4KICAgICAgICAgICAgICAgIHRocm93IG5ldyBCb3REZXRlY3RlZEVycm9yKCAkdGhpcy0+TGFuZygnZXJyb3JfYm90ZGV0ZWN0ZWQnKSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLwogICAgICAgICAgICAvLyBoYW5kbGUgdmFsaWRhdGlvbnMuCiAgICAgICAgICAgIC8vIHRvZG86IHZhbGlkYXRpb24gc2hvdWxkIHByb2JhYmx5IGJlIGluIGEgdmFsaWRhdG9yIGNsYXNzCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgICR0aGlzLT5fcmVxdWVzdF9lcnJvcnMgPSAkZm9ybS0+dmFsaWRhdGVfcmVzcG9uc2UoICRyZXNwb25zZSwgJHRoaXMtPnRyYW5zbGF0b3IgKTsKICAgICAgICAgICAgaWYoICFlbXB0eSgkdGhpcy0+X3JlcXVlc3RfZXJyb3JzKSApIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoICd2YWxpZGF0aW9uIGVycm9ycycgKTsKCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIGFuZCBkbyBkaXNwb3NpdGlvbnMKICAgICAgICAgICAgLy8gdG9kbzogZGlzcG9zaXRpb25zIHByb2JhYmx5IHNob3VsZCBiZSBpbiB0aGVpciBvd24gY2xhc3MKICAgICAgICAgICAgLy8KICAgICAgICAgICAgJGZvcm0tPmRpc3Bvc2VfcmVzcG9uc2Vfbm92YWxpZGF0ZSggJHJlc3BvbnNlICk7CgogICAgICAgICAgICAvLyBjbGVhbiB1cCBhbnkgc3VibWlzc2lvbiBsZWZ0b3ZlcnMuCiAgICAgICAgICAgICRmb3JtLT5jbGVhbnVwX3Jlc3BvbnNlKCAkcmVzcG9uc2UgKTsKICAgICAgICAgICAgZWNobyAkZm9ybS0+ZG9fZmluYWxfYWN0aW9uKCAkcmVzcG9uc2UgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjYXRjaCggVmFsaWRhdGlvbkVycm9yICRlICkgewogICAgICAgICAgICAvLyBUT0RPOiBTaG91bGQgYmUgVmFsaWRhdGlvbkVycm9yCiAgICAgICAgICAgIC8vIHNvbWUga2luZCBvZiB2YWxpZGF0aW9uIGVycm9yLgogICAgICAgICAgICAvLyByZW5kZXIgdGhlIGZvcm0gYWdhaW4uLi4gc21hcnR5IHdpbGwgcHVsbCB0aGUgcmVxdWVzdCBlcnJvcnMuCiAgICAgICAgICAgIC8vIGNsZWFuIHVwIGFueSBzdWJtaXNzaW9uIGxlZnRvdmVycy4KICAgICAgICAgICAgJGZvcm0tPmNsZWFudXBfcmVzcG9uc2UoICRyZXNwb25zZSApOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRGlzcG9zaXRpb25FcnJvciAkZSApIHsKICAgICAgICAgICAgLy8gY2xlYW51cCwgc2V0IGFuIGVycm9yIHRvIGRpc3BsYXksIGFuZCByZW5kZXIgdGhlIGZvcm0gYWdhaW4uCiAgICAgICAgICAgICR0aGlzLT5fcmVxdWVzdF9lcnJvcnMgPSBbIG5ldyBGaWVsZEVycm9yKCAnX18nLCAkZS0+R2V0TWVzc2FnZSgpICkgXTsKICAgICAgICAgICAgJGZvcm0tPmNsZWFudXBfcmVzcG9uc2UoICRyZXNwb25zZSApOwogICAgICAgIH0KCiAgICB9CgogICAgLy8gbm93IHJlbmRlciB0aGUgZm9ybQogICAgJGNhcHRjaGFfcHJvdmlkZXIgPSBudWxsOwogICAgaWYoICRmb3JtLT5oYXNfY2FwdGNoYSApICRjYXB0Y2hhX3Byb3ZpZGVyID0gJHRoaXMtPmdldF9jYXB0Y2hhX3Byb3ZpZGVyKCk7CiAgICAkcGFybXNbJ2RhdGVjaGVjayddID0gISB4dF9wYXJhbTo6Z2V0X2Jvb2woJGNvbmZpZywnc210Zm1fc2tpcF9kYXRlY2hlY2snICk7CiAgICAkcGFybXNbJ2RhdGVjaGVjayddID0gJHBhcm1zWydkYXRlY2hlY2snXSB8fCB4dF9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnbm9kYXRlY2hlY2snKTsKICAgICRyZW5kZXJlciA9IG5ldyBGb3JtUmVuZGVyZXIoICR0aGlzLCAkZm9ybSwgJGNhcHRjaGFfcHJvdmlkZXIsICRzbWFydHksICRpZCwgJHJldHVybmlkLCAkcmVzcG9uc2UsICRwYXJtcyApOwogICAgZWNobyAkcmVuZGVyZXItPmdldEhUTUwoKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIFx4dF91dGlsczo6bG9nX2V4Y2VwdGlvbiggJGUgKTsKICAgIGVjaG8gJHRoaXMtPkRpc3BsYXlFcnJvck1lc3NhZ2UoJGUtPkdldE1lc3NhZ2UoKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnZGVmYXVsdGFkbWluLnRwbCcpOwokdHBsLT5hc3NpZ24oJ2Zvcm1zJywkdGhpcy0+Zm9ybXN0b3JhZ2UtPmxpc3RfYWxsKCkpOwokdHBsLT5kaXNwbGF5KCk7]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgoJPGxpPnYxLjAgLSBJbml0aWFsIHN0YWJsZSByZWxlYXNlLjwvbGk+Cgk8bGk+djEuMSAtIFNlcHRlbWJlciAyMDE3CgkJPHA+LSBNaW5vciBidWcgZml4LjwvcD4KCQk8cD4tIEFkZHMgYmFzaWMgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25hbGl0eS48L3A+Cgk8L2xpPgoKCTxsaT52MS4xLjIgLSBTZXB0ZW1iZXIgMjAxNwoJCTxwPi0gSW1wcm92ZXMgdGhlIGVkaXQtZm9ybSBpbnRlcmZhY2UgaW4gdGhlIGV2ZW50IG9mIHNldmVyZSBlcnJvcnMgd2hlbiBwYXJzaW5nIHRoZSBmb3JtIEhUTUwuPC9wPgoJICAgICAgICA8cD4tIEltcHJvdmVzIG1lc3NhZ2VzIGFib3V0IHVua25vd24gSFRNTDUgZWxlbWVudHMuICBXaWxsIGxvb2sgYXQgdXNpbmcgYSBkaWZmZXJlbnQgbGlicmFyeSBpbiBsYXRlciB2ZXJzaW9ucy48L3A+CgkJPHA+LSBNaW5vciBidWcgZml4IHJlbGF0ZWQgdG8gc3RhdGljIHVzZSBvZiBub24tc3RhdGljIG1ldGhvZC48L3A+Cgk8L2xpPgoJPGxpPnYxLjIgLSBOb3ZlbWJlciAyMDE3CgkJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBGb3IgYWxsIGZvcm1zIHVzaW5nIGNhcHRjaGEsIHlvdSBtYXkgbmVlZCB0byByZW1vdmUgYW5kIHJlLWFkZCBhbnkgJnF1b3Q7VmFsaWRhdGUgQ2FwdGNoYSZxdW90OyB2YWxpZGF0aW9uIGluIHRoZSB2YWxpZGF0aW9uIHRhYiB0byBlbnN1cmUgdGhhdCBjYXB0Y2hhIGlzIHZhbGlkYXRlZCBvbiB0aGUgc2VydmVyIHNpZGUuPC9wPgoJCTx1bD4KCQk8bGk+Rml4ZXMgdG8gY2FwdGNoYSB2YWxpZGF0aW9uICh3YXNuJ3QgaGFwcGVuaW5nIHNlcnZlciBzaWRlKTwvbGk+CgkJPGxpPkNhbiBub3cgYXV0by1hZGQgdmFsaWF0aW9ucyBldmVuIGlmIHRoZXJlIGFyZSBleGlzdGluZyB2YWxpZGF0aW9ucy48L2xpPgoJCTxsaT5NaW5vciBmaXggdG8gdGVtcGxhdGUgaGVscCBzdHVmZi48L2xpPgoJCTxsaT5BZGRzIGEgbmV3IE1vZHVsZVJlZmVyZW5jZSBjbGFzcyBhbmQgdXNlIGl0IGluIGF0IGxlYXN0IG9uZSBwbGFjZSB0byBhbGxvdyBzdG9yaW5nIGEgc2ltcGxlIHJlZmVyZW5jZSB0byBhIG1vZHVsZSB0byB1c2UgaW52aXNpYmx5LjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+djEuMi4xIC0gRGVjZW1iZXIgMjAxNwoJCTx1bD4KCQk8bGk+Rm9ybVJlc3BvbnNlIG5vdyBjb250YWlucyBhIHRyYW5zbGF0b3IgbWVtYmVyIGFuZCBhIGdldF90cmFuc2xhdG9yKCkgbWV0aG9kLiAgTWF5IHJlbW92ZSB0aGVzZSBsYXRlci48L2xpPgoJCTxsaT5JbXByb3ZlbWVudHMgdG8gdmFsaWRhdGlvbiBlcnJvcnMuPC9saT4KCQk8bGk+Tm93IGhhbmRsZSBkaXNwb3NpdGlvbiBlcnJvcnMgc2ltaWxhciB0byB2YWxpZGF0aW9uIGVycm9ycy48L2xpPgoJCTxsaT5TbWFydHkgdGVtcGxhdGVzIGNhbiBub3cgYWNjZXNzIHJhdyByZXNwb25zZSBkYXRhLjwvbGk+CgkJPGxpPm1vcmUuLi48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPnYxLjMgLSBEZWNlbWJlciAyMDE3CgkJPHVsPgoJICAgICAgICA8bGk+UmVtb3ZlIHRoZSByZXNldCBidXR0b24gZnJvbSB0aGUgZmluYWwgbWVzc2FnZSB0ZW1wbGF0ZS48L2xpPgoJCTxsaT5GaXggaXNzdWUgd2l0aCB0aGUgaG9uZXlwb3QgZmllbGQgbm90IGJlaW5nIHByb3ZpZGVkIHRvIHRoZSByZXNwb25zZSBvYmplY3QgcHJvcGVybHkuPC9saT4KCSAgICAgICAgPGxpPkZpeCBpc3N1ZSB3aXRoIHN1Ym1pc3Npb25zIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZS48L2xpPgoJICAgICAgICA8bGk+Rml4IGxhYmVscyBpbiB0aGUgU21hcnR5IFRlbXBsYXRlIHZhbGlkYXRpb24uPC9saT4KCSAgICAgICAgPGxpPkZpeCBpc3N1ZSB3aXRoIHZhbGlkYXRpb25zIHRocm93aW5nIHRoZSB3cm9uZyBleGNlcHRpb24uPC9saT4KCSAgICAgICAgPGxpPkZpeCB0aGUgc2VsZWN0IGluIHRoZSBEcm9wZG93bi1FbWFpbCB2YWxpZGF0aW9uICh5b3UgbWF5IG5lZWQgdG8gcmVtb3ZlIGFuZCByZS1hZGQgdGhpcyB2YWxpZGF0aW9uIG9uIHlvdXIgZm9ybXMpLjwvbGk+CgkJPGxpPmZpeCBwcm9ibGVtIHRoYXQgcmVzdWx0ZWQgaW4gYW4gZW1wdHkgdGVtcGxhdGUgYmVpbmcgaW1wb3J0ZWQuPC9saT4KCSAgICAgICAgPGxpPlVuaXF1ZSBmaWxlbmFtZSBkaXNwb3NpdGlvbiBub3cgaGFzIGEgZmlsZW5hbWUgdGVtcGxhdGUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT52MS40LngKCQk8dWw+CgkgICAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRpc3Bvc2UgdmlhIGVtYWlsIHRvIGFsbCBtZW1iZXJzIG9mIGFuIGFkbWluIGdyb3VwLjwvbGk+CgkgICAgICAgIDxsaT5kYXRhLXNtdGZtLWxhYmVsIG5vdyB3b3JrcyBmb3Igc2VsZWN0IGZpZWxkcy48L2xpPgoJICAgICAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIGV4dHJhY3Rpb24gb2YgbGFiZWxzLjwvbGk+CgkJPGxpPk1pbm9yIGZpeCB0byB0aGUgU3RvcERpc3Bvc2luZyBEaXNwb3NpdGlvbi48L2xpPgoJCTxsaT5Ob3cgdXNlIGZpbHRlcl92YXIgb24gYWxsIHJlc3BvbnNlIGZpZWxkcy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPnYxLjUueAoJCTx1bD4KCQk8bGk+Rml4ZXMgZm9yIGVudGl0aWVzIGluIHZhbGlkYXRpb24gYW5kIGhhbmRsZXIgdGVtcGxhdGVzLjwvbGk+CgkJPGxpPk5vdyBlbnN1cmUgdGhhdCBtdWx0aXNlbGVjdCBmaWVsZCBuYW1lcyBlbmQgd2l0aCBbXSB3aGVuIHJlbmRlcmluZy48L2xpPgoJCTxsaT5IZWxwIGltcHJvdmVtZW50cy48L2xpPgoJCTxsaT5GaXggZm9yIGNhc2Ugd2hlbiB0aGUgZm9ybSBpcyBpbmxpbmUgYW5kIGVtcGJlZGRlZCB3aXRoaW4gYSBkZXRhaWwgdmlldyBvciBzb21lIG90aGVyIHZpZXcgb2YgYW5vdGhlciBtb2R1bGUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT52MS42LngKCQk8dWw+CgkgICAgICAgIDxsaT5Ob3cgYWxsb3cgc3BlY2lmeWluZyBhIHNtYXJ0eSByZXNvdXJjZSBhcyBhIHRlbXBsYXRlLjwvbGk+CgkgICAgICAgIDxsaT5ObyBsb25nZXIgY2hlY2sgaWYgZm9ybSBuZWVkcyBzY2FubmluZyBvbiBsb2FkIGlmIHVzaW5nIGZpbGUgYmFzZWQgdGVtcGxhdGUuPC9saT4KCSAgICAgICAgPGxpPk1vZGlmeSB0aGUgZm9ybSByZXNwb25zZSBvYmplY3QgdG8gaGF2ZSBhIGhhc19lcnJvcnMoKSBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZCBpbiB2YWxpZGF0aW9uIHRlbXBsYXRlcy48L2xpPgoJICAgICAgICA8bGk+QWRkIGFiaWxpdHkgdG8gZGlzYWJsZSBhIGRpc3Bvc2l0aW9uLjwvbGk+CgkgICAgICAgIDxsaT5BZGRzIGNvbmZpZyBlbnRyaWVzIGZvciBza2lwcGluZyB2ZXJzaW9uIGFuZCBkYXRlIGNoZWNrcy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPnYxLjcueAoJCTx1bD4KCQk8bGk+QWRkcyBFbWFpbEFkbWluR3JvdXBXaXRoUmVwbHlUbyBkaXNwb3NpdGlvbi48L2xpPgoJCTxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT52MS44LngKCSAgICAgICAgPHVsPgoJCTxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KCSAgICAgICAgPGxpPkFkZHMgdGhlIGRhdGEtc210Zm0tcmVwbHl0byBhdHRyaWJ1dGUgdGhhdCBpcyB1c2VkIHRvIG1hcmsgYSBmaWVsZCBhcyBhbiBlbWFpbCBmaWVsZCB0aGF0IGNvbnRhaW5zIGEgcmVwbHl0byBhZGRyZXNzIGZvciBhZG1pbiBlbWFpbHMuPC9saT4KCSAgICAgICAgPGxpPk1vZGlmaWVzIHRoZSB3ZWIgaG9vayBkaXNwb3NpdGlvbiBzbyB0aGF0IHRoZSAnZXh0cmEgdmFyaWFibGVzJyB0ZXh0IGFyZWEgaXMgdHJlYXRlZCBhcyBhIHNtYXJ0eSB0ZW1wbGF0ZS4KCSAgICAgICAgPC91bD4KCTwvbGk+Cgk8bGk+djEuOS54Cgk8dWw+CiAgCQk8bGk+Tm93IGF1dG8tc2V0IHRoZSB2YWx1ZSBvZiBmaWVsZHMgKGluY2x1ZGluZyBjaGVja2JveGVzLCBhbmQgcmFkaW8gYnV0dG9ucykKCQkJPHA+d2hlbiByZW5kZXJpbmcgYSBmb3JtLCBpZiB0aGVyZSBpcyBubyBzcGVjaWZpYyBjb250ZW50IHNldCBpbiB0aGUgdmFsdWUsIHdlIHNldCB0aGUgdmFsdWUsIGNvbnRlbnQsIGNoZWNrZWQsIG9yIHNlbGVjdGVkIHN0YXRlIGFwcHJvcHJpYXRlbHkgYmFzZWQgb24gdGhlIHZhbHVlIHNldCBpbiB0aGUgZm9ybSByZXNwb25zZS48L3A+CgkgICAgICAgIDwvbGk+CgkJPGxpPkFkZHMgdGhlIGRhdGEtc210Zm0tbm9hdXRvdmFsdWUgYXR0cmlidXRlIHRvIGF2b2lkIHNldHRpbmcgdGhlIHZhbHVlIGF1dG9tYXRpY2FsbHkuICBUaGlzIGF0dHJpYnV0ZSB3b3JrcyBnbG9iYWxseSBmb3IgYSBmb3JtLCBvciBvbiBlYWNoIGluZGl2aWR1YWwgZmllbGQuPC9saT4KCgkJPGxpPk5vdyBlbnN1cmUgdGhhdCBjaGVja2JveCBncm91cHMgaGF2ZSB0aGUgW10gYXBwZW5kZWQgdG8gdGhlaXIgbmFtZSBvbiByZW5kZXJpbmcuPC9saT4KCSAgICAgICAgPGxpPkFkZHMgdGhlIGRhdGEtc210Zm0tbm9uYW1lYWRqdXN0IGF0dHJpYnV0ZSB0byBhdm9pZCBhdHRlbXB0aW5nIHRvIGF1dG8tYXBwZW5kIFtdIHRvIHRoZSBuYW1lIG9mIG11bHRpc2VsZWN0IGZpZWxkcywgb3IgY2hlY2tib3ggZ3JvdXBzLjwvbGk+CgkgICAgICAgIDxsaT5FbWFpbCBkaXNwb3NpdGlvbnMgd2lsbCBub3cgZG8gbm90aGluZyBpZiB0aGUgcmVzdWx0IG9mIHBhc3NpbmcgdGhlIGJvZHkgdGVtcGxhdGUgb3Igc3ViamVjdCB0ZW1wbGF0ZSB0aHJvdWdoIHNtYXJ0eSByZXN1bHQgaW4gZW1wdHkgc3RyaW5ncy48L2xpPgoJCTxsaT5Gb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgb25seSBhbGxvdyB2YWxpZGF0aW9uIGVkaXRvcnMgdG8gYmUgcmVnaXN0ZXJlZCBmcm9tIGFkbWluIHJlcXVlc3RzLjwvbGk+Cgk8L3VsPgoJPC9saT4KCgk8bGk+djEuMTAueAoJPHVsPgogICAgICAgIAk8bGk+U2V2ZXJhbCBtaW5vciBuZXcgZmVhdHVyZXMuPC9saT4KICAgICAgICAgICAgICAgIDxsaT52MS4xMC4zIC0gZml4IHRvIHRoZSBhdXRvIHZhbGlkYXRpb24gc2Nhbm5lci4uLiB5b3UgbWF5IG5lZWQgdG8gcmVtb3ZlIGFuZCByZS1hdXRvLXZhbGlkYXRlIHZhbGlkYXRpb25zIHRoYXQgd2VyZSBhdXRvLWFkZGVkIHRvIGZpeCBhIHByb2JsZW0gd2l0aCBvcmRlcmluZyB2YWxpZGF0aW9ucy48L2xpPgoJPC91bD4KCTwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/FEATURES.TXT</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LSBCdWlsZCB5b3VyIGZvcm0gaW4gSFRNTCBhbmQgamF2YXNjcmlwdCwgc3R5bGUgd2l0aCBDU1MgZWFzaWx5Ci0gWW91IGNvbnRyb2wgaW5wdXQgZmllbGQgbmFtZXMgCi0gV29ya3Mgd2l0aCBzbWFydHkKLSBTZWN1cmUKICAtIFN1cHBvcnRzIGNhcHRjaGEKICAtIEJ1aWx0IGluIGhvbmV5cG90IGNhcHRjaGEKLSBQcm92aWRlcyBzeW50YXggY2hlY2tpbmcgYW5kIGJhc2ljIGVycm9yIGNoZWNraW5nIG9mIHlvdXIgZm9ybXMgSFRNTAotIFN1cHBvcnRzIGZpbGUgdXBsb2FkcwotIEZsZXhpYmxlIGFuZCBleHRlbmRhYmxlIHZhbGlkYXRpb25zCi0gRmxleGlibGUgYW5kIGV4dGVuZGFibGUgZGlzcG9zaXRpb25zCi0gRXh0ZW5kYWJsZQotIEZ1bGwgQVBJCg==]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgaXMgdGhpczwvaDM+CjxwPlRoaXMgaXMgYSBuZXcgZ2VuZXJhdGlvbiBvZiBmb3JtIGhhbmRsaW5nIG1vZHVsZSB0aGF0IHByb3ZpZGVzIHRoZSBhYmlsaXR5IGZvciB3ZWIgcHJvZmVzc2lvbmFscyB0byBidWlsZCBmb3JtcyB0aGUgd2F5IHRoZXkga25vdyBob3csIHVzaW5nIEhUTUwsIENTUyBhbmQgamF2YXNjcmlwdC4uIGFuZCB0aGVuIGVhc2lseSBkZWZpbmUgd2hhdCBzaG91bGQgaGFwcGVuIHdpdGggdGhlIGRhdGEgdXNlcnMgc3VibWl0dGVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgY2FuIGFsbG93IHlvdSB0byBjcmVhdGUgd2VsbCBzdHlsZWQsIGR5bmFtaWMgZm9ybXMsIHVzaW5nIHdoYXRldmVyIHRvb2xraXQgeW91IGxpa2UgKEJvb3RzdHJhcCwgRm91bmRhdGlvbiwgZXRjKS4gIGFuZCBpbnRlZ3JhdGUgamF2YXNjcmlwdC4gIFRoZW4gcXVpY2tseSBkZWZpbmUgaG93IHRoZSBmb3JtIGRhdGEgc2hvdWxkIGJlIHByb2Nlc3NlZC48L3A+Cgo8aDM+RmVhdHVyZXM8L2gzPgo8dWw+CiAgPGxpPllvdSBjcmVhdGUgdGhlIGZvcm0uIGFuZCBjYW4gZ2V0IGl0IGxvb2tpbmcgdGhlIHdheSB5b3Ugd2FudC48L2xpPgogIDxsaT5BbGxvd3MgZm9yIGphdmFzY3JpcHQgdmFsaWRhdGlvbiwgYW5kIEhUTUw1IGZpZWxkIHR5cGVzLjwvbGk+CiAgPGxpPkNhbiB2ZXJpZnkgZGF0YSBmcm9tIEhUTUw1IGF0dHJpYnV0ZXMgb24gdGhlIHNlcnZlciBzaWRlLCAgZXZlbiBpZiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gbmF0aXZlbHkuPC9saT4KICA8bGk+UHJvdmlkZXMgZGF0YSBhdHRyaWJ1dGVzIHRvIGFzc2lzdCBpbiByZW5kZXJpbmcgYW5kIGhhbmRsaW5nIHRoZSBmb3JtLjwvbGk+CiAgPGxpPkludGVncmF0ZXMgd2l0aCBzbWFydHk8L2xpPgogIDxsaT5UYWtlcyBhZHZhbnRhZ2Ugb2YgQ01TTVMgMi4yIGZlYXR1cmVzIGxpa2UgdGVtcGxhdGUgdHlwZXMgYW5kIGhvb2tzPC9saT4KICA8bGk+VGVzdHMgeW91ciBjb2RlIHRvIHRlbGwgeW91IGFib3V0IHBhcnNpbmcgZXJyb3JzIGFuZCBwb3RlbnRpYWwgcmVuZGVyaW5nLCBvciBzdWJtaXNzaW9uIHByb2JsZW1zLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGZpbGUgdXBsb2FkczwvbGk+CiAgPGxpPkFkZHJlc3NlcyBzZWN1cml0eSBpc3N1ZXM6CiAgICA8dWw+CiAgICAgIDxsaT5TdXBwb3J0cyBjYXB0Y2hhPC9saT4KICAgICAgPGxpPkhhcyBidWlsdCBpbiBob25leXBvdCBjYXB0Y2hhIHN1cHBvcnQ8L2xpPgogICAgICA8bGk+RWFjaCByZXF1ZXN0IGlzIGFzc2lnbmVkIGEgdW5pcXVlIEdVSUQsIHdoaWNoIGlzIHZhbGlkYXRlZCBvbiBzdWJtaXNzaW9uLjwvbGk+CiAgICAgIDxsaT5BdXRvbWF0aWNhbGx5IGRpc2FsbG93cyBIVE1MIHRhZ3MgaW4gc3VibWl0dGVkIHJlc3BvbnNlcy48L2xpPgogICAgICA8bGk+Rm9ybSBhdHRyaWJ1dGVzIGFyZSBwYXJzZWQgYW5kIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIGFuZCB2YWxpZGF0ZWQgb24gdGhlIHNlcnZlciB0byBtaXRpZ2F0ZSBNYW4taW4tdGhlLU1pZGRsZSBhdHRhY2tzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkhhcyBtdWx0aXBsZSBzZXJ2ZXItc2lkZSBkYXRhIHZhbGlkYXRpb24gcm91dGluZXM8L2xpPgogIDxsaT5BdXRvbWF0aWNhbGx5IHNldCBmaWVsZCB2YWx1ZXMgYmFzZWQgb24gZW50ZXJlZCByZXNwb25zZSwgd2l0aG91dCByZXF1aXJpbmcgbWFya3VwIG9yIGxvZ2ljLjwvbGk+CiAgPGxpPkNyZWF0ZSB2YWxpZGF0aW9ucyBieSBhdXRvbWF0aWNhbGx5IHBhcnNpbmcgeW91ciBIVE1MIGFuZCB0ZW1wbGF0ZS48L2xpPgogIDxsaT5NdWx0aXBsZSBidWlsdC1pbiBoYW5kbGVycy9kaXNwb3NpdGlvbnMuPC9saT4KICA8bGk+RWFzaWx5IGFkZCBoYW5kbGVycyBhbmQgZGlzcG9zaXRpb25zIHZpYSB0aGUgQVBJLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGhvb2tzIGZvciB2YWxpZGF0aW9uIGFuZCBkaXNwb3NpdGlvbi9oYW5kbGluZy48L2xpPgogIDxsaT5Nb3JlPC9saT4KPC91bD4KCjxoMz5Ib3cgZG8gSSB1c2UgaXQ8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYSBtb2R1bGUgZm9yIHRoZSBleHBlcmllbmNlZCBDTVNNUyB3ZWIgcHJvZmVzc2lvbmFsLCAgeW91IHNob3VsZCBoYXZlIGdvb2QgZXhwZXJpZW5jZSB3aXRoIENNU01TLCBIVE1MLCBDU1MgYW5kIHBvdGVudGlhbGx5IGphdmFzY3JpcHQuPC9wPgo8b2w+CiAgPGxpPkNyZWF0ZSB5b3VyIGZvcm0gSFRNTCB0ZW1wbGF0ZQogICAgIDx1bD4KICAgICAgIDxsaT5DcmVhdGUgYSBuZXcgdGVtcGxhdGUgb2YgdHlwZSA8Y29kZT5TbWFydEZvcm1zOjpGb3JtPC9jb2RlPiBpbiB0aGUgRGVzaWduIG1hbmFnZXIuICBCZSBjYXJlZnVsIHRvIHJlbWVtYmVyIHRoZSBuYW1lIHlvdSBnaXZlIHRoZSBuZXcgdGVtcGxhdGUuPC9saT4KICAgICAgIDxsaT5Db3B5L3Bhc3RlIG9yIGVudGVyIHlvdXIgSFRNTCBmb3JtIGNvZGUgaW50byB0aGUgdGVtcGxhdGUuICBTYXZlIHdoZW4gcmVhZHkuPC9saT4KICAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSBhIG5ldyBjb250ZW50IHBhZ2UgYW5kIHRlc3QgeW91ciBmb3JtIEhUTUwKICAgICA8cD5BZGQgdGhpcyBjb2RlIHRvIHRoZSBjb250ZW50IGFyZWE6PC9wPgogICAgIDxwcmU+e2luY2x1ZGUgZmlsZT0nY21zX3RlbXBsYXRlOnlvdXJfdGVtcGxhdGVfbmFtZSd9PC9wcmU+CiAgICAgPHA+VGhpcyBpcyBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2Ugd2lsbCBiZSBjaGFuZ2luZyBpdCBsYXRlciBvbmNlIG91ciBmb3JtIGxvb2tzIGdvb2QuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gWW91IHByb2JhYmx5IHdhbnQgdG8gZGlzYWJsZSB0aGUgV1lTSVdZRyBlZGl0b3IgZm9yIHRoaXMgbmV3IGNvbnRlbnQgcGFnZS48L3A+CiAgPC9saT4KICA8bGk+RWRpdCwgc3R5bGUsIGFuZCBjb2RlIHlvdXIgZm9ybSBIVE1MIHRlbXBsYXRlLgogICAgIDxwPlNhdmUgdGhlIGNvbnRlbnQgcGFnZSBhbmQgdmlldyBpdCBpbiB5b3VyIGJyb3dzZXIuIFlvdSBzaG91bGQgdGVzdCBvdXQgeW91ciBIVE1MLCBDU1MsIGFuZCBqYXZhc2NyaXB0LiAgRW5zdXJlIHlvdXIgZm9ybSBpcyByZXNwb25zaXZlLCBhbmQgdGVzdCBmb3IgSFRNTCBhbmQgdmFsaWRhdGlvbiBmdW5jdGlvbmFsaXR5LiAgWW91IGNhbiBldmVuIHN1Ym1pdCB5b3VyIGZvcm0sIHRob3VnaCBhdCB0aGlzIHBvaW50IGl0IHNob3VsZCBub3QgZG8gYW55dGhpbmcgZXhjZXB0IHJlZnJlc2ggdGhlIHBhZ2UuPC9wPgogICAgIDxwPllvdSBtYXkgbmVlZCB0byByZXBlYXRlZGx5IHJlbG9hZCB0aGUgY29udGVudCBwYWdlIGFzIHlvdSBhcmUgZWRpdGluZyB0aGUgSFRNTCwgYW5kIHN0eWxpbmcgeW91ciBmb3JtLjwvcD4KICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFlvdXIgSFRNTCBmb3JtIHRhZyBzaG91bGQgYmUgYXMgc2ltcGxlIGFzIDxjb2RlPiZsdDtmb3JtJmd0OzwvY29kZT4uICBQYXJ0aWN1bGFybHksIHlvdSBzaG91bGQgbGVhdmUgb3V0IHRoZSB0aGUgbWV0aG9kLCBhbmQgYWN0aW9uIGF0dHJpYnV0ZXMuIExhdGVyLCB3aGVuIHRoZSBTbWFydEZvcm1zIG1vZHVsZSBpcyByZW5kZXJpbmcgeW91ciBmb3JtLCBhbnkgaW1wb3J0YW50IGZvcm0gYXR0cmlidXRlcyBhbmQgaGlkZGVuIHZhcmlhYmxlcyB3aWxsIGJlIGluamVjdGVkLiAgWW91IGNhbiB0aG91Z2ggYWRkIGFueSBpZCwgY2xhc3MgYW5kIHN0eWxlIGF0dHJpYnV0ZXMgdGhhdCB5b3Ugd2lzaC48L3A+CiAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3VyIEhUTUwgdmFsaWRhdGUgYXMgbXVjaCBhcyBwb3NzaWJsZS4gIFNvIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGNoZWNrIHlvdXIgb3V0cHV0IHdpdGggYSB2YWxpZGF0b3IuICBBbHNvIGNoZWNrIHRoZSBqYXZhc2NyaXB0IGNvbnNvbGUgZm9yIHdhcm5pbmdzIG9yIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Q3JlYXRlIGEgZm9ybSBpbiBTbWFydEZvcm1zIGFuZCBsaW5rIGl0IHRvIHlvdXIgZm9ybSB0ZW1wbGF0ZS4KICAgICA8b2w+CiAgICAgPGxpPkJyb3dzZSB0byA8Y29kZT5FeHRlbnNpb25zID4+IFNtYXJ0Rm9ybXM8L2NvZGU+IGluIHRoZSBDTVNNUyBhZG1pbiBwYW5lbCwgYW5kIGNyZWF0ZSBhIG5ldyBmb3JtLjwvbGk+CiAgICAgPGxpPlNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZm9ybSB5b3UgY3JlYXRlZCBhbmQgZWRpdGVkIGFib3ZlLi4uIGFuZCBvcHRpb25hbGx5IHByb3ZpZGUgYSBkZXNjcmlwdGlvbi48L2xpPgogICAgIDxsaT5DbGljayAmcXVvdDtzY2FuJnF1b3Q7ICB0aGlzIHdpbGwgcGFyc2UgeW91ciBITVRMIHRlbXBsYXRlIGFuZCBwcm92aWRlIGZlZWRiYWNrIG9uIHRoZSAmcXVvdDttZXNzYWdlcyZxdW90OyB0YWIgdG8gaW5kaWNhdGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBpbXByb3ZlbWVudHMuPC9saT4KICAgICA8bGk+UmV2aWV3IHRoZSBjb250ZW50IG9mIHRoZSAmcXVvdDtmaWVsZHMmcXVvdDsgdGFiIHRvIGVuc3VyZSB0aGF0IGFsbCBuZWNlc3NhcnkgZmllbGRzIGFyZSBwcmVzZW50LCBhbmQgdGhhdCBldmVyeXRoaW5nIGxvb2tzIGNvcnJlY3QuPC9saT4KICAgICA8bGk+QWRkIG9uZSBvciBtb3JlICZxdW90O2hhbmRsZXJzJnF1b3Q7PC9saT4KICAgICA8bGk+RW50ZXIgaW4gc29tZSB0ZXh0LCBvciBzZWxlY3QgYSBmaW5hbCBhY3Rpb24uPC9saT4KICAgICA8bGk+U2F2ZSB5b3VyIGZvcm0uPC9saT4KICAgICA8L29sPgogIDwvbGk+CiAgPGxpPkNoYW5nZSB0aGUgY2FsbCB0byByZW5kZXIgeW91ciBmb3JtLgogICAgPHA+RWRpdCB0aGUgcGFnZSB5b3UgY3JlYXRlZCBpbiBzdGVwIDIgYWJvdmUsIGFuZCBjaGFuZ2UgdGhlIGNhbGwgdG8gPGNvZGU+e1NtYXJ0Rm9ybXMgZm9ybT0neW91cmZvcm1uYW1lJ308L2NvZGU+LiAgVGhlbiBzYXZlIHRoZSBjb250ZW50IHBhZ2UuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QKICAgIDxwPlJlbG9hZCB0aGUgY29udGVudCBwYWdlIHdlIGNyZWF0ZWQgYWJvdmUgaW4geW91ciBicm93c2VyLCBhbmQgZW5zdXJlIGV2ZXJ5dGhpbmcgbG9va3MgY29ycmVjdC4gIEFuZCB0aGVuIHRlc3QgdGhlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm0uPC9wPgogICAgPHA+QmVoYXZpb3Igb2YgdGhlIGZvcm0gd2lsbCBiZSBkZXBlbmRhbnQgdXBvbiB3aGF0IGZvcm0gb3B0aW9ucyBhcmUgc2VsZWN0ZWQsIHdoYXQgdmFsaWRhdGlvbnMgYXJlIHNlbGVjdGVkLCBhbmQgdGhlIGhhbmRsZXJzLjwvcD4KICA8L2xpPgo8L29sPgoKPGgzPkJ1aWx0IGluIEZvcm0gYW5kIFRlbXBsYXRlIFRlc3RzPC9oMz4KPHVsPgogIDxsaT5WYWxpZGF0ZSB0ZW1wbGF0ZSBjb250ZW50cyA8ZW0+KFRlbXBsYXRlVmFsaWRhdG9yKTwvZW0+CiAgICA8cD5UaGlzIHRlc3QgY2hlY2tzIGZvciB2YWxpZCBmb3JtIHN0YXJ0aW5nIGFuZCBlbmRpbmcgdGFncywgd2hldGhlciB0aGV5IGFyZSBwcm92aWRlZCB2aWEgSFRNTCB0YWdzLCBvciB0aGUgQ01TTVMge2Zvcm1fc3RhcnR9IGFuZCB7Zm9ybV9lbmR9IHRhZ3MuICBJdCBhbHNvIGNoZWNrcyBpZiB5b3VyIHRlbXBsYXRlIGlzIGNhbGxpbmcge3NtdGZtX2Zvcm1fZXJyb3JzfSB0byByZXRyaWV2ZSB2YWxpZGF0aW9uIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Rm9ybSBWYWxpZGF0aW9uIDxlbT4oRm9ybVRhZ1ZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB5b3VyIHRlbXBsYXRlIGNvbnRhaW5zIG9ubHkgb25lIGZvcm0sIGFuZCBjaGVja3MgdG8gZW5zdXJlIHRoYXQgeW91IGhhdmUgbm90IHByb3ZpZGVkIGFueSBmb3JtIGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGZvcm0gcmVuZGVyaW5nIHByb2Nlc3MuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgaW5wdXQgbmFtZXMgPGVtPihGb3JtTWlzc2luZ05hbWVWYWxpZGF0b3IpPC9lbT4KICAgIDxwPldoZW4gc3VibWl0dGluZyBhIGZvcm0gdG8gYSBzZXJ2ZXIsIHRoZSBuYW1lIG9mIGVhY2ggaW5wdXQsIHRleHRhcmVhLCBhbmQgc2VsZWN0IGZpZWxkIGlzIG1hbmRhdG9yeS4gIFRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZWFjaCBvZiB0aG9zZSBmaWVsZHMgaGFzIGEgdmFsaWQgbmFtZSBhdHRyaWJ1dGUuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgbGFiZWxzIDxlbT4oRm9ybU1pc3NpbmdMYWJlbFZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBlYWNoIGlucHV0IGhhcyBzb21lIHNvcnQgb2YgbGFiZWwgZGV0ZWN0ZWQuICBUaGUgbGFiZWwgaXMgdXNlZCBhdXRvbWF0aWNhbGx5IGJ5IGZvcm0gaGFuZGxlcnMgYXMgdGhlIGh1bWFuLXJlYWRhYmxlIHZhbHVlIGZvciBlYWNoIGZpZWxkIHdoZW4gc2F2bmcgdGhlIGZvcm0uPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgdmFsdWVzIDxlbT4oRm9ybU1pc3NpbmdWYWx1ZVZhbGlkYXRvcik8L2VtPgogICAgPHA+U29tZSBpbnB1dHMgKGxpa2UgY2hlY2tib3hlcywgYW5kIHJhZGlvIGJ1dHRvbnMpIHJlcXVpcmUgYSB2YWx1ZSBhdHRyaWJ1dGUsIGFuZCByZXF1aXJlIGl0IHRvIGJlIGZpbGxlZCBpbiBzbyB0aGF0IGRhdGEgY2FuIGJlIHByb3Blcmx5IHRyYW5zbWl0dGVkIHRvIHRoZSBzZXJ2ZXIuICBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGVhY2ggb2YgeW91ciBmaWVsZHMgaGFzIGEgdmFsdWUsIGFzIHJlcXVpcmVkLjwvcD4KICA8L2xpPgogIDxsaT5EdXBsaWNhdGUgSUQgdGVzdCA8ZW0+KEZvcm1EdXBsaWNhdGVJZFZhbGlkYXRvcik8L2VtPgogICAgPHA+QXMgYSBjb252ZW5pZW5jZSwgdGhvdWdoIGl0IGlzIG5vdCBpbXBvcnRhbnQgZm9yIHRoZSBmb3JtIHN1Ym1pc3Npb24gcHJvY2VzcywgdGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBubyB0d28gaW5wdXQgZmllbGRzIGhhdmUgdGhlIHNhbWUgaWQuPC9wPgogIDwvbGk+CiAgPGxpPkR1cGxpY2F0ZSBuYW1lIHRlc3QgPGVtPihGb3JtRHVwbGljYXRlTmFtZVZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgbmFtZSBvZiBpbnB1dCBmaWVsZHMgaXMgbm90IGVycm9uZW91c2x5IGR1cGxpY2F0ZWQuICBXZSBjaGVjayBmb3IgZHVwbGljYXRlIG5hbWVzIHdpdGggZGlmZmVyZW50IHR5cGVzIG9mIGZpZWxkcy4gIEl0IGlnbm9yZXMgcmFkaW8gYnV0dG9uIGdyb3VwcywgYW5kIG90aGVyIGZpZWxkcyB3aGVyZSBpdCBpcyB2YWxpZCB0byBkdXBsaWNhdGUgdGhlIGlucHV0IG5hbWUuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+Rm9ybSBTY2FubmluZyBhbmQgU2F2aW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgc3RvcmVzIG1ldGFkYXRhIGFib3V0IHRoZSBmb3JtIHRlbXBsYXRlIGluIHRoZSBkYXRhYmFzZS4gIFRoaXMgbWV0YWRhdGEgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdmFsaWRhdG9ycyBhbmQgaGFuZGxlcnMsIGFuZCBvbiB0aGUgZnJvbnRlbmQgdG8gYWlkZSBpbiByZW5kZXJpbmcgYW5kIHZhbGlkYXRpb24gYW5kIGhhbmRsaW5nLiAgVGhlcmVmb3JlLCBlYWNoIHRpbWUgdGhlIGZvcm0gdGVtcGxhdGUgaXMgY2hhbmdlZCB0aGUgZm9ybSBtdXN0IGJlIHJlLXNjYW5uZWQuPC9wPgo8cD5UaGUgc2Nhbm5pbmcgcHJvY2VzcyB3aWxsIHBhcnNlIHRoZSBIVE1MIG9mIHRoZSBmb3JtIHRlbXBsYXRlLCBhbmQgYnVpbGQgbWV0YWRhdGEuICBJdCB3aWxsIG91dHB1dCBhIGxpc3Qgb2YgcG90ZW50aWFsIHByb2JsZW1zIHdpdGggeW91ciBmb3JtLiAgaS5lLjogIGludmFsaWQgc3ludGF4LCBtaXNzaW5nIGxhYmVscywgZXRjLiBTb21lIG9mIHRoZXNlIG1lc3NhZ2VzIG1heSBiZSBpbnRlbnRpb25hbCwgb3IgbWF5IGJlIGFuIGVycm9yIGluIHRoZSB0ZW1wbGF0ZS4gIEVhY2ggZGV2ZWxvcGVyIHdpbGwgbmVlZCB0byBkZXRlcm1pbmUgdGhpcyBmb3IgaGltc2VsZi48L3A+Cgo8aDM+UHJlLXJlbmRlciBsb2dpYzwvaDM+CjxwPlRoaXMgc21hcnR5IHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gaW5pdGlhbGl6ZSBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgdXNlIGluIHRoZSBmb3JtIGZvciB1c2Ugd2hlbiB0aGUgZm9ybSBpcyBpbml0aWFsbHkgZGlzcGxheWVkIChpLmUuOiBub3QgdGhlIHJlc3VsdCBvZiBhIHN1Ym1pc3Npb24pLiAgSXQgaXMgdXNlZnVsIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGlucHV0IGZpZWxkcyBiYXNlZCBvbiBzb21lIGxvZ2ljLjwvcD4KPHA+VGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIDxjb2RlPntzbXRmbV9zZXR9PC9jb2RlPiBzbWFydHkgcGx1Z2luLiAgaS5lOiA8Y29kZT57c210Zm1fc2V0IGZpZWxkPXdpZGdldF9jb2xvciB2YWx1ZT13aGl0ZX08L2NvZGU+LjwvcD4KPHA+VGhpcyBzaW1wbGUgZXhhbXBsZSwgd2lsbCBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGEgZmllbGQgbmFtZWQgJnF1b3Q7d2lkZ2V0X2NvbG9yJnF1b3Q7IHRvIHdoaXRlIG9uIHN1bmRheXM6PC9wPgo8cHJlPjxjb2RlPntpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJWQnID09IDB9e3NtdGZtX3NldCBmaWVsZD13aWRnZXRfY29sb3IgdmFsdWU9J3doaXRlJ317L2lmfTwvY29kZT48L3ByZT4KCjxoMz5TdWJtaXNzaW9uIFZhbGlkYXRpb25zPC9oMz4KPHA+U3VibWlzc2lvbiB2YWxpZGF0aW9ucyB0YWtlIHRoZSB1c2VyIGVudGVyZWQgcmVzcG9uc2UsIGFuZCBlbnN1cmUgdGhhdCBpdCBjb25mb3JtcyB0byB0aGUgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBlaXRoZXIgaW4gdGhlIGZvcm0gaXRzZWxmLCBvciB2aWEgYWRkaXRpb25hbCB2YWxpZGF0b3JzIHlvdSBhZGRlZC4gIFRoZXkgbWF5IGFsc28gbW9kaWZ5IHRoZSByZXNwb25zZS4gIFVzdWFsbHkgdGhvdWdoIHRoZXkgZG8gbm90IHN0b3JlIHRoZSBkYXRhIG9yIHNlbmQgdGhlIGRhdGEgYW55d2hlcmUuPC9wPgo8cD5JZiBhbnkgdmFsaWRhdGlvbnMgZmFpbCwgdGhlIGVycm9yIG1lc3NhZ2VzIGFyZSBjb2xsZWN0ZWQgYW5kIHRoZSBmb3JtIGlzIHJlLXJlbmRlcmVkLCB3aXRob3V0IGV4ZWN1dGluZyBhbnkgb2YgdGhlIGhhbmRsZXJzLjwvcD4KPHA+QmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBzdWJtaXNzaW9uIHZhbGlkYXRpb25zIHRoYXQgYXJlIGJ1aWx0IGluIHRvIFNtYXJ0Rm9ybXMuPC9wPgo8dWw+CiAgPGxpPkNoZWNrIGZvciBIVE1MIGluIGlucHV0IHN1Ym1pc3Npb24gIDxlbT4oSHRtbERldGVjdGlvblZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gZW5zdXJlcyB0aGF0IGEgdXNlciBoYXMgbm90IGFueSBpbmplY3RlZCBIVE1MIGNvZGUgKGluY2x1ZGluZyBwb3RlbnRpYWxseSBtYWxpY2lvdXMgc2NyaXB0IHRhZ3MpIGludG8gYW55IHN1Ym1pdHRlZCBmaWVsZHMuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB2YWxpZGF0b3IgZG9lcyBub3Qgb2JleSB0aGUgZGF0YS1zbXRmbS1ub3ZhbGlkYXRlIGF0dHJpYnV0ZS48L3A+CiAgPC9saT4KICA8bGk+Q2hlY2sgZm9yIHJlcXVpcmVkIGRhdGEgIDxlbT4oSHRtbFJlcXVpcmVkRmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB2YWxpZGF0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBzb21lIGRhdGEgaW4gZXZlcnkgZmllbGQgdGhhdCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQuIEVpdGhlciB2aWEgdGhlIDxjb2RlPnJlcXVpcmVkPC9jb2RlPiBIVE1MNSBhdHRyaWJ1dGUgb3IgdGhlIDxjb2RlPmRhdGEtc210Zm0tcmVxdWlyZWQ8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZC48L3A+CiAgPC9saT4KICA8bGk+Q2hlY2sgdGhlIHZhbHVlIG9mIGFsbCBTZWxlY3QgZmllbGRzLCByYWRpby1idXR0b24gZ3JvdXBzLCBhbmQgY2hlY2tib3gtZ3JvdXBzICA8ZW0+KFNlbGVjdEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZm9yIGVhY2ggb2YgdGhlIG11bHRpLW9wdGlvbiAoc2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uLWdyb3VwcyBhbmQgY2hlY2tib3gtZ3JvdXBzKSBmaWVsZHMgdGhhdCBvbmx5IGEgdmFsaWQgdmFsdWUgaXMgc3VibWl0dGVkLjwvcD4KICAgICA8cD5UaGlzIHRlc3QgaXMgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIGF1dG8tdmFsaWRhdGlvbiBpcyBlbmFibGVkIGFuZCBvbmUgb3IgbW9yZSBtdWx0aS1vcHRpb24gZmllbGRzIGFyZSBkZXRlY3RlZC48L3A+CiAgPC9saT4KICA8bGk+Q2hlY2sgdGhlIHZhbHVlIG9mIGFsbCBlbWFpbCBmaWVsZHMuICA8ZW0+KEVtYWlsUHJpbWl0aXZpZVZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGZvciBlYWNoIGVtYWlsIGZpZWxkIChkZW5vdGVkIGJ5IGVpdGhlciA8Y29kZT50eXBlPSJlbWFpbCI8L2NvZGU+IG9yIDxjb2RlPmRhdGEtc210Zm0tcHJpbWFyeT0iZW1haWwiPC9jb2RlPikgVGhhdCBlYWNoIG9mIHRoZSB2YWx1ZXMgY29udGFpbnMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLjwvcD4KICAgICA8cD5UaGlzIHRlc3QgaXMgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIGF1dG8tdmFsaWRhdGlvbiBpcyBlbmFibGVkIGFuZCBvbmUgb3IgbW9yZSBlbWFpbCBmaWVsZHMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2YgYWxsIGRhdGUgZmllbGRzLiAgPGVtPihEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IGZvciBlYWNoIGRhdGUgZmllbGQgKGRlbm90ZWQgYnkgZWl0aGVyIDxjb2RlPnR5cGU9ImRhdGUiPC9jb2RlPiBvciA8Y29kZT5kYXRhLXNtdGZtLXByaW1hcnk9ImRhdGUiPC9jb2RlPikgVGhhdCBlYWNoIG9mIHRoZSB2YWx1ZXMgaXMgYSB2YWxpZCBkYXRlLiAgVGhpcyB0ZXN0IHdpbGwgYWxzbyB2YWxpZGF0ZSB0aGUgdmFsdWVzIGdpdmVuIGFueSByYW5nZSBhdHRyaWJ1dGVzIHN1Y2ggYXMgbWluLG1heCxkYXRhLXNtdGZtLW1pbixkYXRhLXNtdGZtLW1heC4gIEEgZGF0ZSBzdHJpbmcgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IG9mIHl5eXktbW0tZGQuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQgYW5kIG9uZSBvciBtb3JlIGRhdGUgZmllbGRzIGFyZSBkZXRlY3RlZC48L3A+CiAgPC9saT4KICA8bGk+RW5zdXJlIHRoYXQgYWxsIHVwbG9hZHMgY29uZm9ybSB0byB0aGUgc3BlY2lmaWNhdGlvbnMuIDxlbT4oRmlsZVZhbGlkYXRvcik8L2VtPgogICAgIDxwPlRPRE88L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCwgYW5kIG9uZSBvciBtb3JlIGZpbGUgZmlsZXMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgaW50ZWdlciBmaWVsZHMuICA8ZW0+KEludGVnZXJGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3Qgd2lsbCBlbnN1cmUgdGhhdCB0aGUgc3BlY2lmaWVkIGZpZWxkIGlzIGFuIGludGVnZXIsIGFuZCB0aGF0IGl0J3MgdmFsdWVzIGNvbmZvcm0gdG8gZGV2ZWxvcGVyIGVudGVyZWQgcmFuZ2UgdmFsdWVzLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgZmxvYXQgZmllbGRzLiAgPGVtPihGbG9hdEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSBzcGVjaWZpZWQgZmllbGQgaXMgYSBmbG9hdCwgYW5kIHRoYXQgaXQncyB2YWx1ZXMgY29uZm9ybSB0byBkZXZlbG9wZXIgZW50ZXJlZCByYW5nZSB2YWx1ZXMuPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBmaWVsZCBtYXRjaGVzIGEgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uICA8ZW0+KFJlZ2V4RmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IHdpbGwgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBtYXRjaCB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IGZvciBlYWNoIGZpZWxkIHdpdGggYSBwYXR0ZXJuLCBvciBkYXRhLXNtdGZtLXBhdHRlcm4gYXR0cmlidXRlIHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQgaW4gdGhlIGZvcm0uPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBmaWVsZCBpcyBhbiBlbWFpbCBhZGRyZXNzLiAgPGVtPihFbWFpbEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IGFsbCBvZiB0aGUgdmFsdWVzIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgYXJlIHZhbGlkIGVtYWlsIGFkZHJlc3Nlcy48L3A+CiAgPC9saT4KICA8bGk+VmFsaWRhdGUgdmlhIFNtYXJ0eSBUZW1wbGF0ZS4gIDxlbT4oVGVtcGxhdGVWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB2YWxpZGF0b3IgYWxsb3dzIHlvdSB0byB1c2Ugc21hcnR5IHRvIHZhbGlkYXRlIHRoZSBmb3JtIHN1Ym1pc3Npb24uICBZb3UgY2FuIHVzZSBzbWFydHkgbG9naWMsIGFuZC9vciBVRFQncyBvciBvdGhlciBwbHVnaW5zIHRvIGV2YWx1YXRlIHRoZSBjb250ZW50LiAgSWYgdGhlIHRlc3QgZmFpbHMsIHRoZSB0ZW1wbGF0ZSBzaG91bGQgb3V0cHV0IGFuIGVycm9yIG1lc3NhZ2UuPC9wPgogIDwvbGk+CiAgPGxpPkNvbXB1dGUgdGhlIHZhbHVlIG9mIGEgZmllbGQsIGdpdmVuIGEgdGVtcGxhdGUuICA8ZW0+KENvbXB1dGVkVmFsdWUpPC9lbT4KICAgICA8cD5UaGlzIGlzIGEgc3BlY2lhbCBraW5kIG9mIHZhbGlkYXRpb24gdGVzdC4gIEl0IGlzIGNhcGFibGUgb2YgY29tcHV0aW5nIHRoZSB2YWx1ZSBvZiBvbmUgZmllbGQgZ2l2ZW4gdGhlIG90aGVyIGRhdGEgaW4gdGhlIHN1Ym1pdHRlZCByZXNwb25zZS4gIEl0IGlzIHVzZWZ1bCBmb3IgZG9pbmcgY2FsY3VsYXRpb25zIGFuZCBwdXR0aW5nIHRoZSBvdXRwdXQgaW50byBhIG5ldyBmaWVsZCwgb3IgZm9yIGFkanVzdGluZyB0aGUgdmFsdWUgb2Ygb25lIGZpZWxkIGJhc2VkIG9uIGxpbWl0cyBzcGVjaWZpZWQgaW4gb3RoZXIgZmllbGRzLjwvcD4KICAgICA8cD5UaGUgb3V0cHV0IG9mIGEgc21hcnR5IHRlbXBsYXRlIDxlbT4oYSBzdHJpbmcpPC9lbT4gcmVwbGFjZXMgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWVkIGZpZWxkLjwvcD4KICA8L2xpPgogIDxsaT5Vc2UgYSBob29rIHRvIHZhbGlkYXRlIHRoZSByZXNwb25zZS4gIDxlbT4oSG9va1ZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gY2FsbHMgYSBob29rIGVudGl0bGVkIDxjb2RlPlNtYXJ0Rm9ybXM6OnZhbGlkYXRlRm9ybTwvY29kZT4gYW5kIHBhc3NlcyB0aGUgZW50aXJlIGZvcm0gcmVzcG9uc2UuICBUaGUgaG9vayBoYW5kbGVycyBjYW4gY2hvb3NlIHRvIG1vZGlmeSB0aGUgcmVzcG9uc2UsIG9yIHRvIHBlcmZvcm0gdmFyaW91cyBvdGhlciB0ZXN0cy4gIElmIGEgdGVzdCBmYWlscywgdGhlbiBpdCBpcyBleHBlY3RlZCB0byB0aHJvdyBhIHNwZWNpYWwgZXhjZXB0aW9uLjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPkJ1aWx0IGluIEhhbmRsZXJzL0Rpc3Bvc2l0aW9uczwvaDM+CjxwPkZvcm0gaGFuZGxlcnMgYXJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdWJtaXNzaW9uIHZhbGlkYXRpb25zIGhhdmUgcGFzc2VkLCBhbmQgYXJlIHVzZWQgdG8gJnF1b3Q7ZG8gdGhpbmdzJnF1b3Q7IHdpdGggdGhlIGRhdGEuICBUaGV5IGRvIG5vdCB0eXBpY2FsbHkgbW9kaWZ5IHRoZSBvdXRwdXQgZGF0YS48L3A+CjxwPklmIGFuIGVycm9yIG9jY3VycyBpbiBhIGRpc3Bvc2l0aW9uLCB0eXBpY2FsbHkgdGhlIGVycm9yIGlzIGxvZ2dlZCBpbiBzb21lIGZvcm1hdCAodGhpcyBpcyB0aGUgdGFzayBvZiB0aGUgc3BlY2lmaWMgaGFuZGxlciksIGFuZCBwcm9jZXNzaW5nIGNvbnRpbnVlcy48L3A+CjxwPkJlbG93IGlzIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGJ1aWx0LWluIGRpc3Bvc2l0aW9ucy48L3A+Cjx1bD4KICA8bGk+U2F2ZSB0aGUgcmVzdWx0cyB0byBhIGZpbGUgYmFzZWQgb24gdGhlIHZhbHVlIG9mIGEgbXVsdGktb3B0aW9uIGZpZWxkLjwvbGk+CiAgPGxpPlNhdmUgdGhlIHJlc3VsdHMgdG8gYSB1bmlxdWUgZmlsZS48L2xpPgogIDxsaT5TYXZlIHRoZSByZXN1bHRzIHRvIGEgZmxhdCBmaWxlIDxlbT4odXN1YWxseSBDU1YpPC9lbT48L2xpPgogIDxsaT5TZW5kIHRoZSByZXN1bHRzIHZpYSBlbWFpbCBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBtdWx0aS1vcHRpb24gZmllbGQuPC9saT4KICA8bGk+U2VuZCB0aGUgcmVzdWx0cyB2aWEgZW1haWwgdG8gc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgogIDxsaT5TZW5kIHRoZSByZXN1bHRzIHZpYSBlbWFpbCB0byBhIHVzZXIgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3MuPC9saT4KICA8bGk+UE9TVCBmb3JtIHJlc3VsdHMgdG8gYSBVUkwvV2ViSG9vay48L2xpPgogIDxsaT5SZWRpcmVjdCB0byBhIFVSTCBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIGEgdGVtcGxhdGUuPC9saT4KICA8bGk+UmVkaXJlY3QgdG8gYSBwYWdlIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2YgYSB0ZW1wbGF0ZS48L2xpPgogIDxsaT5Vc2UgYSBob29rIHRvIGhhbmRsZS9kaXNwb3NlIG9mIHRoZSByZXNwb25zZS48L2xpPgogIDxsaT5TdG9yZSBmb3JtIHJlc3VsdHMgdG8gdGhlIHNlc3Npb24gZm9yIGxhdGVyIHByb2Nlc3NpbmcuPC9saT4KICA8bGk+U3RvcCBQcm9jZXNzaW5nIERpc3Bvc2l0aW9ucyBiYXNlZCBvbiBhIENvbmRpdGlvbjwvbGk+CjwvdWw+Cgo8aDM+Q29tbW9uIEVycm9ycyBhbmQgUHJvYmxlbXMuPC9oMz4KPHVsPgogIDxsaT5Db3VsZCBub3QgcmV0cmlldmUgZm9ybSBvYmplY3QKICAgICA8cD5TbWFydEZvcm1zIHVzZXMgdGhlIHNlc3Npb24gd2hlbiBlZGl0aW5nIGEgZm9ybS4gIFRoaXMgbWVzc2FnZSBpbmRpY2F0ZXMgdGhhdCB0aGUgc2Vzc2lvbiBoYXMgdGltZWQgb3V0LCBhbmQgYW55dGhpbmcgdW4tc2F2ZWQgaW4geW91ciBmb3JtIGhhcyBiZWVuIGxvc3QuICAgUGxlYXNlIGVuc3VyZSB0aGF0IHlvdSBzYXZlIHlvdXIgZm9ybSBvZnRlbi48cD4KICA8L2xpPgogIDxsaT5Nb2RpZmljYXRpb24gb2YgZmllbGQgdmFyaWFibGVzIGluIHNtYXJ0eQogICAgIDxwPkVhY2ggdGVtcGxhdGUgdXNlZCBieSBlYWNoIHZhbGlkYXRpb24gb3IgaGFuZGxlciBpbiB0aGUgU21hcnRGb3JtcyBtb2R1bGUgdXNlcyBpdHMgb3duIHNjb3BlIHRvIHByZXZlbnQgdmFyaWFibGUgbmFtZSBjb25mbGljdHMuICBGb3IgdGhpcyByZWFzb24geW91IGNhbm5vdCBtb2RpZnkgdGhlIHZhbHVlcyBvZiB0aGUgcmVzcG9uc2UgYnkgZWRpdGluZyB0aGUgc21hcnR5IHZhcmlhYmxlcy48L3A+CiAgPC9saT4KICA8bGk+TmFtZXMgb2YgbXVsdGlzZWxlY3QgZmllbGRzIG9yIGNoZWNrYm94IGdyb3Vwcy4KICAgICA8cD5XaGVuIHNlbmRpbmcgbXVsaXBsZSB2YWx1ZXMgZm9yIGEgc3BlY2lmaWMgZmllbGQgdG8gdGhlIHNlcnZlciwgUEhQIGV4cGVjdHMgYW4gYXJyYXkuICBUbyB0ZWxsIFBIUCB0byBleHBlY3QgYW4gYXJyYXkgb2YgdmFsdWVzLCBbXSBtdXN0IGJlIGFkZGVkIHRvIHRoZSBuYW1lIG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCwgb3IgdG8gdGhlIG5hbWUgb2YgZWFjaCBjaGVja2JveCBpbiBhIGNoZWNrYm94IGdyb3VwLjwvcD4KICAgICA8cD5XaGVuIHJlbmRlcmluZyB0aGUgZm9ybSwgU21hcnRGb3JtcyB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBlZmZlY3RlZCBmaWVsZHMsIGFuZCBhdXRvbWF0aWNhbGx5IGFwcGVuZCB0aGUgW10gdG8gdGhlIGZpZWxkIG5hbWVzIGFzIGFwcHJvcHJpYXRlLiAgWW91IGNhbiBkaXNhYmxlIHRoaXMgd2l0aCB0aGUgPGNvZGU+ZGF0YS1zbXRmbS1ub25hbWVhZGp1c3Q8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUgZm9ybSB0YWcuPC9wPgogIDwvbGk+CiAgPGxpPkNvbmRpdGlvbmFsIG9yIGR5bmFtaWMgZmllbGRzICh2aWEgc21hcnR5KQogICAgPHA+VGhlIHNjYW4gZnVuY3Rpb25hbGl0eSBvZiBTbWFydEZvcm1zIGlzIGFuIGFkbWluIHNpZGUgYWN0aW9uIHRoYXQgdGFrZXMgeW91ciBmb3JtIHRlbXBsYXRlLCBwYXNzZXMgaXQgdGhyb3VnaCBzbWFydHksIGFuZCB0aGVuIHBhcnNlcyB0aGUgcmVzdWx0aW5nIEhUTUwgY29kZS4gIFNNVEZNIHRoZW4gYnVpbGRzIGEgbGlzdCBvZiB0aGUgZmllbGRzIGFuZCB0aGVyZSB2YXJpb3VzIG9wdGlvbnMgYW5kIGF0cmlidXRlcyBmb3IgdXNlIGluIHJlbmRlcmluZywgaGFuZGxlcnMgYW5kIGRpc3Bvc2l0aW9ucy4gIFRoZSBzbWFydHkgZW52aXJvbm1lbnQgaW4gdGhlIGFkbWluIGludGVyZmFjZSBpcyBkaWZmZXJlbnQgdGhhbiB0aGF0IGluIHRoZSBmcm9udGVuZCwgb3IgZXZlbiBvbiBkaWZmZXJlbnQgQ01TTVMgY29udGVudCBwYWdlcyBvciBkaWZmZXJlbnQgc3RhdGUgb2YgeW91ciBhcHBsaWNhdGlvbi4gIFRoZXJlZm9yZSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGR5bmFtaWNhbGx5IGFkZCBhbmQgcmVtb3ZlIGZpZWxkcyBmcm9tIHRoZSB0ZW1wbGF0ZSB1c2luZyBsb2dpYyBpbiBzbWFydHkgdGVtcGxhdGVzIG9yIGR5bmFtaWNhbGx5IHJldHJpZXZlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CiAgPC9saT4KICA8bGk+VHJ5IHRvIGF2b2lkIHRoZSB1c2Ugb2Ygc21hcnR5IGNvbmRpdGlvbmFscyB0byBkaXNwbGF5IGZvcm1zIGluIHlvdXIgdGVtcGxhdGUsIHVzZSBqYXZhc2NyaXB0IHdoZXJlIHBvc3NpYmxlLiAgSG93ZXZlciwgaWYgdGhlcmUgYXJlIHNtYXJ0eSBjb25kaXRpb25hbHMgdGhhdCBjb250cm9sIHRoZSBkaXNwbGF5IG9mIGNlcnRhaW4gZmllbGRzLCB0aGVuIGl0IGlzIHN0cm9uZ2x5IGFkdmlzZWQgdGhhdCB5b3UgY3JlYXRlIGEgaGlkZGVuIGZpZWxkIGFzIGEgcGxhY2UgaG9sZGVyIGZvciB0aGF0IGZpZWxkIHByaW9yIHRvIHRoZSBjb25kaXRpb25hbC4gIFRoaXMgd2lsbCB1c3VhbGx5IGVuc3VyZSB0aGF0IHRoZSBmaWVsZCBuYW1lIGlzIHNjYW5uZWQuPC9saT4KPC91bD4KCjxoMz5Db250cm9sbGluZyBmb3JtIGJlaGF2aW9yIHdpdGggYXR0cmlidXRlczwvaDM+Cjx1bD4KICA8bGk+VXNpbmcgcmVndWxhciBIVE1MNSBhdHRyaWJ1dGVzCiAgICA8cD5TbWFydEZvcm1zIHdpbGwgcGFyc2UgYW5kIHJlbWVtYmVyIHRoZSB2YWx1ZSBvZiB2YXJpb3VzIEhUTUwgaW5wdXQgYXR0cmlidXRlcy4gIGkuZTogcmVxdWlyZWQsIG1pbiwgbWF4IGFuZCBwYXR0ZXJuLiAgVGhlc2Ugd2lsbCBiZSB1c2VkIHRvIGFsc28gcGVyZm9ybSBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIG9uIHRoZSBzdWJtaXR0ZWQgZGF0YS48L3A+CiAgICA8cD5Vc2luZyB0aGVzZSBhdHRyaWJ1dGVzIHRvIHZhbGlkYXRlIGRhdGEgb24gdGhlIHNlcnZlciBzaWRlIGlzIGEgZ29vZCB3YXkgb2YgbWl0aWdhdGluZyBtYW4taW4tdGhlLW1pZGRsZSBhdHRhY2tzLCBvciBkb2luZyBkYXRhIHZhbGlkYXRpb24gd2hlbiB0aGUgc2l0ZSB2aXNpdG9yIGlzIHVzaW5nIGEgYnJvd3NlciB0aGF0IGRvZXMgbm90IGVuZm9yY2UgdGhlbS48L3A+CiAgPC9saT4KICA8bGk+RGF0YSBhdHRyaWJ1dGVzIGZvciByZW5kZXJpbmcKICAgIDxwPlRoZSBmb2xsb3dpbmcgZGF0YSBhdHRyaWJ1dGVzIGFyZSBoaW50cyB0byB0aGUgcmVuZGVyZXIgdG8gbWFrZSBpdCBlYXN5IGZvciB0aGUgZGV2ZWxvcGVyIHRvIGludGVncmF0ZSBzbWFydHkgaW50byBhIGZvcm0sIHRvIGluY2x1ZGUgY2FwdGNoYSwgYW5kIG90aGVyIHRoaW5ncy48L3A+CiAgICA8dWw+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLWNhcHRjaGE8L2NvZGU+IC0gVGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXJlIHRoZSBjYXB0Y2hhIGRpc3BsYXkgd2lsbCBhcHBlYXIuCiAgICAgICAgIDxwPklmIHNwZWNpZmllZCwgYW5kIGlmIENhcHRjaGEgaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLCB1cG9uIHJlbmRlcmluZyB0aGUgZm9ybSwgdGhlIGNhcHRjaGEgZGlzcGxheSB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbnRlbnRzIG9mIHRoZSBtYXRjaGluZyBlbGVtZW50LjwvcD4KCSA8cD5JZiB0aGUgY2FwdGNoYSBkaXNwbGF5IHJlcXVpcmVzIGFuIGlucHV0IGZpZWxkLCAgYW5kIG5vIGVsZW1lbnQgd2l0aCB0aGUgZGF0YS1zbXRmbS1jYXB0Y2hhLWlucHV0IGF0dHJpYnV0ZSBleGlzdHMsIHRoZW4gdGhlIGNhcHRjaGEgaW5wdXQgZmllbGQgd2lsbCBhbHNvIGJlIGFwcGVuZGVkIHRvIHRoZSBjb250ZW50cyBvZiB0aGlzIGVsZW1lbnQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+PGNvZGU+ZGF0YS1zbXRmbS1jYXB0Y2hhLWlucHV0PC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB3aGVyZSwgaWYgbmVjZXNzYXJ5IGFueSBpbnB1dCBmaWVsZCBuZWVkZWQgYnkgdGhlIGNhcHRjaGEgZGlzcGxheSB3aWxsIGJlIGluc2VydGVkLgogICAgICAgICA8cD5Tb21lIGNhcHRjaGEgbWV0aG9kcyByZXF1aXJlIHRoZSB1c2VyIHRvIGVudGVyIHNvbWUgdGV4dC4gIFVzaW5nIHRoaXMgYXR0dGlidXRlIGFsbG93cyB0aGUgZm9ybSBjcmVhdG9yIHRvIGRlZmluZSB3aGVyZSBhbmQgaG93IHRoZSBpbnB1dCBmaWVsZCB3aWxsIGJlIGRpc3BsYXllZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLW5vbmFtZWFkanVzdDwvY29kZT4gLSBUaGlzIGF0dHJpYnV0ZSB3aWxsIGRpc2FibGUgdGhlIGF1dG9tYXRpYyBhcHBlbmRpbmcgb2YgW10gdG8gbmFtZXMgb2YgbXVsdGlzZWxlY3QgaW5wdXQgZmllbGRzLCBvciBpbiBjaGVja2JveCBncm91cHMuICBVc2Ugd2l0aCBjYXV0aW9uLjwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLW5vYXV0b3ZhbHVlPC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCB0byBkaXNhYmxlIGF1dG9tYXRpY2FsbHkgc2V0dGluZyB0aGUgdmFsdWUgb2YgZm9ybSBmaWVsZHMgYmFzZWQgb24gcHJlc2V0IG9yIHVzZXIgZW50ZXJlZCBkYXRhLgogICAgICAgICA8cD5XaGVuIGFwcGxpZWQgdG8gdGhlIGZvcm0gZWxlbWVudCwgbm8gYXV0b21hdGljIGZpZWxkIHZhbHVlL2NvbnRlbnQvc2VsZWN0ZWQvY2hlY2tlZCBwcm9jZXNzaW5nIHdpbGwgb2NjdXIgZm9yIGFueSBmaWVsZCB3aXRoaW4gdGhlIGZvcm0uPC9wPgoJIDxwPndoZW4gYXBwbGllZCB0byBhbiBpbmRpdmlkdWFsIGZpZWxkLCBhdXRvbWF0aWMgY2FsY3VsYXRpb24gd2lsbCBiZSBkaXNhYmxlZCBmb3IgdGhhdCBzcGVjaWZpYyBmaWVsZC48L3A+CgkgPHA+U2VlIHRoZSBzZWN0aW9uIGJlbG93IHJlZ2FyZGluZyBzZXR0aW5nIGZpZWxkIHZhbHVlcy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLXNtdGZtLXNlbGVjdGVkPC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCBvbiA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudHMgYW5kIHJhZGlvLWJ1dHRvbiBncm91cHMgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBvcHRpb24uIGkuZS46PGJyLz4KPHByZT4mbHQ7c2VsZWN0IG5hbWU9Im15c2VsZWN0IiBkYXRhLXNtdGZtLXNlbGVjdGVkPSZxdW90O3skZm9ybV9kYXRhLSZndDtteXNlbGVjdHxkZWZhdWx0Oic8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPm9wdDI8L3NwYW4+J30mcXVvdDsmZ3Q7CiAgICAmbHQ7b3B0aW9uIHZhbHVlPSJvcHQxIiZndDtPcHRpb24gMSZsdDsvb3B0aW9uJmd0OwogICAgJmx0O29wdGlvbiB2YWx1ZT0iPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5vcHQyPC9zcGFuPiImZ3Q7T3B0aW9uIDImbHQ7L29wdGlvbiZndDsKICAgICZsdDtvcHRpb24gdmFsdWU9Im9wdDMiJmd0O09wdGlvbiAzJmx0Oy9vcHRpb24mZ3Q7CiZsdDsvc2VsZWN0Jmd0OzwvcHJlPgogICAgICAgIDxwPlRoaXMgYXR0cmlidXRlIGhhcyBubyBlZmZlY3Qgb24gY2hlY2tib3ggZ3JvdXBzLCB0ZXh0YXJlYXMsIG9yIG90aGVyIHR5cGVzIG9mIGlucHV0IGZpZWxkcy48L3A+Cgk8cD5SYWRpbyBidXR0b24gZ3JvdXBzIG9yIHNlbGVjdCBlbGVtZW50cyB3aXRoIHRoaXMgYXR0cmlidXRlIGFyZSBub3Qgc3ViamVjdCB0byBhdXRvLXZhbHVlIGNhbGN1bGF0aW9ucy48L3A+CiAgICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyB0byBhaWRlIHNlcnZlciBzaWRlIGZvcm0gdmFsaWRhdGlvbgogICAgPHVsPgogICAgICA8bGk+ZGF0YS1zbXRmbS1ub3ZhbGlkYXRlCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlLCBvbiBhbnkgaW5wdXQsIHNlbGVjdCwgb3IgdGV4dGFyZWEgZmllbGRzIGluZGljYXRlcyB0byBkaXNhYmxlIGFsbCBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIGZvciB0aGF0IGZpZWxkLiAgU29tZSB2YWxpZGF0b3JzIG1heSBub3Qgb2JleSBpdC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLWFjY2VwdAogICAgICAgICA8cD5BcHBsaWNhYmxlIG9ubHkgdG8gZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGNhbiBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygd2lsZGNhcmQgbWltZSB0eXBlcyB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlcyB0aGF0IGFyZSBhY2NlcHRlZC4gaS5lLjogPGNvZGU+ZGF0YS1zbXRmbS1hY2NlcHQ9ImltYWdlLyosdGV4dC8qIjwvY29kZT4uPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1tYXhzaXplCiAgICAgICAgIDxwPkFwcGxpY2FibGUgb25seSB0byBmaWxlIGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgY2FuIHNwZWNpZnkgYSBtYXhpbXVtIHNpemUgPGVtPihpbiBieXRlcyk8L2VtPiBmb3IgYW55IHNpbmdsZSBmaWxlIHVwbG9hZGVkIHRvIHRoYXQgZmllbGQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1leHRlbnNpb24KICAgICAgICAgPHA+QXBwbGljYWJsZSBvbmx5IHRvIGZpbGUgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBjYW4gY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHZhbGlkIGZpbGUgZXh0ZW5zaW9ucyB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlcyB0aGF0IGFyZSBhY2NlcHRlZC48L3A+CgkgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBXZSBkbyBub3QgcmVjb21tZW5kIHVzaW5nIHRoaXMgYXMgc29tZSBvcGVyYXRpbmcgc3lzdGVtcywgb3IgdXNlcnMgZG8gbm90IG1haW50YWluIGEgcmVsaWdvdXMgcG9saWN5IG9uIGZpbGUgZXh0ZW5zaW9ucy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLXByaW1pdGl2ZQogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBidXQgZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgc2hvdWxkIGFwcGVhciBpbiB0aGUgdmFsdWUocykgZm9yIHRoYXQgZmllbGQuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgYXR0cmlidXRlIGFyZTogaW50LCBmbG9hdCwgZGF0ZSwgZW1haWwsIGFuZCBzdHJpbmcuICAgSWYgbm9uZSBzcGVjaWZpZmVkLCB0aGVuIHRoZSBkYXRhIHByaW1pdGl2ZSB3aWxsIGJlIGludGVycHJldGVkIGZyb20gdGhlIGZpZWxkIHR5cGUsIG9yIHN0cmluZyB3aWxsIGJlIGFzc3VtZWQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1yZXF1aXJlZAogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IGF0IGxlYXN0IG9uZSB2YWx1ZSBtdXN0IGJlIHNwZWNpZmllZCBmb3IgdGhlIGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtc210Zm0tcGF0dGVybgogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBidXQgZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkIG11c3QgY29uZmlybSB0byB0aGUgc3BlY2lmaWVkIHJlZ3VsYXIgZXhwcmVzc2lvbi48L3A+CgkgPHA+SWYgYm90aCB0aGUgZGF0YS1zbXRmbS1wYXR0ZXJuIGFuZCB0aGUgcGF0dGVybiBhdHRyaWJ1dGVzIGFyZSBwcm92aWRlZCBmb3IgYW4gaW5wdXQgZWxlbWVudCwgdGhlbiB0aGUgZGF0YS1jZmJmLXBhdHRlcm4gYXR0cmlidXRlIHdpbGwgdGFrZSBwcmVjZWRlbnNlLiAgVGhpcyBpcyB0byBhbGxvdyBmb3IgdGhpcmQgcGFydHkgbGlicmFyaWVzIHRoYXQgaGF2ZSBleHRlbmRlZCB0aGUgcHVycG9zZSBvZiB0aGUgcGF0dGVybiBhdHRyaWJ1dGUuPC9wPgoJIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gUEhQIHJlcXVpcmVzIGEgc3RhcnQgYW5kIGVuZCBkZWxpbWl0ZXIgdG8gYSByZWd1bGFyIGV4cHJlc3Npb24uIGkuZTogPGNvZGU+fFswLTldKnw8L2NvZGU+IHdoZXJlYXMgSFRNTCBkb2VzIG5vdC4gIFNtYXJ0Rm9ybXMgd2lsbCBwcm92aWRlIHRoZW0uPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1taW4gKHRvZG8pCiAgICAgICAgIDxwPkFwcGxpY2FibGUgdG8gaW50ZWdlciBhbmQgZmxvYXQgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgYSBtaW5pbXVtIHZhbHVlIGZvciBhbGwgdmFsdWVzIG9mIHRoZSBmaWVsZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLW1heCAodG9kbykKICAgICAgICAgPHA+QXBwbGljYWJsZSB0byBpbnRlZ2VyIGFuZCBmbG9hdCBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyBhIG1heGltdW0gdmFsdWUgZm9yIGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtc210Zm0tY2FwdGNoYQogICAgICAgICA8cD5UaGlzIGF0dHJpYnV0ZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzLiAgT24gcmVuZGVyIGl0IHdpbGwgYXBwZW5kIHRoZSBjb250ZW50cyBvZiBhIDxjb2RlPiZsdDtkaXYmZ3Q7PC9jb2RlPiB0YWcgd2l0aCB0aGlzIGF0dHJpYnV0ZSB3aXRoIHNvbWUgY2FwdGNoYSBpbnB1dC4gIE9uIHZhbGlkYXRpb24gdGhlIGNhcHRjaGEgd2lsbCBiZSB0ZXN0ZWQuPC9wPgogICAgICA8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5EYXRhIGF0dHJpYnV0ZXMgdXNlZnVsIGZvciBzY2FubmluZyBhbmQgZGlzcG9zaXRpb24KICAgIDx1bD4KICAgICAgPGxpPmRhdGEtc210Zm0tbm9sYWJlbAoJICA8cD5UaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIGR1cmluZyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyB0byBpbmRpY2F0ZSB0aGF0IGEgbGFiZWwgZm9yIHRoZSBmaWVsZCBpcyBub3QgcmVxdWlyZWQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1zbXRmbS1sYWJlbAogICAgICAgICA8cD5UaGlzIGF0dHJpYnV0ZSBpcyB1c2VmdWwgb24gcmFkaW8tYnV0dG9uIGFuZCBjaGVja2JveCBncm91cHMgd2hlbiB0aGUgZm9ybSBpcyBzY2FubmVkIGFuZCBwYXJzZWQuICBCZWNhdXNlIGluZGl2aWR1YWwgcmFkaW8tYnV0dG9uIG9yIGNoZWNrYm94IGZpZWxkcyBtYXkgaGF2ZSBzZXBhcmF0ZSBsYWJlbHMsIHRoaXMgYXR0cmlidXRlIGFsbG93cyBleHBsaWNpdGx5IHNwZWNpZnlpbmcgYSBsYWJlbCB0byBiZSB1c2VkIGZvciB0aGUgZmllbGQgYXMgYSB3aG9sZSBpbiB0aGUgZGlzcG9zaXRpb24gcHJvY2Vzcy48L3A+CgkgPHA+dGhpcyBhdHRyaWJ1dGUgY2FuIGJlIHVzZWQgb24gYW55IGlucHV0IGVsZW1lbnQgdG8gZm9yY2Ugc3BlY2lmeWluZyB0aGUgbGFiZWwgZm9yIHRoZSBlbGVtZW50LCBwYXJ0aWN1bGFybHkgaWYgaW4geW91ciBtYXJrdXAgYSBzcGVjaWZpYyBsYWJlbCBmaWVsZCBpcyBub3QgcmVxdWlyZWQsIGFuZCB5b3Ugd2lzaCB0byBoYXZlIHJlYWRhYmxlIHByb21wdHMgZm9yIHZhcmlvdXMgZmllbGRzLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtc210Zm0taHVtYW4KICAgICAgICAgPHA+VGhpcyBhdHRyaWJ1dGUgaXMgdXNlZnVsIG9uIHRoZSBpbmRpdmlkdWFsIG9wdGlvbnMgb2Ygc2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uIGdyb3Vwcywgb3IgY2hlY2tib3gtZ3JvdXBzIHRvIHNwZWNpZnkgYSBodW1hbiByZWFkYWJsZSB2YWx1ZSBmb3IgZWFjaCBvcHRpb24gdG8gdXNlIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlbiB0aGUgdGV4dCBwb3J0aW9uIG9mIGVhY2ggJmx0O29wdGlvbiZndDsgZWxlbWVudCwgb3IgdGhlIGxhYmVsIG9mIGVhY2ggcmFkaW8tYnV0dG9uIG9yIGNoZWNrYm94IHdpbGwgYmUgdXNlZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLXNtdGZtLXJlcGx5dG8KICAgICAgICAgPHA+VGhpcyBhdHRyaWJ1dGUgaXMgdXNlZnVsIHRvIGlkZW50aWZ5IGEgZmllbGQgdGhhdCBvbiBzdWJtaXNzaW9uIHdpbGwgY29udGFpbiBhbiBlbWFpbCBhZGRyZXNzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSByZXBseXRvLWFkZHJlc3Mgb2YgZW1haWxzIHNlbnQgdG8gYWRtaW5pc3RyYXRvcnMuPC9wPgoJIDxwPmkuZTogIDxjb2RlPiZsdDtpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0ieW91cl9lbWFpbCIgZGF0YS1zbXRmbS1yZXBseXRvIHJlcXVpcmVkJmd0OzwvY29kZT4KCSA8cD5Gb3IgZW1haWxzIHRoYXQgYXJlIHNlbnQgdG8gZml4ZWQgYWRkcmVzc2VzIG9yIHRvIGFkbWluIGdyb3VwcywgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgd2lsbCBiZSB1c2VkIGFzIHRoZSByZXBseS10byBlbWFpbCBhZGRyZXNzLjwvcD4KICAgICAgPC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KCjxoMz5TbWFydHkgcGx1Z2lucyBhbmQgdmFyaWFibGVzIGZvciBmb3JtIHJlbmRlcmluZzwvaDM+Cjx1bD4KICA8bGk+PGNvZGU+e3NtdGZtX2Zvcm1fZXJyb3JzIGFzc2lnbj1zdHJpbmd9PC9jb2RlPgogICAgIDxwPkdhdGhlciBmb3JtIGVycm9ycyBmcm9tIHNlcnZlciBzaWRlIHZhbGlkYXRpb24sIGFuZCBhc3NpZ24gdGhlbSB0byBhIHNtYXJ0eSBhcnJheS4gaS5lLjo8L3A+CiAgICAgPHByZT48Y29kZT57c210Zm1fZm9ybV9lcnJvcnMgYXNzaWduPWVycm9yc30Ke2lmICFlbXB0eSgkZXJyb3JzKX0KICAmbHQ7dWwgY2xhc3M9ImVycm9ycyImZ3Q7CiAgICB7Zm9yZWFjaCAkZXJyb3JzIGFzICRlcnJvcn0KICAgICAgICZsdDtsaSZndDt7JGVycm9yfSZsdDsvbGkmZ3Q7CiAgICB7L2ZvcmVhY2h9CiAgJmx0Oy91bCZndDsKey9pZn08L2NvZGU+PC9wcmU+CiAgPC9saT4KPC91bD4KCjxoMz5Db25maWcgdmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBzZXQgdGhlIGZvbGxvd2luZyBjb25maWcgdmFyaWFibGVzIHRvIGluZmx1ZW5jZSBtb2R1bGUgYmVoYXZpb3I6PC9wPgo8dWw+CiAgPGxpPjxjb2RlPiRjb25maWdbJ3NtdGZtX3NraXBfdmVyc2lvbmNoZWNrJ108L2NvZGU+ID0gYm9vbAogICAgIDxwPklmIGVuYWJsZWQsIFNtYXJ0Rm9ybXMgd2lsbCBub3QgdGVzdCBpZiB5b3VyIGZvcm1zIHdlcmUgc2F2ZWQgd2l0aCBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUuPC9wPgogIDwvbGk+CiAgPGxpPjxjb2RlPiRjb25maWdbJ3NtdGZtX3NraXBfZGF0ZWNoZWNrJ108L2NvZGU+ID0gYm9vbAogICAgIDxwPklmIGVuYWJsZWQsIFNtYXJ0Rm9ybXMgd2lsbCBub3QgdGVzdCBpZiB5b3VyIHRlbXBsYXRlIHdhcyBhbHRlcmVkIGFmdGVyIHlvdXIgZm9ybSB3YXMgc2F2ZWQuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+VGlwcyBhbmQgVGVjaG5pcXVlczwvaDM+Cjx1bD4KICA8bEk+U2V0dGluZyBmaWVsZCB2YWx1ZXM6CiAgICAgPHA+SW4gbW9zdCBjYXNlcywgU21hcnRGb3JtcyBjYW4gc2V0IGZpZWxkIHZhbHVlcyBhdXRvbWF0aWNhbGx5IGZvciB5b3UuICBJbmNsdWRpbmcgdGhlIHRleHQgY29udGVudCBvZiB0ZXh0YXJlYSBmaWVsZHMsIHNlbGVjdGVkIG9wdGlvbnMgaW4gc2VsZWN0IHN0YXRlbWVudHMuIGFuZCBjaGVja2VkIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9uIGZpZWxkcy4gICBUaGlzIGlzIGRvbmUgYnkgdXNpbmcgdGhlIGZvcm0gc3VibWlzc2lvbiBkYXRhLCBhbmQgYWRqdXN0aW5nIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSBvZiBlbGVtZW50cyB3aGVuIHJlZGVyaW5nIHRoZSBmb3JtLjwvcD4KICAgICA8cD5EaXNhYmxpbmcgdGhpcyBhdXRvLXZhbHVlIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBlbnRpcmUgZm9ybSBpcyBwb3NzaWJsZSBieSBhZGRpbmcgdGhlIGRhdGEtY2ZiZi1ub2F1dG92YWx1ZSBhdHRyaWJ1dGUgdG8gdGhlIGZvcm0gZWxlbWVudC48L3A+CiAgICAgPHA+RGlzYWJsaW5nIHRoaXMgYXV0by12YWx1ZSBmdW5jdGlvbmFsaXR5IGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnQgaXMgcG9zc2libGUgYnkgYWRkaW5nIHRoZSBkYXRhLXNtdGZtLW5vYXV0b3ZhbHVlIGF0dHJpYnV0ZSB0byBhbiBpbmRpdmlkdWFsIGlucHV0LCBzZWxlY3QsIG9yIHRleHRhcmVhIGVsZW1lbnQuPC9wPgogICAgIDxwPkF1dG8tdmFsdWUgY2FsY3VsYXRpb24gd2lsbCBhbHNvIGJlIGRpc2FibGVkIG9uIGluZGl2aWR1YWwgaW5wdXQgZWxlbWVudHMgKHRoYXQgYXJlIG5vdCBjaGVja2JveGVzIG9yIHJhZGlvIGJ1dHRvbnMpLCBJRiB0aGUgZWxlbWVudCBoYXMgYSB2YWx1ZSBhdHRyaWJ1dGUuPC9wPgogICAgIDxwPmF1dG8gdmFsdWUgY2FsY3VsYXRpb24gaXMgYWxzbyBkaXNhYmxlZCBmb3Igc2VsZWN0IGJveGVzLCBjaGVja2JveGVzIG9yIHJhZGlvIGJ1dHRvbnMgd2l0aCB0aGUgZGF0YS1zbXRmbS1zZWxlY3RlZCBhdHRyaWJ1dGUuPC9wPgogICAgIDxwPlRoZSA8Y29kZT57JGZvcm1fZGF0YX08L2NvZGU+IHNtYXJ0eSB2YXJpYWJsZSByZXByZXNlbnRzIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmb3JtIHJlc3BvbnNlIGluZm9ybWF0aW9uLiAgSXQgYWxzbyByZXByZXNlbnRzIGluaXRpYWwgZm9ybSBzdGF0ZSBiZWZvcmUgdGhlIGZvcm0gaGFzIGJlZW4gc3VibWl0dGVkLiAgWW91IGNhbiB1c2UgdGhpcyBvYmplY3QncyB2YXJpb3VzIG1lbWJlcnMgdG8gc2V0IHRoZSBmaWVsZCBkYXRhIHVzaW5nIHNtYXJ0eSBsb2dpYy4gIGkuZS46PC9wPgogICAgIDxwcmU+PGNvZGU+Jmx0O2lucHV0IHR5cGU9InRleHQiIG5hbWU9InNvbWV0aGluZyIgdmFsdWU9InskZm9ybV9kYXRhLT5zb21ldGhpbmd9Ii8mZ3Q7PC9jb2RlPjwvcHJlPgogIDwvbGk+CiAgPGxpPkNhcHRjaGEgdmFsaWRhdGlvbi4KICAgICA8cD5DYXB0Y2hhIHZhbGlkYXRpb24gaXMgYSB0d28gcGFydCBwcm9jZXNzLiAgYTogIHRoZSBjYXB0Y2hhIG11c3QgYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0gdXNpbmcgdGhlICZsdDtkaXYgZGF0YS1zbXRmbS1jYXB0Y2hhJmd0OyZsdDsvZGl2Jmd0OyBzeW50YXgsIGFuZCBiOiBUaGUgY2FwdGNoYSBpbnB1dCBtdXN0IGJlIHZhbGlkYXRlZCBpbiB0aGUgcmVzcG9uc2UuICBZb3UgbXVzdCBoYXZlIGEgJnF1b3Q7VmFsaWRhdGUgQ2FwdGNoYSZxdW90OyB2YWxpZGF0aW9uIGVuYWJsZWQuPC9wPgogIDwvbGk+CiAgPGxpPkxpbWl0IHRoZSBudW1iZXIgb2YgZmllbGRzLgogICAgIDxwPkZvciBhIGJldHRlciB1c2VyIGludGVyZmFjZSBpdCBpcyBpbXBvcnRhbnQgdG8gbGltaXQgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gYSBmb3JtLiAgSWYgeW91ciBmaWVsZCBoYXMgbW9yZSB0aGFuIGFib3V0IGEgZG96ZW4gZmllbGRzIHRoYXQgdGhlIHVzZXIgY2FuIGVkaXQgb3IgYWRqdXN0IHRoZW4gdHlwaWNhbGx5IHVzZXJzIHdpbGwgbm90IHJlc3BvbmQgdG8gdGhlbSwgb3IgaWYgdGhleSBkbyB0aGUgcXVhbGl0eSBvZiB0aGUgaW5mb3JtYXRpb24gc3VibWl0dGVkIGlzIHJlZHVjZWQuICBmb3IgdGhvc2UgcHVycG9zZXMgaXQgaXMgb2Z0ZW4gYmVzdCB0byBrZWVwIHRoZSBmb3JtcyBzbWFsbCwgc2ltcGxlLCBhbmQgZWFzeSB0byB1c2UuPC9wPgogIDwvbGk+CiAgPGxpPkNvbmRpdGlvbmFsIEZpZWxkcwogICAgIDxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIGhpZGUgZGlmZmVyZW50IGZpZWxkcyBiYXNlZCBvbiBjZXJ0YWluIGNvbmRpdGlvbnMsIGl0IGlzIGJlc3QgdG8gZG8gdGhhdCB1c2luZyBqYXZhc2NyaXB0IGFuZCB5b3VyIGZhdm9yaXRlIGpxdWVyeSBwbHVnaW5zIGV0Yy48L3A+CiAgICAgPHA+SGludDogIFlvdSBjYW4gc3VwcGx5IGRhdGEgdG8gamF2YXNjcmlwdCBmcm9tIHdpdGhpbiB5b3VyIHRlbXBsYXRlIHVzaW5nIHNtYXJ0eSB2YXJpYWJsZXMuIGkuZS46PC9wPgogICAgIDxwcmU+Jmx0O3NjcmlwdCZndDt2YXIgZmV1X3VpZCA9ICd7JGZldV9zbWFydHk6OmdldF9jdXJyZW50X3VzZXJpZCgpfSc7Jmx0Oy9zY3JpcHQmZ3Q7PC9wcmU+CiAgPC9saT4KICA8bGk+RHluYW1pYyBtdWx0aS1vcHRpb24gZmllbGRzCiAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gYWRkIG9wdGlvbnMgdG8gc2VsZWN0LCBvciBvdGhlciBtdWx0aS1vcHRpb24gZmllbGRzIChjaGVja2JveCBncm91cHMsIHJhZGlvLWJ1dHRvbiBncm91cHMpIGR5bmFtaWNhbGx5IHZpYSBzbWFydHkgcGx1Z2lucyB3aGVyZSB0aGUgb3B0aW9ucyBpbiB0aGUgZmllbGQgbWF5IGNoYW5nZSwgaXQgaXMgYmVzdCB0byB0dXJuIG9mZiB2YWxpZGF0aW9uIGZvciB0aGF0IGZpZWxkLjwvcD4KICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgd2lsbCB0dXJuIG9mZiBhbGwgdmFsaWRhdGlvbnMgZm9yIHRoYXQgZmllbGQsIGluY2x1ZGluZyBIVE1MIHZhbGlkYXRpb24uPC9wPgogIDwvbGk+CiAgPGxpPlByZS1maWxsZWQgZmllbGRzCiAgICAgPHA+VGhlcmUgYXJlIG51bWVyb3VzIHdheXMgdG8gcHJvdmlkZSBpbml0aWFsIGRhdGEgdG8gYSBmb3JtIChpLmUuOiBiZWZvcmUgdGhlIGZvcm0gaXMgc3VibWl0dGVkIGJ5IHRoZSB1c2VyIGZvciB0aGUgZmlyc3QgdGltZSkuIFRoZXNlIG1ldGhvZHMsIGlmIGRvbmUgY29ycmVjdGx5IHdpbGwgYWxzbyBwcmVzZXJ2ZSB1c2VyIGRhdGEgaWYgdGhlcmUgaXMgYW4gZXJyb3IgaW4gZm9ybSBzdWJtaXNzaW9uLjwvcD4KICAgICA8dWw+CiAgICAgICA8bGk+VXNpbmcgZmllbGQgbmFtZSBhcmd1bWVudHMgb24gdGhlIHNtYXJ0eSB0YWc6CiAgICAgICAgICA8cD5pLmUuOiAgPGNvZGU+e1NtYXJ0Rm9ybXMgZm9ybT0nbXlmb3JtJyBzbXRmbV9teWZpZWxkbmFtZT0nc29tZXZhbHVlJ308L2NvZGU+PC9wPgogICAgICAgPC9saT4KICAgICAgIDxsaT5DYWxsaW5nIDxjb2RlPntzbXRmbV9zZXQgZmllbGQ9ZmllbGRfbmFtZSB2YWx1ZT1zb21ldGhpbmd9PC9jb2RlPiB0aGUgJnF1b3Q7UHJlLXJlbmRlciBMb2dpYyZxdW90OyB0YWIgd2hlbiBlZGl0aW5nIHRoZSBmb3JtLjwvbGk+CiAgICAgICA8bGk+Q2FsbGluZyBhIFVEVCBmcm9tIHdpdGhpbiB0aGUgZm9ybSB0ZW1wbGF0ZSB0byBhZGp1c3QgdGhlICRmb3JtX2RhdGEgcmVzcG9uc2Ugb2JqZWN0LjwvbGk+CiAgICAgICA8bGk+VXNpbmcgdGhlIDxjb2RlPmRhdGEtc210Zm0tc2VsZWN0ZWQ8L2NvZGU+IGF0dHJpYnV0ZSBvbiBzZWxlY3QgYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbiBncm91cHMuPC9saT4KICAgICAgIDxsaT5Vc2luZyA8Y29kZT57JGZvcm1fZGF0YS0+bXlmaWVsZG5hbWV9PC9jb2RlPiBhbmQgdGhlICZxdW90O2RlZmF1bHQmcXVvdDsgc21hcnR5IG1vZGlmaWVyLgogICAgICAgICAgPHA+aS5lOiA8Y29kZT57JGZvcm1fZGF0YS0+bXlmaWVsZG5hbWV8ZGVmYXVsdDonZm9vJ308L2NvZGU+LjwvcD4KICAgICAgIDwvbGk+CiAgICAgPC91bD4KICA8L2xpPgogIDxsaT5QcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiBoaWRkZW4gZmllbGRzIGluIHN1Ym1pc3Npb24uCiAgICAgPHA+WW91IGNhbiB1c2UgdGhlICJWYWxpZGF0ZSB2aWEgc21hcnR5IFRlbXBsYXRlIiB2YWxpZGF0aW9uIHRvIHZlcmlmeSB0aGF0IGhpZGRlbiBmaWVsZHMgaGF2ZSBhIHByZXNldCB2YWx1ZSBvciBhcmUgZW1wdHkgdXBvbiBzdWJtaXNzaW9uLCBidXQgYmVmb3JlIGFueSB2YWx1ZXMgYXJlIGNhbGN1bGF0ZWQuCiAgICAgPHA+Rm9yIGVtcHR5IGZpZWxkcyB5b3UgY2FuIGFsc28gc2V0IGEgdmFsaWRhdGlvbiBwYXR0ZXJuLiAgaS5lOiBpZiB0aGUgaGlkZGVuIGlucHV0IG11c3QgYmUgZW1wdHkgb24gc3VibWl0IGEgcGF0dGVyIG9mOiA8Y29kZT5kYXRhLXNtdGZtLXBhdHRlcm49Il4kIjwvY29kZT4gc2hvdWxkIGJlIHN1ZmZpY2llbnQuLjwvcD4KICA8L2xJPgogIDxsaT5Xb3JraW5nIHdpdGggRmlsZXM8L2xpPgogIDxsaT5BcnJheXMgb2YgZGF0YTwvbGk+CiAgPGxpPkNhbGN1bGF0ZWQgZmllbGRzCiAgICAgIDxwPlVzZSB0aGUgIkNvbXB1dGUgYSBGaWVsZCBWYWx1ZSIgdmFsaWRhdGlvbi48L3A+CiAgPC9saT4KICA8bGk+VURUJ3MgaW4gdmFsaWRhdGlvbgogICAgIDxwPllvdSBjYW4gdXNlIHRoZSAiVmFsaWRhdGUgdmlhIFNtYXJ0eSBUZW1wbGF0ZSIgdmFsaWRhdGlvbi4gSW4gdGhlIHRlbXBsYXRlIGZvciB0aGF0IHZhbGlkYXRpb24gY2FsbCB5b3VyIFVEVC4gIElmIHlvdXIgVURUIHJldHVybnMgYW55IG91dHB1dCBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSB2YWxpZGF0aW9uIGVycm9yLjwvcD4KICA8L2xpPgogIDxsaT5VRFQncyBpbiBkaXNwb3NpdGlvbnMKICAgICA8cD5Vc2UgdGhlIFN0b3BEaXNwb3NpbmcgRGlzcG9zaXRpb24sIGFuZCBpbiB0aGF0IHRlbXBsYXRlIGNhbGwgeW91ciBVRFQuICBJZiB5b3VyIFVEVCByZXR1cm5zIGFueSBvdXRwdXQgdGhlbiBkaXNwb3Npbmcgd2lsbCBzdG9wLjwvcD4KICA8L2xpPgogIDxsaT5TdWJtaXR0aW5nIHBheW1lbnQgdG8gYSBwYXltZW50IGdhdGV3YTwvbGk+CiAgICAgIDxwPkZvciBub24taW50ZXJhY3RpdmUgc3VibWlzc2lvbnMgdG8gYSBwYXltZW50IGdhdGV3YXkgdGhhdCBqdXN0IHJldHVybnMgYSBzdWNjZXNzIG9yIGZhaWx1cmUsICB0aGUgIkNvbXB1dGUiIHZhbGlkYXRpb24gY2FuIGJlIHVzZWQsIGFuZCBhIHNtYXJ0eSBwbHVnaW4KICAgICAgICAgY3JlYXRlZCB0byBzdWJtaXQgdGhlIGluZm9ybWF0aW9uLiAgT24gZXJyb3JzLCB0aGUgcGx1Z2luIHNob3VsZCB0aHJvdyBhIFxTbWFydEZvcm1zXEZpZWxkVmFsaWRhdG9yc1xWYWxpZGF0aW9uRXhjZXB0aW9uIGVycm9yLiAgT24gc3VjZXNzLCB0aGUKCSBwbHVnaW4gc2hvdWxkIGVjaG8gdGhlIG9yZGVyIG51bWJlciBzbyB0aGF0IGl0IGNhbiBiZSBzdG9yZWQgd2hlbiB0aGUgZm9ybSBpcyBoYW5kbGVkLjwvcD4KICAgICAgPHA+Rm9yIGludGVyYWN0aXZlIHN1Ym1pc3Npb25zLCBpLmUuOiBnYXRld2F5cyB0aGF0IHJlcXVpcmUgdGhlIHVzZXIgdG8gZW50ZXIgY3JlZGl0IGNhcmQgZGV0YWlscyBvciBsb2dpbiBpbmZvcm1hdGlvbiBvbiB0aGVpciBzZWN1cmUgc2l0ZS4uLgogICAgICAgICBUT0RPCiAgICAgIDwvcD4KICA8L2xpPgogIDxsaT5DaGFpbmluZyBmb3JtcwogICAgIDxvbD4KICAgICAgIDxsaT5Vc2UgYSBVRFQgdG8gZGlzcG9zZSB0aGUgZm9ybSByZXNwb25zZSB0byB0aGUgc2Vzc2lvbi48L2xpPgogICAgICAgPGxpPkVpdGhlciB1c2luZyBhbm90aGVyIGRpc3Bvc2l0aW9uLCBvciBjb2RlIHdpdGhpbiB5b3VyIFVEVCwgcmVkaXJlY3QgdG8gdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgc2Vjb25kIGZvcm0uPC9saT4KICAgICAgIDxsaT5Vc2UgaGlkZGVuIGZpZWxkcyBpbiB0aGUgc2Vjb25kIGZvcm0gdG8gY29udGFpbiB0aGUgdmFsdWVzIGZyb20gdGhlIGZpcnN0IGZvcm0uPC9saT4KICAgICA8L29sPgogIDwvbGk+CjwvdUw+Cgo8aDQ+SG9va3M8L2g0Pgo8cD5TbWFydEZvcm1zIHVzZXMgSG9va3Mgb24gZXZlcnkgZm9ybSBzdWJtaXNzaW9uLiAgSG9va3MgYXJlIGFub3RoZXIgbWV0aG9kIG9mIHVzaW5nIHRoaXJkIHBhcnR5IGNvZGUgdG8gZG8gdmFsaWRhdGlvbiBvciBkaXNwb3NpdGlvbnMgb2YgZm9ybXMuPC9wPgo8dWw+CiAgPGxpPjxjb2RlPlNtYXJ0Rm9ybXM6OnZhbGlkYXRlRm9ybTwvY29kZT4KICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIGFsbCBvdGhlciB2YWxpZGF0aW9ucy4gIFRoZSBzYW1lIGhvb2sgaXMgY2FsbGVkIGZvciBlYWNoIGZvcm0gc28gaGFuZGxlcnMgc2hvdWxkIGNoZWNrIHRoZSB2YWx1ZSBvZiB0aGUgZm9ybV9uYW1lIHByb3BlcnR5IHRvIGRvIGRpZmZlcmVudCB2YWxpZGF0aW9ucyBmb3IgZmllbGRzIG9uIGRpZmZlcmVudCBmb3Jtcy4gIFRoZSBoYW5kbGVycyBzaG91bGQgdGhyb3cgYSBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdGlvbkVycm9yIGV4Y2VwdGlvbiBpbiB0aGUgY2FzZSBvZiBlcnJvcnMuPC9wPgogICAgIDxoNT5Bcmd1bWVudHM6PC9oNT4KICAgICA8cD5UaGlzIGhvb2sgc2VuZHMgdGhlIEZvcm1SZXNwb25zZSBvYmplY3QgYXMgaXRzIHNpbmdsZSBhcmd1bWVudC48L3A+CiAgICAgPGg1PlJldHVybnM6IDxjb2RlPnZvaWQ8L2NvZGU+PGg1PgogICAgIDxoNT5FeGFtcGxlOjwvaDU+CiAgICAgPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnU21hcnRGb3Jtczo6dmFsaWRhdGVGb3JtJywgZnVuY3Rpb24oIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSAkcmVzcG9uc2UgKXsKICAgIGlmKCAkcmVzcG9uc2UtPmZvcm0gIT0gJ215Zm9ybScgKSByZXR1cm47CiAgICAkZW1haWwgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgnZW1haWwnKTsKICAgIGlmKCAhaXNfZW1haWwoJGVtYWlsKSApIHRocm93IG5ldyBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdGlvbkVycm9yKCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyk7CiAgICAvLyBoZXJlIHdlIGNvdWxkIGNoZWNrIGlmIHRoZSBlbWFpbCBhbHJlYWR5IGV4aXN0cyBpbiBvdXIgZGF0YWJhc2UsIGV0Yy4KfSk7PC9jb2RlPjwvcHJlPgogIDwvbGk+CgogIDxsaT48Y29kZT5TbWFydEZvcm1zOjpkaXNwb3NlPC9jb2RlPgogICAgIDxwPlRoaXMgaG9vayBpcyBjYWxsZWQgYWZ0ZXIgYWxsIG90aGVyIGRpc3Bvc2l0aW9ucyAoYXNzdW1pbmcgcHJvY2Vzc2luZyBoYXMgbm90IGJlZW4gc3RvcHBlZCBieSBhIHByZXZpb3VzIGRpc3Bvc2l0aW9uKSwgYnV0IGJlZm9yZSB0aGUgZmluYWwgcmVzcG9uc2UgaXMgZ2VuZXJhdGVkIG9yIGZpbmFsIHJlZGlyZWN0IGlzIHBlcmZvcm1lZC4gIFRoZSBzYW1lIGhvb2sgaXMgY2FsbGVkIGZvciBlYWNoIGZvcm0sIHNvIGhhbmRsZXJzIHNob3VsZCBjaGVjayB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gcHJvcGVydHkgb2YgdGhlIHJlc3BvbnNlIG9iamVjdCB0byBkbyBkaWZmZXJlbnQgcHJvY2Vzc2luZyBvbiBkaWZmZXJlbnQgZm9ybXMuICBUaGUgaGFuZGxlcnMgc2hvdWxkIHRocm93IHJ1bnRpbWUgZXhjZXB0aW9ucyBpbiB0aGUgY2FzZSBvZiBlcnJvcnMuPC9wPgogICAgIDxoNT5Bcmd1bWVudHM6PC9oNT4KICAgICA8cD5UaGlzIGhvb2sgc2VuZHMgdGhlIEZvcm1SZXNwb25zZSBvYmplY3QgYXMgaXRzIHNpbmdsZSBhcmd1bWVudC48L3A+CiAgICAgPGg1PlJldHVybnM6IDxjb2RlPnZvaWQ8L2NvZGU+PGg1PgogICAgIDxoNT5FeGFtcGxlOjwvaDU+CiAgICAgPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnU21hcnRGb3Jtczo6ZGlzcG9zZScsIGZ1bmN0aW9uKCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UgJHJlc3BvbnNlICl7CiAgICBpZiggJHJlc3BvbnNlLT5mb3JtICE9ICdteWZvcm0nICkgcmV0dXJuOwogICAgJG5hbWUgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgnbmFtZScpOwogICAgJGVtYWlsID0gJHJlc3BvbnNlLT5nZXRfZmllbGRfdmFsdWUoJ2VtYWlsJyk7CiAgICAvLyB2YWxpZGF0aW9uIGlzIGFscmVhZHkgZG9uZS4uLiBzYXZlIHRoaXMgaW5mbyBpbnRvIGFuIGVtYWlsIGxpc3QuCiAgICAkZmggPSBmb3BlbihDTVNfUk9PVF9VUkwuJy91cGxvYWRzL2VtYWlscy5kYXQnLCdhJyk7CiAgICBmcHJpbnRmKCAkZmgsICIkZW1haWwsJG5hbWVcbiIsICRlbWFpbCwgJG5hbWUgKTsKICAgIGZjbG9zZSggJGZoICk7Cn0pOzwvY29kZT48L3ByZT4KICA8L2xpPgoKICA8bGk+PGNvZGU+U21hcnRGb3Jtczo6Y2xlYW51cDwvY29kZT4KICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIGFsbCB2YWxpZGF0aW9ucyBhbmQgZGlzcG9zaXRpb25zIGFuZCBldmVuIGluIHRoZSBldmVudCBvZiB2YWxpZGF0aW9uIGVycm9ycy4gIEl0cyBpbnRlbnQgaXMgdG8gY2xlYW51cCBhbnkgdGVtcG9yYXJ5IGdhcmJhZ2UgbGVmdCBvdmVyIGZyb20gdmFsaWRhdGluZyBhbmQgcHJvY2Vzc2luZyB0aGUgc3VibWlzc2lvbi48L3A+CiAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgogICAgIDxwPlRoaXMgaG9vayBzZW5kcyB0aGUgRm9ybVJlc3BvbnNlIG9iamVjdCBhcyBpdHMgc2luZ2xlIGFyZ3VtZW50LjwvcD4KICAgICA8aDU+UmV0dXJuczogPGNvZGU+dm9pZDwvY29kZT48aDU+CiAgPC9saT4KPC91bD4KCjxoMz5BUEkgUmVmZXJlbmNlPC9oMz4KPHVsPgogIDxsaT48c3Ryb25nPkZvcm1SZXNwb25zZSBvYmplY3Q8L3N0cm9uZz4KICAgICA8cD5UaGlzIG9iamVjdCByZXByZXNlbnRzIHRoZSByZXN1bHRzIG9mIHVzZXIgZm9ybSBzdWJtaXNzaW9ucy4gIEl0IGVuY2Fwc3VsYXRlcyB0aGUgdXNlciBzdWJtaXR0ZWQgaW5mb3JtYXRpb24sIHVwbG9hZGVkIGZpbGVzLCBhbmQgbWV0YWRhdGEgYWJvdXQgdGhlIGZvcm0uICBUaGlzIG9iamVjdCBpcyBwYXNzZWQgdmlhIHNtYXJ0eSB0byBlYWNoIGRpc3Bvc2l0aW9uIGZvciB1c2UgaW4gVURUJ3MgYW5kIG90aGVyIGNvZGUuPC9wPgogICAgIDxoND5Qcm9wZXJ0aWVzOjwvaDQ+CiAgICAgPHVsPgogICAgICAgPGxpPjxjb2RlPmZvcm08L2NvZGU+IC0gPGVtPihzdHJpbmcsIHJlYWQgb25seSk8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtLjwvbGk+CiAgICAgICA8bGk+PGNvZGU+cmVtb3RlX2lwPC9jb2RlPiAtIDxlbT4oc3RyaW5nLCByZWFkIG9ubHkpPC9lbT4gLSBUaGUgSVAgYWRkcmVzcyBvZiB0aGUgY2xpZW50IGJyb3dzZXIuPC9saT4KICAgICAgIDxsaT48Y29kZT5zdWJtaXRfdGltZTwvY29kZT4gLSA8ZW0+KGludCwgcmVhZCBvbmx5KTwvZW0+IC0gVGhlIFVuaXggdGltZXN0YW1wIG9mIHRoZSB0aW1lIHRoYXQgdGhlIGZvcm0gd2FzIHN1Ym1pdHRlZC48L2xpPgogICAgICAgPGxpPjxjb2RlPnZlcnNpb248L2NvZGU+IC0gPGVtPihzdHJpbmcsIHJlYWQgb25seSk8L2VtPiAtIFRoZSBjdXJyZW50IHZlcnNpb24gb2YgU21hcnRGb3Jtcy48L2xpPgogICAgICAgPGxpPjxjb2RlPmd1aWQ8L2NvZGU+IC0gPGVtPihzdHJpbmcsIHJlYWQgb25seSk8L2VtPiAtIFRoZSB1bmlxdWUgZ3VpZCBvZiB0aGlzIHN1Ym1pc3Npb24uCiAgICAgICAgICA8cD5UbyBhaWRlIGluIHNlY3VpdHksIGFuZCB3aXRoIHVwbG9hZGluZyBtdWx0aXBsZSBmaWxlcywgQSB1bmlxdWUgZ3VpZCBzdHJpbmcgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gaXMgcmVuZGVyZWQuICBUaGlzIHByb3BlcnR5IGNvbnRhaW5zIHRoYXQgZ3VpZCB2YWx1ZS48L3A+CiAgICAgICA8L2xpPgogICAgIDwvdWw+CiAgICAgPGg0Pk1ldGhvZHM6PC9oND4KICAgICA8dWw+CiAgICAgICA8bGk+PGNvZGU+Z2V0X2ZpZWxkX3ZhbHVlKDxlbT5zdHJpbmc8L2VtPiAka2V5KTwvY29kZT4gLSBSZXR1cm4gdGhlIHZhbHVlIGZvciBhIHNwZWNpZmljIGZpZWxkLCBpZiBhbnkuCiAgICAgICAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgoJICAgPHA+PGNvZGU+JGtleTwvY29kZT4gLSA8ZW0+KHN0cmluZyk8L2VtPiAtIEEgZmllbGQgbmFtZS48L3A+CgkgICA8aDU+UmV0dXJuczogPGNvZGU+PGVtPm1peGVkPC9lbT48L2NvZGU+PC9oNT4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+PGNvZGU+Z2V0X2h1bWFuX3JlYWRhYmxlX2ZpZWxkX3ZhbHVlKDxlbT5zdHJpbmc8L2VtPiAka2V5KTwvY29kZT4gLSBSZXR1cm4gdGhlIGh1bWFuIHJlYWRhYmxlIHZhbHVlIGZvciBhIHNwZWNpZmljIGZpZWxkLCBpZiBhbnkuCiAgICAgICAgICAgPHA+RmllbGRzIHN1Y2ggYXMgc2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uIGdyb3VwcyBvciBjaGVja2JveC1ncm91cHMgY2FuIGhhdmUgYW4gZXhwbGljaXQgdmFsdWUgZm9yIGVhY2ggb3B0aW9uIHVzZWZ1bCBmb3IgcHJvY2Vzc2luZywgYW5kIGEgaHVtYW4gcmVhZGFibGUgdmFsdWUgdGhhdCBpcyBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIGluIGVtYWlscyBhbmQgcmVwb3J0cy4gVGhpcyBtZXRob2QgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBodW1hbiByZWFkYWJsZSB2YWx1ZSBmb3IgYSBmaWVsZCBpbiBhIHJlc3BvbnNlLiAgSWYgbm8gZXhwbGljaXQgaHVtYW4gcmVhZGFibGUgdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSB1c2VyIGVudGVyZWQgdmFsdWUgaXMgcmV0dXJuZWQgdmVyYmF0dW0uICBTZWUgdGhlIDxjb2RlPmRhdGEtc210Zm0taHVtYW48L2NvZGU+IGRhdGEgYXR0cmlidXRlLjwvcD4KICAgICAgICAgICA8aDU+QXJndW1lbnRzOjwvaDU+CgkgICA8cD48Y29kZT4ka2V5PC9jb2RlPiAtIDxlbT4oc3RyaW5nKTwvZW0+IC0gQSBmaWVsZCBuYW1lLjwvcD4KCSAgIDxoNT5SZXR1cm5zOiA8Y29kZT48ZW0+c3RyaW5nPC9lbT48L2NvZGU+PC9oNT4KCSAgIDxwPlRoZSBodW1hbiByZWFkYWJsZSB2YWx1ZSwgaWYgYW55IGNhbiBiZSBmb3VuZC4gIElmIG5vdCwgdGhlbiB0aGUgaW5wdXQgZmllbGQgdmFsdWUgd2lsbCBiZSByZXR1cm5lZC48L3A+CiAgICAgICA8L2xpPgogICAgICAgPGxpPjxjb2RlPmxpc3RfZmlsZXMoPGVtPnN0cmluZzwvZW0+ICRuYW1lID0gbnVsbCk8L2NvZGU+IC0gUmV0dXJuIGZpbGVzIHVwbG9hZGVkIHdpdGggdGhpcyBzdWJtaXNzaW9uIHJlcXVlc3QuICBJZiBhbnkuCiAgICAgICAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgoJICAgPHA+PGNvZGU+JG5hbWU8L2NvZGU+IC0gPGVtPihzdHJpbmcpPC9lbT4gLSBBbiBvcHRpb25hbCBmaWVsZCBuYW1lLjwvcD4KCSAgIDxoNT5SZXR1cm5zOiA8Y29kZT48ZW0+c3RyaW5nW118bnVsbDwvZW0+PC9jb2RlPjwvaDU+CiAgICAgICAgICAgPHA+SWYgYSBmaWVsZCBuYW1lIGlzIHNwZWNpZmllZCwgYW5kIG9uZSBvciBtb3JlIGZpbGVzIHdlcmUgdXBsb2FkZWQgZm9yIHRoYXQgZmllbGQsIHRoZW4gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYW4gYXJyYXkgb2YgZmlsZSBuYW1lcyByZXByZXNlbnRpbmcgdGhlIGZpbGVzIHVwbG9hZGVkIGZvciBodGF0IGZpZWxkLjwvcD4KCSAgIDxwPklmIG5vIGZpZWxkIG5hbWUgaXMgc3BlY2lmaWVkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBhcnJheSBvZiBhbGwgdXBsb2FkcyBmb3IgdGhlIGVudGlyZSBmb3JtIHN1Ym1pc3Npb24sIGtleWVkIGJ5IHRoZSBmaWVsZCBuYW1lLjwvcD4KCSAgIDxwPklmIG5vIGZpbGVzIHdlcmUgdXBsb2FkZWQgZm9yIHRoaXMgcmVzcG9uc2UgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbCwgb3IgYW4gZW1wdHkgYXJyYXkuPC9wPgogICAgICAgPC9saT4KICAgICAgIDxsaT48Y29kZT5oYXNfZmlsZXMoPGVtPnN0cmluZzwvZW0+ICRuYW1lKTwvY29kZT4gLSBUZXN0IGlmIGEgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZCBmb3IgYSBzcGVjaWZpYyBmaWVsZCBuYW1lLgogICAgICAgICAgIDxoNT5Bcmd1bWVudHM6PC9oNT4KCSAgIDxwPjxjb2RlPiRuYW1lPC9jb2RlPiAtIDxlbT4oc3RyaW5nKTwvZW0+IC0gQSBmaWVsZCBuYW1lLjwvcD4KCSAgIDxoNT5SZXR1cm5zOiA8Y29kZT48ZW0+Ym9vbDwvZW0+PC9jb2RlPjwvaDU+CiAgICAgICA8L2xpPgogICAgICAgPGxpPjxjb2RlPmlzX2ZpbGVfZmllbGQoPGVtPnN0cmluZzwvZW0+ICRuYW1lKTwvY29kZT4gLSBUZXN0IGlmIGEgc3BlY2lmaWMgZmllbGQgbmFtZSByZXByZXNlbnRzIGEgZmlsZSB1cGxvYWQgZmllbGQuCiAgICAgICAgICAgPGg1PkFyZ3VtZW50czo8L2g1PgoJICAgPHA+PGNvZGU+JG5hbWU8L2NvZGU+IC0gPGVtPihzdHJpbmcpPC9lbT4gLSBBIGZpZWxkIG5hbWUuPC9wPgoJICAgPGg1PlJldHVybnM6IDxjb2RlPjxlbT5ib29sPC9lbT48L2NvZGU+PC9oNT4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+PGNvZGU+aGFzX3VwbG9hZHMoKTwvY29kZT4gLSBUZXN0IGlmIHRoZSBmb3JtIHJlc3BvbnNlIGNvbnRhaW5zIGFueSB1cGxvYWRlZCBmaWxlcy4KICAgICAgICAgICA8aDU+QXJndW1lbnRzOjwvaDU+CgkgICA8aDU+UmV0dXJuczogPGNvZGU+PGVtPmJvb2w8L2VtPjwvY29kZT48L2g1PgogICAgICAgPC9saT4KICAgICAgIDxsaT48Y29kZT5nZXRfZmlsZV9hc191cmwoPGVtPnN0cmluZzwvZW0+ICRuYW1lKTwvY29kZT4gLSBHZXQgdGhlIFVSTChzKSBmb3IgYWxsIGZpbGVzIHVwbG9hZGVkIHRvIGZvciBhIHNwZWNpZmllZCBmaWVsZC4KICAgICAgICAgICA8aDU+QXJndW1lbnRzOjwvaDU+CgkgICA8cD48Y29kZT4kbmFtZTwvY29kZT4gLSA8ZW0+KHN0cmluZyk8L2VtPiAtIEEgZmllbGQgbmFtZS48L3A+CgkgICA8aDU+UmV0dXJuczogPGNvZGU+PGVtPnN0cmluZ1tdfHN0cmluZ3xudWxsPC9lbT48L2NvZGU+PC9oNT4KCSAgIDxwPlNpbWlsYXIgdG8gdGhlIDxlbT48c3Ryb25nPmxpc3RfZmlsZXMoKTwvc3Ryb25nPjwvZW0+IG1ldGhvZCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYWxsIG9mIHRoZSBmaWxlcyB1cGxvYWRlZCBmb3IgYSBzcGVjaWZpYyBmaWVsZC4gIEhvd2V2ZXIsIHRoZSBvdXRwdXQgaXMgY29tcGxldGUgVVJMcyB0byB0aGUgdXBsb2FkZWQgZmlsZXMuPC9wPgoJICAgPHA+SWYgbXVsdGlwbGUgZmlsZXMgd2VyZSB1cGxvYWRlZCBmb3IgdGhlIHNwZWNpZmVkIGZpZWxkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBhcnJheSBvZiBzdHJpbmdzLjwvcD4KCSAgIDxwPklmIGEgc2luZ2xlIGZpbGUgd2FzIHVwbG9hZGVkIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhIHNpbmdsZSBzdHJpbmcuPC9wPgoJICAgPHA+SWYgbm8gZmlsZXMgd2VyZSB1cGxvYWRlZCBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbC48L3A+CiAgICAgICA8L2xpPgogICAgICAgPGxpPjxjb2RlPmhhc19lcnJvcnMoKTwvY29kZT4gLSBUZXN0IHdoZXRoZXIgYW55IGVycm9ycyBoYXZlIGJlZW4gcmVjb3JkZWQgKHlldCkgaW4gdGhlIGZvcm0gcmVzcG9uc2UuPC9saT4KICAgICAgICAgICA8cD5UaGlzIG1ldGhvZCBpcyB1c2VmdWwgaW4gdGVtcGxhdGVzIHVzZWQgZm9yIGZpZWxkIHZhbGlkYXRpb24gYW5kIGZvciB0ZW1wbGF0ZXMgdXNlZCBpbiBkaXNwb3NpdGlvbnMgdG8gY29udHJvbCBvdXRwdXQgb3IgZnVydGhlciBhY3Rpb25zLjwvcD4KCSAgIDxwPmkuZS46IGNvZGUgbGlrZSB0aGlzIGNvdWxkIGJlIHVzZWQgaW4gdGhlICJDb21wdXRlIGEgZmllbGQgdmFsdWUiIHZhbGlkYXRpb246PC9wPgoJICAgPHByZT48Y29kZT57aWYgISRyZXNwb25zZS0mZ3Q7aGFzX2Vycm9ycygpfXtzb21lX3BsdWdpbn17L2lmfTwvY29kZT48L3ByZT4KICAgICAgIDwvbGk+CiAgICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGgzPkV4dGVuZGluZyBmdW5jdGlvbmFsaXR5PC9oMz4KPGg0PkFkZGluZyBWYWxpZGF0aW9uczwvaDQ+CjxoND5BZGRpbmcgRGlzcG9zaXRpb25zPC9oND4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NtYXJ0Zm9ybXMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJpdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0ICYgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/doc/template_help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0id2FybmluZyIgc3R5bGU9IndpZHRoOiA5NSU7Ij48c3Ryb25nPlJlbWVtYmVyPC9zdHJvbmc+IHRvIHJlLXNjYW4gYW5kIHJlLXNhdmUgYW55IGZvcm1zIHVzaW5nIHRoaXMgdGVtcGxhdGUgZWFjaCB0aW1lIHlvdSBzYXZlIGl0LjwvZGl2PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPlNtYXJ0eSBWYXJpYWJsZXM8L2xlZ2VuZD4KPHRhYmxlIHN0eWxlPSJ3aWR0aDogMTAwJTsiPgogIDx0cj4KICAgIDx0ZD4kZm9ybV9kYXRhPC90ZD4KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48ZW0+KFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSBvYmplY3QpPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRoIGNvbHNwYW49IjIiPk1lbWJlcnM8L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGNvbHNwYW49IjIiPkVhY2ggZm9ybSBmaWVsZCAoYXMgaWRlbnRpZmllZCBpbiB0aGUgZmllbGRzIHRhYikgaXMgYXZhaWxhYmxlIGFzIGEgbWVtYmVyIG9mIHRoaXMgb2JqZWN0LiBpLmU6IDxjb2RlPnskZm9ybV9kYXRhLT5mb299PC9jb2RlPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGggY29sc3Bhbj0iMiI+TWV0aG9kczwvdGg+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGNvZGU+c3RyaW5nW10geyRmb3JtX2RhdGEtPmxpc3RfZmllbGRzKCl9PC9jb2RlPjwvdGQ+CiAgICA8dGQ+UmV0dXJuIGEgbGlzdCBvZiBhbGwga25vd24gZmllbGQgbmFtZXMuPC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPlNtYXJ0eSBQbHVnaW5zPC9sZWdlbmQ+Cjx0YWJsZSBzdHlsZT0id2lkdGg6IDEwMCU7Ij4KICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPntzbXRmbV9mb3JtX2Vycm9ycyBhc3NpZ249bmFtZX08L2NvZGU+PC90ZD4KICAgIDx0ZCB2YWxpZ249InRvcCI+CiAgICAgIDxwPk91dHB1dDogIDxjb2RlPnN0cmluZ1tdPC9jb2RlPjwvcD4KICAgICAgPHA+UGFyYW1ldGVyczogPGNvZGU+YXNzaWduPC9jb2RlPiAtIEFzc2lnbiB0aGUgb3V0cHV0IGZyb20gdGhpcyBwbHVnaW4gdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgICAgIDxwPkFmdGVyIHRoZSBmb3JtIGhhcyBiZWVuIHN1Ym1pdHRlZCwgaWYgYW55IGVycm9ycyBvY2N1ciwgdGhlIGZvcm0gd2lsbCBiZSByZS1yZW5kZXJlZC4gIFRoaXMgcGx1Z2luIGNhbiBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBlcnJvcnMuPC9wPgogICAgPC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPkRhdGEgQXR0cmlidXRlczwvbGVnZW5kPgo8dGFibGUgc3R5bGU9IndpZHRoOiAxMDAlOyI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGggc3R5bGU9Im1pbi13aWR0aDogMTVlbTsiPk5hbWU8L3RoPgogICAgICA8dGg+VmFsaWQgZm9yPC90aD4KICAgICAgPHRoPkNvbnRlbnRzIChpZiBhbnkpPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZD48Y29kZT5kYXRhLXNtdGZtLW5vdmFsaWRhdGU8Y29kZT48L3RkPgogICAgICA8dGQ+aW5wdXQsIHNlbGVjdCwgdGV4dGFyZWE8L3RkPgogICAgICA8dGQ+PC90ZD4KICAgICAgPHRkPldoZW4gc2Nhbm5pbmcgdGhlIGZvcm0sIGRvIG5vdCB2YWxpZGF0ZSB0aGlzIGZpZWxkIGF0IGFsbC48L3A+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1zbXRmbS1hY2NlcHQ8Y29kZT48L3RkPgogICAgICA8dGQ+dHlwZT0iZmlsZSI8L3RkPgogICAgICA8dGQ+PHA+Q29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBtaW1lIHR5cGVzLiAgV2lsZGNhcmRzIHN1cHBvcnRlZC48L3A+PHA+aS5lOiA8Y29kZT5pbWFnZS8qLGFwcGxpY2F0aW9uL3BkZjxjb2RlPjwvcD48L3RkPgogICAgICA8dGQ+V2hlbiB2YWxpZGF0aW5nIHRoZSBmb3JtIHJlc3BvbnNlIGFjY2VwdCBvbmx5IHVwbG9hZHMgbWF0Y2hpbmcgdGhlc2UgZmlsZSB0eXBlcy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtc210Zm0tbWF4c2l6ZTxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJmaWxlIjwvdGQ+CiAgICAgIDx0ZD5pbnRlZ2VyPC90ZD4KICAgICAgPHRkPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSBvZiBhbnkgZmlsZSB1cGxvYWRlZCBmb3IgdGhpcyBmaWVsZC48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtc210Zm0tZXh0ZW5zaW9uPGNvZGU+PC90ZD4KICAgICAgPHRkPnR5cGU9ImZpbGUiPC90ZD4KICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgIDx0ZD48ZW0+KG5vdCByZWNvbW1lbmRlZCk8L2VtPiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHZhbGlkIGZpbGUgZXh0ZW5zaW9ucyB0aGF0IGNhbiBiZSB1cGxvYWRlZC48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtc210Zm0tcHJpbWl0aXZlPGNvZGU+PC90ZD4KICAgICAgPHRkPiEgdHlwZT0iZmlsZSI8L3RkPgogICAgICA8dGQ+VGhlIHZhbHVlcyA8Y29kZT5pbnQsIGZsb2F0LCBkYXRlLCBlbWFpbCwgb3Igc3RyaW5nPC9jb2RlPjwvdGQ+CiAgICAgIDx0ZD5FeHBsaWNpdGx5IHNwZWNpZnkgdGhlIHR5cGUgb2YgdmFsdWUgZXhwZWN0ZWQgaW4gdGhlIGZpZWxkLCBmb3Igc2VydmVyLXNpZGUgdmFsaWRhdGlvbiBwdXJwb3Nlcy4gIElmIG5vdCBzcGVjaWZpZWQgdGhlbiBpbnRlbGxpZ2VudCBndWVzc2VzIGFyZSBtYWRlIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGZpZWxkIGFuZCBvdGhlciBhdHRyaWJ1dGVzLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1zbXRmbS1yZXF1aXJlZDxjb2RlPjwvdGQ+CiAgICAgIDx0ZD5pbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYTwvdGQ+CiAgICAgIDx0ZD48L3RkPgogICAgICA8dGQ+SW5kaWNhdGVzIHRoYXQgYXQgbGVhc3Qgb25lIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkIHRvIHBhc3MgdmFsaWRhdGlvbi48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtc210Zm0tcGF0dGVybjxjb2RlPjwvdGQ+CiAgICAgIDx0ZD4hIHR5cGU9ImZpbGUiPC90ZD4KICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgIDx0ZD5BIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IGFsbCB2YWx1ZXMgZm9yIHRoZSBmaWVsZCBtdXN0IG1hdGNoLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1zbXRmbS1taW48Y29kZT48L3RkPgogICAgICA8dGQ+dHlwZT0ibnVtYmVyIiB8IGRhdGEtc210Zm0tcHJpbWl0aXZlPSJmbG9hdCIgfCBkYXRhLXNtdGZtLXByaW1pdGl2ZT0iaW50IjwvdGQ+CiAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICA8dGQ+VGhlIG1pbmltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD48Y29kZT5kYXRhLXNtdGZtLW1heDxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJudW1iZXIiIHwgZGF0YS1zbXRmbS1wcmltaXRpdmU9ImZsb2F0IiB8IGRhdGEtc210Zm0tcHJpbWl0aXZlPSJpbnQiPC90ZD4KICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgIDx0ZD5UaGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhpcyBmaWVsZC48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtc210Zm0tY2FwdGNoYTxjb2RlPjwvdGQ+CiAgICAgIDx0ZD4mbHQ7ZGl2Jmd0OyBvciAmbHQ7c3BhbiZndDsgb3IgJmx0O3AmZ3Q7PC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICAgIDx0ZD5NYXJrcyBhIGNvbnRhaW5lciBmb3IgcGxhY2luZyBjYXRjaGEgSFRNTCBjb2RlLiBJZiBjYXB0Y2hhIGlzIGF2YWlsYWJsZS48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtc210Zm0tY2FwdGNoYS1pbnB1dDxjb2RlPjwvdGQ+CiAgICAgIDx0ZD4mbHQ7ZGl2Jmd0OyBvciAmbHQ7c3BhbiZndDsgb3IgJmx0O3AmZ3Q7PC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICAgIDx0ZD5NYXJrcyBhIGNvbnRhaW5lciBmb3IgcGxhY2luZyBjYXRjaGEgaW5wdXQgSFRNTCBjb2RlLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1zbXRmbS1sYWJlbDxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJyYWRpbyIgb3IgdHlwZT0iY2hlY2tib3giPC90ZD4KICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgIDx0ZD5Vc2VkIG9uIHRoZSBmaXJzdCBmaWVsZCBvZiBhIGNoZWNrYm94IG9yIHJhZGlvIGdyb3VwLCBzcGVjaWZpZXMgYSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhlIGZpZWxkIGlmIG5vbmUgY2FuIG90aGVyd2lzZSBiZSBkZXRlcm1pbmVkLiAgVGhpcyBsYWJlbCBpcyB1c2VkIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1zbXRmbS1odW1hbjxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJyYWRpbyIgb3IgdHlwZT0iY2hlY2tib3giIG9yICZsdDtvcHRpb24mZ3Q7PC90ZD4KICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgIDx0ZD5Vc2VkIHRvIHNwZWNpZnkgYSBodW1hbiByZWFkYWJsZSB2YWx1ZSB0byBiZSB1c2VkIHRvIGRlbm90ZSB0aGUgb3B0aW9uIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/doc/TODO.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[RmllbGQgVmFsaWRhdG9ycwogLSBCb3QgZGV0ZWN0aW9uIChvcHRpb25hbCkKCkRpc3Bvc2l0aW9ucwogIC0gU3RvcmUgcmVzcG9uc2UgaW4gc2Vzc2lvbiAoY2FuIGJlIGRvbmUgaW4gYSBVRFQgdmlhIGFueSBkaXNwb3NpdGlvbiB0aGF0IHVzZXMgYSB0ZW1wbGF0ZSkKICAtIEZpbGUgZGlzcG9zaXRpb25zCiAgICAtIEFiaWxpdHkgdG8gc3BlY2lmeSBmaWxlIGV4dGVuc2lvbnMKClZhbGlkYXRlIHZpYSBhamF4CiAgKiBWYWxpZGF0ZSB2aWEgYWpheCAoRm9ybURhdGEgcGx1Z2luKSBkbyBub3QgYWxsb3cgZGlzcG9zaXRpb25zIHRvIHJ1biAqCiAgKiByZXR1cm4ganNvbiBkYXRhIHdpdGggZmllbGQgbmFtZSwgYW5kIGVycm9yIG1lc3NhZ2UuLi4gYWxsb3dzIGphdmFzY3JpcHQgdG8gaGlsaWdodCBiYWQgZmllbGRzICoKICAqIGFzIGEgc21hcnR5IHBsdWdpbiBsaWtlIHtzbXRmbV9wcmVzdWJtaXRfdmFsaWRhdGV9Cgp7c210Zm1fc2V0X3Jlc3BvbnNlX3ZhbHVlIGZpZWxkPXh4eHggdmFsdWU9eHh4eH0gZm9yIHVzZSBpbiB2YWxpZGF0aW9ucyBhbmQgZGlzcG9zaXRpb24gdGVtcGxhdGVzLgoKTGFuZ3VhZ2Ugc3RyaW5ncyAocGFydGljdWxhcmx5IGZvciBleGNlcHRpb25zKQpTb21lIHdheSBvZiBjbGVhbmluZyB1cCB1cGxvYWRlZCBmaWxlcwpBUEkgRG9jdW1lbnRhdGlvbgpVc2FnZSBEb2N1bWVudGF0aW9uCiEhISBIYW5kbGUgc2Nhbm5pbmcgb2Ygc21hcnR5IHRlbXBsYXRlIHZpYSBhIGZyb250ZW5kIHJlcXVlc3QgPz8KICAgLSBwZXJoYXBzIHNldCBhIHNlc3Npb24gdmFyaWFibGUsIHRoZW4gcmVuZGVyIHRoZSBwYWdlIChub24taW5saW5lKSBvciB1c2Ugc2hvd3RlbXBsYXRlPWZhbHNlIGlubGluZS4uLiBhbmQgZ2F0aGVyIHRoZSBvdXRwdXQuCiAgIC0gcGFzcyBhIHJlbmRlcj1HVUlEIHBhcmFtLCBjb21wYXJlIGl0IHRvIGEgc2Vzc2lvbiB2YXJpYWJsZS4uLiBpZiB0aGUgdGVzdCBwYXNzZXMgdGhlbiB3ZSBqdXN0IGdldCB0aGUgcmVuZGVyZWQgSFRNTAogICAqIE5lZWQgYSBQQUdFIGlkCgpGb3JtUmVzcG9uc2U6OnRvX2pzb24KLy8ganNvbiBlbmNvZGUgdGhlIHJlc3BvbnNlIGZvciB1c2UgaW4gamF2YXNjcmlwdC4K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQABAAPIAAAAAAAEBAAEBAQICAQICAgMDAgMDAwAAACH5BAEAAAcALAAAAABAAEAAAAP+CLrcYC7KSde5p8Gn4NbcJjIe+XwhZ2GmWqJp3J3muKCfgWVz66q3IFBWy80gu56nBLSBmEIa02lAsmCRkfbYMg5xjaTyByZ2Xr107Seedr9coXvsDCWhajy4zI9trRdPcX95b3hBWABtcCCMaGs2ei5iN25zkil1W5kzizufoKGio6QsK4EbpaqrrBdLnq2xslcKsLO3qzeUOhhLfoq0v5EhObyBHJTAx1m1tGVqFHfNqA87w6+mZw6WltYntjxz0xmXv3KnPOMMuB+4utnG5NW3nbftvcimgLJ29PnU8VS4+ydLRDJw3UJVIvMDUQlpytJFbBjRW6I+dXZpxDf+RFRDTCC9qSPI0OOgOHTqAYSIq2Wpe8viuZypb2IqmjhXwsuZU2U4m488iMRYo1Q/ahOZzTvmSxNBUh02ujKnDkuVhTJzHQwW1OJJdC2P8rsZq+uodf6WrnKqVlpWVj6h9gkCCu0sgarWMBz3E+LDUJuELnpGxu1Qu58YVfyItUXNZAYVvrnjxZKaZRE3iQq6+E0UpLze8bRGeMpgeRVHe8YBqh3i0VaLSHYz2q1gKAphCK59gDXHtyif8uzRGvhVCbwBpt6swTdvJXnNpNTNcJjftp+OB/ZBhLqWw1Elj9m292vsgGPqXi2Derv7j17pZtP7NvlP+dAm2c9dSMsio/0mUcEMWQC2xsV6wRUIVSHnKGiUUyg4mEtIErbC3igJAAA7]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/async_upload.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aWYoIHdpbmRvdy5qUXVlcnkgKSB7CiAgICAvLyB0aGlzIHRhZyBtdXN0IGJlIElOU0lERSB0aGUgZm9ybSBIVE1MLgogICAgLy8gdGhpcyBjb2RlIHNob3VsZCBiZQogICAgdmFyIHRoaXNTY3JpcHQgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0OwogICAgJChmdW5jdGlvbigpewogICAgICAgIHZhciBmb3JtID0gJCh0aGlzU2NyaXB0KS5jbG9zZXN0KCdmb3JtJyk7Cglmb3JtLlNNVEZNVXBsb2FkSGFuZGxlcigpOwoJLyoKICAgICAgICBpZiggIWRvY3VtZW50LmNnYmYudXBsb2FkU2NyaXB0ICkgewoJICAgIHZhciBzbXRmbV91cGxvYWRIYW5kbGVyID0gJ3skbW9kLT5HZXRNb2R1bGVVUkxQYXRoKCkuJy9qcy9qcXVlcnkuQ0dCRlVwbG9hZEhhbmRsZXIuanMnfSc7CgkgICAgaWYoICFkb2N1bWVudC5jZ2JmICkgZG9jdW1lbnQuY2diZiA9IHt9OwogICAgCSAgICB2YXIgc2NyaXB0X2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CgkgICAgJChib2R5KS5hcHBlbmQoc2NyaXB0X2VsKTsKCSAgICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7CgkgICAgICAgZG9jdW1lbnQuY2diZi51cGxvYWRTY3JpcHQgPSAxOwoJICAgICAgIGZvcm0uQ0dCRlVwbG9hZEhhbmRsZXIoKTsKCSAgICB9CgkgICAgc2NyaXB0LnNyYyA9IHNtdGZtX3VwbG9hZEhhbmRsZXI7CiAgICAgICAgfQoJZWxzZSB7CgkgICAgZm9ybS5DR0JGVXBsb2FkSGFuZGxlcigpOwoJfQoJKi8KICAgIH0pOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/js/jquery.SMTFMUploadHandler.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uICggJCApIHsKICAgIHZhciB0aGlzU2NyaXB0ID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdDsKICAgIHZhciBhamF4X3VybCA9IHRoaXNTY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLXNtdGZtLXVwbG9hZHVybCcpOwogICAgaWYoICFhamF4X3VybCApIHRocm93ICJTTVRGTVVwbG9hZEhhbmRsZXIgY291bGQgbm90IGRldGVybWluZSB1cGxvYWQgVVJMIjsKCiAgICAkLmZuLlNNVEZNVXBsb2FkSGFuZGxlciA9IGZ1bmN0aW9uKCBvcHRpb25zICkgewoJLy8gd2UgZXhwZWN0IGEgc2luZ2xlIGZvcm0KCXZhciBmb3JtID0gdGhpczsKCXZhciBndWlkID0gJCgnaW5wdXRbbmFtZT1fX2d1aWRdJyxmb3JtKS52YWwoKTsKCXZhciBzZXR0aW5ncz0gICQuZXh0ZW5kKHsKCSAgICBzdWJtaXRfbmFtZTogJ3N1Ym1pdCcsCgkgICAgdXBsb2FkX3VybDogYWpheF91cmwsCgkgICAgdXBsb2FkX2ZhaWxfbXNnOiAnT25lIG9yIG1vcmUgdXBsb2FkcyBmYWlsZWQnCgl9KTsKCglmdW5jdGlvbiB1cGxvYWRGaWxlKCBuYW1lLCBpc19tdWx0aXBsZSwgZmlsZSApIHsKCSAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKCSAgICBmb3JtRGF0YS5hcHBlbmQoICdmaWxlJywgZmlsZSApOwoJICAgIGZvcm1EYXRhLmFwcGVuZCggJ2d1aWQnLCBndWlkICk7CgkgICAgZm9ybURhdGEuYXBwZW5kKCAnZWxlbWVudCcsIG5hbWUgKTsKCSAgICByZXR1cm4gJC5hamF4KHsKCQl0eXBlOiAncG9zdCcsCgkJdXJsOiBzZXR0aW5ncy51cGxvYWRfdXJsLAoJCWNvbnRleHQ6IGZvcm0sCgkJY29udGVudFR5cGU6IGZhbHNlLAoJCXByb2Nlc3NEYXRhOiBmYWxzZSwKCQlkYXRhOiBmb3JtRGF0YQoJICAgIH0pLmRvbmUoZnVuY3Rpb24oZGF0YSl7CgkJdmFyIGhpZGRlbl9uYW1lID0gbmFtZTsKCQlpZiggaXNfbXVsdGlwbGUgJiYgaGlkZGVuX25hbWUuc3Vic3RyKC0yKSAhPSAnW10nICkgaGlkZGVuX25hbWUgKz0gJ1tdJzsKCQl2YXIgaGlkZGVuID0gJCgnPGlucHV0Lz4nKS5wcm9wKCd0eXBlJywnaGlkZGVuJykucHJvcCgnbmFtZScsaGlkZGVuX25hbWUpLnByb3AoJ3ZhbHVlJyxkYXRhLnRtcF9uYW1lKyc6fDonK2RhdGEubmFtZSk7CgkJZm9ybS5hcHBlbmQoaGlkZGVuKTsKCQkvLyB0b2RvOiBjYWxsIHVwbG9hZCBkb25lIGNhbGxiYWNrCgkJY29uc29sZS5kZWJ1ZygnZmluaXNuZWQgdXBsb2FkJyk7CgkgICAgfSkuZmFpbChmdW5jdGlvbih4aHIsdGV4dFN0YXR1cyxlcnJvcil7CgkJY29uc29sZS5kZWJ1ZygndXBsb2FkIGZhaWxlZCAnK3RleHRTdGF0dXMrJyAvLyAnK2Vycm9yICk7CgkgICAgfSkKCX0KCgkvLyB0b2RvOiBjYWxsIGJ1c3kgY2FsbGJhY2sKCWZvcm0uc3VibWl0KGZ1bmN0aW9uKGV2ZW50KXsKCSAgICB2YXIgaGF2ZV91cGxvYWRzID0gKCAkKCdpbnB1dFt0eXBlPWZpbGVdJyxmb3JtKS5sZW5ndGggKSA/IHRydWUgOiBmYWxzZTsKCSAgICBpZiggIWhhdmVfdXBsb2FkcyApIHJldHVybjsKCgkgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKCSAgICBmb3JtLm9mZignc3VibWl0Jyk7CgkgICAgdmFyIHByb21pc2VzID0gW107CgoJICAgICQoJ2lucHV0W3R5cGU9ZmlsZV0nLGZvcm0pLmVhY2goZnVuY3Rpb24oKXsKCQlpZiggISQodGhpcykudmFsKCkgKSByZXR1cm47CgkJdmFyIGlzX211bHRpcGxlID0gJCh0aGlzKS5wcm9wKCdtdWx0aXBsZScpOwoJCXZhciBlbF9uYW1lID0gJCh0aGlzKS5wcm9wKCduYW1lJyk7CgkJdmFyIGhpZGRlbl9uYW1lID0gZWxfbmFtZTsKCQlpZiggaXNfbXVsdGlwbGUgKSBoaWRkZW5fbmFtZSArPSAnW10nOwoJCXZhciBlbCA9ICQodGhpcylbMF07CgkJZm9yKCB2YXIgaWR4ID0gMDsgaWR4IDwgZWwuZmlsZXMubGVuZ3RoOyBpZHgrKyApIHsKCQkgICAgdmFyIGZpbGUgPSBlbC5maWxlc1tpZHhdOwoJCSAgICBwcm9taXNlcy5wdXNoKCB1cGxvYWRGaWxlKCBlbF9uYW1lLCBpc19tdWx0aXBsZSwgZmlsZSApICk7CgkJfQoJCS8vIHJlbW92ZSB0aGUgZWxlbWVudC4KCQkkKHRoaXMpLnJlbW92ZSgpOwoJICAgIH0pCgogICAgICAgICAgICBpZiggIXByb21pc2VzLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgIGZvcm0uc3VibWl0KCk7CgkJcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkLndoZW4uYXBwbHkoJCwgcHJvbWlzZXMpLmRvbmUoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIC8vIHRvZG86IGNhbGwgdW5idXN5IGNhbGxiYWNrCgkgICAgICAgIC8vdmFyIHN1Ym1pdCA9ICQoJzxpbnB1dC8+JykuYXR0cigndHlwZScsJ2hpZGRlbicpLnByb3AoJ25hbWUnLHNldHRpbmdzLnN1Ym1pdF9uYW1lKS52YWwoJzEnKTsKCSAgICAgICAgLy9mb3JtLmFwcGVuZChzdWJtaXQpOwoJICAgICAgICBmb3JtLnN1Ym1pdCgpOwogICAgICAgICAgICB9KS5mYWlsKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBhbGVydCggc2V0dGluZ3MudXBsb2FkX2ZhaWxfbXNnICk7CiAgICAgICAgICAgIH0pCgoJfSkKICAgICAgICByZXR1cm4gdGhpczsKICAgIH07Cgp9KCBqUXVlcnkgKSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ25hbWVfQ2FwdGNoYUZpZWxkVmFsaWRhdG9yJ10gPSAnVmFsaWRhdGUgdXNlciBzdWJtaXR0ZWQgY2FwdGNoYSc7CiRsYW5nWydub3RpY2Vfbm9fY2FwdGNoYSddID0gJ05PVElDRTogTm8gY2FwdGNoYSBjb250YWluZXIgd2FzIGRldGVjdGVkIGluIHRoZSBmb3JtIG1hcmt1cC4nOwokbGFuZ1snZXJyX3Vua25vd25fZGlzcG9zaXRpb24nXSA9ICdUaGlzIGZvcm0gY29udGFpbnMgYSBkaXNwb3NpdGlvbiBvZiB0eXBlICVzIHRoYXQgY2Fubm90IGJlIHJlc29sdmVkJzsKJGxhbmdbJ2Vycl91bmtub3duX3ZhbGlkYXRpb24nXSA9ICdUaGlzIGZvcm0gY29udGFpbnMgYSB2YWxpZGF0aW9uIG9mIHR5cGUgJXMgdGhhdCBjYW5ub3QgYmUgcmVzb2x2ZWQnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9yc3JjJ10gPSAnVGVtcGxhdGUgcmVzb3VyY2UnOwokbGFuZ1snaW5mb190ZW1wbGF0ZV9yc3JjJ10gPSAnSWYgYSBzbWFydHkgdGVtcGxhdGUgcmVzb3VyY2UgaXMgc3BlY2lmaWVkIGhlcmUgKGkuZTogZmlsZTpzb21ldGhpbmcudHBsKSB0aGVuIGl0IHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSB0ZW1wbGF0ZSBpZCBhYm92ZS4nOwokbGFuZ1snZXJyX2lucHV0X2h0bWxkZXRlY3RlZCddID0gJ0hUTUwgZGV0ZWN0ZWQgaW4gYSBmaWVsZCB0aGF0IGV4cGVjdHMgb25seSB0ZXh0JzsKJGxhbmdbJ3Byb21wdF91bmlxdWVmaWxlX2ZpbGVuYW1ldHBsJ10gPSAnRmlsZSBuYW1lIHRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fdW5pcXVlZmlsZV9maWxlbmFtZXRwbCddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSB1c2VkIHRvIGNyZWF0ZSB0aGUgb3V0cHV0IGZpbGVuYW1lLiAgTm90ZSwgdGhlIGZpbGVuYW1lIHNob3VsZCBlbnN1cmUgdW5pcXVlbmVzcywgb3Igb3ZlcndyaXRpbmcgbWF5IG9jY3VyLiAgSWYgdGhlIHRlbXBsYXRlIGlzIGVtcHR5LCBvciB0aGUgdGVtcGxhdGUgZG9lcyBub3QgcmVzdWx0IGluIGFueSBvdXRwdXQgYWZ0ZXIgcHJvY2Vzc2luZywgdGhlbiB0aGUgdW5pcXVlIHJlcXVlc3QgaWQgd2lsbCBiZSB1c2VkLic7CiRsYW5nWydlcnJfY2FwdGNoYV9taXNtYXRjaCddID0gJ1NvcnJ5LCBpbmNvcnJlY3QgY2FwdGNoYSB2YWx1ZSc7CiRsYW5nWyd2YWxpZGF0ZV9jYXB0Y2hhJ10gPSAnVmFsaWRhdGUgQ2FwdGNoYSc7CiRsYW5nWyd1c2VfYXN5bmNfdXBsb2FkJ10gPSAnVXBsb2FkIGZpbGVzIGFzeW5jaHJvbm91c2x5JzsKJGxhbmdbJ2luZm9fdXNlX2FzeW5jX3VwbG9hZCddID0gJ0lmIGVuYWJsZWQsIGphdmFzY3JpcHQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZm9ybSB0byBhbGxvdyB1cGxvYWRpbmcgZmlsZXMgYXN5bmNocm9ub3VzbHkuICBUaGlzIGdyZWF0bHkgaW1wcm92ZXMgdXNhYmlsaXR5IHdoZW4gdXBsb2FkaW5nIG11bHRpcGxlIGZpbGVzJzsKJGxhbmdbJ3ZhcmhlbHBfZm9ybSddID0gJ1RoZSBGb3JtIG9iamVjdCBpdHNlbGYuJzsKJGxhbmdbJ3ZhcmhlbHBfcmVzcG9uc2UnXSA9ICdUaGUgRm9ybVJlc3BvbnNlIG9iamVjdCBpdHNlbGYuJzsKJGxhbmdbJ2VkaXRfY3N2X2Rpc3Bvc2l0aW9uJ10gPSAnU2F2ZSByZXN1bHRzIHRvIGEgZmxhdCBmaWxlJzsKJGxhbmdbJ2luZm9fZmxhdGZpbGVfZmlsZW5hbWUnXSA9ICdTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBmaWxlIChyZWxhdGl2ZSB0byB0aGUgc2l0ZSByb290KSc7CiRsYW5nWydwcm9tcHRfZmlsZSddID0gJ0ZpbGUnOwokbGFuZ1snbXNnX2Zvcm1leHBvcnRlZWQnXSA9ICdGb3JtIGV4cG9ydGVkJzsKJGxhbmdbJ21zZ19pbXBvcnRlZCddID0gJ0Zvcm0gaW1wb3J0ZWQnOwokbGFuZ1snZXJyX2ltcG9ydF92YWxpZGF0aW9uX25vdGZvdW5kJ10gPSAnU29ycnksIHdlIGNvdWxkIG5vdCBmaW5kIGEgcmVnaXN0ZXJlZCB2YWxpZGF0aW9uIG9mIHR5cGUgJXMuICBUaGlzIGZvcm0gY2Fubm90IGJlIGltcG9ydGVkJzsKJGxhbmdbJ2Vycl9pbXBvcnRfZGlzcG9zaXRpb25fbm90Zm91bmQnXSA9ICdTb3JyeSwgd2UgY291bGQgbm90IGZpbmQgYSByZWdpc3RlcmVkIGRpc3Bvc2l0aW9uIG9mIHR5cGUgJXMuICBUaGlzIGZvcm0gY2Fubm90IGJlIGltcG9ydGVkJzsKJGxhbmdbJ2Vycl9pbXBvcnRfZm9ybWF0J10gPSAnU29ycnksIGJ1dCB0aGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgZGF0YSc7CiRsYW5nWydlcnJfbm91cGxvYWQnXSA9ICdZb3UgbXVzdCBzZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCc7CiRsYW5nWydlcnJfYmFkdXBsb2FkJ10gPSAnVGhlcmUgd2FzIGEgcHJvYmxlbSB1cGxvYWRpbmcgdGhlIHNlbGVjdGVkIGZpbGUnOwokbGFuZ1snaW1wb3J0X2Zvcm0nXSA9ICdJbXBvcnQgZm9ybSc7CiRsYW5nWydleHBvcnRfZm9ybSddID0gJ0V4cG9ydCB0aGlzIGZvcm0nOwokbGFuZ1snbmFtZV9TZXNzaW9uRGlzcG9zaXRpb24nXSA9ICdTdG9yZSBmb3JtIHJlc3VsdHMgaW4gdGhlIHNlc3Npb24gZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyc7CiRsYW5nWydkaXNwbGF5X0VtYWlsQWRtaW5XaXRoUmVwbHlUbyddID0gJ0VtYWlsIGZpeGVkIGFkZGVzc2VzLCBhbmQgc2V0IHJlcGx5LXRvIGFzIHZhbHVlIHByb3ZpZGVkIGluICVzIGZpZWxkJzsKJGxhbmdbJ2luZm9fZW1haWx1c2VyYWRkcmVzcyddID0gJ1NlbGVjdCBhIGZvcm0gZmllbGQgdGhhdCBzaG91bGQgY29udGFpbiBhIHVzZXIgc3VwcGxpZWQgZW1haWwgYWRkcmVzcyc7CiRsYW5nWyduYW1lX0VtYWlsQWRtaW5XaXRoUmVwbHlUbyddID0gJ1NlbmQgYW4gZW1haWwgdG8gZml4ZWQgYWRkcmVzc2VzLCB3aXRoIHJlcGx5LXRvIGFzIHVzZXIgYWRkcmVzcyc7CiRsYW5nWyduYW1lX0VtYWlsQWRtaW5Hcm91cFdpdGhSZXBseVRvRGlzcG9zaXRpb24nXSA9ICdTZW5kIGFuIGVtYWlsIHRvIG1lbWJlcnMgb2YgYW4gYWRtaW4gZ3JvdXAsIHdpdGggcmVwbHktdG8gYXMgdXNlciBhZGRyZXNzJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxBZG1pbkdyb3VwV2l0aFJlcGx5VG9EaXNwb3NpdGlvbiddID0gJ0VtYWlsIGFsbCBtZW1iZXJzIG9mIHRoZSAiJXMiIGFkbWluIGdyb3VwLCBhbmQgc2V0IHRoZSByZXBseSB0byBhZGRyZXNzJzsKJGxhbmdbJ2Vycl9ub2NvbnRlbnRzJ10gPSAnU29ycnksIGJ1dCBpdCBzZWVtcyB0aGVyZSBpcyBubyBjb250ZW50IChvciBhdCBsZWFzdCBubyB2YWxpZCBIVE1MKSBpbiB5b3VyIGZvcm0gdGVtcGxhdGUuJzsKJGxhbmdbJ25hbWVfRmlsZVZhbGlkYXRvciddID0gJ1ZhbGlkYXRlIHVwbG9hZGVkIGZpbGVzJzsKJGxhbmdbJ3Byb21wdF9wcmVyZW5kZXJfbG9naWMnXSA9ICdQcmUtcmVuZGVyIExvZ2ljJzsKJGxhbmdbJ2luZm9fcHJlcmVuZGVyX3RhYiddID0gJzxwPlVzZSB0aGUgdGV4dCBhcmVhIGJlbG93IHRvIGFkanVzdCB0aGUgJGZvcm1fZGF0YSBvYmplY3QgdGhhdCBpcyBhdmFpbGFibGUgd2hlbiB5b3VyIGZvcm0gaXMgaW5pdGlhbGx5IHJlbmRlcmVkLjxici8+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGxvZ2ljIGlzIG5vdCBldmFsdWF0ZWQgd2hlbiBoYW5kbGluZyB0aGUgZm9ybSByZXNwb25zZS48L3A+PHA+PGVtPmhpbnQ8L2VtPjogIFVzZSA8Y29kZT57c210Zm1fc2V0IGtleT1maWVsZG5hbWUgdmFsdWU9dGhldmFsdWV9PC9jb2RlPjwvcD4nOwokbGFuZ1sncHJlcmVuZGVyX2xvZ2ljJ10gPSAnUHJlLXJlbmRlciBMb2dpYyc7CiRsYW5nWydhdXRvX2FkZF92YWxpZGF0aW9ucyddID0gJ0F1dG8gQWRkIFZhbGlkYXRpb25zJzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBwbHknOwokbGFuZ1snaW5mb19zdG9wZGlzcG9zaW5nX3RwbCddID0gJ1Byb3ZpZGUgYSB0ZXN0IDxlbT4odmlhIGEgc21hcnR5IHRlbXBsYXRlKTwvZW0+IHRvIGluZGljYXRlIHdoZXRoZXIgYW55IGZ1cnRoZXIgcHJvY2Vzc2luZyBvZiBkaXNwb3NpdGlvbnMgc2hvdWxkIGJlIHByZXZlbnRlZC48YnIvPklmIHRoZSByZXN1bHQgb2YgcHJvY2Vzc2luZyB0aGlzIHRlbXBsYXRlIHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiBhbiBlbXB0eSBzdHJpbmcgYWxsIGZ1cnRoZXIgZGlzcG9zaXRpb24gcHJvY2Vzc2luZyBleGNlcHQgdGhlIGZpbmFsIGFjdGlvbiwgd2lsbCBzdG9wLiAgaS5lLjoKPHByZT57aWYgJHNvbWVfZHJvcGRvd25fZmllbGQgPT0gJnF1b3Q7c29tZV92YWx1ZSZxdW90O30xey9pZn08L3ByZT4nOwokbGFuZ1snZGlzcGxheV9TdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nXSA9ICdTdG9wIHByb2Nlc3NpbmcgZGlzcG9zaXRpb25zIGJhc2VkIG9uIGEgY29uZGl0aW9uJzsKJGxhbmdbJ25hbWVfU3RvcERpc3Bvc2luZ0Rpc3Bvc2l0aW9uJ10gPSAnU3RvcCBwcm9jZXNzaW5nIGRpc3Bvc2l0aW9ucyBiYXNlZCBvbiBhIGNvbmRpdGlvbic7CiRsYW5nWydlcnJfZm9ybV9hY3Rpb25hdHRyJ10gPSAnWW91ciBmb3JtIHRhZyBoYXMgYW4gYWN0aW9uIGF0dHJpYnV0ZS4gIFRoaXMgd2lsbCBiZSByZXBsYWNlZCB3aGVuIHRoZSBmb3JtIGlzIHJlbmRlcmVkLic7CiRsYW5nWydlcnJfZm9ybV9tZXRob2RhdHRyJ10gPSAnWW91ciBmb3JtIHRhZyBoYXMgYSBtZXRob2QgYXR0cmlidXRlLiAgVGhpcyB3aWxsIGJlIHJlcGxhY2VkIHdoZW4gdGhlIGZvcm0gaXMgcmVuZGVyZWQuJzsKJGxhbmdbJ2Vycl9mb3JtX2VuY3R5cGVhdHRyJ10gPSAnWW91ciBmb3JtIHRhZyBoYXMgYW4gZW5jdHlwZSBhdHRyaWJ1dGUuICBUaGlzIHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGUgZm9ybSBpcyByZW5kZXJlZC4nOwokbGFuZ1snaW5mb190ZW1wbGF0ZXZhbGlkYXRpb24nXSA9ICdVc2UgdGhlIGNvbnRlbnRzIG9mIHRoaXMgc21hcnR5IHRlbXBsYXRlIHRvIGV2YWx1YXRlIHRoZSBkYXRhIHN1Ym1pdHRlZCB0byB0aGUgZm9ybS4gIElmIHRoZSB0ZW1wbGF0ZSByZXR1cm5zIGFueSB2YWxpZCAobm9uIHdoaXRlc3BhY2UpIG91dHB1dCwgaXQgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBlcnJvciBhbmQgdGhlIG91dHB1dCB1c2VkIGFzIGFuIGVycm9yIG1lc3NhZ2UuICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGU6PGJyLz4KPHByZT57aWYgJGEgPCAwIHx8ICRhID4gMjB9VmFsaWQgdmFsdWVzIGZvciB0aGUgJnF1b3Q7YSZxdW90OyBmaWVsZCBhcmUgYmV0d2VlbiAwIGFuZCAyMHsvaWZ9PC9wcmU+JzsKJGxhbmdbJ2Rpc3BsYXlfVGVtcGxhdGVWYWxpZGF0aW9uJ10gPSAnVmFsaWRhdGUgdmlhIFNtYXJ0eSBUZW1wbGF0ZSc7CiRsYW5nWyduYW1lX1RlbXBsYXRlVmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRlIHZpYSBTbWFydHkgVGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fZm9ybSddID0gJ1RoZSBmb3JtIG5hbWUgdG8gcmVuZGVyIGFuZCBwcm9jZXNzJzsKJGxhbmdbJ3BhcmFtX25vZGF0ZWNoZWNrJ10gPSAnU3BlY2lmeSBhIHBvc2l0aXZlIGludGVnZXIgdG8gZGlzYWJsZSBkYXRlIGNoZWNraW5nIHdoZW4gcmVuZGVyaW5nIGEgZm9ybS4gIFRoaXMgaXMgdXNlZnVsIGZvciBkZXZlbG9wbWVudCBhbmQgdGVzdGluZyBwdXJwb3NlcywgYnV0IHNob3VsZCBub3QgYmUgdXNlZCBpbiBhIHByb2R1Y3Rpb24gc3lzdGVtLic7CiRsYW5nWydlcnJfZmllbGRfaW52YWxpZHZhbHVlJ10gPSAnVGhlIHZhbHVlIGZvciB0aGUgJXMgZmllbGQgaXMgaW52YWxpZCc7CiRsYW5nWydhdHRyaWJzJ10gPSAnQXR0cmlidXRlcyc7CiRsYW5nWydhdHRyX211bHRpcGxlJ10gPSAnbXVsdGlwbGUnOwokbGFuZ1snYXR0cl9ub3ZhbGlkYXRlJ10gPSAnbm92YWxpZGF0ZSc7CiRsYW5nWydhdHRyX21pbiddID0gJ21pbic7CiRsYW5nWydhdHRyX21heCddID0gJ21heCc7CiRsYW5nWydhdHRyX3BhdHRlcm4nXSA9ICdwYXR0ZXJuJzsKJGxhbmdbJ2F0dHJfcmVwbHl0byddID0gJ3JlcGx5dG8nOwokbGFuZ1snZXJyX2Zvcm1fdmVyc2lvbmNoYW5nZSddID0gJ1RoaXMgZm9ybSB3YXMgbGFzdCBzYXZlZCB3aXRoIGEgZGlmZmVyZW50IHZlcnNpb24gb2YgU21hcnRGb3Jtcy4uLiBwbGVhc2Ugc2NhbiBhbmQgc2F2ZSB0aGUgZm9ybS4nOwokbGFuZ1snbmFtZV9EYXRlUHJpbWl0aXZlVmFsaWRhdG9yJ10gPSAnRW5zdXJlIGEgcmVhc29uYWJsZSB2YWx1ZSBmb3IgYWxsIGRhdGUgZmllbGRzJzsKJGxhbmdbJ2Rpc3BsYXlfRGF0ZVByaW1pdGl2ZVZhbGlkYXRvciddID0gJ0Vuc3VyZSBhIHJlYXNvbmFibGUgdmFsdWUgZm9yIGFsbCBkYXRlIGZpZWxkcyc7CiRsYW5nWydlcnJfaW5wdXRfb3V0b2ZyYW5nZSddID0gJ09uZSBvciBtb3JlIHZhbHVlcyBvZiB0aGUgJXMgZmllbGQgYXJlIG91dHNpZGUgb2YgdGhlIGFsbG93ZWQgbGltaXRzJzsKJGxhbmdbJ2Rpc3BsYXlfUmVkaXJlY3RVUkxEaXNwb3NpdGlvbiddID0gJ1JlZGlyZWN0IHRvIGEgY29tcHV0ZWQgVVJMJzsKJGxhbmdbJ2luZm9fcmVkaXJlY3R1cmxfdGVtcGxhdGUnXSA9ICdUaGUgb3V0cHV0IG9mIHRoaXMgdGVtcGxhdGUgc2hvdWxkIGJlIGEgc2ltcGxlIFVSTCBpbiBhIHN0cmluZy4gIElmIG5vbiBlbXB0eSwgYW5kIGEgdmFsaWQgVVJMIHRoZW4gdGhlIHN5c3RlbSB3aWxsIHJlZGlyZWN0IHRvIHRoaXMgVVJMIHZpYSBHRVQuJzsKJGxhbmdbJ3Byb21wdF9yZWRpcmVjdHVybF90ZW1wbGF0ZSddID0gJ1VSTCBUZW1wbGF0ZSc7CiRsYW5nWyduYW1lX1JlZGlyZWN0VVJMRGlzcG9zaXRpb24nXSA9ICdSZWRpcmVjdCB0byBhIGNvbXB1dGVkIFVSTCc7CiRsYW5nWydkaXNwbGF5X0NvbXB1dGVkUGFnZURpc3Bvc2l0aW9uJ10gPSAnUmVkaXJlY3QgdG8gYSBjb21wdXRlZCBwYWdlIGFsaWFzL2lkJzsKJGxhbmdbJ3Byb21wdF9wYWdlX3RwbCddID0gJ1BhZ2UgYWxpYXMgdGVtcGxhdGUnOwokbGFuZ1snaW5mb19wYWdlX3RwbCddID0gJ1RoZSBvdXRwdXQgb2YgdGhpcyBzbWFydHkgdGVtcGxhdGUgc2hvdWxkIGJlIGEgc2luZ2xlIHBhZ2UgYWxpYXMgb3IgaWQgdG8gcmVkaXJlY3QgdG8uICBJZiBub3RoaW5nIGlzIG91dHB1dCwgdGhlbiB0aGlzIGRpc3Bvc2l0aW9uIHdpbGwgYmUgaWdub3JlZCc7CiRsYW5nWydkaXNwbGF5X0VtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbiddID0gJ1NlbmQgYSBjb3B5IG9mIHRoZSBzdWJtaXNzaW9uIHRvIHRoZSB1c2VyIGFkZHJlc3Mgc3BlY2lmaWVkIGluIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydlZGl0X0NvbXB1dGVkUGFnZURpc3Bvc2l0aW9uJ10gPSAnUmVkaXJlY3QgdG8gYSBjb21wdXRlZCBwYWdlIGFsaWFzL2lkJzsKJGxhbmdbJ25hbWVfQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24nXSA9ICdSZWRpcmVjdCB0byBhIGNvbXB1dGVkIHBhZ2UgYWxpYXMvaWQnOwokbGFuZ1sncHJvbXB0X2VtYWlsX2ZpZWxkJ10gPSAnRW1haWwgYWRkcmVzcyBmaWVsZCc7CiRsYW5nWyduYW1lX0VtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbiddID0gJ1NlbmQgZW1haWwgdG8gdXNlciBzdXBwbGllZCBhZGRyZXNzJzsKJGxhbmdbJ21zZ19zY2FubmVkX3NhdmVuZWVkZWQnXSA9ICdUaGUgZm9ybSB0ZW1wbGF0ZSBoYXMgYmVlbiBzY2FubmVkLiAgUGxlYXNlIGVuc3VyZSB0aGF0IHlvdSBzYXZlIHRoZSBmb3JtJzsKJGxhbmdbJ2Zvcm1fZnJvbV9lbWFpbCddID0gJ1JlcGx5LXRvIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZW1haWxhZGRyX3N5c2RmbHQnXSA9ICdVc2Ugc3lzdGVtIGRlZmF1bHQnOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snZm9ybV9mcm9tX25hbWUnXSA9ICdFbWFpbCByZXBseS10byBOYW1lJzsKJGxhbmdbJ2luZm9fZm9ybV9mcm9tX2VtYWlsJ10gPSAnU3BlY2lmeSBhbiBlbWFpbCBhZGRyZXNzIGZvciB0aGUgcmVwbHktdG8gYWRkcmVzcyBmb3IgZW1haWxzIHNlbnQgYnkgdGhpcyBmb3JtLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlbiBzeXN0ZW0gZGVmYXVsdCBpbmZvcm1hdGlvbiB3aWxsIGJlIHVzZWQuCjxici8+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGFkanVzdHMgdGhlIHJlcGx5LXRvIGFkZHJlc3MgaW4gdGhlIGVtYWlsIGZyb20gdGhlIHN5c3RlbSBkZWZhdWx0cy4gIFNvbWUgZGlzcG9zaXRpb25zIG1heSBmdXJ0aGVyIG1vZGlmeSB0aGUgcmVwbHktdG8gaGVhZGVyLic7CiRsYW5nWydpbmZvX2Zvcm1fZnJvbV9uYW1lJ10gPSAnU3BlY2lmeSBhIG5hbWUgdG8gdXNlIHdpdGggdGhlIHJlcGx5LXRvIGFkZHJlc3MgZm9yIGVtYWlscyBzZW50IGJ5IHRoaXMgZm9ybS4gIElmIG5vdCBzcGVjaWZpZWQsIG5vIHZhbHVlIHdpbGwgYmUgdXNlZCc7CiRsYW5nWydkaXNwbGF5X0ZpbGVWYWxpZGF0b3InXSA9ICdFbnN1cmUgYWxsIHVwbG9hZHMgY29uZm9ybSB0byBzcGVjaWZpY2F0aW9ucyBpbiBhdHRyaWJ1dGVzJzsKJGxhbmdbJ2F1dG9fdmFsaWRhdGlvbnMnXSA9ICdBdXRvIFZhbGlkYXRpb25zJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxQcmltaXRpdmVWYWxpZGF0b3InXSA9ICdFbnN1cmUgYSByZWFzb25hYmxlIHZhbHVlIGZvciBhbGwgZW1haWwgZmllbGRzJzsKJGxhbmdbJ25hbWVfRW1haWxQcmltaXRpdmVWYWxpZGF0b3InXSA9ICdFbnN1cmUgYSByZWFzb25hYmxlIHZhbHVlIGZvciBhbGwgZW1haWwgZmllbGRzJzsKJGxhbmdbJ2Rpc3BsYXlfUmVxdWlyZWRGaWVsZFZhbGlkYXRvciddID0gJ1ZhbGlkYXRlIHRoYXQgYWxsIHJlcXVpcmVkIGZpZWxkcyBhcmUgcHJlc2VudCc7CiRsYW5nWyduYW1lX1JlcXVpcmVkRmllbGRWYWxpZGF0b3InXSA9ICdWYWxpZGF0ZSB0aGF0IGFsbCByZXF1aXJlZCBmaWVsZHMgYXJlIHByZXNlbnQnOwokbGFuZ1snZXJyX2lucHV0X21pc3NpbmdyZXF1aXJlZHZhbHVlJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1Ym1pdHRlZCBmb3IgdGhlICVzIGZpZWxkJzsKJGxhbmdbJ2Zvcm1fYXV0b192YWxpZGF0aW9ucyddID0gJ1VzZSBhdXRvbWF0aWMgdmFsaWRhdGlvbnMnOwokbGFuZ1snaW5mb19hdXRvX3ZhbGlkYXRpb25zJ10gPSAnSWYgZW5hYmxlZCwgc2VydmVyIHNpZGUgdmFsaWRhdGlvbiB3aWxsIGJlIGRvbmUgYmFzZWQgb24gYXR0cmlidXRlcyBkZXRlY3RlZCBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBmb3JtIHRlbXBsYXRlLiAgT3RoZXJ3aXNlLCB5b3UgbXVzdCBtYW51YWxseSB2YWxpZGF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2Vycl91cGxvYWRfc2l6ZSddID0gJ1NvcnJ5LCBidXQgdGhlIGZpbGVzIHlvdSB1cGxvYWRlZCBmb3IgdGhlICVzIGZpZWxkIGFyZSB0b28gbGFyZ2UuJzsKJGxhbmdbJ2Vycl91cGxvYWRfdHlwZSddID0gJ1NvcnJ5LCBidXQgZmlsZXMgb2YgdGhpcyB0eXBlIGFyZSBub3QgYWxsb3dlZCBmb3IgZmllbGQgJXMnOwokbGFuZ1snZXJyX3VwbG9hZF9leHRlbnNpb24nXSA9ICdTb3JyeSwgYnV0IGZpbGVzIG9mIHRoaXMgdHlwZSBhcmUgbm90IGFsbG93ZWQgZm9yIGZpZWxkICVzJzsKJGxhbmdbJ3RpdGxlX3RlbXBsYXRpbmdfaGVscCddID0gJ0Zvcm0gdGVtcGxhdGluZyBoZWxwJzsKJGxhbmdbJ3ZhcmhlbHBfc210Zm1fc3VibWl0X3RpbWUnXSA9ICdUaGUgdW5peCB0aW1lc3RhbXAgb2YgdGhlIHRpbWUgdGhlIHVzZXIgc3VibWl0dGVkIHRoZSBmb3JtLjxici8+PGVtPihoaW50OiB1c2UgdGhlIGRhdGVfZm9ybWF0IG1vZGlmaWVyIHRvIGZvcm1hdCB0aGUgdGltZXN0YW1wIGludG8gc29tZXRoaW5nIHJlYWRhYmxlIGZvciB5b3VyIGxvY2FsZSk8L2VtLic7CiRsYW5nWyd2YXJoZWxwX3NtdGZtX3N1Ym1pdF9pcCddID0gJ1RoZSBJUCBhZGRyZXNzIG9mIHRoZSB1c2VyIHN1Ym1pdHRpbmcgdGhlIGZvcm0nOwokbGFuZ1sndmFyaGVscF9zbXRmbV9mb3JtbmFtZSddID0gJ1RoZSBuYW1lIG9mIHRoZSBmb3JtIGJlaW5nIHN1Ym1pdHRlZCc7CiRsYW5nWyd2YXJoZWxwX3NtdGZtX2Zvcm1kZXNjJ10gPSAnVGhlIGRlc2NyaXB0aW9uIDxlbT4oaWYgYW55KTwvZW0+IGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybS4nOwokbGFuZ1sndmFyaGVscF9zbXRmbV9yZXF1ZXN0aWQnXSA9ICdUaGUgdW5pcXVlIGlkIGdlbmVyYXRlZCBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3ZhcmhlbHBfc210Zm1fRU9MJ10gPSAnQW4gZW5kIG9mIGxpbmUgY2hhcmFjdGVyIHNlcXVlbmNlIChtYXkgYmUgcGxhdGZvcm0gc3BlY2lmaWMpLiAgVGhpcyBpcyBzdWl0YWJsZSBmb3IgdXNlIGluIGZpbGUgb3V0cHV0IHRlbXBsYXRlcy4nOwokbGFuZ1sndmFyaGVscF9zbXRmbV9MRiddID0gJ0EgbGluZSBmZWVkIGNoYXJhY3Rlcic7CiRsYW5nWyd2YXJoZWxwX3NtdGZtX1RBQiddID0gJ0EgdGFiIGNoYXJhY3Rlciwgc3VpdGFibGUgZm9yIHVzZSBpbiBmaWxlIG91dHB1dCB0ZW1wbGF0ZXMuJzsKJGxhbmdbJ3ZhcmhlbHBfc210Zm1fdmVyc2lvbiddID0gJ1RoZSBjdXJyZW50IFNtYXJ0Rm9ybXMgdmVyc2lvbiBudW1iZXIuJzsKJGxhbmdbJ2luZm9fZm9ybV9pbmxpbmUnXSA9ICdJZiBlbmFibGVkLCB0aGUgb3V0cHV0IG9mIHRoaXMgZm9ybSA8ZW0+KHdoZW4gaXQgaXMgdGV4dCBiYXNlZCk8L2VtPiB3aWxsIHJlcGxhY2UgdGhlIG9yaWdpbmFsIHRhZy4gIFRoaXMgYWxsb3dzIHRoZSB0YWcgdG8gYmUgaW4gYSBzaWRlYmFyIG9yIGVtYmVkZGVkIGluIGEgY29udGVudCBhcmVhLic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyc7CiRsYW5nWydmb3JtX2lubGluZSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmUnOwokbGFuZ1snZGlzcGxheV9Db21wdXRlZFZhbHVlJ10gPSAnQ29tcHV0ZSBhIHZhbHVlIGFuZCBwbGFjZSB0aGUgcmVzdWx0IGludG8gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZWRpdF9jb21wdXRlZF92YWx1ZSddID0gJ0NvbXB1dGVkIFZhbHVlIEZpZWxkJzsKJGxhbmdbJ2luZm9fY29tcHV0ZWRfdmFsdWVfZmllbGQnXSA9ICdTZWxlY3QgdGhlIGZpZWxkIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBvdXRwdXQgb2YgdGhlIHRlbXBsYXRlLic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWyduYW1lX0NvbXB1dGVkVmFsdWUnXSA9ICdDb21wdXRlIGEgZmllbGQgdmFsdWUnOwokbGFuZ1snaW5mb19maWVsZHNfdGFiJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIGFsbCBvZiB0aGUgaW5wdXQgZmllbGRzIHRoYXQgd2lsbCBiZSBzdWJtaXR0ZWQgd2l0aCB5b3VyIGZvcm0uICBPbmx5IGlucHV0IGZpZWxkcyBmb3Igd2hpY2ggYSBuYW1lIHdhcyBkZXRlY3RlZCBhcmUgbGlzdGVkLic7CiRsYW5nWydub19tZXNzYWdlcyddID0gJ1dvb3QhIFlvdXIgZm9ybSBpcyBsb29raW5nIGdvb2QuJzsKJGxhbmdbJ3R5cGVfU21hcnRGb3JtcyddID0gJ1NtYXJ0Rm9ybXMnOwokbGFuZ1sndHlwZV9Gb3JtJ10gPSAnRm9ybSc7CiRsYW5nWydlcnJfbW9kX3ZhbGlkYXRpb29uZW9ubHknXSA9ICdTb3JyeSwgeW91IGFyZSBhbHJlYWR5IHVzaW5nIHRoaXMgdmFsaWRhdGlvbiBvbiB0aGlzIGZvcm0uJzsKJGxhbmdbJ2Rpc3BsYXlfV2ViSG9va0Rpc3Bvc2l0aW9uJ10gPSAnUG9zdCBmb3JtIHJlc3VsdHMgdG8gJXMnOwokbGFuZ1snaW5mb193ZWJob29rX2V4dHJhdmFycyddID0gJ0VudGVyIGFueSBleHRyYSBmaXhlZCBkYXRhIHRoYXQgc2hvdWxkIGJlIHNlbnQgd2l0aCB0aGUgZm9ybS4gIE9uZSBlbnRyeSBwZXIgbGluZSB3aXRoIHZhcmlhYmxlcyBhbmQgZGF0YSBzZXBhcmF0ZWQgd2l0aCBhbiBlcXVhbCBzaWduLiAgaS5lOjxici8+PHByZT5mb289YmFyPGJyLz5mb28yPWJhcjI8L3ByZT48YnIvPlRoaXMgZmllbGQgaXMgdHJlYXRlZCBhcyBhIHNtYXJ0eSB0ZW1wbGF0ZSBzbyB0aGF0IHlvdSBjYW4gY3JlYXRlIG5ldyBwb3N0IHZhcmlhYmxlcyBiYXNlZCBvbiBmb3JtIGlucHV0Lic7CiRsYW5nWydwcm9tcHRfd2ViaG9va19leHRyYXZhcnMnXSA9ICdFeHRyYSBmb3JtIHZhcmlhYmxlcyc7CiRsYW5nWydpbmZvX3dlYmhvb2tfdXJsJ10gPSAnU3BlY2lmeSB0aGUgY29tcGxldGUgVVJMIHRoYXQgdGhlIGZvcm0gcmVzdWx0cyB3aWxsIGJlIHNlbnQgdG8gdmlhIFBPU1QuJzsKJGxhbmdbJ3Byb21wdF93ZWJob29rX3VybCddID0gJ1dlYkhvb2sgVVJMJzsKJGxhbmdbJ2VkaXRfV2ViSG9va0Rpc3Bvc2l0aW9uJ10gPSAnRWRpdCBhIFdlYkhvb2sgRGlzcG9zaXRpb24nOwokbGFuZ1snbmFtZV9XZWJIb29rRGlzcG9zaXRpb24nXSA9ICdQT1NUIGZvcm0gcmVzdWx0cyB0byBhIFVSTC9XZWJIb29rJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkaXNwbGF5X1VuaXF1ZUZpbGVEaXNwb3NpdGlvbiddID0gJ1N0b3JlIGZvcm0gcmVzdWx0cyBpbiBhIHVuaXF1ZSBmaWxlIGluICZxdW90OyZsdDtyb290Jmd0Oy8lcyZxdW90Oyc7CiRsYW5nWyduYW1lX1VuaXF1ZUZpbGVEaXNwb3NpdGlvbiddID0gJ1N0b3JlIGZvcm0gcmVzdWx0cyBpbiBhIHVuaXF1ZSBmaWxlIGZvciBlYWNoIHN1Ym1pc3Npb24nOwokbGFuZ1snaW5mb191bmlxdWVmaWxlX2ZvbGRlciddID0gJ1NwZWNpZnkgYSBmb2xkZXIgPGVtPihyZWxhdGl2ZSB0byB0aGUgQ01TTVMgcm9vdCBkaXJlY3RvcnkpIHRvIHRoZSBzdG9yZSBvdXRwdXQgZmlsZXMuJzsKJGxhbmdbJ2VkaXRfdW5pcXVlZmlsZV9kaXNwb3NpdGlvbiddID0gJ1N0b3JlIHJlc3VsdHMgaW4gYSB1bmlxdWUgZmlsZSc7CiRsYW5nWydwcm9tcHRfdW5pcXVlZmlsZV9mb2xkZXInXSA9ICdPdXRwdXQgZm9sZGVyJzsKJGxhbmdbJ25hbWVfRW1haWxGaWVsZFZhbGlkYXRvciddID0gJ0Vuc3VyZSBhIHNwZWNpZmljIGZpZWxkIHZhbHVlIGNvbnRhaW5zIGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydlZGl0X2VtYWlsX2ZpZWxkdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRlIHRoYXQgc3VibWl0dGVkIHZhbHVlKHMpIGZvciBhIGZpZWxkIGNvbnRhaW4gZW1haWwgYWRkcmVzc2VzJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxGaWVsZFZhbGlkYXRpb24nXSA9ICdFbnN1cmUgdGhhdCB2YWx1ZXMgZm9yIGZpZWxkICVzIGFyZSB2YWxpZCBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snZGlzcGxheV9SZWdleEZpZWxkVmFsaWRhdGlvbiddID0gJ0Vuc3VyZSB0aGF0IHZhbHVlcyBmb3IgZmllbGQgJXMgbWF0Y2ggdGhlIHBhdHRlcm4gJXMnOwokbGFuZ1snbmFtZV9SZWdleEZpZWxkVmFsaWRhdG9yJ10gPSAnTWF0Y2ggZmllbGQgdmFsdWVzIGFnYWluc3QgYSByZWd1bGFyIGV4cHJlc3Npb24nOwokbGFuZ1snZWRpdF9yZWdleF9maWVsZHZhbGlkYXRpb24nXSA9ICdWYWxpZGF0ZSB0aGF0IHN1Ym1pdHRlZCB2YWx1ZShzKSBmb3IgYSBmaWVsZCBtYXRjaCBhIHJlZ3VsYXIgZXhwcmVzc2lvbic7CiRsYW5nWydwcm9tcHRfcmVnZXhfcGF0dGVybiddID0gJ1JlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydtc2dfdmFsaWRhdGlvbl9zYXZlZCddID0gJ1ZhbGlkYXRpb24gc2F2ZWQuLi4gUGxlYXNlIHNhdmUgdGhlIGZvcm0uJzsKJGxhbmdbJ2Rpc3BsYXlfSHRtbERldGVjdGlvblZhbGlkYXRpb24nXSA9ICdEZXRlY3QgSFRNTCB0YWdzIGluIGZvcm0gaW5wdXQnOwokbGFuZ1snZXJyX3NlY3VyaXR5X3JlcXVlc3RndWlkJ10gPSAnU29ycnksIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZy4gIFdlIGNvdWxkIG5vdCBmaW5kIGEgdmFsaWQgdW5pcXVlIHJlcXVlc3QgaWQgaW4gdGhlIHBvc3RlZCBkYXRhJzsKJGxhbmdbJ2NhcHRjaGFfdmFsaWRhdGUnXSA9ICdQbGVhc2UgdmFsaWRhdGUgdGhlIGNhcHRjaGEgdGV4dCc7CiRsYW5nWydlcnJfZm9ybV9zY2FubmVlZGVkJ10gPSAnVGhlIHRlbXBsYXRlIG9iamVjdCBoYXMgYmVlbiBtb2RpZmllZC4gIFBsZWFzZSBzY2FuIHRoZSBmb3JtLjxici8+PHN0cm9uZz5SZW1pbmRlcjo8L3N0cm9uZz4gSWYgeW91IG1vZGlmaWVkIHRoZSBpbnB1dCBmaWVsZHMgaW4gdGhpcyBmb3JtIHlvdSBtYXkgYWxzbyBuZWVkIHRvIGFkanVzdCB5b3VyIGhhbmRsZXIgdGVtcGxhdGVzLic7CiRsYW5nWydkaXNwbGF5X0Ryb3Bkb3duRW1haWxEaXNwb3NpdGlvbiddID0gJ1NlbmQgcmVzdWx0cyB2aWEgZW1haWwgYmFzZWQgb24gdGhlIHZhbHVlIG9mIGZpZWxkICVzJzsKJGxhbmdbJ3Byb21wdF9kZmx0X2VtYWlsX2FkZHJlc3MnXSA9ICdEZWZhdWx0IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X2RkZW1haWxfdmFsdWVfbWFwJ10gPSAnTWFwIGZpZWxkIHZhbHVlcyB0byBFbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snaW5mb19kZmx0X2VtYWlsX2FkZHJlc3MnXSA9ICdFbnRlciBhbiBlbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiB0aGUgZXZlbnQgdGhhdCBhIHZhbHVlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAgYmVsb3cuJzsKJGxhbmdbJ2luZm9fZGRlbWFpbF92YWx1ZV9tYXAnXSA9ICdFbnRlciBhIG1hcCAob25lIGVudHJ5IHBlciBsaW5lKSBvZiB2YWx1ZXMgYXZhaWxhYmxlIGluIHRoZSBmaWVsZCB0byBlbWFpbCBhZGRyZXNzZXMuICBWYWx1ZXMgc2hvdWxkIGJlIHNlcGFyYXRlZCBmcm9tIGVtYWlscyB1c2luZyBhIHBpcGUgPGVtPih8KTwvZW0+IGNoYXJhY3Rlci4nOwokbGFuZ1snZWRpdF9kZGVtYWlsX2Rpc3Bvc2l0aW9uJ10gPSAnU2VuZCBvdXRwdXQgdmlhIGVtYWlsIGRlcGVuZGluZyBvbiBhIGRyb3Bkb3duL211bHRpLW9wdGlvbiBmaWVsZCc7CiRsYW5nWyduYW1lX0Ryb3Bkb3duRW1haWxEaXNwb3NpdGlvbiddID0gJ1NlbmQgZm9ybSBzdWJtaXNzaW9uIHZpYSBlbWFpbCBiYXNlZCBvbiBhIGRyb3Bkb3duJzsKJGxhbmdbJ2luZm9fZGRlbWFpbF9maWVsZCddID0gJ1RoZSBmaWVsZHMgbGlzdGVkIGFib3ZlIGFyZSB0aGUgZmllbGRzIGRldGVjdGVkIHRvIGFsbG93IHByZWRlZmluZWQgdmFsdWVzLiAgU2VsZWN0IG9uZSBvZiB0aG9zZSBmaWVsZHMuICBUaGUgdmFsdWUgb2YgdGhpcyBmaWVsZCBpbiB0aGUgZm9ybSBzdWJtaXNzaW9uIHdpbGwgYmUgY3Jvc3MgcmVmZXJlbmNlZCBhZ2FpbnN0IHRoZSBtYXAgYmVsb3cgdG8gZGV0ZXJtaW5lIHRoZSBlbWFpbCBhZGRyZXNzIHRvIHNlbmQgdG8uJzsKJGxhbmdbJ2luZm9fZGRmaWxlX2ZpZWxkJ10gPSAnVGhlIGZpZWxkcyBsaXN0ZWQgYWJvdmUgYXJlIHRoZSBmaWVsZHMgZGV0ZWN0ZWQgdG8gYWxsb3cgcHJlZGVmaW5lZCB2YWx1ZXMuICBTZWxlY3Qgb25lIG9mIHRob3NlIGZpZWxkcyB0byBiYXNlIHRoZSBvdXRwdXQgZmlsZW5hbWUgdXBvbi4nOwokbGFuZ1sncHJvbXB0X2hkcnRlbXBsYXRlJ10gPSAnSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9lbnRyeXRlbXBsYXRlJ10gPSAnRW50cnkgVGVtcGxhdGUnOwokbGFuZ1snZXJyX2R1cGxpY2F0ZV9maWVsZG5hbWUnXSA9ICdUaGUgZmllbGQgYXQgbGluZSAlcyBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZmllbGQgYXQgbGluZSAlcyc7CiRsYW5nWydlcnJfZHVwbGljYXRlX2ZpZWxkaWQnXSA9ICdUaGUgZmllbGQgYXQgbGluZSAlcyBoYXMgdGhlIHNhbWUgaWQgKCVzKSBhcyB0aGUgZmllbGQgYXQgbGluZSAlcyc7CiRsYW5nWydlcnJfaW5wdXRfbWlzc2luZ3ZhbHVlJ10gPSAnVGhlICVzIGZpZWxkIHdpdGggbmFtZSAlcyBhdCBhYm91dCBsaW5lICVkIGlzIG1pc3NpbmcgYSB2YWx1ZSBhdHRyaWJ1dGUnOwokbGFuZ1sncHJvbXB0X2ZpbmFsYWN0aW9uJ10gPSAnQmVoYXZpb3IgYWZ0ZXIgYWxsIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgY29tcGxldGUnOwokbGFuZ1sncHJvbXB0X2RvZmluYWxtc2cnXSA9ICdEaXNwbGF5IGEgbWVzc2FnZSB0byB0aGUgdXNlcic7CiRsYW5nWydwcm9tcHRfZG9maW5hbHJlZGlyZWN0J10gPSAnUmVkaXJlY3QgdG8gYSBjb250ZW50IHBhZ2UnOwokbGFuZ1sncHJvbXB0X2ZpbmFscGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8nOwokbGFuZ1sncHJvbXB0X2ZpbmFsbWVzc2FnZSddID0gJ1NtYXJ0eSB0ZW1wbGF0ZSBmb3IgdGhlIGZpbmFsIG1lc3NhZ2UgdG8gZGlzcGxheSB0byB0aGUgdXNlcic7CiRsYW5nWydpbmZvX2ZpbmFsX2Rpc3Bvc2l0aW9uJ10gPSAnVGhpcyB0YWIgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGZpbmFsIGRpc3Bvc2l0aW9uLiAgSXQgaXMgcG9zc2libGUgdGhhdCB0aGlzIGZpbmFsIGRpc3Bvc2l0aW9uIGlzIG5vdCBwZXJmb3JtZWQsIGRlcGVuZGluZyB1cG9uIHRoZSBiZWhhdmlvciBvZiBvdGhlciBkaXNwb3NpdGlvbnMuJzsKJGxhbmdbJ2luZm9fZm9ybV9oYW5kbGVycyddID0gJ1RoaXMgdGFiIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyB0aGUgdXNlci1lbnRlcmVkIGluZm9ybWF0aW9uIHdpbGwgYmUgcHJvY2Vzc2VkIGFmdGVyIGZvcm0gc3VibWl0LiAgTm90ZSwgdGhhdCBpdCBpcyBwb3NzaWJsZSB0aGF0IHNvbWUgaGFuZGxlcnMgbWF5IHN0b3AgdGhlIHByb2Nlc3Npbmcgb2YgZnVydGhlciBoYW5kbGVycywgb3IgZXZlbiB0aGUgZmluYWwgZGlzcG9zaXRpb24uIHNvIHRoZWlyIG9yZGVyIG1heSBiZSBpbXBvcnRhbnQuJzsKJGxhbmdbJ2luZm9fZm9ybV92YWxpZGF0aW9ucyddID0gJ1ZhbGlkYXRpb25zIGFyZSB0ZXN0cyB0aGF0IGFyZSBydW4gb24geW91ciBmb3JtIGFmdGVyIGEgdXNlciBzdWJtaXRzIGl0LiAgSWYgYSB0ZXN0IGZhaWxzLCB0aGVuIGFuIGVycm9yIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGFuZCB5b3VyIGZvcm0gaXMgcmUtZGlzcGxheWVkLiAgTm90ZSB0aGF0IGZpbGUgdXBsb2FkcyBjYW4gYmUgbG9zdCB3aGVuIGFuIGVycm9yIG9jY3Vycy4nOwokbGFuZ1snaW5mb19mb3JtX21lc3NhZ2VzJ10gPSAnVGhlIG1lc3NhZ2VzIGJlbG93IGluZGljYXRlIHBvdGVudGlhbCBwcm9ibGVtcyBkZXRlY3RlZCB3aGVuIHNjYW5uaW5nIHRoZSB0ZW1wbGF0ZSBwcm92aWRlZC4gIFBsZWFzZSByZXNvbHZlIGFzIG1hbnkgb2YgdGhlc2UgYXMgcG9zc2libGUgdG8gZW5zdXJlIHRoYXQgeW91ciBmb3JtIGJlaGF2ZXMgd2VsbC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snbXVsdGlwbGUnXSA9ICdNdWx0aXBsZSc7CiRsYW5nWydtc2dfY2FuY2VsbGVkJ10gPSAnQ2FuY2VsbGVkJzsKJGxhbmdbJ21zZ19oYW5kbGVyX3NhdmVkJ10gPSAnSGFuZGxlciBlZGl0ZWQuLi4gUGxlYXNlIHNhdmUgdGhlIGZvcm0uJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9ib2R5X3RlbXBsYXRlJ10gPSAnQm9keSBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdF90ZW1wbGF0ZSddID0gJ1N1YmplY3QgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2Nzdl9lbWFpbF9hZGRyZXNzZXMnXSA9ICdFbWFpbCBBZGRyZXNzZXMgKGNzdiknOwokbGFuZ1snbmFtZV9IdG1sRGV0ZWN0aW9uVmFsaWRhdG9yJ10gPSAnRGV0ZWN0IEhUTUwgdGFncyBpbiBpbnB1dCB2YWx1ZXMnOwokbGFuZ1snbmFtZV9TZWxlY3RGaWVsZFZhbGlkYXRvciddID0gJ1ZhbGlkYXRlIHZhbHVlcyBmb3Igc2VsZWN0IGZpZWxkcyc7CiRsYW5nWyduYW1lX0Zsb2F0RmllbGRWYWxpZGF0b3InXSA9ICdGbG9hdCBGaWVsZCBWYWxpZGF0b3InOwokbGFuZ1snbmFtZV9JbnRlZ2VyRmllbGRWYWxpZGF0b3InXSA9ICdJbnRlZ2VyIEZpZWxkIFZhbGlkYXRvcic7CiRsYW5nWydkaXNwbGF5X0Zsb2F0RmllbGRWYWxpZGF0aW9uMSddID0gJ1ZhbGlkYXRlIHRoYXQgdGhlICVzIGZpZWxkIGhhcyBhIHZhbHVlIG9mIGF0IGxlYXN0ICUuM2YnOwokbGFuZ1snZGlzcGxheV9GbG9hdEZpZWxkVmFsaWRhdGlvbjInXSA9ICdWYWxpZGF0ZSB0aGF0IHRoZSAlcyBmaWVsZCBoYXMgYSB2YWx1ZSBvZiBubyBtb3JlIHRoYW4gJS4zZic7CiRsYW5nWydkaXNwbGF5X0Zsb2F0RmllbGRWYWxpZGF0aW9uMyddID0gJ1ZhbGlkYXRlIHRoYXQgdGhlICVzIGZpZWxkIGhhcyBhIHZhbHVlIGJldHdlZW4gJS4zZiBhbmQgJS4zZic7CiRsYW5nWydkaXNwbGF5X0ludGVnZXJGaWVsZFZhbGlkYXRpb24xJ10gPSAnVmFsaWRhdGUgdGhhdCB0aGUgJXMgZmllbGQgaGFzIGEgdmFsdWUgb2YgYXQgbGVhc3QgJWQnOwokbGFuZ1snZGlzcGxheV9JbnRlZ2VyRmllbGRWYWxpZGF0aW9uMiddID0gJ1ZhbGlkYXRlIHRoYXQgdGhlICVzIGZpZWxkIGhhcyBhIHZhbHVlIG9mIG5vIG1vcmUgdGhhbiAlZCc7CiRsYW5nWydkaXNwbGF5X0ludGVnZXJGaWVsZFZhbGlkYXRpb24zJ10gPSAnVmFsaWRhdGUgdGhhdCB0aGUgJXMgZmllbGQgaGFzIGEgdmFsdWUgYmV0d2VlbiAlZCBhbmQgJWQnOwokbGFuZ1snZWRpdF9mbG9hdF9maWVsZHZhbGlkYXRpb24nXSA9ICdFbnN1cmUgdGhhdCBhIGZpZWxkIGlzIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUgd2l0aGluIGEgc3BlY2lmaWVkIHJhbmdlLic7CiRsYW5nWydlZGl0X2ludGVnZXJfZmllbGR2YWxpZGF0aW9uJ10gPSAnRW5zdXJlIHRoYXQgYSBmaWVsZCBpcyBhbiBpbnRlZ2VyIHZhbHVlIHdpdGhpbiBhIHNwZWNpZmllZCByYW5nZS4nOwokbGFuZ1sncHJvbXB0X21heHZhbHVlJ10gPSAnTWF4aW11bSBWYWx1ZSc7CiRsYW5nWydwcm9tcHRfbWludmFsdWUnXSA9ICdNaW5pbXVtIFZhbHVlJzsKJGxhbmdbJ2Vycl9tb2RfdmFsaWRhdGlvbm9uZW9ubHknXSA9ICdPbmx5IG9uZSBvZiB0aGVzZSB2YWxpZGF0aW9ucyBpcyBhbGxvd2VkIHBlciBmb3JtJzsKJGxhbmdbJ2Rpc3BsYXlfU2VsZWN0RmllbGRWYWxpZGF0aW9uJ10gPSAnVmFsaWRhdGUgdGhlIHZhbHVlIG9mIHNlbGVjdCBmaWVsZHMnOwokbGFuZ1snYWRkX3ZhbGlkYXRpb24nXSA9ICdBZGQgYSB2YWxpZGF0aW9uJzsKJGxhbmdbJ2Vycm9yX2JvdGRldGVjdGVkJ10gPSAnSG1tbS4uLiBTb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcgKEVCMDAxKSc7CiRsYW5nWydtc2dfZm9ybXNhdmVkJ10gPSAnRm9ybSBzYXZlZCc7CiRsYW5nWydtc2dfZm9ybWRlbGV0ZWQnXSA9ICdGb3JtIGRlbGV0ZWQnOwokbGFuZ1snZmluYWwnXSA9ICdGb3JtIG91dHB1dCc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ2Rpc3BsYXlfRHJvcGRvd25GaWxlRGlzcG9zaXRpb24nXSA9ICdTdG9yZSByZXN1bHRzIHRvIGEgZmlsZSBpbiAlcyBiYXNlZCBvbiB2YWx1ZSBvZiBmaWVsZCAlcyc7CiRsYW5nWydyZXNldF90cGxzJ10gPSAnUmVzZXQgVGVtcGxhdGVzJzsKJGxhbmdbJ2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJ10gPSAnU2F2ZSBvdXRwdXQgdG8gZmlsZSBkZXBlbmRpbmcgb24gZHJvcGRvd24vbXVsdGktb3B0aW9uIGZpZWxkJzsKJGxhbmdbJ3Byb21wdF9maWVsZCddID0gJ0ZpZWxkJzsKJGxhbmdbJ3Byb21wdF9kZGZpbGVfZm9sZGVyJ10gPSAnT3V0cHV0IEZvbGRlcic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ3RhZyddID0gJ1RhZyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydkaXNwbGF5X0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbjEnXSA9ICdFbWFpbCByZXN1bHRzIHRvICVzJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uMiddID0gJ0VtYWlsIHJlc3VsdHMgdG8gJWQgYWRkcmVzc2VzJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtJzsKJGxhbmdbJ3Byb21wdF9hZG1pbl9ncm91cCddID0gJ0FkbWluIEdyb3VwJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxBZG1pbkdyb3VwRGlzcG9zaXRpb24nXSA9ICdFbWFpbCByZXN1bHRzIHRvIGFsbCBtZW1iZXJzIG9mIHRoZSAiJXNcIiBhZG1pbiBncm91cCc7CiRsYW5nWyduYW1lX0VtYWlsQWRtaW5Hcm91cERpc3Bvc2l0aW9uJ10gPSAnRW1haWwgcmVzdWx0cyB0byBtZW1iZXJzIG9mIGFuIGFkbWluIGdyb3VwJzsKJGxhbmdbJ25hbWVfRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uJ10gPSAnRW1haWwgcmVzdWx0cyB0byBzcGVjaWZpZWQgYWRkcmVzc2VzJzsKJGxhbmdbJ2Rpc3BsYXlfRmxhdEZpbGVEaXNwb3NpdGlvbiddID0gJ1NhdmUgZm9ybSByZXN1bHRzIHRvIGEgZmxhdCBGaWxlICVzJzsKJGxhbmdbJ2luZm9fRmxhdEZpbGVfZmlsZW5hbWUnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHdlYnNpdGUgcm9vdCkgb2YgdGhlIEZsYXQgZmlsZSc7CiRsYW5nWydwcm9tcHRfZmlsZW5hbWUnXSA9ICdGaWxlbmFtZSc7CiRsYW5nWydlcnJfbm9kaXNwb3NpdGlvbiddID0gJ1BsZWFzZSBzZWxlY3QgYSBoYW5kbGVyJzsKJGxhbmdbJ25hbWVfRmxhdEZpbGVEaXNwb3NpdGlvbiddID0gJ1NhdmUgZm9ybSByZXN1bHRzIHRvIGEgZmxhdCBGaWxlJzsKJGxhbmdbJ25hbWVfRHJvcGRvd25GaWxlRGlzcG9zaXRpb24nXSA9ICdTYXZlIGZvcm0gcmVzdWx0cyB0byBhIGZpbGUgYmFzZWQgb24gYSBkcm9wZG93bic7CiRsYW5nWydhZGRfZGlzcG9zaXRpb24nXSA9ICdBZGQgYSBIYW5kbGVyJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWydoYW5kbGVyJ10gPSAnSGFuZGxlcic7CiRsYW5nWydoYW5kbGVycyddID0gJ0hhbmRsZXJzJzsKJGxhbmdbJ3ZhbGlkYXRpb24nXSA9ICdWYWxpZGF0aW9uJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NtYXJ0Rm9ybXMnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgaGFuZGxpbmcgZm9ybXMgdGhhdCB3ZXJlIGNyZWF0ZWQgYW5kIGRlc2lnbmVkIGJ5IGEgZGV2ZWxvcGVyJzsKJGxhbmdbJ2FkZF9uZXdfZm9ybSddID0gJ0NyZWF0ZSBhIG5ldyBmb3JtJzsKJGxhbmdbJ2VkaXRpbmdfZm9ybSddID0gJ0VkaXQgYSBmb3JtJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ3BoX2Zvcm1fbmFtZSddID0gJ0VudGVyIGEgdW5pcXVlIG5hbWUnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZSddID0gJ0Zvcm0gVGVtcGxhdGUnOwokbGFuZ1snc2NhbiddID0gJ1NjYW4nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydwaF9mb3JtX2Rlc2MnXSA9ICdFbnRlciBhIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoaXMgZm9ybSc7CiRsYW5nWydlcnJfbm9mb3JtcyddID0gJ0NvdWxkIG5vdCBmaW5kIGFueSBmb3JtIHRhZ3MnOwokbGFuZ1snZXJyX21hbnlmb3JtcyddID0gJ0ZvdW5kIG11bHRpcGxlIGZvcm0gdGFncyc7CiRsYW5nWydlcnJfbWlzc2luZ19mb3Jtc3RhcnQnXSA9ICdDb3VsZCBub3QgZmluZCBhbnkgZm9ybSB0YWdzJzsKJGxhbmdbJ2Vycl9taXNzaW5nX2Zvcm1lbmQnXSA9ICdDb3VsZCBub3QgZmluZCBhbnkgZW5kIGZvcm0gdGFncyc7CiRsYW5nWydlcnJfbWlzc2luZ19tZXNzYWdlc3RyaW5nJ10gPSAnQ291bGQgbm90IGZpbmQgYSBjYWxsIHRvIHtzbXRmbV9mb3JtX2Vycm9yc30gaW4gdGhlIHRlbXBsYXRlLic7CiRsYW5nWydlcnJfaW5wdXRfbWlzc2luZ25hbWUnXSA9ICdUaGUgJXMgZmllbGQgYXQgYWJvdXQgbGluZSAlcyBpcyBtaXNzaW5nIGEgbmFtZS4nOwokbGFuZ1snZXJyX2lucHV0X2ludmFsaWRuYW1lJ10gPSAnVGhlICVzIGZpZWxkIGF0IGFib3V0IGxpbmUgJXMgaGFzIGEgcHJvYmxlbWF0aWMgbmFtZSBvZjogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZXJyX2lucHV0X25vdGRhdGUnXSA9ICdPbmUgb3IgbW9yZSB2YWx1ZXMgb2YgdGhlICVzIGZpZWxkIGFyZSBub3QgdmFsaWQgZGF0ZXMuJzsKJGxhbmdbJ2Vycl9pbnB1dF9ub3RlbWFpbCddID0gJ09uZSBvciBtb3JlIHZhbHVlcyBvZiB0aGUgJXMgZmllbGQgYXJlIG5vdCB2YWxpZCBlbWFpbCBhZGRyZXNzZXMuJzsKJGxhbmdbJ2Vycl9pbnB1dF9taXNzaW5nbGFiZWwnXSA9ICdDb3VsZCBub3QgZmluZCBhIGxhYmVsIGZvciBmaWVsZCAmcXVvdDslcyZxdW90OyBhdCBhYm91dCBsaW5lICVkLic7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydsYWJlbCddID0gJ0xhYmVsJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ25vZGUnXSA9ICdOb2RlJzsKJGxhbmdbJ21lc3NhZ2VzJ10gPSAnTWVzc2FnZXMnOwokbGFuZ1snZmllbGRzJ10gPSAnRmllbGRzJzsK]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/abstract.DOMField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgphYnN0cmFjdCBjbGFzcyBET01GaWVsZCBleHRlbmRzIEZpZWxkCnsKICAgIHByaXZhdGUgJF9saW5lOwogICAgcHJpdmF0ZSAkX3ZhbHVlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkbm9kZW5hbWUgPSAkbm9kZS0+bm9kZU5hbWU7CiAgICAgICAgJGF0dHJpYnMgPSAkdGhpcy0+Z2V0QXR0cmlidXRlc0FycmF5KCRub2RlLT5hdHRyaWJ1dGVzKTsKICAgICAgICAkdGhpcy0+X2xpbmUgPSAkbm9kZS0+Z2V0TGluZU5vKCk7CiAgICAgICAgJHRoaXMtPl92YWx1ZSA9ICR0aGlzLT5nZXROb2RlVmFsdWUoICRub2RlICk7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCggJG5vZGVuYW1lLCAkYXR0cmlicyApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXROb2RlVmFsdWUoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcmV0dXJuICRub2RlLT5ub2RlVmFsdWU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEF0dHJpYnV0ZXNBcnJheShcRE9NTmFtZWROb2RlTWFwICRtYXApCiAgICB7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICRtYXAgYXMgJGF0dHIgKSB7CiAgICAgICAgICAgICRvdXRbJGF0dHItPm5vZGVOYW1lXSA9ICRhdHRyLT5ub2RlVmFsdWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2hvcnRfYXR0cmlidXRlKCAka2V5ICkKICAgIHsKICAgICAgICAkdmFsID0gJHRoaXMtPmhhc19hdHRyaWJ1dGUoICRrZXkgKTsKICAgICAgICAkc3RyID0gJHRoaXMtPmdldF9hdHRyaWJ1dGUoICRrZXkgKTsKICAgICAgICBpZiggc3RybGVuKCRzdHIpICkgJHZhbCA9ICRzdHI7CiAgICAgICAgcmV0dXJuICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsdWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saW5lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9saW5lOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/abstract.Field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgphYnN0cmFjdCBjbGFzcyBGaWVsZAp7CiAgICBwcml2YXRlICRfYXR0cmlicyA9IFtdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJG5vZGVuYW1lLCBhcnJheSAkYXR0cmlidXRlcyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9ub2RlbmFtZSA9IHN0cnRvbG93ZXIodHJpbSgkbm9kZW5hbWUpKTsKICAgICAgICBmb3JlYWNoKCAkYXR0cmlidXRlcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgICRrZXkgPSBzdHJ0b2xvd2VyKCRrZXkpOwogICAgICAgICAgICAkdGhpcy0+X2F0dHJpYnNbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fYXR0cmlic1sndHlwZSddKSApIHsKICAgICAgICAgICAgaWYoICR0aGlzLT5fbm9kZW5hbWUgPT0gJ2lucHV0JyApICR0aGlzLT5fYXR0cmlic1sndHlwZSddID0gJ3RleHQnOwogICAgICAgICAgICBpZiggJHRoaXMtPl9ub2RlbmFtZSA9PSAnYnV0dG9uJyApICR0aGlzLT5fYXR0cmlic1sndHlwZSddID0gJ3N1Ym1pdCc7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl9hdHRyaWJzWyd0eXBlJ10gPSBzdHJ0b2xvd2VyKCR0aGlzLT5fYXR0cmlic1sndHlwZSddKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25vZGVuYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9ub2RlbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2F0dHJpYnV0ZSggJGtleSApCiAgICB7CiAgICAgICAgJGtleSA9IHN0cnRvbG93ZXIodHJpbSgka2V5KSk7CiAgICAgICAgaWYoICEka2V5ICkgcmV0dXJuOwogICAgICAgIHJldHVybiBhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5fYXR0cmlicyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGUoJGtleSkKICAgIHsKICAgICAgICAka2V5ID0gc3RydG9sb3dlcih0cmltKCRrZXkpKTsKICAgICAgICBpZiggISRrZXkgKSByZXR1cm47CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fYXR0cmlic1ska2V5XSkgKSByZXR1cm4gJHRoaXMtPl9hdHRyaWJzWyRrZXldOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2lnbmF0dXJlKCkKICAgIHsKICAgICAgICByZXR1cm4gbWQ1KF9fQ0xBU1NfXy4kdGhpcy0+X3R5cGUuJHRoaXMtPl9ub2RlbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGVzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9hdHRyaWJzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlidXRlc19ieV9wcmVmaXgoICRwcmVmaXggKQogICAgewogICAgICAgICRwcmVmaXggPSBzdHJ0b2xvd2VyKHRyaW0oJHByZWZpeCkpOwogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2F0dHJpYnMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCggJGtleSwgJHByZWZpeCkgKSAkb3V0WyRrZXldID0gJHZhbDsKICAgICAgICB9CiAgICAgICAgaWYoIGNvdW50KCRvdXQpICkgcmV0dXJuICRvdXQ7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/abstract.FormTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgphYnN0cmFjdCBjbGFzcyBGb3JtVGVzdGVyIGltcGxlbWVudHMgSUZvcm1UZXN0ZXIKewogICAgcHJpdmF0ZSAkX3NjYW5uZXI7CiAgICBwcml2YXRlICRfdGVzdHM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBGb3JtU2Nhbm5lciAkc2Nhbm5lciwgYXJyYXkgJHRlc3RzID0gbnVsbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9zY2FubmVyID0gJHNjYW5uZXI7CiAgICAgICAgJHRoaXMtPl90ZXN0cyA9ICR0ZXN0czsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3Rlc3RzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90ZXN0czsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Zvcm1zKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zY2FubmVyLT5nZXRfZm9ybXMoKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2lucHV0cygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc2Nhbm5lci0+Z2V0X2ZpZWxkcygpOwogICAgfQoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CaptchaModuleProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSBDTVNNb2R1bGU7CgpjbGFzcyBDYXB0Y2hhTW9kdWxlUHJvdmlkZXIgaW1wbGVtZW50cyBJQ2FwdGNoYVByb3ZpZGVyCnsKICAgIHByaXZhdGUgJF9jYXB0Y2hhX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIENNU01vZHVsZSAkY2FwdGNoYSApCiAgICB7CiAgICAgICAgaWYoICFtZXRob2RfZXhpc3RzKCAkY2FwdGNoYSwgJ0NoZWNrQ2FwdGNoYScgKSB8fCAhbWV0aG9kX2V4aXN0cyggJGNhcHRjaGEsICdOZWVkc0lucHV0RmllbGQnKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oICRjYXB0Y2hhLT5HZXROYW1lKCkuJyBpcyBub3QgYSB2YWxpZCBjYXB0Y2hhIG1vZHVsZScpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2NhcHRjaGFfbW9kID0gbmV3IE1vZHVsZVJlZmVyZW5jZSggJGNhcHRjaGEtPkdldE5hbWUoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FwdGNoYV9pbnB1dGZpZWxkKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9jYXB0Y2hhX21vZC0+TmVlZHNJbnB1dEZpZWxkKCkgKSB7CiAgICAgICAgICAgIHJldHVybiAnPGlucHV0IG5hbWU9InNtdGZtX2lucHV0X2NhcHRjaGEiIGNsYXNzPSJzbXRmbV9pbnB1dF9jYXB0Y2hhIiBhdXRvY29tcGxldGU9Im9mZiIvPic7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FwdGNoYV9kaXNwbGF5KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9jYXB0Y2hhX21vZC0+Z2V0Q2FwdGNoYSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jYXB0Y2hhKCkKICAgIHsKICAgICAgICAkaW5wdXQgPSBudWxsOwogICAgICAgICRtb2QgPSAkdGhpcy0+X2NhcHRjaGFfbW9kOwogICAgICAgIGlmKCAkbW9kLT5OZWVkc0lucHV0RmllbGQoKSApICRpbnB1dCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkX1JFUVVFU1QsJ3NtdGZtX2lucHV0X2NhcHRjaGEnKTsKICAgICAgICAkb3V0ID0gJG1vZC0+Q2hlY2tDYXB0Y2hhKCAkaW5wdXQgKTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DispositionEditorHelperProxy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBEaXNwb3NpdGlvbkVkaXRvckhlbHBlclByb3h5CnsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcU21hcnRGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhbmNlbCggJGZvcm1fZ3VpZCApCiAgICB7CiAgICAgICAgaWYoICEkZm9ybV9ndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gZm9ybV9ndWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fbW9kLT5TZXRNZXNzYWdlKCR0aGlzLT5fbW9kLT5MYW5nKCdtc2dfY2FuY2VsbGVkJykpOwogICAgICAgICR0aGlzLT5fbW9kLT5SZWRpcmVjdCgnbTFfJywnYWRtaW5fZWRpdF9mb3JtJywgJycsIFsnZm9ybV9ndWlkJz0+JGZvcm1fZ3VpZCwgJ3h0X2FjdGl2ZXRhYic9PidoYW5kbGVycyddICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGZpbmlzaCggRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgRGlzcG9zaXRpb25zXElEaXNwb3NpdGlvbiAkZGlzcCwgJGRpc3BfZ3VpZCApCiAgICB7CiAgICAgICAgaWYoICEkZm9ybV9ndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gZm9ybV9ndWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRmb3JtX2d1aWQgPSBcU21hcnRGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGZvcm1fZ3VpZCApOwogICAgICAgICRkaXNwX2d1aWQgPSBcU21hcnRGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZGlzcCwgJGRpc3BfZ3VpZCApOwogICAgICAgICR0aGlzLT5fbW9kLT5TZXRNZXNzYWdlKCR0aGlzLT5fbW9kLT5MYW5nKCdtc2dfaGFuZGxlcl9zYXZlZCcpKTsKICAgICAgICAkdGhpcy0+X21vZC0+UmVkaXJlY3QoICdtMV8nLCAnYWRtaW5fZWRpdF9mb3JtJywgJycsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdkaXNwX2d1aWQnPT4kZGlzcF9ndWlkLCAneHRfYWN0aXZldGFiJz0+J2hhbmRsZXJzJ10gKTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMButtonField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01CdXR0b25GaWVsZCBleHRlbmRzIERPTUZpZWxkIHsKICAgIHVzZSBET01MYWJlbEZpZWxkVHJhaXQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgICR0aGlzLT5zZXRfbGFiZWwoJHRoaXMtPmZpbmRQYXJlbnRMYWJlbCgkbm9kZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlidXRlKCRrZXkpCiAgICB7CiAgICAgICAgJHJlcyA9IHBhcmVudDo6Z2V0X2F0dHJpYnV0ZSgka2V5KTsKICAgICAgICBpZiggJHJlcyApIHJldHVybiAkcmVzOwogICAgICAgIGlmKCAka2V5ID09ICd0eXBlJyApIHJldHVybiAnc3VibWl0JzsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMFormField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01Gb3JtRmllbGQgZXh0ZW5kcyBET01GaWVsZCB7fQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMInputField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01JbnB1dEZpZWxkIGV4dGVuZHMgRE9NRmllbGQgewogICAgdXNlIERPTUxhYmVsRmllbGRUcmFpdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbm9kZSk7CiAgICAgICAgJHRoaXMtPnNldF9sYWJlbCgkdGhpcy0+ZmluZFBhcmVudExhYmVsKCRub2RlKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfYXR0cmlidXRlKCd2YWx1ZScpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlidXRlKCAka2V5ICkKICAgIHsKICAgICAgICAkcmVzID0gcGFyZW50OjpnZXRfYXR0cmlidXRlKCAka2V5ICk7CiAgICAgICAgaWYoICRyZXMgKSByZXR1cm4gJHJlczsKICAgICAgICBpZiggJGtleSA9PSAndHlwZScgKSByZXR1cm4gJ3RleHQnOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMLabelField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01MYWJlbEZpZWxkIGV4dGVuZHMgRE9NRmllbGQKewogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxEb21Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgIC8vJHRoaXMtPl92YWx1ZSA9IHRyaW0oJG5vZGUtPm5vZGVWYWx1ZSk7CiAgICB9CgogICAgLyoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXROb2RlVmFsdWUoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgLy8gY29uY2F0ZW5hdGUgYW5kIHN0cmlwIHRhZ3Mgb24gYWxsIHRleHQgbm9kZXMuCiAgICAgICAgJHRleHQgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRub2RlLT5jaGlsZE5vZGVzIGFzICRjaGlsZCApIHsKICAgICAgICAgICAgaWYoICRjaGlsZC0+bm9kZVR5cGUgPT0gMyApIHsKICAgICAgICAgICAgICAgICR0ZXh0IC49ICRjaGlsZC0+dGV4dENvbnRlbnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRyaW0oJHRleHQpOwogICAgfQogICAgKi8KfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMSelectField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01TZWxlY3RGaWVsZCBleHRlbmRzIERPTUZpZWxkCnsKICAgIHVzZSBET01MYWJlbEZpZWxkVHJhaXQ7CgogICAgcHJpdmF0ZSAkX29wdGlvbnMgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbm9kZSk7CiAgICAgICAgJHRoaXMtPnNldF9sYWJlbCgkdGhpcy0+ZmluZFBhcmVudExhYmVsKCRub2RlKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX211bHRpc2VsZWN0KCkKICAgIHsKICAgICAgICAkbXVsdGlwbGUgPSAkdGhpcy0+Z2V0X2F0dHJpYnV0ZSgnbXVsdGlwbGUnKTsKICAgICAgICBpZiggJG11bHRpcGxlICkgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5pc19tdWx0aXNlbGVjdCgpICkgewogICAgICAgICAgICAkb3V0ID0gW107CiAgICAgICAgICAgIGZvcmVhY2goICR0aGlzLT5fb3B0aW9ucyBhcyAkb3B0aW9uICkgewogICAgICAgICAgICAgICAgaWYoICRvcHRpb24tPmdldF9zZWxlY3RlZCgpICkgJG91dFtdID0gJG9wdGlvbi0+Z2V0X3ZhbHVlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29wdGlvbnMgYXMgJG9wdGlvbiApIHsKICAgICAgICAgICAgaWYoICRvcHRpb24tPmdldF9zZWxlY3RlZCgpICkgcmV0dXJuICRvcHRpb24tPmdldF92YWx1ZSgpOwogICAgICAgIH0KCiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X29wdGlvbnNbMF0pICkgcmV0dXJuOwogICAgICAgIHJldHVybiAkdGhpcy0+X29wdGlvbnNbMF0tPmdldF92YWx1ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKCBET01TZWxlY3RPcHRpb24gJG9wdGlvbiApCiAgICB7CiAgICAgICAgJHRoaXMtPl9vcHRpb25zW10gPSAkb3B0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fb3B0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX29wdGlvbnMoKQogICAgewogICAgICAgIHJldHVybiBjb3VudCgkdGhpcy0+X29wdGlvbnMpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMSelectOption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01TZWxlY3RPcHRpb24KewogICAgcHJpdmF0ZSAkX2F0dHJpYnMgPSBudWxsOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5vZGUtPm5vZGVOYW1lKTsKICAgICAgICBpZiggJG5hbWUgIT0gJ29wdGlvbicgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgY3JlYXRlIGEgJy5fX0NMQVNTX18uJyBmcm9tIGEgJy4kbmFtZS4nIG5vZGUnKTsKCiAgICAgICAgJHRoaXMtPl9hdHRyaWJzID0gJHRoaXMtPmdldEF0dHJpYnV0ZXNBcnJheSgkbm9kZS0+YXR0cmlidXRlcyk7CiAgICAgICAgJHRoaXMtPl9hdHRyaWJzWyd0ZXh0J10gPSAkbm9kZS0+dGV4dENvbnRlbnQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEF0dHJpYnV0ZXNBcnJheShcRE9NTmFtZWROb2RlTWFwICRtYXApCiAgICB7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICRtYXAgYXMgJGF0dHIgKSB7CiAgICAgICAgICAgICRvdXRbJGF0dHItPm5vZGVOYW1lXSA9ICRhdHRyLT5ub2RlVmFsdWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlicygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0cmliczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2h1bWFuUmVhZGFibGUoKQogICAgewogICAgICAgICR2YWwgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoICR0aGlzLT5fYXR0cmlicywgJ2RhdGEtc210Zm0taHVtYW4nKTsKICAgICAgICBpZiggJHZhbCApIHJldHVybiAkdmFsOwogICAgICAgIHJldHVybiAkdGhpcy0+dGV4dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2hyUmF3KCkKICAgIHsKICAgICAgICByZXR1cm4gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCAkdGhpcy0+X2F0dHJpYnMsICdkYXRhLXNtdGZtLWh1bWFuJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90ZXh0UmF3KCkKICAgIHsKICAgICAgICByZXR1cm4gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCAkdGhpcy0+X2F0dHJpYnMsICd0ZXh0Jyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZVJhdygpCiAgICB7CiAgICAgICAgcmV0dXJuIFx4dF9wYXJhbTo6Z2V0X3N0cmluZyggJHRoaXMtPl9hdHRyaWJzLCAndmFsdWUnICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgJHZhbCA9ICR0aGlzLT5nZXRfdmFsdWVSYXcoKTsKICAgICAgICBpZiggJHZhbCApIHJldHVybiAkdmFsOwogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X3RleHRSYXcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NlbGVjdGVkKCkKICAgIHsKICAgICAgICByZXR1cm4gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCAkdGhpcy0+X2F0dHJpYnMsICdzZWxlY3RlZCcgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoICRrZXksICR2YWwgKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oX19DTEFTU19fLicgY2Fubm90IGJlIG1vZGlmaWVkIHRoaXMgd2F5Jyk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMTextAreaField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBET01UZXh0QXJlYUZpZWxkIGV4dGVuZHMgRE9NRmllbGQKewogICAgdXNlIERPTUxhYmVsRmllbGRUcmFpdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbm9kZSk7CiAgICAgICAgJHRoaXMtPnNldF9sYWJlbCgkdGhpcy0+ZmluZFBhcmVudExhYmVsKCRub2RlKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldError.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGaWVsZEVycm9yCnsKICAgIGNvbnN0IE5PTlNQRUNJRklDX0ZJRUxEID0gJ05PVC1TUEVDSUZJQyc7CgogICAgcHJpdmF0ZSAkX2ZpZWxkX25hbWU7CiAgICBwcml2YXRlICRfbWVzc2FnZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRmaWVsZF9uYW1lLCAkbWVzc2FnZSA9IG51bGwgKQogICAgewogICAgICAgICRmaWVsZF9uYW1lID0gdHJpbSgkZmllbGRfbmFtZSk7CiAgICAgICAgaWYoICEkZmllbGRfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0EgZmllbGQgbmFtZSBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgJy5fX0NMQVNTX18pOwogICAgICAgICR0aGlzLT5fZmllbGRfbmFtZSA9ICRmaWVsZF9uYW1lOwogICAgICAgICR0aGlzLT5fbWVzc2FnZSA9IHRyaW0oJG1lc3NhZ2UpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZF9uYW1lJzoKICAgICAgICBjYXNlICdmaWVsZCc6CiAgICAgICAgY2FzZSAnZmllbGROYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRfbmFtZTsKCiAgICAgICAgY2FzZSAnbXNnJzoKICAgICAgICBjYXNlICdtZXNzYWdlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbWVzc2FnZTsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.Form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcRGlzcG9zaXRpb247CnVzZSBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcVmFsaWRhdGlvbjsKCmNsYXNzIEZvcm0KewogICAgcHJpdmF0ZSAkX2lkOwogICAgcHJpdmF0ZSAkX25hbWU7CiAgICBwcml2YXRlICRfdGVtcGxhdGVfaWQ7CiAgICBwcml2YXRlICRfdGVtcGxhdGVfcnNyYzsKICAgIHByaXZhdGUgJF90cGxfbW9kaWZpZWQ7IC8vIHRoZSBkYXRlIHRoZSB0ZW1wbGF0ZSB3YXMgbGFzdCBtb2RpZmllZAogICAgcHJpdmF0ZSAkX2Rlc2NyaXB0aW9uOwogICAgcHJpdmF0ZSAkX2ZpZWxkX21lc3NhZ2VzID0gW107CiAgICBwcml2YXRlICRfZmllbGRzID0gW107CiAgICBwcml2YXRlICRfcHJlcmVuZGVyX2xvZ2ljOwogICAgcHJpdmF0ZSAkX2ZpbmFsYWN0aW9uOwogICAgcHJpdmF0ZSAkX2ZpbmFsbXNnOwogICAgcHJpdmF0ZSAkX2ZpbmFscGFnZTsKICAgIHByaXZhdGUgJF9kaXNwb3NpdGlvbnM7CiAgICBwcml2YXRlICRfdmFsaWRhdGlvbnM7IC8vIHVzZXIgYWRkZWQgdmFsaWRhdGlvbnMKICAgIHByaXZhdGUgJF9oYXNfY2FwdGNoYTsKICAgIHByaXZhdGUgJF9jcmVhdGVkOwogICAgcHJpdmF0ZSAkX21vZGlmaWVkOwogICAgcHJpdmF0ZSAkX2Rpc3BsYXlfaW5saW5lOwogICAgcHJpdmF0ZSAkX2VtYWlsX2Zyb21fYWRkcjsKICAgIHByaXZhdGUgJF9lbWFpbF9mcm9tX25hbWU7CiAgICBwcml2YXRlICRfc210Zm1fdmVyc2lvbjsKICAgIHByaXZhdGUgJF91c2VfYXN5bmNfdXBsb2FkOwogICAgcHJpdmF0ZSAkX3JlcGx5dG9fZmllbGQ7CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFZhbHVlKCRrZXksJHZhbCkKICAgIHsKICAgICAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICAgICAka2tleSA9ICdfJy4ka2V5OwoKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSAoaW50KSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOgogICAgICAgIGNhc2UgJ3RlbXBsYXRlX3JzcmMnOgogICAgICAgIGNhc2UgJ2VtYWlsX2Zyb21fYWRkcic6CiAgICAgICAgY2FzZSAnZW1haWxfZnJvbV9uYW1lJzoKICAgICAgICBjYXNlICdzbXRmbV92ZXJzaW9uJzsKICAgICAgICBjYXNlICdyZXBseXRvX2ZpZWxkJzsKICAgICAgICAgICAgJHRoaXMtPiRra2V5ID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2hhc19jYXB0Y2hhJzoKICAgICAgICBjYXNlICdkaXNwbGF5X2lubGluZSc6CiAgICAgICAgY2FzZSAndXNlX2FzeW5jX3VwbG9hZCc6CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9IGNtc190b19ib29sKCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndGVtcGxhdGVfaWQnOgogICAgICAgICAgICAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAgICAgaWYoICR2YWwgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB0ZW1wbGF0ZV9pZCBwcm92aWRlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaWVsZF9tZXNzYWdlcyc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkX21lc3NhZ2VzcyBhcnJheSBwcm92aWRlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgICAgICR0aGlzLT5maWVsZF9tZXNzYWdlcyA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRfbWVzc2FnZXNbXSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ZpZWxkcyc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkcyBhcnJheSBwcm92aWRlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgIGlmKCAhJG9uZSBpbnN0YW5jZW9mIEZvcm1GaWVsZCApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkcyBhcnJheSBwcm92aWRlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPiRra2V5ID0gJHZhbDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3ZhbGlkYXRpb25zJzoKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdmFsKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbnMgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggISRvbmUgaW5zdGFuY2VvZiBWYWxpZGF0aW9uICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbnMgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdkaXNwb3NpdGlvbnMnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBkaXNwb3NpdGlvbnMgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggISRvbmUgaW5zdGFuY2VvZiBJRGlzcG9zaXRpb24gKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBkaXNwb3NpdGlvbnMgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaW5hbGFjdGlvbic6CiAgICAgICAgY2FzZSAncHJlcmVuZGVyX2xvZ2ljJzoKICAgICAgICBjYXNlICdmaW5hbG1zZyc6CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaW5hbHBhZ2UnOgogICAgICAgIGNhc2UgJ3RwbF9tb2RpZmllZCc6CiAgICAgICAgY2FzZSAnY3JlYXRlZCc6CiAgICAgICAgY2FzZSAnbW9kaWZpZWQnOgogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSAoaW50KSR2YWw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIC8qYXJyYXkqLyAkZGF0YSA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maW5hbGFjdGlvbiA9ICdtZXNzYWdlJzsKICAgICAgICAvL2lmKCAhaXNfYXJyYXkoJGRhdGEpICkgcmV0dXJuOwogICAgICAgIC8vZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsICkgewoKICAgICAgICAvL30KICAgICAgaWYgKCRkYXRhIT1udWxsKSB7CiAgICAgICAgJHRoaXMtPmFkanVzdFdpdGgoICRkYXRhICk7CiAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jbG9uZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9pZCA9ICR0aGlzLT5fbmFtZSA9IG51bGw7CiAgICAgICAgJHRoaXMtPl9jcmVhdGVkID0gJHRoaXMtPl9tb2RpZmllZCA9IG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgJGtrZXkgPSAnXycuJGtleTsKCiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzoKICAgICAgICBjYXNlICd0ZW1wbGF0ZV9yc3JjJzoKICAgICAgICBjYXNlICdlbWFpbF9mcm9tX2FkZHInOgogICAgICAgIGNhc2UgJ2VtYWlsX2Zyb21fbmFtZSc6CiAgICAgICAgY2FzZSAnZmluYWxhY3Rpb24nOgogICAgICAgIGNhc2UgJ3ByZXJlbmRlcl9sb2dpYyc6CiAgICAgICAgY2FzZSAnZmluYWxtc2cnOgogICAgICAgIGNhc2UgJ3NtdGZtX3ZlcnNpb24nOgogICAgICAgIGNhc2UgJ3JlcGx5dG9fZmllbGQnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+JGtrZXkpOwoKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAndGVtcGxhdGVfaWQnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPiRra2V5OwoKICAgICAgICBjYXNlICdoYXNfY2FwdGNoYSc6CiAgICAgICAgY2FzZSAnZGlzcGxheV9pbmxpbmUnOgogICAgICAgIGNhc2UgJ3VzZV9hc3luY191cGxvYWQnOgogICAgICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT4ka2tleTsKCiAgICAgICAgY2FzZSAnZmllbGRfbWVzc2FnZXMnOgogICAgICAgIGNhc2UgJ2ZpZWxkcyc6CiAgICAgICAgY2FzZSAndmFsaWRhdGlvbnMnOgogICAgICAgIGNhc2UgJ2Rpc3Bvc2l0aW9ucyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+JGtrZXk7CgogICAgICAgIGNhc2UgJ2ZpbmFscGFnZSc6CiAgICAgICAgY2FzZSAndHBsX21vZGlmaWVkJzoKICAgICAgICBjYXNlICdjcmVhdGVkJzoKICAgICAgICBjYXNlICdtb2RpZmllZCc6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+JGtrZXk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc21hcnR5IHRlbXBsYXRlIHJlc291cmNlIHRvIHVzZSB3aGVuIHJlbmRlcmluZyBvciBzY2FubmluZyB0aGlzIHRlbXBsYXRlLgogICAgICoKICAgICAqIEBpZ25vcmUKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTbWFydHlUZW1wbGF0ZVJlc291cmNlKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPnRlbXBsYXRlX3JzcmMgKSByZXR1cm4gJHRoaXMtPl90ZW1wbGF0ZV9yc3JjOwogICAgICAgIGlmKCAkdGhpcy0+dGVtcGxhdGVfaWQgPiAwICkgcmV0dXJuICdjbXNfdGVtcGxhdGU6Jy4kdGhpcy0+dGVtcGxhdGVfaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBBbGxvd3MgYWRqdXN0aW5nIHRoZSBmb3JtIGlkLCBjcmVhdGVkIGFuZCBtb2RpZmllZCBkYXRlcy4KICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkanVzdFByaXZhdGUoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICAkdGhpcy0+c2V0VmFsdWUoICRrZXksICR2YWwgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGp1c3RXaXRoKC8qYXJyYXkqLyAkZGF0YSkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIGlmKCAka2V5ID09ICdpZCcgKSBjb250aW51ZTsgLy8gY2FuJ3QgYmUgc2V0IGF0IHJ1bnRpbWUuCiAgICAgICAgICAgIGlmKCAka2V5ID09ICdjcmVhdGVkJyApIGNvbnRpbnVlOyAvLyBjYW4ndCBiZSBzZXQgYXQgcnVudGltZS4KICAgICAgICAgICAgaWYoICRrZXkgPT0gJ21vZGlmaWVkJyApIGNvbnRpbnVlOyAvLyBjYW4ndCBiZSBzZXQgYXQgcnVudGltZS4KICAgICAgICAgICAgJHRoaXMtPnNldFZhbHVlKCAka2V5LCAkdmFsICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RmllbGQoRm9ybUZpZWxkICRmaWVsZCkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZHMpICYmIGNvdW50KCR0aGlzLT5fZmllbGRzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJiRlX2ZpZWxkICkgewogICAgICAgICAgICAgICAgaWYoICRlX2ZpZWxkLT5uYW1lID09ICRmaWVsZC0+bmFtZSApIHsKICAgICAgICAgICAgICAgICAgICAkZV9maWVsZCA9ICRmaWVsZDsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gaXQncyBhbiBhZGQKICAgICAgICAkdGhpcy0+X2ZpZWxkc1tdID0gJGZpZWxkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRWYWxpZGF0aW9uKCBWYWxpZGF0aW9uICRvYmogKQogICAgewogICAgICAgICR0aGlzLT5fdmFsaWRhdGlvbnNbJG9iai0+Z2V0X2d1aWQoKV0gPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uKCAkZ3VpZCApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fdmFsaWRhdGlvbnNbJGd1aWRdKSApIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRpb25zWyRndWlkXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzVmFsaWRhdGlvbiggJGNsYXNzbmFtZSApCiAgICB7CiAgICAgICAgaWYoICFjb3VudCgkdGhpcy0+X3ZhbGlkYXRpb25zKSApIHJldHVybjsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X3ZhbGlkYXRpb25zIGFzICRndWlkID0+ICRvYmogKSB7CiAgICAgICAgICAgIGlmKCBnZXRfY2xhc3MoJG9iaikgPT0gJGNsYXNzbmFtZSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlVmFsaWRhdGlvbiggJGd1aWQgKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X3ZhbGlkYXRpb25zWyRndWlkXSkgKSB1bnNldCgkdGhpcy0+X3ZhbGlkYXRpb25zWyRndWlkXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldERpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkb2JqICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3Bvc2l0aW9uc1skb2JqLT5nZXRfZ3VpZCgpXSA9ICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldERpc3Bvc2l0aW9uKCAkZ3VpZCApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGlzcG9zaXRpb25zWyRndWlkXSkgKSByZXR1cm4gJHRoaXMtPl9kaXNwb3NpdGlvbnNbJGd1aWRdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVEaXNwb3NpdGlvbiggJGd1aWQgKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2Rpc3Bvc2l0aW9uc1skZ3VpZF0pICkgdW5zZXQoJHRoaXMtPl9kaXNwb3NpdGlvbnNbJGd1aWRdKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb3JkZXJEaXNwb3NpdGlvbnMoIGFycmF5ICRndWlkX2xpc3QgKQogICAgewogICAgICAgIGlmKCAhY291bnQoJGd1aWRfbGlzdCkgKSByZXR1cm47CiAgICAgICAgaWYoIGNvdW50KCRndWlkX2xpc3QpICE9IGNvdW50KCR0aGlzLT5fZGlzcG9zaXRpb25zKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJG5ld19saXN0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGd1aWRfbGlzdCBhcyAkb25lX2d1aWQgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kaXNwb3NpdGlvbnNbJG9uZV9ndWlkXSkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgICAgICRvYmogPSAkdGhpcy0+X2Rpc3Bvc2l0aW9uc1skb25lX2d1aWRdOwogICAgICAgICAgICAkbmV3X2xpc3RbJG9uZV9ndWlkXSA9ICRvYmo7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGlzcG9zaXRpb25zID0gJG5ld19saXN0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvcmRlclZhbGlkYXRpb25zKCBhcnJheSAkZ3VpZF9saXN0ICkKICAgIHsKICAgICAgICBpZiggIWNvdW50KCRndWlkX2xpc3QpICkgcmV0dXJuOwogICAgICAgIGlmKCBjb3VudCgkZ3VpZF9saXN0KSAhPSBjb3VudCgkdGhpcy0+X3ZhbGlkYXRpb25zKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJG5ld19saXN0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGd1aWRfbGlzdCBhcyAkb25lX2d1aWQgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl92YWxpZGF0aW9uc1skb25lX2d1aWRdKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAgICAgJG9iaiA9ICR0aGlzLT5fdmFsaWRhdGlvbnNbJG9uZV9ndWlkXTsKICAgICAgICAgICAgJG5ld19saXN0WyRvbmVfZ3VpZF0gPSAkb2JqOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3ZhbGlkYXRpb25zID0gJG5ld19saXN0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9maWVsZHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZCggJG5hbWUgKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkdF9uYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICBpZiggJHRfbmFtZSA9PSAkbmFtZSApIHJldHVybiAkZmllbGQ7CiAgICAgICAgICAgIGlmKCAkdF9uYW1lID09ICRuYW1lLidbXScgKSByZXR1cm4gJGZpZWxkOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGZpZWxkIHdpdGggbmFtZSAnLiRuYW1lLicgaW4gZmllbGQgbGlzdCcpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRuYW1lcygpCiAgICB7CiAgICAgICAgJG5hbWVzID0gW107CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICBpZiggZW5kc3dpdGgoJG5hbWUsJ1tdJykgKSAkbmFtZSA9IHN1YnN0cigkbmFtZSwwLC0yKTsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkbmFtZSwkbmFtZXMpICkgJG5hbWVzW10gPSAkbmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRuYW1lczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX2xpc3QoKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgJG11bHRpcGxlID0gZmFsc2U7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICBpZiggZW5kc3dpdGgoJG5hbWUsJ1tdJykgKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHN1YnN0cigkbmFtZSwwLC0yKTsKICAgICAgICAgICAgICAgICRtdWx0aXBsZSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSAkbXVsdGlwbGUgPSB0cnVlOwogICAgICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwkb3V0KSApIGNvbnRpbnVlOwogICAgICAgICAgICAkc3RyID0gJG5hbWU7CiAgICAgICAgICAgIGlmKCAkbXVsdGlwbGUgKSAkc3RyIC49ICJbXSI7CiAgICAgICAgICAgICRzdHIgLj0gJyAoJy4kZmllbGQtPnR5cGUuJyknOwogICAgICAgICAgICAkb3V0WyRuYW1lXSA9ICRzdHI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X2ZpZWxkc19ieV90eXBlKCR0eXBlKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSAhPSAkdHlwZSApIGNvbnRpbnVlOwogICAgICAgICAgICAkb3V0W10gPSAkZmllbGQtPm5hbWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19maWxlX2ZpZWxkKCAkbmFtZSApCiAgICB7CiAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgICBpZiggISRuYW1lICkgcmV0dXJuOwoKICAgICAgICBpZiggc3RhcnRzd2l0aCgkbmFtZSwnc210Zm1fJykgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJGZpZWxkID0gJHRoaXMtPmdldF9maWVsZCggJG5hbWUgKTsKICAgICAgICAkcmVzID0gKCAkZmllbGQgJiYgJGZpZWxkLT50eXBlID09ICdmaWxlJyApOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8qKgogICAgICogR2l2ZW4gYSBmaWVsZCBuYW1lIGFuZCBhIGZpZWxkIHZhbHVlLCAgbG9va3VwIGFueSBodW1hbi1yZWFkYWJsZSBlcXVpdmFsZW50IHZhbHVlLgogICAgICogVGhpcyBpcyB1c2VmdWwgaW4gb3V0cHV0IGRpc3BsYXlzIChlbWFpbHMsIHdlYiBmcm9udGVuZHMpIGV0Yy4gICBpLmU6ICBEaXNwbGF5ICdmJyBhcyAnRmVtYWxlJyBhbmQgJ20nIGFzICdNYWxlJywKICAgICAqIFRoaXMgbWV0aG9kIGlzIG9ubHkgcmVhbGx5IHVzZWZ1bCB3aGVuIHRoZSBmaWVsZF9uYW1lIHJlcHJlc2VudHMgYSBzZWxlY3QsIG9yIHJhZGlvIGJ1dHRvbiBncm91cCBvciBjaGVja2JveCBncm91cC4KICAgICAqCiAgICAgKiBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCBpbiwgdGhlbiBhbiBhdHRlbXB0IHdpbGwgYmUgbWFkZSB0byBnZXQgYW4gYXJyYXkgb2YgaHVtYW4gcmVhZGFibGUgdmFsdWVzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGZpZWxkX25hbWUgVGhlIGZpZWxkIG5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmd8c3RyaW5nW10gJGZpZWxkX3ZhbHVlIFRoZSB2YWx1ZSBmb3IKICAgICAqIEByZXR1cm4gc3RyaW5nfHN0cmluZ1tdCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaHVtYW5fcmVhZGFibGVfZmllbGRfdmFsdWUoICRmaWVsZF9uYW1lLCAkZmllbGRfdmFsdWUgKQogICAgewogICAgICAgIGlmKCBzdGFydHN3aXRoKCRmaWVsZF9uYW1lLCdzbXRmbV8nKSApIHJldHVybiAkZmllbGRfdmFsdWU7CiAgICAgICAgJGZpZWxkX25hbWUgPSB0cmltKCRmaWVsZF9uYW1lKTsKICAgICAgICBpZiggISRmaWVsZF9uYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmaWVsZCBuYW1lIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIElGKCAhJGZpZWxkX3ZhbHVlICkgcmV0dXJuOwoKICAgICAgICAkZmllbGQgPSAkdGhpcy0+Z2V0X2ZpZWxkKCAkZmllbGRfbmFtZSApOwoKICAgICAgICBpZiggISAkZmllbGQtPm11bHRpcGxlICkgewogICAgICAgICAgICBpZiggJGZpZWxkLT5oYXNfb3B0aW9ucygpICkgewogICAgICAgICAgICAgICAgJG9wdCA9ICRmaWVsZC0+Z2V0X29wdGlvbl9ieV92YWx1ZSggJGZpZWxkX3ZhbHVlICk7CiAgICAgICAgICAgICAgICBpZiggISRvcHQgKSByZXR1cm47CiAgICAgICAgICAgICAgICByZXR1cm4gJG9wdC0+aHI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGZpZWxkX3ZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyAkZmllbGRfdmFsIGlzIGFuIGFycmF5LiBtdXN0IHJldHVybiBhbiBhcnJheQogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkZmllbGRfdmFsdWUgYXMgJG9uZSApIHsKICAgICAgICAgICAgJG9wdCA9ICRmaWVsZC0+Z2V0X29wdGlvbl9ieV92YWx1ZSggdHJpbSgkb25lKSApOwogICAgICAgICAgICBpZiggISRvcHQgKSBjb250aW51ZTsKICAgICAgICAgICAgJG91dFtdID0gJG9wdC0+aHI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X2ZpZWxkc19ieV90eXBlX29yX3ByaW1pdGl2ZSgkdHlwZSwkcHJpbSwkYWxsb3dfbXVsdGlwbGUgPSBmYWxzZSkKICAgIHsKICAgICAgICAkdHlwZSA9IHN0cnRvbG93ZXIodHJpbSgkdHlwZSkpOwogICAgICAgICRwcmltID0gc3RydG9sb3dlcih0cmltKCRwcmltKSk7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICBpZiggJGZpZWxkLT50eXBlICE9ICR0eXBlICYmICRmaWVsZC0+cHJpbWl0aXZlICE9ICRwcmltICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm11bHRpcGxlICYmICEkYWxsb3dfbXVsdGlwbGUgKSBjb250aW51ZTsKICAgICAgICAgICAgJHN0ciA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSAkc3RyIC49ICdbXSc7CiAgICAgICAgICAgICRzdHIgLj0gJyAoJy4kZmllbGQtPnR5cGUuJyknOwogICAgICAgICAgICAkb3V0WyRmaWVsZC0+bmFtZV0gPSAkc3RyOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbGlzdF9tdWx0aW9wdGlvbl9maWVsZHMoICRtdWx0aXBsZV9va2F5ID0gRkFMU0UgKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEkZmllbGQtPmhhc19tdWx0aXBsZV9vcHRpb25zKCkgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICEkbXVsdGlwbGVfb2theSAmJiAkZmllbGQtPm11bHRpcGxlICkgY29udGludWU7CiAgICAgICAgICAgICRvdXRbXSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9tdWx0aW9wdGlvbl9maWVsZHMoICRtdWx0aXBsZV9va2F5ID0gRkFMU0UgKQogICAgewogICAgICAgIC8vIGZpZWxkcyBhcmUgbXVsdGktb3B0aW9uIGZpZWxkc3MgSUYgdGhleSBvY2N1ciBtdWx0aXBsZSB0eXBlcywgYW5kIHRoZXkgYXJlIHJhZGlvCiAgICAgICAgLy8gT1IgdGhleSBhcmUgYSBzZWxlY3QuCiAgICAgICAgJG91dCA9ICR0bXAgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEkbXVsdGlwbGVfb2theSAmJiAkZmllbGQtPm11bHRpcGxlICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAhJGZpZWxkLT5oYXNfbXVsdGlwbGVfb3B0aW9ucygpICkgY29udGludWU7CiAgICAgICAgICAgICRzdHIgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm11bHRpcGxlICkgJHN0ciAuPSAiW10iOwogICAgICAgICAgICAkc3RyIC49ICIgKHskZmllbGQtPnR5cGV9KSI7CiAgICAgICAgICAgICRvdXRbJGZpZWxkLT5uYW1lXSA9ICRzdHI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19tdWx0aXZhbHVlX2ZpZWxkKCRuYW1lKQogICAgewogICAgICAgIC8vIGEgZmllbGQgaXMgYSBtdWx0aS12YWx1ZSBmaWVsZCBJRiBpdCdzIG5hbWUgZW5kcyB3aXRoIFtdCiAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5hbWUgIT0gJG5hbWUgICkgY29udGludWU7CiAgICAgICAgICAgIHJldHVybiAkZmllbGQtPm11bHRpcGxlOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGZpZWxkIHdpdGggbmFtZSAnLiRuYW1lLicgaW4gZmllbGQgbGlzdCcpOwogICAgfQoKICAgIC8qKgogICAgICogR2l2ZW4gYSByZXNwb25zZSwgdmFsaWRhdGUgaXQgYWdhaW5zdCBhbGwgdmFsaWRhdGlvbnMsIGFuZCBjYWxsIGEgaG9vay4KICAgICAqCiAgICAgKiBAcGFyYW0gRm9ybVJlc3BvbnNlICRyZXNwb25zZSBUaGUgcG9wdWxhdGVkIHJlc3BvbnNlIG9iamVjdAogICAgICogQHBhcmFtIFRSYW5zbGF0b3IgJHRyYW5zbGF0b3IgVGhlIG9iamVjdCBmb3IgdHJhbnNsYXRpbmcgbWVzc2FnZXMuCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdfG51bGwgQSBsaXN0IG9mIGVycm9yIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgYWNjdW11bGF0aW5nIG1lc3NhZ2VzIGNhdWdodCBieSBWYWxpZGF0aW9uRXhjZXB0aW9uIGVycm9ycy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlX3Jlc3BvbnNlKCBGb3JtUmVzcG9uc2UgJHJlc3BvbnNlLCBUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkZXJyb3JzID0gbnVsbDsKICAgICAgICAkdmFsaWRhdGlvbnMgPSAkdGhpcy0+dmFsaWRhdGlvbnM7CiAgICAgICAgJHZhbGlkYXRpb25zW10gPSBuZXcgRmllbGRWYWxpZGF0b3JzXEhvb2tWYWxpZGF0b3IoKTsKICAgICAgICBmb3JlYWNoKCAkdmFsaWRhdGlvbnMgYXMgJHZhbGlkYXRpb24gKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkdmFsaWRhdGlvbi0+dmFsaWRhdGUoICR0aGlzLCAkcmVzcG9uc2UsICR0cmFuc2xhdG9yICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIEZpZWxkVmFsaWRhdG9yc1xWYWxpZGF0aW9uRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5hZGRfZXJyb3IoICRlLT5HZXRGaWVsZEVycm9yKCktPm1zZyApOwogICAgICAgICAgICAgICAgJGVycm9yc1tdID0gJGUtPkdldEZpZWxkRXJyb3IoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGVycm9yczsKICAgIH0KCiAgICAvKioKICAgICAqIFVzZSBhbGwgZGlzcG9zaXRpb25zIGF0dGFjaGVkIHRvIGEgZm9ybSwgYW5kIGNhbGwgdGhlbS4KICAgICAqIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCBhbGwgdmFsaWRhdGlvbnMgaGF2ZSBhbHJlYWR5IHBhc3NlZC4KICAgICAqIFRoaXMgbWV0aG9kIERPRVMgTk9UIHByb2Nlc3MgdGhlIGZpbmFsIGFjdGlvbiBvcHRpb25zLgogICAgICoKICAgICAqIEBwYXJhbSBGb3JtUmVzcG9uc2UgJHJlc3BvbnNlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlX3Jlc3BvbnNlX25vdmFsaWRhdGUoIEZvcm1SZXNwb25zZSAkcmVzcG9uc2UgKQogICAgewogICAgICAgICRkaXNwb3NpdGlvbnMgPSAkdGhpcy0+ZGlzcG9zaXRpb25zOwogICAgICAgIGlmKCAkcmVzcG9uc2UtPmhhc191cGxvYWRzKCkgKSB7CiAgICAgICAgICAgIC8vIHNwZWNpYWwgZGlzcG9zaXRpb24gdG8gbW92ZSB1cGxvYWRlZCBmaWxlcyB0byBhIG1vcmUgcGVybWFuZW50IGxvY2F0aW9uIChuYW1lZCBieSBHVUlEKQogICAgICAgICAgICAvLyB0aGlzIGRpc3Bvc2l0aW9uIGlzIHByZXBlbmRlZCB0byB0aGUgbGlzdC4KICAgICAgICAgICAgJGRpc3AgPSBuZXcgRGlzcG9zaXRpb25zXEdVSURGaWxlRGlzcG9zaXRpb24oKTsKICAgICAgICAgICAgaWYoICRkaXNwb3NpdGlvbnMgKSB7CiAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCAkZGlzcG9zaXRpb25zLCAkZGlzcCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJGRpc3Bvc2l0aW9ucyA9IFsgJGRpc3AgXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gYXBwZW5kIGEgaG9vayBkaXNwb3NpdGlvbgogICAgICAgICRkaXNwb3NpdGlvbnNbXSA9IG5ldyBEaXNwb3NpdGlvbnNcSG9va0Rpc3Bvc2l0aW9uKCk7CgogICAgICAgIC8vIG5vdyBkbyB0aGUgZGlzcG9zaW5nCiAgICAgICAgZm9yZWFjaCggJGRpc3Bvc2l0aW9ucyBhcyAkZGlzcCApIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmKCAhICRkaXNwLT5pc19hY3RpdmUoKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJGRpc3AtPmRpc3Bvc2UoICR0aGlzLCAkcmVzcG9uc2UgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCggXFNtYXJ0Rm9ybXNcU3RvcERpc3Bvc2l0aW9uVHJpZ2dlciAkZSApIHsKICAgICAgICAgICAgICAgIC8vIHdvb3QsIHdlIHN0b3AgaGFuZGxpbmcgc3R1ZmYuCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIGlzIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCBhZnRlciBhIGZvcm0gaXMgZGlzcG9zZWQuCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgZGlzcG9zaXRpb24sIGJ1dCBiZWZvcmUgdGhlIGZpbmFsIGFjdGlvbi4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFudXBfcmVzcG9uc2UoIEZvcm1SZXNwb25zZSAkcmVzcG9uc2UgKQogICAgewogICAgICAgIGlmKCAkcmVzcG9uc2UtPmNhbl9jbGVhbnVwKCkgKSBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soICdTbWFydEZvcm1zOjpjbGVhbnVwJywgJHJlc3BvbnNlICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHBlcmZvcm0gYSBmaW5hbCBhY3Rpb24gYWZ0ZXIgdGhlIGZvcm0gaXMgZGlzcG9zZWQgYW5kIGNsZWFuZWQgdXAuCiAgICAgKiBJdCBtYXkgcmVkaXJlY3QgdG8gYSBjb250ZW50IHBhZ2UsIG9yIG1heSByZXR1cm4gYSBzdHJpbmcgdG8gZGlzcGxheSBpbiB0aGUgcHJpbWFyeSBjb250ZW50IGFyZWEuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IG5vdCBiZSBjYWxsZWQgaW4gYSBmb3JtIGRpc3Bvc2l0aW9uIGlmIGFub3RoZXIgZGlzcG9zdGlvbiByZXN1bHRzIGluIGEgcmVkaXJlY3QuCiAgICAgKgogICAgICogQHBhcmFtIEZvcm1SZXNwb25zZSAkcmVzcG9uc2UKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkb19maW5hbF9hY3Rpb24oIEZvcm1SZXNwb25zZSAkcmVzcG9uc2UgKQogICAgewogICAgICAgIC8vIHRoaXMgaXMganVzdCBiYXNpY2FsbHkgYSBkaXNwb3NpdGlvbi4KICAgICAgICBzd2l0Y2goICR0aGlzLT5maW5hbGFjdGlvbiApIHsKICAgICAgICBjYXNlICdyZWRpcmVjdCc6CiAgICAgICAgICAgIGlmKCAkcmVzcG9uc2UtPmZpbmFsX3VybCApIHsKICAgICAgICAgICAgICAgIHJlZGlyZWN0KCAkcmVzcG9uc2UtPmZpbmFsX3VybCApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTbWFydEZvcm1zJyk7CiAgICAgICAgICAgICRtb2QtPlJlZGlyZWN0Q29udGVudCggJHRoaXMtPmZpbmFscGFnZSApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICBjYXNlICdtZXNzYWdlJzoKICAgICAgICAgICAgJHRlbXBsYXRlID0gJHRoaXMtPmZpbmFsbXNnOwogICAgICAgICAgICByZXR1cm4gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0ZW1wbGF0ZSwgJHRoaXMsICRyZXNwb25zZSApOwogICAgICAgIH0KCiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormDAO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSBTbWFydEZvcm1zOwp1c2UgU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcRGlzcG9zaXRpb247CnVzZSBTbWFydEZvcm1zXEZpZWxkVmFsaWRhdG9yc1xWYWxpZGF0aW9uOwp1c2UgQ01TTVNcRGF0YWJhc2VcQ29ubmVjdGlvbiBhcyBEYXRhYmFzZTsKCmNsYXNzIEZvcm1EQU8gaW1wbGVtZW50cyBGb3JtU3RvcmFnZUludGVyZmFjZQp7CiAgICBwcml2YXRlICRfbW9kOwogICAgcHJpdmF0ZSAkX2RiOwogICAgcHJpdmF0ZSAkX25hbWVfY2FjaGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFNtYXJ0Rm9ybXMgJG1vZCwgRGF0YWJhc2UgJGRiKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2RiID0gJGRiOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdGFibGVfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIENNU19EQl9QUkVGSVguJ21vZF9zbXRmbV9mb3Jtcyc7CiAgICB9CgogICAgLy8gLyogRm9ybSAqLyBhcmUgZm9yIHRlc3RvbmluZyBpZiBDR0JGIGZvcm1zIGNvdWxkIGJlIGluamVjdGVkLi4uCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2luc2VydCggLypGb3JtKi8gJGZvcm0gKQogICAgewogICAgICAvL2RpZSgiaGkiKTsKICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuc2VsZjo6dGFibGVfbmFtZSgpLicgKG5hbWUsIGRhdGEsIGNyZWF0ZWQsIG1vZGlmaWVkKSBWQUxVRVMgKD8sPyxVTklYX1RJTUVTVEFNUCgpLFVOSVhfVElNRVNUQU1QKCkpJzsKICAgICAgLyppZiAoZ2V0X2NsYXNzKCRmb3JtKT09IkNHQmV0dGVyRm9ybXNcRm9ybSIpIHsKICAgICAgICBlY2hvICJoaSI7CiAgICAgICAgJGZvcm09JHRoaXMtPmNvbnZlcnRPYmplY3RDbGFzcygkZm9ybSwiU21hcnRGb3Jtc1xGb3JtIik7CiAgICAgIH0qLwoKICAgICAgLy9lY2hvICRzZXJmb3JtLiI8YnI+PGJyPiI7CgogICAgIC8qIGlmIChnZXRfY2xhc3MoJGZvcm0pPT0iQ0dCZXR0ZXJGb3Jtc1xGb3JtIikgewogICAgICAgICRzbWZvcm09bmV3IFNtYXJ0Rm9ybXNcRm9ybSgkZm9ybSk7CiAgICAgICAgJGZvcm09JHNtZm9ybTsKKi8KLy9lY2hvICJoaSI7CiAgICAgICAgLy8kc2VyZm9ybT1zdHJfcmVwbGFjZSgiXyIsIiMiLCRzZXJmb3JtKTsKICAgICAgICAvL2VjaG8gc3RycG9zKCRzZXJmb3JtLCdzOjIzOiJDR0JldHRlckZvcm1zXEZvcm0nKTsKICAgICAgICAvKiRwYXR0ZXJuPXByZWdfcXVvdGUoJ3M6MjM6IkNHQmV0dGVyRm9ybXNcRm9ybV9pZCcsJy8nKTsKICAgICAgICAkcmVwbGFjZT1wcmVnX3F1b3RlKCdzOjIwOiJTbWFydEZvcm1zXEZvcm1faWQnLCcvJyk7CiAgICAgICAgJHNlcmZvcm09cHJlZ19yZXBsYWNlKCRwYXR0ZXJuLCRyZXBsYWNlLCRzZXJmb3JtKTsqLwoKCiAgICAgICAgLy8kc2VyZm9ybT1zdHJfcmVwbGFjZShjaHIoMCkuIl8iLCJfIiwkc2VyZm9ybSk7CiAgICAgICAgLy8kcG9zPXN0cnBvcygkc2VyZm9ybSwiXyIpOwogICAgICAgIC8vZWNobyAiICIub3JkKCRzZXJmb3JtWyRwb3MtMl0pLiItIi5vcmQoJHNlcmZvcm1bJHBvcy0xXSkuIi0iLm9yZCgkc2VyZm9ybVskcG9zXSkuIi0iLm9yZCgkc2VyZm9ybVskcG9zKzFdKS4iICI7Ci8qCiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MjM6IkNHQmV0dGVyRm9ybXNcRm9ybV9pZCcsJ3M6MjA6IlNtYXJ0Rm9ybXNcRm9ybV9pZCcsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjI1OiJDR0JldHRlckZvcm1zXEZvcm1fbmFtZScsJ3M6MjI6ICJTbWFydEZvcm1zXEZvcm1fbmFtZScsJHNlcmZvcm0pOwoKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczozMjoiQ0dCZXR0ZXJGb3Jtc1xGb3JtX3RlbXBsYXRlX2lkJywnczoyOToiU21hcnRGb3Jtc1xGb3JtX3RlbXBsYXRlX2lkJywkc2VyZm9ybSk7CgogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjM0OiJDR0JldHRlckZvcm1zXEZvcm1fdGVtcGxhdGVfcnNyYycsJ3M6MzE6IlNtYXJ0Rm9ybXNcRm9ybV90ZW1wbGF0ZV9yc3JjJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MzM6IkNHQmV0dGVyRm9ybXNcRm9ybV90cGxfbW9kaWZpZWQnLCdzOjMwOiJTbWFydEZvcm1zXEZvcm1fdHBsX21vZGlmaWVkJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MzI6IkNHQmV0dGVyRm9ybXNcRm9ybV9kZXNjcmlwdGlvbicsJ3M6Mjk6IlNtYXJ0Rm9ybXNcRm9ybV9kZXNjcmlwdGlvbicsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjM1OiJDR0JldHRlckZvcm1zXEZvcm1fZmllbGRfbWVzc2FnZXMnLCdzOjMyOiJTbWFydEZvcm1zXEZvcm1fZmllbGRfbWVzc2FnZXMnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczoyNzoiQ0dCZXR0ZXJGb3Jtc1xGb3JtX2ZpZWxkcycsJ3M6MjQ6IlNtYXJ0Rm9ybXNcRm9ybV9maWVsZHMnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnTzoyMzoiQ0dCZXR0ZXJGb3Jtc1xGb3JtRmllbGQnLCdPOjIwOiJTbWFydEZvcm1zXEZvcm1GaWVsZCcsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjMwOiJDR0JldHRlckZvcm1zXEZvcm1GaWVsZF9kYXRhJywnczoyNzoiU21hcnRGb3Jtc1xGb3JtRmllbGRfZGF0YScsJHNlcmZvcm0pOwoKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnTzoyNzoiQ0dCZXR0ZXJGb3Jtc1xGb3JtRmlsZUZpZWxkJywnTzoyNDoiU21hcnRGb3Jtc1xGb3JtRmlsZUZpZWxkJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MzQ6IkNHQmV0dGVyRm9ybXNcRm9ybUZpbGVGaWVsZF9kYXRhJywnczozMToiU21hcnRGb3Jtc1xGb3JtRmlsZUZpZWxkX2RhdGEnLCRzZXJmb3JtKTsKCiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MzI6IkNHQmV0dGVyRm9ybXNcRm9ybUZpZWxkb3B0aW9ucycsJ3M6Mjk6IlNtYXJ0Rm9ybXNcRm9ybUZpZWxkb3B0aW9ucycsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjMyOiJDR0JldHRlckZvcm1zXEZvcm1GaWVsZF92YWx1ZXMnLCdzOjI5OiJTbWFydEZvcm1zXEZvcm1GaWVsZF92YWx1ZXMnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczozOToiQ0dCZXR0ZXJGb3Jtc1xGb3JtRmllbGRfZXh0cmFfYXR0cmlicycsJ3M6MzY6IlNtYXJ0Rm9ybXNcRm9ybUZpZWxkX2V4dHJhX2F0dHJpYnMnLCRzZXJmb3JtKTsKCiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ086MzQ6IkNHQmV0dGVyRm9ybXNcRm9ybU11bHRpVmFsdWVPcHRpb24nLCdPOjMxOiJTbWFydEZvcm1zXEZvcm1NdWx0aVZhbHVlT3B0aW9uJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6NDE6IkNHQmV0dGVyRm9ybXNcRm9ybU11bHRpVmFsdWVPcHRpb25fZGF0YScsJ3M6Mzg6IlNtYXJ0Rm9ybXNcRm9ybU11bHRpVmFsdWVPcHRpb25fZGF0YScsJHNlcmZvcm0pOwoKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczozNjoiQ0dCZXR0ZXJGb3Jtc1xGb3JtX3ByZXJlbmRlcl9sb2dpYycsJ3M6MzM6IlNtYXJ0Rm9ybXNcRm9ybV9wcmVyZW5kZXJfbG9naWMnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczozMjoiQ0dCZXR0ZXJGb3Jtc1xGb3JtX2ZpbmFsYWN0aW9uJywnczoyOToiU21hcnRGb3Jtc1xGb3JtX2ZpbmFsYWN0aW9uJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6Mjk6IkNHQmV0dGVyRm9ybXNcRm9ybV9maW5hbG1zZycsJ3M6MjY6IlNtYXJ0Rm9ybXNcRm9ybV9maW5hbG1zZycsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjMwOiJDR0JldHRlckZvcm1zXEZvcm1fZmluYWxwYWdlJywnczoyNzoiU21hcnRGb3Jtc1xGb3JtX2ZpbmFscGFnZScsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjMzOiJDR0JldHRlckZvcm1zXEZvcm1fZGlzcG9zaXRpb25zJywnczozMDoiU21hcnRGb3Jtc1xGb3JtX2Rpc3Bvc2l0aW9ucycsJHNlcmZvcm0pOwoKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnTzo0ODoiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcVW5pcXVlRmlsZURpc3Bvc2l0aW9uJywnTzo0NToiU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcVW5pcXVlRmlsZURpc3Bvc2l0aW9uJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6NTc6IkNHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXFVuaXF1ZUZpbGVEaXNwb3NpdGlvbl9mb2xkZXInLCdzOjU0OiJTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xVbmlxdWVGaWxlRGlzcG9zaXRpb25fZm9sZGVyJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6Njg6IkNHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXFVuaXF1ZUZpbGVEaXNwb3NpdGlvbl9maWxlbmFtZV90ZW1wbGF0ZScsJ3M6NjU6IlNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXFVuaXF1ZUZpbGVEaXNwb3NpdGlvbl9maWxlbmFtZV90ZW1wbGF0ZScsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjY1OiJDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xVbmlxdWVGaWxlRGlzcG9zaXRpb25faGVhZGVydGVtcGxhdGUnLCdzOjYyOiJTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xVbmlxdWVGaWxlRGlzcG9zaXRpb25faGVhZGVydGVtcGxhdGUnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo2NDoiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcVW5pcXVlRmlsZURpc3Bvc2l0aW9uX2VudHJ5dGVtcGxhdGUnLCdzOjYxOiJTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xVbmlxdWVGaWxlRGlzcG9zaXRpb25fZW50cnl0ZW1wbGF0ZScsJHNlcmZvcm0pOwoKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo0NToiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRGlzcG9zaXRpb25fZ3VpZCcsJ3M6NDI6IlNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXERpc3Bvc2l0aW9uX2d1aWQnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo0NzoiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRGlzcG9zaXRpb25fYWN0aXZlJywnczo0NDoiU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcRGlzcG9zaXRpb25fYWN0aXZlJywkc2VyZm9ybSk7CgogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdPOjU3OiJDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24nLCdPOjUzOiJTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24nLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo2OToiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uX2FkZHJlc3NlcycsJ3M6NjY6IlNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbl9hZGRyZXNzZXMnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo3NToiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uX3N1YmplY3R0ZW1wbGF0ZScsJ3M6NzI6IlNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbl9zdWJqZWN0dGVtcGxhdGUnLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo3MjoiQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uX2JvZHl0ZW1wbGF0ZScsJ3M6Njk6IlNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbl9ib2R5dGVtcGxhdGUnLCRzZXJmb3JtKTsKCiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ086NTM6IkNHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXEh0bWxEZXRlY3Rpb25WYWxpZGF0aW9uJywnTzo1MDoiU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcSHRtbERldGVjdGlvblZhbGlkYXRpb24nLCRzZXJmb3JtKTsKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczo0NzoiQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcVmFsaWRhdGlvbl9ndWlkJywnczo0NDoiU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcVmFsaWRhdGlvbl9ndWlkJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ086NTE6IkNHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXFNlbGVjdEZpZWxkVmFsaWRhdGlvbicsJ086NDg6IlNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXFNlbGVjdEZpZWxkVmFsaWRhdGlvbicsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdPOjUzOiJDR0JldHRlckZvcm1zXEZpZWxkVmFsaWRhdG9yc1xEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbicsJ086NTA6IlNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXERhdGVQcmltaXRpdmVWYWxpZGF0aW9uJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ086NTQ6IkNHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXEVtYWlsUHJpbWl0aXZlVmFsaWRhdGlvbicsJ086NTE6IlNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXEVtYWlsUHJpbWl0aXZlVmFsaWRhdGlvbicsJHNlcmZvcm0pOwoKICAgICAgICAkc2VyZm9ybT1zdHJfcmVwbGFjZSgnczozMjoiQ0dCZXR0ZXJGb3Jtc1xGb3JtX2hhc19jYXB0Y2hhJywnczoyOToiU21hcnRGb3Jtc1xGb3JtX2hhc19jYXB0Y2hhJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6Mjk6IkNHQmV0dGVyRm9ybXNcRm9ybV9tb2RpZmllZCcsJ3M6MjY6IlNtYXJ0Rm9ybXNcRm9ybV9tb2RpZmllZCcsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjI4OiJDR0JldHRlckZvcm1zXEZvcm1fY3JlYXRlZCcsJ3M6MjU6IlNtYXJ0Rm9ybXNcRm9ybV9jcmVhdGVkJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MzU6IkNHQmV0dGVyRm9ybXNcRm9ybV9kaXNwbGF5X2lubGluZScsJ3M6MzI6IlNtYXJ0Rm9ybXNcRm9ybV9kaXNwbGF5X2lubGluZScsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjM2OiJDR0JldHRlckZvcm1zXEZvcm1fZW1haWxfZnJvbV9hZGRyJywnczozMzoiU21hcnRGb3Jtc1xGb3JtX2VtYWlsX2Zyb21fYWRkcicsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjM2OiJDR0JldHRlckZvcm1zXEZvcm1fZW1haWxfZnJvbV9uYW1lJywnczozMzoiU21hcnRGb3Jtc1xGb3JtX2VtYWlsX2Zyb21fbmFtZScsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjMzOiJDR0JldHRlckZvcm1zXEZvcm1fY2diZl92ZXJzaW9uJywnczozMDoiU21hcnRGb3Jtc1xGb3JtX2NnYmZfdmVyc2lvbicsJHNlcmZvcm0pOwogICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCdzOjM3OiJDR0JldHRlckZvcm1zXEZvcm1fdXNlX2FzeW5jX3VwbG9hZCcsJ3M6MzQ6IlNtYXJ0Rm9ybXNcRm9ybV91c2VfYXN5bmNfdXBsb2FkJywkc2VyZm9ybSk7CiAgICAgICAgJHNlcmZvcm09c3RyX3JlcGxhY2UoJ3M6MzQ6IkNHQmV0dGVyRm9ybXNcRm9ybV9yZXBseXRvX2ZpZWxkJywnczozMToiU21hcnRGb3Jtc1xGb3JtX3JlcGx5dG9fZmllbGQnLCRzZXJmb3JtKTsKKi8KICAgICAgICAvLyRzZXJmb3JtPXN0cl9yZXBsYWNlKCdPOjE4OiJDR0JldHRlckZvcm1zXEZvcm0nLCdPOjE1OiJTbWFydEZvcm1zXEZvcm0nLCRzZXJmb3JtKTsKICAgICAgICAvLyRzZXJmb3JtPXN0cl9yZXBsYWNlKCJfIixjaHIoMCkuIl8iLCRzZXJmb3JtKTsKCiAgICAgICAgLy9pZiAoIXVuc2VyaWFsaXplKCRzZXJmb3JtKSkgZGllKCJkYW1uIik7CgogICAgLy8gIH0KICAgICAgJHNlcmZvcm09c2VyaWFsaXplKCRmb3JtKTsKICAgICAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCAkc3FsLCBbICRmb3JtLT5uYW1lLCAkc2VyZm9ybSBdICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF91cGRhdGUoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAvL2VjaG8gImhpIjtkaWUoKTsKICAgICAgICAkc3FsID0gJ1VQREFURSAnLnNlbGY6OnRhYmxlX25hbWUoKS4nIFNFVCBuYW1lID0gPywgZGF0YSA9ID8sIG1vZGlmaWVkID0gVU5JWF9USU1FU1RBTVAoKSBXSEVSRSBpZCA9ID8nOwogICAgICAgICRzZXJmb3JtPXNlcmlhbGl6ZSgkZm9ybSk7CiAgICAgICAgLyppZiAoZ2V0X2NsYXNzKCRmb3JtKT09IkNHQmV0dGVyRm9ybXNcRm9ybSIpIHsKICAgICAgICAgICRzZXJmb3JtPXN0cl9yZXBsYWNlKCJDR0JldHRlckZvcm1zXEZvcm0iLCJTbWFydEZvcm1zXEZvcm0iLCRzZXJmb3JtKTsKICAgICAgICB9Ki8KICAgICAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCAkc3FsLCBbICRmb3JtLT5uYW1lLCAkc2VyZm9ybSwgJGZvcm0tPmlkIF0gKTsKICAgIH0KCiAgICAvLyBmb3JtIG9iamVjdCBjYW5ub3QgYmUgYWx0ZXJlZCBhbmQgcmUtc2F2ZWQgYWZ0ZXIgc2F2aW5nLgogICAgcHVibGljIGZ1bmN0aW9uIFNhdmUoIC8qRm9ybSovICRmb3JtICkKICAgIHsKICAgICAgLy9kaWUoZ2V0X2NsYXNzKCRmb3JtKSk7CiAgICAgICAgaWYoICRmb3JtLT5pZCA8IDEgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2luc2VydCggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3VwZGF0ZSggJGZvcm0gKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxpc3RfYWxsKCkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCxuYW1lIEZST00gJy5zZWxmOjp0YWJsZV9uYW1lKCkuJyBPUkRFUiBCWSBuYW1lIEFTQyc7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5fZGItPkdldEFycmF5KCRzcWwpOwogICAgICAgIGlmKCAhJHRtcCB8fCAhY291bnQoJHRtcCkgKSByZXR1cm47CgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRyb3cgKSB7CiAgICAgICAgICAgICRvdXRbJHJvd1snaWQnXV0gPSAkcm93WyduYW1lJ107CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBleGlzdHMoICRuYW1lICkKICAgIHsKICAgICAgICBpZiggISAkdGhpcy0+X25hbWVfY2FjaGUgKSB7CiAgICAgICAgICAgICR0aGlzLT5fbmFtZV9jYWNoZSA9IFtdOwogICAgICAgICAgICAkbmFtZSA9IHRyaW0oJG5hbWUpOwogICAgICAgICAgICBpZiggISRuYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmb3JtIG5hbWUgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCxuYW1lIEZST00gJy5zZWxmOjp0YWJsZV9uYW1lKCk7CiAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+X2RiLT5HZXRBcnJheSggJHNxbCApOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSAkdGhpcy0+X25hbWVfY2FjaGUgPSAkdG1wOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X25hbWVfY2FjaGUgYXMgJHJvdyApIHsKICAgICAgICAgICAgaWYoICRyb3dbJ25hbWUnXSA9PSAkbmFtZSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZCggJG5hbWUgKQogICAgewogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICEkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZm9ybSBuYW1lIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5zZWxmOjp0YWJsZV9uYW1lKCkuJyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgJHJvdyA9ICR0aGlzLT5fZGItPkdldFJvdygkc3FsLFsgJG5hbWUgXSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSB8fCAhY291bnQoJHJvdykgKSByZXR1cm47CgogICAgICAgICRvYmogPSB1bnNlcmlhbGl6ZSgkcm93WydkYXRhJ10pOwogICAgICAgIHVuc2V0KCRyb3dbJ2RhdGEnXSk7CiAgICAgICAgJG9iai0+YWRqdXN0UHJpdmF0ZSggJHJvdyApOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKCAkaWQgKQogICAgewogICAgICAgICRpZCA9IChpbnQpICRpZDsKICAgICAgICBpZiggJGlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZm9ybSBpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuc2VsZjo6dGFibGVfbmFtZSgpLicgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkcm93ID0gJHRoaXMtPl9kYi0+R2V0Um93KCRzcWwsWyAkaWQgXSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSB8fCAhY291bnQoJHJvdykgKSByZXR1cm47CgogICAgICAgICRvYmogPSB1bnNlcmlhbGl6ZSgkcm93WydkYXRhJ10pOwogICAgICAgIGlmKCAhJG9iaiBpbnN0YW5jZW9mIEZvcm0gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZGVzZXJpYWxpemUgZm9ybScpOwogICAgICAgIGlmKCAhZW1wdHkoJGZvcm0tPmRpc3Bvc2l0aW9ucykgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRvYmotPmRpc3Bvc2l0aW9ucyBhcyAka2V5ID0+ICRkaXNwICkgewogICAgICAgICAgICAgICAgaWYoICEkZGlzcCBpbnN0YW5jZW9mIERpc3Bvc2l0aW9uICkgewogICAgICAgICAgICAgICAgICAgICRkaXNwID0gKGFycmF5KSAkZGlzcDs7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJfdW5rbm93bl9kaXNwb3NpdGlvbicsJGRpc3BbJ19fUEhQX0luY29tcGxldGVfQ2xhc3NfTmFtZSddID8/ICd1bmtub3duJykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggIWVtcHR5KCRmb3JtLT52YWxpZGF0aW9ucykgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRvYmotPnZhbGlkYXRpb25zIGFzICRrZXkgPT4gJHZhbGlkYXRvciApIHsKICAgICAgICAgICAgICAgIGlmKCAhJHZhbGlkYXRvciBpbnN0YW5jZW9mIFZhbGlkYXRpb24gKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbGlkYXRvciA9IChhcnJheSkgJHZhbGlkYXRvcjsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycl91bmtub3duX3ZhbGlkYXRpb24nLCAkdmFsaWRhdG9yWydfX1BIUF9JbmNvbXBsZXRlX0NsYXNzX05hbWUnXSA/PyAndW5rbm93bicpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdW5zZXQoJHJvd1snZGF0YSddKTsKICAgICAgICAkb2JqLT5hZGp1c3RQcml2YXRlKCAkcm93ICk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgaWYoICRmb3JtLT5pZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgZGVsZXRlIGEgZm9ybSB0aGF0IGhhcyBub3QgYmVlbiBzYXZlZCcpOwoKICAgICAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuc2VsZjo6dGFibGVfbmFtZSgpLicgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCAkc3FsLCBbICRmb3JtLT5pZF0gKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormExporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgoKY2xhc3MgRm9ybUV4cG9ydGVyCnsKICAgIHByaXZhdGUgJF9mb3JtOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9mb3JtID0gJGZvcm07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRvd25sb2FkKCkKICAgIHsKICAgICAgICAkZ2V0X2NsYXNzbmFtZXMgPSBmdW5jdGlvbiggYXJyYXkgJGluID0gbnVsbCApIHsKICAgICAgICAgICAgaWYoIGlzX251bGwoJGluKSApIHJldHVybjsKICAgICAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgICAgIGZvcmVhY2goICRpbiBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYoICFpc19vYmplY3QoJG9uZSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRvdXRbXSA9IGdldF9jbGFzcyggJG9uZSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhcnJheV91bmlxdWUoJG91dCk7CiAgICAgICAgfTsKCiAgICAgICAgJHRwbCA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCggJHRoaXMtPl9mb3JtLT50ZW1wbGF0ZV9pZCApOwogICAgICAgICRkZWxpbSA9ICd+fn4nOwogICAgICAgICRhcnIgPSBbXTsKICAgICAgICAkYXJyWzBdID0gJ1NNVEZNJzsKICAgICAgICAkYXJyWzFdID0gJzEnOwogICAgICAgICRhcnJbMl0gPSBiYXNlNjRfZW5jb2RlKCAkdGhpcy0+X2Zvcm0tPm5hbWUgKTsKICAgICAgICAkdGVtcGxhdGVfZGF0YSA9IGJhc2U2NF9lbmNvZGUoJHRwbC0+Z2V0X2NvbnRlbnQoKSk7CiAgICAgICAgJGZvcm1fZGF0YSA9IGJhc2U2NF9lbmNvZGUoIHNlcmlhbGl6ZSgkdGhpcy0+X2Zvcm0pICk7CiAgICAgICAgJHNhbHRfdGVtcGxhdGUgPSBtZDUoJGZvcm1fZGF0YSk7CiAgICAgICAgJHNhbHRfZm9ybSA9IG1kNSgkdGVtcGxhdGVfZGF0YSk7CiAgICAgICAgJGFyclszXSA9IG1kNSgkdGVtcGxhdGVfZGF0YS4kc2FsdF90ZW1wbGF0ZSk7CiAgICAgICAgJGFycls0XSA9IG1kNSgkZm9ybV9kYXRhLiRzYWx0X2Zvcm0pOwogICAgICAgICRhcnJbNV0gPSAkZm9ybV9kYXRhOwogICAgICAgICRhcnJbNl0gPSAkdGVtcGxhdGVfZGF0YTsKICAgICAgICAkdmFsaWRhdGlvbl9saXN0ID0gJGdldF9jbGFzc25hbWVzKCAkdGhpcy0+X2Zvcm0tPnZhbGlkYXRpb25zICk7CiAgICAgICAgJGFycls3XSA9IGJhc2U2NF9lbmNvZGUoIHNlcmlhbGl6ZSggJHZhbGlkYXRpb25fbGlzdCkgKTsKICAgICAgICAkZGlzcG9zaXRpb25fbGlzdCA9ICRnZXRfY2xhc3NuYW1lcyggJHRoaXMtPl9mb3JtLT5kaXNwb3NpdGlvbnMgKTsKICAgICAgICAkYXJyWzhdID0gYmFzZTY0X2VuY29kZSggc2VyaWFsaXplKCAkZGlzcG9zaXRpb25fbGlzdCkgKTsKICAgICAgICAkYXJyWzldID0gYmFzZTY0X2VuY29kZSggJHRwbC0+Z2V0X25hbWUoKSApOwoKICAgICAgICAkZGF0YSA9IGltcGxvZGUoICRkZWxpbSwgJGFyciApOwogICAgICAgIFx4dF91dGlsczo6c2VuZF9kYXRhX2FuZF9leGl0KCAkZGF0YSwgJ3RleHQvcGxhaW4nLCAkdGhpcy0+X2Zvcm0tPm5hbWUuJy5zbXRmbScpOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtRmllbGQKewogICAgcHJpdmF0ZSAkX2RhdGEgPSBbICdub2RlJz0+bnVsbCwgJ25hbWUnPT5udWxsLCAndHlwZSc9Pm51bGwsICdvcHRpb25zJz0+bnVsbCwgJ2lkJz0+bnVsbCwgJ2NsYXNzJz0+bnVsbCwgJ211bHRpcGxlJz0+ZmFsc2UsICdsYWJlbCc9Pm51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVpcmVkJz0+bnVsbCwgJ21pbic9Pm51bGwsICdtYXgnPT5udWxsLCAncGF0dGVybic9Pm51bGwsICdub3ZhbGlkYXRlJz0+bnVsbCwgJ3ByaW1pdGl2ZSc9Pm51bGwsICdleHRyYSc9Pm51bGwgXTsKCiAgICBwcml2YXRlICRvcHRpb25zID0gW107CiAgICBwcml2YXRlICRfdmFsdWVzID0gW107CiAgICBwcml2YXRlICRfZXh0cmFfYXR0cmlicyA9IFtdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggYXJyYXkgJGluICkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkaW4gYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBpZiggJGtleSA9PSAnZXh0cmEnICkgewogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR2YWwpICYmIGNvdW50KCR2YWwpICkgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAka2V5ID09ICdleHRyYV9hdHRyaWJzJyApIHsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdmFsKSAmJiBjb3VudCgkdmFsKSApICR0aGlzLT5fZXh0cmFfYXR0cmlicyA9ICR2YWw7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoJICAgIGlmKCAka2V5ID09ICdvcHRpb25zJyApIHsKCQlpZiggaXNfYXJyYXkoJHZhbCkgJiYgY291bnQoJHZhbCkgKSAkdGhpcy0+b3B0aW9ucyA9ICR2YWw7CgkgICAgfQogICAgICAgICAgICAvLyByZW1vdmUgW10gZnJvbSBlbmQgb2YgbmFtZXMuCiAgICAgICAgICAgIGlmKCAka2V5ID09ICduYW1lJyAmJiBlbmRzd2l0aCggJHZhbCwgJ1tdJykgKSAkdmFsID0gc3Vic3RyKCR2YWwsMCwtMik7CiAgICAgICAgICAgIGlmKCBhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5fZGF0YSkgKSAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cygka2V5LCAkdGhpcy0+X2RhdGEpICkgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRrZXkuJyBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgJy5fX0NMQVNTX18pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfdmFsdWUoICR2YWwgKSB7CiAgICAgICAgaWYoIGlzX2FycmF5KCR2YWwpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+YWRkX3ZhbHVlKCAkb25lICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiggc3RybGVuKCR2YWwpICkgJHRoaXMtPl92YWx1ZXNbXSA9ICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5tdWx0aXBsZSApIHJldHVybiAkdGhpcy0+X3ZhbHVlczsKICAgICAgICBpZiggY291bnQoJHRoaXMtPl92YWx1ZXMpICkgcmV0dXJuICR0aGlzLT5fdmFsdWVzWzBdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKCBGb3JtTXVsdGlWYWx1ZU9wdGlvbiAkb3B0ICkKICAgIHsKICAgICAgICAkdGhpcy0+b3B0aW9uc1tdID0gJG9wdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX211bHRpcGxlX29wdGlvbnMoKQogICAgewoJaWYoIGVtcHR5KCR0aGlzLT5vcHRpb25zKSApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gKGNvdW50KCR0aGlzLT5vcHRpb25zKSA+IDEgfHwgY291bnQoJHRoaXMtPl92YWx1ZXMpID4gMSk/VFJVRTpGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX29wdGlvbnMoKQogICAgewogICAgICAgIHJldHVybiAoYm9vbCkgIWVtcHR5KCR0aGlzLT5vcHRpb25zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X29wdGlvbnMoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+b3B0aW9ucyApIHJldHVybiAkdGhpcy0+b3B0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X29wdGlvbl92YWx1ZXMoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmhhc19tdWx0aXBsZV9vcHRpb25zKCkgKSByZXR1cm47CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5vcHRpb25zIGFzICRvcHQgKSB7CiAgICAgICAgICAgICRvdXRbXSA9ICRvcHQtPmdldF92YWx1ZSgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NpbmdsZV9vcHRpb25fdmFsdWUoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+aGFzX211bHRpcGxlX29wdGlvbnMoKSApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPm9wdGlvbnNbMF0tPnZhbHVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9uX2J5X3ZhbHVlKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gdHJpbSgkdmFsKTsKICAgICAgICBpZiggISR2YWwgKSByZXR1cm47CgogICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IG9wdGlvbiBpbiBvcHRpb25zIHRoYXQgaGFzIHRoaXMgdmFsdWUuCiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPm9wdGlvbnMpOyAkaSsrICkgewogICAgICAgICAgICAkb3B0ID0gJHRoaXMtPm9wdGlvbnNbJGldOwogICAgICAgICAgICBpZiggJG9wdC0+Z2V0X3ZhbHVlKCkgPT0gJHZhbCApIHJldHVybiAkb3B0OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX2V4dHJhX2F0dHJpYnV0ZSggJGtleSwgJHZhbCApCiAgICB7CiAgICAgICAgLy8gc3RvcmVzIHN0cmluZyBrZXlzLCBhbmQgc3RyaW5nIHZhbHVlcy4KICAgICAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICAgICAkdmFsID0gdHJpbSgkdmFsKTsKICAgICAgICBpZiggISRrZXkgKSByZXR1cm47CiAgICAgICAgaWYoIGlzX251bGwoICR2YWwgKSAmJiBhcnJheV9rZXlfZXhpc3RzKCAka2V5LCAkdGhpcy0+X2V4dHJhX2F0dHJpYnMgKSApIHsKICAgICAgICAgICAgdW5zZXQoICR0aGlzLT5fZXh0cmFfYXR0cmlic1sgJGtleSBdICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9leHRyYV9hdHRyaWJzWyAka2V5IF0gPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZXh0cmFfYXR0cmlidXRlKCAka2V5ICkKICAgIHsKICAgICAgICAka2V5ID0gdHJpbSggJGtleSApOwogICAgICAgIGlmKCAhJGtleSApIHJldHVybjsKICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cyggJGtleSwgJHRoaXMtPl9leHRyYV9hdHRyaWJzICkgKSByZXR1cm4gJHRoaXMtPl9leHRyYV9hdHRyaWJzWyAka2V5IF07CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormFieldConverter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtRmllbGRDb252ZXJ0ZXIKewogICAgY29uc3QgVFlQRV9URVhUICA9ICd0ZXh0JzsKICAgIGNvbnN0IFRZUEVfUkFESU8gPSAncmFkaW8nOwogICAgY29uc3QgVFlQRV9DSEVDS0JPWCA9ICdjaGVja2JveCc7CiAgICBjb25zdCBUWVBFX0hJRERFTiA9ICdoaWRkZW4nOwogICAgY29uc3QgVFlQRV9EQVRFID0gJ2RhdGUnOwogICAgY29uc3QgVFlQRV9OVU1CRVIgPSAnbnVtYmVyJzsKICAgIGNvbnN0IFRZUEVfU0VMRUNUID0gJ3NlbGVjdCc7CiAgICBjb25zdCBUWVBFX0ZJTEUgPSAnZmlsZSc7CiAgICBjb25zdCBUWVBFX1RFWFRBUkVBID0gJ3RleHRhcmVhJzsKICAgIGNvbnN0IFRZUEVfUEFTU1dPUkQgPSAncGFzc3dvcmQnOwogICAgY29uc3QgVFlQRV9TVUJNSVQgPSAnc3VibWl0JzsKICAgIGNvbnN0IFRZUEVfUkVTRVQgPSAncmVzZXQnOwogICAgY29uc3QgVFlQRV9CVVRUT04gPSAnYnV0dG9uJzsKICAgIGNvbnN0IFRZUEVfQ09MT1IgPSAnY29sb3InOwogICAgY29uc3QgVFlQRV9EQVRFVElNRV9MT0NBTCA9ICdkYXRldGltZS1sb2NhbCc7CiAgICBjb25zdCBUWVBFX0VNQUlMID0gJ2VtYWlsJzsKICAgIGNvbnN0IFRZUEVfTU9OVEggPSAnbW9udGgnOwogICAgY29uc3QgVFlQRV9TRUFSQ0ggPSAnc2VhcmNoJzsKICAgIGNvbnN0IFRZUEVfVEVMID0gJ3RlbCc7CiAgICBjb25zdCBUWVBFX1RJTUUgPSAndGltZSc7CiAgICBjb25zdCBUWVBFX1VSTCA9ICd1cmwnOwogICAgY29uc3QgVFlQRV9XRUVLID0gJ3dlZWsnOwoKICAgIHByaXZhdGUgJF9maWVsZHMgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRmaWVsZHMgKQogICAgewogICAgICAgIC8vIHdlIGFscmVhZHkgaGF2ZSBvdXIgbWVzc2FnZXMsIHNvIGhlcmUgd2UgZG9uJ3QgY2FyZSBhYm91dCB2YWxpZGF0aW9uCiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIERPTSBmaWVsZHMgd2l0aCB0aGUgc2FtZSBuYW1lLi4uIHdlIGdldCB0aGVpcgogICAgICAgIC8vIHZhbHVlIGFuZCBhZGQgdGhlbSBhcyBvcHRpb25zCiAgICAgICAgLy8gaWYgaXQgaXMgYSBzZWxlY3QsIHdlIGdldCBpdCdzIG9wdGlvbnMuCgogICAgICAgICR0bXAgPSBbXTsKICAgICAgICAvLyBkbyB0aGUgbWFnaWMKICAgICAgICBmb3JlYWNoKCAkZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEkZmllbGQgaW5zdGFuY2VvZiBET01GaWVsZCApIGNvbnRpbnVlOwogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+Z2V0X25hbWUoKTsKICAgICAgICAgICAgaWYoICEkbmFtZSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJGlzX25ldyA9IG51bGw7CiAgICAgICAgICAgICRub2RlbmFtZSA9IHN0cnRvbG93ZXIoJGZpZWxkLT5nZXRfbm9kZW5hbWUoKSk7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRtcFskbmFtZV0pICkgewogICAgICAgICAgICAgICAgJGlzX25ldyA9IHRydWU7CiAgICAgICAgICAgICAgICAkcGFyID0gW107CiAgICAgICAgICAgICAgICAkcGFyWydub2RlJ10gPSAkbm9kZW5hbWU7CiAgICAgICAgICAgICAgICAkcGFyWyduYW1lJ10gPSAkbmFtZTsKICAgICAgICAgICAgICAgICRwYXJbJ3R5cGUnXSA9ICR0aGlzLT5nZXRfdHlwZSgkZmllbGQpOwogICAgICAgICAgICAgICAgJHBhclsnb3B0aW9ucyddID0gJHRoaXMtPmdldF9zZWxlY3Rfb3B0aW9ucyggJGZpZWxkICk7CiAgICAgICAgICAgICAgICAkcGFyWydpZCddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdpZCcpOwogICAgICAgICAgICAgICAgJHBhclsnY2xhc3MnXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnY2xhc3MnKTsKICAgICAgICAgICAgICAgICRwYXJbJ21pbiddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdtaW4nKTsKICAgICAgICAgICAgICAgICRwYXJbJ21heCddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdtYXgnKTsKICAgICAgICAgICAgICAgICRwYXJbJ3BhdHRlcm4nXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgncGF0dGVybicpOwogICAgICAgICAgICAgICAgJHBhclsnbXVsdGlwbGUnXSA9ICR0aGlzLT5pc19tdWx0aXZhbHVlX2ZpZWxkKCAkZmllbGQgKTsKICAgICAgICAgICAgICAgICRwYXJbJ3JlcXVpcmVkJ10gPSAkZmllbGQtPmhhc19hdHRyaWJ1dGUoJ3JlcXVpcmVkJyk7CiAgICAgICAgICAgICAgICAkcGFyWydsYWJlbCddID0gJGZpZWxkLT5nZXRfbGFiZWwoKTsKICAgICAgICAgICAgICAgICRwYXJbJ3ByaW1pdGl2ZSddID0gc3RydG9sb3dlcigkZmllbGQtPmdldF9hdHRyaWJ1dGUoJ2RhdGEtc210Zm0tcHJpbWl0aXZlJykpOwogICAgICAgICAgICAgICAgaWYoICEkcGFyWydwcmltaXRpdmUnXSApIHsKICAgICAgICAgICAgICAgICAgICAkcGFyWydwcmltaXRpdmUnXSA9ICdzdHJpbmcnOwogICAgICAgICAgICAgICAgICAgIGlmKCAkcGFyWyd0eXBlJ10gPT0gJ2VtYWlsJyApICRwYXJbJ3ByaW1pdGl2ZSddID0gJ2VtYWlsJzsKICAgICAgICAgICAgICAgICAgICBpZiggJHBhclsndHlwZSddID09ICdkYXRlJyApICRwYXJbJ3ByaW1pdGl2ZSddID0gJ2RhdGUnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHBhclsnbm92YWxpZGF0ZSddID0gJGZpZWxkLT5oYXNfYXR0cmlidXRlKCdkYXRhLXNtdGZtLW5vdmFsaWRhdGUnKTsKICAgICAgICAgICAgICAgIGlmKCAhJHBhclsncmVxdWlyZWQnXSApICRwYXJbJ3JlcXVpcmVkJ10gPSAkZmllbGQtPmhhc19hdHRyaWJ1dGUoJ2RhdGEtc210Zm0tcmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIGlmKCAhJHBhclsnbWluJ10gKSAkcGFyWydtaW4nXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnZGF0YS1zbXRmbS1taW4nKTsKICAgICAgICAgICAgICAgIGlmKCAhJHBhclsnbWF4J10gKSAkcGFyWydtYXgnXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnZGF0YS1zbXRmbS1tYXgnKTsKICAgICAgICAgICAgICAgICR0bXAyID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdkYXRhLXNtdGZtLXBhdHRlcm4nKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wMiApICRwYXJbJ3BhdHRlcm4nXSA9ICR0bXAyOwoKICAgICAgICAgICAgICAgICRleHRyYV9hdHRycyA9ICR0aGlzLT5nZXRfZmllbGRfZXh0cmFfYXR0cnMoICRmaWVsZCApOwogICAgICAgICAgICAgICAgaWYoICRleHRyYV9hdHRycyApICRwYXJbJ2V4dHJhX2F0dHJpYnMnXSA9ICRleHRyYV9hdHRyczsKCiAgICAgICAgICAgICAgICBzd2l0Y2goICRwYXJbJ3R5cGUnXSApIHsKICAgICAgICAgICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9DSEVDS0JPWDoKICAgICAgICAgICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9SQURJTzoKICAgICAgICAgICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9TRUxFQ1Q6CiAgICAgICAgICAgICAgICAgICAgLy8gb3ZlcnJpZGUgdGhlIGludGVybmFsIGxhYmVsIGJ1dCBvbmx5IGZvciB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgYW4gZWxlbWVudCB3aXRoIHRoaXMgbmFtZS4KICAgICAgICAgICAgICAgICAgICBpZiggKCRhdHRyID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdkYXRhLXNtdGZtLWxhYmVsJykgKSApICRwYXJbJ2xhYmVsJ10gPSAkYXR0cjsKICAgICAgICAgICAgICAgICAgICAkdG1wWyRuYW1lXSA9IG5ldyBGb3JtRmllbGQoICRwYXIgKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIHNlbGY6OlRZUEVfRklMRToKICAgICAgICAgICAgICAgICAgICAkdG1wWyRuYW1lXSA9ICR0aGlzLT5jcmVhdGVfZmlsZV9maWVsZCggJHBhciwgJGZpZWxkICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIC8vIHRvZG86IHNob3VsZCBjcmVhdGUgZGlmZmVyZW50IGZvcm0gZmllbGQgb2JqZWN0cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcyBhbmQgc2VsZWN0cyBhbmQgbXVsdGktc2VsZWN0cwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAkdG1wWyRuYW1lXSA9IG5ldyBGb3JtRmllbGQoICRwYXIgKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJG9iaiA9JiAkdG1wWyRuYW1lXTsKCiAgICAgICAgICAgIC8vIGRvIHdlIGFkZCBhIHZhbHVlIGZvciB0aGlzIHRoaW5nLCBvciBkbyB3ZSBhZGQgYW4gb3B0aW9uCiAgICAgICAgICAgIC8vIGFkZCBhbiBvcHRpb24gaWYgdHlwZSBpcyByYWRpbywgY2hlY2tib3gsIGJ1dHRvbgogICAgICAgICAgICAvLyBvdGhld2lzZSwgYWRkIGEgdmFsdWUuCiAgICAgICAgICAgIGlmKCBpbl9hcnJheSgkb2JqLT50eXBlLFtzZWxmOjpUWVBFX1JBRElPLHNlbGY6OlRZUEVfQ0hFQ0tCT1gsc2VsZjo6VFlQRV9CVVRUT05dKSApIHsKICAgICAgICAgICAgICAgIC8vIGl0J3NhIGNoZWNrYm94LCBzZWxlY3QsIG9yIHJhZGlvCiAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIHZhbHVlIGFuZCBodW1hbi1yZWFkYWJsZSBzdHVmZgogICAgICAgICAgICAgICAgJHBhcm1zID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlcygpOwogICAgICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5nZXRfbGFiZWwoKTsKICAgICAgICAgICAgICAgIGlmKCAhJGxhYmVsICkgJGxhYmVsID0gJGZpZWxkLT5nZXRfdmFsdWUoKTsKICAgICAgICAgICAgICAgICRwYXJtcyA9IGFycmF5X21lcmdlKCAkcGFybXMsIFsndGV4dCc9PiRsYWJlbCwndmFsdWUnPT4kZmllbGQtPmdldF92YWx1ZSgpLCAnaHInPT4kZmllbGQtPmdldF92YWx1ZSgpIF0gKTsKICAgICAgICAgICAgICAgIGlmKCAoJGhyID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdkYXRhLXNtdGZtLWh1bWFuJykpICkgJHBhcm1zWydociddID0gJGhyOwogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+aGFzX2F0dHJpYnV0ZSgnY2hlY2tlZCcpICkgJHBhcm1zWydzZWxlY3RlZCddID0gdHJ1ZTsKICAgICAgICAgICAgICAgICRvcHQgPSBuZXcgRm9ybU11bHRpVmFsdWVPcHRpb24oICRwYXJtcyApOwogICAgICAgICAgICAgICAgJG9iai0+YWRkX29wdGlvbiggJG9wdCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHZhbHVlID0gJHRoaXMtPmNsZWFuX3ZhbHVlKCRmaWVsZC0+Z2V0X3ZhbHVlKCkpOwogICAgICAgICAgICAgICAgJG9iai0+YWRkX3ZhbHVlKCAkdmFsdWUgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2ZpZWxkcyA9ICR0bXA7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9maWVsZF9leHRyYV9hdHRycyggRE9NRmllbGQgJGZpZWxkICkKICAgIHsKICAgICAgICAkYXJyID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlc19ieV9wcmVmaXgoICdkYXRhLScgKTsKICAgICAgICBpZiggISAkYXJyICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkYXJyIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoICRrZXksICdkYXRhLScgKSAmJiAhc3RhcnRzd2l0aCggJGtleSwgJ2RhdGEtc210Zm0tJykgKSB7CiAgICAgICAgICAgICAgICAkb3V0WyRrZXldID0gJHZhbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2xlYW5fdmFsdWUoICRpbiApCiAgICB7CiAgICAgICAgaWYoICEkaW4gKSByZXR1cm47CiAgICAgICAgaWYoIHN0cnBvcygnVW5kZWZpbmVkIGluZGV4OicsJGluKSAhPT0gRkFMU0UgKSByZXR1cm47CiAgICAgICAgaWYoIHN0cnBvcygnVHJ5aW5nIHRvIGdldCBwcm9wZXJ0eSBvZiBub24tb2JqZWN0IGluJywkaW4pICE9PSBGQUxTRSApIHJldHVybjsKICAgICAgICByZXR1cm4gJGluOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVfZmlsZV9maWVsZCggYXJyYXkgJHBhciwgRE9NRmllbGQgJGZpZWxkICkKICAgIHsKICAgICAgICAkcGFyWydhY2NlcHQnXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnYWNjZXB0Jyk7CiAgICAgICAgJG1heHNpemU9bnVsbDsKICAgICAgICAkZXh0ZW5zaW9ucz1udWxsOwogICAgICAgICRkYXRhX2F0dHJpYnMgPSAkZmllbGQtPmdldF9hdHRyaWJ1dGVzX2J5X3ByZWZpeCgnZGF0YS0nKTsKICAgICAgICBpZiggIWVtcHR5KCRkYXRhX2F0dHJpYnMpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkZGF0YV9hdHRyaWJzIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgJGtleSA9IHN1YnN0cigka2V5LHN0cmxlbignZGF0YS0nKSk7CiAgICAgICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgICAgICBjYXNlICdzbXRmbS1hY2NlcHQnOgogICAgICAgICAgICAgICAgICAgIGlmKCAhJHBhclsnYWNjZXB0J10gKSAkcGFyWydhY2NlcHQnXSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ3NtdGZtLW1heHNpemUnOgogICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IChpbnQpICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpZiggJHZhbHVlID4gMCApICRwYXJbJ21heF9zaXplJ10gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdzbXRmbS1leHRlbnNpb24nOgogICAgICAgICAgICAgICAgICAgICRwYXJbJ2V4dGVuc2lvbnMnXSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJG91dCA9IG5ldyBGb3JtRmlsZUZpZWxkKCAkcGFyICk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzX211bHRpdmFsdWVfZmllbGQoIERPTUZpZWxkICRmaWVsZCApCiAgICB7CiAgICAgICAgJG5hbWUgPSAkZmllbGQtPmdldF9uYW1lKCk7CiAgICAgICAgaWYoIGVuZHN3aXRoKCAkbmFtZSwgJ1tdJyApICkgcmV0dXJuIFRSVUU7CiAgICAgICAgaWYoICRmaWVsZC0+aGFzX2F0dHJpYnV0ZSgnbXVsdGlwbGUnKSApIHJldHVybiBUUlVFOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVfb3B0aW9uX2Zyb21fZG9tb3B0aW9uKCBET01TZWxlY3RPcHRpb24gJG9wdGlvbiApCiAgICB7CiAgICAgICAgJHBhcm1zID0gJG9wdGlvbi0+Z2V0X2F0dHJpYnMoKTsKICAgICAgICAkcGFybXNbJ3RleHQnXSA9ICRvcHRpb24tPmdldF90ZXh0UmF3KCk7CiAgICAgICAgJG9iaiA9IG5ldyBGb3JtTXVsdGlWYWx1ZU9wdGlvbiggJHBhcm1zICk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9zZWxlY3Rfb3B0aW9ucyggRE9NRmllbGQgJGZpZWxkICkKICAgIHsKICAgICAgICBpZiggJGZpZWxkIGluc3RhbmNlb2YgRE9NU2VsZWN0RmllbGQgKSB7CiAgICAgICAgICAgICRvdXQgPSBbXTsKICAgICAgICAgICAgJG9wdGlvbnMgPSAkZmllbGQtPmdldF9vcHRpb25zKCk7CiAgICAgICAgICAgIGZvcmVhY2goICRvcHRpb25zIGFzICRkb21fb3B0aW9uICkgewogICAgICAgICAgICAgICAgJG5ld19vcHRpb24gPSAkdGhpcy0+Y3JlYXRlX29wdGlvbl9mcm9tX2RvbW9wdGlvbiggJGRvbV9vcHRpb24gKTsKICAgICAgICAgICAgICAgICRvdXRbXSA9ICRuZXdfb3B0aW9uOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3R5cGUoIERPTUZpZWxkICRmaWVsZCApCiAgICB7CiAgICAgICAgc3dpdGNoKCAkZmllbGQtPmdldF9ub2RlbmFtZSgpICkgewogICAgICAgIGNhc2UgJ3NlbGVjdCc6CiAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1NFTEVDVDsKICAgICAgICBjYXNlICd0ZXh0YXJlYSc6CiAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1RFWFRBUkVBOwogICAgICAgIGNhc2UgJ2J1dHRvbic6CiAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0JVVFRPTjsKICAgICAgICBjYXNlICdpbnB1dCc6CiAgICAgICAgICAgICR0eXBlID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCd0eXBlJyk7CiAgICAgICAgICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgJ3JhZGlvJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1JBRElPOwogICAgICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9DSEVDS0JPWDsKICAgICAgICAgICAgY2FzZSAnaGlkZGVuJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0hJRERFTjsKICAgICAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9GSUxFOwogICAgICAgICAgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9FTUFJTDsKICAgICAgICAgICAgY2FzZSAncGFzc3dvcmQnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfUEFTU1dPUkQ7CiAgICAgICAgICAgIGNhc2UgJ2J1dHRvbic6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9CVVRUT047CiAgICAgICAgICAgIGNhc2UgJ3N1Ym1pdCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9TVUJNSVQ7CiAgICAgICAgICAgIGNhc2UgJ3Jlc2V0JzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1JFU0VUOwogICAgICAgICAgICBjYXNlICdudW1iZXInOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfTlVNQkVSOwogICAgICAgICAgICBjYXNlICdjb2xvcic6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9DT0xPUjsKICAgICAgICAgICAgY2FzZSAnbW9udGgnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfTU9OVEg7CiAgICAgICAgICAgIGNhc2UgJ3NlYXJjaCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9TRUFSQ0g7CiAgICAgICAgICAgIGNhc2UgJ3RlbCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9URUw7CiAgICAgICAgICAgIGNhc2UgJ3RpbWUnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfVElNRTsKICAgICAgICAgICAgY2FzZSAndXJsJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1VSTDsKICAgICAgICAgICAgY2FzZSAnd2Vlayc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9XRUVMOwogICAgICAgICAgICBjYXNlICdkYXRlJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0RBVEU7CiAgICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lLWxvY2FsJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0RBVEVUSU1FX0xPQ0FMOwogICAgICAgICAgICBjYXNlICd0ZXh0JzoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1RFWFQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZHMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoICRrZXksICR2YWwgKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oX19DTEFTU19fLicgY2Fubm90IGJlIG1vZGlmaWVkIHRoaXMgd2F5Jyk7CiAgICB9Cgp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormFileField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtRmlsZUZpZWxkIGV4dGVuZHMgRm9ybUZpZWxkCnsKICAgIHByaXZhdGUgJF9kYXRhID0gWydhY2NlcHQnPT5udWxsLCAnbWF4X3NpemUnPT5udWxsLCAnZXh0ZW5zaW9ucyc9Pm51bGwsICdub3ZhbGlkYXRlJz0+bnVsbCBdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggYXJyYXkgJGluICkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkaW4gYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2FjY2VwdCc6CiAgICAgICAgICAgIGNhc2UgJ2V4dGVuc2lvbnMnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdtYXhfc2l6ZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSBtYXgoMCwoaW50KSAkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRpbiApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIGlmKCBhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5fZGF0YSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9fZ2V0KCAka2V5ICk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtSW1wb3J0ZXIKewogICAgcHJpdmF0ZSAkX21vZDsKICAgIHByaXZhdGUgJF9zdG9yYWdlOwogICAgcHJpdmF0ZSAkX211c3RfY3JlYXRlX3RlbXBsYXRlOwogICAgcHJpdmF0ZSAkX3ZhbGlkYXRpb25fbGlzdDsKICAgIHByaXZhdGUgJF9kaXNwb3NpdGlvbl9saXN0OwogICAgcHJpdmF0ZSAkX25hbWVfZGF0YTsKICAgIHByaXZhdGUgJF90ZW1wbGF0ZV9kYXRhOwogICAgcHJpdmF0ZSAkX3RlbXBsYXRlX25hbWVfZGF0YTsKICAgIHByaXZhdGUgJF9mb3JtX2RhdGE7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcU21hcnRGb3JtcyAkbW9kLCBGb3JtU3RvcmFnZUludGVyZmFjZSAkc3RvcmFnZSwgJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3N0b3JhZ2UgPSAkc3RvcmFnZTsKCiAgICAgICAgaWYoICEkdGhpcy0+ZXhwYW5kKCAkZGF0YSApICkgewogICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJfaW1wb3J0X2Zvcm1hdCcpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfY3JlYXRlX3RlbXBsYXRlX2ZsYWcoICRmbGFnID0gdHJ1ZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9hbHdheXNfY3JlYXRlX3RlbXBsYXRlID0gKGJvb2wpICRmbGFnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcmVwbGFjZV9mb3JtX2ZsYWcoICRmbGFnID0gdHJ1ZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9yZXBsYWNlX2V4aXN0aW5nX2Zvcm0gPSAoYm9vbCkgJGZsYWc7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4cGFuZCggJGRhdGEgKQogICAgewoKICAgICAgICBpZiggIWlzX3N0cmluZygkZGF0YSkgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRkZWxpbSA9ICd+fn4nOwoKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoICRkYXRhLCAnU01URk0nLiRkZWxpbSApICkgewogICAgICAgICAgaWYoICFzdGFydHN3aXRoKCAkZGF0YSwgJ0NHQkYnLiRkZWxpbSApICkgewogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoICRkZWxpbSwgJGRhdGEgKTsKCiAgICAgICAgaWYoIGNvdW50KCRwYXJ0cykgIT0gMTAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoIChpbnQpICRwYXJ0c1sxXSAhPSAxICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkdHBsX25hbWVfZGF0YSA9ICRwYXJ0c1s5XTsKICAgICAgICAkZGlzcG9zaXRpb25fbGlzdF9kYXRhID0gJHBhcnRzWzhdOwogICAgICAgICR2YWxpZGF0aW9uX2xpc3RfZGF0YSA9ICRwYXJ0c1s3XTsKICAgICAgICAkdGVtcGxhdGVfZGF0YSA9ICRwYXJ0c1s2XTsKICAgICAgICAkZm9ybV9kYXRhID0gJHBhcnRzWzVdOwogICAgICAgICRja3N1bV9mb3JtID0gJHBhcnRzWzRdOwogICAgICAgICRja3N1bV90ZW1wbGF0ZSA9ICRwYXJ0c1szXTsKICAgICAgICAkbmFtZV9kYXRhID0gJHBhcnRzWzJdOwoKICAgICAgICAkc2FsdF9mb3JtID0gbWQ1KCR0ZW1wbGF0ZV9kYXRhKTsKICAgICAgICAkc2FsdF90ZW1wbGF0ZSA9IG1kNSgkZm9ybV9kYXRhKTsKICAgICAgICBpZiggJGNrc3VtX3RlbXBsYXRlICE9IG1kNSgkdGVtcGxhdGVfZGF0YS4kc2FsdF90ZW1wbGF0ZSkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICRja3N1bV9mb3JtICE9IG1kNSgkZm9ybV9kYXRhLiRzYWx0X2Zvcm0pICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkdGhpcy0+X25hbWVfZGF0YSA9ICRuYW1lX2RhdGE7CiAgICAgICAgJHRoaXMtPl9kaXNwb3NpdGlvbl9saXN0ID0gdW5zZXJpYWxpemUoIGJhc2U2NF9kZWNvZGUoICRkaXNwb3NpdGlvbl9saXN0X2RhdGEgKSApOwogICAgICAgICR0aGlzLT5fdmFsaWRhdGlvbl9saXN0ID0gdW5zZXJpYWxpemUoIGJhc2U2NF9kZWNvZGUoICR2YWxpZGF0aW9uX2xpc3RfZGF0YSApICk7CiAgICAgICAgJHRoaXMtPl90ZW1wbGF0ZV9uYW1lX2RhdGEgPSBiYXNlNjRfZGVjb2RlKCAkdHBsX25hbWVfZGF0YSApOwogICAgICAgICR0aGlzLT5fdGVtcGxhdGVfZGF0YSA9IGJhc2U2NF9kZWNvZGUoICR0ZW1wbGF0ZV9kYXRhICk7CiAgICAgICAgJHRoaXMtPl9mb3JtX2RhdGEgPSB1bnNlcmlhbGl6ZSggYmFzZTY0X2RlY29kZSggJGZvcm1fZGF0YSApICk7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlX2RlcGVuZGVuY2llcygpCiAgICB7CiAgICAgICAgLy8gZ2l2ZW4gdGhlIGRpc3Bvc2l0aW9uIGxpc3QsIGFuZCB0aGUgdmFsaWRhdGlvbiBsaXN0CiAgICAgICAgLy8gbWFrZXMgdXJlIHdlIGhhdmUgYWxsIG9mIHRob3NlIGNsYXNzZXMuCiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl92YWxpZGF0aW9uX2xpc3QgYXMgJGNsYXNzX25hbWUgKSB7CiAgICAgICAgICAgIGlmKCAhY2xhc3NfZXhpc3RzKCAkY2xhc3NfbmFtZSApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfaW1wb3J0X3ZhbGlkYXRpb25fbm90Zm91bmQnLCRjbGFzc19uYW1lKSApOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2Rpc3Bvc2l0aW9uX2xpc3QgYXMgJGNsYXNzX25hbWUgKSB7CiAgICAgICAgICAgIGlmKCAhY2xhc3NfZXhpc3RzKCAkY2xhc3NfbmFtZSApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfaW1wb3J0X2Rpc3Bvc2l0aW9uX25vdGZvdW5kJywkY2xhc3NfbmFtZSkgKTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZvcm1fdGVtcGxhdGVfZXhpc3RzKCAkaW5fdHBsX25hbWUgKQogICAgewogICAgICAgIC8vIGNoZWNrIGlmIGEgdGVtcGxhdGUgYnkgdGhpcyBuYW1lIGV4aXN0cyBhbmQgaXMgb2YgdGhlIHNhbWUgdHlwZS4KICAgICAgICB0cnkgewogICAgICAgICAgICAkdHBsID0gXENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCAkaW5fdHBsX25hbWUgKTsKICAgICAgICAgICAgJHR5cGUgPSBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlOjpsb2FkKCdTbWFydEZvcm1zOjpGb3JtJyk7CiAgICAgICAgICAgIGlmKCAkdHBsLT5nZXRfdHlwZV9pZCgpICE9ICR0eXBlLT5nZXRfaWQoKSApIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxDbXNEYXRhTm90Rm91bmRFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIC8vIHRlbXBsYXRlIG5hbWUgZG9lcyBub3QgZXhpc3QuCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGltcG9ydF90ZW1wbGF0ZSgpCiAgICB7CiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHRlbXBsYXRlIG5hbWUgZXhpc3RzLgogICAgICAgIC8vIGlmIGl0IGRvZXMsIHRoZW4gZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG91ciBmbGFnLCB3ZSBjYW4gaW1wb3J0IG5ldyBvciBvdmVyd3JpdGUKICAgICAgICAkaW5fdHBsX25hbWUgPSAkdGhpcy0+X3RlbXBsYXRlX25hbWVfZGF0YTsKCiAgICAgICAgLy8gaGF2ZSB0byBjcmVhdGUgYSBuZXcgdGVtcGxhdGUuCgogICAgICAgICR0eXBlID0gXENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZCgnU21hcnRGb3Jtczo6Rm9ybScpOwogICAgICAgICRuZXdfbmFtZSA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6Z2VuZXJhdGVfdW5pcXVlX25hbWUoICRpbl90cGxfbmFtZSApOwoKICAgICAgICAkdHBsID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZTsKICAgICAgICAkdHBsLT5zZXRfbmFtZSggJG5ld19uYW1lICk7CiAgICAgICAgJHRwbC0+c2V0X3R5cGUoICR0eXBlICk7CgogICAgICAgICR0cGwtPnNldF9jb250ZW50KCAkdGhpcy0+X3RlbXBsYXRlX2RhdGEgKTsKICAgICAgICAkdHBsLT5zYXZlKCk7CiAgICAgICAgcmV0dXJuICR0cGwtPmdldF9pZCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpbXBvcnQoKQogICAgewoKICAgICAgICAkdGhpcy0+dmFsaWRhdGVfZGVwZW5kZW5jaWVzKCk7CgoKICAgICAgICAkZXhpc3RpbmdfdHBsX2lkID0gbnVsbDsKICAgICAgICAkaW5fZm9ybV9uYW1lID0gYmFzZTY0X2RlY29kZSggJHRoaXMtPl9uYW1lX2RhdGEgKTsKCiAgICAgICAgJGkgPSAxOwogICAgICAgICRuYW1lID0gbnVsbDsKICAgICAgICB3aGlsZSggJGkgPCAxMDAgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGluX2Zvcm1fbmFtZTsKICAgICAgICAgICAgaWYoICRpID4gMSApICRuYW1lID0gJGluX2Zvcm1fbmFtZS4nICcuJGk7CiAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9zdG9yYWdlLT5leGlzdHMoICRuYW1lICkgKSBicmVhazsKICAgICAgICAgICAgJGkrKzsKICAgICAgICB9CgogICAgICAgIC8vIG5leHQgY3JlYXRlIHRoZSB0ZW1wbGF0ZSwgYW5kIGltcG9ydAogICAgICAgIC8vJHRwbF9pZCA9ICR0aGlzLT5pbXBvcnRfdGVtcGxhdGUoKTsKCiAgICAgICAgJHRwbF9pZCA9ICR0aGlzLT5pbXBvcnRfdGVtcGxhdGUoKTsKCiAgICAgICAgLy8gZmluZCBhIG5ldyBmb3JtIG5hbWUuCiAgICAgICAgJG5ld2Zvcm0gPSBjbG9uZSAkdGhpcy0+X2Zvcm1fZGF0YTsKICAgICAgICB1bnNldCggJGZvcm0gKTsKICAgICAgICAkbmV3Zm9ybS0+YWRqdXN0V2l0aCggWyduYW1lJz0+JG5hbWUsICd0ZW1wbGF0ZV9pZCc9PiR0cGxfaWQgXSApOwogICAgICAgIHJldHVybiAkbmV3Zm9ybTsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormMultiValueOption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtTXVsdGlWYWx1ZU9wdGlvbgp7CiAgICBwcml2YXRlICRfZGF0YTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRwYXJhbXMgKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YSA9ICRwYXJhbXM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2h1bWFuJzoKICAgICAgICBjYXNlICdocic6CiAgICAgICAgICAgICR2YWwgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoICR0aGlzLT5fZGF0YSwgJ2RhdGEtc210Zm0taHVtYW4nICk7CiAgICAgICAgICAgIGlmKCAhJHZhbCApICR2YWwgPSAkdGhpcy0+X2RhdGFbJ3RleHQnXTsKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHZhbCk7CiAgICAgICAgY2FzZSAndGV4dCc6CiAgICAgICAgY2FzZSAndmFsdWUnOgogICAgICAgICAgICByZXR1cm4gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCAkdGhpcy0+X2RhdGEsICRrZXkgKTsKICAgICAgICBjYXNlICdzZWxlY3RlZCc6CiAgICAgICAgICAgIHJldHVybiBceHRfcGFyYW06OmdldF9ib29sKCAkdGhpcy0+X2RhdGEsICRrZXkgKTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiggXHh0X3BhcmFtOjpleGlzdHMoICR0aGlzLT5fZGF0YSwgJGtleSApICkgcmV0dXJuIFx4dF9wYXJhbTo6Z2V0X3N0cmluZyggJHRoaXMtPl9kYXRhLCAka2V5ICk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dmFsdWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCAka2V5LCAkdmFsICkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKF9fQ0xBU1NfXy4nIGNhbm5vdCBiZSBtb2RpZmllZCB0aGlzIHdheScpOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormRenderer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSBTbWFydEZvcm1zOwp1c2UgY21zX3VybDsKdXNlIHh0X3VybDsKdXNlIHh0X3V0aWxzOwp1c2UgeHRfcGFyYW07CgpjbGFzcyBGb3JtUmVuZGVyZXIKewogICAgcHJpdmF0ZSAkX21vZDsKICAgIHByaXZhdGUgJF9kb207CiAgICBwcml2YXRlICRfZm9ybTsKICAgIHByaXZhdGUgJF9pZDsKICAgIHByaXZhdGUgJF9yZXR1cm5pZDsKICAgIHByaXZhdGUgJF9jYXB0Y2hhX3Byb3ZpZGVyOwogICAgcHJpdmF0ZSAkX3Jlc3BvbnNlOwogICAgcHJpdmF0ZSAkX25vYXV0b3ZhbHVlOwogICAgcHJpdmF0ZSAkX25vbmFtZWFkanVzdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFNtYXJ0Rm9ybXMgJG1vZCwgRm9ybSAkZm9ybSwgSUNhcHRjaGFQcm92aWRlciAkcHJvdmlkZXIgPSBudWxsLCAkc21hcnR5LCAkaWQsICRyZXR1cm5pZCwgRm9ybVJlc3BvbnNlICRyZXNwb25zZSwgJHBhcm1zICkKICAgIHsKICAgICAgICAvLyBpZiB0ZW1wbGF0ZSBtb2RpZmllZCBzaW5jZSBmb3JtIHNhdmVkLi4gZG9uJ3QgcmVuZGVyLgogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2Zvcm0gPSAkZm9ybTsKICAgICAgICAkdGhpcy0+X2lkID0gKCRmb3JtLT5kaXNwbGF5X2lubGluZSkgPyB0cmltKCRpZCkgOiAnY250bnQwMSc7CiAgICAgICAgJHRoaXMtPl9yZXR1cm5pZCA9IChpbnQpICRyZXR1cm5pZDsKICAgICAgICAkdGhpcy0+X2Vycm9yID0gbnVsbDsKICAgICAgICAkdGhpcy0+X3VybCA9ICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCBbJ2Zvcm0nPT4kZm9ybS0+bmFtZSwgJ3Byb2Nlc3MnPT4xIF0gKTsKICAgICAgICAkdGhpcy0+X2NhcHRjaGFfcHJvdmlkZXIgPSAkcHJvdmlkZXI7CiAgICAgICAgJHRoaXMtPl9yZXNwb25zZSA9ICRyZXNwb25zZTsKCiAgICAgICAgLy8gY2Fubm90IHJlbmRlciBpZiB0aGUgbW9kaWZpY2F0aW9uIGRhdGUgaXMgb2ZmLgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSggJGZvcm0tPmdldFNtYXJ0eVRlbXBsYXRlUmVzb3VyY2UoKSApOwogICAgICAgIGlmKCB4dF9wYXJhbTo6Z2V0X2Jvb2woICRwYXJtcywgJ2RhdGVjaGVjaycpICkgewogICAgICAgICAgICAkdHBsX3RzID0gJHRwbC0+c291cmNlLT5nZXRUaW1lU3RhbXAoKTsKICAgICAgICAgICAgaWYoICRmb3JtLT5tb2RpZmllZCA8ICR0cGxfdHMgJiYgJGZvcm0tPnRwbF9tb2RpZmllZCA8ICR0cGxfdHMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyX2Zvcm1fc2Nhbm5lZWRlZCcpKTsKICAgICAgICB9CgogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9kYXRhJywkcmVzcG9uc2UpOwogICAgICAgICRodG1sID0gJHRwbC0+ZmV0Y2goKTsKICAgICAgICBsaWJ4bWxfdXNlX2ludGVybmFsX2Vycm9ycyh0cnVlKTsKICAgICAgICBzZXRfZXJyb3JfaGFuZGxlcihmdW5jdGlvbigkbnVtYmVyLCRlcnJvcil7CiAgICAgICAgICAgICAgICBpZiggJG51bWJlciAhPSBFX05PVElDRSApIGRlYnVnX3RvX2xvZygiU21hcnRGb3JtcyBFUlJPUjogIi4kZXJyb3IpIDsKICAgICAgICAgICAgfSk7CiAgICAgICAgJHRoaXMtPl9kb20gPSBuZXcgXERvbURvY3VtZW50OwogICAgICAgIC8vJHRoaXMtPl9kb20tPmxvYWRIVE1MKCAkaHRtbCwgIExJQlhNTF9IVE1MX05PSU1QTElFRCB8IExJQlhNTF9IVE1MX05PREVGRFREICk7CiAgICAgICAgJHRoaXMtPl9kb20tPmxvYWRIVE1MKCAnPD94bWwgZW5jb2Rpbmc9InV0Zi04IiA/PicgLiAkaHRtbCApOwogICAgICAgICR0aGlzLT5oYW5kbGVGb3JtVGFnKCk7CiAgICAgICAgJHRoaXMtPmFkZEhpZGRlblJldHVybmlkKCk7CiAgICAgICAgJHRoaXMtPmFkZEhpZGRlbkZvcm1OYW1lKCk7CiAgICAgICAgJHRoaXMtPmFkZEhpZGRlbk1hY3QoKTsKICAgICAgICAkdGhpcy0+YWRkSGlkZGVuR3VpZCgpOwogICAgICAgICR0aGlzLT5hZGRIaWRkZW5Ib25leVBvdCgpOwogICAgICAgICR0aGlzLT5oYW5kbGVBdXRvVmFsdWVzKCk7CiAgICAgICAgJHRoaXMtPmhhbmRsZURhdGFTZWxlY3RlZCgpOwogICAgICAgICR0aGlzLT5hZGp1c3RNdWx0aUZpZWxkTmFtZXMoKTsgLy90ZXN0IG1lISEKICAgICAgICAkdGhpcy0+YWRkSmF2YXNjcmlwdCgpOwogICAgICAgIGlmKCAkZm9ybS0+aGFzX2NhcHRjaGEgJiYgJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyICkgJHRoaXMtPmFkZENhcHRjaGFDb250ZW50KCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldElucHV0c0J5VHlwZSgkdHlwZSkKICAgIHsKICAgICAgICAkdHlwZSA9IHN0cnRvbG93ZXIodHJpbSgkdHlwZSkpOwogICAgICAgIGlmKCAhJHR5cGUgKSByZXR1cm47CgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkbm9kZXMgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdpbnB1dCcgKTsKICAgICAgICBpZiggISAkbm9kZXMgKSByZXR1cm47CiAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICBpZiggc3RydG9sb3dlcigkbm9kZS0+Z2V0QXR0cmlidXRlKCd0eXBlJykpID09ICR0eXBlICkgJG91dFtdID0gJG5vZGU7CiAgICAgICAgfQogICAgICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiB3YWxrRE9NKFxET01Ob2RlICRub2RlLCBjYWxsYWJsZSAkZnVuYykKICAgIHsKICAgICAgICAkZnVuYygkbm9kZSk7CiAgICAgICAgJG5vZGUgPSAkbm9kZS0+Zmlyc3RDaGlsZDsKICAgICAgICB3aGlsZSggJG5vZGUgKSB7CiAgICAgICAgICAgICR0aGlzLT53YWxrRE9NKCRub2RlLCRmdW5jKTsKICAgICAgICAgICAgJG5vZGUgPSAkbm9kZS0+bmV4dFNpYmxpbmc7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVzQXJyYXkoXERPTU5hbWVkTm9kZU1hcCAkbWFwKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkbWFwIGFzICRhdHRyICkgewogICAgICAgICAgICAkb3V0WyRhdHRyLT5ub2RlTmFtZV0gPSAkYXR0ci0+bm9kZVZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRqdXN0TXVsdGlGaWVsZE5hbWVzKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9ub25hbWVhZGp1c3QgKSByZXR1cm47CgogICAgICAgIC8vIGZvciBzZWxlY3Qgc3RhdGVtZW50cyB3aXRoIHRoZSBtdWx0aXBsZSBhdHRyaWJ1dGUsIGVuc3VyZSB0aGUgbmFtZSBhdHRyaWJ1dGUgZW5kcyB3aXRoIFtdCiAgICAgICAgJG5vZGVzID0gJHRoaXMtPl9kb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCAnc2VsZWN0JyApOwogICAgICAgIGlmKCAkbm9kZXMgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRub2RlcyBhcyAkbm9kZSApIHsKICAgICAgICAgICAgICAgIC8vIHZhbHVlIG9mIHRoZSBtdWx0aXBsZSBhdHRyaWJ1dGUgbWF5IGJlIGVtcHR5CiAgICAgICAgICAgICAgICBpZiggISAkbm9kZS0+aGFzQXR0cmlidXRlKCdtdWx0aXBsZScpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkbmFtZSA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgICAgIGlmKCAkbmFtZSAmJiAhZW5kc3dpdGgoJG5hbWUsJ1tdJykgKSAkbm9kZS0+c2V0QXR0cmlidXRlKCduYW1lJywkbmFtZS4nW10nKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gZm9yIGNoZWNrYm94IGlucHV0cy4uLiBnZXQgdGhlIGVsZW1lbnRzLCBhbmQgY291bnQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBieSBuYW1lLgogICAgICAgIC8vIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUsIGFwcGVuZCB0aGUgW10gdG8gaXQuCiAgICAgICAgJG5vZGVzID0gJHRoaXMtPl9kb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCAnaW5wdXQnICk7CiAgICAgICAgJG5hbWVzID0gbnVsbDsKICAgICAgICBpZiggJG5vZGVzICkgewogICAgICAgICAgICBmb3JlYWNoKCAkbm9kZXMgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICAkdHlwZSA9IHN0cnRvbG93ZXIoICRub2RlLT5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSApOwogICAgICAgICAgICAgICAgaWYoICR0eXBlICE9PSAnY2hlY2tib3gnICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkbmFtZSA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgICAgIGlmKCAhJG5hbWUgfHwgZW5kc3dpdGgoJG5hbWUsJ1tdJykgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRuYW1lc1skbmFtZV0gPSAoaXNzZXQoJG5hbWVzWyRuYW1lXSkpID8gJG5hbWVzWyRuYW1lXSsxIDogMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3JlYWNoKCAkbm9kZXMgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkbmFtZXNbJG5hbWVdKSAmJiAkbmFtZXNbJG5hbWVdID4gMSApIHsKICAgICAgICAgICAgICAgICAgICAkbm9kZS0+c2V0QXR0cmlidXRlKCduYW1lJywkbmFtZS4nW10nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaGFuZGxlRGF0YVNlbGVjdGVkKCkKICAgIHsKICAgICAgICAvLyBmaW5kIG5vZGVzIG9mIHR5cGUgc2VsZWN0LCByYWRpbywgY2hlY2tib3ggd2l0aCBhdHRyaWJ1dGUgZGF0YS1zbXRmbS1zZWxlY3RlZAogICAgICAgIC8vIHBhcnNlIHRoZSB2YWx1ZXMgb2YgdGhlIGF0dHJpYnV0ZQogICAgICAgIC8vIGZvciBzZWxlY3QuLiBhZGQgJ3NlbGVjdGVkJyBhdHRyaWJ1dGUgdG8gZWFjaCBvcHRpb24gd2hlcmUgdmFsdWVzIG1hdGNoCiAgICAgICAgLy8gZm9yIGNoZWNrYm94L3JhZGlvIGFkZCAnY2hlY2tlZCcgYXR0cmlidXRlIHRvIGVhY2ggaW5wdXQgbm9kZSB3aGVyZSB2YWx1ZXMgbWF0Y2gKICAgICAgICAkbm9kZXMgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdzZWxlY3QnICk7CiAgICAgICAgaWYoICRub2RlcyApIHsKICAgICAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAgICAgaWYoICEoJGF0dHIgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCdkYXRhLXNtdGZtLXNlbGVjdGVkJykpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdGhpcy0+d2Fsa0RPTSggJG5vZGUsIGZ1bmN0aW9uKFxET01Ob2RlICRpbl9ub2RlKSB1c2UgKCRhdHRyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkaW5fbm9kZS0+bm9kZU5hbWUgIT0gJ29wdGlvbicgKSByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkaW5fbm9kZS0+Z2V0QXR0cmlidXRlKCd2YWx1ZScpID09ICRhdHRyICkgJGluX25vZGUtPnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCdzZWxlY3RlZCcpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkbm9kZXMgPSAkdGhpcy0+Z2V0SW5wdXRzQnlUeXBlKCAnY2hlY2tib3gnICk7CiAgICAgICAgaWYoICRub2RlcyApIHsKICAgICAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAgICAgaWYoICEoJGF0dHIgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCdkYXRhLXNtdGZtLXNlbGVjdGVkJykpICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAkYXR0ciApICRub2RlLT5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRub2RlcyA9ICR0aGlzLT5nZXRJbnB1dHNCeVR5cGUoICdyYWRpbycgKTsKICAgICAgICBpZiggJG5vZGVzICkgewogICAgICAgICAgICBmb3JlYWNoKCAkbm9kZXMgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICBpZiggISgkYXR0ciA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoJ2RhdGEtc210Zm0tc2VsZWN0ZWQnKSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+Z2V0QXR0cmlidXRlKCd2YWx1ZScpID09ICRhdHRyICkgJG5vZGUtPnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsJ2NoZWNrZWQnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyBkYXRhLXNtdGZtLW5vYXV0b3ZhbHVlCiAgICAvLyBvdGhlcndpc2UsIGZvciBpbnB1dC10ZXh0L251bWJlci9kYXRlIC0gdmFsdWU9dmFsdWUgZnJvbSByZXNwb25zZSAoaWYgdmFsdWUgaXMgZW1wdHkpCiAgICAvLyAgICAgICAgICAgIGZvciBjaGVja2JveC9yYWRpbyBpZiByZXNwb25zZSB2YWx1ZSA9PSB2YWx1ZSBhdHRyIHNldCBjaGVja2VkCiAgICAvLyAgICAgICAgICAgIGZvciB0ZXh0YXJlYSAuLi4gaW5uZXIgaHRtbCA9IHZhbHVlIGZyb20gcmVzcG9uc2UgKGlmIGVtcHR5KQogICAgLy8gICAgICAgICAgICBmb3Igc2VsZWN0IC0tIGdldCB2YWx1ZSBmcm9tIHJlc3BvbnNlLCBhbmQgc2V0IHRoZSBvcHRpb25zIGFzIHNlbGVjdGVkCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaGFuZGxlQXV0b1ZhbHVlcygpCiAgICB7CiAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBkYXRhLXNtdGZtLW5vYXV0b3ZhbHVlIGluIHRoZSBmb3JtLCB3ZSBkbyBub3QgZG8gdGhpcyBzdHVmZi4KICAgICAgICBpZiggJHRoaXMtPl9ub2F1dG92YWx1ZSApIHJldHVybjsKCiAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdpbnB1dCcgKTsKICAgICAgICBpZiggJGxpc3QgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRub2RlICkgewogICAgICAgICAgICAgICAgaWYoICRub2RlLT5oYXNBdHRyaWJ1dGUoJ2RhdGEtc210Zm0tbm9hdXRvdmFsdWUnKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJG5hbWUgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgICAgICAkcmVzcG9uc2V2YWwgPSAkdGhpcy0+X3Jlc3BvbnNlLT5fX2dldCgkbmFtZSk7CiAgICAgICAgICAgICAgICAkdHlwZSA9IHN0cnRvbG93ZXIoJG5vZGUtPmdldEF0dHJpYnV0ZSgndHlwZScpKTsKICAgICAgICAgICAgICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICAgICBjYXNlICdyYWRpbyc6CiAgICAgICAgICAgICAgICAgICAgaWYoICEkbm9kZS0+aGFzQXR0cmlidXRlKCdkYXRhLXNtdGZtLXNlbGVjdGVkJykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoICRyZXNwb25zZXZhbCApICkgJHJlc3BvbnNldmFsID0gWyAkcmVzcG9uc2V2YWwgXTsKICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGV2YWwgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCd2YWx1ZScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggaW5fYXJyYXkoJG5vZGV2YWwsJHJlc3BvbnNldmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLT5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiAvLyB0ZXh0IGZpZWxkLCBudW1iZXIsIGRhdGUsIGV0Yy4KICAgICAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmhhc0F0dHJpYnV0ZSgndmFsdWUnKSApIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICRub2RlLT5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywkcmVzcG9uc2V2YWwpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gaWYoICFlbXB0eSgkbm9kZXZhbCkgKSBjb250aW51ZTsgLy8gdmFsdWUgZmlsbGVkIGJ5IHRlbXBsYXRlCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRsaXN0ID0gJHRoaXMtPl9kb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCAnc2VsZWN0JyApOwogICAgICAgIGlmKCAkbGlzdCApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmhhc0F0dHJpYnV0ZSgnZGF0YS1zbXRmbS1ub2F1dG92YWx1ZScpICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmhhc0F0dHJpYnV0ZSgnZGF0YS1zbXRmbS1zZWxlY3RlZCcpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkbXVsdGlwbGUgPSAkbm9kZS0+aGFzQXR0cmlidXRlKCdtdWx0aXBsZScpOwogICAgICAgICAgICAgICAgJG5hbWUgPSB0cmltKCRub2RlLT5nZXRBdHRyaWJ1dGUoJ25hbWUnKSk7CiAgICAgICAgICAgICAgICAkcmVzcG9uc2V2YWwgPSAkdGhpcy0+X3Jlc3BvbnNlLT5fX2dldCgkbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCRyZXNwb25zZXZhbCkgKSAkcmVzcG9uc2V2YWwgPSBbICRyZXNwb25zZXZhbCBdOwogICAgICAgICAgICAgICAgJHRoaXMtPndhbGtET00oICRub2RlLCBmdW5jdGlvbihcRE9NTm9kZSAkaW5fbm9kZSkgdXNlICgkcmVzcG9uc2V2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRpbl9ub2RlLT5ub2RlTmFtZSAhPSAnb3B0aW9uJyApIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIGluX2FycmF5KCRpbl9ub2RlLT5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyksJHJlc3BvbnNldmFsKSApICRpbl9ub2RlLT5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywnc2VsZWN0ZWQnKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICd0ZXh0YXJlYScgKTsKICAgICAgICBpZiggJGxpc3QgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRub2RlICkgewogICAgICAgICAgICAgICAgaWYoICRub2RlLT5oYXNBdHRyaWJ1dGUoJ2RhdGEtc210Zm0tbm9hdXRvdmFsdWUnKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJG5vZGV2YWwgPSAkbm9kZS0+bm9kZVZhbHVlOwogICAgICAgICAgICAgICAgJG5hbWUgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgICAgICAkcmVzcG9uc2V2YWwgPSAkdGhpcy0+X3Jlc3BvbnNlLT5fX2dldCgkbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJG5vZGV2YWwpICYmICRyZXNwb25zZXZhbCApIHsKICAgICAgICAgICAgICAgICAgICAkbm9kZS0+bm9kZVZhbHVlID0gJHJlc3BvbnNldmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRDb250ZW50VXJsKCkKICAgIHsKICAgICAgICAkb3V0ID0geHRfdXJsOjpjdXJyZW50X3VybCgpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIC8qCiAgICAgICAgJG91dCA9ICdtb2R1bGVpbnRlcmZhY2UucGhwJzsKICAgICAgICAkaG0gPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgICAgICRub2RlID0gJGhtLT5zdXJlR2V0Tm9kZUJ5SWQoICR0aGlzLT5fcmV0dXJuaWQgKTsKICAgICAgICBpZiggJG5vZGUgKSB7CiAgICAgICAgICAgICRjb250ZW50X29iaiA9ICRub2RlLT5nZXRDb250ZW50KCk7CiAgICAgICAgICAgIGlmKCAkY29udGVudF9vYmogKSAkb3V0ID0gJGNvbnRlbnRfb2JqLT5HZXRVUkwoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgICAgKi8KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0Rm9ybU5vZGUoKQogICAgewogICAgICAgICRmb3JtID0gJHRoaXMtPl9kb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCAnZm9ybScgKS0+aXRlbSgwKTsKICAgICAgICByZXR1cm4gJGZvcm07CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhbmRsZUZvcm1UYWcoKQogICAgewogICAgICAgIC8vIGZpbmQgdGhlIGZvcm0gZG9tIG5vZGUKICAgICAgICAkZm9ybSA9ICR0aGlzLT5nZXRGb3JtTm9kZSgpOwogICAgICAgIGlmKCAkZm9ybS0+aGFzQXR0cmlidXRlKCdkYXRhLXNtdGZtLW5vYXV0b3ZhbHVlJykgKSAkdGhpcy0+X25vYXV0b3ZhbHVlID0gdHJ1ZTsKICAgICAgICBpZiggJGZvcm0tPmhhc0F0dHJpYnV0ZSgnZGF0YS1zbXRmbS1ub25hbWVhZGp1c3QnKSApICR0aGlzLT5fbm9uYW1lYWRqdXN0ID0gdHJ1ZTsKICAgICAgICAkZm9ybS0+c2V0QXR0cmlidXRlKCAnbWV0aG9kJywgJ3Bvc3QnICk7CiAgICAgICAgJGZvcm0tPnNldEF0dHJpYnV0ZSggJ2FjdGlvbicsICR0aGlzLT5nZXRDb250ZW50VXJsKCkgKTsKICAgICAgICAkZm9ybS0+c2V0QXR0cmlidXRlKCAnZW5jdHlwZScsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kSW5wdXQoJG5hbWUpCiAgICB7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdpbnB1dCcgKTsKICAgICAgICBpZiggJGxpc3QgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRub2RlICl7CiAgICAgICAgICAgICAgICAkdF9uYW1lID0gJG5vZGUtPmdldEF0dHJpYnV0ZSggJ25hbWUnICk7CiAgICAgICAgICAgICAgICBpZiggJHRfbmFtZSA9PSAkbmFtZSApIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kRmlsZUlucHV0cygpCiAgICB7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdpbnB1dCcgKTsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBpZiggJGxpc3QgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRub2RlICkgewogICAgICAgICAgICAgICAgJHRfdHlwZSA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoICd0eXBlJyApOwogICAgICAgICAgICAgICAgaWYoIHN0cnRvbG93ZXIoJHRfdHlwZSkgPT0gJ2ZpbGUnICkgJG91dFtdID0gJG5vZGU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFNlbGVjdE5vZGUoJG5hbWUpCiAgICB7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdzZWxlY3QnICk7CiAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJG5vZGUgKXsKICAgICAgICAgICAgJHRfbmFtZSA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoICduYW1lJyApOwogICAgICAgICAgICBpZiggJHRfbmFtZSA9PSAkbmFtZSApIHJldHVybiAkbm9kZTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFwcGVuZEhUTUx0b05vZGUoXERPTU5vZGUgJHBhcmVudCwgJHNvdXJjZSkKICAgIHsKICAgICAgICAkdG1wRG9jID0gbmV3IFxET01Eb2N1bWVudCgpOwogICAgICAgICR0bXBEb2MtPmxvYWRIVE1MKCRzb3VyY2UpOwogICAgICAgIGZvcmVhY2ggKCR0bXBEb2MtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JyktPml0ZW0oMCktPmNoaWxkTm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgJG5vZGUgPSAkcGFyZW50LT5vd25lckRvY3VtZW50LT5pbXBvcnROb2RlKCRub2RlLHRydWUpOwogICAgICAgICAgICAkcGFyZW50LT5hcHBlbmRDaGlsZCgkbm9kZSk7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGRDYXB0Y2hhQ29udGVudCgpCiAgICB7CiAgICAgICAgJHhwYXRoID0gbmV3IFxET01YUGF0aCggJHRoaXMtPl9kb20gKTsKICAgICAgICAkdG1wID0gJHhwYXRoLT5xdWVyeSggJy8vQGRhdGEtc210Zm0tY2FwdGNoYScpLT5pdGVtKDApOwogICAgICAgIGlmKCAhJHRtcCApIHJldHVybjsKICAgICAgICAkZWxlbSA9ICR0bXAtPnBhcmVudE5vZGU7CiAgICAgICAgaWYoICEkZWxlbSApIHJldHVybjsKICAgICAgICAkb3V0cHV0ID0gJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyLT5nZXRfY2FwdGNoYV9kaXNwbGF5KCk7CiAgICAgICAgaWYoICRvdXRwdXQpICR0aGlzLT5hcHBlbmRIVE1MdG9Ob2RlKCAkZWxlbSwgJG91dHB1dCApOwoKICAgICAgICAkb3V0cHV0ID0gJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyLT5nZXRfY2FwdGNoYV9pbnB1dGZpZWxkKCk7CiAgICAgICAgaWYoICEkb3V0cHV0ICkgcmV0dXJuOwoKICAgICAgICAkZWxlbTIgPSBudWxsOwogICAgICAgICR0bXAgPSAkeHBhdGgtPnF1ZXJ5KCAnLy9AZGF0YS1zbXRmbS1jYXB0Y2hhLWlucHV0JyktPml0ZW0oMCk7CiAgICAgICAgaWYoICR0bXAgKSAkZWxlbTIgPSAkdG1wLT5wYXJlbnROb2RlOwogICAgICAgIGlmKCAkZWxlbTIgKSB7CiAgICAgICAgICAgICR0aGlzLT5hcHBlbmRIVE1MdG9Ob2RlKCAkZWxlbTIsICRvdXRwdXQgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5hcHBlbmRIVE1MdG9Ob2RlKCAkZWxlbSwgJG91dHB1dCApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSGlkZGVuSW5wdXQoICRuYW1lLCAkdmFsICkKICAgIHsKICAgICAgICAkZWxlbSA9ICR0aGlzLT5fZG9tLT5DcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgICRlbGVtLT5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCdoaWRkZW4nKTsKICAgICAgICAkZWxlbS0+c2V0QXR0cmlidXRlKCduYW1lJywkbmFtZSk7CiAgICAgICAgJGVsZW0tPnNldEF0dHJpYnV0ZSgndmFsdWUnLCR2YWwpOwogICAgICAgICR0aGlzLT5nZXRGb3JtTm9kZSgpLT5hcHBlbmRDaGlsZCggJGVsZW0gKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSW52aXNpYmxlSW5wdXQoICRuYW1lLCAkdmFsICkKICAgIHsKICAgICAgICAkZWxlbSA9ICR0aGlzLT5fZG9tLT5DcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgICRlbGVtLT5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0Jyk7CiAgICAgICAgJGVsZW0tPnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdkaXNwbGF5OiBub25lOycpOwogICAgICAgICRlbGVtLT5zZXRBdHRyaWJ1dGUoJ25hbWUnLCRuYW1lKTsKICAgICAgICAkZWxlbS0+c2V0QXR0cmlidXRlKCd2YWx1ZScsJHZhbCk7CiAgICAgICAgJHRoaXMtPmdldEZvcm1Ob2RlKCktPmFwcGVuZENoaWxkKCAkZWxlbSApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGRIaWRkZW5SZXR1cm5JZCgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+ZmluZElucHV0KCdyZXR1cm5pZCcpICkgJHRoaXMtPmFkZEhpZGRlbklucHV0KCAncmV0dXJuaWQnLCAkdGhpcy0+X3JldHVybmlkICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEhpZGRlbk1hY3QoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmZpbmRJbnB1dCgnbWFjdCcpICkgewogICAgICAgICAgICAkbWFjdF91cmwgPSAkdGhpcy0+X21vZC0+Y3JlYXRlX3VybCgkdGhpcy0+X2lkLCAnZGVmYXVsdCcsICR0aGlzLT5fcmV0dXJuaWQsIFtdLCAkdGhpcy0+X2Zvcm0tPmRpc3BsYXlfaW5saW5lKTsKICAgICAgICAgICAgJG1hY3RfdXJsID0gbmV3IGNtc191cmwoJG1hY3RfdXJsKTsKICAgICAgICAgICAgJG1hY3QgPSB1cmxkZWNvZGUoJG1hY3RfdXJsLT5nZXRfcXVlcnkoKSk7CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRtYWN0LCdtYWN0PScpICkgJG1hY3QgPSBzdWJzdHIoJG1hY3QsNSk7CiAgICAgICAgICAgICR0aGlzLT5hZGRIaWRkZW5JbnB1dCggJ21hY3QnLCAkbWFjdCApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSGlkZGVuR3VpZCgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+ZmluZElucHV0KCdfX2d1aWQnKSApIHsKICAgICAgICAgICAgJGd1aWQgPSB4dF91dGlsczo6Y3JlYXRlX2d1aWQoKTsKICAgICAgICAgICAgJF9TRVNTSU9OWydTTVRGTV9HVUlEX1RPS0VOJ11bJGd1aWRdID0gWyAnZm9ybSc9PiR0aGlzLT5fZm9ybS0+bmFtZSwgJ3RpbWUnPT50aW1lKCkgXTsKICAgICAgICAgICAgJHRoaXMtPmFkZEhpZGRlbklucHV0KCAnX19ndWlkJywgJGd1aWQgKTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEhpZGRlbkhvbmV5UG90KCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5maW5kSW5wdXQoJ19faHBuYW1lJykgKSAkdGhpcy0+YWRkSW52aXNpYmxlSW5wdXQoICdfX2hwbmFtZScsICcnKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSGlkZGVuRm9ybU5hbWUoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmZpbmRJbnB1dCggJHRoaXMtPl9pZC4nZm9ybScpICkgJHRoaXMtPmFkZEhpZGRlbklucHV0KCAkdGhpcy0+X2lkLidmb3JtJywgJHRoaXMtPl9mb3JtLT5uYW1lICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEZpbGVTY3JpcHROb2RlKCAkc3JjICkKICAgIHsKICAgICAgICAkZWxlbSA9ICR0aGlzLT5fZG9tLT5DcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAkZWxlbS0+c2V0QXR0cmlidXRlKCdzcmMnLCRzcmMpOwogICAgICAgICR0aGlzLT5nZXRGb3JtTm9kZSgpLT5hcHBlbmRDaGlsZCggJGVsZW0gKTsKICAgICAgICByZXR1cm4gJGVsZW07CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZpbGVuYW1lX3RvX3VybCggJGZuICkKICAgIHsKICAgICAgICAkY29uZmlnID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldENvbmZpZygpOwogICAgICAgICRvdXQgPSBzdHJfcmVwbGFjZSggJGNvbmZpZ1sncm9vdF9wYXRoJ10sICRjb25maWdbJ3Jvb3RfdXJsJ10sICRmbiApOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGRKYXZhc2NyaXB0KCkKICAgIHsKICAgICAgICAvLyBpZiB3ZSBoYXZlIGF0IGxlYXN0IG9uZSBmaWxlIGlucHV0IGZpZWxkLi4uIGRvIHRoaXMuCiAgICAgICAgaWYoICEkdGhpcy0+X2Zvcm0tPnVzZV9hc3luY191cGxvYWQgKSByZXR1cm47CiAgICAgICAgJHRtcCA9ICR0aGlzLT5maW5kRmlsZUlucHV0cygpOwogICAgICAgIGlmKCAhJHRtcCApIHJldHVybjsKCiAgICAgICAgc3RhdGljICRoYXZlX2ZpbGV1cGxvYWQ7CiAgICAgICAgJHNyY19ldmVyeXRpbWUgPSAkdGhpcy0+ZmlsZW5hbWVfdG9fdXJsKCAkdGhpcy0+X21vZC0+ZmluZF9tb2R1bGVfZmlsZSgnanMvYXN5bmNfdXBsb2FkLmpzJykgKTsKCiAgICAgICAgaWYoICEkaGF2ZV9maWxldXBsb2FkICkgewogICAgICAgICAgICAvLyB0b2RvOiBhbGxvdyB1c2Ugb2YganNyZW5kZXIgZm9yIHRoaXMuCiAgICAgICAgICAgIC8vIG9ubHkgaW5jbHVkZSB0aGUganF1ZXJ5LlNNVEZNVXBsb2FkSGFuZGxlciBzdHVmZiBvbmNlLgogICAgICAgICAgICAkcGFnZV9pZCA9IFxDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPkdldERlZmF1bHRDb250ZW50KCk7CiAgICAgICAgICAgICRhamF4X3VybCA9ICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnY250bnQwMScsICdhamF4X3VwbG9hZCcsICRwYWdlX2lkICk7CiAgICAgICAgICAgICRhamF4X3VybCA9IHN0cl9yZXBsYWNlKCdhbXA7JywnJywkYWpheF91cmwpLicmc2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICAgICAgICAgJHNyY19maWxldXBsb2FkID0gJHRoaXMtPmZpbGVuYW1lX3RvX3VybCggJHRoaXMtPl9tb2QtPmZpbmRfbW9kdWxlX2ZpbGUoICdqcy9qcXVlcnkuU01URk1VcGxvYWRIYW5kbGVyLmpzJykgKTsKICAgICAgICAgICAgJGVsZW0gPSAkdGhpcy0+YWRkRmlsZVNjcmlwdE5vZGUoICRzcmNfZmlsZXVwbG9hZCApOwogICAgICAgICAgICAkZWxlbS0+c2V0QXR0cmlidXRlKCdmb28nLCdiYXInKTsKICAgICAgICAgICAgJGVsZW0tPnNldEF0dHJpYnV0ZSgnZGF0YS1zbXRmbS11cGxvYWR1cmwnLCRhamF4X3VybCk7CiAgICAgICAgICAgICRoYXZlX2ZpbGV1cGxvYWQgPSAxOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+YWRkRmlsZVNjcmlwdE5vZGUoICRzcmNfZXZlcnl0aW1lICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldEhUTUwoKQogICAgewogICAgICAgICRvdXQgPSAkdGhpcy0+X2RvbS0+c2F2ZUhUTUwoKTsKICAgICAgICAkb3V0ID0gcHJlZ19yZXBsYWNlKCd+PCg/OiFET0NUWVBFfC8/KD86aHRtbHxoZWFkfGJvZHkpKVtePl0qPlxzKn5pJywgJycsICRvdXQpOwogICAgICAgICRvdXQgPSBwcmVnX3JlcGxhY2UoJ348XD94bWxbXj5dKlw/PlxzKn4nLCAnJywgJG91dCk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0gLy8gY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormResponse.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtUmVzcG9uc2UKewogICAgcHJpdmF0ZSAkX2RhdGE7CiAgICBwcml2YXRlICRfZmlsZXMgPSBbXTsKICAgIHByaXZhdGUgJF9ndWlkOwogICAgcHJpdmF0ZSAkX3RpbWU7CiAgICBwcml2YXRlICRfY2FuX2NsZWFudXAgPSB0cnVlOwogICAgcHJpdmF0ZSAkX2ZpZWxkX25hbWVzOwogICAgcHJpdmF0ZSAkX2Zvcm1faWQ7CiAgICBwcml2YXRlICRfbW9kaWZpZWQ7CiAgICBwcml2YXRlICRfZm9ybTsKICAgIHByaXZhdGUgJF9maW5hbF91cmw7CiAgICBwcml2YXRlICRfdHJhbnNsYXRvcjsKICAgIHByaXZhdGUgJF9ob25leXBvdF92YWx1ZTsKICAgIHByaXZhdGUgJF9lcnJvcnM7CiAgICBwcml2YXRlICRfcmVwbHl0b19hZGRyZXNzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCwgRm9ybSAkZm9ybSwgJGd1aWQgPSBudWxsLCBhcnJheSAkaW5wdXQgPSBudWxsKQogICAgewogICAgICAgIC8vIHRvZG86IHRoaXMgc2hvdWxkIGJlIGEgdmFsdWUgb2JqZWN0LgogICAgICAgIC8vIHRoZSBnYXRoZXIgc3R1ZmYgc2hvdWxkIGJlIGluIGEgZmFjdG9yeSBjbGFzcy9mdW5jdGlvbi4KICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgJHRoaXMtPl90aW1lID0gdGltZSgpOwogICAgICAgICR0aGlzLT5fZm9ybV9pZCA9ICRmb3JtLT5pZDsKICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSggJG1vZCwgJGZvcm0sICRndWlkICk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRpbnB1dCkgKSAkdGhpcy0+Z2F0aGVyX2lucHV0KCAkZm9ybSwgJGlucHV0ICk7CiAgICAgICAgaWYoICRmb3JtLT5yZXBseXRvX2ZpZWxkICkgewogICAgICAgICAgICAkdGhpcy0+X3JlcGx5dG9fYWRkcmVzcyA9ICR0aGlzLT5nZXRfZmllbGRfdmFsdWUoICRmb3JtLT5yZXBseXRvX2ZpZWxkICk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fdHJhbnNsYXRvciA9ICRtb2QtPmdldF90cmFuc2xhdG9yKCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoIFxTbWFydEZvcm1zICRtb2QsIEZvcm0gJGZvcm0sICRndWlkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzW10gPSAnc210Zm1fc3VibWl0X3RpbWUnOwogICAgICAgICR0aGlzLT5fZmllbGRfbmFtZXNbXSA9ICdzbXRmbV9zdWJtaXRfaXAnOwogICAgICAgICR0aGlzLT5fZmllbGRfbmFtZXNbXSA9ICdzbXRmbV92ZXJzaW9uJzsKICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzW10gPSAnc210Zm1fZm9ybW5hbWUnOwogICAgICAgICR0aGlzLT5fZmllbGRfbmFtZXNbXSA9ICdzbXRmbV9mb3JtZGVzYyc7CiAgICAgICAgJHRoaXMtPl9maWVsZF9uYW1lc1tdID0gJ3NtdGZtX3JlcXVlc3RpZCc7CiAgICAgICAgJHRoaXMtPl9kYXRhWydzbXRmbV9zdWJtaXRfdGltZSddID0gJHRoaXMtPmdldF90aW1lKCk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydzbXRmbV9zdWJtaXRfaXAnXSA9IFx4dF91dGlsczo6Z2V0X3JlYWxfaXAoKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3NtdGZtX3ZlcnNpb24nXSA9ICRtb2QtPkdldFZlcnNpb24oKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3NtdGZtX2Zvcm1uYW1lJ10gPSAkZm9ybS0+bmFtZTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3NtdGZtX2Zvcm1kZXNjJ10gPSAkZm9ybS0+ZGVzY3JpcHRpb247CiAgICAgICAgJHRoaXMtPl9kYXRhWydzbXRmbV9yZXF1ZXN0aWQnXSA9ICRndWlkOwogICAgICAgICR0aGlzLT5fZ3VpZCA9ICRndWlkOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjbGVhbl9pbnB1dCgkaXRlbSkKICAgIHsKICAgICAgICAkaXRlbSA9IGZpbHRlcl92YXIoICRpdGVtLCBGSUxURVJfU0FOSVRJWkVfU1RSSU5HICk7CiAgICAgICAgJGl0ZW0gPSB0cmltKCRpdGVtKTsKICAgICAgICByZXR1cm4gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkaXRlbSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdhdGhlcl9hc3luY191cGxvYWRzKCBGb3JtICRmb3JtLCBhcnJheSAkaW5wdXQgKQogICAgewogICAgICAgICRndWlkID0gJHRoaXMtPl9ndWlkOwogICAgICAgICR0bXBfbG9jYXRpb24gPSBUTVBfQ0FDSEVfTE9DQVRJT04uJy8nLiRndWlkOwogICAgICAgIGlmKCAhaXNfZGlyKCAkdG1wX2xvY2F0aW9uICkgKSByZXR1cm47CgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSAhPSAnZmlsZScgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoIGVtcHR5KCAkaW5wdXRbJGZpZWxkLT5uYW1lXSApICkgY29udGludWU7IC8vIG5vIGFzeW5jIHVwbG9hZHMKCiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkaW5wdXRbJGZpZWxkLT5uYW1lXSkgKSB7CiAgICAgICAgICAgICAgICAkYXJyID0gW107CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkaW5wdXRbJGZpZWxkLT5uYW1lXSBhcyAkc3RyICkgewogICAgICAgICAgICAgICAgICAgIGxpc3QoJHRtcF9uYW1lLCRkZXN0X25hbWUpID0gZXhwbG9kZSgnOnw6Jywkc3RyKTsKICAgICAgICAgICAgICAgICAgICBpZiggISR0bXBfbmFtZSB8fCAhJGRlc3RfbmFtZSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICR0bXBfZmlsZSA9ICR0bXBfbG9jYXRpb24uJy8nLiR0bXBfbmFtZTsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzX2ZpbGUoICR0bXBfZmlsZSApICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgJHJlYyA9IFsndG1wX25hbWUnPT4kdG1wX25hbWUsICduYW1lJz0+JGRlc3RfbmFtZSwgJ2Vycm9yJz0+MCwgJ3NpemUnPT5maWxlc2l6ZSggJHRtcF9maWxlICksICdtaW1lX3R5cGUnPT5ceHRfdXRpbHM6OmdldF9taW1lX3R5cGUoICR0bXBfZmlsZSApIF07CiAgICAgICAgICAgICAgICAgICAgJGFycltdID0gJHJlYzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkYXJyKSApICRvdXRbJGZpZWxkLT5uYW1lXSA9ICRhcnI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBsaXN0KCR0bXBfbmFtZSwkZGVzdF9uYW1lKSA9IGV4cGxvZGUoJzp8OicsJGlucHV0WyRmaWVsZC0+bmFtZV0pOwogICAgICAgICAgICAgICAgaWYoICEkdG1wX25hbWUgfHwgISRkZXN0X25hbWUgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICR0bXBfZmlsZSA9ICR0bXBfbG9jYXRpb24uJy8nLiR0bXBfbmFtZTsKICAgICAgICAgICAgICAgIGlmKCAhaXNfZmlsZSggJHRtcF9maWxlICkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRyZWMgPSBbJ3RtcF9uYW1lJz0+JHRtcF9uYW1lLCAnbmFtZSc9PiRkZXN0X25hbWUsICdlcnJvcic9PjAsICdzaXplJz0+ZmlsZXNpemUoICR0bXBfZmlsZSApLCAnbWltZV90eXBlJz0+XHh0X3V0aWxzOjpnZXRfbWltZV90eXBlKCAkdG1wX2ZpbGUgKSBdOwogICAgICAgICAgICAgICAgJG91dFskZmllbGQtPm5hbWVdID0gWyAkcmVjIF07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdhdGhlcl91cGxvYWRzKCBGb3JtICRmb3JtLCBhcnJheSAkaW5wdXQgKQogICAgewogICAgICAgIC8vIHJlc3RydWN0dXJlcyB0aGUgJF9GSUxFUyBkYXRhIGludG8gc29tZXRoaW5nIG1vcmUgc2FuZS4KICAgICAgICAkb3V0ID0gJHRoaXMtPmdhdGhlcl9hc3luY191cGxvYWRzKCAkZm9ybSwgJGlucHV0ICk7CiAgICAgICAgZm9yZWFjaCggJF9GSUxFUyBhcyAkZmllbGRfbmFtZSA9PiAkcmVjICkgewogICAgICAgICAgICBpZiggaXNfc3RyaW5nKCRyZWNbJ25hbWUnXSkgKSB7CiAgICAgICAgICAgICAgICAkb3V0WyRmaWVsZF9uYW1lXSA9IFsgJHJlYyBdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGtleXMgPSBhcnJheV9rZXlzKCRyZWMpOwogICAgICAgICAgICAgICAgJG91dDIgPSBbXTsKICAgICAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRyZWNbJ25hbWUnXSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAgICAgJG5ld19yZWMgPSBbXTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAka2V5cyBhcyAka2V5ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkbmV3X3JlY1ska2V5XSA9ICRyZWNbJGtleV1bJGldOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkb3V0MltdID0gJG5ld19yZWM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkb3V0WyRmaWVsZF9uYW1lXSA9ICRvdXQyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnYXRoZXJfaW5wdXQoIEZvcm0gJGZvcm0sIGFycmF5ICRpbnB1dCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9ob25leXBvdF92YWx1ZSA9IG1kNShfX0ZJTEVfXyk7CiAgICAgICAgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCAkaW5wdXQsICdfX2hwbmFtZScpICkgJHRoaXMtPl9ob25leXBvdF92YWx1ZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZyggJGlucHV0LCAnX19ocG5hbWUnICk7CgogICAgICAgICR1cGxvYWRlZCA9ICR0aGlzLT5nYXRoZXJfdXBsb2FkcyggJGZvcm0sICRpbnB1dCApOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSAnZmlsZScgKSB7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoICR1cGxvYWRlZFskbmFtZV0pICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJHVwbG9hZGVkWyRuYW1lXSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2ZpbGVzWyRuYW1lXSA9ICR1cGxvYWRlZFskbmFtZV07CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJHVwbG9hZGVkWyRuYW1lXSBhcyAkcmVjICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJlY1snZXJyb3InXSA+IDAgfHwgJHJlY1snc2l6ZSddID09IDAgfHwgJHJlY1snZXJyb3InXSA+IDAgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVskbmFtZV0pICkgJHRoaXMtPl9kYXRhWyRuYW1lXSA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRuYW1lXVtdID0gJHJlY1snbmFtZSddOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRuYW1lXSA9ICRyZWNbJ25hbWUnXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICR2YWwgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoICgkZGF0YSA9IFx4dF91dGlsczo6Z2V0X3BhcmFtKCAkaW5wdXQsICRuYW1lKSkgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCAkZGF0YSApICkgewogICAgICAgICAgICAgICAgICAgICAgICBhcnJheV93YWxrX3JlY3Vyc2l2ZSggJGRhdGEsIGZ1bmN0aW9uKCYkaXRlbSwka2V5KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbSA9ICR0aGlzLT5jbGVhbl9pbnB1dCgkaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9uZSApICRvdXRbXSA9ICRvbmU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICRvdXQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgdmFsdWUuCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+Y2xlYW5faW5wdXQoJGRhdGEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVskbmFtZV0gPSAkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZm9ybV9pZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZm9ybV9pZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RpbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3RpbWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9yZXF1ZXN0aWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2d1aWQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmFuc2xhdG9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2xhdG9yOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X2ZpZWxkcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRfbmFtZXM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFkZF9maWVsZCggJG5hbWUgKQogICAgewogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICFpbl9hcnJheSggJG5hbWUsICR0aGlzLT5fZmllbGRfbmFtZXMgKSApICR0aGlzLT5fZmllbGRfbmFtZXNbXSA9ICRuYW1lOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjYW5fY2xlYW51cCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY2FuX2NsZWFudXA7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc2FibGVfY2xlYW4oKQogICAgewogICAgICAgICR0aGlzLT5fY2FuX2NsZWFudXAgPSBmYWxzZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpbmFsX3VybCggJHVybCApCiAgICB7CiAgICAgICAgLy8gY2FuIG9ubHkgYmUgc2V0IG9uY2UgZm9yIGEgcmVzcG9uc2UuLi4KICAgICAgICAvLyBtYXkgYmUgc2V0IGZyb20gYSBkaXNwb3NpdGlvbi4KICAgICAgICAkdGhpcy0+X2ZpbmFsX3VybCA9ICR1cmw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgJGZpZWxkcyA9ICR0aGlzLT5saXN0X2ZpZWxkcygpOwogICAgICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ18nKSApICRrZXkgPSBzdWJzdHIoJGtleSwxKTsKICAgICAgICBpZiggaW5fYXJyYXkoJGtleSwkZmllbGRzKSAmJiBhcnJheV9rZXlfZXhpc3RzKCRrZXksJHRoaXMtPl9kYXRhKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2Zvcm1fbmFtZSc6CiAgICAgICAgY2FzZSAnZm9ybSc6CiAgICAgICAgY2FzZSAnZm9ybW5hbWUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNtdGZtX2Zvcm1uYW1lOwogICAgICAgIGNhc2UgJ3JlbW90ZV9pcCc6CiAgICAgICAgY2FzZSAnaXBfYWRkcmVzcyc6CiAgICAgICAgY2FzZSAnaXBhZGRyZXNzJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zbXRmbV9zdWJtaXRfaXA7CiAgICAgICAgY2FzZSAnc3VibWl0X3RpbWUnOgogICAgICAgIGNhc2UgJ3N1Ym1pdF9kYXRlJzoKICAgICAgICBjYXNlICdkYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zbXRmbV9zdWJtaXRfdGltZTsKICAgICAgICBjYXNlICd2ZXJzaW9uJzoKICAgICAgICBjYXNlICdzbXRmbV92ZXJzaW9uJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zbXRmbV92ZXJzaW9uOwogICAgICAgIGNhc2UgJ3JlcXVlc3RfaWQnOgogICAgICAgIGNhc2UgJ2d1aWQnOgogICAgICAgIGNhc2UgJ3NtdGZtX3JlcXVlc3RpZCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c210Zm1fcmVxdWVzdGlkOwogICAgICAgIGNhc2UgJ2ZpbmFsX3VybCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2ZpbmFsX3VybDsKICAgICAgICBjYXNlICdfX2hwbmFtZSc6CiAgICAgICAgY2FzZSAnaG9uZXlwb3QnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9ob25leXBvdF92YWx1ZTsKICAgICAgICBjYXNlICdyZXBseXRvX2FkZHJlc3MnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9yZXBseXRvX2FkZHJlc3M7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBtb2RpZnlfdmFsdWUoJGtleSwkdmFsKQogICAgewogICAgICAgIC8vIGtleSBpcyBhIHN0cmluZywgIHZhbCBpcyBudWxsfHN0cmluZ3xzdHJpbmdbXQogICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSB7CiAgICAgICAgICAgICR2YWwgPSBpc19udWxsKCR2YWwpID8gbnVsbCA6IHRyaW0oJHZhbCk7CiAgICAgICAgfQogICAgICAgIGlmKCAhJGtleSApIHJldHVybjsKCiAgICAgICAgaWYoICFpbl9hcnJheSgka2V5LCR0aGlzLT5fZmllbGRfbmFtZXMpICkgcmV0dXJuOwogICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgJHRoaXMtPl9tb2RpZmllZCA9IFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX21vZGlmaWVkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2RpZmllZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbGlzdF9maWxlcygkbmFtZSA9IG51bGwpCiAgICB7CiAgICAgICAgLy8gZmllbGQgbmFtZQogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICEkbmFtZSApIHJldHVybiAkdGhpcy0+X2ZpbGVzOwoKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9maWxlc1skbmFtZV0pICkgcmV0dXJuICR0aGlzLT5fZmlsZXNbJG5hbWVdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfZmlsZSgkbmFtZSkKICAgIHsKICAgICAgICAvLyBmaWVsZCBuYW1lCiAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgICBpZiggISRuYW1lICkgcmV0dXJuOwoKICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5saXN0X2ZpbGVzKCAkbmFtZSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfdXBsb2FkcygpCiAgICB7CiAgICAgICAgcmV0dXJuIChjb3VudCgkdGhpcy0+X2ZpbGVzKSA+IDAgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpbGVfYXNfdXJsKCAkbmFtZSkKICAgIHsKICAgICAgICAvLyB0aGVyZSBtYXkgYmUgbXVsdGlwbGUgZmlsZXMgZm9yIG9uZSBmaWVsZC4KICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkZmlsZXMgPSAkdGhpcy0+Z2V0X2ZpZWxkX3ZhbHVlKCAkbmFtZSApOwogICAgICAgIGlmKCAhJGZpbGVzICkgcmV0dXJuOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGZpbGVzKSApICRmaWxlcyA9IFsgJGZpbGVzIF07CiAgICAgICAgZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkgewogICAgICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJ1xcJywnLycsJGZpbGUpOwogICAgICAgICAgICAkdXJsID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1sncm9vdF9wYXRoJ10sJGNvbmZpZ1sncm9vdF91cmwnXSwkc3RyKTsKICAgICAgICAgICAgJG91dFtdID0gJHVybDsKICAgICAgICB9CgogICAgICAgIGlmKCBjb3VudCgkb3V0KSA9PSAxICkgcmV0dXJuICRvdXRbMF07CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZF92YWx1ZSggJGtleSApCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgaWYoICEka2V5ICkgcmV0dXJuOwoKICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cyggJGtleSwgJHRoaXMtPl9kYXRhICkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfZXJyb3IoICRtc2cgKQogICAgewogICAgICAgICRtc2cgPSB0cmltKCRtc2cpOwogICAgICAgIGlmKCAhJG1zZyApIHJldHVybjsKCiAgICAgICAgJHRoaXMtPl9lcnJvcnNbXSA9ICRtc2c7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19lcnJvcnMoKQogICAgewogICAgICAgIHJldHVybiAhZW1wdHkoJHRoaXMtPl9lcnJvcnMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhc19hcnJheSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGF0YTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBGb3JtU2Nhbm5lciBpbXBsZW1lbnRzIElGb3JtU2Nhbm5lcgp7CiAgICBjb25zdCBDQVBUQ0hBX0FUVFJJQlVURSA9ICdkYXRhLXNtdGZtLWNhcHRjaGEnOwogICAgY29uc3QgU0tJUF9DQVBUQ0hBX0FUVFJJQlVURSA9ICdkYXRhLXNtdGZtLW5vY2FwdGNoYSc7CgogICAgcHJpdmF0ZSAkX2h0bWw7CiAgICBwcml2YXRlICRfdHI7CiAgICBwcml2YXRlICRfZm9ybXMgPSBbXTsKICAgIHByaXZhdGUgJF9pbnB1dHMgPSBbXTsKICAgIHByaXZhdGUgJF9sYWJlbHMgPSBbXTsKICAgIHByaXZhdGUgJF9oYXNfY2FwdGNoYSA9IGZhbHNlOwogICAgcHJpdmF0ZSAkX3NraXBfY2FwdGNoYSA9IGZhbHNlOwogICAgcHJpdmF0ZSAkX2Vycm9yczsKICAgIHByaXZhdGUgJF9yZXBseXRvOyAvLyB0aGUgbmFtZSBvZiBhIGZpZWxkIHRoYXQgd2lsbCBjb250YWluIHRoZSByZXBseSB0byBhZGRyZXNzLgoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJGh0bWxfY29udGVudHMsIFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICAkdGhpcy0+X3RyID0gJHRyOwogICAgICAgICRodG1sX2NvbnRlbnRzID0gdHJpbSggJGh0bWxfY29udGVudHMgKTsKICAgICAgICBpZiggISRodG1sX2NvbnRlbnRzICkgdGhyb3cgbmV3IEZvcm1TY2FubmVyRXJyb3IoJ2Vycl9ub2NvbnRlbnRzJyk7CiAgICAgICAgJHRoaXMtPl9odG1sID0gJGh0bWxfY29udGVudHM7CiAgICAgICAgJHRoaXMtPnBhcnNlKCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFBhcmVudExhYmVsKFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgICRub2RlID0gJG5vZGUtPnBhcmVudE5vZGU7CiAgICAgICAgaWYoICEkbm9kZSApIHJldHVybjsKCiAgICAgICAgJG5hbWUgPSBzdHJ0b2xvd2VyKCRub2RlLT5ub2RlTmFtZSk7CiAgICAgICAgaWYoICRuYW1lICE9ICdsYWJlbCcgKSByZXR1cm47CiAgICAgICAgcmV0dXJuICRub2RlLT5ub2RlVmFsdWU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4dHJhY3RGb3JtKFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgICRmbGQgPSBuZXcgRE9NRm9ybUZpZWxkKCRub2RlKTsKICAgICAgICByZXR1cm4gJGZsZDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXh0cmFjdElucHV0KFxEb21Ob2RlICRub2RlKQogICAgewogICAgICAgICRmbGQgPSBuZXcgRE9NSW5wdXRGaWVsZCgkbm9kZSk7CiAgICAgICAgJG5hbWUgPSAkZmxkLT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgaWYoICEkdGhpcy0+X3JlcGx5dG8gJiYgJG5hbWUgKSB7CiAgICAgICAgICAgIGlmKCAkZmxkLT5oYXNfYXR0cmlidXRlKCdkYXRhLXNtdGZtLXJlcGx5dG8nKSApICR0aGlzLT5fcmVwbHl0byA9ICRuYW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGZsZDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXh0cmFjdEJ1dHRvbihcRG9tTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkZmxkID0gbmV3IERPTUJ1dHRvbkZpZWxkKCRub2RlKTsKICAgICAgICByZXR1cm4gJGZsZDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXh0cmFjdFRleHRBcmVhKFxEb21Ob2RlICRub2RlKQogICAgewogICAgICAgICRmbGQgPSBuZXcgRE9NVGV4dEFyZWFGaWVsZCgkbm9kZSk7CiAgICAgICAgcmV0dXJuICRmbGQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4dHJhY3RTZWxlY3QoXERvbU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgJGZsZCA9IG5ldyBET01TZWxlY3RGaWVsZCggJG5vZGUgKTsKICAgICAgICBmb3JlYWNoKCAkbm9kZS0+Y2hpbGROb2RlcyBhcyAkbm9kZSApIHsKICAgICAgICAgICAgJG5hbWUgPSBzdHJ0b2xvd2VyKCAkbm9kZS0+bm9kZU5hbWUgKTsKICAgICAgICAgICAgaWYoICRuYW1lICE9ICdvcHRpb24nICkgY29udGludWU7CiAgICAgICAgICAgICRvcHRpb24gPSBuZXcgRE9NU2VsZWN0T3B0aW9uKCAkbm9kZSApOwogICAgICAgICAgICAkZmxkLT5hZGRfb3B0aW9uKCAkb3B0aW9uICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZmxkOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0TGFiZWwoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgJGZsZCA9IG5ldyBET01MYWJlbEZpZWxkKCAkbm9kZSApOwogICAgICAgIHJldHVybiAkZmxkOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpc0NhcHRjaGFDb250YWluZXIoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgLy8gbG9vayBmb3IgdGhlIGRhdGEtc210Zm0tY2FwdGNoYSBhdHRyaWJ1dGUKICAgICAgICBmb3JlYWNoKCAkbm9kZS0+YXR0cmlidXRlcyBhcyAkYXR0ciApIHsKICAgICAgICAgICAgaWYoICRhdHRyLT5sb2NhbE5hbWUgPT0gc2VsZjo6Q0FQVENIQV9BVFRSSUJVVEUgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzU2tpcENhcHRjaGFtYXJrZXIoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgLy8gbG9vayBmb3IgdGhlIGRhdGEtc210Zm0tY2FwdGNoYSBhdHRyaWJ1dGUKICAgICAgICBmb3JlYWNoKCAkbm9kZS0+YXR0cmlidXRlcyBhcyAkYXR0ciApIHsKICAgICAgICAgICAgaWYoICRhdHRyLT5sb2NhbE5hbWUgPT0gc2VsZjo6U0tJUF9DQVBUQ0hBX0FUVFJJQlVURSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXh0cmFjdEZpZWxkcyhcRG9tTm9kZSAkcGFyZW50KQogICAgewogICAgICAgIGZvcmVhY2goICRwYXJlbnQtPmNoaWxkTm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgJG5hbWUgPSBzdHJ0b2xvd2VyKCRub2RlLT5ub2RlTmFtZSk7CiAgICAgICAgICAgIHN3aXRjaCggJG5hbWUgKSB7CiAgICAgICAgICAgIGNhc2UgJ2Rpdic6CiAgICAgICAgICAgIGNhc2UgJ3AnOgogICAgICAgICAgICAgICAgaWYoICR0aGlzLT5pc0NhcHRjaGFDb250YWluZXIoICRub2RlICkgKSAkdGhpcy0+X2hhc19jYXB0Y2hhID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmKCAkdGhpcy0+aXNTa2lwQ2FwdGNoYU1hcmtlciggJG5vZGUgKSApICR0aGlzLT5fc2tpcF9jYXB0Y2hhID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdmb3JtJzoKICAgICAgICAgICAgICAgICRyZWMgPSAkdGhpcy0+ZXh0cmFjdEZvcm0oICRub2RlICk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2Zvcm1zW10gPSAkcmVjOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2lucHV0JzoKICAgICAgICAgICAgICAgICRyZWMgPSAkdGhpcy0+ZXh0cmFjdElucHV0KCAkbm9kZSApOwogICAgICAgICAgICAgICAgJHRoaXMtPl9pbnB1dHNbXSA9ICRyZWM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnYnV0dG9uJzoKICAgICAgICAgICAgICAgICRyZWMgPSAkdGhpcy0+ZXh0cmFjdEJ1dHRvbiggJG5vZGUgKTsKICAgICAgICAgICAgICAgICR0aGlzLT5faW5wdXRzW10gPSAkcmVjOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICAgICAgICAgICRyZWMgPSAkdGhpcy0+ZXh0cmFjdFRleHRBcmVhKCAkbm9kZSApOwogICAgICAgICAgICAgICAgJHRoaXMtPl9pbnB1dHNbXSA9ICRyZWM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnc2VsZWN0JzoKICAgICAgICAgICAgICAgICRyZWMgPSAkdGhpcy0+ZXh0cmFjdFNlbGVjdCggJG5vZGUgKTsKICAgICAgICAgICAgICAgICR0aGlzLT5faW5wdXRzW10gPSAkcmVjOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2xhYmVsJzoKICAgICAgICAgICAgICAgICRyZWMgPSAkdGhpcy0+ZXh0cmFjdExhYmVsKCAkbm9kZSApOwogICAgICAgICAgICAgICAgaWYoICRyZWMgKSAkdGhpcy0+X2xhYmVsc1tdID0gJHJlYzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkbm9kZS0+aGFzQ2hpbGROb2RlcygpICkgJHRoaXMtPmV4dHJhY3RGaWVsZHMoICRub2RlICk7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRMYWJlbHMoIGFycmF5ICRpbnB1dHMsIGFycmF5ICRsYWJlbHMgKQogICAgewogICAgICAgIC8vIGdpdmVuIGFuIGFycmF5IG9mIGlucHV0cywgYW5kIGxhYmVscy4uIGZvciBpbnB1dHMgd2l0aCBpZCdzLi4gc2V0IHRoZSBsYWJlbCBlbGVtZW50CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAmJGlucHV0ICkgewogICAgICAgICAgICBpZiggISgkaWQgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ2lkJykpICkgY29udGludWU7CiAgICAgICAgICAgIGZvcmVhY2goICRsYWJlbHMgYXMgJGxhYmVsICkgewogICAgICAgICAgICAgICAgJGZvciA9ICRsYWJlbC0+Z2V0X2F0dHJpYnV0ZSgnZm9yJyk7CiAgICAgICAgICAgICAgICBpZiggJGxhYmVsLT5nZXRfYXR0cmlidXRlKCdmb3InKSA9PSAkaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICRsYWJlbC0+Z2V0X3ZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9IHRyaW0ocnRyaW0odHJpbSgkdmFsKSwnOicpKTsKICAgICAgICAgICAgICAgICAgICAkaW5wdXQtPnNldF9sYWJlbCgkdmFsKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGlucHV0czsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VfZXJyb3JzKCBhcnJheSAkZXJyb3JzID0gbnVsbCApCiAgICB7CiAgICAgICAgaWYoICFjb3VudCgkZXJyb3JzKSApIHJldHVybjsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGVycm9ycyBhcyAkb2JqICkgewogICAgICAgICAgICBzd2l0Y2goICRvYmotPmxldmVsICkgewogICAgICAgICAgICBjYXNlIExJQlhNTF9FUlJfV0FSTklORzoKICAgICAgICAgICAgICAgICRvdXRbXSA9IHNwcmludGYoIldBUk5JTkc6ICVzIGF0IGFib3V0IGxpbmUgJWQgY29sdW1uICVkIix0cmltKCRvYmotPm1lc3NhZ2UpLCRvYmotPmxpbmUsJG9iai0+Y29sdW1uKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIExJQlhNTF9FUlJfRVJST1I6CiAgICAgICAgICAgICAgICBpZiggJG9iai0+Y29kZSA9PSA4MDEgKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dFtdID0gc3ByaW50ZigiRVJST1I6ICVzIGF0IGFib3V0IGxpbmUgJWQgY29sdW1uICVkLiAgKFBIUCdzIGxpYnhtbCBkb2VzIG5vdCB1bmRlcnN0YW5kIEhUTUw1IGVsZW1lbnRzKSIsdHJpbSgkb2JqLT5tZXNzYWdlKSwkb2JqLT5saW5lLCRvYmotPmNvbHVtbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkb3V0W10gPSBzcHJpbnRmKCJFUlJPUjogJXMgYXQgYWJvdXQgbGluZSAlZCBjb2x1bW4gJWQiLHRyaW0oJG9iai0+bWVzc2FnZSksJG9iai0+bGluZSwkb2JqLT5jb2x1bW4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgTElCWE1MX0VSUl9GQVRBTDoKICAgICAgICAgICAgICAgICRvdXRbXSA9IHNwcmludGYoIkZBVEFMOiAlcyBhdCBhYm91dCBsaW5lICVkIGNvbHVtbiAlZCIsdHJpbSgkb2JqLT5tZXNzYWdlKSwkb2JqLT5saW5lLCRvYmotPmNvbHVtbik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICRvdXRbXSA9IHNwcmludGYoIk5PVElDRTogJXMgYXQgYWJvdXQgbGluZSAlZCBjb2x1bW4gJWQiLHRyaW0oJG9iai0+bWVzc2FnZSksJG9iai0+bGluZSwkb2JqLT5jb2x1bW4pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHBhcnNlKCkKICAgIHsKICAgICAgICAvLyBub3RlOiBtYXkgbmVlZCB0byBzZXR1cCBhbiBlcnJvciBoYW5kbGVyIGhlcmUgdGhhdCB0aHJvd3MgZXhjZXB0aW9ucwogICAgICAgICRkb20gPSBuZXcgXERvbURvY3VtZW50KCk7CiAgICAgICAgJG9yaWcgPSBpbmlfZ2V0KCdkaXNwbGF5X2Vycm9ycycpOwogICAgICAgIEBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsMCk7CiAgICAgICAgbGlieG1sX3VzZV9pbnRlcm5hbF9lcnJvcnModHJ1ZSk7CiAgICAgICAgJGRvbS0+bG9hZEhUTUwoICc8P3htbCBlbmNvZGluZz0idXRmLTgiID8+JyAuICR0aGlzLT5faHRtbCApOwogICAgICAgICR0aGlzLT5fZXJyb3JzID0gJHRoaXMtPnBhcnNlX2Vycm9ycyhsaWJ4bWxfZ2V0X2Vycm9ycygpKTsKICAgICAgICAkdGhpcy0+ZXh0cmFjdEZpZWxkcyggJGRvbSApOwogICAgICAgICR0aGlzLT5faW5wdXRzID0gJHRoaXMtPnNldExhYmVscyggJHRoaXMtPl9pbnB1dHMsICR0aGlzLT5fbGFiZWxzICk7CiAgICAgICAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywkb3JpZyk7CiAgICAgICAgaWYoICEkdGhpcy0+X2hhc19jYXB0Y2hhICYmICEkdGhpcy0+X3NraXBfY2FwdGNoYSApIHsKICAgICAgICAgICAgJHRoaXMtPl9lcnJvcnNbXSA9ICR0aGlzLT5fdHItPnRyYW5zbGF0ZSgnbm90aWNlX25vX2NhcHRjaGEnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9tb2RpZmllZF90aW1lKCkKICAgIHsKICAgICAgICAvLyB3ZSB3ZXJlIGdpdmVuIGh0bWwsIG5vIHdheSB0byBrbm93IHdoYXQgdGhlIG1vZGlmaWVkIHRpbWUgaXMKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Vycm9ycygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZXJyb3JzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZm9ybXMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Zvcm1zOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9pbnB1dHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9yZXBseXRvX2ZpZWxkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9yZXBseXRvOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfY2FwdGNoYSgpCiAgICB7CiAgICAgICAgLy8gbm90ZS4uLiBvbmx5IGRldGVjdHMgaWYgY2FwdGNoYSBpcyBkZXRlY3RlZCBhY3Jvc3MgdGhlIHdob2xlIHRlbXBsYXRlLgogICAgICAgIC8vIG5vdCBpbmRpdmlkdWFsIGZvcm1zIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBmb3JtcyAod2hpY2ggaXMgaW52YWxpZCBhbnl3YXlzKQogICAgICAgIHJldHVybiAkdGhpcy0+X2hhc19jYXB0Y2hhOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.ModuleReference.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBNb2R1bGVSZWZlcmVuY2UKewogICAgcHJpdmF0ZSAkX21vZHVsZV9uYW1lOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJG1vZF9uYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZHVsZV9uYW1lID0gdHJpbSggJG1vZF9uYW1lICk7CiAgICAgICAgaWYoICEkdGhpcy0+X21vZHVsZV9uYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGluaXRpYWxpemUgYSAnLl9fQ0xBU1NfXy4nIHdpdGggYW4gZW1wdHkgdmFsdWUnKTsKICAgICAgICAkdGhpcy0+Z2V0X21vZCgpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfbW9kKCkKICAgIHsKICAgICAgICAkbW9kID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoICR0aGlzLT5fbW9kdWxlX25hbWUgKTsKICAgICAgICBpZiggISRtb2QgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIk1vZHVsZSB7JHRoaXMtPl9tb2R1bGVfbmFtZX0gaXMgcmVmZXJlbmNlZCBidXQgbm90IGF2YWlsYWJsZSIpOwogICAgICAgIHJldHVybiAkbW9kOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgaWYoICRrZXkgPT0gJ25hbWUnICkgcmV0dXJuICR0aGlzLT5fbW9kdWxlX25hbWU7CgogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgZ2V0dGFibGUgbWVtYmVyIG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoICRrZXksICR2YWwgKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgc2V0dGFibGUgbWVtYmVyIG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoICRhcmdzICkKICAgIHsKICAgICAgICAvLyBjYWxsZWQgYXMgJHJlZmVyZW5jZSgpLT5zb21ldGhpbmcuCiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfbW9kKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY2FsbCggJG1ldGhvZCwgJGFyZ3MgKQogICAgewogICAgICAgIC8vIGNhbGxlZCBsaWtlICRyZWZlcmVuY2UtPnNvbWV0aGluZygpCiAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KCBbICR0aGlzLT5nZXRfbW9kKCksICRtZXRob2QgXSwgJGFyZ3MgKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ScannedTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgovLyB0aGlzIGNsYXNzIGhhbmRsZXMgdGhlIG1ldGFkYXRhIGNvbWluZyBmcm9tIHRoZSB0ZW1wbGF0ZSB0ZXN0ZXIgYW5kIHRoZSB0ZW1wbGFlIHNjYW5uZXIKY2xhc3MgU2Nhbm5lZFRlbXBsYXRlCnsKICAgIHByaXZhdGUgJF9tZXNzYWdlczsKICAgIHByaXZhdGUgJF9maWVsZHM7CiAgICBwcml2YXRlICRfaGFzX2NhcHRjaGE7CiAgICBwcml2YXRlICRfbXRpbWU7CiAgICBwcml2YXRlICRfcmVwbHl0b19maWVsZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIElGb3JtU2Nhbm5lciAkc2Nhbm5lciwgSUZvcm1UZXN0ZXIgJHRlc3RlciApCiAgICB7CiAgICAgICAgJG1lc3NhZ2VzID0gJHNjYW5uZXItPmdldF9lcnJvcnMoKTsKICAgICAgICBpZiggZW1wdHkoJG1lc3NhZ2VzKSApICRtZXNzYWdlcyA9IFtdOwogICAgICAgICRtZXNzYWdlczIgPSAkdGVzdGVyLT5nZXRfbWVzc2FnZXMoKTsKICAgICAgICBpZiggZW1wdHkoJG1lc3NhZ2VzMikgKSAkbWVzc2FnZXMyID0gW107CiAgICAgICAgJHRoaXMtPl9tZXNzYWdlcyA9IGFycmF5X21lcmdlKCAkbWVzc2FnZXMsICRtZXNzYWdlczIgKTsKCiAgICAgICAgJGRvbV9maWVsZHMgPSAkc2Nhbm5lci0+Z2V0X2ZpZWxkcygpOwogICAgICAgICRjb252ZXJ0ZXIgPSBuZXcgRm9ybUZpZWxkQ29udmVydGVyKCAkZG9tX2ZpZWxkcyApOwogICAgICAgICR0aGlzLT5fZmllbGRzID0gJGNvbnZlcnRlci0+Z2V0X2ZpZWxkcygpOwogICAgICAgICR0aGlzLT5faGFzX2NhcHRjaGEgPSAkc2Nhbm5lci0+aGFzX2NhcHRjaGEoKTsKICAgICAgICAkdGhpcy0+X210aW1lID0gJHNjYW5uZXItPmdldF9tb2RpZmllZF90aW1lKCk7CiAgICAgICAgJHRoaXMtPl9yZXBseXRvX2ZpZWxkID0gJHNjYW5uZXItPmdldF9yZXBseXRvX2ZpZWxkKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9tb2RpZmllZF90aW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tdGltZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lc3NhZ2VzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tZXNzYWdlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfY2FwdGNoYSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faGFzX2NhcHRjaGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9yZXBseXRvX2ZpZWxkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9yZXBseXRvX2ZpZWxkOwogICAgfQp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.TemplateFormScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSBTbWFydEZvcm1zOwoKY2xhc3MgVGVtcGxhdGVGb3JtU2Nhbm5lciBleHRlbmRzIEZvcm1TY2FubmVyCnsKICAgIHByaXZhdGUgJF90cGxfb2JqOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggU21hcnRGb3JtcyAkbW9kLCBGb3JtICRmb3JtLCBUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgJG9yaWcgPSBpbmlfZ2V0KCdkaXNwbGF5X2Vycm9ycycpOwogICAgICAgIEBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsMCk7CiAgICAgICAgJHJzcmMgPSAkZm9ybS0+Z2V0U21hcnR5VGVtcGxhdGVSZXNvdXJjZSgpOwogICAgICAgIC8vJHJzcmMgPSAnY21zX3RlbXBsYXRlOicuJGZvcm0tPnRlbXBsYXRlX2lkOwogICAgICAgICR0aGlzLT5fdHBsX29iaiA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCAkcnNyYyApOwogICAgICAgICR0aGlzLT5fdHBsX29iai0+YXNzaWduKCdmb3JtX2RhdGEnLG5ldyBEdW1teUZvcm1SZXNwb25zZSgpKTsKICAgICAgICAkaHRtbCA9ICR0aGlzLT5fdHBsX29iai0+ZmV0Y2goKTsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCAkaHRtbCwgJHRyICk7CiAgICAgICAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywkb3JpZyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90ZW1wbGF0ZV9jb250ZW50cygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHBsX29iai0+c291cmNlLT5nZXRDb250ZW50KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9tb2RpZmllZF90aW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90cGxfb2JqLT5zb3VyY2UtPmdldFRpbWVTdGFtcCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCkKICAgIHsKICAgICAgICAkZmllbGRzID0gcGFyZW50OjpnZXRfZmllbGRzKCk7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICBpZiggJGZpZWxkLT5nZXRfYXR0cmlidXRlKCduYW1lJykgPT0gJ21hY3QnICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKSA9PSBDTVNfU0VDVVJFX1BBUkFNX05BTUUgKSBjb250aW51ZTsKICAgICAgICAgICAgJG91dFtdID0gJGZpZWxkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCgovKiBhIHNpbXBsZSBmb3JtIHJlc3BvbnNlIG9iamVjdCB0byB1c2UgaW4gdGhlIHRlbXBsYXRlIHNjYW5uZXIgKi8KY2xhc3MgRHVtbXlGb3JtUmVzcG9uc2UKewogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCAka2V5ICkKICAgIHsKICAgICAgICByZXR1cm4gJyc7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.TemplateFormTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBUZW1wbGF0ZUZvcm1UZXN0ZXIgZXh0ZW5kcyBGb3JtVGVzdGVyCnsKICAgIHByaXZhdGUgJF90cGxfdGV4dDsKICAgIHByaXZhdGUgJF9tZXNzYWdlczsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFRlbXBsYXRlRm9ybVNjYW5uZXIgJHNjYW5uZXIsIGFycmF5ICR0ZXN0cyA9IG51bGwgKQogICAgewogICAgICAgICR0aGlzLT5fdHBsX3RleHQgPSAkc2Nhbm5lci0+Z2V0X3RlbXBsYXRlX2NvbnRlbnRzKCk7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCggJHNjYW5uZXIsICR0ZXN0cyApOwogICAgICAgICR0aGlzLT50ZXN0KCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHRlc3QoKQogICAgewogICAgICAgIC8vIGZyb20gaGVyZSBkb3duIGFjY3VtdWxhdGUgbWVzc2FnZXMgdXNpbmcgdGhlIHZhcmlvdXMgdGVzdHMKICAgICAgICAkdGVzdHMgPSAkdGhpcy0+Z2V0X3Rlc3RzKCk7CiAgICAgICAgaWYoICFjb3VudCgkdGVzdHMpICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHRlc3RzIGFzICR0ZXN0ICkgewogICAgICAgICAgICBpZiggJHRlc3QgaW5zdGFuY2VvZiBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdG9yXFRlbXBsYXRlVGVzdGVyVGVzdCApIHsKICAgICAgICAgICAgICAgICRtZXNzYWdlcyA9ICR0ZXN0LT50ZXN0X3RlbXBsYXRlKCAkdGhpcy0+X3RwbF90ZXh0ICk7CiAgICAgICAgICAgICAgICBpZiggJG1lc3NhZ2VzICkgJG91dCA9IGFycmF5X21lcmdlKCAkb3V0LCAkbWVzc2FnZXMgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJHRlc3QgaW5zdGFuY2VvZiBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1UZXN0ZXJUZXN0ICkgewogICAgICAgICAgICAgICAgJG1lc3NhZ2VzID0gJHRlc3QtPnRlc3RfZm9ybSggJHRoaXMtPmdldF9mb3JtcygpLCAkdGhpcy0+Z2V0X2lucHV0cygpICk7CiAgICAgICAgICAgICAgICBpZiggJG1lc3NhZ2VzICkgJG91dCA9IGFycmF5X21lcmdlKCAkb3V0LCAkbWVzc2FnZXMgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+X21lc3NhZ2VzID0gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lc3NhZ2VzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tZXNzYWdlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkX2ZpZWxkcygpCiAgICB7CiAgICAgICAgLy8gcmV0dXJuIG9ubHkgZmllbGRzIHRoYXQgaGF2ZSBuYW1lcywgYW5kIG9ubHkgdGhlIGxhc3Qgb2NjdXJhbmNlIG9mIHRoYXQgbmFtZS4KICAgICAgICAkaW5wdXRzID0gJHRoaXMtPmdldF9pbnB1dHMoKTsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgIGlmKCAhJG5hbWUgKSBjb250aW51ZTsKICAgICAgICAgICAgJG91dFskbmFtZV0gPSAkZmllbGQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Translator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBUcmFuc2xhdG9yCnsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxTbWFydEZvcm1zICRtb2QpCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2xhdGUoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRhcmdzKSAmJiBjb3VudCgkYXJncykgPT0gMSAmJiBpc19hcnJheSgkYXJnc1swXSkgKSAkYXJncyA9ICRhcmdzWzBdOwogICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheSggWyAkdGhpcy0+X21vZCwgJ0xhbmcnXSwgJGFyZ3MgKTsKICAgIH0KCn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpmaW5hbCBjbGFzcyB1dGlscwp7CiAgICBwcml2YXRlIHN0YXRpYyAkX3RyYW5zbGF0b3I7CiAgICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF90cmFuc2xhdG9yKFRyYW5zbGF0b3IgJHRyKQogICAgewogICAgICAgIHNlbGY6OiRfdHJhbnNsYXRvciA9ICR0cjsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB0cigvKiB2YXIgYXJncyAqLykKICAgIHsKICAgICAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFyZ3MpICYmIGNvdW50KCRhcmdzKSA9PSAxICYmIGlzX2FycmF5KCRhcmdzWzBdKSApICRhcmdzID0gJGFyZ3NbMF07CiAgICAgICAgcmV0dXJuIHNlbGY6OiRfdHJhbnNsYXRvci0+dHJhbnNsYXRlKCAkYXJncyApOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbWtkaXIoJGRpcikKICAgIHsKICAgICAgICBpZiggIXNlbGY6OmlzX2Ntc21zX3JlbGF0aXZlKCAkZGlyICkgKSB0aHJvdyBuZXcgU2VjdXJpdHlFeGNlcHRpb24oc2VsZjo6dHIoJ2Vycl9zZWN1cml0eV9ta2Rpcl9ub3RyZWxhdGl2ZScpKTsKCiAgICAgICAgaWYoIGlzX2ZpbGUoICRkaXIgKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oc2VsZjo6dHIoJ2Vycl9zZWN1cml0eV9ta2Rpcl9maWxlZXhpc3RzJykpOwogICAgICAgIGlmKCAhaXNfZGlyKCAkZGlyICkgKSB7CiAgICAgICAgICAgICRyZXMgPSBta2RpciggJGRpciApOwogICAgICAgICAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdTWVNURU0gRVJST1I6IENvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICcuJGRpcik7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNfZmlsZSgkZGlyLicvaW5kZXguaHRtbCcpICYmICFpc19maWxlKCRkaXIuJy9pbmRleC5waHAnKSApIGZpbGVfcHV0X2NvbnRlbnRzKCAkZGlyLicvaW5kZXguaHRtbCcsJzwhLS0gRFVNTVkgSFRNTCAtLT4nKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBta2Rpcl9wYXJlbnQoJGRpcikKICAgIHsKICAgICAgICAkcGFyZW50ID0gZGlybmFtZSgkZGlyKTsKICAgICAgICBpZiggIWlzX2RpcigkcGFyZW50KSApIHsKICAgICAgICAgICAgc2VsZjo6bWtkaXJfcGFyZW50KCRwYXJlbnQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmKCAhaXNfd3JpdGFibGUoICRwYXJlbnQgKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1NZU1RFTSBFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgaW4gJy4kcGFyZW50KTsKICAgICAgICB9CiAgICAgICAgc2VsZjo6bWtkaXIoICRkaXIgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1rZGlycigkZGlyKQogICAgewogICAgICAgIGlmKCAhc2VsZjo6aXNfY21zbXNfcmVsYXRpdmUoICRkaXIgKSApIHRocm93IG5ldyBTZWN1cml0eUV4Y2VwdGlvbihzZWxmOjp0cignZXJyX3NlY3VyaXR5X21rZGlyX25vdHJlbGF0aXZlJykpOwogICAgICAgIGlmKCBpc19maWxlKCAkZGlyICkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKHNlbGY6OnRyKCdlcnJfc2VjdXJpdHlfbWtkaXJfZmlsZWV4aXN0cycpKTsKICAgICAgICBzZWxmOjpta2Rpcl9wYXJlbnQoICRkaXIgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxpc3Rfc3VpdGFibGVfdGVtcGxhdGVzKCkKICAgIHsKICAgICAgICAvLyBnZXQgdGhlIGdlbmVyaWMgdGVtcGxhdGUgdHlwZQogICAgICAgICR0eXBlID0gXENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZCgnU21hcnRGb3Jtczo6Rm9ybScpOwogICAgICAgICRxcnkgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlUXVlcnkoWyd0OicuJHR5cGUtPmdldF9pZCgpXSk7CiAgICAgICAgJHRtcCA9ICRxcnktPkdldE1hdGNoZXMoKTsKICAgICAgICBpZiggIWNvdW50KCR0bXApICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb2JqICkgewogICAgICAgICAgICAkb3V0WyRvYmotPmdldF9pZCgpXSA9ICRvYmotPmdldF9uYW1lKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbGlzdF92YWxpZGF0aW9uX2VkaXRvcnMoYXJyYXkgJGVkaXRvcnMpCiAgICB7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICRlZGl0b3JzIGFzICRjbGFzcyA9PiAkb25lICkgewogICAgICAgICAgICBpZiggISAkb25lIGluc3RhbmNlb2YgRmllbGRWYWxpZGF0b3JzXFZhbGlkYXRpb25FZGl0b3IgKSBjb250aW51ZTsKICAgICAgICAgICAgJG91dFskY2xhc3NdID0gJG9uZS0+Z2V0X25hbWUoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsaXN0X2Rpc3Bvc2l0aW9uX2VkaXRvcnMoYXJyYXkgJGRpc3Bvc2l0aW9ucykKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGRpc3Bvc2l0aW9ucyBhcyAkY2xhc3MgPT4gJG9uZSApIHsKICAgICAgICAgICAgaWYoICEgJG9uZSBpbnN0YW5jZW9mIERpc3Bvc2l0aW9uc1xEaXNwb3NpdGlvbkVkaXRvciApIGNvbnRpbnVlOwogICAgICAgICAgICAkb3V0WyRjbGFzc10gPSAkb25lLT5nZXRfbmFtZSgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHN0b3JlX29iamVjdCggJGRhdGEsICRrZXkgPSBudWxsICkKICAgIHsKICAgICAgICBpZiggISRrZXkgKSAka2V5ID0gXHh0X3V0aWxzOjpjcmVhdGVfZ3VpZCgpOwogICAgICAgICRfU0VTU0lPTlska2V5XSA9IHNlcmlhbGl6ZSgkZGF0YSk7CiAgICAgICAgcmV0dXJuICRrZXk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZV9vYmplY3QoICRrZXkgKQogICAgewogICAgICAgICRvYmogPSBudWxsOwogICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJGtleV0pICkgJG9iaiA9IHVuc2VyaWFsaXplKCRfU0VTU0lPTlska2V5XSk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZW1vdmVfc3RvcmVkX29iamVjdCggJGtleSApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCRfU0VTU0lPTlska2V5XSkgKSB1bnNldCgkX1NFU1NJT05bJGtleV0pOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfY21zbXNfcmVsYXRpdmUoICRmaWxlICkKICAgIHsKICAgICAgICAkZmlsZSA9IHRyaW0oJGZpbGUpOwogICAgICAgIGlmKCAhJGZpbGUgKSByZXR1cm47CiAgICAgICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKCiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoICRmaWxlLCAkY29uZmlnWydyb290X3BhdGgnXSApICkgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5fd3JpdGVfZmlsZSggJGZpbGUgKQogICAgewogICAgICAgICRmaWxlID0gdHJpbSgkZmlsZSk7CiAgICAgICAgaWYoICEkZmlsZSApIHJldHVybjsKCiAgICAgICAgaWYoIGlzX2ZpbGUoJGZpbGUpICkgewogICAgICAgICAgICBpZiggaXNfd3JpdGFibGUoICRmaWxlKSApIHJldHVybiBUUlVFOwogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgICAgICRkaXIgPSBkaXJuYW1lKCRmaWxlKTsKICAgICAgICBpZiggIWlzX2RpciggJGRpcikgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICFpc193cml0YWJsZSggJGRpciApICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcHJvY2Vzc190ZW1wbGF0ZSggJHRlbXBsYXRlX3RleHQsIEZvcm0gJGZvcm0sIEZvcm1SZXNwb25zZSAkcmVzcG9uc2UgKQogICAgewogICAgICAgICR0ZW1wbGF0ZV90ZXh0ID0gdHJpbSgkdGVtcGxhdGVfdGV4dCk7CiAgICAgICAgaWYoICEkdGVtcGxhdGVfdGV4dCApIHJldHVybjsKICAgICAgICAkdGVtcGxhdGVfdGV4dCA9IGh0bWxfZW50aXR5X2RlY29kZSggJHRlbXBsYXRlX3RleHQgKTsgLy8gZGVjb2RpbmcgYWdhaW4gPz8KCiAgICAgICAgJHNtYXJ0eSA9IFxjbXNfdXRpbHM6OmdldF9zbWFydHkoKTsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfU01BUlRGT1JNUyk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCdzdHJpbmc6Jy4kdGVtcGxhdGVfdGV4dCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtb2QnLCRtb2QpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybScsJGZvcm0pOwogICAgICAgICR0cGwtPmFzc2lnbigncmVzcG9uc2UnLCRyZXNwb25zZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdFT0wnLFBIUF9FT0wpOwogICAgICAgICR0cGwtPmFzc2lnbignTEYnLCJcbiIpOwogICAgICAgICR0cGwtPmFzc2lnbignVEFCJywiXHQiKTsKICAgICAgICBmb3JlYWNoKCAkcmVzcG9uc2UtPmxpc3RfZmllbGRzKCkgYXMgJGZpZWxkX25hbWUgKSB7CiAgICAgICAgICAgIGlmKCAkZm9ybS0+aXNfZmlsZV9maWVsZCggJGZpZWxkX25hbWUpICkgewogICAgICAgICAgICAgICAgJHZhbCA9ICRyZXNwb25zZS0+Z2V0X2ZpbGVfYXNfdXJsKCAkZmllbGRfbmFtZSApOwogICAgICAgICAgICAgICAgJHRwbC0+YXNzaWduKCRmaWVsZF9uYW1lLCR2YWwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHZhbCA9ICRyZXNwb25zZS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkZmllbGRfbmFtZSApOwogICAgICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdfJy4kZmllbGRfbmFtZSwgJHZhbCk7CiAgICAgICAgICAgICAgICAkdmFsID0gJGZvcm0tPmdldF9odW1hbl9yZWFkYWJsZV9maWVsZF92YWx1ZSggJGZpZWxkX25hbWUsICR2YWwgKTsKICAgICAgICAgICAgICAgICR0cGwtPmFzc2lnbigkZmllbGRfbmFtZSwgJHZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZm9ybV90cGxfaGVscCggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1NNQVJURk9STVMpOwogICAgICAgICRmaWVsZF9uYW1lcyA9ICRmb3JtLT5nZXRfZmllbGRuYW1lcygpOwogICAgICAgICR2YXJzID0gW107CgogICAgICAgIGZvcmVhY2goICRmaWVsZF9uYW1lcyBhcyAkbmFtZSApIHsKICAgICAgICAgICAgJGZpZWxkID0gJGZvcm0tPmdldF9maWVsZCgkbmFtZSk7CiAgICAgICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICAgICAkb2JqLT5rZXkgPSAkbmFtZTsKICAgICAgICAgICAgJG9iai0+dHlwZSA9ICRmaWVsZC0+cHJpbWl0aXZlOwogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApICRvYmotPnR5cGUgLj0gJ1tdJzsKICAgICAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAgICAgJG9iai0+a2V5ID0gJ18nLiRuYW1lOwogICAgICAgICAgICAkb2JqLT50eXBlID0gJGZpZWxkLT5wcmltaXRpdmU7CiAgICAgICAgICAgICRvYmotPmRlc2MgPSAiUmF3IHN1Ym1pdHRlZCB2YWx1ZSBmb3IgdGhlICRuYW1lIGZpZWxkIjsKICAgICAgICAgICAgJHZhcnNbXSA9ICRvYmo7CiAgICAgICAgfQoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnc210Zm1fc3VibWl0X3RpbWUnOwogICAgICAgICRvYmotPnR5cGUgPSAnaW50JzsKICAgICAgICAkb2JqLT5kZXNjID0gJG1vZC0+TGFuZygndmFyaGVscF9zbXRmbV9zdWJtaXRfdGltZScpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnc210Zm1fc3VibWl0X2lwJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfc210Zm1fc3VibWl0X2lwJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdzbXRmbV92ZXJzaW9uJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfc210Zm1fdmVyc2lvbicpOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnc210Zm1fZm9ybW5hbWUnOwogICAgICAgICRvYmotPnR5cGUgPSAnc3RyaW5nJzsKICAgICAgICAkb2JqLT5kZXNjID0gJG1vZC0+TGFuZygndmFyaGVscF9zbXRmbV9mb3JtbmFtZScpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnc210Zm1fZm9ybWRlc24nOwogICAgICAgICRvYmotPnR5cGUgPSAnc3RyaW5nJzsKICAgICAgICAkb2JqLT5kZXNjID0gJG1vZC0+TGFuZygndmFyaGVscF9zbXRmbV9mb3JtZGVzYycpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnc210Zm1fcmVxdWVzdGlkJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfc210Zm1fcmVxdWVzdGlkJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdyZXNwb25zZSc7CiAgICAgICAgJG9iai0+dHlwZSA9ICdvYmplY3QnOwogICAgICAgICRvYmotPmRlc2MgPSAkbW9kLT5MYW5nKCd2YXJoZWxwX3Jlc3BvbnNlJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdmb3JtJzsKICAgICAgICAkb2JqLT50eXBlID0gJ29iamVjdCc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfZm9ybScpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnRU9MJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfc210Zm1fRU9MJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdMRic7CiAgICAgICAgJG9iai0+dHlwZSA9ICdzdHJpbmcnOwogICAgICAgICRvYmotPmRlc2MgPSAkbW9kLT5MYW5nKCd2YXJoZWxwX3NtdGZtX0xGJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdUQUInOwogICAgICAgICRvYmotPnR5cGUgPSAnc3RyaW5nJzsKICAgICAgICAkb2JqLT5kZXNjID0gJG1vZC0+TGFuZygndmFyaGVscF9zbXRmbV9UQUInKTsKICAgICAgICAkdmFyc1tdID0gJG9iajsKCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl92YXJoZWxwLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbigndmFycycsJHZhcnMpOwogICAgICAgIHJldHVybiAkdHBsLT5mZXRjaCgpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X21haWxlciggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJG1haWxlciA9IG5ldyBcY21zX21haWxlcjsKICAgICAgICAkbWFpbGVyLT5Jc0hUTUwoVFJVRSk7CiAgICAgICAgJGFkZHIgPSAkZm9ybS0+ZW1haWxfZnJvbV9hZGRyOwogICAgICAgICRuYW1lID0gJGZvcm0tPmVtYWlsX2Zyb21fbmFtZTsKICAgICAgICBpZiggJGFkZHIgKSB7CiAgICAgICAgICAgICRtYWlsZXItPkFkZFJlcGx5VG8oICRhZGRyLCAkbmFtZSApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG1haWxlcjsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.ValidationEditorHelperProxy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBWYWxpZGF0aW9uRWRpdG9ySGVscGVyUHJveHkKewogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2FuY2VsKCAkZm9ybV9ndWlkICkKICAgIHsKICAgICAgICBpZiggISRmb3JtX2d1aWQgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBmb3JtX2d1aWQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9tb2QtPlNldE1lc3NhZ2UoJHRoaXMtPl9tb2QtPkxhbmcoJ21zZ19jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPl9tb2QtPlJlZGlyZWN0KCdtMV8nLCdhZG1pbl9lZGl0X2Zvcm0nLCAnJywgWydmb3JtX2d1aWQnPT4kZm9ybV9ndWlkLCAneHRfYWN0aXZldGFiJz0+J3ZhbGlkYXRpb24nXSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBmaW5pc2goIEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsIEZpZWxkVmFsaWRhdG9yc1xJVmFsaWRhdGlvbiAkdmFsaWRhdG9yLCAkZ3VpZCApCiAgICB7CiAgICAgICAgaWYoICEkZm9ybV9ndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gZm9ybV9ndWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRmb3JtX2d1aWQgPSBcU21hcnRGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGZvcm1fZ3VpZCApOwogICAgICAgICRndWlkID0gXFNtYXJ0Rm9ybXNcdXRpbHM6OnN0b3JlX29iamVjdCggJHZhbGlkYXRvciwgJGd1aWQgKTsKICAgICAgICAkdGhpcy0+X21vZC0+U2V0TWVzc2FnZSgkdGhpcy0+X21vZC0+TGFuZygnbXNnX3ZhbGlkYXRpb25fc2F2ZWQnKSk7CiAgICAgICAgJHRoaXMtPl9tb2QtPlJlZGlyZWN0KCAnbTFfJywgJ2FkbWluX2VkaXRfZm9ybScsICcnLCBbICdmb3JtX2d1aWQnPT4kZm9ybV9ndWlkLCAndmFsaWRhdG9yX2d1aWQnPT4kZ3VpZCwgJ3h0X2FjdGl2ZXRhYic9Pid2YWxpZGF0aW9uJyBdICk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ValidationScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CnVzZSBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnM7CgovLyBzY2FucyBhIGZvcm0gYW5kIGZpZWxkcywgYW5kIGRldGVybWluZXMgYSBtaW5pbWFsIGxpc3Qgb2YgdmFsaWRhdGlvbnMuCmNsYXNzIFZhbGlkYXRpb25TY2FubmVyCnsKICAgIHByaXZhdGUgJF9mb3JtOwogICAgcHJpdmF0ZSAkX2ZpZWxkczsKICAgIHByaXZhdGUgJF9jYXB0Y2hhX3Byb3ZpZGVyOwogICAgcHJpdmF0ZSAkX3ZhbGlkYXRpb25zOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCwgRm9ybSAkZm9ybSwgYXJyYXkgJGZpZWxkcyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9mb3JtID0gJGZvcm07CiAgICAgICAgJHRoaXMtPl9maWVsZHMgPSAkZmllbGRzOwogICAgICAgICR0aGlzLT5fY2FwdGNoYV9wcm92aWRlciA9ICRtb2QtPmdldF9jYXB0Y2hhX3Byb3ZpZGVyKCk7CgogICAgICAgICR2YWxpZGF0aW9ucyA9ICR0aGlzLT5fZm9ybS0+dmFsaWRhdGlvbnM7CiAgICAgICAgaWYoICFlbXB0eSggJHZhbGlkYXRpb25zICkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICR2YWxpZGF0aW9ucyBhcyAkZ3VpZCA9PiAkb2JqICkgewogICAgICAgICAgICAgICAgJGNsYXNzID0gZ2V0X2NsYXNzKCRvYmopOwogICAgICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0aW9uc1tdID0gJGNsYXNzOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGRfdW5pcXVlX3ZhbGlkYXRpb24oIGFycmF5JiAkb3V0LCAkY2xhc3NuYW1lLCAkZmllbGQgPSBudWxsLCBjYWxsYWJsZSAkY2IgPSBudWxsICkKICAgIHsKCSRndWlkID0gXHh0X3V0aWxzOjpjcmVhdGVfZ3VpZCgpOwogICAgICAgIGlmKCAhc3RhcnRzd2l0aCggJGNsYXNzbmFtZSwgJ1xcJyApICkgJGNsYXNzbmFtZSA9IF9fTkFNRVNQQUNFX18uJ1xcJy4kY2xhc3NuYW1lOwogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X3ZhbGlkYXRpb25zKSAmJiBpbl9hcnJheSggJGNsYXNzbmFtZSwgJHRoaXMtPl92YWxpZGF0aW9ucyApICkgcmV0dXJuOwogICAgICAgIGlmKCAhaXNfY2FsbGFibGUoJGNiKSApIHsKICAgICAgICAgICAgJG9iaiA9IG5ldyAkY2xhc3NuYW1lOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRvYmogPSBjYWxsX3VzZXJfZnVuYyggJGNiLCAkY2xhc3NuYW1lLCAkZmllbGQgKTsKICAgICAgICB9CiAgICAgICAgJG91dFskZ3VpZF0gPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbnMoKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkdGhpcy0+YWRkX3VuaXF1ZV92YWxpZGF0aW9uKCAkb3V0LCAnRmllbGRWYWxpZGF0b3JzXEh0bWxEZXRlY3Rpb25WYWxpZGF0aW9uJyApOwogICAgICAgICR0aGlzLT5hZGRfdW5pcXVlX3ZhbGlkYXRpb24oICRvdXQsICdGaWVsZFZhbGlkYXRvcnNcU2VsZWN0RmllbGRWYWxpZGF0aW9uJyApOwogICAgICAgIGlmKCAkdGhpcy0+X2Zvcm0tPmhhc19jYXB0Y2hhICYmICR0aGlzLT5fY2FwdGNoYV9wcm92aWRlciApIHsKICAgICAgICAgICAgJHRoaXMtPmFkZF91bmlxdWVfdmFsaWRhdGlvbiggJG91dCwgJ0ZpZWxkVmFsaWRhdG9yc1xDYXB0Y2hhVmFsaWRhdG9yUHJveHknLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiggJGNsYXNzbmFtZSwgJGZpZWxkICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyAkY2xhc3NuYW1lKCAkdGhpcy0+X2NhcHRjaGFfcHJvdmlkZXIgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdGhpcy0+aGFzX3JlcXVpcmVkX2ZpZWxkcygpICkgJHRoaXMtPmFkZF91bmlxdWVfdmFsaWRhdGlvbiggJG91dCwgJ0ZpZWxkVmFsaWRhdG9yc1xSZXF1aXJlZEZpZWxkVmFsaWRhdGlvbicgKTsKICAgICAgICBpZiggJHRoaXMtPmhhc19maWxlX2ZpZWxkcygpICkgJHRoaXMtPmFkZF91bmlxdWVfdmFsaWRhdGlvbiggJG91dCwgJ0ZpZWxkVmFsaWRhdG9yc1xGaWxlVmFsaWRhdG9yJyApOwogICAgICAgIGlmKCAkdGhpcy0+aGFzX2RhdGVfZmllbGRzKCkgKSAkdGhpcy0+YWRkX3VuaXF1ZV92YWxpZGF0aW9uKCAkb3V0LCAnRmllbGRWYWxpZGF0b3JzXERhdGVQcmltaXRpdmVWYWxpZGF0aW9uJyApOwogICAgICAgIGlmKCAkdGhpcy0+aGFzX2VtYWlsX2ZpZWxkcygpICkgJHRoaXMtPmFkZF91bmlxdWVfdmFsaWRhdGlvbiggJG91dCwgJ0ZpZWxkVmFsaWRhdG9yc1xFbWFpbFByaW1pdGl2ZVZhbGlkYXRpb24nICk7CgogICAgICAgIC8vIG5vdyBwcm9jZXNzIGVhY2ggZmllbGQgaW5kaXZpZHVhbGx5LgogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+bm92YWxpZGF0ZSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJGZpZWxkLT5wYXR0ZXJuICkgewogICAgICAgICAgICAgICAgLy8gaWYgZmllbGQgaGFzIHBhdHRlcm4sIGFkZCByZWdleCB2YWxpZGF0aW9uIGZvciB0aGlzIGZpbGVkLgogICAgICAgICAgICAgICAgJHRoaXMtPmFkZF91bmlxdWVfdmFsaWRhdGlvbiggJG91dCwgJ0ZpZWxkVmFsaWRhdG9yc1xSZWdleEZpZWxkVmFsaWRhdGlvbicsICRmaWVsZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCAkY2xhc3NuYW1lLCAkZmllbGQgKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqID0gbmV3ICRjbGFzc25hbWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5zZXRfZmllbGROYW1lKCAkZmllbGQtPm5hbWUgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5zZXRfcGF0dGVybignfCcuJGZpZWxkLT5wYXR0ZXJuLid8Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gaWYgaXQncyBhIHNpbXBsZSBwcmltaXRpdmUuLi4gIHdlIGNhbiB2YWxpZGF0ZSBpdCdzIHZhbHVlICBpLmU6ICB0byBlbnN1cmUgYSBudW1lcmljIG51bWJlciBpcyBpbnB1dCBpbiB0aGUgZmllbGQKICAgICAgICAgICAgLy8gYW5kIHRoZW4gb3B0aW9uYWxseSB2YWxpZGF0ZSBtaW4gYW5kIG1heCB2YWx1ZXMuCiAgICAgICAgICAgICRwcmltaXRpdmUgPSAkZmllbGQtPnByaW1pdGl2ZTsKICAgICAgICAgICAgaWYoICRwcmltaXRpdmUgPT0gJ3N0cmluZycgKSB7CiAgICAgICAgICAgICAgICBpZiggJGZpZWxkLT5taW4gfHwgJGZpZWxkLT5tYXggKSB7CiAgICAgICAgICAgICAgICAgICAgJHByaW1pdGl2ZSA9ICdmbG9hdCc7CiAgICAgICAgICAgICAgICAgICAgaWYoICgkZmllbGQtPm1pbiAmJiB0cmltKChpbnQpICRmaWVsZC0+bWluKSA9PSB0cmltKCRmaWVsZC0+bWluKSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgKCRmaWVsZC0+bWF4ICYmIHRyaW0oKGludCkgJGZpZWxkLT5tYXgpID09IHRyaW0oJGZpZWxkLT5tYXgpKSApICRwcmltaXRpdmUgPSAnaW50JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2goICRwcmltaXRpdmUgKSB7CiAgICAgICAgICAgIGNhc2UgJ2ludCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+YWRkX3VuaXF1ZV92YWxpZGF0aW9uKCAkb3V0LCAnRmllbGRWYWxpZGF0b3JzXEludGVnZXJGaWVsZFZhbGlkYXRpb24nLCAkZmllbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiggJGNsYXNzbmFtZSwgJGZpZWxkICl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iaiA9IG5ldyAkY2xhc3NuYW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+c2V0X2ZpZWxkTmFtZSggJGZpZWxkLT5uYW1lICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+bWluICkgJG9iai0+c2V0X21pblZhbHVlKCAoaW50KSAkZmllbGQtPm1pbiApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkZmllbGQtPm1heCApICRvYmotPnNldF9tYXhWYWx1ZSggKGludCkgJGZpZWxkLT5tYXggKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG9iajsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2Zsb2F0JzoKICAgICAgICAgICAgICAgICR0aGlzLT5hZGRfdW5pcXVlX3ZhbGlkYXRpb24oICRvdXQsICdGaWVsZFZhbGlkYXRvcnNcRmxvYXRGaWVsZFZhbGlkYXRpb24nLCAkZmllbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiggJGNsYXNzbmFtZSwgJGZpZWxkICl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iaiA9IG5ldyBGaWVsZFZhbGlkYXRvcnNcRmxvYXRGaWVsZFZhbGlkYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5zZXRfZmllbGROYW1lKCAkZmllbGQtPm5hbWUgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJGZpZWxkLT5taW4gKSAkb2JqLT5zZXRfbWluVmFsdWUoIChmbG9hdCkgJGZpZWxkLT5taW4gKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJGZpZWxkLT5tYXggKSAkb2JqLT5zZXRfbWF4VmFsdWUoIChmbG9hdCkgJGZpZWxkLT5tYXggKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG9iajsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYXNfZW1haWxfZmllbGRzKCkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2ZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPnR5cGUgPT0gJ2VtYWlsJyB8fCAkZmllbGQtPnByaW1pdGl2ZSA9PSAnZW1haWwnICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYXNfZGF0ZV9maWVsZHMoKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSAnZGF0ZScgfHwgJGZpZWxkLT5wcmltaXRpdmUgPT0gJ2RhdGUnICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYXNfZmlsZV9maWVsZHMoKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSAnZmlsZScgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhc19yZXF1aXJlZF9maWVsZHMoKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+cmVxdWlyZWQgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Dispositions/abstract.Disposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwoKYWJzdHJhY3QgY2xhc3MgRGlzcG9zaXRpb24gaW1wbGVtZW50cyBJRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX2d1aWQ7CiAgICBwcml2YXRlICRfYWN0aXZlID0gdHJ1ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgICAgICR0aGlzLT5fZ3VpZCA9IFx4dF91dGlsczo6Y3JlYXRlX2d1aWQoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2d1aWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2d1aWQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX2FjdGl2ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYWN0aXZlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWN0aXZlKCAkZmxhZyA9IGZhbHNlICkKICAgIHsKICAgICAgICAkdGhpcy0+X2FjdGl2ZSA9IChib29sKSAkZmxhZzsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/abstract.DispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwoKYWJzdHJhY3QgY2xhc3MgRGlzcG9zaXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX2hlbHBlcjsKCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRpbiApOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQgKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2hlbHBlcl9wcm94eSggXFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25FZGl0b3JIZWxwZXJQcm94eSAkcHJveHkgKQogICAgewogICAgICAgICR0aGlzLT5faGVscGVyID0gJHByb3h5OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfaGVscGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9oZWxwZXI7CiAgICB9Cn0gLy8gZW5kIG9mIGludGVyZmFjZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.ComputedPageDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBDb21wdXRlZFBhZ2VEaXNwb3NpdGlvbiBleHRlbmRzIERpc3Bvc2l0aW9uCnsKICAgIHByaXZhdGUgJF90cGw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCAka2V5ICkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndHBsJzoKICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RwbDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF90ZW1wbGF0ZSggJHN0ciApCiAgICB7CiAgICAgICAgJHRoaXMtPl90cGwgPSB0cmltKCRzdHIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X3RwbCApIHJldHVybjsKICAgICAgICAkb3V0ID0gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT50cGwsICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAkb3V0ID0gdHJpbSgkb3V0KTsKICAgICAgICBpZiggISRvdXQgKSByZXR1cm47CgogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9TbWFydEZvcm1zKTsgLy8gbm90IERJLi4uIGJ1dCB3aG8gY2FyZXMKICAgICAgICAkcGFnZWlkID0gJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCggJG91dCApOwogICAgICAgIGlmKCAhJHBhZ2VpZCApIHJldHVybjsKCiAgICAgICAgcmVkaXJlY3RfdG9fYWxpYXMoJHBhZ2VpZCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.ComputedPageDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIENvbXB1dGVkUGFnZURpc3Bvc2l0aW9uRWRpdG9yIGV4dGVuZHMgRGlzcG9zaXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX2Rpc3A7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcU21hcnRGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IENvbXB1dGVkUGFnZURpc3Bvc2l0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICd0cGwnOgogICAgICAgIGNhc2UgJ3RlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+dGVtcGxhdGU7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X3RlbXBsYXRlKCAkc3RyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9Db21wdXRlZFBhZ2VEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJywgJycsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X3RlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndGVtcGxhdGUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgLy8gdG9kbzogJHRoaXMtPmZpbmlzaF9lZGl0aW5nX3Nlc3Npb24oKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfY29tcHV0ZWRwYWdlX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMtPl9kaXNwKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZGlzcF9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtICkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownEmailDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBEcm9wZG93bkVtYWlsRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGQ7CiAgICBwcml2YXRlICRfZGZsdF9hZGRyZXNzOwogICAgcHJpdmF0ZSAkX3ZhbHVlX21hcDsKICAgIHByaXZhdGUgJF9zdWJqZWN0dGVtcGxhdGU7CiAgICBwcml2YXRlICRfYm9keXRlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZCc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmllbGQpOwogICAgICAgIGNhc2UgJ2RmbHRfYWRkcmVzcyc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGZsdF9hZGRyZXNzKTsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIGNhc2UgJ3ZhbHVlX21hcCc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fdmFsdWVfbWFwKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGQgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RmbHRfYWRkcmVzcyggJGRhdGEgKQogICAgewogICAgICAgICRkYXRhID0gdHJpbSgkZGF0YSk7CiAgICAgICAgaWYoICRkYXRhICYmICFpc19lbWFpbCggJGRhdGEgKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRkYXRhIGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiKTsKICAgICAgICAkdGhpcy0+X2RmbHRfYWRkcmVzcyA9ICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsdWVfbWFwKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl92YWx1ZV9tYXAgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fc3ViamVjdHRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2JvZHl0ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmcm9tX3RleHQoJG1hcF90ZXh0KQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkbGluZXMgPSBleHBsb2RlKCJcbiIsJG1hcF90ZXh0KTsKICAgICAgICBmb3JlYWNoKCAkbGluZXMgYXMgJGxpbmUgKSB7CiAgICAgICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgICAgIGlmKCAhJGxpbmUgKSBjb250aW51ZTsKICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgifCIsJGxpbmUsMik7CiAgICAgICAgICAgIGlmKCBjb3VudCgkcGFydHMpICE9IDIgKSBjb250aW51ZTsKICAgICAgICAgICAgJGtleSA9IHRyaW0oJHBhcnRzWzBdKTsKICAgICAgICAgICAgJHZhbCA9IHRyaW0oJHBhcnRzWzFdKTsKICAgICAgICAgICAgJG91dFska2V5XSA9ICR2YWw7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhKQogICAgewogICAgICAgICRhZGRyZXNzZXMgPSBbXTsKICAgICAgICAkdmFsID0gJGRhdGEtPnskdGhpcy0+ZmllbGR9OwogICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICR0aGlzLT5maWVsZCApOwoKICAgICAgICAvLyAkdmFsIGNvdWxkIGJlIGFuIGFycmF5CiAgICAgICAgaWYoICFpc19hcnJheSgkdmFsKSApICR2YWwgPSBbICR2YWwgXTsKICAgICAgICAkbWFwID0gJHRoaXMtPmZyb21fdGV4dCgkdGhpcy0+dmFsdWVfbWFwKTsKICAgICAgICBpZiggY291bnQoJG1hcCkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cygkb25lX3ZhbCwkbWFwKSApICRhZGRyZXNzZXNbXSA9ICRtYXBbJG9uZV92YWxdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAhY291bnQoJGFkZHJlc3NlcykgJiYgJHRoaXMtPmRmbHRfYWRkcmVzcyApICRhZGRyZXNzZXNbXSA9ICR0aGlzLT5kZmx0X2FkZHJlc3M7CiAgICAgICAgaWYoICFjb3VudCgkYWRkcmVzc2VzKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignTm8gdmFsaWQgZW1haWwgYWRkcmVzc2VzIHRvIHNlbmQgdG8gZm9yIERyb3BEb3duRW1haWxEaXNwb3N0aW9uIG9uICcuJGZpZWxkLT5uYW1lKTsKCiAgICAgICAgJG1haWxlciA9IFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfbWFpbGVyKCAkZm9ybSApOwogICAgICAgIGZvcmVhY2goICRhZGRyZXNzZXMgYXMgJGVtYWlsICkgewogICAgICAgICAgICAkbWFpbGVyLT5BZGRBZGRyZXNzKCAkZW1haWwgKTsKICAgICAgICB9CiAgICAgICAgaWYoICRkYXRhLT5yZXBseXRvX2FkZHJlc3MgJiYgaXNfZW1haWwoJGRhdGEtPnJlcGx5dG9fYWRkcmVzcykgKSB7CiAgICAgICAgICAgICRtYWlsZXItPmNsZWFyUmVwbHlUb3MoKTsKICAgICAgICAgICAgJG1haWxlci0+QWRkUmVwbHlUbyggJGRhdGEtPnJlcGx5dG9fYWRkcmVzcyApOwogICAgICAgIH0KCiAgICAgICAgJHN1YmplY3QgPSB0cmltKCB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPnN1YmplY3R0ZW1wbGF0ZSwgJGZvcm0sICRkYXRhKSApOwogICAgICAgICRib2R5ID0gdHJpbSggdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5ib2R5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSkgKTsKICAgICAgICBpZiggISRzdWJqZWN0IHx8ICEkYm9keSApIHJldHVybjsKICAgICAgICAkbWFpbGVyLT5TZXRTdWJqZWN0KCAkc3ViamVjdCApOwogICAgICAgICRtYWlsZXItPlNldEJvZHkoICRib2R5ICk7CiAgICAgICAgJG1haWxlci0+U2VuZCgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownEmailDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIERyb3Bkb3duRW1haWxEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBEcm9wZG93bkVtYWlsRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkJzoKICAgICAgICBjYXNlICdkZmx0X2FkZHJlc3MnOgogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgY2FzZSAndmFsdWVfbWFwJzoKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIGNhc2UgJ3ZhbHVlX21hcF9hcnJheSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZnJvbV90ZXh0KCR0aGlzLT52YWx1ZV9tYXApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZnJvbV90ZXh0KCRtYXBfdGV4dCkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgJGxpbmVzID0gZXhwbG9kZSgiXG4iLCRtYXBfdGV4dCk7CiAgICAgICAgZm9yZWFjaCggJGxpbmVzIGFzICRsaW5lICkgewogICAgICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgICAgICAgICBpZiggISRsaW5lICkgY29udGludWU7CiAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoInwiLCRsaW5lLDIpOwogICAgICAgICAgICBpZiggY291bnQoJHBhcnRzKSAhPSAyICkgY29udGludWU7CiAgICAgICAgICAgICRrZXkgPSB0cmltKCRwYXJ0c1swXSk7CiAgICAgICAgICAgICR2YWwgPSB0cmltKCRwYXJ0c1sxXSk7CiAgICAgICAgICAgICRvdXRbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9maWVsZCggJGZpZWxkbmFtZSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGZsdF9hZGRyZXNzKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfZGZsdF9hZGRyZXNzKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsdWVfbWFwKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfdmFsdWVfbWFwKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICR0bXAgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5sYWJlbDsKICAgICAgICAgICAgaWYoICEkbGFiZWwgKSAkbGFiZWwgPSAkbmFtZTsKCiAgICAgICAgICAgICR2YWxzdHIgPSBudWxsOwogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICR2YWxzdHIgPSAiXCJ7aWYgIWVtcHR5KFwkJG5hbWUpfXtpbXBsb2RlKCcrJyxcJCRuYW1lKX17L2lmfVwiIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR2YWxzdHIgPSAnInskJy4kbmFtZS4nfGRlZmF1bHQ6XCdcJ30iJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdG1wIC49ICI8cD48c3Ryb25nPnskbGFiZWx9PC9zdHJvbmc+IDxzcGFuPnskdmFsc3RyfTwvc3Bhbj48L3A+XG4iOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X3N1YmplY3R0ZW1wbGF0ZSggJ05ldyBmb3JtIHN1Ym1pc3Npb24nKTsKICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSggIntzdHJpcH17JHRtcH17L3N0cmlwfSIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9Ecm9wZG93bkVtYWlsRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9Ecm9wZG93bkVtYWlsRGlzcG9zaXRpb24nLCR0aGlzLT5maWVsZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9zZXR0aW5nc19mb3JtX3VybChhcnJheSAkcGFyYW1zID0gbnVsbCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPmNyZWF0ZV91cmwoICdtMV8nLCAnYWRtaW5fZWRpdF9kZGZpbGVfZGlzcG9zaXRpb24nLCAnJywgJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwb3NpdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Rpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkZGlzcCApCiAgICB7CiAgICAgICAgaWYoICEgJGRpc3AgaW5zdGFuY2VvZiBEcm9wZG93bkVtYWlsRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcRHJvcGRvd25FbWFpbERpc3Bvc2l0aW9uJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybShhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoICEkZGlzcF9ndWlkICkgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKCiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdyZXNldF90cGwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZmllbGQoeHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGQnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZGZsdF9hZGRyZXNzKHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RmbHRfYWRkcmVzcycpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF92YWx1ZV9tYXAoeHRfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCd2YWx1ZV9tYXAnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc3ViamVjdHRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2JvZHl0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9kZGVtYWlsX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignc2VsZWN0X2ZpZWxkcycsJGZvcm0tPmdldF9tdWx0aW9wdGlvbl9maWVsZHMoVFJVRSkpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBEcm9wZG93bkZpbGVEaXNwb3NpdGlvbiBleHRlbmRzIERpc3Bvc2l0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZDsKICAgIHByaXZhdGUgJF9mb2xkZXI7CiAgICBwcml2YXRlICRfaGVhZGVydGVtcGxhdGU7CiAgICBwcml2YXRlICRfZW50cnl0ZW1wbGF0ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZmllbGQnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZpZWxkKTsKICAgICAgICBjYXNlICdmb2xkZXInOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZvbGRlcik7CiAgICAgICAgY2FzZSAnaGVhZGVydGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2hlYWRlcnRlbXBsYXRlKTsKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9lbnRyeXRlbXBsYXRlKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGQgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZvbGRlciggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZm9sZGVyID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5faGVhZGVydGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2VudHJ5dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgIC8vIGdldCB0aGUgdmFsdWUuCiAgICAgICAgJHZhbCA9ICRkYXRhLT57JHRoaXMtPmZpZWxkfTsKCiAgICAgICAgLy8gYnVpbGQgYSBmaWxlbmFtZSBmb3IgdGhpcyB2YWx1ZS4KICAgICAgICAvLy8gZ2V0IHRoZSBmaWVsZAogICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICR0aGlzLT5maWVsZCApOwogICAgICAgICRociA9ICR2YWw7CiAgICAgICAgJG9wdCA9ICRmaWVsZC0+Z2V0X29wdGlvbl9ieV92YWx1ZSggJHZhbCApOwogICAgICAgIGlmKCAkb3B0ICkgJGhyID0gJG9wdC0+aHI7CgogICAgICAgIC8vIHRvZG86IGNsZWFudXAgJGhyIHRvIHNtZXRoaW5nIHJlYXNvbmFibGUgKG5vIGZ1bmt5IGNoYXJzKQoKICAgICAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZmllbGQuJ18nLiRoci4nLnR4dCc7CiAgICAgICAgJGZpbGVuYW1lID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiR0aGlzLT5mb2xkZXIuJy8nLiRmaWxlbmFtZTsKCiAgICAgICAgLy8gaWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUgcm9vdCBwYXRoLCAgQU5EIGRvZXNuJ3QgZXhpc3QKICAgICAgICAvLyBjcmVhdGUgaXQuCiAgICAgICAgJGRpciA9IGRpcm5hbWUoJGZpbGVuYW1lKTsKICAgICAgICBpZiggIWlzX2RpciggJGRpciApICYmIHV0aWxzOjppc19jbXNtc19yZWxhdGl2ZSggJGRpciApICkgewogICAgICAgICAgICAkcmVzID0gbWtkaXIoICRkaXIsIDA3NzcsIFRSVUUgKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdTWVNURU0gRVJST1I6ICBDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBhdCAnLiRkaXIpOwogICAgICAgIH0KICAgICAgICBpZiggIXV0aWxzOjpjYW5fd3JpdGVfZmlsZSggJGZpbGVuYW1lKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU1lTVEVNIEVSUk9SOiBDYW5ub3Qgd3JpdGUgdG8gJy4kZmlsZW5hbWUpOwogICAgICAgIC8vIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0CiAgICAgICAgLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIsIGFuZCB3cml0ZSBpdC4KCiAgICAgICAgaWYoICFpc19maWxlKCRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmhlYWRlcnRlbXBsYXRlLCAkZm9ybSwgJGRhdGEgKTsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcHJvY2VzcyB0ZW1wbGF0ZSBmb3IgdGhlIGVudHJ5LCAgYW5kIHdyaXRlLgogICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmVudHJ5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkb3V0cHV0LEZJTEVfQVBQRU5EKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownFileDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIERyb3Bkb3duRmlsZURpc3Bvc2l0aW9uRWRpdG9yIGV4dGVuZHMgRGlzcG9zaXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX2Rpc3A7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcU21hcnRGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IERyb3Bkb3duRmlsZURpc3Bvc2l0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZCc6CiAgICAgICAgY2FzZSAnZm9sZGVyJzoKICAgICAgICBjYXNlICdoZWFkZXJ0ZW1wbGF0ZSc6CiAgICAgICAgY2FzZSAnZW50cnl0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPiRrZXk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGQoICRmaWVsZG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2ZpZWxkKCAkZmllbGRuYW1lICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9mb2xkZXIoICRmb2xkZXIgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2ZvbGRlciggJGZvbGRlciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVhZGVydGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9lbnRyeXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICRsYWJlbHMgPSBbXTsKCiAgICAgICAgJHRtcCA9IFtdOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5sYWJlbDsKICAgICAgICAgICAgaWYoICEkbGFiZWwgKSAkbGFiZWwgPSAkbmFtZTsKICAgICAgICAgICAgJGxhYmVsc1tdID0gJGxhYmVsOwoKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAkdG1wW10gPSAiXCJ7aWYgIWVtcHR5KFwkJG5hbWUpfXtpbXBsb2RlKCcrJyxcJCRuYW1lKX17L2lmfVwiXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRtcFtdID0gJyJ7JCcuJG5hbWUuJ3xkZWZhdWx0OlwnXCd9IicuIlxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2hlYWRlcnRlbXBsYXRlKCAnIycuaW1wbG9kZSgnLCcsJGxhYmVscykuJ3skRU9MfScgKTsKICAgICAgICAkdGhpcy0+c2V0X2VudHJ5dGVtcGxhdGUoICJ7c3RyaXB9XG4iLmltcGxvZGUoJywnLCR0bXApLiJ7XCRFT0x9ey9zdHJpcH0iICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRHJvcGRvd25GaWxlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9Ecm9wZG93bkZpbGVEaXNwb3NpdGlvbicsJHRoaXMtPmZvbGRlciwkdGhpcy0+ZmllbGQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJywgJycsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgRHJvcGRvd25GaWxlRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcRHJvcGRvd25GaWxlRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggISRkaXNwX2d1aWQgKSAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwoKICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZCh4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZCcpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9mb2xkZXIoeHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZm9sZGVyJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2hlYWRlcnRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaGVhZGVydGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZW50cnl0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2VudHJ5dGVtcGxhdGUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgLy8gdG9kbzogJHRoaXMtPmZpbmlzaF9lZGl0aW5nX3Nlc3Npb24oKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignc2VsZWN0X2ZpZWxkcycsJGZvcm0tPmdldF9tdWx0aW9wdGlvbl9maWVsZHMoKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGRpc3BfZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXFNtYXJ0Rm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSApKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminGroupDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbEFkbWluR3JvdXBEaXNwb3NpdGlvbiBleHRlbmRzIERpc3Bvc2l0aW9uCnsKICAgIHByaXZhdGUgJF9ncm91cDsKICAgIHByaXZhdGUgJF9zdWJqZWN0dGVtcGxhdGU7CiAgICBwcml2YXRlICRfYm9keXRlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdncm91cCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwOwogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fc3ViamVjdHRlbXBsYXRlKTsKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2JvZHl0ZW1wbGF0ZSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZ3JvdXAoICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fZ3JvdXAgPSAoaW50KSAkZ2lkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3JvdXAoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9zdWJqZWN0dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fYm9keXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEpCiAgICB7CiAgICAgICAgJGxpc3QgPSBudWxsOwogICAgICAgIGlmKCAkdGhpcy0+X2dyb3VwID4gMCApICRsaXN0ID0gXHh0X3VzZXJvcHM6OmV4cGFuZF9ncm91cF9lbWFpbHMoICR0aGlzLT5fZ3JvdXAgKTsKICAgICAgICBpZiggISRsaXN0ICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdObyB2YWxpZCBlbWFpbCBhZGRyZXNzZXMgdG8gc2VuZCB0byBmb3IgRW1haWxBZG1pbkdyb3VwRGlzcG9zaXRpb24nKTsKCiAgICAgICAgJG1haWxlciA9IFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfbWFpbGVyKCAkZm9ybSApOwogICAgICAgICRhZGRlZCA9IGZhbHNlOwogICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRhZGRyICkgewogICAgICAgICAgICAkYWRkciA9IHRyaW0oJGFkZHIpOwogICAgICAgICAgICBpZiggISRhZGRyICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAhaXNfZW1haWwoICRhZGRyKSApIGNvbnRpbnVlOwogICAgICAgICAgICAkbWFpbGVyLT5BZGRBZGRyZXNzKCAkYWRkciApOwogICAgICAgICAgICAkYWRkZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiggISRhZGRlZCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignTm8gdmFsaWQgZW1haWwgYWRkcmVzc2VzIHRvIHNlbmQgdG8gZm9yIEVtYWlsQWRtaW5Hcm91cERpc3Bvc2l0aW9uJyk7CgogICAgICAgICRzdWJqZWN0ID0gdHJpbSh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPnN1YmplY3R0ZW1wbGF0ZSwgJGZvcm0sICRkYXRhKSk7CiAgICAgICAgJGJvZHkgPSB0cmltKHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+Ym9keXRlbXBsYXRlLCAkZm9ybSwgJGRhdGEpKTsKICAgICAgICBpZiggISRzdWJqZWN0IHx8ICEkYm9keSApIHJldHVybjsKCiAgICAgICAgJG1haWxlci0+U2V0U3ViamVjdCggJHN1YmplY3QgKTsKICAgICAgICAkbWFpbGVyLT5TZXRCb2R5KCAkYm9keSApOwogICAgICAgIGlmKCAkZGF0YS0+cmVwbHl0b19hZGRyZXNzICYmIGlzX2VtYWlsKCRkYXRhLT5yZXBseXRvX2FkZHJlc3MpICkgewogICAgICAgICAgICAkbWFpbGVyLT5jbGVhclJlcGx5VG9zKCk7CiAgICAgICAgICAgICRtYWlsZXItPkFkZFJlcGx5VG8oICRkYXRhLT5yZXBseXRvX2FkZHJlc3MgKTsKICAgICAgICB9CiAgICAgICAgJG1haWxlci0+U2VuZCgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminGroupDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIEVtYWlsQWRtaW5Hcm91cERpc3Bvc2l0aW9uRWRpdG9yIGV4dGVuZHMgRGlzcG9zaXRpb25FZGl0b3IKewoKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbEFkbWluR3JvdXBEaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZ3JvdXAnOgogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+JGtleTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ncm91cCggJGdpZCApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2dyb3VwKCAkZ2lkICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdWJqZWN0dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVzZXRfdGVtcGxhdGVzKCBGb3JtICRmb3JtICkKICAgIHsKICAgICAgICAkdGhpcy0+c2V0X3N1YmplY3R0ZW1wbGF0ZSgnU3VibWlzc2lvbiBmcm9tIHskcmVzcG9uc2UtPmZvcm1fbmFtZX0gZm9ybScpOwogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5sYWJlbDsKICAgICAgICAgICAgaWYoICEkbGFiZWwgKSAkbGFiZWwgPSAkbmFtZTsKCiAgICAgICAgICAgIGlmKCAkZmllbGQtPm11bHRpcGxlICkgewogICAgICAgICAgICAgICAgJG91dCAuPSAie2lmICFlbXB0eShcJCRuYW1lKX08cD48c3Ryb25nPiRsYWJlbDo8L3N0cm9uZz4ge2ltcGxvZGUoJyArICcsXCQkbmFtZSl9PC9wPnsvaWZ9XG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJG91dCAuPSAie2lmICFlbXB0eShcJCRuYW1lKX08cD48c3Ryb25nPiRsYWJlbDo8L3N0cm9uZz4ge1wkJG5hbWV9PC9wPnsvaWZ9XG4iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICR0aGlzLT5zZXRfYm9keXRlbXBsYXRlKCJ7c3RyaXB9XG4iLiRvdXQuInsvc3RyaXB9Iik7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRW1haWxBZG1pbkdyb3VwRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgICRsaXN0ID0gXHh0X3VzZXJvcHM6OmdldF9ncm91cGxpc3QoRkFMU0UpOwogICAgICAgICRnaWQgPSAkdGhpcy0+Z3JvdXA7CiAgICAgICAgJGduYW1lID0gJ3Vua25vd24nOwogICAgICAgIGlmKCBpc3NldCggJGxpc3RbJGdpZF0pICkgJGduYW1lID0gJGxpc3RbJGdpZF07CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCdkaXNwbGF5X0VtYWlsQWRtaW5Hcm91cERpc3Bvc2l0aW9uJywgJGduYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISRkaXNwIGluc3RhbmNlb2YgRW1haWxBZG1pbkdyb3VwZGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcRW1haWxBZG1pbkdyb3VwRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoICEkZGlzcF9ndWlkICkgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKCiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoICRwYXJhbXMsICdjYW5jZWwnICkgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdyZXNldF90cGwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZ3JvdXAoeHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZ3JvdXAnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc3ViamVjdHRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2JvZHl0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZW1haWxhZG1pbmdyb3VwX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3JvdXBsaXN0JyxceHRfdXNlcm9wczo6Z2V0X2dyb3VwbGlzdChGQUxTRSkpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQoKfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminGroupWithReplyToDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbEFkbWluR3JvdXBXaXRoUmVwbHlUb0Rpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX2dyb3VwOwogICAgcHJpdmF0ZSAkX2ZpZWxkbmFtZTsKICAgIHByaXZhdGUgJF9zdWJqZWN0dGVtcGxhdGU7CiAgICBwcml2YXRlICRfYm9keXRlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdncm91cCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwOwogICAgICAgIGNhc2UgJ2ZpZWxkbmFtZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkbmFtZTsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2dyb3VwKCAkZ2lkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2dyb3VwID0gKGludCkgJGdpZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2dyb3VwKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9ncm91cDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkbmFtZSggJGVtYWlsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkbmFtZSA9IHRyaW0oJGVtYWlsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRuYW1lOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9zdWJqZWN0dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fYm9keXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlKQogICAgewogICAgICAgICRsaXN0ID0gbnVsbDsKICAgICAgICBpZiggJHRoaXMtPl9ncm91cCA+IDAgKSAkbGlzdCA9IFx4dF91c2Vyb3BzOjpleHBhbmRfZ3JvdXBfZW1haWxzKCAkdGhpcy0+X2dyb3VwICk7CiAgICAgICAgaWYoICEkbGlzdCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignTm8gdmFsaWQgZW1haWwgYWRkcmVzc2VzIHRvIHNlbmQgdG8gZm9yIEVtYWlsQWRtaW5Hcm91cERpc3Bvc2l0aW9uJyk7CgogICAgICAgIGlmKCAhJHRoaXMtPmZpZWxkbmFtZSApIHJldHVybjsKICAgICAgICAkcmVwbHl0byA9ICRyZXNwb25zZS0+Z2V0X2ZpZWxkX3ZhbHVlKCR0aGlzLT5maWVsZG5hbWUpOwogICAgICAgIGlmKCAhJHJlcGx5dG8gKSAkcmVwbHl0byA9ICRyZXNwb25zZS0+cmVwbHl0b19hZGRyZXNzOwogICAgICAgIGlmKCAhJHJlcGx5dG8gfHwgIWlzX2VtYWlsKCRyZXBseXRvKSApIHJldHVybjsKCiAgICAgICAgJG1haWxlciA9IFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfbWFpbGVyKCAkZm9ybSApOwogICAgICAgICRtYWlsZXItPkNsZWFyUmVwbHlUb3MoKTsKICAgICAgICAkbWFpbGVyLT5BZGRSZXBseVRvKCRyZXBseXRvKTsKICAgICAgICAkYWRkZWQgPSBmYWxzZTsKICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkYWRkciApIHsKICAgICAgICAgICAgJGFkZHIgPSB0cmltKCRhZGRyKTsKICAgICAgICAgICAgaWYoICEkYWRkciApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWlzX2VtYWlsKCAkYWRkcikgKSBjb250aW51ZTsKICAgICAgICAgICAgJG1haWxlci0+QWRkQWRkcmVzcyggJGFkZHIgKTsKICAgICAgICAgICAgJGFkZGVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYoICEkYWRkZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ05vIHZhbGlkIGVtYWlsIGFkZHJlc3NlcyB0byBzZW5kIHRvIGZvciBFbWFpbEFkbWluR3JvdXBEaXNwb3NpdGlvbicpOwogICAgICAgICRzdWJqZWN0ID0gdHJpbSh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPnN1YmplY3R0ZW1wbGF0ZSwgJGZvcm0sICRyZXNwb25zZSkpOwogICAgICAgICRib2R5ID0gdHJpbSh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmJvZHl0ZW1wbGF0ZSwgJGZvcm0sICRyZXNwb25zZSkpOwogICAgICAgIGlmKCAhJHN1YmplY3QgfHwgISRib2R5ICkgcmV0dXJuOwogICAgICAgICRtYWlsZXItPlNldFN1YmplY3QoICRzdWJqZWN0ICk7CiAgICAgICAgJG1haWxlci0+U2V0Qm9keSggJGJvZHkgKTsKICAgICAgICAkbWFpbGVyLT5TZW5kKCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminGroupWithReplyToDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIEVtYWlsQWRtaW5Hcm91cFdpdGhSZXBseVRvRGlzcG9zaXRpb25FZGl0b3IgZXh0ZW5kcyBEaXNwb3NpdGlvbkVkaXRvcgp7CgogICAgcHJpdmF0ZSAkX2Rpc3A7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcU21hcnRGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IEVtYWlsQWRtaW5Hcm91cFdpdGhSZXBseVRvRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2dyb3VwJzoKICAgICAgICBjYXNlICdmaWVsZG5hbWUnOgogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+JGtleTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ncm91cCggJGdpZCApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2dyb3VwKCAkZ2lkICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdWJqZWN0dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRuYW1lKCAkc3RyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfZmllbGRuYW1lKCAkc3RyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKCdTdWJtaXNzaW9uIGZyb20geyRyZXNwb25zZS0+Zm9ybV9uYW1lfSBmb3JtJyk7CiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGZvcm0tPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICAkbGFiZWwgPSAkZmllbGQtPmxhYmVsOwogICAgICAgICAgICBpZiggISRsYWJlbCApICRsYWJlbCA9ICRuYW1lOwoKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAkb3V0IC49ICJ7aWYgIWVtcHR5KFwkJG5hbWUpfTxwPjxzdHJvbmc+JGxhYmVsOjwvc3Ryb25nPiB7aW1wbG9kZSgnICsgJyxcJCRuYW1lKX08L3A+ey9pZn1cbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0IC49ICJ7aWYgIWVtcHR5KFwkJG5hbWUpfTxwPjxzdHJvbmc+JGxhYmVsOjwvc3Ryb25nPiB7XCQkbmFtZX08L3A+ey9pZn1cbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRoaXMtPnNldF9ib2R5dGVtcGxhdGUoIntzdHJpcH1cbiIuJG91dC4iey9zdHJpcH0iKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgICRmaWVsZG5hbWUgPSAkdGhpcy0+X2Rpc3AtPmdldF9maWVsZG5hbWUoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRW1haWxBZG1pbkdyb3VwV2l0aFJlcGx5VG9EaXNwb3NpdGlvbicsJGZpZWxkbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5c3RyaW5nKCkKICAgIHsKICAgICAgICAkbGlzdCA9IFx4dF91c2Vyb3BzOjpnZXRfZ3JvdXBsaXN0KEZBTFNFKTsKICAgICAgICAkZ2lkID0gJHRoaXMtPmdyb3VwOwogICAgICAgICRnbmFtZSA9ICd1bmtub3duJzsKICAgICAgICBpZiggaXNzZXQoICRsaXN0WyRnaWRdKSApICRnbmFtZSA9ICRsaXN0WyRnaWRdOwogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9FbWFpbEFkbWluR3JvdXBXaXRoUmVwbHlUb0Rpc3Bvc2l0aW9uJywgJGduYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISRkaXNwIGluc3RhbmNlb2YgRW1haWxBZG1pbkdyb3VwV2l0aFJlcGx5VG9EaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnU21hcnRGb3Jtc1xcRGlzcG9zaXRpb25zXFxFbWFpbEFkbWluR3JvdXBXaXRoUmVwbHlUb0Rpc3Bvc2l0aW9uJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybShhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCAkcGFyYW1zLCAnY2FuY2VsJyApICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywncmVzZXRfdHBsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkbmFtZSh4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZG5hbWUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZ3JvdXAoeHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZ3JvdXAnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc3ViamVjdHRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2JvZHl0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZW1haWxhZG1pbmdyb3VwcmVwbHl0b19kaXNwb3NpdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkX2xpc3QnLCRmb3JtLT5saXN0X2ZpZWxkc19ieV90eXBlX29yX3ByaW1pdGl2ZSgnZW1haWwnLCdlbWFpbCcpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZGlzcF9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2dyb3VwbGlzdCcsXHh0X3VzZXJvcHM6OmdldF9ncm91cGxpc3QoRkFMU0UpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtICkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KCn0gLy8gY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminWithReplyTo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbEFkbWluV2l0aFJlcGx5VG8gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfYWRkcmVzc2VzOwogICAgcHJpdmF0ZSAkX2ZpZWxkbmFtZTsKICAgIHByaXZhdGUgJF9zdWJqZWN0dGVtcGxhdGU7CiAgICBwcml2YXRlICRfYm9keXRlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdhZGRyZXNzZXMnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9hZGRyZXNzZXM7CiAgICAgICAgY2FzZSAnZmllbGRuYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRuYW1lOwogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fc3ViamVjdHRlbXBsYXRlKTsKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2JvZHl0ZW1wbGF0ZSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWRkcmVzc2VzKCAkZW1haWwgKQogICAgewogICAgICAgICR0aGlzLT5fYWRkcmVzc2VzID0gdHJpbSgkZW1haWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYWRkcmVzc2VzKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fYWRkcmVzc2VzICkgcmV0dXJuOwogICAgICAgICR0bXAgPSBwcmVnX3NwbGl0KCIvKCx8XG4pLyIsICR0aGlzLT5fYWRkcmVzc2VzKTsKICAgICAgICAkdG1wMiA9IFtdOwogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgIGlmKCAkb25lICYmICFpbl9hcnJheSgkb25lLCR0bXAyKSkgJHRtcDJbXSA9ICRvbmU7CiAgICAgICAgfQogICAgICAgIGlmKCBjb3VudCgkdG1wMikgKSByZXR1cm4gJHRtcDI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZG5hbWUoICRlbWFpbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZG5hbWUgPSB0cmltKCRlbWFpbCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZG5hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fc3ViamVjdHRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2JvZHl0ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSApCiAgICB7CiAgICAgICAgJHRtcF9hZGRyZXNzZXMgPSAkdGhpcy0+Z2V0X2FkZHJlc3NlcygpOwoKICAgICAgICBpZiggISR0aGlzLT5maWVsZG5hbWUgKSByZXR1cm47CiAgICAgICAgJHJlcGx5dG8gPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgkdGhpcy0+ZmllbGRuYW1lKTsKICAgICAgICBpZiggISRyZXBseXRvICkgJHJlcGx5dG8gPSAkcmVzcG9uc2UtPnJlcGx5dG9fYWRkcmVzczsKICAgICAgICBpZiggISRyZXBseXRvIHx8ICFpc19lbWFpbCgkcmVwbHl0bykgKSAkcmVwbHl0byA9IG51bGw7CgogICAgICAgICRtYWlsZXIgPSBcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X21haWxlciggJGZvcm0gKTsKICAgICAgICAvLyBvbmx5IG9uZSByZXBseSB0bywgIGFuZCB0aGF0J3MgdGhlIHJlcGx5IHRvIGFkZHJlc3MgdGhhdCB0aGUgdXNlciBwdXQgaW4uCiAgICAgICAgaWYoICRyZXBseXRvICkgJG1haWxlci0+Q2xlYXJSZXBseVRvcygpOwogICAgICAgICRhZGRlZCA9IGZhbHNlOwogICAgICAgIGZvcmVhY2goICR0bXBfYWRkcmVzc2VzIGFzICRhZGRyICkgewogICAgICAgICAgICAkYWRkciA9IHRyaW0oJGFkZHIpOwogICAgICAgICAgICBpZiggISRhZGRyICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAhaXNfZW1haWwoICRhZGRyKSApIGNvbnRpbnVlOwogICAgICAgICAgICAkbWFpbGVyLT5BZGRBZGRyZXNzKCAkYWRkciApOwogICAgICAgICAgICAkYWRkZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiggISRhZGRlZCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignTm8gdmFsaWQgZW1haWwgYWRkcmVzc2VzIHRvIHNlbmQgdG8gZm9yIEVtYWlsQWRtaW5XaXRoUmVwbHlUbycpOwoKICAgICAgICBpZiggJHJlcGx5dG8gKSAkbWFpbGVyLT5BZGRSZXBseVRvKCRyZXBseXRvKTsKICAgICAgICAkc3ViamVjdCA9IHRyaW0oIHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+c3ViamVjdHRlbXBsYXRlLCAkZm9ybSwgJHJlc3BvbnNlKSApOwogICAgICAgICRib2R5ID0gdHJpbSggdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5ib2R5dGVtcGxhdGUsICRmb3JtLCAkcmVzcG9uc2UpICk7CiAgICAgICAgaWYoICEkc3ViamVjdCB8fCAhJGJvZHkgKSByZXR1cm47CiAgICAgICAgJG1haWxlci0+U2V0U3ViamVjdCggJHN1YmplY3QgKTsKICAgICAgICAkbWFpbGVyLT5TZXRCb2R5KCAkYm9keSApOwogICAgICAgICRtYWlsZXItPlNlbmQoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminWithReplyToEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfcGFyYW07CnVzZSB4dF91dGlsczsKCmNsYXNzIEVtYWlsQWRtaW5XaXRoUmVwbHlUb0VkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbEFkbWluV2l0aFJlcGx5VG87CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2FkZHJlc3Nlcyc6CiAgICAgICAgY2FzZSAnZmllbGRuYW1lJzoKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgIGNhc2UgJ2JvZHl0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPiRrZXk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWRkcmVzc2VzKCAkc3RyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfYWRkcmVzc2VzKCAkc3RyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZG5hbWUoICRzdHIgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9maWVsZG5hbWUoICRzdHIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9zdWJqZWN0dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKCdTdWJtaXNzaW9uIGZyb20geyRyZXNwb25zZS0+Zm9ybV9uYW1lfSBmb3JtJyk7CiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGZvcm0tPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICAkbGFiZWwgPSAkZmllbGQtPmxhYmVsOwogICAgICAgICAgICBpZiggISRsYWJlbCApICRsYWJlbCA9ICRuYW1lOwoKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAkb3V0IC49ICJ7aWYgIWVtcHR5KFwkJG5hbWUpfTxwPjxzdHJvbmc+JGxhYmVsOjwvc3Ryb25nPiB7aW1wbG9kZSgnICsgJyxcJCRuYW1lKX08L3A+ey9pZn1cbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0IC49ICJ7aWYgIWVtcHR5KFwkJG5hbWUpfTxwPjxzdHJvbmc+JGxhYmVsOjwvc3Ryb25nPiB7XCQkbmFtZX08L3A+ey9pZn1cbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRoaXMtPnNldF9ib2R5dGVtcGxhdGUoIntzdHJpcH1cbiIuJG91dC4iey9zdHJpcH0iKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9FbWFpbEFkbWluV2l0aFJlcGx5VG8nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgICRmaWVsZG5hbWUgPSAkdGhpcy0+X2Rpc3AtPmdldF9maWVsZG5hbWUoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfRW1haWxBZG1pbldpdGhSZXBseVRvJywkZmllbGRuYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIEVtYWlsQWRtaW5XaXRoUmVwbHlUbyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnU21hcnRGb3Jtc1xcRGlzcG9zaXRpb25zXFxFbWFpbEFkbWluV2l0aFJlcGx5VG8nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoICEkZGlzcF9ndWlkICkgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKCiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoICRwYXJhbXMsICdjYW5jZWwnICkgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdyZXNldF90cGwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZmllbGRuYW1lKHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkbmFtZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9hZGRyZXNzZXMoeHRfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdhZGRyZXNzZXMnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc3ViamVjdHRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2JvZHl0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZW1haWxhZG1pbndpdGhyZXBseXRvX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRfbGlzdCcsJGZvcm0tPmxpc3RfZmllbGRzX2J5X3R5cGVfb3JfcHJpbWl0aXZlKCdlbWFpbCcsJ2VtYWlsJykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailFixedAddressesDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfYWRkcmVzc2VzOwogICAgcHJpdmF0ZSAkX3N1YmplY3R0ZW1wbGF0ZTsKICAgIHByaXZhdGUgJF9ib2R5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2FkZHJlc3Nlcyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2FkZHJlc3NlczsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FkZHJlc3NlcyggJGVtYWlsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2FkZHJlc3NlcyA9IHRyaW0oJGVtYWlsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkZHJlc3NlcygpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2FkZHJlc3NlcyApIHJldHVybjsKICAgICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJHRoaXMtPl9hZGRyZXNzZXMpOwogICAgICAgICR0bXAyID0gW107CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgaWYoICRvbmUgJiYgIWluX2FycmF5KCRvbmUsJHRtcDIpKSAkdG1wMltdID0gJG9uZTsKICAgICAgICB9CiAgICAgICAgaWYoIGNvdW50KCR0bXAyKSApIHJldHVybiAkdG1wMjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fc3ViamVjdHRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2JvZHl0ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhKQogICAgewogICAgICAgICR0bXBfYWRkcmVzc2VzID0gZXhwbG9kZSgnLCcsJHRoaXMtPmFkZHJlc3Nlcyk7CgogICAgICAgICRtYWlsZXIgPSBcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X21haWxlciggJGZvcm0gKTsKICAgICAgICAkYWRkZWQgPSBmYWxzZTsKICAgICAgICBmb3JlYWNoKCAkdG1wX2FkZHJlc3NlcyBhcyAkYWRkciApIHsKICAgICAgICAgICAgJGFkZHIgPSB0cmltKCRhZGRyKTsKICAgICAgICAgICAgaWYoICEkYWRkciApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWlzX2VtYWlsKCAkYWRkcikgKSBjb250aW51ZTsKICAgICAgICAgICAgJG1haWxlci0+QWRkQWRkcmVzcyggJGFkZHIgKTsKICAgICAgICAgICAgJGFkZGVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYoICEkYWRkZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ05vIHZhbGlkIGVtYWlsIGFkZHJlc3NlcyB0byBzZW5kIHRvIGZvciBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24nKTsKICAgICAgICBpZiggJGRhdGEtPnJlcGx5dG9fYWRkcmVzcyAmJiBpc19lbWFpbCgkZGF0YS0+cmVwbHl0b19hZGRyZXNzKSApIHsKICAgICAgICAgICAgJG1haWxlci0+Y2xlYXJSZXBseVRvcygpOwogICAgICAgICAgICAkbWFpbGVyLT5BZGRSZXBseVRvKCAkZGF0YS0+cmVwbHl0b19hZGRyZXNzICk7CiAgICAgICAgfQogICAgICAgICRzdWJqZWN0ID0gdHJpbSggdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5zdWJqZWN0dGVtcGxhdGUsICRmb3JtLCAkZGF0YSkgKTsKICAgICAgICAkYm9keSA9IHRyaW0oIHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+Ym9keXRlbXBsYXRlLCAkZm9ybSwgJGRhdGEpICk7CiAgICAgICAgaWYoICEkc3ViamVjdCB8fCAhJGJvZHkgKSByZXR1cm47CiAgICAgICAgJG1haWxlci0+U2V0U3ViamVjdCggJHN1YmplY3QgKTsKICAgICAgICAkbWFpbGVyLT5TZXRCb2R5KCAkYm9keSApOwogICAgICAgICRtYWlsZXItPlNlbmQoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailFixedAddressesDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfcGFyYW07CnVzZSB4dF91dGlsczsKCmNsYXNzIEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2FkZHJlc3Nlcyc6CiAgICAgICAgY2FzZSAnc3ViamVjdHRlbXBsYXRlJzoKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FkZHJlc3NlcyggJHN0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2FkZHJlc3NlcyggJHN0ciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9ib2R5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoJ1N1Ym1pc3Npb24gZnJvbSB7JHJlc3BvbnNlLT5mb3JtX25hbWV9IGZvcm0nKTsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgICRsYWJlbCA9ICRmaWVsZC0+bGFiZWw7CiAgICAgICAgICAgIGlmKCAhJGxhYmVsICkgJGxhYmVsID0gJG5hbWU7CgogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtpbXBsb2RlKCcgKyAnLFwkJG5hbWUpfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtcJCRuYW1lfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSgie3N0cmlwfVxuIi4kb3V0LiJ7L3N0cmlwfSIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgJGFkZHJlc3NlcyA9ICR0aGlzLT5fZGlzcC0+Z2V0X2FkZHJlc3NlcygpOwogICAgICAgIGlmKCBjb3VudCgkYWRkcmVzc2VzKSA9PSAxICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uMScsJGFkZHJlc3Nlc1swXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCdkaXNwbGF5X0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbjInLGNvdW50KCRhZGRyZXNzZXMpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwb3NpdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Rpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkZGlzcCApCiAgICB7CiAgICAgICAgaWYoICEgJGRpc3AgaW5zdGFuY2VvZiBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybShhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCAkcGFyYW1zLCAnY2FuY2VsJyApICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywncmVzZXRfdHBsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2FkZHJlc3Nlcyh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2FkZHJlc3NlcycpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoeHRfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdzdWJqZWN0dGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfYm9keXRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnYm9keXRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9lbWFpbGZpeGVkYWRkcmVzc2VzX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailUserAddressDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGRuYW1lOwogICAgcHJpdmF0ZSAkX3N1YmplY3R0ZW1wbGF0ZTsKICAgIHByaXZhdGUgJF9ib2R5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkbmFtZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkbmFtZTsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkbmFtZSggJGVtYWlsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkbmFtZSA9IHRyaW0oJGVtYWlsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRuYW1lOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9zdWJqZWN0dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fYm9keXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5maWVsZG5hbWUgKSByZXR1cm47CiAgICAgICAgJGFkZHIgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgkdGhpcy0+ZmllbGRuYW1lKTsKICAgICAgICBpZiggISRhZGRyIHx8ICFpc19lbWFpbCgkYWRkcikgKSByZXR1cm47CgogICAgICAgICRzdWJqZWN0ID0gdHJpbSh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPnN1YmplY3R0ZW1wbGF0ZSwgJGZvcm0sICRyZXNwb25zZSkpOwogICAgICAgIGlmKCAhJHN1YmplY3QgKSByZXR1cm47CiAgICAgICAgJGJvZHkgPSB0cmltKHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+Ym9keXRlbXBsYXRlLCAkZm9ybSwgJHJlc3BvbnNlICkpOwogICAgICAgIGlmKCAhJGJvZHkgKSByZXR1cm47CgogICAgICAgICRtYWlsZXIgPSBcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X21haWxlciggJGZvcm0gKTsKICAgICAgICAkbWFpbGVyLT5BZGRBZGRyZXNzKCAkYWRkciApOwogICAgICAgICRtYWlsZXItPlNldFN1YmplY3QoICRzdWJqZWN0ICk7CiAgICAgICAgJG1haWxlci0+U2V0Qm9keSggJGJvZHkgKTsKICAgICAgICAkbWFpbGVyLT5TZW5kKCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailUserAddressDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIEVtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkbmFtZSc6CiAgICAgICAgY2FzZSAnc3ViamVjdHRlbXBsYXRlJzoKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkbmFtZSggJHN0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2ZpZWxkbmFtZSggJHN0ciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9ib2R5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoJ1N1Ym1pc3Npb24gZnJvbSB7JHJlc3BvbnNlLT5mb3JtX25hbWV9IGZvcm0nKTsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgICRsYWJlbCA9ICRmaWVsZC0+bGFiZWw7CiAgICAgICAgICAgIGlmKCAhJGxhYmVsICkgJGxhYmVsID0gJG5hbWU7CgogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtpbXBsb2RlKCcgKyAnLFwkJG5hbWUpfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtcJCRuYW1lfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSgie3N0cmlwfVxuIi4kb3V0LiJ7L3N0cmlwfSIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0VtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgJGZpZWxkbmFtZSA9ICR0aGlzLT5fZGlzcC0+Z2V0X2ZpZWxkbmFtZSgpOwogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9FbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb24nLCRmaWVsZG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgRW1haWxVc2VyQWRkcmVzc0Rpc3Bvc2l0aW9uICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignb2JqZWN0IG9mIHR5cGUgJy5nZXRfY2xhc3MoJGRpc3ApLicgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gJGRpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpCiAgICB7CiAgICAgICAgcmV0dXJuICdTbWFydEZvcm1zXFxEaXNwb3NpdGlvbnNcXEVtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggISRkaXNwX2d1aWQgKSAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwoKICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cyggJHBhcmFtcywgJ2NhbmNlbCcgKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZG5hbWUoeHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X3N1YmplY3R0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3N1YmplY3R0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9ib2R5dGVtcGxhdGUoeHRfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdib2R5dGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfZGlzcG9zaXRpb24oKSwgJGRpc3BfZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2VtYWlsdXNlcmFkZHJlc3NfZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZF9saXN0JywkZm9ybS0+bGlzdF9maWVsZHNfYnlfdHlwZV9vcl9wcmltaXRpdmUoJ2VtYWlsJywnZW1haWwnKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGRpc3BfZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXFNtYXJ0Rm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSApKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.FlatFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBGbGF0RmlsZURpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX2ZpbGVuYW1lOwogICAgcHJpdmF0ZSAkX2hlYWRlcnRlbXBsYXRlOwogICAgcHJpdmF0ZSAkX2VudHJ5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpbGVuYW1lJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9maWxlbmFtZSk7CiAgICAgICAgY2FzZSAnaGVhZGVydGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2hlYWRlcnRlbXBsYXRlKTsKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9lbnRyeXRlbXBsYXRlKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWxlbmFtZSggJGZpbGVuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpbGVuYW1lID0gdHJpbSgkZmlsZW5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVhZGVydGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2hlYWRlcnRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9lbnRyeXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9lbnRyeXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAkdmFsID0gJGRhdGEtPnskdGhpcy0+ZmllbGR9OwoKICAgICAgICAkZmlsZW5hbWUgPSAkY29uZmlnWydyb290X3BhdGgnXS4nLycuJHRoaXMtPmZpbGVuYW1lOwogICAgICAgICRkaXIgPSBkaXJuYW1lKCRmaWxlbmFtZSk7CiAgICAgICAgaWYoICFpc19kaXIoICRkaXIgKSAmJiB1dGlsczo6aXNfY21zbXNfcmVsYXRpdmUoICRkaXIgKSApIHsKICAgICAgICAgICAgJHJlcyA9IG1rZGlyKCAkZGlyLCAwNzc3LCBUUlVFICk7CiAgICAgICAgICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU1lTVEVNIEVSUk9SOiAgQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgYXQgJy4kZGlyKTsKICAgICAgICB9CiAgICAgICAgaWYoICF1dGlsczo6Y2FuX3dyaXRlX2ZpbGUoICRmaWxlbmFtZSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1NZU1RFTSBFUlJPUjogQ2Fubm90IHdyaXRlIHRvICcuJGZpbGVuYW1lKTsKCiAgICAgICAgaWYoICFpc19maWxlKCRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmhlYWRlcnRlbXBsYXRlLCAkZm9ybSwgJGRhdGEgKTsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcHJvY2VzcyB0ZW1wbGF0ZSBmb3IgdGhlIGVudHJ5LCAgYW5kIHdyaXRlLgogICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmVudHJ5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkb3V0cHV0LEZJTEVfQVBQRU5EKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.FlatFileDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIEZsYXRGaWxlRGlzcG9zaXRpb25FZGl0b3IgZXh0ZW5kcyBEaXNwb3NpdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfZGlzcDsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSBuZXcgRmxhdEZpbGVEaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZmlsZW5hbWUnOgogICAgICAgIGNhc2UgJ2hlYWRlcnRlbXBsYXRlJzoKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+JGtleTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWxlbmFtZSggJGZpbGVuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9maWxlbmFtZSggJGZpbGVuYW1lICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2hlYWRlcnRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZW50cnl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJG5hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgJHRoaXMtPnNldF9oZWFkZXJ0ZW1wbGF0ZSggJyMnLmltcGxvZGUoJywnLCRuYW1lcykuJ3skRU9MfScgKTsKCiAgICAgICAgJHRtcCA9IFtdOwogICAgICAgIGZvcmVhY2goICRuYW1lcyBhcyAkbmFtZSApIHsKICAgICAgICAgICAgaWYoICRmb3JtLT5pc19tdWx0aXZhbHVlX2ZpZWxkKCAkbmFtZSApICkgewogICAgICAgICAgICAgICAgJHRtcFtdID0gIlwie2lmICFlbXB0eShcJCRuYW1lKX17aW1wbG9kZSgnKycsXCQkbmFtZSl9ey9pZn1cIlxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0bXBbXSA9ICcieyQnLiRuYW1lLid8ZGVmYXVsdDpcJ1wnfSInLiJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRoaXMtPnNldF9lbnRyeXRlbXBsYXRlKCAie3N0cmlwfVxuIi5pbXBsb2RlKCcsJywkdG1wKS4ie1wkRU9MfXsvc3RyaXB9IiApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0ZsYXRGaWxlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9GbGF0RmlsZURpc3Bvc2l0aW9uJywkdGhpcy0+ZmlsZW5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZmxhdGZpbGVkaXNwb3NpdGlvbicsICcnLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIEZsYXRGaWxlRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcRmxhdEZpbGVEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywncmVzZXRfdHBsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpbGVuYW1lKHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpbGVuYW1lJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2hlYWRlcnRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaGVhZGVydGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZW50cnl0ZW1wbGF0ZSh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2VudHJ5dGVtcGxhdGUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2ZsYXRmaWxlZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGRpc3BfZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXFNtYXJ0Rm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSApKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.GUIDFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBHVUlERmlsZURpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG1vdmVfZmlsZSggJGd1aWQsICR0bXBfbmFtZSwgJGRlc3QgKQogICAgewogICAgICAgICRzcmNkaXIgPSBUTVBfQ0FDSEVfTE9DQVRJT04uIi8kZ3VpZCI7CiAgICAgICAgJGZuID0gIiRzcmNkaXIvJHRtcF9uYW1lIjsKICAgICAgICBpZiggaXNfZmlsZSggJGZuICkgKSB7CiAgICAgICAgICAgICRjb25maWcgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgICAgIHJlbmFtZSggJGZuLCAkZGVzdCApOwogICAgICAgICAgICBAY2htb2QoJGRlc3RpbmF0aW9uLG9jdGRlYygkY29uZmlnWydkZWZhdWx0X3VwbG9hZF9wZXJtaXNzaW9uJ10pKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCAkdG1wX25hbWUsICRkZXN0ICk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwKQogICAgewogICAgICAgICRkZXN0ZGlyID0gJHRoaXMtPmdldF9kZXN0ZGlyKCAkcmVzcCApOwogICAgICAgIHV0aWxzOjpta2RpcnIoICRkZXN0ZGlyICk7CgogICAgICAgIC8vIG5vdywgZm9yIGVhY2ggZmlsZSBmaWVsZC4uIHdlIGdldCB0aGUgdmFsdWVzCiAgICAgICAgJG1vdmVkX2ZpbGVzID0gZmFsc2U7CiAgICAgICAgZm9yZWFjaCggJGZvcm0tPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAhICRmaWVsZCBpbnN0YW5jZW9mIFxTbWFydEZvcm1zXEZvcm1GaWxlRmllbGQgKSBjb250aW51ZTsKICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgIGlmKCBlbmRzd2l0aCggJG5hbWUsICdbXScpICkgJG5hbWUgPSBzdWJzdHIoJG5hbWUsMCwtMik7CiAgICAgICAgICAgICR2YWx1ZSA9ICRyZXNwLT4kbmFtZTsKICAgICAgICAgICAgaWYoICEkdmFsdWUgKSBjb250aW51ZTsKCiAgICAgICAgICAgICRmaWxlbmFtZXMgPSBbXTsKICAgICAgICAgICAgJGZpbGVzID0gJHJlc3AtPmxpc3RfZmlsZXMoJG5hbWUpOwogICAgICAgICAgICBpZiggIWNvdW50KCRmaWxlcykgKSBjb250aW51ZTsKICAgICAgICAgICAgZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkgewogICAgICAgICAgICAgICAgaWYoICEkZmlsZVsnbmFtZSddIHx8ICEkZmlsZVsndG1wX25hbWUnXSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJGRlc3RuYW1lID0gJGRlc3RkaXIuJy8nLiRmaWxlWyduYW1lJ107CiAgICAgICAgICAgICAgICAkdGhpcy0+bW92ZV9maWxlKCAkcmVzcC0+Z3VpZCwgJGZpbGVbJ3RtcF9uYW1lJ10sICRkZXN0bmFtZSApOwogICAgICAgICAgICAgICAgJGZpbGVuYW1lc1tdID0gJGRlc3RuYW1lOwogICAgICAgICAgICAgICAgJG1vdmVkX2ZpbGVzID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICRyZXNwLT5tb2RpZnlfdmFsdWUoICRuYW1lLCAkZmlsZW5hbWVzICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVzcC0+bW9kaWZ5X3ZhbHVlKCAkbmFtZSwgJGZpbGVuYW1lc1swXSApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBwdXQgYSBtZXRhIGRhdGEgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeSBzbyB0aGF0IHdlIGNhbiB0cmFjayB0aGlzIGxhdGVyLgogICAgICAgIGlmKCAkbW92ZWRfZmlsZXMgKSAkdGhpcy0+Y3JlYXRlX21ldGFmaWxlKCAkZm9ybSwgJHJlc3AgKTsKCiAgICAgICAgJGRpciA9IFRNUF9DQUNIRV9MT0NBVElPTi4nLycuJHJlc3AtPmd1aWQ7CiAgICAgICAgaWYoIGlzX2RpciggJGRpciApICkgcmVjdXJzaXZlX2RlbGV0ZSggJGRpciApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZGVzdGRpciggXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlICRyZXNwICkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRwYXJlbnRfZGlyID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9fU21hcnRGb3Jtcyc7CiAgICAgICAgJGRlc3RkaXIgPSAkcGFyZW50X2Rpci4nLycuJHJlc3AtPmd1aWQ7CiAgICAgICAgcmV0dXJuICRkZXN0ZGlyOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVfbWV0YWZpbGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlICRyZXNwKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkb3V0Wydmb3JtX25hbWUnXSA9ICRmb3JtLT5uYW1lOwogICAgICAgICRvdXRbJ3Jlc3BvbnNlaWQnXSA9ICRyZXNwLT5nZXRfcmVxdWVzdGlkKCk7CiAgICAgICAgJG91dFsnZGF0ZSddID0gJHJlc3AtPmdldF90aW1lKCk7CiAgICAgICAgJGZpbGVuYW1lID0gJHRoaXMtPmdldF9kZXN0ZGlyKCAkcmVzcCApLicvLm1ldGEuanNvbic7CiAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLGpzb25fZW5jb2RlKCRvdXQpKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.HookDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBIb29rRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UgKQogICAgewogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnU21hcnRGb3Jtczo6ZGlzcG9zZScsICRyZXNwb25zZSApOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.RedirectURLDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBSZWRpcmVjdFVSTERpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX3RwbDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndHBsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHBsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RwbCggJHRwbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl90cGwgPSB0cmltKCR0cGwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT50cGwgKSByZXR1cm47CiAgICAgICAgJG91dCA9IHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCR0aGlzLT50cGwsICRmb3JtLCAkcmVzcG9uc2UpOwogICAgICAgICRvdXQgPSB0cmltKCRvdXQpOwogICAgICAgIGlmKCAhJG91dCApIHJldHVybjsKCiAgICAgICAgJHJlc3BvbnNlLT5zZXRfZmluYWxfdXJsKCAkdXJsICk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.RedirectURLDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfcGFyYW07CnVzZSB4dF91dGlsczsKCmNsYXNzIFJlZGlyZWN0VVJMRGlzcG9zaXRpb25FZGl0b3IgZXh0ZW5kcyBEaXNwb3NpdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfZGlzcDsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSBuZXcgUmVkaXJlY3RVUkxEaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndHBsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+dHBsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RwbCggJHRwbCApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3RwbCggJHRwbCApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1JlZGlyZWN0VVJMRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9SZWRpcmVjdFVSTERpc3Bvc2l0aW9uJywkdGhpcy0+dXJsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFJlZGlyZWN0VVJMRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcUmVkaXJlY3RVUkxEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cyggJHBhcmFtcywgJ2NhbmNlbCcgKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X3RwbCh4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3RwbCcpKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfcmVkaXJlY3R1cmxfZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGRpc3BfZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXFNtYXJ0Rm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSApKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.SessionDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBTZXNzaW9uRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcCkKICAgIHsKICAgICAgICAvLyB5ZXAsIGl0J3MgdGhhdCB0cml2aWFsLgogICAgICAgICRfU0VTU0lPTlskZm9ybS0+bmFtZV0gPSAkcmVzcDsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.SessionDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIFNlc3Npb25EaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcU21hcnRGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IFNlc3Npb25EaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9TZXNzaW9uRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9TZXNzaW9uRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFNlc3Npb25EaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl9kaXNwKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAvLyBkbyBub3RoaW5nLCBubyBpbnRlcmZhY2UuCiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzLg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.StopDisposingDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBTdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfdHBsOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3RwbCc6CiAgICAgICAgY2FzZSAndGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cGw7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fdHBsID0gdHJpbSgkc3RyKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPnRwbCApIHJldHVybjsKICAgICAgICAkb3V0ID0gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT50cGwsICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAkb3V0ID0gdHJpbSgkb3V0KTsKICAgICAgICBpZiggISRvdXQgKSByZXR1cm47CgogICAgICAgIHRocm93IG5ldyBcU21hcnRGb3Jtc1xTdG9wRGlzcG9zaXRpb25UcmlnZ2VyKCdzdG9wcGVkJyk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.StopDisposingDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfcGFyYW07CnVzZSB4dF91dGlsczsKCmNsYXNzIFN0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBTdG9wRGlzcG9zaW5nRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3RwbCc6CiAgICAgICAgY2FzZSAndGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT50ZW1wbGF0ZTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF90ZW1wbGF0ZSggJHN0ciApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfdGVtcGxhdGUoICRzdHIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9TdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9TdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NldHRpbmdzX2Zvcm1fdXJsKGFycmF5ICRwYXJhbXMgPSBudWxsKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+Y3JlYXRlX3VybCggJ20xXycsICdhZG1pbl9lZGl0X2RkZmlsZV9kaXNwb3NpdGlvbicsICcnLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFN0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnU21hcnRGb3Jtc1xcRGlzcG9zaXRpb25zXFxTdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X3RlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndGVtcGxhdGUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgLy8gdG9kbzogJHRoaXMtPmZpbmlzaF9lZGl0aW5nX3Nlc3Npb24oKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQpOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X3N0b3BkaXNwb3NpbmdfZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcy0+X2Rpc3ApOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.UniqueFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBVbmlxdWVGaWxlRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfZm9sZGVyOwogICAgcHJpdmF0ZSAkX2ZpbGVuYW1lX3RlbXBsYXRlOwogICAgcHJpdmF0ZSAkX2hlYWRlcnRlbXBsYXRlOwogICAgcHJpdmF0ZSAkX2VudHJ5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZvbGRlcic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZm9sZGVyKTsKICAgICAgICBjYXNlICdmaWxlbmFtZV90ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmlsZW5hbWVfdGVtcGxhdGUpOwogICAgICAgIGNhc2UgJ2hlYWRlcnRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9oZWFkZXJ0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnZW50cnl0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZW50cnl0ZW1wbGF0ZSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZm9sZGVyKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9mb2xkZXIgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpbGVuYW1lX3RlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWxlbmFtZV90ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVhZGVydGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2hlYWRlcnRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9lbnRyeXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9lbnRyeXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAvLyBnZXQgdGhlIHZhbHVlLgogICAgICAgICR2YWwgPSAkZGF0YS0+Z2V0X3JlcXVlc3RpZCgpOwogICAgICAgICRmaWxlbmFtZSA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kdGhpcy0+Zm9sZGVyLicvJy4kdmFsOwogICAgICAgIGlmKCAkdGhpcy0+X2ZpbGVuYW1lX3RlbXBsYXRlICkgewogICAgICAgICAgICAkdG1wID0gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5fZmlsZW5hbWVfdGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgICAgICBpZiggJHRtcCApICRmaWxlbmFtZSA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kdGhpcy0+X2ZvbGRlci4nLycuYmFzZW5hbWUoJHRtcCk7CiAgICAgICAgfQoKICAgICAgICAvLyBpZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZSByb290IHBhdGgsICBBTkQgZG9lc24ndCBleGlzdAogICAgICAgIC8vIGNyZWF0ZSBpdC4KICAgICAgICAkZGlyID0gZGlybmFtZSgkZmlsZW5hbWUpOwogICAgICAgIGlmKCAhaXNfZGlyKCAkZGlyICkgJiYgdXRpbHM6OmlzX2Ntc21zX3JlbGF0aXZlKCAkZGlyICkgKSB7CiAgICAgICAgICAgICRyZXMgPSBta2RpciggJGRpciwgMDc3NywgVFJVRSApOwogICAgICAgICAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1NZU1RFTSBFUlJPUjogIENvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IGF0ICcuJGRpcik7CiAgICAgICAgfQogICAgICAgIGlmKCAhdXRpbHM6OmNhbl93cml0ZV9maWxlKCAkZmlsZW5hbWUgKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU1lTVEVNIEVSUk9SOiBDYW5ub3Qgd3JpdGUgdG8gJy4kZmlsZW5hbWUpOwoKICAgICAgICAvLyBpZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdAogICAgICAgIC8vIHByb2Nlc3MgdGhlIHRlbXBsYXRlIGZvciB0aGUgaGVhZGVyLCBhbmQgd3JpdGUgaXQuCiAgICAgICAgaWYoICFpc19maWxlKCAkZmlsZW5hbWUgKSAmJiAkdGhpcy0+aGVhZGVydGVtcGxhdGUgKSB7CiAgICAgICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmhlYWRlcnRlbXBsYXRlLCAkZm9ybSwgJGRhdGEgKTsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcHJvY2VzcyB0ZW1wbGF0ZSBmb3IgdGhlIGVudHJ5LCAgYW5kIHdyaXRlLgogICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmVudHJ5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkb3V0cHV0LEZJTEVfQVBQRU5EKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.UniqueFileDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgU21hcnRGb3Jtc1xGb3JtOwp1c2UgeHRfdXRpbHM7CnVzZSB4dF9wYXJhbTsKCmNsYXNzIFVuaXF1ZUZpbGVEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBVbmlxdWVGaWxlRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZvbGRlcic6CiAgICAgICAgY2FzZSAnZmlsZW5hbWVfdGVtcGxhdGUnOgogICAgICAgIGNhc2UgJ2hlYWRlcnRlbXBsYXRlJzoKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+JGtleTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9mb2xkZXIoICRmb2xkZXIgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2ZvbGRlciggJGZvbGRlciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmlsZW5hbWVfdGVtcGxhdGUoICRmaWxlbmFtZV90ZW1wbGF0ZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfZmlsZW5hbWVfdGVtcGxhdGUoICRmaWxlbmFtZV90ZW1wbGF0ZSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVhZGVydGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9lbnRyeXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICRsYWJlbHMgPSBbXTsKCiAgICAgICAgJHRtcCA9IFtdOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5sYWJlbDsKICAgICAgICAgICAgaWYoICEkbGFiZWwgKSAkbGFiZWwgPSAkbmFtZTsKICAgICAgICAgICAgJGxhYmVsc1tdID0gJGxhYmVsOwoKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAkdG1wW10gPSAiXCJ7aWYgIWVtcHR5KFwkJG5hbWUpfXtpbXBsb2RlKCcrJyxcJCRuYW1lKX17L2lmfVwiXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRtcFtdID0gJyJ7JCcuJG5hbWUuJ3xkZWZhdWx0OlwnXCd9IicuIlxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2hlYWRlcnRlbXBsYXRlKCAnIycuaW1wbG9kZSgnLCcsJGxhYmVscykuJ3skRU9MfScgKTsKICAgICAgICAkdGhpcy0+c2V0X2VudHJ5dGVtcGxhdGUoICJ7c3RyaXB9XG4iLmltcGxvZGUoJywnLCR0bXApLiJ7XCRFT0x9ey9zdHJpcH0iICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfVW5pcXVlRmlsZURpc3Bvc2l0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5c3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfVW5pcXVlRmlsZURpc3Bvc2l0aW9uJywkdGhpcy0+Zm9sZGVyKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NldHRpbmdzX2Zvcm1fdXJsKGFycmF5ICRwYXJhbXMgPSBudWxsKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+Y3JlYXRlX3VybCggJ20xXycsICdhZG1pbl9lZGl0X2RkZmlsZV9kaXNwb3NpdGlvbicsICcnLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFVuaXF1ZUZpbGVEaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnU21hcnRGb3Jtc1xcRGlzcG9zaXRpb25zXFxVbmlxdWVGaWxlRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggISRkaXNwX2d1aWQgKSAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwoKICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggeHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9mb2xkZXIoeHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZm9sZGVyJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpbGVuYW1lX3RlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZmlsZW5hbWVfdGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfaGVhZGVydGVtcGxhdGUoeHRfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdoZWFkZXJ0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9lbnRyeXRlbXBsYXRlKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZW50cnl0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAvLyB0b2RvOiAkdGhpcy0+ZmluaXNoX2VkaXRpbmdfc2Vzc2lvbigpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF91bmlxdWVmaWxlX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.WebHookDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBXZWJIb29rRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfdXJsOwogICAgcHJpdmF0ZSAkX2V4dHJhcG9zdHZhcnM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3VybCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3VybDsKICAgICAgICBjYXNlICdleHRyYXBvc3R2YXJzJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9leHRyYXBvc3R2YXJzKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF91cmwoICR1cmwgKQogICAgewogICAgICAgICR0aGlzLT5fdXJsID0gdHJpbSgkdXJsKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZnJvbV90ZXh0KCRtYXBfdGV4dCkKICAgIHsKICAgICAgICBpZiggISRtYXBfdGV4dCApIHJldHVybjsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgJGxpbmVzID0gZXhwbG9kZSgiXG4iLCRtYXBfdGV4dCk7CiAgICAgICAgZm9yZWFjaCggJGxpbmVzIGFzICRsaW5lICkgewogICAgICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgICAgICAgICBpZiggISRsaW5lICkgY29udGludWU7CiAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoIj0iLCRsaW5lLDIpOwogICAgICAgICAgICBpZiggY291bnQoJHBhcnRzKSAhPSAyICkgY29udGludWU7CiAgICAgICAgICAgICRrZXkgPSB0cmltKCRwYXJ0c1swXSk7CiAgICAgICAgICAgICR2YWwgPSAkcGFydHNbMV07CiAgICAgICAgICAgICRvdXRbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2V4dHJhdmFycyggXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlICRyZXNwb25zZSApCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fZXh0cmFwb3N0dmFycyApIHsKICAgICAgICAgICAgJHR4dCA9IHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+X2V4dHJhcG9zdHZhcnMsICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5mcm9tX3RleHQoICR0eHQgKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9leHRyYXBvc3R2YXJzKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9leHRyYXBvc3R2YXJzID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPnVybCApIHJldHVybjsKICAgICAgICAkZGF0YSA9ICRyZXNwb25zZS0+YXNfYXJyYXkoKTsKICAgICAgICAkZGF0YTIgPSAkdGhpcy0+Z2V0X2V4dHJhdmFycyggJGZvcm0sICRyZXNwb25zZSApOwogICAgICAgIGlmKCBpc19hcnJheSgkZGF0YTIpICkgJGRhdGEgPSBhcnJheV9tZXJnZSgkZGF0YSwkZGF0YTIpOwoKICAgICAgICAkcmVxdWVzdCA9IG5ldyBcY21zX2h0dHBfcmVxdWVzdCgpOwogICAgICAgICRyZXF1ZXN0LT5zZXRNZXRob2QoJ1BPU1QnKTsKICAgICAgICAkcmVxdWVzdC0+c2V0UGFyYW1zKCRkYXRhKTsKICAgICAgICAkcmVxdWVzdC0+ZXhlY3V0ZSgkdGhpcy0+dXJsKTsKICAgICAgICAkc3RhdHVzID0gJHJlcXVlc3QtPmdldFN0YXR1cygpOwogICAgICAgICRlcnJvciA9ICRyZXF1ZXN0LT5nZXRFcnJvcigpOwogICAgICAgIGlmKCAkc3RhdHVzICE9IDIwMCApIHsKICAgICAgICAgICAgYXVkaXQoJHN0YXR1cywnU21hcnRGb3JtcycsJ1dlYkhvb2sgUG9zdCB0byAnLiR0aGlzLT51cmwuJyBmYWlsZWQnKTsKICAgICAgICAgICAgQHRyaWdnZXJfZXJyb3IoIldlYkhvb2sgZXJyb3IgJHN0YXR1cyBwb3N0aW5nIHRvICIuJHRoaXMtPnVybCk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygnV2ViSG9vayBwb3N0IHRvICcuJHRoaXMtPnVybC4nIGZhaWxlZCB3aXRoIHN0YXR1cyAnLiRzdGF0dXMpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coJGVycm9yKTsKICAgICAgICB9CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.WebHookDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXFNtYXJ0Rm9ybXNcRm9ybTsKdXNlIHh0X3BhcmFtOwp1c2UgeHRfdXRpbHM7CgpjbGFzcyBXZWJIb29rRGlzcG9zaXRpb25FZGl0b3IgZXh0ZW5kcyBEaXNwb3NpdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfZGlzcDsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSBuZXcgV2ViSG9va0Rpc3Bvc2l0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICd1cmwnOgogICAgICAgIGNhc2UgJ2V4dHJhcG9zdHZhcnMnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3VybCggJHN0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3VybCggJHN0ciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZXh0cmFwb3N0dmFycyggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9leHRyYXBvc3R2YXJzKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1dlYkhvb2tEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCdkaXNwbGF5X1dlYkhvb2tEaXNwb3NpdGlvbicsJHRoaXMtPnVybCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwb3NpdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Rpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkZGlzcCApCiAgICB7CiAgICAgICAgaWYoICEgJGRpc3AgaW5zdGFuY2VvZiBXZWJIb29rRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ1NtYXJ0Rm9ybXNcXERpc3Bvc2l0aW9uc1xcV2ViSG9va0Rpc3Bvc2l0aW9uJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybShhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsICdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCB4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X3VybCh4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAndXJsJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2V4dHJhcG9zdHZhcnMoeHRfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCAnZXh0cmFwb3N0dmFycycpKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF9kaXNwb3NpdGlvbigpLCAkZGlzcF9ndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfd2ViaG9va19kaXNwb3NpdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZGlzcF9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtICkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/interface.IDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zOwoKaW50ZXJmYWNlIElEaXNwb3NpdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2d1aWQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEpOwp9IC8vIGVuZCBvZiBpbnRlcmZhY2UK]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMButtonField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NQnV0dG9uRmllbGQgZXh0ZW5kcyBET01GaWVsZCB7CiAgICB1c2UgRE9NTGFiZWxGaWVsZFRyYWl0OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRub2RlKTsKICAgICAgICAkdGhpcy0+c2V0X2xhYmVsKCR0aGlzLT5maW5kUGFyZW50TGFiZWwoJG5vZGUpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKYWJzdHJhY3QgY2xhc3MgRE9NRmllbGQgZXh0ZW5kcyBGaWVsZAp7CiAgICBwcml2YXRlICRfbGluZTsKICAgIHByaXZhdGUgJF92YWx1ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgJG5vZGVuYW1lID0gJG5vZGUtPm5vZGVOYW1lOwogICAgICAgICRhdHRyaWJzID0gJHRoaXMtPmdldEF0dHJpYnV0ZXNBcnJheSgkbm9kZS0+YXR0cmlidXRlcyk7CiAgICAgICAgJHRoaXMtPl9saW5lID0gJG5vZGUtPmdldExpbmVObygpOwogICAgICAgICR0aGlzLT5fdmFsdWUgPSAkbm9kZS0+bm9kZVZhbHVlOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRub2RlbmFtZSwgJGF0dHJpYnMgKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXR0cmlidXRlc0FycmF5KFxET01OYW1lZE5vZGVNYXAgJG1hcCkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJG1hcCBhcyAkYXR0ciApIHsKICAgICAgICAgICAgJG91dFskYXR0ci0+bm9kZU5hbWVdID0gJGF0dHItPm5vZGVWYWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsdWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saW5lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9saW5lOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMFormField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NRm9ybUZpZWxkIGV4dGVuZHMgRE9NRmllbGQge30K]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMInputField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NSW5wdXRGaWVsZCBleHRlbmRzIERPTUZpZWxkIHsKICAgIHVzZSBET01MYWJlbEZpZWxkVHJhaXQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgICR0aGlzLT5zZXRfbGFiZWwoJHRoaXMtPmZpbmRQYXJlbnRMYWJlbCgkbm9kZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X2F0dHJpYnV0ZSgndmFsdWUnKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMLabelField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NTGFiZWxGaWVsZCBleHRlbmRzIERPTUZpZWxkIHt9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMSelectField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NU2VsZWN0RmllbGQgZXh0ZW5kcyBET01GaWVsZAp7CiAgICB1c2UgRE9NTGFiZWxGaWVsZFRyYWl0OwoKICAgIHByaXZhdGUgJF9vcHRpb25zID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgICR0aGlzLT5zZXRfbGFiZWwoJHRoaXMtPmZpbmRQYXJlbnRMYWJlbCgkbm9kZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19tdWx0aXNlbGVjdCgpCiAgICB7CiAgICAgICAgJG11bHRpcGxlID0gJHRoaXMtPmdldF9hdHRyaWJ1dGUoJ211bHRpcGxlJyk7CiAgICAgICAgaWYoICRtdWx0aXBsZSApIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWUoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+aXNfbXVsdGlzZWxlY3QoKSApIHsKICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29wdGlvbnMgYXMgJG9wdGlvbiApIHsKICAgICAgICAgICAgICAgIGlmKCAkb3B0aW9uLT5nZXRfc2VsZWN0ZWQoKSApICRvdXRbXSA9ICRvcHRpb24tPmdldF92YWx1ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9vcHRpb25zIGFzICRvcHRpb24gKSB7CiAgICAgICAgICAgIGlmKCAkb3B0aW9uLT5nZXRfc2VsZWN0ZWQoKSApIHJldHVybiAkb3B0aW9uLT5nZXRfdmFsdWUoKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+X29wdGlvbnNbMF0tPmdldF92YWx1ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKCBET01TZWxlY3RPcHRpb24gJG9wdGlvbiApCiAgICB7CiAgICAgICAgJHRoaXMtPl9vcHRpb25zW10gPSAkb3B0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fb3B0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX29wdGlvbnMoKQogICAgewogICAgICAgIHJldHVybiBjb3VudCgkdGhpcy0+X29wdGlvbnMpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMTextAreaField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NVGV4dEFyZWFGaWVsZCBleHRlbmRzIERPTUZpZWxkIHsKICAgIHVzZSBET01MYWJlbEZpZWxkOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRub2RlKTsKICAgICAgICAkdGhpcy0+c2V0X2xhYmVsKCR0aGlzLT5maW5kUGFyZW50TGFiZWwoJG5vZGUpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/extraclasses.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgpjbGFzcyBFeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uIHt9CmNsYXNzIEZvcm1TY2FubmVyRXJyb3IgZXh0ZW5kcyBcUnVudGltZUV4Y2VwdGlvbiB7fSAgICAvLyBhZG1pbiBzaWRlCmNsYXNzIEZvcm1WYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBGb3JtU2Nhbm5lckVycm9yIHt9ICAvLyBhZG1pbiBzaWRlCmNsYXNzIEJvdERldGVjdGVkRXJyb3IgZXh0ZW5kcyBFeGNlcHRpb24ge30gIC8vIGZyb250ZW5kCmNsYXNzIFN0b3BEaXNwb3NpdGlvblRyaWdnZXIgZXh0ZW5kcyBFeGNlcHRpb24ge30gLy8gZnJvbnRlbmQKY2xhc3MgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXhjZXB0aW9uIHt9IC8vIGZyb250ZW5kCmNsYXNzIERpc3Bvc2l0aW9uRXJyb3IgZXh0ZW5kcyBFeGNlcHRpb24ge30gLy8gZnJvbnRlbmQK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/FieldValidators/abstract.Validation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvbiBpbXBsZW1lbnRzIElWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9ndWlkOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9ndWlkID0gXHh0X3V0aWxzOjpjcmVhdGVfZ3VpZCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCggJGtleSwgJHZhbCApCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBtZW1iZXIgb2YgIi5nZXRfY2xhc3MoJHRoaXMpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2d1aWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2d1aWQ7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/abstract.ValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfaGVscGVyOwoKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uKCk7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICk7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCk7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIFRSVUU7IH0KICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZ3VpZCApOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVscGVyX3Byb3h5KCBcU21hcnRGb3Jtc1xWYWxpZGF0aW9uRWRpdG9ySGVscGVyUHJveHkgJHByb3h5ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2hlbHBlciA9ICRwcm94eTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2hlbHBlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faGVscGVyOwogICAgfQp9IC8vIGVuZCBvZiBpbnRlcmZhY2UK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.BadUploadError.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgQmFkVXBsb2FkRXJyb3IgZXh0ZW5kcyBWYWxpZGF0aW9uRXhjZXB0aW9uIHt9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.CaptchaFieldValidatorProxyEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgQ2FwdGNoYUZpZWxkVmFsaWRhdG9yUHJveHlFZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IENhcHRjaGFWYWxpZGF0b3JQcm94eSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0NhcHRjaGFGaWVsZFZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdGlvbiggVmFsaWRhdGlvbiAkaW4gKQogICAgewogICAgICAgIGlmKCAhICRpbiBpbnN0YW5jZW9mIENhcHRjaGFWYWxpZGF0b3JQcm94eSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.CaptchaValidatorProxy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXFNtYXJ0Rm9ybXNcSUNhcHRjaGFQcm92aWRlcjsKCmNsYXNzIENhcHRjaGFWYWxpZGF0b3JQcm94eSBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHJpdmF0ZSAkX3Byb3ZpZGVyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggSUNhcHRjaGFQcm92aWRlciAkcHJvdmlkZXIgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X3Byb3ZpZGVyID0gJHByb3ZpZGVyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ3ZhbGlkYXRlX2NhcHRjaGEnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSwgXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciAkdHIgKQogICAgewogICAgICAgIGlmKCAhICRmb3JtLT5oYXNfY2FwdGNoYSApIHJldHVybjsKICAgICAgICBpZiggJHRoaXMtPl9wcm92aWRlciAmJiAhICR0aGlzLT5fcHJvdmlkZXItPnZhbGlkYXRlX2NhcHRjaGEoKSApIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKCdDQVBUQ0hBJywkdHItPnRyYW5zbGF0ZSgnZXJyX2NhcHRjaGFfbWlzbWF0Y2gnKSk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.ComputedValue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBDb21wdXRlZFZhbHVlIGV4dGVuZHMgVmFsaWRhdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGROYW1lOwogICAgcHJpdmF0ZSAkX3RlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkTmFtZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmllbGROYW1lKTsKICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fdGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0NvbXB1dGVkVmFsdWUnLCR0aGlzLT5maWVsZE5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGROYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZE5hbWUgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3RlbXBsYXRlID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9maWVsZE5hbWUgKSByZXR1cm47CiAgICAgICAgJG91dCA9IHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+X3RlbXBsYXRlLCAkZm9ybSwgJHJlc3BvbnNlICk7CiAgICAgICAgJHJlc3BvbnNlLT5tb2RpZnlfdmFsdWUoICR0aGlzLT5fZmllbGROYW1lLCAkb3V0ICk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.ComputedValueEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgQ29tcHV0ZWRWYWx1ZUVkaXRvciBleHRlbmRzIFZhbGlkYXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX3ZhbGlkYXRvcjsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcU21hcnRGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSBuZXcgQ29tcHV0ZWRWYWx1ZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9Db21wdXRlZFZhbHVlJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF92YWxpZGF0aW9uKCBWYWxpZGF0aW9uICRpbiApCiAgICB7CiAgICAgICAgaWYoICEgJGluIGluc3RhbmNlb2YgQ29tcHV0ZWRWYWx1ZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGQoICRmaWVsZF9uYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X2ZpZWxkTmFtZSggJGZpZWxkX25hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RlbXBsYXRlKCAkdGVtcGxhdGUgKQogICAgewogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfdGVtcGxhdGUoICR0ZW1wbGF0ZSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZmllbGQoXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkbmFtZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF90ZW1wbGF0ZShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndGVtcGxhdGUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF92YWxpZGF0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfY29tcHV0ZWR2YWx1ZS50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZHMnLCRmb3JtLT5nZXRfZmllbGRfbGlzdCgpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbGlkYXRpb24nLCR0aGlzLT5nZXRfdmFsaWRhdGlvbigpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcU21hcnRGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtKSApOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.DatePrimitiveValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRGF0ZVByaW1pdGl2ZVZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfRGF0ZVByaW1pdGl2ZVZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkaXNfZGF0ZSA9IGZ1bmN0aW9uKCAkaW4gKSB7CiAgICAgICAgICAgIGlmKCAhIHByZWdfbWF0Y2goICcvWzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0vJywkaW4pICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gc3RydG90aW1lKCAkaW4gKTsKICAgICAgICB9OwoKICAgICAgICAkbmFtZXMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJG5hbWUgKSB7CiAgICAgICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICRuYW1lICk7CgkgICAgaWYoICRmaWVsZC0+bm92YWxpZGF0ZSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJGZpZWxkLT50eXBlICE9ICdkYXRlJyAmJiAkZmllbGQtPnByaW1pdGl2ZSAhPSAnZGF0ZScgKSBjb250aW51ZTsKICAgICAgICAgICAgJHVzZXJ2YWwgPSAkZGF0YS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkbmFtZSApOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR1c2VydmFsKSApICR1c2VydmFsID0gWyAkdXNlcnZhbCBdOwogICAgICAgICAgICBmb3JlYWNoKCAkdXNlcnZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRzID0gJGlzX2RhdGUoJG9uZSk7CiAgICAgICAgICAgICAgICBpZiggISR0cyApIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKCRmaWVsZC0+bmFtZSwkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbm90ZGF0ZScsJGZpZWxkLT5uYW1lKSk7CiAgICAgICAgICAgICAgICBpZiggJGZpZWxkLT5taW4gJiYgKCRtaW5fdHMgPSAkaXNfZGF0ZSgkZmllbGQtPm1pbikpICYmICR0cyA8ICRtaW5fdHMgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FeGNlcHRpb24oJGZpZWxkLT5uYW1lLCR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl9pbnB1dF9vdXRvZnJhbmdlJywkZmllbGQtPm5hbWUpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKCAkZmllbGQtPm1heCAmJiAoJG1heF90cyA9ICRpc19kYXRlKCRmaWVsZC0+bWF4KSkgJiYgJHRzID4gJG1heF90cyApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkZmllbGQtPm5hbWUsJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2lucHV0X291dG9mcmFuZ2UnLCRmaWVsZC0+bmFtZSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.DatePrimitiveValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRGF0ZVByaW1pdGl2ZVZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IERhdGVQcmltaXRpdmVWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0RhdGVQcmltaXRpdmVWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZE5hbWU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCAka2V5ICkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZmllbGROYW1lJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9maWVsZE5hbWUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0VtYWlsRmllbGRWYWxpZGF0aW9uJywkdGhpcy0+ZmllbGROYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkTmFtZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGROYW1lID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9maWVsZE5hbWUgKSByZXR1cm47CgogICAgICAgICR2YWwgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSggJHRoaXMtPl9maWVsZE5hbWUgKTsKICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkdGhpcy0+X2ZpZWxkTmFtZSApOwogICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSByZXR1cm47CgogICAgICAgIGlmKCAhaXNfYXJyYXkoICR2YWwpICkgJHZhbCA9IFsgJHZhbCBdOwogICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgIGlmKCAhaXNfZW1haWwoICRvbmVfdmFsICkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfZmllbGRfaW52YWxpZHZhbHVlJywgJHRoaXMtPl9maWVsZE5hbWUpKTsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEVtYWlsRmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0VtYWlsRmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBFbWFpbEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkZmllbGRuYW1lID0gdHJpbSgkZmllbGRuYW1lKTsKICAgICAgICBpZiggISRmaWVsZG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgZmllbGQgbmFtZSBmb3IgYSBFbWFpbEZpZWxkVmFsaWRhdGlvbiBjYW5ub3QgYmUgZW1wdHknKTsKCiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9maWVsZE5hbWUoJGZpZWxkbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZChceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwoKICAgICAgICAgICAgLy8gbm93IGhhdmUgdGhlIGRpc3Bvc2l0aW9uIG9iamVjdCwgc3RvcmUgaXQuCiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfdmFsaWRhdGlvbigpLCAkZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2VtYWlsZmllbGR2YWxpZGF0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkcycsJGZvcm0tPmdldF9maWVsZF9saXN0KCkpOwogICAgICAgICR0cGwtPmFzc2lnbigndmFsaWRhdGlvbicsJHRoaXMtPmdldF92YWxpZGF0aW9uKCkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailPrimitiveValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxQcmltaXRpdmVWYWxpZGF0aW9uIGV4dGVuZHMgVmFsaWRhdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0VtYWlsUHJpbWl0aXZlVmFsaWRhdG9yJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEsIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgICRuYW1lcyA9ICRmb3JtLT5nZXRfZmllbGRuYW1lcygpOwogICAgICAgIGZvcmVhY2goICRuYW1lcyBhcyAkbmFtZSApIHsKICAgICAgICAgICAgJGZpZWxkID0gJGZvcm0tPmdldF9maWVsZCggJG5hbWUgKTsKCSAgICBpZiggJGZpZWxkLT5ub3ZhbGlkYXRlICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPnR5cGUgIT0gJ2VtYWlsJyAmJiAkZmllbGQtPnByaW1pdGl2ZSAhPSAnZW1haWwnICkgY29udGludWU7CiAgICAgICAgICAgICR1c2VydmFsID0gJGRhdGEtPmdldF9maWVsZF92YWx1ZSggJG5hbWUgKTsKICAgICAgICAgICAgaWYoICEkdXNlcnZhbCApIGNvbnRpbnVlOyAvLyByZXF1aXJlZCBpcyBjaGVja2VkIGVsc2V3aGVyZQogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR1c2VydmFsKSApICR1c2VydmFsID0gWyAkdXNlcnZhbCBdOwogICAgICAgICAgICBmb3JlYWNoKCAkdXNlcnZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYoICEgaXNfZW1haWwoJG9uZSkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkZmllbGQtPm5hbWUsJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2lucHV0X25vdGVtYWlsJywkZmllbGQtPm5hbWUpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailPrimitiveValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxQcmltaXRpdmVWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBFbWFpbFByaW1pdGl2ZVZhbGlkYXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRW1haWxQcmltaXRpdmVWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBFbWFpbFByaW1pdGl2ZVZhbGlkYXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19pbnRlcmZhY2UoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FileValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmlsZVZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEZpbGVWYWxpZGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRmlsZVZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdGlvbiggVmFsaWRhdGlvbiAkaW4gKQogICAgewogICAgICAgIGlmKCAhICRpbiBpbnN0YW5jZW9mIEZpbGVWYWxpZGF0b3IgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19pbnRlcmZhY2UoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FileValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXFNtYXJ0Rm9ybXNcRm9ybUZpbGVGaWVsZDsKCmNsYXNzIEZpbGVWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoICdkaXNwbGF5X0ZpbGVWYWxpZGF0b3InICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFZhbGlkYXRlKFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICBpZiggISAkcmVzcG9uc2UtPmhhc191cGxvYWRzKCkgKSByZXR1cm47CgogICAgICAgIC8vIGhlcmUgZm9yIGVhY2ggdXBsb2FkIGZpZWxkLi4uIHdlIGNoZWNrIHRoZSB2YWx1ZQogICAgICAgICRmaWxlcyA9ICRyZXNwb25zZS0+bGlzdF9maWxlcygpOwogICAgICAgIGlmKCAhY291bnQoJGZpbGVzKSApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICAgICAgZm9yZWFjaCggJGZvcm0tPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSAhPSAnZmlsZScgKSBjb250aW51ZTsKICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgICR2YWx1ZSA9ICRyZXNwb25zZS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkbmFtZSApOwogICAgICAgICAgICBpZiggISR2YWx1ZSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWlzc2V0KCRmaWxlc1skbmFtZV0pICkgY29udGludWU7CiAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZV9maWxlcyggJGZpZWxkLCAkZmlsZXNbJG5hbWVdLCAkdHJhbnNsYXRvciApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVfZmlsZXMoIEZvcm1GaWxlRmllbGQgJGZpZWxkLCBhcnJheSAkZmlsZV9pbmZvLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICBpZiggIWNvdW50KCRmaWxlX2luZm8pICkgcmV0dXJuOwogICAgICAgIGZvcmVhY2goICRmaWxlX2luZm8gYXMgJHJlYyApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+YWNjZXB0ICYmICEgJHRoaXMtPmZpbGVfYWNjZXB0ZWRfYnlfdHlwZSggJGZpZWxkLT5hY2NlcHQsICRyZWMgKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBCYWRVcGxvYWRFcnJvcigkZmllbGQtPm5hbWUsICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl91cGxvYWRfdHlwZScsICRmaWVsZC0+bmFtZSkgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGZpZWxkLT5leHRlbnNpb25zICYmICEgJHRoaXMtPmZpbGVfYWNjZXB0ZWRfYnlfZXh0ZW5zaW9uKCRmaWVsZC0+ZXh0ZW5zaW9ucywgJHJlYykgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQmFkVXBsb2FkRXJyb3IoJGZpZWxkLT5uYW1lLCAkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfdXBsb2FkX2V4dGVuc2lvbicsICRmaWVsZC0+bmFtZSkgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGZpZWxkLT5tYXhfc2l6ZSAgJiYgISR0aGlzLT5maWxlX2FjY2VwdGVkX2J5X3NpemUoICRmaWVsZC0+bWF4X3NpemUsICRyZWMgKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBCYWRVcGxvYWRFcnJvcigkZmllbGQtPm5hbWUsICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl91cGxvYWRfc2l6ZScsICRmaWVsZC0+bmFtZSApKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmlsZV9hY2NlcHRlZF9ieV9zaXplKCAkbWF4X3NpemUsIGFycmF5ICRyZWMgKQogICAgewogICAgICAgICR0b3RhbCA9IDA7CiAgICAgICAgaWYoIGlzc2V0KCRyZWNbJ3NpemUnXSkgKSAgJHJlYyA9IFsgJHJlYyBdOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRyZWMpOyAkaSsrICkgewogICAgICAgICAgICAkdG90YWwgKz0gJHJlY1skaV1bJ3NpemUnXTsKICAgICAgICB9CiAgICAgICAgaWYoICR0b3RhbCA8PSAkbWF4X3NpemUgKSByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmlsZV9hY2NlcHRlZF9ieV9leHRlbnNpb24oICRleHRlbnNpb25zLCBhcnJheSAkcmVjICkKICAgIHsKICAgICAgICBpZiggISRleHRlbnNpb25zICkgcmV0dXJuIFRSVUU7CiAgICAgICAgaWYoIGlzc2V0KCRyZWNbJ3NpemUnXSkgKSAgJHJlYyA9IFsgJHJlYyBdOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRyZWMpOyAkaSsrICkgewogICAgICAgICAgICAkbmFtZSA9ICRyZWNbJGldWyduYW1lJ107CiAgICAgICAgICAgIGlmKCAhJG5hbWUgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICAgICAkZXh0ID0gc3RydG9sb3dlcihzdWJzdHIoc3RycmNocigkZmlsZW5hbWUsIi4iKSwxKSk7CiAgICAgICAgICAgIGlmKCAhJGV4dCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgICAgICRsaXN0ID0gZXhwbG9kZSgnLCcsJGV4dGVuc2lvbnMpOwogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgICAgICBpZiggISRvbmUgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRvbmUgPSBzdHJ0b2xvd2VyKCRvbmUpOwogICAgICAgICAgICAgICAgaWYoICRleHQgPT0gJG9uZSApIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHdpbGRjYXJkTWF0Y2hNaW1lVHlwZSggJHR5cGUsICR0ZXN0ICkKICAgIHsKICAgICAgICBpZiggISR0eXBlICkgcmV0dXJuIFRSVUU7CiAgICAgICAgaWYoICR0eXBlID09ICcqLyonIHx8ICR0eXBlID09ICcqJyApIHJldHVybiBUUlVFOwogICAgICAgIGlmKCBzdHJwb3MoJyonLCR0eXBlKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgIHJldHVybiAoc3RydG9sb3dlcigkdHlwZSkgPT0gc3RydG9sb3dlcigkdGVzdCkpOwogICAgICAgIH0KCiAgICAgICAgLy8gaXQncyBhIHdpbGRjYXJkIHBhdHRlcm4uCiAgICAgICAgJHR5cGVfcGFydHMgPSBleHBsb2RlKCcvJywkdHlwZSwyKTsKICAgICAgICAkdGVzdF9wYXJ0cyA9IGV4cGxvZGUoJy8nLCR0ZXN0LDIpOwogICAgICAgICRuID0gbWluKGNvdW50KCR0eXBlX3BhcnRzKSxjb3VudCgkdGVzdF9wYXJ0cykpOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8ICRuOyAkaSsrICkgewogICAgICAgICAgICAkYSA9IHN0cnRvbG93ZXIoJHR5cGVfcGFydHNbJGldKTsKICAgICAgICAgICAgJGIgPSBzdHJ0b2xvd2VyKCR0ZXN0X3BhcnRzWyRpXSk7CiAgICAgICAgICAgIGlmKCAkYSA9PSAnKicgKSByZXR1cm4gVFJVRTsKICAgICAgICAgICAgaWYoICRhICE9ICRiICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmlsZV9hY2NlcHRlZF9ieV90eXBlKCAkYWNjZXB0LCBhcnJheSAkcmVjICkKICAgIHsKICAgICAgICBpZiggISRhY2NlcHQgKSByZXR1cm4gVFJVRTsKCiAgICAgICAgaWYoIGlzc2V0KCRyZWNbJ3NpemUnXSkgKSAgJHJlYyA9IFsgJHJlYyBdOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRyZWMpOyAkaSsrICkgewogICAgICAgICAgICAkbWltZV90eXBlID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCAkcmVjWyRpXSwgJ21pbWVfdHlwZScgKTsKICAgICAgICAgICAgJG1pbWVfdHlwZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZyggJHJlY1skaV0sICd0eXBlJywgJG1pbWVfdHlwZSApOwogICAgICAgICAgICAkYWxsID0gZXhwbG9kZSgnLCcsJGFjY2VwdCk7CiAgICAgICAgICAgICRmbmQgPSBmYWxzZTsKICAgICAgICAgICAgZm9yZWFjaCggJGFsbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgICAgICBpZiggISRvbmUgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkdGhpcy0+d2lsZGNhcmRNYXRjaE1pbWVUeXBlKCAkb25lLCAkbWltZV90eXBlICkgKSB7CiAgICAgICAgICAgICAgICAgICAgJGZuZCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkZm5kICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FloatFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmxvYXRGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZE5hbWU7CiAgICBwcml2YXRlICRfbWluVmFsOwogICAgcHJpdmF0ZSAkX21heFZhbDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoICRrZXkgKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZE5hbWUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZpZWxkTmFtZSk7CgogICAgICAgIGNhc2UgJ21pblZhbCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X21pblZhbDsKCiAgICAgICAgY2FzZSAnbWF4VmFsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbWF4VmFsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgJG1pblYgPSAkdGhpcy0+bWluVmFsOwogICAgICAgICRtYXhWID0gJHRoaXMtPm1heFZhbDsKICAgICAgICBpZiggJG1pblYgJiYgISRtYXhWICkgewogICAgICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfRmxvYXRGaWVsZFZhbGlkYXRpb24xJywkdGhpcy0+ZmllbGROYW1lLCRtaW5WKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggJG1heFYgJiYgISRtaW5WICkgewogICAgICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfRmxvYXRGaWVsZFZhbGlkYXRpb24yJywkdGhpcy0+ZmllbGROYW1lLCRtYXhWKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSgnZGlzcGxheV9GbG9hdEZpZWxkVmFsaWRhdGlvbjMnLCR0aGlzLT5maWVsZE5hbWUsJG1pblYsJG1heFYpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkTmFtZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGROYW1lID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21pblZhbHVlKCR2YWwpCiAgICB7CiAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgJHZhbCA9IChmbG9hdCkgJHZhbDsKICAgICAgICAkdGhpcy0+X21pblZhbCA9ICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhWYWx1ZSgkdmFsKQogICAgewogICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApICR2YWwgPSAoZmxvYXQpICR2YWw7CiAgICAgICAgJHRoaXMtPl9tYXhWYWwgPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSwgXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciAkdHJhbnNsYXRvciApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2ZpZWxkTmFtZSApIHJldHVybjsKICAgICAgICAkdmFsID0gJHJlc3BvbnNlLT5nZXRfZmllbGRfdmFsdWUoICR0aGlzLT5fZmllbGROYW1lICk7CgogICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICR0aGlzLT5fZmllbGROYW1lICk7CiAgICAgICAgaWYoICRmaWVsZC0+bm92YWxpZGF0ZSApIHJldHVybjsKCiAgICAgICAgJG1pblYgPSAkdGhpcy0+X21pblZhbDsKICAgICAgICAkbWF4ViA9ICR0aGlzLT5fbWF4VmFsOwogICAgICAgIGlmKCBzdHJsZW4oJG1pblYpICYmIHN0cmxlbigkbWF4VikgJiYgJG1pblYgPiAkbWF4ViApIHsKICAgICAgICAgICAgJHRtcCA9ICRtYXhWOwogICAgICAgICAgICAkbWF4ViA9ICRtaW5WOwogICAgICAgICAgICAkbWluViA9ICR0bXA7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNfYXJyYXkoICR2YWwgKSApICR2YWwgPSBbICR2YWwgXTsKICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmVfdmFsICkgewogICAgICAgICAgICAkb25lX3ZhbCA9IChmbG9hdCkgJG9uZV92YWw7CiAgICAgICAgICAgIGlmKCBzdHJsZW4oJG1pblYpICYmICRvbmVfdmFsIDwgKGZsb2F0KSAkbWluViApIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKCR0aGlzLT5fZmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfZmllbGRfaW52YWxpZHZhbHVlJywkdGhpcy0+X2ZpZWxkTmFtZSkpOwogICAgICAgICAgICBpZiggc3RybGVuKCRtYXhWKSAmJiAkb25lX3ZhbCA+IChmbG9hdCkgJG1heFYgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2ZpZWxkX2ludmFsaWR2YWx1ZScsJHRoaXMtPl9maWVsZE5hbWUpKTsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FloatFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmxvYXRGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEZsb2F0RmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0Zsb2F0RmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBGbG9hdEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkZmllbGRuYW1lID0gdHJpbSgkZmllbGRuYW1lKTsKICAgICAgICBpZiggISRmaWVsZG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgZmllbGQgbmFtZSBmb3IgYW4gRmxvYXRGaWVsZFZhbGlkYXRpb24gY2Fubm90IGJlIGVtcHR5Jyk7CgogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfZmllbGROYW1lKCRmaWVsZG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWluVmFsdWUoICR2YWwgKQogICAgewogICAgICAgICR2YWwgPSB0cmltKCAkdmFsICk7CiAgICAgICAgaWYoIHN0cmxlbigkdmFsKSApIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9taW5WYWx1ZSgoaW50KSAkdmFsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X21pblZhbHVlKG51bGwpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21heFZhbHVlKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gdHJpbSggJHZhbCApOwogICAgICAgIGlmKCBzdHJsZW4oJHZhbCkgKSB7CiAgICAgICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfbWF4VmFsdWUoKGludCkgJHZhbCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9tYXhWYWx1ZShudWxsKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZChceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X21pblZhbHVlKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtaW5WYWx1ZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9tYXhWYWx1ZShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbWF4VmFsdWUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF92YWxpZGF0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZmxvYXRmaWVsZHZhbGlkYXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGd1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRzJywkZm9ybS0+Z2V0X2ZpZWxkX2xpc3QoKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWxpZGF0aW9uJywkdGhpcy0+Z2V0X3ZhbGlkYXRpb24oKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXFNtYXJ0Rm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSkgKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.HookValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSG9va1ZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5X3N0cmluZyggXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciAkdHIgKQogICAgewogICAgICAgIHJldHVybiAnSG9vayBWYWxpZGF0b3IgKGludGVybmFsKSc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFZhbGlkYXRlKFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgJHJlcyA9IFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vayggJ1NtYXJ0Rm9ybXM6OnZhbGlkYXRlRm9ybScsICRyZXNwb25zZSApOwogICAgICAgIGlmKCAkcmVzICYmICRyZXMgaW5zdGFuY2VvZiBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UgKSAkcmVzcG9uc2UgPSAkcmVzOwogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.HtmlDetectionValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSHRtbERldGVjdGlvblZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfSHRtbERldGVjdGlvblZhbGlkYXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSwgXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciAkdHJhbnNsYXRvciApCiAgICB7CiAgICAgICAgJG5hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgZm9yZWFjaCggJG5hbWVzIGFzICRuYW1lICkgewogICAgICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkbmFtZSApOwogICAgICAgICAgICAkdXNlcnZhbCA9ICRkYXRhLT5nZXRfZmllbGRfdmFsdWUoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAhICR1c2VydmFsICkgY29udGludWU7CgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCAkdXNlcnZhbCkgKSAkdXNlcnZhbCA9IFsgJHVzZXJ2YWwgXTsKICAgICAgICAgICAgZm9yZWFjaCggJHVzZXJ2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gc3RyaXBfdGFncyggJG9uZV92YWwgKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wICE9ICRvbmVfdmFsICkgdGhyb3cgbmV3IFZhbGlkYXRpb25FeGNlcHRpb24oJGZpZWxkLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfaHRtbGRldGVjdGVkJykpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.HtmlDetectionValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSHRtbERldGVjdGlvblZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEh0bWxEZXRlY3Rpb25WYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0h0bWxEZXRlY3Rpb25WYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBIdG1sRGV0ZWN0aW9uVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCdkaXNwbGF5X0h0bWxEZXRlY3Rpb25WYWxpZGF0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.IntegerFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSW50ZWdlckZpZWxkVmFsaWRhdGlvbiBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHJpdmF0ZSAkX2ZpZWxkTmFtZTsKICAgIHByaXZhdGUgJF9taW5WYWw7CiAgICBwcml2YXRlICRfbWF4VmFsOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkTmFtZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmllbGROYW1lKTsKCiAgICAgICAgY2FzZSAnbWluVmFsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbWluVmFsOwoKICAgICAgICBjYXNlICdtYXhWYWwnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9tYXhWYWw7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICAkbWluViA9ICR0aGlzLT5taW5WYWw7CiAgICAgICAgJG1heFYgPSAkdGhpcy0+bWF4VmFsOwogICAgICAgIGlmKCAkbWluViAmJiAhJG1heFYgKSB7CiAgICAgICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSgnZGlzcGxheV9JbnRlZ2VyRmllbGRWYWxpZGF0aW9uMScsJHRoaXMtPmZpZWxkTmFtZSwkbWluVik7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICRtYXhWICYmICEkbWluViApIHsKICAgICAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0ludGVnZXJGaWVsZFZhbGlkYXRpb24yJywkdGhpcy0+ZmllbGROYW1lLCRtYXhWKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSgnZGlzcGxheV9JbnRlZ2VyRmllbGRWYWxpZGF0aW9uMycsJHRoaXMtPmZpZWxkTmFtZSwkbWluViwkbWF4Vik7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGROYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZE5hbWUgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWluVmFsdWUoJHZhbCkKICAgIHsKICAgICAgICBpZiggIWlzX251bGwoJHZhbCkgKSAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAkdGhpcy0+X21pblZhbCA9ICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhWYWx1ZSgkdmFsKQogICAgewogICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICR0aGlzLT5fbWF4VmFsID0gJHZhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9maWVsZE5hbWUgKSByZXR1cm47CiAgICAgICAgJHZhbCA9ICRyZXNwb25zZS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkdGhpcy0+X2ZpZWxkTmFtZSApOwoKICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkdGhpcy0+X2ZpZWxkTmFtZSApOwogICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSByZXR1cm47CgogICAgICAgICRtaW5WID0gJHRoaXMtPl9taW5WYWw7CiAgICAgICAgJG1heFYgPSAkdGhpcy0+X21heFZhbDsKICAgICAgICBpZiggc3RybGVuKCRtaW5WKSAmJiBzdHJsZW4oJG1heFYpICYmICRtaW5WID4gJG1heFYgKSB7CiAgICAgICAgICAgICR0bXAgPSAkbWF4VjsKICAgICAgICAgICAgJG1heFYgPSAkbWluVjsKICAgICAgICAgICAgJG1pblYgPSAkdG1wOwogICAgICAgIH0KICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgJHZhbCA9IFsgJHZhbCBdOwogICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgICRvbmVfdmFsID0gKGludCkgJG9uZV92YWw7CiAgICAgICAgICAgIGlmKCBzdHJsZW4oJG1pblYpICYmICRvbmVfdmFsIDwgKGludCkgJG1pblYgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl9maWVsZF9pbnZhbGlkdmFsdWUnLCR0aGlzLT5fZmllbGROYW1lKSk7CiAgICAgICAgICAgIGlmKCBzdHJsZW4oJG1heFYpICYmICRvbmVfdmFsID4gKGludCkgJG1heFYgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl9maWVsZF9pbnZhbGlkdmFsdWUnLCR0aGlzLT5fZmllbGROYW1lKSk7CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.IntegerFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBJbnRlZ2VyRmllbGRWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBJbnRlZ2VyRmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0ludGVnZXJGaWVsZFZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdGlvbiggVmFsaWRhdGlvbiAkaW4gKQogICAgewogICAgICAgIGlmKCAhICRpbiBpbnN0YW5jZW9mIEludGVnZXJGaWVsZFZhbGlkYXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpCiAgICB7CiAgICAgICAgcmV0dXJuIGdldF9jbGFzcygkdGhpcy0+X3ZhbGlkYXRvcik7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5c3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0b3ItPmdldF9kaXNwbGF5X3N0cmluZyggJHRoaXMtPl9tb2QtPmdldF90cmFuc2xhdG9yKCkgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWxsb3dzX211bHRpcGxlKCkKICAgIHsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCggJGZpZWxkbmFtZSApCiAgICB7CiAgICAgICAgJGZpZWxkbmFtZSA9IHRyaW0oJGZpZWxkbmFtZSk7CiAgICAgICAgaWYoICEkZmllbGRuYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVGhlIGZpZWxkIG5hbWUgZm9yIGFuIEludGVnZXJGaWVsZFZhbGlkYXRpb24gY2Fubm90IGJlIGVtcHR5Jyk7CgogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfZmllbGROYW1lKCRmaWVsZG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWluVmFsdWUoICR2YWwgKQogICAgewogICAgICAgICR2YWwgPSB0cmltKCAkdmFsICk7CiAgICAgICAgaWYoIHN0cmxlbigkdmFsKSApIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9taW5WYWx1ZSgoaW50KSAkdmFsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X21pblZhbHVlKG51bGwpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21heFZhbHVlKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gdHJpbSggJHZhbCApOwogICAgICAgIGlmKCBzdHJsZW4oJHZhbCkgKSB7CiAgICAgICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfbWF4VmFsdWUoKGludCkgJHZhbCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9tYXhWYWx1ZShudWxsKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBceHRfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZChceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X21pblZhbHVlKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtaW5WYWx1ZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9tYXhWYWx1ZShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbWF4VmFsdWUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF92YWxpZGF0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfaW50ZWdlcmZpZWxkdmFsaWRhdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZHMnLCRmb3JtLT5nZXRfZmllbGRfbGlzdCgpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbGlkYXRpb24nLCR0aGlzLT5nZXRfdmFsaWRhdGlvbigpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyx1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtKSApOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RegexFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVnZXhGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZE5hbWU7CiAgICBwcml2YXRlICRfcGF0dGVybjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoICRrZXkgKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZE5hbWUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZpZWxkTmFtZSk7CiAgICAgICAgY2FzZSAncGF0dGVybic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fcGF0dGVybik7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfUmVnZXhGaWVsZFZhbGlkYXRpb24nLCR0aGlzLT5maWVsZE5hbWUsJHRoaXMtPnBhdHRlcm4pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGROYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZE5hbWUgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcGF0dGVybigkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fcGF0dGVybiA9IHRyaW0oJHZhbCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sIFxTbWFydEZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fZmllbGROYW1lICkgcmV0dXJuOwogICAgICAgIGlmKCAhJHRoaXMtPl9wYXR0ZXJuICkgcmV0dXJuOwoKICAgICAgICAkdmFsID0gJHJlc3BvbnNlLT5nZXRfZmllbGRfdmFsdWUoICR0aGlzLT5fZmllbGROYW1lICk7CiAgICAgICAgJGZpZWxkID0gJGZvcm0tPmdldF9maWVsZCggJHRoaXMtPl9maWVsZE5hbWUgKTsKCWlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSByZXR1cm47CgogICAgICAgIGlmKCAhaXNfYXJyYXkoICR2YWwpICkgJHZhbCA9IFsgJHZhbCBdOwogICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgIGlmKCAhcHJlZ19tYXRjaCggJHRoaXMtPl9wYXR0ZXJuLCAkb25lX3ZhbCkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfZmllbGRfaW52YWxpZHZhbHVlJywgJHRoaXMtPl9maWVsZE5hbWUgKSk7CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RegexFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVnZXhGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IFJlZ2V4RmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1JlZ2V4RmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBSZWdleEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGQoICRmaWVsZG5hbWUgKQogICAgewogICAgICAgICRmaWVsZG5hbWUgPSB0cmltKCRmaWVsZG5hbWUpOwogICAgICAgIGlmKCAhJGZpZWxkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1RoZSBmaWVsZCBuYW1lIGZvciBhIFJlZ2V4RmllbGRWYWxpZGF0aW9uIGNhbm5vdCBiZSBlbXB0eScpOwoKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X2ZpZWxkTmFtZSgkZmllbGRuYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3BhdHRlcm4oICRwYXR0ZXJuICkKICAgIHsKICAgICAgICAkcGF0dGVybiA9IHRyaW0oJHBhdHRlcm4pOwogICAgICAgIGlmKCAhJHBhdHRlcm4gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgcGF0dGVybiBmb3IgYSBSZWdleEZpZWxkVmFsaWRhdGlvbiBjYW5ub3QgYmUgZW1wdHknKTsKCiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9wYXR0ZXJuKCAkcGF0dGVybiApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZmllbGQoXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkbmFtZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9wYXR0ZXJuKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdwYXR0ZXJuJykpOwoKICAgICAgICAgICAgLy8gbm93IGhhdmUgdGhlIGRpc3Bvc2l0aW9uIG9iamVjdCwgc3RvcmUgaXQuCiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfdmFsaWRhdGlvbigpLCAkZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X3JlZ2V4ZmllbGR2YWxpZGF0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkcycsJGZvcm0tPmdldF9maWVsZF9saXN0KCkpOwogICAgICAgICR0cGwtPmFzc2lnbigndmFsaWRhdGlvbicsJHRoaXMtPmdldF92YWxpZGF0aW9uKCkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RequiredFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVxdWlyZWRGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfUmVxdWlyZWRGaWVsZFZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkbmFtZXMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJG5hbWUgKSB7CiAgICAgICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICEkZmllbGQtPnJlcXVpcmVkICkgY29udGludWU7CiAgICAgICAgICAgICR1c2VydmFsID0gJGRhdGEtPmdldF9maWVsZF92YWx1ZSggJG5hbWUgKTsKICAgICAgICAgICAgaWYoICEgJHVzZXJ2YWwgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkZmllbGQtPm5hbWUsJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2lucHV0X21pc3NpbmdyZXF1aXJlZHZhbHVlJywkZmllbGQtPm5hbWUpKTsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RequiredFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVxdWlyZWRGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IFJlcXVpcmVkRmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1JlcXVpcmVkRmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBSZXF1aXJlZEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.SelectFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgU2VsZWN0RmllbGRWYWxpZGF0aW9uIGV4dGVuZHMgVmFsaWRhdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X1NlbGVjdEZpZWxkVmFsaWRhdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkbmFtZXMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJG5hbWUgKSB7CiAgICAgICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSBjb250aW51ZTsKICAgICAgICAgICAgJHVzZXJ2YWwgPSAkZGF0YS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkbmFtZSApOwogICAgICAgICAgICBpZiggISAkdXNlcnZhbCApIGNvbnRpbnVlOwoKICAgICAgICAgICAgc3dpdGNoKCAkZmllbGQtPnR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6CiAgICAgICAgICAgIGNhc2UgJ3JhZGlvJzoKICAgICAgICAgICAgY2FzZSAnY2hlY2tib3gnOgogICAgICAgICAgICBjYXNlICdidXR0b24nOgogICAgICAgICAgICAgICAgJHZhbGlkX3ZhbHVlcyA9ICRmaWVsZC0+Z2V0X29wdGlvbl92YWx1ZXMoKTsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdmFsaWRfdmFsdWVzKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCR1c2VydmFsKSApICR1c2VydmFsID0gWyAkdXNlcnZhbCBdOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICR1c2VydmFsIGFzICR2YWwgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGVtcHR5IHZhbHVlcyBhcmUgYWxsb3dlZC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYoICR2YWwgJiYgIWluX2FycmF5KCR2YWwsJHZhbGlkX3ZhbHVlcykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9iYWJseSBtZWFucyB0aGF0IG9uZSBvZiB0aGUgY2hlY2tib3hlcyBldGMuICBkb24ndCBoYXZlIHZhbHVlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKFxTbWFydEZvcm1zXEZpZWxkRXJyb3I6Ok5PTlNQRUNJRklDX0ZJRUxELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2ludmFsaWRfZmllbGR2YWx1ZScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.SelectFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgU2VsZWN0RmllbGRWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBTZWxlY3RGaWVsZFZhbGlkYXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfU2VsZWN0RmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBTZWxlY3RGaWVsZFZhbGlkYXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19pbnRlcmZhY2UoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.TemplateValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXFNtYXJ0Rm9ybXNcdXRpbHM7CgpjbGFzcyBUZW1wbGF0ZVZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF90ZW1wbGF0ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoICRrZXkgKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fdGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X1RlbXBsYXRlVmFsaWRhdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3RlbXBsYXRlID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgXFNtYXJ0Rm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxTbWFydEZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fdGVtcGxhdGUgKSByZXR1cm47CiAgICAgICAgJG91dCA9IHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+X3RlbXBsYXRlLCAkZm9ybSwgJHJlc3BvbnNlICk7CiAgICAgICAgJG91dCA9IHRyaW0oJG91dCk7CiAgICAgICAgaWYoICRvdXQgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbihcU21hcnRGb3Jtc1xGaWVsZEVycm9yOjpOT05TUEVDSUZJQ19GSUVMRCwkb3V0KTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.TemplateValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgVGVtcGxhdGVWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxTbWFydEZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBUZW1wbGF0ZVZhbGlkYXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfVGVtcGxhdGVWYWxpZGF0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF92YWxpZGF0aW9uKCBWYWxpZGF0aW9uICRpbiApCiAgICB7CiAgICAgICAgaWYoICEgJGluIGluc3RhbmNlb2YgVGVtcGxhdGVWYWxpZGF0aW9uICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB2YWxpZGF0aW9uIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gJGluOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfaW50ZXJmYWNlKCkgeyByZXR1cm4gVFJVRTsgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF90ZW1wbGF0ZSggJHRlbXBsYXRlICkKICAgIHsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X3RlbXBsYXRlKCAkdGVtcGxhdGUgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X3RlbXBsYXRlKFx4dF9wYXJhbTo6Z2V0X2h0bWwoJHBhcmFtcywndGVtcGxhdGUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF92YWxpZGF0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfdGVtcGxhdGV2YWxpZGF0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkcycsJGZvcm0tPmdldF9maWVsZF9saXN0KCkpOwogICAgICAgICR0cGwtPmFzc2lnbigndmFsaWRhdGlvbicsJHRoaXMtPmdldF92YWxpZGF0aW9uKCkpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxTbWFydEZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0pICk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.ValidationException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgVmFsaWRhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIFxTbWFydEZvcm1zXFZhbGlkYXRpb25FcnJvcgp7CiAgICBwcml2YXRlICRfZmllbGRfZXJyb3I7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCAkZmllbGRfbmFtZSwgJG1lc3NhZ2UgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkX2Vycm9yID0gbmV3IFxTbWFydEZvcm1zXEZpZWxkRXJyb3IoICRmaWVsZF9uYW1lLCAkbWVzc2FnZSApOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRtZXNzYWdlICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldEZpZWxkRXJyb3IoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkX2Vycm9yOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/interface.IValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKaW50ZXJmYWNlIElWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3VpZCgpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5X3N0cmluZyggXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciAkdHIgKTsKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcU21hcnRGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICk7Cn0gLy8gZW5kIG9mIGludGVyZmFjZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/interface.ValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0b3IoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdG9yKCBJVmFsaWRhdGlvbiAkaW4gKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKTsKfSAvLyBlbmQgb2YgaW50ZXJmYWNlCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/FormValidator/abstract.FormTesterTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKCmFic3RyYWN0IGNsYXNzIEZvcm1UZXN0ZXJUZXN0CnsKICAgIHByaXZhdGUgJF90cmFuc2xhdG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciAkb2JqICkKICAgIHsKICAgICAgICAkdGhpcy0+X3RyYW5zbGF0b3IgPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2xhdGUoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNsYXRvci0+dHJhbnNsYXRlKCAkYXJncyApOwogICAgfQoKICAgIC8vIHJldHVybnMgYW4gYXJyYXkgb2YgbWVzc2FnZXMsIG9yIG51bGwKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2Zvcm0oIGFycmF5ICRmb3JtcywgYXJyYXkgJGlucHV0cyApOwp9]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormDuplicateIdValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtRHVwbGljYXRlSWRWYWxpZGF0b3IgZXh0ZW5kcyBGb3JtVGVzdGVyVGVzdAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9mb3JtKCBhcnJheSAkZm9ybXMsIGFycmF5ICRpbnB1dHMgKQogICAgewogICAgICAgICRtYXAgPSAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkaW5wdXQgKSB7CiAgICAgICAgICAgICRpZCA9IHRyaW0oJGlucHV0LT5nZXRfYXR0cmlidXRlKCdpZCcpKTsKICAgICAgICAgICAgaWYoICEkaWQgKSBjb250aW51ZTsKICAgICAgICAgICAgJGxpbmUgPSAkaW5wdXQtPmdldF9saW5lKCk7CiAgICAgICAgICAgIGlmKCAhIGFycmF5X2tleV9leGlzdHMoJGlkLCRtYXApICkgewogICAgICAgICAgICAgICAgJG1hcFskaWRdID0gJGxpbmU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfZHVwbGljYXRlX2ZpZWxkaWQnLCRsaW5lLCRpZCwkbWFwWyRpZF0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormDuplicateNameValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtRHVwbGljYXRlTmFtZVZhbGlkYXRvciBleHRlbmRzIEZvcm1UZXN0ZXJUZXN0CnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2Zvcm0oIGFycmF5ICRmb3JtcywgYXJyYXkgJGlucHV0cyApCiAgICB7CiAgICAgICAgJG1hcCA9ICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkaW5wdXRzIGFzICRpbnB1dCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgaWYoICEkbmFtZSApIGNvbnRpbnVlOyAvLyBhbHJlYWR5IGNoZWNrIGZvciB0aGlzCiAgICAgICAgICAgICR0eXBlID0gc3RydG9sb3dlcigkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ3R5cGUnKSk7CiAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnaGlkZGVuJyApIGNvbnRpbnVlOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IGhpZGRlbiBmaWVsZHMuCiAgICAgICAgICAgICRsaW5lID0gJGlucHV0LT5nZXRfbGluZSgpOwogICAgICAgICAgICAkaXNfbXVsdGlwbGUgPSBlbmRzd2l0aCgkbmFtZSwnW10nKTsKICAgICAgICAgICAgaWYoICEgYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwkbWFwKSApIHsKICAgICAgICAgICAgICAgICRtYXBbJG5hbWVdID0gWyR0eXBlLCRsaW5lXTsKICAgICAgICAgICAgfSBlbHNlIGlmKCAkdHlwZSAhPSAkbWFwWyRuYW1lXVswXSApIHsKICAgICAgICAgICAgICAgIC8vIGNoYW5nZSBvZiBmaWVsZCB0eXBlCiAgICAgICAgICAgICAgICAvLyBidXQgaWYgdGhlIHByZXZpb3VzIHR5cGUgd2FzIGhpZGRlbiwgd2UgYWNjZXB0IHRoYXQuCiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfZHVwbGljYXRlX2ZpZWxkbmFtZScsJGxpbmUsJG1hcFskbmFtZV1bMV0pOwogICAgICAgICAgICB9IGVsc2UgaWYoICEkaXNfbXVsdGlwbGUgJiYgJHR5cGUgIT0gJ3JhZGlvJyAmJiAkdHlwZSAhPSAnY2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgLy8gcmFkaW8gYW5kIGNoZWNrYm94IGZpZWxkcyBjYW4gdmFsaWRseSBvY2N1ciBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIG5hbWUuCiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfZHVwbGljYXRlX2ZpZWxkbmFtZScsJGxpbmUsJG1hcFskbmFtZV1bMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormMissingLabelValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtTWlzc2luZ0xhYmVsVmFsaWRhdG9yIGV4dGVuZHMgRm9ybVRlc3RlclRlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZm9ybSggYXJyYXkgJGZvcm1zLCBhcnJheSAkaW5wdXRzICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkaW5wdXQgKSB7CiAgICAgICAgICAgIGlmKCAhJGlucHV0LT5nZXRfbGFiZWwoKSApIHsKICAgICAgICAgICAgICAgICRuYW1lID0gJGlucHV0LT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgICAgICBpZiggISRuYW1lICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdHlwZSA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndHlwZScpOwogICAgICAgICAgICAgICAgaWYoICR0eXBlID09ICdyZXNldCcgfHwgJHR5cGUgPT0gJ3N1Ym1pdCcgfHwgJHR5cGUgPT0gJ2hpZGRlbicgKSBjb250aW51ZTsKCQlpZiggJGlucHV0LT5nZXRfYXR0cmlidXRlKCdkYXRhLXNtdGZtLW5vbGFiZWwnKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoICRpbnB1dCBpbnN0YW5jZW9mIFxTbWFydEZvcm1zXERPTUJ1dHRvbkZpZWxkICkgY29udGludWU7IC8vIG5vdCBuZWVkZWQKICAgICAgICAgICAgICAgICRvdXRbXSA9ICR0aGlzLT50cmFuc2xhdGUoJ2Vycl9pbnB1dF9taXNzaW5nbGFiZWwnLCRuYW1lLCRpbnB1dC0+Z2V0X2xpbmUoKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormMissingNameValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtTWlzc2luZ05hbWVWYWxpZGF0b3IgZXh0ZW5kcyBGb3JtVGVzdGVyVGVzdAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9mb3JtKCBhcnJheSAkZm9ybXMsIGFycmF5ICRpbnB1dHMgKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkaW5wdXRzIGFzICRpbnB1dCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgJHR5cGUgPSBzdHJ0b2xvd2VyKCRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndHlwZScpKTsKICAgICAgICAgICAgaWYoICEkdHlwZSApICR0eXBlID0gc3RydG9sb3dlcigkaW5wdXQtPmdldF9ub2RlbmFtZSgpKTsKICAgICAgICAgICAgaWYoICR0eXBlID09ICdyZXNldCcgfHwgJHR5cGUgPT0gJ3N1Ym1pdCcgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICEkdHlwZSApICR0eXBlID0gJz8/JzsKCiAgICAgICAgICAgIGlmKCAhJG5hbWUgKSB7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbWlzc2luZ25hbWUnLCR0eXBlLCRpbnB1dC0+Z2V0X2xpbmUoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBhbHNvIGNoZWNrIGZvciBpbnZhbGlkIG5hbWVzLgogICAgICAgICAgICAgICAgJHJlZ2V4ID0gJy9eW19hLXpdW19hLXowLTlcW1xdXSokL2knOwogICAgICAgICAgICAgICAgaWYoICFwcmVnX21hdGNoKCAkcmVnZXgsICRuYW1lKSApIHsKICAgICAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfaW52YWxpZG5hbWUnLCR0eXBlLCRpbnB1dC0+Z2V0X2xpbmUoKSwkbmFtZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormMissingValueValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtTWlzc2luZ1ZhbHVlVmFsaWRhdG9yIGV4dGVuZHMgRm9ybVRlc3RlclRlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZm9ybSggYXJyYXkgJGZvcm1zLCBhcnJheSAkaW5wdXRzICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkaW5wdXQgKSB7CiAgICAgICAgICAgIGlmKCAkaW5wdXQgaW5zdGFuY2VvZiBcU21hcnRGb3Jtc1xET01JbnB1dEZpZWxkICkgewogICAgICAgICAgICAgICAgJHR5cGUgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ3R5cGUnKTsKICAgICAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAncmFkaW8nIHx8ICR0eXBlID09ICdjaGVja2JveCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndmFsdWUnKTsKICAgICAgICAgICAgICAgICAgICAkdHlwZSA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndHlwZScpOwogICAgICAgICAgICAgICAgICAgICRuYW1lID0gJGlucHV0LT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgICAgICAgICAgaWYoICEkbmFtZSApICRuYW1lID0gJz8/JzsKICAgICAgICAgICAgICAgICAgICBpZiggISR2YWwgJiYgJHR5cGUgIT0gJ2hpZGRlbicgKSAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbWlzc2luZ3ZhbHVlJywkdHlwZSwkbmFtZSwkaW5wdXQtPmdldF9saW5lKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormTagValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtVGFnVmFsaWRhdG9yIGV4dGVuZHMgRm9ybVRlc3RlclRlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZm9ybSggYXJyYXkgJGZvcm1zLCBhcnJheSAkaW5wdXRzICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgaWYoIGNvdW50KCRmb3JtcykgPCAxICkgdGhyb3cgbmV3IEZvcm1WYWxpZGF0aW9uRXJyb3IoJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX25vZm9ybXMnKSk7CiAgICAgICAgaWYoIGNvdW50KCRmb3JtcykgPiAxICkgdGhyb3cgbmV3IEZvcm1WYWxpZGF0aW9uRXJyb3IoJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX21hbnlmb3JtcycpKTsKICAgICAgICBpZiggaXNzZXQoJF9TRVNTSU9OWydoYXZlX2Zvcm1zdGFydF9zbWFydHl0YWcnXSkgKSB7CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnaGF2ZV9mb3Jtc3RhcnRfc21hcnR5dGFnJ10pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRmb3JtID0gJGZvcm1zWzBdOwogICAgICAgICAgICBpZiggJGZvcm0tPmhhc19hdHRyaWJ1dGUoJ2FjdGlvbicpICkgJG91dFtdID0gJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX2Zvcm1fYWN0aW9uYXR0cicpOwogICAgICAgICAgICBpZiggJGZvcm0tPmhhc19hdHRyaWJ1dGUoJ21ldGhvZCcpICkgJG91dFtdID0gJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX2Zvcm1fbWV0aG9kYXR0cicpOwogICAgICAgICAgICBpZiggJGZvcm0tPmhhc19hdHRyaWJ1dGUoJ2VuY3R5cGUnKSApICRvdXRbXSA9ICR0aGlzLT50cmFuc2xhdGUoJ2Vycl9mb3JtX2VuY3R5cGVhdHRyJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.TemplateTesterTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKCmFic3RyYWN0IGNsYXNzIFRlbXBsYXRlVGVzdGVyVGVzdCBleHRlbmRzIEZvcm1UZXN0ZXJUZXN0CnsKICAgIC8vIHJldHVybnMgYW4gYXJyYXkgb2YgbWVzc2FnZXMgb3IgbnVsbAogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHRlc3RfdGVtcGxhdGUoICRzdHIgKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9mb3JtKCBhcnJheSAkZm9ybXMsIGFycmF5ICRpbnB1dHMgKSB7fSAvLyBkbyBub3RoaW5nCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.TemplateValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBUZW1wbGF0ZVZhbGlkYXRvciBleHRlbmRzIFRlbXBsYXRlVGVzdGVyVGVzdAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF90ZW1wbGF0ZSggJHN0ciApCiAgICB7CiAgICAgICAgLy8gcmV0dXJuIGFuIGFycmF5IG9mIG1lc3NhZ2VzCiAgICAgICAgLy8gY2hlY2sgZm9yIHtmb3JtX3N0YXJ0fSBvciA8Zm9ybSAoZXhjZXB0aW9uKQogICAgICAgIGlmKCBzdHJwb3MoJHN0ciwne2Zvcm1fc3RhcnQnKSAhPT0gRkFMU0UgKSAkX1NFU1NJT05bJ2hhdmVfZm9ybXN0YXJ0X3NtYXJ0eXRhZyddID0gMTsKICAgICAgICBpZiggc3RycG9zKCRzdHIsJ3tmb3JtX3N0YXJ0JykgPT09IEZBTFNFICYmIHN0cmlwb3MoJHN0ciwnPGZvcm0nKSA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgRm9ybVZhbGlkYXRpb25FcnJvcigkdGhpcy0+dHJhbnNsYXRlKCdlcnJfbWlzc2luZ19mb3Jtc3RhcnQnKSk7CgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIC8vIGNoZWNrIGZvciB7Zm9ybV9lbmR9IG9yIDwvZm9ybSAobWVzc2FnZSkKICAgICAgICBpZiggc3RycG9zKCRzdHIsJ3tmb3JtX2VuZCcpID09PSBGQUxTRSAmJiAhc3RyaXBvcygkc3RyLCc8L2Zvcm0nKSApICRvdXRbXSA9ICR0aGlzLT50cmFuc2xhdGUoJ2Vycl9taXNzaW5nX2Zvcm1lbmQnKTsKCiAgICAgICAgaWYoIHN0cnBvcygkc3RyLCd7c210Zm1fZm9ybV9lcnJvcnMnKSA9PT0gRkFMU0UgKSAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfbWlzc2luZ19tZXNzYWdlc3RyaW5nJyk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgICAgLy8gY2hlY2sgZm9yIHtzbXRmbV9mb3JtX2Vycm9yfSB0YWcuKG1lc3NhZ2UpCiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.FormStorageInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgppbnRlcmZhY2UgRm9ybVN0b3JhZ2VJbnRlcmZhY2UKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0YWJsZV9uYW1lKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gU2F2ZSggRm9ybSAkZm9ybSApOwogICAgcHVibGljIGZ1bmN0aW9uIGxpc3RfYWxsKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZCggJG5hbWUgKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKCAkaWQgKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBleGlzdHMoICRuYW1lICk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCBGb3JtICRmb3JtICk7Cn0gLy8gaW50ZXJmYWNl]]></data>
	</file>
	<file>
	  <filename>/lib/interface.ICaptchaProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgppbnRlcmZhY2UgSUNhcHRjaGFQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcHRjaGFfZGlzcGxheSgpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXB0Y2hhX2lucHV0ZmllbGQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jYXB0Y2hhKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IFormScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgppbnRlcmZhY2UgSUZvcm1TY2FubmVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbW9kaWZpZWRfdGltZSgpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9mb3JtcygpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZHMoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfY2FwdGNoYSgpOwp9]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IFormTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7CgppbnRlcmZhY2UgSUZvcm1UZXN0ZXIgIHt9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/trait.DOMLabelFieldTrait.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFNtYXJ0Rm9ybXM7Cgp0cmFpdCBET01MYWJlbEZpZWxkVHJhaXQKewogICAgcHJpdmF0ZSAkX2xhYmVsOwoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kUGFyZW50TGFiZWwoXERPTUVsZW1lbnQgJG5vZGUpCiAgICB7CiAgICAgICAgLy8gYSBmdW5jdGlvbiwgZ2l2ZW4gYSBsYWJlbCB0byBnZXQgc29tZSB0ZXh0LgogICAgICAgICRnZXRfbGFiZWx0ZXh0ID0gZnVuY3Rpb24oXERvbU5vZGUgJG5vZGUpIHsKICAgICAgICAgICAgaWYoIHN0cnRvbG93ZXIoJG5vZGUtPm5vZGVOYW1lKSAhPSAnbGFiZWwnICkgcmV0dXJuOwogICAgICAgICAgICBpZiggISRub2RlLT5oYXNDaGlsZE5vZGVzKCkgKSByZXR1cm4gJGNoaWxkLT5ub2RlVmFsdWU7CiAgICAgICAgICAgICRvdXQgPSBudWxsOwogICAgICAgICAgICBmb3JlYWNoKCAkbm9kZS0+Y2hpbGROb2RlcyBhcyAkY2hpbGQgKSB7CiAgICAgICAgICAgICAgICBpZiggJGNoaWxkLT5ub2RlVHlwZSA9PSAzICkgJG91dCAuPSAkY2hpbGQtPnRleHRDb250ZW50OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH07CgogICAgICAgIC8vIGlmIHdlIGhhdmUgYSBkYXRhLXNtdGZtLWxhYmVsIGF0dHJpYnV0ZQogICAgICAgIGlmKCAoJHR4dCA9ICRub2RlLT5nZXRBdHRyaWJ1dGUoJ2RhdGEtc210Zm0tbGFiZWwnKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdHh0OwogICAgICAgIH0KCiAgICAgICAgLy8gaWYgd2Ugd2VyZSB3cmFwcGVkIGJ5IGEgbGFiZWwKICAgICAgICBpZiggJG5vZGUtPnBhcmVudE5vZGUgJiYgc3RydG9sb3dlcigkbm9kZS0+cGFyZW50Tm9kZS0+bm9kZU5hbWUpID09ICdsYWJlbCcgKSB7CiAgICAgICAgICAgIHJldHVybiAkZ2V0X2xhYmVsdGV4dCgkbm9kZS0+cGFyZW50Tm9kZSk7CiAgICAgICAgfQoKICAgICAgICAvLyBzZWFyY2ggYmFja3dhcmRzIHRocm91Z2ggcGVlcnMgZm9yIGEgbGFiZWwuCiAgICAgICAgJHByZXYgPSAoJG5vZGUtPnByZXZpb3VzU2libGluZykgPyAkbm9kZS0+cHJldmlvdXNTaWJsaW5nICA6IG51bGw7CiAgICAgICAgd2hpbGUoICRwcmV2ICkgewogICAgICAgICAgICAkbm9kZW5hbWUgPSBzdHJ0b2xvd2VyKCRwcmV2LT5ub2RlTmFtZSk7CiAgICAgICAgICAgIGlmKCAkbm9kZW5hbWUgPT0gJ2lucHV0JyB8fCAkbm9kZW5hbWUgPT0gJ3NlbGVjdCcgfHwgJG5vZGVuYW1lID09ICd0ZXh0YXJlYScgKSBicmVhazsKICAgICAgICAgICAgaWYoICRub2RlbmFtZSA9PSAnbGFiZWwnICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRnZXRfbGFiZWx0ZXh0KCRwcmV2KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcHJldiA9ICRwcmV2LT5wcmV2aW91c1NpYmxpbmc7CiAgICAgICAgfQoKICAgICAgICAvLyBjaGVjayB1cCB0byAzIGxldmVscyBvZiBwYXJlbnQgZm9yIGEgbGFiZWwgd2l0aCBhIGZvciBhdHRyaWJ1dGUgdGhhdCBtYXRjaGVzIHRoaXMgaWQuCiAgICAgICAgJGN1cnJlbnRfaWQgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCdpZCcpOwogICAgICAgIGlmKCAkY3VycmVudF9pZCApIHsKICAgICAgICAgICAgJHBhcmVudCA9ICRub2RlOwogICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCA1OyAkaSsrICkgewogICAgICAgICAgICAgICAgaWYoICRwYXJlbnQtPnBhcmVudE5vZGUgKSAkcGFyZW50ID0gJHBhcmVudC0+cGFyZW50Tm9kZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHdhbGsgPSBmdW5jdGlvbigkY2hpbGRyZW4pIHVzZSAoJiR3YWxrLCAmJGdldF9sYWJlbHRleHQpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRjaGlsZHJlbiBhcyAkY2hpbGQgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIHN0cnRvbG93ZXIoJGNoaWxkLT5ub2RlTmFtZSkgPT0gJ2xhYmVsJyAmJiAoKHN0cmluZykgJGNoaWxkLT5nZXRBdHRyaWJ1dGUoJ2ZvcicpID09ICRjdXJyZW50X2lkKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRnZXRfbGFiZWx0ZXh0KCRjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRjaGlsZC0+aGFzQ2hpbGROb2RlcygpICkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHdhbGsoJGNoaWxkLT5jaGlsZE5vZGVzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgICR0ZXh0ID0gJHdhbGsoJG5vZGUtPmNoaWxkTm9kZXMpOwogICAgICAgICAgICBpZiggJHRleHQgKSByZXR1cm4gJHRleHQ7CiAgICAgICAgfQoKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhYmVsKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9sYWJlbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2xhYmVsKCRzdHIpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sYWJlbCA9IHRyaW0oJHN0cik7CiAgICB9Cn0gLy8gZW5kIG9mIHRyYWl0]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJHRoaXMtPkluaXRpYWxpemVBZG1pbigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCAnbXlzcWxpJyA9PiAnRU5HSU5FPUlubm9EQicgKTsKCiRmbGRzID0gImlkIEkgS0VZIEFVVE8sCiAgICAgICAgIG5hbWUgQygyNTUpIEtFWSBOT1ROVUxMLAogICAgICAgICBkYXRhIFgyLAogICAgICAgICBjcmVhdGVkIEksCiAgICAgICAgIG1vZGlmaWVkIEkKICAgICAgICAgIjsKJHNxbGFyciA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCggXFNtYXJ0Rm9ybXNcRm9ybURBTzo6dGFibGVfbmFtZSgpLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnIgKTsKCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKFNtYXJ0Rm9ybXM6Ok1BTkFHRV9QRVJNLCdNYW5hZ2UgU21hcnRGb3JtcycpOwoKLy8gdGVtcGxhdGUgc3R1ZmYKdHJ5IHsKICAgICR0cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCdTbWFydEZvcm1zJyk7CiAgICAkdHBsX3R5cGUtPnNldF9uYW1lKCdGb3JtJyk7CiAgICAkdHBsX3R5cGUtPnNldF9oZWxwX2NhbGxiYWNrKCdTbWFydEZvcm1zOjp0cGxfdHlwZV9oZWxwX2NhbGxiYWNrJyk7CiAgICAkdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdTbWFydEZvcm1zOjp0cGxfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAkdHBsX3R5cGUtPnNhdmUoKTsKfQpjYXRjaCggXENtc0V4Y2VwdGlvbiAkZSApIHsKICAgIFx4dF91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICBhdWRpdCgnJywnU21hcnRGb3JtcycsJ0luc3RhbGwgZXJyb3I6ICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KCiR0cGxfdHlwZSA9IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGU6OmxvYWQoJ1NtYXJ0Rm9ybXM6OkZvcm0nKTsKCiRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSA9IGZ1bmN0aW9uKCR0eXBlX29iLCRuYW1lLCRjb250ZW50cywkZGZsdCA9IGZhbHNlKSB7CiAgICAkb2IgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlKCk7CiAgICAkb2ItPnNldF90eXBlKCAkdHlwZV9vYiApOwogICAgJG9iLT5zZXRfY29udGVudCggJGNvbnRlbnRzICk7CiAgICAkb2ItPnNldF9vd25lciggZ2V0X3VzZXJpZCgpICk7CiAgICAkbmV3X25hbWUgPSAkb2ItPmdlbmVyYXRlX3VuaXF1ZV9uYW1lKCAkbmFtZSApOwogICAgJG9iLT5zZXRfbmFtZSggJG5ld19uYW1lICk7CiAgICAkb2ItPnNhdmUoKTsKICAgIHJldHVybiAkb2I7Cn07CgokZG9fZm9ybV9zY2FuID0gZnVuY3Rpb24oIFxTbWFydEZvcm1zICRtb2QsIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0gKSB7CiAgICAkdGVtcGxhdGVfb2JqID0gXENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCAkZm9ybS0+dGVtcGxhdGVfaWQgKTsKICAgICRzY2FubmVyID0gbmV3IFxTbWFydEZvcm1zXFRlbXBsYXRlRm9ybVNjYW5uZXIoICRtb2QsICRmb3JtLCAkdGhpcy0+Z2V0X3RyYW5zbGF0b3IoKSApOyAvLyBjYW4gdGhyb3cgZXhjZXB0aW9uIGZvciBtdWx0aXBsZSBmb3JtcyBldGMuCiAgICAkdGVzdGVyID0gbmV3IFxTbWFydEZvcm1zXFRlbXBsYXRlRm9ybVRlc3RlciggJHNjYW5uZXIsICR0aGlzLT5nZXRfZm9ybXRlc3RzKCkgKTsKICAgICRyZXN1bHRzID0gbmV3IFxTbWFydEZvcm1zXFNjYW5uZWRUZW1wbGF0ZSggJHNjYW5uZXIsICR0ZXN0ZXIgKTsKICAgIHJldHVybiAkcmVzdWx0czsKfTsKCi8vIGNyZWF0ZSBhIHNhbXBsZSBjb250YWN0IGZvcm0uCi8vICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiRjb250ZW50cyA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ19jb250YWN0X2Zvcm0udHBsJyk7CiR0cGwgPSAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICR0cGxfdHlwZSwgJ0NvbnRhY3QgRm9ybScsICRjb250ZW50cyApOwokZGF0YSA9IFtdOwokZGF0YVsnbmFtZSddID0gJ1NhbXBsZSBjb250YWN0IGZvcm0nOwokZGF0YVsnZGVzY3JpcHRpb24nXSA9ICdTYW1wbGUgY29udGFjdCBmb3JtJzsKJGRhdGFbJ3RlbXBsYXRlX2lkJ10gPSAkdHBsLT5nZXRfaWQoKTsKJGRhdGFbJ2ZpbmFsbXNnJ10gPSAnWW91ciBpbnB1dCBpcyB2YWx1YWJsZSB0byB1cy4gIFdlIHdpbGwgZ2V0IGJhY2sgdG8geW91IHNvb24nOwokZGF0YVsnc210Zm1fdmVyc2lvbiddID0gJHRoaXMtPkdldFZlcnNpb24oKTsKJGZvcm0gPSBuZXcgXFNtYXJ0Rm9ybXNcRm9ybSgkZGF0YSk7CiRyZXMgPSAkZG9fZm9ybV9zY2FuKCAkdGhpcywgJGZvcm0gKTsKJGZvcm0tPmFkanVzdFdpdGgoIFsnZmllbGRzJz0+JHJlcy0+Z2V0X2ZpZWxkcygpICwgJ2ZpZWxkX21lc3NhZ2VzJz0+JHJlcy0+Z2V0X21lc3NhZ2VzKCksICdoYXNfY2FwdGNoYSc9PiRyZXMtPmhhc19jYXB0Y2hhKCkgXSApOwokdmFsaWRhdGlvbiA9IG5ldyBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcSHRtbERldGVjdGlvblZhbGlkYXRpb24oKTsKJGZvcm0tPnNldFZhbGlkYXRpb24oICR2YWxpZGF0aW9uICk7CiR2YWxpZGF0aW9uID0gbmV3IFxTbWFydEZvcm1zXEZpZWxkVmFsaWRhdG9yc1xFbWFpbEZpZWxkVmFsaWRhdGlvbigpOwokdmFsaWRhdGlvbi0+c2V0X2ZpZWxkTmFtZSggJ2VtYWlsJyApOwokZm9ybS0+c2V0VmFsaWRhdGlvbiggJHZhbGlkYXRpb24gKTsKJGVkaXRvciA9IG5ldyBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcVW5pcXVlRmlsZURpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApOwokZWRpdG9yLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CiRmb3JtLT5zZXREaXNwb3NpdGlvbiggJGVkaXRvci0+Z2V0X2Rpc3Bvc2l0aW9uKCkgKTsKJHRoaXMtPmZvcm1zdG9yYWdlLT5TYXZlKCAkZm9ybSApOwoKLy8gY3JlYXRlIGEgc2FtcGxlIGFkdmFuY2VkIGNvbnRhY3QgZm9ybQokY29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvdGVtcGxhdGVzL29yaWdfYWR2YW5jZWRfY29udGFjdF9mb3JtLnRwbCcpOwokdHBsID0gJGNyZWF0ZV90ZW1wbGF0ZV9vZl90eXBlKCAkdHBsX3R5cGUsICdNb3JlIGFkdmFuY2VkIGNvbnRhY3QgZm9ybScsICRjb250ZW50cyApOwokZGF0YSA9IFtdOwokZGF0YVsnbmFtZSddID0gJ01vcmUgYWR2YW5jZWQgY29udGFjdCBmb3JtJzsKJGRhdGFbJ2Rlc2NyaXB0aW9uJ10gPSAnTW9yZSBhZHZhbmNlZCBjb250YWN0IGZvcm0uICBUaGlzIGZvcm0gZGVtb25zdHJhdGVzIHJlcXVpcmVkIGZpZWxkcywgSFRNTDUgaW5wdXQgdHlwZXMsIGFuZCBkYXRhIGF0dHJpYnV0ZXMuJzsKJGRhdGFbJ3RlbXBsYXRlX2lkJ10gPSAkdHBsLT5nZXRfaWQoKTsKJGRhdGFbJ2ZpbmFsbXNnJ10gPSAnWW91ciBpbnB1dCBpcyB2YWx1YWJsZSB0byB1cy4gIFdlIHdpbGwgZ2V0IGJhY2sgdG8geW91IHNvb24nOwokZGF0YVsnc210Zm1fdmVyc2lvbiddID0gJHRoaXMtPkdldFZlcnNpb24oKTsKJGZvcm0gPSBuZXcgXFNtYXJ0Rm9ybXNcRm9ybSgkZGF0YSk7CiRyZXMgPSAkZG9fZm9ybV9zY2FuKCAkdGhpcywgJGZvcm0gKTsKJGZvcm0tPmFkanVzdFdpdGgoIFsnZmllbGRzJz0+JHJlcy0+Z2V0X2ZpZWxkcygpICwgJ2ZpZWxkX21lc3NhZ2VzJz0+JHJlcy0+Z2V0X21lc3NhZ2VzKCksICdoYXNfY2FwdGNoYSc9PiRyZXMtPmhhc19jYXB0Y2hhKCkgXSApOwovLyBub3cgYXV0b21hdGljYWxseSBhZGQgdmFsaWRhdGlvbnMKJHNjYW5uZXIgPSBuZXcgXFNtYXJ0Rm9ybXNcVmFsaWRhdGlvblNjYW5uZXIoICR0aGlzLCAkZm9ybSwgJHJlcy0+Z2V0X2ZpZWxkcygpICk7CiR2YWxpZGF0aW9ucyA9ICRzY2FubmVyLT5nZXRfdmFsaWRhdGlvbnMoKTsKaWYoIGNvdW50KCR2YWxpZGF0aW9ucykgKSB7CiAgICBmb3JlYWNoKCAkdmFsaWRhdGlvbnMgYXMgJG9iaiApIHsKICAgICAgICAkZm9ybS0+c2V0VmFsaWRhdGlvbigkb2JqKTsKICAgIH0KfQokZWRpdG9yID0gbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xVbmlxdWVGaWxlRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICk7CiRlZGl0b3ItPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKJGZvcm0tPnNldERpc3Bvc2l0aW9uKCAkZWRpdG9yLT5nZXRfZGlzcG9zaXRpb24oKSApOwokZWRpdG9yID0gbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICk7CiRlZGl0b3ItPnNldF9hZGRyZXNzZXMoICd5b3VyX2VtYWlsX2FkZHJlc3NfaGVyZUBsb2NhbGhvc3QubG9jYWxkb21haW4nICk7CiRlZGl0b3ItPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKJGZvcm0tPnNldERpc3Bvc2l0aW9uKCAkZWRpdG9yLT5nZXRfZGlzcG9zaXRpb24oKSApOwokdGhpcy0+Zm9ybXN0b3JhZ2UtPlNhdmUoICRmb3JtICk7CgovLyBjcmVhdGUgc2FtcGxlIHRyaXZpYWwgd2lkZ2V0IGJ1aWxkZXIuCiRjb250ZW50cyA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ190cml2aWFsX3dpZGdldF9idWlsZGVyLnRwbCcpOwokdHBsID0gJGNyZWF0ZV90ZW1wbGF0ZV9vZl90eXBlKCAkdHBsX3R5cGUsICdUcml2aWFsIFdpZGdldCBCdWlsZGVyJywgJGNvbnRlbnRzICk7CiRkYXRhID0gW107CiRkYXRhWyduYW1lJ10gPSAnVHJpdmlhbCBXaWRnZXQgQnVpbGRlcic7CiRkYXRhWydkZXNjcmlwdGlvbiddID0gJ0EgdHJpdmlhbCB3aWRnZXQgYnVpbGRlci4gIFRoaXMgZm9ybSBkZW1vbnN0cmF0ZXMgdXNpbmcganF1ZXJ5IHRvIHBlcmZvcm0gY2FsY3VsYXRpb25zLCBhbmQgdGhlIGRhdGEtc210Zm0tc2VsZWN0ZWQgYXR0cmlidXRlLic7CiRkYXRhWyd0ZW1wbGF0ZV9pZCddID0gJHRwbC0+Z2V0X2lkKCk7CiRkYXRhWydmaW5hbG1zZyddID0gJzxwPlRoYW5rIHlvdSBmb3IgeW91ciBzdWJtaXNzaW9uPC9wPic7CiRkYXRhWydzbXRmbV92ZXJzaW9uJ10gPSAkdGhpcy0+R2V0VmVyc2lvbigpOwokZm9ybSA9IG5ldyBcU21hcnRGb3Jtc1xGb3JtKCRkYXRhKTsKJHJlcyA9ICRkb19mb3JtX3NjYW4oICR0aGlzLCAkZm9ybSApOwokZm9ybS0+YWRqdXN0V2l0aCggWydmaWVsZHMnPT4kcmVzLT5nZXRfZmllbGRzKCkgLCAnZmllbGRfbWVzc2FnZXMnPT4kcmVzLT5nZXRfbWVzc2FnZXMoKSwgJ2hhc19jYXB0Y2hhJz0+JHJlcy0+aGFzX2NhcHRjaGEoKSBdICk7Ci8vIG5vdyAgbWFudWFsbHkgYWRkIGEgdmFsaWRhdGlvbgokZWRpdG9yID0gbmV3IFxTbWFydEZvcm1zXEZpZWxkVmFsaWRhdG9yc1xUZW1wbGF0ZVZhbGlkYXRpb25FZGl0b3IoICR0aGlzICk7CiRlZGl0b3ItPnNldF90ZW1wbGF0ZSgie2lmIFwkcmVzcG9uc2UtPndpZGdldF9zaXplID09ICdtZWRpdW0nICYmIFwkcmVzcG9uc2UtPndpZGdldF9jb2xvciA9PSAncmVkJ31Tb3JyeSwgd2UgZG8gbm90IGhhdmUgdGhhdCBpbiBzdG9ja3svaWZ9Iik7CiRmb3JtLT5zZXRWYWxpZGF0aW9uKCRlZGl0b3ItPmdldF92YWxpZGF0aW9uKCkpOwokdGhpcy0+Zm9ybXN0b3JhZ2UtPlNhdmUoICRmb3JtICk7Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSggJ215c3FsaScgPT4gJ0VOR0lORT1Jbm5vREInICk7Cgokc3FsYXJyID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggXFNtYXJ0Rm9ybXNcRm9ybURBTzo6dGFibGVfbmFtZSgpICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycik7CgokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbihTbWFydEZvcm1zOjpNQU5BR0VfUEVSTSk7CgovLyB0ZW1wbGF0ZSBzdHVmZgp0cnkgewogICAgJHR5cGVzID0gXENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZF9hbGxfYnlfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgIGlmKCBpc19hcnJheSgkdHlwZXMpICYmIGNvdW50KCR0eXBlcykgKSB7CiAgICAgICAgZm9yZWFjaCggJHR5cGVzIGFzICR0eXBlICkgewogICAgICAgICAgICAkdGVtcGxhdGVzID0gJHR5cGUtPmdldF90ZW1wbGF0ZV9saXN0KCk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdGVtcGxhdGVzKSAmJiBjb3VudCgkdGVtcGxhdGVzKSApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlICkgewogICAgICAgICAgICAgICAgICAgICR0ZW1wbGF0ZS0+ZGVsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHR5cGUtPmRlbGV0ZSgpOwogICAgICAgIH0KICAgIH0KfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIFx4dF91dGlsczo6bG9nX2V4Y2VwdGlvbiggJGUgKTsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ1VuaW5zdGFsbCBlcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJTbWFydEZvcm1zIgp2ZXJzaW9uID0gIjIuMC4wIgphdXRob3IgPSAiRmVybmFuZG8gTW9yZ2FkbyAoSm8gTW9yZykiCmF1dGhvcmVtYWlsID0gImpvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZyIKbWluY21zdmVyc2lvbiA9ICIyLjIuOSIKbGF6eWxvYWRhZG1pbiA9IDAKbGF6eWxvYWRmcm9udGVuZCA9IDAKW2RlcGVuZHNdCkNNU01TRXh0ID0gIjEuMC4wIgo=]]></data>
	</file>
	<file>
	  <filename>/SmartForms.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKdXNlIFNtYXJ0Rm9ybXNcRm9ybTsKdXNlIFNtYXJ0Rm9ybXNcVGVtcGxhdGVGb3JtU2Nhbm5lcjsKdXNlIFNtYXJ0Rm9ybXNcVGVtcGxhdGVGb3JtVGVzdGVyOwp1c2UgU21hcnRGb3Jtc1xTY2FubmVkVGVtcGxhdGU7CnVzZSBTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xEaXNwb3NpdGlvbjsKdXNlIFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXERpc3Bvc2l0aW9uRWRpdG9yOwp1c2UgU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcVmFsaWRhdGlvbjsKdXNlIFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXFZhbGlkYXRpb25FZGl0b3I7CgovKmZpbmFsKi8gY2xhc3MgU21hcnRGb3JtcyBleHRlbmRzIFxDTVNNU0V4dAp7CiAgICBjb25zdCBNQU5BR0VfUEVSTSA9ICdTbWFydEZvcm1zOjpNQU5BR0VfUEVSTSc7CiAgICBwcml2YXRlICRfZWFybHlfZm9ybXRlc3RzID0gW107CiAgICBwcml2YXRlICRfZm9ybXRlc3RzID0gW107CiAgICBwcml2YXRlICRfdmFsaWRhdGlvbl9lZGl0b3JzID0gW107CiAgICBwcml2YXRlICRfZGlzcF9lZGl0b3JzID0gW107CiAgICBwcml2YXRlICRfY2FwdGNoYV9wcm92aWRlcjsKICAgIHByb3RlY3RlZCAkX3JlcXVlc3RfZXJyb3JzOwogICAgcHJvdGVjdGVkICRmb3Jtc3RvcmFnZTsKICAgIHByb3RlY3RlZCAkdHJhbnNsYXRvcjsKICAgIHByb3RlY3RlZCAkX2luX3ByZXJlbmRlcjsKICAgIHByb3RlY3RlZCAkX3ByZXJlbmRlcl92YXJzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgIGlmKCAhJHNtYXJ0eSApIHJldHVybjsKCiAgICAgICAgc3RhdGljICRfZG9uZTsKICAgICAgICBpZiggJF9kb25lICkgcmV0dXJuOwogICAgICAgICRfZG9uZSA9IHRydWU7CgogICAgICAgICR0aGlzLT5mb3Jtc3RvcmFnZSA9IG5ldyBcU21hcnRGb3Jtc1xGb3JtREFPKCAkdGhpcywgJHRoaXMtPmdldF9leHRlbmRlZF9kYigpICk7CiAgICAgICAgJHRoaXMtPnRyYW5zbGF0b3IgPSBuZXcgXFNtYXJ0Rm9ybXNcVHJhbnNsYXRvciggJHRoaXMgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfYnVpbHRpbl9mb3JtX3Rlc3RzKCk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2J1aWx0aW5fZGlzcF9lZGl0b3JzKCk7CiAgICAgICAgXFNtYXJ0Rm9ybXNcdXRpbHM6OnNldF90cmFuc2xhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXREZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcyLjAuMCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIFRSVUU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKHNlbGY6Ok1BTkFHRV9QRVJNKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DbXNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMi45JzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIFsgJ0NNU01TRXh0JyA9PiAnMS4wLjAnIF07IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKICAgIHsKICAgICAgICAvLyB0aGlzIGlzIGFsc28gY2FsbGVkIG1hbnVhbGx5IGZyb20gdGhlIGluc3RhbGwgcm91dGluZSAoYW5kIHBlcmhhcHMgdGhlIHVwZ3JhZGUgcm91dGluZSkKICAgICAgICAvLyBidXQgbWF5IGJlIGNhbGxlZCBkdXJpbmcgbm9ybWFsIHJlcXVlc3RzLi4uIHNvIHdlIGRvdWJsZSBjaGVjayB0aGF0IGl0IGRvZXMgbm90IGdldCBjYWxsZWQgdHdpY2UuCiAgICAgICAgc3RhdGljICRfZG9uZSA9IG51bGw7CiAgICAgICAgaWYoICRfZG9uZSApIHJldHVybjsKICAgICAgICAkX2RvbmUgPSAxOwoKICAgICAgICBwYXJlbnQ6OkluaXRpYWxpemVBZG1pbigpOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9idWlsdGluX3ZhbGlkYXRpb25fZWRpdG9ycygpOwoKICAgICAgICAkc21hcnR5ID0gQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3NtdGZtX2Zvcm1fZXJyb3JzJywgWyAkdGhpcywgJ3NtYXJ0eV9zbXRmbV9nZXRfZXJyb3JzJ10sIGZhbHNlICk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZm9ybScsbnVsbCwkdGhpcy0+TGFuZygncGFyYW1fZm9ybScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2RhdGVjaGVjaycsMCwkdGhpcy0+TGFuZygncGFyYW1fbm9kYXRlY2hlY2snKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpJbml0aWFsaXplRnJvbnRlbmQoKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9ybScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9kYXRlY2hlY2snLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvc210Zm1fLiovJyxDTEVBTl9TVFJJTkcpOwoKICAgICAgICAkc21hcnR5ID0gQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3NtdGZtX2Zvcm1fZXJyb3JzJywgWyAkdGhpcywgJ3NtYXJ0eV9zbXRmbV9nZXRfZXJyb3JzJ10sIGZhbHNlICk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3NtdGZtX3NldCcsIFsgJHRoaXMsICdzbWFydHlfc210Zm1fc2V0J10sIGZhbHNlICk7CiAgICAgICAgaWYoICFkZWZpbmVkKCdTTVRGTV9HVUlEX1RPS0VOJykgKSBkZWZpbmUoJ1NNVEZNX0dVSURfVE9LRU4nLG1kNShfX0ZJTEVfXykpOwoKICAgICAgICBcQ01TTVNcSG9va21hbmFnZXI6OmFkZF9ob29rKCAnU21hcnRGb3Jtczo6Y2xlYW51cCcsIGZ1bmN0aW9uKCBcU21hcnRGb3Jtc1xGb3JtUmVzcG9uc2UgJHJlc3AgKXsKICAgICAgICAgICAgICAgICRndWlkID0gJHJlc3AtPmd1aWQ7CiAgICAgICAgICAgICAgICAkdG1wX2RpciA9IFRNUF9DQUNIRV9MT0NBVElPTi4nLycuJGd1aWQ7CiAgICAgICAgICAgICAgICBpZiggaXNfZGlyKCAkdG1wX2RpciApICkgcmVjdXJzaXZlX2RlbGV0ZSggJHRtcF9kaXIgKTsKICAgICAgICAgICAgfSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmFuc2xhdG9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnRyYW5zbGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfZm9ybSggJG5hbWVfb3JfaWQgKQogICAgewogICAgICAgIC8vIGFjY2VwdHMgaW50IG9yIHN0cmluZwogICAgICAgIGlmKCBpc19pbnQoICRuYW1lX29yX2lkICkgKSByZXR1cm4gJHRoaXMtPmZvcm1zdG9yYWdlLT5sb2FkX2J5X2lkKCAkbmFtZV9vcl9pZCApOwogICAgICAgIHJldHVybiAkdGhpcy0+Zm9ybXN0b3JhZ2UtPmxvYWQoICRuYW1lX29yX2lkICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyX2Zvcm10ZXN0KCBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1UZXN0ZXJUZXN0ICR0ZXN0ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Zvcm10ZXN0c1tdID0gJHRlc3Q7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1UZXN0ZXJUZXN0ICR0ZXN0ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Vhcmx5X2Zvcm10ZXN0c1tdID0gJHRlc3Q7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9mb3JtdGVzdHMoKQogICAgewogICAgICAgIHJldHVybiBhcnJheV9tZXJnZSggJHRoaXMtPl9lYXJseV9mb3JtdGVzdHMsICR0aGlzLT5fZm9ybXRlc3RzICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBWYWxpZGF0aW9uRWRpdG9yICRvYmogKQogICAgewogICAgICAgIGlmKCBjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKSB7CiAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoJ0Nhbm5vdCBjYWxsICcuX19NRVRIT0RfXy4nIGZyb20gYSBmcm9udGVuZCByZXF1ZXN0Jyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgLy90aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCd0aGlzIG1ldGhvZCBtdXN0IG9ubHkgYmUgY2FsbGVkIGZyb20gYWRtaW4gcmVxdWVzdHMuLi4gc2VlIEluaXRpYWxpemVBZG1pbigpJyk7CiAgICAgICAgfQogICAgICAgICRjbGFzcyA9IGdldF9jbGFzcygkb2JqKTsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl92YWxpZGF0aW9uX2VkaXRvcnNbJGNsYXNzXSkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdFYWNoIHZhbGlkYXRpb24gZWRpdG9yIGNsYXNzIGNhbiBvbmx5IGJlIHJlZ2lzdGVyZWQgb25jZScpOwogICAgICAgICR0aGlzLT5fdmFsaWRhdGlvbl9lZGl0b3JzWyRjbGFzc10gPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbl9lZGl0b3IoICRjbGFzc25hbWUgKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X3ZhbGlkYXRpb25fZWRpdG9yc1skY2xhc3NuYW1lXSkgKSByZXR1cm4gJHRoaXMtPl92YWxpZGF0aW9uX2VkaXRvcnNbJGNsYXNzbmFtZV07CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBmaWVsZCB2YWxpZGF0aW9uIGVkaXRvciBvZiB0eXBlICcuJGNsYXNzbmFtZSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uX2VkaXRvcnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRpb25fZWRpdG9yczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBEaXNwb3NpdGlvbkVkaXRvciAkb2JqICkKICAgIHsKICAgICAgICAkY2xhc3MgPSBnZXRfY2xhc3MoJG9iaik7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGlzcF9lZGl0b3JzWyRjbGFzc10pKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdFYWNoIGRpc3Bvc2l0aW9uIGVkaXRvciBjbGFzcyBjYW4gb25seSBiZSByZWdpc3RlcmVkIG9uY2UnKTsKICAgICAgICAkdGhpcy0+X2Rpc3BfZWRpdG9yc1skY2xhc3NdID0gJG9iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uX2VkaXRvcnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3BfZWRpdG9yczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uX2VkaXRvciggJGNsYXNzbmFtZSApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGlzcF9lZGl0b3JzWyRjbGFzc25hbWVdKSApIHJldHVybiAkdGhpcy0+X2Rpc3BfZWRpdG9yc1skY2xhc3NuYW1lXTsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGRpc3Bvc2l0aW9uIGVkaXRvciBvZiB0eXBlICcuJGNsYXNzbmFtZSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2J1aWx0aW5fZm9ybV90ZXN0cygpCiAgICB7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvclxUZW1wbGF0ZVZhbGlkYXRvciggJHRoaXMtPnRyYW5zbGF0b3IgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9lYXJseV9mb3JtdGVzdCggbmV3IFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0b3JcRm9ybVRhZ1ZhbGlkYXRvciggJHRoaXMtPnRyYW5zbGF0b3IgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9lYXJseV9mb3JtdGVzdCggbmV3IFxTbWFydEZvcm1zXEZvcm1WYWxpZGF0b3JcRm9ybU1pc3NpbmdOYW1lVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvclxGb3JtTWlzc2luZ0xhYmVsVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvclxGb3JtTWlzc2luZ1ZhbHVlVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXFNtYXJ0Rm9ybXNcRm9ybVZhbGlkYXRvclxGb3JtRHVwbGljYXRlSWRWYWxpZGF0b3IoICR0aGlzLT50cmFuc2xhdG9yICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZWFybHlfZm9ybXRlc3QoIG5ldyBcU21hcnRGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1EdXBsaWNhdGVOYW1lVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2J1aWx0aW5fdmFsaWRhdGlvbl9lZGl0b3JzKCkKICAgIHsKICAgICAgICAvLyBjb21wdXRlZCBmaWVsZCAob3V0cHV0cyBhIHN0cmluZykKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcSHRtbERldGVjdGlvblZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcUmVxdWlyZWRGaWVsZFZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcU2VsZWN0RmllbGRWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXEZpbGVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXEludGVnZXJGaWVsZFZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcRmxvYXRGaWVsZFZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcRW1haWxQcmltaXRpdmVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXERhdGVQcmltaXRpdmVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXFJlZ2V4RmllbGRWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXEVtYWlsRmllbGRWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXENhcHRjaGFGaWVsZFZhbGlkYXRvclByb3h5RWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRmllbGRWYWxpZGF0b3JzXFRlbXBsYXRlVmFsaWRhdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl92YWxpZGF0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXEZpZWxkVmFsaWRhdG9yc1xDb21wdXRlZFZhbHVlRWRpdG9yKCAkdGhpcyApICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2J1aWx0aW5fZGlzcF9lZGl0b3JzKCkKICAgIHsKICAgICAgICAvLyBhZGQgZGlzcG9zZSB0byBzZXNzaW9uCiAgICAgICAgLy8gYWRkIHJlZGlyZWN0IGJhc2VkIG9uIGRyb3Bkb3duCiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xEcm9wZG93bkZpbGVEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcVW5pcXVlRmlsZURpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xEcm9wZG93bkVtYWlsRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXEZsYXRGaWxlRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxBZG1pbldpdGhSZXBseVRvRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xFbWFpbEFkbWluR3JvdXBEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxBZG1pbkdyb3VwV2l0aFJlcGx5VG9EaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxVc2VyQWRkcmVzc0Rpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xSZWRpcmVjdFVSTERpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xDb21wdXRlZFBhZ2VEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcU21hcnRGb3Jtc1xEaXNwb3NpdGlvbnNcV2ViSG9va0Rpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxTbWFydEZvcm1zXERpc3Bvc2l0aW9uc1xTZXNzaW9uRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXFNtYXJ0Rm9ybXNcRGlzcG9zaXRpb25zXFN0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kX2VkaXRvcl9ieV9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgICRjbGFzcyA9IGdldF9jbGFzcygkZGlzcCk7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9kaXNwX2VkaXRvcnMgYXMgJGVkaXRvciApIHsKICAgICAgICAgICAgaWYoICRlZGl0b3ItPmdldF9vdXRwdXRjbGFzcygpID09ICRjbGFzcyApIHJldHVybiAkZWRpdG9yOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdVbmFibGUgdG8gZmluZCBhbiBlZGl0b3IgZm9yIGRpc3Bvc2l0aW9ucyBvZiB0eXBlICcuJGNsYXNzKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggVmFsaWRhdGlvbiAkb2JqICkKICAgIHsKICAgICAgICAkY2xhc3MgPSBnZXRfY2xhc3MoJG9iaik7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl92YWxpZGF0aW9uX2VkaXRvcnMgYXMgJGVkaXRvciApIHsKICAgICAgICAgICAgaWYoICRlZGl0b3ItPmdldF9vdXRwdXRjbGFzcygpID09ICRjbGFzcyApIHJldHVybiAkZWRpdG9yOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdVbmFibGUgdG8gZmluZCBhbiBlZGl0b3IgZm9yIGEgdmFsaWRhdGlvbiBvZiB0eXBlICcuJGNsYXNzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGlvbl9oYXNfZWRpdG9yKCBWYWxpZGF0aW9uICRvYmogKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbigkb2JqKTsKICAgICAgICAgICAgcmV0dXJuICRlZGl0b3ItPmhhc19pbnRlcmZhY2UoKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxMb2dpY0V4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgLy8gZG8gbm90aGluZwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uX2Rpc3BsYXlzdHJpbmcoIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICAkZWRpdG9yID0gJHRoaXMtPmZpbmRfZWRpdG9yX2J5X2Rpc3Bvc2l0aW9uKCAkZGlzcCApOwogICAgICAgICRlZGl0b3ItPnNldF9kaXNwb3NpdGlvbiggJGRpc3AgKTsKICAgICAgICByZXR1cm4gJGVkaXRvci0+Z2V0X2Rpc3BsYXlzdHJpbmcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb25fZGlzcGxheXN0cmluZyggVmFsaWRhdGlvbiAkb2JqICkKICAgIHsKICAgICAgICAkb3V0ID0gJG9iai0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+dHJhbnNsYXRvciApOwogICAgICAgIGlmKCAkdGhpcy0+dmFsaWRhdGlvbl9oYXNfZWRpdG9yKCAkb2JqICkgKSB7CiAgICAgICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggJG9iaiApOwogICAgICAgICAgICAkZWRpdG9yLT5zZXRfdmFsaWRhdGlvbiggJG9iaiApOwogICAgICAgICAgICAkb3V0ID0gJGVkaXRvci0+Z2V0X2Rpc3BsYXlzdHJpbmcoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9jYXB0Y2hhX3Byb3ZpZGVyKCBJQ2FwdGNoYVByb3ZpZGVyICRwcm92aWRlciApCiAgICB7CiAgICAgICAgJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyID0gJHByb3ZpZGVyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FwdGNoYV9wcm92aWRlcigpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fY2FwdGNoYV9wcm92aWRlciApIHJldHVybiAkdGhpcy0+X2NhcHRjaGFfcHJvdmlkZXI7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwogICAgICAgIGlmKCAkbW9kICkgewogICAgICAgICAgICByZXR1cm4gbmV3IFxTbWFydEZvcm1zXENhcHRjaGFNb2R1bGVQcm92aWRlciggJG1vZCApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2Nhbl9mb3JtKEZvcm0gJGZvcm0pIDogU2Nhbm5lZFRlbXBsYXRlCiAgICB7CiAgICAgICAgc3RhdGljICR0ZXN0ZXIsICRzY2FsbGVyOwogICAgICAgIGlmKCAhaXNfb2JqZWN0KCR0ZXN0ZXIpICkgewogICAgICAgICAgICAvLyBvbmx5IGRvIHRoaXMgb25jZSBwZXIgcmVxdWVzdC4KICAgICAgICAgICAgJHNjYW5uZXIgPSBuZXcgVGVtcGxhdGVGb3JtU2Nhbm5lciggJHRoaXMsICRmb3JtLCAkdGhpcy0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgICAgICAgICAkdGVzdGVyID0gbmV3IFRlbXBsYXRlRm9ybVRlc3RlciggJHNjYW5uZXIsICR0aGlzLT5nZXRfZm9ybXRlc3RzKCkgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBTY2FubmVkVGVtcGxhdGUoJHNjYW5uZXIsICR0ZXN0ZXIpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZm9ybSggJGd1aWQgKQogICAgewogICAgICAgIC8vIHJldHJpZXZlcyBmb3JtIG9iamVjdCBmcm9tIHNlc3Npb24uCiAgICAgICAgJG91dCA9IFxTbWFydEZvcm1zXHV0aWxzOjpyZXRyaWV2ZV9vYmplY3QoICRndWlkICk7CiAgICAgICAgaWYoICEgJG91dCBpbnN0YW5jZW9mIFxTbWFydEZvcm1zXEZvcm0gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCAnQ291bGQgbm90IHJldHJpZXZlIGZvcm0gb2JqZWN0JyApOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzdG9yZV9mb3JtKCBcU21hcnRGb3Jtc1xGb3JtICRmb3JtLCAkZ3VpZCA9IG51bGwgKQogICAgewogICAgICAgIC8vIHN0b3JlcyBmb3JtIG9iamVjdCB0byBzZXNzaW9uLgogICAgICAgIHJldHVybiBcU21hcnRGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGd1aWQgKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmluaXNoX2VkaXRpbmdfdmFsaWRhdGlvbiggXFNtYXJ0Rm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgVmFsaWRhdGlvbiAkdmFsaWRhdG9yLCAkdmFsaWRhdG9yX2d1aWQgKQogICAgewogICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0sICRmb3JtX2d1aWQgKTsKICAgICAgICAkdmFsaWRhdG9yX2d1aWQgPSBcU21hcnRGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkdmFsaWRhdG9yLCAkdmFsaWRhdG9yX2d1aWQgKTsKICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYigndmFsaWRhdG9ycycpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCggJ20xXycsICdhZG1pbl9lZGl0X2Zvcm0nLCAnJywgWyAnZm9ybV9ndWlkJz0+JGZvcm1fZ3VpZCwgJ3ZhbGlkYXRvcl9ndWlkJz0+JHZhbGlkYXRvcl9ndWlkIF0gKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmluaXNoX2VkaXRpbmdfZGlzcG9zaXRpb24oIFxTbWFydEZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsIERpc3Bvc2l0aW9uICRkaXNwLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtLCAkZm9ybV9ndWlkICk7CiAgICAgICAgJGRpc3BfZ3VpZCA9IFxTbWFydEZvcm1zXHV0aWxzOjpzdG9yZV9vYmplY3QoICRkaXNwLCAkZGlzcF9ndWlkICk7CiAgICAgICAgJHRoaXMtPlNldEN1cnJlbnRUYWIoICdoYW5kbGVycycgKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3QoICdtMV8nLCAnYWRtaW5fZWRpdF9mb3JtJywgJycsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdkaXNwX2d1aWQnPT4kZGlzcF9ndWlkIF0gKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9zbXRmbV9zZXQoICRwYXJhbXMsICR0ZW1wbGF0ZSApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2luX3ByZXJlbmRlciApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignc210Zm1fc2V0IGlzIG9ubHkgdmFsaWQgd2hlbiB1c2VkIGluIHRoZSBwcmVyZW5kZXIgbG9naWMgZmllbGQuJyk7CgogICAgICAgICRrZXkgPSB4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdrJyk7CiAgICAgICAgJGtleSA9IHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2tleScsJGtleSk7CiAgICAgICAgJGtleSA9IHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZsZCcsJGtleSk7CiAgICAgICAgJGtleSA9IHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkJywka2V5KTsKCiAgICAgICAgJHZhbCA9IHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndicpOwogICAgICAgICR2YWwgPSB4dF91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3ZhbCcsJHZhbCk7CiAgICAgICAgJHZhbCA9IHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndmFsdWUnLCR2YWwpOwogICAgICAgICR0aGlzLT5fcHJlcmVuZGVyX3ZhcnNbJGtleV0gPSAkdmFsOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc21hcnR5X3NtdGZtX2dldF9lcnJvcnMoICRwYXJhbXMsICR0ZW1wbGF0ZSApCiAgICB7CiAgICAgICAgJGFzc2lnbiA9IHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwogICAgICAgIGlmKCAhJGFzc2lnbiApIHsKICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcignc210Zm1fZm9ybV9lcnJvcnMgY2FsbGVkIHdpdGhvdXQgYXNzaWduIGF0dHJpYnV0ZScpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgaWYoIHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnZnVsbCcpICkgewogICAgICAgICAgICAkb3V0ID0gJHRoaXMtPl9yZXF1ZXN0X2Vycm9yczsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggIWVtcHR5KCR0aGlzLT5fcmVxdWVzdF9lcnJvcnMpICkgewogICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+X3JlcXVlc3RfZXJyb3JzKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICRvYmogPSAkdGhpcy0+X3JlcXVlc3RfZXJyb3JzWyRpXTsKICAgICAgICAgICAgICAgICRvdXRbXSA9ICRvYmotPm1zZzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRlbXBsYXRlLT5hc3NpZ24oJGFzc2lnbiwkb3V0KTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cGxfdHlwZV9sYW5nX2NhbGxiYWNrKCRzdHIpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU21hcnRGb3JtcycpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnICcsJ18nLCRzdHIpOwogICAgICAgIGlmKCBpc19vYmplY3QoJG1vZCkgKSByZXR1cm4gJG1vZC0+TGFuZygndHlwZV8nLiRzdHIpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRwbF90eXBlX2hlbHBfY2FsbGJhY2soKQogICAgewogICAgICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvZG9jL3RlbXBsYXRlX2hlbHAuaW5jJyk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCi8qaWYgKCFjbGFzc19leGlzdHMoIkNHQmV0dGVyRm9ybXMiKSkgewogIGNsYXNzIENHQmV0dGVyRm9ybXMgZXh0ZW5kcyBTbWFydEZvcm1zCiAgewoKICB9Cn0qLwo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_edit_computedpage_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0NvbXB1dGVkUGFnZURpc3Bvc2l0aW9uJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGRpc3BfZ3VpZD0kZ3VpZCBlZGl0b3JfbmFtZT0kZWRpdG9yX25hbWV9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcGFnZV90cGwnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dGVtcGxhdGUgdmFsdWU9JGhhbmRsZXItPnRlbXBsYXRlIHJvd3M9NX0KICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3BhZ2VfdHBsJyl9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQp7JHRwbF9oZWxwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_computedvalue.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2NvbXB1dGVkX3ZhbHVlJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGd1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGQnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfMTIiIHJlcXVpcmVkPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fY29tcHV0ZWRfdmFsdWVfZmllbGQnKX08L3A+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8dGV4dGFyZWEgY2xhc3M9ImdyaWRfMTIiIHJvd3M9IjUiIG5hbWU9InskYWN0aW9uaWR9dGVtcGxhdGUiPnskdmFsaWRhdGlvbi0+dGVtcGxhdGV9PC90ZXh0YXJlYT4KICA8L2Rpdj4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_ddemail_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2RkZW1haWxfZGlzcG9zaXRpb24nKX08L2gzPgoKe2Zvcm1fc3RhcnQgZm9ybV9ndWlkPSRmb3JtX2d1aWQgZGlzcF9ndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maWVsZCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmllbGQiIGNsYXNzPSJncmlkXzEyIiByZXF1aXJlZD4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzZWxlY3RfZmllbGRzIHNlbGVjdGVkPSRoYW5kbGVyLT5maWVsZH0KICAgIDwvc2VsZWN0PgogICAgPHAgY2xhc3M9ImdyaWRfMTEiPnskbW9kLT5MYW5nKCdpbmZvX2RkZW1haWxfZmllbGQnKX08L3A+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2RmbHRfZW1haWxfYWRkcmVzcycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiB2YWx1ZT0ieyRoYW5kbGVyLT5kZmx0X2FkZHJlc3N9IiBuYW1lPSJ7JGFjdGlvbmlkfWRmbHRfYWRkcmVzcyIgbWF4bGVuZ3RoPSIyNTUiIGNsYXNzPSJncmlkXzEyIi8+CiAgICAgPHAgY2xhc3M9ImdyaWRfMTEiPnskbW9kLT5MYW5nKCdpbmZvX2RmbHRfZW1haWxfYWRkcmVzcycpfTwvcD4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2RkZW1haWxfdmFsdWVfbWFwJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICB7eHRfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXZhbHVlX21hcCB2YWx1ZT0kaGFuZGxlci0+dmFsdWVfbWFwIHJvd3M9NSBjbGFzcz0iZ3JpZF8xMiJ9CiAgICAgPHAgY2xhc3M9ImdyaWRfMTEiPnskbW9kLT5MYW5nKCdpbmZvX2RkZW1haWxfdmFsdWVfbWFwJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9zdWJqZWN0X3RlbXBsYXRlJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9c3ViamVjdHRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5zdWJqZWN0dGVtcGxhdGUgcm93cz0yIGNsYXNzPWdyaWRfMTJ9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9ib2R5X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWJvZHl0ZW1wbGF0ZSB2YWx1ZT0kaGFuZGxlci0+Ym9keXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_ddfile_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2RkZmlsZV9kaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maWVsZCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmllbGQiIGNsYXNzPSJncmlkXzEyIiByZXF1aXJlZD4KICAgICAge2h0bWxfb3B0aW9ucyB2YWx1ZXM9JHNlbGVjdF9maWVsZHMgb3V0cHV0PSRzZWxlY3RfZmllbGRzIHNlbGVjdGVkPSRoYW5kbGVyLT5maWVsZH0KICAgIDwvc2VsZWN0PgogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19kZGZpbGVfZmllbGQnKX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGRmaWxlX2ZvbGRlcicpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfWZvbGRlciIgdmFsdWU9InskaGFuZGxlci0+Zm9sZGVyfSI+CiAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19kZGZpbGVfZm9sZGVyJyl9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oZHJ0ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1oZWFkZXJ0ZW1wbGF0ZSB2YWx1ZT0kaGFuZGxlci0+aGVhZGVydGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW50cnl0ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1lbnRyeXRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5lbnRyeXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailadmingroupreplyto_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsQWRtaW5Hcm91cFdpdGhSZXBseVRvRGlzcG9zaXRpb24nKX08L2gzPgoKe2Zvcm1fc3RhcnQgZm9ybV9ndWlkPSRmb3JtX2d1aWQgZGlzcF9ndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hZG1pbl9ncm91cCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgIDxzZWxlY3QgY2xhc3M9ImdyaWRfMTIiIG5hbWU9InskYWN0aW9uaWR9Z3JvdXAiPgogICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRncm91cGxpc3Qgc2VsZWN0ZWQ9JGhhbmRsZXItPmdyb3VwfQogICAgICA8L3NlbGVjdD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2ZpZWxkJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWVsZG5hbWUiIGNsYXNzPSJncmlkXzEyIj4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRfbGlzdCBzZWxlY3RlZD0kaGFuZGxlci0+ZmllbGRuYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZW1haWx1c2VyYWRkcmVzcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX3N1YmplY3RfdGVtcGxhdGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1YmplY3R0ZW1wbGF0ZSIgdmFsdWU9InskaGFuZGxlci0+c3ViamVjdHRlbXBsYXRlfSIgY2xhc3M9ImdyaWRfMTIiLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2JvZHlfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ImJvZHl0ZW1wbGF0ZSIgdmFsdWU9JGhhbmRsZXItPmJvZHl0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailadmingroup_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsQWRtaW5Hcm91cERpc3Bvc2l0aW9uJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGRpc3BfZ3VpZD0kZ3VpZCBlZGl0b3JfbmFtZT0kZWRpdG9yX25hbWV9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1yZXNldF90cGwiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXRfdHBscycpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FkbWluX2dyb3VwJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Z3JvdXAiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ3JvdXBsaXN0IHNlbGVjdGVkPSRoYW5kbGVyLT5ncm91cH0KICAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9zdWJqZWN0X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJqZWN0dGVtcGxhdGUiIHZhbHVlPSJ7JGhhbmRsZXItPnN1YmplY3R0ZW1wbGF0ZX0iIHN0eWxlPSJ3aWR0aDogOTclOyIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2JvZHlfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ImJvZHl0ZW1wbGF0ZSIgdmFsdWU9JGhhbmRsZXItPmJvZHl0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailadminwithreplyto_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsQWRtaW5XaXRoUmVwbHlUbycpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2ZpZWxkJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWVsZG5hbWUiIGNsYXNzPSJncmlkXzEyIj4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRfbGlzdCBzZWxlY3RlZD0kaGFuZGxlci0+ZmllbGRuYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZW1haWx1c2VyYWRkcmVzcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Nzdl9lbWFpbF9hZGRyZXNzZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9YWRkcmVzc2VzIHZhbHVlPSRoYW5kbGVyLT5hZGRyZXNzZXMgcm93cz0zfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX3N1YmplY3RfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1YmplY3R0ZW1wbGF0ZSIgdmFsdWU9InskaGFuZGxlci0+c3ViamVjdHRlbXBsYXRlfSIgc3R5bGU9IndpZHRoOiA5NyU7Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWxfYm9keV90ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0iYm9keXRlbXBsYXRlIiB2YWx1ZT0kaGFuZGxlci0+Ym9keXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2VtYWlsX2ZpZWxkdmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpZWxkJyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfOCIgcmVxdWlyZWQ+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogIDwvc2VsZWN0Pgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailfixedaddresses_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jc3ZfZW1haWxfYWRkcmVzc2VzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFkZHJlc3NlcyB2YWx1ZT0kaGFuZGxlci0+YWRkcmVzc2VzIHJvd3M9M30KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9zdWJqZWN0X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJqZWN0dGVtcGxhdGUiIHZhbHVlPSJ7JGhhbmRsZXItPnN1YmplY3R0ZW1wbGF0ZX0iIHN0eWxlPSJ3aWR0aDogOTclOyIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2JvZHlfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ImJvZHl0ZW1wbGF0ZSIgdmFsdWU9JGhhbmRsZXItPmJvZHl0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailuseraddress_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2ZpZWxkJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWVsZG5hbWUiIGNsYXNzPSJncmlkXzEyIj4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRfbGlzdCBzZWxlY3RlZD0kaGFuZGxlci0+ZmllbGRuYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZW1haWx1c2VyYWRkcmVzcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX3N1YmplY3RfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1YmplY3R0ZW1wbGF0ZSIgdmFsdWU9InskaGFuZGxlci0+c3ViamVjdHRlbXBsYXRlfSIgc3R5bGU9IndpZHRoOiA5NyU7Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWxfYm9keV90ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0iYm9keXRlbXBsYXRlIiB2YWx1ZT0kaGFuZGxlci0+Ym9keXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_flatfiledisposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2Nzdl9kaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpbGVuYW1lJyl9OjwvbGFiZWw+CiAgPGlucHV0IGNsYXNzPSJncmlkXzkiIG5hbWU9InskYWN0aW9uaWR9ZmlsZW5hbWUiIHZhbHVlPSJ7JGhhbmRsZXItPmZpbGVuYW1lfSIgcmVxdWlyZWQvPgogIDxici8+PGJyLz48c3BhbiBjbGFzcz0iZ3JpZF8yIj4mbmJzcDs8L3NwYW4+PHNwYW4+eyRtb2QtPkxhbmcoJ2luZm9fZmxhdGZpbGVfZmlsZW5hbWUnKX08L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oZHJ0ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1oZWFkZXJ0ZW1wbGF0ZSB2YWx1ZT0kaGFuZGxlci0+aGVhZGVydGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW50cnl0ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1lbnRyeXRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5lbnRyeXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_floatfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2Zsb2F0X2ZpZWxkdmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpZWxkJyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfOCIgcmVxdWlyZWQ+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogIDwvc2VsZWN0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9taW52YWx1ZScpfTo8L2xhYmVsPgogIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1pblZhbHVlIiBjbGFzcz0iZ3JpZF85IiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0ieyR2YWxpZGF0aW9uLT5taW5WYWx9Ii8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X21heHZhbHVlJyl9OjwvbGFiZWw+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bWF4VmFsdWUiIGNsYXNzPSJncmlkXzkiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHZhbGlkYXRpb24tPm1heFZhbH0iLz4KPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRmb3JtLT5pZCA8IDF9CjxoMz57JG1vZC0+TGFuZygnYWRkX25ld19mb3JtJyl9PC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnZWRpdGluZ19mb3JtJyl9PC9oMz4Key9pZn0KCjxzY3JpcHQ+CnZhbGlkYXRpb25IYW5kbGVyID0gZnVuY3Rpb24oc2VsKSB7CiAgICB2YXIgZWxlbWVudCwgZV9zYXZlYnRuLCBlX3N1YmFjdGlvbiwgZV9ndWlkbGlzdDsKICAgIHZhciB2YXJfcHJlZml4ID0gJ3skYWN0aW9uaWR9JzsKCiAgICAvLyBjb25zdHJ1Y3QKICAgIGVsZW1lbnQgPSBzZWw7CiAgICBlX2Zvcm0gPSBlbGVtZW50LmNsb3Nlc3QoJ2Zvcm0nKTsKICAgIGVfc2F2ZWJ0biA9ICQoJyNzYXZlX3ZhbGlkYXRpb25fb3JkZXInKTsKICAgIGVfc3ViYWN0aW9uID0gJCgnI3N1YmFjdGlvbicpOwogICAgZV9ndWlkbGlzdCA9ICQoJyNndWlkX2xpc3QnKTsKCiAgICBlX3NhdmVidG4uY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgY21zX2NvbmZpcm0oJ3NhdmUgdGhlc2UgcG9zaXRpb25zJykuZG9uZShmdW5jdGlvbigpewoJICAgICAgdmFyIGxpc3QgPSBbXTsKCSAgICAgICQoJ3RyJyxlbGVtZW50KS5lYWNoKGZ1bmN0aW9uKCl7CgkgICAgICAgICB2YXIgdCA9ICQodGhpcykuZGF0YSgnZ3VpZCcpOwoJCSBpZiggIXQgfHwgdC5sZW5ndGggPT0gMCApIHJldHVybjsKCQkgbGlzdC5wdXNoKHQpOwogICAgICAgICAgICAgIH0pOwoJICAgICAgLy8gbm93IHNhdmUgdGhpcyBkYXRhIHNvbWV3aGVyZSwgYW5kIHN1Ym1pdCB0aGUgZm9ybS4KCSAgICAgIGVfc3ViYWN0aW9uLnZhbCgnb3JkZXJfdmFsaWRhdGlvbnMnKTsKCSAgICAgIGVfZ3VpZGxpc3QudmFsKGxpc3Quam9pbignLCcpKTsKCSAgICAgIGVfZm9ybS5zdWJtaXQoKTsKICAgICAgICAgICB9KQogICAgfSk7CgogICAgJCgndGJvZHknLGVsZW1lbnQpLnNvcnRhYmxlKHsKICAgICAgIGN1cnNvcjogJ21vdmUnLAogICAgICAgaGVscGVyOiBmdW5jdGlvbihldiwgdWkpIHsKICAgICAgICAgIHVpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAkKHRoaXMpLndpZHRoKCQodGhpcykud2lkdGgoKSk7CiAgICAgICAgICB9KTsKICAgIAkgIHJldHVybiB1aTsKICAgICAgIH0sCiAgICAgICBzdG9wOiBmdW5jdGlvbihldmVudCx1aSkgewogICAgICAgICAgIGVfc2F2ZWJ0bi5zaG93KCk7CiAgICAgICB9LAogICAgfSk7Cn07CgpkaXNwb3NpdGlvbkhhbmRsZXIgPSBmdW5jdGlvbihzZWwpIHsKICAgIHZhciBlbGVtZW50LCBlX3NhdmVidG4sIGVfc3ViYWN0aW9uLCBlX2d1aWRsaXN0OwogICAgdmFyIHZhcl9wcmVmaXggPSAneyRhY3Rpb25pZH0nOwoKICAgIC8vIGNvbnN0cnVjdAogICAgZWxlbWVudCA9IHNlbDsKICAgIGVfZm9ybSA9IGVsZW1lbnQuY2xvc2VzdCgnZm9ybScpOwogICAgZV9zYXZlYnRuID0gJCgnI3NhdmVfZGlzcF9vcmRlcicpOwogICAgZV9zdWJhY3Rpb24gPSAkKCcjc3ViYWN0aW9uJyk7CiAgICBlX2d1aWRsaXN0ID0gJCgnI2d1aWRfbGlzdCcpOwoKICAgIGVfc2F2ZWJ0bi5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICBjbXNfY29uZmlybSgnc2F2ZSB0aGVzZSBwb3NpdGlvbnMnKS5kb25lKGZ1bmN0aW9uKCl7CgkgICAgICB2YXIgbGlzdCA9IFtdOwoJICAgICAgJCgndHInLGVsZW1lbnQpLmVhY2goZnVuY3Rpb24oKXsKCSAgICAgICAgIHZhciB0ID0gJCh0aGlzKS5kYXRhKCdndWlkJyk7CgkJIGlmKCAhdCB8fCB0Lmxlbmd0aCA9PSAwICkgcmV0dXJuOwoJCSBsaXN0LnB1c2godCk7CiAgICAgICAgICAgICAgfSk7CgkgICAgICAvLyBub3cgc2F2ZSB0aGlzIGRhdGEgc29tZXdoZXJlLCBhbmQgc3VibWl0IHRoZSBmb3JtLgoJICAgICAgZV9zdWJhY3Rpb24udmFsKCdvcmRlcl9kaXNwb3NpdGlvbnMnKTsKCSAgICAgIGVfZ3VpZGxpc3QudmFsKGxpc3Quam9pbignLCcpKTsKCSAgICAgIGVfZm9ybS5zdWJtaXQoKTsKICAgICAgICAgICB9KQogICAgfSk7CgogICAgJCgndGJvZHknLGVsZW1lbnQpLnNvcnRhYmxlKHsKICAgICAgIGN1cnNvcjogJ21vdmUnLAogICAgICAgaGVscGVyOiBmdW5jdGlvbihldiwgdWkpIHsKICAgICAgICAgIHVpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAkKHRoaXMpLndpZHRoKCQodGhpcykud2lkdGgoKSk7CiAgICAgICAgICB9KTsKICAgIAkgIHJldHVybiB1aTsKICAgICAgIH0sCiAgICAgICBzdG9wOiBmdW5jdGlvbihldmVudCx1aSkgewogICAgICAgICAgIGVfc2F2ZWJ0bi5zaG93KCk7CiAgICAgICB9LAogICAgfSk7Cn07CgokKCBmdW5jdGlvbigpIHsKCiAgIC8vIHJlYWR5Li4KICAgdmFyIGRpc3BfaGFuZGxlciA9IG5ldyBkaXNwb3NpdGlvbkhhbmRsZXIoJCgnI2Rpc3Bvc2l0aW9uX2xpc3QnKSk7CiAgIHZhciBkaXNwX2hhbmRsZXIgPSBuZXcgdmFsaWRhdGlvbkhhbmRsZXIoJCgnI3ZhbGlkYXRpb25fbGlzdCcpKTsKICAgdmFyIGNvbnRfdHBsaWQgPSAkKCcjY29udF90cGxpZCcpOwogICB2YXIgdHBsX3JzcmMgPSAkKCcjdGVtcGxhdGVfcnNyYycpOwoKICAgdHBsX3JzcmMuY2hhbmdlKGZ1bmN0aW9uKCl7CiAgICAgICBpZiggJCh0aGlzKS52YWwoKS5sZW5ndGggPiAwICkgewogICAgICAgICAgIGNvbnRfdHBsaWQuaGlkZSgpOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgICBjb250X3RwbGlkLnNob3coKTsKICAgICAgIH0KICAgfSk7CiAgIHRwbF9yc3JjLnRyaWdnZXIoJ2NoYW5nZScpOwoKfSk7Cjwvc2NyaXB0PgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KYnV0dG9uLmJ0bmxpbmsgewogICBiYWNrZ3JvdW5kOm5vbmUhaW1wb3J0YW50OwogICBjb2xvcjppbmhlcml0OwogICBib3JkZXI6bm9uZTsKICAgcGFkZGluZzowIWltcG9ydGFudDsKICAgZm9udDogaW5oZXJpdDsKICAgLypib3JkZXIgaXMgb3B0aW9uYWwqLwogICBjdXJzb3I6IHBvaW50ZXI7Cn0KdHIuYmFkZmllbGQgdGQgewogICBjb2xvcjogb3JhbmdlICFpbXBvcnRhbnQ7Cn0KI2Rpc3Bvc2l0aW9uX2xpc3QgewogICBjdXJzb3I6IG1vdmU7Cn0KI3ZhbGlkYXRpb25fbGlzdCB7CiAgIGN1cnNvcjogbW92ZTsKfQo8L3N0eWxlPgoKe2Zvcm1fc3RhcnQgZm9ybV9ndWlkPSRmb3JtX2d1aWR9PGlucHV0IGlkPSJzdWJhY3Rpb24iIG5hbWU9InskYWN0aW9uaWR9c3ViYWN0aW9uIiB0eXBlPSJoaWRkZW4iLz48aW5wdXQgaWQ9Imd1aWRfbGlzdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWd1aWRzIi8+CnskZGlzcG9zaXRpb25zPSRmb3JtLT5kaXNwb3NpdGlvbnN9CnskdmFsaWRhdGlvbnM9JGZvcm0tPnZhbGlkYXRpb25zfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAge2lmIGNvdW50KCRmaWVsZHMpfQogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3NhdmUnKX0iLz4KICAgICB7aWYgIWVtcHR5KCRmb3JtX2d1aWQpfQogICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWFwcGx5IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2FwcGx5Jyl9Ii8+CiAgICAgey9pZn0KICAgey9pZn0KICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zY2FuIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3NjYW4nKX0iLz4KICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKe3h0X3N0YXJ0X3RhYnN9Cnt4dF90YWJoZWFkZXIgbmFtZT0nZm9ybScgbGFiZWw9JG1vZC0+TGFuZygnZm9ybScpfQp7aWYgY291bnQoJG1lc3NhZ2VzKX0KICB7eHRfdGFiaGVhZGVyIG5hbWU9J21lc3NhZ2VzJyBsYWJlbD0kbW9kLT5MYW5nKCdtZXNzYWdlcycpfQp7L2lmfQp7aWYgY291bnQoJGZpZWxkcyl9CiAge3h0X3RhYmhlYWRlciBuYW1lPSdmaWVsZHMnIGxhYmVsPSRtb2QtPkxhbmcoJ2ZpZWxkcycpfQogIHt4dF90YWJoZWFkZXIgbmFtZT0ncHJlcmVuZGVyX2xvZ2ljJyBsYWJlbD0kbW9kLT5MYW5nKCdwcmVyZW5kZXJfbG9naWMnKX0KICB7eHRfdGFiaGVhZGVyIG5hbWU9J3ZhbGlkYXRpb24nIGxhYmVsPSRtb2QtPkxhbmcoJ3ZhbGlkYXRpb24nKX0KICB7eHRfdGFiaGVhZGVyIG5hbWU9J2hhbmRsZXJzJyBsYWJlbD0kbW9kLT5MYW5nKCdoYW5kbGVycycpfQogIHt4dF90YWJoZWFkZXIgbmFtZT0nZmluYWwnIGxhYmVsPSRtb2QtPkxhbmcoJ2ZpbmFsJyl9CnsvaWZ9Cgp7eHRfdGFiY29udGVudF9zdGFydCBuYW1lPSdmb3JtJ30KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMgcmVxdWlyZWQiPip7JG1vZC0+TGFuZygnZm9ybV9uYW1lJyl9OjwvbGFiZWw+CiAgICA8ZGl2IGNsYXNzPSJncmlkXzgiPgogICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfMTIgcmVxdWlyZWQiIG5hbWU9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskZm9ybS0+bmFtZX0iIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TGFuZygncGhfZm9ybV9uYW1lJyl9IiByZXF1aXJlZC8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiIGlkPSJjb250X3RwbGlkIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMgcmVxdWlyZWQiPip7JG1vZC0+TGFuZygnZm9ybV90ZW1wbGF0ZScpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXRlbXBsYXRlX2lkIiBjbGFzcz0iZ3JpZF8xMiIgcmVxdWlyZWQ+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRhbGxfdGVtcGxhdGVzIHNlbGVjdGVkPSRmb3JtLT50ZW1wbGF0ZV9pZH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdmb3JtX3RlbXBsYXRlX3JzcmMnKX06PC9sYWJlbD4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGVtcGxhdGVfcnNyYyIgbmFtZT0ieyRhY3Rpb25pZH10ZW1wbGF0ZV9yc3JjIiBjbGFzcz0iZ3JpZF8xMiIgdmFsdWU9InskZm9ybS0+dGVtcGxhdGVfcnNyY30iLz4KICAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX3RlbXBsYXRlX3JzcmMnKX08L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMgcmVxdWlyZWQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgICAgPHRleHRhcmVhIGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfWRlc2NyaXB0aW9uIiBwbGFjZWhvbGRlcj0ieyRtb2QtPkxhbmcoJ3BoX2Zvcm1fZGVzYycpfSI+eyRmb3JtLT5kZXNjcmlwdGlvbn08L3RleHRhcmVhPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDxoci8+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2Zvcm1fZnJvbV9lbWFpbCcpfTwvbGFiZWw+CiAgICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgICAgIDxpbnB1dCBjbGFzcz0iZ3JpZF8xMiIgdHlwZT0iZW1haWwiIG5hbWU9InskYWN0aW9uaWR9ZW1haWxfZnJvbV9hZGRyIiB2YWx1ZT0ieyRmb3JtLT5lbWFpbF9mcm9tX2FkZHJ9IiBwbGFjZWhvbGRlcj0ieyRtb2QtPkxhbmcoJ2VtYWlsYWRkcl9zeXNkZmx0Jyl9Ii8+CiAgICAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZm9ybV9mcm9tX2VtYWlsJyl9PC9wPgogICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnZm9ybV9mcm9tX25hbWUnKX08L2xhYmVsPgogICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfMTIiIHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZW1haWxfZnJvbV9uYW1lIiB2YWx1ZT0ieyRmb3JtLT5lbWFpbF9mcm9tX25hbWV9IiBwbGFjZWhvbGRlcj0ieyRtb2QtPkxhbmcoJ25vbmUnKX0iLz4KICAgICAgIDxwIGNsYXNzPSJncmlkXzEyIj57JG1vZC0+TGFuZygnaW5mb19mb3JtX2Zyb21fbmFtZScpfTwvcD4KICAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGhyLz4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnZm9ybV9pbmxpbmUnKX08L2xhYmVsPgogICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICAgICB7eHRfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZGlzcGxheV9pbmxpbmUgc2VsZWN0ZWQ9JGZvcm0tPmRpc3BsYXlfaW5saW5lfQogICAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX2Zvcm1faW5saW5lJyl9PC9wPgogICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygndXNlX2FzeW5jX3VwbG9hZCcpfTwvbGFiZWw+CiAgICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgICAgIHt4dF95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT11c2VfYXN5bmNfdXBsb2FkIHNlbGVjdGVkPSRmb3JtLT51c2VfYXN5bmNfdXBsb2FkfQogICAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX3VzZV9hc3luY191cGxvYWQnKX08L3A+CiAgICAgPC9kaXY+CiAgPC9kaXY+Cgp7aWYgY291bnQoJG1lc3NhZ2VzKX0KICB7eHRfdGFiY29udGVudF9zdGFydCBuYW1lPW1lc3NhZ2VzfQogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19mb3JtX21lc3NhZ2VzJyl9PC9kaXY+CiAge2lmIGVtcHR5KCRtZXNzYWdlcyl9CiAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnbm9fbWVzc2FnZXMnKX08L2Rpdj4KICB7ZWxzZX0KICAgICAgIDx1bD4KICAgICAgICAge2ZvcmVhY2ggJG1lc3NhZ2VzIGFzICRtc2d9CgkgICA8bGk+eyRtc2d9PC9saT4KCSB7L2ZvcmVhY2h9CiAgICAgICA8L3VsPgogIHsvaWZ9CnsvaWZ9Cgp7aWYgY291bnQoJGZpZWxkcyl9CiAge3h0X3RhYmNvbnRlbnRfc3RhcnQgbmFtZT1maWVsZHN9CiAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19maWVsZHNfdGFiJyl9PC9kaXY+CiAgICAgIDx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIj4KICAgICAgICA8dGhlYWQ+CgkgIDxyPgoJICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CgkgICAgPHRoPnskbW9kLT5MYW5nKCdsYWJlbCcpfTwvdGg+CgkgICAgPHRoPnskbW9kLT5MYW5nKCdub2RlJyl9PC90aD4KCSAgICA8dGg+eyRtb2QtPkxhbmcoJ3R5cGUnKX08L3RoPgoJICAgIDx0aD57JG1vZC0+TGFuZygnYXR0cmlicycpfTwvdGg+CgkgIDwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJe2ZvcmVhY2ggJGZpZWxkcyBhcyAkZmllbGR9CgkgIHskaXNfcmVwbHl0bz0wfXtpZiAkZm9ybS0+cmVwbHl0b19maWVsZCA9PSAkZmllbGQtPm5hbWV9eyRpc19yZXBseXRvPTF9ey9pZn0KCSAgPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInfSI+CgkgICAgPHRkPnskZmllbGQtPm5hbWV9PC90ZD4KCSAgICA8dGQ+eyRmaWVsZC0+bGFiZWx9PC90ZD4KCSAgICA8dGQ+eyRmaWVsZC0+bm9kZX08L3RkPgoJICAgIDx0ZD57JGZpZWxkLT50eXBlfTwvdGQ+CgkgICAgPHRkPgoJICAgICAgeyRhdHRyaWJzPVtdfQoJICAgICAge2lmICRmaWVsZC0+bm92YWxpZGF0ZX17JGF0dHJpYnNbXT0kbW9kLT5MYW5nKCdhdHRyX25vdmFsaWRhdGUnKX17L2lmfQoJICAgICAge2lmICRmaWVsZC0+cHJpbWl0aXZlICE9ICdzdHJpbmcnfXskYXR0cmlic1tdPSRmaWVsZC0+cHJpbWl0aXZlfXsvaWZ9CgkgICAgICB7aWYgJGZpZWxkLT5tdWx0aXBsZX17JGF0dHJpYnNbXT0kbW9kLT5MYW5nKCdhdHRyX211bHRpcGxlJyl9ey9pZn0KCSAgICAgIHtpZiAkZmllbGQtPm1pbn17JGF0dHJpYnNbXT0kbW9kLT5MYW5nKCdhdHRyX21pbicpfXsvaWZ9CgkgICAgICB7aWYgJGZpZWxkLT5tYXh9eyRhdHRyaWJzW109JG1vZC0+TGFuZygnYXR0cl9tYXgnKX17L2lmfQoJICAgICAge2lmICRmaWVsZC0+cGF0dGVybn17JGF0dHJpYnNbXT0kbW9kLT5MYW5nKCdhdHRyX3BhdHRlcm4nKX17L2lmfQoJICAgICAge2lmICRpc19yZXBseXRvfXskYXR0cmlic1tdPSRtb2QtPkxhbmcoJ2F0dHJfcmVwbHl0bycpfXsvaWZ9CgkgICAgICB7aW1wbG9kZSgnLCAnLCRhdHRyaWJzKX0KCSAgICA8L3RkPgoJICA8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KICAgICAgPC90YWJsZT4KCnt4dF90YWJjb250ZW50X3N0YXJ0IG5hbWU9cHJlcmVuZGVyX2xvZ2ljfQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3ByZXJlbmRlcl90YWInKX08L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wcmVyZW5kZXJfbG9naWMnKX08L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfXByZXJlbmRlcl9sb2dpYyIgcm93cz0iMTAiPnskZm9ybS0+cHJlcmVuZGVyX2xvZ2ljfTwvdGV4dGFyZWE+CiAgICAgICAgPC9wPgogICAgPC9kaXY+Cgp7eHRfdGFiY29udGVudF9zdGFydCBuYW1lPXZhbGlkYXRpb259CiAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ2luZm9fZm9ybV92YWxpZGF0aW9ucycpfTwvZGl2PgogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgPHAgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2FkZF92YWxpZGF0aW9uJyl9PC9wPgogICAgICA8c2VsZWN0IGNsYXNzPSJncmlkXzciIG5hbWU9InskYWN0aW9uaWR9dmFsaWRhdGlvbiI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRhbGxfdmFsaWRhdGlvbnN9CiAgICAgIDwvc2VsZWN0PgogICAgICA8YnV0dG9uIG5hbWU9InskYWN0aW9uaWR9YWRkX3ZhbGlkYXRpb24iPnskbW9kLT5MYW5nKCdhZGQnKX08L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBuYW1lPSJ7JGFjdGlvbmlkfWF1dG9fdmFsaWRhdGlvbiI+eyRtb2QtPkxhbmcoJ2F1dG9fYWRkX3ZhbGlkYXRpb25zJyl9PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIHtpZiAhZW1wdHkoJHZhbGlkYXRpb25zKX0KICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgPGJ1dHRvbiBpZD0ic2F2ZV92YWxpZGF0aW9uX29yZGVyIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPnskbW9kLT5MYW5nKCdzYXZlJyl9PC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8dGFibGUgaWQ9InZhbGlkYXRpb25fbGlzdCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICAgICAgPHRoZWFkPgoJICA8dHI+CgkgICAgPHRoPnskbW9kLT5MYW5nKCd2YWxpZGF0aW9uJyl9PC90aD4KCSAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CgkgIDwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgogICAgICAgIHtmb3JlYWNoICR2YWxpZGF0aW9ucyBhcyAkaGFuZGxlcn0KCSAge2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X3ZhbGlkYXRpb24gZm9ybV9ndWlkPSRmb3JtX2d1aWQgZ3VpZD0kaGFuZGxlci0+Z2V0X2d1aWQoKSBhc3NpZ249ZWRpdF91cmx9CiAgICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9J3JvdzEscm93Mid9IiBkYXRhLWd1aWQ9InskaGFuZGxlci0+Z2V0X2d1aWQoKX0iPgogCSAgICA8dGQ+CgkgICAgICB7aWYgJG1vZC0+dmFsaWRhdGlvbl9oYXNfZWRpdG9yKCRoYW5kbGVyKX0KCSAgICAgICAgPGEgaHJlZj0ieyRlZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRtb2QtPmdldF92YWxpZGF0aW9uX2Rpc3BsYXlzdHJpbmcoJGhhbmRsZXIpfTwvYT4KCSAgICAgIHtlbHNlfQogICAgICAgICAgICAgICAgeyRtb2QtPmdldF92YWxpZGF0aW9uX2Rpc3BsYXlzdHJpbmcoJGhhbmRsZXIpfQoJICAgICAgey9pZn0KCSAgICA8L3RkPgoJICAgIDx0ZD4KCSAgICAgIHtpZiAkbW9kLT52YWxpZGF0aW9uX2hhc19lZGl0b3IoJGhhbmRsZXIpfQoJICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG5saW5rIiBuYW1lPSJ7JGFjdGlvbmlkfWVkaXRfdmFsaWRhdGlvbiIgdmFsdWU9InskaGFuZGxlci0+Z2V0X2d1aWQoKX0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYnV0dG9uPgoJICAgICAgey9pZn0KCSAgICA8L3RkPgoJICAgIDx0ZD4KCSAgICAgICA8YnV0dG9uIGNsYXNzPSJidG5saW5rIiBuYW1lPSJ7JGFjdGlvbmlkfWRlbF92YWxpZGF0aW9uIiB2YWx1ZT0ieyRoYW5kbGVyLT5nZXRfZ3VpZCgpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYnV0dG9uPgoJICAgIDwvdGQ+CgkgIDwvdHI+CiAgICAgICAgey9mb3JlYWNofQoJPC90Ym9keT4KICAgICAgPC90YWJsZT4KICAgIHsvaWZ9Cgp7eHRfdGFiY29udGVudF9zdGFydCBuYW1lPWhhbmRsZXJzfQogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19mb3JtX2hhbmRsZXJzJyl9PC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxwIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdhZGRfZGlzcG9zaXRpb24nKX08L3A+CiAgICA8c2VsZWN0IGNsYXNzPSJncmlkXzciIG5hbWU9InskYWN0aW9uaWR9ZGlzcG9zaXRpb24iPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGFsbF9kaXNwb3NpdGlvbnN9CiAgICA8L3NlbGVjdD4KICAgIDxidXR0b24gbmFtZT0ieyRhY3Rpb25pZH1hZGRfZGlzcG9zaXRpb24iPnskbW9kLT5MYW5nKCdhZGQnKX08L2J1dHRvbj4KICA8L2Rpdj4KICB7aWYgIWVtcHR5KCRkaXNwb3NpdGlvbnMpfQogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgIDxidXR0b24gaWQ9InNhdmVfZGlzcF9vcmRlciIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij57JG1vZC0+TGFuZygnc2F2ZScpfTwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8dGFibGUgaWQ9ImRpc3Bvc2l0aW9uX2xpc3QiIGNsYXNzPSJwYWdldGFibGUiPgogICAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgoJICA8dGg+eyRtb2QtPkxhbmcoJ2hhbmRsZXInKX08L3RoPgoJICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJPC90cj4KICAgICAgPC90aGVhZD4KICAgICAgPHRib2R5PgogICAgICB7Zm9yZWFjaCAkZGlzcG9zaXRpb25zIGFzICRoYW5kbGVyfQogICAgICAgIHtjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZWRpdF9kaXNwb3NpdGlvbiBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGhhbmRsZXItPmdldF9ndWlkKCkgYXNzaWduPSdlZGl0X3VybCd9CiAgICAgICAgPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInfSIgZGF0YS1ndWlkPSJ7JGhhbmRsZXItPmdldF9ndWlkKCl9Ij4KICAgICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5sYW5nKCdlZGl0Jyl9Ij57JG1vZC0+Z2V0X2Rpc3Bvc2l0aW9uX2Rpc3BsYXlzdHJpbmcoJGhhbmRsZXIpfTwvYT48L3RkPgoJICA8dGQ+CgkgICAgICB7aWYgJGhhbmRsZXItPmlzX2FjdGl2ZSgpfQoJICAgICAgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lbmFibGVfZGlzcG9zaXRpb24gc3RhdGU9MCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGhhbmRsZXItPmdldF9ndWlkKCl9Ij57YWRtaW5faWNvbiBpY29uPSd0cnVlLmdpZid9PC9hPgoJICAgICAge2Vsc2V9CgkgICAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VuYWJsZV9kaXNwb3NpdGlvbiBzdGF0ZT0xIGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGRpc3BfZ3VpZD0kaGFuZGxlci0+Z2V0X2d1aWQoKX0iPnthZG1pbl9pY29uIGljb249J2ZhbHNlLmdpZid9PC9hPgoJICAgICAgey9pZn0KCSAgPC90ZD4KCSAgPHRkPjxidXR0b24gY2xhc3M9ImJ0bmxpbmsiIG5hbWU9InskYWN0aW9uaWR9ZWRpdF9kaXNwb3NpdGlvbiIgdmFsdWU9InskaGFuZGxlci0+Z2V0X2d1aWQoKX0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYnV0dG9uPjwvdGQ+CgkgIDx0ZD4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG5saW5rIiBuYW1lPSJ7JGFjdGlvbmlkfWRlbF9kaXNwb3NpdGlvbiIgdmFsdWU9InskaGFuZGxlci0+Z2V0X2d1aWQoKX0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9Ij57YWRtaW5faWNvbiBpY29uPSdkZWxldGUuZ2lmJ308L2J1dHRvbj4KCSAgPC90ZD4KICAgICAgICA8L3RyPgogICAgICB7L2ZvcmVhY2h9CiAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgogIHsvaWZ9Cgp7eHRfdGFiY29udGVudF9zdGFydCBuYW1lPSdmaW5hbCd9CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ZpbmFsX2Rpc3Bvc2l0aW9uJyl9PC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maW5hbGFjdGlvbicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieyRhY3Rpb25pZH1maW5hbGFjdGlvbiIgdmFsdWU9Im1lc3NhZ2UiIHtpZiAkZm9ybS0+ZmluYWxhY3Rpb24hPSJyZWRpcmVjdCJ9Y2hlY2tlZHsvaWZ9Lz4geyRtb2QtPkxhbmcoJ3Byb21wdF9kb2ZpbmFsbXNnJyl9PC9sYWJlbD48YnIvPgogICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7JGFjdGlvbmlkfWZpbmFsYWN0aW9uIiB2YWx1ZT0icmVkaXJlY3QiIHtpZiAkZm9ybS0+ZmluYWxhY3Rpb249PSJyZWRpcmVjdCJ9Y2hlY2tlZHsvaWZ9Lz4geyRtb2QtPkxhbmcoJ3Byb21wdF9kb2ZpbmFscmVkaXJlY3QnKX08L2xhYmVsPgogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJzZWxfZmluYWxwYWdlIj4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maW5hbHBhZ2UnKX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge3BhZ2Vfc2VsZWN0b3IgbmFtZT0ieyRhY3Rpb25pZH1maW5hbHBhZ2UiIHZhbHVlPSRmb3JtLT5maW5hbHBhZ2V9CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9InNlbF9maW5hbG1lc3NhZ2UiPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZpbmFsbWVzc2FnZScpfTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1maW5hbG1zZyIgcm93cz0iMjAiPnskZm9ybS0+ZmluYWxtc2d9PC90ZXh0YXJlYT4KICAgIDwvcD4KICA8L2Rpdj4KCiAgeyRmb3JtX2hlbHB9CnsvaWZ9eyogY291bnQoJGZpZWxkcykgKn0Ke3h0X2VuZF90YWJzfQp7Zm9ybV9lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_integerfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2ludGVnZXJfZmllbGR2YWxpZGF0aW9uJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGd1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGQnKX06PC9sYWJlbD4KICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmllbGRuYW1lIiBjbGFzcz0iZ3JpZF84IiByZXF1aXJlZD4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRzIHNlbGVjdGVkPSR2YWxpZGF0aW9uLT5maWVsZE5hbWV9CiAgPC9zZWxlY3Q+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X21pbnZhbHVlJyl9OjwvbGFiZWw+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bWluVmFsdWUiIGNsYXNzPSJncmlkXzkiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHZhbGlkYXRpb24tPm1pblZhbH0iLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfbWF4dmFsdWUnKX06PC9sYWJlbD4KICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tYXhWYWx1ZSIgY2xhc3M9ImdyaWRfOSIgbWF4bGVuZ3RoPSIxMCIgdmFsdWU9InskdmFsaWRhdGlvbi0+bWF4VmFsfSIvPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_redirecturl_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X1dlYkhvb2tEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVkaXJlY3R1cmxfdGVtcGxhdGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9InRwbCIgdmFsdWU9JGhhbmRsZXItPnRwbCBjbGFzcz0iZ3JpZF8xMiIgcm93cz01fQogICAgIDxwIGNsYXNzPSJncmlkXzEyIj57JG1vZC0+TGFuZygnaW5mb19yZWRpcmVjdHVybF90ZW1wbGF0ZScpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_regexfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X3JlZ2V4X2ZpZWxkdmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpZWxkJyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfOCIgcmVxdWlyZWQ+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogIDwvc2VsZWN0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9yZWdleF9wYXR0ZXJuJyl9OjwvbGFiZWw+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cGF0dGVybiIgY2xhc3M9ImdyaWRfOSIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JHZhbGlkYXRpb24tPnBhdHRlcm59IiByZXF1aXJlZC8+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_stopdisposing_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX1N0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT50ZW1wbGF0ZSByb3dzPTV9CiAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19zdG9wZGlzcG9zaW5nX3RwbCcpfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_templatevalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdkaXNwbGF5X1RlbXBsYXRlVmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X3RlbXBsYXRlJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDx0ZXh0YXJlYSBjbGFzcz0iZ3JpZF8xMiIgcm93cz0iNSIgbmFtZT0ieyRhY3Rpb25pZH10ZW1wbGF0ZSI+eyR2YWxpZGF0aW9uLT50ZW1wbGF0ZX08L3RleHRhcmVhPgogICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX3RlbXBsYXRldmFsaWRhdGlvbicpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_uniquefile_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X3VuaXF1ZWZpbGVfZGlzcG9zaXRpb24nKX08L2gzPgoKe2Zvcm1fc3RhcnQgZm9ybV9ndWlkPSRmb3JtX2d1aWQgZGlzcF9ndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF91bmlxdWVmaWxlX2ZvbGRlcicpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfWZvbGRlciIgdmFsdWU9InskaGFuZGxlci0+Zm9sZGVyfSI+CiAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb191bmlxdWVmaWxlX2ZvbGRlcicpfQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8cCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X3VuaXF1ZWZpbGVfZmlsZW5hbWV0cGwnKX06PC9wPgogIDxwIGNsYXNzPSJncmlkXzkiPgogICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZmlsZW5hbWVfdGVtcGxhdGUgdmFsdWU9JGhhbmRsZXItPmZpbGVuYW1lX3RlbXBsYXRlfQogICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fdW5pcXVlZmlsZV9maWxlbmFtZXRwbCcpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2hkcnRlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWhlYWRlcnRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5oZWFkZXJ0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbnRyeXRlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWVudHJ5dGVtcGxhdGUgdmFsdWU9JGhhbmRsZXItPmVudHJ5dGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQp7JHRwbF9oZWxwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_webhook_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X1dlYkhvb2tEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X3dlYmhvb2tfdXJsJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfMTIiIHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9dXJsIiB2YWx1ZT0ieyRoYW5kbGVyLT51cmx9IiByZXF1aXJlZC8+CiAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX3dlYmhvb2tfdXJsJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF93ZWJob29rX2V4dHJhdmFycycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAge3h0X3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0iZXh0cmFwb3N0dmFycyIgdmFsdWU9JGhhbmRsZXItPmV4dHJhcG9zdHZhcnMgY2xhc3M9ImdyaWRfMTIifQogICAgIDxwIGNsYXNzPSJncmlkXzEyIj57JG1vZC0+TGFuZygnaW5mb193ZWJob29rX2V4dHJhdmFycycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZm9ybScpfTwvaDM+Cntmb3JtX3N0YXJ0fQogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPip7JG1vZC0+TGFuZygncHJvbXB0X2ZpbGUnKX06PC9sYWJlbD4KICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ic210Zm1fZmlsZSIgdmFsdWU9IiIgcmVxdWlyZWQgY2xhc3M9ImdyaWRfOSIvPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_varhelp.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGlzcGxheSB2YXJpYWJsZSBoZWxwICp9CjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCd0aXRsZV90ZW1wbGF0aW5nX2hlbHAnKX08L2xlZ2VuZD4KICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ3R5cGUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2Rlc2NyaXB0aW9uJyl9PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggJHZhcnMgYXMgJHZhcn0KICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgogICAgICA8dGQ+eyR2YXItPmtleX08L3RkPgogICAgICA8dGQ+eyR2YXItPnR5cGV8ZGVmYXVsdDonJ308L3RkPgogICAgICA8dGQ+eyR2YXItPmRlc2N8ZGVmYXVsdDonJ308L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KICA8L3RhYmxlPgo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZWRpdF9mb3JtfSI+e2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCdhZGRfbmV3X2Zvcm0nKX08L2E+CiAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9pbXBvcnRfZm9ybX0iPnthZG1pbl9pY29uIGljb249J2ltcG9ydC5naWYnfSB7JG1vZC0+TGFuZygnaW1wb3J0X2Zvcm0nKX08L2E+CjwvZGl2PgoKe2lmICFlbXB0eSgkZm9ybXMpICYmIGNvdW50KCRmb3Jtcyl9Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnaWQnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ3RhZycpfTwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAge2ZvcmVhY2ggJGZvcm1zIGFzICRpZCA9PiAkbmFtZX0KICAgICAge2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X2Zvcm0gZm9ybT0kaWQgYXNzaWduPSdlZGl0X3VybCd9CiAgICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgogICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JGlkfTwvYT48L3RkPgoJPHRkPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskbmFtZX08L2E+PC90ZD4KCTx0ZD57bGRlbGltfVNtYXJ0Rm9ybXMgZm9ybT0mcXVvdDt7JG5hbWV9JnF1b3Q7e3JkZWxpbX08L3RkPgoJPHRkPjxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZXhwb3J0X2Zvcm0gZm9ybT0kaWR9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2V4cG9ydF9mb3JtJyl9Ij57YWRtaW5faWNvbiBpY29uPSdleHBvcnQuZ2lmJ308L2E+PC90ZD4KCTx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZid9PC9hPjwvdGQ+Cgk8dGQ+PGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9kZWxldGVfZm9ybSBmb3JtPSRpZH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9IiBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1kZWxldGUnKX0nKTsiPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYT48L3RkPgogICAgICA8L3RyPgogICAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+Cgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_advanced_contact_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3NtdGZtX2Zvcm1fZXJyb3JzIGFzc2lnbj0nZXJyb3JzJ30Ke2lmICFlbXB0eSgkZXJyb3JzKX0KICA8dWwgY2xhc3M9ImVycm9yIj4KICB7Zm9yZWFjaCAkZXJyb3JzIGFzICRlcnJ9CiAgICA8bGk+eyRlcnJ9PC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4Key9pZn0KCjxmb3JtPgogIDxoMz5BIG1vcmUgYWR2YW5jZWQgY29udGFjdCBmb3JtPC9oMz4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgPGxhYmVsIGZvcj0ibXluYW1lIj5Zb3VyIE5hbWU6PC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9Im15bmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ibmFtZSIgdmFsdWU9InskZm9ybV9kYXRhLT5uYW1lfSIgcmVxdWlyZWQvPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJteWVtYWlsIj5Zb3VyIEVtYWlsOjwvbGFiZWw+CiAgICAgPGlucHV0IGlkPSJteWVtYWlsIiBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIHZhbHVlPSJ7JGZvcm1fZGF0YS0+ZW1haWx9IiByZXF1aXJlZC8+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgIDxsYWJlbCBmb3I9InBob25lIj5QaG9uZSBOdW1iZXIgKDEwIGRpZ2l0cyk6PC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9InBob25lIiBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJ0ZXh0IiBuYW1lPSJwaG9uZSIgdmFsdWU9InskZm9ybV9kYXRhLT5waG9uZX0iIHBhdHRlcm49IlswLTlde2xkZWxpbX0xMCwxMXtyZGVsaW19Ii8+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgIDxsYWJlbCBmb3I9ImR1ZWRhdGUiPkR1ZSBEYXRlOjwvbGFiZWw+CiAgICAgPGlucHV0IGlkPSJkdWVkYXRlIiBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJkYXRlIiBuYW1lPSJkdWVkYXRlIiB2YWx1ZT0ieyRmb3JtX2RhdGEtPmR1ZWRhdGV9IiBkYXRhLXNtdGZtLW1pbj0ieyRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclWS0lbS0lZCd9Ii8+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgIDxsYWJlbCBmb3I9ImlucXVpcnlfdHlwZSI+SG93IGRpZCB5b3UgaGVhciBhYm91dCB1czo8L2xhYmVsPgogICAgIDxzZWxlY3QgaWQ9ImlucXVpcnlfdHlwZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0iaW5xdWlyeV90eXBlIiBkYXRhLXNtdGZtLXJlcXVpcmVkIGRhdGEtc210Zm0tc2VsZWN0ZWQ9IndlYmFkIj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSIiIGxhYmVsPSJub25lIj48L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9IndlYmFkIiBkYXRhLXNtdGZtLWh1bWFuPSJXZWIgQWR2ZXJ0aXNlbWVudCI+VmlhIGEgd2ViIGFkPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJzZWFyY2giIGRhdGEtc210Zm0taHVtYW49IlNlYXJjaCBFbmdpbmUiPkludGVybmV0IHNlYXJjaDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0iZnJpZW5kIj5Gcm9tIGEgZnJpZW5kPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJjdXN0b21lciIgZGF0YS1zbXRmbS1odW1hbj0iQ3VzdG9tZXIiPkkgYW0gYSBjdXJyZW50L3Bhc3QgY3VzdG9tZXI8L29wdGlvbj4KICAgICA8L3NlbGVjdD4KICAgICA8Zm9vPnsqIHRoaXMgaW52YWxpZCB0YWcgaXMgaGVyZSBpbnRlbnRpb25hbGx5LCB0byBpbGx1c3RyYXRlIHNvbWUgb2YgdGhlIGZvcm0gc2Nhbm5pbmcgcHJvY2VzcyAqfQogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJjb21tZW50cyI+WW91ciBDb21tZW50czo8L2xhYmVsPgogICAgIDx0ZXh0YXJlYSBpZD0iY29tbWVudHMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9ImNvbW1lbnRzIiBkYXRhLXNtdGZtLXJlcXVpcmVkPnskZm9ybV9kYXRhLT5jb250ZW50c308L3RleHRhcmVhPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJpbWFnZSI+SW1hZ2UgQXR0YWNobWVudCAocmVxdWlyZWQpPC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9ImltYWdlIiBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJmaWxlIiBuYW1lPSJpbWFnZSIgYWNjZXB0PSJpbWFnZS8qIiBkYXRhLXNtdGZtLW1heHNpemU9NTAwMDAgZGF0YS1zbXRmbS1yZXF1aXJlZC8+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgIDxsYWJlbCBmb3I9InByaW9yaXR5Ij5Qcmlvcml0eTwvbGFiZWw+CiAgICAgPGlucHV0IGlkPSJwcmlvcml0eSIgY2xhc3M9ImZvcm0tY29udHJvbCIgdHlwZT0ibnVtYmVyIiBuYW1lPSJwcmlvcml0eSIgdmFsdWU9InskZm9ybV9kYXRhLT5wcmlvcml0eXxkZWZhdWx0OjV9IiBkYXRhLXNtdGZtLXJlcXVpcmVkLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgPHA+UGxlYXNlIGNvbnRhY3QgbWUgdmlhOjwvcD4KICAgICA8bGFiZWw+PGlucHV0IGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9InJhZGlvIiBuYW1lPSJjb250YWN0X2J5IiB2YWx1ZT0iZW1haWwiIGRhdGEtc210Zm0tbGFiZWw9J0NvbnRhY3QgVmlhJyBkYXRhLXNtdGZtLXNlbGVjdGVkPSJ7JGZvcm1fZGF0YS0+Y29udGFjdF9ieXxkZWZhdWx0OidlbWFpbCd9Ii8+IEVtYWlsPC9sYWJlbD4KICAgICA8bGFiZWw+PGlucHV0IGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9InJhZGlvIiBuYW1lPSJjb250YWN0X2J5IiB2YWx1ZT0icGhvbmUiIGRhdGEtc210Zm0tc2VsZWN0ZWQ9InskZm9ybV9kYXRhLT5jb250YWN0X2J5fGRlZmF1bHQ6J2VtYWlsJ30iLz4gUGhvbmU8L2xhYmVsPgogIDwvZGl2PgoKICA8ZGl2IGRhdGEtc210Zm0tY2FwdGNoYT57KiBjYXB0Y2hhIHdpbGwgYmUgYXBwZW5kZWQgaGVyZSAqfTwvZGl2PgogIDxkaXYgZGF0YS1zbXRmbS1jYXB0Y2hhLWlucHV0PnsqIGNhcHRjaGEgaW5wdXQgZmllbGQsIGlmIG5lY2Vzc2FyeSB3aWxsIGJlIGFwcGVuZGVkIGhlcmUgKn08L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICA8YnV0dG9uIHR5cGU9InJlc2V0Ij5SZXNldDwvYnV0dG9uPgogICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiPlN1Ym1pdDwvYnV0dG9uPgogIDwvZGl2Pgo8L2Zvcm0+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_contact_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3NtdGZtX2Zvcm1fZXJyb3JzIGFzc2lnbj0nZXJyb3JzJ30Ke2lmICFlbXB0eSgkZXJyb3JzKX0KICA8dWwgY2xhc3M9ImVycm9yIj4KICB7Zm9yZWFjaCAkZXJyb3JzIGFzICRlcnJ9CiAgICA8bGk+eyRlcnJ9PC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4Key9pZn0KCjxmb3JtPgoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgIDxsYWJlbCBmb3I9Im15bmFtZSI+WW91ciBOYW1lOjwvbGFiZWw+CiAgICAgPGlucHV0IGlkPSJteW5hbWUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9Im5hbWUiIHJlcXVpcmVkLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgICA8bGFiZWwgZm9yPSJteWVtYWlsIj5Zb3VyIEVtYWlsOjwvbGFiZWw+CiAgICAgPGlucHV0IGlkPSJteWVtYWlsIiBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIHJlcXVpcmVkLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgICA8bGFiZWwgZm9yPSJjb21tZW50cyI+WW91ciBDb21tZW50czo8L2xhYmVsPgogICAgIDx0ZXh0YXJlYSBpZD0iY29tbWVudHMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9ImNvbW1lbnRzIiByZXF1aXJlZD48L3RleHRhcmVhPgogIDwvZGl2PgoKICA8ZGl2IGRhdGEtc210Zm0tY2FwdGNoYT48L2Rpdj4KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxidXR0b24gdHlwZT0icmVzZXQiPlJlc2V0PC9idXR0b24+CiAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+U3VibWl0PC9idXR0b24+CiAgPC9kaXY+CjwvZm9ybT4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_trivial_widget_builder.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICB7KgogICBUaGlzIHRlbXBsYXRlIHJlcXVpcmVzIGpxdWVyeSwgIGl0IHNob3VsZCBiZSBpbml0aWFsaXplZCBzb21ld2hlcmUgaW4gdGhlIGhlYWQgb2YgeW91ciBwYWdlIHRlbXBsYXRlIChub3QgdGhlIGJvZHkpIGluIG9yZGVyIHRvIHVzZSB0aGlzIHRlbXBsYXRlIGFzIGlzLgogICAKICAgdGhpcyBpcyBhIHRyaXZpYWwgZXhhbXBsZSBvZiBjYWxjdWxhdGluZyBwcmljZSBpbiBqYXZhc2NyaXB0L2pxdWVyeS4KICAgeW91IGNvdWxkIHVzZSBhamF4LCBvciBhbnkgb3RoZXIgbWVhbnMgdG8gZ2V0IGdldCBpbml0aWFsIGRhdGEsIHBvcHVsYXRlIHRoZSBmb3JtCiAgIGFuZCB0byBjYWxjdWxhdGUgdGhlIHByaWNlLgogICAqfQogICB2YXIgYmFzZV9wcmljZSA9IDEwLjA7CiAgIHZhciBlbF9zaXplID0gJCgnI3dpZGdldF9zaXplJyk7CiAgIHZhciBlbF9jb2xvciA9ICQoJyN3aWRnZXRfY29sb3InKTsKICAgdmFyIGVsX3NoYXBlID0gJCgnI3dpZGdldF9zaGFwZScpOwogICB2YXIgZWxfcHJpY2UgPSAkKCcjd2lkZ2V0X3ByaWNlJyk7CgogICBmdW5jdGlvbiBjYWxjX3ByaWNlKCkgewogICAgICB2YXIgcHJpY2UgPSBiYXNlX3ByaWNlOwogICAgICBwcmljZSArPSAkKCdvcHRpb246c2VsZWN0ZWQnLGVsX3NpemUpLmRhdGEoJ3ByaWNlJyk7CiAgICAgIHByaWNlICs9ICQoJ29wdGlvbjpzZWxlY3RlZCcsZWxfY29sb3IpLmRhdGEoJ3ByaWNlJyk7CiAgICAgIHByaWNlICs9ICQoJ29wdGlvbjpzZWxlY3RlZCcsZWxfc2hhcGUpLmRhdGEoJ3ByaWNlJyk7CiAgICAgIGVsX3ByaWNlLnZhbChwcmljZSk7CiAgIH0KCiAgIGVsX3NpemUuY2hhbmdlKGNhbGNfcHJpY2UpOwogICBlbF9jb2xvci5jaGFuZ2UoY2FsY19wcmljZSk7CiAgIGVsX3NoYXBlLmNoYW5nZShjYWxjX3ByaWNlKTsKICAgZWxfc2l6ZS50cmlnZ2VyKCdjaGFuZ2UnKTsKfSk7Cjwvc2NyaXB0PgoKe3NtdGZtX2Zvcm1fZXJyb3JzIGFzc2lnbj0nZXJyb3JzJ30Ke2lmICFlbXB0eSgkZXJyb3JzKX0KICA8dWwgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+CiAge2ZvcmVhY2ggJGVycm9ycyBhcyAkZXJyfQogICAgPGxpPnskZXJyfTwvbGk+CiAgey9mb3JlYWNofQogIDwvdWw+CnsvaWZ9Cgo8aDM+VHJpdmlhbCBXaWRnZXQgQnVpbGRlcjwvaDM+Cjxmb3JtIGlkPSJzaW1wbGVfY2FsY3VsYXRvciI+CjxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0yIj5XaWRnZXQgU2l6ZToKICAgICAgPHNlbGVjdCBpZD0id2lkZ2V0X3NpemUiIG5hbWU9IndpZGdldF9zaXplIiBjbGFzcz0iY29sLXNtLTkiIGRhdGEtc210Zm0tc2VsZWN0ZWQ9InskZm9ybV9kYXRhLT53aWRnZXRfc2l6ZXxkZWZhdWx0OidtZWRpdW0nfSI+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9InNtYWxsIiBkYXRhLXByaWNlPTA+U21hbGw8L29wdGlvbj4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibWVkaXVtIiBkYXRhLXByaWNlPTE+TWVkaXVtPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9ImxhcmdlIiBkYXRhLXByaWNlPTI+TGFyZ2U8L29wdGlvbj4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWEwiIGRhdGEtcHJpY2U9Mz5YTDwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJYWEwiIGRhdGEtcHJpY2U9ND5YWEw8L29wdGlvbj4KICAgICAgPC9zZWxlY3Q+CiAgIDwvbGFiZWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMiI+V2lkZ2V0IENvbG9yOgogICAgICA8c2VsZWN0IGlkPSJ3aWRnZXRfY29sb3IiIG5hbWU9IndpZGdldF9jb2xvciIgY2xhc3M9ImNvbC1zbS05IiBkYXRhLXNtdGZtLXNlbGVjdGVkPSJ7JGZvcm1fZGF0YS0+d2lkZ2V0X2NvbG9yfGRlZmF1bHQ6J3JlZCd9Ij4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYmxhY2siIGRhdGEtcHJpY2U9MD5CbGFjazwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJ3aGl0ZSIgZGF0YS1wcmljZT0wPldoaXRlPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9InJlZCIgZGF0YS1wcmljZT0xPlJlZDwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJncmVlbiIgZGF0YS1wcmljZT0yPkdyZWVuPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJsdWUiIGRhdGEtcHJpY2U9Mz5CbHVlPC9vcHRpb24+CiAgICAgIDwvc2VsZWN0PgogICA8L2xhYmVsPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTIiPldpZGdldCBDb2xvcjoKICAgICAgPHNlbGVjdCBpZD0id2lkZ2V0X3NoYXBlIiBuYW1lPSJ3aWRnZXRfc2hhcGUiIGNsYXNzPSJjb2wtc20tOSIgZGF0YS1zbXRmbS1zZWxlY3RlZD0ieyRmb3JtX2RhdGEtPndpZGdldF9zaGFwZXxkZWZhdWx0Oidyb3VuZCd9Ij4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic3F1YXJlIiBkYXRhLXByaWNlPTA+U3F1YXJlPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9InJvdW5kIiBkYXRhLXByaWNlPTA+Q2lyY3VsYXI8L29wdGlvbj4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib3ZhbCIgZGF0YS1wcmljZT0xPk92YWw8L29wdGlvbj4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaGV4IiBkYXRhLXByaWNlPTI+SGV4YWdvbjwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJvY3QiIGRhdGEtcHJpY2U9Mz5PY3RhZ29uPC9vcHRpb24+CiAgICAgIDwvc2VsZWN0PgogICA8L2xhYmVsPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMiI+RmluYWwgUHJpY2U6CiAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aWRnZXRfcHJpY2UiIGRpc2FibGVkPnsqIG5hbWUgb21pdHRlZCBpbnRlbnRpb25hbGx5LCBzbyB0aGF0IGNhbGN1bGF0ZWQgZGF0YSBpcyBub3Qgc3VibWl0dGVkLiAqfQogIDwvbGFiZWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ciPgogICA8YnV0dG9uPlN1Ym1pdDwvYnV0dG9uPgo8L2Rpdj4KPC9mb3JtPgo=]]></data>
	</file>
</module>
