<?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>CSSPreprocessor</name>
	<version>1.4.1</version>
  <mincmsversion>2.1.1</mincmsversion>
	<help><![CDATA[PGgyPldoYXQgZG9lcyB0aGlzIGRvPzwvaDI+CiA8cD5UaGlzIG1vZHVsZSBhZGRzIHRvIHRoZSBDTVNNUyBTdHlsZXNoZWV0cyAvIERlc2lnbiBtYW5hZ2VyIHNvbWUgQ1NTIFByZXByb2Nlc3NvcnMsIGluIG9yZGVyIHRvIGNvbXBpbGUgTEVTUyAob3Igb3RoZXIgbWF5YmUgbGF0ZXIpIGNvZGU8L3A+CiAKIDxoMj5Ib3cgZG9lcyBpdCB3b3JrIGFuZCBpbnRlZ3JhdGUgaW4gQ01TTVM8L2gyPgogPHA+CglUaGlzIG1vZHVsZSB1c2VzIHRoZSBzdGFuZGFyZCBzdHlsZXNoZWV0cyBvZiBDTVMgTWFkZSBTaW1wbGUuIEl0IGlzIGxhdW5jaGVkIGFmdGVyIGFsbCB0aGUgc3R5bGVzaGVldHMgaGF2ZSBiZWVuIGNvbWJpbmVkLCBhbmQgaXQgdGFrZXMgYWxsIHRoZSBDU1MgY29udGVudCB0byBnaXZlIGl0IHRvIHRoZSBQcmVwcm9jZXNzb3Igb2YgeW91ciBjaG9pY2UuCiA8L3A+CiA8cD4KCQlLZWVwIGluIG1pbmQgdGhhdCB0aGlzIG1vZHVsZSBwcm9jZXNzZXMgdGhlIGVudGlyZSBzdHlsZXNoZWV0IGFmdGVyIHRoZWlyIGNvbWJpbmF0aW9uLiBObyBtYXR0ZXIgaWYgeW91IHVzZSAxIG9yIDEwIHN0eWxlc2hlZXRzIGluIHlvdXIgZGVzaWduLCB0aGUgcHJlcHJvY2Vzc29yIHdpbGwgb25seSBnZXQgb25lIHN0cmluZy4KIDwvcD4KCjxoMj5Ib3cgRG8gSSBVc2UgSXQ8L2gyPgo8dWw+Cgk8bGk+VXNlIHRoZSAiY29tYmluZSIgb3B0aW9uIChkZWZhdWx0IGluIHtjbXNfc3R5bGVzaGVldH0pPC9saT4KCTxsaT5JbiBvcmRlciB0byByZWNvZ25pemUgd2hpY2ggdGVtcGxhdGUgaXMgYSBzdHlsZXNoZWV0LCB5b3UgTVVTVCBwdXQgdGhhdCBzdHJpbmcgaW4gb25lIG9mIHlvdXIgc3R5bGVzaGVldHM6IDxzdHJvbmc+QEBDU1NQcmVwcm9jZXNzb3JAQDwvc3Ryb25nPiAtIEkgc3VnZ2VzdCBwdXR0aW5nIGl0IGluIGEgc2ltcGxlIGNvbW1lbnQ8L2xpPgoJPGxpPgoJCURlZmluZSB5b3VyIGltcG9ydCBkaXJlY3RvcmllcywgaWYgeW91IHVzZSBpdC4gRm9yIGV4ZW1wbGUsIGlmIHlvdSB3YW50IHRvIGludGVncmF0ZSBCb290c3RyYXAsIHlvdSBjYW4gOgoJCTxvbD4KCQkJPGxpPlB1dCB5b3VyIEJvb3RzdHJhcCBMRVNTIHNvdXJjZSBmaWxlcyBpbiB1cGxvYWRzL2Jvb3RzdHJhcC88L2xpPgoJCQk8bGk+VHlwZSA8c3Ryb25nPjxlbT51cGxvYWRzL2Jvb3RzdHJhcDwvZW0+PC9zdHJvbmc+IGluIHRoZSAiRGlyZWN0b3JpZXMgY29udGFpbmluZyBMRVNTIGZpbGVzIHRvIGluY2x1ZGUgaW4gY29tcGlsYXRpb24iIC0gTm8gc2xhc2ggYXQgYmVnaW5uaW5nIG9yIGVuZDwvbGk+CgkJPC9vbD4KCTwvbGk+Cgk8bGk+U3RhcnQgdXNpbmcgTEVTUyBjb2RlIGluIHlvdXIgc3R5bGVzaGVldHMhPC9saT4KPC91bD4KCjxoMj5VcGRhdGluZyBzdHlsZXNoZWV0czwvaDI+CjxwPgoJSWYgeW91IG1ha2UgYW4gdXBkYXRlIG9uIGEgQ01TTVMgc3R5bGVzaGVldCwgZXZlcnl0aGluZyBpcyBmaW5lIGFuZCB0aGUgbW9kdWxlIHdpbGwgcHJvY2VzcyB0aGUgc3R5bGVzaGVldCBhZ2FpbiBvbiB0aGUgbmV4dCBwYWdlIHJlZnJlc2guCjwvcD4KPHA+CglIb3dldmVyLCBpZiB5b3UgZGlkIG1ha2UgYSBjaGFuZ2UgaW4geW91ciBpbXBvcnRlZCBsZXNzIGZpbGVzLCB0aGUgc3lzdGVtIHdpbGwgbm90IHBlcmZvcm0gYW55IHVwZGF0ZSAtIGluIHRoaXMgY2FzZSwgeW91IG11c3QgY2xlYXIgdGhlIGNhY2hlIG9yIHNpbXBseSByZW1vdmUgdGhlIHN0eWxlc2hlZXQgZnJvbSB0aGUgY2FjaGUgZGlyZWN0b3J5Lgo8L3A+Cgo8aDI+RXhhbXBsZTogdXNpbmcgQm9vdHN0cmFwPC9oMj4KPHA+VGhpcyBpcyBhIHByb3Bvc2FsIG9uIGhvdyB0byB1c2UgYW5kIGNvbXBpbGUgQm9vdHN0cmFwIGZvciBDTVMgTWFkZSBTaW1wbGUgd2l0aCB0aGUgQ1NTUHJlcHJvY2Vzc29yIG1vZHVsZSA6PC9wPgo8b2w+Cgk8bGk+UHV0IHRoZSBCb290c3RyYXAgTEVTUyBmaWxlcyBpbiA8c3Ryb25nPnVwbG9hZHMvYm9vdHN0cmFwLzwvc3Ryb25nPjwvbGk+Cgk8bGk+Q3JlYXRlIGEgbmV3IHN0eWxlc2hlZXQgaW4gQ01TTVMgY2FsbGVkIHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+PGVtPkJvb3RzdHJhcCA6OiBtYWluPC9lbT48L3N0cm9uZz48L2xpPgoJPGxpPkluIHRoYXQgbmV3IHN0eWxlc2hlZXQsIGNvcHkgYWxsIHRoZSBjb250ZW50IGZyb20gYm9vdHN0cmFwL2Jvb3RzdHJhcC5sZXNzIC0gVGhpcyBmaWxlIGlzIG9ubHkgYSBsaXN0IG9mIGZpbGUgaW1wb3J0LCBidXQgaXQncyBuaWNlIHRvIGhhdmUgaXQgaW4gQ01TTVMgYmVjYXVzZSB5b3UgY2FuIGVhc2lseSBjb21tZW50IG91dCB0aGUgZmlsZXMgeW91IGRvbid0IG5lZWQ8L2xpPgoJPGxpPkluIHRoZSBDU1NQcmVwcm9jZXNzb3IgbW9kdWxlIHByZWZlcmVuY2VzLCBhZGQgPHN0cm9uZz51cGxvYWRzL2Jvb3RzdHJhcDwvc3Ryb25nPiB0byB0aGUgaW1wb3J0IGRpcmVjdG9yaWVzPC9saT4KCTxsaT5DcmVhdGUgYSBuZXcgc3R5bGVzaGVldCBjYWxsZWQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz48ZW0+Q3VzdG9tIDo6IG1haW48L2VtPjwvc3Ryb25nPjwvbGk+Cgk8bGk+UHV0IHRoZSBzdHJpbmcgPHN0cm9uZz5AQENTU1ByZXByb2Nlc3NvckBAPC9zdHJvbmc+IGF0IHRoZSB0b3A8L2xpPgoJPGxpPllvdSBjYW4gbm93IHVzZSB0aGF0IGZpbGUgdG8gZGVmaW5lIHlvdXIgY3VzdG9tIHZhcmlhYmxlcywgb3ZlcnJpZGUgQm9vdHN0cmFwIHZhcmlhYmxlcywgY3JlYXRlIHlvdXIgc3R5bGVzLCAuLi4gT3IgeW91ciBjYW4gY3JlYXRlIGFzIG11Y2ggc3R5bGVzaGVldHMgYXMgeW91IHdhbnQ8L2xpPgoJPGxpPkRvbid0IGZvcmdldCB0byBsaW5rIHlvdXIgc3R5bGVzaGVldHMgdG8geW91ciB0ZW1wbGF0ZXMgKGNtc21zIDwgMi4wKSBvciBkZXNpZ25zIChjbXNtcyA9PCAyLjApIC0gWW91IHNob3VsZCBtYXliZSBwdXQgdGhlIEJvb3RzdHJhcCA6OiBtYWluIGZpbGUgYXQgdGhlIHRvcCwgYmVmb3JlIG90aGVyIHN0eWxlc2hlZXRzPC9saT4KPC9vbD4KPHA+CglOb3cgeW91IGNhbiBzaW1wbHkgY2hhbmdlIHRoZSBncmlkIG9yIHdoYXRldmVyIHlvdSB3YW50IGluIHlvdXIgY3VzdG9tIGZpbGVzLCBiZWNhdXNlIHRoZSBwcmVwcm9jZXNzb3JzIGRvZXNuJ3QgY2FyZSBvZiB0aGUgb3JkZXIgb2YgdGhlIGNvZGUgLSBQdXR0aW5nIDxzdHJvbmc+QGdyaWQtY29sdW1uczogMTI7PC9zdHJvbmc+IGluIHlvdXIgY3VzdG9tIHN0eWxlc2hlZXRzIHdpbGwgd29yayEKPC9wPgoKCgo8aDI+U21hcnR5IHN1cHBvcnQ8L2gyPgo8cD5Zb3UgY2FuIHVzZSBTbWFydHkgdGFncyB3aXRoIFtbIGFuZCBdXSAtIFNtYXJ0eSB3aWxsIGJlIHByb2Nlc3NlZCBiZWZvcmUgdGhlIENTUyBQcmVQcm9jZXNzb3IuPC9wPgoKPGgyPlVzaW5nIFNvdXJjZW1hcHM8L2gyPgo8cD4KCVNvbWUgcHJlcHJvY2Vzc29ycyBjYW4gY3JlYXRlIHNvdXJjZW1hcCBmaWxlcywgaW4gb3JkZXIgdG8gaGVscCB5b3UgZHVyaW5nIGludGVncmF0aW9uLiBEb24ndCBmb3JnZXQgdG8gY29uZmlndXJlIHlvdXIgYnJvd3NlciB0byB1c2UgdGhhdCBmdW5jdGlvbi4gTm90ZSB0aGF0IG9ubHkgaW1wb3J0ZWQgZmlsZXMgd2lsbCBiZSBtYXBwZWQgaW4gdGhlIHNvdXJjZW1hcHMgKHRoaXMgbWF5IGNoYW5nZSBpbiBhIGZ1cnRoZXIgdmVyc2lvbikuCjwvcD4KCjxoMj5EZWFjdGl2YXRlIHRoZSBtb2R1bGU8L2gyPgo8cD4KCUlmIHlvdSBkb24ndCB3YW50IHRvIHVzZSBhbnkgb2YgdGhlIHByZXByb2Nlc3NvcnMsIHBsZWFzZSByZW1vdmUgaXQgb3IgZGlzYWJsZSBpdCBpbiB0aGUgTW9kdWxlcyBNYW5hZ2VyIC0gVGhlcmUgYXJlIG5vICJkZWFjdGl2YXRlIiBmdW5jdGlvbiBidWlsdCBpbiB0aGUgbW9kdWxlLgo8L3A+Cgo8aDI+UHJlcHJvY2Vzc29yIHN3aXRjaDwvaDI+CjxwPgoJWW91IG1heSB3YW50IHRvIHN3aXRjaCBmcm9tIG9uZSBwcmVwcm9jZXNzb3IgdG8gYW5vdGhlciAtIERvbid0IGZvcmdldCB0byBjbGVhciB5b3VyIGNhY2hlIGFmdGVyIHRoYXQgYmVjYXVzZSB0aGUgbW9kdWxlIHdpbGwgbm90IGRvIGl0Lgo8L3A+Cgo8aDI+RXh0ZW5kIHdpdGggYW5vdGhlciBwcmVwcm9jZXNzb3I8L2gyPgo8cD4KCVlvdSBjYW4gY3JlYXRlIGEgbmV3IGRpcmVjdG9yeSBpbiB0aGUgInByZXByb2Nlc3NvcnMiIGRpcmVjdG9yeSwgYW5kIGNyZWF0ZSB5b3VyIG93biBjbGFzcyAtIENoZWNrIGhvdyB0aGUgYnVuZGxlZCBwcmVwcm9jZXNzb3JzIGFyZSBpbnRlZ3JhdGVkLgo8L3A+CjxwPkRvbid0IGZvcmdldCB0byA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBhaXJlbGlicmUuZnIiPmVtYWlsIG1lPC9hPiBpZiB5b3Ugd2FudCB5b3VyIHByZXByb2Nlc3NvciB0byBiZSBhZGRlZCB0byB0aGUgcHJvamVjdCE8L3A+Cgo8aDI+U3VwcG9ydDwvaDI+Cgk8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoJPHA+CgkJSWYgeW91IHdhbnQgdG8gY29udGFjdCBtZTogPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAYWlyZWxpYnJlLmZyIj5jb250YWN0QGFpcmVsaWJyZS5mcjwvYT4KCTwvcD4KCQo8aDI+UHJvamVjdCBvbiB0aGUgd2ViPC9oMj4KPHA+WW91IGNhbiBmb2xsb3cgdGhlIHByb2plY3Qgb24gOiA8L3A+Cgk8dWw+CgkJPGxpPkdpdEh1YjogPGEgaHJlZj0iaHR0cHM6I2dpdGh1Yi5jb20vYWlyZWxpYnJlL0NTU1ByZXByb2Nlc3NvciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOiNnaXRodWIuY29tL2FpcmVsaWJyZS9DU1NQcmVwcm9jZXNzb3I8L2E+PC9saT4KCQk8bGk+Q01TTVMgRm9yZ2U6IDxhIGhyZWY9Imh0dHA6I2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jc3NwcmVwcm9jZXNzb3IiIHRhcmdldD0iX2JsYW5rIj5odHRwOiNkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3NzcHJlcHJvY2Vzc29yPC9hPjwvbGk+Cgk8L3VsPgoKPGgyPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDI+Cgk8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTQsIEFpcmVMaWJyZSA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBhaXJlbGlicmUuZnIiPmNvbnRhY3RAYWlyZWxpYnJlLmZyPC9hPiAvIDxhIGhyZWY9Imh0dHA6I3d3dy5haXJlbGlicmUuZnIiIHRhcmdldD0iX2JsYW5rIj53d3cuYWlyZWxpYnJlLmZyPC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgoJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6I3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgoJCgk8aDM+UHJlcHJvY2Vzc29ycyBjb3B5cmlnaHQ8L2gzPgoJPHA+CgkJVGhlIGF1dGhvciBvZiB0aGlzIG1vZHVsZSBkb2VzIG5vdCBvd24gdGhlIHByZXByb2Nlc3NvcnMgYnVuZGxlZCB3aXRoIGl0IC0gUGxlYXNlIHNlZSBldmVyeSBwcmVwcm9jZXNzb3JzIHNvdXJjZSBjb2RlIC8gd2Vic2l0ZSB0byBnZXQgaW5mb3JtYXRpb25zIGFib3V0IGxpY2VuY2UgYW5kIGNvcHlyaWdodC4KCTwvcD4KCTxwPkkganVzdCB3YW50ZWQgdG8gdGhhbmsgYWxsIHRoZSBkZXZlbG9wZXJzIHRoYXQgY29udHJpYnV0ZSB0byB0aGVzZSBwcmVwcm9jZXNzb3JzIHdoaWNoIGFyZSBncmVhdCB0b29scyBmb3IgZGVzaWduZXJzITwvcD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBBaXJlTGlicmUgLSBNYXRoaWV1IE11dGhzICZsdDtjb250YWN0QGFpcmVsaWJyZS5mciZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjQuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICA8bGk+CiAgICA8c3Ryb25nPjEuNC4xPC9zdHJvbmc+IC0gMjAxNi0wMS0xODogYnVnIGZpeCByZWxhdGVkIHRvIHNtYXJ0eSBkZWxpbWl0ZXJzICgiW1siIGFuZCAiXV0iKQogIDwvbGk+CiAgPGxpPgogICAgPHN0cm9uZz4xLjQ8L3N0cm9uZz4gLSAyMDE2LTAxLTA4OgogICA8dWw+CiAgICAgIDxsaT5NaW5pbWFsIENNUyB2ZXJzaW9uID0gMi4xLjE8L2xpPgogICAgICA8bGk+Tm93IHVzZXMgdGhlIFN0eWxlc2hlZXRQcmVDb21waWxlIGV2ZW50IGluc3RlYWQgb2YgdGhlIFNtYXJ0eVByZUNvbXBpbGU8L2xpPgogICAgICA8bGk+U29tZSBidWcgZml4ZSAoZGVmYXVsdCBQcmVQcm9jZXNzb3IgYmVjb21lIE95ZWpvcmdlcyBvbmUpPC9saT4KICAgICAgPGxpPlVwZGF0ZWQgdG8gT3llam9yZ2UncyBMZXNzLnBocCB2LiAxLjcuMC4xMCAtIHBsZWFzZSB0ZXN0ITwvbGk+CiAgICAgIDxsaT5SZW1vdmVkIHRoZSAteCAoY29tcHJlc3MpIG9wdGlvbiBmcm9tIExlc3MgY29tbWFuZCBsaW5lIGNvbXBpbGVyIFByZXByb2Nlc3NvciBhcyBpdCdzIG5vdyBkZXByZWNhdGVkIC0geW91IGNhbiB1c2UgdGhlIGVtYmVkZWQgbWluaWZpZXI8L2xpPgogICAgPC91bD4KICA8L2xpPgoJPGxpPjxzdHJvbmc+MS4zPC9zdHJvbmc+IC0gMjAxNS0wMS0yMDogYWRkIHN1cHBvcnQgZm9yIEF1dG9wcmVmaXggZm9yIHRoZSBMZXNzYyBjb21tYW5kIGxpbmUgLSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3Bvc3Rjc3MvYXV0b3ByZWZpeGVyIC0gY2hlY2sgb3V0IG5ldyBvcHRpb25zIG9uIHRoZSBhZG1pbiBwYW5lbCAtIHBsZWFzZSB0ZXN0IHdpdGggeW91ciB2ZXJzaW9uIG9mIExlc3NjPC9saT4KCTxsaT48c3Ryb25nPjEuMjwvc3Ryb25nPiAtIDIwMTQtMDktMjU6IHVwZGF0ZSB0byB0aGUgcGF0aHMgLyBOb3cgdGhlIGluY2x1ZGUgZGlyIGlzIHJlbGF0aXZlIHRvIHRoZSByb290IHBhdGggKG5vdCB0aGUgdXBsb2FkcyBhbnltb3JlKSAtIFBsZWFzZSB1cGRhdGUgeW91ciBjb25maWd1cmF0aW9uIHRvIGFkZCA8c3Ryb25nPnVwbG9hZHMvPC9zdHJvbmc+IGlmIG5lZWRlZCE8YnI+CgkJVGhpcyBpcyB1c2VmdWwgaWYgeW91IHBsYWNlIHlvdXIgbGVzcyBmaWxlcyBpbiBhbm90aGVyIGRpciB0aGF0IHRoZSB1cGxvYWRzLyBvbmUKCTwvbGk+Cgk8bGk+PHN0cm9uZz4xLjE8L3N0cm9uZz4gLSAyMDE0LTA5LTAzOiBBZGQgU21hcnR5IHN1cHBvcnQgLSBOb3RlIHRoYXQgdGhlIG1vZHVsZSBub3cgcGx1Z3Mgb24gdGhlIFNtYXJ0eVByZUNvbXBpbGUgZXZlbnQgKGJlZm9yZSBpdCB3YXMgU21hcnR5UG9zdENvbXBpbGUpIC0gVGhpcyBuZWVkcyB0ZXN0czwvbGk+Cgk8bGk+PHN0cm9uZz4xLjAuMTwvc3Ryb25nPiAtIDIwMTQtMDktMDM6IEJ1ZyBmaXhlczwvbGk+Cgk8bGk+PHN0cm9uZz4xLjA8L3N0cm9uZz4gLSAyMDE0LTA5LTAyOiBJbml0aWFsIDEuMCByZWxlYXNlIC0gUGxlYXNlIHRlc3QgYW5kIGdpdmUgbWUgZmVlZGJhY2s8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgcmV0dXJuOwoKCgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQp7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJlcHJvY2Vzc29yJywgJHBhcmFtc1sncHJlcHJvY2Vzc29yJ10pOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9kaXJzJywgJHBhcmFtc1snaW1wb3J0X2RpcnMnXSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWluaWZ5JywgJHBhcmFtc1snbWluaWZ5J10pOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2dlbmVyYXRlX3NvdXJjZW1hcCcsICRwYXJhbXNbJ2dlbmVyYXRlX3NvdXJjZW1hcCddKTsKCQoJLy8gQXV0b3ByZWZpeGVyCgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlX2F1dG9wcmVmaXhlcicsICRwYXJhbXNbJ3VzZV9hdXRvcHJlZml4ZXInXSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b3ByZWZpeGVyX2Jyb3dzZXJzJywgJHBhcmFtc1snYXV0b3ByZWZpeGVyX2Jyb3dzZXJzJ10pOwoJCgkkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzX3NldCcpKTsKfQoKCgoKCi8vIFJldHJpZXZlIHRoZSBhdmFpbGFibGUgcHJlcHJvY2Vzc29ycyBpbiB0aGUgZGlyZWN0b3J5ICJwcmVwcm9jZXNzb3JzIgokcHJlcHJvY2Vzc29ycyA9IGFycmF5KCk7Cgokcm9vdCA9IGNtc19qb2luX3BhdGgoJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwgJ3ByZXByb2Nlc3NvcnMnKTsKJHNlYXJjaCA9IGNtc19qb2luX3BhdGgoJHJvb3QsICcqJyk7CiRkaXJzID0gZ2xvYigkc2VhcmNoLCBHTE9CX09OTFlESVIpOwoKaWYgKCRkaXJzKQp7Cglmb3JlYWNoICgkZGlycyBhcyAkb25lKQoJewoJCSRwcmVwcm9jZXNzb3IgPSBiYXNlbmFtZSgkb25lKTsKCQkKCQkvLyBTZWFyY2ggaW5mbyA6IG5hbWUsIGxvZ28sIC4uLgoJCSRjbGFzc19uYW1lID0gJ1ByZXByb2Nlc3Nvcl8nLiRwcmVwcm9jZXNzb3I7CgkJcmVxdWlyZV9vbmNlKGNtc19qb2luX3BhdGgoJHJvb3QsICRwcmVwcm9jZXNzb3IsICdjbGFzcy4nLiRjbGFzc19uYW1lLicucGhwJykpOwoJCQoJCSRvYmogPSBuZXcgc3RkQ2xhc3M7CgkJJG9iai0+ZGlyID0gJHByZXByb2Nlc3NvcjsKCQkkb2JqLT5mcmllbmRseV9uYW1lID0gJGNsYXNzX25hbWU6OkZSSUVORExZX05BTUU7CgkJJG9iai0+ZGVzY3JpcHRpb24gPSAkY2xhc3NfbmFtZTo6REVTQ1JJUFRJT047CgkJJG9iai0+YXV0aG9yID0gJGNsYXNzX25hbWU6OkFVVEhPUjsKCQkkb2JqLT53ZWJzaXRlID0gJGNsYXNzX25hbWU6OldFQlNJVEU7CgkJCgkJJGxvZ28gPSAkY2xhc3NfbmFtZTo6TE9HTzsKCQlpZiAoIWVtcHR5KCRsb2dvKSkKCQkJJG9iai0+bG9nbyA9ICRsb2dvOwoJCQoJCSRub3RlID0gJGNsYXNzX25hbWU6Ok5PVEU7CgkJaWYgKCFlbXB0eSgkbm90ZSkpCgkJCSRvYmotPm5vdGUgPSAkbm90ZTsKCQkKCQkkcHJlcHJvY2Vzc29yc1skcHJlcHJvY2Vzc29yXSA9ICRvYmo7Cgl9CgkKCSRhc3NpZ25bJ3ByZXByb2Nlc3NvcnMnXSA9ICRwcmVwcm9jZXNzb3JzOwp9CgovLyBDdXJyZW50IHByZXByb2Nlc3NvcgokYXNzaWduWydjdXJyZW50X3ByZXByb2Nlc3NvciddID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXByb2Nlc3NvcicsICdJTGVzcycpOwokYXNzaWduWydpbXBvcnRfZGlycyddID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9kaXJzJywgJycpOwokYXNzaWduWydtaW5pZnknXSA9ICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWluaWZ5JywgMCk7CiRhc3NpZ25bJ2dlbmVyYXRlX3NvdXJjZW1hcCddID0gICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdnZW5lcmF0ZV9zb3VyY2VtYXAnLCAwKTsKCi8vIEF1dG9wcmVmaXhlcgokYXNzaWduWyd1c2VfYXV0b3ByZWZpeGVyJ10gPSAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9hdXRvcHJlZml4ZXInLCAwKTsKJGFzc2lnblsnYXV0b3ByZWZpeGVyX2Jyb3dzZXJzJ10gPSAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9wcmVmaXhlcl9icm93c2VycycsICcnKTsKCgovLyBDTVNNUyAxLjExIGNvbXBhdGliaWxpdHkKJGFzc2lnblsnbW9kJ10gPSAkdGhpczsKJGFzc2lnblsnZm9ybV9zdGFydCddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0YWRtaW4nKTsKJGFzc2lnblsnZm9ybV9lbmQnXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgpjbXNtcygpLT5HZXRTbWFydHkoKS0+YXNzaWduKCRhc3NpZ24pOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcmVmZXJlbmNlcy50cGwnKTsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/admin_css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/admin_css/csspreprocessor.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKi5wcmVwcm9jZXNzb3Ige2Rpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgMCAxNXB4OyBwYWRkaW5nOiA1cHggMCAxNXB4fQoucHJlcHJvY2Vzc29yIGxhYmVsIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2t9Ci5wcmVwcm9jZXNzb3IgZGl2IHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IG1hcmdpbi1yaWdodDogMTBweH0KCi5wcmVwcm9jZXNzb3IgaW1nIHttYXgtd2lkdGg6IDE1MHB4OyBoZWlnaHQ6IGF1dG99CgoucHJlcHJvY2Vzc29yIGgyIHttYXJnaW4tdG9wOiAwfQoucHJlcHJvY2Vzc29yIC5kZXNjcmlwdGlvbiB7ZGlzcGxheTogaW5saW5lLWJsb2NrfSovCgoKCgoucHJlcHJvY2Vzc29yIHtkaXNwbGF5OiBibG9jazsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZy1sZWZ0OiAyMTBweDsgd2lkdGg6IGF1dG87IGJhY2tncm91bmQ6ICNkZGQ7IGJvcmRlci1yYWRpdXM6IDVweDsgbWFyZ2luOiAwIDAgMTBweH0KLnByZXByb2Nlc3NvciBsYWJlbCwKLnByZXByb2Nlc3NvciBkaXYuZGVzY3JpcHRpb24ge3Bvc2l0aW9uOiByZWxhdGl2ZTsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDEwcHh9CgoucHJlcHJvY2Vzc29yIGRpdi5kZXNjcmlwdGlvbiB7d2lkdGg6IDEwMCV9CgoucHJlcHJvY2Vzc29yIGxhYmVsIHt3aWR0aDogMjEwcHg7IHJpZ2h0OiAyMTBweDsgX3JpZ2h0OiAwcHg7IG1hcmdpbjogMCAwIDAgLTEwMCV9Ci5wcmVwcm9jZXNzb3IgbGFiZWwgLmlucHV0X3JhZGlvIHt0b3A6IDVweH0KCi5wcmVwcm9jZXNzb3IgLmlucHV0X3JhZGlvIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2t9Ci5wcmVwcm9jZXNzb3IgLmxvZ28ge2Rpc3BsYXk6IGlubGluZS1ibG9ja30KLnByZXByb2Nlc3NvciBpbWcge21heC13aWR0aDogMTUwcHg7IGhlaWdodDogYXV0b30KCi5wcmVwcm9jZXNzb3IgaDIge21hcmdpbi10b3A6IDB9]]></data>
	</file>
	<file>
	  <filename>/CSSPreprocessor.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENTU1ByZXByb2Nlc3NvcgojIEF1dGhvcjogQWlyZWxpYnJlIC8gTWF0aGlldSBNdXRocyAtIHd3dy5haXJlbGlicmUuZnIKIyBBIG1vZHVsZSB0byBoZWxwIGRlc2lnbmVycyB0byB1c2UgQ1NTIFByZXByb2Nlc3NvciBpbiBvcmRlciB0byBwcm9jZXNzCiMgTEVTUyBvciBTQVNTIChsYXRlcikgY29kZS4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgpjbGFzcyBDU1NQcmVwcm9jZXNzb3IgZXh0ZW5kcyBDTVNNb2R1bGUKewoKCWZ1bmN0aW9uIEdldFZlcnNpb24oKSB7cmV0dXJuICcxLjQuMSc7fQoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7cmV0dXJuICcyLjEuMSc7fQoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkge3JldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7fQoJZnVuY3Rpb24gR2V0SGVscCgpe3JldHVybiAkdGhpcy0+TGFuZygnaGVscCcpO30KCglmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnQWlyZUxpYnJlIC0gTWF0aGlldSBNdXRocyc7IH0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdjb250YWN0QGFpcmVsaWJyZS5mcic7IH0KCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgewoJCXJldHVybiBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4nL2RvYy9jaGFuZ2Vsb2cuaHRtbCcpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgeyByZXR1cm4gdHJ1ZTsgfQogIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gdHJ1ZTsgfQoKICAvLyBBZG1pbiBwYXJhbXMKICBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7IH0KICBwdWJsaWMgZnVuY3Rpb24gSXNBZG1pbk9ubHkoKSB7IHJldHVybiB0cnVlOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgeyByZXR1cm4gJ2xheW91dCc7IH0KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7CgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBTdHlsZXNoZWV0cycpOwogIH0KCgogIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKSB7CgkJJGhlYWRlciA9ICc8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL21vZHVsZXMvQ1NTUHJlcHJvY2Vzc29yL2FkbWluX2Nzcy9jc3NwcmVwcm9jZXNzb3IuY3NzIic7CgoJCXJldHVybiAkaGVhZGVyOwogIH0KCgoKICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgLy8gTk9OLUFQSSBDVVNUT00gRlVOQ1RJT05TCiAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICBwdWJsaWMgZnVuY3Rpb24gR2V0UHJlcHJvY2Vzc29yKCkKICB7CgkJJHByZXByb2Nlc3Nvcl9uYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXByb2Nlc3NvcicsICdMZXNzUEhQT3llam9yZ2UnKTsKCgkJcmVxdWlyZV9vbmNlKGNtc19qb2luX3BhdGgoX19ESVJfXywgJ3ByZXByb2Nlc3NvcnMnLCAkcHJlcHJvY2Vzc29yX25hbWUsICdjbGFzcy5QcmVwcm9jZXNzb3JfJyAuICRwcmVwcm9jZXNzb3JfbmFtZSAuICcucGhwJykpOwoKCQkkY2xhc3NfbmFtZSA9ICdQcmVQcm9jZXNzb3JfJyAuICRwcmVwcm9jZXNzb3JfbmFtZTsKCQkkb2JqID0gbmV3ICRjbGFzc19uYW1lKCk7CgoJCSRvYmotPkxvYWQoKTsKCgkJcmV0dXJuICRvYmo7CiAgfQoKICAvLyBTbWFydHkgZmV0Y2ggLSBkbyBpdCAibWFudWFsbHkiIGJlY2F1c2UgdGhlIHBvc3RmaWx0ZXIgZG9lcyBub3QgZ2l2ZSBhIGNsZWFuIHNtYXJ0eSBjb2RlIChnaXZlcyAiPD9waHAgIiBldGMuCiAgcHVibGljIGZ1bmN0aW9uIEZldGNoU21hcnR5KCRjb250ZW50KQogIHsKCQkkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CgoJCSRzbWFydHktPmxlZnRfZGVsaW1pdGVyID0gJ1tbJzsKCQkkc21hcnR5LT5yaWdodF9kZWxpbWl0ZXIgPSAnXV0nOwoKCQkkY29udGVudCA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6JyAuICRjb250ZW50KTsKCgkJLy8kc21hcnR5LT5sZWZ0X2RlbGltaXRlciA9ICd7JzsKCQkvLyRzbWFydHktPnJpZ2h0X2RlbGltaXRlciA9ICd9JzsKCgkJcmV0dXJuICRjb250ZW50OwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT4KICAgIDxzdHJvbmc+MS40LjE8L3N0cm9uZz4gLSAyMDE2LTAxLTE4OiBidWcgZml4IHJlbGF0ZWQgdG8gc21hcnR5IGRlbGltaXRlcnMgKCJbWyIgYW5kICJdXSIpCiAgPC9saT4KICA8bGk+CiAgICA8c3Ryb25nPjEuNDwvc3Ryb25nPiAtIDIwMTYtMDEtMDg6CiAgIDx1bD4KICAgICAgPGxpPk1pbmltYWwgQ01TIHZlcnNpb24gPSAyLjEuMTwvbGk+CiAgICAgIDxsaT5Ob3cgdXNlcyB0aGUgU3R5bGVzaGVldFByZUNvbXBpbGUgZXZlbnQgaW5zdGVhZCBvZiB0aGUgU21hcnR5UHJlQ29tcGlsZTwvbGk+CiAgICAgIDxsaT5Tb21lIGJ1ZyBmaXhlIChkZWZhdWx0IFByZVByb2Nlc3NvciBiZWNvbWUgT3llam9yZ2VzIG9uZSk8L2xpPgogICAgICA8bGk+VXBkYXRlZCB0byBPeWVqb3JnZSdzIExlc3MucGhwIHYuIDEuNy4wLjEwIC0gcGxlYXNlIHRlc3QhPC9saT4KICAgICAgPGxpPlJlbW92ZWQgdGhlIC14IChjb21wcmVzcykgb3B0aW9uIGZyb20gTGVzcyBjb21tYW5kIGxpbmUgY29tcGlsZXIgUHJlcHJvY2Vzc29yIGFzIGl0J3Mgbm93IGRlcHJlY2F0ZWQgLSB5b3UgY2FuIHVzZSB0aGUgZW1iZWRlZCBtaW5pZmllcjwvbGk+CiAgICA8L3VsPgogIDwvbGk+Cgk8bGk+PHN0cm9uZz4xLjM8L3N0cm9uZz4gLSAyMDE1LTAxLTIwOiBhZGQgc3VwcG9ydCBmb3IgQXV0b3ByZWZpeCBmb3IgdGhlIExlc3NjIGNvbW1hbmQgbGluZSAtIHNlZSBodHRwczovL2dpdGh1Yi5jb20vcG9zdGNzcy9hdXRvcHJlZml4ZXIgLSBjaGVjayBvdXQgbmV3IG9wdGlvbnMgb24gdGhlIGFkbWluIHBhbmVsIC0gcGxlYXNlIHRlc3Qgd2l0aCB5b3VyIHZlcnNpb24gb2YgTGVzc2M8L2xpPgoJPGxpPjxzdHJvbmc+MS4yPC9zdHJvbmc+IC0gMjAxNC0wOS0yNTogdXBkYXRlIHRvIHRoZSBwYXRocyAvIE5vdyB0aGUgaW5jbHVkZSBkaXIgaXMgcmVsYXRpdmUgdG8gdGhlIHJvb3QgcGF0aCAobm90IHRoZSB1cGxvYWRzIGFueW1vcmUpIC0gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZpZ3VyYXRpb24gdG8gYWRkIDxzdHJvbmc+dXBsb2Fkcy88L3N0cm9uZz4gaWYgbmVlZGVkITxicj4KCQlUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgcGxhY2UgeW91ciBsZXNzIGZpbGVzIGluIGFub3RoZXIgZGlyIHRoYXQgdGhlIHVwbG9hZHMvIG9uZQoJPC9saT4KCTxsaT48c3Ryb25nPjEuMTwvc3Ryb25nPiAtIDIwMTQtMDktMDM6IEFkZCBTbWFydHkgc3VwcG9ydCAtIE5vdGUgdGhhdCB0aGUgbW9kdWxlIG5vdyBwbHVncyBvbiB0aGUgU21hcnR5UHJlQ29tcGlsZSBldmVudCAoYmVmb3JlIGl0IHdhcyBTbWFydHlQb3N0Q29tcGlsZSkgLSBUaGlzIG5lZWRzIHRlc3RzPC9saT4KCTxsaT48c3Ryb25nPjEuMC4xPC9zdHJvbmc+IC0gMjAxNC0wOS0wMzogQnVnIGZpeGVzPC9saT4KCTxsaT48c3Ryb25nPjEuMDwvc3Ryb25nPiAtIDIwMTQtMDktMDI6IEluaXRpYWwgMS4wIHJlbGVhc2UgLSBQbGVhc2UgdGVzdCBhbmQgZ2l2ZSBtZSBmZWVkYmFjazwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.StylesheetPreCompile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCiRjb250ZW50ID0gJiRwYXJhbXNbJ3N0eWxlc2hlZXQnXTsKJHNlYXJjaF9zdHJpbmcgPSAnQEBDU1NQcmVwcm9jZXNzb3JAQCc7CgppZiAoc3RycG9zKCRjb250ZW50LCAkc2VhcmNoX3N0cmluZykgIT09IGZhbHNlKQp7CgoJLy8gUHJldmVudCBmcm9tIGxvb3BzIChzbWFydHkgZmV0Y2ggbGF1bmNoZXMgdGhpcyBwcmVjb21waWxlIGZ1bmN0aW9uIGluIGEgbG9vcAoJJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoX3N0cmluZywgJycsICRjb250ZW50KTsKCgkvLyBXZSBuZWVkIHRvIGNvbXBpbGUgc21hcnR5IGJlZm9yZSB0aGUgQ1NTUHJlcHJvY2Vzc29yLCBzaW5jZSB0aGUgcHJlcHJvY2Vzc29yIHdpbGwgbm90IHVuZGVyc3RhbmQgW1sgXV0gY29kZQoJJGNvbnRlbnQgPSAkdGhpcy0+RmV0Y2hTbWFydHkoJGNvbnRlbnQpOwoKCgoJLy8gQ1NTUHJlcHJvY2Vzc29yIGxvYWQgYW5kIGNvbXBpbGUKCSRwcm9jZXNzb3IgPSAkdGhpcy0+R2V0UHJlcHJvY2Vzc29yKCk7CgoJaWYgKCRwcm9jZXNzb3IpCgkJJHByb2Nlc3Nvci0+Q29tcGlsZUNTUygkY29udGVudCk7CgoJLy8gTWluaWZ5CglpZiAoJHRoaXMtPm1pbmlmeSkKCQkkcHJvY2Vzc29yLT5NaW5pZnlDU1MoJGNvbnRlbnQpOwp9CgoKCgoKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMgQQokbGFuZ1snYXV0b3ByZWZpeGVyX2Jyb3dzZXJzJ10gPSAnTGlzdCBvZiBicm93c2VycyBmb3IgdGhlIEF1dG9wcmVmaXhlciBwbHVnaW4gLSBTZWU6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Y3NzL2F1dG9wcmVmaXhlciNicm93c2VycyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Y3NzL2F1dG9wcmVmaXhlciNicm93c2VyczwvYT4nOwoKIyBDCiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY3NzX3ByZXByb2Nlc3NvciddID0gJ0NTUyBQcmVwcm9jZXNzb3InOwokbGFuZ1snY2hvb3NlX3ByZXByb2Nlc3NvciddID0gJ0Nob29zZSB0aGUgcHJlcHJvY2Vzc29yIHlvdSB3YW50IHRvIHVzZTonOwoKCiMgRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ1NTIFByZXByb2Nlc3Nvcic7CgoKIyBHCiRsYW5nWydnZW5lcmF0ZV9zb3VyY2VtYXAnXSA9ICdTb3VyY2UgbWFwJzsKJGxhbmdbJ2dlbmVyYXRlX3NvdXJjZW1hcF9sYWJlbCddID0gJ0dlbmVyYXRlIGEgc291cmNlIG1hcCwgaWYgdGhlIFByZVByb2Nlc3NvciBzdXBwb3J0cyBpdCc7CgoKIyBICiRsYW5nWydoZWxwJ10gPSA8PDxFT1QKPGgyPldoYXQgZG9lcyB0aGlzIGRvPzwvaDI+CiA8cD5UaGlzIG1vZHVsZSBhZGRzIHRvIHRoZSBDTVNNUyBTdHlsZXNoZWV0cyAvIERlc2lnbiBtYW5hZ2VyIHNvbWUgQ1NTIFByZXByb2Nlc3NvcnMsIGluIG9yZGVyIHRvIGNvbXBpbGUgTEVTUyAob3Igb3RoZXIgbWF5YmUgbGF0ZXIpIGNvZGU8L3A+CiAKIDxoMj5Ib3cgZG9lcyBpdCB3b3JrIGFuZCBpbnRlZ3JhdGUgaW4gQ01TTVM8L2gyPgogPHA+CglUaGlzIG1vZHVsZSB1c2VzIHRoZSBzdGFuZGFyZCBzdHlsZXNoZWV0cyBvZiBDTVMgTWFkZSBTaW1wbGUuIEl0IGlzIGxhdW5jaGVkIGFmdGVyIGFsbCB0aGUgc3R5bGVzaGVldHMgaGF2ZSBiZWVuIGNvbWJpbmVkLCBhbmQgaXQgdGFrZXMgYWxsIHRoZSBDU1MgY29udGVudCB0byBnaXZlIGl0IHRvIHRoZSBQcmVwcm9jZXNzb3Igb2YgeW91ciBjaG9pY2UuCiA8L3A+CiA8cD4KCQlLZWVwIGluIG1pbmQgdGhhdCB0aGlzIG1vZHVsZSBwcm9jZXNzZXMgdGhlIGVudGlyZSBzdHlsZXNoZWV0IGFmdGVyIHRoZWlyIGNvbWJpbmF0aW9uLiBObyBtYXR0ZXIgaWYgeW91IHVzZSAxIG9yIDEwIHN0eWxlc2hlZXRzIGluIHlvdXIgZGVzaWduLCB0aGUgcHJlcHJvY2Vzc29yIHdpbGwgb25seSBnZXQgb25lIHN0cmluZy4KIDwvcD4KCjxoMj5Ib3cgRG8gSSBVc2UgSXQ8L2gyPgo8dWw+Cgk8bGk+VXNlIHRoZSAiY29tYmluZSIgb3B0aW9uIChkZWZhdWx0IGluIHtjbXNfc3R5bGVzaGVldH0pPC9saT4KCTxsaT5JbiBvcmRlciB0byByZWNvZ25pemUgd2hpY2ggdGVtcGxhdGUgaXMgYSBzdHlsZXNoZWV0LCB5b3UgTVVTVCBwdXQgdGhhdCBzdHJpbmcgaW4gb25lIG9mIHlvdXIgc3R5bGVzaGVldHM6IDxzdHJvbmc+QEBDU1NQcmVwcm9jZXNzb3JAQDwvc3Ryb25nPiAtIEkgc3VnZ2VzdCBwdXR0aW5nIGl0IGluIGEgc2ltcGxlIGNvbW1lbnQ8L2xpPgoJPGxpPgoJCURlZmluZSB5b3VyIGltcG9ydCBkaXJlY3RvcmllcywgaWYgeW91IHVzZSBpdC4gRm9yIGV4ZW1wbGUsIGlmIHlvdSB3YW50IHRvIGludGVncmF0ZSBCb290c3RyYXAsIHlvdSBjYW4gOgoJCTxvbD4KCQkJPGxpPlB1dCB5b3VyIEJvb3RzdHJhcCBMRVNTIHNvdXJjZSBmaWxlcyBpbiB1cGxvYWRzL2Jvb3RzdHJhcC88L2xpPgoJCQk8bGk+VHlwZSA8c3Ryb25nPjxlbT51cGxvYWRzL2Jvb3RzdHJhcDwvZW0+PC9zdHJvbmc+IGluIHRoZSAiRGlyZWN0b3JpZXMgY29udGFpbmluZyBMRVNTIGZpbGVzIHRvIGluY2x1ZGUgaW4gY29tcGlsYXRpb24iIC0gTm8gc2xhc2ggYXQgYmVnaW5uaW5nIG9yIGVuZDwvbGk+CgkJPC9vbD4KCTwvbGk+Cgk8bGk+U3RhcnQgdXNpbmcgTEVTUyBjb2RlIGluIHlvdXIgc3R5bGVzaGVldHMhPC9saT4KPC91bD4KCjxoMj5VcGRhdGluZyBzdHlsZXNoZWV0czwvaDI+CjxwPgoJSWYgeW91IG1ha2UgYW4gdXBkYXRlIG9uIGEgQ01TTVMgc3R5bGVzaGVldCwgZXZlcnl0aGluZyBpcyBmaW5lIGFuZCB0aGUgbW9kdWxlIHdpbGwgcHJvY2VzcyB0aGUgc3R5bGVzaGVldCBhZ2FpbiBvbiB0aGUgbmV4dCBwYWdlIHJlZnJlc2guCjwvcD4KPHA+CglIb3dldmVyLCBpZiB5b3UgZGlkIG1ha2UgYSBjaGFuZ2UgaW4geW91ciBpbXBvcnRlZCBsZXNzIGZpbGVzLCB0aGUgc3lzdGVtIHdpbGwgbm90IHBlcmZvcm0gYW55IHVwZGF0ZSAtIGluIHRoaXMgY2FzZSwgeW91IG11c3QgY2xlYXIgdGhlIGNhY2hlIG9yIHNpbXBseSByZW1vdmUgdGhlIHN0eWxlc2hlZXQgZnJvbSB0aGUgY2FjaGUgZGlyZWN0b3J5Lgo8L3A+Cgo8aDI+RXhhbXBsZTogdXNpbmcgQm9vdHN0cmFwPC9oMj4KPHA+VGhpcyBpcyBhIHByb3Bvc2FsIG9uIGhvdyB0byB1c2UgYW5kIGNvbXBpbGUgQm9vdHN0cmFwIGZvciBDTVMgTWFkZSBTaW1wbGUgd2l0aCB0aGUgQ1NTUHJlcHJvY2Vzc29yIG1vZHVsZSA6PC9wPgo8b2w+Cgk8bGk+UHV0IHRoZSBCb290c3RyYXAgTEVTUyBmaWxlcyBpbiA8c3Ryb25nPnVwbG9hZHMvYm9vdHN0cmFwLzwvc3Ryb25nPjwvbGk+Cgk8bGk+Q3JlYXRlIGEgbmV3IHN0eWxlc2hlZXQgaW4gQ01TTVMgY2FsbGVkIHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+PGVtPkJvb3RzdHJhcCA6OiBtYWluPC9lbT48L3N0cm9uZz48L2xpPgoJPGxpPkluIHRoYXQgbmV3IHN0eWxlc2hlZXQsIGNvcHkgYWxsIHRoZSBjb250ZW50IGZyb20gYm9vdHN0cmFwL2Jvb3RzdHJhcC5sZXNzIC0gVGhpcyBmaWxlIGlzIG9ubHkgYSBsaXN0IG9mIGZpbGUgaW1wb3J0LCBidXQgaXQncyBuaWNlIHRvIGhhdmUgaXQgaW4gQ01TTVMgYmVjYXVzZSB5b3UgY2FuIGVhc2lseSBjb21tZW50IG91dCB0aGUgZmlsZXMgeW91IGRvbid0IG5lZWQ8L2xpPgoJPGxpPkluIHRoZSBDU1NQcmVwcm9jZXNzb3IgbW9kdWxlIHByZWZlcmVuY2VzLCBhZGQgPHN0cm9uZz51cGxvYWRzL2Jvb3RzdHJhcDwvc3Ryb25nPiB0byB0aGUgaW1wb3J0IGRpcmVjdG9yaWVzPC9saT4KCTxsaT5DcmVhdGUgYSBuZXcgc3R5bGVzaGVldCBjYWxsZWQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz48ZW0+Q3VzdG9tIDo6IG1haW48L2VtPjwvc3Ryb25nPjwvbGk+Cgk8bGk+UHV0IHRoZSBzdHJpbmcgPHN0cm9uZz5AQENTU1ByZXByb2Nlc3NvckBAPC9zdHJvbmc+IGF0IHRoZSB0b3A8L2xpPgoJPGxpPllvdSBjYW4gbm93IHVzZSB0aGF0IGZpbGUgdG8gZGVmaW5lIHlvdXIgY3VzdG9tIHZhcmlhYmxlcywgb3ZlcnJpZGUgQm9vdHN0cmFwIHZhcmlhYmxlcywgY3JlYXRlIHlvdXIgc3R5bGVzLCAuLi4gT3IgeW91ciBjYW4gY3JlYXRlIGFzIG11Y2ggc3R5bGVzaGVldHMgYXMgeW91IHdhbnQ8L2xpPgoJPGxpPkRvbid0IGZvcmdldCB0byBsaW5rIHlvdXIgc3R5bGVzaGVldHMgdG8geW91ciB0ZW1wbGF0ZXMgKGNtc21zIDwgMi4wKSBvciBkZXNpZ25zIChjbXNtcyA9PCAyLjApIC0gWW91IHNob3VsZCBtYXliZSBwdXQgdGhlIEJvb3RzdHJhcCA6OiBtYWluIGZpbGUgYXQgdGhlIHRvcCwgYmVmb3JlIG90aGVyIHN0eWxlc2hlZXRzPC9saT4KPC9vbD4KPHA+CglOb3cgeW91IGNhbiBzaW1wbHkgY2hhbmdlIHRoZSBncmlkIG9yIHdoYXRldmVyIHlvdSB3YW50IGluIHlvdXIgY3VzdG9tIGZpbGVzLCBiZWNhdXNlIHRoZSBwcmVwcm9jZXNzb3JzIGRvZXNuJ3QgY2FyZSBvZiB0aGUgb3JkZXIgb2YgdGhlIGNvZGUgLSBQdXR0aW5nIDxzdHJvbmc+QGdyaWQtY29sdW1uczogMTI7PC9zdHJvbmc+IGluIHlvdXIgY3VzdG9tIHN0eWxlc2hlZXRzIHdpbGwgd29yayEKPC9wPgoKCgo8aDI+U21hcnR5IHN1cHBvcnQ8L2gyPgo8cD5Zb3UgY2FuIHVzZSBTbWFydHkgdGFncyB3aXRoIFtbIGFuZCBdXSAtIFNtYXJ0eSB3aWxsIGJlIHByb2Nlc3NlZCBiZWZvcmUgdGhlIENTUyBQcmVQcm9jZXNzb3IuPC9wPgoKPGgyPlVzaW5nIFNvdXJjZW1hcHM8L2gyPgo8cD4KCVNvbWUgcHJlcHJvY2Vzc29ycyBjYW4gY3JlYXRlIHNvdXJjZW1hcCBmaWxlcywgaW4gb3JkZXIgdG8gaGVscCB5b3UgZHVyaW5nIGludGVncmF0aW9uLiBEb24ndCBmb3JnZXQgdG8gY29uZmlndXJlIHlvdXIgYnJvd3NlciB0byB1c2UgdGhhdCBmdW5jdGlvbi4gTm90ZSB0aGF0IG9ubHkgaW1wb3J0ZWQgZmlsZXMgd2lsbCBiZSBtYXBwZWQgaW4gdGhlIHNvdXJjZW1hcHMgKHRoaXMgbWF5IGNoYW5nZSBpbiBhIGZ1cnRoZXIgdmVyc2lvbikuCjwvcD4KCjxoMj5EZWFjdGl2YXRlIHRoZSBtb2R1bGU8L2gyPgo8cD4KCUlmIHlvdSBkb24ndCB3YW50IHRvIHVzZSBhbnkgb2YgdGhlIHByZXByb2Nlc3NvcnMsIHBsZWFzZSByZW1vdmUgaXQgb3IgZGlzYWJsZSBpdCBpbiB0aGUgTW9kdWxlcyBNYW5hZ2VyIC0gVGhlcmUgYXJlIG5vICJkZWFjdGl2YXRlIiBmdW5jdGlvbiBidWlsdCBpbiB0aGUgbW9kdWxlLgo8L3A+Cgo8aDI+UHJlcHJvY2Vzc29yIHN3aXRjaDwvaDI+CjxwPgoJWW91IG1heSB3YW50IHRvIHN3aXRjaCBmcm9tIG9uZSBwcmVwcm9jZXNzb3IgdG8gYW5vdGhlciAtIERvbid0IGZvcmdldCB0byBjbGVhciB5b3VyIGNhY2hlIGFmdGVyIHRoYXQgYmVjYXVzZSB0aGUgbW9kdWxlIHdpbGwgbm90IGRvIGl0Lgo8L3A+Cgo8aDI+RXh0ZW5kIHdpdGggYW5vdGhlciBwcmVwcm9jZXNzb3I8L2gyPgo8cD4KCVlvdSBjYW4gY3JlYXRlIGEgbmV3IGRpcmVjdG9yeSBpbiB0aGUgInByZXByb2Nlc3NvcnMiIGRpcmVjdG9yeSwgYW5kIGNyZWF0ZSB5b3VyIG93biBjbGFzcyAtIENoZWNrIGhvdyB0aGUgYnVuZGxlZCBwcmVwcm9jZXNzb3JzIGFyZSBpbnRlZ3JhdGVkLgo8L3A+CjxwPkRvbid0IGZvcmdldCB0byA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBhaXJlbGlicmUuZnIiPmVtYWlsIG1lPC9hPiBpZiB5b3Ugd2FudCB5b3VyIHByZXByb2Nlc3NvciB0byBiZSBhZGRlZCB0byB0aGUgcHJvamVjdCE8L3A+Cgo8aDI+U3VwcG9ydDwvaDI+Cgk8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoJPHA+CgkJSWYgeW91IHdhbnQgdG8gY29udGFjdCBtZTogPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAYWlyZWxpYnJlLmZyIj5jb250YWN0QGFpcmVsaWJyZS5mcjwvYT4KCTwvcD4KCQo8aDI+UHJvamVjdCBvbiB0aGUgd2ViPC9oMj4KPHA+WW91IGNhbiBmb2xsb3cgdGhlIHByb2plY3Qgb24gOiA8L3A+Cgk8dWw+CgkJPGxpPkdpdEh1YjogPGEgaHJlZj0iaHR0cHM6I2dpdGh1Yi5jb20vYWlyZWxpYnJlL0NTU1ByZXByb2Nlc3NvciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOiNnaXRodWIuY29tL2FpcmVsaWJyZS9DU1NQcmVwcm9jZXNzb3I8L2E+PC9saT4KCQk8bGk+Q01TTVMgRm9yZ2U6IDxhIGhyZWY9Imh0dHA6I2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jc3NwcmVwcm9jZXNzb3IiIHRhcmdldD0iX2JsYW5rIj5odHRwOiNkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3NzcHJlcHJvY2Vzc29yPC9hPjwvbGk+Cgk8L3VsPgoKPGgyPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDI+Cgk8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTQsIEFpcmVMaWJyZSA8YSBocmVmPSJtYWlsdG86Y29udGFjdEBhaXJlbGlicmUuZnIiPmNvbnRhY3RAYWlyZWxpYnJlLmZyPC9hPiAvIDxhIGhyZWY9Imh0dHA6I3d3dy5haXJlbGlicmUuZnIiIHRhcmdldD0iX2JsYW5rIj53d3cuYWlyZWxpYnJlLmZyPC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgoJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6I3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgoJCgk8aDM+UHJlcHJvY2Vzc29ycyBjb3B5cmlnaHQ8L2gzPgoJPHA+CgkJVGhlIGF1dGhvciBvZiB0aGlzIG1vZHVsZSBkb2VzIG5vdCBvd24gdGhlIHByZXByb2Nlc3NvcnMgYnVuZGxlZCB3aXRoIGl0IC0gUGxlYXNlIHNlZSBldmVyeSBwcmVwcm9jZXNzb3JzIHNvdXJjZSBjb2RlIC8gd2Vic2l0ZSB0byBnZXQgaW5mb3JtYXRpb25zIGFib3V0IGxpY2VuY2UgYW5kIGNvcHlyaWdodC4KCTwvcD4KCTxwPkkganVzdCB3YW50ZWQgdG8gdGhhbmsgYWxsIHRoZSBkZXZlbG9wZXJzIHRoYXQgY29udHJpYnV0ZSB0byB0aGVzZSBwcmVwcm9jZXNzb3JzIHdoaWNoIGFyZSBncmVhdCB0b29scyBmb3IgZGVzaWduZXJzITwvcD4KRU9UOwoKCiMgSQokbGFuZ1snaW1wb3J0X2RpcnMnXSA9ICdEaXJlY3RvcmllcyBjb250YWluaW5nIExFU1MgZmlsZXMgdG8gaW5jbHVkZSBpbiBjb21waWxhdGlvbiAtIFJlbGF0aXZlIHRvIHRoZSA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZGlyIC0gQ29tbWEgc2VwYXJhdGVkIGxpc3QnOwoKIyBNCiRsYW5nWydtaW5pZnknXSA9ICdNaW5pZnknOwokbGFuZ1snbWluaWZ5X2xhYmVsJ10gPSAnTWluaWZ5IHRoZSBDU1MgLSBOb3RlOiBpZiBhbGxvd2VkIGJ5IHRoZSBwcmUtcHJvY2Vzc29yICc7CgojIE4KJGxhbmdbJ25vdGUnXSA9ICdOb3RlOic7CgoKIyBPCiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyc7CgoKIyBQCiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZWZlcmVuY2VzX3NldCddID0gJ1ByZWZlcmVuY2VzIHNhdmVkPGJyPlBsZWFzZSBjbGVhciB5b3VyIHdlYnNpdGUgY2FjaGUgaW4gb3JkZXIgdG8gcmUtcHJvY2VzcyB0aGUgQ1NTJzsKCgoKCiMgUwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKCgojIFUKJGxhbmdbJ3VzZV9hdXRvcHJlZml4ZXInXSA9ICdVc2UgQXV0b3ByZWZpeGVyIChtb3JlIGluZm86IDxhIGhyZWY9Imh0dHBzOiNnaXRodWIuY29tL3Bvc3Rjc3MvYXV0b3ByZWZpeGVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6I2dpdGh1Yi5jb20vcG9zdGNzcy9hdXRvcHJlZml4ZXI8L2E+KSAtIG9ubHkgaWYgaXRcJ3MgaW5zdGFsbGVkIG9uIHRoZSBzZXJ2ZXIgYW5kIHRoZSBwcmVwcm9jZXNzb3Igc3VwcG9ydHMgaXQnOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2F1dG9wcmVmaXhlcl9icm93c2VycyddID0gJ0xpc3RlIGRlcyBuYXZpZ2F0ZXVycyDDoCBwYXNzZXIgZW4gcGFyYW3DqHRyZSBhdSBwbHVnaW4gQXV0b3ByZWZpeGVyIC0gQ29uc3VsdGV6IDogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Bvc3Rjc3MvYXV0b3ByZWZpeGVyI2Jyb3dzZXJzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3Bvc3Rjc3MvYXV0b3ByZWZpeGVyI2Jyb3dzZXJzPC9hPic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2Nzc19wcmVwcm9jZXNzb3InXSA9ICdQcsOpcHJvY2Vzc2V1ciBDU1MnOwokbGFuZ1snY2hvb3NlX3ByZXByb2Nlc3NvciddID0gJ0Nob2lzaXNzZXogbGUgcHLDqXByb2Nlc3NldXIgcXVlIHZvdXMgc291aGFpdGV6IHV0aWxpc2VyJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Byw6lwcm9jZXNzZXVyIENTUyc7CiRsYW5nWydnZW5lcmF0ZV9zb3VyY2VtYXAnXSA9ICdGaWNoaWVyIHNvdXJjZW1hcCc7CiRsYW5nWydnZW5lcmF0ZV9zb3VyY2VtYXBfbGFiZWwnXSA9ICdHw6luw6lyZXIgdW4gc291cmNlIG1hcCwgc2kgbGUgcHLDqXByb2Nlc3NldXIgbGUgc3VwcG9ydGUnOwokbGFuZ1snaGVscCddID0gJzxoMj5XaGF0IGRvZXMgdGhpcyBkbz88L2gyPg0KIDxwPlRoaXMgbW9kdWxlIGFkZHMgdG8gdGhlIENNU01TIFN0eWxlc2hlZXRzIC8gRGVzaWduIG1hbmFnZXIgc29tZSBDU1MgUHJlcHJvY2Vzc29ycywgaW4gb3JkZXIgdG8gY29tcGlsZSBMRVNTIChvciBvdGhlciBtYXliZSBsYXRlcikgY29kZTwvcD4NCiANCiA8aDI+SG93IGRvZXMgaXQgd29yayBhbmQgaW50ZWdyYXRlIGluIENNU01TPC9oMj4NCiA8cD4NCglUaGlzIG1vZHVsZSB1c2VzIHRoZSBzdGFuZGFyZCBzdHlsZXNoZWV0cyBvZiBDTVMgTWFkZSBTaW1wbGUuIEl0IGlzIGxhdW5jaGVkIGFmdGVyIGFsbCB0aGUgc3R5bGVzaGVldHMgaGF2ZSBiZWVuIGNvbWJpbmVkLCBhbmQgaXQgdGFrZXMgYWxsIHRoZSBDU1MgY29udGVudCB0byBnaXZlIGl0IHRvIHRoZSBQcmVwcm9jZXNzb3Igb2YgeW91ciBjaG9pY2UuDQogPC9wPg0KIDxwPg0KCQlLZWVwIGluIG1pbmQgdGhhdCB0aGlzIG1vZHVsZSBwcm9jZXNzZXMgdGhlIGVudGlyZSBzdHlsZXNoZWV0IGFmdGVyIHRoZWlyIGNvbWJpbmF0aW9uLiBObyBtYXR0ZXIgaWYgeW91IHVzZSAxIG9yIDEwIHN0eWxlc2hlZXRzIGluIHlvdXIgZGVzaWduLCB0aGUgcHJlcHJvY2Vzc29yIHdpbGwgb25seSBnZXQgb25lIHN0cmluZy4NCiA8L3A+DQoNCjxoMj5Ib3cgRG8gSSBVc2UgSXQ8L2gyPg0KPHVsPg0KCTxsaT5Vc2UgdGhlICJjb21iaW5lIiBvcHRpb24gKGRlZmF1bHQgaW4ge2Ntc19zdHlsZXNoZWV0fSk8L2xpPg0KCTxsaT5JbiBvcmRlciB0byByZWNvZ25pemUgd2hpY2ggdGVtcGxhdGUgaXMgYSBzdHlsZXNoZWV0LCB5b3UgTVVTVCBwdXQgdGhhdCBzdHJpbmcgaW4gb25lIG9mIHlvdXIgc3R5bGVzaGVldHM6IDxzdHJvbmc+QEBDU1NQcmVwcm9jZXNzb3JAQDwvc3Ryb25nPiAtIEkgc3VnZ2VzdCBwdXR0aW5nIGl0IGluIGEgc2ltcGxlIGNvbW1lbnQ8L2xpPg0KCTxsaT4NCgkJRGVmaW5lIHlvdXIgaW1wb3J0IGRpcmVjdG9yaWVzLCBpZiB5b3UgdXNlIGl0LiBGb3IgZXhlbXBsZSwgaWYgeW91IHdhbnQgdG8gaW50ZWdyYXRlIEJvb3RzdHJhcCwgeW91IGNhbiA6DQoJCTxvbD4NCgkJCTxsaT5QdXQgeW91ciBCb290c3RyYXAgTEVTUyBzb3VyY2UgZmlsZXMgaW4gdXBsb2Fkcy9ib290c3RyYXAvPC9saT4NCgkJCTxsaT5UeXBlIDxzdHJvbmc+PGVtPnVwbG9hZHMvYm9vdHN0cmFwPC9lbT48L3N0cm9uZz4gaW4gdGhlICJEaXJlY3RvcmllcyBjb250YWluaW5nIExFU1MgZmlsZXMgdG8gaW5jbHVkZSBpbiBjb21waWxhdGlvbiIgLSBObyBzbGFzaCBhdCBiZWdpbm5pbmcgb3IgZW5kPC9saT4NCgkJPC9vbD4NCgk8L2xpPg0KCTxsaT5TdGFydCB1c2luZyBMRVNTIGNvZGUgaW4geW91ciBzdHlsZXNoZWV0cyE8L2xpPg0KPC91bD4NCg0KPGgyPlVwZGF0aW5nIHN0eWxlc2hlZXRzPC9oMj4NCjxwPg0KCUlmIHlvdSBtYWtlIGFuIHVwZGF0ZSBvbiBhIENNU01TIHN0eWxlc2hlZXQsIGV2ZXJ5dGhpbmcgaXMgZmluZSBhbmQgdGhlIG1vZHVsZSB3aWxsIHByb2Nlc3MgdGhlIHN0eWxlc2hlZXQgYWdhaW4gb24gdGhlIG5leHQgcGFnZSByZWZyZXNoLg0KPC9wPg0KPHA+DQoJSG93ZXZlciwgaWYgeW91IGRpZCBtYWtlIGEgY2hhbmdlIGluIHlvdXIgaW1wb3J0ZWQgbGVzcyBmaWxlcywgdGhlIHN5c3RlbSB3aWxsIG5vdCBwZXJmb3JtIGFueSB1cGRhdGUgLSBpbiB0aGlzIGNhc2UsIHlvdSBtdXN0IGNsZWFyIHRoZSBjYWNoZSBvciBzaW1wbHkgcmVtb3ZlIHRoZSBzdHlsZXNoZWV0IGZyb20gdGhlIGNhY2hlIGRpcmVjdG9yeS4NCjwvcD4NCg0KPGgyPkV4YW1wbGU6IHVzaW5nIEJvb3RzdHJhcDwvaDI+DQo8cD5UaGlzIGlzIGEgcHJvcG9zYWwgb24gaG93IHRvIHVzZSBhbmQgY29tcGlsZSBCb290c3RyYXAgZm9yIENNUyBNYWRlIFNpbXBsZSB3aXRoIHRoZSBDU1NQcmVwcm9jZXNzb3IgbW9kdWxlIDo8L3A+DQo8b2w+DQoJPGxpPlB1dCB0aGUgQm9vdHN0cmFwIExFU1MgZmlsZXMgaW4gPHN0cm9uZz51cGxvYWRzL2Jvb3RzdHJhcC88L3N0cm9uZz48L2xpPg0KCTxsaT5DcmVhdGUgYSBuZXcgc3R5bGVzaGVldCBpbiBDTVNNUyBjYWxsZWQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz48ZW0+Qm9vdHN0cmFwIDo6IG1haW48L2VtPjwvc3Ryb25nPjwvbGk+DQoJPGxpPkluIHRoYXQgbmV3IHN0eWxlc2hlZXQsIGNvcHkgYWxsIHRoZSBjb250ZW50IGZyb20gYm9vdHN0cmFwL2Jvb3RzdHJhcC5sZXNzIC0gVGhpcyBmaWxlIGlzIG9ubHkgYSBsaXN0IG9mIGZpbGUgaW1wb3J0LCBidXQgaXRcJ3MgbmljZSB0byBoYXZlIGl0IGluIENNU01TIGJlY2F1c2UgeW91IGNhbiBlYXNpbHkgY29tbWVudCBvdXQgdGhlIGZpbGVzIHlvdSBkb25cJ3QgbmVlZDwvbGk+DQoJPGxpPkluIHRoZSBDU1NQcmVwcm9jZXNzb3IgbW9kdWxlIHByZWZlcmVuY2VzLCBhZGQgPHN0cm9uZz51cGxvYWRzL2Jvb3RzdHJhcDwvc3Ryb25nPiB0byB0aGUgaW1wb3J0IGRpcmVjdG9yaWVzPC9saT4NCgk8bGk+Q3JlYXRlIGEgbmV3IHN0eWxlc2hlZXQgY2FsbGVkIHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+PGVtPkN1c3RvbSA6OiBtYWluPC9lbT48L3N0cm9uZz48L2xpPg0KCTxsaT5QdXQgdGhlIHN0cmluZyA8c3Ryb25nPkBAQ1NTUHJlcHJvY2Vzc29yQEA8L3N0cm9uZz4gYXQgdGhlIHRvcDwvbGk+DQoJPGxpPllvdSBjYW4gbm93IHVzZSB0aGF0IGZpbGUgdG8gZGVmaW5lIHlvdXIgY3VzdG9tIHZhcmlhYmxlcywgb3ZlcnJpZGUgQm9vdHN0cmFwIHZhcmlhYmxlcywgY3JlYXRlIHlvdXIgc3R5bGVzLCAuLi4gT3IgeW91ciBjYW4gY3JlYXRlIGFzIG11Y2ggc3R5bGVzaGVldHMgYXMgeW91IHdhbnQ8L2xpPg0KCTxsaT5Eb25cJ3QgZm9yZ2V0IHRvIGxpbmsgeW91ciBzdHlsZXNoZWV0cyB0byB5b3VyIHRlbXBsYXRlcyAoY21zbXMgPCAyLjApIG9yIGRlc2lnbnMgKGNtc21zID08IDIuMCkgLSBZb3Ugc2hvdWxkIG1heWJlIHB1dCB0aGUgQm9vdHN0cmFwIDo6IG1haW4gZmlsZSBhdCB0aGUgdG9wLCBiZWZvcmUgb3RoZXIgc3R5bGVzaGVldHM8L2xpPg0KPC9vbD4NCjxwPg0KCU5vdyB5b3UgY2FuIHNpbXBseSBjaGFuZ2UgdGhlIGdyaWQgb3Igd2hhdGV2ZXIgeW91IHdhbnQgaW4geW91ciBjdXN0b20gZmlsZXMsIGJlY2F1c2UgdGhlIHByZXByb2Nlc3NvcnMgZG9lc25cJ3QgY2FyZSBvZiB0aGUgb3JkZXIgb2YgdGhlIGNvZGUgLSBQdXR0aW5nIDxzdHJvbmc+QGdyaWQtY29sdW1uczogMTI7PC9zdHJvbmc+IGluIHlvdXIgY3VzdG9tIHN0eWxlc2hlZXRzIHdpbGwgd29yayENCjwvcD4NCg0KDQoNCjxoMj5TbWFydHkgc3VwcG9ydDwvaDI+DQo8cD5Zb3UgY2FuIHVzZSBTbWFydHkgdGFncyB3aXRoIFtbIGFuZCBdXSAtIFNtYXJ0eSB3aWxsIGJlIHByb2Nlc3NlZCBiZWZvcmUgdGhlIENTUyBQcmVQcm9jZXNzb3IuPC9wPg0KDQo8aDI+VXNpbmcgU291cmNlbWFwczwvaDI+DQo8cD4NCglTb21lIHByZXByb2Nlc3NvcnMgY2FuIGNyZWF0ZSBzb3VyY2VtYXAgZmlsZXMsIGluIG9yZGVyIHRvIGhlbHAgeW91IGR1cmluZyBpbnRlZ3JhdGlvbi4gRG9uXCd0IGZvcmdldCB0byBjb25maWd1cmUgeW91ciBicm93c2VyIHRvIHVzZSB0aGF0IGZ1bmN0aW9uLiBOb3RlIHRoYXQgb25seSBpbXBvcnRlZCBmaWxlcyB3aWxsIGJlIG1hcHBlZCBpbiB0aGUgc291cmNlbWFwcyAodGhpcyBtYXkgY2hhbmdlIGluIGEgZnVydGhlciB2ZXJzaW9uKS4NCjwvcD4NCg0KPGgyPkRlYWN0aXZhdGUgdGhlIG1vZHVsZTwvaDI+DQo8cD4NCglJZiB5b3UgZG9uXCd0IHdhbnQgdG8gdXNlIGFueSBvZiB0aGUgcHJlcHJvY2Vzc29ycywgcGxlYXNlIHJlbW92ZSBpdCBvciBkaXNhYmxlIGl0IGluIHRoZSBNb2R1bGVzIE1hbmFnZXIgLSBUaGVyZSBhcmUgbm8gImRlYWN0aXZhdGUiIGZ1bmN0aW9uIGJ1aWx0IGluIHRoZSBtb2R1bGUuDQo8L3A+DQoNCjxoMj5QcmVwcm9jZXNzb3Igc3dpdGNoPC9oMj4NCjxwPg0KCVlvdSBtYXkgd2FudCB0byBzd2l0Y2ggZnJvbSBvbmUgcHJlcHJvY2Vzc29yIHRvIGFub3RoZXIgLSBEb25cJ3QgZm9yZ2V0IHRvIGNsZWFyIHlvdXIgY2FjaGUgYWZ0ZXIgdGhhdCBiZWNhdXNlIHRoZSBtb2R1bGUgd2lsbCBub3QgZG8gaXQuDQo8L3A+DQoNCjxoMj5FeHRlbmQgd2l0aCBhbm90aGVyIHByZXByb2Nlc3NvcjwvaDI+DQo8cD4NCglZb3UgY2FuIGNyZWF0ZSBhIG5ldyBkaXJlY3RvcnkgaW4gdGhlICJwcmVwcm9jZXNzb3JzIiBkaXJlY3RvcnksIGFuZCBjcmVhdGUgeW91ciBvd24gY2xhc3MgLSBDaGVjayBob3cgdGhlIGJ1bmRsZWQgcHJlcHJvY2Vzc29ycyBhcmUgaW50ZWdyYXRlZC4NCjwvcD4NCjxwPkRvblwndCBmb3JnZXQgdG8gPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAYWlyZWxpYnJlLmZyIj5lbWFpbCBtZTwvYT4gaWYgeW91IHdhbnQgeW91ciBwcmVwcm9jZXNzb3IgdG8gYmUgYWRkZWQgdG8gdGhlIHByb2plY3QhPC9wPg0KDQo8aDI+U3VwcG9ydDwvaDI+DQoJPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCgk8cD4NCgkJSWYgeW91IHdhbnQgdG8gY29udGFjdCBtZTogPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAYWlyZWxpYnJlLmZyIj5jb250YWN0QGFpcmVsaWJyZS5mcjwvYT4NCgk8L3A+DQoJDQo8aDI+UHJvamVjdCBvbiB0aGUgd2ViPC9oMj4NCjxwPllvdSBjYW4gZm9sbG93IHRoZSBwcm9qZWN0IG9uIDogPC9wPg0KCTx1bD4NCgkJPGxpPkdpdEh1YjogPGEgaHJlZj0iaHR0cHM6I2dpdGh1Yi5jb20vYWlyZWxpYnJlL0NTU1ByZXByb2Nlc3NvciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOiNnaXRodWIuY29tL2FpcmVsaWJyZS9DU1NQcmVwcm9jZXNzb3I8L2E+PC9saT4NCgkJPGxpPkNNU01TIEZvcmdlOiA8YSBocmVmPSJodHRwOiNkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3NzcHJlcHJvY2Vzc29yIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDojZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Nzc3ByZXByb2Nlc3NvcjwvYT48L2xpPg0KCTwvdWw+DQoNCjxoMj5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gyPg0KCTxwPkNvcHlyaWdodCDCqSAyMDE0LCBBaXJlTGlicmUgPGEgaHJlZj0ibWFpbHRvOmNvbnRhY3RAYWlyZWxpYnJlLmZyIj5jb250YWN0QGFpcmVsaWJyZS5mcjwvYT4gLyA8YSBocmVmPSJodHRwOiN3d3cuYWlyZWxpYnJlLmZyIiB0YXJnZXQ9Il9ibGFuayI+d3d3LmFpcmVsaWJyZS5mcjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCgk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDojd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQoJDQoJPGgzPlByZXByb2Nlc3NvcnMgY29weXJpZ2h0PC9oMz4NCgk8cD4NCgkJVGhlIGF1dGhvciBvZiB0aGlzIG1vZHVsZSBkb2VzIG5vdCBvd24gdGhlIHByZXByb2Nlc3NvcnMgYnVuZGxlZCB3aXRoIGl0IC0gUGxlYXNlIHNlZSBldmVyeSBwcmVwcm9jZXNzb3JzIHNvdXJjZSBjb2RlIC8gd2Vic2l0ZSB0byBnZXQgaW5mb3JtYXRpb25zIGFib3V0IGxpY2VuY2UgYW5kIGNvcHlyaWdodC4NCgk8L3A+DQoJPHA+SSBqdXN0IHdhbnRlZCB0byB0aGFuayBhbGwgdGhlIGRldmVsb3BlcnMgdGhhdCBjb250cmlidXRlIHRvIHRoZXNlIHByZXByb2Nlc3NvcnMgd2hpY2ggYXJlIGdyZWF0IHRvb2xzIGZvciBkZXNpZ25lcnMhPC9wPic7CiRsYW5nWydpbXBvcnRfZGlycyddID0gJ1LDqXBlcnRvaXJlcyBjb250ZW5hbnQgZGVzIGZpY2hpZXJzIExFU1Mgw6AgaW5jbHVyZSBsb3JzIGRlIGxhIGNvbXBpbGF0aW9uIC0gUmVsYXRpZiBhdSByw6lwZXJ0b2lyZSByYWNpbmUgZHUgQ01TIC0gTGlzdGUgc8OpcGFyw6llIHBhciBkZXMgdmlyZ3VsZXMnOwokbGFuZ1snbWluaWZ5J10gPSAnTWluaWZpZXInOwokbGFuZ1snbWluaWZ5X2xhYmVsJ10gPSAnTWluaWZpZXIgbGUgQ1NTJzsKJGxhbmdbJ25vdGUnXSA9ICdOb3RlIDonOwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGlvbnMmbmJzcDsnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcsOpZsOpcmVuY2VzJzsKJGxhbmdbJ3ByZWZlcmVuY2VzX3NldCddID0gJ1Byw6lmw6lyZW5jZXMgc2F1dmVnYXJkw6llczxicj5WZXVpbGxleiB2aWRlciBsZSBjYWNoZSBkdSBDTVMgcG91ciByZS1nw6luw6lyZXIgbGVzIENTUyc7CiRsYW5nWydzdWJtaXQnXSA9ICdFbnZveWVyJzsKJGxhbmdbJ3VzZV9hdXRvcHJlZml4ZXInXSA9ICdVdGlsaXNlciBBdXRvcHJlZml4ZXIgKHBsdXMgZFwnaW5mb3Mgc3VyIDxhIGhyZWY9Imh0dHBzOiNnaXRodWIuY29tL3Bvc3Rjc3MvYXV0b3ByZWZpeGVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6I2dpdGh1Yi5jb20vcG9zdGNzcy9hdXRvcHJlZml4ZXI8L2E+KSAtIFNldWxlbWVudCBzaSBpbnN0YWxsw6kgc3VyIGxlIHNlcnZldXIgZXQgc2kgbGUgcHLDqXByb2Nlc3NldXIgc8OpbGVjdGlvbm7DqSBsZSBwZXJtZXQuJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydjc3NfcHJlcHJvY2Vzc29yJ10gPSAnQ1NTIFByZXByb2Nlc3Nvcic7CiRsYW5nWydjaG9vc2VfcHJlcHJvY2Vzc29yJ10gPSAnVmVsZyBkZW4gcHJlcHJvc2Vzc29yZW4gZHUgdmlsIGJlbnl0dGUnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ1NTIFByZXByb2Nlc3Nvcic7CiRsYW5nWydnZW5lcmF0ZV9zb3VyY2VtYXAnXSA9ICdraWxkZWthcnQnOwokbGFuZ1snZ2VuZXJhdGVfc291cmNlbWFwX2xhYmVsJ10gPSAnR2VuZXJlciBraWxkZWthcnQnOwokbGFuZ1snbWluaWZ5J10gPSAnTWluaW1lcic7CiRsYW5nWydub3RlJ10gPSAnTWVya25hZDonOwokbGFuZ1snb3B0aW9ucyddID0gJ1ZhbGcnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJhbnNlcic7CiRsYW5nWydwcmVmZXJlbmNlc19zZXQnXSA9ICdQcmVmZXJhbnNlbmUgYmxlIGxhZ3JldDxicj5WZW5ubGlnc3QgdMO4bSBkaXR0IG5ldHRzdGVkcyBtZWxsb21sYWdlciBmb3Igw6UgcmUtcHJvc2Vzc2VyZSBDU1MnOwokbGFuZ1snc3VibWl0J10gPSAnTGFncmUnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZWVyJzsKJGxhbmdbJ2dlbmVyYXRlX3NvdXJjZW1hcCddID0gJ0Jyb25tYXAnOwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGllcyc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0luc3RlbGxpbmdlbic7CiRsYW5nWydzdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snZ2EnXSA9ICdHQTEuMi43Njc5NjUwMjAuMTQwMDYxMjM2NCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.Preprocessor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFByZXByb2Nlc3NvciB7CgoJY29uc3QgTE9HTyA9ICcnOwoJCgljb25zdCBTT1VSQ0VNQVBGSUxFID0gJ3NvdXJjZW1hcC5tYXAnOwoKCXB1YmxpYyAkaW1wb3J0X2RpcnM7CglwdWJsaWMgJG1pbmlmeTsKCQoJcHVibGljICRnZW5lcmF0ZV9zb3VyY2VtYXA7CglwdWJsaWMgJHNvdXJjZV9tYXBfZmlsZT0nJzsKCXB1YmxpYyAkc291cmNlX21hcF91cmw9Jyc7CgkKCXB1YmxpYyAkdXNlX2F1dG9wcmVmaXhlciA9IDA7CglwdWJsaWMgJGF1dG9wcmVmaXhlcl9icm93c2VycyA9ICcnOwoJCgkKCS8vIExvYWQgaW1wb3J0IGRpcnMKCXB1YmxpYyBmdW5jdGlvbiBMb2FkKCkKCXsKCQkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDU1NQcmVwcm9jZXNzb3InKTsKCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJCgkJLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkJLy8gSW1wb3J0IGRpcnMsIGlmIGFueQoJCSRpbXBvcnRfZGlycyA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9kaXJzJywgJycpOwoJCSRpbXBvcnRfZGlyc19hcnJheSA9IGFycmF5KCk7CgkJaWYgKCFlbXB0eSgkaW1wb3J0X2RpcnMpKQoJCXsKCQkJLy8gYXJyYXkKCQkJJHRtcCA9IGV4cGxvZGUoJywnLCAkaW1wb3J0X2RpcnMpOwoJCQkKCQkJZm9yZWFjaCAoJHRtcCBhcyAkb25lKQoJCQl7CgkJCQkvLyBOb3RlOiBzb21lIHByZXByb2Nlc3NvcnMgbmVlZCB0aGUga2V5IHRvIGJlIHRoZSBwYXRoIChMZXNzLnBocCBieSBveWVqb3JnZSkKCQkJCSRkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddLCB0cmltKCRvbmUpKTsKCQkJCSRpbXBvcnRfZGlyc19hcnJheVskZGlyXSA9ICRkaXI7CgkJCX0KCQl9CgkJJHRoaXMtPmltcG9ydF9kaXJzID0gJGltcG9ydF9kaXJzX2FycmF5OwoJCS8vIEVuZCBpbXBvcnQgZGlycwoJCS8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCQoJCQoJCQoJCQoJCS8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCS8vIE1pbmlmeSA/CgkJJHRoaXMtPm1pbmlmeSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ21pbmlmeScsIDApOwoJCS8vIEVuZCBtaW5pZnkKCQkvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCQkKCQkKCQkKCQkKCQkvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCQkvLyBHZW5lcmF0ZSBzb3VyY2VtYXAgPwoJCSR0aGlzLT5nZW5lcmF0ZV9zb3VyY2VtYXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdnZW5lcmF0ZV9zb3VyY2VtYXAnLCAwKTsKCQkKCQlpZiAoJHRoaXMtPmdlbmVyYXRlX3NvdXJjZW1hcCkKCQl7CgkJCSR0aGlzLT5zb3VyY2VfbWFwX2ZpbGUgPSBjbXNfam9pbl9wYXRoKFRNUF9DQUNIRV9MT0NBVElPTiwgc2VsZjo6U09VUkNFTUFQRklMRSk7CgkJCSR0aGlzLT5zb3VyY2VfbWFwX3VybCA9ICRjb25maWdbJ2Nzc191cmwnXSAuIHNlbGY6OlNPVVJDRU1BUEZJTEU7CgkJfQoJCS8vIEVuZCBzb3VyY2VtYXAKCQkvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCQkKCQkvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCQkvLyBBdXRvcHJlZml4ZXIgPwoJCSR0aGlzLT51c2VfYXV0b3ByZWZpeGVyID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlX2F1dG9wcmVmaXhlcicsIDApOwoJCSR0aGlzLT5hdXRvcHJlZml4ZXJfYnJvd3NlcnMgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvcHJlZml4ZXJfYnJvd3NlcnMnLCAnJyk7CgkJLy8gRW5kIEF1dG9wcmVmaXhlcgoJCS8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJfQoJCgkKCQoJCgkKCS8vIE5lZWRzIHRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHN1YmNsYXNzZXMKCXB1YmxpYyBmdW5jdGlvbiBDb21waWxlQ1NTKCYkY3NzPScnKQoJewoJCXJldHVybiB0cnVlOwoJfQoJCgkKCQoJCgkKCS8vIEZyb20gOiBodHRwOi8vY29kZS5zZWViei5uZXQvcC9taW5pZnktY3NzLwoJLy8gVGhhbmtzCglwdWJsaWMgZnVuY3Rpb24gTWluaWZ5Q1NTKCYkY3NzPScnKQoJewoJCSRjc3MgPSBwcmVnX3JlcGxhY2UoJyEvXCpbXipdKlwqKyhbXi9dW14qXSpcKispKi8hJywgJycsICRjc3MpOwoJCgkJJGNzcyA9IHN0cl9yZXBsYWNlKGFycmF5KCJcciIsIlxuIiksICcnLCAkY3NzKTsKCQkkY3NzID0gcHJlZ19yZXBsYWNlKCdgKFteKi9dKVwvXCooW14qXXxbKl0oPyEvKSl7NSx9XCpcLyhbXiovXSlgVXMnLCAnJDEkMycsICRjc3MpOwoJCSRjc3MgPSBwcmVnX3JlcGxhY2UoJ2Bccyooe3x9fCx8Onw7KVxzKmAnLCAnJDEnLCAkY3NzKTsKCQkkY3NzID0gc3RyX3JlcGxhY2UoJzt9JywgJ30nLCAkY3NzKTsKCQkkY3NzID0gcHJlZ19yZXBsYWNlKCdgKD89fH0pW157fV0re31gJywgJycsICRjc3MpOwoJCSRjc3MgPSBwcmVnX3JlcGxhY2UoJ2BbXHNdK2AnLCAnICcsICRjc3MpOwoJCQoJCS8vIFRlc3QKCQkvLyRjc3MgPSAnLypNaW5pKi8nLiRjc3M7CgkJCgkJaWYgKCR0aGlzLT5nZW5lcmF0ZV9zb3VyY2VtYXAgJiYgJHRoaXMtPnNvdXJjZV9tYXBfdXJsKQoJCXsKCQkJLy8gQW5kIGFkZCBzb3VyY2VtYXAgYmVjYXVzZSBtaW5pZnkgcmVtb3ZlcyBjb21tZW50cwoJCQkkY3NzID0gJGNzcyAuICIvKiMgc291cmNlTWFwcGluZ1VSTD0iIC4gJHRoaXMtPnNvdXJjZV9tYXBfdXJsIC4gIiAqLyI7CgkJfQoJfQoKfQoKCgoKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ1N0eWxlc2hlZXRQcmVDb21waWxlJywgZmFsc2UpOwoKCgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywgJ1N0eWxlc2hlZXRQcmVDb21waWxlJyk7CgoKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLyBWZXJzaW9uIDEuMQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjEnKSA8IDAgKQp7CgkvLyBTd2l0Y2ggZnJvbSBwb3N0IHRvIHByZWNvbXBpbGUgaW4gb3JkZXIgdG8gbWFrZSBTbWFydHkgd29yawoJJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ29yZScsICdTbWFydHlQb3N0Q29tcGlsZScpOwoJJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdTbWFydHlQcmVDb21waWxlJywgZmFsc2UpOwp9CgoKCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuNCcpIDwgMCApCnsKCS8vIFN3aXRjaCBmcm9tIHRoZSBnZW5lcmFsIFNtYXJ0eVByZUNvbXBpbGUgdG8gZGVkaWNhdGVkIFN0eWxlc2hlZXRQcmVDb21waWxlCgkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywgJ1NtYXJ0eVByZUNvbXBpbGUnKTsKCSR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NvcmUnLCAnU3R5bGVzaGVldFByZUNvbXBpbGUnLCBmYWxzZSk7Cn0KCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENTU1ByZXByb2Nlc3Nvcgp2ZXJzaW9uID0gMS40LjEKZGVzY3JpcHRpb24gPSAKYXV0aG9yID0gQWlyZUxpYnJlIC0gTWF0aGlldSBNdXRocwphdXRob3JlbWFpbCA9IGNvbnRhY3RAYWlyZWxpYnJlLmZyCm1pbmNtc3ZlcnNpb24gPSAyLjEuMQoxMQ==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessCommand/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessCommand/class.Preprocessor_LessCommand.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFByZXByb2Nlc3Nvcl9MZXNzQ29tbWFuZCBleHRlbmRzIFByZXByb2Nlc3NvciB7CgoJY29uc3QgRlJJRU5ETFlfTkFNRSA9ICdMZXNzIGNvbXBpbGVyIGZyb20gY29tbWFuZCBsaW5lJzsKCWNvbnN0IERFU0NSSVBUSU9OID0gJ1RoZSBvZmZpY2lhbCBjb21tYW5kIGxpbmUgTEVTUyBjb21waWxhdG9yJzsKCWNvbnN0IEFVVEhPUiA9ICdDb3JlIExFU1MgdGVhbSc7Cgljb25zdCBXRUJTSVRFID0gJ2h0dHA6Ly9sZXNzY3NzLm9yZyc7Cgljb25zdCBOT1RFID0gJ0Zhc3QsIGJ1dCB5b3UgTkVFRCB0aGUgbGVzc2MgY29tbWFuZCBsaW5lIHRvb2wgKHYuIDEuNyBvciBuZXdlcikgaW5zdGFsbGVkIG9uIHlvdXIgc2VydmVyIHRvIHVzZSBpdCAtIGNoZWNrIHRoZSBvZmZpY2lhbCB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9ucyc7Cgljb25zdCBMT0dPID0gJ2xvZ28ucG5nJzsKCgoKCS8vIE5vdGUgOiAkY3NzIGlzIHBhc3NlZCBieSByZWZlcmVuY2UgLSBubyBuZWVkIHRvIHJldHVybgoJcHVibGljIGZ1bmN0aW9uIENvbXBpbGVDU1MoJiRjc3M9JycpCgl7CgkJLy8gUHV0IGluIGEgY2FjaGUgZmlsZQoJCSRmaWxlID0gY21zX2pvaW5fcGF0aChUTVBfQ0FDSEVfTE9DQVRJT04sICdjc3NwcmVwcm9jZXNzb3IuY3NzJyk7CgkJZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICRjc3MpOwoKCQkkZmlsZV9vdXRwdXQgPSBjbXNfam9pbl9wYXRoKFRNUF9DQUNIRV9MT0NBVElPTiwgJ2Nzc3ByZXByb2Nlc3Nvcl9vdXQuY3NzJyk7CgoJCS8vIEVYRUMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCQkvLyBDb21waWxlCgkJJGNvbW1hbmQgPSAnbGVzc2MgJzsKCiAJCS8qaWYgKCR0aGlzLT5taW5pZnkpCiAJCXsKIAkJCS8vJGNvbW1hbmQgLj0gJy14IC0tY2xlYW4tY3NzICc7IC8vIG5vdGU6IGNsZWFuLWNzcyBkb2VzIG5vdCB3b3JrIHdpdGggc291cmNlIG1hcHMKIAkJCSRjb21tYW5kIC49ICcteCAnOwoJCX0qLwoKCQkvLyBTb3VyY2VtYXAKCQlpZiAoJHRoaXMtPmdlbmVyYXRlX3NvdXJjZW1hcCkKCQl7CgkJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCgkJCSRjb21tYW5kIC49ICctLXNvdXJjZS1tYXA9JyAuICR0aGlzLT5zb3VyY2VfbWFwX2ZpbGUgLiAnIC0tc291cmNlLW1hcC11cmw9JyAuICR0aGlzLT5zb3VyY2VfbWFwX3VybCAuICcgLS1zb3VyY2UtbWFwLWJhc2VwYXRoPScgLiAkY29uZmlnWydyb290X3BhdGgnXSAuICcgLS1zb3VyY2UtbWFwLXJvb3RwYXRoPScgLiAkY29uZmlnWydyb290X3VybCddIC4gJyAnOwoJCX0KCgkJaWYgKCFlbXB0eSgkdGhpcy0+aW1wb3J0X2RpcnMpKQoJCXsKCQkJLy8gQ2hlY2sgaWYgd2UgYXJlIG9uIExpbnV4IG9yIFdpbmRvd3MgLSBuZWVkIHRlc3RpbmcKCQkJLy8gU2VlIGh0dHA6Ly9sZXNzY3NzLm9yZy91c2FnZS8jY29tbWFuZC1saW5lLXVzYWdlLWluY2x1ZGUtcGF0aHMKCQkJJHBocG9zID0gc3RydG9sb3dlcihQSFBfT1MpOwoJCQkkc2VwYXJhdG9yPSAnOic7CgkJCWlmIChzdHJwb3MoJHBocG9zLCAnd2luJykpCgkJCQkkc2VwYXJhdG9yPSAnOyc7CgoJCQkkY29tbWFuZCAuPSAnIC0taW5jbHVkZS1wYXRoPScgLiBpbXBsb2RlKCRzZXBhcmF0b3IsICR0aGlzLT5pbXBvcnRfZGlycyk7CgkJfQoKCQkvLyBBdXRvcHJlZml4ZXIKCQlpZiAoJHRoaXMtPnVzZV9hdXRvcHJlZml4ZXIpCgkJewoJCQlpZiAoIWVtcHR5KCR0aGlzLT5hdXRvcHJlZml4ZXJfYnJvd3NlcnMpKQoJCQkJJGNvbW1hbmQgLj0gJyAtLWF1dG9wcmVmaXg9IicgLiAkdGhpcy0+YXV0b3ByZWZpeGVyX2Jyb3dzZXJzIC4gJyInOwoJCQllbHNlCgkJCQkkY29tbWFuZCAuPSAnIC0tYXV0b3ByZWZpeD0iIic7CgkJfQoKCQkkY29tbWFuZCAuPSAnICcgLiAkZmlsZSAuICcgJyAuJGZpbGVfb3V0cHV0OwoKCQkvLyBBc2sgZm9yIGNvbW1hbmQgdG8gc3lzdGVtCgkJJHJlc3VsdCA9IGV4ZWMoJGNvbW1hbmQpOwoKCQlpZiAoIWVtcHR5KCRyZXN1bHQpKQoJCQlkZWJ1Z190b19sb2coJ0NTU1ByZXByb2Nlc3NvcjogJyAuICRyZXN1bHQpOwoKCQkkY3NzID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVfb3V0cHV0KTsKCgkJLy8gUmVtb3ZlIGNhY2hlIGZpbGUKCQkvL3VubGluaygkZmlsZSk7CgoJCXJldHVybiB0cnVlOwoJfQoKCn0KCgoKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessCommand/logo.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/class.Preprocessor_LessPHPOyejorge.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFByZXByb2Nlc3Nvcl9MZXNzUEhQT3llam9yZ2UgZXh0ZW5kcyBQcmVwcm9jZXNzb3IgewoKCWNvbnN0IEZSSUVORExZX05BTUUgPSAnTGVzc1BIUCAoT3llam9yZ2UpJzsKCWNvbnN0IERFU0NSSVBUSU9OID0gJ0EgUEhQIC8gTEVTU0NTUyBwcmUtcHJvY2Vzc29yJzsKCWNvbnN0IEFVVEhPUiA9ICdveWVqb3JnZSAtIEpvc2ggU2NobWlkdCc7Cgljb25zdCBXRUJTSVRFID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9veWVqb3JnZS9sZXNzLnBocCc7Cgljb25zdCBOT1RFID0gJyc7Cgljb25zdCBMT0dPID0gJ2xvZ28ucG5nJzsKCQoJCgkvLyBGb3IgTGVzc1BIUE95ZWpvcmdlCglwdWJsaWMgJHBhcnNlcjsKCQoKCXB1YmxpYyBmdW5jdGlvbiBMb2FkKCkKCXsKCQlwYXJlbnQ6OkxvYWQoKTsKCQkKCQlyZXF1aXJlX29uY2UoY21zX2pvaW5fcGF0aChfX0RJUl9fLCAnTGVzcycsICdBdXRvbG9hZGVyLnBocCcpKTsKCQlMZXNzX0F1dG9sb2FkZXI6OnJlZ2lzdGVyKCk7CgkJCgkJLy8gT3B0aW9ucwoJCSRvcHRpb25zWydjb21wcmVzcyddID0gJHRoaXMtPm1pbmlmeTsKCQkKCQlpZiAoJHRoaXMtPmdlbmVyYXRlX3NvdXJjZW1hcCkKCQl7CgkJCSRvcHRpb25zWydzb3VyY2VNYXAnXSA9IHRydWU7CgkJCSRvcHRpb25zWydzb3VyY2VNYXBXcml0ZVRvJ10gPSAkdGhpcy0+c291cmNlX21hcF9maWxlOwoJCQkkb3B0aW9uc1snc291cmNlTWFwVVJMJ10gPSAkdGhpcy0+c291cmNlX21hcF91cmw7CgkJCQoJCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJCSRvcHRpb25zWydzb3VyY2VNYXBCYXNlcGF0aCddID0gJGNvbmZpZ1sncm9vdF9wYXRoJ107CgkJfQoJCQoJCSR0aGlzLT5wYXJzZXIgPSBuZXcgTGVzc19QYXJzZXIoJG9wdGlvbnMpOwoJCQoJCS8vIEltcG9ydCBkaXJzCgkJJHRoaXMtPnBhcnNlci0+U2V0SW1wb3J0RGlycygkdGhpcy0+aW1wb3J0X2RpcnMpOwoJfQoJCgkvLyBOb3RlIDogJGNzcyBpcyBwYXNzZWQgYnkgcmVmZXJlbmNlIC0gbm8gbmVlZCB0byByZXR1cm4KCXB1YmxpYyBmdW5jdGlvbiBDb21waWxlQ1NTKCYkY3NzPScnKQoJewoJCXRyeSB7CgkJCSR0aGlzLT5wYXJzZXItPnBhcnNlKCRjc3MpOwoJCQkkY3NzID0gJHRoaXMtPnBhcnNlci0+Z2V0Q3NzKCk7CgkJfQoJCWNhdGNoIChleGNlcHRpb24gJGUpIHsKCQkJJGVycm9yX21lc3NhZ2UgPSAkZS0+Z2V0TWVzc2FnZSgpOwoJCQlkZWJ1Z190b19sb2coJGVycm9yX21lc3NhZ2UpOwoJCX0KCQkKCQlyZXR1cm4gdHJ1ZTsKCX0KCn0KCgoKCj8+]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Autoloader.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBdXRvbG9hZGVyCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgYXV0b2xvYWQKICovCmNsYXNzIExlc3NfQXV0b2xvYWRlciB7CgoJLyoqCgkgKiBSZWdpc3RlcmVkIGZsYWcKCSAqCgkgKiBAdmFyIGJvb2xlYW4KCSAqLwoJcHJvdGVjdGVkIHN0YXRpYyAkcmVnaXN0ZXJlZCA9IGZhbHNlOwoKCS8qKgoJICogTGlicmFyeSBkaXJlY3RvcnkKCSAqCgkgKiBAdmFyIHN0cmluZwoJICovCglwcm90ZWN0ZWQgc3RhdGljICRsaWJEaXI7CgoJLyoqCgkgKiBSZWdpc3RlciB0aGUgYXV0b2xvYWRlciBpbiB0aGUgc3BsIGF1dG9sb2FkZXIKCSAqCgkgKiBAcmV0dXJuIHZvaWQKCSAqIEB0aHJvd3MgRXhjZXB0aW9uIElmIHRoZXJlIHdhcyBhbiBlcnJvciBpbiByZWdpc3RyYXRpb24KCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZWdpc3RlcigpewoJCWlmKCBzZWxmOjokcmVnaXN0ZXJlZCApewoJCQlyZXR1cm47CgkJfQoKCQlzZWxmOjokbGliRGlyID0gZGlybmFtZShfX0ZJTEVfXyk7CgoJCWlmKGZhbHNlID09PSBzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoYXJyYXkoJ0xlc3NfQXV0b2xvYWRlcicsICdsb2FkQ2xhc3MnKSkpewoJCQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmFibGUgdG8gcmVnaXN0ZXIgTGVzc19BdXRvbG9hZGVyOjpsb2FkQ2xhc3MgYXMgYW4gYXV0b2xvYWRpbmcgbWV0aG9kLicpOwoJCX0KCgkJc2VsZjo6JHJlZ2lzdGVyZWQgPSB0cnVlOwoJfQoKCS8qKgoJICogVW5yZWdpc3RlcnMgdGhlIGF1dG9sb2FkZXIKCSAqCgkgKiBAcmV0dXJuIHZvaWQKCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1bnJlZ2lzdGVyKCl7CgkJc3BsX2F1dG9sb2FkX3VucmVnaXN0ZXIoYXJyYXkoJ0xlc3NfQXV0b2xvYWRlcicsICdsb2FkQ2xhc3MnKSk7CgkJc2VsZjo6JHJlZ2lzdGVyZWQgPSBmYWxzZTsKCX0KCgkvKioKCSAqIExvYWRzIHRoZSBjbGFzcwoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJGNsYXNzTmFtZSBUaGUgY2xhc3MgdG8gbG9hZAoJICovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRDbGFzcygkY2xhc3NOYW1lKXsKCgoJCS8vIGhhbmRsZSBvbmx5IHBhY2thZ2UgY2xhc3NlcwoJCWlmKHN0cnBvcygkY2xhc3NOYW1lLCAnTGVzc18nKSAhPT0gMCl7CgkJCXJldHVybjsKCQl9CgoJCSRjbGFzc05hbWUgPSBzdWJzdHIoJGNsYXNzTmFtZSw1KTsKCQkkZmlsZU5hbWUgPSBzZWxmOjokbGliRGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuIHN0cl9yZXBsYWNlKCdfJywgRElSRUNUT1JZX1NFUEFSQVRPUiwgJGNsYXNzTmFtZSkgLiAnLnBocCc7CgoJCWlmKGZpbGVfZXhpc3RzKCRmaWxlTmFtZSkpewoJCQlyZXF1aXJlICRmaWxlTmFtZTsKCQkJcmV0dXJuIHRydWU7CgkJfWVsc2V7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oJ2ZpbGUgbm90IGxvYWRhYmxlICcuJGZpbGVOYW1lKTsKCQl9Cgl9Cgp9]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Cache.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCnJlcXVpcmVfb25jZSggZGlybmFtZShfX0ZJTEVfXykuJy9WZXJzaW9uLnBocCcpOwoKLyoqCiAqIFV0aWxpdHkgZm9yIGhhbmRsaW5nIHRoZSBnZW5lcmF0aW9uIGFuZCBjYWNoaW5nIG9mIGNzcyBmaWxlcwogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIGNhY2hlCiAqCiAqLwpjbGFzcyBMZXNzX0NhY2hlewoKCS8vIGRpcmVjdG9yeSBsZXNzLnBocCBjYW4gdXNlIGZvciBzdG9yaW5nIGRhdGEKCXB1YmxpYyBzdGF0aWMgJGNhY2hlX2Rpcgk9IGZhbHNlOwoKCS8vIHByZWZpeCBmb3IgdGhlIHN0b3JpbmcgZGF0YQoJcHVibGljIHN0YXRpYyAkcHJlZml4CQk9ICdsZXNzcGhwXyc7CgoJLy8gcHJlZml4IGZvciB0aGUgc3RvcmluZyB2YXJzCglwdWJsaWMgc3RhdGljICRwcmVmaXhfdmFycwk9ICdsZXNzcGhwdmFyc18nOwoKCS8vIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggZGF0YSBjcmVhdGVkIGJ5IGxlc3MucGhwIHdpbGwgYmUgc2VlbiBhcyAnZ2FyYmFnZScgYW5kIHBvdGVudGlhbGx5IGNsZWFuZWQgdXAKCXB1YmxpYyBzdGF0aWMgJGdjX2xpZmV0aW1lCT0gNjA0ODAwOwoKCgkvKioKCSAqIFNhdmUgYW5kIHJldXNlIHRoZSByZXN1bHRzIG9mIGNvbXBpbGVkIGxlc3MgZmlsZXMuCgkgKiBUaGUgZmlyc3QgY2FsbCB0byBHZXQoKSB3aWxsIGdlbmVyYXRlIGNzcyBhbmQgc2F2ZSBpdC4KCSAqIFN1YnNlcXVlbnQgY2FsbHMgdG8gR2V0KCkgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHMgd2lsbCByZXR1cm4gdGhlIHNhbWUgY3NzIGZpbGVuYW1lCgkgKgoJICogQHBhcmFtIGFycmF5ICRsZXNzX2ZpbGVzIEFycmF5IG9mIC5sZXNzIGZpbGVzIHRvIGNvbXBpbGUKCSAqIEBwYXJhbSBhcnJheSAkcGFyc2VyX29wdGlvbnMgQXJyYXkgb2YgY29tcGlsZXIgb3B0aW9ucwoJICogQHBhcmFtIGFycmF5ICRtb2RpZnlfdmFycyBBcnJheSBvZiB2YXJpYWJsZXMKCSAqIEByZXR1cm4gc3RyaW5nIE5hbWUgb2YgdGhlIGNzcyBmaWxlCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0KCAkbGVzc19maWxlcywgJHBhcnNlcl9vcHRpb25zID0gYXJyYXkoKSwgJG1vZGlmeV92YXJzID0gYXJyYXkoKSApewoKCgkJLy9jaGVjayAkY2FjaGVfZGlyCgkJaWYoIGlzc2V0KCRwYXJzZXJfb3B0aW9uc1snY2FjaGVfZGlyJ10pICl7CgkJCUxlc3NfQ2FjaGU6OiRjYWNoZV9kaXIgPSAkcGFyc2VyX29wdGlvbnNbJ2NhY2hlX2RpciddOwoJCX0KCgkJaWYoIGVtcHR5KExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIpICl7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oJ2NhY2hlX2RpciBub3Qgc2V0Jyk7CgkJfQoKCQlpZiggaXNzZXQoJHBhcnNlcl9vcHRpb25zWydwcmVmaXgnXSkgKXsKCQkJTGVzc19DYWNoZTo6JHByZWZpeCA9ICRwYXJzZXJfb3B0aW9uc1sncHJlZml4J107CgkJfQoKCQlpZiggZW1wdHkoTGVzc19DYWNoZTo6JHByZWZpeCkgKXsKCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbigncHJlZml4IG5vdCBzZXQnKTsKCQl9CgoJCWlmKCBpc3NldCgkcGFyc2VyX29wdGlvbnNbJ3ByZWZpeF92YXJzJ10pICl7CgkJCUxlc3NfQ2FjaGU6OiRwcmVmaXhfdmFycyA9ICRwYXJzZXJfb3B0aW9uc1sncHJlZml4X3ZhcnMnXTsKCQl9CgoJCWlmKCBlbXB0eShMZXNzX0NhY2hlOjokcHJlZml4X3ZhcnMpICl7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oJ3ByZWZpeF92YXJzIG5vdCBzZXQnKTsKCQl9CgoJCXNlbGY6OkNoZWNrQ2FjaGVEaXIoKTsKCQkkbGVzc19maWxlcyA9IChhcnJheSkkbGVzc19maWxlczsKCgoJCS8vY3JlYXRlIGEgZmlsZSBmb3IgdmFyaWFibGVzCgkJaWYoICFlbXB0eSgkbW9kaWZ5X3ZhcnMpICl7CgkJCSRsZXNzdmFycyA9IExlc3NfUGFyc2VyOjpzZXJpYWxpemVWYXJzKCRtb2RpZnlfdmFycyk7CgkJCSR2YXJzX2ZpbGUgPSBMZXNzX0NhY2hlOjokY2FjaGVfZGlyIC4gTGVzc19DYWNoZTo6JHByZWZpeF92YXJzIC4gc2hhMSgkbGVzc3ZhcnMpIC4gJy5sZXNzJzsKCgkJCWlmKCAhZmlsZV9leGlzdHMoJHZhcnNfZmlsZSkgKXsKCQkJCWZpbGVfcHV0X2NvbnRlbnRzKCR2YXJzX2ZpbGUsICRsZXNzdmFycyk7CgkJCX0KCgkJCSRsZXNzX2ZpbGVzICs9IGFycmF5KCR2YXJzX2ZpbGUgPT4gJy8nKTsKCQl9CgoKCQkvLyBnZW5lcmF0ZSBuYW1lIGZvciBjb21waWxlZCBjc3MgZmlsZQoJCSRoYXNoID0gbWQ1KGpzb25fZW5jb2RlKCRsZXNzX2ZpbGVzKSk7CiAJCSRsaXN0X2ZpbGUgPSBMZXNzX0NhY2hlOjokY2FjaGVfZGlyIC4gTGVzc19DYWNoZTo6JHByZWZpeCAuICRoYXNoIC4gJy5saXN0JzsKCiAJCS8vIGNoZWNrIGNhY2hlZCBjb250ZW50CiAJCWlmKCAhaXNzZXQoJHBhcnNlcl9vcHRpb25zWyd1c2VfY2FjaGUnXSkgfHwgJHBhcnNlcl9vcHRpb25zWyd1c2VfY2FjaGUnXSA9PT0gdHJ1ZSApewoJCQlpZiggZmlsZV9leGlzdHMoJGxpc3RfZmlsZSkgKXsKCgkJCQlzZWxmOjpMaXN0RmlsZXMoJGxpc3RfZmlsZSwgJGxpc3QsICRjYWNoZWRfbmFtZSk7CgkJCQkkY29tcGlsZWRfbmFtZSA9IHNlbGY6OkNvbXBpbGVkTmFtZSgkbGlzdCwgJGhhc2gpOwoKCQkJCS8vIGlmICRjYWNoZWRfbmFtZSBpcyB0aGUgc2FtZSBhcyB0aGUgJGNvbXBpbGVkIG5hbWUsIGRvbid0IHJlZ2VuZXJhdGUKCQkJCWlmKCAhJGNhY2hlZF9uYW1lIHx8ICRjYWNoZWRfbmFtZSA9PT0gJGNvbXBpbGVkX25hbWUgKXsKCgkJCQkJJG91dHB1dF9maWxlID0gc2VsZjo6T3V0cHV0RmlsZSgkY29tcGlsZWRfbmFtZSwgJHBhcnNlcl9vcHRpb25zICk7CgoJCQkJCWlmKCAkb3V0cHV0X2ZpbGUgJiYgZmlsZV9leGlzdHMoJG91dHB1dF9maWxlKSApewoJCQkJCQlAdG91Y2goJGxpc3RfZmlsZSk7CgkJCQkJCXJldHVybiBiYXNlbmFtZSgkb3V0cHV0X2ZpbGUpOyAvLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGp1c3QgcmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBmaWxlCgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQkkY29tcGlsZWQgPSBzZWxmOjpDYWNoZSggJGxlc3NfZmlsZXMsICRwYXJzZXJfb3B0aW9ucyApOwoJCWlmKCAhJGNvbXBpbGVkICl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCSRjb21waWxlZF9uYW1lID0gc2VsZjo6Q29tcGlsZWROYW1lKCAkbGVzc19maWxlcywgJGhhc2ggKTsKCQkkb3V0cHV0X2ZpbGUgPSBzZWxmOjpPdXRwdXRGaWxlKCRjb21waWxlZF9uYW1lLCAkcGFyc2VyX29wdGlvbnMgKTsKCgoJCS8vc2F2ZSB0aGUgZmlsZSBsaXN0CgkJJGxpc3QgPSAkbGVzc19maWxlczsKCQkkbGlzdFtdID0gJGNvbXBpbGVkX25hbWU7CgkJJGNhY2hlID0gaW1wbG9kZSgiXG4iLCRsaXN0KTsKCQlmaWxlX3B1dF9jb250ZW50cyggJGxpc3RfZmlsZSwgJGNhY2hlICk7CgoKCQkvL3NhdmUgdGhlIGNzcwoJCWZpbGVfcHV0X2NvbnRlbnRzKCAkb3V0cHV0X2ZpbGUsICRjb21waWxlZCApOwoKCgkJLy9jbGVhbiB1cAoJCXNlbGY6OkNsZWFuQ2FjaGUoKTsKCgkJcmV0dXJuIGJhc2VuYW1lKCRvdXRwdXRfZmlsZSk7Cgl9CgoJLyoqCgkgKiBGb3JjZSB0aGUgY29tcGlsZXIgdG8gcmVnZW5lcmF0ZSB0aGUgY2FjaGVkIGNzcyBmaWxlCgkgKgoJICogQHBhcmFtIGFycmF5ICRsZXNzX2ZpbGVzIEFycmF5IG9mIC5sZXNzIGZpbGVzIHRvIGNvbXBpbGUKCSAqIEBwYXJhbSBhcnJheSAkcGFyc2VyX29wdGlvbnMgQXJyYXkgb2YgY29tcGlsZXIgb3B0aW9ucwoJICogQHBhcmFtIGFycmF5ICRtb2RpZnlfdmFycyBBcnJheSBvZiB2YXJpYWJsZXMKCSAqIEByZXR1cm4gc3RyaW5nIE5hbWUgb2YgdGhlIGNzcyBmaWxlCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gUmVnZW4oICRsZXNzX2ZpbGVzLCAkcGFyc2VyX29wdGlvbnMgPSBhcnJheSgpLCAkbW9kaWZ5X3ZhcnMgPSBhcnJheSgpICl7CgkJJHBhcnNlcl9vcHRpb25zWyd1c2VfY2FjaGUnXSA9IGZhbHNlOwoJCXJldHVybiBzZWxmOjpHZXQoICRsZXNzX2ZpbGVzLCAkcGFyc2VyX29wdGlvbnMsICRtb2RpZnlfdmFycyApOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQ2FjaGUoICYkbGVzc19maWxlcywgJHBhcnNlcl9vcHRpb25zID0gYXJyYXkoKSApewoKCgkJLy8gZ2V0IGxlc3MucGhwIGlmIGl0IGV4aXN0cwoJCSRmaWxlID0gZGlybmFtZShfX0ZJTEVfXykgLiAnL0xlc3MucGhwJzsKCQlpZiggZmlsZV9leGlzdHMoJGZpbGUpICYmICFjbGFzc19leGlzdHMoJ0xlc3NfUGFyc2VyJykgKXsKCQkJcmVxdWlyZV9vbmNlKCRmaWxlKTsKCQl9CgoJCSRwYXJzZXJfb3B0aW9uc1snY2FjaGVfZGlyJ10gPSBMZXNzX0NhY2hlOjokY2FjaGVfZGlyOwoJCSRwYXJzZXIgPSBuZXcgTGVzc19QYXJzZXIoJHBhcnNlcl9vcHRpb25zKTsKCgoJCS8vIGNvbWJpbmUgZmlsZXMKCQlmb3JlYWNoKCRsZXNzX2ZpbGVzIGFzICRmaWxlX3BhdGggPT4gJHVyaV9vcl9sZXNzICl7CgoJCQkvL3RyZWF0IGFzIGxlc3MgbWFya3VwIGlmIHRoZXJlIGFyZSBuZXdsaW5lIGNoYXJhY3RlcnMKCQkJaWYoIHN0cnBvcygkdXJpX29yX2xlc3MsIlxuIikgIT09IGZhbHNlICl7CgkJCQkkcGFyc2VyLT5QYXJzZSggJHVyaV9vcl9sZXNzICk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJJHBhcnNlci0+UGFyc2VGaWxlKCAkZmlsZV9wYXRoLCAkdXJpX29yX2xlc3MgKTsKCQl9CgoJCSRjb21waWxlZCA9ICRwYXJzZXItPmdldENzcygpOwoKCgkJJGxlc3NfZmlsZXMgPSAkcGFyc2VyLT5hbGxQYXJzZWRGaWxlcygpOwoKCQlyZXR1cm4gJGNvbXBpbGVkOwoJfQoKCglwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBPdXRwdXRGaWxlKCAkY29tcGlsZWRfbmFtZSwgJHBhcnNlcl9vcHRpb25zICl7CgoJCS8vY3VzdG9tIG91dHB1dCBmaWxlCgkJaWYoICFlbXB0eSgkcGFyc2VyX29wdGlvbnNbJ291dHB1dCddKSApewoKCQkJLy9yZWxhdGl2ZSB0byBjYWNoZSBkaXJlY3Rvcnk/CgkJCWlmKCBwcmVnX21hdGNoKCcjW1xcXFwvXSMnLCRwYXJzZXJfb3B0aW9uc1snb3V0cHV0J10pICl7CgkJCQlyZXR1cm4gJHBhcnNlcl9vcHRpb25zWydvdXRwdXQnXTsKCQkJfQoKCQkJcmV0dXJuIExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIuJHBhcnNlcl9vcHRpb25zWydvdXRwdXQnXTsKCQl9CgoJCXJldHVybiBMZXNzX0NhY2hlOjokY2FjaGVfZGlyLiRjb21waWxlZF9uYW1lOwoJfQoKCglwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBDb21waWxlZE5hbWUoICRmaWxlcywgJGV4dHJhaGFzaCApewoKCQkvL3NhdmUgdGhlIGZpbGUgbGlzdAoJCSR0ZW1wID0gYXJyYXkoTGVzc19WZXJzaW9uOjpjYWNoZV92ZXJzaW9uKTsKCQlmb3JlYWNoKCRmaWxlcyBhcyAkZmlsZSl7CgkJCSR0ZW1wW10gPSBmaWxlbXRpbWUoJGZpbGUpLiJcdCIuZmlsZXNpemUoJGZpbGUpLiJcdCIuJGZpbGU7CgkJfQoKCQlyZXR1cm4gTGVzc19DYWNoZTo6JHByZWZpeC5zaGExKGpzb25fZW5jb2RlKCR0ZW1wKS4kZXh0cmFoYXNoKS4nLmNzcyc7Cgl9CgoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gU2V0Q2FjaGVEaXIoICRkaXIgKXsKCQlMZXNzX0NhY2hlOjokY2FjaGVfZGlyID0gJGRpcjsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIENoZWNrQ2FjaGVEaXIoKXsKCgkJTGVzc19DYWNoZTo6JGNhY2hlX2RpciA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIpOwoJCUxlc3NfQ2FjaGU6OiRjYWNoZV9kaXIgPSBydHJpbShMZXNzX0NhY2hlOjokY2FjaGVfZGlyLCcvJykuJy8nOwoKCQlpZiggIWZpbGVfZXhpc3RzKExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIpICl7CgkJCWlmKCAhbWtkaXIoTGVzc19DYWNoZTo6JGNhY2hlX2RpcikgKXsKCQkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXIoJ0xlc3MucGhwIGNhY2hlIGRpcmVjdG9yeSBjb3VsZG5cJ3QgYmUgY3JlYXRlZDogJy5MZXNzX0NhY2hlOjokY2FjaGVfZGlyKTsKCQkJfQoKCQl9ZWxzZWlmKCAhaXNfZGlyKExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIpICl7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXIoJ0xlc3MucGhwIGNhY2hlIGRpcmVjdG9yeSBkb2VzblwndCBleGlzdDogJy5MZXNzX0NhY2hlOjokY2FjaGVfZGlyKTsKCgkJfWVsc2VpZiggIWlzX3dyaXRhYmxlKExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIpICl7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXIoJ0xlc3MucGhwIGNhY2hlIGRpcmVjdG9yeSBpc25cJ3Qgd3JpdGFibGU6ICcuTGVzc19DYWNoZTo6JGNhY2hlX2Rpcik7CgoJCX0KCgl9CgoKCS8qKgoJICogRGVsZXRlIHVudXNlZCBsZXNzLnBocCBmaWxlcwoJICoKCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBDbGVhbkNhY2hlKCl7CgkJc3RhdGljICRjbGVhbiA9IGZhbHNlOwoKCQlpZiggJGNsZWFuICl7CgkJCXJldHVybjsKCQl9CgoJCSRmaWxlcyA9IHNjYW5kaXIoTGVzc19DYWNoZTo6JGNhY2hlX2Rpcik7CgkJaWYoICRmaWxlcyApewoJCQkkY2hlY2tfdGltZSA9IHRpbWUoKSAtIHNlbGY6OiRnY19saWZldGltZTsKCQkJZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpewoKCQkJCS8vIGRvbid0IGRlbGV0ZSBpZiB0aGUgZmlsZSB3YXNuJ3QgY3JlYXRlZCB3aXRoIGxlc3MucGhwCgkJCQlpZiggc3RycG9zKCRmaWxlLExlc3NfQ2FjaGU6OiRwcmVmaXgpICE9PSAwICl7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJJGZ1bGxfcGF0aCA9IExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIgLiAkZmlsZTsKCgkJCQkvLyBtYWtlIHN1cmUgdGhlIGZpbGUgc3RpbGwgZXhpc3RzCgkJCQkvLyBjc3MgZmlsZXMgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGRlbGV0ZWQKCQkJCWlmKCAhZmlsZV9leGlzdHMoJGZ1bGxfcGF0aCkgKXsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCSRtdGltZSA9IGZpbGVtdGltZSgkZnVsbF9wYXRoKTsKCgkJCQkvLyBkb24ndCBkZWxldGUgaWYgaXQncyBhIHJlbGF0aXZlbHkgbmV3IGZpbGUKCQkJCWlmKCAkbXRpbWUgPiAkY2hlY2tfdGltZSApewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCSRwYXJ0cyA9IGV4cGxvZGUoJy4nLCRmaWxlKTsKCQkJCSR0eXBlID0gYXJyYXlfcG9wKCRwYXJ0cyk7CgoKCQkJCS8vIGRlbGV0ZSBjc3MgZmlsZXMgYmFzZWQgb24gdGhlIGxpc3QgZmlsZXMKCQkJCWlmKCAkdHlwZSA9PT0gJ2NzcycgKXsKCQkJCQljb250aW51ZTsKCQkJCX0KCgoJCQkJLy8gZGVsZXRlIHRoZSBsaXN0IGZpbGUgYW5kIGFzc29jaWF0ZWQgY3NzIGZpbGUKCQkJCWlmKCAkdHlwZSA9PT0gJ2xpc3QnICl7CgkJCQkJc2VsZjo6TGlzdEZpbGVzKCRmdWxsX3BhdGgsICRsaXN0LCAkY3NzX2ZpbGVfbmFtZSk7CgkJCQkJaWYoICRjc3NfZmlsZV9uYW1lICl7CgkJCQkJCSRjc3NfZmlsZSA9IExlc3NfQ2FjaGU6OiRjYWNoZV9kaXIgLiAkY3NzX2ZpbGVfbmFtZTsKCQkJCQkJaWYoIGZpbGVfZXhpc3RzKCRjc3NfZmlsZSkgKXsKCQkJCQkJCXVubGluaygkY3NzX2ZpbGUpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoKCQkJCXVubGluaygkZnVsbF9wYXRoKTsKCQkJfQoJCX0KCgkJJGNsZWFuID0gdHJ1ZTsKCX0KCgoJLyoqCgkgKiBHZXQgdGhlIGxpc3Qgb2YgbGVzcyBmaWxlcyBhbmQgZ2VuZXJhdGVkIGNzcyBmaWxlIGZyb20gYSBsaXN0IGZpbGUKCSAqCgkgKi8KCXN0YXRpYyBmdW5jdGlvbiBMaXN0RmlsZXMoJGxpc3RfZmlsZSwgJiRsaXN0LCAmJGNzc19maWxlX25hbWUgKXsKCgkJJGxpc3QgPSBleHBsb2RlKCJcbiIsZmlsZV9nZXRfY29udGVudHMoJGxpc3RfZmlsZSkpOwoKCQkvL3BvcCB0aGUgY2FjaGVkIG5hbWUgdGhhdCBzaG91bGQgbWF0Y2ggJGNvbXBpbGVkX25hbWUKCQkkY3NzX2ZpbGVfbmFtZSA9IGFycmF5X3BvcCgkbGlzdCk7CgoJCWlmKCAhcHJlZ19tYXRjaCgnL14nIC4gTGVzc19DYWNoZTo6JHByZWZpeCAuICdbYS1mMC05XStcLmNzcyQvJywkY3NzX2ZpbGVfbmFtZSkgKXsKCQkJJGxpc3RbXSA9ICRjc3NfZmlsZV9uYW1lOwoJCQkkY3NzX2ZpbGVfbmFtZSA9IGZhbHNlOwoJCX0KCgl9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Colors.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBVdGlsaXR5IGZvciBjc3MgY29sb3JzCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgY29sb3IKICovCmNsYXNzIExlc3NfQ29sb3JzIHsKCglwdWJsaWMgc3RhdGljICRjb2xvcnMgPSBhcnJheSgKCQkJJ2FsaWNlYmx1ZSc9PicjZjBmOGZmJywKCQkJJ2FudGlxdWV3aGl0ZSc9PicjZmFlYmQ3JywKCQkJJ2FxdWEnPT4nIzAwZmZmZicsCgkJCSdhcXVhbWFyaW5lJz0+JyM3ZmZmZDQnLAoJCQknYXp1cmUnPT4nI2YwZmZmZicsCgkJCSdiZWlnZSc9PicjZjVmNWRjJywKCQkJJ2Jpc3F1ZSc9PicjZmZlNGM0JywKCQkJJ2JsYWNrJz0+JyMwMDAwMDAnLAoJCQknYmxhbmNoZWRhbG1vbmQnPT4nI2ZmZWJjZCcsCgkJCSdibHVlJz0+JyMwMDAwZmYnLAoJCQknYmx1ZXZpb2xldCc9PicjOGEyYmUyJywKCQkJJ2Jyb3duJz0+JyNhNTJhMmEnLAoJCQknYnVybHl3b29kJz0+JyNkZWI4ODcnLAoJCQknY2FkZXRibHVlJz0+JyM1ZjllYTAnLAoJCQknY2hhcnRyZXVzZSc9PicjN2ZmZjAwJywKCQkJJ2Nob2NvbGF0ZSc9PicjZDI2OTFlJywKCQkJJ2NvcmFsJz0+JyNmZjdmNTAnLAoJCQknY29ybmZsb3dlcmJsdWUnPT4nIzY0OTVlZCcsCgkJCSdjb3Juc2lsayc9PicjZmZmOGRjJywKCQkJJ2NyaW1zb24nPT4nI2RjMTQzYycsCgkJCSdjeWFuJz0+JyMwMGZmZmYnLAoJCQknZGFya2JsdWUnPT4nIzAwMDA4YicsCgkJCSdkYXJrY3lhbic9PicjMDA4YjhiJywKCQkJJ2Rhcmtnb2xkZW5yb2QnPT4nI2I4ODYwYicsCgkJCSdkYXJrZ3JheSc9PicjYTlhOWE5JywKCQkJJ2RhcmtncmV5Jz0+JyNhOWE5YTknLAoJCQknZGFya2dyZWVuJz0+JyMwMDY0MDAnLAoJCQknZGFya2toYWtpJz0+JyNiZGI3NmInLAoJCQknZGFya21hZ2VudGEnPT4nIzhiMDA4YicsCgkJCSdkYXJrb2xpdmVncmVlbic9PicjNTU2YjJmJywKCQkJJ2RhcmtvcmFuZ2UnPT4nI2ZmOGMwMCcsCgkJCSdkYXJrb3JjaGlkJz0+JyM5OTMyY2MnLAoJCQknZGFya3JlZCc9PicjOGIwMDAwJywKCQkJJ2RhcmtzYWxtb24nPT4nI2U5OTY3YScsCgkJCSdkYXJrc2VhZ3JlZW4nPT4nIzhmYmM4ZicsCgkJCSdkYXJrc2xhdGVibHVlJz0+JyM0ODNkOGInLAoJCQknZGFya3NsYXRlZ3JheSc9PicjMmY0ZjRmJywKCQkJJ2RhcmtzbGF0ZWdyZXknPT4nIzJmNGY0ZicsCgkJCSdkYXJrdHVycXVvaXNlJz0+JyMwMGNlZDEnLAoJCQknZGFya3Zpb2xldCc9PicjOTQwMGQzJywKCQkJJ2RlZXBwaW5rJz0+JyNmZjE0OTMnLAoJCQknZGVlcHNreWJsdWUnPT4nIzAwYmZmZicsCgkJCSdkaW1ncmF5Jz0+JyM2OTY5NjknLAoJCQknZGltZ3JleSc9PicjNjk2OTY5JywKCQkJJ2RvZGdlcmJsdWUnPT4nIzFlOTBmZicsCgkJCSdmaXJlYnJpY2snPT4nI2IyMjIyMicsCgkJCSdmbG9yYWx3aGl0ZSc9PicjZmZmYWYwJywKCQkJJ2ZvcmVzdGdyZWVuJz0+JyMyMjhiMjInLAoJCQknZnVjaHNpYSc9PicjZmYwMGZmJywKCQkJJ2dhaW5zYm9ybyc9PicjZGNkY2RjJywKCQkJJ2dob3N0d2hpdGUnPT4nI2Y4ZjhmZicsCgkJCSdnb2xkJz0+JyNmZmQ3MDAnLAoJCQknZ29sZGVucm9kJz0+JyNkYWE1MjAnLAoJCQknZ3JheSc9PicjODA4MDgwJywKCQkJJ2dyZXknPT4nIzgwODA4MCcsCgkJCSdncmVlbic9PicjMDA4MDAwJywKCQkJJ2dyZWVueWVsbG93Jz0+JyNhZGZmMmYnLAoJCQknaG9uZXlkZXcnPT4nI2YwZmZmMCcsCgkJCSdob3RwaW5rJz0+JyNmZjY5YjQnLAoJCQknaW5kaWFucmVkJz0+JyNjZDVjNWMnLAoJCQknaW5kaWdvJz0+JyM0YjAwODInLAoJCQknaXZvcnknPT4nI2ZmZmZmMCcsCgkJCSdraGFraSc9PicjZjBlNjhjJywKCQkJJ2xhdmVuZGVyJz0+JyNlNmU2ZmEnLAoJCQknbGF2ZW5kZXJibHVzaCc9PicjZmZmMGY1JywKCQkJJ2xhd25ncmVlbic9PicjN2NmYzAwJywKCQkJJ2xlbW9uY2hpZmZvbic9PicjZmZmYWNkJywKCQkJJ2xpZ2h0Ymx1ZSc9PicjYWRkOGU2JywKCQkJJ2xpZ2h0Y29yYWwnPT4nI2YwODA4MCcsCgkJCSdsaWdodGN5YW4nPT4nI2UwZmZmZicsCgkJCSdsaWdodGdvbGRlbnJvZHllbGxvdyc9PicjZmFmYWQyJywKCQkJJ2xpZ2h0Z3JheSc9PicjZDNkM2QzJywKCQkJJ2xpZ2h0Z3JleSc9PicjZDNkM2QzJywKCQkJJ2xpZ2h0Z3JlZW4nPT4nIzkwZWU5MCcsCgkJCSdsaWdodHBpbmsnPT4nI2ZmYjZjMScsCgkJCSdsaWdodHNhbG1vbic9PicjZmZhMDdhJywKCQkJJ2xpZ2h0c2VhZ3JlZW4nPT4nIzIwYjJhYScsCgkJCSdsaWdodHNreWJsdWUnPT4nIzg3Y2VmYScsCgkJCSdsaWdodHNsYXRlZ3JheSc9PicjNzc4ODk5JywKCQkJJ2xpZ2h0c2xhdGVncmV5Jz0+JyM3Nzg4OTknLAoJCQknbGlnaHRzdGVlbGJsdWUnPT4nI2IwYzRkZScsCgkJCSdsaWdodHllbGxvdyc9PicjZmZmZmUwJywKCQkJJ2xpbWUnPT4nIzAwZmYwMCcsCgkJCSdsaW1lZ3JlZW4nPT4nIzMyY2QzMicsCgkJCSdsaW5lbic9PicjZmFmMGU2JywKCQkJJ21hZ2VudGEnPT4nI2ZmMDBmZicsCgkJCSdtYXJvb24nPT4nIzgwMDAwMCcsCgkJCSdtZWRpdW1hcXVhbWFyaW5lJz0+JyM2NmNkYWEnLAoJCQknbWVkaXVtYmx1ZSc9PicjMDAwMGNkJywKCQkJJ21lZGl1bW9yY2hpZCc9PicjYmE1NWQzJywKCQkJJ21lZGl1bXB1cnBsZSc9PicjOTM3MGQ4JywKCQkJJ21lZGl1bXNlYWdyZWVuJz0+JyMzY2IzNzEnLAoJCQknbWVkaXVtc2xhdGVibHVlJz0+JyM3YjY4ZWUnLAoJCQknbWVkaXVtc3ByaW5nZ3JlZW4nPT4nIzAwZmE5YScsCgkJCSdtZWRpdW10dXJxdW9pc2UnPT4nIzQ4ZDFjYycsCgkJCSdtZWRpdW12aW9sZXRyZWQnPT4nI2M3MTU4NScsCgkJCSdtaWRuaWdodGJsdWUnPT4nIzE5MTk3MCcsCgkJCSdtaW50Y3JlYW0nPT4nI2Y1ZmZmYScsCgkJCSdtaXN0eXJvc2UnPT4nI2ZmZTRlMScsCgkJCSdtb2NjYXNpbic9PicjZmZlNGI1JywKCQkJJ25hdmFqb3doaXRlJz0+JyNmZmRlYWQnLAoJCQknbmF2eSc9PicjMDAwMDgwJywKCQkJJ29sZGxhY2UnPT4nI2ZkZjVlNicsCgkJCSdvbGl2ZSc9PicjODA4MDAwJywKCQkJJ29saXZlZHJhYic9PicjNmI4ZTIzJywKCQkJJ29yYW5nZSc9PicjZmZhNTAwJywKCQkJJ29yYW5nZXJlZCc9PicjZmY0NTAwJywKCQkJJ29yY2hpZCc9PicjZGE3MGQ2JywKCQkJJ3BhbGVnb2xkZW5yb2QnPT4nI2VlZThhYScsCgkJCSdwYWxlZ3JlZW4nPT4nIzk4ZmI5OCcsCgkJCSdwYWxldHVycXVvaXNlJz0+JyNhZmVlZWUnLAoJCQkncGFsZXZpb2xldHJlZCc9PicjZDg3MDkzJywKCQkJJ3BhcGF5YXdoaXAnPT4nI2ZmZWZkNScsCgkJCSdwZWFjaHB1ZmYnPT4nI2ZmZGFiOScsCgkJCSdwZXJ1Jz0+JyNjZDg1M2YnLAoJCQkncGluayc9PicjZmZjMGNiJywKCQkJJ3BsdW0nPT4nI2RkYTBkZCcsCgkJCSdwb3dkZXJibHVlJz0+JyNiMGUwZTYnLAoJCQkncHVycGxlJz0+JyM4MDAwODAnLAoJCQkncmVkJz0+JyNmZjAwMDAnLAoJCQkncm9zeWJyb3duJz0+JyNiYzhmOGYnLAoJCQkncm95YWxibHVlJz0+JyM0MTY5ZTEnLAoJCQknc2FkZGxlYnJvd24nPT4nIzhiNDUxMycsCgkJCSdzYWxtb24nPT4nI2ZhODA3MicsCgkJCSdzYW5keWJyb3duJz0+JyNmNGE0NjAnLAoJCQknc2VhZ3JlZW4nPT4nIzJlOGI1NycsCgkJCSdzZWFzaGVsbCc9PicjZmZmNWVlJywKCQkJJ3NpZW5uYSc9PicjYTA1MjJkJywKCQkJJ3NpbHZlcic9PicjYzBjMGMwJywKCQkJJ3NreWJsdWUnPT4nIzg3Y2VlYicsCgkJCSdzbGF0ZWJsdWUnPT4nIzZhNWFjZCcsCgkJCSdzbGF0ZWdyYXknPT4nIzcwODA5MCcsCgkJCSdzbGF0ZWdyZXknPT4nIzcwODA5MCcsCgkJCSdzbm93Jz0+JyNmZmZhZmEnLAoJCQknc3ByaW5nZ3JlZW4nPT4nIzAwZmY3ZicsCgkJCSdzdGVlbGJsdWUnPT4nIzQ2ODJiNCcsCgkJCSd0YW4nPT4nI2QyYjQ4YycsCgkJCSd0ZWFsJz0+JyMwMDgwODAnLAoJCQkndGhpc3RsZSc9PicjZDhiZmQ4JywKCQkJJ3RvbWF0byc9PicjZmY2MzQ3JywKCQkJJ3R1cnF1b2lzZSc9PicjNDBlMGQwJywKCQkJJ3Zpb2xldCc9PicjZWU4MmVlJywKCQkJJ3doZWF0Jz0+JyNmNWRlYjMnLAoJCQknd2hpdGUnPT4nI2ZmZmZmZicsCgkJCSd3aGl0ZXNtb2tlJz0+JyNmNWY1ZjUnLAoJCQkneWVsbG93Jz0+JyNmZmZmMDAnLAoJCQkneWVsbG93Z3JlZW4nPT4nIzlhY2QzMicKCQkpOwoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaGFzT3duUHJvcGVydHkoJGNvbG9yKSB7CgkJcmV0dXJuIGlzc2V0KHNlbGY6OiRjb2xvcnNbJGNvbG9yXSk7Cgl9CgoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY29sb3IoJGNvbG9yKSB7CgkJcmV0dXJuIHNlbGY6OiRjb2xvcnNbJGNvbG9yXTsKCX0KCn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Configurable.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBDb25maWd1cmFibGUNCiAqDQogKiBAcGFja2FnZSBMZXNzDQogKiBAc3VicGFja2FnZSBDb3JlDQogKi8NCmFic3RyYWN0IGNsYXNzIExlc3NfQ29uZmlndXJhYmxlIHsNCg0KCS8qKg0KCSAqIEFycmF5IG9mIG9wdGlvbnMNCgkgKg0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcm90ZWN0ZWQgJG9wdGlvbnMgPSBhcnJheSgpOw0KDQoJLyoqDQoJICogQXJyYXkgb2YgZGVmYXVsdCBvcHRpb25zDQoJICoNCgkgKiBAdmFyIGFycmF5DQoJICovDQoJcHJvdGVjdGVkICRkZWZhdWx0T3B0aW9ucyA9IGFycmF5KCk7DQoNCg0KCS8qKg0KCSAqIFNldCBvcHRpb25zDQoJICoNCgkgKiBJZiAkb3B0aW9ucyBpcyBhbiBvYmplY3QgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhbiBhcnJheSBieSBjYWxsZWQNCgkgKiBpdCdzIHRvQXJyYXkgbWV0aG9kLg0KCSAqDQoJICogQHRocm93cyBFeGNlcHRpb24NCgkgKiBAcGFyYW0gYXJyYXl8b2JqZWN0ICRvcHRpb25zDQoJICoNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0T3B0aW9ucygkb3B0aW9ucyl7DQoJCSRvcHRpb25zID0gYXJyYXlfaW50ZXJzZWN0X2tleSgkb3B0aW9ucywkdGhpcy0+ZGVmYXVsdE9wdGlvbnMpOw0KCQkkdGhpcy0+b3B0aW9ucyA9IGFycmF5X21lcmdlKCR0aGlzLT5kZWZhdWx0T3B0aW9ucywgJHRoaXMtPm9wdGlvbnMsICRvcHRpb25zKTsNCgl9DQoNCg0KCS8qKg0KCSAqIEdldCBhbiBvcHRpb24gdmFsdWUgYnkgbmFtZQ0KCSAqDQoJICogSWYgdGhlIG9wdGlvbiBpcyBlbXB0eSBvciBub3Qgc2V0IGEgTlVMTCB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkbmFtZQ0KCSAqIEBwYXJhbSBtaXhlZCAkZGVmYXVsdCBEZWZhdWx0IHZhbHVlIGlmIGNvbmZpdXJhdGlvbiBvZiAkbmFtZSBpcyBub3QgcHJlc2VudA0KCSAqIEByZXR1cm4gbWl4ZWQNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0T3B0aW9uKCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpew0KCQlpZihpc3NldCgkdGhpcy0+b3B0aW9uc1skbmFtZV0pKXsNCgkJCXJldHVybiAkdGhpcy0+b3B0aW9uc1skbmFtZV07DQoJCX0NCgkJcmV0dXJuICRkZWZhdWx0Ow0KCX0NCg0KDQoJLyoqDQoJICogU2V0IGFuIG9wdGlvbg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkbmFtZQ0KCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0T3B0aW9uKCRuYW1lLCAkdmFsdWUpew0KCQkkdGhpcy0+b3B0aW9uc1skbmFtZV0gPSAkdmFsdWU7DQoJfQ0KDQp9]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Environment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgovKioKICogRW52aXJvbm1lbnQKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSBlbnZpcm9ubWVudAogKi8KY2xhc3MgTGVzc19FbnZpcm9ubWVudHsKCgkvL3B1YmxpYyAkcGF0aHMgPSBhcnJheSgpOwkJCQkvLyBvcHRpb24gLSB1bm1vZGlmaWVkIC0gcGF0aHMgdG8gc2VhcmNoIGZvciBpbXBvcnRzIG9uCgkvL3B1YmxpYyBzdGF0aWMgJGZpbGVzID0gYXJyYXkoKTsJCS8vIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gaW1wb3J0ZWQsIHVzZWQgZm9yIGltcG9ydC1vbmNlCgkvL3B1YmxpYyAkcm9vdHBhdGg7CQkJCQkJLy8gb3B0aW9uIC0gcm9vdHBhdGggdG8gYXBwZW5kIHRvIFVSTCdzCgkvL3B1YmxpYyBzdGF0aWMgJHN0cmljdEltcG9ydHMgPSBudWxsOwkvLyBvcHRpb24gLQoJLy9wdWJsaWMgJGluc2VjdXJlOwkJCQkJCS8vIG9wdGlvbiAtIHdoZXRoZXIgdG8gYWxsb3cgaW1wb3J0cyBmcm9tIGluc2VjdXJlIHNzbCBob3N0cwoJLy9wdWJsaWMgJHByb2Nlc3NJbXBvcnRzOwkJCQkvLyBvcHRpb24gLSB3aGV0aGVyIHRvIHByb2Nlc3MgaW1wb3J0cy4gaWYgZmFsc2UgdGhlbiBpbXBvcnRzIHdpbGwgbm90IGJlIGltcG9ydGVkCgkvL3B1YmxpYyAkamF2YXNjcmlwdEVuYWJsZWQ7CQkJLy8gb3B0aW9uIC0gd2hldGhlciBKYXZhU2NyaXB0IGlzIGVuYWJsZWQuIGlmIHVuZGVmaW5lZCwgZGVmYXVsdHMgdG8gdHJ1ZQoJLy9wdWJsaWMgJHVzZUZpbGVDYWNoZTsJCQkJCS8vIGJyb3dzZXIgb25seSAtIHdoZXRoZXIgdG8gdXNlIHRoZSBwZXIgZmlsZSBzZXNzaW9uIGNhY2hlCglwdWJsaWMgJGN1cnJlbnRGaWxlSW5mbzsJCQkJLy8gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgZmlsZSAtIGZvciBlcnJvciByZXBvcnRpbmcgYW5kIGltcG9ydGluZyBhbmQgbWFraW5nIHVybHMgcmVsYXRpdmUgZXRjLgoKCXB1YmxpYyAkaW1wb3J0TXVsdGlwbGUgPSBmYWxzZTsgCQkvLyB3aGV0aGVyIHdlIGFyZSBjdXJyZW50bHkgaW1wb3J0aW5nIG11bHRpcGxlIGNvcGllcwoKCgkvKioKCSAqIEB2YXIgYXJyYXkKCSAqLwoJcHVibGljICRmcmFtZXMgPSBhcnJheSgpOwoKCS8qKgoJICogQHZhciBhcnJheQoJICovCglwdWJsaWMgJG1lZGlhQmxvY2tzID0gYXJyYXkoKTsKCgkvKioKCSAqIEB2YXIgYXJyYXkKCSAqLwoJcHVibGljICRtZWRpYVBhdGggPSBhcnJheSgpOwoKCXB1YmxpYyBzdGF0aWMgJHBhcmVuc1N0YWNrID0gMDsKCglwdWJsaWMgc3RhdGljICR0YWJMZXZlbCA9IDA7CgoJcHVibGljIHN0YXRpYyAkbGFzdFJ1bGUgPSBmYWxzZTsKCglwdWJsaWMgc3RhdGljICRfb3V0cHV0TWFwOwoKCXB1YmxpYyBzdGF0aWMgJG1peGluX3N0YWNrID0gMDsKCgkvKioKCSAqIEB2YXIgYXJyYXkKCSAqLwoJcHVibGljICRmdW5jdGlvbnMgPSBhcnJheSgpOwoKCglwdWJsaWMgZnVuY3Rpb24gSW5pdCgpewoKCQlzZWxmOjokcGFyZW5zU3RhY2sgPSAwOwoJCXNlbGY6OiR0YWJMZXZlbCA9IDA7CgkJc2VsZjo6JGxhc3RSdWxlID0gZmFsc2U7CgkJc2VsZjo6JG1peGluX3N0YWNrID0gMDsKCgkJaWYoIExlc3NfUGFyc2VyOjokb3B0aW9uc1snY29tcHJlc3MnXSApewoKCQkJTGVzc19FbnZpcm9ubWVudDo6JF9vdXRwdXRNYXAgPSBhcnJheSgKCQkJCScsJwk9PiAnLCcsCgkJCQknOiAnID0+ICc6JywKCQkJCScnICA9PiAnJywKCQkJCScgJyA9PiAnICcsCgkJCQknOicgPT4gJyA6JywKCQkJCScrJyA9PiAnKycsCgkJCQknficgPT4gJ34nLAoJCQkJJz4nID0+ICc+JywKCQkJCSd8JyA9PiAnfCcsCgkJICAgICAgICAnXicgPT4gJ14nLAoJCSAgICAgICAgJ15eJyA9PiAnXl4nCgkJCSk7CgoJCX1lbHNlewoKCQkJTGVzc19FbnZpcm9ubWVudDo6JF9vdXRwdXRNYXAgPSBhcnJheSgKCQkJCScsJwk9PiAnLCAnLAoJCQkJJzogJyA9PiAnOiAnLAoJCQkJJycgID0+ICcnLAoJCQkJJyAnID0+ICcgJywKCQkJCSc6JyA9PiAnIDonLAoJCQkJJysnID0+ICcgKyAnLAoJCQkJJ34nID0+ICcgfiAnLAoJCQkJJz4nID0+ICcgPiAnLAoJCQkJJ3wnID0+ICd8JywKCQkgICAgICAgICdeJyA9PiAnIF4gJywKCQkgICAgICAgICdeXicgPT4gJyBeXiAnCgkJCSk7CgoJCX0KCX0KCgoJcHVibGljIGZ1bmN0aW9uIGNvcHlFdmFsRW52KCRmcmFtZXMgPSBhcnJheSgpICl7CgkJJG5ld19lbnYgPSBuZXcgTGVzc19FbnZpcm9ubWVudCgpOwoJCSRuZXdfZW52LT5mcmFtZXMgPSAkZnJhbWVzOwoJCXJldHVybiAkbmV3X2VudjsKCX0KCgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc01hdGhPbigpewoJCXJldHVybiAhTGVzc19QYXJzZXI6OiRvcHRpb25zWydzdHJpY3RNYXRoJ10gfHwgTGVzc19FbnZpcm9ubWVudDo6JHBhcmVuc1N0YWNrOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNQYXRoUmVsYXRpdmUoJHBhdGgpewoJCXJldHVybiAhcHJlZ19tYXRjaCgnL14oPzpbYS16LV0rOnxcLykvJywkcGF0aCk7Cgl9CgoKCS8qKgoJICogQ2Fub25pY2FsaXplIGEgcGF0aCBieSByZXNvbHZpbmcgcmVmZXJlbmNlcyB0byAnLy4vJywgJy8uLi8nCgkgKiBEb2VzIG5vdCByZW1vdmUgbGVhZGluZyAiLi4vIgoJICogQHBhcmFtIHN0cmluZyBwYXRoIG9yIHVybAoJICogQHJldHVybiBzdHJpbmcgQ2Fub25pY2FsaXplZCBwYXRoCgkgKgoJICovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgoJHBhdGgpewoKCQkkc2VnbWVudHMgPSBleHBsb2RlKCcvJywkcGF0aCk7CgkJJHNlZ21lbnRzID0gYXJyYXlfcmV2ZXJzZSgkc2VnbWVudHMpOwoKCQkkcGF0aCA9IGFycmF5KCk7CgkJJHBhdGhfbGVuID0gMDsKCgkJd2hpbGUoICRzZWdtZW50cyApewoJCQkkc2VnbWVudCA9IGFycmF5X3BvcCgkc2VnbWVudHMpOwoJCQlzd2l0Y2goICRzZWdtZW50ICkgewoKCQkJCWNhc2UgJy4nOgoJCQkJYnJlYWs7CgoJCQkJY2FzZSAnLi4nOgoJCQkJCWlmKCAhJHBhdGhfbGVuIHx8ICggJHBhdGhbJHBhdGhfbGVuLTFdID09PSAnLi4nKSApewoJCQkJCQkkcGF0aFtdID0gJHNlZ21lbnQ7CgkJCQkJCSRwYXRoX2xlbisrOwoJCQkJCX1lbHNlewoJCQkJCQlhcnJheV9wb3AoJHBhdGgpOwoJCQkJCQkkcGF0aF9sZW4tLTsKCQkJCQl9CgkJCQlicmVhazsKCgkJCQlkZWZhdWx0OgoJCQkJCSRwYXRoW10gPSAkc2VnbWVudDsKCQkJCQkkcGF0aF9sZW4rKzsKCQkJCWJyZWFrOwoJCQl9CgkJfQoKCQlyZXR1cm4gaW1wbG9kZSgnLycsJHBhdGgpOwoJfQoKCglwdWJsaWMgZnVuY3Rpb24gdW5zaGlmdEZyYW1lKCRmcmFtZSl7CgkJYXJyYXlfdW5zaGlmdCgkdGhpcy0+ZnJhbWVzLCAkZnJhbWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzaGlmdEZyYW1lKCl7CgkJcmV0dXJuIGFycmF5X3NoaWZ0KCR0aGlzLT5mcmFtZXMpOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Exception/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Exception/Chunk.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBDaHVuayBFeGNlcHRpb24NCiAqDQogKiBAcGFja2FnZSBMZXNzDQogKiBAc3VicGFja2FnZSBleGNlcHRpb24NCiAqLw0KY2xhc3MgTGVzc19FeGNlcHRpb25fQ2h1bmsgZXh0ZW5kcyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXJ7DQoNCg0KCXByb3RlY3RlZCAkcGFyc2VyQ3VycmVudEluZGV4ID0gMDsNCg0KCXByb3RlY3RlZCAkZW1pdEZyb20gPSAwOw0KDQoJcHJvdGVjdGVkICRpbnB1dF9sZW47DQoNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRpbnB1dA0KCSAqIEBwYXJhbSBFeGNlcHRpb24gJHByZXZpb3VzIFByZXZpb3VzIGV4Y2VwdGlvbg0KCSAqIEBwYXJhbSBpbnRlZ2VyICRpbmRleCBUaGUgY3VycmVudCBwYXJzZXIgaW5kZXgNCgkgKiBAcGFyYW0gTGVzc19GaWxlSW5mb3xzdHJpbmcgJGN1cnJlbnRGaWxlIFRoZSBmaWxlDQoJICogQHBhcmFtIGludGVnZXIgJGNvZGUgVGhlIGV4Y2VwdGlvbiBjb2RlDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCwgRXhjZXB0aW9uICRwcmV2aW91cyA9IG51bGwsICRpbmRleCA9IG51bGwsICRjdXJyZW50RmlsZSA9IG51bGwsICRjb2RlID0gMCl7DQoNCgkJJHRoaXMtPm1lc3NhZ2UgPSAnUGFyc2VFcnJvcjogVW5leHBlY3RlZCBpbnB1dCc7IC8vZGVmYXVsdCBtZXNzYWdlDQoNCgkJJHRoaXMtPmluZGV4ID0gJGluZGV4Ow0KDQoJCSR0aGlzLT5jdXJyZW50RmlsZSA9ICRjdXJyZW50RmlsZTsNCg0KCQkkdGhpcy0+aW5wdXQgPSAkaW5wdXQ7DQoJCSR0aGlzLT5pbnB1dF9sZW4gPSBzdHJsZW4oJGlucHV0KTsNCg0KCQkkdGhpcy0+Q2h1bmtzKCk7DQoJCSR0aGlzLT5nZW5NZXNzYWdlKCk7DQoJfQ0KDQoNCgkvKioNCgkgKiBTZWUgbGVzcy5qcyBjaHVua3MoKQ0KCSAqIFdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdGhlIGNodW5rcw0KCSAqDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIENodW5rcygpew0KCQkkbGV2ZWwgPSAwOw0KCQkkcGFyZW5MZXZlbCA9IDA7DQoJCSRsYXN0TXVsdGlDb21tZW50RW5kQnJhY2UgPSBudWxsOw0KCQkkbGFzdE9wZW5pbmcgPSBudWxsOw0KCQkkbGFzdE11bHRpQ29tbWVudCA9IG51bGw7DQoJCSRsYXN0UGFyZW4gPSBudWxsOw0KDQoJCWZvciggJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCA9IDA7ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggPCAkdGhpcy0+aW5wdXRfbGVuOyAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4KysgKXsNCgkJCSRjYyA9ICR0aGlzLT5DaGFyQ29kZSgkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4KTsNCgkJCWlmICgoKCRjYyA+PSA5NykgJiYgKCRjYyA8PSAxMjIpKSB8fCAoJGNjIDwgMzQpKSB7DQoJCQkJLy8gYS16IG9yIHdoaXRlc3BhY2UNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJc3dpdGNoICgkY2MpIHsNCg0KCQkJCS8vICgNCgkJCQljYXNlIDQwOg0KCQkJCQkkcGFyZW5MZXZlbCsrOw0KCQkJCQkkbGFzdFBhcmVuID0gJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleDsNCgkJCQkJY29udGludWU7DQoNCgkJCQkvLyApDQoJCQkJY2FzZSA0MToNCgkJCQkJJHBhcmVuTGV2ZWwtLTsNCgkJCQkJaWYoICRwYXJlbkxldmVsIDwgMCApew0KCQkJCQkJcmV0dXJuICR0aGlzLT5mYWlsKCJtaXNzaW5nIG9wZW5pbmcgYChgIik7DQoJCQkJCX0NCgkJCQkJY29udGludWU7DQoNCgkJCQkvLyA7DQoJCQkJY2FzZSA1OToNCgkJCQkJLy9pZiAoISRwYXJlbkxldmVsKSB7ICR0aGlzLT5lbWl0Q2h1bmsoKTsJfQ0KCQkJCQljb250aW51ZTsNCg0KCQkJCS8vIHsNCgkJCQljYXNlIDEyMzoNCgkJCQkJJGxldmVsKys7DQoJCQkJCSRsYXN0T3BlbmluZyA9ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXg7DQoJCQkJCWNvbnRpbnVlOw0KDQoJCQkJLy8gfQ0KCQkJCWNhc2UgMTI1Og0KCQkJCQkkbGV2ZWwtLTsNCgkJCQkJaWYoICRsZXZlbCA8IDAgKXsNCgkJCQkJCXJldHVybiAkdGhpcy0+ZmFpbCgibWlzc2luZyBvcGVuaW5nIGB7YCIpOw0KDQoJCQkJCX0NCgkJCQkJLy9pZiAoISRsZXZlbCAmJiAhJHBhcmVuTGV2ZWwpIHsgJHRoaXMtPmVtaXRDaHVuaygpOyB9DQoJCQkJCWNvbnRpbnVlOw0KCQkJCS8vIFwNCgkJCQljYXNlIDkyOg0KCQkJCQlpZiAoJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCA8ICR0aGlzLT5pbnB1dF9sZW4gLSAxKSB7ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXgrKzsgY29udGludWU7IH0NCgkJCQkJcmV0dXJuICR0aGlzLT5mYWlsKCJ1bmVzY2FwZWQgYFxcYCIpOw0KDQoJCQkJLy8gIiwgJyBhbmQgYA0KCQkJCWNhc2UgMzQ6DQoJCQkJY2FzZSAzOToNCgkJCQljYXNlIDk2Og0KCQkJCQkkbWF0Y2hlZCA9IDA7DQoJCQkJCSRjdXJyZW50Q2h1bmtTdGFydEluZGV4ID0gJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleDsNCgkJCQkJZm9yICgkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4ID0gJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCArIDE7ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggPCAkdGhpcy0+aW5wdXRfbGVuOyAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4KyspIHsNCgkJCQkJCSRjYzIgPSAkdGhpcy0+Q2hhckNvZGUoJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCk7DQoJCQkJCQlpZiAoJGNjMiA+IDk2KSB7IGNvbnRpbnVlOyB9DQoJCQkJCQlpZiAoJGNjMiA9PSAkY2MpIHsgJG1hdGNoZWQgPSAxOyBicmVhazsgfQ0KCQkJCQkJaWYgKCRjYzIgPT0gOTIpIHsgICAgICAgIC8vIFwNCgkJCQkJCQlpZiAoJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCA9PSAkdGhpcy0+aW5wdXRfbGVuIC0gMSkgew0KCQkJCQkJCQlyZXR1cm4gJHRoaXMtPmZhaWwoInVuZXNjYXBlZCBgXFxgIik7DQoJCQkJCQkJfQ0KCQkJCQkJCSR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXgrKzsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQlpZiAoJG1hdGNoZWQpIHsgY29udGludWU7IH0NCgkJCQkJcmV0dXJuICR0aGlzLT5mYWlsKCJ1bm1hdGNoZWQgYCIgLiBjaHIoJGNjKSAuICJgIiwgJGN1cnJlbnRDaHVua1N0YXJ0SW5kZXgpOw0KDQoJCQkJLy8gLywgY2hlY2sgZm9yIGNvbW1lbnQNCgkJCQljYXNlIDQ3Og0KCQkJCQlpZiAoJHBhcmVuTGV2ZWwgfHwgKCR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggPT0gJHRoaXMtPmlucHV0X2xlbiAtIDEpKSB7IGNvbnRpbnVlOyB9DQoJCQkJCSRjYzIgPSAkdGhpcy0+Q2hhckNvZGUoJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCsxKTsNCgkJCQkJaWYgKCRjYzIgPT0gNDcpIHsNCgkJCQkJCS8vIC8vLCBmaW5kIGxuZmVlZA0KCQkJCQkJZm9yICgkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4ID0gJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCArIDI7ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggPCAkdGhpcy0+aW5wdXRfbGVuOyAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4KyspIHsNCgkJCQkJCQkkY2MyID0gJHRoaXMtPkNoYXJDb2RlKCR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXgpOw0KCQkJCQkJCWlmICgoJGNjMiA8PSAxMykgJiYgKCgkY2MyID09IDEwKSB8fCAoJGNjMiA9PSAxMykpKSB7IGJyZWFrOyB9DQoJCQkJCQl9DQoJCQkJCX0gZWxzZSBpZiAoJGNjMiA9PSA0Mikgew0KCQkJCQkJLy8gLyosIGZpbmQgKi8NCgkJCQkJCSRsYXN0TXVsdGlDb21tZW50ID0gJGN1cnJlbnRDaHVua1N0YXJ0SW5kZXggPSAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4Ow0KCQkJCQkJZm9yICgkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4ID0gJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCArIDI7ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggPCAkdGhpcy0+aW5wdXRfbGVuIC0gMTsgJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCsrKSB7DQoJCQkJCQkJJGNjMiA9ICR0aGlzLT5DaGFyQ29kZSgkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4KTsNCgkJCQkJCQlpZiAoJGNjMiA9PSAxMjUpIHsgJGxhc3RNdWx0aUNvbW1lbnRFbmRCcmFjZSA9ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXg7IH0NCgkJCQkJCQlpZiAoJGNjMiAhPSA0MikgeyBjb250aW51ZTsgfQ0KCQkJCQkJCWlmICgkdGhpcy0+Q2hhckNvZGUoJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCsxKSA9PSA0NykgeyBicmVhazsgfQ0KCQkJCQkJfQ0KCQkJCQkJaWYgKCR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggPT0gJHRoaXMtPmlucHV0X2xlbiAtIDEpIHsNCgkJCQkJCQlyZXR1cm4gJHRoaXMtPmZhaWwoIm1pc3NpbmcgY2xvc2luZyBgKi9gIiwgJGN1cnJlbnRDaHVua1N0YXJ0SW5kZXgpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWNvbnRpbnVlOw0KDQoJCQkJLy8gKiwgY2hlY2sgZm9yIHVubWF0Y2hlZCAqLw0KCQkJCWNhc2UgNDI6DQoJCQkJCWlmICgoJHRoaXMtPnBhcnNlckN1cnJlbnRJbmRleCA8ICR0aGlzLT5pbnB1dF9sZW4gLSAxKSAmJiAoJHRoaXMtPkNoYXJDb2RlKCR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXgrMSkgPT0gNDcpKSB7DQoJCQkJCQlyZXR1cm4gJHRoaXMtPmZhaWwoInVubWF0Y2hlZCBgLypgIik7DQoJCQkJCX0NCgkJCQkJY29udGludWU7DQoJCQl9DQoJCX0NCg0KCQlpZiggJGxldmVsICE9PSAwICl7DQoJCQlpZiggKCRsYXN0TXVsdGlDb21tZW50ID4gJGxhc3RPcGVuaW5nKSAmJiAoJGxhc3RNdWx0aUNvbW1lbnRFbmRCcmFjZSA+ICRsYXN0TXVsdGlDb21tZW50KSApew0KCQkJCXJldHVybiAkdGhpcy0+ZmFpbCgibWlzc2luZyBjbG9zaW5nIGB9YCBvciBgKi9gIiwgJGxhc3RPcGVuaW5nKTsNCgkJCX0gZWxzZSB7DQoJCQkJcmV0dXJuICR0aGlzLT5mYWlsKCJtaXNzaW5nIGNsb3NpbmcgYH1gIiwgJGxhc3RPcGVuaW5nKTsNCgkJCX0NCgkJfSBlbHNlIGlmICggJHBhcmVuTGV2ZWwgIT09IDAgKXsNCgkJCXJldHVybiAkdGhpcy0+ZmFpbCgibWlzc2luZyBjbG9zaW5nIGApYCIsICRsYXN0UGFyZW4pOw0KCQl9DQoNCg0KCQkvL2NodW5rIGRpZG4ndCBmYWlsDQoNCg0KCQkvLyR0aGlzLT5lbWl0Q2h1bmsodHJ1ZSk7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIENoYXJDb2RlKCRwb3Mpew0KCQlyZXR1cm4gb3JkKCR0aGlzLT5pbnB1dFskcG9zXSk7DQoJfQ0KDQoNCglwdWJsaWMgZnVuY3Rpb24gZmFpbCggJG1zZywgJGluZGV4ID0gbnVsbCApew0KDQoJCWlmKCAhJGluZGV4ICl7DQoJCQkkdGhpcy0+aW5kZXggPSAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4Ow0KCQl9ZWxzZXsNCgkJCSR0aGlzLT5pbmRleCA9ICRpbmRleDsNCgkJfQ0KCQkkdGhpcy0+bWVzc2FnZSA9ICdQYXJzZUVycm9yOiAnLiRtc2c7DQoJfQ0KDQoNCgkvKg0KCWZ1bmN0aW9uIGVtaXRDaHVuayggJGZvcmNlID0gZmFsc2UgKXsNCgkJJGxlbiA9ICR0aGlzLT5wYXJzZXJDdXJyZW50SW5kZXggLSAkdGhpcy0+ZW1pdEZyb207DQoJCWlmICgoKCRsZW4gPCA1MTIpICYmICEkZm9yY2UpIHx8ICEkbGVuKSB7DQoJCQlyZXR1cm47DQoJCX0NCgkJJGNodW5rc1tdID0gc3Vic3RyKCR0aGlzLT5pbnB1dCwgJHRoaXMtPmVtaXRGcm9tLCAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4ICsgMSAtICR0aGlzLT5lbWl0RnJvbSApOw0KCQkkdGhpcy0+ZW1pdEZyb20gPSAkdGhpcy0+cGFyc2VyQ3VycmVudEluZGV4ICsgMTsNCgl9DQoJKi8NCg0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Exception/Compiler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBDb21waWxlciBFeGNlcHRpb24NCiAqDQogKiBAcGFja2FnZSBMZXNzDQogKiBAc3VicGFja2FnZSBleGNlcHRpb24NCiAqLw0KY2xhc3MgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIgZXh0ZW5kcyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXJ7DQoNCn0=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Exception/Compiler.php.part</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBDb21waWxlciBFeGNlcHRpb24NCiAqDQogKiBAcGFja2FnZSBMZXNzDQogKiBAc3VicGFja2FnZSBleGNlcHRpb24NCiAqLw0KY2xhc3MgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIgZXh0ZW5kcyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXJ7DQoNCn0=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Exception/Parser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBQYXJzZXIgRXhjZXB0aW9uDQogKg0KICogQHBhY2thZ2UgTGVzcw0KICogQHN1YnBhY2thZ2UgZXhjZXB0aW9uDQogKi8NCmNsYXNzIExlc3NfRXhjZXB0aW9uX1BhcnNlciBleHRlbmRzIEV4Y2VwdGlvbnsNCg0KCS8qKg0KCSAqIFRoZSBjdXJyZW50IGZpbGUNCgkgKg0KCSAqIEB2YXIgTGVzc19JbXBvcnRlZEZpbGUNCgkgKi8NCglwdWJsaWMgJGN1cnJlbnRGaWxlOw0KDQoJLyoqDQoJICogVGhlIGN1cnJlbnQgcGFyc2VyIGluZGV4DQoJICoNCgkgKiBAdmFyIGludGVnZXINCgkgKi8NCglwdWJsaWMgJGluZGV4Ow0KDQoJcHJvdGVjdGVkICRpbnB1dDsNCg0KCXByb3RlY3RlZCAkZGV0YWlscyA9IGFycmF5KCk7DQoNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlDQoJICogQHBhcmFtIEV4Y2VwdGlvbiAkcHJldmlvdXMgUHJldmlvdXMgZXhjZXB0aW9uDQoJICogQHBhcmFtIGludGVnZXIgJGluZGV4IFRoZSBjdXJyZW50IHBhcnNlciBpbmRleA0KCSAqIEBwYXJhbSBMZXNzX0ZpbGVJbmZvfHN0cmluZyAkY3VycmVudEZpbGUgVGhlIGZpbGUNCgkgKiBAcGFyYW0gaW50ZWdlciAkY29kZSBUaGUgZXhjZXB0aW9uIGNvZGUNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1lc3NhZ2UgPSBudWxsLCBFeGNlcHRpb24gJHByZXZpb3VzID0gbnVsbCwgJGluZGV4ID0gbnVsbCwgJGN1cnJlbnRGaWxlID0gbnVsbCwgJGNvZGUgPSAwKXsNCg0KCQlpZiAoUEhQX1ZFUlNJT05fSUQgPCA1MDMwMCkgew0KCQkJJHRoaXMtPnByZXZpb3VzID0gJHByZXZpb3VzOw0KCQkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbWVzc2FnZSwgJGNvZGUpOw0KCQl9IGVsc2Ugew0KCQkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbWVzc2FnZSwgJGNvZGUsICRwcmV2aW91cyk7DQoJCX0NCg0KCQkkdGhpcy0+Y3VycmVudEZpbGUgPSAkY3VycmVudEZpbGU7DQoJCSR0aGlzLT5pbmRleCA9ICRpbmRleDsNCg0KCQkkdGhpcy0+Z2VuTWVzc2FnZSgpOw0KCX0NCg0KDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldElucHV0KCl7DQoNCgkJaWYoICEkdGhpcy0+aW5wdXQgJiYgJHRoaXMtPmN1cnJlbnRGaWxlICYmICR0aGlzLT5jdXJyZW50RmlsZVsnZmlsZW5hbWUnXSAmJiBmaWxlX2V4aXN0cygkdGhpcy0+Y3VycmVudEZpbGVbJ2ZpbGVuYW1lJ10pICl7DQoJCQkkdGhpcy0+aW5wdXQgPSBmaWxlX2dldF9jb250ZW50cyggJHRoaXMtPmN1cnJlbnRGaWxlWydmaWxlbmFtZSddICk7DQoJCX0NCgl9DQoNCg0KDQoJLyoqDQoJICogQ29udmVydHMgdGhlIGV4Y2VwdGlvbiB0byBzdHJpbmcNCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdlbk1lc3NhZ2UoKXsNCg0KCQlpZiggJHRoaXMtPmN1cnJlbnRGaWxlICYmICR0aGlzLT5jdXJyZW50RmlsZVsnZmlsZW5hbWUnXSApew0KCQkJJHRoaXMtPm1lc3NhZ2UgLj0gJyBpbiAnLmJhc2VuYW1lKCR0aGlzLT5jdXJyZW50RmlsZVsnZmlsZW5hbWUnXSk7DQoJCX0NCg0KCQlpZiggJHRoaXMtPmluZGV4ICE9PSBudWxsICl7DQoJCQkkdGhpcy0+Z2V0SW5wdXQoKTsNCgkJCWlmKCAkdGhpcy0+aW5wdXQgKXsNCgkJCQkkbGluZSA9IHNlbGY6OmdldExpbmVOdW1iZXIoKTsNCgkJCQkkdGhpcy0+bWVzc2FnZSAuPSAnIG9uIGxpbmUgJy4kbGluZS4nLCBjb2x1bW4gJy5zZWxmOjpnZXRDb2x1bW4oKTsNCg0KCQkJCSRsaW5lcyA9IGV4cGxvZGUoIlxuIiwkdGhpcy0+aW5wdXQpOw0KDQoJCQkJJGNvdW50ID0gY291bnQoJGxpbmVzKTsNCgkJCQkkc3RhcnRfbGluZSA9IG1heCgwLCAkbGluZS0zKTsNCgkJCQkkbGFzdF9saW5lID0gbWluKCRjb3VudCwgJHN0YXJ0X2xpbmUrNik7DQoJCQkJJG51bV9sZW4gPSBzdHJsZW4oJGxhc3RfbGluZSk7DQoJCQkJZm9yKCAkaSA9ICRzdGFydF9saW5lOyAkaSA8ICRsYXN0X2xpbmU7ICRpKysgKXsNCgkJCQkJJHRoaXMtPm1lc3NhZ2UgLj0gIlxuIi5zdHJfcGFkKCRpKzEsJG51bV9sZW4sJzAnLFNUUl9QQURfTEVGVCkuJ3wgJy4kbGluZXNbJGldOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJfQ0KDQoJLyoqDQoJICogUmV0dXJucyB0aGUgbGluZSBudW1iZXIgdGhlIGVycm9yIHdhcyBlbmNvdW50ZXJlZA0KCSAqDQoJICogQHJldHVybiBpbnRlZ2VyDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldExpbmVOdW1iZXIoKXsNCgkJaWYoICR0aGlzLT5pbmRleCApew0KCQkJLy8gaHR0cHM6Ly9idWdzLnBocC5uZXQvYnVnLnBocD9pZD00OTc5MA0KCQkJaWYgKGluaV9nZXQoIm1ic3RyaW5nLmZ1bmNfb3ZlcmxvYWQiKSkgew0KCQkJCXJldHVybiBzdWJzdHJfY291bnQoc3Vic3RyKCR0aGlzLT5pbnB1dCwgMCwgJHRoaXMtPmluZGV4KSwgIlxuIikgKyAxOw0KCQkJfSBlbHNlIHsNCgkJCQlyZXR1cm4gc3Vic3RyX2NvdW50KCR0aGlzLT5pbnB1dCwgIlxuIiwgMCwgJHRoaXMtPmluZGV4KSArIDE7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIDE7DQoJfQ0KDQoNCgkvKioNCgkgKiBSZXR1cm5zIHRoZSBjb2x1bW4gdGhlIGVycm9yIHdhcyBlbmNvdW50ZXJlZA0KCSAqDQoJICogQHJldHVybiBpbnRlZ2VyDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldENvbHVtbigpew0KDQoJCSRwYXJ0ID0gc3Vic3RyKCR0aGlzLT5pbnB1dCwgMCwgJHRoaXMtPmluZGV4KTsNCgkJJHBvcyA9IHN0cnJwb3MoJHBhcnQsIlxuIik7DQoJCXJldHVybiAkdGhpcy0+aW5kZXggLSAkcG9zOw0KCX0NCg0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Functions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBCdWlsdGluIGZ1bmN0aW9ucwogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIGZ1bmN0aW9uCiAqIEBzZWUgaHR0cDovL2xlc3Njc3Mub3JnL2Z1bmN0aW9ucy8KICovCmNsYXNzIExlc3NfRnVuY3Rpb25zewoKCXB1YmxpYyAkZW52OwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CgoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGVudiwgJGN1cnJlbnRGaWxlSW5mbyA9IG51bGwgKXsKCQkkdGhpcy0+ZW52ID0gJGVudjsKCQkkdGhpcy0+Y3VycmVudEZpbGVJbmZvID0gJGN1cnJlbnRGaWxlSW5mbzsKCX0KCgkvKioKCSAqIEBwYXJhbSBzdHJpbmcgJG9wCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gb3BlcmF0ZSggJG9wLCAkYSwgJGIgKXsKCQlzd2l0Y2ggKCRvcCkgewoJCQljYXNlICcrJzogcmV0dXJuICRhICsgJGI7CgkJCWNhc2UgJy0nOiByZXR1cm4gJGEgLSAkYjsKCQkJY2FzZSAnKic6IHJldHVybiAkYSAqICRiOwoJCQljYXNlICcvJzogcmV0dXJuICRhIC8gJGI7CgkJfQoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2xhbXAoJHZhbCwgJG1heCA9IDEpewoJCXJldHVybiBtaW4oIG1heCgkdmFsLCAwKSwgJG1heCk7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmcm91bmQoICR2YWx1ZSApewoKCQlpZiggJHZhbHVlID09PSAwICl7CgkJCXJldHVybiAkdmFsdWU7CgkJfQoKCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydudW1QcmVjaXNpb24nXSApewoJCQkkcCA9IHBvdygxMCwgTGVzc19QYXJzZXI6OiRvcHRpb25zWydudW1QcmVjaXNpb24nXSk7CgkJCXJldHVybiByb3VuZCggJHZhbHVlICogJHApIC8gJHA7CgkJfQoJCXJldHVybiAkdmFsdWU7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBudW1iZXIoJG4pewoKCQlpZiAoJG4gaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uKSB7CgkJCXJldHVybiBmbG9hdHZhbCggJG4tPnVuaXQtPmlzKCclJykgPyAkbi0+dmFsdWUgLyAxMDAgOiAkbi0+dmFsdWUpOwoJCX0gZWxzZSBpZiAoaXNfbnVtZXJpYygkbikpIHsKCQkJcmV0dXJuICRuOwoJCX0gZWxzZSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcigiY29sb3IgZnVuY3Rpb25zIHRha2UgbnVtYmVycyBhcyBwYXJhbWV0ZXJzIik7CgkJfQoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2NhbGVkKCRuLCAkc2l6ZSA9IDI1NSApewoJCWlmKCAkbiBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24gJiYgJG4tPnVuaXQtPmlzKCclJykgKXsKCQkJcmV0dXJuIChmbG9hdCkkbi0+dmFsdWUgKiAkc2l6ZSAvIDEwMDsKCQl9IGVsc2UgewoJCQlyZXR1cm4gTGVzc19GdW5jdGlvbnM6Om51bWJlcigkbik7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiByZ2IgKCRyID0gbnVsbCwgJGcgPSBudWxsLCAkYiA9IG51bGwpewoJCWlmIChpc19udWxsKCRyKSB8fCBpc19udWxsKCRnKSB8fCBpc19udWxsKCRiKSkgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoInJnYiBleHBlY3RzIHRocmVlIHBhcmFtZXRlcnMiKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5yZ2JhKCRyLCAkZywgJGIsIDEuMCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJnYmEoJHIgPSBudWxsLCAkZyA9IG51bGwsICRiID0gbnVsbCwgJGEgPSBudWxsKXsKCQkkcmdiID0gYXJyYXkoJHIsICRnLCAkYik7CgkJJHJnYiA9IGFycmF5X21hcChhcnJheSgnTGVzc19GdW5jdGlvbnMnLCdzY2FsZWQnKSwkcmdiKTsKCgkJJGEgPSBzZWxmOjpudW1iZXIoJGEpOwoJCXJldHVybiBuZXcgTGVzc19UcmVlX0NvbG9yKCRyZ2IsICRhKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaHNsKCRoLCAkcywgJGwpewoJCXJldHVybiAkdGhpcy0+aHNsYSgkaCwgJHMsICRsLCAxLjApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBoc2xhKCRoLCAkcywgJGwsICRhKXsKCgkJJGggPSBmbW9kKHNlbGY6Om51bWJlcigkaCksIDM2MCkgLyAzNjA7IC8vIENsYXNzaWMgJSBvcGVyYXRvciB3aWxsIGNoYW5nZSBmbG9hdCB0byBpbnQKCQkkcyA9IHNlbGY6OmNsYW1wKHNlbGY6Om51bWJlcigkcykpOwoJCSRsID0gc2VsZjo6Y2xhbXAoc2VsZjo6bnVtYmVyKCRsKSk7CgkJJGEgPSBzZWxmOjpjbGFtcChzZWxmOjpudW1iZXIoJGEpKTsKCgkJJG0yID0gJGwgPD0gMC41ID8gJGwgKiAoJHMgKyAxKSA6ICRsICsgJHMgLSAkbCAqICRzOwoKCQkkbTEgPSAkbCAqIDIgLSAkbTI7CgoJCXJldHVybiAkdGhpcy0+cmdiYSggc2VsZjo6aHNsYV9odWUoJGggKyAxLzMsICRtMSwgJG0yKSAqIDI1NSwKCQkJCQkJCXNlbGY6OmhzbGFfaHVlKCRoLCAkbTEsICRtMikgKiAyNTUsCgkJCQkJCQlzZWxmOjpoc2xhX2h1ZSgkaCAtIDEvMywgJG0xLCAkbTIpICogMjU1LAoJCQkJCQkJJGEpOwoJfQoKCS8qKgoJICogQHBhcmFtIGRvdWJsZSAkaAoJICovCglwdWJsaWMgZnVuY3Rpb24gaHNsYV9odWUoJGgsICRtMSwgJG0yKXsKCQkkaCA9ICRoIDwgMCA/ICRoICsgMSA6ICgkaCA+IDEgPyAkaCAtIDEgOiAkaCk7CgkJaWYJICAoJGggKiA2IDwgMSkgcmV0dXJuICRtMSArICgkbTIgLSAkbTEpICogJGggKiA2OwoJCWVsc2UgaWYgKCRoICogMiA8IDEpIHJldHVybiAkbTI7CgkJZWxzZSBpZiAoJGggKiAzIDwgMikgcmV0dXJuICRtMSArICgkbTIgLSAkbTEpICogKDIvMyAtICRoKSAqIDY7CgkJZWxzZQkJCQkgcmV0dXJuICRtMTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaHN2KCRoLCAkcywgJHYpIHsKCQlyZXR1cm4gJHRoaXMtPmhzdmEoJGgsICRzLCAkdiwgMS4wKTsKCX0KCgkvKioKCSAqIEBwYXJhbSBkb3VibGUgJGEKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGhzdmEoJGgsICRzLCAkdiwgJGEpIHsKCQkkaCA9ICgoTGVzc19GdW5jdGlvbnM6Om51bWJlcigkaCkgJSAzNjApIC8gMzYwICkgKiAzNjA7CgkJJHMgPSBMZXNzX0Z1bmN0aW9uczo6bnVtYmVyKCRzKTsKCQkkdiA9IExlc3NfRnVuY3Rpb25zOjpudW1iZXIoJHYpOwoJCSRhID0gTGVzc19GdW5jdGlvbnM6Om51bWJlcigkYSk7CgoJCSRpID0gZmxvb3IoKCRoIC8gNjApICUgNik7CgkJJGYgPSAoJGggLyA2MCkgLSAkaTsKCgkJJHZzID0gYXJyYXkoICR2LAoJCQkJICAkdiAqICgxIC0gJHMpLAoJCQkJICAkdiAqICgxIC0gJGYgKiAkcyksCgkJCQkgICR2ICogKDEgLSAoMSAtICRmKSAqICRzKSk7CgoJCSRwZXJtID0gYXJyYXkoYXJyYXkoMCwgMywgMSksCgkJCQkJYXJyYXkoMiwgMCwgMSksCgkJCQkJYXJyYXkoMSwgMCwgMyksCgkJCQkJYXJyYXkoMSwgMiwgMCksCgkJCQkJYXJyYXkoMywgMSwgMCksCgkJCQkJYXJyYXkoMCwgMSwgMikpOwoKCQlyZXR1cm4gJHRoaXMtPnJnYmEoJHZzWyRwZXJtWyRpXVswXV0gKiAyNTUsCgkJCQkJCSAkdnNbJHBlcm1bJGldWzFdXSAqIDI1NSwKCQkJCQkJICR2c1skcGVybVskaV1bMl1dICogMjU1LAoJCQkJCQkgJGEpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBodWUoJGNvbG9yID0gbnVsbCl7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gaHVlIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCSRjID0gJGNvbG9yLT50b0hTTCgpOwoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbihMZXNzX1BhcnNlcjo6cm91bmQoJGNbJ2gnXSkpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzYXR1cmF0aW9uKCRjb2xvciA9IG51bGwpewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHNhdHVyYXRpb24gbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJJGMgPSAkY29sb3ItPnRvSFNMKCk7CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKExlc3NfUGFyc2VyOjpyb3VuZCgkY1sncyddICogMTAwKSwgJyUnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbGlnaHRuZXNzKCRjb2xvciA9IG51bGwpewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGxpZ2h0bmVzcyBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkkYyA9ICRjb2xvci0+dG9IU0woKTsKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9EaW1lbnNpb24oTGVzc19QYXJzZXI6OnJvdW5kKCRjWydsJ10gKiAxMDApLCAnJScpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBoc3ZodWUoICRjb2xvciA9IG51bGwgKXsKCQlpZiAoISRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBoc3ZodWUgbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJJGhzdiA9ICRjb2xvci0+dG9IU1YoKTsKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9EaW1lbnNpb24oIExlc3NfUGFyc2VyOjpyb3VuZCgkaHN2WydoJ10pICk7Cgl9CgoKCXB1YmxpYyBmdW5jdGlvbiBoc3ZzYXR1cmF0aW9uKCAkY29sb3IgPSBudWxsICl7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gaHN2c2F0dXJhdGlvbiBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkkaHN2ID0gJGNvbG9yLT50b0hTVigpOwoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbiggTGVzc19QYXJzZXI6OnJvdW5kKCRoc3ZbJ3MnXSAqIDEwMCksICclJyApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBoc3Z2YWx1ZSggJGNvbG9yID0gbnVsbCApewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGhzdnZhbHVlIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCSRoc3YgPSAkY29sb3ItPnRvSFNWKCk7CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCBMZXNzX1BhcnNlcjo6cm91bmQoJGhzdlsndiddICogMTAwKSwgJyUnICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJlZCgkY29sb3IgPSBudWxsKSB7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gcmVkIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbiggJGNvbG9yLT5yZ2JbMF0gKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ3JlZW4oJGNvbG9yID0gbnVsbCkgewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGdyZWVuIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbiggJGNvbG9yLT5yZ2JbMV0gKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gYmx1ZSgkY29sb3IgPSBudWxsKSB7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gYmx1ZSBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9EaW1lbnNpb24oICRjb2xvci0+cmdiWzJdICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGFscGhhKCRjb2xvciA9IG51bGwpewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGFscGhhIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCSRjID0gJGNvbG9yLT50b0hTTCgpOwoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbigkY1snYSddKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbHVtYSAoJGNvbG9yID0gbnVsbCkgewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGx1bWEgbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKExlc3NfUGFyc2VyOjpyb3VuZCggJGNvbG9yLT5sdW1hKCkgKiAkY29sb3ItPmFscGhhICogMTAwKSwgJyUnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbHVtaW5hbmNlKCAkY29sb3IgPSBudWxsICl7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gbHVtaW5hbmNlIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCSRsdW1pbmFuY2UgPQoJCQkoMC4yMTI2ICogJGNvbG9yLT5yZ2JbMF0gLyAyNTUpCgkJICArICgwLjcxNTIgKiAkY29sb3ItPnJnYlsxXSAvIDI1NSkKCQkgICsgKDAuMDcyMiAqICRjb2xvci0+cmdiWzJdIC8gMjU1KTsKCgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKExlc3NfUGFyc2VyOjpyb3VuZCggJGx1bWluYW5jZSAqICRjb2xvci0+YWxwaGEgKiAxMDApLCAnJScpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzYXR1cmF0ZSgkY29sb3IgPSBudWxsLCAkYW1vdW50ID0gbnVsbCl7CgkJLy8gZmlsdGVyOiBzYXR1cmF0ZSgzLjIpOwoJCS8vIHNob3VsZCBiZSBrZXB0IGFzIGlzLCBzbyBjaGVjayBmb3IgY29sb3IKCQlpZiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHNhdHVyYXRlIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkYW1vdW50IGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2F0dXJhdGUgbXVzdCBiZSBhIHBlcmNlbnRhZ2UnIC4gKCRhbW91bnQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJJGhzbCA9ICRjb2xvci0+dG9IU0woKTsKCgkJJGhzbFsncyddICs9ICRhbW91bnQtPnZhbHVlIC8gMTAwOwoJCSRoc2xbJ3MnXSA9IHNlbGY6OmNsYW1wKCRoc2xbJ3MnXSk7CgoJCXJldHVybiAkdGhpcy0+aHNsYSgkaHNsWydoJ10sICRoc2xbJ3MnXSwgJGhzbFsnbCddLCAkaHNsWydhJ10pOwoJfQoKCS8qKgoJICogQHBhcmFtIExlc3NfVHJlZV9EaW1lbnNpb24gJGFtb3VudAoJICovCglwdWJsaWMgZnVuY3Rpb24gZGVzYXR1cmF0ZSgkY29sb3IgPSBudWxsLCAkYW1vdW50ID0gbnVsbCl7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gZGVzYXR1cmF0ZSBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoJCWlmICghJGFtb3VudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24pIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGRlc2F0dXJhdGUgbXVzdCBiZSBhIHBlcmNlbnRhZ2UnIC4gKCRhbW91bnQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJJGhzbCA9ICRjb2xvci0+dG9IU0woKTsKCgkJJGhzbFsncyddIC09ICRhbW91bnQtPnZhbHVlIC8gMTAwOwoJCSRoc2xbJ3MnXSA9IHNlbGY6OmNsYW1wKCRoc2xbJ3MnXSk7CgoJCXJldHVybiAkdGhpcy0+aHNsYSgkaHNsWydoJ10sICRoc2xbJ3MnXSwgJGhzbFsnbCddLCAkaHNsWydhJ10pOwoJfQoKCgoJcHVibGljIGZ1bmN0aW9uIGxpZ2h0ZW4oJGNvbG9yID0gbnVsbCwgJGFtb3VudD1udWxsKXsKCQlpZiAoISRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBsaWdodGVuIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkYW1vdW50IGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBzZWNvbmQgYXJndW1lbnQgdG8gbGlnaHRlbiBtdXN0IGJlIGEgcGVyY2VudGFnZScgLiAoJGFtb3VudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkkaHNsID0gJGNvbG9yLT50b0hTTCgpOwoKCQkkaHNsWydsJ10gKz0gJGFtb3VudC0+dmFsdWUgLyAxMDA7CgkJJGhzbFsnbCddID0gc2VsZjo6Y2xhbXAoJGhzbFsnbCddKTsKCgkJcmV0dXJuICR0aGlzLT5oc2xhKCRoc2xbJ2gnXSwgJGhzbFsncyddLCAkaHNsWydsJ10sICRoc2xbJ2EnXSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGRhcmtlbigkY29sb3IgPSBudWxsLCAkYW1vdW50ID0gbnVsbCl7CgkJaWYgKCEkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gZGFya2VuIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkYW1vdW50IGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBzZWNvbmQgYXJndW1lbnQgdG8gZGFya2VuIG11c3QgYmUgYSBwZXJjZW50YWdlJyAuICgkYW1vdW50IGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCSRoc2wgPSAkY29sb3ItPnRvSFNMKCk7CgkJJGhzbFsnbCddIC09ICRhbW91bnQtPnZhbHVlIC8gMTAwOwoJCSRoc2xbJ2wnXSA9IHNlbGY6OmNsYW1wKCRoc2xbJ2wnXSk7CgoJCXJldHVybiAkdGhpcy0+aHNsYSgkaHNsWydoJ10sICRoc2xbJ3MnXSwgJGhzbFsnbCddLCAkaHNsWydhJ10pOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBmYWRlaW4oJGNvbG9yID0gbnVsbCwgJGFtb3VudCA9IG51bGwpewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGZhZGVpbiBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoJCWlmICghJGFtb3VudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24pIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGZhZGVpbiBtdXN0IGJlIGEgcGVyY2VudGFnZScgLiAoJGFtb3VudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkkaHNsID0gJGNvbG9yLT50b0hTTCgpOwoJCSRoc2xbJ2EnXSArPSAkYW1vdW50LT52YWx1ZSAvIDEwMDsKCQkkaHNsWydhJ10gPSBzZWxmOjpjbGFtcCgkaHNsWydhJ10pOwoJCXJldHVybiAkdGhpcy0+aHNsYSgkaHNsWydoJ10sICRoc2xbJ3MnXSwgJGhzbFsnbCddLCAkaHNsWydhJ10pOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBmYWRlb3V0KCRjb2xvciA9IG51bGwsICRhbW91bnQgPSBudWxsKXsKCQlpZiAoISRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBmYWRlb3V0IG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkYW1vdW50IGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBzZWNvbmQgYXJndW1lbnQgdG8gZmFkZW91dCBtdXN0IGJlIGEgcGVyY2VudGFnZScgLiAoJGFtb3VudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkkaHNsID0gJGNvbG9yLT50b0hTTCgpOwoJCSRoc2xbJ2EnXSAtPSAkYW1vdW50LT52YWx1ZSAvIDEwMDsKCQkkaHNsWydhJ10gPSBzZWxmOjpjbGFtcCgkaHNsWydhJ10pOwoJCXJldHVybiAkdGhpcy0+aHNsYSgkaHNsWydoJ10sICRoc2xbJ3MnXSwgJGhzbFsnbCddLCAkaHNsWydhJ10pOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBmYWRlKCRjb2xvciA9IG51bGwsICRhbW91bnQgPSBudWxsKXsKCQlpZiAoISRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBmYWRlIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkYW1vdW50IGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBzZWNvbmQgYXJndW1lbnQgdG8gZmFkZSBtdXN0IGJlIGEgcGVyY2VudGFnZScgLiAoJGFtb3VudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkkaHNsID0gJGNvbG9yLT50b0hTTCgpOwoKCQkkaHNsWydhJ10gPSAkYW1vdW50LT52YWx1ZSAvIDEwMDsKCQkkaHNsWydhJ10gPSBzZWxmOjpjbGFtcCgkaHNsWydhJ10pOwoJCXJldHVybiAkdGhpcy0+aHNsYSgkaHNsWydoJ10sICRoc2xbJ3MnXSwgJGhzbFsnbCddLCAkaHNsWydhJ10pOwoJfQoKCgoJcHVibGljIGZ1bmN0aW9uIHNwaW4oJGNvbG9yID0gbnVsbCwgJGFtb3VudCA9IG51bGwpewoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHNwaW4gbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRhbW91bnQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIHNlY29uZCBhcmd1bWVudCB0byBzcGluIG11c3QgYmUgYSBudW1iZXInIC4gKCRhbW91bnQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJJGhzbCA9ICRjb2xvci0+dG9IU0woKTsKCQkkaHVlID0gZm1vZCgkaHNsWydoJ10gKyAkYW1vdW50LT52YWx1ZSwgMzYwKTsKCgkJJGhzbFsnaCddID0gJGh1ZSA8IDAgPyAzNjAgKyAkaHVlIDogJGh1ZTsKCgkJcmV0dXJuICR0aGlzLT5oc2xhKCRoc2xbJ2gnXSwgJGhzbFsncyddLCAkaHNsWydsJ10sICRoc2xbJ2EnXSk7Cgl9CgoJLy8KCS8vIENvcHlyaWdodCAoYykgMjAwNi0yMDA5IEhhbXB0b24gQ2F0bGluLCBOYXRoYW4gV2VpemVuYmF1bSwgYW5kIENocmlzIEVwcHN0ZWluCgkvLyBodHRwOi8vc2Fzcy1sYW5nLmNvbQoJLy8KCgkvKioKCSAqIEBwYXJhbSBMZXNzX1RyZWVfQ29sb3IgJGNvbG9yMQoJICovCglwdWJsaWMgZnVuY3Rpb24gbWl4KCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCwgJHdlaWdodCA9IG51bGwpewoJCWlmICghJGNvbG9yMSBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBtaXggbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkY29sb3IyIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIHNlY29uZCBhcmd1bWVudCB0byBtaXggbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IyIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkd2VpZ2h0KSB7CgkJCSR3ZWlnaHQgPSBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbignNTAnLCAnJScpOwoJCX0KCQlpZiAoISR3ZWlnaHQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIHRoaXJkIGFyZ3VtZW50IHRvIGNvbnRyYXN0IG11c3QgYmUgYSBwZXJjZW50YWdlJyAuICgkd2VpZ2h0IGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCSRwID0gJHdlaWdodC0+dmFsdWUgLyAxMDAuMDsKCQkkdyA9ICRwICogMiAtIDE7CgkJJGhzbDEgPSAkY29sb3IxLT50b0hTTCgpOwoJCSRoc2wyID0gJGNvbG9yMi0+dG9IU0woKTsKCQkkYSA9ICRoc2wxWydhJ10gLSAkaHNsMlsnYSddOwoKCQkkdzEgPSAoKCgoJHcgKiAkYSkgPT0gLTEpID8gJHcgOiAoJHcgKyAkYSkgLyAoMSArICR3ICogJGEpKSArIDEpIC8gMjsKCQkkdzIgPSAxIC0gJHcxOwoKCQkkcmdiID0gYXJyYXkoJGNvbG9yMS0+cmdiWzBdICogJHcxICsgJGNvbG9yMi0+cmdiWzBdICogJHcyLAoJCQkJCSAkY29sb3IxLT5yZ2JbMV0gKiAkdzEgKyAkY29sb3IyLT5yZ2JbMV0gKiAkdzIsCgkJCQkJICRjb2xvcjEtPnJnYlsyXSAqICR3MSArICRjb2xvcjItPnJnYlsyXSAqICR3Mik7CgoJCSRhbHBoYSA9ICRjb2xvcjEtPmFscGhhICogJHAgKyAkY29sb3IyLT5hbHBoYSAqICgxIC0gJHApOwoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9Db2xvcigkcmdiLCAkYWxwaGEpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBncmV5c2NhbGUoJGNvbG9yKXsKCQlyZXR1cm4gJHRoaXMtPmRlc2F0dXJhdGUoJGNvbG9yLCBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbigxMDAsJyUnKSk7Cgl9CgoKCXB1YmxpYyBmdW5jdGlvbiBjb250cmFzdCggJGNvbG9yLCAkZGFyayA9IG51bGwsICRsaWdodCA9IG51bGwsICR0aHJlc2hvbGQgPSBudWxsKXsKCQkvLyBmaWx0ZXI6IGNvbnRyYXN0KDMuMik7CgkJLy8gc2hvdWxkIGJlIGtlcHQgYXMgaXMsIHNvIGNoZWNrIGZvciBjb2xvcgoJCWlmICghJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXJldHVybiBudWxsOwoJCX0KCQlpZiggISRsaWdodCApewoJCQkkbGlnaHQgPSAkdGhpcy0+cmdiYSgyNTUsIDI1NSwgMjU1LCAxLjApOwoJCX0KCQlpZiggISRkYXJrICl7CgkJCSRkYXJrID0gJHRoaXMtPnJnYmEoMCwgMCwgMCwgMS4wKTsKCQl9CgoJCWlmICghJGRhcmsgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGNvbnRyYXN0IG11c3QgYmUgYSBjb2xvcicgLiAoJGRhcmsgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRsaWdodCBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSB0aGlyZCBhcmd1bWVudCB0byBjb250cmFzdCBtdXN0IGJlIGEgY29sb3InIC4gKCRsaWdodCBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQkvL0ZpZ3VyZSBvdXQgd2hpY2ggaXMgYWN0dWFsbHkgbGlnaHQgYW5kIGRhcmshCgkJaWYoICRkYXJrLT5sdW1hKCkgPiAkbGlnaHQtPmx1bWEoKSApewoJCQkkdCA9ICRsaWdodDsKCQkJJGxpZ2h0ID0gJGRhcms7CgkJCSRkYXJrID0gJHQ7CgkJfQoJCWlmKCAhJHRocmVzaG9sZCApewoJCQkkdGhyZXNob2xkID0gMC40MzsKCQl9IGVsc2UgewoJCQkkdGhyZXNob2xkID0gTGVzc19GdW5jdGlvbnM6Om51bWJlcigkdGhyZXNob2xkKTsKCQl9CgoJCWlmKCAkY29sb3ItPmx1bWEoKSA8ICR0aHJlc2hvbGQgKXsKCQkJcmV0dXJuICRsaWdodDsKCQl9IGVsc2UgewoJCQlyZXR1cm4gJGRhcms7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBlICgkc3RyKXsKCQlpZiggaXNfc3RyaW5nKCRzdHIpICl7CgkJCXJldHVybiBuZXcgTGVzc19UcmVlX0Fub255bW91cygkc3RyKTsKCQl9CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfQW5vbnltb3VzKCRzdHIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfSmF2YVNjcmlwdCA/ICRzdHItPmV4cHJlc3Npb24gOiAkc3RyLT52YWx1ZSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGVzY2FwZSAoJHN0cil7CgoJCSRyZXZlcnQgPSBhcnJheSgnJTIxJz0+JyEnLCAnJTJBJz0+JyonLCAnJTI3Jz0+IiciLCclM0YnPT4nPycsJyUyNic9PicmJywnJTJDJz0+JywnLCclMkYnPT4nLycsJyU0MCc9PidAJywnJTJCJz0+JysnLCclMjQnPT4nJCcpOwoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9Bbm9ueW1vdXMoc3RydHIocmF3dXJsZW5jb2RlKCRzdHItPnZhbHVlKSwgJHJldmVydCkpOwoJfQoKCgkvKioKCSAqIHRvZG86IFRoaXMgZnVuY3Rpb24gd2lsbCBuZWVkIHNvbWUgYWRkaXRpb25hbCB3b3JrIHRvIG1ha2UgaXQgd29yayB0aGUgc2FtZSBhcyBsZXNzLmpzCgkgKgoJICovCglwdWJsaWMgZnVuY3Rpb24gcmVwbGFjZSggJHN0cmluZywgJHBhdHRlcm4sICRyZXBsYWNlbWVudCwgJGZsYWdzID0gbnVsbCApewoJCSRyZXN1bHQgPSAkc3RyaW5nLT52YWx1ZTsKCgkJJGV4cHIgPSAnLycuc3RyX3JlcGxhY2UoJy8nLCdcXC8nLCRwYXR0ZXJuLT52YWx1ZSkuJy8nOwoJCWlmKCAkZmxhZ3MgJiYgJGZsYWdzLT52YWx1ZSl7CgkJCSRleHByIC49IHNlbGY6OnJlcGxhY2VfZmxhZ3MoJGZsYWdzLT52YWx1ZSk7CgkJfQoKCQkkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCRleHByLCRyZXBsYWNlbWVudC0+dmFsdWUsJHJlc3VsdCk7CgoKCQlpZiggcHJvcGVydHlfZXhpc3RzKCRzdHJpbmcsJ3F1b3RlJykgKXsKCQkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfUXVvdGVkKCAkc3RyaW5nLT5xdW90ZSwgJHJlc3VsdCwgJHN0cmluZy0+ZXNjYXBlZCk7CgkJfQoJCXJldHVybiBuZXcgTGVzc19UcmVlX1F1b3RlZCggJycsICRyZXN1bHQgKTsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlcGxhY2VfZmxhZ3MoJGZsYWdzKXsKCQkkZmxhZ3MgPSBzdHJfc3BsaXQoJGZsYWdzLDEpOwoJCSRuZXdfZmxhZ3MgPSAnJzsKCgkJZm9yZWFjaCgkZmxhZ3MgYXMgJGZsYWcpewoJCQlzd2l0Y2goJGZsYWcpewoJCQkJY2FzZSAnZSc6CgkJCQljYXNlICdnJzoKCQkJCWJyZWFrOwoKCQkJCWRlZmF1bHQ6CgkJCQkkbmV3X2ZsYWdzIC49ICRmbGFnOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgoJCXJldHVybiAkbmV3X2ZsYWdzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBfcGVyY2VudCgpewoJCSRzdHJpbmcgPSBmdW5jX2dldF9hcmcoMCk7CgoJCSRhcmdzID0gZnVuY19nZXRfYXJncygpOwoJCWFycmF5X3NoaWZ0KCRhcmdzKTsKCQkkcmVzdWx0ID0gJHN0cmluZy0+dmFsdWU7CgoJCWZvcmVhY2goJGFyZ3MgYXMgJGFyZyl7CgkJCWlmKCBwcmVnX21hdGNoKCcvJVtzZGFdL2knLCRyZXN1bHQsICR0b2tlbikgKXsKCQkJCSR0b2tlbiA9ICR0b2tlblswXTsKCQkJCSR2YWx1ZSA9IHN0cmlzdHIoJHRva2VuLCAncycpID8gJGFyZy0+dmFsdWUgOiAkYXJnLT50b0NTUygpOwoJCQkJJHZhbHVlID0gcHJlZ19tYXRjaCgnL1tBLVpdJC8nLCAkdG9rZW4pID8gdXJsZW5jb2RlKCR2YWx1ZSkgOiAkdmFsdWU7CgkJCQkkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCcvJVtzZGFdL2knLCR2YWx1ZSwgJHJlc3VsdCwgMSk7CgkJCX0KCQl9CgkJJHJlc3VsdCA9IHN0cl9yZXBsYWNlKCclJScsICclJywgJHJlc3VsdCk7CgoJCXJldHVybiBuZXcgTGVzc19UcmVlX1F1b3RlZCggJHN0cmluZy0+cXVvdGUgLCAkcmVzdWx0LCAkc3RyaW5nLT5lc2NhcGVkKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdW5pdCggJHZhbCwgJHVuaXQgPSBudWxsKSB7CgkJaWYoICEoJHZhbCBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24pICl7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHVuaXQgbXVzdCBiZSBhIG51bWJlcicgLiAoJHZhbCBpbnN0YW5jZW9mIExlc3NfVHJlZV9PcGVyYXRpb24gPyAnLiBIYXZlIHlvdSBmb3Jnb3R0ZW4gcGFyZW50aGVzaXM/JyA6ICcuJykgKTsKCQl9CgoJCWlmKCAkdW5pdCApewoJCQlpZiggJHVuaXQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfS2V5d29yZCApewoJCQkJJHVuaXQgPSAkdW5pdC0+dmFsdWU7CgkJCX0gZWxzZSB7CgkJCQkkdW5pdCA9ICR1bml0LT50b0NTUygpOwoJCQl9CgkJfSBlbHNlIHsKCQkJJHVuaXQgPSAiIjsKCQl9CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCR2YWwtPnZhbHVlLCAkdW5pdCApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb252ZXJ0KCR2YWwsICR1bml0KXsKCQlyZXR1cm4gJHZhbC0+Y29udmVydFRvKCR1bml0LT52YWx1ZSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJvdW5kKCRuLCAkZiA9IGZhbHNlKSB7CgoJCSRmcmFjdGlvbiA9IDA7CgkJaWYoICRmICE9PSBmYWxzZSApewoJCQkkZnJhY3Rpb24gPSAkZi0+dmFsdWU7CgkJfQoKCQlyZXR1cm4gJHRoaXMtPl9tYXRoKCdMZXNzX1BhcnNlcjo6cm91bmQnLG51bGwsICRuLCAkZnJhY3Rpb24pOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBwaSgpewoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbihNX1BJKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbW9kKCRhLCAkYikgewoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbiggJGEtPnZhbHVlICUgJGItPnZhbHVlLCAkYS0+dW5pdCk7Cgl9CgoKCglwdWJsaWMgZnVuY3Rpb24gcG93KCR4LCAkeSkgewoJCWlmKCBpc19udW1lcmljKCR4KSAmJiBpc19udW1lcmljKCR5KSApewoJCQkkeCA9IG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCR4KTsKCQkJJHkgPSBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbigkeSk7CgkJfWVsc2VpZiggISgkeCBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24pIHx8ICEoJHkgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uKSApewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ0FyZ3VtZW50cyBtdXN0IGJlIG51bWJlcnMnKTsKCQl9CgoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbiggcG93KCR4LT52YWx1ZSwgJHktPnZhbHVlKSwgJHgtPnVuaXQgKTsKCX0KCgkvLyB2YXIgbWF0aEZ1bmN0aW9ucyA9IFt7bmFtZToiY2UgLi4uCglwdWJsaWMgZnVuY3Rpb24gY2VpbCggJG4gKXsJCXJldHVybiAkdGhpcy0+X21hdGgoJ2NlaWwnLCBudWxsLCAkbik7IH0KCXB1YmxpYyBmdW5jdGlvbiBmbG9vciggJG4gKXsJcmV0dXJuICR0aGlzLT5fbWF0aCgnZmxvb3InLCBudWxsLCAkbik7IH0KCXB1YmxpYyBmdW5jdGlvbiBzcXJ0KCAkbiApewkJcmV0dXJuICR0aGlzLT5fbWF0aCgnc3FydCcsIG51bGwsICRuKTsgfQoJcHVibGljIGZ1bmN0aW9uIGFicyggJG4gKXsJCXJldHVybiAkdGhpcy0+X21hdGgoJ2FicycsIG51bGwsICRuKTsgfQoKCXB1YmxpYyBmdW5jdGlvbiB0YW4oICRuICl7CQlyZXR1cm4gJHRoaXMtPl9tYXRoKCd0YW4nLCAnJywgJG4pOwl9CglwdWJsaWMgZnVuY3Rpb24gc2luKCAkbiApewkJcmV0dXJuICR0aGlzLT5fbWF0aCgnc2luJywgJycsICRuKTsJfQoJcHVibGljIGZ1bmN0aW9uIGNvcyggJG4gKXsJCXJldHVybiAkdGhpcy0+X21hdGgoJ2NvcycsICcnLCAkbik7CX0KCglwdWJsaWMgZnVuY3Rpb24gYXRhbiggJG4gKXsJCXJldHVybiAkdGhpcy0+X21hdGgoJ2F0YW4nLCAncmFkJywgJG4pOwl9CglwdWJsaWMgZnVuY3Rpb24gYXNpbiggJG4gKXsJCXJldHVybiAkdGhpcy0+X21hdGgoJ2FzaW4nLCAncmFkJywgJG4pOwl9CglwdWJsaWMgZnVuY3Rpb24gYWNvcyggJG4gKXsJCXJldHVybiAkdGhpcy0+X21hdGgoJ2Fjb3MnLCAncmFkJywgJG4pOwl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBfbWF0aCgpIHsKCQkkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKCQkkZm4gPSBhcnJheV9zaGlmdCgkYXJncyk7CgkJJHVuaXQgPSBhcnJheV9zaGlmdCgkYXJncyk7CgoJCWlmICgkYXJnc1swXSBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24pIHsKCgkJCWlmKCAkdW5pdCA9PT0gbnVsbCApewoJCQkJJHVuaXQgPSAkYXJnc1swXS0+dW5pdDsKCQkJfWVsc2V7CgkJCQkkYXJnc1swXSA9ICRhcmdzWzBdLT51bmlmeSgpOwoJCQl9CgkJCSRhcmdzWzBdID0gKGZsb2F0KSRhcmdzWzBdLT52YWx1ZTsKCQkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCBjYWxsX3VzZXJfZnVuY19hcnJheSgkZm4sICRhcmdzKSwgJHVuaXQpOwoJCX0gZWxzZSBpZiAoaXNfbnVtZXJpYygkYXJnc1swXSkpIHsKCQkJcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KCRmbiwkYXJncyk7CgkJfSBlbHNlIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJtYXRoIGZ1bmN0aW9ucyB0YWtlIG51bWJlcnMgYXMgcGFyYW1ldGVycyIpOwoJCX0KCX0KCgkvKioKCSAqIEBwYXJhbSBib29sZWFuICRpc01pbgoJICovCglwcml2YXRlIGZ1bmN0aW9uIF9taW5tYXgoICRpc01pbiwgJGFyZ3MgKXsKCgkJJGFyZ19jb3VudCA9IGNvdW50KCRhcmdzKTsKCgkJaWYoICRhcmdfY291bnQgPCAxICl7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlciggJ29uZSBvciBtb3JlIGFyZ3VtZW50cyByZXF1aXJlZCcpOwoJCX0KCgkJJGogPSBudWxsOwoJCSR1bml0Q2xvbmUgPSBudWxsOwoJCSR1bml0U3RhdGljID0gbnVsbDsKCgoJCSRvcmRlciA9IGFycmF5KCk7CS8vIGVsZW1zIG9ubHkgY29udGFpbnMgb3JpZ2luYWwgYXJndW1lbnQgdmFsdWVzLgoJCSR2YWx1ZXMgPSBhcnJheSgpOwkvLyBrZXkgaXMgdGhlIHVuaXQudG9TdHJpbmcoKSBmb3IgdW5pZmllZCB0cmVlLkRpbWVuc2lvbiB2YWx1ZXMsCgkJCQkJCQkvLyB2YWx1ZSBpcyB0aGUgaW5kZXggaW50byB0aGUgb3JkZXIgYXJyYXkuCgoKCQlmb3IoICRpID0gMDsgJGkgPCAkYXJnX2NvdW50OyAkaSsrICl7CgkJCSRjdXJyZW50ID0gJGFyZ3NbJGldOwoJCQlpZiggISgkY3VycmVudCBpbnN0YW5jZW9mIExlc3NfVHJlZV9EaW1lbnNpb24pICl7CgkJCQlpZiggaXNfYXJyYXkoJGFyZ3NbJGldLT52YWx1ZSkgKXsKCQkJCQkkYXJnc1tdID0gJGFyZ3NbJGldLT52YWx1ZTsKCQkJCX0KCQkJCWNvbnRpbnVlOwoJCQl9CgoJCQlpZiggJGN1cnJlbnQtPnVuaXQtPnRvU3RyaW5nKCkgPT09ICcnICYmICEkdW5pdENsb25lICl7CgkJCQkkdGVtcCA9IG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCRjdXJyZW50LT52YWx1ZSwgJHVuaXRDbG9uZSk7CgkJCQkkY3VycmVudFVuaWZpZWQgPSAkdGVtcC0+dW5pZnkoKTsKCQkJfWVsc2V7CgkJCQkkY3VycmVudFVuaWZpZWQgPSAkY3VycmVudC0+dW5pZnkoKTsKCQkJfQoKCQkJaWYoICRjdXJyZW50VW5pZmllZC0+dW5pdC0+dG9TdHJpbmcoKSA9PT0gIiIgJiYgISR1bml0U3RhdGljICl7CgkJCQkkdW5pdCA9ICR1bml0U3RhdGljOwoJCQl9ZWxzZXsKCQkJCSR1bml0ID0gJGN1cnJlbnRVbmlmaWVkLT51bml0LT50b1N0cmluZygpOwoJCQl9CgoJCQlpZiggJHVuaXQgIT09ICcnICYmICEkdW5pdFN0YXRpYyB8fCAkdW5pdCAhPT0gJycgJiYgJG9yZGVyWzBdLT51bmlmeSgpLT51bml0LT50b1N0cmluZygpID09PSAiIiApewoJCQkJJHVuaXRTdGF0aWMgPSAkdW5pdDsKCQkJfQoKCQkJaWYoICR1bml0ICE9ICcnICYmICEkdW5pdENsb25lICl7CgkJCQkkdW5pdENsb25lID0gJGN1cnJlbnQtPnVuaXQtPnRvU3RyaW5nKCk7CgkJCX0KCgkJCWlmKCBpc3NldCgkdmFsdWVzWycnXSkgJiYgJHVuaXQgIT09ICcnICYmICR1bml0ID09PSAkdW5pdFN0YXRpYyApewoJCQkJJGogPSAkdmFsdWVzWycnXTsKCQkJfWVsc2VpZiggaXNzZXQoJHZhbHVlc1skdW5pdF0pICl7CgkJCQkkaiA9ICR2YWx1ZXNbJHVuaXRdOwoJCQl9ZWxzZXsKCgkJCQlpZiggJHVuaXRTdGF0aWMgJiYgJHVuaXQgIT09ICR1bml0U3RhdGljICl7CgkJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCAnaW5jb21wYXRpYmxlIHR5cGVzJyk7CgkJCQl9CgkJCQkkdmFsdWVzWyR1bml0XSA9IGNvdW50KCRvcmRlcik7CgkJCQkkb3JkZXJbXSA9ICRjdXJyZW50OwoJCQkJY29udGludWU7CgkJCX0KCgoJCQlpZiggJG9yZGVyWyRqXS0+dW5pdC0+dG9TdHJpbmcoKSA9PT0gIiIgJiYgJHVuaXRDbG9uZSApewoJCQkJJHRlbXAgPSBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbiggJG9yZGVyWyRqXS0+dmFsdWUsICR1bml0Q2xvbmUpOwoJCQkJJHJlZmVyZW5jZVVuaWZpZWQgPSAkdGVtcC0+dW5pZnkoKTsKCQkJfWVsc2V7CgkJCQkkcmVmZXJlbmNlVW5pZmllZCA9ICRvcmRlclskal0tPnVuaWZ5KCk7CgkJCX0KCQkJaWYoICgkaXNNaW4gJiYgJGN1cnJlbnRVbmlmaWVkLT52YWx1ZSA8ICRyZWZlcmVuY2VVbmlmaWVkLT52YWx1ZSkgfHwgKCEkaXNNaW4gJiYgJGN1cnJlbnRVbmlmaWVkLT52YWx1ZSA+ICRyZWZlcmVuY2VVbmlmaWVkLT52YWx1ZSkgKXsKCQkJCSRvcmRlclskal0gPSAkY3VycmVudDsKCQkJfQoJCX0KCgkJaWYoIGNvdW50KCRvcmRlcikgPT0gMSApewoJCQlyZXR1cm4gJG9yZGVyWzBdOwoJCX0KCQkkYXJncyA9IGFycmF5KCk7CgkJZm9yZWFjaCgkb3JkZXIgYXMgJGEpewoJCQkkYXJnc1tdID0gJGEtPnRvQ1NTKCR0aGlzLT5lbnYpOwoJCX0KCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9Bbm9ueW1vdXMoICgkaXNNaW4/J21pbignOidtYXgoJykgLiBpbXBsb2RlKExlc3NfRW52aXJvbm1lbnQ6OiRfb3V0cHV0TWFwWycsJ10sJGFyZ3MpLicpJyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG1pbigpewoJCSRhcmdzID0gZnVuY19nZXRfYXJncygpOwoJCXJldHVybiAkdGhpcy0+X21pbm1heCggdHJ1ZSwgJGFyZ3MgKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbWF4KCl7CgkJJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CgkJcmV0dXJuICR0aGlzLT5fbWlubWF4KCBmYWxzZSwgJGFyZ3MgKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0dW5pdCgkbil7CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfQW5vbnltb3VzKCRuLT51bml0KTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gYXJnYigkY29sb3IpIHsKCQlpZiAoISRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBhcmdiIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCXJldHVybiBuZXcgTGVzc19UcmVlX0Fub255bW91cygkY29sb3ItPnRvQVJHQigpKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gcGVyY2VudGFnZSgkbikgewoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbigkbi0+dmFsdWUgKiAxMDAsICclJyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbG9yKCRuKSB7CgoJCWlmKCAkbiBpbnN0YW5jZW9mIExlc3NfVHJlZV9RdW90ZWQgKXsKCQkJJGNvbG9yQ2FuZGlkYXRlID0gJG4tPnZhbHVlOwoJCQkkcmV0dXJuQ29sb3IgPSBMZXNzX1RyZWVfQ29sb3I6OmZyb21LZXl3b3JkKCRjb2xvckNhbmRpZGF0ZSk7CgkJCWlmKCAkcmV0dXJuQ29sb3IgKXsKCQkJCXJldHVybiAkcmV0dXJuQ29sb3I7CgkJCX0KCQkJaWYoIHByZWdfbWF0Y2goJy9eIyhbQS1GYS1mMC05XXs2fXxbQS1GYS1mMC05XXszfSkvJywkY29sb3JDYW5kaWRhdGUpICl7CgkJCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9Db2xvcihzdWJzdHIoJGNvbG9yQ2FuZGlkYXRlLCAxKSk7CgkJCX0KCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJhcmd1bWVudCBtdXN0IGJlIGEgY29sb3Iga2V5d29yZCBvciAzLzYgZGlnaXQgaGV4IGUuZy4gI0ZGRiIpOwoJCX0gZWxzZSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcigiYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOwoJCX0KCX0KCgoJcHVibGljIGZ1bmN0aW9uIGlzY29sb3IoJG4pIHsKCQlyZXR1cm4gJHRoaXMtPl9pc2EoJG4sICdMZXNzX1RyZWVfQ29sb3InKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNudW1iZXIoJG4pIHsKCQlyZXR1cm4gJHRoaXMtPl9pc2EoJG4sICdMZXNzX1RyZWVfRGltZW5zaW9uJyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzc3RyaW5nKCRuKSB7CgkJcmV0dXJuICR0aGlzLT5faXNhKCRuLCAnTGVzc19UcmVlX1F1b3RlZCcpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc2tleXdvcmQoJG4pIHsKCQlyZXR1cm4gJHRoaXMtPl9pc2EoJG4sICdMZXNzX1RyZWVfS2V5d29yZCcpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc3VybCgkbikgewoJCXJldHVybiAkdGhpcy0+X2lzYSgkbiwgJ0xlc3NfVHJlZV9VcmwnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNwaXhlbCgkbikgewoJCXJldHVybiAkdGhpcy0+aXN1bml0KCRuLCAncHgnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNwZXJjZW50YWdlKCRuKSB7CgkJcmV0dXJuICR0aGlzLT5pc3VuaXQoJG4sICclJyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzZW0oJG4pIHsKCQlyZXR1cm4gJHRoaXMtPmlzdW5pdCgkbiwgJ2VtJyk7Cgl9CgoJLyoqCgkgKiBAcGFyYW0gc3RyaW5nICR1bml0CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpc3VuaXQoICRuLCAkdW5pdCApewoJCXJldHVybiAoJG4gaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uKSAmJiAkbi0+dW5pdC0+aXMoICggcHJvcGVydHlfZXhpc3RzKCR1bml0LCd2YWx1ZScpID8gJHVuaXQtPnZhbHVlIDogJHVuaXQpICkgPyBuZXcgTGVzc19UcmVlX0tleXdvcmQoJ3RydWUnKSA6IG5ldyBMZXNzX1RyZWVfS2V5d29yZCgnZmFsc2UnKTsKCX0KCgkvKioKCSAqIEBwYXJhbSBzdHJpbmcgJHR5cGUKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBfaXNhKCRuLCAkdHlwZSkgewoJCXJldHVybiBpc19hKCRuLCAkdHlwZSkgPyBuZXcgTGVzc19UcmVlX0tleXdvcmQoJ3RydWUnKSA6IG5ldyBMZXNzX1RyZWVfS2V5d29yZCgnZmFsc2UnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdGludCgkY29sb3IsICRhbW91bnQpIHsKCQlyZXR1cm4gJHRoaXMtPm1peCggJHRoaXMtPnJnYigyNTUsMjU1LDI1NSksICRjb2xvciwgJGFtb3VudCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJGFtb3VudCkgewoJCXJldHVybiAkdGhpcy0+bWl4KCR0aGlzLT5yZ2IoMCwgMCwgMCksICRjb2xvciwgJGFtb3VudCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGV4dHJhY3QoJHZhbHVlcywgJGluZGV4ICl7CgkJJGluZGV4ID0gKGludCkkaW5kZXgtPnZhbHVlIC0gMTsgLy8gKDEtYmFzZWQgaW5kZXgpCgkJLy8gaGFuZGxlIG5vbi1hcnJheSB2YWx1ZXMgYXMgYW4gYXJyYXkgb2YgbGVuZ3RoIDEKCQkvLyByZXR1cm4gJ3VuZGVmaW5lZCcgaWYgaW5kZXggaXMgaW52YWxpZAoJCWlmKCBwcm9wZXJ0eV9leGlzdHMoJHZhbHVlcywndmFsdWUnKSAmJiBpc19hcnJheSgkdmFsdWVzLT52YWx1ZSkgKXsKCQkJaWYoIGlzc2V0KCR2YWx1ZXMtPnZhbHVlWyRpbmRleF0pICl7CgkJCQlyZXR1cm4gJHZhbHVlcy0+dmFsdWVbJGluZGV4XTsKCQkJfQoJCQlyZXR1cm4gbnVsbDsKCgkJfWVsc2VpZiggKGludCkkaW5kZXggPT09IDAgKXsKCQkJcmV0dXJuICR2YWx1ZXM7CgkJfQoKCQlyZXR1cm4gbnVsbDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbGVuZ3RoKCR2YWx1ZXMpewoJCSRuID0gKHByb3BlcnR5X2V4aXN0cygkdmFsdWVzLCd2YWx1ZScpICYmIGlzX2FycmF5KCR2YWx1ZXMtPnZhbHVlKSkgPyBjb3VudCgkdmFsdWVzLT52YWx1ZSkgOiAxOwoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RpbWVuc2lvbigkbik7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGRhdGF1cmkoJG1pbWV0eXBlTm9kZSwgJGZpbGVQYXRoTm9kZSA9IG51bGwgKSB7CgoJCSRmaWxlUGF0aCA9ICggJGZpbGVQYXRoTm9kZSA/ICRmaWxlUGF0aE5vZGUtPnZhbHVlIDogbnVsbCApOwoJCSRtaW1ldHlwZSA9ICRtaW1ldHlwZU5vZGUtPnZhbHVlOwoKCQkkYXJncyA9IDI7CgkJaWYoICEkZmlsZVBhdGggKXsKCQkJJGZpbGVQYXRoID0gJG1pbWV0eXBlOwoJCQkkYXJncyA9IDE7CgkJfQoKCQkkZmlsZVBhdGggPSBzdHJfcmVwbGFjZSgnXFwnLCcvJywkZmlsZVBhdGgpOwoJCWlmKCBMZXNzX0Vudmlyb25tZW50Ojppc1BhdGhSZWxhdGl2ZSgkZmlsZVBhdGgpICl7CgoJCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydyZWxhdGl2ZVVybHMnXSApewoJCQkJJHRlbXAgPSAkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydjdXJyZW50RGlyZWN0b3J5J107CgkJCX0gZWxzZSB7CgkJCQkkdGVtcCA9ICR0aGlzLT5jdXJyZW50RmlsZUluZm9bJ2VudHJ5UGF0aCddOwoJCQl9CgoJCQlpZiggIWVtcHR5KCR0ZW1wKSApewoJCQkJJGZpbGVQYXRoID0gTGVzc19FbnZpcm9ubWVudDo6bm9ybWFsaXplUGF0aChydHJpbSgkdGVtcCwnLycpLicvJy4kZmlsZVBhdGgpOwoJCQl9CgoJCX0KCgoJCS8vIGRldGVjdCB0aGUgbWltZXR5cGUgaWYgbm90IGdpdmVuCgkJaWYoICRhcmdzIDwgMiApewoKCQkJLyogaW5jb21wbGV0ZQoJCQkkbWltZSA9IHJlcXVpcmUoJ21pbWUnKTsKCQkJbWltZXR5cGUgPSBtaW1lLmxvb2t1cChwYXRoKTsKCgkJCS8vIHVzZSBiYXNlIDY0IHVubGVzcyBpdCdzIGFuIEFTQ0lJIG9yIFVURi04IGZvcm1hdAoJCQl2YXIgY2hhcnNldCA9IG1pbWUuY2hhcnNldHMubG9va3VwKG1pbWV0eXBlKTsKCQkJdXNlQmFzZTY0ID0gWydVUy1BU0NJSScsICdVVEYtOCddLmluZGV4T2YoY2hhcnNldCkgPCAwOwoJCQlpZiAodXNlQmFzZTY0KSBtaW1ldHlwZSArPSAnO2Jhc2U2NCc7CgkJCSovCgoJCQkkbWltZXR5cGUgPSBMZXNzX01pbWU6Omxvb2t1cCgkZmlsZVBhdGgpOwoKCQkJJGNoYXJzZXQgPSBMZXNzX01pbWU6OmNoYXJzZXRzX2xvb2t1cCgkbWltZXR5cGUpOwoJCQkkdXNlQmFzZTY0ID0gIWluX2FycmF5KCRjaGFyc2V0LGFycmF5KCdVUy1BU0NJSScsICdVVEYtOCcpKTsKCQkJaWYoICR1c2VCYXNlNjQgKXsgJG1pbWV0eXBlIC49ICc7YmFzZTY0JzsgfQoKCQl9ZWxzZXsKCQkJJHVzZUJhc2U2NCA9IHByZWdfbWF0Y2goJy87YmFzZTY0JC8nLCRtaW1ldHlwZSk7CgkJfQoKCgkJaWYoIGZpbGVfZXhpc3RzKCRmaWxlUGF0aCkgKXsKCQkJJGJ1ZiA9IEBmaWxlX2dldF9jb250ZW50cygkZmlsZVBhdGgpOwoJCX1lbHNlewoJCQkkYnVmID0gZmFsc2U7CgkJfQoKCgkJLy8gSUU4IGNhbm5vdCBoYW5kbGUgYSBkYXRhLXVyaSBsYXJnZXIgdGhhbiAzMktCLiBJZiB0aGlzIGlzIGV4Y2VlZGVkCgkJLy8gYW5kIHRoZSAtLWllQ29tcGF0IGZsYWcgaXMgZW5hYmxlZCwgcmV0dXJuIGEgbm9ybWFsIHVybCgpIGluc3RlYWQuCgkJJERBVEFfVVJJX01BWF9LQiA9IDMyOwoJCSRmaWxlU2l6ZUluS0IgPSByb3VuZCggc3RybGVuKCRidWYpIC8gMTAyNCApOwoJCWlmKCAkZmlsZVNpemVJbktCID49ICREQVRBX1VSSV9NQVhfS0IgKXsKCQkJJHVybCA9IG5ldyBMZXNzX1RyZWVfVXJsKCAoJGZpbGVQYXRoTm9kZSA/ICRmaWxlUGF0aE5vZGUgOiAkbWltZXR5cGVOb2RlKSwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyk7CgkJCXJldHVybiAkdXJsLT5jb21waWxlKCR0aGlzKTsKCQl9CgoJCWlmKCAkYnVmICl7CgkJCSRidWYgPSAkdXNlQmFzZTY0ID8gYmFzZTY0X2VuY29kZSgkYnVmKSA6IHJhd3VybGVuY29kZSgkYnVmKTsKCQkJJGZpbGVQYXRoID0gJyJkYXRhOicgLiAkbWltZXR5cGUgLiAnLCcgLiAkYnVmIC4gJyInOwoJCX0KCgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfVXJsKCBuZXcgTGVzc19UcmVlX0Fub255bW91cygkZmlsZVBhdGgpICk7Cgl9CgoJLy9zdmctZ3JhZGllbnQKCXB1YmxpYyBmdW5jdGlvbiBzdmdncmFkaWVudCggJGRpcmVjdGlvbiApewoKCQkkdGhyb3dfbWVzc2FnZSA9ICdzdmctZ3JhZGllbnQgZXhwZWN0cyBkaXJlY3Rpb24sIHN0YXJ0X2NvbG9yIFtzdGFydF9wb3NpdGlvbl0sIFtjb2xvciBwb3NpdGlvbixdLi4uLCBlbmRfY29sb3IgW2VuZF9wb3NpdGlvbl0nOwoJCSRhcmd1bWVudHMgPSBmdW5jX2dldF9hcmdzKCk7CgoJCWlmKCBjb3VudCgkYXJndW1lbnRzKSA8IDMgKXsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCAkdGhyb3dfbWVzc2FnZSApOwoJCX0KCgkJJHN0b3BzID0gYXJyYXlfc2xpY2UoJGFyZ3VtZW50cywxKTsKCQkkZ3JhZGllbnRUeXBlID0gJ2xpbmVhcic7CgkJJHJlY3RhbmdsZURpbWVuc2lvbiA9ICd4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIic7CgkJJHVzZUJhc2U2NCA9IHRydWU7CgkJJGRpcmVjdGlvblZhbHVlID0gJGRpcmVjdGlvbi0+dG9DU1MoKTsKCgoJCXN3aXRjaCggJGRpcmVjdGlvblZhbHVlICl7CgkJCWNhc2UgInRvIGJvdHRvbSI6CgkJCQkkZ3JhZGllbnREaXJlY3Rpb25TdmcgPSAneDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiJzsKCQkJCWJyZWFrOwoJCQljYXNlICJ0byByaWdodCI6CgkJCQkkZ3JhZGllbnREaXJlY3Rpb25TdmcgPSAneDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiJzsKCQkJCWJyZWFrOwoJCQljYXNlICJ0byBib3R0b20gcmlnaHQiOgoJCQkJJGdyYWRpZW50RGlyZWN0aW9uU3ZnID0gJ3gxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiJzsKCQkJCWJyZWFrOwoJCQljYXNlICJ0byB0b3AgcmlnaHQiOgoJCQkJJGdyYWRpZW50RGlyZWN0aW9uU3ZnID0gJ3gxPSIwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiJzsKCQkJCWJyZWFrOwoJCQljYXNlICJlbGxpcHNlIjoKCQkJY2FzZSAiZWxsaXBzZSBhdCBjZW50ZXIiOgoJCQkJJGdyYWRpZW50VHlwZSA9ICJyYWRpYWwiOwoJCQkJJGdyYWRpZW50RGlyZWN0aW9uU3ZnID0gJ2N4PSI1MCUiIGN5PSI1MCUiIHI9Ijc1JSInOwoJCQkJJHJlY3RhbmdsZURpbWVuc2lvbiA9ICd4PSItNTAiIHk9Ii01MCIgd2lkdGg9IjEwMSIgaGVpZ2h0PSIxMDEiJzsKCQkJCWJyZWFrOwoJCQlkZWZhdWx0OgoJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCAic3ZnLWdyYWRpZW50IGRpcmVjdGlvbiBtdXN0IGJlICd0byBib3R0b20nLCAndG8gcmlnaHQnLCAndG8gYm90dG9tIHJpZ2h0JywgJ3RvIHRvcCByaWdodCcgb3IgJ2VsbGlwc2UgYXQgY2VudGVyJyIgKTsKCQl9CgoJCSRyZXR1cm5lciA9ICc8P3htbCB2ZXJzaW9uPSIxLjAiID8+JyAuCgkJCSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4nIC4KCQkJJzwnIC4gJGdyYWRpZW50VHlwZSAuICdHcmFkaWVudCBpZD0iZ3JhZGllbnQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAnIC4gJGdyYWRpZW50RGlyZWN0aW9uU3ZnIC4gJz4nOwoKCQlmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkc3RvcHMpOyAkaSsrICl7CgkJCWlmKCBpc19vYmplY3QoJHN0b3BzWyRpXSkgJiYgcHJvcGVydHlfZXhpc3RzKCRzdG9wc1skaV0sJ3ZhbHVlJykgKXsKCQkJCSRjb2xvciA9ICRzdG9wc1skaV0tPnZhbHVlWzBdOwoJCQkJJHBvc2l0aW9uID0gJHN0b3BzWyRpXS0+dmFsdWVbMV07CgkJCX1lbHNlewoJCQkJJGNvbG9yID0gJHN0b3BzWyRpXTsKCQkJCSRwb3NpdGlvbiA9IG51bGw7CgkJCX0KCgkJCWlmKCAhKCRjb2xvciBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgfHwgKCEoKCRpID09PSAwIHx8ICRpKzEgPT09IGNvdW50KCRzdG9wcykpICYmICRwb3NpdGlvbiA9PT0gbnVsbCkgJiYgISgkcG9zaXRpb24gaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uKSkgKXsKCQkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlciggJHRocm93X21lc3NhZ2UgKTsKCQkJfQoJCQlpZiggJHBvc2l0aW9uICl7CgkJCQkkcG9zaXRpb25WYWx1ZSA9ICRwb3NpdGlvbi0+dG9DU1MoKTsKCQkJfWVsc2VpZiggJGkgPT09IDAgKXsKCQkJCSRwb3NpdGlvblZhbHVlID0gJzAlJzsKCQkJfWVsc2V7CgkJCQkkcG9zaXRpb25WYWx1ZSA9ICcxMDAlJzsKCQkJfQoJCQkkYWxwaGEgPSAkY29sb3ItPmFscGhhOwoJCQkkcmV0dXJuZXIgLj0gJzxzdG9wIG9mZnNldD0iJyAuICRwb3NpdGlvblZhbHVlIC4gJyIgc3RvcC1jb2xvcj0iJyAuICRjb2xvci0+dG9SR0IoKSAuICciJyAuICgkYWxwaGEgPCAxID8gJyBzdG9wLW9wYWNpdHk9IicgLiAkYWxwaGEgLiAnIicgOiAnJykgLiAnLz4nOwoJCX0KCgkJJHJldHVybmVyIC49ICc8LycgLiAkZ3JhZGllbnRUeXBlIC4gJ0dyYWRpZW50PjxyZWN0ICcgLiAkcmVjdGFuZ2xlRGltZW5zaW9uIC4gJyBmaWxsPSJ1cmwoI2dyYWRpZW50KSIgLz48L3N2Zz4nOwoKCgkJaWYoICR1c2VCYXNlNjQgKXsKCQkJJHJldHVybmVyID0gIidkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCIuYmFzZTY0X2VuY29kZSgkcmV0dXJuZXIpLiInIjsKCQl9ZWxzZXsKCQkJJHJldHVybmVyID0gIidkYXRhOmltYWdlL3N2Zyt4bWwsIi4kcmV0dXJuZXIuIiciOwoJCX0KCgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfVVJMKCBuZXcgTGVzc19UcmVlX0Fub255bW91cyggJHJldHVybmVyICkgKTsKCX0KCgoJLyoqCgkgKiBQaHAgdmVyc2lvbiBvZiBqYXZhc2NyaXB0J3MgYGVuY29kZVVSSUNvbXBvbmVudGAgZnVuY3Rpb24KCSAqCgkgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgVGhlIHN0cmluZyB0byBlbmNvZGUKCSAqIEByZXR1cm4gc3RyaW5nIFRoZSBlbmNvZGVkIHN0cmluZwoJICovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGVuY29kZVVSSUNvbXBvbmVudCgkc3RyaW5nKXsKCQkkcmV2ZXJ0ID0gYXJyYXkoJyUyMScgPT4gJyEnLCAnJTJBJyA9PiAnKicsICclMjcnID0+ICInIiwgJyUyOCcgPT4gJygnLCAnJTI5JyA9PiAnKScpOwoJCXJldHVybiBzdHJ0cihyYXd1cmxlbmNvZGUoJHN0cmluZyksICRyZXZlcnQpOwoJfQoKCgkvLyBDb2xvciBCbGVuZGluZwoJLy8gcmVmOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jb21wb3NpdGluZy0xCgoJcHVibGljIGZ1bmN0aW9uIGNvbG9yQmxlbmQoICRtb2RlLCAkY29sb3IxLCAkY29sb3IyICl7CgkJJGFiID0gJGNvbG9yMS0+YWxwaGE7CS8vIGJhY2tkcm9wCgkJJGFzID0gJGNvbG9yMi0+YWxwaGE7CS8vIHNvdXJjZQoJCSRyID0gYXJyYXkoKTsJCQkvLyByZXN1bHQKCgkJJGFyID0gJGFzICsgJGFiICogKDEgLSAkYXMpOwoJCWZvciggJGkgPSAwOyAkaSA8IDM7ICRpKysgKXsKCQkJJGNiID0gJGNvbG9yMS0+cmdiWyRpXSAvIDI1NTsKCQkJJGNzID0gJGNvbG9yMi0+cmdiWyRpXSAvIDI1NTsKCQkJJGNyID0gY2FsbF91c2VyX2Z1bmMoICRtb2RlLCAkY2IsICRjcyApOwoJCQlpZiggJGFyICl7CgkJCQkkY3IgPSAoJGFzICogJGNzICsgJGFiICogKCRjYiAtICRhcyAqICgkY2IgKyAkY3MgLSAkY3IpKSkgLyAkYXI7CgkJCX0KCQkJJHJbJGldID0gJGNyICogMjU1OwoJCX0KCgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfQ29sb3IoJHIsICRhcik7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG11bHRpcGx5KCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCApewoJCWlmICghJGNvbG9yMSBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBtdWx0aXBseSBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIG11bHRpcGx5IG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yMiBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQlyZXR1cm4gJHRoaXMtPmNvbG9yQmxlbmQoIGFycmF5KCR0aGlzLCdjb2xvckJsZW5kTXVsdGlwbHknKSwgICRjb2xvcjEsICRjb2xvcjIgKTsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIGNvbG9yQmxlbmRNdWx0aXBseSgkY2IsICRjcyl7CgkJcmV0dXJuICRjYiAqICRjczsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2NyZWVuKCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCApewoJCWlmICghJGNvbG9yMSBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBzY3JlZW4gbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkY29sb3IyIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIHNlY29uZCBhcmd1bWVudCB0byBzY3JlZW4gbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IyIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCXJldHVybiAkdGhpcy0+Y29sb3JCbGVuZCggYXJyYXkoJHRoaXMsJ2NvbG9yQmxlbmRTY3JlZW4nKSwgICRjb2xvcjEsICRjb2xvcjIgKTsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIGNvbG9yQmxlbmRTY3JlZW4oICRjYiwgJGNzKXsKCQlyZXR1cm4gJGNiICsgJGNzIC0gJGNiICogJGNzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBvdmVybGF5KCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCl7CgkJaWYgKCEkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIG92ZXJsYXkgbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgkJaWYgKCEkY29sb3IyIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIHNlY29uZCBhcmd1bWVudCB0byBvdmVybGF5IG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yMiBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQlyZXR1cm4gJHRoaXMtPmNvbG9yQmxlbmQoIGFycmF5KCR0aGlzLCdjb2xvckJsZW5kT3ZlcmxheScpLCAgJGNvbG9yMSwgJGNvbG9yMiApOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gY29sb3JCbGVuZE92ZXJsYXkoJGNiLCAkY3MgKXsKCQkkY2IgKj0gMjsKCQlyZXR1cm4gKCRjYiA8PSAxKQoJCQk/ICR0aGlzLT5jb2xvckJsZW5kTXVsdGlwbHkoJGNiLCAkY3MpCgkJCTogJHRoaXMtPmNvbG9yQmxlbmRTY3JlZW4oJGNiIC0gMSwgJGNzKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc29mdGxpZ2h0KCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCl7CgkJaWYgKCEkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHNvZnRsaWdodCBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNvZnRsaWdodCBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJcmV0dXJuICR0aGlzLT5jb2xvckJsZW5kKCBhcnJheSgkdGhpcywnY29sb3JCbGVuZFNvZnRsaWdodCcpLCAgJGNvbG9yMSwgJGNvbG9yMiApOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gY29sb3JCbGVuZFNvZnRsaWdodCgkY2IsICRjcyApewoJCSRkID0gMTsKCQkkZSA9ICRjYjsKCQlpZiggJGNzID4gMC41ICl7CgkJCSRlID0gMTsKCQkJJGQgPSAoJGNiID4gMC4yNSkgPyBzcXJ0KCRjYikKCQkJCTogKCgxNiAqICRjYiAtIDEyKSAqICRjYiArIDQpICogJGNiOwoJCX0KCQlyZXR1cm4gJGNiIC0gKDEgLSAyICogJGNzKSAqICRlICogKCRkIC0gJGNiKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaGFyZGxpZ2h0KCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCl7CgkJaWYgKCEkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGhhcmRsaWdodCBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGhhcmRsaWdodCBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJcmV0dXJuICR0aGlzLT5jb2xvckJsZW5kKCBhcnJheSgkdGhpcywnY29sb3JCbGVuZEhhcmRsaWdodCcpLCAgJGNvbG9yMSwgJGNvbG9yMiApOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gY29sb3JCbGVuZEhhcmRsaWdodCggJGNiLCAkY3MgKXsKCQlyZXR1cm4gJHRoaXMtPmNvbG9yQmxlbmRPdmVybGF5KCRjcywgJGNiKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZGlmZmVyZW5jZSgkY29sb3IxID0gbnVsbCwgJGNvbG9yMiA9IG51bGwpIHsKCQlpZiAoISRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgZmlyc3QgYXJndW1lbnQgdG8gZGlmZmVyZW5jZSBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGRpZmZlcmVuY2UgbXVzdCBiZSBhIGNvbG9yJyAuICgkY29sb3IyIGluc3RhbmNlb2YgTGVzc19UcmVlX0V4cHJlc3Npb24gPyAnIChkaWQgeW91IGZvcmdvdCBjb21tYXM/KScgOiAnJykgKTsKCQl9CgoJCXJldHVybiAkdGhpcy0+Y29sb3JCbGVuZCggYXJyYXkoJHRoaXMsJ2NvbG9yQmxlbmREaWZmZXJlbmNlJyksICAkY29sb3IxLCAkY29sb3IyICk7Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBjb2xvckJsZW5kRGlmZmVyZW5jZSggJGNiLCAkY3MgKXsKCQlyZXR1cm4gYWJzKCRjYiAtICRjcyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGV4Y2x1c2lvbiggJGNvbG9yMSA9IG51bGwsICRjb2xvcjIgPSBudWxsICl7CgkJaWYgKCEkY29sb3IxIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yKSB7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGV4Y2x1c2lvbiBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGV4Y2x1c2lvbiBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJcmV0dXJuICR0aGlzLT5jb2xvckJsZW5kKCBhcnJheSgkdGhpcywnY29sb3JCbGVuZEV4Y2x1c2lvbicpLCAgJGNvbG9yMSwgJGNvbG9yMiApOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gY29sb3JCbGVuZEV4Y2x1c2lvbiggJGNiLCAkY3MgKXsKCQlyZXR1cm4gJGNiICsgJGNzIC0gMiAqICRjYiAqICRjczsKCX0KCglwdWJsaWMgZnVuY3Rpb24gYXZlcmFnZSgkY29sb3IxID0gbnVsbCwgJGNvbG9yMiA9IG51bGwpewoJCWlmICghJGNvbG9yMSBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBhdmVyYWdlIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yMSBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoJCWlmICghJGNvbG9yMiBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBzZWNvbmQgYXJndW1lbnQgdG8gYXZlcmFnZSBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCgkJcmV0dXJuICR0aGlzLT5jb2xvckJsZW5kKCBhcnJheSgkdGhpcywnY29sb3JCbGVuZEF2ZXJhZ2UnKSwgICRjb2xvcjEsICRjb2xvcjIgKTsKCX0KCgkvLyBub24tdzNjIGZ1bmN0aW9uczoKCXB1YmxpYyBmdW5jdGlvbiBjb2xvckJsZW5kQXZlcmFnZSgkY2IsICRjcyApewoJCXJldHVybiAoJGNiICsgJGNzKSAvIDI7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG5lZ2F0aW9uKCRjb2xvcjEgPSBudWxsLCAkY29sb3IyID0gbnVsbCApewoJCWlmICghJGNvbG9yMSBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvcikgewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ1RoZSBmaXJzdCBhcmd1bWVudCB0byBuZWdhdGlvbiBtdXN0IGJlIGEgY29sb3InIC4gKCRjb2xvcjEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiA/ICcgKGRpZCB5b3UgZm9yZ290IGNvbW1hcz8pJyA6ICcnKSApOwoJCX0KCQlpZiAoISRjb2xvcjIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQ29sb3IpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIG5lZ2F0aW9uIG11c3QgYmUgYSBjb2xvcicgLiAoJGNvbG9yMiBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uID8gJyAoZGlkIHlvdSBmb3Jnb3QgY29tbWFzPyknIDogJycpICk7CgkJfQoKCQlyZXR1cm4gJHRoaXMtPmNvbG9yQmxlbmQoIGFycmF5KCR0aGlzLCdjb2xvckJsZW5kTmVnYXRpb24nKSwgICRjb2xvcjEsICRjb2xvcjIgKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY29sb3JCbGVuZE5lZ2F0aW9uKCRjYiwgJGNzKXsKCQlyZXR1cm4gMSAtIGFicygkY2IgKyAkY3MgLSAxKTsKCX0KCgkvLyB+IEVuZCBvZiBDb2xvciBCbGVuZGluZwoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Less.php.combine</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci4vUGFyc2VyLnBocAouL0NvbG9ycy5waHAKLi9FbnZpcm9ubWVudC5waHAKLi9GdW5jdGlvbnMucGhwCi4vTWltZS5waHAKLi9UcmVlLnBocAouL091dHB1dC5waHAKLi9WaXNpdG9yLnBocAouL1Zpc2l0b3JSZXBsYWNpbmcucGhwCi4vQ29uZmlndXJhYmxlLnBocAouL1RyZWUKLi9WaXNpdG9yCi4vRXhjZXB0aW9uL1BhcnNlci5waHAKLi9FeGNlcHRpb24vCi4vT3V0cHV0Ci4vU291cmNlTWFwCg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Mime.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBNaW1lIGxvb2t1cAogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIG5vZGUKICovCmNsYXNzIExlc3NfTWltZXsKCgkvLyB0aGlzIG1hcCBpcyBpbnRlbnRpb25hbGx5IGluY29tcGxldGUKCS8vIGlmIHlvdSB3YW50IG1vcmUsIGluc3RhbGwgJ21pbWUnIGRlcAoJc3RhdGljICRfdHlwZXMgPSBhcnJheSgKCSAgICAgICAgJy5odG0nID0+ICd0ZXh0L2h0bWwnLAoJICAgICAgICAnLmh0bWwnPT4gJ3RleHQvaHRtbCcsCgkgICAgICAgICcuZ2lmJyA9PiAnaW1hZ2UvZ2lmJywKCSAgICAgICAgJy5qcGcnID0+ICdpbWFnZS9qcGVnJywKCSAgICAgICAgJy5qcGVnJz0+ICdpbWFnZS9qcGVnJywKCSAgICAgICAgJy5wbmcnID0+ICdpbWFnZS9wbmcnLAoJICAgICAgICAnLnR0ZicgPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC10dGYnLAoJICAgICAgICAnLm90ZicgPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC1vdGYnLAoJICAgICAgICAnLmVvdCcgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0JywKCSAgICAgICAgJy53b2ZmJyA9PiAnYXBwbGljYXRpb24veC1mb250LXdvZmYnLAoJICAgICAgICAnLnN2ZycgPT4gJ2ltYWdlL3N2Zyt4bWwnLAoJICAgICAgICApOwoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9va3VwKCAkZmlsZXBhdGggKXsKCQkkcGFydHMgPSBleHBsb2RlKCcuJywkZmlsZXBhdGgpOwoJCSRleHQgPSAnLicuc3RydG9sb3dlcihhcnJheV9wb3AoJHBhcnRzKSk7CgoJCWlmKCAhaXNzZXQoc2VsZjo6JF90eXBlc1skZXh0XSkgKXsKCQkJcmV0dXJuIG51bGw7CgkJfQoJCXJldHVybiBzZWxmOjokX3R5cGVzWyRleHRdOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2hhcnNldHNfbG9va3VwKCAkdHlwZSA9IG51bGwgKXsKCQkvLyBhc3N1bWVzIGFsbCB0ZXh0IHR5cGVzIGFyZSBVVEYtOAoJCXJldHVybiAkdHlwZSAmJiBwcmVnX21hdGNoKCcvXnRleHRcLy8nLCR0eXBlKSA/ICdVVEYtOCcgOiAnJzsKCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Output.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBQYXJzZXIgb3V0cHV0CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2Ugb3V0cHV0CiAqLwpjbGFzcyBMZXNzX091dHB1dHsKCgkvKioKCSAqIE91dHB1dCBob2xkZXIKCSAqCgkgKiBAdmFyIHN0cmluZwoJICovCglwcm90ZWN0ZWQgJHN0cnMgPSBhcnJheSgpOwoKCS8qKgoJICogQWRkcyBhIGNodW5rIHRvIHRoZSBzdGFjawoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJGNodW5rIFRoZSBjaHVuayB0byBvdXRwdXQKCSAqIEBwYXJhbSBMZXNzX0ZpbGVJbmZvICRmaWxlSW5mbyBUaGUgZmlsZSBpbmZvcm1hdGlvbgoJICogQHBhcmFtIGludGVnZXIgJGluZGV4IFRoZSBpbmRleAoJICogQHBhcmFtIG1peGVkICRtYXBMaW5lcwoJICovCglwdWJsaWMgZnVuY3Rpb24gYWRkKCRjaHVuaywgJGZpbGVJbmZvID0gbnVsbCwgJGluZGV4ID0gMCwgJG1hcExpbmVzID0gbnVsbCl7CgkJJHRoaXMtPnN0cnNbXSA9ICRjaHVuazsKCX0KCgkvKioKCSAqIElzIHRoZSBvdXRwdXQgZW1wdHk/CgkgKgoJICogQHJldHVybiBib29sZWFuCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpc0VtcHR5KCl7CgkJcmV0dXJuIGNvdW50KCR0aGlzLT5zdHJzKSA9PT0gMDsKCX0KCgoJLyoqCgkgKiBDb252ZXJ0cyB0aGUgb3V0cHV0IHRvIHN0cmluZwoJICoKCSAqIEByZXR1cm4gc3RyaW5nCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpewoJCXJldHVybiBpbXBsb2RlKCcnLCR0aGlzLT5zdHJzKTsKCX0KCn0=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Output/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Output/Mapped.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBQYXJzZXIgb3V0cHV0IHdpdGggc291cmNlIG1hcA0KICoNCiAqIEBwYWNrYWdlIExlc3MNCiAqIEBzdWJwYWNrYWdlIE91dHB1dA0KICovDQpjbGFzcyBMZXNzX091dHB1dF9NYXBwZWQgZXh0ZW5kcyBMZXNzX091dHB1dCB7DQoNCgkvKioNCgkgKiBUaGUgc291cmNlIG1hcCBnZW5lcmF0b3INCgkgKg0KCSAqIEB2YXIgTGVzc19Tb3VyY2VNYXBfR2VuZXJhdG9yDQoJICovDQoJcHJvdGVjdGVkICRnZW5lcmF0b3I7DQoNCgkvKioNCgkgKiBDdXJyZW50IGxpbmUNCgkgKg0KCSAqIEB2YXIgaW50ZWdlcg0KCSAqLw0KCXByb3RlY3RlZCAkbGluZU51bWJlciA9IDA7DQoNCgkvKioNCgkgKiBDdXJyZW50IGNvbHVtbg0KCSAqDQoJICogQHZhciBpbnRlZ2VyDQoJICovDQoJcHJvdGVjdGVkICRjb2x1bW4gPSAwOw0KDQoJLyoqDQoJICogQXJyYXkgb2YgY29udGVudHMgbWFwIChmaWxlIGFuZCBpdHMgY29udGVudCkNCgkgKg0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcm90ZWN0ZWQgJGNvbnRlbnRzTWFwID0gYXJyYXkoKTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gYXJyYXkgJGNvbnRlbnRzTWFwIEFycmF5IG9mIGZpbGVuYW1lIHRvIGNvbnRlbnRzIG1hcA0KCSAqIEBwYXJhbSBMZXNzX1NvdXJjZU1hcF9HZW5lcmF0b3IgJGdlbmVyYXRvcg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChhcnJheSAkY29udGVudHNNYXAsICRnZW5lcmF0b3Ipew0KCQkkdGhpcy0+Y29udGVudHNNYXAgPSAkY29udGVudHNNYXA7DQoJCSR0aGlzLT5nZW5lcmF0b3IgPSAkZ2VuZXJhdG9yOw0KCX0NCg0KCS8qKg0KCSAqIEFkZHMgYSBjaHVuayB0byB0aGUgc3RhY2sNCgkgKiBUaGUgJGluZGV4IGZvciBsZXNzLnBocCBtYXkgYmUgZGlmZmVyZW50IGZyb20gbGVzcy5qcyBzaW5jZSBsZXNzLnBocCBkb2VzIG5vdCBjaHVua2lmeSBpbnB1dHMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGNodW5rDQoJICogQHBhcmFtIHN0cmluZyAkZmlsZUluZm8NCgkgKiBAcGFyYW0gaW50ZWdlciAkaW5kZXgNCgkgKiBAcGFyYW0gbWl4ZWQgJG1hcExpbmVzDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGFkZCgkY2h1bmssICRmaWxlSW5mbyA9IG51bGwsICRpbmRleCA9IDAsICRtYXBMaW5lcyA9IG51bGwpew0KDQoJCS8vaWdub3JlIGFkZGluZyBlbXB0eSBzdHJpbmdzDQoJCWlmKCAkY2h1bmsgPT09ICcnICl7DQoJCQlyZXR1cm47DQoJCX0NCg0KDQoJCSRzb3VyY2VMaW5lcyA9IGFycmF5KCk7DQoJCSRzb3VyY2VDb2x1bW5zID0gJyAnOw0KDQoNCgkJaWYoICRmaWxlSW5mbyApew0KDQoJCQkkdXJsID0gJGZpbGVJbmZvWydjdXJyZW50VXJpJ107DQoNCgkJCWlmKCBpc3NldCgkdGhpcy0+Y29udGVudHNNYXBbJHVybF0pICl7DQoJCQkJJGlucHV0U291cmNlID0gc3Vic3RyKCR0aGlzLT5jb250ZW50c01hcFskdXJsXSwgMCwgJGluZGV4KTsNCgkJCQkkc291cmNlTGluZXMgPSBleHBsb2RlKCJcbiIsICRpbnB1dFNvdXJjZSk7DQoJCQkJJHNvdXJjZUNvbHVtbnMgPSBlbmQoJHNvdXJjZUxpbmVzKTsNCgkJCX1lbHNlew0KCQkJCXRocm93IG5ldyBFeGNlcHRpb24oJ0ZpbGVuYW1lICcuJHVybC4nIG5vdCBpbiBjb250ZW50c01hcCcpOw0KCQkJfQ0KDQoJCX0NCg0KCQkkbGluZXMgPSBleHBsb2RlKCJcbiIsICRjaHVuayk7DQoJCSRjb2x1bW5zID0gZW5kKCRsaW5lcyk7DQoNCgkJaWYoJGZpbGVJbmZvKXsNCg0KCQkJaWYoISRtYXBMaW5lcyl7DQoJCQkJJHRoaXMtPmdlbmVyYXRvci0+YWRkTWFwcGluZygNCgkJCQkJCSR0aGlzLT5saW5lTnVtYmVyICsgMSwJCQkJCS8vIGdlbmVyYXRlZF9saW5lDQoJCQkJCQkkdGhpcy0+Y29sdW1uLAkJCQkJCQkvLyBnZW5lcmF0ZWRfY29sdW1uDQoJCQkJCQljb3VudCgkc291cmNlTGluZXMpLAkJCQkJLy8gb3JpZ2luYWxfbGluZQ0KCQkJCQkJc3RybGVuKCRzb3VyY2VDb2x1bW5zKSwJCQkJCS8vIG9yaWdpbmFsX2NvbHVtbg0KCQkJCQkJJGZpbGVJbmZvDQoJCQkJKTsNCgkJCX1lbHNlew0KCQkJCWZvcigkaSA9IDAsICRjb3VudCA9IGNvdW50KCRsaW5lcyk7ICRpIDwgJGNvdW50OyAkaSsrKXsNCgkJCQkJJHRoaXMtPmdlbmVyYXRvci0+YWRkTWFwcGluZygNCgkJCQkJCSR0aGlzLT5saW5lTnVtYmVyICsgJGkgKyAxLAkJCQkvLyBnZW5lcmF0ZWRfbGluZQ0KCQkJCQkJJGkgPT09IDAgPyAkdGhpcy0+Y29sdW1uIDogMCwJCQkvLyBnZW5lcmF0ZWRfY29sdW1uDQoJCQkJCQljb3VudCgkc291cmNlTGluZXMpICsgJGksCQkJCS8vIG9yaWdpbmFsX2xpbmUNCgkJCQkJCSRpID09PSAwID8gc3RybGVuKCRzb3VyY2VDb2x1bW5zKSA6IDAsIAkvLyBvcmlnaW5hbF9jb2x1bW4NCgkJCQkJCSRmaWxlSW5mbw0KCQkJCQkpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCWlmKGNvdW50KCRsaW5lcykgPT09IDEpew0KCQkJJHRoaXMtPmNvbHVtbiArPSBzdHJsZW4oJGNvbHVtbnMpOw0KCQl9ZWxzZXsNCgkJCSR0aGlzLT5saW5lTnVtYmVyICs9IGNvdW50KCRsaW5lcykgLSAxOw0KCQkJJHRoaXMtPmNvbHVtbiA9IHN0cmxlbigkY29sdW1ucyk7DQoJCX0NCg0KCQkvLyBhZGQgb25seSBjaHVuaw0KCQlwYXJlbnQ6OmFkZCgkY2h1bmspOw0KCX0NCg0KfQ==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Parser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCnJlcXVpcmVfb25jZSggZGlybmFtZShfX0ZJTEVfXykuJy9DYWNoZS5waHAnKTsKCi8qKgogKiBDbGFzcyBmb3IgcGFyc2luZyBhbmQgY29tcGlsaW5nIGxlc3MgZmlsZXMgaW50byBjc3MKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSBwYXJzZXIKICoKICovCmNsYXNzIExlc3NfUGFyc2VyewoKCgkvKioKCSAqIERlZmF1bHQgcGFyc2VyIG9wdGlvbnMKCSAqLwoJcHVibGljIHN0YXRpYyAkZGVmYXVsdF9vcHRpb25zID0gYXJyYXkoCgkJJ2NvbXByZXNzJwkJCQk9PiBmYWxzZSwJCQkvLyBvcHRpb24gLSB3aGV0aGVyIHRvIGNvbXByZXNzCgkJJ3N0cmljdFVuaXRzJwkJCT0+IGZhbHNlLAkJCS8vIHdoZXRoZXIgdW5pdHMgbmVlZCB0byBldmFsdWF0ZSBjb3JyZWN0bHkKCQknc3RyaWN0TWF0aCcJCQk9PiBmYWxzZSwJCQkvLyB3aGV0aGVyIG1hdGggaGFzIHRvIGJlIHdpdGhpbiBwYXJlbnRoZXNpcwoJCSdyZWxhdGl2ZVVybHMnCQkJPT4gdHJ1ZSwJCQkvLyBvcHRpb24gLSB3aGV0aGVyIHRvIGFkanVzdCBVUkwncyB0byBiZSByZWxhdGl2ZQoJCSd1cmxBcmdzJwkJCQk9PiAnJywJCQkJLy8gd2hldGhlciB0byBhZGQgYXJncyBpbnRvIHVybCB0b2tlbnMKCQknbnVtUHJlY2lzaW9uJwkJCT0+IDgsCgoJCSdpbXBvcnRfZGlycycJCQk9PiBhcnJheSgpLAoJCSdpbXBvcnRfY2FsbGJhY2snCQk9PiBudWxsLAoJCSdjYWNoZV9kaXInCQkJCT0+IG51bGwsCgkJJ2NhY2hlX21ldGhvZCcJCQk9PiAncGhwJywgCQkJLy8gZmFsc2UsICdzZXJpYWxpemUnLCAncGhwJywgJ3Zhcl9leHBvcnQnLCAnY2FsbGJhY2snOwoJCSdjYWNoZV9jYWxsYmFja19nZXQnCT0+IG51bGwsCgkJJ2NhY2hlX2NhbGxiYWNrX3NldCcJPT4gbnVsbCwKCgkJJ3NvdXJjZU1hcCcJCQkJPT4gZmFsc2UsCQkJLy8gd2hldGhlciB0byBvdXRwdXQgYSBzb3VyY2UgbWFwCgkJJ3NvdXJjZU1hcEJhc2VwYXRoJwkJPT4gbnVsbCwKCQknc291cmNlTWFwV3JpdGVUbycJCT0+IG51bGwsCgkJJ3NvdXJjZU1hcFVSTCcJCQk9PiBudWxsLAoKCQknaW5kZW50YXRpb24nIAkJCT0+ICcgICcsCgoJCSdwbHVnaW5zJwkJCQk9PiBhcnJheSgpLAoKCSk7CgoJcHVibGljIHN0YXRpYyAkb3B0aW9ucyA9IGFycmF5KCk7CgoKCXByaXZhdGUgJGlucHV0OwkJCQkJLy8gTGVzcyBpbnB1dCBzdHJpbmcKCXByaXZhdGUgJGlucHV0X2xlbjsJCQkJLy8gaW5wdXQgc3RyaW5nIGxlbmd0aAoJcHJpdmF0ZSAkcG9zOwkJCQkJLy8gY3VycmVudCBpbmRleCBpbiBgaW5wdXRgCglwcml2YXRlICRzYXZlU3RhY2sgPSBhcnJheSgpOwkvLyBob2xkcyBzdGF0ZSBmb3IgYmFja3RyYWNraW5nCglwcml2YXRlICRmdXJ0aGVzdDsKCXByaXZhdGUgJG1iX2ludGVybmFsX2VuY29kaW5nID0gJyc7IC8vIGZvciByZW1lbWJlciBleGlzdHMgdmFsdWUgb2YgbWJzdHJpbmcuaW50ZXJuYWxfZW5jb2RpbmcKCgkvKioKCSAqIEB2YXIgTGVzc19FbnZpcm9ubWVudAoJICovCglwcml2YXRlICRlbnY7CgoJcHJvdGVjdGVkICRydWxlcyA9IGFycmF5KCk7CgoJcHJpdmF0ZSBzdGF0aWMgJGltcG9ydHMgPSBhcnJheSgpOwoKCXB1YmxpYyBzdGF0aWMgJGhhc19leHRlbmRzID0gZmFsc2U7CgoJcHVibGljIHN0YXRpYyAkbmV4dF9pZCA9IDA7CgoJLyoqCgkgKiBGaWxlbmFtZSB0byBjb250ZW50cyBvZiBhbGwgcGFyc2VkIHRoZSBmaWxlcwoJICoKCSAqIEB2YXIgYXJyYXkKCSAqLwoJcHVibGljIHN0YXRpYyAkY29udGVudHNNYXAgPSBhcnJheSgpOwoKCgkvKioKCSAqIEBwYXJhbSBMZXNzX0Vudmlyb25tZW50fGFycmF5fG51bGwgJGVudgoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRlbnYgPSBudWxsICl7CgoJCS8vIFRvcCBwYXJzZXIgb24gYW4gaW1wb3J0IHRyZWUgbXVzdCBiZSBzdXJlIHRoZXJlIGlzIG9uZSAiZW52IgoJCS8vIHdoaWNoIHdpbGwgdGhlbiBiZSBwYXNzZWQgYXJvdW5kIGJ5IHJlZmVyZW5jZS4KCQlpZiggJGVudiBpbnN0YW5jZW9mIExlc3NfRW52aXJvbm1lbnQgKXsKCQkJJHRoaXMtPmVudiA9ICRlbnY7CgkJfWVsc2V7CgkJCSR0aGlzLT5TZXRPcHRpb25zKExlc3NfUGFyc2VyOjokZGVmYXVsdF9vcHRpb25zKTsKCQkJJHRoaXMtPlJlc2V0KCAkZW52ICk7CgkJfQoKCQkvLyBtYnN0cmluZy5mdW5jX292ZXJsb2FkID4gMSBidWdmaXgKCQkvLyBUaGUgZW5jb2RpbmcgdmFsdWUgbXVzdCBiZSBzZXQgZm9yIGVhY2ggc291cmNlIGZpbGUsCgkJLy8gdGhlcmVmb3JlLCB0byBjb25zZXJ2ZSByZXNvdXJjZXMgYW5kIGltcHJvdmUgdGhlIHNwZWVkIG9mIHRoaXMgZGVzaWduIGlzIHRha2VuIGhlcmUKCQlpZiAoaW5pX2dldCgnbWJzdHJpbmcuZnVuY19vdmVybG9hZCcpKSB7CgkJCSR0aGlzLT5tYl9pbnRlcm5hbF9lbmNvZGluZyA9IGluaV9nZXQoJ21ic3RyaW5nLmludGVybmFsX2VuY29kaW5nJyk7CgkJCUBpbmlfc2V0KCdtYnN0cmluZy5pbnRlcm5hbF9lbmNvZGluZycsICdhc2NpaScpOwoJCX0KCgl9CgoKCS8qKgoJICogUmVzZXQgdGhlIHBhcnNlciBzdGF0ZSBjb21wbGV0ZWx5CgkgKgoJICovCglwdWJsaWMgZnVuY3Rpb24gUmVzZXQoICRvcHRpb25zID0gbnVsbCApewoJCSR0aGlzLT5ydWxlcyA9IGFycmF5KCk7CgkJc2VsZjo6JGltcG9ydHMgPSBhcnJheSgpOwoJCXNlbGY6OiRoYXNfZXh0ZW5kcyA9IGZhbHNlOwoJCXNlbGY6OiRpbXBvcnRzID0gYXJyYXkoKTsKCQlzZWxmOjokY29udGVudHNNYXAgPSBhcnJheSgpOwoKCQkkdGhpcy0+ZW52ID0gbmV3IExlc3NfRW52aXJvbm1lbnQoJG9wdGlvbnMpOwoJCSR0aGlzLT5lbnYtPkluaXQoKTsKCgkJLy9zZXQgbmV3IG9wdGlvbnMKCQlpZiggaXNfYXJyYXkoJG9wdGlvbnMpICl7CgkJCSR0aGlzLT5TZXRPcHRpb25zKExlc3NfUGFyc2VyOjokZGVmYXVsdF9vcHRpb25zKTsKCQkJJHRoaXMtPlNldE9wdGlvbnMoJG9wdGlvbnMpOwoJCX0KCX0KCgkvKioKCSAqIFNldCBvbmUgb3IgbW9yZSBjb21waWxlciBvcHRpb25zCgkgKiAgb3B0aW9uczogaW1wb3J0X2RpcnMsIGNhY2hlX2RpciwgY2FjaGVfbWV0aG9kCgkgKgoJICovCglwdWJsaWMgZnVuY3Rpb24gU2V0T3B0aW9ucyggJG9wdGlvbnMgKXsKCQlmb3JlYWNoKCRvcHRpb25zIGFzICRvcHRpb24gPT4gJHZhbHVlKXsKCQkJJHRoaXMtPlNldE9wdGlvbigkb3B0aW9uLCR2YWx1ZSk7CgkJfQoJfQoKCS8qKgoJICogU2V0IG9uZSBjb21waWxlciBvcHRpb24KCSAqCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBTZXRPcHRpb24oJG9wdGlvbiwkdmFsdWUpewoKCQlzd2l0Y2goJG9wdGlvbil7CgoJCQljYXNlICdpbXBvcnRfZGlycyc6CgkJCQkkdGhpcy0+U2V0SW1wb3J0RGlycygkdmFsdWUpOwoJCQlyZXR1cm47CgoJCQljYXNlICdjYWNoZV9kaXInOgoJCQkJaWYoIGlzX3N0cmluZygkdmFsdWUpICl7CgkJCQkJTGVzc19DYWNoZTo6U2V0Q2FjaGVEaXIoJHZhbHVlKTsKCQkJCQlMZXNzX0NhY2hlOjpDaGVja0NhY2hlRGlyKCk7CgkJCQl9CgkJCXJldHVybjsKCQl9CgoJCUxlc3NfUGFyc2VyOjokb3B0aW9uc1skb3B0aW9uXSA9ICR2YWx1ZTsKCX0KCgkvKioKCSAqIFJlZ2lzdGVycyBhIG5ldyBjdXN0b20gZnVuY3Rpb24KCSAqCgkgKiBAcGFyYW0gIHN0cmluZyAgICRuYW1lICAgICBmdW5jdGlvbiBuYW1lCgkgKiBAcGFyYW0gIGNhbGxhYmxlICRjYWxsYmFjayBjYWxsYmFjawoJICovCglwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXJGdW5jdGlvbigkbmFtZSwgJGNhbGxiYWNrKSB7CgkJJHRoaXMtPmVudi0+ZnVuY3Rpb25zWyRuYW1lXSA9ICRjYWxsYmFjazsKCX0KCgkvKioKCSAqIFJlbW92ZWQgYW4gYWxyZWFkeSByZWdpc3RlcmVkIGZ1bmN0aW9uCgkgKgoJICogQHBhcmFtICBzdHJpbmcgJG5hbWUgZnVuY3Rpb24gbmFtZQoJICovCglwdWJsaWMgZnVuY3Rpb24gdW5yZWdpc3RlckZ1bmN0aW9uKCRuYW1lKSB7CgkJaWYoIGlzc2V0KCR0aGlzLT5lbnYtPmZ1bmN0aW9uc1skbmFtZV0pICkKCQkJdW5zZXQoJHRoaXMtPmVudi0+ZnVuY3Rpb25zWyRuYW1lXSk7Cgl9CgoKCS8qKgoJICogR2V0IHRoZSBjdXJyZW50IGNzcyBidWZmZXIKCSAqCgkgKiBAcmV0dXJuIHN0cmluZwoJICovCglwdWJsaWMgZnVuY3Rpb24gZ2V0Q3NzKCl7CgoJCSRwcmVjaXNpb24gPSBpbmlfZ2V0KCdwcmVjaXNpb24nKTsKCQlAaW5pX3NldCgncHJlY2lzaW9uJywxNik7CgkJJGxvY2FsZSA9IHNldGxvY2FsZShMQ19OVU1FUklDLCAwKTsKCQlzZXRsb2NhbGUoTENfTlVNRVJJQywgIkMiKTsKCgkJdHJ5IHsKCgkgCQkkcm9vdCA9IG5ldyBMZXNzX1RyZWVfUnVsZXNldChhcnJheSgpLCAkdGhpcy0+cnVsZXMgKTsKCQkJJHJvb3QtPnJvb3QgPSB0cnVlOwoJCQkkcm9vdC0+Zmlyc3RSb290ID0gdHJ1ZTsKCgoJCQkkdGhpcy0+UHJlVmlzaXRvcnMoJHJvb3QpOwoKCQkJc2VsZjo6JGhhc19leHRlbmRzID0gZmFsc2U7CgkJCSRldmFsZFJvb3QgPSAkcm9vdC0+Y29tcGlsZSgkdGhpcy0+ZW52KTsKCgoKCQkJJHRoaXMtPlBvc3RWaXNpdG9ycygkZXZhbGRSb290KTsKCgkJCWlmKCBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3NvdXJjZU1hcCddICl7CgkJCQkkZ2VuZXJhdG9yID0gbmV3IExlc3NfU291cmNlTWFwX0dlbmVyYXRvcigkZXZhbGRSb290LCBMZXNzX1BhcnNlcjo6JGNvbnRlbnRzTWFwLCBMZXNzX1BhcnNlcjo6JG9wdGlvbnMgKTsKCQkJCS8vIHdpbGwgYWxzbyBzYXZlIGZpbGUKCQkJCS8vIEZJWE1FOiBzaG91bGQgaGFwcGVuIHNvbWV3aGVyZSBlbHNlPwoJCQkJJGNzcyA9ICRnZW5lcmF0b3ItPmdlbmVyYXRlQ1NTKCk7CgkJCX1lbHNlewoJCQkJJGNzcyA9ICRldmFsZFJvb3QtPnRvQ1NTKCk7CgkJCX0KCgkJCWlmKCBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NvbXByZXNzJ10gKXsKCQkJCSRjc3MgPSBwcmVnX3JlcGxhY2UoJy8oXihccykrKXwoKFxzKSskKS8nLCAnJywgJGNzcyk7CgkJCX0KCgkJfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsKCQkJLy8gSW50ZW50aW9uYWwgZmFsbC10aHJvdWdoIHNvIHdlIGNhbiByZXNldCBlbnZpcm9ubWVudAoJCX0KCgkJLy9yZXNldCBwaHAgc2V0dGluZ3MKCQlAaW5pX3NldCgncHJlY2lzaW9uJywkcHJlY2lzaW9uKTsKCQlzZXRsb2NhbGUoTENfTlVNRVJJQywgJGxvY2FsZSk7CgoJCS8vIElmIHlvdSBwcmV2aW91c2x5IGRlZmluZWQgJHRoaXMtPm1iX2ludGVybmFsX2VuY29kaW5nCgkJLy8gaXMgcmVxdWlyZWQgdG8gcmV0dXJuIHRoZSBlbmNvZGluZyBhcyBpdCB3YXMgYmVmb3JlCgkJaWYgKCR0aGlzLT5tYl9pbnRlcm5hbF9lbmNvZGluZyAhPSAnJykgewoJCQlAaW5pX3NldCgibWJzdHJpbmcuaW50ZXJuYWxfZW5jb2RpbmciLCAkdGhpcy0+bWJfaW50ZXJuYWxfZW5jb2RpbmcpOwoJCQkkdGhpcy0+bWJfaW50ZXJuYWxfZW5jb2RpbmcgPSAnJzsKCQl9CgoJCS8vIFJldGhyb3cgZXhjZXB0aW9uIGFmdGVyIHdlIGhhbmRsZWQgcmVzZXR0aW5nIHRoZSBlbnZpcm9ubWVudAoJCWlmICghZW1wdHkoJGV4YykpIHsKCQkJdGhyb3cgJGV4YzsKCQl9CgoKCgkJcmV0dXJuICRjc3M7Cgl9CgoJLyoqCgkgKiBSdW4gcHJlLWNvbXBpbGUgdmlzaXRvcnMKCSAqCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gUHJlVmlzaXRvcnMoJHJvb3QpewoKCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydwbHVnaW5zJ10gKXsKCQkJZm9yZWFjaChMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3BsdWdpbnMnXSBhcyAkcGx1Z2luKXsKCQkJCWlmKCAhZW1wdHkoJHBsdWdpbi0+aXNQcmVFdmFsVmlzaXRvcikgKXsKCQkJCQkkcGx1Z2luLT5ydW4oJHJvb3QpOwoJCQkJfQoJCQl9CgkJfQoJfQoKCgkvKioKCSAqIFJ1biBwb3N0LWNvbXBpbGUgdmlzaXRvcnMKCSAqCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gUG9zdFZpc2l0b3JzKCRldmFsZFJvb3QpewoKCQkkdmlzaXRvcnMgPSBhcnJheSgpOwoJCSR2aXNpdG9yc1tdID0gbmV3IExlc3NfVmlzaXRvcl9qb2luU2VsZWN0b3IoKTsKCQlpZiggc2VsZjo6JGhhc19leHRlbmRzICl7CgkJCSR2aXNpdG9yc1tdID0gbmV3IExlc3NfVmlzaXRvcl9wcm9jZXNzRXh0ZW5kcygpOwoJCX0KCQkkdmlzaXRvcnNbXSA9IG5ldyBMZXNzX1Zpc2l0b3JfdG9DU1MoKTsKCgoJCWlmKCBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3BsdWdpbnMnXSApewoJCQlmb3JlYWNoKExlc3NfUGFyc2VyOjokb3B0aW9uc1sncGx1Z2lucyddIGFzICRwbHVnaW4pewoJCQkJaWYoIHByb3BlcnR5X2V4aXN0cygkcGx1Z2luLCdpc1ByZUV2YWxWaXNpdG9yJykgJiYgJHBsdWdpbi0+aXNQcmVFdmFsVmlzaXRvciApewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCWlmKCBwcm9wZXJ0eV9leGlzdHMoJHBsdWdpbiwnaXNQcmVWaXNpdG9yJykgJiYgJHBsdWdpbi0+aXNQcmVWaXNpdG9yICl7CgkJCQkJYXJyYXlfdW5zaGlmdCggJHZpc2l0b3JzLCAkcGx1Z2luKTsKCQkJCX1lbHNlewoJCQkJCSR2aXNpdG9yc1tdID0gJHBsdWdpbjsKCQkJCX0KCQkJfQoJCX0KCgoJCWZvcigkaSA9IDA7ICRpIDwgY291bnQoJHZpc2l0b3JzKTsgJGkrKyApewoJCQkkdmlzaXRvcnNbJGldLT5ydW4oJGV2YWxkUm9vdCk7CgkJfQoKCX0KCgoJLyoqCgkgKiBQYXJzZSBhIExlc3Mgc3RyaW5nIGludG8gY3NzCgkgKgoJICogQHBhcmFtIHN0cmluZyAkc3RyIFRoZSBzdHJpbmcgdG8gY29udmVydAoJICogQHBhcmFtIHN0cmluZyAkdXJpX3Jvb3QgVGhlIHVybCBvZiB0aGUgZmlsZQoJICogQHJldHVybiBMZXNzX1RyZWVfUnVsZXNldHxMZXNzX1BhcnNlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gcGFyc2UoICRzdHIsICRmaWxlX3VyaSA9IG51bGwgKXsKCgkJaWYoICEkZmlsZV91cmkgKXsKCQkJJHVyaV9yb290ID0gJyc7CgkJCSRmaWxlbmFtZSA9ICdhbm9ueW1vdXMtZmlsZS0nLkxlc3NfUGFyc2VyOjokbmV4dF9pZCsrLicubGVzcyc7CgkJfWVsc2V7CgkJCSRmaWxlX3VyaSA9IHNlbGY6OldpblBhdGgoJGZpbGVfdXJpKTsKCQkJJGZpbGVuYW1lID0gJGZpbGVfdXJpOwoJCQkkdXJpX3Jvb3QgPSBkaXJuYW1lKCRmaWxlX3VyaSk7CgkJfQoKCQkkcHJldmlvdXNGaWxlSW5mbyA9ICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbzsKCQkkdXJpX3Jvb3QgPSBzZWxmOjpXaW5QYXRoKCR1cmlfcm9vdCk7CgkJJHRoaXMtPlNldEZpbGVJbmZvKCRmaWxlbmFtZSwgJHVyaV9yb290KTsKCgkJJHRoaXMtPmlucHV0ID0gJHN0cjsKCQkkdGhpcy0+X3BhcnNlKCk7CgoJCWlmKCAkcHJldmlvdXNGaWxlSW5mbyApewoJCQkkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8gPSAkcHJldmlvdXNGaWxlSW5mbzsKCQl9CgoJCXJldHVybiAkdGhpczsKCX0KCgoJLyoqCgkgKiBQYXJzZSBhIExlc3Mgc3RyaW5nIGZyb20gYSBnaXZlbiBmaWxlCgkgKgoJICogQHRocm93cyBMZXNzX0V4Y2VwdGlvbl9QYXJzZXIKCSAqIEBwYXJhbSBzdHJpbmcgJGZpbGVuYW1lIFRoZSBmaWxlIHRvIHBhcnNlCgkgKiBAcGFyYW0gc3RyaW5nICR1cmlfcm9vdCBUaGUgdXJsIG9mIHRoZSBmaWxlCgkgKiBAcGFyYW0gYm9vbCAkcmV0dXJuUm9vdCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSBhIGNzcyBzdHJpbmcgYSByb290IG5vZGUKCSAqIEByZXR1cm4gTGVzc19UcmVlX1J1bGVzZXR8TGVzc19QYXJzZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHBhcnNlRmlsZSggJGZpbGVuYW1lLCAkdXJpX3Jvb3QgPSAnJywgJHJldHVyblJvb3QgPSBmYWxzZSl7CgoJCWlmKCAhZmlsZV9leGlzdHMoJGZpbGVuYW1lKSApewoJCQkkdGhpcy0+RXJyb3Ioc3ByaW50ZignRmlsZSBgJXNgIG5vdCBmb3VuZC4nLCAkZmlsZW5hbWUpKTsKCQl9CgoKCQkvLyBmaXggdXJpX3Jvb3Q/CgkJLy8gSW5zdGVhZCBvZiBUaGUgbWl4dHVyZSBvZiBmaWxlIHBhdGggZm9yIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgZGlyZWN0b3J5IHBhdGggZm9yIHRoZSBzZWNvbmQgYXJndW1lbnQgaGFzIGJlZQoJCWlmKCAhJHJldHVyblJvb3QgJiYgIWVtcHR5KCR1cmlfcm9vdCkgJiYgYmFzZW5hbWUoJHVyaV9yb290KSA9PSBiYXNlbmFtZSgkZmlsZW5hbWUpICl7CgkJCSR1cmlfcm9vdCA9IGRpcm5hbWUoJHVyaV9yb290KTsKCQl9CgoKCQkkcHJldmlvdXNGaWxlSW5mbyA9ICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbzsKCgoJCWlmKCAkZmlsZW5hbWUgKXsKCQkJJGZpbGVuYW1lID0gc2VsZjo6V2luUGF0aChyZWFscGF0aCgkZmlsZW5hbWUpKTsKCQl9CgkJJHVyaV9yb290ID0gc2VsZjo6V2luUGF0aCgkdXJpX3Jvb3QpOwoKCQkkdGhpcy0+U2V0RmlsZUluZm8oJGZpbGVuYW1lLCAkdXJpX3Jvb3QpOwoKCQlzZWxmOjpBZGRQYXJzZWRGaWxlKCRmaWxlbmFtZSk7CgoJCWlmKCAkcmV0dXJuUm9vdCApewoJCQkkcnVsZXMgPSAkdGhpcy0+R2V0UnVsZXMoICRmaWxlbmFtZSApOwoJCQkkcmV0dXJuID0gbmV3IExlc3NfVHJlZV9SdWxlc2V0KGFycmF5KCksICRydWxlcyApOwoJCX1lbHNlewoJCQkkdGhpcy0+X3BhcnNlKCAkZmlsZW5hbWUgKTsKCQkJJHJldHVybiA9ICR0aGlzOwoJCX0KCgkJaWYoICRwcmV2aW91c0ZpbGVJbmZvICl7CgkJCSR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbyA9ICRwcmV2aW91c0ZpbGVJbmZvOwoJCX0KCgkJcmV0dXJuICRyZXR1cm47Cgl9CgoKCS8qKgoJICogQWxsb3dzIGEgdXNlciB0byBzZXQgdmFyaWFibGVzIHZhbHVlcwoJICogQHBhcmFtIGFycmF5ICR2YXJzCgkgKiBAcmV0dXJuIExlc3NfUGFyc2VyCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBNb2RpZnlWYXJzKCAkdmFycyApewoKCQkkdGhpcy0+aW5wdXQgPSBMZXNzX1BhcnNlcjo6c2VyaWFsaXplVmFycyggJHZhcnMgKTsKCQkkdGhpcy0+X3BhcnNlKCk7CgoJCXJldHVybiAkdGhpczsKCX0KCgoJLyoqCgkgKiBAcGFyYW0gc3RyaW5nICRmaWxlbmFtZQoJICovCglwdWJsaWMgZnVuY3Rpb24gU2V0RmlsZUluZm8oICRmaWxlbmFtZSwgJHVyaV9yb290ID0gJycpewoKCQkkZmlsZW5hbWUgPSBMZXNzX0Vudmlyb25tZW50Ojpub3JtYWxpemVQYXRoKCRmaWxlbmFtZSk7CgkJJGRpcm5hbWUgPSBwcmVnX3JlcGxhY2UoJy9bXlwvXFxcXF0qJC8nLCcnLCRmaWxlbmFtZSk7CgoJCWlmKCAhZW1wdHkoJHVyaV9yb290KSApewoJCQkkdXJpX3Jvb3QgPSBydHJpbSgkdXJpX3Jvb3QsJy8nKS4nLyc7CgkJfQoKCQkkY3VycmVudEZpbGVJbmZvID0gYXJyYXkoKTsKCgkJLy9lbnRyeSBpbmZvCgkJaWYoIGlzc2V0KCR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbykgKXsKCQkJJGN1cnJlbnRGaWxlSW5mb1snZW50cnlQYXRoJ10gPSAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm9bJ2VudHJ5UGF0aCddOwoJCQkkY3VycmVudEZpbGVJbmZvWydlbnRyeVVyaSddID0gJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvWydlbnRyeVVyaSddOwoJCQkkY3VycmVudEZpbGVJbmZvWydyb290cGF0aCddID0gJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvWydyb290cGF0aCddOwoKCQl9ZWxzZXsKCQkJJGN1cnJlbnRGaWxlSW5mb1snZW50cnlQYXRoJ10gPSAkZGlybmFtZTsKCQkJJGN1cnJlbnRGaWxlSW5mb1snZW50cnlVcmknXSA9ICR1cmlfcm9vdDsKCQkJJGN1cnJlbnRGaWxlSW5mb1sncm9vdHBhdGgnXSA9ICRkaXJuYW1lOwoJCX0KCgkJJGN1cnJlbnRGaWxlSW5mb1snY3VycmVudERpcmVjdG9yeSddID0gJGRpcm5hbWU7CgkJJGN1cnJlbnRGaWxlSW5mb1snY3VycmVudFVyaSddID0gJHVyaV9yb290LmJhc2VuYW1lKCRmaWxlbmFtZSk7CgkJJGN1cnJlbnRGaWxlSW5mb1snZmlsZW5hbWUnXSA9ICRmaWxlbmFtZTsKCQkkY3VycmVudEZpbGVJbmZvWyd1cmlfcm9vdCddID0gJHVyaV9yb290OwoKCgkJLy9pbmhlcml0IHJlZmVyZW5jZQoJCWlmKCBpc3NldCgkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm9bJ3JlZmVyZW5jZSddKSAmJiAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm9bJ3JlZmVyZW5jZSddICl7CgkJCSRjdXJyZW50RmlsZUluZm9bJ3JlZmVyZW5jZSddID0gdHJ1ZTsKCQl9CgoJCSR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbyA9ICRjdXJyZW50RmlsZUluZm87Cgl9CgoKCS8qKgoJICogQGRlcHJlY2F0ZWQgMS41LjEuMgoJICoKCSAqLwoJcHVibGljIGZ1bmN0aW9uIFNldENhY2hlRGlyKCAkZGlyICl7CgoJCWlmKCAhZmlsZV9leGlzdHMoJGRpcikgKXsKCQkJaWYoIG1rZGlyKCRkaXIpICl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fUGFyc2VyKCdMZXNzLnBocCBjYWNoZSBkaXJlY3RvcnkgY291bGRuXCd0IGJlIGNyZWF0ZWQ6ICcuJGRpcik7CgoJCX1lbHNlaWYoICFpc19kaXIoJGRpcikgKXsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX1BhcnNlcignTGVzcy5waHAgY2FjaGUgZGlyZWN0b3J5IGRvZXNuXCd0IGV4aXN0OiAnLiRkaXIpOwoKCQl9ZWxzZWlmKCAhaXNfd3JpdGFibGUoJGRpcikgKXsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX1BhcnNlcignTGVzcy5waHAgY2FjaGUgZGlyZWN0b3J5IGlzblwndCB3cml0YWJsZTogJy4kZGlyKTsKCgkJfWVsc2V7CgkJCSRkaXIgPSBzZWxmOjpXaW5QYXRoKCRkaXIpOwoJCQlMZXNzX0NhY2hlOjokY2FjaGVfZGlyID0gcnRyaW0oJGRpciwnLycpLicvJzsKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQoKCgkvKioKCSAqIFNldCBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMgb3IgY2FsbGJhY2tzIHRoZSBwYXJzZXIgc2hvdWxkIHVzZSBmb3IgZGV0ZXJtaW5pbmcgaW1wb3J0IHBhdGhzCgkgKgoJICogQHBhcmFtIGFycmF5ICRkaXJzCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBTZXRJbXBvcnREaXJzKCAkZGlycyApewoJCUxlc3NfUGFyc2VyOjokb3B0aW9uc1snaW1wb3J0X2RpcnMnXSA9IGFycmF5KCk7CgoJCWZvcmVhY2goJGRpcnMgYXMgJHBhdGggPT4gJHVyaV9yb290KXsKCgkJCSRwYXRoID0gc2VsZjo6V2luUGF0aCgkcGF0aCk7CgkJCWlmKCAhZW1wdHkoJHBhdGgpICl7CgkJCQkkcGF0aCA9IHJ0cmltKCRwYXRoLCcvJykuJy8nOwoJCQl9CgoJCQlpZiAoICFpc19jYWxsYWJsZSgkdXJpX3Jvb3QpICl7CgkJCQkkdXJpX3Jvb3QgPSBzZWxmOjpXaW5QYXRoKCR1cmlfcm9vdCk7CgkJCQlpZiggIWVtcHR5KCR1cmlfcm9vdCkgKXsKCQkJCQkkdXJpX3Jvb3QgPSBydHJpbSgkdXJpX3Jvb3QsJy8nKS4nLyc7CgkJCQl9CgkJCX0KCgkJCUxlc3NfUGFyc2VyOjokb3B0aW9uc1snaW1wb3J0X2RpcnMnXVskcGF0aF0gPSAkdXJpX3Jvb3Q7CgkJfQoJfQoKCS8qKgoJICogQHBhcmFtIHN0cmluZyAkZmlsZV9wYXRoCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gX3BhcnNlKCAkZmlsZV9wYXRoID0gbnVsbCApewoJCSR0aGlzLT5ydWxlcyA9IGFycmF5X21lcmdlKCR0aGlzLT5ydWxlcywgJHRoaXMtPkdldFJ1bGVzKCAkZmlsZV9wYXRoICkpOwoJfQoKCgkvKioKCSAqIFJldHVybiB0aGUgcmVzdWx0cyBvZiBwYXJzZVByaW1hcnkgZm9yICRmaWxlX3BhdGgKCSAqIFVzZSBjYWNoZSBhbmQgc2F2ZSBjYWNoZWQgcmVzdWx0cyBpZiBwb3NzaWJsZQoJICoKCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkZmlsZV9wYXRoCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gR2V0UnVsZXMoICRmaWxlX3BhdGggKXsKCgkJJHRoaXMtPlNldElucHV0KCRmaWxlX3BhdGgpOwoKCQkkY2FjaGVfZmlsZSA9ICR0aGlzLT5DYWNoZUZpbGUoICRmaWxlX3BhdGggKTsKCQlpZiggJGNhY2hlX2ZpbGUgKXsKCQkJaWYoIExlc3NfUGFyc2VyOjokb3B0aW9uc1snY2FjaGVfbWV0aG9kJ10gPT0gJ2NhbGxiYWNrJyApewoJCQkJaWYoIGlzX2NhbGxhYmxlKExlc3NfUGFyc2VyOjokb3B0aW9uc1snY2FjaGVfY2FsbGJhY2tfZ2V0J10pICl7CgkJCQkJJGNhY2hlID0gY2FsbF91c2VyX2Z1bmNfYXJyYXkoCgkJCQkJCUxlc3NfUGFyc2VyOjokb3B0aW9uc1snY2FjaGVfY2FsbGJhY2tfZ2V0J10sCgkJCQkJCWFycmF5KCR0aGlzLCAkZmlsZV9wYXRoLCAkY2FjaGVfZmlsZSkKCQkJCQkpOwoKCQkJCQlpZiggJGNhY2hlICl7CgkJCQkJCSR0aGlzLT5VbnNldElucHV0KCk7CgkJCQkJCXJldHVybiAkY2FjaGU7CgkJCQkJfQoJCQkJfQoKCQkJfWVsc2VpZiggZmlsZV9leGlzdHMoJGNhY2hlX2ZpbGUpICl7CgkJCQlzd2l0Y2goTGVzc19QYXJzZXI6OiRvcHRpb25zWydjYWNoZV9tZXRob2QnXSl7CgoJCQkJCS8vIFVzaW5nIHNlcmlhbGl6ZQoJCQkJCS8vIEZhc3RlciBidXQgdXNlcyBtb3JlIG1lbW9yeQoJCQkJCWNhc2UgJ3NlcmlhbGl6ZSc6CgkJCQkJCSRjYWNoZSA9IHVuc2VyaWFsaXplKGZpbGVfZ2V0X2NvbnRlbnRzKCRjYWNoZV9maWxlKSk7CgkJCQkJCWlmKCAkY2FjaGUgKXsKCQkJCQkJCXRvdWNoKCRjYWNoZV9maWxlKTsKCQkJCQkJCSR0aGlzLT5VbnNldElucHV0KCk7CgkJCQkJCQlyZXR1cm4gJGNhY2hlOwoJCQkJCQl9CgkJCQkJYnJlYWs7CgoKCQkJCQkvLyBVc2luZyBnZW5lcmF0ZWQgcGhwIGNvZGUKCQkJCQljYXNlICd2YXJfZXhwb3J0JzoKCQkJCQljYXNlICdwaHAnOgoJCQkJCSR0aGlzLT5VbnNldElucHV0KCk7CgkJCQkJcmV0dXJuIGluY2x1ZGUoJGNhY2hlX2ZpbGUpOwoJCQkJfQoJCQl9CgkJfQoKCQkkcnVsZXMgPSAkdGhpcy0+cGFyc2VQcmltYXJ5KCk7CgoJCWlmKCAkdGhpcy0+cG9zIDwgJHRoaXMtPmlucHV0X2xlbiApewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ2h1bmsoJHRoaXMtPmlucHV0LCBudWxsLCAkdGhpcy0+ZnVydGhlc3QsICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbyk7CgkJfQoKCQkkdGhpcy0+VW5zZXRJbnB1dCgpOwoKCgkJLy9zYXZlIHRoZSBjYWNoZQoJCWlmKCAkY2FjaGVfZmlsZSApewoJCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydjYWNoZV9tZXRob2QnXSA9PSAnY2FsbGJhY2snICl7CgkJCQlpZiggaXNfY2FsbGFibGUoTGVzc19QYXJzZXI6OiRvcHRpb25zWydjYWNoZV9jYWxsYmFja19zZXQnXSkgKXsKCQkJCQljYWxsX3VzZXJfZnVuY19hcnJheSgKCQkJCQkJTGVzc19QYXJzZXI6OiRvcHRpb25zWydjYWNoZV9jYWxsYmFja19zZXQnXSwKCQkJCQkJYXJyYXkoJHRoaXMsICRmaWxlX3BhdGgsICRjYWNoZV9maWxlLCAkcnVsZXMpCgkJCQkJKTsKCQkJCX0KCgkJCX1lbHNlewoJCQkJLy9tc2coJ3dyaXRlIGNhY2hlIGZpbGUnKTsKCQkJCXN3aXRjaChMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NhY2hlX21ldGhvZCddKXsKCQkJCQljYXNlICdzZXJpYWxpemUnOgoJCQkJCQlmaWxlX3B1dF9jb250ZW50cyggJGNhY2hlX2ZpbGUsIHNlcmlhbGl6ZSgkcnVsZXMpICk7CgkJCQkJYnJlYWs7CgkJCQkJY2FzZSAncGhwJzoKCQkJCQkJZmlsZV9wdXRfY29udGVudHMoICRjYWNoZV9maWxlLCAnPD9waHAgcmV0dXJuICcuc2VsZjo6QXJnU3RyaW5nKCRydWxlcykuJzsgPz4nICk7CgkJCQkJYnJlYWs7CgkJCQkJY2FzZSAndmFyX2V4cG9ydCc6CgkJCQkJCS8vUmVxdWlyZXMgX19zZXRfc3RhdGUoKQoJCQkJCQlmaWxlX3B1dF9jb250ZW50cyggJGNhY2hlX2ZpbGUsICc8P3BocCByZXR1cm4gJy52YXJfZXhwb3J0KCRydWxlcyx0cnVlKS4nOyA/PicgKTsKCQkJCQlicmVhazsKCQkJCX0KCgkJCQlMZXNzX0NhY2hlOjpDbGVhbkNhY2hlKCk7CgkJCX0KCQl9CgoJCXJldHVybiAkcnVsZXM7Cgl9CgoKCS8qKgoJICogU2V0IHVwIHRoZSBpbnB1dCBidWZmZXIKCSAqCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBTZXRJbnB1dCggJGZpbGVfcGF0aCApewoKCQlpZiggJGZpbGVfcGF0aCApewoJCQkkdGhpcy0+aW5wdXQgPSBmaWxlX2dldF9jb250ZW50cyggJGZpbGVfcGF0aCApOwoJCX0KCgkJJHRoaXMtPnBvcyA9ICR0aGlzLT5mdXJ0aGVzdCA9IDA7CgoJCS8vIFJlbW92ZSBwb3RlbnRpYWwgVVRGIEJ5dGUgT3JkZXIgTWFyawoJCSR0aGlzLT5pbnB1dCA9IHByZWdfcmVwbGFjZSgnL1xcR1x4RUZceEJCXHhCRi8nLCAnJywgJHRoaXMtPmlucHV0KTsKCQkkdGhpcy0+aW5wdXRfbGVuID0gc3RybGVuKCR0aGlzLT5pbnB1dCk7CgoKCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydzb3VyY2VNYXAnXSAmJiAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8gKXsKCQkJJHVyaSA9ICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mb1snY3VycmVudFVyaSddOwoJCQlMZXNzX1BhcnNlcjo6JGNvbnRlbnRzTWFwWyR1cmldID0gJHRoaXMtPmlucHV0OwoJCX0KCgl9CgoKCS8qKgoJICogRnJlZSB1cCBzb21lIG1lbW9yeQoJICoKCSAqLwoJcHVibGljIGZ1bmN0aW9uIFVuc2V0SW5wdXQoKXsKCQl1bnNldCgkdGhpcy0+aW5wdXQsICR0aGlzLT5wb3MsICR0aGlzLT5pbnB1dF9sZW4sICR0aGlzLT5mdXJ0aGVzdCk7CgkJJHRoaXMtPnNhdmVTdGFjayA9IGFycmF5KCk7Cgl9CgoKCXB1YmxpYyBmdW5jdGlvbiBDYWNoZUZpbGUoICRmaWxlX3BhdGggKXsKCgkJaWYoICRmaWxlX3BhdGggJiYgJHRoaXMtPkNhY2hlRW5hYmxlZCgpICl7CgoJCQkkZW52ID0gZ2V0X29iamVjdF92YXJzKCR0aGlzLT5lbnYpOwoJCQl1bnNldCgkZW52WydmcmFtZXMnXSk7CgoJCQkkcGFydHMgPSBhcnJheSgpOwoJCQkkcGFydHNbXSA9ICRmaWxlX3BhdGg7CgkJCSRwYXJ0c1tdID0gZmlsZXNpemUoICRmaWxlX3BhdGggKTsKCQkJJHBhcnRzW10gPSBmaWxlbXRpbWUoICRmaWxlX3BhdGggKTsKCQkJJHBhcnRzW10gPSAkZW52OwoJCQkkcGFydHNbXSA9IExlc3NfVmVyc2lvbjo6Y2FjaGVfdmVyc2lvbjsKCQkJJHBhcnRzW10gPSBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NhY2hlX21ldGhvZCddOwoJCQlyZXR1cm4gTGVzc19DYWNoZTo6JGNhY2hlX2RpciAuIExlc3NfQ2FjaGU6OiRwcmVmaXggLiBiYXNlX2NvbnZlcnQoIHNoYTEoanNvbl9lbmNvZGUoJHBhcnRzKSApLCAxNiwgMzYpIC4gJy5sZXNzY2FjaGUnOwoJCX0KCX0KCgoJc3RhdGljIGZ1bmN0aW9uIEFkZFBhcnNlZEZpbGUoJGZpbGUpewoJCXNlbGY6OiRpbXBvcnRzW10gPSAkZmlsZTsKCX0KCglzdGF0aWMgZnVuY3Rpb24gQWxsUGFyc2VkRmlsZXMoKXsKCQlyZXR1cm4gc2VsZjo6JGltcG9ydHM7Cgl9CgoJLyoqCgkgKiBAcGFyYW0gc3RyaW5nICRmaWxlCgkgKi8KCXN0YXRpYyBmdW5jdGlvbiBGaWxlUGFyc2VkKCRmaWxlKXsKCQlyZXR1cm4gaW5fYXJyYXkoJGZpbGUsc2VsZjo6JGltcG9ydHMpOwoJfQoKCglmdW5jdGlvbiBzYXZlKCkgewoJCSR0aGlzLT5zYXZlU3RhY2tbXSA9ICR0aGlzLT5wb3M7Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiByZXN0b3JlKCkgewoJCSR0aGlzLT5wb3MgPSBhcnJheV9wb3AoJHRoaXMtPnNhdmVTdGFjayk7Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBmb3JnZXQoKXsKCQlhcnJheV9wb3AoJHRoaXMtPnNhdmVTdGFjayk7Cgl9CgoKCXByaXZhdGUgZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKCRvZmZzZXQgPSAwKSB7CgkJcmV0dXJuIHByZWdfbWF0Y2goJy9ccy8nLCR0aGlzLT5pbnB1dFsgJHRoaXMtPnBvcyArICRvZmZzZXRdKTsKCX0KCgkvKioKCSAqIFBhcnNlIGZyb20gYSB0b2tlbiwgcmVnZXhwIG9yIHN0cmluZywgYW5kIG1vdmUgZm9yd2FyZCBpZiBtYXRjaAoJICoKCSAqIEBwYXJhbSBhcnJheSAkdG9rcwoJICogQHJldHVybiBhcnJheQoJICovCglwcml2YXRlIGZ1bmN0aW9uIG1hdGNoKCR0b2tzKXsKCgkJLy8gVGhlIG1hdGNoIGlzIGNvbmZpcm1lZCwgYWRkIHRoZSBtYXRjaCBsZW5ndGggdG8gYHRoaXM6OnBvc2AsCgkJLy8gYW5kIGNvbnN1bWUgYW55IGV4dHJhIHdoaXRlLXNwYWNlIGNoYXJhY3RlcnMgKCcgJyB8fCAnXG4nKQoJCS8vIHdoaWNoIGNvbWUgYWZ0ZXIgdGhhdC4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IExlU1MncwoJCS8vIGdyYW1tYXIgaXMgbW9zdGx5IHdoaXRlLXNwYWNlIGluc2Vuc2l0aXZlLgoJCS8vCgoJCWZvcmVhY2goJHRva3MgYXMgJHRvayl7CgoJCQkkY2hhciA9ICR0b2tbMF07CgoJCQlpZiggJGNoYXIgPT09ICcvJyApewoJCQkJJG1hdGNoID0gJHRoaXMtPk1hdGNoUmVnKCR0b2spOwoKCQkJCWlmKCAkbWF0Y2ggKXsKCQkJCQlyZXR1cm4gY291bnQoJG1hdGNoKSA9PT0gMSA/ICRtYXRjaFswXSA6ICRtYXRjaDsKCQkJCX0KCgkJCX1lbHNlaWYoICRjaGFyID09PSAnIycgKXsKCQkJCSRtYXRjaCA9ICR0aGlzLT5NYXRjaENoYXIoJHRva1sxXSk7CgoJCQl9ZWxzZXsKCQkJCS8vIE5vbi10ZXJtaW5hbCwgbWF0Y2ggdXNpbmcgYSBmdW5jdGlvbiBjYWxsCgkJCQkkbWF0Y2ggPSAkdGhpcy0+JHRvaygpOwoKCQkJfQoKCQkJaWYoICRtYXRjaCApewoJCQkJcmV0dXJuICRtYXRjaDsKCQkJfQoJCX0KCX0KCgkvKioKCSAqIEBwYXJhbSBzdHJpbmdbXSAkdG9rcwoJICoKCSAqIEByZXR1cm4gc3RyaW5nCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gTWF0Y2hGdW5jcygkdG9rcyl7CgoJCWlmKCAkdGhpcy0+cG9zIDwgJHRoaXMtPmlucHV0X2xlbiApewoJCQlmb3JlYWNoKCR0b2tzIGFzICR0b2spewoJCQkJJG1hdGNoID0gJHRoaXMtPiR0b2soKTsKCQkJCWlmKCAkbWF0Y2ggKXsKCQkJCQlyZXR1cm4gJG1hdGNoOwoJCQkJfQoJCQl9CgkJfQoKCX0KCgkvLyBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LAoJcHJpdmF0ZSBmdW5jdGlvbiBNYXRjaENoYXIoJHRvayl7CgkJaWYoICgkdGhpcy0+cG9zIDwgJHRoaXMtPmlucHV0X2xlbikgJiYgKCR0aGlzLT5pbnB1dFskdGhpcy0+cG9zXSA9PT0gJHRvaykgKXsKCQkJJHRoaXMtPnNraXBXaGl0ZXNwYWNlKDEpOwoJCQlyZXR1cm4gJHRvazsKCQl9Cgl9CgoJLy8gTWF0Y2ggYSByZWdleHAgZnJvbSB0aGUgY3VycmVudCBzdGFydCBwb2ludAoJcHJpdmF0ZSBmdW5jdGlvbiBNYXRjaFJlZygkdG9rKXsKCgkJaWYoIHByZWdfbWF0Y2goJHRvaywgJHRoaXMtPmlucHV0LCAkbWF0Y2gsIDAsICR0aGlzLT5wb3MpICl7CgkJCSR0aGlzLT5za2lwV2hpdGVzcGFjZShzdHJsZW4oJG1hdGNoWzBdKSk7CgkJCXJldHVybiAkbWF0Y2g7CgkJfQoJfQoKCgkvKioKCSAqIFNhbWUgYXMgbWF0Y2goKSwgYnV0IGRvbid0IGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIHBhcnNlciwKCSAqIGp1c3QgcmV0dXJuIHRoZSBtYXRjaC4KCSAqCgkgKiBAcGFyYW0gc3RyaW5nICR0b2sKCSAqIEByZXR1cm4gaW50ZWdlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gUGVla1JlZygkdG9rKXsKCQlyZXR1cm4gcHJlZ19tYXRjaCgkdG9rLCAkdGhpcy0+aW5wdXQsICRtYXRjaCwgMCwgJHRoaXMtPnBvcyk7Cgl9CgoJLyoqCgkgKiBAcGFyYW0gc3RyaW5nICR0b2sKCSAqLwoJcHVibGljIGZ1bmN0aW9uIFBlZWtDaGFyKCR0b2spewoJCS8vcmV0dXJuICgkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc10gPT09ICR0b2sgKTsKCQlyZXR1cm4gKCR0aGlzLT5wb3MgPCAkdGhpcy0+aW5wdXRfbGVuKSAmJiAoJHRoaXMtPmlucHV0WyR0aGlzLT5wb3NdID09PSAkdG9rICk7Cgl9CgoKCS8qKgoJICogQHBhcmFtIGludGVnZXIgJGxlbmd0aAoJICovCglwdWJsaWMgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoJGxlbmd0aCl7CgoJCSR0aGlzLT5wb3MgKz0gJGxlbmd0aDsKCgkJZm9yKDsgJHRoaXMtPnBvcyA8ICR0aGlzLT5pbnB1dF9sZW47ICR0aGlzLT5wb3MrKyApewoJCQkkYyA9ICR0aGlzLT5pbnB1dFskdGhpcy0+cG9zXTsKCgkJCWlmKCAoJGMgIT09ICJcbiIpICYmICgkYyAhPT0gIlxyIikgJiYgKCRjICE9PSAiXHQiKSAmJiAoJGMgIT09ICcgJykgKXsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJfQoKCgkvKioKCSAqIEBwYXJhbSBzdHJpbmcgJHRvawoJICogQHBhcmFtIHN0cmluZ3xudWxsICRtc2cKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGV4cGVjdCgkdG9rLCAkbXNnID0gTlVMTCkgewoJCSRyZXN1bHQgPSAkdGhpcy0+bWF0Y2goIGFycmF5KCR0b2spICk7CgkJaWYgKCEkcmVzdWx0KSB7CgkJCSR0aGlzLT5FcnJvciggJG1zZwk/ICJFeHBlY3RlZCAnIiAuICR0b2sgLiAiJyBnb3QgJyIgLiAkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc10gLiAiJyIgOiAkbXNnICk7CgkJfSBlbHNlIHsKCQkJcmV0dXJuICRyZXN1bHQ7CgkJfQoJfQoKCS8qKgoJICogQHBhcmFtIHN0cmluZyAkdG9rCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBleHBlY3RDaGFyKCR0b2ssICRtc2cgPSBudWxsICl7CgkJJHJlc3VsdCA9ICR0aGlzLT5NYXRjaENoYXIoJHRvayk7CgkJaWYoICEkcmVzdWx0ICl7CgkJCSR0aGlzLT5FcnJvciggJG1zZyA/ICJFeHBlY3RlZCAnIiAuICR0b2sgLiAiJyBnb3QgJyIgLiAkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc10gLiAiJyIgOiAkbXNnICk7CgkJfWVsc2V7CgkJCXJldHVybiAkcmVzdWx0OwoJCX0KCX0KCgkvLwoJLy8gSGVyZSBpbiwgdGhlIHBhcnNpbmcgcnVsZXMvZnVuY3Rpb25zCgkvLwoJLy8gVGhlIGJhc2ljIHN0cnVjdHVyZSBvZiB0aGUgc3ludGF4IHRyZWUgZ2VuZXJhdGVkIGlzIGFzIGZvbGxvd3M6CgkvLwoJLy8gICBSdWxlc2V0IC0+ICBSdWxlIC0+IFZhbHVlIC0+IEV4cHJlc3Npb24gLT4gRW50aXR5CgkvLwoJLy8gSGVyZSdzIHNvbWUgTEVTUyBjb2RlOgoJLy8KCS8vCS5jbGFzcyB7CgkvLwkgIGNvbG9yOiAjZmZmOwoJLy8JICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOwoJLy8JICB3aWR0aDogQHcgKyA0cHg7CgkvLwkgID4gLmNoaWxkIHsuLi59CgkvLwl9CgkvLwoJLy8gQW5kIGhlcmUncyB3aGF0IHRoZSBwYXJzZSB0cmVlIG1pZ2h0IGxvb2sgbGlrZToKCS8vCgkvLwkgUnVsZXNldCAoU2VsZWN0b3IgJy5jbGFzcycsIFsKCS8vCQkgUnVsZSAoImNvbG9yIiwgIFZhbHVlIChbRXhwcmVzc2lvbiBbQ29sb3IgI2ZmZl1dKSkKCS8vCQkgUnVsZSAoImJvcmRlciIsIFZhbHVlIChbRXhwcmVzc2lvbiBbRGltZW5zaW9uIDFweF1bS2V5d29yZCAic29saWQiXVtDb2xvciAjMDAwXV0pKQoJLy8JCSBSdWxlICgid2lkdGgiLCAgVmFsdWUgKFtFeHByZXNzaW9uIFtPcGVyYXRpb24gIisiIFtWYXJpYWJsZSAiQHciXVtEaW1lbnNpb24gNHB4XV1dKSkKCS8vCQkgUnVsZXNldCAoU2VsZWN0b3IgW0VsZW1lbnQgJz4nLCAnLmNoaWxkJ10sIFsuLi5dKQoJLy8JIF0pCgkvLwoJLy8gIEluIGdlbmVyYWwsIG1vc3QgcnVsZXMgd2lsbCB0cnkgdG8gcGFyc2UgYSB0b2tlbiB3aXRoIHRoZSBgJCgpYCBmdW5jdGlvbiwgYW5kIGlmIHRoZSByZXR1cm4KCS8vICB2YWx1ZSBpcyB0cnVseSwgd2lsbCByZXR1cm4gYSBuZXcgbm9kZSwgb2YgdGhlIHJlbGV2YW50IHR5cGUuIFNvbWV0aW1lcywgd2UgbmVlZCB0byBjaGVjawoJLy8gIGZpcnN0LCBiZWZvcmUgcGFyc2luZywgdGhhdCdzIHdoZW4gd2UgdXNlIGBwZWVrKClgLgoJLy8KCgkvLwoJLy8gVGhlIGBwcmltYXJ5YCBydWxlIGlzIHRoZSAqZW50cnkqIGFuZCAqZXhpdCogcG9pbnQgb2YgdGhlIHBhcnNlci4KCS8vIFRoZSBydWxlcyBoZXJlIGNhbiBhcHBlYXIgYXQgYW55IGxldmVsIG9mIHRoZSBwYXJzZSB0cmVlLgoJLy8KCS8vIFRoZSByZWN1cnNpdmUgbmF0dXJlIG9mIHRoZSBncmFtbWFyIGlzIGFuIGludGVycGxheSBiZXR3ZWVuIHRoZSBgYmxvY2tgCgkvLyBydWxlLCB3aGljaCByZXByZXNlbnRzIGB7IC4uLiB9YCwgdGhlIGBydWxlc2V0YCBydWxlLCBhbmQgdGhpcyBgcHJpbWFyeWAgcnVsZSwKCS8vIGFzIHJlcHJlc2VudGVkIGJ5IHRoaXMgc2ltcGxpZmllZCBncmFtbWFyOgoJLy8KCS8vCSBwcmltYXJ5ICDihpIgIChydWxlc2V0IHwgcnVsZSkrCgkvLwkgcnVsZXNldCAg4oaSICBzZWxlY3RvcisgYmxvY2sKCS8vCSBibG9jawnihpIgICd7JyBwcmltYXJ5ICd9JwoJLy8KCS8vIE9ubHkgYXQgb25lIHBvaW50IGlzIHRoZSBwcmltYXJ5IHJ1bGUgbm90IGNhbGxlZCBmcm9tIHRoZQoJLy8gYmxvY2sgcnVsZTogYXQgdGhlIHJvb3QgbGV2ZWwuCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZVByaW1hcnkoKXsKCQkkcm9vdCA9IGFycmF5KCk7CgoJCXdoaWxlKCB0cnVlICl7CgoJCQlpZiggJHRoaXMtPnBvcyA+PSAkdGhpcy0+aW5wdXRfbGVuICl7CgkJCQlicmVhazsKCQkJfQoKCQkJJG5vZGUgPSAkdGhpcy0+cGFyc2VFeHRlbmQodHJ1ZSk7CgkJCWlmKCAkbm9kZSApewoJCQkJJHJvb3QgPSBhcnJheV9tZXJnZSgkcm9vdCwkbm9kZSk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJLy8kbm9kZSA9ICR0aGlzLT5NYXRjaEZ1bmNzKCBhcnJheSggJ3BhcnNlTWl4aW5EZWZpbml0aW9uJywgJ3BhcnNlUnVsZScsICdwYXJzZVJ1bGVzZXQnLCAncGFyc2VNaXhpbkNhbGwnLCAncGFyc2VDb21tZW50JywgJ3BhcnNlRGlyZWN0aXZlJykpOwoJCQkkbm9kZSA9ICR0aGlzLT5NYXRjaEZ1bmNzKCBhcnJheSggJ3BhcnNlTWl4aW5EZWZpbml0aW9uJywgJ3BhcnNlTmFtZVZhbHVlJywgJ3BhcnNlUnVsZScsICdwYXJzZVJ1bGVzZXQnLCAncGFyc2VNaXhpbkNhbGwnLCAncGFyc2VDb21tZW50JywgJ3BhcnNlUnVsZXNldENhbGwnLCAncGFyc2VEaXJlY3RpdmUnKSk7CgoJCQlpZiggJG5vZGUgKXsKCQkJCSRyb290W10gPSAkbm9kZTsKCQkJfWVsc2VpZiggISR0aGlzLT5NYXRjaFJlZygnL1xcR1tcc1xuO10rLycpICl7CgkJCQlicmVhazsKCQkJfQoKICAgICAgICAgICAgaWYoICR0aGlzLT5QZWVrQ2hhcignfScpICl7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJcmV0dXJuICRyb290OwoJfQoKCgoJLy8gV2UgY3JlYXRlIGEgQ29tbWVudCBub2RlIGZvciBDU1MgY29tbWVudHMgYC8qICovYCwKCS8vIGJ1dCBrZWVwIHRoZSBMZVNTIGNvbW1lbnRzIGAvL2Agc2lsZW50LCBieSBqdXN0IHNraXBwaW5nCgkvLyBvdmVyIHRoZW0uCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQ29tbWVudCgpewoKCQlpZiggJHRoaXMtPmlucHV0WyR0aGlzLT5wb3NdICE9PSAnLycgKXsKCQkJcmV0dXJuOwoJCX0KCgkJaWYoICR0aGlzLT5pbnB1dFskdGhpcy0+cG9zKzFdID09PSAnLycgKXsKCQkJJG1hdGNoID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHXC9cLy4qLycpOwoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajQoJ0xlc3NfVHJlZV9Db21tZW50JyxhcnJheSgkbWF0Y2hbMF0sIHRydWUsICR0aGlzLT5wb3MsICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbykpOwoJCX0KCgkJLy8kY29tbWVudCA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR1wvXCooPzpbXipdfFwqK1teXC8qXSkqXCorXC9cbj8vJyk7CgkJJGNvbW1lbnQgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEdcL1wqKD9zKS4qP1wqK1wvXG4/LycpOy8vbm90IHRoZSBzYW1lIGFzIGxlc3MuanMgdG8gcHJldmVudCBmYXRhbCBlcnJvcnMKCQlpZiggJGNvbW1lbnQgKXsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmo0KCdMZXNzX1RyZWVfQ29tbWVudCcsYXJyYXkoJGNvbW1lbnRbMF0sIGZhbHNlLCAkdGhpcy0+cG9zLCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQl9Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUNvbW1lbnRzKCl7CgkJJGNvbW1lbnRzID0gYXJyYXkoKTsKCgkJd2hpbGUoICR0aGlzLT5wb3MgPCAkdGhpcy0+aW5wdXRfbGVuICl7CgkJCSRjb21tZW50ID0gJHRoaXMtPnBhcnNlQ29tbWVudCgpOwoJCQlpZiggISRjb21tZW50ICl7CgkJCQlicmVhazsKCQkJfQoKCQkJJGNvbW1lbnRzW10gPSAkY29tbWVudDsKCQl9CgoJCXJldHVybiAkY29tbWVudHM7Cgl9CgoKCgkvLwoJLy8gQSBzdHJpbmcsIHdoaWNoIHN1cHBvcnRzIGVzY2FwaW5nICIgYW5kICcKCS8vCgkvLwkgIm1pbGt5IHdheSIgJ2hlXCdzIHRoZSBvbmUhJwoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VFbnRpdGllc1F1b3RlZCgpIHsKCQkkaiA9ICR0aGlzLT5wb3M7CgkJJGUgPSBmYWxzZTsKCQkkaW5kZXggPSAkdGhpcy0+cG9zOwoKCQlpZiggJHRoaXMtPmlucHV0WyR0aGlzLT5wb3NdID09PSAnficgKXsKCQkJJGorKzsKCQkJJGUgPSB0cnVlOyAvLyBFc2NhcGVkIHN0cmluZ3MKCQl9CgoJCWlmKCAkdGhpcy0+aW5wdXRbJGpdICE9ICciJyAmJiAkdGhpcy0+aW5wdXRbJGpdICE9PSAiJyIgKXsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCRlKSB7CgkJCSR0aGlzLT5NYXRjaENoYXIoJ34nKTsKCQl9CgogICAgICAgICAgICAgICAgLy8gRml4IGZvciAjMTI0OiBtYXRjaCBlc2NhcGVkIG5ld2xpbmVzCiAgICAgICAgICAgICAgICAvLyRzdHIgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEciKCg/OlteIlxcXFxcclxuXXxcXFxcLikqKSJ8XCcoKD86W15cJ1xcXFxcclxuXXxcXFxcLikqKVwnLycpOwoJCSRzdHIgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEciKCg/OlteIlxcXFxcclxuXXxcXFxcLnxcXFxcXHJcbnxcXFxcW1xuXHJcZl0pKikifFwnKCg/OlteXCdcXFxcXHJcbl18XFxcXC58XFxcXFxyXG58XFxcXFtcblxyXGZdKSopXCcvJyk7CgoJCWlmKCAkc3RyICl7CgkJCSRyZXN1bHQgPSAkc3RyWzBdWzBdID09ICciJyA/ICRzdHJbMV0gOiAkc3RyWzJdOwoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajUoJ0xlc3NfVHJlZV9RdW90ZWQnLGFycmF5KCRzdHJbMF0sICRyZXN1bHQsICRlLCAkaW5kZXgsICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbykgKTsKCQl9CgkJcmV0dXJuOwoJfQoKCgkvLwoJLy8gQSBjYXRjaC1hbGwgd29yZCwgc3VjaCBhczoKCS8vCgkvLwkgYmxhY2sgYm9yZGVyLWNvbGxhcHNlCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUVudGl0aWVzS2V5d29yZCgpewoKCQkvLyRrID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHW19BLVphLXotXVtfQS1aYS16MC05LV0qLycpOwoJCSRrID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHJXxcXEdbX0EtWmEtei1dW19BLVphLXowLTktXSovJyk7CgkJaWYoICRrICl7CgkJCSRrID0gJGtbMF07CgkJCSRjb2xvciA9ICR0aGlzLT5mcm9tS2V5d29yZCgkayk7CgkJCWlmKCAkY29sb3IgKXsKCQkJCXJldHVybiAkY29sb3I7CgkJCX0KCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfS2V5d29yZCcsJGspOwoJCX0KCX0KCgkvLyBkdXBsaWNhdGUgb2YgTGVzc19UcmVlX0NvbG9yOjpGcm9tS2V5d29yZAoJcHJpdmF0ZSBmdW5jdGlvbiBGcm9tS2V5d29yZCggJGtleXdvcmQgKXsKCQkka2V5d29yZCA9IHN0cnRvbG93ZXIoJGtleXdvcmQpOwoKCQlpZiggTGVzc19Db2xvcnM6Omhhc093blByb3BlcnR5KCRrZXl3b3JkKSApewoJCQkvLyBkZXRlY3QgbmFtZWQgY29sb3IKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfQ29sb3InLHN1YnN0cihMZXNzX0NvbG9yczo6Y29sb3IoJGtleXdvcmQpLCAxKSk7CgkJfQoKCQlpZiggJGtleXdvcmQgPT09ICd0cmFuc3BhcmVudCcgKXsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmozKCdMZXNzX1RyZWVfQ29sb3InLCBhcnJheSggYXJyYXkoMCwgMCwgMCksIDAsIHRydWUpKTsKCQl9Cgl9CgoJLy8KCS8vIEEgZnVuY3Rpb24gY2FsbAoJLy8KCS8vCSByZ2IoMjU1LCAwLCAyNTUpCgkvLwoJLy8gV2UgYWxzbyB0cnkgdG8gY2F0Y2ggSUUncyBgYWxwaGEoKWAsIGJ1dCBsZXQgdGhlIGBhbHBoYWAgcGFyc2VyCgkvLyBkZWFsIHdpdGggdGhlIGRldGFpbHMuCgkvLwoJLy8gVGhlIGFyZ3VtZW50cyBhcmUgcGFyc2VkIHdpdGggdGhlIGBlbnRpdGllcy5hcmd1bWVudHNgIHBhcnNlci4KCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRW50aXRpZXNDYWxsKCl7CgkJJGluZGV4ID0gJHRoaXMtPnBvczsKCgkJaWYoICFwcmVnX21hdGNoKCcvXFxHKFtcdy1dK3wlfHByb2dpZDpbXHdcLl0rKVwoLycsICR0aGlzLT5pbnB1dCwgJG5hbWUsMCwkdGhpcy0+cG9zKSApewoJCQlyZXR1cm47CgkJfQoJCSRuYW1lID0gJG5hbWVbMV07CgkJJG5hbWVMQyA9IHN0cnRvbG93ZXIoJG5hbWUpOwoKCQlpZiAoJG5hbWVMQyA9PT0gJ3VybCcpIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQkkdGhpcy0+cG9zICs9IHN0cmxlbigkbmFtZSk7CgoJCWlmKCAkbmFtZUxDID09PSAnYWxwaGEnICl7CgkJCSRhbHBoYV9yZXQgPSAkdGhpcy0+cGFyc2VBbHBoYSgpOwoJCQlpZiggJGFscGhhX3JldCApewoJCQkJcmV0dXJuICRhbHBoYV9yZXQ7CgkJCX0KCQl9CgoJCSR0aGlzLT5NYXRjaENoYXIoJygnKTsgLy8gUGFyc2UgdGhlICcoJyBhbmQgY29uc3VtZSB3aGl0ZXNwYWNlLgoKCQkkYXJncyA9ICR0aGlzLT5wYXJzZUVudGl0aWVzQXJndW1lbnRzKCk7CgoJCWlmKCAhJHRoaXMtPk1hdGNoQ2hhcignKScpICl7CgkJCXJldHVybjsKCQl9CgoJCWlmICgkbmFtZSkgewoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajQoJ0xlc3NfVHJlZV9DYWxsJyxhcnJheSgkbmFtZSwgJGFyZ3MsICRpbmRleCwgJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvKSApOwoJCX0KCX0KCgkvKioKCSAqIFBhcnNlIGEgbGlzdCBvZiBhcmd1bWVudHMKCSAqCgkgKiBAcmV0dXJuIGFycmF5CgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VFbnRpdGllc0FyZ3VtZW50cygpewoKCQkkYXJncyA9IGFycmF5KCk7CgkJd2hpbGUoIHRydWUgKXsKCQkJJGFyZyA9ICR0aGlzLT5NYXRjaEZ1bmNzKCBhcnJheSgncGFyc2VFbnRpdGllc0Fzc2lnbm1lbnQnLCdwYXJzZUV4cHJlc3Npb24nKSApOwoJCQlpZiggISRhcmcgKXsKCQkJCWJyZWFrOwoJCQl9CgoJCQkkYXJnc1tdID0gJGFyZzsKCQkJaWYoICEkdGhpcy0+TWF0Y2hDaGFyKCcsJykgKXsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCXJldHVybiAkYXJnczsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRW50aXRpZXNMaXRlcmFsKCl7CgkJcmV0dXJuICR0aGlzLT5NYXRjaEZ1bmNzKCBhcnJheSgncGFyc2VFbnRpdGllc0RpbWVuc2lvbicsJ3BhcnNlRW50aXRpZXNDb2xvcicsJ3BhcnNlRW50aXRpZXNRdW90ZWQnLCdwYXJzZVVuaWNvZGVEZXNjcmlwdG9yJykgKTsKCX0KCgkvLyBBc3NpZ25tZW50cyBhcmUgYXJndW1lbnQgZW50aXRpZXMgZm9yIGNhbGxzLgoJLy8gVGhleSBhcmUgcHJlc2VudCBpbiBpZSBmaWx0ZXIgcHJvcGVydGllcyBhcyBzaG93biBiZWxvdy4KCS8vCgkvLwkgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoICpvcGFjaXR5PTUwKiApCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUVudGl0aWVzQXNzaWdubWVudCgpIHsKCgkJJGtleSA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR1x3Kyg/PVxzPz0pLycpOwoJCWlmKCAhJGtleSApewoJCQlyZXR1cm47CgkJfQoKCQlpZiggISR0aGlzLT5NYXRjaENoYXIoJz0nKSApewoJCQlyZXR1cm47CgkJfQoKCQkkdmFsdWUgPSAkdGhpcy0+cGFyc2VFbnRpdHkoKTsKCQlpZiggJHZhbHVlICl7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqMignTGVzc19UcmVlX0Fzc2lnbm1lbnQnLGFycmF5KCRrZXlbMF0sICR2YWx1ZSkpOwoJCX0KCX0KCgkvLwoJLy8gUGFyc2UgdXJsKCkgdG9rZW5zCgkvLwoJLy8gV2UgdXNlIGEgc3BlY2lmaWMgcnVsZSBmb3IgdXJscywgYmVjYXVzZSB0aGV5IGRvbid0IHJlYWxseSBiZWhhdmUgbGlrZQoJLy8gc3RhbmRhcmQgZnVuY3Rpb24gY2FsbHMuIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIGFyZ3VtZW50IGRvZXNuJ3QgaGF2ZQoJLy8gdG8gYmUgZW5jbG9zZWQgd2l0aGluIGEgc3RyaW5nLCBzbyBpdCBjYW4ndCBiZSBwYXJzZWQgYXMgYW4gRXhwcmVzc2lvbi4KCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRW50aXRpZXNVcmwoKXsKCgoJCWlmKCAkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc10gIT09ICd1JyB8fCAhJHRoaXMtPm1hdGNoUmVnKCcvXFxHdXJsXCgvJykgKXsKCQkJcmV0dXJuOwoJCX0KCgkJJHZhbHVlID0gJHRoaXMtPm1hdGNoKCBhcnJheSgncGFyc2VFbnRpdGllc1F1b3RlZCcsJ3BhcnNlRW50aXRpZXNWYXJpYWJsZScsJy9cXEdkYXRhXDouKj9bXlwpXSsvJywnL1xcRyg/Oig/OlxcXFxbXChcKVwnIl0pfFteXChcKVwnIl0pKy8nKSApOwoJCWlmKCAhJHZhbHVlICl7CgkJCSR2YWx1ZSA9ICcnOwoJCX0KCgoJCSR0aGlzLT5leHBlY3RDaGFyKCcpJyk7CgoKCQlpZiggaXNzZXQoJHZhbHVlLT52YWx1ZSkgfHwgJHZhbHVlIGluc3RhbmNlb2YgTGVzc19UcmVlX1ZhcmlhYmxlICl7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqMignTGVzc19UcmVlX1VybCcsYXJyYXkoJHZhbHVlLCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQl9CgoJCXJldHVybiAkdGhpcy0+TmV3T2JqMignTGVzc19UcmVlX1VybCcsIGFycmF5KCAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX0Fub255bW91cycsJHZhbHVlKSwgJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvKSApOwoJfQoKCgkvLwoJLy8gQSBWYXJpYWJsZSBlbnRpdHksIHN1Y2ggYXMgYEBmaW5rYCwgaW4KCS8vCgkvLwkgd2lkdGg6IEBmaW5rICsgMnB4CgkvLwoJLy8gV2UgdXNlIGEgZGlmZmVyZW50IHBhcnNlciBmb3IgdmFyaWFibGUgZGVmaW5pdGlvbnMsCgkvLyBzZWUgYHBhcnNlcnMudmFyaWFibGVgLgoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VFbnRpdGllc1ZhcmlhYmxlKCl7CgkJJGluZGV4ID0gJHRoaXMtPnBvczsKCQlpZiAoJHRoaXMtPlBlZWtDaGFyKCdAJykgJiYgKCRuYW1lID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHQEA/W1x3LV0rLycpKSkgewoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajMoJ0xlc3NfVHJlZV9WYXJpYWJsZScsIGFycmF5KCAkbmFtZVswXSwgJGluZGV4LCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQl9Cgl9CgoKCS8vIEEgdmFyaWFibGUgZW50aXR5IHVzZWluZyB0aGUgcHJvdGVjdGl2ZSB7fSBlLmcuIEB7dmFyfQoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUVudGl0aWVzVmFyaWFibGVDdXJseSgpIHsKCQkkaW5kZXggPSAkdGhpcy0+cG9zOwoKCQlpZiggJHRoaXMtPmlucHV0X2xlbiA+ICgkdGhpcy0+cG9zKzEpICYmICR0aGlzLT5pbnB1dFskdGhpcy0+cG9zXSA9PT0gJ0AnICYmICgkY3VybHkgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEdAXHsoW1x3LV0rKVx9LycpKSApewoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajMoJ0xlc3NfVHJlZV9WYXJpYWJsZScsYXJyYXkoJ0AnLiRjdXJseVsxXSwgJGluZGV4LCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQl9Cgl9CgoJLy8KCS8vIEEgSGV4YWRlY2ltYWwgY29sb3IKCS8vCgkvLwkgIzRGM0MyRgoJLy8KCS8vIGByZ2JgIGFuZCBgaHNsYCBjb2xvcnMgYXJlIHBhcnNlZCB0aHJvdWdoIHRoZSBgZW50aXRpZXMuY2FsbGAgcGFyc2VyLgoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VFbnRpdGllc0NvbG9yKCl7CgkJaWYgKCR0aGlzLT5QZWVrQ2hhcignIycpICYmICgkcmdiID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHIyhbQS1GYS1mMC05XXs2fXxbQS1GYS1mMC05XXszfSkvJykpKSB7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX0NvbG9yJywkcmdiWzFdKTsKCQl9Cgl9CgoJLy8KCS8vIEEgRGltZW5zaW9uLCB0aGF0IGlzLCBhIG51bWJlciBhbmQgYSB1bml0CgkvLwoJLy8JIDAuNWVtIDk1JQoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VFbnRpdGllc0RpbWVuc2lvbigpewoKCQkkYyA9IEBvcmQoJHRoaXMtPmlucHV0WyR0aGlzLT5wb3NdKTsKCgkJLy9JcyB0aGUgZmlyc3QgY2hhciBvZiB0aGUgZGltZW5zaW9uIDAtOSwgJy4nLCAnKycgb3IgJy0nCgkJaWYgKCgkYyA+IDU3IHx8ICRjIDwgNDMpIHx8ICRjID09PSA0NyB8fCAkYyA9PSA0NCl7CgkJCXJldHVybjsKCQl9CgoJCSR2YWx1ZSA9ICR0aGlzLT5NYXRjaFJlZygnL1xcRyhbKy1dP1xkKlwuP1xkKykoJXxbYS16XSspPy8nKTsKCQlpZiggJHZhbHVlICl7CgoJCQlpZiggaXNzZXQoJHZhbHVlWzJdKSApewoJCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoyKCdMZXNzX1RyZWVfRGltZW5zaW9uJywgYXJyYXkoJHZhbHVlWzFdLCR2YWx1ZVsyXSkpOwoJCQl9CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX0RpbWVuc2lvbicsJHZhbHVlWzFdKTsKCQl9Cgl9CgoKCS8vCgkvLyBBIHVuaWNvZGUgZGVzY3JpcHRvciwgYXMgaXMgdXNlZCBpbiB1bmljb2RlLXJhbmdlCgkvLwoJLy8gVSswPz8gb3IgVSswMEExLTAwQTkKCS8vCglmdW5jdGlvbiBwYXJzZVVuaWNvZGVEZXNjcmlwdG9yKCkgewoJCSR1ZCA9ICR0aGlzLT5NYXRjaFJlZygnL1xcRyhVXCtbMC05YS1mQS1GP10rKShcLVswLTlhLWZBLUY/XSspPy8nKTsKCQlpZiggJHVkICl7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX1VuaWNvZGVEZXNjcmlwdG9yJywgJHVkWzBdKTsKCQl9Cgl9CgoKCS8vCgkvLyBKYXZhU2NyaXB0IGNvZGUgdG8gYmUgZXZhbHVhdGVkCgkvLwoJLy8JIGB3aW5kb3cubG9jYXRpb24uaHJlZmAKCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRW50aXRpZXNKYXZhc2NyaXB0KCl7CgkJJGUgPSBmYWxzZTsKCQkkaiA9ICR0aGlzLT5wb3M7CgkJaWYoICR0aGlzLT5pbnB1dFskal0gPT09ICd+JyApewoJCQkkaisrOwoJCQkkZSA9IHRydWU7CgkJfQoJCWlmKCAkdGhpcy0+aW5wdXRbJGpdICE9PSAnYCcgKXsKCQkJcmV0dXJuOwoJCX0KCQlpZiggJGUgKXsKCQkJJHRoaXMtPk1hdGNoQ2hhcignficpOwoJCX0KCQkkc3RyID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHYChbXmBdKilgLycpOwoJCWlmKCAkc3RyICl7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqMygnTGVzc19UcmVlX0phdmFzY3JpcHQnLCBhcnJheSgkc3RyWzFdLCAkdGhpcy0+cG9zLCAkZSkpOwoJCX0KCX0KCgoJLy8KCS8vIFRoZSB2YXJpYWJsZSBwYXJ0IG9mIGEgdmFyaWFibGUgZGVmaW5pdGlvbi4gVXNlZCBpbiB0aGUgYHJ1bGVgIHBhcnNlcgoJLy8KCS8vCSBAZmluazoKCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGUoKXsKCQlpZiAoJHRoaXMtPlBlZWtDaGFyKCdAJykgJiYgKCRuYW1lID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHKEBbXHctXSspXHMqOi8nKSkpIHsKCQkJcmV0dXJuICRuYW1lWzFdOwoJCX0KCX0KCgoJLy8KCS8vIFRoZSB2YXJpYWJsZSBwYXJ0IG9mIGEgdmFyaWFibGUgZGVmaW5pdGlvbi4gVXNlZCBpbiB0aGUgYHJ1bGVgIHBhcnNlcgoJLy8KCS8vIEBmaW5rKCk7CgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZVJ1bGVzZXRDYWxsKCl7CgoJCWlmKCAkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc10gPT09ICdAJyAmJiAoJG5hbWUgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEcoQFtcdy1dKylccypcKFxzKlwpXHMqOy8nKSkgKXsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfUnVsZXNldENhbGwnLCAkbmFtZVsxXSApOwoJCX0KCX0KCgoJLy8KCS8vIGV4dGVuZCBzeW50YXggLSB1c2VkIHRvIGV4dGVuZCBzZWxlY3RvcnMKCS8vCglmdW5jdGlvbiBwYXJzZUV4dGVuZCgkaXNSdWxlID0gZmFsc2UpewoKCQkkaW5kZXggPSAkdGhpcy0+cG9zOwoJCSRleHRlbmRMaXN0ID0gYXJyYXkoKTsKCgoJCWlmKCAhJHRoaXMtPk1hdGNoUmVnKCAkaXNSdWxlID8gJy9cXEcmOmV4dGVuZFwoLycgOiAnL1xcRzpleHRlbmRcKC8nICkgKXsgcmV0dXJuOyB9CgoJCWRvewoJCQkkb3B0aW9uID0gbnVsbDsKCQkJJGVsZW1lbnRzID0gYXJyYXkoKTsKCQkJd2hpbGUoIHRydWUgKXsKCQkJCSRvcHRpb24gPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEcoYWxsKSg/PVxzKihcKXwsKSkvJyk7CgkJCQlpZiggJG9wdGlvbiApeyBicmVhazsgfQoJCQkJJGUgPSAkdGhpcy0+cGFyc2VFbGVtZW50KCk7CgkJCQlpZiggISRlICl7IGJyZWFrOyB9CgkJCQkkZWxlbWVudHNbXSA9ICRlOwoJCQl9CgoJCQlpZiggJG9wdGlvbiApewoJCQkJJG9wdGlvbiA9ICRvcHRpb25bMV07CgkJCX0KCgkJCSRleHRlbmRMaXN0W10gPSAkdGhpcy0+TmV3T2JqMygnTGVzc19UcmVlX0V4dGVuZCcsIGFycmF5KCAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX1NlbGVjdG9yJywkZWxlbWVudHMpLCAkb3B0aW9uLCAkaW5kZXggKSk7CgoJCX13aGlsZSggJHRoaXMtPk1hdGNoQ2hhcigiLCIpICk7CgoJCSR0aGlzLT5leHBlY3QoJy9cXEdcKS8nKTsKCgkJaWYoICRpc1J1bGUgKXsKCQkJJHRoaXMtPmV4cGVjdCgnL1xcRzsvJyk7CgkJfQoKCQlyZXR1cm4gJGV4dGVuZExpc3Q7Cgl9CgoKCS8vCgkvLyBBIE1peGluIGNhbGwsIHdpdGggYW4gb3B0aW9uYWwgYXJndW1lbnQgbGlzdAoJLy8KCS8vCSAjbWl4aW5zID4gLnNxdWFyZSgjZmZmKTsKCS8vCSAucm91bmRlZCg0cHgsIGJsYWNrKTsKCS8vCSAuYnV0dG9uOwoJLy8KCS8vIFRoZSBgd2hpbGVgIGxvb3AgaXMgdGhlcmUgYmVjYXVzZSBtaXhpbnMgY2FuIGJlCgkvLyBuYW1lc3BhY2VkLCBidXQgd2Ugb25seSBzdXBwb3J0IHRoZSBjaGlsZCBhbmQgZGVzY2VuZGFudAoJLy8gc2VsZWN0b3IgZm9yIG5vdy4KCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlTWl4aW5DYWxsKCl7CgoJCSRjaGFyID0gJHRoaXMtPmlucHV0WyR0aGlzLT5wb3NdOwoJCWlmKCAkY2hhciAhPT0gJy4nICYmICRjaGFyICE9PSAnIycgKXsKCQkJcmV0dXJuOwoJCX0KCgkJJGluZGV4ID0gJHRoaXMtPnBvczsKCQkkdGhpcy0+c2F2ZSgpOyAvLyBzdG9wIHVzIGFic29yYmluZyBwYXJ0IG9mIGFuIGludmFsaWQgc2VsZWN0b3IKCgkJJGVsZW1lbnRzID0gJHRoaXMtPnBhcnNlTWl4aW5DYWxsRWxlbWVudHMoKTsKCgkJaWYoICRlbGVtZW50cyApewoKCQkJaWYoICR0aGlzLT5NYXRjaENoYXIoJygnKSApewoJCQkJJHJldHVybmVkID0gJHRoaXMtPnBhcnNlTWl4aW5BcmdzKHRydWUpOwoJCQkJJGFyZ3MgPSAkcmV0dXJuZWRbJ2FyZ3MnXTsKCQkJCSR0aGlzLT5leHBlY3RDaGFyKCcpJyk7CgkJCX1lbHNlewoJCQkJJGFyZ3MgPSBhcnJheSgpOwoJCQl9CgoJCQkkaW1wb3J0YW50ID0gJHRoaXMtPnBhcnNlSW1wb3J0YW50KCk7CgoJCQlpZiggJHRoaXMtPnBhcnNlRW5kKCkgKXsKCQkJCSR0aGlzLT5mb3JnZXQoKTsKCQkJCXJldHVybiAkdGhpcy0+TmV3T2JqNSgnTGVzc19UcmVlX01peGluX0NhbGwnLCBhcnJheSggJGVsZW1lbnRzLCAkYXJncywgJGluZGV4LCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8sICRpbXBvcnRhbnQpKTsKCQkJfQoJCX0KCgkJJHRoaXMtPnJlc3RvcmUoKTsKCX0KCgoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZU1peGluQ2FsbEVsZW1lbnRzKCl7CgkJJGVsZW1lbnRzID0gYXJyYXkoKTsKCQkkYyA9IG51bGw7CgoJCXdoaWxlKCB0cnVlICl7CgkJCSRlbGVtSW5kZXggPSAkdGhpcy0+cG9zOwoJCQkkZSA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR1sjLl0oPzpbXHctXXxcXFxcKD86W0EtRmEtZjAtOV17MSw2fSA/fFteQS1GYS1mMC05XSkpKy8nKTsKCQkJaWYoICEkZSApewoJCQkJYnJlYWs7CgkJCX0KCQkJJGVsZW1lbnRzW10gPSAkdGhpcy0+TmV3T2JqNCgnTGVzc19UcmVlX0VsZW1lbnQnLCBhcnJheSgkYywgJGVbMF0sICRlbGVtSW5kZXgsICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbykpOwoJCQkkYyA9ICR0aGlzLT5NYXRjaENoYXIoJz4nKTsKCQl9CgoJCXJldHVybiAkZWxlbWVudHM7Cgl9CgoKCgkvKioKCSAqIEBwYXJhbSBib29sZWFuICRpc0NhbGwKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZU1peGluQXJncyggJGlzQ2FsbCApewoJCSRleHByZXNzaW9ucyA9IGFycmF5KCk7CgkJJGFyZ3NTZW1pQ29sb24gPSBhcnJheSgpOwoJCSRpc1NlbWlDb2xvblNlcGVyYXRlZCA9IG51bGw7CgkJJGFyZ3NDb21tYSA9IGFycmF5KCk7CgkJJGV4cHJlc3Npb25Db250YWluc05hbWVkID0gbnVsbDsKCQkkbmFtZSA9IG51bGw7CgkJJHJldHVybmVyID0gYXJyYXkoJ2FyZ3MnPT5hcnJheSgpLCAndmFyaWFkaWMnPT4gZmFsc2UpOwoKCQkkdGhpcy0+c2F2ZSgpOwoKCQl3aGlsZSggdHJ1ZSApewoJCQlpZiggJGlzQ2FsbCApewoJCQkJJGFyZyA9ICR0aGlzLT5NYXRjaEZ1bmNzKCBhcnJheSggJ3BhcnNlRGV0YWNoZWRSdWxlc2V0JywncGFyc2VFeHByZXNzaW9uJyApICk7CgkJCX0gZWxzZSB7CgkJCQkkdGhpcy0+cGFyc2VDb21tZW50cygpOwoJCQkJaWYoICR0aGlzLT5pbnB1dFsgJHRoaXMtPnBvcyBdID09PSAnLicgJiYgJHRoaXMtPk1hdGNoUmVnKCcvXFxHXC57M30vJykgKXsKCQkJCQkkcmV0dXJuZXJbJ3ZhcmlhZGljJ10gPSB0cnVlOwoJCQkJCWlmKCAkdGhpcy0+TWF0Y2hDaGFyKCI7IikgJiYgISRpc1NlbWlDb2xvblNlcGVyYXRlZCApewoJCQkJCQkkaXNTZW1pQ29sb25TZXBlcmF0ZWQgPSB0cnVlOwoJCQkJCX0KCgkJCQkJaWYoICRpc1NlbWlDb2xvblNlcGVyYXRlZCApewoJCQkJCQkkYXJnc1NlbWlDb2xvbltdID0gYXJyYXkoJ3ZhcmlhZGljJz0+dHJ1ZSk7CgkJCQkJfWVsc2V7CgkJCQkJCSRhcmdzQ29tbWFbXSA9IGFycmF5KCd2YXJpYWRpYyc9PnRydWUpOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCX0KCQkJCSRhcmcgPSAkdGhpcy0+TWF0Y2hGdW5jcyggYXJyYXkoJ3BhcnNlRW50aXRpZXNWYXJpYWJsZScsJ3BhcnNlRW50aXRpZXNMaXRlcmFsJywncGFyc2VFbnRpdGllc0tleXdvcmQnKSApOwoJCQl9CgoJCQlpZiggISRhcmcgKXsKCQkJCWJyZWFrOwoJCQl9CgoKCQkJJG5hbWVMb29wID0gbnVsbDsKCQkJaWYoICRhcmcgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRXhwcmVzc2lvbiApewoJCQkJJGFyZy0+dGhyb3dBd2F5Q29tbWVudHMoKTsKCQkJfQoJCQkkdmFsdWUgPSAkYXJnOwoJCQkkdmFsID0gbnVsbDsKCgkJCWlmKCAkaXNDYWxsICl7CgkJCQkvLyBWYXJpYWJsZQoJCQkJaWYoIHByb3BlcnR5X2V4aXN0cygkYXJnLCd2YWx1ZScpICYmIGNvdW50KCRhcmctPnZhbHVlKSA9PSAxICl7CgkJCQkJJHZhbCA9ICRhcmctPnZhbHVlWzBdOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJHZhbCA9ICRhcmc7CgkJCX0KCgoJCQlpZiggJHZhbCBpbnN0YW5jZW9mIExlc3NfVHJlZV9WYXJpYWJsZSApewoKCQkJCWlmKCAkdGhpcy0+TWF0Y2hDaGFyKCc6JykgKXsKCQkJCQlpZiggJGV4cHJlc3Npb25zICl7CgkJCQkJCWlmKCAkaXNTZW1pQ29sb25TZXBlcmF0ZWQgKXsKCQkJCQkJCSR0aGlzLT5FcnJvcignQ2Fubm90IG1peCA7IGFuZCAsIGFzIGRlbGltaXRlciB0eXBlcycpOwoJCQkJCQl9CgkJCQkJCSRleHByZXNzaW9uQ29udGFpbnNOYW1lZCA9IHRydWU7CgkJCQkJfQoKCQkJCQkvLyB3ZSBkbyBub3Qgc3VwcG9ydCBzZXR0aW5nIGEgcnVsZXNldCBhcyBhIGRlZmF1bHQgdmFyaWFibGUgLSBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UKCQkJCQkvLyBIb3dldmVyIGlmIHdlIGRvIHdhbnQgdG8gYWRkIGl0LCB0aGVyZSBpcyBub3RoaW5nIGJsb2NraW5nIGl0LCBqdXN0IGRvbid0IGVycm9yCgkJCQkJLy8gYW5kIHJlbW92ZSBpc0NhbGwgZGVwZW5kZW5jeSBiZWxvdwoJCQkJCSR2YWx1ZSA9IG51bGw7CgkJCQkJaWYoICRpc0NhbGwgKXsKCQkJCQkJJHZhbHVlID0gJHRoaXMtPnBhcnNlRGV0YWNoZWRSdWxlc2V0KCk7CgkJCQkJfQoJCQkJCWlmKCAhJHZhbHVlICl7CgkJCQkJCSR2YWx1ZSA9ICR0aGlzLT5wYXJzZUV4cHJlc3Npb24oKTsKCQkJCQl9CgoJCQkJCWlmKCAhJHZhbHVlICl7CgkJCQkJCWlmKCAkaXNDYWxsICl7CgkJCQkJCQkkdGhpcy0+RXJyb3IoJ2NvdWxkIG5vdCB1bmRlcnN0YW5kIHZhbHVlIGZvciBuYW1lZCBhcmd1bWVudCcpOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJJHRoaXMtPnJlc3RvcmUoKTsKCQkJCQkJCSRyZXR1cm5lclsnYXJncyddID0gYXJyYXkoKTsKCQkJCQkJCXJldHVybiAkcmV0dXJuZXI7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCSRuYW1lTG9vcCA9ICgkbmFtZSA9ICR2YWwtPm5hbWUpOwoJCQkJfWVsc2VpZiggISRpc0NhbGwgJiYgJHRoaXMtPk1hdGNoUmVnKCcvXFxHXC57M30vJykgKXsKCQkJCQkkcmV0dXJuZXJbJ3ZhcmlhZGljJ10gPSB0cnVlOwoJCQkJCWlmKCAkdGhpcy0+TWF0Y2hDaGFyKCI7IikgJiYgISRpc1NlbWlDb2xvblNlcGVyYXRlZCApewoJCQkJCQkkaXNTZW1pQ29sb25TZXBlcmF0ZWQgPSB0cnVlOwoJCQkJCX0KCQkJCQlpZiggJGlzU2VtaUNvbG9uU2VwZXJhdGVkICl7CgkJCQkJCSRhcmdzU2VtaUNvbG9uW10gPSBhcnJheSgnbmFtZSc9PiAkYXJnLT5uYW1lLCAndmFyaWFkaWMnID0+IHRydWUpOwoJCQkJCX1lbHNlewoJCQkJCQkkYXJnc0NvbW1hW10gPSBhcnJheSgnbmFtZSc9PiAkYXJnLT5uYW1lLCAndmFyaWFkaWMnID0+IHRydWUpOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCX1lbHNlaWYoICEkaXNDYWxsICl7CgkJCQkJJG5hbWUgPSAkbmFtZUxvb3AgPSAkdmFsLT5uYW1lOwoJCQkJCSR2YWx1ZSA9IG51bGw7CgkJCQl9CgkJCX0KCgkJCWlmKCAkdmFsdWUgKXsKCQkJCSRleHByZXNzaW9uc1tdID0gJHZhbHVlOwoJCQl9CgoJCQkkYXJnc0NvbW1hW10gPSBhcnJheSgnbmFtZSc9PiRuYW1lTG9vcCwgJ3ZhbHVlJz0+JHZhbHVlICk7CgoJCQlpZiggJHRoaXMtPk1hdGNoQ2hhcignLCcpICl7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJaWYoICR0aGlzLT5NYXRjaENoYXIoJzsnKSB8fCAkaXNTZW1pQ29sb25TZXBlcmF0ZWQgKXsKCgkJCQlpZiggJGV4cHJlc3Npb25Db250YWluc05hbWVkICl7CgkJCQkJJHRoaXMtPkVycm9yKCdDYW5ub3QgbWl4IDsgYW5kICwgYXMgZGVsaW1pdGVyIHR5cGVzJyk7CgkJCQl9CgoJCQkJJGlzU2VtaUNvbG9uU2VwZXJhdGVkID0gdHJ1ZTsKCgkJCQlpZiggY291bnQoJGV4cHJlc3Npb25zKSA+IDEgKXsKCQkJCQkkdmFsdWUgPSAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX1ZhbHVlJywgJGV4cHJlc3Npb25zKTsKCQkJCX0KCQkJCSRhcmdzU2VtaUNvbG9uW10gPSBhcnJheSgnbmFtZSc9PiRuYW1lLCAndmFsdWUnPT4kdmFsdWUgKTsKCgkJCQkkbmFtZSA9IG51bGw7CgkJCQkkZXhwcmVzc2lvbnMgPSBhcnJheSgpOwoJCQkJJGV4cHJlc3Npb25Db250YWluc05hbWVkID0gZmFsc2U7CgkJCX0KCQl9CgoJCSR0aGlzLT5mb3JnZXQoKTsKCQkkcmV0dXJuZXJbJ2FyZ3MnXSA9ICgkaXNTZW1pQ29sb25TZXBlcmF0ZWQgPyAkYXJnc1NlbWlDb2xvbiA6ICRhcmdzQ29tbWEpOwoJCXJldHVybiAkcmV0dXJuZXI7Cgl9CgoKCgkvLwoJLy8gQSBNaXhpbiBkZWZpbml0aW9uLCB3aXRoIGEgbGlzdCBvZiBwYXJhbWV0ZXJzCgkvLwoJLy8JIC5yb3VuZGVkIChAcmFkaXVzOiAycHgsIEBjb2xvcikgewoJLy8JCS4uLgoJLy8JIH0KCS8vCgkvLyBVbnRpbCB3ZSBoYXZlIGEgZmluZXIgZ3JhaW5lZCBzdGF0ZS1tYWNoaW5lLCB3ZSBoYXZlIHRvCgkvLyBkbyBhIGxvb2stYWhlYWQsIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIGEgbWl4aW4gY2FsbC4KCS8vIFNlZSB0aGUgYHJ1bGVgIGZ1bmN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgoJLy8KCS8vIFdlIHN0YXJ0IGJ5IG1hdGNoaW5nIGAucm91bmRlZCAoYCwgYW5kIHRoZW4gcHJvY2VlZCBvbiB0bwoJLy8gdGhlIGFyZ3VtZW50IGxpc3QsIHdoaWNoIGhhcyBvcHRpb25hbCBkZWZhdWx0IHZhbHVlcy4KCS8vIFdlIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGluIGBwYXJhbXNgLCB3aXRoIGEgYHZhbHVlYCBrZXksCgkvLyBpZiB0aGVyZSBpcyBhIHZhbHVlLCBzdWNoIGFzIGluIHRoZSBjYXNlIG9mIGBAcmFkaXVzYC4KCS8vCgkvLyBPbmNlIHdlJ3ZlIGdvdCBvdXIgcGFyYW1zIGxpc3QsIGFuZCBhIGNsb3NpbmcgYClgLCB3ZSBwYXJzZQoJLy8gdGhlIGB7Li4ufWAgYmxvY2suCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZU1peGluRGVmaW5pdGlvbigpewoJCSRjb25kID0gbnVsbDsKCgkJJGNoYXIgPSAkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc107CgkJaWYoICgkY2hhciAhPT0gJy4nICYmICRjaGFyICE9PSAnIycpIHx8ICgkY2hhciA9PT0gJ3snICYmICR0aGlzLT5QZWVrUmVnKCcvXFxHW157XSpcfS8nKSkgKXsKCQkJcmV0dXJuOwoJCX0KCgkJJHRoaXMtPnNhdmUoKTsKCgkJJG1hdGNoID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHKFsjLl0oPzpbXHctXXxcXFwoPzpbQS1GYS1mMC05XXsxLDZ9ID98W15BLUZhLWYwLTldKSkrKVxzKlwoLycpOwoJCWlmKCAkbWF0Y2ggKXsKCQkJJG5hbWUgPSAkbWF0Y2hbMV07CgoJCQkkYXJnSW5mbyA9ICR0aGlzLT5wYXJzZU1peGluQXJncyggZmFsc2UgKTsKCQkJJHBhcmFtcyA9ICRhcmdJbmZvWydhcmdzJ107CgkJCSR2YXJpYWRpYyA9ICRhcmdJbmZvWyd2YXJpYWRpYyddOwoKCgkJCS8vIC5taXhpbmNhbGwoIkB7YX0iKTsKCQkJLy8gbG9va3MgYSBiaXQgbGlrZSBhIG1peGluIGRlZmluaXRpb24uLgoJCQkvLyBhbHNvCgkJCS8vIC5taXhpbmNhbGwoQGE6IHtydWxlOiBzZXQ7fSk7CgkJCS8vIHNvIHdlIGhhdmUgdG8gYmUgbmljZSBhbmQgcmVzdG9yZQoJCQlpZiggISR0aGlzLT5NYXRjaENoYXIoJyknKSApewoJCQkJJHRoaXMtPmZ1cnRoZXN0ID0gJHRoaXMtPnBvczsKCQkJCSR0aGlzLT5yZXN0b3JlKCk7CgkJCQlyZXR1cm47CgkJCX0KCgoJCQkkdGhpcy0+cGFyc2VDb21tZW50cygpOwoKCQkJaWYgKCR0aGlzLT5NYXRjaFJlZygnL1xcR3doZW4vJykpIHsgLy8gR3VhcmQKCQkJCSRjb25kID0gJHRoaXMtPmV4cGVjdCgncGFyc2VDb25kaXRpb25zJywgJ0V4cGVjdGVkIGNvbmRpdGlvbnMnKTsKCQkJfQoKCQkJJHJ1bGVzZXQgPSAkdGhpcy0+cGFyc2VCbG9jaygpOwoKCQkJaWYoIGlzX2FycmF5KCRydWxlc2V0KSApewoJCQkJJHRoaXMtPmZvcmdldCgpOwoJCQkJcmV0dXJuICR0aGlzLT5OZXdPYmo1KCdMZXNzX1RyZWVfTWl4aW5fRGVmaW5pdGlvbicsIGFycmF5KCAkbmFtZSwgJHBhcmFtcywgJHJ1bGVzZXQsICRjb25kLCAkdmFyaWFkaWMpKTsKCQkJfQoKCQkJJHRoaXMtPnJlc3RvcmUoKTsKCQl9ZWxzZXsKCQkJJHRoaXMtPmZvcmdldCgpOwoJCX0KCX0KCgkvLwoJLy8gRW50aXRpZXMgYXJlIHRoZSBzbWFsbGVzdCByZWNvZ25pemVkIHRva2VuLAoJLy8gYW5kIGNhbiBiZSBmb3VuZCBpbnNpZGUgYSBydWxlJ3MgdmFsdWUuCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUVudGl0eSgpewoKCQlyZXR1cm4gJHRoaXMtPk1hdGNoRnVuY3MoIGFycmF5KCdwYXJzZUVudGl0aWVzTGl0ZXJhbCcsJ3BhcnNlRW50aXRpZXNWYXJpYWJsZScsJ3BhcnNlRW50aXRpZXNVcmwnLCdwYXJzZUVudGl0aWVzQ2FsbCcsJ3BhcnNlRW50aXRpZXNLZXl3b3JkJywncGFyc2VFbnRpdGllc0phdmFzY3JpcHQnLCdwYXJzZUNvbW1lbnQnKSApOwoJfQoKCS8vCgkvLyBBIFJ1bGUgdGVybWluYXRvci4gTm90ZSB0aGF0IHdlIHVzZSBgcGVlaygpYCB0byBjaGVjayBmb3IgJ30nLAoJLy8gYmVjYXVzZSB0aGUgYGJsb2NrYCBydWxlIHdpbGwgYmUgZXhwZWN0aW5nIGl0LCBidXQgd2Ugc3RpbGwgbmVlZCB0byBtYWtlIHN1cmUKCS8vIGl0J3MgdGhlcmUsIGlmICc7JyB3YXMgb21taXR0ZWQuCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUVuZCgpewoJCXJldHVybiAkdGhpcy0+TWF0Y2hDaGFyKCc7JykgfHwgJHRoaXMtPlBlZWtDaGFyKCd9Jyk7Cgl9CgoJLy8KCS8vIElFJ3MgYWxwaGEgZnVuY3Rpb24KCS8vCgkvLwkgYWxwaGEob3BhY2l0eT04OCkKCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQWxwaGEoKXsKCgkJaWYgKCAhICR0aGlzLT5NYXRjaFJlZygnL1xcR1wob3BhY2l0eT0vaScpKSB7CgkJCXJldHVybjsKCQl9CgoJCSR2YWx1ZSA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR1swLTldKy8nKTsKCQlpZiggJHZhbHVlICl7CgkJCSR2YWx1ZSA9ICR2YWx1ZVswXTsKCQl9ZWxzZXsKCQkJJHZhbHVlID0gJHRoaXMtPnBhcnNlRW50aXRpZXNWYXJpYWJsZSgpOwoJCQlpZiggISR2YWx1ZSApewoJCQkJcmV0dXJuOwoJCQl9CgkJfQoKCQkkdGhpcy0+ZXhwZWN0Q2hhcignKScpOwoJCXJldHVybiAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX0FscGhhJywkdmFsdWUpOwoJfQoKCgkvLwoJLy8gQSBTZWxlY3RvciBFbGVtZW50CgkvLwoJLy8JIGRpdgoJLy8JICsgaDEKCS8vCSAjc29ja3MKCS8vCSBpbnB1dFt0eXBlPSJ0ZXh0Il0KCS8vCgkvLyBFbGVtZW50cyBhcmUgdGhlIGJ1aWxkaW5nIGJsb2NrcyBmb3IgU2VsZWN0b3JzLAoJLy8gdGhleSBhcmUgbWFkZSBvdXQgb2YgYSBgQ29tYmluYXRvcmAgKHNlZSBjb21iaW5hdG9yIHJ1bGUpLAoJLy8gYW5kIGFuIGVsZW1lbnQgbmFtZSwgc3VjaCBhcyBhIHRhZyBhIGNsYXNzLCBvciBgKmAuCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUVsZW1lbnQoKXsKCQkkYyA9ICR0aGlzLT5wYXJzZUNvbWJpbmF0b3IoKTsKCQkkaW5kZXggPSAkdGhpcy0+cG9zOwoKCQkkZSA9ICR0aGlzLT5tYXRjaCggYXJyYXkoJy9cXEcoPzpcZCtcLlxkK3xcZCspJS8nLCAnL1xcRyg/OlsuI10/fDoqKSg/Oltcdy1dfFteXHgwMC1ceDlmXXxcXFxcKD86W0EtRmEtZjAtOV17MSw2fSA/fFteQS1GYS1mMC05XSkpKy8nLAoJCQknIyonLCAnIyYnLCAncGFyc2VBdHRyaWJ1dGUnLCAnL1xcR1woW14oKUBdK1wpLycsICcvXFxHW1wuI10oPz1AKS8nLCAncGFyc2VFbnRpdGllc1ZhcmlhYmxlQ3VybHknKSApOwoKCQlpZiggaXNfbnVsbCgkZSkgKXsKCQkJJHRoaXMtPnNhdmUoKTsKCQkJaWYoICR0aGlzLT5NYXRjaENoYXIoJygnKSApewoJCQkJaWYoICgkdiA9ICR0aGlzLT5wYXJzZVNlbGVjdG9yKCkpICYmICR0aGlzLT5NYXRjaENoYXIoJyknKSApewoJCQkJCSRlID0gJHRoaXMtPk5ld09iajEoJ0xlc3NfVHJlZV9QYXJlbicsJHYpOwoJCQkJCSR0aGlzLT5mb3JnZXQoKTsKCQkJCX1lbHNlewoJCQkJCSR0aGlzLT5yZXN0b3JlKCk7CgkJCQl9CgkJCX1lbHNlewoJCQkJJHRoaXMtPmZvcmdldCgpOwoJCQl9CgkJfQoKCQlpZiggIWlzX251bGwoJGUpICl7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqNCgnTGVzc19UcmVlX0VsZW1lbnQnLGFycmF5KCAkYywgJGUsICRpbmRleCwgJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvKSk7CgkJfQoJfQoKCS8vCgkvLyBDb21iaW5hdG9ycyBjb21iaW5lIGVsZW1lbnRzIHRvZ2V0aGVyLCBpbiBhIFNlbGVjdG9yLgoJLy8KCS8vIEJlY2F1c2Ugb3VyIHBhcnNlciBpc24ndCB3aGl0ZS1zcGFjZSBzZW5zaXRpdmUsIHNwZWNpYWwgY2FyZQoJLy8gaGFzIHRvIGJlIHRha2VuLCB3aGVuIHBhcnNpbmcgdGhlIGRlc2NlbmRhbnQgY29tYmluYXRvciwgYCBgLAoJLy8gYXMgaXQncyBhbiBlbXB0eSBzcGFjZS4gV2UgaGF2ZSB0byBjaGVjayB0aGUgcHJldmlvdXMgY2hhcmFjdGVyCgkvLyBpbiB0aGUgaW5wdXQsIHRvIHNlZSBpZiBpdCdzIGEgYCBgIGNoYXJhY3Rlci4KCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQ29tYmluYXRvcigpewoJCWlmKCAkdGhpcy0+cG9zIDwgJHRoaXMtPmlucHV0X2xlbiApewoJCQkkYyA9ICR0aGlzLT5pbnB1dFskdGhpcy0+cG9zXTsKCQkJaWYgKCRjID09PSAnPicgfHwgJGMgPT09ICcrJyB8fCAkYyA9PT0gJ34nIHx8ICRjID09PSAnfCcgfHwgJGMgPT09ICdeJyApewoKCQkJCSR0aGlzLT5wb3MrKzsKCQkJCWlmKCAkdGhpcy0+aW5wdXRbJHRoaXMtPnBvc10gPT09ICdeJyApewoJCQkJCSRjID0gJ15eJzsKCQkJCQkkdGhpcy0+cG9zKys7CgkJCQl9CgoJCQkJJHRoaXMtPnNraXBXaGl0ZXNwYWNlKDApOwoKCQkJCXJldHVybiAkYzsKCQkJfQoKCQkJaWYoICR0aGlzLT5wb3MgPiAwICYmICR0aGlzLT5pc1doaXRlc3BhY2UoLTEpICl7CgkJCQlyZXR1cm4gJyAnOwoJCQl9CgkJfQoJfQoKCS8vCgkvLyBBIENTUyBzZWxlY3RvciAoc2VlIHNlbGVjdG9yIGJlbG93KQoJLy8gd2l0aCBsZXNzIGV4dGVuc2lvbnMgZS5nLiB0aGUgYWJpbGl0eSB0byBleHRlbmQgYW5kIGd1YXJkCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUxlc3NTZWxlY3RvcigpewoJCXJldHVybiAkdGhpcy0+cGFyc2VTZWxlY3Rvcih0cnVlKTsKCX0KCgkvLwoJLy8gQSBDU1MgU2VsZWN0b3IKCS8vCgkvLwkgLmNsYXNzID4gZGl2ICsgaDEKCS8vCSBsaSBhOmhvdmVyCgkvLwoJLy8gU2VsZWN0b3JzIGFyZSBtYWRlIG91dCBvZiBvbmUgb3IgbW9yZSBFbGVtZW50cywgc2VlIGFib3ZlLgoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VTZWxlY3RvciggJGlzTGVzcyA9IGZhbHNlICl7CgkJJGVsZW1lbnRzID0gYXJyYXkoKTsKCQkkZXh0ZW5kTGlzdCA9IGFycmF5KCk7CgkJJGNvbmRpdGlvbiA9IG51bGw7CgkJJHdoZW4gPSBmYWxzZTsKCQkkZXh0ZW5kID0gZmFsc2U7CgkJJGUgPSBudWxsOwoJCSRjID0gbnVsbDsKCQkkaW5kZXggPSAkdGhpcy0+cG9zOwoKCQl3aGlsZSggKCRpc0xlc3MgJiYgKCRleHRlbmQgPSAkdGhpcy0+cGFyc2VFeHRlbmQoKSkpIHx8ICgkaXNMZXNzICYmICgkd2hlbiA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR3doZW4vJykgKSkgfHwgKCRlID0gJHRoaXMtPnBhcnNlRWxlbWVudCgpKSApewoJCQlpZiggJHdoZW4gKXsKCQkJCSRjb25kaXRpb24gPSAkdGhpcy0+ZXhwZWN0KCdwYXJzZUNvbmRpdGlvbnMnLCAnZXhwZWN0ZWQgY29uZGl0aW9uJyk7CgkJCX1lbHNlaWYoICRjb25kaXRpb24gKXsKCQkJCS8vZXJyb3IoIkNTUyBndWFyZCBjYW4gb25seSBiZSB1c2VkIGF0IHRoZSBlbmQgb2Ygc2VsZWN0b3IiKTsKCQkJfWVsc2VpZiggJGV4dGVuZCApewoJCQkJJGV4dGVuZExpc3QgPSBhcnJheV9tZXJnZSgkZXh0ZW5kTGlzdCwkZXh0ZW5kKTsKCQkJfWVsc2V7CgkJCQkvL2lmKCBjb3VudCgkZXh0ZW5kTGlzdCkgKXsKCQkJCQkvL2Vycm9yKCJFeHRlbmQgY2FuIG9ubHkgYmUgdXNlZCBhdCB0aGUgZW5kIG9mIHNlbGVjdG9yIik7CgkJCQkvL30KCQkJCWlmKCAkdGhpcy0+cG9zIDwgJHRoaXMtPmlucHV0X2xlbiApewoJCQkJCSRjID0gJHRoaXMtPmlucHV0WyAkdGhpcy0+cG9zIF07CgkJCQl9CgkJCQkkZWxlbWVudHNbXSA9ICRlOwoJCQkJJGUgPSBudWxsOwoJCQl9CgoJCQlpZiggJGMgPT09ICd7JyB8fCAkYyA9PT0gJ30nIHx8ICRjID09PSAnOycgfHwgJGMgPT09ICcsJyB8fCAkYyA9PT0gJyknKSB7IGJyZWFrOyB9CgkJfQoKCQlpZiggJGVsZW1lbnRzICl7CgkJCXJldHVybiAkdGhpcy0+TmV3T2JqNSgnTGVzc19UcmVlX1NlbGVjdG9yJyxhcnJheSgkZWxlbWVudHMsICRleHRlbmRMaXN0LCAkY29uZGl0aW9uLCAkaW5kZXgsICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbykpOwoJCX0KCQlpZiggJGV4dGVuZExpc3QgKSB7CgkJCSR0aGlzLT5FcnJvcignRXh0ZW5kIG11c3QgYmUgdXNlZCB0byBleHRlbmQgYSBzZWxlY3RvciwgaXQgY2Fubm90IGJlIHVzZWQgb24gaXRzIG93bicpOwoJCX0KCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlVGFnKCl7CgkJcmV0dXJuICggJHRhZyA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR1tBLVphLXpdW0EtWmEtei1dKlswLTldPy8nKSApID8gJHRhZyA6ICR0aGlzLT5NYXRjaENoYXIoJyonKTsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQXR0cmlidXRlKCl7CgoJCSR2YWwgPSBudWxsOwoKCQlpZiggISR0aGlzLT5NYXRjaENoYXIoJ1snKSApewoJCQlyZXR1cm47CgkJfQoKCQkka2V5ID0gJHRoaXMtPnBhcnNlRW50aXRpZXNWYXJpYWJsZUN1cmx5KCk7CgkJaWYoICEka2V5ICl7CgkJCSRrZXkgPSAkdGhpcy0+ZXhwZWN0KCcvXFxHKD86W19BLVphLXowLTktXCpdKlx8KT8oPzpbX0EtWmEtejAtOS1dfFxcXFwuKSsvJyk7CgkJfQoKCQkkb3AgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEdbfH4qJF5dPz0vJyk7CgkJaWYoICRvcCApewoJCQkkdmFsID0gJHRoaXMtPm1hdGNoKCBhcnJheSgncGFyc2VFbnRpdGllc1F1b3RlZCcsJy9cXEdbMC05XSslLycsJy9cXEdbXHctXSsvJywncGFyc2VFbnRpdGllc1ZhcmlhYmxlQ3VybHknKSApOwoJCX0KCgkJJHRoaXMtPmV4cGVjdENoYXIoJ10nKTsKCgkJcmV0dXJuICR0aGlzLT5OZXdPYmozKCdMZXNzX1RyZWVfQXR0cmlidXRlJyxhcnJheSggJGtleSwgJG9wWzBdLCAkdmFsKSk7Cgl9CgoJLy8KCS8vIFRoZSBgYmxvY2tgIHJ1bGUgaXMgdXNlZCBieSBgcnVsZXNldGAgYW5kIGBtaXhpbi5kZWZpbml0aW9uYC4KCS8vIEl0J3MgYSB3cmFwcGVyIGFyb3VuZCB0aGUgYHByaW1hcnlgIHJ1bGUsIHdpdGggYWRkZWQgYHt9YC4KCS8vCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQmxvY2soKXsKCQlpZiggJHRoaXMtPk1hdGNoQ2hhcigneycpICl7CgkJCSRjb250ZW50ID0gJHRoaXMtPnBhcnNlUHJpbWFyeSgpOwoJCQlpZiggJHRoaXMtPk1hdGNoQ2hhcignfScpICl7CgkJCQlyZXR1cm4gJGNvbnRlbnQ7CgkJCX0KCQl9Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUJsb2NrUnVsZXNldCgpewoJCSRibG9jayA9ICR0aGlzLT5wYXJzZUJsb2NrKCk7CgoJCWlmKCAkYmxvY2sgKXsKCQkJJGJsb2NrID0gJHRoaXMtPk5ld09iajIoJ0xlc3NfVHJlZV9SdWxlc2V0JyxhcnJheSggbnVsbCwgJGJsb2NrKSk7CgkJfQoKCQlyZXR1cm4gJGJsb2NrOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VEZXRhY2hlZFJ1bGVzZXQoKXsKCQkkYmxvY2tSdWxlc2V0ID0gJHRoaXMtPnBhcnNlQmxvY2tSdWxlc2V0KCk7CgkJaWYoICRibG9ja1J1bGVzZXQgKXsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfRGV0YWNoZWRSdWxlc2V0JywkYmxvY2tSdWxlc2V0KTsKCQl9Cgl9CgoJLy8KCS8vIGRpdiwgLmNsYXNzLCBib2R5ID4gcCB7Li4ufQoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VSdWxlc2V0KCl7CgkJJHNlbGVjdG9ycyA9IGFycmF5KCk7CgoJCSR0aGlzLT5zYXZlKCk7CgoJCXdoaWxlKCB0cnVlICl7CgkJCSRzID0gJHRoaXMtPnBhcnNlTGVzc1NlbGVjdG9yKCk7CgkJCWlmKCAhJHMgKXsKCQkJCWJyZWFrOwoJCQl9CgkJCSRzZWxlY3RvcnNbXSA9ICRzOwoJCQkkdGhpcy0+cGFyc2VDb21tZW50cygpOwoKCQkJaWYoICRzLT5jb25kaXRpb24gJiYgY291bnQoJHNlbGVjdG9ycykgPiAxICl7CgkJCQkkdGhpcy0+RXJyb3IoJ0d1YXJkcyBhcmUgb25seSBjdXJyZW50bHkgYWxsb3dlZCBvbiBhIHNpbmdsZSBzZWxlY3Rvci4nKTsKCQkJfQoKCQkJaWYoICEkdGhpcy0+TWF0Y2hDaGFyKCcsJykgKXsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmKCAkcy0+Y29uZGl0aW9uICl7CgkJCQkkdGhpcy0+RXJyb3IoJ0d1YXJkcyBhcmUgb25seSBjdXJyZW50bHkgYWxsb3dlZCBvbiBhIHNpbmdsZSBzZWxlY3Rvci4nKTsKCQkJfQoJCQkkdGhpcy0+cGFyc2VDb21tZW50cygpOwoJCX0KCgoJCWlmKCAkc2VsZWN0b3JzICl7CgkJCSRydWxlcyA9ICR0aGlzLT5wYXJzZUJsb2NrKCk7CgkJCWlmKCBpc19hcnJheSgkcnVsZXMpICl7CgkJCQkkdGhpcy0+Zm9yZ2V0KCk7CgkJCQlyZXR1cm4gJHRoaXMtPk5ld09iajIoJ0xlc3NfVHJlZV9SdWxlc2V0JyxhcnJheSggJHNlbGVjdG9ycywgJHJ1bGVzKSk7IC8vTGVzc19FbnZpcm9ubWVudDo6JHN0cmljdEltcG9ydHMKCQkJfQoJCX0KCgkJLy8gQmFja3RyYWNrCgkJJHRoaXMtPmZ1cnRoZXN0ID0gJHRoaXMtPnBvczsKCQkkdGhpcy0+cmVzdG9yZSgpOwoJfQoKCS8qKgoJICogQ3VzdG9tIGxlc3MucGhwIHBhcnNlIGZ1bmN0aW9uIGZvciBmaW5kaW5nIHNpbXBsZSBuYW1lLXZhbHVlIGNzcyBwYWlycwoJICogZXg6IHdpZHRoOjEwMHB4OwoJICoKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZU5hbWVWYWx1ZSgpewoKCQkkaW5kZXggPSAkdGhpcy0+cG9zOwoJCSR0aGlzLT5zYXZlKCk7CgoKCQkvLyRtYXRjaCA9ICR0aGlzLT5NYXRjaFJlZygnL1xcRyhbYS16QS1aXC1dKylccyo6XHMqKCg/OlwnIik/W2EtekEtWjAtOVwtJSBcLiwhXSs/KD86XCciKT8pXHMqKFs7fV0pLycpOwoJCSRtYXRjaCA9ICR0aGlzLT5NYXRjaFJlZygnL1xcRyhbYS16QS1aXC1dKylccyo6XHMqKFtcJyJdP1sjYS16QS1aMC05XC0lXC4sXSs/W1wnIl0/KSAqKCEgKmltcG9ydGFudCk/XHMqKFs7fV0pLycpOwoJCWlmKCAkbWF0Y2ggKXsKCgkJCWlmKCAkbWF0Y2hbNF0gPT0gJ30nICl7CgkJCQkkdGhpcy0+cG9zID0gJGluZGV4ICsgc3RybGVuKCRtYXRjaFswXSktMTsKCQkJfQoKCQkJaWYoICRtYXRjaFszXSApewoJCQkJJG1hdGNoWzJdIC49ICcgIWltcG9ydGFudCc7CgkJCX0KCgkJCXJldHVybiAkdGhpcy0+TmV3T2JqNCgnTGVzc19UcmVlX05hbWVWYWx1ZScsYXJyYXkoICRtYXRjaFsxXSwgJG1hdGNoWzJdLCAkaW5kZXgsICR0aGlzLT5lbnYtPmN1cnJlbnRGaWxlSW5mbykpOwoJCX0KCgkJJHRoaXMtPnJlc3RvcmUoKTsKCX0KCgoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZVJ1bGUoICR0cnlBbm9ueW1vdXMgPSBudWxsICl7CgoJCSRtZXJnZSA9IGZhbHNlOwoJCSRzdGFydE9mUnVsZSA9ICR0aGlzLT5wb3M7CgoJCSRjID0gJHRoaXMtPmlucHV0WyR0aGlzLT5wb3NdOwoJCWlmKCAkYyA9PT0gJy4nIHx8ICRjID09PSAnIycgfHwgJGMgPT09ICcmJyApewoJCQlyZXR1cm47CgkJfQoKCQkkdGhpcy0+c2F2ZSgpOwoJCSRuYW1lID0gJHRoaXMtPk1hdGNoRnVuY3MoIGFycmF5KCdwYXJzZVZhcmlhYmxlJywncGFyc2VSdWxlUHJvcGVydHknKSk7CgoJCWlmKCAkbmFtZSApewoKCQkJJGlzVmFyaWFibGUgPSBpc19zdHJpbmcoJG5hbWUpOwoKCQkJJHZhbHVlID0gbnVsbDsKCQkJaWYoICRpc1ZhcmlhYmxlICl7CgkJCQkkdmFsdWUgPSAkdGhpcy0+cGFyc2VEZXRhY2hlZFJ1bGVzZXQoKTsKCQkJfQoKCQkJJGltcG9ydGFudCA9IG51bGw7CgkJCWlmKCAhJHZhbHVlICl7CgoJCQkJLy8gcHJlZmVyIHRvIHRyeSB0byBwYXJzZSBmaXJzdCBpZiBpdHMgYSB2YXJpYWJsZSBvciB3ZSBhcmUgY29tcHJlc3NpbmcKCQkJCS8vIGJ1dCBhbHdheXMgZmFsbGJhY2sgb24gdGhlIG90aGVyIG9uZQoJCQkJLy9pZiggISR0cnlBbm9ueW1vdXMgJiYgaXNfc3RyaW5nKCRuYW1lKSAmJiAkbmFtZVswXSA9PT0gJ0AnICl7CgkJCQlpZiggISR0cnlBbm9ueW1vdXMgJiYgKExlc3NfUGFyc2VyOjokb3B0aW9uc1snY29tcHJlc3MnXSB8fCAkaXNWYXJpYWJsZSkgKXsKCQkJCQkkdmFsdWUgPSAkdGhpcy0+TWF0Y2hGdW5jcyggYXJyYXkoJ3BhcnNlVmFsdWUnLCdwYXJzZUFub255bW91c1ZhbHVlJykpOwoJCQkJfWVsc2V7CgkJCQkJJHZhbHVlID0gJHRoaXMtPk1hdGNoRnVuY3MoIGFycmF5KCdwYXJzZUFub255bW91c1ZhbHVlJywncGFyc2VWYWx1ZScpKTsKCQkJCX0KCgkJCQkkaW1wb3J0YW50ID0gJHRoaXMtPnBhcnNlSW1wb3J0YW50KCk7CgoJCQkJLy8gYSBuYW1lIHJldHVybmVkIGJ5IHRoaXMucnVsZVByb3BlcnR5KCkgaXMgYWx3YXlzIGFuIGFycmF5IG9mIHRoZSBmb3JtOgoJCQkJLy8gW3N0cmluZy0xLCAuLi4sIHN0cmluZy1uLCAiIl0gb3IgW3N0cmluZy0xLCAuLi4sIHN0cmluZy1uLCAiKyJdCgkJCQkvLyB3aGVyZSBlYWNoIGl0ZW0gaXMgYSB0cmVlLktleXdvcmQgb3IgdHJlZS5WYXJpYWJsZQoJCQkJaWYoICEkaXNWYXJpYWJsZSAmJiBpc19hcnJheSgkbmFtZSkgKXsKCQkJCQkkbm0gPSBhcnJheV9wb3AoJG5hbWUpOwoJCQkJCWlmKCAkbm0tPnZhbHVlICl7CgkJCQkJCSRtZXJnZSA9ICRubS0+dmFsdWU7CgkJCQkJfQoJCQkJfQoJCQl9CgoKCQkJaWYoICR2YWx1ZSAmJiAkdGhpcy0+cGFyc2VFbmQoKSApewoJCQkJJHRoaXMtPmZvcmdldCgpOwoJCQkJcmV0dXJuICR0aGlzLT5OZXdPYmo2KCdMZXNzX1RyZWVfUnVsZScsYXJyYXkoICRuYW1lLCAkdmFsdWUsICRpbXBvcnRhbnQsICRtZXJnZSwgJHN0YXJ0T2ZSdWxlLCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQkJfWVsc2V7CgkJCQkkdGhpcy0+ZnVydGhlc3QgPSAkdGhpcy0+cG9zOwoJCQkJJHRoaXMtPnJlc3RvcmUoKTsKCQkJCWlmKCAkdmFsdWUgJiYgISR0cnlBbm9ueW1vdXMgKXsKCQkJCQlyZXR1cm4gJHRoaXMtPnBhcnNlUnVsZSh0cnVlKTsKCQkJCX0KCQkJfQoJCX1lbHNlewoJCQkkdGhpcy0+Zm9yZ2V0KCk7CgkJfQoJfQoKCWZ1bmN0aW9uIHBhcnNlQW5vbnltb3VzVmFsdWUoKXsKCgkJaWYoIHByZWdfbWF0Y2goJy9cXEcoW15AK1wvXCciKmAoO3t9LV0qKTsvJywkdGhpcy0+aW5wdXQsICRtYXRjaCwgMCwgJHRoaXMtPnBvcykgKXsKCQkJJHRoaXMtPnBvcyArPSBzdHJsZW4oJG1hdGNoWzFdKTsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfQW5vbnltb3VzJywkbWF0Y2hbMV0pOwoJCX0KCX0KCgkvLwoJLy8gQW4gQGltcG9ydCBkaXJlY3RpdmUKCS8vCgkvLwkgQGltcG9ydCAibGliIjsKCS8vCgkvLyBEZXBlbmRpbmcgb24gb3VyIGVudmlyb25tZW50LCBpbXBvcnRpbmcgaXMgZG9uZSBkaWZmZXJlbnRseToKCS8vIEluIHRoZSBicm93c2VyLCBpdCdzIGFuIFhIUiByZXF1ZXN0LCBpbiBOb2RlLCBpdCB3b3VsZCBiZSBhCgkvLyBmaWxlLXN5c3RlbSBvcGVyYXRpb24uIFRoZSBmdW5jdGlvbiB1c2VkIGZvciBpbXBvcnRpbmcgaXMKCS8vIHN0b3JlZCBpbiBgaW1wb3J0YCwgd2hpY2ggd2UgcGFzcyB0byB0aGUgSW1wb3J0IGNvbnN0cnVjdG9yLgoJLy8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VJbXBvcnQoKXsKCgkJJHRoaXMtPnNhdmUoKTsKCgkJJGRpciA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR0BpbXBvcnQ/XHMrLycpOwoKCQlpZiggJGRpciApewoJCQkkb3B0aW9ucyA9ICR0aGlzLT5wYXJzZUltcG9ydE9wdGlvbnMoKTsKCQkJJHBhdGggPSAkdGhpcy0+TWF0Y2hGdW5jcyggYXJyYXkoJ3BhcnNlRW50aXRpZXNRdW90ZWQnLCdwYXJzZUVudGl0aWVzVXJsJykpOwoKCQkJaWYoICRwYXRoICl7CgkJCQkkZmVhdHVyZXMgPSAkdGhpcy0+cGFyc2VNZWRpYUZlYXR1cmVzKCk7CgkJCQlpZiggJHRoaXMtPk1hdGNoQ2hhcignOycpICl7CgkJCQkJaWYoICRmZWF0dXJlcyApewoJCQkJCQkkZmVhdHVyZXMgPSAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX1ZhbHVlJywkZmVhdHVyZXMpOwoJCQkJCX0KCgkJCQkJJHRoaXMtPmZvcmdldCgpOwoJCQkJCXJldHVybiAkdGhpcy0+TmV3T2JqNSgnTGVzc19UcmVlX0ltcG9ydCcsYXJyYXkoICRwYXRoLCAkZmVhdHVyZXMsICRvcHRpb25zLCAkdGhpcy0+cG9zLCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQkJCX0KCQkJfQoJCX0KCgkJJHRoaXMtPnJlc3RvcmUoKTsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlSW1wb3J0T3B0aW9ucygpewoKCQkkb3B0aW9ucyA9IGFycmF5KCk7CgoJCS8vIGxpc3Qgb2Ygb3B0aW9ucywgc3Vycm91bmRlZCBieSBwYXJlbnMKCQlpZiggISR0aGlzLT5NYXRjaENoYXIoJygnKSApewoJCQlyZXR1cm4gJG9wdGlvbnM7CgkJfQoJCWRvewoJCQkkb3B0aW9uTmFtZSA9ICR0aGlzLT5wYXJzZUltcG9ydE9wdGlvbigpOwoJCQlpZiggJG9wdGlvbk5hbWUgKXsKCQkJCSR2YWx1ZSA9IHRydWU7CgkJCQlzd2l0Y2goICRvcHRpb25OYW1lICl7CgkJCQkJY2FzZSAiY3NzIjoKCQkJCQkJJG9wdGlvbk5hbWUgPSAibGVzcyI7CgkJCQkJCSR2YWx1ZSA9IGZhbHNlOwoJCQkJCWJyZWFrOwoJCQkJCWNhc2UgIm9uY2UiOgoJCQkJCQkkb3B0aW9uTmFtZSA9ICJtdWx0aXBsZSI7CgkJCQkJCSR2YWx1ZSA9IGZhbHNlOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQkJJG9wdGlvbnNbJG9wdGlvbk5hbWVdID0gJHZhbHVlOwoJCQkJaWYoICEkdGhpcy0+TWF0Y2hDaGFyKCcsJykgKXsgYnJlYWs7IH0KCQkJfQoJCX13aGlsZSggJG9wdGlvbk5hbWUgKTsKCQkkdGhpcy0+ZXhwZWN0Q2hhcignKScpOwoJCXJldHVybiAkb3B0aW9uczsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlSW1wb3J0T3B0aW9uKCl7CgkJJG9wdCA9ICR0aGlzLT5NYXRjaFJlZygnL1xcRyhsZXNzfGNzc3xtdWx0aXBsZXxvbmNlfGlubGluZXxyZWZlcmVuY2V8b3B0aW9uYWwpLycpOwoJCWlmKCAkb3B0ICl7CgkJCXJldHVybiAkb3B0WzFdOwoJCX0KCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlTWVkaWFGZWF0dXJlKCkgewoJCSRub2RlcyA9IGFycmF5KCk7CgoJCWRvewoJCQkkZSA9ICR0aGlzLT5NYXRjaEZ1bmNzKGFycmF5KCdwYXJzZUVudGl0aWVzS2V5d29yZCcsJ3BhcnNlRW50aXRpZXNWYXJpYWJsZScpKTsKCQkJaWYoICRlICl7CgkJCQkkbm9kZXNbXSA9ICRlOwoJCQl9IGVsc2VpZiAoJHRoaXMtPk1hdGNoQ2hhcignKCcpKSB7CgkJCQkkcCA9ICR0aGlzLT5wYXJzZVByb3BlcnR5KCk7CgkJCQkkZSA9ICR0aGlzLT5wYXJzZVZhbHVlKCk7CgkJCQlpZiAoJHRoaXMtPk1hdGNoQ2hhcignKScpKSB7CgkJCQkJaWYgKCRwICYmICRlKSB7CgkJCQkJCSRyID0gJHRoaXMtPk5ld09iajcoJ0xlc3NfVHJlZV9SdWxlJywgYXJyYXkoICRwLCAkZSwgbnVsbCwgbnVsbCwgJHRoaXMtPnBvcywgJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvLCB0cnVlKSk7CgkJCQkJCSRub2Rlc1tdID0gJHRoaXMtPk5ld09iajEoJ0xlc3NfVHJlZV9QYXJlbicsJHIpOwoJCQkJCX0gZWxzZWlmICgkZSkgewoJCQkJCQkkbm9kZXNbXSA9ICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfUGFyZW4nLCRlKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQl9IGVsc2UKCQkJCQlyZXR1cm4gbnVsbDsKCQkJfQoJCX0gd2hpbGUgKCRlKTsKCgkJaWYgKCRub2RlcykgewoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajEoJ0xlc3NfVHJlZV9FeHByZXNzaW9uJywkbm9kZXMpOwoJCX0KCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlTWVkaWFGZWF0dXJlcygpIHsKCQkkZmVhdHVyZXMgPSBhcnJheSgpOwoKCQlkb3sKCQkJJGUgPSAkdGhpcy0+cGFyc2VNZWRpYUZlYXR1cmUoKTsKCQkJaWYoICRlICl7CgkJCQkkZmVhdHVyZXNbXSA9ICRlOwoJCQkJaWYgKCEkdGhpcy0+TWF0Y2hDaGFyKCcsJykpIGJyZWFrOwoJCQl9ZWxzZXsKCQkJCSRlID0gJHRoaXMtPnBhcnNlRW50aXRpZXNWYXJpYWJsZSgpOwoJCQkJaWYoICRlICl7CgkJCQkJJGZlYXR1cmVzW10gPSAkZTsKCQkJCQlpZiAoISR0aGlzLT5NYXRjaENoYXIoJywnKSkgYnJlYWs7CgkJCQl9CgkJCX0KCQl9IHdoaWxlICgkZSk7CgoJCXJldHVybiAkZmVhdHVyZXMgPyAkZmVhdHVyZXMgOiBudWxsOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VNZWRpYSgpIHsKCQlpZiggJHRoaXMtPk1hdGNoUmVnKCcvXFxHQG1lZGlhLycpICl7CgkJCSRmZWF0dXJlcyA9ICR0aGlzLT5wYXJzZU1lZGlhRmVhdHVyZXMoKTsKCQkJJHJ1bGVzID0gJHRoaXMtPnBhcnNlQmxvY2soKTsKCgkJCWlmKCBpc19hcnJheSgkcnVsZXMpICl7CgkJCQlyZXR1cm4gJHRoaXMtPk5ld09iajQoJ0xlc3NfVHJlZV9NZWRpYScsYXJyYXkoICRydWxlcywgJGZlYXR1cmVzLCAkdGhpcy0+cG9zLCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQkJfQoJCX0KCX0KCgoJLy8KCS8vIEEgQ1NTIERpcmVjdGl2ZQoJLy8KCS8vIEBjaGFyc2V0ICJ1dGYtOCI7CgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZURpcmVjdGl2ZSgpewoKCQlpZiggISR0aGlzLT5QZWVrQ2hhcignQCcpICl7CgkJCXJldHVybjsKCQl9CgoJCSRydWxlcyA9IG51bGw7CgkJJGluZGV4ID0gJHRoaXMtPnBvczsKCQkkaGFzQmxvY2sgPSB0cnVlOwoJCSRoYXNJZGVudGlmaWVyID0gZmFsc2U7CgkJJGhhc0V4cHJlc3Npb24gPSBmYWxzZTsKCQkkaGFzVW5rbm93biA9IGZhbHNlOwoKCgkJJHZhbHVlID0gJHRoaXMtPk1hdGNoRnVuY3MoYXJyYXkoJ3BhcnNlSW1wb3J0JywncGFyc2VNZWRpYScpKTsKCQlpZiggJHZhbHVlICl7CgkJCXJldHVybiAkdmFsdWU7CgkJfQoKCQkkdGhpcy0+c2F2ZSgpOwoKCQkkbmFtZSA9ICR0aGlzLT5NYXRjaFJlZygnL1xcR0BbYS16LV0rLycpOwoKCQlpZiggISRuYW1lICkgcmV0dXJuOwoJCSRuYW1lID0gJG5hbWVbMF07CgoKCQkkbm9uVmVuZG9yU3BlY2lmaWNOYW1lID0gJG5hbWU7CgkJJHBvcyA9IHN0cnBvcygkbmFtZSwnLScsIDIpOwoJCWlmKCAkbmFtZVsxXSA9PSAnLScgJiYgJHBvcyA+IDAgKXsKCQkJJG5vblZlbmRvclNwZWNpZmljTmFtZSA9ICJAIiAuIHN1YnN0cigkbmFtZSwgJHBvcyArIDEpOwoJCX0KCgoJCXN3aXRjaCggJG5vblZlbmRvclNwZWNpZmljTmFtZSApewoJCQkvKgoJCQljYXNlICJAZm9udC1mYWNlIjoKCQkJY2FzZSAiQHZpZXdwb3J0IjoKCQkJY2FzZSAiQHRvcC1sZWZ0IjoKCQkJY2FzZSAiQHRvcC1sZWZ0LWNvcm5lciI6CgkJCWNhc2UgIkB0b3AtY2VudGVyIjoKCQkJY2FzZSAiQHRvcC1yaWdodCI6CgkJCWNhc2UgIkB0b3AtcmlnaHQtY29ybmVyIjoKCQkJY2FzZSAiQGJvdHRvbS1sZWZ0IjoKCQkJY2FzZSAiQGJvdHRvbS1sZWZ0LWNvcm5lciI6CgkJCWNhc2UgIkBib3R0b20tY2VudGVyIjoKCQkJY2FzZSAiQGJvdHRvbS1yaWdodCI6CgkJCWNhc2UgIkBib3R0b20tcmlnaHQtY29ybmVyIjoKCQkJY2FzZSAiQGxlZnQtdG9wIjoKCQkJY2FzZSAiQGxlZnQtbWlkZGxlIjoKCQkJY2FzZSAiQGxlZnQtYm90dG9tIjoKCQkJY2FzZSAiQHJpZ2h0LXRvcCI6CgkJCWNhc2UgIkByaWdodC1taWRkbGUiOgoJCQljYXNlICJAcmlnaHQtYm90dG9tIjoKCQkJaGFzQmxvY2sgPSB0cnVlOwoJCQlicmVhazsKCQkJKi8KCQkJY2FzZSAiQGNoYXJzZXQiOgoJCQkJJGhhc0lkZW50aWZpZXIgPSB0cnVlOwoJCQkJJGhhc0Jsb2NrID0gZmFsc2U7CgkJCQlicmVhazsKCQkJY2FzZSAiQG5hbWVzcGFjZSI6CgkJCQkkaGFzRXhwcmVzc2lvbiA9IHRydWU7CgkJCQkkaGFzQmxvY2sgPSBmYWxzZTsKCQkJCWJyZWFrOwoJCQljYXNlICJAa2V5ZnJhbWVzIjoKCQkJCSRoYXNJZGVudGlmaWVyID0gdHJ1ZTsKCQkJCWJyZWFrOwoJCQljYXNlICJAaG9zdCI6CgkJCWNhc2UgIkBwYWdlIjoKCQkJY2FzZSAiQGRvY3VtZW50IjoKCQkJY2FzZSAiQHN1cHBvcnRzIjoKCQkJCSRoYXNVbmtub3duID0gdHJ1ZTsKCQkJCWJyZWFrOwoJCX0KCgkJaWYoICRoYXNJZGVudGlmaWVyICl7CgkJCSR2YWx1ZSA9ICR0aGlzLT5wYXJzZUVudGl0eSgpOwoJCQlpZiggISR2YWx1ZSApewoJCQkJJHRoaXMtPmVycm9yKCJleHBlY3RlZCAiIC4gJG5hbWUgLiAiIGlkZW50aWZpZXIiKTsKCQkJfQoJCX0gZWxzZSBpZiggJGhhc0V4cHJlc3Npb24gKXsKCQkJJHZhbHVlID0gJHRoaXMtPnBhcnNlRXhwcmVzc2lvbigpOwoJCQlpZiggISR2YWx1ZSApewoJCQkJJHRoaXMtPmVycm9yKCJleHBlY3RlZCAiIC4gJG5hbWUuICIgZXhwcmVzc2lvbiIpOwoJCQl9CgkJfSBlbHNlIGlmICgkaGFzVW5rbm93bikgewoKCQkJJHZhbHVlID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHW157O10rLycpOwoJCQlpZiggJHZhbHVlICl7CgkJCQkkdmFsdWUgPSAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX0Fub255bW91cycsdHJpbSgkdmFsdWVbMF0pKTsKCQkJfQoJCX0KCgkJaWYoICRoYXNCbG9jayApewoJCQkkcnVsZXMgPSAkdGhpcy0+cGFyc2VCbG9ja1J1bGVzZXQoKTsKCQl9CgoJCWlmKCAkcnVsZXMgfHwgKCEkaGFzQmxvY2sgJiYgJHZhbHVlICYmICR0aGlzLT5NYXRjaENoYXIoJzsnKSkpIHsKCQkJJHRoaXMtPmZvcmdldCgpOwoJCQlyZXR1cm4gJHRoaXMtPk5ld09iajUoJ0xlc3NfVHJlZV9EaXJlY3RpdmUnLGFycmF5KCRuYW1lLCAkdmFsdWUsICRydWxlcywgJGluZGV4LCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQl9CgoJCSR0aGlzLT5yZXN0b3JlKCk7Cgl9CgoKCS8vCgkvLyBBIFZhbHVlIGlzIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgRXhwcmVzc2lvbnMKCS8vCgkvLwkgZm9udC1mYW1pbHk6IEJhc2tlcnZpbGxlLCBHZW9yZ2lhLCBzZXJpZjsKCS8vCgkvLyBJbiBhIFJ1bGUsIGEgVmFsdWUgcmVwcmVzZW50cyBldmVyeXRoaW5nIGFmdGVyIHRoZSBgOmAsCgkvLyBhbmQgYmVmb3JlIHRoZSBgO2AuCgkvLwoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZVZhbHVlKCl7CgkJJGV4cHJlc3Npb25zID0gYXJyYXkoKTsKCgkJZG97CgkJCSRlID0gJHRoaXMtPnBhcnNlRXhwcmVzc2lvbigpOwoJCQlpZiggJGUgKXsKCQkJCSRleHByZXNzaW9uc1tdID0gJGU7CgkJCQlpZiAoISAkdGhpcy0+TWF0Y2hDaGFyKCcsJykpIHsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCX13aGlsZSgkZSk7CgoJCWlmKCAkZXhwcmVzc2lvbnMgKXsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfVmFsdWUnLCRleHByZXNzaW9ucyk7CgkJfQoJfQoKCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VJbXBvcnRhbnQgKCl7CgkJaWYoICR0aGlzLT5QZWVrQ2hhcignIScpICYmICR0aGlzLT5NYXRjaFJlZygnL1xcRyEgKmltcG9ydGFudC8nKSApewoJCQlyZXR1cm4gJyAhaW1wb3J0YW50JzsKCQl9Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZVN1YiAoKXsKCgkJaWYoICR0aGlzLT5NYXRjaENoYXIoJygnKSApewoJCQkkYSA9ICR0aGlzLT5wYXJzZUFkZGl0aW9uKCk7CgkJCWlmKCAkYSApewoJCQkJJHRoaXMtPmV4cGVjdENoYXIoJyknKTsKCQkJCXJldHVybiAkdGhpcy0+TmV3T2JqMignTGVzc19UcmVlX0V4cHJlc3Npb24nLGFycmF5KCBhcnJheSgkYSksIHRydWUpICk7IC8vaW5zdGVhZCBvZiAkZS0+cGFyZW5zID0gdHJ1ZSBzbyB0aGUgdmFsdWUgaXMgY2FjaGVkCgkJCX0KCQl9Cgl9CgoKCS8qKgoJICogUGFyc2VzIG11bHRpcGxpY2F0aW9uIG9wZXJhdGlvbgoJICoKCSAqIEByZXR1cm4gTGVzc19UcmVlX09wZXJhdGlvbnxudWxsCgkgKi8KCWZ1bmN0aW9uIHBhcnNlTXVsdGlwbGljYXRpb24oKXsKCgkJJHJldHVybiA9ICRtID0gJHRoaXMtPnBhcnNlT3BlcmFuZCgpOwoJCWlmKCAkcmV0dXJuICl7CgkJCXdoaWxlKCB0cnVlICl7CgoJCQkJJGlzU3BhY2VkID0gJHRoaXMtPmlzV2hpdGVzcGFjZSggLTEgKTsKCgkJCQlpZiggJHRoaXMtPlBlZWtSZWcoJy9cXEdcL1sqXC9dLycpICl7CgkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJJG9wID0gJHRoaXMtPk1hdGNoQ2hhcignLycpOwoJCQkJaWYoICEkb3AgKXsKCQkJCQkkb3AgPSAkdGhpcy0+TWF0Y2hDaGFyKCcqJyk7CgkJCQkJaWYoICEkb3AgKXsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoKCQkJCSRhID0gJHRoaXMtPnBhcnNlT3BlcmFuZCgpOwoKCQkJCWlmKCEkYSkgeyBicmVhazsgfQoKCQkJCSRtLT5wYXJlbnNJbk9wID0gdHJ1ZTsKCQkJCSRhLT5wYXJlbnNJbk9wID0gdHJ1ZTsKCQkJCSRyZXR1cm4gPSAkdGhpcy0+TmV3T2JqMygnTGVzc19UcmVlX09wZXJhdGlvbicsYXJyYXkoICRvcCwgYXJyYXkoICRyZXR1cm4sICRhICksICRpc1NwYWNlZCkgKTsKCQkJfQoJCX0KCQlyZXR1cm4gJHJldHVybjsKCgl9CgoKCS8qKgoJICogUGFyc2VzIGFuIGFkZGl0aW9uIG9wZXJhdGlvbgoJICoKCSAqIEByZXR1cm4gTGVzc19UcmVlX09wZXJhdGlvbnxudWxsCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VBZGRpdGlvbiAoKXsKCgkJJHJldHVybiA9ICRtID0gJHRoaXMtPnBhcnNlTXVsdGlwbGljYXRpb24oKTsKCQlpZiggJHJldHVybiApewoJCQl3aGlsZSggdHJ1ZSApewoKCQkJCSRpc1NwYWNlZCA9ICR0aGlzLT5pc1doaXRlc3BhY2UoIC0xICk7CgoJCQkJJG9wID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHWy0rXVxzKy8nKTsKCQkJCWlmKCAkb3AgKXsKCQkJCQkkb3AgPSAkb3BbMF07CgkJCQl9ZWxzZXsKCQkJCQlpZiggISRpc1NwYWNlZCApewoJCQkJCQkkb3AgPSAkdGhpcy0+bWF0Y2goYXJyYXkoJyMrJywnIy0nKSk7CgkJCQkJfQoJCQkJCWlmKCAhJG9wICl7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCgkJCQkkYSA9ICR0aGlzLT5wYXJzZU11bHRpcGxpY2F0aW9uKCk7CgkJCQlpZiggISRhICl7CgkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJJG0tPnBhcmVuc0luT3AgPSB0cnVlOwoJCQkJJGEtPnBhcmVuc0luT3AgPSB0cnVlOwoJCQkJJHJldHVybiA9ICR0aGlzLT5OZXdPYmozKCdMZXNzX1RyZWVfT3BlcmF0aW9uJyxhcnJheSgkb3AsIGFycmF5KCRyZXR1cm4sICRhKSwgJGlzU3BhY2VkKSk7CgkJCX0KCQl9CgoJCXJldHVybiAkcmV0dXJuOwoJfQoKCgkvKioKCSAqIFBhcnNlcyB0aGUgY29uZGl0aW9ucwoJICoKCSAqIEByZXR1cm4gTGVzc19UcmVlX0NvbmRpdGlvbnxudWxsCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VDb25kaXRpb25zKCkgewoJCSRpbmRleCA9ICR0aGlzLT5wb3M7CgkJJHJldHVybiA9ICRhID0gJHRoaXMtPnBhcnNlQ29uZGl0aW9uKCk7CgkJaWYoICRhICl7CgkJCXdoaWxlKCB0cnVlICl7CgkJCQlpZiggISR0aGlzLT5QZWVrUmVnKCcvXFxHLFxzKihub3RccyopP1woLycpIHx8ICAhJHRoaXMtPk1hdGNoQ2hhcignLCcpICl7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQkkYiA9ICR0aGlzLT5wYXJzZUNvbmRpdGlvbigpOwoJCQkJaWYoICEkYiApewoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCSRyZXR1cm4gPSAkdGhpcy0+TmV3T2JqNCgnTGVzc19UcmVlX0NvbmRpdGlvbicsYXJyYXkoJ29yJywgJHJldHVybiwgJGIsICRpbmRleCkpOwoJCQl9CgkJCXJldHVybiAkcmV0dXJuOwoJCX0KCX0KCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQ29uZGl0aW9uKCkgewoJCSRpbmRleCA9ICR0aGlzLT5wb3M7CgkJJG5lZ2F0ZSA9IGZhbHNlOwoJCSRjID0gbnVsbDsKCgkJaWYgKCR0aGlzLT5NYXRjaFJlZygnL1xcR25vdC8nKSkgJG5lZ2F0ZSA9IHRydWU7CgkJJHRoaXMtPmV4cGVjdENoYXIoJygnKTsKCQkkYSA9ICR0aGlzLT5NYXRjaEZ1bmNzKGFycmF5KCdwYXJzZUFkZGl0aW9uJywncGFyc2VFbnRpdGllc0tleXdvcmQnLCdwYXJzZUVudGl0aWVzUXVvdGVkJykpOwoKCQlpZiggJGEgKXsKCQkJJG9wID0gJHRoaXMtPk1hdGNoUmVnKCcvXFxHKD86Pj18PD18PTx8Wzw9Pl0pLycpOwoJCQlpZiggJG9wICl7CgkJCQkkYiA9ICR0aGlzLT5NYXRjaEZ1bmNzKGFycmF5KCdwYXJzZUFkZGl0aW9uJywncGFyc2VFbnRpdGllc0tleXdvcmQnLCdwYXJzZUVudGl0aWVzUXVvdGVkJykpOwoJCQkJaWYoICRiICl7CgkJCQkJJGMgPSAkdGhpcy0+TmV3T2JqNSgnTGVzc19UcmVlX0NvbmRpdGlvbicsYXJyYXkoJG9wWzBdLCAkYSwgJGIsICRpbmRleCwgJG5lZ2F0ZSkpOwoJCQkJfSBlbHNlIHsKCQkJCQkkdGhpcy0+RXJyb3IoJ1VuZXhwZWN0ZWQgZXhwcmVzc2lvbicpOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJGsgPSAkdGhpcy0+TmV3T2JqMSgnTGVzc19UcmVlX0tleXdvcmQnLCd0cnVlJyk7CgkJCQkkYyA9ICR0aGlzLT5OZXdPYmo1KCdMZXNzX1RyZWVfQ29uZGl0aW9uJyxhcnJheSgnPScsICRhLCAkaywgJGluZGV4LCAkbmVnYXRlKSk7CgkJCX0KCQkJJHRoaXMtPmV4cGVjdENoYXIoJyknKTsKCQkJcmV0dXJuICR0aGlzLT5NYXRjaFJlZygnL1xcR2FuZC8nKSA/ICR0aGlzLT5OZXdPYmozKCdMZXNzX1RyZWVfQ29uZGl0aW9uJyxhcnJheSgnYW5kJywgJGMsICR0aGlzLT5wYXJzZUNvbmRpdGlvbigpKSkgOiAkYzsKCQl9Cgl9CgoJLyoqCgkgKiBBbiBvcGVyYW5kIGlzIGFueXRoaW5nIHRoYXQgY2FuIGJlIHBhcnQgb2YgYW4gb3BlcmF0aW9uLAoJICogc3VjaCBhcyBhIENvbG9yLCBvciBhIFZhcmlhYmxlCgkgKgoJICovCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlT3BlcmFuZCAoKXsKCgkJJG5lZ2F0ZSA9IGZhbHNlOwoJCSRvZmZzZXQgPSAkdGhpcy0+cG9zKzE7CgkJaWYoICRvZmZzZXQgPj0gJHRoaXMtPmlucHV0X2xlbiApewoJCQlyZXR1cm47CgkJfQoJCSRjaGFyID0gJHRoaXMtPmlucHV0WyRvZmZzZXRdOwoJCWlmKCAkY2hhciA9PT0gJ0AnIHx8ICRjaGFyID09PSAnKCcgKXsKCQkJJG5lZ2F0ZSA9ICR0aGlzLT5NYXRjaENoYXIoJy0nKTsKCQl9CgoJCSRvID0gJHRoaXMtPk1hdGNoRnVuY3MoYXJyYXkoJ3BhcnNlU3ViJywncGFyc2VFbnRpdGllc0RpbWVuc2lvbicsJ3BhcnNlRW50aXRpZXNDb2xvcicsJ3BhcnNlRW50aXRpZXNWYXJpYWJsZScsJ3BhcnNlRW50aXRpZXNDYWxsJykpOwoKCQlpZiggJG5lZ2F0ZSApewoJCQkkby0+cGFyZW5zSW5PcCA9IHRydWU7CgkJCSRvID0gJHRoaXMtPk5ld09iajEoJ0xlc3NfVHJlZV9OZWdhdGl2ZScsJG8pOwoJCX0KCgkJcmV0dXJuICRvOwoJfQoKCgkvKioKCSAqIEV4cHJlc3Npb25zIGVpdGhlciByZXByZXNlbnQgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbnMsCgkgKiBvciB3aGl0ZS1zcGFjZSBkZWxpbWl0ZWQgRW50aXRpZXMuCgkgKgoJICoJIDFweCBzb2xpZCBibGFjawoJICoJIEB2YXIgKiAyCgkgKgoJICogQHJldHVybiBMZXNzX1RyZWVfRXhwcmVzc2lvbnxudWxsCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VFeHByZXNzaW9uICgpewoJCSRlbnRpdGllcyA9IGFycmF5KCk7CgoJCWRvewoJCQkkZSA9ICR0aGlzLT5NYXRjaEZ1bmNzKGFycmF5KCdwYXJzZUFkZGl0aW9uJywncGFyc2VFbnRpdHknKSk7CgkJCWlmKCAkZSApewoJCQkJJGVudGl0aWVzW10gPSAkZTsKCQkJCS8vIG9wZXJhdGlvbnMgZG8gbm90IGFsbG93IGtleXdvcmQgIi8iIGRpbWVuc2lvbiAoZS5nLiBzbWFsbC8yMHB4KSBzbyB3ZSBzdXBwb3J0IHRoYXQgaGVyZQoJCQkJaWYoICEkdGhpcy0+UGVla1JlZygnL1xcR1wvW1wvKl0vJykgKXsKCQkJCQkkZGVsaW0gPSAkdGhpcy0+TWF0Y2hDaGFyKCcvJyk7CgkJCQkJaWYoICRkZWxpbSApewoJCQkJCQkkZW50aXRpZXNbXSA9ICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfQW5vbnltb3VzJywkZGVsaW0pOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX13aGlsZSgkZSk7CgoJCWlmKCAkZW50aXRpZXMgKXsKCQkJcmV0dXJuICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfRXhwcmVzc2lvbicsJGVudGl0aWVzKTsKCQl9Cgl9CgoKCS8qKgoJICogUGFyc2UgYSBwcm9wZXJ0eQoJICogZWc6ICdtaW4td2lkdGgnLCAnb3JpZW50YXRpb24nLCBldGMKCSAqCgkgKiBAcmV0dXJuIHN0cmluZwoJICovCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHkgKCl7CgkJJG5hbWUgPSAkdGhpcy0+TWF0Y2hSZWcoJy9cXEcoXCo/LT9bX2EtekEtWjAtOS1dKylccyo6LycpOwoJCWlmKCAkbmFtZSApewoJCQlyZXR1cm4gJG5hbWVbMV07CgkJfQoJfQoKCgkvKioKCSAqIFBhcnNlIGEgcnVsZSBwcm9wZXJ0eQoJICogZWc6ICdjb2xvcicsICd3aWR0aCcsICdoZWlnaHQnLCBldGMKCSAqCgkgKiBAcmV0dXJuIHN0cmluZwoJICovCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlUnVsZVByb3BlcnR5KCl7CgkJJG9mZnNldCA9ICR0aGlzLT5wb3M7CgkJJG5hbWUgPSBhcnJheSgpOwoJCSRpbmRleCA9IGFycmF5KCk7CgkJJGxlbmd0aCA9IDA7CgoKCQkkdGhpcy0+cnVsZVByb3BlcnR5TWF0Y2goJy9cXEcoXCo/KS8nLCAkb2Zmc2V0LCAkbGVuZ3RoLCAkaW5kZXgsICRuYW1lICk7CgkJd2hpbGUoICR0aGlzLT5ydWxlUHJvcGVydHlNYXRjaCgnL1xcRygoPzpbXHctXSspfCg/OkBce1tcdy1dK1x9KSkvJywgJG9mZnNldCwgJGxlbmd0aCwgJGluZGV4LCAkbmFtZSApKTsgLy8gIQoKCQlpZiggKGNvdW50KCRuYW1lKSA+IDEpICYmICR0aGlzLT5ydWxlUHJvcGVydHlNYXRjaCgnL1xcR1xzKigoPzpcK198XCspPylccyo6LycsICRvZmZzZXQsICRsZW5ndGgsICRpbmRleCwgJG5hbWUpICl7CgkJCS8vIGF0IGxhc3QsIHdlIGhhdmUgdGhlIGNvbXBsZXRlIG1hdGNoIG5vdy4gbW92ZSBmb3J3YXJkLAoJCQkvLyBjb252ZXJ0IG5hbWUgcGFydGljbGVzIHRvIHRyZWUgb2JqZWN0cyBhbmQgcmV0dXJuOgoJCQkkdGhpcy0+c2tpcFdoaXRlc3BhY2UoJGxlbmd0aCk7CgoJCQlpZiggJG5hbWVbMF0gPT09ICcnICl7CgkJCQlhcnJheV9zaGlmdCgkbmFtZSk7CgkJCQlhcnJheV9zaGlmdCgkaW5kZXgpOwoJCQl9CgkJCWZvcmVhY2goJG5hbWUgYXMgJGsgPT4gJHMgKXsKCQkJCWlmKCAhJHMgfHwgJHNbMF0gIT09ICdAJyApewoJCQkJCSRuYW1lWyRrXSA9ICR0aGlzLT5OZXdPYmoxKCdMZXNzX1RyZWVfS2V5d29yZCcsJHMpOwoJCQkJfWVsc2V7CgkJCQkJJG5hbWVbJGtdID0gJHRoaXMtPk5ld09iajMoJ0xlc3NfVHJlZV9WYXJpYWJsZScsYXJyYXkoJ0AnIC4gc3Vic3RyKCRzLDIsLTEpLCAkaW5kZXhbJGtdLCAkdGhpcy0+ZW52LT5jdXJyZW50RmlsZUluZm8pKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gJG5hbWU7CgkJfQoKCgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBydWxlUHJvcGVydHlNYXRjaCggJHJlLCAmJG9mZnNldCwgJiRsZW5ndGgsICAmJGluZGV4LCAmJG5hbWUgKXsKCQlwcmVnX21hdGNoKCRyZSwgJHRoaXMtPmlucHV0LCAkYSwgMCwgJG9mZnNldCk7CgkJaWYoICRhICl7CgkJCSRpbmRleFtdID0gJHRoaXMtPnBvcyArICRsZW5ndGg7CgkJCSRsZW5ndGggKz0gc3RybGVuKCRhWzBdKTsKCQkJJG9mZnNldCArPSBzdHJsZW4oJGFbMF0pOwoJCQkkbmFtZVtdID0gJGFbMV07CgkJCXJldHVybiB0cnVlOwoJCX0KCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNlcmlhbGl6ZVZhcnMoICR2YXJzICl7CgkJJHMgPSAnJzsKCgkJZm9yZWFjaCgkdmFycyBhcyAkbmFtZSA9PiAkdmFsdWUpewoJCQkkcyAuPSAoKCRuYW1lWzBdID09PSAnQCcpID8gJycgOiAnQCcpIC4gJG5hbWUgLic6ICcuICR2YWx1ZSAuICgoc3Vic3RyKCR2YWx1ZSwtMSkgPT09ICc7JykgPyAnJyA6ICc7Jyk7CgkJfQoKCQlyZXR1cm4gJHM7Cgl9CgoKCS8qKgoJICogU29tZSB2ZXJzaW9ucyBvZiBwaHAgaGF2ZSB0cm91YmxlIHdpdGggbWV0aG9kX2V4aXN0cygkYSwkYikgaWYgJGEgaXMgbm90IGFuIG9iamVjdAoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJGIKCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19tZXRob2QoJGEsJGIpewoJCXJldHVybiBpc19vYmplY3QoJGEpICYmIG1ldGhvZF9leGlzdHMoJGEsJGIpOwoJfQoKCgkvKioKCSAqIFJvdW5kIG51bWJlcnMgc2ltaWxhcmx5IHRvIGphdmFzY3JpcHQKCSAqIGVnOiAxLjQ5OTk5OSB0byAxIGluc3RlYWQgb2YgMgoJICoKCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiByb3VuZCgkaSwgJHByZWNpc2lvbiA9IDApewoKCQkkcHJlY2lzaW9uID0gcG93KDEwLCRwcmVjaXNpb24pOwoJCSRpID0gJGkqJHByZWNpc2lvbjsKCgkJJGNlaWwgPSBjZWlsKCRpKTsKCQkkZmxvb3IgPSBmbG9vcigkaSk7CgkJaWYoICgkY2VpbCAtICRpKSA8PSAoJGkgLSAkZmxvb3IpICl7CgkJCXJldHVybiAkY2VpbC8kcHJlY2lzaW9uOwoJCX1lbHNlewoJCQlyZXR1cm4gJGZsb29yLyRwcmVjaXNpb247CgkJfQoJfQoKCgkvKioKCSAqIENyZWF0ZSBMZXNzX1RyZWVfKiBvYmplY3RzIGFuZCBvcHRpb25hbGx5IGdlbmVyYXRlIGEgY2FjaGUgc3RyaW5nCgkgKgoJICogQHJldHVybiBtaXhlZAoJICovCglwdWJsaWMgZnVuY3Rpb24gTmV3T2JqMCgkY2xhc3MpewoJCSRvYmogPSBuZXcgJGNsYXNzKCk7CgkJaWYoICR0aGlzLT5DYWNoZUVuYWJsZWQoKSApewoJCQkkb2JqLT5jYWNoZV9zdHJpbmcgPSAnIG5ldyAnLiRjbGFzcy4nKCknOwoJCX0KCQlyZXR1cm4gJG9iajsKCX0KCglwdWJsaWMgZnVuY3Rpb24gTmV3T2JqMSgkY2xhc3MsICRhcmcpewoJCSRvYmogPSBuZXcgJGNsYXNzKCAkYXJnICk7CgkJaWYoICR0aGlzLT5DYWNoZUVuYWJsZWQoKSApewoJCQkkb2JqLT5jYWNoZV9zdHJpbmcgPSAnIG5ldyAnLiRjbGFzcy4nKCcuTGVzc19QYXJzZXI6OkFyZ1N0cmluZygkYXJnKS4nKSc7CgkJfQoJCXJldHVybiAkb2JqOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBOZXdPYmoyKCRjbGFzcywgJGFyZ3MpewoJCSRvYmogPSBuZXcgJGNsYXNzKCAkYXJnc1swXSwgJGFyZ3NbMV0gKTsKCQlpZiggJHRoaXMtPkNhY2hlRW5hYmxlZCgpICl7CgkJCSR0aGlzLT5PYmpDYWNoZSggJG9iaiwgJGNsYXNzLCAkYXJncyk7CgkJfQoJCXJldHVybiAkb2JqOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBOZXdPYmozKCRjbGFzcywgJGFyZ3MpewoJCSRvYmogPSBuZXcgJGNsYXNzKCAkYXJnc1swXSwgJGFyZ3NbMV0sICRhcmdzWzJdICk7CgkJaWYoICR0aGlzLT5DYWNoZUVuYWJsZWQoKSApewoJCQkkdGhpcy0+T2JqQ2FjaGUoICRvYmosICRjbGFzcywgJGFyZ3MpOwoJCX0KCQlyZXR1cm4gJG9iajsKCX0KCglwdWJsaWMgZnVuY3Rpb24gTmV3T2JqNCgkY2xhc3MsICRhcmdzKXsKCQkkb2JqID0gbmV3ICRjbGFzcyggJGFyZ3NbMF0sICRhcmdzWzFdLCAkYXJnc1syXSwgJGFyZ3NbM10gKTsKCQlpZiggJHRoaXMtPkNhY2hlRW5hYmxlZCgpICl7CgkJCSR0aGlzLT5PYmpDYWNoZSggJG9iaiwgJGNsYXNzLCAkYXJncyk7CgkJfQoJCXJldHVybiAkb2JqOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBOZXdPYmo1KCRjbGFzcywgJGFyZ3MpewoJCSRvYmogPSBuZXcgJGNsYXNzKCAkYXJnc1swXSwgJGFyZ3NbMV0sICRhcmdzWzJdLCAkYXJnc1szXSwgJGFyZ3NbNF0gKTsKCQlpZiggJHRoaXMtPkNhY2hlRW5hYmxlZCgpICl7CgkJCSR0aGlzLT5PYmpDYWNoZSggJG9iaiwgJGNsYXNzLCAkYXJncyk7CgkJfQoJCXJldHVybiAkb2JqOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBOZXdPYmo2KCRjbGFzcywgJGFyZ3MpewoJCSRvYmogPSBuZXcgJGNsYXNzKCAkYXJnc1swXSwgJGFyZ3NbMV0sICRhcmdzWzJdLCAkYXJnc1szXSwgJGFyZ3NbNF0sICRhcmdzWzVdICk7CgkJaWYoICR0aGlzLT5DYWNoZUVuYWJsZWQoKSApewoJCQkkdGhpcy0+T2JqQ2FjaGUoICRvYmosICRjbGFzcywgJGFyZ3MpOwoJCX0KCQlyZXR1cm4gJG9iajsKCX0KCglwdWJsaWMgZnVuY3Rpb24gTmV3T2JqNygkY2xhc3MsICRhcmdzKXsKCQkkb2JqID0gbmV3ICRjbGFzcyggJGFyZ3NbMF0sICRhcmdzWzFdLCAkYXJnc1syXSwgJGFyZ3NbM10sICRhcmdzWzRdLCAkYXJnc1s1XSwgJGFyZ3NbNl0gKTsKCQlpZiggJHRoaXMtPkNhY2hlRW5hYmxlZCgpICl7CgkJCSR0aGlzLT5PYmpDYWNoZSggJG9iaiwgJGNsYXNzLCAkYXJncyk7CgkJfQoJCXJldHVybiAkb2JqOwoJfQoKCS8vY2FjaGluZwoJcHVibGljIGZ1bmN0aW9uIE9iakNhY2hlKCRvYmosICRjbGFzcywgJGFyZ3M9YXJyYXkoKSl7CgkJJG9iai0+Y2FjaGVfc3RyaW5nID0gJyBuZXcgJy4kY2xhc3MuJygnLiBzZWxmOjpBcmdDYWNoZSgkYXJncykuJyknOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBBcmdDYWNoZSgkYXJncyl7CgkJcmV0dXJuIGltcGxvZGUoJywnLGFycmF5X21hcCggYXJyYXkoJ0xlc3NfUGFyc2VyJywnQXJnU3RyaW5nJyksJGFyZ3MpKTsKCX0KCgoJLyoqCgkgKiBDb252ZXJ0IGFuIGFyZ3VtZW50IHRvIGEgc3RyaW5nIGZvciB1c2UgaW4gdGhlIHBhcnNlciBjYWNoZQoJICoKCSAqIEByZXR1cm4gc3RyaW5nCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQXJnU3RyaW5nKCRhcmcpewoKCQkkdHlwZSA9IGdldHR5cGUoJGFyZyk7CgoJCWlmKCAkdHlwZSA9PT0gJ29iamVjdCcpewoJCQkkc3RyaW5nID0gJGFyZy0+Y2FjaGVfc3RyaW5nOwoJCQl1bnNldCgkYXJnLT5jYWNoZV9zdHJpbmcpOwoJCQlyZXR1cm4gJHN0cmluZzsKCgkJfWVsc2VpZiggJHR5cGUgPT09ICdhcnJheScgKXsKCQkJJHN0cmluZyA9ICcgQXJyYXkoJzsKCQkJZm9yZWFjaCgkYXJnIGFzICRrID0+ICRhKXsKCQkJCSRzdHJpbmcgLj0gdmFyX2V4cG9ydCgkayx0cnVlKS4nID0+ICcuc2VsZjo6QXJnU3RyaW5nKCRhKS4nLCc7CgkJCX0KCQkJcmV0dXJuICRzdHJpbmcgLiAnKSc7CgkJfQoKCQlyZXR1cm4gdmFyX2V4cG9ydCgkYXJnLHRydWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBFcnJvcigkbXNnKXsKCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fUGFyc2VyKCRtc2csIG51bGwsICR0aGlzLT5mdXJ0aGVzdCwgJHRoaXMtPmVudi0+Y3VycmVudEZpbGVJbmZvKTsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIFdpblBhdGgoJHBhdGgpewoJCXJldHVybiBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRwYXRoKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gQ2FjaGVFbmFibGVkKCl7CgkJcmV0dXJuIChMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NhY2hlX21ldGhvZCddICYmIChMZXNzX0NhY2hlOjokY2FjaGVfZGlyIHx8IChMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NhY2hlX21ldGhvZCddID09ICdjYWxsYmFjaycpKSk7Cgl9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/SourceMap/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/SourceMap/Base64VLQ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBFbmNvZGUgLyBEZWNvZGUgQmFzZTY0IFZMUS4KICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSBTb3VyY2VNYXAKICovCmNsYXNzIExlc3NfU291cmNlTWFwX0Jhc2U2NFZMUSB7CgoJLyoqCgkgKiBTaGlmdAoJICoKCSAqIEB2YXIgaW50ZWdlcgoJICovCglwcml2YXRlICRzaGlmdCA9IDU7CgoJLyoqCgkgKiBNYXNrCgkgKgoJICogQHZhciBpbnRlZ2VyCgkgKi8KCXByaXZhdGUgJG1hc2sgPSAweDFGOyAvLyA9PSAoMSA8PCBzaGlmdCkgPT0gMGIwMDAxMTExMQoKCS8qKgoJICogQ29udGludWF0aW9uIGJpdAoJICoKCSAqIEB2YXIgaW50ZWdlcgoJICovCglwcml2YXRlICRjb250aW51YXRpb25CaXQgPSAweDIwOyAvLyA9PSAobWFzayAtIDEgKSA9PSAwYjAwMTAwMDAwCgoJLyoqCgkgKiBDaGFyIHRvIGludGVnZXIgbWFwCgkgKgoJICogQHZhciBhcnJheQoJICovCglwcml2YXRlICRjaGFyVG9JbnRNYXAgPSBhcnJheSgKCQknQScgPT4gMCwgJ0InID0+IDEsICdDJyA9PiAyLCAnRCcgPT4gMywgJ0UnID0+IDQsICdGJyA9PiA1LCAnRycgPT4gNiwKCQknSCcgPT4gNywnSScgPT4gOCwgJ0onID0+IDksICdLJyA9PiAxMCwgJ0wnID0+IDExLCAnTScgPT4gMTIsICdOJyA9PiAxMywKCQknTycgPT4gMTQsICdQJyA9PiAxNSwgJ1EnID0+IDE2LCAnUicgPT4gMTcsICdTJyA9PiAxOCwgJ1QnID0+IDE5LCAnVScgPT4gMjAsCgkJJ1YnID0+IDIxLCAnVycgPT4gMjIsICdYJyA9PiAyMywgJ1knID0+IDI0LCAnWicgPT4gMjUsICdhJyA9PiAyNiwgJ2InID0+IDI3LAoJCSdjJyA9PiAyOCwgJ2QnID0+IDI5LCAnZScgPT4gMzAsICdmJyA9PiAzMSwgJ2cnID0+IDMyLCAnaCcgPT4gMzMsICdpJyA9PiAzNCwKCQknaicgPT4gMzUsICdrJyA9PiAzNiwgJ2wnID0+IDM3LCAnbScgPT4gMzgsICduJyA9PiAzOSwgJ28nID0+IDQwLCAncCcgPT4gNDEsCgkJJ3EnID0+IDQyLCAncicgPT4gNDMsICdzJyA9PiA0NCwgJ3QnID0+IDQ1LCAndScgPT4gNDYsICd2JyA9PiA0NywgJ3cnID0+IDQ4LAoJCSd4JyA9PiA0OSwgJ3knID0+IDUwLCAneicgPT4gNTEsIDAgPT4gNTIsIDEgPT4gNTMsIDIgPT4gNTQsIDMgPT4gNTUsIDQgPT4gNTYsCgkJNSA9PiA1NywJNiA9PiA1OCwgNyA9PiA1OSwgOCA9PiA2MCwgOSA9PiA2MSwgJysnID0+IDYyLCAnLycgPT4gNjMsCgkpOwoKCS8qKgoJICogSW50ZWdlciB0byBjaGFyIG1hcAoJICoKCSAqIEB2YXIgYXJyYXkKCSAqLwoJcHJpdmF0ZSAkaW50VG9DaGFyTWFwID0gYXJyYXkoCgkJMCA9PiAnQScsIDEgPT4gJ0InLCAyID0+ICdDJywgMyA9PiAnRCcsIDQgPT4gJ0UnLCA1ID0+ICdGJywgNiA9PiAnRycsCgkJNyA9PiAnSCcsIDggPT4gJ0knLCA5ID0+ICdKJywgMTAgPT4gJ0snLCAxMSA9PiAnTCcsIDEyID0+ICdNJywgMTMgPT4gJ04nLAoJCTE0ID0+ICdPJywgMTUgPT4gJ1AnLCAxNiA9PiAnUScsIDE3ID0+ICdSJywgMTggPT4gJ1MnLCAxOSA9PiAnVCcsIDIwID0+ICdVJywKCQkyMSA9PiAnVicsIDIyID0+ICdXJywgMjMgPT4gJ1gnLCAyNCA9PiAnWScsIDI1ID0+ICdaJywgMjYgPT4gJ2EnLCAyNyA9PiAnYicsCgkJMjggPT4gJ2MnLCAyOSA9PiAnZCcsIDMwID0+ICdlJywgMzEgPT4gJ2YnLCAzMiA9PiAnZycsIDMzID0+ICdoJywgMzQgPT4gJ2knLAoJCTM1ID0+ICdqJywgMzYgPT4gJ2snLCAzNyA9PiAnbCcsIDM4ID0+ICdtJywgMzkgPT4gJ24nLCA0MCA9PiAnbycsIDQxID0+ICdwJywKCQk0MiA9PiAncScsIDQzID0+ICdyJywgNDQgPT4gJ3MnLCA0NSA9PiAndCcsIDQ2ID0+ICd1JywgNDcgPT4gJ3YnLCA0OCA9PiAndycsCgkJNDkgPT4gJ3gnLCA1MCA9PiAneScsIDUxID0+ICd6JywgNTIgPT4gJzAnLCA1MyA9PiAnMScsIDU0ID0+ICcyJywgNTUgPT4gJzMnLAoJCTU2ID0+ICc0JywgNTcgPT4gJzUnLCA1OCA9PiAnNicsIDU5ID0+ICc3JywgNjAgPT4gJzgnLCA2MSA9PiAnOScsIDYyID0+ICcrJywKCQk2MyA9PiAnLycsCgkpOwoKCS8qKgoJICogQ29uc3RydWN0b3IKCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7CgkJLy8gSSBsZWF2ZSBpdCBoZXJlIGZvciBmdXR1cmUgcmVmZXJlbmNlCgkJLy8gZm9yZWFjaChzdHJfc3BsaXQoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSBhcyAkaSA9PiAkY2hhcikKCQkvLyB7CgkJLy8JICR0aGlzLT5jaGFyVG9JbnRNYXBbJGNoYXJdID0gJGk7CgkJLy8JICR0aGlzLT5pbnRUb0NoYXJNYXBbJGldID0gJGNoYXI7CgkJLy8gfQoJfQoKCS8qKgoJICogQ29udmVydCBmcm9tIGEgdHdvLWNvbXBsZW1lbnQgdmFsdWUgdG8gYSB2YWx1ZSB3aGVyZSB0aGUgc2lnbiBiaXQgaXMKCSAqIGlzIHBsYWNlZCBpbiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LglGb3IgZXhhbXBsZSwgYXMgZGVjaW1hbHM6CgkgKgkgMSBiZWNvbWVzIDIgKDEwIGJpbmFyeSksIC0xIGJlY29tZXMgMyAoMTEgYmluYXJ5KQoJICoJIDIgYmVjb21lcyA0ICgxMDAgYmluYXJ5KSwgLTIgYmVjb21lcyA1ICgxMDEgYmluYXJ5KQoJICogV2UgZ2VuZXJhdGUgdGhlIHZhbHVlIGZvciAzMiBiaXQgbWFjaGluZXMsIGhlbmNlIC0yMTQ3NDgzNjQ4IGJlY29tZXMgMSwgbm90IDQyOTQ5NjcyOTcsCgkgKiBldmVuIG9uIGEgNjQgYml0IG1hY2hpbmUuCgkgKiBAcGFyYW0gc3RyaW5nICRhVmFsdWUKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRvVkxRU2lnbmVkKCRhVmFsdWUpewoJCXJldHVybiAweGZmZmZmZmZmICYgKCRhVmFsdWUgPCAwID8gKCgtJGFWYWx1ZSkgPDwgMSkgKyAxIDogKCRhVmFsdWUgPDwgMSkgKyAwKTsKCX0KCgkvKioKCSAqIENvbnZlcnQgdG8gYSB0d28tY29tcGxlbWVudCB2YWx1ZSBmcm9tIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzCgkgKiBpcyBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gRm9yIGV4YW1wbGUsIGFzIGRlY2ltYWxzOgoJICoJIDIgKDEwIGJpbmFyeSkgYmVjb21lcyAxLCAzICgxMSBiaW5hcnkpIGJlY29tZXMgLTEKCSAqCSA0ICgxMDAgYmluYXJ5KSBiZWNvbWVzIDIsIDUgKDEwMSBiaW5hcnkpIGJlY29tZXMgLTIKCSAqIFdlIGFzc3VtZSB0aGF0IHRoZSB2YWx1ZSB3YXMgZ2VuZXJhdGVkIHdpdGggYSAzMiBiaXQgbWFjaGluZSBpbiBtaW5kLgoJICogSGVuY2UKCSAqCSAxIGJlY29tZXMgLTIxNDc0ODM2NDgKCSAqIGV2ZW4gb24gYSA2NCBiaXQgbWFjaGluZS4KCSAqIEBwYXJhbSBpbnRlZ2VyICRhVmFsdWUKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGZyb21WTFFTaWduZWQoJGFWYWx1ZSl7CgkJcmV0dXJuICRhVmFsdWUgJiAxID8gJHRoaXMtPnplcm9GaWxsKH4kYVZhbHVlICsgMiwgMSkgfCAoLTEgLSAweDdmZmZmZmZmKSA6ICR0aGlzLT56ZXJvRmlsbCgkYVZhbHVlLCAxKTsKCX0KCgkvKioKCSAqIFJldHVybiB0aGUgYmFzZSA2NCBWTFEgZW5jb2RlZCB2YWx1ZS4KCSAqCgkgKiBAcGFyYW0gc3RyaW5nICRhVmFsdWUgVGhlIHZhbHVlIHRvIGVuY29kZQoJICogQHJldHVybiBzdHJpbmcgVGhlIGVuY29kZWQgdmFsdWUKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGVuY29kZSgkYVZhbHVlKXsKCQkkZW5jb2RlZCA9ICcnOwoJCSR2bHEgPSAkdGhpcy0+dG9WTFFTaWduZWQoJGFWYWx1ZSk7CgkJZG8KCQl7CgkJCSRkaWdpdCA9ICR2bHEgJiAkdGhpcy0+bWFzazsKCQkJJHZscSA9ICR0aGlzLT56ZXJvRmlsbCgkdmxxLCAkdGhpcy0+c2hpZnQpOwoJCQlpZigkdmxxID4gMCl7CgkJCQkkZGlnaXQgfD0gJHRoaXMtPmNvbnRpbnVhdGlvbkJpdDsKCQkJfQoJCQkkZW5jb2RlZCAuPSAkdGhpcy0+YmFzZTY0RW5jb2RlKCRkaWdpdCk7CgkJfSB3aGlsZSgkdmxxID4gMCk7CgoJCXJldHVybiAkZW5jb2RlZDsKCX0KCgkvKioKCSAqIFJldHVybiB0aGUgdmFsdWUgZGVjb2RlZCBmcm9tIGJhc2UgNjQgVkxRLgoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJGVuY29kZWQgVGhlIGVuY29kZWQgdmFsdWUgdG8gZGVjb2RlCgkgKiBAcmV0dXJuIGludGVnZXIgVGhlIGRlY29kZWQgdmFsdWUKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGRlY29kZSgkZW5jb2RlZCl7CgkJJHZscSA9IDA7CgkJJGkgPSAwOwoJCWRvCgkJewoJCQkkZGlnaXQgPSAkdGhpcy0+YmFzZTY0RGVjb2RlKCRlbmNvZGVkWyRpXSk7CgkJCSR2bHEgfD0gKCRkaWdpdCAmICR0aGlzLT5tYXNrKSA8PCAoJGkgKiAkdGhpcy0+c2hpZnQpOwoJCQkkaSsrOwoJCX0gd2hpbGUoJGRpZ2l0ICYgJHRoaXMtPmNvbnRpbnVhdGlvbkJpdCk7CgoJCXJldHVybiAkdGhpcy0+ZnJvbVZMUVNpZ25lZCgkdmxxKTsKCX0KCgkvKioKCSAqIFJpZ2h0IHNoaWZ0IHdpdGggemVybyBmaWxsLgoJICoKCSAqIEBwYXJhbSBpbnRlZ2VyICRhIG51bWJlciB0byBzaGlmdAoJICogQHBhcmFtIGludGVnZXIgJGIgbnVtYmVyIG9mIGJpdHMgdG8gc2hpZnQKCSAqIEByZXR1cm4gaW50ZWdlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gemVyb0ZpbGwoJGEsICRiKXsKCQlyZXR1cm4gKCRhID49IDApID8gKCRhID4+ICRiKSA6ICgkYSA+PiAkYikgJiAoUEhQX0lOVF9NQVggPj4gKCRiIC0gMSkpOwoJfQoKCS8qKgoJICogRW5jb2RlIHNpbmdsZSA2LWJpdCBkaWdpdCBhcyBiYXNlNjQuCgkgKgoJICogQHBhcmFtIGludGVnZXIgJG51bWJlcgoJICogQHJldHVybiBzdHJpbmcKCSAqIEB0aHJvd3MgRXhjZXB0aW9uIElmIHRoZSBudW1iZXIgaXMgaW52YWxpZAoJICovCglwdWJsaWMgZnVuY3Rpb24gYmFzZTY0RW5jb2RlKCRudW1iZXIpewoJCWlmKCRudW1iZXIgPCAwIHx8ICRudW1iZXIgPiA2Myl7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oc3ByaW50ZignSW52YWxpZCBudW1iZXIgIiVzIiBnaXZlbi4gTXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYzLicsICRudW1iZXIpKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5pbnRUb0NoYXJNYXBbJG51bWJlcl07Cgl9CgoJLyoqCgkgKiBEZWNvZGUgc2luZ2xlIDYtYml0IGRpZ2l0IGZyb20gYmFzZTY0CgkgKgoJICogQHBhcmFtIHN0cmluZyAkY2hhcgoJICogQHJldHVybiBudW1iZXIKCSAqIEB0aHJvd3MgRXhjZXB0aW9uIElmIHRoZSBudW1iZXIgaXMgaW52YWxpZAoJICovCglwdWJsaWMgZnVuY3Rpb24gYmFzZTY0RGVjb2RlKCRjaGFyKXsKCQlpZighYXJyYXlfa2V5X2V4aXN0cygkY2hhciwgJHRoaXMtPmNoYXJUb0ludE1hcCkpewoJCQl0aHJvdyBuZXcgRXhjZXB0aW9uKHNwcmludGYoJ0ludmFsaWQgYmFzZSA2NCBkaWdpdCAiJXMiIGdpdmVuLicsICRjaGFyKSk7CgkJfQoJCXJldHVybiAkdGhpcy0+Y2hhclRvSW50TWFwWyRjaGFyXTsKCX0KCn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/SourceMap/Generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiBTb3VyY2UgbWFwIGdlbmVyYXRvcg0KICoNCiAqIEBwYWNrYWdlIExlc3MNCiAqIEBzdWJwYWNrYWdlIE91dHB1dA0KICovDQpjbGFzcyBMZXNzX1NvdXJjZU1hcF9HZW5lcmF0b3IgZXh0ZW5kcyBMZXNzX0NvbmZpZ3VyYWJsZSB7DQoNCgkvKioNCgkgKiBXaGF0IHZlcnNpb24gb2Ygc291cmNlIG1hcCBkb2VzIHRoZSBnZW5lcmF0b3IgZ2VuZXJhdGU/DQoJICovDQoJY29uc3QgVkVSU0lPTiA9IDM7DQoNCgkvKioNCgkgKiBBcnJheSBvZiBkZWZhdWx0IG9wdGlvbnMNCgkgKg0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcm90ZWN0ZWQgJGRlZmF1bHRPcHRpb25zID0gYXJyYXkoDQoJCQkvLyBhbiBvcHRpb25hbCBzb3VyY2Ugcm9vdCwgdXNlZnVsIGZvciByZWxvY2F0aW5nIHNvdXJjZSBmaWxlcw0KCQkJLy8gb24gYSBzZXJ2ZXIgb3IgcmVtb3ZpbmcgcmVwZWF0ZWQgdmFsdWVzIGluIHRoZSAnc291cmNlcycgZW50cnkuDQoJCQkvLyBUaGlzIHZhbHVlIGlzIHByZXBlbmRlZCB0byB0aGUgaW5kaXZpZHVhbCBlbnRyaWVzIGluIHRoZSAnc291cmNlJyBmaWVsZC4NCgkJCSdzb3VyY2VSb290JwkJCT0+ICcnLA0KDQoJCQkvLyBhbiBvcHRpb25hbCBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgY29kZSB0aGF0IHRoaXMgc291cmNlIG1hcCBpcyBhc3NvY2lhdGVkIHdpdGguDQoJCQknc291cmNlTWFwRmlsZW5hbWUnCQk9PiBudWxsLA0KDQoJCQkvLyB1cmwgb2YgdGhlIG1hcA0KCQkJJ3NvdXJjZU1hcFVSTCcJCQk9PiBudWxsLA0KDQoJCQkvLyBhYnNvbHV0ZSBwYXRoIHRvIGEgZmlsZSB0byB3cml0ZSB0aGUgbWFwIHRvDQoJCQknc291cmNlTWFwV3JpdGVUbycJCT0+IG51bGwsDQoNCgkJCS8vIG91dHB1dCBzb3VyY2UgY29udGVudHM/DQoJCQknb3V0cHV0U291cmNlRmlsZXMnCQk9PiBmYWxzZSwNCg0KCQkJLy8gYmFzZSBwYXRoIGZvciBmaWxlbmFtZSBub3JtYWxpemF0aW9uDQoJCQknc291cmNlTWFwUm9vdHBhdGgnCQk9PiAnJywNCg0KCQkJLy8gYmFzZSBwYXRoIGZvciBmaWxlbmFtZSBub3JtYWxpemF0aW9uDQoJCQknc291cmNlTWFwQmFzZXBhdGgnICAgPT4gJycNCgkpOw0KDQoJLyoqDQoJICogVGhlIGJhc2U2NCBWTFEgZW5jb2Rlcg0KCSAqDQoJICogQHZhciBMZXNzX1NvdXJjZU1hcF9CYXNlNjRWTFENCgkgKi8NCglwcm90ZWN0ZWQgJGVuY29kZXI7DQoNCgkvKioNCgkgKiBBcnJheSBvZiBtYXBwaW5ncw0KCSAqDQoJICogQHZhciBhcnJheQ0KCSAqLw0KCXByb3RlY3RlZCAkbWFwcGluZ3MgPSBhcnJheSgpOw0KDQoJLyoqDQoJICogVGhlIHJvb3Qgbm9kZQ0KCSAqDQoJICogQHZhciBMZXNzX1RyZWVfUnVsZXNldA0KCSAqLw0KCXByb3RlY3RlZCAkcm9vdDsNCg0KCS8qKg0KCSAqIEFycmF5IG9mIGNvbnRlbnRzIG1hcA0KCSAqDQoJICogQHZhciBhcnJheQ0KCSAqLw0KCXByb3RlY3RlZCAkY29udGVudHNNYXAgPSBhcnJheSgpOw0KDQoJLyoqDQoJICogRmlsZSB0byBjb250ZW50IG1hcA0KCSAqDQoJICogQHZhciBhcnJheQ0KCSAqLw0KCXByb3RlY3RlZCAkc291cmNlcyA9IGFycmF5KCk7DQoJcHJvdGVjdGVkICRzb3VyY2Vfa2V5cyA9IGFycmF5KCk7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvcg0KCSAqDQoJICogQHBhcmFtIExlc3NfVHJlZV9SdWxlc2V0ICRyb290IFRoZSByb290IG5vZGUNCgkgKiBAcGFyYW0gYXJyYXkgJG9wdGlvbnMgQXJyYXkgb2Ygb3B0aW9ucw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChMZXNzX1RyZWVfUnVsZXNldCAkcm9vdCwgJGNvbnRlbnRzTWFwLCAkb3B0aW9ucyA9IGFycmF5KCkpew0KCQkkdGhpcy0+cm9vdCA9ICRyb290Ow0KCQkkdGhpcy0+Y29udGVudHNNYXAgPSAkY29udGVudHNNYXA7DQoJCSR0aGlzLT5lbmNvZGVyID0gbmV3IExlc3NfU291cmNlTWFwX0Jhc2U2NFZMUSgpOw0KDQoJCSR0aGlzLT5TZXRPcHRpb25zKCRvcHRpb25zKTsNCgkJDQoJCSR0aGlzLT5vcHRpb25zWydzb3VyY2VNYXBSb290cGF0aCddID0gJHRoaXMtPmZpeFdpbmRvd3NQYXRoKCR0aGlzLT5vcHRpb25zWydzb3VyY2VNYXBSb290cGF0aCddLCB0cnVlKTsNCgkJJHRoaXMtPm9wdGlvbnNbJ3NvdXJjZU1hcEJhc2VwYXRoJ10gPSAkdGhpcy0+Zml4V2luZG93c1BhdGgoJHRoaXMtPm9wdGlvbnNbJ3NvdXJjZU1hcEJhc2VwYXRoJ10sIHRydWUpOw0KCX0NCg0KCS8qKg0KCSAqIEdlbmVyYXRlcyB0aGUgQ1NTDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZW5lcmF0ZUNTUygpew0KCQkkb3V0cHV0ID0gbmV3IExlc3NfT3V0cHV0X01hcHBlZCgkdGhpcy0+Y29udGVudHNNYXAsICR0aGlzKTsNCg0KCQkvLyBjYXRjaCB0aGUgb3V0cHV0DQoJCSR0aGlzLT5yb290LT5nZW5DU1MoJG91dHB1dCk7DQoNCg0KCQkkc291cmNlTWFwVXJsCQkJCT0gJHRoaXMtPmdldE9wdGlvbignc291cmNlTWFwVVJMJyk7DQoJCSRzb3VyY2VNYXBGaWxlbmFtZQkJCT0gJHRoaXMtPmdldE9wdGlvbignc291cmNlTWFwRmlsZW5hbWUnKTsNCgkJJHNvdXJjZU1hcENvbnRlbnQJCQk9ICR0aGlzLT5nZW5lcmF0ZUpzb24oKTsNCgkJJHNvdXJjZU1hcFdyaXRlVG8JCQk9ICR0aGlzLT5nZXRPcHRpb24oJ3NvdXJjZU1hcFdyaXRlVG8nKTsNCg0KCQlpZiggISRzb3VyY2VNYXBVcmwgJiYgJHNvdXJjZU1hcEZpbGVuYW1lICl7DQoJCQkkc291cmNlTWFwVXJsID0gJHRoaXMtPm5vcm1hbGl6ZUZpbGVuYW1lKCRzb3VyY2VNYXBGaWxlbmFtZSk7DQoJCX0NCg0KCQkvLyB3cml0ZSBtYXAgdG8gYSBmaWxlDQoJCWlmKCAkc291cmNlTWFwV3JpdGVUbyApew0KCQkJJHRoaXMtPnNhdmVNYXAoJHNvdXJjZU1hcFdyaXRlVG8sICRzb3VyY2VNYXBDb250ZW50KTsNCgkJfQ0KDQoJCS8vIGlubGluZSB0aGUgbWFwDQoJCWlmKCAhJHNvdXJjZU1hcFVybCApew0KCQkJJHNvdXJjZU1hcFVybCA9IHNwcmludGYoJ2RhdGE6YXBwbGljYXRpb24vanNvbiwlcycsIExlc3NfRnVuY3Rpb25zOjplbmNvZGVVUklDb21wb25lbnQoJHNvdXJjZU1hcENvbnRlbnQpKTsNCgkJfQ0KDQoJCWlmKCAkc291cmNlTWFwVXJsICl7DQoJCQkkb3V0cHV0LT5hZGQoIHNwcmludGYoJy8qIyBzb3VyY2VNYXBwaW5nVVJMPSVzICovJywgJHNvdXJjZU1hcFVybCkgKTsNCgkJfQ0KDQoJCXJldHVybiAkb3V0cHV0LT50b1N0cmluZygpOw0KCX0NCg0KCS8qKg0KCSAqIFNhdmVzIHRoZSBzb3VyY2UgbWFwIHRvIGEgZmlsZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZmlsZSBUaGUgYWJzb2x1dGUgcGF0aCB0byBhIGZpbGUNCgkgKiBAcGFyYW0gc3RyaW5nICRjb250ZW50IFRoZSBjb250ZW50IHRvIHdyaXRlDQoJICogQHRocm93cyBFeGNlcHRpb24gSWYgdGhlIGZpbGUgY291bGQgbm90IGJlIHNhdmVkDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVNYXAoJGZpbGUsICRjb250ZW50KXsNCgkJJGRpciA9IGRpcm5hbWUoJGZpbGUpOw0KCQkvLyBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QNCgkJaWYoICFpc19kaXIoJGRpcikgKXsNCgkJCS8vIEZJWE1FOiBjcmVhdGUgdGhlIGRpciBhdXRvbWF0aWNhbGx5Pw0KCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbihzcHJpbnRmKCdUaGUgZGlyZWN0b3J5ICIlcyIgZG9lcyBub3QgZXhpc3QuIENhbm5vdCBzYXZlIHRoZSBzb3VyY2UgbWFwLicsICRkaXIpKTsNCgkJfQ0KCQkvLyBGSVhNRTogcHJvcGVyIHNhdmluZywgd2l0aCBkaXIgd3JpdGUgY2hlY2shDQoJCWlmKGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCAkY29udGVudCkgPT09IGZhbHNlKXsNCgkJCXRocm93IG5ldyBFeGNlcHRpb24oc3ByaW50ZignQ2Fubm90IHNhdmUgdGhlIHNvdXJjZSBtYXAgdG8gIiVzIicsICRmaWxlKSk7DQoJCX0NCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogTm9ybWFsaXplcyB0aGUgZmlsZW5hbWUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGZpbGVuYW1lDQoJICogQHJldHVybiBzdHJpbmcNCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gbm9ybWFsaXplRmlsZW5hbWUoJGZpbGVuYW1lKXsNCg0KCQkkZmlsZW5hbWUgPSAkdGhpcy0+Zml4V2luZG93c1BhdGgoJGZpbGVuYW1lKTsNCg0KCQkkcm9vdHBhdGggPSAkdGhpcy0+Z2V0T3B0aW9uKCdzb3VyY2VNYXBSb290cGF0aCcpOw0KCQkkYmFzZVBhdGggPSAkdGhpcy0+Z2V0T3B0aW9uKCdzb3VyY2VNYXBCYXNlcGF0aCcpOw0KDQoJCS8vICJUcmltIiB0aGUgJ3NvdXJjZU1hcEJhc2VwYXRoJyBmcm9tIHRoZSBvdXRwdXQgZmlsZW5hbWUuDQoJCWlmIChzdHJwb3MoJGZpbGVuYW1lLCAkYmFzZVBhdGgpID09PSAwKSB7DQoJCQkkZmlsZW5hbWUgPSBzdWJzdHIoJGZpbGVuYW1lLCBzdHJsZW4oJGJhc2VQYXRoKSk7DQoJCX0NCg0KCQkvLyBSZW1vdmUgZXh0cmEgbGVhZGluZyBwYXRoIHNlcGFyYXRvcnMuDQoJCWlmKHN0cnBvcygkZmlsZW5hbWUsICdcXCcpID09PSAwIHx8IHN0cnBvcygkZmlsZW5hbWUsICcvJykgPT09IDApew0KCQkJJGZpbGVuYW1lID0gc3Vic3RyKCRmaWxlbmFtZSwgMSk7DQoJCX0NCg0KCQlyZXR1cm4gJHJvb3RwYXRoIC4gJGZpbGVuYW1lOw0KCX0NCg0KCS8qKg0KCSAqIEFkZHMgYSBtYXBwaW5nDQoJICoNCgkgKiBAcGFyYW0gaW50ZWdlciAkZ2VuZXJhdGVkTGluZSBUaGUgbGluZSBudW1iZXIgaW4gZ2VuZXJhdGVkIGZpbGUNCgkgKiBAcGFyYW0gaW50ZWdlciAkZ2VuZXJhdGVkQ29sdW1uIFRoZSBjb2x1bW4gbnVtYmVyIGluIGdlbmVyYXRlZCBmaWxlDQoJICogQHBhcmFtIGludGVnZXIgJG9yaWdpbmFsTGluZSBUaGUgbGluZSBudW1iZXIgaW4gb3JpZ2luYWwgZmlsZQ0KCSAqIEBwYXJhbSBpbnRlZ2VyICRvcmlnaW5hbENvbHVtbiBUaGUgY29sdW1uIG51bWJlciBpbiBvcmlnaW5hbCBmaWxlDQoJICogQHBhcmFtIHN0cmluZyAkc291cmNlRmlsZSBUaGUgb3JpZ2luYWwgc291cmNlIGZpbGUNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYWRkTWFwcGluZygkZ2VuZXJhdGVkTGluZSwgJGdlbmVyYXRlZENvbHVtbiwgJG9yaWdpbmFsTGluZSwgJG9yaWdpbmFsQ29sdW1uLCAkZmlsZUluZm8gKXsNCg0KCQkkdGhpcy0+bWFwcGluZ3NbXSA9IGFycmF5KA0KCQkJJ2dlbmVyYXRlZF9saW5lJyA9PiAkZ2VuZXJhdGVkTGluZSwNCgkJCSdnZW5lcmF0ZWRfY29sdW1uJyA9PiAkZ2VuZXJhdGVkQ29sdW1uLA0KCQkJJ29yaWdpbmFsX2xpbmUnID0+ICRvcmlnaW5hbExpbmUsDQoJCQknb3JpZ2luYWxfY29sdW1uJyA9PiAkb3JpZ2luYWxDb2x1bW4sDQoJCQknc291cmNlX2ZpbGUnID0+ICRmaWxlSW5mb1snY3VycmVudFVyaSddDQoJCSk7DQoNCgkJJHRoaXMtPnNvdXJjZXNbJGZpbGVJbmZvWydjdXJyZW50VXJpJ11dID0gJGZpbGVJbmZvWydmaWxlbmFtZSddOw0KCX0NCg0KDQoJLyoqDQoJICogR2VuZXJhdGVzIHRoZSBKU09OIHNvdXJjZSBtYXANCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nDQoJICogQHNlZSBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQjDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdlbmVyYXRlSnNvbigpew0KDQoJCSRzb3VyY2VNYXAgPSBhcnJheSgpOw0KCQkkbWFwcGluZ3MgPSAkdGhpcy0+Z2VuZXJhdGVNYXBwaW5ncygpOw0KDQoJCS8vIEZpbGUgdmVyc2lvbiAoYWx3YXlzIHRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgb2JqZWN0KSBhbmQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuDQoJCSRzb3VyY2VNYXBbJ3ZlcnNpb24nXSA9IHNlbGY6OlZFUlNJT047DQoNCg0KCQkvLyBBbiBvcHRpb25hbCBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgY29kZSB0aGF0IHRoaXMgc291cmNlIG1hcCBpcyBhc3NvY2lhdGVkIHdpdGguDQoJCSRmaWxlID0gJHRoaXMtPmdldE9wdGlvbignc291cmNlTWFwRmlsZW5hbWUnKTsNCgkJaWYoICRmaWxlICl7DQoJCQkkc291cmNlTWFwWydmaWxlJ10gPSAkZmlsZTsNCgkJfQ0KDQoNCgkJLy8gQW4gb3B0aW9uYWwgc291cmNlIHJvb3QsIHVzZWZ1bCBmb3IgcmVsb2NhdGluZyBzb3VyY2UgZmlsZXMgb24gYSBzZXJ2ZXIgb3IgcmVtb3ZpbmcgcmVwZWF0ZWQgdmFsdWVzIGluIHRoZSAnc291cmNlcycgZW50cnkuCVRoaXMgdmFsdWUgaXMgcHJlcGVuZGVkIHRvIHRoZSBpbmRpdmlkdWFsIGVudHJpZXMgaW4gdGhlICdzb3VyY2UnIGZpZWxkLg0KCQkkcm9vdCA9ICR0aGlzLT5nZXRPcHRpb24oJ3NvdXJjZVJvb3QnKTsNCgkJaWYoICRyb290ICl7DQoJCQkkc291cmNlTWFwWydzb3VyY2VSb290J10gPSAkcm9vdDsNCgkJfQ0KDQoNCgkJLy8gQSBsaXN0IG9mIG9yaWdpbmFsIHNvdXJjZXMgdXNlZCBieSB0aGUgJ21hcHBpbmdzJyBlbnRyeS4NCgkJJHNvdXJjZU1hcFsnc291cmNlcyddID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkdGhpcy0+c291cmNlcyBhcyAkc291cmNlX3VyaSA9PiAkc291cmNlX2ZpbGVuYW1lKXsNCgkJCSRzb3VyY2VNYXBbJ3NvdXJjZXMnXVtdID0gJHRoaXMtPm5vcm1hbGl6ZUZpbGVuYW1lKCRzb3VyY2VfZmlsZW5hbWUpOw0KCQl9DQoNCg0KCQkvLyBBIGxpc3Qgb2Ygc3ltYm9sIG5hbWVzIHVzZWQgYnkgdGhlICdtYXBwaW5ncycgZW50cnkuDQoJCSRzb3VyY2VNYXBbJ25hbWVzJ10gPSBhcnJheSgpOw0KDQoJCS8vIEEgc3RyaW5nIHdpdGggdGhlIGVuY29kZWQgbWFwcGluZyBkYXRhLg0KCQkkc291cmNlTWFwWydtYXBwaW5ncyddID0gJG1hcHBpbmdzOw0KDQoJCWlmKCAkdGhpcy0+Z2V0T3B0aW9uKCdvdXRwdXRTb3VyY2VGaWxlcycpICl7DQoJCQkvLyBBbiBvcHRpb25hbCBsaXN0IG9mIHNvdXJjZSBjb250ZW50LCB1c2VmdWwgd2hlbiB0aGUgJ3NvdXJjZScgY2FuJ3QgYmUgaG9zdGVkLg0KCQkJLy8gVGhlIGNvbnRlbnRzIGFyZSBsaXN0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHNvdXJjZXMgYWJvdmUuDQoJCQkvLyAnbnVsbCcgbWF5IGJlIHVzZWQgaWYgc29tZSBvcmlnaW5hbCBzb3VyY2VzIHNob3VsZCBiZSByZXRyaWV2ZWQgYnkgbmFtZS4NCgkJCSRzb3VyY2VNYXBbJ3NvdXJjZXNDb250ZW50J10gPSAkdGhpcy0+Z2V0U291cmNlc0NvbnRlbnQoKTsNCgkJfQ0KDQoJCS8vIGxlc3MuanMgY29tcGF0IGZpeGVzDQoJCWlmKCBjb3VudCgkc291cmNlTWFwWydzb3VyY2VzJ10pICYmIGVtcHR5KCRzb3VyY2VNYXBbJ3NvdXJjZVJvb3QnXSkgKXsNCgkJCXVuc2V0KCRzb3VyY2VNYXBbJ3NvdXJjZVJvb3QnXSk7DQoJCX0NCg0KCQlyZXR1cm4ganNvbl9lbmNvZGUoJHNvdXJjZU1hcCk7DQoJfQ0KDQoJLyoqDQoJICogUmV0dXJucyB0aGUgc291cmNlcyBjb250ZW50cw0KCSAqDQoJICogQHJldHVybiBhcnJheXxudWxsDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFNvdXJjZXNDb250ZW50KCl7DQoJCWlmKGVtcHR5KCR0aGlzLT5zb3VyY2VzKSl7DQoJCQlyZXR1cm47DQoJCX0NCgkJJGNvbnRlbnQgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCR0aGlzLT5zb3VyY2VzIGFzICRzb3VyY2VGaWxlKXsNCgkJCSRjb250ZW50W10gPSBmaWxlX2dldF9jb250ZW50cygkc291cmNlRmlsZSk7DQoJCX0NCgkJcmV0dXJuICRjb250ZW50Ow0KCX0NCg0KCS8qKg0KCSAqIEdlbmVyYXRlcyB0aGUgbWFwcGluZ3Mgc3RyaW5nDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZW5lcmF0ZU1hcHBpbmdzKCl7DQoNCgkJaWYoICFjb3VudCgkdGhpcy0+bWFwcGluZ3MpICl7DQoJCQlyZXR1cm4gJyc7DQoJCX0NCg0KCQkkdGhpcy0+c291cmNlX2tleXMgPSBhcnJheV9mbGlwKGFycmF5X2tleXMoJHRoaXMtPnNvdXJjZXMpKTsNCg0KDQoJCS8vIGdyb3VwIG1hcHBpbmdzIGJ5IGdlbmVyYXRlZCBsaW5lIG51bWJlci4NCgkJJGdyb3VwZWRNYXAgPSAkZ3JvdXBlZE1hcEVuY29kZWQgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCR0aGlzLT5tYXBwaW5ncyBhcyAkbSl7DQoJCQkkZ3JvdXBlZE1hcFskbVsnZ2VuZXJhdGVkX2xpbmUnXV1bXSA9ICRtOw0KCQl9DQoJCWtzb3J0KCRncm91cGVkTWFwKTsNCg0KCQkkbGFzdEdlbmVyYXRlZExpbmUgPSAkbGFzdE9yaWdpbmFsSW5kZXggPSAkbGFzdE9yaWdpbmFsTGluZSA9ICRsYXN0T3JpZ2luYWxDb2x1bW4gPSAwOw0KDQoJCWZvcmVhY2goJGdyb3VwZWRNYXAgYXMgJGxpbmVOdW1iZXIgPT4gJGxpbmVfbWFwKXsNCgkJCXdoaWxlKCsrJGxhc3RHZW5lcmF0ZWRMaW5lIDwgJGxpbmVOdW1iZXIpew0KCQkJCSRncm91cGVkTWFwRW5jb2RlZFtdID0gJzsnOw0KCQkJfQ0KDQoJCQkkbGluZU1hcEVuY29kZWQgPSBhcnJheSgpOw0KCQkJJGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAwOw0KDQoJCQlmb3JlYWNoKCRsaW5lX21hcCBhcyAkbSl7DQoJCQkJJG1hcEVuY29kZWQgPSAkdGhpcy0+ZW5jb2Rlci0+ZW5jb2RlKCRtWydnZW5lcmF0ZWRfY29sdW1uJ10gLSAkbGFzdEdlbmVyYXRlZENvbHVtbik7DQoJCQkJJGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAkbVsnZ2VuZXJhdGVkX2NvbHVtbiddOw0KDQoJCQkJLy8gZmluZCB0aGUgaW5kZXgNCgkJCQlpZiggJG1bJ3NvdXJjZV9maWxlJ10gKXsNCgkJCQkJJGluZGV4ID0gJHRoaXMtPmZpbmRGaWxlSW5kZXgoJG1bJ3NvdXJjZV9maWxlJ10pOw0KCQkJCQlpZiggJGluZGV4ICE9PSBmYWxzZSApew0KCQkJCQkJJG1hcEVuY29kZWQgLj0gJHRoaXMtPmVuY29kZXItPmVuY29kZSgkaW5kZXggLSAkbGFzdE9yaWdpbmFsSW5kZXgpOw0KCQkJCQkJJGxhc3RPcmlnaW5hbEluZGV4ID0gJGluZGV4Ow0KDQoJCQkJCQkvLyBsaW5lcyBhcmUgc3RvcmVkIDAtYmFzZWQgaW4gU291cmNlTWFwIHNwZWMgdmVyc2lvbiAzDQoJCQkJCQkkbWFwRW5jb2RlZCAuPSAkdGhpcy0+ZW5jb2Rlci0+ZW5jb2RlKCRtWydvcmlnaW5hbF9saW5lJ10gLSAxIC0gJGxhc3RPcmlnaW5hbExpbmUpOw0KCQkJCQkJJGxhc3RPcmlnaW5hbExpbmUgPSAkbVsnb3JpZ2luYWxfbGluZSddIC0gMTsNCg0KCQkJCQkJJG1hcEVuY29kZWQgLj0gJHRoaXMtPmVuY29kZXItPmVuY29kZSgkbVsnb3JpZ2luYWxfY29sdW1uJ10gLSAkbGFzdE9yaWdpbmFsQ29sdW1uKTsNCgkJCQkJCSRsYXN0T3JpZ2luYWxDb2x1bW4gPSAkbVsnb3JpZ2luYWxfY29sdW1uJ107DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQkkbGluZU1hcEVuY29kZWRbXSA9ICRtYXBFbmNvZGVkOw0KCQkJfQ0KDQoJCQkkZ3JvdXBlZE1hcEVuY29kZWRbXSA9IGltcGxvZGUoJywnLCAkbGluZU1hcEVuY29kZWQpIC4gJzsnOw0KCQl9DQoNCgkJcmV0dXJuIHJ0cmltKGltcGxvZGUoJGdyb3VwZWRNYXBFbmNvZGVkKSwgJzsnKTsNCgl9DQoNCgkvKioNCgkgKiBGaW5kcyB0aGUgaW5kZXggZm9yIHRoZSBmaWxlbmFtZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZmlsZW5hbWUNCgkgKiBAcmV0dXJuIGludGVnZXJ8ZmFsc2UNCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZmluZEZpbGVJbmRleCgkZmlsZW5hbWUpew0KCQlyZXR1cm4gJHRoaXMtPnNvdXJjZV9rZXlzWyRmaWxlbmFtZV07DQoJfQ0KDQoJLyoqDQoJICogZml4IHdpbmRvd3MgcGF0aHMNCgkgKiBAcGFyYW0gIHN0cmluZyAkcGF0aA0KCSAqIEByZXR1cm4gc3RyaW5nICAgICAgDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGZpeFdpbmRvd3NQYXRoKCRwYXRoLCAkYWRkRW5kU2xhc2ggPSBmYWxzZSl7DQoJCSRzbGFzaCA9ICgkYWRkRW5kU2xhc2gpID8gJy8nIDogJyc7DQoJCWlmKCAhZW1wdHkoJHBhdGgpICl7DQoJCQkkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KCQkJJHBhdGggPSBydHJpbSgkcGF0aCwnLycpIC4gJHNsYXNoOw0KCQl9DQoNCgkJcmV0dXJuICRwYXRoOw0KCX0NCg0KfQ==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUcmVlCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlewoKCXB1YmxpYyAkY2FjaGVfc3RyaW5nOwoKCXB1YmxpYyBmdW5jdGlvbiB0b0NTUygpewoJCSRvdXRwdXQgPSBuZXcgTGVzc19PdXRwdXQoKTsKCQkkdGhpcy0+Z2VuQ1NTKCRvdXRwdXQpOwoJCXJldHVybiAkb3V0cHV0LT50b1N0cmluZygpOwoJfQoKCiAgICAvKioKICAgICAqIEdlbmVyYXRlIENTUyBieSBhZGRpbmcgaXQgdG8gdGhlIG91dHB1dCBvYmplY3QKICAgICAqCiAgICAgKiBAcGFyYW0gTGVzc19PdXRwdXQgJG91dHB1dCBUaGUgb3V0cHV0CiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdlbkNTUygkb3V0cHV0KXt9CgoKCS8qKgoJICogQHBhcmFtIExlc3NfVHJlZV9SdWxlc2V0W10gJHJ1bGVzCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gb3V0cHV0UnVsZXNldCggJG91dHB1dCwgJHJ1bGVzICl7CgoJCSRydWxlQ250ID0gY291bnQoJHJ1bGVzKTsKCQlMZXNzX0Vudmlyb25tZW50OjokdGFiTGV2ZWwrKzsKCgoJCS8vIENvbXByZXNzZWQKCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydjb21wcmVzcyddICl7CgkJCSRvdXRwdXQtPmFkZCgneycpOwoJCQlmb3IoICRpID0gMDsgJGkgPCAkcnVsZUNudDsgJGkrKyApewoJCQkJJHJ1bGVzWyRpXS0+Z2VuQ1NTKCAkb3V0cHV0ICk7CgkJCX0KCgkJCSRvdXRwdXQtPmFkZCggJ30nICk7CgkJCUxlc3NfRW52aXJvbm1lbnQ6OiR0YWJMZXZlbC0tOwoJCQlyZXR1cm47CgkJfQoKCgkJLy8gTm9uLWNvbXByZXNzZWQKCQkkdGFiU2V0U3RyID0gIlxuIi5zdHJfcmVwZWF0KCBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2luZGVudGF0aW9uJ10gLCBMZXNzX0Vudmlyb25tZW50OjokdGFiTGV2ZWwtMSApOwoJCSR0YWJSdWxlU3RyID0gJHRhYlNldFN0ci5MZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2luZGVudGF0aW9uJ107CgoJCSRvdXRwdXQtPmFkZCggIiB7IiApOwoJCWZvcigkaSA9IDA7ICRpIDwgJHJ1bGVDbnQ7ICRpKysgKXsKCQkJJG91dHB1dC0+YWRkKCAkdGFiUnVsZVN0ciApOwoJCQkkcnVsZXNbJGldLT5nZW5DU1MoICRvdXRwdXQgKTsKCQl9CgkJTGVzc19FbnZpcm9ubWVudDo6JHRhYkxldmVsLS07CgkJJG91dHB1dC0+YWRkKCAkdGFiU2V0U3RyLid9JyApOwoKCX0KCglwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCR2aXNpdG9yKXt9CgoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gUmVmZXJlbmNlZEFycmF5KCRydWxlcyl7CgkJZm9yZWFjaCgkcnVsZXMgYXMgJHJ1bGUpewoJCQlpZiggbWV0aG9kX2V4aXN0cygkcnVsZSwgJ21hcmtSZWZlcmVuY2VkJykgKXsKCQkJCSRydWxlLT5tYXJrUmVmZXJlbmNlZCgpOwoJCQl9CgkJfQoJfQoKCgkvKioKCSAqIFJlcXVpcmVzIHBocCA1LjMrCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gX19zZXRfc3RhdGUoJGFyZ3MpewoKCQkkY2xhc3MgPSBnZXRfY2FsbGVkX2NsYXNzKCk7CgkJJG9iaiA9IG5ldyAkY2xhc3MobnVsbCxudWxsLG51bGwsbnVsbCk7CgkJZm9yZWFjaCgkYXJncyBhcyAka2V5ID0+ICR2YWwpewoJCQkkb2JqLT4ka2V5ID0gJHZhbDsKCQl9CgkJcmV0dXJuICRvYmo7Cgl9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Alpha.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBbHBoYQogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9BbHBoYSBleHRlbmRzIExlc3NfVHJlZXsKCXB1YmxpYyAkdmFsdWU7CglwdWJsaWMgJHR5cGUgPSAnQWxwaGEnOwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdmFsKXsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsOwoJfQoKCS8vZnVuY3Rpb24gYWNjZXB0KCAkdmlzaXRvciApewoJLy8JJHRoaXMtPnZhbHVlID0gJHZpc2l0b3ItPnZpc2l0KCAkdGhpcy0+dmFsdWUgKTsKCS8vfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpewoKCQlpZiggaXNfb2JqZWN0KCR0aGlzLT52YWx1ZSkgKXsKCQkJJHRoaXMtPnZhbHVlID0gJHRoaXMtPnZhbHVlLT5jb21waWxlKCRlbnYpOwoJCX0KCgkJcmV0dXJuICR0aGlzOwoJfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCglwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgoJCSRvdXRwdXQtPmFkZCggImFscGhhKG9wYWNpdHk9IiApOwoKCQlpZiggaXNfc3RyaW5nKCR0aGlzLT52YWx1ZSkgKXsKCQkJJG91dHB1dC0+YWRkKCAkdGhpcy0+dmFsdWUgKTsKCQl9ZWxzZXsKCQkJJHRoaXMtPnZhbHVlLT5nZW5DU1MoICRvdXRwdXQpOwoJCX0KCgkJJG91dHB1dC0+YWRkKCAnKScgKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdG9DU1MoKXsKCQlyZXR1cm4gImFscGhhKG9wYWNpdHk9IiAuIChpc19zdHJpbmcoJHRoaXMtPnZhbHVlKSA/ICR0aGlzLT52YWx1ZSA6ICR0aGlzLT52YWx1ZS0+dG9DU1MoKSkgLiAiKSI7Cgl9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Anonymous.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBbm9ueW1vdXMKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfQW5vbnltb3VzIGV4dGVuZHMgTGVzc19UcmVlewoJcHVibGljICR2YWx1ZTsKCXB1YmxpYyAkcXVvdGU7CglwdWJsaWMgJGluZGV4OwoJcHVibGljICRtYXBMaW5lczsKCXB1YmxpYyAkY3VycmVudEZpbGVJbmZvOwoJcHVibGljICR0eXBlID0gJ0Fub255bW91cyc7CgoJLyoqCgkgKiBAcGFyYW0gaW50ZWdlciAkaW5kZXgKCSAqIEBwYXJhbSBib29sZWFuICRtYXBMaW5lcwoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlLCAkaW5kZXggPSBudWxsLCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCwgJG1hcExpbmVzID0gbnVsbCApewoJCSR0aGlzLT52YWx1ZSA9ICR2YWx1ZTsKCQkkdGhpcy0+aW5kZXggPSAkaW5kZXg7CgkJJHRoaXMtPm1hcExpbmVzID0gJG1hcExpbmVzOwoJCSR0aGlzLT5jdXJyZW50RmlsZUluZm8gPSAkY3VycmVudEZpbGVJbmZvOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCl7CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfQW5vbnltb3VzKCR0aGlzLT52YWx1ZSwgJHRoaXMtPmluZGV4LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvLCAkdGhpcy0+bWFwTGluZXMpOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21wYXJlKCR4KXsKCQlpZiggIWlzX29iamVjdCgkeCkgKXsKCQkJcmV0dXJuIC0xOwoJCX0KCgkJJGxlZnQgPSAkdGhpcy0+dG9DU1MoKTsKCQkkcmlnaHQgPSAkeC0+dG9DU1MoKTsKCgkJaWYoICRsZWZ0ID09PSAkcmlnaHQgKXsKCQkJcmV0dXJuIDA7CgkJfQoKCQlyZXR1cm4gJGxlZnQgPCAkcmlnaHQgPyAtMSA6IDE7Cgl9CgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCQkkb3V0cHV0LT5hZGQoICR0aGlzLT52YWx1ZSwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbywgJHRoaXMtPmluZGV4LCAkdGhpcy0+bWFwTGluZXMgKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdG9DU1MoKXsKCQlyZXR1cm4gJHRoaXMtPnZhbHVlOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Assignment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBc3NpZ25tZW50CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX0Fzc2lnbm1lbnQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICRrZXk7CglwdWJsaWMgJHZhbHVlOwoJcHVibGljICR0eXBlID0gJ0Fzc2lnbm1lbnQnOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgka2V5LCAkdmFsKSB7CgkJJHRoaXMtPmtleSA9ICRrZXk7CgkJJHRoaXMtPnZhbHVlID0gJHZhbDsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCAkdmlzaXRvciApewoJCSR0aGlzLT52YWx1ZSA9ICR2aXNpdG9yLT52aXNpdE9iaiggJHRoaXMtPnZhbHVlICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudikgewoJCXJldHVybiBuZXcgTGVzc19UcmVlX0Fzc2lnbm1lbnQoICR0aGlzLT5rZXksICR0aGlzLT52YWx1ZS0+Y29tcGlsZSgkZW52KSk7Cgl9CgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCQkkb3V0cHV0LT5hZGQoICR0aGlzLT5rZXkgLiAnPScgKTsKCQkkdGhpcy0+dmFsdWUtPmdlbkNTUyggJG91dHB1dCApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0b0NzcygpewoJCXJldHVybiAkdGhpcy0+a2V5IC4gJz0nIC4gJHRoaXMtPnZhbHVlLT50b0NTUygpOwoJfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Attribute.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBdHRyaWJ1dGUKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfQXR0cmlidXRlIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAka2V5OwoJcHVibGljICRvcDsKCXB1YmxpYyAkdmFsdWU7CglwdWJsaWMgJHR5cGUgPSAnQXR0cmlidXRlJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGtleSwgJG9wLCAkdmFsdWUpewoJCSR0aGlzLT5rZXkgPSAka2V5OwoJCSR0aGlzLT5vcCA9ICRvcDsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsdWU7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudil7CgoJCSRrZXlfb2JqID0gaXNfb2JqZWN0KCR0aGlzLT5rZXkpOwoJCSR2YWxfb2JqID0gaXNfb2JqZWN0KCR0aGlzLT52YWx1ZSk7CgoJCWlmKCAhJGtleV9vYmogJiYgISR2YWxfb2JqICl7CgkJCXJldHVybiAkdGhpczsKCQl9CgoJCXJldHVybiBuZXcgTGVzc19UcmVlX0F0dHJpYnV0ZSgKCQkJJGtleV9vYmogPyAkdGhpcy0+a2V5LT5jb21waWxlKCRlbnYpIDogJHRoaXMtPmtleSAsCgkJCSR0aGlzLT5vcCwKCQkJJHZhbF9vYmogPyAkdGhpcy0+dmFsdWUtPmNvbXBpbGUoJGVudikgOiAkdGhpcy0+dmFsdWUpOwoJfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgkJJG91dHB1dC0+YWRkKCAkdGhpcy0+dG9DU1MoKSApOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0b0NTUygpewoJCSR2YWx1ZSA9ICR0aGlzLT5rZXk7CgoJCWlmKCAkdGhpcy0+b3AgKXsKCQkJJHZhbHVlIC49ICR0aGlzLT5vcDsKCQkJJHZhbHVlIC49IChpc19vYmplY3QoJHRoaXMtPnZhbHVlKSA/ICR0aGlzLT52YWx1ZS0+dG9DU1MoKSA6ICR0aGlzLT52YWx1ZSk7CgkJfQoKCQlyZXR1cm4gJ1snIC4gJHZhbHVlIC4gJ10nOwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Call.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgovKioKICogQ2FsbAogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9DYWxsIGV4dGVuZHMgTGVzc19UcmVlewogICAgcHVibGljICR2YWx1ZTsKCiAgICBwcm90ZWN0ZWQgJG5hbWU7CiAgICBwcm90ZWN0ZWQgJGFyZ3M7CiAgICBwcm90ZWN0ZWQgJGluZGV4OwogICAgcHJvdGVjdGVkICRjdXJyZW50RmlsZUluZm87CiAgICBwdWJsaWMgJHR5cGUgPSAnQ2FsbCc7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lLCAkYXJncywgJGluZGV4LCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCApewoJCSR0aGlzLT5uYW1lID0gJG5hbWU7CgkJJHRoaXMtPmFyZ3MgPSAkYXJnczsKCQkkdGhpcy0+aW5kZXggPSAkaW5kZXg7CgkJJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyA9ICRjdXJyZW50RmlsZUluZm87Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCggJHZpc2l0b3IgKXsKCQkkdGhpcy0+YXJncyA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCAkdGhpcy0+YXJncyApOwoJfQoKICAgIC8vCiAgICAvLyBXaGVuIGV2YWx1YXRpbmcgYSBmdW5jdGlvbiBjYWxsLAogICAgLy8gd2UgZWl0aGVyIGZpbmQgdGhlIGZ1bmN0aW9uIGluIGB0cmVlLmZ1bmN0aW9uc2AgWzFdLAogICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSBjYWxsIGl0LCBwYXNzaW5nIHRoZSAgZXZhbHVhdGVkIGFyZ3VtZW50cywKICAgIC8vIG9yIHdlIHNpbXBseSBwcmludCBpdCBvdXQgYXMgaXQgYXBwZWFyZWQgb3JpZ2luYWxseSBbMl0uCiAgICAvLwogICAgLy8gVGhlICpmdW5jdGlvbnMuanMqIGZpbGUgY29udGFpbnMgdGhlIGJ1aWx0LWluIGZ1bmN0aW9ucy4KICAgIC8vCiAgICAvLyBUaGUgcmVhc29uIHdoeSB3ZSBldmFsdWF0ZSB0aGUgYXJndW1lbnRzLCBpcyBpbiB0aGUgY2FzZSB3aGVyZQogICAgLy8gd2UgdHJ5IHRvIHBhc3MgYSB2YXJpYWJsZSB0byBhIGZ1bmN0aW9uLCBsaWtlOiBgc2F0dXJhdGUoQGNvbG9yKWAuCiAgICAvLyBUaGUgZnVuY3Rpb24gc2hvdWxkIHJlY2VpdmUgdGhlIHZhbHVlLCBub3QgdGhlIHZhcmlhYmxlLgogICAgLy8KICAgIHB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnY9bnVsbCl7CgkJJGFyZ3MgPSBhcnJheSgpOwoJCWZvcmVhY2goJHRoaXMtPmFyZ3MgYXMgJGEpewoJCQkkYXJnc1tdID0gJGEtPmNvbXBpbGUoJGVudik7CgkJfQoKCQkkbmFtZUxDID0gc3RydG9sb3dlcigkdGhpcy0+bmFtZSk7CgkJc3dpdGNoKCRuYW1lTEMpewoJCQljYXNlICclJzoKCQkJJG5hbWVMQyA9ICdfcGVyY2VudCc7CgkJCWJyZWFrOwoKCQkJY2FzZSAnZ2V0LXVuaXQnOgoJCQkkbmFtZUxDID0gJ2dldHVuaXQnOwoJCQlicmVhazsKCgkJCWNhc2UgJ2RhdGEtdXJpJzoKCQkJJG5hbWVMQyA9ICdkYXRhdXJpJzsKCQkJYnJlYWs7CgoJCQljYXNlICdzdmctZ3JhZGllbnQnOgoJCQkkbmFtZUxDID0gJ3N2Z2dyYWRpZW50JzsKCQkJYnJlYWs7CgkJfQoKCQkkcmVzdWx0ID0gbnVsbDsKCQlpZiggJG5hbWVMQyA9PT0gJ2RlZmF1bHQnICl7CgkJCSRyZXN1bHQgPSBMZXNzX1RyZWVfRGVmYXVsdEZ1bmM6OmNvbXBpbGUoKTsKCgkJfWVsc2V7CgoJCQlpZiggbWV0aG9kX2V4aXN0cygnTGVzc19GdW5jdGlvbnMnLCRuYW1lTEMpICl7IC8vIDEuCgkJCQl0cnkgewoKCQkJCQkkZnVuYyA9IG5ldyBMZXNzX0Z1bmN0aW9ucygkZW52LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvKTsKCQkJCQkkcmVzdWx0ID0gY2FsbF91c2VyX2Z1bmNfYXJyYXkoIGFycmF5KCRmdW5jLCRuYW1lTEMpLCRhcmdzKTsKCgkJCQl9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKCQkJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ2Vycm9yIGV2YWx1YXRpbmcgZnVuY3Rpb24gYCcgLiAkdGhpcy0+bmFtZSAuICdgICcuJGUtPmdldE1lc3NhZ2UoKS4nIGluZGV4OiAnLiAkdGhpcy0+aW5kZXgpOwoJCQkJfQoJCQl9IGVsc2VpZiggaXNzZXQoICRlbnYtPmZ1bmN0aW9uc1skbmFtZUxDXSApICYmIGlzX2NhbGxhYmxlKCAkZW52LT5mdW5jdGlvbnNbJG5hbWVMQ10gKSApIHsKCQkJCXRyeSB7CgkJCQkJJHJlc3VsdCA9IGNhbGxfdXNlcl9mdW5jX2FycmF5KCAkZW52LT5mdW5jdGlvbnNbJG5hbWVMQ10sICRhcmdzICk7CgkJCQl9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKCQkJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJ2Vycm9yIGV2YWx1YXRpbmcgZnVuY3Rpb24gYCcgLiAkdGhpcy0+bmFtZSAuICdgICcuJGUtPmdldE1lc3NhZ2UoKS4nIGluZGV4OiAnLiAkdGhpcy0+aW5kZXgpOwoJCQkJfQoJCQl9CgkJfQoKCQlpZiggJHJlc3VsdCAhPT0gbnVsbCApewoJCQlyZXR1cm4gJHJlc3VsdDsKCQl9CgoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9DYWxsKCAkdGhpcy0+bmFtZSwgJGFyZ3MsICR0aGlzLT5pbmRleCwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyApOwogICAgfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCglwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgoJCSRvdXRwdXQtPmFkZCggJHRoaXMtPm5hbWUgLiAnKCcsICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmRleCApOwoJCSRhcmdzX2xlbiA9IGNvdW50KCR0aGlzLT5hcmdzKTsKCQlmb3IoJGkgPSAwOyAkaSA8ICRhcmdzX2xlbjsgJGkrKyApewoJCQkkdGhpcy0+YXJnc1skaV0tPmdlbkNTUyggJG91dHB1dCApOwoJCQlpZiggJGkgKyAxIDwgJGFyZ3NfbGVuICl7CgkJCQkkb3V0cHV0LT5hZGQoICcsICcgKTsKCQkJfQoJCX0KCgkJJG91dHB1dC0+YWRkKCAnKScgKTsKCX0KCgogICAgLy9wdWJsaWMgZnVuY3Rpb24gdG9DU1MoKXsKICAgIC8vICAgIHJldHVybiAkdGhpcy0+Y29tcGlsZSgpLT50b0NTUygpOwogICAgLy99Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Color.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDb2xvcgogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9Db2xvciBleHRlbmRzIExlc3NfVHJlZXsKCXB1YmxpYyAkcmdiOwoJcHVibGljICRhbHBoYTsKCXB1YmxpYyAkaXNUcmFuc3BhcmVudEtleXdvcmQ7CglwdWJsaWMgJHR5cGUgPSAnQ29sb3InOwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcmdiLCAkYSA9IDEsICRpc1RyYW5zcGFyZW50S2V5d29yZCA9IG51bGwgKXsKCgkJaWYoICRpc1RyYW5zcGFyZW50S2V5d29yZCApewoJCQkkdGhpcy0+cmdiID0gJHJnYjsKCQkJJHRoaXMtPmFscGhhID0gJGE7CgkJCSR0aGlzLT5pc1RyYW5zcGFyZW50S2V5d29yZCA9IHRydWU7CgkJCXJldHVybjsKCQl9CgoJCSR0aGlzLT5yZ2IgPSBhcnJheSgpOwoJCWlmKCBpc19hcnJheSgkcmdiKSApewoJCQkkdGhpcy0+cmdiID0gJHJnYjsKCQl9ZWxzZSBpZiggc3RybGVuKCRyZ2IpID09IDYgKXsKCQkJZm9yZWFjaChzdHJfc3BsaXQoJHJnYiwgMikgYXMgJGMpewoJCQkJJHRoaXMtPnJnYltdID0gaGV4ZGVjKCRjKTsKCQkJfQoJCX1lbHNlewoJCQlmb3JlYWNoKHN0cl9zcGxpdCgkcmdiLCAxKSBhcyAkYyl7CgkJCQkkdGhpcy0+cmdiW10gPSBoZXhkZWMoJGMuJGMpOwoJCQl9CgkJfQoJCSR0aGlzLT5hbHBoYSA9IGlzX251bWVyaWMoJGEpID8gJGEgOiAxOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCl7CgkJcmV0dXJuICR0aGlzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBsdW1hKCl7CgkJJHIgPSAkdGhpcy0+cmdiWzBdIC8gMjU1OwoJCSRnID0gJHRoaXMtPnJnYlsxXSAvIDI1NTsKCQkkYiA9ICR0aGlzLT5yZ2JbMl0gLyAyNTU7CgoJCSRyID0gKCRyIDw9IDAuMDM5MjgpID8gJHIgLyAxMi45MiA6IHBvdygoKCRyICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpOwoJCSRnID0gKCRnIDw9IDAuMDM5MjgpID8gJGcgLyAxMi45MiA6IHBvdygoKCRnICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpOwoJCSRiID0gKCRiIDw9IDAuMDM5MjgpID8gJGIgLyAxMi45MiA6IHBvdygoKCRiICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpOwoKCQlyZXR1cm4gMC4yMTI2ICogJHIgKyAwLjcxNTIgKiAkZyArIDAuMDcyMiAqICRiOwoJfQoKCS8qKgoJICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwoJICovCglwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgkJJG91dHB1dC0+YWRkKCAkdGhpcy0+dG9DU1MoKSApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0b0NTUyggJGRvTm90Q29tcHJlc3MgPSBmYWxzZSApewoJCSRjb21wcmVzcyA9IExlc3NfUGFyc2VyOjokb3B0aW9uc1snY29tcHJlc3MnXSAmJiAhJGRvTm90Q29tcHJlc3M7CgkJJGFscGhhID0gTGVzc19GdW5jdGlvbnM6OmZyb3VuZCggJHRoaXMtPmFscGhhICk7CgoKCQkvLwoJCS8vIElmIHdlIGhhdmUgc29tZSB0cmFuc3BhcmVuY3ksIHRoZSBvbmx5IHdheSB0byByZXByZXNlbnQgaXQKCQkvLyBpcyB2aWEgYHJnYmFgLiBPdGhlcndpc2UsIHdlIHVzZSB0aGUgaGV4IHJlcHJlc2VudGF0aW9uLAoJCS8vIHdoaWNoIGhhcyBiZXR0ZXIgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIGJyb3dzZXJzLgoJCS8vIFZhbHVlcyBhcmUgY2FwcGVkIGJldHdlZW4gYDBgIGFuZCBgMjU1YCwgcm91bmRlZCBhbmQgemVyby1wYWRkZWQuCgkJLy8KCQlpZiggJGFscGhhIDwgMSApewoJCQlpZiggKCAkYWxwaGEgPT09IDAgfHwgJGFscGhhID09PSAwLjAgKSAmJiBpc3NldCgkdGhpcy0+aXNUcmFuc3BhcmVudEtleXdvcmQpICYmICR0aGlzLT5pc1RyYW5zcGFyZW50S2V5d29yZCApewoJCQkJcmV0dXJuICd0cmFuc3BhcmVudCc7CgkJCX0KCgkJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCR0aGlzLT5yZ2IgYXMgJGMpewoJCQkJJHZhbHVlc1tdID0gTGVzc19GdW5jdGlvbnM6OmNsYW1wKCByb3VuZCgkYyksIDI1NSk7CgkJCX0KCQkJJHZhbHVlc1tdID0gJGFscGhhOwoKCQkJJGdsdWUgPSAoJGNvbXByZXNzID8gJywnIDogJywgJyk7CgkJCXJldHVybiAicmdiYSgiIC4gaW1wbG9kZSgkZ2x1ZSwgJHZhbHVlcykgLiAiKSI7CgkJfWVsc2V7CgoJCQkkY29sb3IgPSAkdGhpcy0+dG9SR0IoKTsKCgkJCWlmKCAkY29tcHJlc3MgKXsKCgkJCQkvLyBDb252ZXJ0IGNvbG9yIHRvIHNob3J0IGZvcm1hdAoJCQkJaWYoICRjb2xvclsxXSA9PT0gJGNvbG9yWzJdICYmICRjb2xvclszXSA9PT0gJGNvbG9yWzRdICYmICRjb2xvcls1XSA9PT0gJGNvbG9yWzZdKSB7CgkJCQkJJGNvbG9yID0gJyMnLiRjb2xvclsxXSAuICRjb2xvclszXSAuICRjb2xvcls1XTsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuICRjb2xvcjsKCQl9Cgl9CgoJLy8KCS8vIE9wZXJhdGlvbnMgaGF2ZSB0byBiZSBkb25lIHBlci1jaGFubmVsLCBpZiBub3QsCgkvLyBjaGFubmVscyB3aWxsIHNwaWxsIG9udG8gZWFjaCBvdGhlci4gT25jZSB3ZSBoYXZlCgkvLyBvdXIgcmVzdWx0LCBpbiB0aGUgZm9ybSBvZiBhbiBpbnRlZ2VyIHRyaXBsZXQsCgkvLyB3ZSBjcmVhdGUgYSBuZXcgQ29sb3Igbm9kZSB0byBob2xkIHRoZSByZXN1bHQuCgkvLwoKCS8qKgoJICogQHBhcmFtIHN0cmluZyAkb3AKCSAqLwoJcHVibGljIGZ1bmN0aW9uIG9wZXJhdGUoICRvcCwgJG90aGVyKSB7CgkJJHJnYiA9IGFycmF5KCk7CgkJJGFscGhhID0gJHRoaXMtPmFscGhhICogKDEgLSAkb3RoZXItPmFscGhhKSArICRvdGhlci0+YWxwaGE7CgkJZm9yICgkYyA9IDA7ICRjIDwgMzsgJGMrKykgewoJCQkkcmdiWyRjXSA9IExlc3NfRnVuY3Rpb25zOjpvcGVyYXRlKCAkb3AsICR0aGlzLT5yZ2JbJGNdLCAkb3RoZXItPnJnYlskY10pOwoJCX0KCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9Db2xvcigkcmdiLCAkYWxwaGEpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0b1JHQigpewoJCXJldHVybiAkdGhpcy0+dG9IZXgoJHRoaXMtPnJnYik7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHRvSFNMKCl7CgkJJHIgPSAkdGhpcy0+cmdiWzBdIC8gMjU1OwoJCSRnID0gJHRoaXMtPnJnYlsxXSAvIDI1NTsKCQkkYiA9ICR0aGlzLT5yZ2JbMl0gLyAyNTU7CgkJJGEgPSAkdGhpcy0+YWxwaGE7CgoJCSRtYXggPSBtYXgoJHIsICRnLCAkYik7CgkJJG1pbiA9IG1pbigkciwgJGcsICRiKTsKCQkkbCA9ICgkbWF4ICsgJG1pbikgLyAyOwoJCSRkID0gJG1heCAtICRtaW47CgoJCSRoID0gJHMgPSAwOwoJCWlmKCAkbWF4ICE9PSAkbWluICl7CgkJCSRzID0gJGwgPiAwLjUgPyAkZCAvICgyIC0gJG1heCAtICRtaW4pIDogJGQgLyAoJG1heCArICRtaW4pOwoKCQkJc3dpdGNoICgkbWF4KSB7CgkJCQljYXNlICRyOiAkaCA9ICgkZyAtICRiKSAvICRkICsgKCRnIDwgJGIgPyA2IDogMCk7IGJyZWFrOwoJCQkJY2FzZSAkZzogJGggPSAoJGIgLSAkcikgLyAkZCArIDI7CQkJCSBicmVhazsKCQkJCWNhc2UgJGI6ICRoID0gKCRyIC0gJGcpIC8gJGQgKyA0OwkJCQkgYnJlYWs7CgkJCX0KCQkJJGggLz0gNjsKCQl9CgkJcmV0dXJuIGFycmF5KCdoJyA9PiAkaCAqIDM2MCwgJ3MnID0+ICRzLCAnbCcgPT4gJGwsICdhJyA9PiAkYSApOwoJfQoKCS8vQWRhcHRlZCBmcm9tIGh0dHA6Ly9tamlqYWNrc29uLmNvbS8yMDA4LzAyL3JnYi10by1oc2wtYW5kLXJnYi10by1oc3YtY29sb3ItbW9kZWwtY29udmVyc2lvbi1hbGdvcml0aG1zLWluLWphdmFzY3JpcHQKICAgIHB1YmxpYyBmdW5jdGlvbiB0b0hTVigpIHsKCQkkciA9ICR0aGlzLT5yZ2JbMF0gLyAyNTU7CgkJJGcgPSAkdGhpcy0+cmdiWzFdIC8gMjU1OwoJCSRiID0gJHRoaXMtPnJnYlsyXSAvIDI1NTsKCQkkYSA9ICR0aGlzLT5hbHBoYTsKCgkJJG1heCA9IG1heCgkciwgJGcsICRiKTsKCQkkbWluID0gbWluKCRyLCAkZywgJGIpOwoKCQkkdiA9ICRtYXg7CgoJCSRkID0gJG1heCAtICRtaW47CgkJaWYgKCRtYXggPT09IDApIHsKCQkJJHMgPSAwOwoJCX0gZWxzZSB7CgkJCSRzID0gJGQgLyAkbWF4OwoJCX0KCgkJJGggPSAwOwoJCWlmKCAkbWF4ICE9PSAkbWluICl7CgkJCXN3aXRjaCgkbWF4KXsKCQkJCWNhc2UgJHI6ICRoID0gKCRnIC0gJGIpIC8gJGQgKyAoJGcgPCAkYiA/IDYgOiAwKTsgYnJlYWs7CgkJCQljYXNlICRnOiAkaCA9ICgkYiAtICRyKSAvICRkICsgMjsgYnJlYWs7CgkJCQljYXNlICRiOiAkaCA9ICgkciAtICRnKSAvICRkICsgNDsgYnJlYWs7CgkJCX0KCQkJJGggLz0gNjsKCQl9CgkJcmV0dXJuIGFycmF5KCdoJz0+ICRoICogMzYwLCAncyc9PiAkcywgJ3YnPT4gJHYsICdhJyA9PiAkYSApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0b0FSR0IoKXsKCQkkYXJnYiA9IGFycmF5X21lcmdlKCAoYXJyYXkpIExlc3NfUGFyc2VyOjpyb3VuZCgkdGhpcy0+YWxwaGEgKiAyNTUpLCAkdGhpcy0+cmdiKTsKCQlyZXR1cm4gJHRoaXMtPnRvSGV4KCAkYXJnYiApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21wYXJlKCR4KXsKCgkJaWYoICFwcm9wZXJ0eV9leGlzdHMoICR4LCAncmdiJyApICl7CgkJCXJldHVybiAtMTsKCQl9CgoKCQlyZXR1cm4gKCR4LT5yZ2JbMF0gPT09ICR0aGlzLT5yZ2JbMF0gJiYKCQkJJHgtPnJnYlsxXSA9PT0gJHRoaXMtPnJnYlsxXSAmJgoJCQkkeC0+cmdiWzJdID09PSAkdGhpcy0+cmdiWzJdICYmCgkJCSR4LT5hbHBoYSA9PT0gJHRoaXMtPmFscGhhKSA/IDAgOiAtMTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdG9IZXgoICR2ICl7CgoJCSRyZXQgPSAnIyc7CgkJZm9yZWFjaCgkdiBhcyAkYyl7CgkJCSRjID0gTGVzc19GdW5jdGlvbnM6OmNsYW1wKCBMZXNzX1BhcnNlcjo6cm91bmQoJGMpLCAyNTUpOwoJCQlpZiggJGMgPCAxNiApewoJCQkJJHJldCAuPSAnMCc7CgkJCX0KCQkJJHJldCAuPSBkZWNoZXgoJGMpOwoJCX0KCgkJcmV0dXJuICRyZXQ7Cgl9CgoKCS8qKgoJICogQHBhcmFtIHN0cmluZyAka2V5d29yZAoJICovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZyb21LZXl3b3JkKCAka2V5d29yZCApewoJCSRrZXl3b3JkID0gc3RydG9sb3dlcigka2V5d29yZCk7CgoJCWlmKCBMZXNzX0NvbG9yczo6aGFzT3duUHJvcGVydHkoJGtleXdvcmQpICl7CgkJCS8vIGRldGVjdCBuYW1lZCBjb2xvcgoJCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9Db2xvcihzdWJzdHIoTGVzc19Db2xvcnM6OmNvbG9yKCRrZXl3b3JkKSwgMSkpOwoJCX0KCgkJaWYoICRrZXl3b3JkID09PSAndHJhbnNwYXJlbnQnICl7CgkJCXJldHVybiBuZXcgTGVzc19UcmVlX0NvbG9yKCBhcnJheSgwLCAwLCAwKSwgMCwgdHJ1ZSk7CgkJfQoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Comment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDb21tZW50CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX0NvbW1lbnQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICR2YWx1ZTsKCXB1YmxpYyAkc2lsZW50OwoJcHVibGljICRpc1JlZmVyZW5jZWQ7CglwdWJsaWMgJGN1cnJlbnRGaWxlSW5mbzsKCXB1YmxpYyAkdHlwZSA9ICdDb21tZW50JzsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlLCAkc2lsZW50LCAkaW5kZXggPSBudWxsLCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCApewoJCSR0aGlzLT52YWx1ZSA9ICR2YWx1ZTsKCQkkdGhpcy0+c2lsZW50ID0gISEgJHNpbGVudDsKCQkkdGhpcy0+Y3VycmVudEZpbGVJbmZvID0gJGN1cnJlbnRGaWxlSW5mbzsKCX0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwoJcHVibGljIGZ1bmN0aW9uIGdlbkNTUyggJG91dHB1dCApewoJCS8vaWYoICR0aGlzLT5kZWJ1Z0luZm8gKXsKCQkJLy8kb3V0cHV0LT5hZGQoIHRyZWUuZGVidWdJbmZvKCRlbnYsICR0aGlzKSwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbywgJHRoaXMtPmluZGV4KTsKCQkvL30KCQkkb3V0cHV0LT5hZGQoIHRyaW0oJHRoaXMtPnZhbHVlKSApOy8vVE9ETyBzaG91bGRuJ3QgbmVlZCB0byB0cmltLCB3ZSBzaG91bGRuJ3QgZ3JhYiB0aGUgXG4KCX0KCglwdWJsaWMgZnVuY3Rpb24gdG9DU1MoKXsKCQlyZXR1cm4gTGVzc19QYXJzZXI6OiRvcHRpb25zWydjb21wcmVzcyddID8gJycgOiAkdGhpcy0+dmFsdWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzU2lsZW50KCl7CgkJJGlzUmVmZXJlbmNlID0gKCR0aGlzLT5jdXJyZW50RmlsZUluZm8gJiYgaXNzZXQoJHRoaXMtPmN1cnJlbnRGaWxlSW5mb1sncmVmZXJlbmNlJ10pICYmICghaXNzZXQoJHRoaXMtPmlzUmVmZXJlbmNlZCkgfHwgISR0aGlzLT5pc1JlZmVyZW5jZWQpICk7CgkJJGlzQ29tcHJlc3NlZCA9IExlc3NfUGFyc2VyOjokb3B0aW9uc1snY29tcHJlc3MnXSAmJiAhcHJlZ19tYXRjaCgnL15cL1wqIS8nLCAkdGhpcy0+dmFsdWUpOwoJCXJldHVybiAkdGhpcy0+c2lsZW50IHx8ICRpc1JlZmVyZW5jZSB8fCAkaXNDb21wcmVzc2VkOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCl7CgkJcmV0dXJuICR0aGlzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBtYXJrUmVmZXJlbmNlZCgpewoJCSR0aGlzLT5pc1JlZmVyZW5jZWQgPSB0cnVlOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Condition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDb25kaXRpb24KICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfQ29uZGl0aW9uIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkb3A7CglwdWJsaWMgJGx2YWx1ZTsKCXB1YmxpYyAkcnZhbHVlOwoJcHVibGljICRpbmRleDsKCXB1YmxpYyAkbmVnYXRlOwoJcHVibGljICR0eXBlID0gJ0NvbmRpdGlvbic7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcCwgJGwsICRyLCAkaSA9IDAsICRuZWdhdGUgPSBmYWxzZSkgewoJCSR0aGlzLT5vcCA9IHRyaW0oJG9wKTsKCQkkdGhpcy0+bHZhbHVlID0gJGw7CgkJJHRoaXMtPnJ2YWx1ZSA9ICRyOwoJCSR0aGlzLT5pbmRleCA9ICRpOwoJCSR0aGlzLT5uZWdhdGUgPSAkbmVnYXRlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBhY2NlcHQoJHZpc2l0b3IpewoJCSR0aGlzLT5sdmFsdWUgPSAkdmlzaXRvci0+dmlzaXRPYmooICR0aGlzLT5sdmFsdWUgKTsKCQkkdGhpcy0+cnZhbHVlID0gJHZpc2l0b3ItPnZpc2l0T2JqKCAkdGhpcy0+cnZhbHVlICk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudikgewoJCSRhID0gJHRoaXMtPmx2YWx1ZS0+Y29tcGlsZSgkZW52KTsKCQkkYiA9ICR0aGlzLT5ydmFsdWUtPmNvbXBpbGUoJGVudik7CgoJCXN3aXRjaCggJHRoaXMtPm9wICl7CgkJCWNhc2UgJ2FuZCc6CgkJCQkkcmVzdWx0ID0gJGEgJiYgJGI7CgkJCWJyZWFrOwoKCQkJY2FzZSAnb3InOgoJCQkJJHJlc3VsdCA9ICRhIHx8ICRiOwoJCQlicmVhazsKCgkJCWRlZmF1bHQ6CgkJCQlpZiggTGVzc19QYXJzZXI6OmlzX21ldGhvZCgkYSwgJ2NvbXBhcmUnKSApewoJCQkJCSRyZXN1bHQgPSAkYS0+Y29tcGFyZSgkYik7CgkJCQl9ZWxzZWlmKCBMZXNzX1BhcnNlcjo6aXNfbWV0aG9kKCRiLCAnY29tcGFyZScpICl7CgkJCQkJJHJlc3VsdCA9ICRiLT5jb21wYXJlKCRhKTsKCQkJCX1lbHNlewoJCQkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcignVW5hYmxlIHRvIHBlcmZvcm0gY29tcGFyaXNvbicsIG51bGwsICR0aGlzLT5pbmRleCk7CgkJCQl9CgoJCQkJc3dpdGNoICgkcmVzdWx0KSB7CgkJCQkJY2FzZSAtMToKCQkJCQkkcmVzdWx0ID0gJHRoaXMtPm9wID09PSAnPCcgfHwgJHRoaXMtPm9wID09PSAnPTwnIHx8ICR0aGlzLT5vcCA9PT0gJzw9JzsKCQkJCQlicmVhazsKCgkJCQkJY2FzZSAgMDoKCQkJCQkkcmVzdWx0ID0gJHRoaXMtPm9wID09PSAnPScgfHwgJHRoaXMtPm9wID09PSAnPj0nIHx8ICR0aGlzLT5vcCA9PT0gJz08JyB8fCAkdGhpcy0+b3AgPT09ICc8PSc7CgkJCQkJYnJlYWs7CgoJCQkJCWNhc2UgIDE6CgkJCQkJJHJlc3VsdCA9ICR0aGlzLT5vcCA9PT0gJz4nIHx8ICR0aGlzLT5vcCA9PT0gJz49JzsKCQkJCQlicmVhazsKCQkJCX0KCQkJYnJlYWs7CgkJfQoKCQlyZXR1cm4gJHRoaXMtPm5lZ2F0ZSA/ICEkcmVzdWx0IDogJHJlc3VsdDsKICAgIH0KCn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/DefaultFunc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBEZWZhdWx0RnVuYwogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9EZWZhdWx0RnVuY3sKCglzdGF0aWMgJGVycm9yXzsKCXN0YXRpYyAkdmFsdWVfOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY29tcGlsZSgpewoJCWlmKCBzZWxmOjokZXJyb3JfICl7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oc2VsZjo6JGVycm9yXyk7CgkJfQoJCWlmKCBzZWxmOjokdmFsdWVfICE9PSBudWxsICl7CgkJCXJldHVybiBzZWxmOjokdmFsdWVfID8gbmV3IExlc3NfVHJlZV9LZXl3b3JkKCd0cnVlJykgOiBuZXcgTGVzc19UcmVlX0tleXdvcmQoJ2ZhbHNlJyk7CgkJfQoJfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdmFsdWUoICR2ICl7CgkJc2VsZjo6JHZhbHVlXyA9ICR2OwoJfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXJyb3IoICRlICl7CgkJc2VsZjo6JGVycm9yXyA9ICRlOwoJfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVzZXQoKXsKCQlzZWxmOjokdmFsdWVfID0gc2VsZjo6JGVycm9yXyA9IG51bGw7Cgl9Cn0=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/DetachedRuleset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBEZXRhY2hlZFJ1bGVzZXQKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfRGV0YWNoZWRSdWxlc2V0IGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkcnVsZXNldDsKCXB1YmxpYyAkZnJhbWVzOwoJcHVibGljICR0eXBlID0gJ0RldGFjaGVkUnVsZXNldCc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCAkcnVsZXNldCwgJGZyYW1lcyA9IG51bGwgKXsKCQkkdGhpcy0+cnVsZXNldCA9ICRydWxlc2V0OwoJCSR0aGlzLT5mcmFtZXMgPSAkZnJhbWVzOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhY2NlcHQoJHZpc2l0b3IpIHsKCQkkdGhpcy0+cnVsZXNldCA9ICR2aXNpdG9yLT52aXNpdE9iaigkdGhpcy0+cnVsZXNldCk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudil7CgkJaWYoICR0aGlzLT5mcmFtZXMgKXsKCQkJJGZyYW1lcyA9ICR0aGlzLT5mcmFtZXM7CgkJfWVsc2V7CgkJCSRmcmFtZXMgPSAkZW52LT5mcmFtZXM7CgkJfQoJCXJldHVybiBuZXcgTGVzc19UcmVlX0RldGFjaGVkUnVsZXNldCgkdGhpcy0+cnVsZXNldCwgJGZyYW1lcyk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhbGxFdmFsKCRlbnYpIHsKCQlpZiggJHRoaXMtPmZyYW1lcyApewoJCQlyZXR1cm4gJHRoaXMtPnJ1bGVzZXQtPmNvbXBpbGUoICRlbnYtPmNvcHlFdmFsRW52KCBhcnJheV9tZXJnZSgkdGhpcy0+ZnJhbWVzLCRlbnYtPmZyYW1lcykgKSApOwoJCX0KCQlyZXR1cm4gJHRoaXMtPnJ1bGVzZXQtPmNvbXBpbGUoICRlbnYgKTsKCX0KfQoK]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Dimension.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBEaW1lbnNpb24KICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfRGltZW5zaW9uIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkdmFsdWU7CglwdWJsaWMgJHVuaXQ7CglwdWJsaWMgJHR5cGUgPSAnRGltZW5zaW9uJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlLCAkdW5pdCA9IG51bGwpewogICAgICAgICR0aGlzLT52YWx1ZSA9IGZsb2F0dmFsKCR2YWx1ZSk7CgoJCWlmKCAkdW5pdCAmJiAoJHVuaXQgaW5zdGFuY2VvZiBMZXNzX1RyZWVfVW5pdCkgKXsKCQkJJHRoaXMtPnVuaXQgPSAkdW5pdDsKCQl9ZWxzZWlmKCAkdW5pdCApewoJCQkkdGhpcy0+dW5pdCA9IG5ldyBMZXNzX1RyZWVfVW5pdCggYXJyYXkoJHVuaXQpICk7CgkJfWVsc2V7CgkJCSR0aGlzLT51bml0ID0gbmV3IExlc3NfVHJlZV9Vbml0KCApOwoJCX0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCAkdmlzaXRvciApewoJCSR0aGlzLT51bml0ID0gJHZpc2l0b3ItPnZpc2l0T2JqKCAkdGhpcy0+dW5pdCApOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCl7CiAgICAgICAgcmV0dXJuICR0aGlzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0b0NvbG9yKCkgewogICAgICAgIHJldHVybiBuZXcgTGVzc19UcmVlX0NvbG9yKGFycmF5KCR0aGlzLT52YWx1ZSwgJHRoaXMtPnZhbHVlLCAkdGhpcy0+dmFsdWUpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwoJcHVibGljIGZ1bmN0aW9uIGdlbkNTUyggJG91dHB1dCApewoKCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydzdHJpY3RVbml0cyddICYmICEkdGhpcy0+dW5pdC0+aXNTaW5ndWxhcigpICl7CgkJCXRocm93IG5ldyBMZXNzX0V4Y2VwdGlvbl9Db21waWxlcigiTXVsdGlwbGUgdW5pdHMgaW4gZGltZW5zaW9uLiBDb3JyZWN0IHRoZSB1bml0cyBvciB1c2UgdGhlIHVuaXQgZnVuY3Rpb24uIEJhZCB1bml0OiAiLiR0aGlzLT51bml0LT50b1N0cmluZygpKTsKCQl9CgoJCSR2YWx1ZSA9IExlc3NfRnVuY3Rpb25zOjpmcm91bmQoICR0aGlzLT52YWx1ZSApOwoJCSRzdHJWYWx1ZSA9IChzdHJpbmcpJHZhbHVlOwoKCQlpZiggJHZhbHVlICE9PSAwICYmICR2YWx1ZSA8IDAuMDAwMDAxICYmICR2YWx1ZSA+IC0wLjAwMDAwMSApewoJCQkvLyB3b3VsZCBiZSBvdXRwdXQgMWUtNiBldGMuCgkJCSRzdHJWYWx1ZSA9IG51bWJlcl9mb3JtYXQoJHN0clZhbHVlLDEwKTsKCQkJJHN0clZhbHVlID0gcHJlZ19yZXBsYWNlKCcvXC4/MCskLycsJycsICRzdHJWYWx1ZSk7CgkJfQoKCQlpZiggTGVzc19QYXJzZXI6OiRvcHRpb25zWydjb21wcmVzcyddICl7CgkJCS8vIFplcm8gdmFsdWVzIGRvZXNuJ3QgbmVlZCBhIHVuaXQKCQkJaWYoICR2YWx1ZSA9PT0gMCAmJiAkdGhpcy0+dW5pdC0+aXNMZW5ndGgoKSApewoJCQkJJG91dHB1dC0+YWRkKCAkc3RyVmFsdWUgKTsKCQkJCXJldHVybiAkc3RyVmFsdWU7CgkJCX0KCgkJCS8vIEZsb2F0IHZhbHVlcyBkb2Vzbid0IG5lZWQgYSBsZWFkaW5nIHplcm8KCQkJaWYoICR2YWx1ZSA+IDAgJiYgJHZhbHVlIDwgMSAmJiAkc3RyVmFsdWVbMF0gPT09ICcwJyApewoJCQkJJHN0clZhbHVlID0gc3Vic3RyKCRzdHJWYWx1ZSwxKTsKCQkJfQoJCX0KCgkJJG91dHB1dC0+YWRkKCAkc3RyVmFsdWUgKTsKCQkkdGhpcy0+dW5pdC0+Z2VuQ1NTKCAkb3V0cHV0ICk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKXsKICAgICAgICByZXR1cm4gJHRoaXMtPnRvQ1NTKCk7CiAgICB9CgogICAgLy8gSW4gYW4gb3BlcmF0aW9uIGJldHdlZW4gdHdvIERpbWVuc2lvbnMsCiAgICAvLyB3ZSBkZWZhdWx0IHRvIHRoZSBmaXJzdCBEaW1lbnNpb24ncyB1bml0LAogICAgLy8gc28gYDFweCArIDJlbWAgd2lsbCB5aWVsZCBgM3B4YC4KCiAgICAvKioKICAgICAqIEBwYXJhbSBzdHJpbmcgJG9wCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBvcGVyYXRlKCAkb3AsICRvdGhlcil7CgoJCSR2YWx1ZSA9IExlc3NfRnVuY3Rpb25zOjpvcGVyYXRlKCAkb3AsICR0aGlzLT52YWx1ZSwgJG90aGVyLT52YWx1ZSk7CgkJJHVuaXQgPSBjbG9uZSAkdGhpcy0+dW5pdDsKCgkJaWYoICRvcCA9PT0gJysnIHx8ICRvcCA9PT0gJy0nICl7CgoJCQlpZiggISR1bml0LT5udW1lcmF0b3IgJiYgISR1bml0LT5kZW5vbWluYXRvciApewoJCQkJJHVuaXQtPm51bWVyYXRvciA9ICRvdGhlci0+dW5pdC0+bnVtZXJhdG9yOwoJCQkJJHVuaXQtPmRlbm9taW5hdG9yID0gJG90aGVyLT51bml0LT5kZW5vbWluYXRvcjsKCQkJfWVsc2VpZiggISRvdGhlci0+dW5pdC0+bnVtZXJhdG9yICYmICEkb3RoZXItPnVuaXQtPmRlbm9taW5hdG9yICl7CgkJCQkvLyBkbyBub3RoaW5nCgkJCX1lbHNlewoJCQkJJG90aGVyID0gJG90aGVyLT5jb252ZXJ0VG8oICR0aGlzLT51bml0LT51c2VkVW5pdHMoKSk7CgoJCQkJaWYoIExlc3NfUGFyc2VyOjokb3B0aW9uc1snc3RyaWN0VW5pdHMnXSAmJiAkb3RoZXItPnVuaXQtPnRvU3RyaW5nKCkgIT09ICR1bml0LT50b0NTUygpICl7CgkJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJJbmNvbXBhdGlibGUgdW5pdHMuIENoYW5nZSB0aGUgdW5pdHMgb3IgdXNlIHRoZSB1bml0IGZ1bmN0aW9uLiBCYWQgdW5pdHM6ICciIC4gJHVuaXQtPnRvU3RyaW5nKCkgLiAiJyBhbmQgIiAuICRvdGhlci0+dW5pdC0+dG9TdHJpbmcoKSAuICInLiIpOwoJCQkJfQoKCQkJCSR2YWx1ZSA9IExlc3NfRnVuY3Rpb25zOjpvcGVyYXRlKCAkb3AsICR0aGlzLT52YWx1ZSwgJG90aGVyLT52YWx1ZSk7CgkJCX0KCQl9ZWxzZWlmKCAkb3AgPT09ICcqJyApewoJCQkkdW5pdC0+bnVtZXJhdG9yID0gYXJyYXlfbWVyZ2UoJHVuaXQtPm51bWVyYXRvciwgJG90aGVyLT51bml0LT5udW1lcmF0b3IpOwoJCQkkdW5pdC0+ZGVub21pbmF0b3IgPSBhcnJheV9tZXJnZSgkdW5pdC0+ZGVub21pbmF0b3IsICRvdGhlci0+dW5pdC0+ZGVub21pbmF0b3IpOwoJCQlzb3J0KCR1bml0LT5udW1lcmF0b3IpOwoJCQlzb3J0KCR1bml0LT5kZW5vbWluYXRvcik7CgkJCSR1bml0LT5jYW5jZWwoKTsKCQl9ZWxzZWlmKCAkb3AgPT09ICcvJyApewoJCQkkdW5pdC0+bnVtZXJhdG9yID0gYXJyYXlfbWVyZ2UoJHVuaXQtPm51bWVyYXRvciwgJG90aGVyLT51bml0LT5kZW5vbWluYXRvcik7CgkJCSR1bml0LT5kZW5vbWluYXRvciA9IGFycmF5X21lcmdlKCR1bml0LT5kZW5vbWluYXRvciwgJG90aGVyLT51bml0LT5udW1lcmF0b3IpOwoJCQlzb3J0KCR1bml0LT5udW1lcmF0b3IpOwoJCQlzb3J0KCR1bml0LT5kZW5vbWluYXRvcik7CgkJCSR1bml0LT5jYW5jZWwoKTsKCQl9CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCAkdmFsdWUsICR1bml0KTsKICAgIH0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGFyZSgkb3RoZXIpIHsKCQlpZiAoJG90aGVyIGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbikgewoKCQkJaWYoICR0aGlzLT51bml0LT5pc0VtcHR5KCkgfHwgJG90aGVyLT51bml0LT5pc0VtcHR5KCkgKXsKCQkJCSRhID0gJHRoaXM7CgkJCQkkYiA9ICRvdGhlcjsKCQkJfSBlbHNlIHsKCQkJCSRhID0gJHRoaXMtPnVuaWZ5KCk7CgkJCQkkYiA9ICRvdGhlci0+dW5pZnkoKTsKCQkJCWlmKCAkYS0+dW5pdC0+Y29tcGFyZSgkYi0+dW5pdCkgIT09IDAgKXsKCQkJCQlyZXR1cm4gLTE7CgkJCQl9CgkJCX0KCQkJJGFWYWx1ZSA9ICRhLT52YWx1ZTsKCQkJJGJWYWx1ZSA9ICRiLT52YWx1ZTsKCgkJCWlmICgkYlZhbHVlID4gJGFWYWx1ZSkgewoJCQkJcmV0dXJuIC0xOwoJCQl9IGVsc2VpZiAoJGJWYWx1ZSA8ICRhVmFsdWUpIHsKCQkJCXJldHVybiAxOwoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIDA7CgkJCX0KCQl9IGVsc2UgewoJCQlyZXR1cm4gLTE7CgkJfQoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1bmlmeSgpIHsKCQlyZXR1cm4gJHRoaXMtPmNvbnZlcnRUbyhhcnJheSgnbGVuZ3RoJz0+ICdweCcsICdkdXJhdGlvbic9PiAncycsICdhbmdsZScgPT4gJ3JhZCcgKSk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvbnZlcnRUbygkY29udmVyc2lvbnMpIHsKCQkkdmFsdWUgPSAkdGhpcy0+dmFsdWU7CgkJJHVuaXQgPSBjbG9uZSAkdGhpcy0+dW5pdDsKCgkJaWYoIGlzX3N0cmluZygkY29udmVyc2lvbnMpICl7CgkJCSRkZXJpdmVkQ29udmVyc2lvbnMgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCBMZXNzX1RyZWVfVW5pdENvbnZlcnNpb25zOjokZ3JvdXBzIGFzICRpICl7CgkJCQlpZiggaXNzZXQoTGVzc19UcmVlX1VuaXRDb252ZXJzaW9uczo6JHskaX1bJGNvbnZlcnNpb25zXSkgKXsKCQkJCQkkZGVyaXZlZENvbnZlcnNpb25zID0gYXJyYXkoICRpID0+ICRjb252ZXJzaW9ucyk7CgkJCQl9CgkJCX0KCQkJJGNvbnZlcnNpb25zID0gJGRlcml2ZWRDb252ZXJzaW9uczsKCQl9CgoKCQlmb3JlYWNoKCRjb252ZXJzaW9ucyBhcyAkZ3JvdXBOYW1lID0+ICR0YXJnZXRVbml0KXsKCQkJJGdyb3VwID0gTGVzc19UcmVlX1VuaXRDb252ZXJzaW9uczo6JHskZ3JvdXBOYW1lfTsKCgkJCS8vbnVtZXJhdG9yCgkJCWZvcmVhY2goJHVuaXQtPm51bWVyYXRvciBhcyAkaSA9PiAkYXRvbWljVW5pdCl7CgkJCQkkYXRvbWljVW5pdCA9ICR1bml0LT5udW1lcmF0b3JbJGldOwoJCQkJaWYoICFpc3NldCgkZ3JvdXBbJGF0b21pY1VuaXRdKSApewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCSR2YWx1ZSA9ICR2YWx1ZSAqICgkZ3JvdXBbJGF0b21pY1VuaXRdIC8gJGdyb3VwWyR0YXJnZXRVbml0XSk7CgoJCQkJJHVuaXQtPm51bWVyYXRvclskaV0gPSAkdGFyZ2V0VW5pdDsKCQkJfQoKCQkJLy9kZW5vbWluYXRvcgoJCQlmb3JlYWNoKCR1bml0LT5kZW5vbWluYXRvciBhcyAkaSA9PiAkYXRvbWljVW5pdCl7CgkJCQkkYXRvbWljVW5pdCA9ICR1bml0LT5kZW5vbWluYXRvclskaV07CgkJCQlpZiggIWlzc2V0KCRncm91cFskYXRvbWljVW5pdF0pICl7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJJHZhbHVlID0gJHZhbHVlIC8gKCRncm91cFskYXRvbWljVW5pdF0gLyAkZ3JvdXBbJHRhcmdldFVuaXRdKTsKCgkJCQkkdW5pdC0+ZGVub21pbmF0b3JbJGldID0gJHRhcmdldFVuaXQ7CgkJCX0KCQl9CgoJCSR1bml0LT5jYW5jZWwoKTsKCgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRGltZW5zaW9uKCAkdmFsdWUsICR1bml0KTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Directive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBEaXJlY3RpdmUKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfRGlyZWN0aXZlIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkbmFtZTsKCXB1YmxpYyAkdmFsdWU7CglwdWJsaWMgJHJ1bGVzOwoJcHVibGljICRpbmRleDsKCXB1YmxpYyAkaXNSZWZlcmVuY2VkOwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CglwdWJsaWMgJGRlYnVnSW5mbzsKCXB1YmxpYyAkdHlwZSA9ICdEaXJlY3RpdmUnOwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbmFtZSwgJHZhbHVlID0gbnVsbCwgJHJ1bGVzLCAkaW5kZXggPSBudWxsLCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCwgJGRlYnVnSW5mbyA9IG51bGwgKXsKCQkkdGhpcy0+bmFtZSA9ICRuYW1lOwoJCSR0aGlzLT52YWx1ZSA9ICR2YWx1ZTsKCQlpZiggJHJ1bGVzICl7CgkJCSR0aGlzLT5ydWxlcyA9ICRydWxlczsKCQkJJHRoaXMtPnJ1bGVzLT5hbGxvd0ltcG9ydHMgPSB0cnVlOwoJCX0KCgkJJHRoaXMtPmluZGV4ID0gJGluZGV4OwoJCSR0aGlzLT5jdXJyZW50RmlsZUluZm8gPSAkY3VycmVudEZpbGVJbmZvOwoJCSR0aGlzLT5kZWJ1Z0luZm8gPSAkZGVidWdJbmZvOwoJfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCAkdmlzaXRvciApewoJCWlmKCAkdGhpcy0+cnVsZXMgKXsKCQkJJHRoaXMtPnJ1bGVzID0gJHZpc2l0b3ItPnZpc2l0T2JqKCAkdGhpcy0+cnVsZXMgKTsKCQl9CgkJaWYoICR0aGlzLT52YWx1ZSApewoJCQkkdGhpcy0+dmFsdWUgPSAkdmlzaXRvci0+dmlzaXRPYmooICR0aGlzLT52YWx1ZSApOwoJCX0KCX0KCgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCQkkdmFsdWUgPSAkdGhpcy0+dmFsdWU7CgkJJHJ1bGVzID0gJHRoaXMtPnJ1bGVzOwoJCSRvdXRwdXQtPmFkZCggJHRoaXMtPm5hbWUsICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmRleCApOwoJCWlmKCAkdGhpcy0+dmFsdWUgKXsKCQkJJG91dHB1dC0+YWRkKCcgJyk7CgkJCSR0aGlzLT52YWx1ZS0+Z2VuQ1NTKCRvdXRwdXQpOwoJCX0KCQlpZiggJHRoaXMtPnJ1bGVzICl7CgkJCUxlc3NfVHJlZTo6b3V0cHV0UnVsZXNldCggJG91dHB1dCwgYXJyYXkoJHRoaXMtPnJ1bGVzKSk7CgkJfSBlbHNlIHsKCQkJJG91dHB1dC0+YWRkKCc7Jyk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpewoKCQkkdmFsdWUgPSAkdGhpcy0+dmFsdWU7CgkJJHJ1bGVzID0gJHRoaXMtPnJ1bGVzOwoJCWlmKCAkdmFsdWUgKXsKCQkJJHZhbHVlID0gJHZhbHVlLT5jb21waWxlKCRlbnYpOwoJCX0KCgkJaWYoICRydWxlcyApewoJCQkkcnVsZXMgPSAkcnVsZXMtPmNvbXBpbGUoJGVudik7CgkJCSRydWxlcy0+cm9vdCA9IHRydWU7CgkJfQoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9EaXJlY3RpdmUoICR0aGlzLT5uYW1lLCAkdmFsdWUsICRydWxlcywgJHRoaXMtPmluZGV4LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvLCAkdGhpcy0+ZGVidWdJbmZvICk7Cgl9CgoKCXB1YmxpYyBmdW5jdGlvbiB2YXJpYWJsZSgkbmFtZSl7CgkJaWYoICR0aGlzLT5ydWxlcyApewoJCQlyZXR1cm4gJHRoaXMtPnJ1bGVzLT52YXJpYWJsZSgkbmFtZSk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBmaW5kKCRzZWxlY3Rvcil7CgkJaWYoICR0aGlzLT5ydWxlcyApewoJCQlyZXR1cm4gJHRoaXMtPnJ1bGVzLT5maW5kKCRzZWxlY3RvciwgJHRoaXMpOwoJCX0KCX0KCgkvL3J1bGVzZXRzOiBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLnJ1bGVzKSByZXR1cm4gdHJlZS5SdWxlc2V0LnByb3RvdHlwZS5ydWxlc2V0cy5hcHBseSh0aGlzLnJ1bGVzKTsgfSwKCglwdWJsaWMgZnVuY3Rpb24gbWFya1JlZmVyZW5jZWQoKXsKCQkkdGhpcy0+aXNSZWZlcmVuY2VkID0gdHJ1ZTsKCQlpZiggJHRoaXMtPnJ1bGVzICl7CgkJCUxlc3NfVHJlZTo6UmVmZXJlbmNlZEFycmF5KCR0aGlzLT5ydWxlcy0+cnVsZXMpOwoJCX0KCX0KCn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Element.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBFbGVtZW50CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX0VsZW1lbnQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICRjb21iaW5hdG9yID0gJyc7CglwdWJsaWMgJHZhbHVlID0gJyc7CglwdWJsaWMgJGluZGV4OwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CglwdWJsaWMgJHR5cGUgPSAnRWxlbWVudCc7CgoJcHVibGljICR2YWx1ZV9pc19vYmplY3QgPSBmYWxzZTsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNvbWJpbmF0b3IsICR2YWx1ZSwgJGluZGV4ID0gbnVsbCwgJGN1cnJlbnRGaWxlSW5mbyA9IG51bGwgKXsKCgkJJHRoaXMtPnZhbHVlID0gJHZhbHVlOwoJCSR0aGlzLT52YWx1ZV9pc19vYmplY3QgPSBpc19vYmplY3QoJHZhbHVlKTsKCgkJaWYoICRjb21iaW5hdG9yICl7CgkJCSR0aGlzLT5jb21iaW5hdG9yID0gJGNvbWJpbmF0b3I7CgkJfQoKCQkkdGhpcy0+aW5kZXggPSAkaW5kZXg7CgkJJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyA9ICRjdXJyZW50RmlsZUluZm87Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCggJHZpc2l0b3IgKXsKCQlpZiggJHRoaXMtPnZhbHVlX2lzX29iamVjdCApeyAvL29iamVjdCBvciBzdHJpbmcKCQkJJHRoaXMtPnZhbHVlID0gJHZpc2l0b3ItPnZpc2l0T2JqKCAkdGhpcy0+dmFsdWUgKTsKCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudil7CgoJCWlmKCBMZXNzX0Vudmlyb25tZW50OjokbWl4aW5fc3RhY2sgKXsKCQkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfRWxlbWVudCgkdGhpcy0+Y29tYmluYXRvciwgKCR0aGlzLT52YWx1ZV9pc19vYmplY3QgPyAkdGhpcy0+dmFsdWUtPmNvbXBpbGUoJGVudikgOiAkdGhpcy0+dmFsdWUpLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8gKTsKCQl9CgoJCWlmKCAkdGhpcy0+dmFsdWVfaXNfb2JqZWN0ICl7CgkJCSR0aGlzLT52YWx1ZSA9ICR0aGlzLT52YWx1ZS0+Y29tcGlsZSgkZW52KTsKCQl9CgoJCXJldHVybiAkdGhpczsKCX0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwoJcHVibGljIGZ1bmN0aW9uIGdlbkNTUyggJG91dHB1dCApewoJCSRvdXRwdXQtPmFkZCggJHRoaXMtPnRvQ1NTKCksICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmRleCApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0b0NTUygpewoKCQlpZiggJHRoaXMtPnZhbHVlX2lzX29iamVjdCApewoJCQkkdmFsdWUgPSAkdGhpcy0+dmFsdWUtPnRvQ1NTKCk7CgkJfWVsc2V7CgkJCSR2YWx1ZSA9ICR0aGlzLT52YWx1ZTsKCQl9CgoKCQlpZiggJHZhbHVlID09PSAnJyAmJiAkdGhpcy0+Y29tYmluYXRvciAmJiAkdGhpcy0+Y29tYmluYXRvciA9PT0gJyYnICl7CgkJCXJldHVybiAnJzsKCQl9CgoKCQlyZXR1cm4gTGVzc19FbnZpcm9ubWVudDo6JF9vdXRwdXRNYXBbJHRoaXMtPmNvbWJpbmF0b3JdIC4gJHZhbHVlOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Expression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBFeHByZXNzaW9uCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX0V4cHJlc3Npb24gZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICR2YWx1ZSA9IGFycmF5KCk7CglwdWJsaWMgJHBhcmVucyA9IGZhbHNlOwoJcHVibGljICRwYXJlbnNJbk9wID0gZmFsc2U7CglwdWJsaWMgJHR5cGUgPSAnRXhwcmVzc2lvbic7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCAkdmFsdWUsICRwYXJlbnMgPSBudWxsICl7CgkJJHRoaXMtPnZhbHVlID0gJHZhbHVlOwoJCSR0aGlzLT5wYXJlbnMgPSAkcGFyZW5zOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhY2NlcHQoICR2aXNpdG9yICl7CgkJJHRoaXMtPnZhbHVlID0gJHZpc2l0b3ItPnZpc2l0QXJyYXkoICR0aGlzLT52YWx1ZSApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpIHsKCgkJJGRvdWJsZVBhcmVuID0gZmFsc2U7CgoJCWlmKCAkdGhpcy0+cGFyZW5zICYmICEkdGhpcy0+cGFyZW5zSW5PcCApewoJCQlMZXNzX0Vudmlyb25tZW50OjokcGFyZW5zU3RhY2srKzsKCQl9CgoJCSRyZXR1cm5WYWx1ZSA9IG51bGw7CgkJaWYoICR0aGlzLT52YWx1ZSApewoKCQkJJGNvdW50ID0gY291bnQoJHRoaXMtPnZhbHVlKTsKCgkJCWlmKCAkY291bnQgPiAxICl7CgoJCQkJJHJldCA9IGFycmF5KCk7CgkJCQlmb3JlYWNoKCR0aGlzLT52YWx1ZSBhcyAkZSl7CgkJCQkJJHJldFtdID0gJGUtPmNvbXBpbGUoJGVudik7CgkJCQl9CgkJCQkkcmV0dXJuVmFsdWUgPSBuZXcgTGVzc19UcmVlX0V4cHJlc3Npb24oJHJldCk7CgoJCQl9ZWxzZXsKCgkJCQlpZiggKCR0aGlzLT52YWx1ZVswXSBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHByZXNzaW9uKSAmJiAkdGhpcy0+dmFsdWVbMF0tPnBhcmVucyAmJiAhJHRoaXMtPnZhbHVlWzBdLT5wYXJlbnNJbk9wICl7CgkJCQkJJGRvdWJsZVBhcmVuID0gdHJ1ZTsKCQkJCX0KCgkJCQkkcmV0dXJuVmFsdWUgPSAkdGhpcy0+dmFsdWVbMF0tPmNvbXBpbGUoJGVudik7CgkJCX0KCgkJfSBlbHNlIHsKCQkJJHJldHVyblZhbHVlID0gJHRoaXM7CgkJfQoKCQlpZiggJHRoaXMtPnBhcmVucyApewoJCQlpZiggISR0aGlzLT5wYXJlbnNJbk9wICl7CgkJCQlMZXNzX0Vudmlyb25tZW50OjokcGFyZW5zU3RhY2stLTsKCgkJCX1lbHNlaWYoICFMZXNzX0Vudmlyb25tZW50Ojppc01hdGhPbigpICYmICEkZG91YmxlUGFyZW4gKXsKCQkJCSRyZXR1cm5WYWx1ZSA9IG5ldyBMZXNzX1RyZWVfUGFyZW4oJHJldHVyblZhbHVlKTsKCgkJCX0KCQl9CgkJcmV0dXJuICRyZXR1cm5WYWx1ZTsKCX0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdlbkNTUyggJG91dHB1dCApewoJCSR2YWxfbGVuID0gY291bnQoJHRoaXMtPnZhbHVlKTsKCQlmb3IoICRpID0gMDsgJGkgPCAkdmFsX2xlbjsgJGkrKyApewoJCQkkdGhpcy0+dmFsdWVbJGldLT5nZW5DU1MoICRvdXRwdXQgKTsKCQkJaWYoICRpICsgMSA8ICR2YWxfbGVuICl7CgkJCQkkb3V0cHV0LT5hZGQoICcgJyApOwoJCQl9CgkJfQoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0aHJvd0F3YXlDb21tZW50cygpIHsKCgkJaWYoIGlzX2FycmF5KCR0aGlzLT52YWx1ZSkgKXsKCQkJJG5ld192YWx1ZSA9IGFycmF5KCk7CgkJCWZvcmVhY2goJHRoaXMtPnZhbHVlIGFzICR2KXsKCQkJCWlmKCAkdiBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db21tZW50ICl7CgkJCQkJY29udGludWU7CgkJCQl9CgkJCQkkbmV3X3ZhbHVlW10gPSAkdjsKCQkJfQoJCQkkdGhpcy0+dmFsdWUgPSAkbmV3X3ZhbHVlOwoJCX0KCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Extend.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBFeHRlbmQKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfRXh0ZW5kIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkc2VsZWN0b3I7CglwdWJsaWMgJG9wdGlvbjsKCXB1YmxpYyAkaW5kZXg7CglwdWJsaWMgJHNlbGZTZWxlY3RvcnMgPSBhcnJheSgpOwoJcHVibGljICRhbGxvd0JlZm9yZTsKCXB1YmxpYyAkYWxsb3dBZnRlcjsKCXB1YmxpYyAkZmlyc3RFeHRlbmRPblRoaXNTZWxlY3RvclBhdGg7CglwdWJsaWMgJHR5cGUgPSAnRXh0ZW5kJzsKCXB1YmxpYyAkcnVsZXNldDsKCgoJcHVibGljICRvYmplY3RfaWQ7CglwdWJsaWMgJHBhcmVudF9pZHMgPSBhcnJheSgpOwoKCS8qKgoJICogQHBhcmFtIGludGVnZXIgJGluZGV4CgkgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkc2VsZWN0b3IsICRvcHRpb24sICRpbmRleCl7CgkJc3RhdGljICRpID0gMDsKCQkkdGhpcy0+c2VsZWN0b3IgPSAkc2VsZWN0b3I7CgkJJHRoaXMtPm9wdGlvbiA9ICRvcHRpb247CgkJJHRoaXMtPmluZGV4ID0gJGluZGV4OwoKCQlzd2l0Y2goJG9wdGlvbil7CgkJCWNhc2UgImFsbCI6CgkJCQkkdGhpcy0+YWxsb3dCZWZvcmUgPSB0cnVlOwoJCQkJJHRoaXMtPmFsbG93QWZ0ZXIgPSB0cnVlOwoJCQlicmVhazsKCQkJZGVmYXVsdDoKCQkJCSR0aGlzLT5hbGxvd0JlZm9yZSA9IGZhbHNlOwoJCQkJJHRoaXMtPmFsbG93QWZ0ZXIgPSBmYWxzZTsKCQkJYnJlYWs7CgkJfQoKCQkkdGhpcy0+b2JqZWN0X2lkID0gJGkrKzsKCQkkdGhpcy0+cGFyZW50X2lkcyA9IGFycmF5KCR0aGlzLT5vYmplY3RfaWQpOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhY2NlcHQoICR2aXNpdG9yICl7CgkJJHRoaXMtPnNlbGVjdG9yID0gJHZpc2l0b3ItPnZpc2l0T2JqKCAkdGhpcy0+c2VsZWN0b3IgKTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSggJGVudiApewoJCUxlc3NfUGFyc2VyOjokaGFzX2V4dGVuZHMgPSB0cnVlOwoJCSR0aGlzLT5zZWxlY3RvciA9ICR0aGlzLT5zZWxlY3Rvci0+Y29tcGlsZSgkZW52KTsKCQlyZXR1cm4gJHRoaXM7CgkJLy9yZXR1cm4gbmV3IExlc3NfVHJlZV9FeHRlbmQoICR0aGlzLT5zZWxlY3Rvci0+Y29tcGlsZSgkZW52KSwgJHRoaXMtPm9wdGlvbiwgJHRoaXMtPmluZGV4KTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZmluZFNlbGZTZWxlY3RvcnMoICRzZWxlY3RvcnMgKXsKCQkkc2VsZkVsZW1lbnRzID0gYXJyYXkoKTsKCgoJCWZvciggJGkgPSAwLCAkc2VsZWN0b3JzX2xlbiA9IGNvdW50KCRzZWxlY3RvcnMpOyAkaSA8ICRzZWxlY3RvcnNfbGVuOyAkaSsrICl7CgkJCSRzZWxlY3RvckVsZW1lbnRzID0gJHNlbGVjdG9yc1skaV0tPmVsZW1lbnRzOwoJCQkvLyBkdXBsaWNhdGUgdGhlIGxvZ2ljIGluIGdlbkNTUyBmdW5jdGlvbiBpbnNpZGUgdGhlIHNlbGVjdG9yIG5vZGUuCgkJCS8vIGZ1dHVyZSBUT0RPIC0gbW92ZSBib3RoIGxvZ2ljcyBpbnRvIHRoZSBzZWxlY3RvciBqb2luZXIgdmlzaXRvcgoJCQlpZiggJGkgJiYgJHNlbGVjdG9yRWxlbWVudHMgJiYgJHNlbGVjdG9yRWxlbWVudHNbMF0tPmNvbWJpbmF0b3IgPT09ICIiKSB7CgkJCQkkc2VsZWN0b3JFbGVtZW50c1swXS0+Y29tYmluYXRvciA9ICcgJzsKCQkJfQoJCQkkc2VsZkVsZW1lbnRzID0gYXJyYXlfbWVyZ2UoICRzZWxmRWxlbWVudHMsICRzZWxlY3RvcnNbJGldLT5lbGVtZW50cyApOwoJCX0KCgkJJHRoaXMtPnNlbGZTZWxlY3RvcnMgPSBhcnJheShuZXcgTGVzc19UcmVlX1NlbGVjdG9yKCRzZWxmRWxlbWVudHMpKTsKCX0KCn0=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Import.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDU1MgQGltcG9ydCBub2RlCiAqCiAqIFRoZSBnZW5lcmFsIHN0cmF0ZWd5IGhlcmUgaXMgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHdhaXQKICogZm9yIHRoZSBwYXJzaW5nIHRvIGJlIGNvbXBsZXRlZCwgYmVmb3JlIHdlIHN0YXJ0IGltcG9ydGluZwogKiB0aGUgZmlsZS4gVGhhdCdzIGJlY2F1c2UgaW4gdGhlIGNvbnRleHQgb2YgYSBicm93c2VyLAogKiBtb3N0IG9mIHRoZSB0aW1lIHdpbGwgYmUgc3BlbnQgd2FpdGluZyBmb3IgdGhlIHNlcnZlciB0byByZXNwb25kLgogKgogKiBPbiBjcmVhdGlvbiwgd2UgcHVzaCB0aGUgaW1wb3J0IHBhdGggdG8gb3VyIGltcG9ydCBxdWV1ZSwgdGhvdWdoCiAqIGBpbXBvcnQscHVzaGAsIHdlIGFsc28gcGFzcyBpdCBhIGNhbGxiYWNrLCB3aGljaCBpdCdsbCBjYWxsIG9uY2UKICogdGhlIGZpbGUgaGFzIGJlZW4gZmV0Y2hlZCwgYW5kIHBhcnNlZC4KICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfSW1wb3J0IGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkb3B0aW9uczsKCXB1YmxpYyAkaW5kZXg7CglwdWJsaWMgJHBhdGg7CglwdWJsaWMgJGZlYXR1cmVzOwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CglwdWJsaWMgJGNzczsKCXB1YmxpYyAkc2tpcDsKCXB1YmxpYyAkcm9vdDsKCXB1YmxpYyAkdHlwZSA9ICdJbXBvcnQnOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcGF0aCwgJGZlYXR1cmVzLCAkb3B0aW9ucywgJGluZGV4LCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCApewoJCSR0aGlzLT5vcHRpb25zID0gJG9wdGlvbnM7CgkJJHRoaXMtPmluZGV4ID0gJGluZGV4OwoJCSR0aGlzLT5wYXRoID0gJHBhdGg7CgkJJHRoaXMtPmZlYXR1cmVzID0gJGZlYXR1cmVzOwoJCSR0aGlzLT5jdXJyZW50RmlsZUluZm8gPSAkY3VycmVudEZpbGVJbmZvOwoKCQlpZiggaXNfYXJyYXkoJG9wdGlvbnMpICl7CgkJCSR0aGlzLT5vcHRpb25zICs9IGFycmF5KCdpbmxpbmUnPT5mYWxzZSk7CgoJCQlpZiggaXNzZXQoJHRoaXMtPm9wdGlvbnNbJ2xlc3MnXSkgfHwgJHRoaXMtPm9wdGlvbnNbJ2lubGluZSddICl7CgkJCQkkdGhpcy0+Y3NzID0gIWlzc2V0KCR0aGlzLT5vcHRpb25zWydsZXNzJ10pIHx8ICEkdGhpcy0+b3B0aW9uc1snbGVzcyddIHx8ICR0aGlzLT5vcHRpb25zWydpbmxpbmUnXTsKCQkJfSBlbHNlIHsKCQkJCSRwYXRoVmFsdWUgPSAkdGhpcy0+Z2V0UGF0aCgpOwoJCQkJaWYoICRwYXRoVmFsdWUgJiYgcHJlZ19tYXRjaCgnL2NzcyhbXD87XS4qKT8kLycsJHBhdGhWYWx1ZSkgKXsKCQkJCQkkdGhpcy0+Y3NzID0gdHJ1ZTsKCQkJCX0KCQkJfQoJCX0KCX0KCi8vCi8vIFRoZSBhY3R1YWwgaW1wb3J0IG5vZGUgZG9lc24ndCByZXR1cm4gYW55dGhpbmcsIHdoZW4gY29udmVydGVkIHRvIENTUy4KLy8gVGhlIHJlYXNvbiBpcyB0aGF0IGl0J3MgdXNlZCBhdCB0aGUgZXZhbHVhdGlvbiBzdGFnZSwgc28gdGhhdCB0aGUgcnVsZXMKLy8gaXQgaW1wb3J0cyBjYW4gYmUgdHJlYXRlZCBsaWtlIGFueSBvdGhlciBydWxlcy4KLy8KLy8gSW4gYGV2YWxgLCB3ZSBtYWtlIHN1cmUgYWxsIEltcG9ydCBub2RlcyBnZXQgZXZhbHVhdGVkLCByZWN1cnNpdmVseSwgc28KLy8gd2UgZW5kIHVwIHdpdGggYSBmbGF0IHN0cnVjdHVyZSwgd2hpY2ggY2FuIGVhc2lseSBiZSBpbXBvcnRlZCBpbiB0aGUgcGFyZW50Ci8vIHJ1bGVzZXQuCi8vCgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCgkdmlzaXRvcil7CgoJCWlmKCAkdGhpcy0+ZmVhdHVyZXMgKXsKCQkJJHRoaXMtPmZlYXR1cmVzID0gJHZpc2l0b3ItPnZpc2l0T2JqKCR0aGlzLT5mZWF0dXJlcyk7CgkJfQoJCSR0aGlzLT5wYXRoID0gJHZpc2l0b3ItPnZpc2l0T2JqKCR0aGlzLT5wYXRoKTsKCgkJaWYoICEkdGhpcy0+b3B0aW9uc1snaW5saW5lJ10gJiYgJHRoaXMtPnJvb3QgKXsKCQkJJHRoaXMtPnJvb3QgPSAkdmlzaXRvci0+dmlzaXQoJHRoaXMtPnJvb3QpOwoJCX0KCX0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdlbkNTUyggJG91dHB1dCApewoJCWlmKCAkdGhpcy0+Y3NzICl7CgoJCQkkb3V0cHV0LT5hZGQoICdAaW1wb3J0ICcsICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmRleCApOwoKCQkJJHRoaXMtPnBhdGgtPmdlbkNTUyggJG91dHB1dCApOwoJCQlpZiggJHRoaXMtPmZlYXR1cmVzICl7CgkJCQkkb3V0cHV0LT5hZGQoICcgJyApOwoJCQkJJHRoaXMtPmZlYXR1cmVzLT5nZW5DU1MoICRvdXRwdXQgKTsKCQkJfQoJCQkkb3V0cHV0LT5hZGQoICc7JyApOwoJCX0KCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdG9DU1MoKXsKCQkkZmVhdHVyZXMgPSAkdGhpcy0+ZmVhdHVyZXMgPyAnICcgLiAkdGhpcy0+ZmVhdHVyZXMtPnRvQ1NTKCkgOiAnJzsKCgkJaWYgKCR0aGlzLT5jc3MpIHsKCQkJcmV0dXJuICJAaW1wb3J0ICIgLiAkdGhpcy0+cGF0aC0+dG9DU1MoKSAuICRmZWF0dXJlcyAuICI7XG4iOwoJCX0gZWxzZSB7CgkJCXJldHVybiAiIjsKCQl9Cgl9CgoJLyoqCgkgKiBAcmV0dXJuIHN0cmluZwoJICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGF0aCgpewoJCWlmICgkdGhpcy0+cGF0aCBpbnN0YW5jZW9mIExlc3NfVHJlZV9RdW90ZWQpIHsKCQkJJHBhdGggPSAkdGhpcy0+cGF0aC0+dmFsdWU7CgkJCSRwYXRoID0gKCBpc3NldCgkdGhpcy0+Y3NzKSB8fCBwcmVnX21hdGNoKCcvKFwuW2Etel0qJCl8KFtcPztdLiopJC8nLCRwYXRoKSkgPyAkcGF0aCA6ICRwYXRoIC4gJy5sZXNzJzsKCQl9IGVsc2UgaWYgKCR0aGlzLT5wYXRoIGluc3RhbmNlb2YgTGVzc19UcmVlX1VSTCkgewoJCQkkcGF0aCA9ICR0aGlzLT5wYXRoLT52YWx1ZS0+dmFsdWU7CgkJfWVsc2V7CgkJCXJldHVybiBudWxsOwoJCX0KCgkJLy9yZW1vdmUgcXVlcnkgc3RyaW5nIGFuZCBmcmFnbWVudAoJCXJldHVybiBwcmVnX3JlcGxhY2UoJy9bXD8jXVteXD9dKiQvJywnJywkcGF0aCk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvbXBpbGVGb3JJbXBvcnQoICRlbnYgKXsKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9JbXBvcnQoICR0aGlzLT5wYXRoLT5jb21waWxlKCRlbnYpLCAkdGhpcy0+ZmVhdHVyZXMsICR0aGlzLT5vcHRpb25zLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8pOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21waWxlUGF0aCgkZW52KSB7CgkJJHBhdGggPSAkdGhpcy0+cGF0aC0+Y29tcGlsZSgkZW52KTsKCQkkcm9vdHBhdGggPSAnJzsKCQlpZiggJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyAmJiAkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydyb290cGF0aCddICl7CgkJCSRyb290cGF0aCA9ICR0aGlzLT5jdXJyZW50RmlsZUluZm9bJ3Jvb3RwYXRoJ107CgkJfQoKCgkJaWYoICEoJHBhdGggaW5zdGFuY2VvZiBMZXNzX1RyZWVfVVJMKSApewoJCQlpZiggJHJvb3RwYXRoICl7CgkJCQkkcGF0aFZhbHVlID0gJHBhdGgtPnZhbHVlOwoJCQkJLy8gQWRkIHRoZSBiYXNlIHBhdGggaWYgdGhlIGltcG9ydCBpcyByZWxhdGl2ZQoJCQkJaWYoICRwYXRoVmFsdWUgJiYgTGVzc19FbnZpcm9ubWVudDo6aXNQYXRoUmVsYXRpdmUoJHBhdGhWYWx1ZSkgKXsKCQkJCQkkcGF0aC0+dmFsdWUgPSAkdGhpcy0+Y3VycmVudEZpbGVJbmZvWyd1cmlfcm9vdCddLiRwYXRoVmFsdWU7CgkJCQl9CgkJCX0KCQkJJHBhdGgtPnZhbHVlID0gTGVzc19FbnZpcm9ubWVudDo6bm9ybWFsaXplUGF0aCgkcGF0aC0+dmFsdWUpOwoJCX0KCgoKCQlyZXR1cm4gJHBhdGg7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoICRlbnYgKXsKCgkJJGV2YWxkID0gJHRoaXMtPmNvbXBpbGVGb3JJbXBvcnQoJGVudik7CgoJCS8vZ2V0IHBhdGggJiB1cmkKCQkkcGF0aF9hbmRfdXJpID0gbnVsbDsKCQlpZiggaXNfY2FsbGFibGUoTGVzc19QYXJzZXI6OiRvcHRpb25zWydpbXBvcnRfY2FsbGJhY2snXSkgKXsKCQkJJHBhdGhfYW5kX3VyaSA9IGNhbGxfdXNlcl9mdW5jKExlc3NfUGFyc2VyOjokb3B0aW9uc1snaW1wb3J0X2NhbGxiYWNrJ10sJGV2YWxkKTsKCQl9CgoJCWlmKCAhJHBhdGhfYW5kX3VyaSApewoJCQkkcGF0aF9hbmRfdXJpID0gJGV2YWxkLT5QYXRoQW5kVXJpKCk7CgkJfQoKCQlpZiggJHBhdGhfYW5kX3VyaSApewoJCQlsaXN0KCRmdWxsX3BhdGgsICR1cmkpID0gJHBhdGhfYW5kX3VyaTsKCQl9ZWxzZXsKCQkJJGZ1bGxfcGF0aCA9ICR1cmkgPSAkZXZhbGQtPmdldFBhdGgoKTsKCQl9CgoKCQkvL2ltcG9ydCBvbmNlCgkJaWYoICRldmFsZC0+c2tpcCggJGZ1bGxfcGF0aCwgJGVudikgKXsKCQkJcmV0dXJuIGFycmF5KCk7CgkJfQoKCQlpZiggJHRoaXMtPm9wdGlvbnNbJ2lubGluZSddICl7CgkJCS8vdG9kbyBuZWVkcyB0byByZWZlcmVuY2UgY3NzIGZpbGUgbm90IGltcG9ydAoJCQkvLyRjb250ZW50cyA9IG5ldyBMZXNzX1RyZWVfQW5vbnltb3VzKCR0aGlzLT5yb290LCAwLCBhcnJheSgnZmlsZW5hbWUnPT4kdGhpcy0+aW1wb3J0ZWRGaWxlbmFtZSksIHRydWUgKTsKCgkJCUxlc3NfUGFyc2VyOjpBZGRQYXJzZWRGaWxlKCRmdWxsX3BhdGgpOwoJCQkkY29udGVudHMgPSBuZXcgTGVzc19UcmVlX0Fub255bW91cyggZmlsZV9nZXRfY29udGVudHMoJGZ1bGxfcGF0aCksIDAsIGFycmF5KCksIHRydWUgKTsKCgkJCWlmKCAkdGhpcy0+ZmVhdHVyZXMgKXsKCQkJCXJldHVybiBuZXcgTGVzc19UcmVlX01lZGlhKCBhcnJheSgkY29udGVudHMpLCAkdGhpcy0+ZmVhdHVyZXMtPnZhbHVlICk7CgkJCX0KCgkJCXJldHVybiBhcnJheSggJGNvbnRlbnRzICk7CgkJfQoKCQkvLyBvcHRpb25hbCAobmVlZCB0byBiZSBiZWZvcmUgIkNTUyIgdG8gc3VwcG9ydCBvcHRpb25hbCBDU1MgaW1wb3J0cy4gQ1NTIHNob3VsZCBiZSBjaGVja2VkIG9ubHkgaWYgZW1wdHkoJHRoaXMtPmN1cnJlbnRGaWxlSW5mbykpCgkJaWYoIGlzc2V0KCR0aGlzLT5vcHRpb25zWydvcHRpb25hbCddKSAmJiAkdGhpcy0+b3B0aW9uc1snb3B0aW9uYWwnXSAmJiAhZmlsZV9leGlzdHMoJGZ1bGxfcGF0aCkgJiYgKCEkZXZhbGQtPmNzcyB8fCAhZW1wdHkoJHRoaXMtPmN1cnJlbnRGaWxlSW5mbykpKSB7CgkJCXJldHVybiBhcnJheSgpOwoJCX0KCgoJCS8vIGNzcyA/CgkJaWYoICRldmFsZC0+Y3NzICl7CgkJCSRmZWF0dXJlcyA9ICggJGV2YWxkLT5mZWF0dXJlcyA/ICRldmFsZC0+ZmVhdHVyZXMtPmNvbXBpbGUoJGVudikgOiBudWxsICk7CgkJCXJldHVybiBuZXcgTGVzc19UcmVlX0ltcG9ydCggJHRoaXMtPmNvbXBpbGVQYXRoKCAkZW52KSwgJGZlYXR1cmVzLCAkdGhpcy0+b3B0aW9ucywgJHRoaXMtPmluZGV4KTsKCQl9CgoKCQlyZXR1cm4gJHRoaXMtPlBhcnNlSW1wb3J0KCAkZnVsbF9wYXRoLCAkdXJpLCAkZW52ICk7Cgl9CgoKCS8qKgoJICogVXNpbmcgdGhlIGltcG9ydCBkaXJlY3RvcmllcywgZ2V0IHRoZSBmdWxsIGFic29sdXRlIHBhdGggYW5kIHVyaSBvZiB0aGUgaW1wb3J0CgkgKgoJICogQHBhcmFtIExlc3NfVHJlZV9JbXBvcnQgJGV2YWxkCgkgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBQYXRoQW5kVXJpKCl7CgoJCSRldmFsZF9wYXRoID0gJHRoaXMtPmdldFBhdGgoKTsKCgkJaWYoICRldmFsZF9wYXRoICl7CgoJCQkkaW1wb3J0X2RpcnMgPSBhcnJheSgpOwoKCQkJaWYoIExlc3NfRW52aXJvbm1lbnQ6OmlzUGF0aFJlbGF0aXZlKCRldmFsZF9wYXRoKSApewoJCQkJLy9pZiB0aGUgcGF0aCBpcyByZWxhdGl2ZSwgdGhlIGZpbGUgc2hvdWxkIGJlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeQoJCQkJJGltcG9ydF9kaXJzWyAkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydjdXJyZW50RGlyZWN0b3J5J10gXSA9ICR0aGlzLT5jdXJyZW50RmlsZUluZm9bJ3VyaV9yb290J107CgoJCQl9ZWxzZXsKCQkJCS8vb3RoZXJ3aXNlLCB0aGUgZmlsZSBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIHNlcnZlciByb290CgkJCQkkaW1wb3J0X2RpcnNbICR0aGlzLT5jdXJyZW50RmlsZUluZm9bJ2VudHJ5UGF0aCddIF0gPSAkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydlbnRyeVVyaSddOwoKCQkJCS8vaWYgdGhlIHVzZXIgc3VwcGxpZWQgZW50cnlQYXRoIGlzbid0IHRoZSBhY3R1YWwgcm9vdAoJCQkJJGltcG9ydF9kaXJzWyAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIF0gPSAnJzsKCgkJCX0KCgkJCS8vIGFsd2F5cyBsb29rIGluIHVzZXIgc3VwcGxpZWQgaW1wb3J0IGRpcmVjdG9yaWVzCgkJCSRpbXBvcnRfZGlycyA9IGFycmF5X21lcmdlKCAkaW1wb3J0X2RpcnMsIExlc3NfUGFyc2VyOjokb3B0aW9uc1snaW1wb3J0X2RpcnMnXSApOwoKCgkJCWZvcmVhY2goICRpbXBvcnRfZGlycyBhcyAkcm9vdHBhdGggPT4gJHJvb3R1cmkpewoJCQkJaWYoIGlzX2NhbGxhYmxlKCRyb290dXJpKSApewoJCQkJCWxpc3QoJHBhdGgsICR1cmkpID0gY2FsbF91c2VyX2Z1bmMoJHJvb3R1cmksICRldmFsZF9wYXRoKTsKCQkJCQlpZiggaXNfc3RyaW5nKCRwYXRoKSApewoJCQkJCQkkZnVsbF9wYXRoID0gJHBhdGg7CgkJCQkJCXJldHVybiBhcnJheSggJGZ1bGxfcGF0aCwgJHVyaSApOwoJCQkJCX0KCQkJCX1lbHNlaWYoICFlbXB0eSgkcm9vdHBhdGgpICl7CgoKCQkJCQlpZiggJHJvb3R1cmkgKXsKCQkJCQkJaWYoIHN0cnBvcygkZXZhbGRfcGF0aCwkcm9vdHVyaSkgPT09IDAgKXsKCQkJCQkJCSRldmFsZF9wYXRoID0gc3Vic3RyKCAkZXZhbGRfcGF0aCwgc3RybGVuKCRyb290dXJpKSApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkkcGF0aCA9IHJ0cmltKCRyb290cGF0aCwnL1xcJykuJy8nLmx0cmltKCRldmFsZF9wYXRoLCcvXFwnKTsKCgkJCQkJaWYoIGZpbGVfZXhpc3RzKCRwYXRoKSApewoJCQkJCQkkZnVsbF9wYXRoID0gTGVzc19FbnZpcm9ubWVudDo6bm9ybWFsaXplUGF0aCgkcGF0aCk7CgkJCQkJCSR1cmkgPSBMZXNzX0Vudmlyb25tZW50Ojpub3JtYWxpemVQYXRoKGRpcm5hbWUoJHJvb3R1cmkuJGV2YWxkX3BhdGgpKTsKCQkJCQkJcmV0dXJuIGFycmF5KCAkZnVsbF9wYXRoLCAkdXJpICk7CgkJCQkJfSBlbHNlaWYoIGZpbGVfZXhpc3RzKCRwYXRoLicubGVzcycpICl7CgkJCQkJCSRmdWxsX3BhdGggPSBMZXNzX0Vudmlyb25tZW50Ojpub3JtYWxpemVQYXRoKCRwYXRoLicubGVzcycpOwoJCQkJCQkkdXJpID0gTGVzc19FbnZpcm9ubWVudDo6bm9ybWFsaXplUGF0aChkaXJuYW1lKCRyb290dXJpLiRldmFsZF9wYXRoLicubGVzcycpKTsKCQkJCQkJcmV0dXJuIGFycmF5KCAkZnVsbF9wYXRoLCAkdXJpICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQoKCgkvKioKCSAqIFBhcnNlIHRoZSBpbXBvcnQgdXJsIGFuZCByZXR1cm4gdGhlIHJ1bGVzCgkgKgoJICogQHJldHVybiBMZXNzX1RyZWVfTWVkaWF8YXJyYXkKCSAqLwogICAgcHVibGljIGZ1bmN0aW9uIFBhcnNlSW1wb3J0KCAkZnVsbF9wYXRoLCAkdXJpLCAkZW52ICl7CgoJCSRpbXBvcnRfZW52ID0gY2xvbmUgJGVudjsKCQlpZiggKGlzc2V0KCR0aGlzLT5vcHRpb25zWydyZWZlcmVuY2UnXSkgJiYgJHRoaXMtPm9wdGlvbnNbJ3JlZmVyZW5jZSddKSB8fCBpc3NldCgkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydyZWZlcmVuY2UnXSkgKXsKCQkJJGltcG9ydF9lbnYtPmN1cnJlbnRGaWxlSW5mb1sncmVmZXJlbmNlJ10gPSB0cnVlOwoJCX0KCgkJaWYoIChpc3NldCgkdGhpcy0+b3B0aW9uc1snbXVsdGlwbGUnXSkgJiYgJHRoaXMtPm9wdGlvbnNbJ211bHRpcGxlJ10pICl7CgkJCSRpbXBvcnRfZW52LT5pbXBvcnRNdWx0aXBsZSA9IHRydWU7CgkJfQoKCQkkcGFyc2VyID0gbmV3IExlc3NfUGFyc2VyKCRpbXBvcnRfZW52KTsKCQkkcm9vdCA9ICRwYXJzZXItPnBhcnNlRmlsZSgkZnVsbF9wYXRoLCAkdXJpLCB0cnVlKTsKCgoJCSRydWxlc2V0ID0gbmV3IExlc3NfVHJlZV9SdWxlc2V0KGFycmF5KCksICRyb290LT5ydWxlcyApOwoJCSRydWxlc2V0LT5ldmFsSW1wb3J0cygkaW1wb3J0X2Vudik7CgoJCXJldHVybiAkdGhpcy0+ZmVhdHVyZXMgPyBuZXcgTGVzc19UcmVlX01lZGlhKCRydWxlc2V0LT5ydWxlcywgJHRoaXMtPmZlYXR1cmVzLT52YWx1ZSkgOiAkcnVsZXNldC0+cnVsZXM7Cgl9CgoKCS8qKgoJICogU2hvdWxkIHRoZSBpbXBvcnQgYmUgc2tpcHBlZD8KCSAqCgkgKiBAcmV0dXJuIGJvb2xlYW58bnVsbAoJICovCglwcml2YXRlIGZ1bmN0aW9uIFNraXAoJHBhdGgsICRlbnYpewoKCQkkcGF0aCA9IExlc3NfUGFyc2VyOjp3aW5QYXRoKHJlYWxwYXRoKCRwYXRoKSk7CgoJCWlmKCAkcGF0aCAmJiBMZXNzX1BhcnNlcjo6RmlsZVBhcnNlZCgkcGF0aCkgKXsKCgkJCWlmKCBpc3NldCgkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydyZWZlcmVuY2UnXSkgKXsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgoJCQlyZXR1cm4gIWlzc2V0KCR0aGlzLT5vcHRpb25zWydtdWx0aXBsZSddKSAmJiAhJGVudi0+aW1wb3J0TXVsdGlwbGU7CgkJfQoKCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Javascript.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBKYXZhc2NyaXB0CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX0phdmFzY3JpcHQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICR0eXBlID0gJ0phdmFzY3JpcHQnOwoJcHVibGljICRlc2NhcGVkOwoJcHVibGljICRleHByZXNzaW9uOwoJcHVibGljICRpbmRleDsKCgkvKioKCSAqIEBwYXJhbSBib29sZWFuICRpbmRleAoJICogQHBhcmFtIGJvb2xlYW4gJGVzY2FwZWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRzdHJpbmcsICRpbmRleCwgJGVzY2FwZWQpewoJCSR0aGlzLT5lc2NhcGVkID0gJGVzY2FwZWQ7CgkJJHRoaXMtPmV4cHJlc3Npb24gPSAkc3RyaW5nOwoJCSR0aGlzLT5pbmRleCA9ICRpbmRleDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSgpewoJCXJldHVybiBuZXcgTGVzc19UcmVlX0Fub255bW91cygnLyogU29ycnksIGNhbiBub3QgZG8gSmF2YVNjcmlwdCBldmFsdWF0aW9uIGluIFBIUC4uLiA6KCAqLycpOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Keyword.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBLZXl3b3JkCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX0tleXdvcmQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICR2YWx1ZTsKCXB1YmxpYyAkdHlwZSA9ICdLZXl3b3JkJzsKCgkvKioKCSAqIEBwYXJhbSBzdHJpbmcgJHZhbHVlCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdmFsdWUpewoJCSR0aGlzLT52YWx1ZSA9ICR2YWx1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSgpewoJCXJldHVybiAkdGhpczsKCX0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwoJcHVibGljIGZ1bmN0aW9uIGdlbkNTUyggJG91dHB1dCApewoKCQlpZiggJHRoaXMtPnZhbHVlID09PSAnJScpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJJbnZhbGlkICUgd2l0aG91dCBudW1iZXIiKTsKCQl9CgoJCSRvdXRwdXQtPmFkZCggJHRoaXMtPnZhbHVlICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBhcmUoJG90aGVyKSB7CgkJaWYgKCRvdGhlciBpbnN0YW5jZW9mIExlc3NfVHJlZV9LZXl3b3JkKSB7CgkJCXJldHVybiAkb3RoZXItPnZhbHVlID09PSAkdGhpcy0+dmFsdWUgPyAwIDogMTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gLTE7CgkJfQoJfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Media.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBNZWRpYQogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9NZWRpYSBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJGZlYXR1cmVzOwoJcHVibGljICRydWxlczsKCXB1YmxpYyAkaW5kZXg7CglwdWJsaWMgJGN1cnJlbnRGaWxlSW5mbzsKCXB1YmxpYyAkaXNSZWZlcmVuY2VkOwoJcHVibGljICR0eXBlID0gJ01lZGlhJzsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlID0gYXJyYXkoKSwgJGZlYXR1cmVzID0gYXJyYXkoKSwgJGluZGV4ID0gbnVsbCwgJGN1cnJlbnRGaWxlSW5mbyA9IG51bGwgKXsKCgkJJHRoaXMtPmluZGV4ID0gJGluZGV4OwoJCSR0aGlzLT5jdXJyZW50RmlsZUluZm8gPSAkY3VycmVudEZpbGVJbmZvOwoKCQkkc2VsZWN0b3JzID0gJHRoaXMtPmVtcHR5U2VsZWN0b3JzKCk7CgoJCSR0aGlzLT5mZWF0dXJlcyA9IG5ldyBMZXNzX1RyZWVfVmFsdWUoJGZlYXR1cmVzKTsKCgkJJHRoaXMtPnJ1bGVzID0gYXJyYXkobmV3IExlc3NfVHJlZV9SdWxlc2V0KCRzZWxlY3RvcnMsICR2YWx1ZSkpOwoJCSR0aGlzLT5ydWxlc1swXS0+YWxsb3dJbXBvcnRzID0gdHJ1ZTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCAkdmlzaXRvciApewoJCSR0aGlzLT5mZWF0dXJlcyA9ICR2aXNpdG9yLT52aXNpdE9iaigkdGhpcy0+ZmVhdHVyZXMpOwoJCSR0aGlzLT5ydWxlcyA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCR0aGlzLT5ydWxlcyk7Cgl9CgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCgkJJG91dHB1dC0+YWRkKCAnQG1lZGlhICcsICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmRleCApOwoJCSR0aGlzLT5mZWF0dXJlcy0+Z2VuQ1NTKCAkb3V0cHV0ICk7CgkJTGVzc19UcmVlOjpvdXRwdXRSdWxlc2V0KCAkb3V0cHV0LCAkdGhpcy0+cnVsZXMpOwoKCX0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSgkZW52KSB7CgoJCSRtZWRpYSA9IG5ldyBMZXNzX1RyZWVfTWVkaWEoYXJyYXkoKSwgYXJyYXkoKSwgJHRoaXMtPmluZGV4LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvICk7CgoJCSRzdHJpY3RNYXRoQnlwYXNzID0gZmFsc2U7CgkJaWYoIExlc3NfUGFyc2VyOjokb3B0aW9uc1snc3RyaWN0TWF0aCddID09PSBmYWxzZSkgewoJCQkkc3RyaWN0TWF0aEJ5cGFzcyA9IHRydWU7CgkJCUxlc3NfUGFyc2VyOjokb3B0aW9uc1snc3RyaWN0TWF0aCddID0gdHJ1ZTsKCQl9CgoJCSRtZWRpYS0+ZmVhdHVyZXMgPSAkdGhpcy0+ZmVhdHVyZXMtPmNvbXBpbGUoJGVudik7CgoJCWlmKCAkc3RyaWN0TWF0aEJ5cGFzcyApewoJCQlMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3N0cmljdE1hdGgnXSA9IGZhbHNlOwoJCX0KCgkJJGVudi0+bWVkaWFQYXRoW10gPSAkbWVkaWE7CgkJJGVudi0+bWVkaWFCbG9ja3NbXSA9ICRtZWRpYTsKCgkJYXJyYXlfdW5zaGlmdCgkZW52LT5mcmFtZXMsICR0aGlzLT5ydWxlc1swXSk7CgkJJG1lZGlhLT5ydWxlcyA9IGFycmF5KCR0aGlzLT5ydWxlc1swXS0+Y29tcGlsZSgkZW52KSk7CgkJYXJyYXlfc2hpZnQoJGVudi0+ZnJhbWVzKTsKCgkJYXJyYXlfcG9wKCRlbnYtPm1lZGlhUGF0aCk7CgoJCXJldHVybiAhJGVudi0+bWVkaWFQYXRoID8gJG1lZGlhLT5jb21waWxlVG9wKCRlbnYpIDogJG1lZGlhLT5jb21waWxlTmVzdGVkKCRlbnYpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB2YXJpYWJsZSgkbmFtZSkgewoJCXJldHVybiAkdGhpcy0+cnVsZXNbMF0tPnZhcmlhYmxlKCRuYW1lKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZmluZCgkc2VsZWN0b3IpIHsKCQlyZXR1cm4gJHRoaXMtPnJ1bGVzWzBdLT5maW5kKCRzZWxlY3RvciwgJHRoaXMpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBlbXB0eVNlbGVjdG9ycygpewoJCSRlbCA9IG5ldyBMZXNzX1RyZWVfRWxlbWVudCgnJywnJicsICR0aGlzLT5pbmRleCwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyApOwoJCSRzZWxzID0gYXJyYXkoIG5ldyBMZXNzX1RyZWVfU2VsZWN0b3IoYXJyYXkoJGVsKSwgYXJyYXkoKSwgbnVsbCwgJHRoaXMtPmluZGV4LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvKSApOwoJCSRzZWxzWzBdLT5tZWRpYUVtcHR5ID0gdHJ1ZTsKICAgICAgICByZXR1cm4gJHNlbHM7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG1hcmtSZWZlcmVuY2VkKCl7CgkJJHRoaXMtPnJ1bGVzWzBdLT5tYXJrUmVmZXJlbmNlZCgpOwoJCSR0aGlzLT5pc1JlZmVyZW5jZWQgPSB0cnVlOwoJCUxlc3NfVHJlZTo6UmVmZXJlbmNlZEFycmF5KCR0aGlzLT5ydWxlc1swXS0+cnVsZXMpOwoJfQoKCS8vIGV2YWx0b3AKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlVG9wKCRlbnYpIHsKCQkkcmVzdWx0ID0gJHRoaXM7CgoJCWlmIChjb3VudCgkZW52LT5tZWRpYUJsb2NrcykgPiAxKSB7CgkJCSRzZWxlY3RvcnMgPSAkdGhpcy0+ZW1wdHlTZWxlY3RvcnMoKTsKCQkJJHJlc3VsdCA9IG5ldyBMZXNzX1RyZWVfUnVsZXNldCgkc2VsZWN0b3JzLCAkZW52LT5tZWRpYUJsb2Nrcyk7CgkJCSRyZXN1bHQtPm11bHRpTWVkaWEgPSB0cnVlOwoJCX0KCgkJJGVudi0+bWVkaWFCbG9ja3MgPSBhcnJheSgpOwoJCSRlbnYtPm1lZGlhUGF0aCA9IGFycmF5KCk7CgoJCXJldHVybiAkcmVzdWx0OwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlTmVzdGVkKCRlbnYpIHsKCQkkcGF0aCA9IGFycmF5X21lcmdlKCRlbnYtPm1lZGlhUGF0aCwgYXJyYXkoJHRoaXMpKTsKCgkJLy8gRXh0cmFjdCB0aGUgbWVkaWEtcXVlcnkgY29uZGl0aW9ucyBzZXBhcmF0ZWQgd2l0aCBgLGAgKE9SKS4KCQlmb3JlYWNoICgkcGF0aCBhcyAka2V5ID0+ICRwKSB7CgkJCSR2YWx1ZSA9ICRwLT5mZWF0dXJlcyBpbnN0YW5jZW9mIExlc3NfVHJlZV9WYWx1ZSA/ICRwLT5mZWF0dXJlcy0+dmFsdWUgOiAkcC0+ZmVhdHVyZXM7CgkJCSRwYXRoWyRrZXldID0gaXNfYXJyYXkoJHZhbHVlKSA/ICR2YWx1ZSA6IGFycmF5KCR2YWx1ZSk7CgkJfQoKCQkvLyBUcmFjZSBhbGwgcGVybXV0YXRpb25zIHRvIGdlbmVyYXRlIHRoZSByZXN1bHRpbmcgbWVkaWEtcXVlcnkuCgkJLy8KCQkvLyAoYSwgYiBhbmQgYykgd2l0aCBuZXN0ZWQgKGQsIGUpIC0+CgkJLy8JYSBhbmQgZAoJCS8vCWEgYW5kIGUKCQkvLwliIGFuZCBjIGFuZCBkCgkJLy8JYiBhbmQgYyBhbmQgZQoKCQkkcGVybXV0ZWQgPSAkdGhpcy0+cGVybXV0ZSgkcGF0aCk7CgkJJGV4cHJlc3Npb25zID0gYXJyYXkoKTsKCQlmb3JlYWNoKCRwZXJtdXRlZCBhcyAkcGF0aCl7CgoJCQlmb3IoICRpPTAsICRsZW49Y291bnQoJHBhdGgpOyAkaSA8ICRsZW47ICRpKyspewoJCQkJJHBhdGhbJGldID0gTGVzc19QYXJzZXI6OmlzX21ldGhvZCgkcGF0aFskaV0sICd0b0NTUycpID8gJHBhdGhbJGldIDogbmV3IExlc3NfVHJlZV9Bbm9ueW1vdXMoJHBhdGhbJGldKTsKCQkJfQoKCQkJZm9yKCAkaSA9IGNvdW50KCRwYXRoKSAtIDE7ICRpID4gMDsgJGktLSApewoJCQkJYXJyYXlfc3BsaWNlKCRwYXRoLCAkaSwgMCwgYXJyYXkobmV3IExlc3NfVHJlZV9Bbm9ueW1vdXMoJ2FuZCcpKSk7CgkJCX0KCgkJCSRleHByZXNzaW9uc1tdID0gbmV3IExlc3NfVHJlZV9FeHByZXNzaW9uKCRwYXRoKTsKCQl9CgkJJHRoaXMtPmZlYXR1cmVzID0gbmV3IExlc3NfVHJlZV9WYWx1ZSgkZXhwcmVzc2lvbnMpOwoKCgoJCS8vIEZha2UgYSB0cmVlLW5vZGUgdGhhdCBkb2Vzbid0IG91dHB1dCBhbnl0aGluZy4KCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9SdWxlc2V0KGFycmF5KCksIGFycmF5KCkpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBwZXJtdXRlKCRhcnIpIHsKCQlpZiAoISRhcnIpCgkJCXJldHVybiBhcnJheSgpOwoKCQlpZiAoY291bnQoJGFycikgPT0gMSkKCQkJcmV0dXJuICRhcnJbMF07CgoJCSRyZXN1bHQgPSBhcnJheSgpOwoJCSRyZXN0ID0gJHRoaXMtPnBlcm11dGUoYXJyYXlfc2xpY2UoJGFyciwgMSkpOwoJCWZvcmVhY2ggKCRyZXN0IGFzICRyKSB7CgkJCWZvcmVhY2ggKCRhcnJbMF0gYXMgJGEpIHsKCQkJCSRyZXN1bHRbXSA9IGFycmF5X21lcmdlKAoJCQkJCWlzX2FycmF5KCRhKSA/ICRhIDogYXJyYXkoJGEpLAoJCQkJCWlzX2FycmF5KCRyKSA/ICRyIDogYXJyYXkoJHIpCgkJCQkpOwoJCQl9CgkJfQoKCQlyZXR1cm4gJHJlc3VsdDsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYnViYmxlU2VsZWN0b3JzKCRzZWxlY3RvcnMpIHsKCgkJaWYoICEkc2VsZWN0b3JzKSByZXR1cm47CgoJCSR0aGlzLT5ydWxlcyA9IGFycmF5KG5ldyBMZXNzX1RyZWVfUnVsZXNldCggJHNlbGVjdG9ycywgYXJyYXkoJHRoaXMtPnJ1bGVzWzBdKSkpOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Mixin/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Mixin/Call.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgpjbGFzcyBMZXNzX1RyZWVfTWl4aW5fQ2FsbCBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJHNlbGVjdG9yOwoJcHVibGljICRhcmd1bWVudHM7CglwdWJsaWMgJGluZGV4OwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CgoJcHVibGljICRpbXBvcnRhbnQ7CglwdWJsaWMgJHR5cGUgPSAnTWl4aW5DYWxsJzsKCgkvKioKCSAqIGxlc3MuanM6IHRyZWUubWl4aW4uQ2FsbAoJICoKCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRlbGVtZW50cywgJGFyZ3MsICRpbmRleCwgJGN1cnJlbnRGaWxlSW5mbywgJGltcG9ydGFudCA9IGZhbHNlKXsKCQkkdGhpcy0+c2VsZWN0b3IgPSBuZXcgTGVzc19UcmVlX1NlbGVjdG9yKCRlbGVtZW50cyk7CgkJJHRoaXMtPmFyZ3VtZW50cyA9ICRhcmdzOwoJCSR0aGlzLT5pbmRleCA9ICRpbmRleDsKCQkkdGhpcy0+Y3VycmVudEZpbGVJbmZvID0gJGN1cnJlbnRGaWxlSW5mbzsKCQkkdGhpcy0+aW1wb3J0YW50ID0gJGltcG9ydGFudDsKCX0KCgkvL2Z1bmN0aW9uIGFjY2VwdCgkdmlzaXRvcil7CgkvLwkkdGhpcy0+c2VsZWN0b3IgPSAkdmlzaXRvci0+dmlzaXQoJHRoaXMtPnNlbGVjdG9yKTsKCS8vCSR0aGlzLT5hcmd1bWVudHMgPSAkdmlzaXRvci0+dmlzaXQoJHRoaXMtPmFyZ3VtZW50cyk7CgkvL30KCgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudil7CgoJCSRydWxlcyA9IGFycmF5KCk7CgkJJG1hdGNoID0gZmFsc2U7CgkJJGlzT25lRm91bmQgPSBmYWxzZTsKCQkkY2FuZGlkYXRlcyA9IGFycmF5KCk7CgkJJGRlZmF1bHRVc2VkID0gZmFsc2U7CgkJJGNvbmRpdGlvblJlc3VsdCA9IGFycmF5KCk7CgoJCSRhcmdzID0gYXJyYXkoKTsKCQlmb3JlYWNoKCR0aGlzLT5hcmd1bWVudHMgYXMgJGEpewoJCQkkYXJnc1tdID0gYXJyYXkoJ25hbWUnPT4gJGFbJ25hbWUnXSwgJ3ZhbHVlJyA9PiAkYVsndmFsdWUnXS0+Y29tcGlsZSgkZW52KSApOwoJCX0KCgkJZm9yZWFjaCgkZW52LT5mcmFtZXMgYXMgJGZyYW1lKXsKCgkJCSRtaXhpbnMgPSAkZnJhbWUtPmZpbmQoJHRoaXMtPnNlbGVjdG9yKTsKCgkJCWlmKCAhJG1peGlucyApewoJCQkJY29udGludWU7CgkJCX0KCgkJCSRpc09uZUZvdW5kID0gdHJ1ZTsKCQkJJGRlZk5vbmUgPSAwOwoJCQkkZGVmVHJ1ZSA9IDE7CgkJCSRkZWZGYWxzZSA9IDI7CgoJCQkvLyBUbyBtYWtlIGBkZWZhdWx0KClgIGZ1bmN0aW9uIGluZGVwZW5kZW50IG9mIGRlZmluaXRpb24gb3JkZXIgd2UgaGF2ZSB0d28gInN1YnBhc3NlcyIgaGVyZS4KCQkJLy8gQXQgZmlyc3Qgd2UgZXZhbHVhdGUgZWFjaCBndWFyZCAqdHdpY2UqICh3aXRoIGBkZWZhdWx0KCkgPT0gdHJ1ZWAgYW5kIGBkZWZhdWx0KCkgPT0gZmFsc2VgKSwKCQkJLy8gYW5kIGJ1aWxkIGNhbmRpZGF0ZSBsaXN0IHdpdGggY29ycmVzcG9uZGluZyBmbGFncy4gVGhlbiwgd2hlbiB3ZSBrbm93IGFsbCBwb3NzaWJsZSBtYXRjaGVzLAoJCQkvLyB3ZSBtYWtlIGEgZmluYWwgZGVjaXNpb24uCgoJCQkkbWl4aW5zX2xlbiA9IGNvdW50KCRtaXhpbnMpOwoJCQlmb3IoICRtID0gMDsgJG0gPCAkbWl4aW5zX2xlbjsgJG0rKyApewoJCQkJJG1peGluID0gJG1peGluc1skbV07CgoJCQkJaWYoICR0aGlzLT5Jc1JlY3Vyc2l2ZSggJGVudiwgJG1peGluICkgKXsKCQkJCQljb250aW51ZTsKCQkJCX0KCgkJCQlpZiggJG1peGluLT5tYXRjaEFyZ3MoJGFyZ3MsICRlbnYpICl7CgoJCQkJCSRjYW5kaWRhdGUgPSBhcnJheSgnbWl4aW4nID0+ICRtaXhpbiwgJ2dyb3VwJyA9PiAkZGVmTm9uZSk7CgoJCQkJCWlmKCAkbWl4aW4gaW5zdGFuY2VvZiBMZXNzX1RyZWVfUnVsZXNldCApewoKCQkJCQkJZm9yKCAkZiA9IDA7ICRmIDwgMjsgJGYrKyApewoJCQkJCQkJTGVzc19UcmVlX0RlZmF1bHRGdW5jOjp2YWx1ZSgkZik7CgkJCQkJCQkkY29uZGl0aW9uUmVzdWx0WyRmXSA9ICRtaXhpbi0+bWF0Y2hDb25kaXRpb24oICRhcmdzLCAkZW52KTsKCQkJCQkJfQoJCQkJCQlpZiggJGNvbmRpdGlvblJlc3VsdFswXSB8fCAkY29uZGl0aW9uUmVzdWx0WzFdICl7CgkJCQkJCQlpZiggJGNvbmRpdGlvblJlc3VsdFswXSAhPSAkY29uZGl0aW9uUmVzdWx0WzFdICl7CgkJCQkJCQkJJGNhbmRpZGF0ZVsnZ3JvdXAnXSA9ICRjb25kaXRpb25SZXN1bHRbMV0gPyAkZGVmVHJ1ZSA6ICRkZWZGYWxzZTsKCQkJCQkJCX0KCgkJCQkJCQkkY2FuZGlkYXRlc1tdID0gJGNhbmRpZGF0ZTsKCQkJCQkJfQoJCQkJCX1lbHNlewoJCQkJCQkkY2FuZGlkYXRlc1tdID0gJGNhbmRpZGF0ZTsKCQkJCQl9CgoJCQkJCSRtYXRjaCA9IHRydWU7CgkJCQl9CgkJCX0KCgkJCUxlc3NfVHJlZV9EZWZhdWx0RnVuYzo6cmVzZXQoKTsKCgoJCQkkY291bnQgPSBhcnJheSgwLCAwLCAwKTsKCQkJZm9yKCAkbSA9IDA7ICRtIDwgY291bnQoJGNhbmRpZGF0ZXMpOyAkbSsrICl7CgkJCQkkY291bnRbICRjYW5kaWRhdGVzWyRtXVsnZ3JvdXAnXSBdKys7CgkJCX0KCgkJCWlmKCAkY291bnRbJGRlZk5vbmVdID4gMCApewoJCQkJJGRlZmF1bHRSZXN1bHQgPSAkZGVmRmFsc2U7CgkJCX0gZWxzZSB7CgkJCQkkZGVmYXVsdFJlc3VsdCA9ICRkZWZUcnVlOwoJCQkJaWYoICgkY291bnRbJGRlZlRydWVdICsgJGNvdW50WyRkZWZGYWxzZV0pID4gMSApewoJCQkJCXRocm93IG5ldyBFeGNlcHRpb24oICdBbWJpZ3VvdXMgdXNlIG9mIGBkZWZhdWx0KClgIGZvdW5kIHdoZW4gbWF0Y2hpbmcgZm9yIGAnIC4gJHRoaXMtPmZvcm1hdCgkYXJncykgLiAnYCcgKTsKCQkJCX0KCQkJfQoKCgkJCSRjYW5kaWRhdGVzX2xlbmd0aCA9IGNvdW50KCRjYW5kaWRhdGVzKTsKCQkJJGxlbmd0aF8xID0gKCRjYW5kaWRhdGVzX2xlbmd0aCA9PSAxKTsKCgkJCWZvciggJG0gPSAwOyAkbSA8ICRjYW5kaWRhdGVzX2xlbmd0aDsgJG0rKyl7CgkJCQkkY2FuZGlkYXRlID0gJGNhbmRpZGF0ZXNbJG1dWydncm91cCddOwoJCQkJaWYoICgkY2FuZGlkYXRlID09PSAkZGVmTm9uZSkgfHwgKCRjYW5kaWRhdGUgPT09ICRkZWZhdWx0UmVzdWx0KSApewoJCQkJCXRyeXsKCQkJCQkJJG1peGluID0gJGNhbmRpZGF0ZXNbJG1dWydtaXhpbiddOwoJCQkJCQlpZiggISgkbWl4aW4gaW5zdGFuY2VvZiBMZXNzX1RyZWVfTWl4aW5fRGVmaW5pdGlvbikgKXsKCQkJCQkJCSRtaXhpbiA9IG5ldyBMZXNzX1RyZWVfTWl4aW5fRGVmaW5pdGlvbignJywgYXJyYXkoKSwgJG1peGluLT5ydWxlcywgbnVsbCwgZmFsc2UpOwoJCQkJCQkJJG1peGluLT5vcmlnaW5hbFJ1bGVzZXQgPSAkbWl4aW5zWyRtXS0+b3JpZ2luYWxSdWxlc2V0OwoJCQkJCQl9CgkJCQkJCSRydWxlcyA9IGFycmF5X21lcmdlKCRydWxlcywgJG1peGluLT5ldmFsQ2FsbCgkZW52LCAkYXJncywgJHRoaXMtPmltcG9ydGFudCktPnJ1bGVzKTsKCQkJCQl9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKCQkJCQkJLy90aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJGUtPmdldE1lc3NhZ2UoKSwgJGUtPmluZGV4LCBudWxsLCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydmaWxlbmFtZSddKTsKCQkJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCRlLT5nZXRNZXNzYWdlKCksIG51bGwsIG51bGwsICR0aGlzLT5jdXJyZW50RmlsZUluZm8pOwoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJaWYoICRtYXRjaCApewoJCQkJaWYoICEkdGhpcy0+Y3VycmVudEZpbGVJbmZvIHx8ICFpc3NldCgkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydyZWZlcmVuY2UnXSkgfHwgISR0aGlzLT5jdXJyZW50RmlsZUluZm9bJ3JlZmVyZW5jZSddICl7CgkJCQkJTGVzc19UcmVlOjpSZWZlcmVuY2VkQXJyYXkoJHJ1bGVzKTsKCQkJCX0KCgkJCQlyZXR1cm4gJHJ1bGVzOwoJCQl9CgkJfQoKCQlpZiggJGlzT25lRm91bmQgKXsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCdObyBtYXRjaGluZyBkZWZpbml0aW9uIHdhcyBmb3VuZCBmb3IgYCcuJHRoaXMtPkZvcm1hdCggJGFyZ3MgKS4nYCcsIG51bGwsICR0aGlzLT5pbmRleCwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyk7CgoJCX1lbHNlewoJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIodHJpbSgkdGhpcy0+c2VsZWN0b3ItPnRvQ1NTKCkpIC4gIiBpcyB1bmRlZmluZWQgaW4gIi4kdGhpcy0+Y3VycmVudEZpbGVJbmZvWydmaWxlbmFtZSddLCBudWxsLCAkdGhpcy0+aW5kZXgpOwoJCX0KCgl9CgoJLyoqCgkgKiBGb3JtYXQgdGhlIGFyZ3MgZm9yIHVzZSBpbiBleGNlcHRpb24gbWVzc2FnZXMKCSAqCgkgKi8KCXByaXZhdGUgZnVuY3Rpb24gRm9ybWF0KCRhcmdzKXsKCQkkbWVzc2FnZSA9IGFycmF5KCk7CgkJaWYoICRhcmdzICl7CgkJCWZvcmVhY2goJGFyZ3MgYXMgJGEpewoJCQkJJGFyZ1ZhbHVlID0gJyc7CgkJCQlpZiggJGFbJ25hbWUnXSApewoJCQkJCSRhcmdWYWx1ZSAuPSAkYVsnbmFtZSddIC4gJzonOwoJCQkJfQoJCQkJaWYoIGlzX29iamVjdCgkYVsndmFsdWUnXSkgKXsKCQkJCQkkYXJnVmFsdWUgLj0gJGFbJ3ZhbHVlJ10tPnRvQ1NTKCk7CgkJCQl9ZWxzZXsKCQkJCQkkYXJnVmFsdWUgLj0gJz8/Pyc7CgkJCQl9CgkJCQkkbWVzc2FnZVtdID0gJGFyZ1ZhbHVlOwoJCQl9CgkJfQoJCXJldHVybiBpbXBsb2RlKCcsICcsJG1lc3NhZ2UpOwoJfQoKCgkvKioKCSAqIEFyZSB3ZSBpbiBhIHJlY3Vyc2l2ZSBtaXhpbiBjYWxsPwoJICoKCSAqIEByZXR1cm4gYm9vbAoJICovCglwcml2YXRlIGZ1bmN0aW9uIElzUmVjdXJzaXZlKCAkZW52LCAkbWl4aW4gKXsKCgkJZm9yZWFjaCgkZW52LT5mcmFtZXMgYXMgJHJlY3VyX2ZyYW1lKXsKCQkJaWYoICEoJG1peGluIGluc3RhbmNlb2YgTGVzc19UcmVlX01peGluX0RlZmluaXRpb24pICl7CgoJCQkJaWYoICRtaXhpbiA9PT0gJHJlY3VyX2ZyYW1lICl7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgoJCQkJaWYoIGlzc2V0KCRyZWN1cl9mcmFtZS0+b3JpZ2luYWxSdWxlc2V0KSAmJiAkbWl4aW4tPnJ1bGVzZXRfaWQgPT09ICRyZWN1cl9mcmFtZS0+b3JpZ2luYWxSdWxlc2V0ICl7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBmYWxzZTsKCX0KCn0KCgo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Mixin/Definition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIExlc3NfVHJlZV9NaXhpbl9EZWZpbml0aW9uIGV4dGVuZHMgTGVzc19UcmVlX1J1bGVzZXR7CglwdWJsaWMgJG5hbWU7CglwdWJsaWMgJHNlbGVjdG9yczsKCXB1YmxpYyAkcGFyYW1zOwoJcHVibGljICRhcml0eQkJPSAwOwoJcHVibGljICRydWxlczsKCXB1YmxpYyAkbG9va3VwcwkJPSBhcnJheSgpOwoJcHVibGljICRyZXF1aXJlZAk9IDA7CglwdWJsaWMgJGZyYW1lcwkJPSBhcnJheSgpOwoJcHVibGljICRjb25kaXRpb247CglwdWJsaWMgJHZhcmlhZGljOwoJcHVibGljICR0eXBlCQk9ICdNaXhpbkRlZmluaXRpb24nOwoKCgkvLyBsZXNzLmpzIDogL2xpYi9sZXNzL3RyZWUvbWl4aW4uanMgOiB0cmVlLm1peGluLkRlZmluaXRpb24KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbmFtZSwgJHBhcmFtcywgJHJ1bGVzLCAkY29uZGl0aW9uLCAkdmFyaWFkaWMgPSBmYWxzZSwgJGZyYW1lcyA9IGFycmF5KCkgKXsKCQkkdGhpcy0+bmFtZSA9ICRuYW1lOwoJCSR0aGlzLT5zZWxlY3RvcnMgPSBhcnJheShuZXcgTGVzc19UcmVlX1NlbGVjdG9yKGFycmF5KCBuZXcgTGVzc19UcmVlX0VsZW1lbnQobnVsbCwgJG5hbWUpKSkpOwoKCQkkdGhpcy0+cGFyYW1zID0gJHBhcmFtczsKCQkkdGhpcy0+Y29uZGl0aW9uID0gJGNvbmRpdGlvbjsKCQkkdGhpcy0+dmFyaWFkaWMgPSAkdmFyaWFkaWM7CgkJJHRoaXMtPnJ1bGVzID0gJHJ1bGVzOwoKCQlpZiggJHBhcmFtcyApewoJCQkkdGhpcy0+YXJpdHkgPSBjb3VudCgkcGFyYW1zKTsKCQkJZm9yZWFjaCggJHBhcmFtcyBhcyAkcCApewoJCQkJaWYgKCEgaXNzZXQoJHBbJ25hbWUnXSkgfHwgKCRwWyduYW1lJ10gJiYgIWlzc2V0KCRwWyd2YWx1ZSddKSkpIHsKCQkJCQkkdGhpcy0+cmVxdWlyZWQrKzsKCQkJCX0KCQkJfQoJCX0KCgkJJHRoaXMtPmZyYW1lcyA9ICRmcmFtZXM7CgkJJHRoaXMtPlNldFJ1bGVzZXRJbmRleCgpOwoJfQoKCgoJLy9mdW5jdGlvbiBhY2NlcHQoICR2aXNpdG9yICl7CgkvLwkkdGhpcy0+cGFyYW1zID0gJHZpc2l0b3ItPnZpc2l0KCR0aGlzLT5wYXJhbXMpOwoJLy8JJHRoaXMtPnJ1bGVzID0gJHZpc2l0b3ItPnZpc2l0KCR0aGlzLT5ydWxlcyk7CgkvLwkkdGhpcy0+Y29uZGl0aW9uID0gJHZpc2l0b3ItPnZpc2l0KCR0aGlzLT5jb25kaXRpb24pOwoJLy99CgoKCXB1YmxpYyBmdW5jdGlvbiB0b0NTUygpewoJCXJldHVybiAnJzsKCX0KCgkvLyBsZXNzLmpzIDogL2xpYi9sZXNzL3RyZWUvbWl4aW4uanMgOiB0cmVlLm1peGluLkRlZmluaXRpb24uZXZhbFBhcmFtcwoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGVQYXJhbXMoJGVudiwgJG1peGluRnJhbWVzLCAkYXJncyA9IGFycmF5KCkgLCAmJGV2YWxkQXJndW1lbnRzID0gYXJyYXkoKSApewoJCSRmcmFtZSA9IG5ldyBMZXNzX1RyZWVfUnVsZXNldChudWxsLCBhcnJheSgpKTsKCQkkcGFyYW1zID0gJHRoaXMtPnBhcmFtczsKCQkkbWl4aW5FbnYgPSBudWxsOwoJCSRhcmdzTGVuZ3RoID0gMDsKCgkJaWYoICRhcmdzICl7CgkJCSRhcmdzTGVuZ3RoID0gY291bnQoJGFyZ3MpOwoJCQlmb3IoJGkgPSAwOyAkaSA8ICRhcmdzTGVuZ3RoOyAkaSsrICl7CgkJCQkkYXJnID0gJGFyZ3NbJGldOwoKCQkJCWlmKCAkYXJnICYmICRhcmdbJ25hbWUnXSApewoJCQkJCSRpc05hbWVkRm91bmQgPSBmYWxzZTsKCgkJCQkJZm9yZWFjaCgkcGFyYW1zIGFzICRqID0+ICRwYXJhbSl7CgkJCQkJCWlmKCAhaXNzZXQoJGV2YWxkQXJndW1lbnRzWyRqXSkgJiYgJGFyZ1snbmFtZSddID09PSAkcGFyYW1zWyRqXVsnbmFtZSddKSB7CgkJCQkJCQkkZXZhbGRBcmd1bWVudHNbJGpdID0gJGFyZ1sndmFsdWUnXS0+Y29tcGlsZSgkZW52KTsKCQkJCQkJCWFycmF5X3Vuc2hpZnQoJGZyYW1lLT5ydWxlcywgbmV3IExlc3NfVHJlZV9SdWxlKCAkYXJnWyduYW1lJ10sICRhcmdbJ3ZhbHVlJ10tPmNvbXBpbGUoJGVudikgKSApOwoJCQkJCQkJJGlzTmFtZWRGb3VuZCA9IHRydWU7CgkJCQkJCQlicmVhazsKCQkJCQkJfQoJCQkJCX0KCQkJCQlpZiAoJGlzTmFtZWRGb3VuZCkgewoJCQkJCQlhcnJheV9zcGxpY2UoJGFyZ3MsICRpLCAxKTsKCQkJCQkJJGktLTsKCQkJCQkJJGFyZ3NMZW5ndGgtLTsKCQkJCQkJY29udGludWU7CgkJCQkJfSBlbHNlIHsKCQkJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJOYW1lZCBhcmd1bWVudCBmb3IgIiAuICR0aGlzLT5uYW1lIC4nICcuJGFyZ3NbJGldWyduYW1lJ10gLiAnIG5vdCBmb3VuZCcpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJJGFyZ0luZGV4ID0gMDsKCQlmb3JlYWNoKCRwYXJhbXMgYXMgJGkgPT4gJHBhcmFtKXsKCgkJCWlmICggaXNzZXQoJGV2YWxkQXJndW1lbnRzWyRpXSkgKXsgY29udGludWU7IH0KCgkJCSRhcmcgPSBudWxsOwoJCQlpZiggaXNzZXQoJGFyZ3NbJGFyZ0luZGV4XSkgKXsKCQkJCSRhcmcgPSAkYXJnc1skYXJnSW5kZXhdOwoJCQl9CgoJCQlpZiAoaXNzZXQoJHBhcmFtWyduYW1lJ10pICYmICRwYXJhbVsnbmFtZSddKSB7CgoJCQkJaWYoIGlzc2V0KCRwYXJhbVsndmFyaWFkaWMnXSkgKXsKCQkJCQkkdmFyYXJncyA9IGFycmF5KCk7CgkJCQkJZm9yICgkaiA9ICRhcmdJbmRleDsgJGogPCAkYXJnc0xlbmd0aDsgJGorKykgewoJCQkJCQkkdmFyYXJnc1tdID0gJGFyZ3NbJGpdWyd2YWx1ZSddLT5jb21waWxlKCRlbnYpOwoJCQkJCX0KCQkJCQkkZXhwcmVzc2lvbiA9IG5ldyBMZXNzX1RyZWVfRXhwcmVzc2lvbigkdmFyYXJncyk7CgkJCQkJYXJyYXlfdW5zaGlmdCgkZnJhbWUtPnJ1bGVzLCBuZXcgTGVzc19UcmVlX1J1bGUoJHBhcmFtWyduYW1lJ10sICRleHByZXNzaW9uLT5jb21waWxlKCRlbnYpKSk7CgkJCQl9ZWxzZXsKCQkJCQkkdmFsID0gKCRhcmcgJiYgJGFyZ1sndmFsdWUnXSkgPyAkYXJnWyd2YWx1ZSddIDogZmFsc2U7CgoJCQkJCWlmICgkdmFsKSB7CgkJCQkJCSR2YWwgPSAkdmFsLT5jb21waWxlKCRlbnYpOwoJCQkJCX0gZWxzZSBpZiAoIGlzc2V0KCRwYXJhbVsndmFsdWUnXSkgKSB7CgoJCQkJCQlpZiggISRtaXhpbkVudiApewoJCQkJCQkJJG1peGluRW52ID0gbmV3IExlc3NfRW52aXJvbm1lbnQoKTsKCQkJCQkJCSRtaXhpbkVudi0+ZnJhbWVzID0gYXJyYXlfbWVyZ2UoIGFycmF5KCRmcmFtZSksICRtaXhpbkZyYW1lcyk7CgkJCQkJCX0KCgkJCQkJCSR2YWwgPSAkcGFyYW1bJ3ZhbHVlJ10tPmNvbXBpbGUoJG1peGluRW52KTsKCQkJCQkJJGZyYW1lLT5yZXNldENhY2hlKCk7CgkJCQkJfSBlbHNlIHsKCQkJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciAiIC4gJHRoaXMtPm5hbWUgLiAiICgiIC4gJGFyZ3NMZW5ndGggLiAnIGZvciAnIC4gJHRoaXMtPmFyaXR5IC4gIikiKTsKCQkJCQl9CgoJCQkJCWFycmF5X3Vuc2hpZnQoJGZyYW1lLT5ydWxlcywgbmV3IExlc3NfVHJlZV9SdWxlKCRwYXJhbVsnbmFtZSddLCAkdmFsKSk7CgkJCQkJJGV2YWxkQXJndW1lbnRzWyRpXSA9ICR2YWw7CgkJCQl9CgkJCX0KCgkJCWlmICggaXNzZXQoJHBhcmFtWyd2YXJpYWRpYyddKSAmJiAkYXJncykgewoJCQkJZm9yICgkaiA9ICRhcmdJbmRleDsgJGogPCAkYXJnc0xlbmd0aDsgJGorKykgewoJCQkJCSRldmFsZEFyZ3VtZW50c1skal0gPSAkYXJnc1skal1bJ3ZhbHVlJ10tPmNvbXBpbGUoJGVudik7CgkJCQl9CgkJCX0KCQkJJGFyZ0luZGV4Kys7CgkJfQoKCQlrc29ydCgkZXZhbGRBcmd1bWVudHMpOwoJCSRldmFsZEFyZ3VtZW50cyA9IGFycmF5X3ZhbHVlcygkZXZhbGRBcmd1bWVudHMpOwoKCQlyZXR1cm4gJGZyYW1lOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpIHsKCQlpZiggJHRoaXMtPmZyYW1lcyApewoJCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9NaXhpbl9EZWZpbml0aW9uKCR0aGlzLT5uYW1lLCAkdGhpcy0+cGFyYW1zLCAkdGhpcy0+cnVsZXMsICR0aGlzLT5jb25kaXRpb24sICR0aGlzLT52YXJpYWRpYywgJHRoaXMtPmZyYW1lcyApOwoJCX0KCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9NaXhpbl9EZWZpbml0aW9uKCR0aGlzLT5uYW1lLCAkdGhpcy0+cGFyYW1zLCAkdGhpcy0+cnVsZXMsICR0aGlzLT5jb25kaXRpb24sICR0aGlzLT52YXJpYWRpYywgJGVudi0+ZnJhbWVzICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGV2YWxDYWxsKCRlbnYsICRhcmdzID0gTlVMTCwgJGltcG9ydGFudCA9IE5VTEwpIHsKCgkJTGVzc19FbnZpcm9ubWVudDo6JG1peGluX3N0YWNrKys7CgoJCSRfYXJndW1lbnRzID0gYXJyYXkoKTsKCgkJaWYoICR0aGlzLT5mcmFtZXMgKXsKCQkJJG1peGluRnJhbWVzID0gYXJyYXlfbWVyZ2UoJHRoaXMtPmZyYW1lcywgJGVudi0+ZnJhbWVzKTsKCQl9ZWxzZXsKCQkJJG1peGluRnJhbWVzID0gJGVudi0+ZnJhbWVzOwoJCX0KCgkJJGZyYW1lID0gJHRoaXMtPmNvbXBpbGVQYXJhbXMoJGVudiwgJG1peGluRnJhbWVzLCAkYXJncywgJF9hcmd1bWVudHMpOwoKCQkkZXggPSBuZXcgTGVzc19UcmVlX0V4cHJlc3Npb24oJF9hcmd1bWVudHMpOwoJCWFycmF5X3Vuc2hpZnQoJGZyYW1lLT5ydWxlcywgbmV3IExlc3NfVHJlZV9SdWxlKCdAYXJndW1lbnRzJywgJGV4LT5jb21waWxlKCRlbnYpKSk7CgoKCQkkcnVsZXNldCA9IG5ldyBMZXNzX1RyZWVfUnVsZXNldChudWxsLCAkdGhpcy0+cnVsZXMpOwoJCSRydWxlc2V0LT5vcmlnaW5hbFJ1bGVzZXQgPSAkdGhpcy0+cnVsZXNldF9pZDsKCgoJCSRydWxlU2V0RW52ID0gbmV3IExlc3NfRW52aXJvbm1lbnQoKTsKCQkkcnVsZVNldEVudi0+ZnJhbWVzID0gYXJyYXlfbWVyZ2UoIGFycmF5KCR0aGlzLCAkZnJhbWUpLCAkbWl4aW5GcmFtZXMgKTsKCQkkcnVsZXNldCA9ICRydWxlc2V0LT5jb21waWxlKCAkcnVsZVNldEVudiApOwoKCQlpZiggJGltcG9ydGFudCApewoJCQkkcnVsZXNldCA9ICRydWxlc2V0LT5tYWtlSW1wb3J0YW50KCk7CgkJfQoKCQlMZXNzX0Vudmlyb25tZW50OjokbWl4aW5fc3RhY2stLTsKCgkJcmV0dXJuICRydWxlc2V0OwoJfQoKCglwdWJsaWMgZnVuY3Rpb24gbWF0Y2hDb25kaXRpb24oJGFyZ3MsICRlbnYpIHsKCgkJaWYoICEkdGhpcy0+Y29uZGl0aW9uICl7CgkJCXJldHVybiB0cnVlOwoJCX0KCgkJLy8gc2V0IGFycmF5IHRvIHByZXZlbnQgZXJyb3Igb24gYXJyYXlfbWVyZ2UKCQlpZighaXNfYXJyYXkoJHRoaXMtPmZyYW1lcykpIHsKICAgICAgICAgICAgICR0aGlzLT5mcmFtZXMgPSBhcnJheSgpOwogICAgICAgIH0KCgkJJGZyYW1lID0gJHRoaXMtPmNvbXBpbGVQYXJhbXMoJGVudiwgYXJyYXlfbWVyZ2UoJHRoaXMtPmZyYW1lcywkZW52LT5mcmFtZXMpLCAkYXJncyApOwoKCQkkY29tcGlsZV9lbnYgPSBuZXcgTGVzc19FbnZpcm9ubWVudCgpOwoJCSRjb21waWxlX2Vudi0+ZnJhbWVzID0gYXJyYXlfbWVyZ2UoCgkJCQlhcnJheSgkZnJhbWUpCQkvLyB0aGUgcGFyYW1ldGVyIHZhcmlhYmxlcwoJCQkJLCAkdGhpcy0+ZnJhbWVzCQkvLyB0aGUgcGFyZW50IG5hbWVzcGFjZS9taXhpbiBmcmFtZXMKCQkJCSwgJGVudi0+ZnJhbWVzCQkvLyB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBmcmFtZXMKCQkJKTsKCgkJJGNvbXBpbGVfZW52LT5mdW5jdGlvbnMgPSAkZW52LT5mdW5jdGlvbnM7CgoJCXJldHVybiAoYm9vbCkkdGhpcy0+Y29uZGl0aW9uLT5jb21waWxlKCRjb21waWxlX2Vudik7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG1hdGNoQXJncygkYXJncywgJGVudiA9IE5VTEwpewoJCSRhcmdzTGVuZ3RoID0gY291bnQoJGFyZ3MpOwoKCQlpZiggISR0aGlzLT52YXJpYWRpYyApewoJCQlpZiggJGFyZ3NMZW5ndGggPCAkdGhpcy0+cmVxdWlyZWQgKXsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQlpZiggJGFyZ3NMZW5ndGggPiBjb3VudCgkdGhpcy0+cGFyYW1zKSApewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfWVsc2V7CgkJCWlmKCAkYXJnc0xlbmd0aCA8ICgkdGhpcy0+cmVxdWlyZWQgLSAxKSl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgoJCSRsZW4gPSBtaW4oJGFyZ3NMZW5ndGgsICR0aGlzLT5hcml0eSk7CgoJCWZvciggJGkgPSAwOyAkaSA8ICRsZW47ICRpKysgKXsKCQkJaWYoICFpc3NldCgkdGhpcy0+cGFyYW1zWyRpXVsnbmFtZSddKSAmJiAhaXNzZXQoJHRoaXMtPnBhcmFtc1skaV1bJ3ZhcmlhZGljJ10pICl7CgkJCQlpZiggJGFyZ3NbJGldWyd2YWx1ZSddLT5jb21waWxlKCRlbnYpLT50b0NTUygpICE9ICR0aGlzLT5wYXJhbXNbJGldWyd2YWx1ZSddLT5jb21waWxlKCRlbnYpLT50b0NTUygpICl7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdHJ1ZTsKCX0KCn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/NameValue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIHNpbXBsZSBjc3MgbmFtZS12YWx1ZSBwYWlyCiAqIGV4OiB3aWR0aDoxMDBweDsKICoKICogSW4gYm9vdHN0cmFwLCB0aGVyZSBhcmUgYWJvdXQgNjAwLTEsMDAwIHNpbXBsZSBuYW1lLXZhbHVlIHBhaXJzIChkZXBlbmRpbmcgb24gaG93IGZvcmdpdmluZyB0aGUgbWF0Y2ggaXMpIC12cy0gNiwwMjAgZHluYW1pYyBydWxlcyAoTGVzc19UcmVlX1J1bGUpCiAqIFVzaW5nIHRoZSBuYW1lLXZhbHVlIG9iamVjdCBjYW4gc3BlZWQgdXAgYm9vdHN0cmFwIGNvbXBpbGF0aW9uIHNsaWdodGx5LCBidXQgaXQgYnJlYWtzIGNvbG9yIGtleXdvcmQgaW50ZXJwcmV0YXRpb246IGNvbG9yOnJlZCAtPiBjb2xvcjojRkYwMDAwOwogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9OYW1lVmFsdWUgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICRuYW1lOwoJcHVibGljICR2YWx1ZTsKCXB1YmxpYyAkaW5kZXg7CglwdWJsaWMgJGN1cnJlbnRGaWxlSW5mbzsKCXB1YmxpYyAkdHlwZSA9ICdOYW1lVmFsdWUnOwoJcHVibGljICRpbXBvcnRhbnQgPSAnJzsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsICR2YWx1ZSA9IG51bGwsICRpbmRleCA9IG51bGwsICRjdXJyZW50RmlsZUluZm8gPSBudWxsICl7CgkJJHRoaXMtPm5hbWUgPSAkbmFtZTsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsdWU7CgkJJHRoaXMtPmluZGV4ID0gJGluZGV4OwoJCSR0aGlzLT5jdXJyZW50RmlsZUluZm8gPSAkY3VycmVudEZpbGVJbmZvOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCgkJJG91dHB1dC0+YWRkKAoJCQkkdGhpcy0+bmFtZQoJCQkuIExlc3NfRW52aXJvbm1lbnQ6OiRfb3V0cHV0TWFwWyc6ICddCgkJCS4gJHRoaXMtPnZhbHVlCgkJCS4gJHRoaXMtPmltcG9ydGFudAoJCQkuICgoKExlc3NfRW52aXJvbm1lbnQ6OiRsYXN0UnVsZSAmJiBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NvbXByZXNzJ10pKSA/ICIiIDogIjsiKQoJCQksICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmRleCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUgKCRlbnYpewoJCXJldHVybiAkdGhpczsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbWFrZUltcG9ydGFudCgpewoJCSRuZXcgPSBuZXcgTGVzc19UcmVlX05hbWVWYWx1ZSgkdGhpcy0+bmFtZSwgJHRoaXMtPnZhbHVlLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8pOwoJCSRuZXctPmltcG9ydGFudCA9ICcgIWltcG9ydGFudCc7CgkJcmV0dXJuICRuZXc7Cgl9CgoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Negative.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBOZWdhdGl2ZQogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9OZWdhdGl2ZSBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJHZhbHVlOwoJcHVibGljICR0eXBlID0gJ05lZ2F0aXZlJzsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5vZGUpewoJCSR0aGlzLT52YWx1ZSA9ICRub2RlOwoJfQoKCS8vZnVuY3Rpb24gYWNjZXB0KCR2aXNpdG9yKSB7CgkvLwkkdGhpcy0+dmFsdWUgPSAkdmlzaXRvci0+dmlzaXQoJHRoaXMtPnZhbHVlKTsKCS8vfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgkJJG91dHB1dC0+YWRkKCAnLScgKTsKCQkkdGhpcy0+dmFsdWUtPmdlbkNTUyggJG91dHB1dCApOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpIHsKCQlpZiggTGVzc19FbnZpcm9ubWVudDo6aXNNYXRoT24oKSApewoJCQkkcmV0ID0gbmV3IExlc3NfVHJlZV9PcGVyYXRpb24oJyonLCBhcnJheSggbmV3IExlc3NfVHJlZV9EaW1lbnNpb24oLTEpLCAkdGhpcy0+dmFsdWUgKSApOwoJCQlyZXR1cm4gJHJldC0+Y29tcGlsZSgkZW52KTsKCQl9CgkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfTmVnYXRpdmUoICR0aGlzLT52YWx1ZS0+Y29tcGlsZSgkZW52KSApOwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Operation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBPcGVyYXRpb24KICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfT3BlcmF0aW9uIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkb3A7CglwdWJsaWMgJG9wZXJhbmRzOwoJcHVibGljICRpc1NwYWNlZDsKCXB1YmxpYyAkdHlwZSA9ICdPcGVyYXRpb24nOwoKCS8qKgoJICogQHBhcmFtIHN0cmluZyAkb3AKCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcCwgJG9wZXJhbmRzLCAkaXNTcGFjZWQgPSBmYWxzZSl7CgkJJHRoaXMtPm9wID0gdHJpbSgkb3ApOwoJCSR0aGlzLT5vcGVyYW5kcyA9ICRvcGVyYW5kczsKCQkkdGhpcy0+aXNTcGFjZWQgPSAkaXNTcGFjZWQ7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCgkdmlzaXRvcikgewoJCSR0aGlzLT5vcGVyYW5kcyA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCR0aGlzLT5vcGVyYW5kcyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudil7CgkJJGEgPSAkdGhpcy0+b3BlcmFuZHNbMF0tPmNvbXBpbGUoJGVudik7CgkJJGIgPSAkdGhpcy0+b3BlcmFuZHNbMV0tPmNvbXBpbGUoJGVudik7CgoKCQlpZiggTGVzc19FbnZpcm9ubWVudDo6aXNNYXRoT24oKSApewoKCQkJaWYoICRhIGluc3RhbmNlb2YgTGVzc19UcmVlX0RpbWVuc2lvbiAmJiAkYiBpbnN0YW5jZW9mIExlc3NfVHJlZV9Db2xvciApewoJCQkJJGEgPSAkYS0+dG9Db2xvcigpOwoKCQkJfWVsc2VpZiggJGIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGltZW5zaW9uICYmICRhIGluc3RhbmNlb2YgTGVzc19UcmVlX0NvbG9yICl7CgkJCQkkYiA9ICRiLT50b0NvbG9yKCk7CgoJCQl9CgoJCQlpZiggIW1ldGhvZF9leGlzdHMoJGEsJ29wZXJhdGUnKSApewoJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJPcGVyYXRpb24gb24gYW4gaW52YWxpZCB0eXBlIik7CgkJCX0KCgkJCXJldHVybiAkYS0+b3BlcmF0ZSggJHRoaXMtPm9wLCAkYik7CgkJfQoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9PcGVyYXRpb24oJHRoaXMtPm9wLCBhcnJheSgkYSwgJGIpLCAkdGhpcy0+aXNTcGFjZWQgKTsKCX0KCgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCQkkdGhpcy0+b3BlcmFuZHNbMF0tPmdlbkNTUyggJG91dHB1dCApOwoJCWlmKCAkdGhpcy0+aXNTcGFjZWQgKXsKCQkJJG91dHB1dC0+YWRkKCAiICIgKTsKCQl9CgkJJG91dHB1dC0+YWRkKCAkdGhpcy0+b3AgKTsKCQlpZiggJHRoaXMtPmlzU3BhY2VkICl7CgkJCSRvdXRwdXQtPmFkZCggJyAnICk7CgkJfQoJCSR0aGlzLT5vcGVyYW5kc1sxXS0+Z2VuQ1NTKCAkb3V0cHV0ICk7Cgl9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Paren.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBQYXJlbgogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9QYXJlbiBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJHZhbHVlOwoJcHVibGljICR0eXBlID0gJ1BhcmVuJzsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlKSB7CgkJJHRoaXMtPnZhbHVlID0gJHZhbHVlOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhY2NlcHQoJHZpc2l0b3IpewoJCSR0aGlzLT52YWx1ZSA9ICR2aXNpdG9yLT52aXNpdE9iaigkdGhpcy0+dmFsdWUpOwoJfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgkJJG91dHB1dC0+YWRkKCAnKCcgKTsKCQkkdGhpcy0+dmFsdWUtPmdlbkNTUyggJG91dHB1dCApOwoJCSRvdXRwdXQtPmFkZCggJyknICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudikgewoJCXJldHVybiBuZXcgTGVzc19UcmVlX1BhcmVuKCR0aGlzLT52YWx1ZS0+Y29tcGlsZSgkZW52KSk7Cgl9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Quoted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBRdW90ZWQKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfUXVvdGVkIGV4dGVuZHMgTGVzc19UcmVlewoJcHVibGljICRlc2NhcGVkOwoJcHVibGljICR2YWx1ZTsKCXB1YmxpYyAkcXVvdGU7CglwdWJsaWMgJGluZGV4OwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CglwdWJsaWMgJHR5cGUgPSAnUXVvdGVkJzsKCgkvKioKCSAqIEBwYXJhbSBzdHJpbmcgJHN0cgoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHN0ciwgJGNvbnRlbnQgPSAnJywgJGVzY2FwZWQgPSBmYWxzZSwgJGluZGV4ID0gZmFsc2UsICRjdXJyZW50RmlsZUluZm8gPSBudWxsICl7CgkJJHRoaXMtPmVzY2FwZWQgPSAkZXNjYXBlZDsKCQkkdGhpcy0+dmFsdWUgPSAkY29udGVudDsKCQlpZiggJHN0ciApewoJCQkkdGhpcy0+cXVvdGUgPSAkc3RyWzBdOwoJCX0KCQkkdGhpcy0+aW5kZXggPSAkaW5kZXg7CgkJJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyA9ICRjdXJyZW50RmlsZUluZm87Cgl9CgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCQlpZiggISR0aGlzLT5lc2NhcGVkICl7CgkJCSRvdXRwdXQtPmFkZCggJHRoaXMtPnF1b3RlLCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvLCAkdGhpcy0+aW5kZXggKTsKICAgICAgICB9CiAgICAgICAgJG91dHB1dC0+YWRkKCAkdGhpcy0+dmFsdWUgKTsKICAgICAgICBpZiggISR0aGlzLT5lc2NhcGVkICl7CgkJCSRvdXRwdXQtPmFkZCggJHRoaXMtPnF1b3RlICk7CiAgICAgICAgfQogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpewoKCQkkdmFsdWUgPSAkdGhpcy0+dmFsdWU7CgkJaWYoIHByZWdfbWF0Y2hfYWxsKCcvYChbXmBdKylgLycsICR0aGlzLT52YWx1ZSwgJG1hdGNoZXMpICl7CgkJCWZvcmVhY2goJG1hdGNoZXMgYXMgJGkgPT4gJG1hdGNoKXsKCQkJCSRqcyA9IG5ldyBMZXNzX1RyZWVfSmF2YVNjcmlwdCgkbWF0Y2hlc1sxXSwgJHRoaXMtPmluZGV4LCB0cnVlKTsKCQkJCSRqcyA9ICRqcy0+Y29tcGlsZSgpLT52YWx1ZTsKCQkJCSR2YWx1ZSA9IHN0cl9yZXBsYWNlKCRtYXRjaGVzWzBdWyRpXSwgJGpzLCAkdmFsdWUpOwoJCQl9CgkJfQoKCQlpZiggcHJlZ19tYXRjaF9hbGwoJy9AXHsoW1x3LV0rKVx9LycsJHZhbHVlLCRtYXRjaGVzKSApewoJCQlmb3JlYWNoKCRtYXRjaGVzWzFdIGFzICRpID0+ICRtYXRjaCl7CgkJCQkkdiA9IG5ldyBMZXNzX1RyZWVfVmFyaWFibGUoJ0AnIC4gJG1hdGNoLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8gKTsKCQkJCSR2ID0gJHYtPmNvbXBpbGUoJGVudik7CgkJCQkkdiA9ICgkdiBpbnN0YW5jZW9mIExlc3NfVHJlZV9RdW90ZWQpID8gJHYtPnZhbHVlIDogJHYtPnRvQ1NTKCk7CgkJCQkkdmFsdWUgPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1swXVskaV0sICR2LCAkdmFsdWUpOwoJCQl9CgkJfQoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9RdW90ZWQoJHRoaXMtPnF1b3RlIC4gJHZhbHVlIC4gJHRoaXMtPnF1b3RlLCAkdmFsdWUsICR0aGlzLT5lc2NhcGVkLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8pOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21wYXJlKCR4KSB7CgoJCWlmKCAhTGVzc19QYXJzZXI6OmlzX21ldGhvZCgkeCwgJ3RvQ1NTJykgKXsKCQkJcmV0dXJuIC0xOwoJCX0KCgkJJGxlZnQgPSAkdGhpcy0+dG9DU1MoKTsKCQkkcmlnaHQgPSAkeC0+dG9DU1MoKTsKCgkJaWYgKCRsZWZ0ID09PSAkcmlnaHQpIHsKCQkJcmV0dXJuIDA7CgkJfQoKCQlyZXR1cm4gJGxlZnQgPCAkcmlnaHQgPyAtMSA6IDE7Cgl9Cn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Rule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBSdWxlCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX1J1bGUgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHVibGljICRuYW1lOwoJcHVibGljICR2YWx1ZTsKCXB1YmxpYyAkaW1wb3J0YW50OwoJcHVibGljICRtZXJnZTsKCXB1YmxpYyAkaW5kZXg7CglwdWJsaWMgJGlubGluZTsKCXB1YmxpYyAkdmFyaWFibGU7CglwdWJsaWMgJGN1cnJlbnRGaWxlSW5mbzsKCXB1YmxpYyAkdHlwZSA9ICdSdWxlJzsKCgkvKioKCSAqIEBwYXJhbSBzdHJpbmcgJGltcG9ydGFudAoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsICR2YWx1ZSA9IG51bGwsICRpbXBvcnRhbnQgPSBudWxsLCAkbWVyZ2UgPSBudWxsLCAkaW5kZXggPSBudWxsLCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCwgICRpbmxpbmUgPSBmYWxzZSl7CgkJJHRoaXMtPm5hbWUgPSAkbmFtZTsKCQkkdGhpcy0+dmFsdWUgPSAoJHZhbHVlIGluc3RhbmNlb2YgTGVzc19UcmVlX1ZhbHVlIHx8ICR2YWx1ZSBpbnN0YW5jZW9mIExlc3NfVHJlZV9SdWxlc2V0KSA/ICR2YWx1ZSA6IG5ldyBMZXNzX1RyZWVfVmFsdWUoYXJyYXkoJHZhbHVlKSk7CgkJJHRoaXMtPmltcG9ydGFudCA9ICRpbXBvcnRhbnQgPyAnICcgLiB0cmltKCRpbXBvcnRhbnQpIDogJyc7CgkJJHRoaXMtPm1lcmdlID0gJG1lcmdlOwoJCSR0aGlzLT5pbmRleCA9ICRpbmRleDsKCQkkdGhpcy0+Y3VycmVudEZpbGVJbmZvID0gJGN1cnJlbnRGaWxlSW5mbzsKCQkkdGhpcy0+aW5saW5lID0gJGlubGluZTsKCQkkdGhpcy0+dmFyaWFibGUgPSAoIGlzX3N0cmluZygkbmFtZSkgJiYgJG5hbWVbMF0gPT09ICdAJyk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCgkdmlzaXRvcikgewoJCSR0aGlzLT52YWx1ZSA9ICR2aXNpdG9yLT52aXNpdE9iaiggJHRoaXMtPnZhbHVlICk7Cgl9CgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCgkJJG91dHB1dC0+YWRkKCAkdGhpcy0+bmFtZSAuIExlc3NfRW52aXJvbm1lbnQ6OiRfb3V0cHV0TWFwWyc6ICddLCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvLCAkdGhpcy0+aW5kZXgpOwoJCXRyeXsKCQkJJHRoaXMtPnZhbHVlLT5nZW5DU1MoICRvdXRwdXQpOwoKCQl9Y2F0Y2goIExlc3NfRXhjZXB0aW9uX1BhcnNlciAkZSApewoJCQkkZS0+aW5kZXggPSAkdGhpcy0+aW5kZXg7CgkJCSRlLT5jdXJyZW50RmlsZSA9ICR0aGlzLT5jdXJyZW50RmlsZUluZm87CgkJCXRocm93ICRlOwoJCX0KCQkkb3V0cHV0LT5hZGQoICR0aGlzLT5pbXBvcnRhbnQgLiAoKCR0aGlzLT5pbmxpbmUgfHwgKExlc3NfRW52aXJvbm1lbnQ6OiRsYXN0UnVsZSAmJiBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2NvbXByZXNzJ10pKSA/ICIiIDogIjsiKSwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbywgJHRoaXMtPmluZGV4KTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSAoJGVudil7CgoJCSRuYW1lID0gJHRoaXMtPm5hbWU7CgkJaWYoIGlzX2FycmF5KCRuYW1lKSApewoJCQkvLyBleHBhbmQgJ3ByaW1pdGl2ZScgbmFtZSBkaXJlY3RseSB0byBnZXQKCQkJLy8gdGhpbmdzIGZhc3RlciAofjEwJSBmb3IgYmVuY2htYXJrLmxlc3MpOgoJCQlpZiggY291bnQoJG5hbWUpID09PSAxICYmICRuYW1lWzBdIGluc3RhbmNlb2YgTGVzc19UcmVlX0tleXdvcmQgKXsKCQkJCSRuYW1lID0gJG5hbWVbMF0tPnZhbHVlOwoJCQl9ZWxzZXsKCQkJCSRuYW1lID0gJHRoaXMtPkNvbXBpbGVOYW1lKCRlbnYsJG5hbWUpOwoJCQl9CgkJfQoKCQkkc3RyaWN0TWF0aEJ5cGFzcyA9IExlc3NfUGFyc2VyOjokb3B0aW9uc1snc3RyaWN0TWF0aCddOwoJCWlmKCAkbmFtZSA9PT0gImZvbnQiICYmICFMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3N0cmljdE1hdGgnXSApewoJCQlMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3N0cmljdE1hdGgnXSA9IHRydWU7CgkJfQoKCQl0cnkgewoJCQkkZXZhbGRWYWx1ZSA9ICR0aGlzLT52YWx1ZS0+Y29tcGlsZSgkZW52KTsKCgkJCWlmKCAhJHRoaXMtPnZhcmlhYmxlICYmICRldmFsZFZhbHVlLT50eXBlID09PSAiRGV0YWNoZWRSdWxlc2V0IikgewoJCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJSdWxlc2V0cyBjYW5ub3QgYmUgZXZhbHVhdGVkIG9uIGEgcHJvcGVydHkuIiwgbnVsbCwgJHRoaXMtPmluZGV4LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvKTsKCQkJfQoKCQkJaWYoIExlc3NfRW52aXJvbm1lbnQ6OiRtaXhpbl9zdGFjayApewoJCQkJJHJldHVybiA9IG5ldyBMZXNzX1RyZWVfUnVsZSgkbmFtZSwgJGV2YWxkVmFsdWUsICR0aGlzLT5pbXBvcnRhbnQsICR0aGlzLT5tZXJnZSwgJHRoaXMtPmluZGV4LCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvLCAkdGhpcy0+aW5saW5lKTsKCQkJfWVsc2V7CgkJCQkkdGhpcy0+bmFtZSA9ICRuYW1lOwoJCQkJJHRoaXMtPnZhbHVlID0gJGV2YWxkVmFsdWU7CgkJCQkkcmV0dXJuID0gJHRoaXM7CgkJCX0KCgkJfWNhdGNoKCBMZXNzX0V4Y2VwdGlvbl9QYXJzZXIgJGUgKXsKCQkJaWYoICFpc19udW1lcmljKCRlLT5pbmRleCkgKXsKCQkJCSRlLT5pbmRleCA9ICR0aGlzLT5pbmRleDsKCQkJCSRlLT5jdXJyZW50RmlsZSA9ICR0aGlzLT5jdXJyZW50RmlsZUluZm87CgkJCX0KCQkJdGhyb3cgJGU7CgkJfQoKCQlMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3N0cmljdE1hdGgnXSA9ICRzdHJpY3RNYXRoQnlwYXNzOwoKCQlyZXR1cm4gJHJldHVybjsKCX0KCgogICAgcHVibGljIGZ1bmN0aW9uIENvbXBpbGVOYW1lKCAkZW52LCAkbmFtZSApewoJCSRvdXRwdXQgPSBuZXcgTGVzc19PdXRwdXQoKTsKCQlmb3JlYWNoKCRuYW1lIGFzICRuKXsKCQkJJG4tPmNvbXBpbGUoJGVudiktPmdlbkNTUygkb3V0cHV0KTsKCQl9CgkJcmV0dXJuICRvdXRwdXQtPnRvU3RyaW5nKCk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIG1ha2VJbXBvcnRhbnQoKXsKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9SdWxlKCR0aGlzLT5uYW1lLCAkdGhpcy0+dmFsdWUsICchaW1wb3J0YW50JywgJHRoaXMtPm1lcmdlLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pbmxpbmUpOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Ruleset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBSdWxlc2V0CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX1J1bGVzZXQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJcHJvdGVjdGVkICRsb29rdXBzOwoJcHVibGljICRfdmFyaWFibGVzOwoJcHVibGljICRfcnVsZXNldHM7CgoJcHVibGljICRzdHJpY3RJbXBvcnRzOwoKCXB1YmxpYyAkc2VsZWN0b3JzOwoJcHVibGljICRydWxlczsKCXB1YmxpYyAkcm9vdDsKCXB1YmxpYyAkYWxsb3dJbXBvcnRzOwoJcHVibGljICRwYXRoczsKCXB1YmxpYyAkZmlyc3RSb290OwoJcHVibGljICR0eXBlID0gJ1J1bGVzZXQnOwoJcHVibGljICRtdWx0aU1lZGlhOwoJcHVibGljICRhbGxFeHRlbmRzOwoKCXB1YmxpYyAkcnVsZXNldF9pZDsKCXB1YmxpYyAkb3JpZ2luYWxSdWxlc2V0OwoKCXB1YmxpYyAkZmlyc3Rfb2VsZW1lbnRzOwoKCXB1YmxpYyBmdW5jdGlvbiBTZXRSdWxlc2V0SW5kZXgoKXsKCQkkdGhpcy0+cnVsZXNldF9pZCA9IExlc3NfUGFyc2VyOjokbmV4dF9pZCsrOwoJCSR0aGlzLT5vcmlnaW5hbFJ1bGVzZXQgPSAkdGhpcy0+cnVsZXNldF9pZDsKCgkJaWYoICR0aGlzLT5zZWxlY3RvcnMgKXsKCQkJZm9yZWFjaCgkdGhpcy0+c2VsZWN0b3JzIGFzICRzZWwpewoJCQkJaWYoICRzZWwtPl9vZWxlbWVudHMgKXsKCQkJCQkkdGhpcy0+Zmlyc3Rfb2VsZW1lbnRzWyRzZWwtPl9vZWxlbWVudHNbMF1dID0gdHJ1ZTsKCQkJCX0KCQkJfQoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHNlbGVjdG9ycywgJHJ1bGVzLCAkc3RyaWN0SW1wb3J0cyA9IG51bGwpewoJCSR0aGlzLT5zZWxlY3RvcnMgPSAkc2VsZWN0b3JzOwoJCSR0aGlzLT5ydWxlcyA9ICRydWxlczsKCQkkdGhpcy0+bG9va3VwcyA9IGFycmF5KCk7CgkJJHRoaXMtPnN0cmljdEltcG9ydHMgPSAkc3RyaWN0SW1wb3J0czsKCQkkdGhpcy0+U2V0UnVsZXNldEluZGV4KCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGFjY2VwdCggJHZpc2l0b3IgKXsKCQlpZiggJHRoaXMtPnBhdGhzICl7CgkJCSRwYXRoc19sZW4gPSBjb3VudCgkdGhpcy0+cGF0aHMpOwoJCQlmb3IoJGkgPSAwLCRwYXRoc19sZW47ICRpIDwgJHBhdGhzX2xlbjsgJGkrKyApewoJCQkJJHRoaXMtPnBhdGhzWyRpXSA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCR0aGlzLT5wYXRoc1skaV0pOwoJCQl9CgkJfWVsc2VpZiggJHRoaXMtPnNlbGVjdG9ycyApewoJCQkkdGhpcy0+c2VsZWN0b3JzID0gJHZpc2l0b3ItPnZpc2l0QXJyYXkoJHRoaXMtPnNlbGVjdG9ycyk7CgkJfQoKCQlpZiggJHRoaXMtPnJ1bGVzICl7CgkJCSR0aGlzLT5ydWxlcyA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCR0aGlzLT5ydWxlcyk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCRlbnYpewoKCQkkcnVsZXNldCA9ICR0aGlzLT5QcmVwYXJlUnVsZXNldCgkZW52KTsKCgoJCS8vIFN0b3JlIHRoZSBmcmFtZXMgYXJvdW5kIG1peGluIGRlZmluaXRpb25zLAoJCS8vIHNvIHRoZXkgY2FuIGJlIGV2YWx1YXRlZCBsaWtlIGNsb3N1cmVzIHdoZW4gdGhlIHRpbWUgY29tZXMuCgkJJHJzUnVsZUNudCA9IGNvdW50KCRydWxlc2V0LT5ydWxlcyk7CgkJZm9yKCAkaSA9IDA7ICRpIDwgJHJzUnVsZUNudDsgJGkrKyApewoJCQlpZiggJHJ1bGVzZXQtPnJ1bGVzWyRpXSBpbnN0YW5jZW9mIExlc3NfVHJlZV9NaXhpbl9EZWZpbml0aW9uIHx8ICRydWxlc2V0LT5ydWxlc1skaV0gaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGV0YWNoZWRSdWxlc2V0ICl7CgkJCQkkcnVsZXNldC0+cnVsZXNbJGldID0gJHJ1bGVzZXQtPnJ1bGVzWyRpXS0+Y29tcGlsZSgkZW52KTsKCQkJfQoJCX0KCgkJJG1lZGlhQmxvY2tDb3VudCA9IDA7CgkJaWYoICRlbnYgaW5zdGFuY2VvZiBMZXNzX0Vudmlyb25tZW50ICl7CgkJCSRtZWRpYUJsb2NrQ291bnQgPSBjb3VudCgkZW52LT5tZWRpYUJsb2Nrcyk7CgkJfQoKCQkvLyBFdmFsdWF0ZSBtaXhpbiBjYWxscy4KCQkkdGhpcy0+RXZhbE1peGluQ2FsbHMoICRydWxlc2V0LCAkZW52LCAkcnNSdWxlQ250ICk7CgoKCQkvLyBFdmFsdWF0ZSBldmVyeXRoaW5nIGVsc2UKCQlmb3IoICRpPTA7ICRpPCRyc1J1bGVDbnQ7ICRpKysgKXsKCQkJaWYoISAoJHJ1bGVzZXQtPnJ1bGVzWyRpXSBpbnN0YW5jZW9mIExlc3NfVHJlZV9NaXhpbl9EZWZpbml0aW9uIHx8ICRydWxlc2V0LT5ydWxlc1skaV0gaW5zdGFuY2VvZiBMZXNzX1RyZWVfRGV0YWNoZWRSdWxlc2V0KSApewoJCQkJJHJ1bGVzZXQtPnJ1bGVzWyRpXSA9ICRydWxlc2V0LT5ydWxlc1skaV0tPmNvbXBpbGUoJGVudik7CgkJCX0KCQl9CgogICAgICAgIC8vIEV2YWx1YXRlIGV2ZXJ5dGhpbmcgZWxzZQoJCWZvciggJGk9MDsgJGk8JHJzUnVsZUNudDsgJGkrKyApewoJCQkkcnVsZSA9ICRydWxlc2V0LT5ydWxlc1skaV07CgogICAgICAgICAgICAvLyBmb3IgcnVsZXNldHMsIGNoZWNrIGlmIGl0IGlzIGEgY3NzIGd1YXJkIGFuZCBjYW4gYmUgcmVtb3ZlZAoJCQlpZiggJHJ1bGUgaW5zdGFuY2VvZiBMZXNzX1RyZWVfUnVsZXNldCAmJiAkcnVsZS0+c2VsZWN0b3JzICYmIGNvdW50KCRydWxlLT5zZWxlY3RvcnMpID09PSAxICl7CgogICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgaXQgY2FuIGJlIGZvbGRlZCBpbiAoZS5nLiAmIHdoZXJlKQoJCQkJaWYoICRydWxlLT5zZWxlY3RvcnNbMF0tPmlzSnVzdFBhcmVudFNlbGVjdG9yKCkgKXsKCQkJCQlhcnJheV9zcGxpY2UoJHJ1bGVzZXQtPnJ1bGVzLCRpLS0sMSk7CgkJCQkJJHJzUnVsZUNudC0tOwoKCQkJCQlmb3IoJGogPSAwOyAkaiA8IGNvdW50KCRydWxlLT5ydWxlcyk7ICRqKysgKXsKCQkJCQkJJHN1YlJ1bGUgPSAkcnVsZS0+cnVsZXNbJGpdOwoJCQkJCQlpZiggISgkc3ViUnVsZSBpbnN0YW5jZW9mIExlc3NfVHJlZV9SdWxlKSB8fCAhJHN1YlJ1bGUtPnZhcmlhYmxlICl7CgkJCQkJCQlhcnJheV9zcGxpY2UoJHJ1bGVzZXQtPnJ1bGVzLCArKyRpLCAwLCBhcnJheSgkc3ViUnVsZSkpOwoJCQkJCQkJJHJzUnVsZUNudCsrOwoJCQkJCQl9CgkJCQkJfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCgoJCS8vIFBvcCB0aGUgc3RhY2sKCQkkZW52LT5zaGlmdEZyYW1lKCk7CgoJCWlmICgkbWVkaWFCbG9ja0NvdW50KSB7CgkJCSRsZW4gPSBjb3VudCgkZW52LT5tZWRpYUJsb2Nrcyk7CgkJCWZvcigkaSA9ICRtZWRpYUJsb2NrQ291bnQ7ICRpIDwgJGxlbjsgJGkrKyApewoJCQkJJGVudi0+bWVkaWFCbG9ja3NbJGldLT5idWJibGVTZWxlY3RvcnMoJHJ1bGVzZXQtPnNlbGVjdG9ycyk7CgkJCX0KCQl9CgoJCXJldHVybiAkcnVsZXNldDsKCX0KCgkvKioKCSAqIENvbXBpbGUgTGVzc19UcmVlX01peGluX0NhbGwgb2JqZWN0cwoJICoKCSAqIEBwYXJhbSBMZXNzX1RyZWVfUnVsZXNldCAkcnVsZXNldAoJICogQHBhcmFtIGludGVnZXIgJHJzUnVsZUNudAoJICovCglwcml2YXRlIGZ1bmN0aW9uIEV2YWxNaXhpbkNhbGxzKCAkcnVsZXNldCwgJGVudiwgJiRyc1J1bGVDbnQgKXsKCQlmb3IoJGk9MDsgJGkgPCAkcnNSdWxlQ250OyAkaSsrKXsKCQkJJHJ1bGUgPSAkcnVsZXNldC0+cnVsZXNbJGldOwoKCQkJaWYoICRydWxlIGluc3RhbmNlb2YgTGVzc19UcmVlX01peGluX0NhbGwgKXsKCQkJCSRydWxlID0gJHJ1bGUtPmNvbXBpbGUoJGVudik7CgoJCQkJJHRlbXAgPSBhcnJheSgpOwoJCQkJZm9yZWFjaCgkcnVsZSBhcyAkcil7CgkJCQkJaWYoICgkciBpbnN0YW5jZW9mIExlc3NfVHJlZV9SdWxlKSAmJiAkci0+dmFyaWFibGUgKXsKCQkJCQkJLy8gZG8gbm90IHBvbGx1dGUgdGhlIHNjb3BlIGlmIHRoZSB2YXJpYWJsZSBpcwoJCQkJCQkvLyBhbHJlYWR5IHRoZXJlLiBjb25zaWRlciByZXR1cm5pbmcgZmFsc2UgaGVyZQoJCQkJCQkvLyBidXQgd2UgbmVlZCBhIHdheSB0byAicmV0dXJuIiB2YXJpYWJsZSBmcm9tIG1peGlucwoJCQkJCQlpZiggISRydWxlc2V0LT52YXJpYWJsZSgkci0+bmFtZSkgKXsKCQkJCQkJCSR0ZW1wW10gPSAkcjsKCQkJCQkJfQoJCQkJCX1lbHNlewoJCQkJCQkkdGVtcFtdID0gJHI7CgkJCQkJfQoJCQkJfQoJCQkJJHRlbXBfY291bnQgPSBjb3VudCgkdGVtcCktMTsKCQkJCWFycmF5X3NwbGljZSgkcnVsZXNldC0+cnVsZXMsICRpLCAxLCAkdGVtcCk7CgkJCQkkcnNSdWxlQ250ICs9ICR0ZW1wX2NvdW50OwoJCQkJJGkgKz0gJHRlbXBfY291bnQ7CgkJCQkkcnVsZXNldC0+cmVzZXRDYWNoZSgpOwoKCQkJfWVsc2VpZiggJHJ1bGUgaW5zdGFuY2VvZiBMZXNzX1RyZWVfUnVsZXNldENhbGwgKXsKCgkJCQkkcnVsZSA9ICRydWxlLT5jb21waWxlKCRlbnYpOwoJCQkJJHJ1bGVzID0gYXJyYXkoKTsKCQkJCWZvcmVhY2goJHJ1bGUtPnJ1bGVzIGFzICRyKXsKCQkJCQlpZiggKCRyIGluc3RhbmNlb2YgTGVzc19UcmVlX1J1bGUpICYmICRyLT52YXJpYWJsZSApewoJCQkJCQljb250aW51ZTsKCQkJCQl9CgkJCQkJJHJ1bGVzW10gPSAkcjsKCQkJCX0KCgkJCQlhcnJheV9zcGxpY2UoJHJ1bGVzZXQtPnJ1bGVzLCAkaSwgMSwgJHJ1bGVzKTsKCQkJCSR0ZW1wX2NvdW50ID0gY291bnQoJHJ1bGVzKTsKCQkJCSRyc1J1bGVDbnQgKz0gJHRlbXBfY291bnQgLSAxOwoJCQkJJGkgKz0gJHRlbXBfY291bnQtMTsKCQkJCSRydWxlc2V0LT5yZXNldENhY2hlKCk7CgkJCX0KCgkJfQoJfQoKCgkvKioKCSAqIENvbXBpbGUgdGhlIHNlbGVjdG9ycyBhbmQgY3JlYXRlIGEgbmV3IHJ1bGVzZXQgb2JqZWN0IGZvciB0aGUgY29tcGlsZSgpIG1ldGhvZAoJICoKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBQcmVwYXJlUnVsZXNldCgkZW52KXsKCgkJJGhhc09uZVBhc3NpbmdTZWxlY3RvciA9IGZhbHNlOwoJCSRzZWxlY3RvcnMgPSBhcnJheSgpOwoJCWlmKCAkdGhpcy0+c2VsZWN0b3JzICl7CgkJCUxlc3NfVHJlZV9EZWZhdWx0RnVuYzo6ZXJyb3IoIml0IGlzIGN1cnJlbnRseSBvbmx5IGFsbG93ZWQgaW4gcGFyYW1ldHJpYyBtaXhpbiBndWFyZHMsIik7CgoJCQlmb3JlYWNoKCR0aGlzLT5zZWxlY3RvcnMgYXMgJHMpewoJCQkJJHNlbGVjdG9yID0gJHMtPmNvbXBpbGUoJGVudik7CgkJCQkkc2VsZWN0b3JzW10gPSAkc2VsZWN0b3I7CgkJCQlpZiggJHNlbGVjdG9yLT5ldmFsZENvbmRpdGlvbiApewoJCQkJCSRoYXNPbmVQYXNzaW5nU2VsZWN0b3IgPSB0cnVlOwoJCQkJfQoJCQl9CgoJCQlMZXNzX1RyZWVfRGVmYXVsdEZ1bmM6OnJlc2V0KCk7CgkJfSBlbHNlIHsKCQkJJGhhc09uZVBhc3NpbmdTZWxlY3RvciA9IHRydWU7CgkJfQoKCQlpZiggJHRoaXMtPnJ1bGVzICYmICRoYXNPbmVQYXNzaW5nU2VsZWN0b3IgKXsKCQkJJHJ1bGVzID0gJHRoaXMtPnJ1bGVzOwoJCX1lbHNlewoJCQkkcnVsZXMgPSBhcnJheSgpOwoJCX0KCgkJJHJ1bGVzZXQgPSBuZXcgTGVzc19UcmVlX1J1bGVzZXQoJHNlbGVjdG9ycywgJHJ1bGVzLCAkdGhpcy0+c3RyaWN0SW1wb3J0cyk7CgoJCSRydWxlc2V0LT5vcmlnaW5hbFJ1bGVzZXQgPSAkdGhpcy0+cnVsZXNldF9pZDsKCgkJJHJ1bGVzZXQtPnJvb3QgPSAkdGhpcy0+cm9vdDsKCQkkcnVsZXNldC0+Zmlyc3RSb290ID0gJHRoaXMtPmZpcnN0Um9vdDsKCQkkcnVsZXNldC0+YWxsb3dJbXBvcnRzID0gJHRoaXMtPmFsbG93SW1wb3J0czsKCgoJCS8vIHB1c2ggdGhlIGN1cnJlbnQgcnVsZXNldCB0byB0aGUgZnJhbWVzIHN0YWNrCgkJJGVudi0+dW5zaGlmdEZyYW1lKCRydWxlc2V0KTsKCgoJCS8vIEV2YWx1YXRlIGltcG9ydHMKCQlpZiggJHJ1bGVzZXQtPnJvb3QgfHwgJHJ1bGVzZXQtPmFsbG93SW1wb3J0cyB8fCAhJHJ1bGVzZXQtPnN0cmljdEltcG9ydHMgKXsKCQkJJHJ1bGVzZXQtPmV2YWxJbXBvcnRzKCRlbnYpOwoJCX0KCgkJcmV0dXJuICRydWxlc2V0OwoJfQoKCWZ1bmN0aW9uIGV2YWxJbXBvcnRzKCRlbnYpIHsKCgkJJHJ1bGVzX2xlbiA9IGNvdW50KCR0aGlzLT5ydWxlcyk7CgkJZm9yKCRpPTA7ICRpIDwgJHJ1bGVzX2xlbjsgJGkrKyl7CgkJCSRydWxlID0gJHRoaXMtPnJ1bGVzWyRpXTsKCgkJCWlmKCAkcnVsZSBpbnN0YW5jZW9mIExlc3NfVHJlZV9JbXBvcnQgKXsKCQkJCSRydWxlcyA9ICRydWxlLT5jb21waWxlKCRlbnYpOwoJCQkJaWYoIGlzX2FycmF5KCRydWxlcykgKXsKCQkJCQlhcnJheV9zcGxpY2UoJHRoaXMtPnJ1bGVzLCAkaSwgMSwgJHJ1bGVzKTsKCQkJCQkkdGVtcF9jb3VudCA9IGNvdW50KCRydWxlcyktMTsKCQkJCQkkaSArPSAkdGVtcF9jb3VudDsKCQkJCQkkcnVsZXNfbGVuICs9ICR0ZW1wX2NvdW50OwoJCQkJfWVsc2V7CgkJCQkJYXJyYXlfc3BsaWNlKCR0aGlzLT5ydWxlcywgJGksIDEsIGFycmF5KCRydWxlcykpOwoJCQkJfQoKCQkJCSR0aGlzLT5yZXNldENhY2hlKCk7CgkJCX0KCQl9Cgl9CgoJZnVuY3Rpb24gbWFrZUltcG9ydGFudCgpewoKCQkkaW1wb3J0YW50X3J1bGVzID0gYXJyYXkoKTsKCQlmb3JlYWNoKCR0aGlzLT5ydWxlcyBhcyAkcnVsZSl7CgkJCWlmKCAkcnVsZSBpbnN0YW5jZW9mIExlc3NfVHJlZV9SdWxlIHx8ICRydWxlIGluc3RhbmNlb2YgTGVzc19UcmVlX1J1bGVzZXQgfHwgJHJ1bGUgaW5zdGFuY2VvZiBMZXNzX1RyZWVfTmFtZVZhbHVlICl7CgkJCQkkaW1wb3J0YW50X3J1bGVzW10gPSAkcnVsZS0+bWFrZUltcG9ydGFudCgpOwoJCQl9ZWxzZXsKCQkJCSRpbXBvcnRhbnRfcnVsZXNbXSA9ICRydWxlOwoJCQl9CgkJfQoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9SdWxlc2V0KCR0aGlzLT5zZWxlY3RvcnMsICRpbXBvcnRhbnRfcnVsZXMsICR0aGlzLT5zdHJpY3RJbXBvcnRzICk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG1hdGNoQXJncygkYXJncyl7CgkJcmV0dXJuICEkYXJnczsKCX0KCgkvLyBsZXRzIHlvdSBjYWxsIGEgY3NzIHNlbGVjdG9yIHdpdGggYSBndWFyZAoJcHVibGljIGZ1bmN0aW9uIG1hdGNoQ29uZGl0aW9uKCAkYXJncywgJGVudiApewoJCSRsYXN0U2VsZWN0b3IgPSBlbmQoJHRoaXMtPnNlbGVjdG9ycyk7CgoJCWlmKCAhJGxhc3RTZWxlY3Rvci0+ZXZhbGRDb25kaXRpb24gKXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlpZiggJGxhc3RTZWxlY3Rvci0+Y29uZGl0aW9uICYmICEkbGFzdFNlbGVjdG9yLT5jb25kaXRpb24tPmNvbXBpbGUoICRlbnYtPmNvcHlFdmFsRW52KCAkZW52LT5mcmFtZXMgKSApICl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJZnVuY3Rpb24gcmVzZXRDYWNoZSgpewoJCSR0aGlzLT5fcnVsZXNldHMgPSBudWxsOwoJCSR0aGlzLT5fdmFyaWFibGVzID0gbnVsbDsKCQkkdGhpcy0+bG9va3VwcyA9IGFycmF5KCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHZhcmlhYmxlcygpewoJCSR0aGlzLT5fdmFyaWFibGVzID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkdGhpcy0+cnVsZXMgYXMgJHIpewoJCQlpZiAoJHIgaW5zdGFuY2VvZiBMZXNzX1RyZWVfUnVsZSAmJiAkci0+dmFyaWFibGUgPT09IHRydWUpIHsKCQkJCSR0aGlzLT5fdmFyaWFibGVzWyRyLT5uYW1lXSA9ICRyOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiB2YXJpYWJsZSgkbmFtZSl7CgoJCWlmKCBpc19udWxsKCR0aGlzLT5fdmFyaWFibGVzKSApewoJCQkkdGhpcy0+dmFyaWFibGVzKCk7CgkJfQoJCXJldHVybiBpc3NldCgkdGhpcy0+X3ZhcmlhYmxlc1skbmFtZV0pID8gJHRoaXMtPl92YXJpYWJsZXNbJG5hbWVdIDogbnVsbDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZmluZCggJHNlbGVjdG9yLCAkc2VsZiA9IG51bGwgKXsKCgkJJGtleSA9IGltcGxvZGUoJyAnLCRzZWxlY3Rvci0+X29lbGVtZW50cyk7CgoJCWlmKCAhaXNzZXQoJHRoaXMtPmxvb2t1cHNbJGtleV0pICl7CgoJCQlpZiggISRzZWxmICl7CgkJCQkkc2VsZiA9ICR0aGlzLT5ydWxlc2V0X2lkOwoJCQl9CgoJCQkkdGhpcy0+bG9va3Vwc1ska2V5XSA9IGFycmF5KCk7CgoJCQkkZmlyc3Rfb2VsZW1lbnQgPSAkc2VsZWN0b3ItPl9vZWxlbWVudHNbMF07CgoJCQlmb3JlYWNoKCR0aGlzLT5ydWxlcyBhcyAkcnVsZSl7CgkJCQlpZiggJHJ1bGUgaW5zdGFuY2VvZiBMZXNzX1RyZWVfUnVsZXNldCAmJiAkcnVsZS0+cnVsZXNldF9pZCAhPSAkc2VsZiApewoKCQkJCQlpZiggaXNzZXQoJHJ1bGUtPmZpcnN0X29lbGVtZW50c1skZmlyc3Rfb2VsZW1lbnRdKSApewoKCQkJCQkJZm9yZWFjaCggJHJ1bGUtPnNlbGVjdG9ycyBhcyAkcnVsZVNlbGVjdG9yICl7CgkJCQkJCQkkbWF0Y2ggPSAkc2VsZWN0b3ItPm1hdGNoKCRydWxlU2VsZWN0b3IpOwoJCQkJCQkJaWYoICRtYXRjaCApewoJCQkJCQkJCWlmKCAkc2VsZWN0b3ItPmVsZW1lbnRzX2xlbiA+ICRtYXRjaCApewoJCQkJCQkJCQkkdGhpcy0+bG9va3Vwc1ska2V5XSA9IGFycmF5X21lcmdlKCR0aGlzLT5sb29rdXBzWyRrZXldLCAkcnVsZS0+ZmluZCggbmV3IExlc3NfVHJlZV9TZWxlY3RvcihhcnJheV9zbGljZSgkc2VsZWN0b3ItPmVsZW1lbnRzLCAkbWF0Y2gpKSwgJHNlbGYpKTsKCQkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCQkkdGhpcy0+bG9va3Vwc1ska2V5XVtdID0gJHJ1bGU7CgkJCQkJCQkJfQoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gJHRoaXMtPmxvb2t1cHNbJGtleV07Cgl9CgoKCS8qKgoJICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwoJICovCglwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgoJCWlmKCAhJHRoaXMtPnJvb3QgKXsKCQkJTGVzc19FbnZpcm9ubWVudDo6JHRhYkxldmVsKys7CgkJfQoKCQkkdGFiUnVsZVN0ciA9ICR0YWJTZXRTdHIgPSAnJzsKCQlpZiggIUxlc3NfUGFyc2VyOjokb3B0aW9uc1snY29tcHJlc3MnXSApewoJCQlpZiggTGVzc19FbnZpcm9ubWVudDo6JHRhYkxldmVsICl7CgkJCQkkdGFiUnVsZVN0ciA9ICJcbiIuc3RyX3JlcGVhdCggTGVzc19QYXJzZXI6OiRvcHRpb25zWydpbmRlbnRhdGlvbiddICwgTGVzc19FbnZpcm9ubWVudDo6JHRhYkxldmVsICk7CgkJCQkkdGFiU2V0U3RyID0gIlxuIi5zdHJfcmVwZWF0KCBMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ2luZGVudGF0aW9uJ10gLCBMZXNzX0Vudmlyb25tZW50OjokdGFiTGV2ZWwtMSApOwoJCQl9ZWxzZXsKCQkJCSR0YWJTZXRTdHIgPSAkdGFiUnVsZVN0ciA9ICJcbiI7CgkJCX0KCQl9CgoKCQkkcnVsZU5vZGVzID0gYXJyYXkoKTsKCQkkcnVsZXNldE5vZGVzID0gYXJyYXkoKTsKCQlmb3JlYWNoKCR0aGlzLT5ydWxlcyBhcyAkcnVsZSl7CgoJCQkkY2xhc3MgPSBnZXRfY2xhc3MoJHJ1bGUpOwoJCQlpZiggKCRjbGFzcyA9PT0gJ0xlc3NfVHJlZV9NZWRpYScpIHx8ICgkY2xhc3MgPT09ICdMZXNzX1RyZWVfRGlyZWN0aXZlJykgfHwgKCR0aGlzLT5yb290ICYmICRjbGFzcyA9PT0gJ0xlc3NfVHJlZV9Db21tZW50JykgfHwgKCRjbGFzcyA9PT0gJ0xlc3NfVHJlZV9SdWxlc2V0JyAmJiAkcnVsZS0+cnVsZXMpICl7CgkJCQkkcnVsZXNldE5vZGVzW10gPSAkcnVsZTsKCQkJfWVsc2V7CgkJCQkkcnVsZU5vZGVzW10gPSAkcnVsZTsKCQkJfQoJCX0KCgkJLy8gSWYgdGhpcyBpcyB0aGUgcm9vdCBub2RlLCB3ZSBkb24ndCByZW5kZXIKCQkvLyBhIHNlbGVjdG9yLCBvciB7fS4KCQlpZiggISR0aGlzLT5yb290ICl7CgoJCQkvKgoJCQlkZWJ1Z0luZm8gPSB0cmVlLmRlYnVnSW5mbyhlbnYsIHRoaXMsIHRhYlNldFN0cik7CgoJCQlpZiAoZGVidWdJbmZvKSB7CgkJCQlvdXRwdXQuYWRkKGRlYnVnSW5mbyk7CgkJCQlvdXRwdXQuYWRkKHRhYlNldFN0cik7CgkJCX0KCQkJKi8KCgkJCSRwYXRoc19sZW4gPSBjb3VudCgkdGhpcy0+cGF0aHMpOwoJCQlmb3IoICRpID0gMDsgJGkgPCAkcGF0aHNfbGVuOyAkaSsrICl7CgkJCQkkcGF0aCA9ICR0aGlzLT5wYXRoc1skaV07CgkJCQkkZmlyc3RTZWxlY3RvciA9IHRydWU7CgoJCQkJZm9yZWFjaCgkcGF0aCBhcyAkcCl7CgkJCQkJJHAtPmdlbkNTUyggJG91dHB1dCwgJGZpcnN0U2VsZWN0b3IgKTsKCQkJCQkkZmlyc3RTZWxlY3RvciA9IGZhbHNlOwoJCQkJfQoKCQkJCWlmKCAkaSArIDEgPCAkcGF0aHNfbGVuICl7CgkJCQkJJG91dHB1dC0+YWRkKCAnLCcgLiAkdGFiU2V0U3RyICk7CgkJCQl9CgkJCX0KCgkJCSRvdXRwdXQtPmFkZCggKExlc3NfUGFyc2VyOjokb3B0aW9uc1snY29tcHJlc3MnXSA/ICd7JyA6ICIgeyIpIC4gJHRhYlJ1bGVTdHIgKTsKCQl9CgoJCS8vIENvbXBpbGUgcnVsZXMgYW5kIHJ1bGVzZXRzCgkJJHJ1bGVOb2Rlc19sZW4gPSBjb3VudCgkcnVsZU5vZGVzKTsKCQkkcnVsZXNldE5vZGVzX2xlbiA9IGNvdW50KCRydWxlc2V0Tm9kZXMpOwoJCWZvciggJGkgPSAwOyAkaSA8ICRydWxlTm9kZXNfbGVuOyAkaSsrICl7CgkJCSRydWxlID0gJHJ1bGVOb2Rlc1skaV07CgoJCQkvLyBAcGFnZXsgZGlyZWN0aXZlIGVuZHMgdXAgd2l0aCByb290IGVsZW1lbnRzIGluc2lkZSBpdCwgYSBtaXggb2YgcnVsZXMgYW5kIHJ1bGVzZXRzCgkJCS8vIEluIHRoaXMgaW5zdGFuY2Ugd2UgZG8gbm90IGtub3cgd2hldGhlciBpdCBpcyB0aGUgbGFzdCBwcm9wZXJ0eQoJCQlpZiggJGkgKyAxID09PSAkcnVsZU5vZGVzX2xlbiAmJiAoISR0aGlzLT5yb290IHx8ICRydWxlc2V0Tm9kZXNfbGVuID09PSAwIHx8ICR0aGlzLT5maXJzdFJvb3QgKSApewoJCQkJTGVzc19FbnZpcm9ubWVudDo6JGxhc3RSdWxlID0gdHJ1ZTsKCQkJfQoKCQkJJHJ1bGUtPmdlbkNTUyggJG91dHB1dCApOwoKCQkJaWYoICFMZXNzX0Vudmlyb25tZW50OjokbGFzdFJ1bGUgKXsKCQkJCSRvdXRwdXQtPmFkZCggJHRhYlJ1bGVTdHIgKTsKCQkJfWVsc2V7CgkJCQlMZXNzX0Vudmlyb25tZW50OjokbGFzdFJ1bGUgPSBmYWxzZTsKCQkJfQoJCX0KCgkJaWYoICEkdGhpcy0+cm9vdCApewoJCQkkb3V0cHV0LT5hZGQoICR0YWJTZXRTdHIgLiAnfScgKTsKCQkJTGVzc19FbnZpcm9ubWVudDo6JHRhYkxldmVsLS07CgkJfQoKCQkkZmlyc3RSdWxlc2V0ID0gdHJ1ZTsKCQkkc3BhY2UgPSAoJHRoaXMtPnJvb3QgPyAkdGFiUnVsZVN0ciA6ICR0YWJTZXRTdHIpOwoJCWZvciggJGkgPSAwOyAkaSA8ICRydWxlc2V0Tm9kZXNfbGVuOyAkaSsrICl7CgoJCQlpZiggJHJ1bGVOb2Rlc19sZW4gJiYgJGZpcnN0UnVsZXNldCApewoJCQkJJG91dHB1dC0+YWRkKCAkc3BhY2UgKTsKCQkJfWVsc2VpZiggISRmaXJzdFJ1bGVzZXQgKXsKCQkJCSRvdXRwdXQtPmFkZCggJHNwYWNlICk7CgkJCX0KCQkJJGZpcnN0UnVsZXNldCA9IGZhbHNlOwoJCQkkcnVsZXNldE5vZGVzWyRpXS0+Z2VuQ1NTKCAkb3V0cHV0KTsKCQl9CgoJCWlmKCAhTGVzc19QYXJzZXI6OiRvcHRpb25zWydjb21wcmVzcyddICYmICR0aGlzLT5maXJzdFJvb3QgKXsKCQkJJG91dHB1dC0+YWRkKCAiXG4iICk7CgkJfQoKCX0KCgoJZnVuY3Rpb24gbWFya1JlZmVyZW5jZWQoKXsKCQlpZiggISR0aGlzLT5zZWxlY3RvcnMgKXsKCQkJcmV0dXJuOwoJCX0KCQlmb3JlYWNoKCR0aGlzLT5zZWxlY3RvcnMgYXMgJHNlbGVjdG9yKXsKCQkJJHNlbGVjdG9yLT5tYXJrUmVmZXJlbmNlZCgpOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gam9pblNlbGVjdG9ycyggJGNvbnRleHQsICRzZWxlY3RvcnMgKXsKCQkkcGF0aHMgPSBhcnJheSgpOwoJCWlmKCBpc19hcnJheSgkc2VsZWN0b3JzKSApewoJCQlmb3JlYWNoKCRzZWxlY3RvcnMgYXMgJHNlbGVjdG9yKSB7CgkJCQkkdGhpcy0+am9pblNlbGVjdG9yKCAkcGF0aHMsICRjb250ZXh0LCAkc2VsZWN0b3IpOwoJCQl9CgkJfQoJCXJldHVybiAkcGF0aHM7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGpvaW5TZWxlY3RvciggJiRwYXRocywgJGNvbnRleHQsICRzZWxlY3Rvcil7CgoJCSRoYXNQYXJlbnRTZWxlY3RvciA9IGZhbHNlOwoKCQlmb3JlYWNoKCRzZWxlY3Rvci0+ZWxlbWVudHMgYXMgJGVsKSB7CgkJCWlmKCAkZWwtPnZhbHVlID09PSAnJicpIHsKCQkJCSRoYXNQYXJlbnRTZWxlY3RvciA9IHRydWU7CgkJCX0KCQl9CgoJCWlmKCAhJGhhc1BhcmVudFNlbGVjdG9yICl7CgkJCWlmKCAkY29udGV4dCApewoJCQkJZm9yZWFjaCgkY29udGV4dCBhcyAkY29udGV4dF9lbCl7CgkJCQkJJHBhdGhzW10gPSBhcnJheV9tZXJnZSgkY29udGV4dF9lbCwgYXJyYXkoJHNlbGVjdG9yKSApOwoJCQkJfQoJCQl9ZWxzZSB7CgkJCQkkcGF0aHNbXSA9IGFycmF5KCRzZWxlY3Rvcik7CgkJCX0KCQkJcmV0dXJuOwoJCX0KCgoJCS8vIFRoZSBwYXRocyBhcmUgW1tTZWxlY3Rvcl1dCgkJLy8gVGhlIGZpcnN0IGxpc3QgaXMgYSBsaXN0IG9mIGNvbW1hIHNlcGVyYXRlZCBzZWxlY3RvcnMKCQkvLyBUaGUgaW5uZXIgbGlzdCBpcyBhIGxpc3Qgb2YgaW5oZXJpdGFuY2Ugc2VwZXJhdGVkIHNlbGVjdG9ycwoJCS8vIGUuZy4KCQkvLyAuYSwgLmIgewoJCS8vICAgLmMgewoJCS8vICAgfQoJCS8vIH0KCQkvLyA9PSBbWy5hXSBbLmNdXSBbWy5iXSBbLmNdXQoJCS8vCgoJCS8vIHRoZSBlbGVtZW50cyBmcm9tIHRoZSBjdXJyZW50IHNlbGVjdG9yIHNvIGZhcgoJCSRjdXJyZW50RWxlbWVudHMgPSBhcnJheSgpOwoJCS8vIHRoZSBjdXJyZW50IGxpc3Qgb2YgbmV3IHNlbGVjdG9ycyB0byBhZGQgdG8gdGhlIHBhdGguCgkJLy8gV2Ugd2lsbCBidWlsZCBpdCB1cC4gV2UgaW5pdGlhdGUgaXQgd2l0aCBvbmUgZW1wdHkgc2VsZWN0b3IgYXMgd2UgIm11bHRpcGx5IiB0aGUgbmV3IHNlbGVjdG9ycwoJCS8vIGJ5IHRoZSBwYXJlbnRzCgkJJG5ld1NlbGVjdG9ycyA9IGFycmF5KGFycmF5KCkpOwoKCgkJZm9yZWFjaCggJHNlbGVjdG9yLT5lbGVtZW50cyBhcyAkZWwpewoKCQkJLy8gbm9uIHBhcmVudCByZWZlcmVuY2UgZWxlbWVudHMganVzdCBnZXQgYWRkZWQKCQkJaWYoICRlbC0+dmFsdWUgIT09ICcmJyApewoJCQkJJGN1cnJlbnRFbGVtZW50c1tdID0gJGVsOwoJCQl9IGVsc2UgewoJCQkJLy8gdGhlIG5ldyBsaXN0IG9mIHNlbGVjdG9ycyB0byBhZGQKCQkJCSRzZWxlY3RvcnNNdWx0aXBsaWVkID0gYXJyYXkoKTsKCgkJCQkvLyBtZXJnZSB0aGUgY3VycmVudCBsaXN0IG9mIG5vbiBwYXJlbnQgc2VsZWN0b3IgZWxlbWVudHMKCQkJCS8vIG9uIHRvIHRoZSBjdXJyZW50IGxpc3Qgb2Ygc2VsZWN0b3JzIHRvIGFkZAoJCQkJaWYoICRjdXJyZW50RWxlbWVudHMgKXsKCQkJCQkkdGhpcy0+bWVyZ2VFbGVtZW50c09uVG9TZWxlY3RvcnMoICRjdXJyZW50RWxlbWVudHMsICRuZXdTZWxlY3RvcnMpOwoJCQkJfQoKCQkJCS8vIGxvb3AgdGhyb3VnaCBvdXIgY3VycmVudCBzZWxlY3RvcnMKCQkJCWZvcmVhY2goJG5ld1NlbGVjdG9ycyBhcyAkc2VsKXsKCgkJCQkJLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgcGFyZW50IHBhdGhzLCB0aGUgJiBtaWdodCBiZSBpbiBhIG1peGluIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQKCQkJCQkvLyB3aGV0aGVyIHRoZXJlIGFyZSBwYXJlbnRzIG9yIG5vdAoJCQkJCWlmKCAhJGNvbnRleHQgKXsKCQkJCQkJLy8gdGhlIGNvbWJpbmF0b3IgdXNlZCBvbiBlbCBzaG91bGQgbm93IGJlIGFwcGxpZWQgdG8gdGhlIG5leHQgZWxlbWVudCBpbnN0ZWFkIHNvIHRoYXQKCQkJCQkJLy8gaXQgaXMgbm90IGxvc3QKCQkJCQkJaWYoICRzZWwgKXsKCQkJCQkJCSRzZWxbMF0tPmVsZW1lbnRzID0gYXJyYXlfc2xpY2UoJHNlbFswXS0+ZWxlbWVudHMsMCk7CgkJCQkJCQkkc2VsWzBdLT5lbGVtZW50c1tdID0gbmV3IExlc3NfVHJlZV9FbGVtZW50KCRlbC0+Y29tYmluYXRvciwgJycsICRlbC0+aW5kZXgsICRlbC0+Y3VycmVudEZpbGVJbmZvICk7CgkJCQkJCX0KCQkJCQkJJHNlbGVjdG9yc011bHRpcGxpZWRbXSA9ICRzZWw7CgkJCQkJfWVsc2UgewoKCQkJCQkJLy8gYW5kIHRoZSBwYXJlbnQgc2VsZWN0b3JzCgkJCQkJCWZvcmVhY2goJGNvbnRleHQgYXMgJHBhcmVudFNlbCl7CgkJCQkJCQkvLyBXZSBuZWVkIHRvIHB1dCB0aGUgY3VycmVudCBzZWxlY3RvcnMKCQkJCQkJCS8vIHRoZW4gam9pbiB0aGUgbGFzdCBzZWxlY3RvcidzIGVsZW1lbnRzIG9uIHRvIHRoZSBwYXJlbnRzIHNlbGVjdG9ycwoKCQkJCQkJCS8vIG91ciBuZXcgc2VsZWN0b3IgcGF0aAoJCQkJCQkJJG5ld1NlbGVjdG9yUGF0aCA9IGFycmF5KCk7CgkJCQkJCQkvLyBzZWxlY3RvcnMgZnJvbSB0aGUgcGFyZW50IGFmdGVyIHRoZSBqb2luCgkJCQkJCQkkYWZ0ZXJQYXJlbnRKb2luID0gYXJyYXkoKTsKCQkJCQkJCSRuZXdKb2luZWRTZWxlY3RvckVtcHR5ID0gdHJ1ZTsKCgkJCQkJCQkvL2NvbnN0cnVjdCB0aGUgam9pbmVkIHNlbGVjdG9yIC0gaWYgJiBpcyB0aGUgZmlyc3QgdGhpbmcgdGhpcyB3aWxsIGJlIGVtcHR5LAoJCQkJCQkJLy8gaWYgbm90IG5ld0pvaW5lZFNlbGVjdG9yIHdpbGwgYmUgdGhlIGxhc3Qgc2V0IG9mIGVsZW1lbnRzIGluIHRoZSBzZWxlY3RvcgoJCQkJCQkJaWYoICRzZWwgKXsKCQkJCQkJCQkkbmV3U2VsZWN0b3JQYXRoID0gJHNlbDsKCQkJCQkJCQkkbGFzdFNlbGVjdG9yID0gYXJyYXlfcG9wKCRuZXdTZWxlY3RvclBhdGgpOwoJCQkJCQkJCSRuZXdKb2luZWRTZWxlY3RvciA9ICRzZWxlY3Rvci0+Y3JlYXRlRGVyaXZlZCggYXJyYXlfc2xpY2UoJGxhc3RTZWxlY3Rvci0+ZWxlbWVudHMsMCkgKTsKCQkJCQkJCQkkbmV3Sm9pbmVkU2VsZWN0b3JFbXB0eSA9IGZhbHNlOwoJCQkJCQkJfQoJCQkJCQkJZWxzZSB7CgkJCQkJCQkJJG5ld0pvaW5lZFNlbGVjdG9yID0gJHNlbGVjdG9yLT5jcmVhdGVEZXJpdmVkKGFycmF5KCkpOwoJCQkJCQkJfQoKCQkJCQkJCS8vcHV0IHRvZ2V0aGVyIHRoZSBwYXJlbnQgc2VsZWN0b3JzIGFmdGVyIHRoZSBqb2luCgkJCQkJCQlpZiAoIGNvdW50KCRwYXJlbnRTZWwpID4gMSkgewoJCQkJCQkJCSRhZnRlclBhcmVudEpvaW4gPSBhcnJheV9tZXJnZSgkYWZ0ZXJQYXJlbnRKb2luLCBhcnJheV9zbGljZSgkcGFyZW50U2VsLDEpICk7CgkJCQkJCQl9CgoJCQkJCQkJaWYgKCAkcGFyZW50U2VsICl7CgkJCQkJCQkJJG5ld0pvaW5lZFNlbGVjdG9yRW1wdHkgPSBmYWxzZTsKCgkJCQkJCQkJLy8gam9pbiB0aGUgZWxlbWVudHMgc28gZmFyIHdpdGggdGhlIGZpcnN0IHBhcnQgb2YgdGhlIHBhcmVudAoJCQkJCQkJCSRuZXdKb2luZWRTZWxlY3Rvci0+ZWxlbWVudHNbXSA9IG5ldyBMZXNzX1RyZWVfRWxlbWVudCggJGVsLT5jb21iaW5hdG9yLCAkcGFyZW50U2VsWzBdLT5lbGVtZW50c1swXS0+dmFsdWUsICRlbC0+aW5kZXgsICRlbC0+Y3VycmVudEZpbGVJbmZvKTsKCgkJCQkJCQkJJG5ld0pvaW5lZFNlbGVjdG9yLT5lbGVtZW50cyA9IGFycmF5X21lcmdlKCAkbmV3Sm9pbmVkU2VsZWN0b3ItPmVsZW1lbnRzLCBhcnJheV9zbGljZSgkcGFyZW50U2VsWzBdLT5lbGVtZW50cywgMSkgKTsKCQkJCQkJCX0KCgkJCQkJCQlpZiAoISRuZXdKb2luZWRTZWxlY3RvckVtcHR5KSB7CgkJCQkJCQkJLy8gbm93IGFkZCB0aGUgam9pbmVkIHNlbGVjdG9yCgkJCQkJCQkJJG5ld1NlbGVjdG9yUGF0aFtdID0gJG5ld0pvaW5lZFNlbGVjdG9yOwoJCQkJCQkJfQoKCQkJCQkJCS8vIGFuZCB0aGUgcmVzdCBvZiB0aGUgcGFyZW50CgkJCQkJCQkkbmV3U2VsZWN0b3JQYXRoID0gYXJyYXlfbWVyZ2UoJG5ld1NlbGVjdG9yUGF0aCwgJGFmdGVyUGFyZW50Sm9pbik7CgoJCQkJCQkJLy8gYWRkIHRoYXQgdG8gb3VyIG5ldyBzZXQgb2Ygc2VsZWN0b3JzCgkJCQkJCQkkc2VsZWN0b3JzTXVsdGlwbGllZFtdID0gJG5ld1NlbGVjdG9yUGF0aDsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQkvLyBvdXIgbmV3IHNlbGVjdG9ycyBoYXMgYmVlbiBtdWx0aXBsaWVkLCBzbyByZXNldCB0aGUgc3RhdGUKCQkJCSRuZXdTZWxlY3RvcnMgPSAkc2VsZWN0b3JzTXVsdGlwbGllZDsKCQkJCSRjdXJyZW50RWxlbWVudHMgPSBhcnJheSgpOwoJCQl9CgkJfQoKCQkvLyBpZiB3ZSBoYXZlIGFueSBlbGVtZW50cyBsZWZ0IG92ZXIgKGUuZy4gLmEmIC5iID09IC5iKQoJCS8vIGFkZCB0aGVtIG9uIHRvIGFsbCB0aGUgY3VycmVudCBzZWxlY3RvcnMKCQlpZiggJGN1cnJlbnRFbGVtZW50cyApewoJCQkkdGhpcy0+bWVyZ2VFbGVtZW50c09uVG9TZWxlY3RvcnMoJGN1cnJlbnRFbGVtZW50cywgJG5ld1NlbGVjdG9ycyk7CgkJfQoJCWZvcmVhY2goICRuZXdTZWxlY3RvcnMgYXMgJG5ld19zZWwpewoJCQlpZiggJG5ld19zZWwgKXsKCQkJCSRwYXRoc1tdID0gJG5ld19zZWw7CgkJCX0KCQl9Cgl9CgoJZnVuY3Rpb24gbWVyZ2VFbGVtZW50c09uVG9TZWxlY3RvcnMoICRlbGVtZW50cywgJiRzZWxlY3RvcnMpewoKCQlpZiggISRzZWxlY3RvcnMgKXsKCQkJJHNlbGVjdG9yc1tdID0gYXJyYXkoIG5ldyBMZXNzX1RyZWVfU2VsZWN0b3IoJGVsZW1lbnRzKSApOwoJCQlyZXR1cm47CgkJfQoKCgkJZm9yZWFjaCggJHNlbGVjdG9ycyBhcyAmJHNlbCl7CgoJCQkvLyBpZiB0aGUgcHJldmlvdXMgdGhpbmcgaW4gc2VsIGlzIGEgcGFyZW50IHRoaXMgbmVlZHMgdG8gam9pbiBvbiB0byBpdAoJCQlpZiggJHNlbCApewoJCQkJJGxhc3QgPSBjb3VudCgkc2VsKS0xOwoJCQkJJHNlbFskbGFzdF0gPSAkc2VsWyRsYXN0XS0+Y3JlYXRlRGVyaXZlZCggYXJyYXlfbWVyZ2UoJHNlbFskbGFzdF0tPmVsZW1lbnRzLCAkZWxlbWVudHMpICk7CgkJCX1lbHNlewoJCQkJJHNlbFtdID0gbmV3IExlc3NfVHJlZV9TZWxlY3RvciggJGVsZW1lbnRzICk7CgkJCX0KCQl9Cgl9Cn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/RulesetCall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBSdWxlc2V0Q2FsbAogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9SdWxlc2V0Q2FsbCBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJHZhcmlhYmxlOwoJcHVibGljICR0eXBlID0gIlJ1bGVzZXRDYWxsIjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhcmlhYmxlKXsKCQkkdGhpcy0+dmFyaWFibGUgPSAkdmFyaWFibGU7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCgkdmlzaXRvcikge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSggJGVudiApewoJCSR2YXJpYWJsZSA9IG5ldyBMZXNzX1RyZWVfVmFyaWFibGUoJHRoaXMtPnZhcmlhYmxlKTsKCQkkZGV0YWNoZWRSdWxlc2V0ID0gJHZhcmlhYmxlLT5jb21waWxlKCRlbnYpOwoJCXJldHVybiAkZGV0YWNoZWRSdWxlc2V0LT5jYWxsRXZhbCgkZW52KTsKCX0KfQoK]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Selector.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBTZWxlY3RvcgogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9TZWxlY3RvciBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJGVsZW1lbnRzOwoJcHVibGljICRjb25kaXRpb247CglwdWJsaWMgJGV4dGVuZExpc3QgPSBhcnJheSgpOwoJcHVibGljICRfY3NzOwoJcHVibGljICRpbmRleDsKCXB1YmxpYyAkZXZhbGRDb25kaXRpb24gPSBmYWxzZTsKCXB1YmxpYyAkdHlwZSA9ICdTZWxlY3Rvcic7CglwdWJsaWMgJGN1cnJlbnRGaWxlSW5mbyA9IGFycmF5KCk7CglwdWJsaWMgJGlzUmVmZXJlbmNlZDsKCXB1YmxpYyAkbWVkaWFFbXB0eTsKCglwdWJsaWMgJGVsZW1lbnRzX2xlbiA9IDA7CgoJcHVibGljICRfb2VsZW1lbnRzOwoJcHVibGljICRfb2VsZW1lbnRzX2xlbjsKCXB1YmxpYyAkY2FjaGVhYmxlID0gdHJ1ZTsKCgkvKioKCSAqIEBwYXJhbSBib29sZWFuICRpc1JlZmVyZW5jZWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCAkZWxlbWVudHMsICRleHRlbmRMaXN0ID0gYXJyYXkoKSAsICRjb25kaXRpb24gPSBudWxsLCAkaW5kZXg9bnVsbCwgJGN1cnJlbnRGaWxlSW5mbz1udWxsLCAkaXNSZWZlcmVuY2VkPW51bGwgKXsKCgkJJHRoaXMtPmVsZW1lbnRzID0gJGVsZW1lbnRzOwoJCSR0aGlzLT5lbGVtZW50c19sZW4gPSBjb3VudCgkZWxlbWVudHMpOwoJCSR0aGlzLT5leHRlbmRMaXN0ID0gJGV4dGVuZExpc3Q7CgkJJHRoaXMtPmNvbmRpdGlvbiA9ICRjb25kaXRpb247CgkJaWYoICRjdXJyZW50RmlsZUluZm8gKXsKCQkJJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyA9ICRjdXJyZW50RmlsZUluZm87CgkJfQoJCSR0aGlzLT5pc1JlZmVyZW5jZWQgPSAkaXNSZWZlcmVuY2VkOwoJCWlmKCAhJGNvbmRpdGlvbiApewoJCQkkdGhpcy0+ZXZhbGRDb25kaXRpb24gPSB0cnVlOwoJCX0KCgkJJHRoaXMtPkNhY2hlRWxlbWVudHMoKTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCR2aXNpdG9yKSB7CgkJJHRoaXMtPmVsZW1lbnRzID0gJHZpc2l0b3ItPnZpc2l0QXJyYXkoJHRoaXMtPmVsZW1lbnRzKTsKCQkkdGhpcy0+ZXh0ZW5kTGlzdCA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCR0aGlzLT5leHRlbmRMaXN0KTsKCQlpZiggJHRoaXMtPmNvbmRpdGlvbiApewoJCQkkdGhpcy0+Y29uZGl0aW9uID0gJHZpc2l0b3ItPnZpc2l0T2JqKCR0aGlzLT5jb25kaXRpb24pOwoJCX0KCgkJaWYoICR2aXNpdG9yIGluc3RhbmNlb2YgTGVzc19WaXNpdG9yX2V4dGVuZEZpbmRlciApewoJCQkkdGhpcy0+Q2FjaGVFbGVtZW50cygpOwoJCX0KCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlRGVyaXZlZCggJGVsZW1lbnRzLCAkZXh0ZW5kTGlzdCA9IG51bGwsICRldmFsZENvbmRpdGlvbiA9IG51bGwgKXsKCQkkbmV3U2VsZWN0b3IgPSBuZXcgTGVzc19UcmVlX1NlbGVjdG9yKCAkZWxlbWVudHMsICgkZXh0ZW5kTGlzdCA/ICRleHRlbmRMaXN0IDogJHRoaXMtPmV4dGVuZExpc3QpLCBudWxsLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8sICR0aGlzLT5pc1JlZmVyZW5jZWQpOwoJCSRuZXdTZWxlY3Rvci0+ZXZhbGRDb25kaXRpb24gPSAkZXZhbGRDb25kaXRpb24gPyAkZXZhbGRDb25kaXRpb24gOiAkdGhpcy0+ZXZhbGRDb25kaXRpb247CgkJcmV0dXJuICRuZXdTZWxlY3RvcjsKCX0KCgoJcHVibGljIGZ1bmN0aW9uIG1hdGNoKCAkb3RoZXIgKXsKCgkJaWYoICEkb3RoZXItPl9vZWxlbWVudHMgfHwgKCR0aGlzLT5lbGVtZW50c19sZW4gPCAkb3RoZXItPl9vZWxlbWVudHNfbGVuKSApewoJCQlyZXR1cm4gMDsKCQl9CgoJCWZvciggJGkgPSAwOyAkaSA8ICRvdGhlci0+X29lbGVtZW50c19sZW47ICRpKysgKXsKCQkJaWYoICR0aGlzLT5lbGVtZW50c1skaV0tPnZhbHVlICE9PSAkb3RoZXItPl9vZWxlbWVudHNbJGldKSB7CgkJCQlyZXR1cm4gMDsKCQkJfQoJCX0KCgkJcmV0dXJuICRvdGhlci0+X29lbGVtZW50c19sZW47IC8vIHJldHVybiBudW1iZXIgb2YgbWF0Y2hlZCBlbGVtZW50cwoJfQoKCglwdWJsaWMgZnVuY3Rpb24gQ2FjaGVFbGVtZW50cygpewoKCQkkdGhpcy0+X29lbGVtZW50cyA9IGFycmF5KCk7CgkJJGNzcyA9ICcnOwoKCQlmb3JlYWNoKCR0aGlzLT5lbGVtZW50cyBhcyAkdil7CgoJCQkkY3NzIC49ICR2LT5jb21iaW5hdG9yOwoJCQlpZiggISR2LT52YWx1ZV9pc19vYmplY3QgKXsKCQkJCSRjc3MgLj0gJHYtPnZhbHVlOwoJCQkJY29udGludWU7CgkJCX0KCgkJCWlmKCAhcHJvcGVydHlfZXhpc3RzKCR2LT52YWx1ZSwndmFsdWUnKSB8fCAhaXNfc3RyaW5nKCR2LT52YWx1ZS0+dmFsdWUpICl7CgkJCQkkdGhpcy0+Y2FjaGVhYmxlID0gZmFsc2U7CgkJCQlyZXR1cm47CgkJCX0KCQkJJGNzcyAuPSAkdi0+dmFsdWUtPnZhbHVlOwoJCX0KCgkJJHRoaXMtPl9vZWxlbWVudHNfbGVuID0gcHJlZ19tYXRjaF9hbGwoJy9bLCYjXC5cdy1dKD86W1x3LV18KD86XFxcXC4pKSovJywgJGNzcywgJG1hdGNoZXMpOwoJCWlmKCAkdGhpcy0+X29lbGVtZW50c19sZW4gKXsKCQkJJHRoaXMtPl9vZWxlbWVudHMgPSAkbWF0Y2hlc1swXTsKCgkJCWlmKCAkdGhpcy0+X29lbGVtZW50c1swXSA9PT0gJyYnICl7CgkJCQlhcnJheV9zaGlmdCgkdGhpcy0+X29lbGVtZW50cyk7CgkJCQkkdGhpcy0+X29lbGVtZW50c19sZW4tLTsKCQkJfQoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNKdXN0UGFyZW50U2VsZWN0b3IoKXsKCQlyZXR1cm4gISR0aGlzLT5tZWRpYUVtcHR5ICYmCgkJCWNvdW50KCR0aGlzLT5lbGVtZW50cykgPT09IDEgJiYKCQkJJHRoaXMtPmVsZW1lbnRzWzBdLT52YWx1ZSA9PT0gJyYnICYmCgkJCSgkdGhpcy0+ZWxlbWVudHNbMF0tPmNvbWJpbmF0b3IgPT09ICcgJyB8fCAkdGhpcy0+ZWxlbWVudHNbMF0tPmNvbWJpbmF0b3IgPT09ICcnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSgkZW52KSB7CgoJCSRlbGVtZW50cyA9IGFycmF5KCk7CgkJZm9yZWFjaCgkdGhpcy0+ZWxlbWVudHMgYXMgJGVsKXsKCQkJJGVsZW1lbnRzW10gPSAkZWwtPmNvbXBpbGUoJGVudik7CgkJfQoKCQkkZXh0ZW5kTGlzdCA9IGFycmF5KCk7CgkJZm9yZWFjaCgkdGhpcy0+ZXh0ZW5kTGlzdCBhcyAkZWwpewoJCQkkZXh0ZW5kTGlzdFtdID0gJGVsLT5jb21waWxlKCRlbCk7CgkJfQoKCQkkZXZhbGRDb25kaXRpb24gPSBmYWxzZTsKCQlpZiggJHRoaXMtPmNvbmRpdGlvbiApewoJCQkkZXZhbGRDb25kaXRpb24gPSAkdGhpcy0+Y29uZGl0aW9uLT5jb21waWxlKCRlbnYpOwoJCX0KCgkJcmV0dXJuICR0aGlzLT5jcmVhdGVEZXJpdmVkKCAkZWxlbWVudHMsICRleHRlbmRMaXN0LCAkZXZhbGRDb25kaXRpb24gKTsKCX0KCgoJLyoqCgkgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCgkgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQsICRmaXJzdFNlbGVjdG9yID0gdHJ1ZSApewoKCQlpZiggISRmaXJzdFNlbGVjdG9yICYmICR0aGlzLT5lbGVtZW50c1swXS0+Y29tYmluYXRvciA9PT0gIiIgKXsKCQkJJG91dHB1dC0+YWRkKCcgJywgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbywgJHRoaXMtPmluZGV4KTsKCQl9CgoJCWZvcmVhY2goJHRoaXMtPmVsZW1lbnRzIGFzICRlbGVtZW50KXsKCQkJJGVsZW1lbnQtPmdlbkNTUyggJG91dHB1dCApOwoJCX0KCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbWFya1JlZmVyZW5jZWQoKXsKCQkkdGhpcy0+aXNSZWZlcmVuY2VkID0gdHJ1ZTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SXNSZWZlcmVuY2VkKCl7CgkJcmV0dXJuICFpc3NldCgkdGhpcy0+Y3VycmVudEZpbGVJbmZvWydyZWZlcmVuY2UnXSkgfHwgISR0aGlzLT5jdXJyZW50RmlsZUluZm9bJ3JlZmVyZW5jZSddIHx8ICR0aGlzLT5pc1JlZmVyZW5jZWQ7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldElzT3V0cHV0KCl7CgkJcmV0dXJuICR0aGlzLT5ldmFsZENvbmRpdGlvbjsKCX0KCn0K]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/UnicodeDescriptor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBVbmljb2RlRGVzY3JpcHRvcgogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9Vbmljb2RlRGVzY3JpcHRvciBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJHZhbHVlOwoJcHVibGljICR0eXBlID0gJ1VuaWNvZGVEZXNjcmlwdG9yJzsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlKXsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsdWU7Cgl9CgogICAgLyoqCiAgICAgKiBAc2VlIExlc3NfVHJlZTo6Z2VuQ1NTCiAgICAgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZW5DU1MoICRvdXRwdXQgKXsKCQkkb3V0cHV0LT5hZGQoICR0aGlzLT52YWx1ZSApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjb21waWxlKCl7CgkJcmV0dXJuICR0aGlzOwoJfQp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Unit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBVbml0CiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdHJlZQogKi8KY2xhc3MgTGVzc19UcmVlX1VuaXQgZXh0ZW5kcyBMZXNzX1RyZWV7CgoJdmFyICRudW1lcmF0b3IgPSBhcnJheSgpOwoJdmFyICRkZW5vbWluYXRvciA9IGFycmF5KCk7CglwdWJsaWMgJGJhY2t1cFVuaXQ7CglwdWJsaWMgJHR5cGUgPSAnVW5pdCc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRudW1lcmF0b3IgPSBhcnJheSgpLCAkZGVub21pbmF0b3IgPSBhcnJheSgpLCAkYmFja3VwVW5pdCA9IG51bGwgKXsKCQkkdGhpcy0+bnVtZXJhdG9yID0gJG51bWVyYXRvcjsKCQkkdGhpcy0+ZGVub21pbmF0b3IgPSAkZGVub21pbmF0b3I7CgkJJHRoaXMtPmJhY2t1cFVuaXQgPSAkYmFja3VwVW5pdDsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jbG9uZSgpewoJfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgoJCWlmKCAkdGhpcy0+bnVtZXJhdG9yICl7CgkJCSRvdXRwdXQtPmFkZCggJHRoaXMtPm51bWVyYXRvclswXSApOwoJCX1lbHNlaWYoICR0aGlzLT5kZW5vbWluYXRvciApewoJCQkkb3V0cHV0LT5hZGQoICR0aGlzLT5kZW5vbWluYXRvclswXSApOwoJCX1lbHNlaWYoICFMZXNzX1BhcnNlcjo6JG9wdGlvbnNbJ3N0cmljdFVuaXRzJ10gJiYgJHRoaXMtPmJhY2t1cFVuaXQgKXsKCQkJJG91dHB1dC0+YWRkKCAkdGhpcy0+YmFja3VwVW5pdCApOwoJCQlyZXR1cm4gOwoJCX0KCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdG9TdHJpbmcoKXsKCQkkcmV0dXJuU3RyID0gaW1wbG9kZSgnKicsJHRoaXMtPm51bWVyYXRvcik7CgkJZm9yZWFjaCgkdGhpcy0+ZGVub21pbmF0b3IgYXMgJGQpewoJCQkkcmV0dXJuU3RyIC49ICcvJy4kZDsKCQl9CgkJcmV0dXJuICRyZXR1cm5TdHI7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKXsKCQlyZXR1cm4gJHRoaXMtPnRvU3RyaW5nKCk7Cgl9CgoKCS8qKgoJICogQHBhcmFtIExlc3NfVHJlZV9Vbml0ICRvdGhlcgoJICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGFyZSgkb3RoZXIpIHsKCQlyZXR1cm4gJHRoaXMtPmlzKCAkb3RoZXItPnRvU3RyaW5nKCkgKSA/IDAgOiAtMTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXMoJHVuaXRTdHJpbmcpewoJCXJldHVybiAkdGhpcy0+dG9TdHJpbmcoKSA9PT0gJHVuaXRTdHJpbmc7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzTGVuZ3RoKCl7CgkJJGNzcyA9ICR0aGlzLT50b0NTUygpOwoJCXJldHVybiAhIXByZWdfbWF0Y2goJy9weHxlbXwlfGlufGNtfG1tfHBjfHB0fGV4LycsJGNzcyk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzQW5nbGUoKSB7CgkJcmV0dXJuIGlzc2V0KCBMZXNzX1RyZWVfVW5pdENvbnZlcnNpb25zOjokYW5nbGVbJHRoaXMtPnRvQ1NTKCldICk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzRW1wdHkoKXsKCQlyZXR1cm4gISR0aGlzLT5udW1lcmF0b3IgJiYgISR0aGlzLT5kZW5vbWluYXRvcjsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNTaW5ndWxhcigpIHsKCQlyZXR1cm4gY291bnQoJHRoaXMtPm51bWVyYXRvcikgPD0gMSAmJiAhJHRoaXMtPmRlbm9taW5hdG9yOwoJfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gdXNlZFVuaXRzKCl7CgkJJHJlc3VsdCA9IGFycmF5KCk7CgoJCWZvcmVhY2goTGVzc19UcmVlX1VuaXRDb252ZXJzaW9uczo6JGdyb3VwcyBhcyAkZ3JvdXBOYW1lKXsKCQkJJGdyb3VwID0gTGVzc19UcmVlX1VuaXRDb252ZXJzaW9uczo6JHskZ3JvdXBOYW1lfTsKCgkJCWZvcmVhY2goJHRoaXMtPm51bWVyYXRvciBhcyAkYXRvbWljVW5pdCl7CgkJCQlpZiggaXNzZXQoJGdyb3VwWyRhdG9taWNVbml0XSkgJiYgIWlzc2V0KCRyZXN1bHRbJGdyb3VwTmFtZV0pICl7CgkJCQkJJHJlc3VsdFskZ3JvdXBOYW1lXSA9ICRhdG9taWNVbml0OwoJCQkJfQoJCQl9CgoJCQlmb3JlYWNoKCR0aGlzLT5kZW5vbWluYXRvciBhcyAkYXRvbWljVW5pdCl7CgkJCQlpZiggaXNzZXQoJGdyb3VwWyRhdG9taWNVbml0XSkgJiYgIWlzc2V0KCRyZXN1bHRbJGdyb3VwTmFtZV0pICl7CgkJCQkJJHJlc3VsdFskZ3JvdXBOYW1lXSA9ICRhdG9taWNVbml0OwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gJHJlc3VsdDsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2FuY2VsKCl7CgkJJGNvdW50ZXIgPSBhcnJheSgpOwoJCSRiYWNrdXAgPSBudWxsOwoKCQlmb3JlYWNoKCR0aGlzLT5udW1lcmF0b3IgYXMgJGF0b21pY1VuaXQpewoJCQlpZiggISRiYWNrdXAgKXsKCQkJCSRiYWNrdXAgPSAkYXRvbWljVW5pdDsKCQkJfQoJCQkkY291bnRlclskYXRvbWljVW5pdF0gPSAoIGlzc2V0KCRjb3VudGVyWyRhdG9taWNVbml0XSkgPyAkY291bnRlclskYXRvbWljVW5pdF0gOiAwKSArIDE7CgkJfQoKCQlmb3JlYWNoKCR0aGlzLT5kZW5vbWluYXRvciBhcyAkYXRvbWljVW5pdCl7CgkJCWlmKCAhJGJhY2t1cCApewoJCQkJJGJhY2t1cCA9ICRhdG9taWNVbml0OwoJCQl9CgkJCSRjb3VudGVyWyRhdG9taWNVbml0XSA9ICggaXNzZXQoJGNvdW50ZXJbJGF0b21pY1VuaXRdKSA/ICRjb3VudGVyWyRhdG9taWNVbml0XSA6IDApIC0gMTsKCQl9CgoJCSR0aGlzLT5udW1lcmF0b3IgPSBhcnJheSgpOwoJCSR0aGlzLT5kZW5vbWluYXRvciA9IGFycmF5KCk7CgoJCWZvcmVhY2goJGNvdW50ZXIgYXMgJGF0b21pY1VuaXQgPT4gJGNvdW50KXsKCQkJaWYoICRjb3VudCA+IDAgKXsKCQkJCWZvciggJGkgPSAwOyAkaSA8ICRjb3VudDsgJGkrKyApewoJCQkJCSR0aGlzLT5udW1lcmF0b3JbXSA9ICRhdG9taWNVbml0OwoJCQkJfQoJCQl9ZWxzZWlmKCAkY291bnQgPCAwICl7CgkJCQlmb3IoICRpID0gMDsgJGkgPCAtJGNvdW50OyAkaSsrICl7CgkJCQkJJHRoaXMtPmRlbm9taW5hdG9yW10gPSAkYXRvbWljVW5pdDsKCQkJCX0KCQkJfQoJCX0KCgkJaWYoICEkdGhpcy0+bnVtZXJhdG9yICYmICEkdGhpcy0+ZGVub21pbmF0b3IgJiYgJGJhY2t1cCApewoJCQkkdGhpcy0+YmFja3VwVW5pdCA9ICRiYWNrdXA7CgkJfQoKCQlzb3J0KCR0aGlzLT5udW1lcmF0b3IpOwoJCXNvcnQoJHRoaXMtPmRlbm9taW5hdG9yKTsKCX0KCgp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/UnitConversions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBVbml0Q29udmVyc2lvbnMKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfVW5pdENvbnZlcnNpb25zewoKCXB1YmxpYyBzdGF0aWMgJGdyb3VwcyA9IGFycmF5KCdsZW5ndGgnLCdkdXJhdGlvbicsJ2FuZ2xlJyk7CgoJcHVibGljIHN0YXRpYyAkbGVuZ3RoID0gYXJyYXkoCgkJJ20nPT4gMSwKCQknY20nPT4gMC4wMSwKCQknbW0nPT4gMC4wMDEsCgkJJ2luJz0+IDAuMDI1NCwKCQkncHgnPT4gMC4wMDAyNjQ1ODMsIC8vIDAuMDI1NCAvIDk2LAoJCSdwdCc9PiAwLjAwMDM1Mjc3OCwgLy8gMC4wMjU0IC8gNzIsCgkJJ3BjJz0+IDAuMDA0MjMzMzMzLCAvLyAwLjAyNTQgLyA3MiAqIDEyCgkJKTsKCglwdWJsaWMgc3RhdGljICRkdXJhdGlvbiA9IGFycmF5KAoJCSdzJz0+IDEsCgkJJ21zJz0+IDAuMDAxCgkJKTsKCglwdWJsaWMgc3RhdGljICRhbmdsZSA9IGFycmF5KAoJCSdyYWQnID0+IDAuMTU5MTU0OTQzMDkxOSwJLy8gMS8oMipNX1BJKSwKCQknZGVnJyA9PiAwLjAwMjc3Nzc3OCwgCQkvLyAxLzM2MCwKCQknZ3JhZCc9PiAwLjAwMjUsCQkJLy8gMS80MDAsCgkJJ3R1cm4nPT4gMQoJCSk7Cgp9]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Url.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBVcmwKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB0cmVlCiAqLwpjbGFzcyBMZXNzX1RyZWVfVXJsIGV4dGVuZHMgTGVzc19UcmVlewoKCXB1YmxpYyAkYXR0cnM7CglwdWJsaWMgJHZhbHVlOwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CglwdWJsaWMgJGlzRXZhbGQ7CglwdWJsaWMgJHR5cGUgPSAnVXJsJzsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlLCAkY3VycmVudEZpbGVJbmZvID0gbnVsbCwgJGlzRXZhbGQgPSBudWxsKXsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsdWU7CgkJJHRoaXMtPmN1cnJlbnRGaWxlSW5mbyA9ICRjdXJyZW50RmlsZUluZm87CgkJJHRoaXMtPmlzRXZhbGQgPSAkaXNFdmFsZDsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWNjZXB0KCAkdmlzaXRvciApewoJCSR0aGlzLT52YWx1ZSA9ICR2aXNpdG9yLT52aXNpdE9iaigkdGhpcy0+dmFsdWUpOwoJfQoKICAgIC8qKgogICAgICogQHNlZSBMZXNzX1RyZWU6OmdlbkNTUwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgkJJG91dHB1dC0+YWRkKCAndXJsKCcgKTsKCQkkdGhpcy0+dmFsdWUtPmdlbkNTUyggJG91dHB1dCApOwoJCSRvdXRwdXQtPmFkZCggJyknICk7Cgl9CgoJLyoqCgkgKiBAcGFyYW0gTGVzc19GdW5jdGlvbnMgJGN0eAoJICovCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSgkY3R4KXsKCQkkdmFsID0gJHRoaXMtPnZhbHVlLT5jb21waWxlKCRjdHgpOwoKCQlpZiggISR0aGlzLT5pc0V2YWxkICl7CgkJCS8vIEFkZCB0aGUgYmFzZSBwYXRoIGlmIHRoZSBVUkwgaXMgcmVsYXRpdmUKCQkJaWYoIExlc3NfUGFyc2VyOjokb3B0aW9uc1sncmVsYXRpdmVVcmxzJ10KCQkJCSYmICR0aGlzLT5jdXJyZW50RmlsZUluZm8KCQkJCSYmIGlzX3N0cmluZygkdmFsLT52YWx1ZSkKCQkJCSYmIExlc3NfRW52aXJvbm1lbnQ6OmlzUGF0aFJlbGF0aXZlKCR2YWwtPnZhbHVlKQoJCQkpewoJCQkJJHJvb3RwYXRoID0gJHRoaXMtPmN1cnJlbnRGaWxlSW5mb1sndXJpX3Jvb3QnXTsKCQkJCWlmICggISR2YWwtPnF1b3RlICl7CgkJCQkJJHJvb3RwYXRoID0gcHJlZ19yZXBsYWNlKCcvW1woXClcJyJcc10vJywgJ1xcJDEnLCAkcm9vdHBhdGggKTsKCQkJCX0KCQkJCSR2YWwtPnZhbHVlID0gJHJvb3RwYXRoIC4gJHZhbC0+dmFsdWU7CgkJCX0KCgkJCSR2YWwtPnZhbHVlID0gTGVzc19FbnZpcm9ubWVudDo6bm9ybWFsaXplUGF0aCggJHZhbC0+dmFsdWUpOwoJCX0KCgkJLy8gQWRkIGNhY2hlIGJ1c3RlciBpZiBlbmFibGVkCgkJaWYoIExlc3NfUGFyc2VyOjokb3B0aW9uc1sndXJsQXJncyddICl7CgkJCWlmKCAhcHJlZ19tYXRjaCgnL15ccypkYXRhOi8nLCR2YWwtPnZhbHVlKSApewoJCQkJJGRlbGltaXRlciA9IHN0cnBvcygkdmFsLT52YWx1ZSwnPycpID09PSBmYWxzZSA/ICc/JyA6ICcmJzsKCQkJCSR1cmxBcmdzID0gJGRlbGltaXRlciAuIExlc3NfUGFyc2VyOjokb3B0aW9uc1sndXJsQXJncyddOwoJCQkJJGhhc2hfcG9zID0gc3RycG9zKCR2YWwtPnZhbHVlLCcjJyk7CgkJCQlpZiggJGhhc2hfcG9zICE9PSBmYWxzZSApewoJCQkJCSR2YWwtPnZhbHVlID0gc3Vic3RyX3JlcGxhY2UoJHZhbC0+dmFsdWUsJHVybEFyZ3MsICRoYXNoX3BvcywgMCk7CgkJCQl9IGVsc2UgewoJCQkJCSR2YWwtPnZhbHVlIC49ICR1cmxBcmdzOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9VUkwoJHZhbCwgJHRoaXMtPmN1cnJlbnRGaWxlSW5mbywgdHJ1ZSk7Cgl9Cgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Value.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBWYWx1ZQogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9WYWx1ZSBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJHR5cGUgPSAnVmFsdWUnOwoJcHVibGljICR2YWx1ZTsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZhbHVlKXsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsdWU7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjY2VwdCgkdmlzaXRvcikgewoJCSR0aGlzLT52YWx1ZSA9ICR2aXNpdG9yLT52aXNpdEFycmF5KCR0aGlzLT52YWx1ZSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNvbXBpbGUoJGVudil7CgoJCSRyZXQgPSBhcnJheSgpOwoJCSRpID0gMDsKCQlmb3JlYWNoKCR0aGlzLT52YWx1ZSBhcyAkaSA9PiAkdil7CgkJCSRyZXRbXSA9ICR2LT5jb21waWxlKCRlbnYpOwoJCX0KCQlpZiggJGkgPiAwICl7CgkJCXJldHVybiBuZXcgTGVzc19UcmVlX1ZhbHVlKCRyZXQpOwoJCX0KCQlyZXR1cm4gJHJldFswXTsKCX0KCiAgICAvKioKICAgICAqIEBzZWUgTGVzc19UcmVlOjpnZW5DU1MKICAgICAqLwoJZnVuY3Rpb24gZ2VuQ1NTKCAkb3V0cHV0ICl7CgkJJGxlbiA9IGNvdW50KCR0aGlzLT52YWx1ZSk7CgkJZm9yKCRpID0gMDsgJGkgPCAkbGVuOyAkaSsrICl7CgkJCSR0aGlzLT52YWx1ZVskaV0tPmdlbkNTUyggJG91dHB1dCApOwoJCQlpZiggJGkrMSA8ICRsZW4gKXsKCQkJCSRvdXRwdXQtPmFkZCggTGVzc19FbnZpcm9ubWVudDo6JF9vdXRwdXRNYXBbJywnXSApOwoJCQl9CgkJfQoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Tree/Variable.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBWYXJpYWJsZQogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHRyZWUKICovCmNsYXNzIExlc3NfVHJlZV9WYXJpYWJsZSBleHRlbmRzIExlc3NfVHJlZXsKCglwdWJsaWMgJG5hbWU7CglwdWJsaWMgJGluZGV4OwoJcHVibGljICRjdXJyZW50RmlsZUluZm87CglwdWJsaWMgJGV2YWx1YXRpbmcgPSBmYWxzZTsKCXB1YmxpYyAkdHlwZSA9ICdWYXJpYWJsZSc7CgogICAgLyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbmFtZSwgJGluZGV4ID0gbnVsbCwgJGN1cnJlbnRGaWxlSW5mbyA9IG51bGwpIHsKICAgICAgICAkdGhpcy0+bmFtZSA9ICRuYW1lOwogICAgICAgICR0aGlzLT5pbmRleCA9ICRpbmRleDsKCQkkdGhpcy0+Y3VycmVudEZpbGVJbmZvID0gJGN1cnJlbnRGaWxlSW5mbzsKICAgIH0KCglwdWJsaWMgZnVuY3Rpb24gY29tcGlsZSgkZW52KSB7CgoJCWlmKCAkdGhpcy0+bmFtZVsxXSA9PT0gJ0AnICl7CgkJCSR2ID0gbmV3IExlc3NfVHJlZV9WYXJpYWJsZShzdWJzdHIoJHRoaXMtPm5hbWUsIDEpLCAkdGhpcy0+aW5kZXggKyAxLCAkdGhpcy0+Y3VycmVudEZpbGVJbmZvKTsKCQkJJG5hbWUgPSAnQCcgLiAkdi0+Y29tcGlsZSgkZW52KS0+dmFsdWU7CgkJfWVsc2V7CgkJCSRuYW1lID0gJHRoaXMtPm5hbWU7CgkJfQoKCQlpZiAoJHRoaXMtPmV2YWx1YXRpbmcpIHsKCQkJdGhyb3cgbmV3IExlc3NfRXhjZXB0aW9uX0NvbXBpbGVyKCJSZWN1cnNpdmUgdmFyaWFibGUgZGVmaW5pdGlvbiBmb3IgIiAuICRuYW1lLCBudWxsLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8pOwoJCX0KCgkJJHRoaXMtPmV2YWx1YXRpbmcgPSB0cnVlOwoKCQlmb3JlYWNoKCRlbnYtPmZyYW1lcyBhcyAkZnJhbWUpewoJCQlpZiggJHYgPSAkZnJhbWUtPnZhcmlhYmxlKCRuYW1lKSApewoJCQkJJHIgPSAkdi0+dmFsdWUtPmNvbXBpbGUoJGVudik7CgkJCQkkdGhpcy0+ZXZhbHVhdGluZyA9IGZhbHNlOwoJCQkJcmV0dXJuICRyOwoJCQl9CgkJfQoKCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoInZhcmlhYmxlICIgLiAkbmFtZSAuICIgaXMgdW5kZWZpbmVkIGluIGZpbGUgIi4kdGhpcy0+Y3VycmVudEZpbGVJbmZvWyJmaWxlbmFtZSJdLCBudWxsLCAkdGhpcy0+aW5kZXgsICR0aGlzLT5jdXJyZW50RmlsZUluZm8pOwoJfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Version.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBSZWxlYXNlIG51bWJlcnMKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB2ZXJzaW9uCiAqLwpjbGFzcyBMZXNzX1ZlcnNpb257CgoJY29uc3QgdmVyc2lvbiA9ICcxLjcuMC4xMCc7CQkJLy8gVGhlIGN1cnJlbnQgYnVpbGQgbnVtYmVyIG9mIGxlc3MucGhwCgljb25zdCBsZXNzX3ZlcnNpb24gPSAnMS43LjAnOwkJLy8gVGhlIGxlc3MuanMgdmVyc2lvbiB0aGF0IHRoaXMgYnVpbGQgc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aAoJY29uc3QgY2FjaGVfdmVyc2lvbiA9ICcxNzAnOwkJLy8gVGhlIHBhcnNlciBjYWNoZSB2ZXJzaW9uCgp9Cg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBWaXNpdG9yCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdmlzaXRvcgogKi8KY2xhc3MgTGVzc19WaXNpdG9yewoKCXByb3RlY3RlZCAkbWV0aG9kcyA9IGFycmF5KCk7Cglwcm90ZWN0ZWQgJF92aXNpdEZuQ2FjaGUgPSBhcnJheSgpOwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpewoJCSR0aGlzLT5fdmlzaXRGbkNhY2hlID0gZ2V0X2NsYXNzX21ldGhvZHMoZ2V0X2NsYXNzKCR0aGlzKSk7CgkJJHRoaXMtPl92aXNpdEZuQ2FjaGUgPSBhcnJheV9mbGlwKCR0aGlzLT5fdmlzaXRGbkNhY2hlKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdmlzaXRPYmooICRub2RlICl7CgoJCSRmdW5jTmFtZSA9ICd2aXNpdCcuJG5vZGUtPnR5cGU7CgkJaWYoIGlzc2V0KCR0aGlzLT5fdmlzaXRGbkNhY2hlWyRmdW5jTmFtZV0pICl7CgoJCQkkdmlzaXREZWVwZXIgPSB0cnVlOwoJCQkkdGhpcy0+JGZ1bmNOYW1lKCAkbm9kZSwgJHZpc2l0RGVlcGVyICk7CgoJCQlpZiggJHZpc2l0RGVlcGVyICl7CgkJCQkkbm9kZS0+YWNjZXB0KCR0aGlzKTsKCQkJfQoKCQkJJGZ1bmNOYW1lID0gJGZ1bmNOYW1lIC4gIk91dCI7CgkJCWlmKCBpc3NldCgkdGhpcy0+X3Zpc2l0Rm5DYWNoZVskZnVuY05hbWVdKSApewoJCQkJJHRoaXMtPiRmdW5jTmFtZSggJG5vZGUgKTsKCQkJfQoKCQl9ZWxzZXsKCQkJJG5vZGUtPmFjY2VwdCgkdGhpcyk7CgkJfQoKCQlyZXR1cm4gJG5vZGU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHZpc2l0QXJyYXkoICRub2RlcyApewoKCQlhcnJheV9tYXAoIGFycmF5KCR0aGlzLCd2aXNpdE9iaicpLCAkbm9kZXMpOwoJCXJldHVybiAkbm9kZXM7Cgl9Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor/extendFinder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBFeHRlbmQgRmluZGVyIFZpc2l0b3IKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB2aXNpdG9yCiAqLwpjbGFzcyBMZXNzX1Zpc2l0b3JfZXh0ZW5kRmluZGVyIGV4dGVuZHMgTGVzc19WaXNpdG9yewoKCXB1YmxpYyAkY29udGV4dHMgPSBhcnJheSgpOwoJcHVibGljICRhbGxFeHRlbmRzU3RhY2s7CglwdWJsaWMgJGZvdW5kRXh0ZW5kczsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsKCQkkdGhpcy0+Y29udGV4dHMgPSBhcnJheSgpOwoJCSR0aGlzLT5hbGxFeHRlbmRzU3RhY2sgPSBhcnJheShhcnJheSgpKTsKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7Cgl9CgoJLyoqCgkgKiBAcGFyYW0gTGVzc19UcmVlX1J1bGVzZXQgJHJvb3QKCSAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJ1bigkcm9vdCl7CgkJJHJvb3QgPSAkdGhpcy0+dmlzaXRPYmooJHJvb3QpOwoJCSRyb290LT5hbGxFeHRlbmRzID0mICR0aGlzLT5hbGxFeHRlbmRzU3RhY2tbMF07CgkJcmV0dXJuICRyb290OwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2aXNpdFJ1bGUoJHJ1bGVOb2RlLCAmJHZpc2l0RGVlcGVyICl7CgkJJHZpc2l0RGVlcGVyID0gZmFsc2U7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIHZpc2l0TWl4aW5EZWZpbml0aW9uKCAkbWl4aW5EZWZpbml0aW9uTm9kZSwgJiR2aXNpdERlZXBlciApewoJCSR2aXNpdERlZXBlciA9IGZhbHNlOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2aXNpdFJ1bGVzZXQoJHJ1bGVzZXROb2RlKXsKCgkJaWYoICRydWxlc2V0Tm9kZS0+cm9vdCApewoJCQlyZXR1cm47CgkJfQoKCQkkYWxsU2VsZWN0b3JzRXh0ZW5kTGlzdCA9IGFycmF5KCk7CgoJCS8vIGdldCAmOmV4dGVuZCguYSk7IHJ1bGVzIHdoaWNoIGFwcGx5IHRvIGFsbCBzZWxlY3RvcnMgaW4gdGhpcyBydWxlc2V0CgkJaWYoICRydWxlc2V0Tm9kZS0+cnVsZXMgKXsKCQkJZm9yZWFjaCgkcnVsZXNldE5vZGUtPnJ1bGVzIGFzICRydWxlKXsKCQkJCWlmKCAkcnVsZSBpbnN0YW5jZW9mIExlc3NfVHJlZV9FeHRlbmQgKXsKCQkJCQkkYWxsU2VsZWN0b3JzRXh0ZW5kTGlzdFtdID0gJHJ1bGU7CgkJCQkJJHJ1bGVzZXROb2RlLT5leHRlbmRPbkV2ZXJ5UGF0aCA9IHRydWU7CgkJCQl9CgkJCX0KCQl9CgoKCQkvLyBub3cgZmluZCBldmVyeSBzZWxlY3RvciBhbmQgYXBwbHkgdGhlIGV4dGVuZHMgdGhhdCBhcHBseSB0byBhbGwgZXh0ZW5kcwoJCS8vIGFuZCB0aGUgb25lcyB3aGljaCBhcHBseSB0byBhbiBpbmRpdmlkdWFsIGV4dGVuZAoJCWZvcmVhY2goJHJ1bGVzZXROb2RlLT5wYXRocyBhcyAkc2VsZWN0b3JQYXRoKXsKCQkJJHNlbGVjdG9yID0gZW5kKCRzZWxlY3RvclBhdGgpOyAvLyRzZWxlY3RvclBhdGhbIGNvdW50KCRzZWxlY3RvclBhdGgpLTFdOwoKCQkJJGogPSAwOwoJCQlmb3JlYWNoKCRzZWxlY3Rvci0+ZXh0ZW5kTGlzdCBhcyAkZXh0ZW5kKXsKCQkJCSR0aGlzLT5hbGxFeHRlbmRzU3RhY2tQdXNoKCRydWxlc2V0Tm9kZSwgJHNlbGVjdG9yUGF0aCwgJGV4dGVuZCwgJGopOwoJCQl9CgkJCWZvcmVhY2goJGFsbFNlbGVjdG9yc0V4dGVuZExpc3QgYXMgJGV4dGVuZCl7CgkJCQkkdGhpcy0+YWxsRXh0ZW5kc1N0YWNrUHVzaCgkcnVsZXNldE5vZGUsICRzZWxlY3RvclBhdGgsICRleHRlbmQsICRqKTsKCQkJfQoJCX0KCgkJJHRoaXMtPmNvbnRleHRzW10gPSAkcnVsZXNldE5vZGUtPnNlbGVjdG9yczsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWxsRXh0ZW5kc1N0YWNrUHVzaCgkcnVsZXNldE5vZGUsICRzZWxlY3RvclBhdGgsICRleHRlbmQsICYkail7CgkJJHRoaXMtPmZvdW5kRXh0ZW5kcyA9IHRydWU7CgkJJGV4dGVuZCA9IGNsb25lICRleHRlbmQ7CgkJJGV4dGVuZC0+ZmluZFNlbGZTZWxlY3RvcnMoICRzZWxlY3RvclBhdGggKTsKCQkkZXh0ZW5kLT5ydWxlc2V0ID0gJHJ1bGVzZXROb2RlOwoJCWlmKCAkaiA9PT0gMCApewoJCQkkZXh0ZW5kLT5maXJzdEV4dGVuZE9uVGhpc1NlbGVjdG9yUGF0aCA9IHRydWU7CgkJfQoKCQkkZW5kX2tleSA9IGNvdW50KCR0aGlzLT5hbGxFeHRlbmRzU3RhY2spLTE7CgkJJHRoaXMtPmFsbEV4dGVuZHNTdGFja1skZW5kX2tleV1bXSA9ICRleHRlbmQ7CgkJJGorKzsKCX0KCgogICAgcHVibGljIGZ1bmN0aW9uIHZpc2l0UnVsZXNldE91dCggJHJ1bGVzZXROb2RlICl7CgkJaWYoICFpc19vYmplY3QoJHJ1bGVzZXROb2RlKSB8fCAhJHJ1bGVzZXROb2RlLT5yb290ICl7CgkJCWFycmF5X3BvcCgkdGhpcy0+Y29udGV4dHMpOwoJCX0KCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmlzaXRNZWRpYSggJG1lZGlhTm9kZSApewoJCSRtZWRpYU5vZGUtPmFsbEV4dGVuZHMgPSBhcnJheSgpOwoJCSR0aGlzLT5hbGxFeHRlbmRzU3RhY2tbXSA9JiAkbWVkaWFOb2RlLT5hbGxFeHRlbmRzOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2aXNpdE1lZGlhT3V0KCl7CgkJYXJyYXlfcG9wKCR0aGlzLT5hbGxFeHRlbmRzU3RhY2spOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2aXNpdERpcmVjdGl2ZSggJGRpcmVjdGl2ZU5vZGUgKXsKCQkkZGlyZWN0aXZlTm9kZS0+YWxsRXh0ZW5kcyA9IGFycmF5KCk7CgkJJHRoaXMtPmFsbEV4dGVuZHNTdGFja1tdID0mICRkaXJlY3RpdmVOb2RlLT5hbGxFeHRlbmRzOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2aXNpdERpcmVjdGl2ZU91dCgpewoJCWFycmF5X3BvcCgkdGhpcy0+YWxsRXh0ZW5kc1N0YWNrKTsKCX0KfQoKCg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor/import.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCmNsYXNzIExlc3NfVmlzaXRvcl9pbXBvcnQgZXh0ZW5kcyBMZXNzX1Zpc2l0b3JSZXBsYWNpbmd7CgoJcHVibGljICRfdmlzaXRvcjsKCXB1YmxpYyAkX2ltcG9ydGVyOwoJcHVibGljICRpbXBvcnRDb3VudDsKCglmdW5jdGlvbiBfX2NvbnN0cnVjdCggJGV2YWxFbnYgKXsKCQkkdGhpcy0+ZW52ID0gJGV2YWxFbnY7CgkJJHRoaXMtPmltcG9ydENvdW50ID0gMDsKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7Cgl9CgoKCWZ1bmN0aW9uIHJ1biggJHJvb3QgKXsKCQkkcm9vdCA9ICR0aGlzLT52aXNpdE9iaigkcm9vdCk7CgkJJHRoaXMtPmlzRmluaXNoZWQgPSB0cnVlOwoKCQkvL2lmKCAkdGhpcy0+aW1wb3J0Q291bnQgPT09IDApIHsKCQkvLwkkdGhpcy0+X2ZpbmlzaCgpOwoJCS8vfQoJfQoKCWZ1bmN0aW9uIHZpc2l0SW1wb3J0KCRpbXBvcnROb2RlLCAmJHZpc2l0RGVlcGVyICl7CgkJJGltcG9ydFZpc2l0b3IgPSAkdGhpczsKCQkkaW5saW5lQ1NTID0gJGltcG9ydE5vZGUtPm9wdGlvbnNbJ2lubGluZSddOwoKCQlpZiggISRpbXBvcnROb2RlLT5jc3MgfHwgJGlubGluZUNTUyApewoJCQkkZXZhbGRJbXBvcnROb2RlID0gJGltcG9ydE5vZGUtPmNvbXBpbGVGb3JJbXBvcnQoJHRoaXMtPmVudik7CgoJCQlpZiggJGV2YWxkSW1wb3J0Tm9kZSAmJiAoISRldmFsZEltcG9ydE5vZGUtPmNzcyB8fCAkaW5saW5lQ1NTKSApewoJCQkJJGltcG9ydE5vZGUgPSAkZXZhbGRJbXBvcnROb2RlOwoJCQkJJHRoaXMtPmltcG9ydENvdW50Kys7CgkJCQkkZW52ID0gY2xvbmUgJHRoaXMtPmVudjsKCgkJCQlpZiggKGlzc2V0KCRpbXBvcnROb2RlLT5vcHRpb25zWydtdWx0aXBsZSddKSAmJiAkaW1wb3J0Tm9kZS0+b3B0aW9uc1snbXVsdGlwbGUnXSkgKXsKCQkJCQkkZW52LT5pbXBvcnRNdWx0aXBsZSA9IHRydWU7CgkJCQl9CgoJCQkJLy9nZXQgcGF0aCAmIHVyaQoJCQkJJHBhdGhfYW5kX3VyaSA9IG51bGw7CgkJCQlpZiggaXNfY2FsbGFibGUoTGVzc19QYXJzZXI6OiRvcHRpb25zWydpbXBvcnRfY2FsbGJhY2snXSkgKXsKCQkJCQkkcGF0aF9hbmRfdXJpID0gY2FsbF91c2VyX2Z1bmMoTGVzc19QYXJzZXI6OiRvcHRpb25zWydpbXBvcnRfY2FsbGJhY2snXSwkaW1wb3J0Tm9kZSk7CgkJCQl9CgoJCQkJaWYoICEkcGF0aF9hbmRfdXJpICl7CgkJCQkJJHBhdGhfYW5kX3VyaSA9ICRpbXBvcnROb2RlLT5QYXRoQW5kVXJpKCk7CgkJCQl9CgoJCQkJaWYoICRwYXRoX2FuZF91cmkgKXsKCQkJCQlsaXN0KCRmdWxsX3BhdGgsICR1cmkpID0gJHBhdGhfYW5kX3VyaTsKCQkJCX1lbHNlewoJCQkJCSRmdWxsX3BhdGggPSAkdXJpID0gJGltcG9ydE5vZGUtPmdldFBhdGgoKTsKCQkJCX0KCgoJCQkJLy9pbXBvcnQgb25jZQoJCQkJaWYoICRpbXBvcnROb2RlLT5za2lwKCAkZnVsbF9wYXRoLCAkZW52KSApewoJCQkJCXJldHVybiBhcnJheSgpOwoJCQkJfQoKCQkJCWlmKCAkaW1wb3J0Tm9kZS0+b3B0aW9uc1snaW5saW5lJ10gKXsKCQkJCQkvL3RvZG8gbmVlZHMgdG8gcmVmZXJlbmNlIGNzcyBmaWxlIG5vdCBpbXBvcnQKCQkJCQkvLyRjb250ZW50cyA9IG5ldyBMZXNzX1RyZWVfQW5vbnltb3VzKCRpbXBvcnROb2RlLT5yb290LCAwLCBhcnJheSgnZmlsZW5hbWUnPT4kaW1wb3J0Tm9kZS0+aW1wb3J0ZWRGaWxlbmFtZSksIHRydWUgKTsKCgkJCQkJTGVzc19QYXJzZXI6OkFkZFBhcnNlZEZpbGUoJGZ1bGxfcGF0aCk7CgkJCQkJJGNvbnRlbnRzID0gbmV3IExlc3NfVHJlZV9Bbm9ueW1vdXMoIGZpbGVfZ2V0X2NvbnRlbnRzKCRmdWxsX3BhdGgpLCAwLCBhcnJheSgpLCB0cnVlICk7CgoJCQkJCWlmKCAkaW1wb3J0Tm9kZS0+ZmVhdHVyZXMgKXsKCQkJCQkJcmV0dXJuIG5ldyBMZXNzX1RyZWVfTWVkaWEoIGFycmF5KCRjb250ZW50cyksICRpbXBvcnROb2RlLT5mZWF0dXJlcy0+dmFsdWUgKTsKCQkJCQl9CgoJCQkJCXJldHVybiBhcnJheSggJGNvbnRlbnRzICk7CgkJCQl9CgoKCQkJCS8vIGNzcyA/CgkJCQlpZiggJGltcG9ydE5vZGUtPmNzcyApewoJCQkJCSRmZWF0dXJlcyA9ICggJGltcG9ydE5vZGUtPmZlYXR1cmVzID8gJGltcG9ydE5vZGUtPmZlYXR1cmVzLT5jb21waWxlKCRlbnYpIDogbnVsbCApOwoJCQkJCXJldHVybiBuZXcgTGVzc19UcmVlX0ltcG9ydCggJGltcG9ydE5vZGUtPmNvbXBpbGVQYXRoKCAkZW52KSwgJGZlYXR1cmVzLCAkaW1wb3J0Tm9kZS0+b3B0aW9ucywgJHRoaXMtPmluZGV4KTsKCQkJCX0KCgkJCQlyZXR1cm4gJGltcG9ydE5vZGUtPlBhcnNlSW1wb3J0KCAkZnVsbF9wYXRoLCAkdXJpLCAkZW52ICk7CgkJCX0KCgkJfQoKCQkkdmlzaXREZWVwZXIgPSBmYWxzZTsKCQlyZXR1cm4gJGltcG9ydE5vZGU7Cgl9CgoKCWZ1bmN0aW9uIHZpc2l0UnVsZSggJHJ1bGVOb2RlLCAmJHZpc2l0RGVlcGVyICl7CgkJJHZpc2l0RGVlcGVyID0gZmFsc2U7CgkJcmV0dXJuICRydWxlTm9kZTsKCX0KCglmdW5jdGlvbiB2aXNpdERpcmVjdGl2ZSgkZGlyZWN0aXZlTm9kZSwgJHZpc2l0QXJncyl7CgkJYXJyYXlfdW5zaGlmdCgkdGhpcy0+ZW52LT5mcmFtZXMsJGRpcmVjdGl2ZU5vZGUpOwoJCXJldHVybiAkZGlyZWN0aXZlTm9kZTsKCX0KCglmdW5jdGlvbiB2aXNpdERpcmVjdGl2ZU91dCgkZGlyZWN0aXZlTm9kZSkgewoJCWFycmF5X3NoaWZ0KCR0aGlzLT5lbnYtPmZyYW1lcyk7Cgl9CgoJZnVuY3Rpb24gdmlzaXRNaXhpbkRlZmluaXRpb24oJG1peGluRGVmaW5pdGlvbk5vZGUsICR2aXNpdEFyZ3MpIHsKCQlhcnJheV91bnNoaWZ0KCR0aGlzLT5lbnYtPmZyYW1lcywkbWl4aW5EZWZpbml0aW9uTm9kZSk7CgkJcmV0dXJuICRtaXhpbkRlZmluaXRpb25Ob2RlOwoJfQoKCWZ1bmN0aW9uIHZpc2l0TWl4aW5EZWZpbml0aW9uT3V0KCRtaXhpbkRlZmluaXRpb25Ob2RlKSB7CgkJYXJyYXlfc2hpZnQoJHRoaXMtPmVudi0+ZnJhbWVzKTsKCX0KCglmdW5jdGlvbiB2aXNpdFJ1bGVzZXQoJHJ1bGVzZXROb2RlLCAkdmlzaXRBcmdzKSB7CgkJYXJyYXlfdW5zaGlmdCgkdGhpcy0+ZW52LT5mcmFtZXMsJHJ1bGVzZXROb2RlKTsKCQlyZXR1cm4gJHJ1bGVzZXROb2RlOwoJfQoKCWZ1bmN0aW9uIHZpc2l0UnVsZXNldE91dCgkcnVsZXNldE5vZGUpIHsKCQlhcnJheV9zaGlmdCgkdGhpcy0+ZW52LT5mcmFtZXMpOwoJfQoKCWZ1bmN0aW9uIHZpc2l0TWVkaWEoJG1lZGlhTm9kZSwgJHZpc2l0QXJncykgewoJCWFycmF5X3Vuc2hpZnQoJHRoaXMtPmVudi0+ZnJhbWVzLCAkbWVkaWFOb2RlLT5ydWxlc2V0KTsKCQlyZXR1cm4gJG1lZGlhTm9kZTsKCX0KCglmdW5jdGlvbiB2aXNpdE1lZGlhT3V0KCRtZWRpYU5vZGUpIHsKCQlhcnJheV9zaGlmdCgkdGhpcy0+ZW52LT5mcmFtZXMpOwoJfQoKfQoqLwoKCg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor/joinSelector.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBKb2luIFNlbGVjdG9yIFZpc2l0b3IKICoKICogQHBhY2thZ2UgTGVzcwogKiBAc3VicGFja2FnZSB2aXNpdG9yCiAqLwpjbGFzcyBMZXNzX1Zpc2l0b3Jfam9pblNlbGVjdG9yIGV4dGVuZHMgTGVzc19WaXNpdG9yewoKCXB1YmxpYyAkY29udGV4dHMgPSBhcnJheSggYXJyYXkoKSApOwoKCS8qKgoJICogQHBhcmFtIExlc3NfVHJlZV9SdWxlc2V0ICRyb290CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBydW4oICRyb290ICl7CgkJcmV0dXJuICR0aGlzLT52aXNpdE9iaigkcm9vdCk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIHZpc2l0UnVsZSggJHJ1bGVOb2RlLCAmJHZpc2l0RGVlcGVyICl7CgkJJHZpc2l0RGVlcGVyID0gZmFsc2U7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIHZpc2l0TWl4aW5EZWZpbml0aW9uKCAkbWl4aW5EZWZpbml0aW9uTm9kZSwgJiR2aXNpdERlZXBlciApewoJCSR2aXNpdERlZXBlciA9IGZhbHNlOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2aXNpdFJ1bGVzZXQoICRydWxlc2V0Tm9kZSApewoKCQkkcGF0aHMgPSBhcnJheSgpOwoKCQlpZiggISRydWxlc2V0Tm9kZS0+cm9vdCApewoJCQkkc2VsZWN0b3JzID0gYXJyYXkoKTsKCgkJCWlmKCAkcnVsZXNldE5vZGUtPnNlbGVjdG9ycyAmJiAkcnVsZXNldE5vZGUtPnNlbGVjdG9ycyApewoJCQkJZm9yZWFjaCgkcnVsZXNldE5vZGUtPnNlbGVjdG9ycyBhcyAkc2VsZWN0b3IpewoJCQkJCWlmKCAkc2VsZWN0b3ItPmdldElzT3V0cHV0KCkgKXsKCQkJCQkJJHNlbGVjdG9yc1tdID0gJHNlbGVjdG9yOwoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJaWYoICEkc2VsZWN0b3JzICl7CgkJCQkkcnVsZXNldE5vZGUtPnNlbGVjdG9ycyA9IG51bGw7CgkJCQkkcnVsZXNldE5vZGUtPnJ1bGVzID0gbnVsbDsKCQkJfWVsc2V7CgkJCQkkY29udGV4dCA9IGVuZCgkdGhpcy0+Y29udGV4dHMpOyAvLyRjb250ZXh0ID0gJHRoaXMtPmNvbnRleHRzWyBjb3VudCgkdGhpcy0+Y29udGV4dHMpIC0gMV07CgkJCQkkcGF0aHMgPSAkcnVsZXNldE5vZGUtPmpvaW5TZWxlY3RvcnMoICRjb250ZXh0LCAkc2VsZWN0b3JzKTsKCQkJfQoKCQkJJHJ1bGVzZXROb2RlLT5wYXRocyA9ICRwYXRoczsKCQl9CgoJCSR0aGlzLT5jb250ZXh0c1tdID0gJHBhdGhzOyAvL2RpZmZlcmVudCBmcm9tIGxlc3MuanMuIFBsYWNlZCBhZnRlciBqb2luU2VsZWN0b3JzKCkgc28gdGhhdCAkdGhpcy0+Y29udGV4dHMgd2lsbCBnZXQgY29ycmVjdCAkcGF0aHMKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmlzaXRSdWxlc2V0T3V0KCl7CgkJYXJyYXlfcG9wKCR0aGlzLT5jb250ZXh0cyk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIHZpc2l0TWVkaWEoJG1lZGlhTm9kZSkgewoJCSRjb250ZXh0ID0gZW5kKCR0aGlzLT5jb250ZXh0cyk7IC8vJGNvbnRleHQgPSAkdGhpcy0+Y29udGV4dHNbIGNvdW50KCR0aGlzLT5jb250ZXh0cykgLSAxXTsKCgkJaWYoICFjb3VudCgkY29udGV4dCkgfHwgKGlzX29iamVjdCgkY29udGV4dFswXSkgJiYgJGNvbnRleHRbMF0tPm11bHRpTWVkaWEpICl7CgkJCSRtZWRpYU5vZGUtPnJ1bGVzWzBdLT5yb290ID0gdHJ1ZTsKCQl9Cgl9Cgp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor/processExtends.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBQcm9jZXNzIEV4dGVuZHMgVmlzaXRvcgogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHZpc2l0b3IKICovCmNsYXNzIExlc3NfVmlzaXRvcl9wcm9jZXNzRXh0ZW5kcyBleHRlbmRzIExlc3NfVmlzaXRvcnsKCglwdWJsaWMgJGFsbEV4dGVuZHNTdGFjazsKCgkvKioKCSAqIEBwYXJhbSBMZXNzX1RyZWVfUnVsZXNldCAkcm9vdAoJICovCglwdWJsaWMgZnVuY3Rpb24gcnVuKCAkcm9vdCApewoJCSRleHRlbmRGaW5kZXIgPSBuZXcgTGVzc19WaXNpdG9yX2V4dGVuZEZpbmRlcigpOwoJCSRleHRlbmRGaW5kZXItPnJ1biggJHJvb3QgKTsKCQlpZiggISRleHRlbmRGaW5kZXItPmZvdW5kRXh0ZW5kcyl7CgkJCXJldHVybiAkcm9vdDsKCQl9CgoJCSRyb290LT5hbGxFeHRlbmRzID0gJHRoaXMtPmRvRXh0ZW5kQ2hhaW5pbmcoICRyb290LT5hbGxFeHRlbmRzLCAkcm9vdC0+YWxsRXh0ZW5kcyk7CgoJCSR0aGlzLT5hbGxFeHRlbmRzU3RhY2sgPSBhcnJheSgpOwoJCSR0aGlzLT5hbGxFeHRlbmRzU3RhY2tbXSA9ICYkcm9vdC0+YWxsRXh0ZW5kczsKCgkJcmV0dXJuICR0aGlzLT52aXNpdE9iaiggJHJvb3QgKTsKCX0KCglwcml2YXRlIGZ1bmN0aW9uIGRvRXh0ZW5kQ2hhaW5pbmcoICRleHRlbmRzTGlzdCwgJGV4dGVuZHNMaXN0VGFyZ2V0LCAkaXRlcmF0aW9uQ291bnQgPSAwKXsKCQkvLwoJCS8vIGNoYWluaW5nIGlzIGRpZmZlcmVudCBmcm9tIG5vcm1hbCBleHRlbnNpb24uLiBpZiB3ZSBleHRlbmQgYW4gZXh0ZW5kIHRoZW4gd2UgYXJlIG5vdCBqdXN0IGNvcHlpbmcsIGFsdGVyaW5nIGFuZCBwYXN0aW5nCgkJLy8gdGhlIHNlbGVjdG9yIHdlIHdvdWxkIGRvIG5vcm1hbGx5LCBidXQgd2UgYXJlIGFsc28gYWRkaW5nIGFuIGV4dGVuZCB3aXRoIHRoZSBzYW1lIHRhcmdldCBzZWxlY3RvcgoJCS8vIHRoaXMgbWVhbnMgdGhpcyBuZXcgZXh0ZW5kIGNhbiB0aGVuIGdvIGFuZCBhbHRlciBvdGhlciBleHRlbmRzCgkJLy8KCQkvLyB0aGlzIG1ldGhvZCBkZWFscyB3aXRoIGFsbCB0aGUgY2hhaW5pbmcgd29yayAtIHdpdGhvdXQgaXQsIGV4dGVuZCBpcyBmbGF0IGFuZCBkb2Vzbid0IHdvcmsgb24gb3RoZXIgZXh0ZW5kIHNlbGVjdG9ycwoJCS8vIHRoaXMgaXMgYWxzbyB0aGUgbW9zdCBleHBlbnNpdmUuLiBhbmQgYSBtYXRjaCBvbiBvbmUgc2VsZWN0b3IgY2FuIGNhdXNlIGFuIGV4dGVuc2lvbiBvZiBhIHNlbGVjdG9yIHdlIGhhZCBhbHJlYWR5IHByb2Nlc3NlZCBpZgoJCS8vIHdlIGxvb2sgYXQgZWFjaCBzZWxlY3RvciBhdCBhIHRpbWUsIGFzIGlzIGRvbmUgaW4gdmlzaXRSdWxlc2V0CgoJCSRleHRlbmRzVG9BZGQgPSBhcnJheSgpOwoKCgkJLy9sb29wIHRocm91Z2ggY29tcGFyaW5nIGV2ZXJ5IGV4dGVuZCB3aXRoIGV2ZXJ5IHRhcmdldCBleHRlbmQuCgkJLy8gYSB0YXJnZXQgZXh0ZW5kIGlzIHRoZSBvbmUgb24gdGhlIHJ1bGVzZXQgd2UgYXJlIGxvb2tpbmcgYXQgY29weS9lZGl0L3Bhc3RpbmcgaW4gcGxhY2UKCQkvLyBlLmcuIC5hOmV4dGVuZCguYikge30gYW5kIC5iOmV4dGVuZCguYykge30gdGhlbiB0aGUgZmlyc3QgZXh0ZW5kIGV4dGVuZHMgdGhlIHNlY29uZCBvbmUKCQkvLyBhbmQgdGhlIHNlY29uZCBpcyB0aGUgdGFyZ2V0LgoJCS8vIHRoZSBzZXBlcmF0aW9uIGludG8gdHdvIGxpc3RzIGFsbG93cyB1cyB0byBwcm9jZXNzIGEgc3Vic2V0IG9mIGNoYWlucyB3aXRoIGEgYmlnZ2VyIHNldCwgYXMgaXMgdGhlCgkJLy8gY2FzZSB3aGVuIHByb2Nlc3NpbmcgbWVkaWEgcXVlcmllcwoJCWZvciggJGV4dGVuZEluZGV4ID0gMCwgJGV4dGVuZHNMaXN0X2xlbiA9IGNvdW50KCRleHRlbmRzTGlzdCk7ICRleHRlbmRJbmRleCA8ICRleHRlbmRzTGlzdF9sZW47ICRleHRlbmRJbmRleCsrICl7CgkJCWZvciggJHRhcmdldEV4dGVuZEluZGV4ID0gMDsgJHRhcmdldEV4dGVuZEluZGV4IDwgY291bnQoJGV4dGVuZHNMaXN0VGFyZ2V0KTsgJHRhcmdldEV4dGVuZEluZGV4KysgKXsKCgkJCQkkZXh0ZW5kID0gJGV4dGVuZHNMaXN0WyRleHRlbmRJbmRleF07CgkJCQkkdGFyZ2V0RXh0ZW5kID0gJGV4dGVuZHNMaXN0VGFyZ2V0WyR0YXJnZXRFeHRlbmRJbmRleF07CgoJCQkJLy8gbG9vayBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcwoJCQkJaWYoIGluX2FycmF5KCR0YXJnZXRFeHRlbmQtPm9iamVjdF9pZCwgJGV4dGVuZC0+cGFyZW50X2lkcyx0cnVlKSApewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCS8vIGZpbmQgYSBtYXRjaCBpbiB0aGUgdGFyZ2V0IGV4dGVuZHMgc2VsZiBzZWxlY3RvciAodGhlIGJpdCBiZWZvcmUgOmV4dGVuZCkKCQkJCSRzZWxlY3RvclBhdGggPSBhcnJheSggJHRhcmdldEV4dGVuZC0+c2VsZlNlbGVjdG9yc1swXSApOwoJCQkJJG1hdGNoZXMgPSAkdGhpcy0+ZmluZE1hdGNoKCAkZXh0ZW5kLCAkc2VsZWN0b3JQYXRoKTsKCgoJCQkJaWYoICRtYXRjaGVzICl7CgoJCQkJCS8vIHdlIGZvdW5kIGEgbWF0Y2gsIHNvIGZvciBlYWNoIHNlbGYgc2VsZWN0b3IuLgoJCQkJCWZvcmVhY2goJGV4dGVuZC0+c2VsZlNlbGVjdG9ycyBhcyAkc2VsZlNlbGVjdG9yICl7CgoKCQkJCQkJLy8gcHJvY2VzcyB0aGUgZXh0ZW5kIGFzIHVzdWFsCgkJCQkJCSRuZXdTZWxlY3RvciA9ICR0aGlzLT5leHRlbmRTZWxlY3RvciggJG1hdGNoZXMsICRzZWxlY3RvclBhdGgsICRzZWxmU2VsZWN0b3IpOwoKCQkJCQkJLy8gYnV0IG5vdyB3ZSBjcmVhdGUgYSBuZXcgZXh0ZW5kIGZyb20gaXQKCQkJCQkJJG5ld0V4dGVuZCA9IG5ldyBMZXNzX1RyZWVfRXh0ZW5kKCAkdGFyZ2V0RXh0ZW5kLT5zZWxlY3RvciwgJHRhcmdldEV4dGVuZC0+b3B0aW9uLCAwKTsKCQkJCQkJJG5ld0V4dGVuZC0+c2VsZlNlbGVjdG9ycyA9ICRuZXdTZWxlY3RvcjsKCgkJCQkJCS8vIGFkZCB0aGUgZXh0ZW5kIG9udG8gdGhlIGxpc3Qgb2YgZXh0ZW5kcyBmb3IgdGhhdCBzZWxlY3RvcgoJCQkJCQllbmQoJG5ld1NlbGVjdG9yKS0+ZXh0ZW5kTGlzdCA9IGFycmF5KCRuZXdFeHRlbmQpOwoJCQkJCQkvLyRuZXdTZWxlY3RvclsgY291bnQoJG5ld1NlbGVjdG9yKS0xXS0+ZXh0ZW5kTGlzdCA9IGFycmF5KCRuZXdFeHRlbmQpOwoKCQkJCQkJLy8gcmVjb3JkIHRoYXQgd2UgbmVlZCB0byBhZGQgaXQuCgkJCQkJCSRleHRlbmRzVG9BZGRbXSA9ICRuZXdFeHRlbmQ7CgkJCQkJCSRuZXdFeHRlbmQtPnJ1bGVzZXQgPSAkdGFyZ2V0RXh0ZW5kLT5ydWxlc2V0OwoKCQkJCQkJLy9yZW1lbWJlciBpdHMgcGFyZW50cyBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcwoJCQkJCQkkbmV3RXh0ZW5kLT5wYXJlbnRfaWRzID0gYXJyYXlfbWVyZ2UoJG5ld0V4dGVuZC0+cGFyZW50X2lkcywkdGFyZ2V0RXh0ZW5kLT5wYXJlbnRfaWRzLCRleHRlbmQtPnBhcmVudF9pZHMpOwoKCQkJCQkJLy8gb25seSBwcm9jZXNzIHRoZSBzZWxlY3RvciBvbmNlLi4gaWYgd2UgaGF2ZSA6ZXh0ZW5kKC5hLC5iKSB0aGVuIG11bHRpcGxlCgkJCQkJCS8vIGV4dGVuZHMgd2lsbCBsb29rIGF0IHRoZSBzYW1lIHNlbGVjdG9yIHBhdGgsIHNvIHdoZW4gZXh0ZW5kaW5nCgkJCQkJCS8vIHdlIGtub3cgdGhhdCBhbnkgb3RoZXJzIHdpbGwgYmUgZHVwbGljYXRlcyBpbiB0ZXJtcyBvZiB3aGF0IGlzIGFkZGVkIHRvIHRoZSBjc3MKCQkJCQkJaWYoICR0YXJnZXRFeHRlbmQtPmZpcnN0RXh0ZW5kT25UaGlzU2VsZWN0b3JQYXRoICl7CgkJCQkJCQkkbmV3RXh0ZW5kLT5maXJzdEV4dGVuZE9uVGhpc1NlbGVjdG9yUGF0aCA9IHRydWU7CgkJCQkJCQkkdGFyZ2V0RXh0ZW5kLT5ydWxlc2V0LT5wYXRoc1tdID0gJG5ld1NlbGVjdG9yOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlpZiggJGV4dGVuZHNUb0FkZCApewoJCQkvLyB0cnkgdG8gZGV0ZWN0IGNpcmN1bGFyIHJlZmVyZW5jZXMgdG8gc3RvcCBhIHN0YWNrIG92ZXJmbG93LgoJCQkvLyBtYXkgbm8gbG9uZ2VyIGJlIG5lZWRlZC4JCQkkdGhpcy0+ZXh0ZW5kQ2hhaW5Db3VudCsrOwoJCQlpZiggJGl0ZXJhdGlvbkNvdW50ID4gMTAwKSB7CgoJCQkJdHJ5ewoJCQkJCSRzZWxlY3Rvck9uZSA9ICRleHRlbmRzVG9BZGRbMF0tPnNlbGZTZWxlY3RvcnNbMF0tPnRvQ1NTKCk7CgkJCQkJJHNlbGVjdG9yVHdvID0gJGV4dGVuZHNUb0FkZFswXS0+c2VsZWN0b3ItPnRvQ1NTKCk7CgkJCQl9Y2F0Y2goRXhjZXB0aW9uICRlKXsKCQkJCQkkc2VsZWN0b3JPbmUgPSAie3VuYWJsZSB0byBjYWxjdWxhdGV9IjsKCQkJCQkkc2VsZWN0b3JUd28gPSAie3VuYWJsZSB0byBjYWxjdWxhdGV9IjsKCQkJCX0KCgkJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fUGFyc2VyKCJleHRlbmQgY2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkLiBPbmUgb2YgdGhlIGNpcmN1bGFyIGV4dGVuZHMgaXMgY3VycmVudGx5OiIgLiAkc2VsZWN0b3JPbmUgLiAiOmV4dGVuZCgiIC4gJHNlbGVjdG9yVHdvIC4gIikiKTsKCQkJfQoKCQkJLy8gbm93IHByb2Nlc3MgdGhlIG5ldyBleHRlbmRzIG9uIHRoZSBleGlzdGluZyBydWxlcyBzbyB0aGF0IHdlIGNhbiBoYW5kbGUgYSBleHRlbmRpbmcgYiBleHRlbmRpbmcgYyBlY3RlbmRpbmcgZCBleHRlbmRpbmcgZS4uLgoJCQkkZXh0ZW5kc1RvQWRkID0gJHRoaXMtPmRvRXh0ZW5kQ2hhaW5pbmcoICRleHRlbmRzVG9BZGQsICRleHRlbmRzTGlzdFRhcmdldCwgJGl0ZXJhdGlvbkNvdW50KzEpOwoJCX0KCgkJcmV0dXJuIGFycmF5X21lcmdlKCRleHRlbmRzTGlzdCwgJGV4dGVuZHNUb0FkZCk7Cgl9CgoKCXByb3RlY3RlZCBmdW5jdGlvbiB2aXNpdFJ1bGUoICRydWxlTm9kZSwgJiR2aXNpdERlZXBlciApewoJCSR2aXNpdERlZXBlciA9IGZhbHNlOwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiB2aXNpdE1peGluRGVmaW5pdGlvbiggJG1peGluRGVmaW5pdGlvbk5vZGUsICYkdmlzaXREZWVwZXIgKXsKCQkkdmlzaXREZWVwZXIgPSBmYWxzZTsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gdmlzaXRTZWxlY3RvciggJHNlbGVjdG9yTm9kZSwgJiR2aXNpdERlZXBlciApewoJCSR2aXNpdERlZXBlciA9IGZhbHNlOwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiB2aXNpdFJ1bGVzZXQoJHJ1bGVzZXROb2RlKXsKCgoJCWlmKCAkcnVsZXNldE5vZGUtPnJvb3QgKXsKCQkJcmV0dXJuOwoJCX0KCgkJJGFsbEV4dGVuZHMJPSBlbmQoJHRoaXMtPmFsbEV4dGVuZHNTdGFjayk7CgkJJHBhdGhzX2xlbiA9IGNvdW50KCRydWxlc2V0Tm9kZS0+cGF0aHMpOwoKCQkvLyBsb29rIGF0IGVhY2ggc2VsZWN0b3IgcGF0aCBpbiB0aGUgcnVsZXNldCwgZmluZCBhbnkgZXh0ZW5kIG1hdGNoZXMgYW5kIHRoZW4gY29weSwgZmluZCBhbmQgcmVwbGFjZQoJCWZvcmVhY2goJGFsbEV4dGVuZHMgYXMgJGFsbEV4dGVuZCl7CgkJCWZvcigkcGF0aEluZGV4ID0gMDsgJHBhdGhJbmRleCA8ICRwYXRoc19sZW47ICRwYXRoSW5kZXgrKyApewoKCQkJCS8vIGV4dGVuZGluZyBleHRlbmRzIGhhcHBlbnMgaW5pdGlhbGx5LCBiZWZvcmUgdGhlIG1haW4gcGFzcwoJCQkJaWYoIGlzc2V0KCRydWxlc2V0Tm9kZS0+ZXh0ZW5kT25FdmVyeVBhdGgpICYmICRydWxlc2V0Tm9kZS0+ZXh0ZW5kT25FdmVyeVBhdGggKXsKCQkJCQljb250aW51ZTsKCQkJCX0KCgkJCQkkc2VsZWN0b3JQYXRoID0gJHJ1bGVzZXROb2RlLT5wYXRoc1skcGF0aEluZGV4XTsKCgkJCQlpZiggZW5kKCRzZWxlY3RvclBhdGgpLT5leHRlbmRMaXN0ICl7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJJHRoaXMtPkV4dGVuZE1hdGNoKCAkcnVsZXNldE5vZGUsICRhbGxFeHRlbmQsICRzZWxlY3RvclBhdGgpOwoKCQkJfQoJCX0KCX0KCgoJcHJpdmF0ZSBmdW5jdGlvbiBFeHRlbmRNYXRjaCggJHJ1bGVzZXROb2RlLCAkZXh0ZW5kLCAkc2VsZWN0b3JQYXRoICl7CgkJJG1hdGNoZXMgPSAkdGhpcy0+ZmluZE1hdGNoKCRleHRlbmQsICRzZWxlY3RvclBhdGgpOwoKCQlpZiggJG1hdGNoZXMgKXsKCQkJZm9yZWFjaCgkZXh0ZW5kLT5zZWxmU2VsZWN0b3JzIGFzICRzZWxmU2VsZWN0b3IgKXsKCQkJCSRydWxlc2V0Tm9kZS0+cGF0aHNbXSA9ICR0aGlzLT5leHRlbmRTZWxlY3RvcigkbWF0Y2hlcywgJHNlbGVjdG9yUGF0aCwgJHNlbGZTZWxlY3Rvcik7CgkJCX0KCQl9Cgl9CgoKCglwcml2YXRlIGZ1bmN0aW9uIGZpbmRNYXRjaCgkZXh0ZW5kLCAkaGF5c3RhY2tTZWxlY3RvclBhdGggKXsKCgoJCWlmKCAhJHRoaXMtPkhhc01hdGNoZXMoJGV4dGVuZCwgJGhheXN0YWNrU2VsZWN0b3JQYXRoKSApewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCgkJLy8KCQkvLyBsb29rIHRocm91Z2ggdGhlIGhheXN0YWNrIHNlbGVjdG9yIHBhdGggdG8gdHJ5IGFuZCBmaW5kIHRoZSBuZWVkbGUgLSBleHRlbmQuc2VsZWN0b3IKCQkvLyByZXR1cm5zIGFuIGFycmF5IG9mIHNlbGVjdG9yIG1hdGNoZXMgdGhhdCBjYW4gdGhlbiBiZSByZXBsYWNlZAoJCS8vCgkJJG5lZWRsZUVsZW1lbnRzID0gJGV4dGVuZC0+c2VsZWN0b3ItPmVsZW1lbnRzOwoJCSRwb3RlbnRpYWxNYXRjaGVzID0gYXJyYXkoKTsKCQkkcG90ZW50aWFsTWF0Y2hlc19sZW4gPSAwOwoJCSRwb3RlbnRpYWxNYXRjaCA9IG51bGw7CgkJJG1hdGNoZXMgPSBhcnJheSgpOwoKCgoJCS8vIGxvb3AgdGhyb3VnaCB0aGUgaGF5c3RhY2sgZWxlbWVudHMKCQkkaGF5c3RhY2tfcGF0aF9sZW4gPSBjb3VudCgkaGF5c3RhY2tTZWxlY3RvclBhdGgpOwoJCWZvcigkaGF5c3RhY2tTZWxlY3RvckluZGV4ID0gMDsgJGhheXN0YWNrU2VsZWN0b3JJbmRleCA8ICRoYXlzdGFja19wYXRoX2xlbjsgJGhheXN0YWNrU2VsZWN0b3JJbmRleCsrICl7CgkJCSRoYWNrc3RhY2tTZWxlY3RvciA9ICRoYXlzdGFja1NlbGVjdG9yUGF0aFskaGF5c3RhY2tTZWxlY3RvckluZGV4XTsKCgkJCSRoYXlzdGFja19lbGVtZW50c19sZW4gPSBjb3VudCgkaGFja3N0YWNrU2VsZWN0b3ItPmVsZW1lbnRzKTsKCQkJZm9yKCRoYWNrc3RhY2tFbGVtZW50SW5kZXggPSAwOyAkaGFja3N0YWNrRWxlbWVudEluZGV4IDwgJGhheXN0YWNrX2VsZW1lbnRzX2xlbjsgJGhhY2tzdGFja0VsZW1lbnRJbmRleCsrICl7CgoJCQkJJGhheXN0YWNrRWxlbWVudCA9ICRoYWNrc3RhY2tTZWxlY3Rvci0+ZWxlbWVudHNbJGhhY2tzdGFja0VsZW1lbnRJbmRleF07CgoJCQkJLy8gaWYgd2UgYWxsb3cgZWxlbWVudHMgYmVmb3JlIG91ciBtYXRjaCB3ZSBjYW4gYWRkIGEgcG90ZW50aWFsIG1hdGNoIGV2ZXJ5IHRpbWUuIG90aGVyd2lzZSBvbmx5IGF0IHRoZSBmaXJzdCBlbGVtZW50LgoJCQkJaWYoICRleHRlbmQtPmFsbG93QmVmb3JlIHx8ICgkaGF5c3RhY2tTZWxlY3RvckluZGV4ID09PSAwICYmICRoYWNrc3RhY2tFbGVtZW50SW5kZXggPT09IDApICl7CgkJCQkJJHBvdGVudGlhbE1hdGNoZXNbXSA9IGFycmF5KCdwYXRoSW5kZXgnPT4gJGhheXN0YWNrU2VsZWN0b3JJbmRleCwgJ2luZGV4Jz0+ICRoYWNrc3RhY2tFbGVtZW50SW5kZXgsICdtYXRjaGVkJz0+IDAsICdpbml0aWFsQ29tYmluYXRvcic9PiAkaGF5c3RhY2tFbGVtZW50LT5jb21iaW5hdG9yKTsKCQkJCQkkcG90ZW50aWFsTWF0Y2hlc19sZW4rKzsKCQkJCX0KCgkJCQlmb3IoJGkgPSAwOyAkaSA8ICRwb3RlbnRpYWxNYXRjaGVzX2xlbjsgJGkrKyApewoKCQkJCQkkcG90ZW50aWFsTWF0Y2ggPSAmJHBvdGVudGlhbE1hdGNoZXNbJGldOwoJCQkJCSRwb3RlbnRpYWxNYXRjaCA9ICR0aGlzLT5Qb3RlbnRpYWxNYXRjaCggJHBvdGVudGlhbE1hdGNoLCAkbmVlZGxlRWxlbWVudHMsICRoYXlzdGFja0VsZW1lbnQsICRoYWNrc3RhY2tFbGVtZW50SW5kZXggKTsKCgoJCQkJCS8vIGlmIHdlIGFyZSBzdGlsbCB2YWxpZCBhbmQgaGF2ZSBmaW5pc2hlZCwgdGVzdCB3aGV0aGVyIHdlIGhhdmUgZWxlbWVudHMgYWZ0ZXIgYW5kIHdoZXRoZXIgdGhlc2UgYXJlIGFsbG93ZWQKCQkJCQlpZiggJHBvdGVudGlhbE1hdGNoICYmICRwb3RlbnRpYWxNYXRjaFsnbWF0Y2hlZCddID09PSAkZXh0ZW5kLT5zZWxlY3Rvci0+ZWxlbWVudHNfbGVuICl7CgkJCQkJCSRwb3RlbnRpYWxNYXRjaFsnZmluaXNoZWQnXSA9IHRydWU7CgoJCQkJCQlpZiggISRleHRlbmQtPmFsbG93QWZ0ZXIgJiYgKCRoYWNrc3RhY2tFbGVtZW50SW5kZXgrMSA8ICRoYXlzdGFja19lbGVtZW50c19sZW4gfHwgJGhheXN0YWNrU2VsZWN0b3JJbmRleCsxIDwgJGhheXN0YWNrX3BhdGhfbGVuKSApewoJCQkJCQkJJHBvdGVudGlhbE1hdGNoID0gbnVsbDsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gaWYgbnVsbCB3ZSByZW1vdmUsIGlmIG5vdCwgd2UgYXJlIHN0aWxsIHZhbGlkLCBzbyBlaXRoZXIgcHVzaCBhcyBhIHZhbGlkIG1hdGNoIG9yIGNvbnRpbnVlCgkJCQkJaWYoICRwb3RlbnRpYWxNYXRjaCApewoJCQkJCQlpZiggJHBvdGVudGlhbE1hdGNoWydmaW5pc2hlZCddICl7CgkJCQkJCQkkcG90ZW50aWFsTWF0Y2hbJ2xlbmd0aCddID0gJGV4dGVuZC0+c2VsZWN0b3ItPmVsZW1lbnRzX2xlbjsKCQkJCQkJCSRwb3RlbnRpYWxNYXRjaFsnZW5kUGF0aEluZGV4J10gPSAkaGF5c3RhY2tTZWxlY3RvckluZGV4OwoJCQkJCQkJJHBvdGVudGlhbE1hdGNoWydlbmRQYXRoRWxlbWVudEluZGV4J10gPSAkaGFja3N0YWNrRWxlbWVudEluZGV4ICsgMTsgLy8gaW5kZXggYWZ0ZXIgZW5kIG9mIG1hdGNoCgkJCQkJCQkkcG90ZW50aWFsTWF0Y2hlcyA9IGFycmF5KCk7IC8vIHdlIGRvbid0IGFsbG93IG1hdGNoZXMgdG8gb3ZlcmxhcCwgc28gc3RhcnQgbWF0Y2hpbmcgYWdhaW4KCQkJCQkJCSRwb3RlbnRpYWxNYXRjaGVzX2xlbiA9IDA7CgkJCQkJCQkkbWF0Y2hlc1tdID0gJHBvdGVudGlhbE1hdGNoOwoJCQkJCQl9CgkJCQkJCWNvbnRpbnVlOwoJCQkJCX0KCgkJCQkJYXJyYXlfc3BsaWNlKCRwb3RlbnRpYWxNYXRjaGVzLCAkaSwgMSk7CgkJCQkJJHBvdGVudGlhbE1hdGNoZXNfbGVuLS07CgkJCQkJJGktLTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuICRtYXRjaGVzOwoJfQoKCgkvLyBCZWZvcmUgZ29pbmcgdGhyb3VnaCBhbGwgdGhlIG5lc3RlZCBsb29wcywgbGV0cyBjaGVjayB0byBzZWUgaWYgYSBtYXRjaCBpcyBwb3NzaWJsZQoJLy8gUmVkdWNlcyBCb290c3RyYXAgMy4xIGNvbXBpbGUgdGltZSBmcm9tIH42LjVzIHRvIH41LjZzCglwcml2YXRlIGZ1bmN0aW9uIEhhc01hdGNoZXMoJGV4dGVuZCwgJGhheXN0YWNrU2VsZWN0b3JQYXRoKXsKCgkJaWYoICEkZXh0ZW5kLT5zZWxlY3Rvci0+Y2FjaGVhYmxlICl7CgkJCXJldHVybiB0cnVlOwoJCX0KCgkJJGZpcnN0X2VsID0gJGV4dGVuZC0+c2VsZWN0b3ItPl9vZWxlbWVudHNbMF07CgoJCWZvcmVhY2goJGhheXN0YWNrU2VsZWN0b3JQYXRoIGFzICRoYWNrc3RhY2tTZWxlY3Rvcil7CgkJCWlmKCAhJGhhY2tzdGFja1NlbGVjdG9yLT5jYWNoZWFibGUgKXsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgoJCQlpZiggaW5fYXJyYXkoJGZpcnN0X2VsLCAkaGFja3N0YWNrU2VsZWN0b3ItPl9vZWxlbWVudHMpICl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0KCgkJcmV0dXJuIGZhbHNlOwoJfQoKCgkvKioKCSAqIEBwYXJhbSBpbnRlZ2VyICRoYWNrc3RhY2tFbGVtZW50SW5kZXgKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBQb3RlbnRpYWxNYXRjaCggJHBvdGVudGlhbE1hdGNoLCAkbmVlZGxlRWxlbWVudHMsICRoYXlzdGFja0VsZW1lbnQsICRoYWNrc3RhY2tFbGVtZW50SW5kZXggKXsKCgoJCWlmKCAkcG90ZW50aWFsTWF0Y2hbJ21hdGNoZWQnXSA+IDAgKXsKCgkJCS8vIHNlbGVjdG9ycyBhZGQgIiAiIG9udG8gdGhlIGZpcnN0IGVsZW1lbnQuIFdoZW4gd2UgdXNlICYgaXQgam9pbnMgdGhlIHNlbGVjdG9ycyB0b2dldGhlciwgYnV0IGlmIHdlIGRvbid0CgkJCS8vIHRoZW4gZWFjaCBzZWxlY3RvciBpbiBoYXlzdGFja1NlbGVjdG9yUGF0aCBoYXMgYSBzcGFjZSBiZWZvcmUgaXQgYWRkZWQgaW4gdGhlIHRvQ1NTIHBoYXNlLiBzbyB3ZSBuZWVkIHRvIHdvcmsgb3V0CgkJCS8vIHdoYXQgdGhlIHJlc3VsdGluZyBjb21iaW5hdG9yIHdpbGwgYmUKCQkJJHRhcmdldENvbWJpbmF0b3IgPSAkaGF5c3RhY2tFbGVtZW50LT5jb21iaW5hdG9yOwoJCQlpZiggJHRhcmdldENvbWJpbmF0b3IgPT09ICcnICYmICRoYWNrc3RhY2tFbGVtZW50SW5kZXggPT09IDAgKXsKCQkJCSR0YXJnZXRDb21iaW5hdG9yID0gJyAnOwoJCQl9CgoJCQlpZiggJG5lZWRsZUVsZW1lbnRzWyAkcG90ZW50aWFsTWF0Y2hbJ21hdGNoZWQnXSBdLT5jb21iaW5hdG9yICE9PSAkdGFyZ2V0Q29tYmluYXRvciApewoJCQkJcmV0dXJuIG51bGw7CgkJCX0KCQl9CgoJCS8vIGlmIHdlIGRvbid0IG1hdGNoLCBudWxsIG91ciBtYXRjaCB0byBpbmRpY2F0ZSBmYWlsdXJlCgkJaWYoICEkdGhpcy0+aXNFbGVtZW50VmFsdWVzRXF1YWwoICRuZWVkbGVFbGVtZW50c1skcG90ZW50aWFsTWF0Y2hbJ21hdGNoZWQnXSBdLT52YWx1ZSwgJGhheXN0YWNrRWxlbWVudC0+dmFsdWUpICl7CgkJCXJldHVybiBudWxsOwoJCX0KCgkJJHBvdGVudGlhbE1hdGNoWydmaW5pc2hlZCddID0gZmFsc2U7CgkJJHBvdGVudGlhbE1hdGNoWydtYXRjaGVkJ10rKzsKCgkJcmV0dXJuICRwb3RlbnRpYWxNYXRjaDsKCX0KCgoJcHJpdmF0ZSBmdW5jdGlvbiBpc0VsZW1lbnRWYWx1ZXNFcXVhbCggJGVsZW1lbnRWYWx1ZTEsICRlbGVtZW50VmFsdWUyICl7CgoJCWlmKCAkZWxlbWVudFZhbHVlMSA9PT0gJGVsZW1lbnRWYWx1ZTIgKXsKCQkJcmV0dXJuIHRydWU7CgkJfQoKCQlpZiggaXNfc3RyaW5nKCRlbGVtZW50VmFsdWUxKSB8fCBpc19zdHJpbmcoJGVsZW1lbnRWYWx1ZTIpICkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlpZiggJGVsZW1lbnRWYWx1ZTEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfQXR0cmlidXRlICl7CgkJCXJldHVybiAkdGhpcy0+aXNBdHRyaWJ1dGVWYWx1ZXNFcXVhbCggJGVsZW1lbnRWYWx1ZTEsICRlbGVtZW50VmFsdWUyICk7CgkJfQoKCQkkZWxlbWVudFZhbHVlMSA9ICRlbGVtZW50VmFsdWUxLT52YWx1ZTsKCQlpZiggJGVsZW1lbnRWYWx1ZTEgaW5zdGFuY2VvZiBMZXNzX1RyZWVfU2VsZWN0b3IgKXsKCQkJcmV0dXJuICR0aGlzLT5pc1NlbGVjdG9yVmFsdWVzRXF1YWwoICRlbGVtZW50VmFsdWUxLCAkZWxlbWVudFZhbHVlMiApOwoJCX0KCgkJcmV0dXJuIGZhbHNlOwoJfQoKCgkvKioKCSAqIEBwYXJhbSBMZXNzX1RyZWVfU2VsZWN0b3IgJGVsZW1lbnRWYWx1ZTEKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBpc1NlbGVjdG9yVmFsdWVzRXF1YWwoICRlbGVtZW50VmFsdWUxLCAkZWxlbWVudFZhbHVlMiApewoKCQkkZWxlbWVudFZhbHVlMiA9ICRlbGVtZW50VmFsdWUyLT52YWx1ZTsKCQlpZiggISgkZWxlbWVudFZhbHVlMiBpbnN0YW5jZW9mIExlc3NfVHJlZV9TZWxlY3RvcikgfHwgJGVsZW1lbnRWYWx1ZTEtPmVsZW1lbnRzX2xlbiAhPT0gJGVsZW1lbnRWYWx1ZTItPmVsZW1lbnRzX2xlbiApewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlmb3IoICRpID0gMDsgJGkgPCAkZWxlbWVudFZhbHVlMS0+ZWxlbWVudHNfbGVuOyAkaSsrICl7CgoJCQlpZiggJGVsZW1lbnRWYWx1ZTEtPmVsZW1lbnRzWyRpXS0+Y29tYmluYXRvciAhPT0gJGVsZW1lbnRWYWx1ZTItPmVsZW1lbnRzWyRpXS0+Y29tYmluYXRvciApewoJCQkJaWYoICRpICE9PSAwIHx8ICgkZWxlbWVudFZhbHVlMS0+ZWxlbWVudHNbJGldLT5jb21iaW5hdG9yIHx8ICcgJykgIT09ICgkZWxlbWVudFZhbHVlMi0+ZWxlbWVudHNbJGldLT5jb21iaW5hdG9yIHx8ICcgJykgKXsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0KCgkJCWlmKCAhJHRoaXMtPmlzRWxlbWVudFZhbHVlc0VxdWFsKCRlbGVtZW50VmFsdWUxLT5lbGVtZW50c1skaV0tPnZhbHVlLCAkZWxlbWVudFZhbHVlMi0+ZWxlbWVudHNbJGldLT52YWx1ZSkgKXsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRydWU7Cgl9CgoKCS8qKgoJICogQHBhcmFtIExlc3NfVHJlZV9BdHRyaWJ1dGUgJGVsZW1lbnRWYWx1ZTEKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBpc0F0dHJpYnV0ZVZhbHVlc0VxdWFsKCAkZWxlbWVudFZhbHVlMSwgJGVsZW1lbnRWYWx1ZTIgKXsKCgkJaWYoICRlbGVtZW50VmFsdWUxLT5vcCAhPT0gJGVsZW1lbnRWYWx1ZTItPm9wIHx8ICRlbGVtZW50VmFsdWUxLT5rZXkgIT09ICRlbGVtZW50VmFsdWUyLT5rZXkgKXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJaWYoICEkZWxlbWVudFZhbHVlMS0+dmFsdWUgfHwgISRlbGVtZW50VmFsdWUyLT52YWx1ZSApewoJCQlpZiggJGVsZW1lbnRWYWx1ZTEtPnZhbHVlIHx8ICRlbGVtZW50VmFsdWUyLT52YWx1ZSApIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgoJCSRlbGVtZW50VmFsdWUxID0gKCRlbGVtZW50VmFsdWUxLT52YWx1ZS0+dmFsdWUgPyAkZWxlbWVudFZhbHVlMS0+dmFsdWUtPnZhbHVlIDogJGVsZW1lbnRWYWx1ZTEtPnZhbHVlICk7CgkJJGVsZW1lbnRWYWx1ZTIgPSAoJGVsZW1lbnRWYWx1ZTItPnZhbHVlLT52YWx1ZSA/ICRlbGVtZW50VmFsdWUyLT52YWx1ZS0+dmFsdWUgOiAkZWxlbWVudFZhbHVlMi0+dmFsdWUgKTsKCgkJcmV0dXJuICRlbGVtZW50VmFsdWUxID09PSAkZWxlbWVudFZhbHVlMjsKCX0KCgoJcHJpdmF0ZSBmdW5jdGlvbiBleHRlbmRTZWxlY3RvcigkbWF0Y2hlcywgJHNlbGVjdG9yUGF0aCwgJHJlcGxhY2VtZW50U2VsZWN0b3IpewoKCQkvL2ZvciBhIHNldCBvZiBtYXRjaGVzLCByZXBsYWNlIGVhY2ggbWF0Y2ggd2l0aCB0aGUgcmVwbGFjZW1lbnQgc2VsZWN0b3IKCgkJJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleCA9IDA7CgkJJGN1cnJlbnRTZWxlY3RvclBhdGhFbGVtZW50SW5kZXggPSAwOwoJCSRwYXRoID0gYXJyYXkoKTsKCQkkc2VsZWN0b3JQYXRoX2xlbiA9IGNvdW50KCRzZWxlY3RvclBhdGgpOwoKCQlmb3IoJG1hdGNoSW5kZXggPSAwLCAkbWF0Y2hlc19sZW4gPSBjb3VudCgkbWF0Y2hlcyk7ICRtYXRjaEluZGV4IDwgJG1hdGNoZXNfbGVuOyAkbWF0Y2hJbmRleCsrICl7CgoKCQkJJG1hdGNoID0gJG1hdGNoZXNbJG1hdGNoSW5kZXhdOwoJCQkkc2VsZWN0b3IgPSAkc2VsZWN0b3JQYXRoWyAkbWF0Y2hbJ3BhdGhJbmRleCddIF07CgoJCQkkZmlyc3RFbGVtZW50ID0gbmV3IExlc3NfVHJlZV9FbGVtZW50KAoJCQkJJG1hdGNoWydpbml0aWFsQ29tYmluYXRvciddLAoJCQkJJHJlcGxhY2VtZW50U2VsZWN0b3ItPmVsZW1lbnRzWzBdLT52YWx1ZSwKCQkJCSRyZXBsYWNlbWVudFNlbGVjdG9yLT5lbGVtZW50c1swXS0+aW5kZXgsCgkJCQkkcmVwbGFjZW1lbnRTZWxlY3Rvci0+ZWxlbWVudHNbMF0tPmN1cnJlbnRGaWxlSW5mbwoJCQkpOwoKCQkJaWYoICRtYXRjaFsncGF0aEluZGV4J10gPiAkY3VycmVudFNlbGVjdG9yUGF0aEluZGV4ICYmICRjdXJyZW50U2VsZWN0b3JQYXRoRWxlbWVudEluZGV4ID4gMCApewoJCQkJJGxhc3RfcGF0aCA9IGVuZCgkcGF0aCk7CgkJCQkkbGFzdF9wYXRoLT5lbGVtZW50cyA9IGFycmF5X21lcmdlKCAkbGFzdF9wYXRoLT5lbGVtZW50cywgYXJyYXlfc2xpY2UoICRzZWxlY3RvclBhdGhbJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleF0tPmVsZW1lbnRzLCAkY3VycmVudFNlbGVjdG9yUGF0aEVsZW1lbnRJbmRleCkpOwoJCQkJJGN1cnJlbnRTZWxlY3RvclBhdGhFbGVtZW50SW5kZXggPSAwOwoJCQkJJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleCsrOwoJCQl9CgoJCQkkbmV3RWxlbWVudHMgPSBhcnJheV9tZXJnZSgKCQkJCWFycmF5X3NsaWNlKCRzZWxlY3Rvci0+ZWxlbWVudHMsICRjdXJyZW50U2VsZWN0b3JQYXRoRWxlbWVudEluZGV4LCAoJG1hdGNoWydpbmRleCddIC0gJGN1cnJlbnRTZWxlY3RvclBhdGhFbGVtZW50SW5kZXgpICkgLy8gbGFzdCBwYXJhbWV0ZXIgb2YgYXJyYXlfc2xpY2UgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGxhc3QgcGFyYW1ldGVyIG9mIGphdmFzY3JpcHQncyBzbGljZQoJCQkJLCBhcnJheSgkZmlyc3RFbGVtZW50KQoJCQkJLCBhcnJheV9zbGljZSgkcmVwbGFjZW1lbnRTZWxlY3Rvci0+ZWxlbWVudHMsMSkKCQkJCSk7CgoJCQlpZiggJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleCA9PT0gJG1hdGNoWydwYXRoSW5kZXgnXSAmJiAkbWF0Y2hJbmRleCA+IDAgKXsKCQkJCSRsYXN0X2tleSA9IGNvdW50KCRwYXRoKS0xOwoJCQkJJHBhdGhbJGxhc3Rfa2V5XS0+ZWxlbWVudHMgPSBhcnJheV9tZXJnZSgkcGF0aFskbGFzdF9rZXldLT5lbGVtZW50cywkbmV3RWxlbWVudHMpOwoJCQl9ZWxzZXsKCQkJCSRwYXRoID0gYXJyYXlfbWVyZ2UoICRwYXRoLCBhcnJheV9zbGljZSggJHNlbGVjdG9yUGF0aCwgJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleCwgJG1hdGNoWydwYXRoSW5kZXgnXSApKTsKCQkJCSRwYXRoW10gPSBuZXcgTGVzc19UcmVlX1NlbGVjdG9yKCAkbmV3RWxlbWVudHMgKTsKCQkJfQoKCQkJJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleCA9ICRtYXRjaFsnZW5kUGF0aEluZGV4J107CgkJCSRjdXJyZW50U2VsZWN0b3JQYXRoRWxlbWVudEluZGV4ID0gJG1hdGNoWydlbmRQYXRoRWxlbWVudEluZGV4J107CgkJCWlmKCAkY3VycmVudFNlbGVjdG9yUGF0aEVsZW1lbnRJbmRleCA+PSBjb3VudCgkc2VsZWN0b3JQYXRoWyRjdXJyZW50U2VsZWN0b3JQYXRoSW5kZXhdLT5lbGVtZW50cykgKXsKCQkJCSRjdXJyZW50U2VsZWN0b3JQYXRoRWxlbWVudEluZGV4ID0gMDsKCQkJCSRjdXJyZW50U2VsZWN0b3JQYXRoSW5kZXgrKzsKCQkJfQoJCX0KCgkJaWYoICRjdXJyZW50U2VsZWN0b3JQYXRoSW5kZXggPCAkc2VsZWN0b3JQYXRoX2xlbiAmJiAkY3VycmVudFNlbGVjdG9yUGF0aEVsZW1lbnRJbmRleCA+IDAgKXsKCQkJJGxhc3RfcGF0aCA9IGVuZCgkcGF0aCk7CgkJCSRsYXN0X3BhdGgtPmVsZW1lbnRzID0gYXJyYXlfbWVyZ2UoICRsYXN0X3BhdGgtPmVsZW1lbnRzLCBhcnJheV9zbGljZSgkc2VsZWN0b3JQYXRoWyRjdXJyZW50U2VsZWN0b3JQYXRoSW5kZXhdLT5lbGVtZW50cywgJGN1cnJlbnRTZWxlY3RvclBhdGhFbGVtZW50SW5kZXgpKTsKCQkJJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleCsrOwoJCX0KCgkJJHNsaWNlX2xlbiA9ICRzZWxlY3RvclBhdGhfbGVuIC0gJGN1cnJlbnRTZWxlY3RvclBhdGhJbmRleDsKCQkkcGF0aCA9IGFycmF5X21lcmdlKCRwYXRoLCBhcnJheV9zbGljZSgkc2VsZWN0b3JQYXRoLCAkY3VycmVudFNlbGVjdG9yUGF0aEluZGV4LCAkc2xpY2VfbGVuKSk7CgoJCXJldHVybiAkcGF0aDsKCX0KCgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHZpc2l0TWVkaWEoICRtZWRpYU5vZGUgKXsKCQkkbmV3QWxsRXh0ZW5kcyA9IGFycmF5X21lcmdlKCAkbWVkaWFOb2RlLT5hbGxFeHRlbmRzLCBlbmQoJHRoaXMtPmFsbEV4dGVuZHNTdGFjaykgKTsKCQkkdGhpcy0+YWxsRXh0ZW5kc1N0YWNrW10gPSAkdGhpcy0+ZG9FeHRlbmRDaGFpbmluZygkbmV3QWxsRXh0ZW5kcywgJG1lZGlhTm9kZS0+YWxsRXh0ZW5kcyk7Cgl9CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHZpc2l0TWVkaWFPdXQoKXsKCQlhcnJheV9wb3AoICR0aGlzLT5hbGxFeHRlbmRzU3RhY2sgKTsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gdmlzaXREaXJlY3RpdmUoICRkaXJlY3RpdmVOb2RlICl7CgkJJG5ld0FsbEV4dGVuZHMgPSBhcnJheV9tZXJnZSggJGRpcmVjdGl2ZU5vZGUtPmFsbEV4dGVuZHMsIGVuZCgkdGhpcy0+YWxsRXh0ZW5kc1N0YWNrKSApOwoJCSR0aGlzLT5hbGxFeHRlbmRzU3RhY2tbXSA9ICR0aGlzLT5kb0V4dGVuZENoYWluaW5nKCRuZXdBbGxFeHRlbmRzLCAkZGlyZWN0aXZlTm9kZS0+YWxsRXh0ZW5kcyk7Cgl9CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHZpc2l0RGlyZWN0aXZlT3V0KCl7CgkJYXJyYXlfcG9wKCR0aGlzLT5hbGxFeHRlbmRzU3RhY2spOwoJfQoKfQ==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/Visitor/toCSS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiB0b0NTUyBWaXNpdG9yCiAqCiAqIEBwYWNrYWdlIExlc3MKICogQHN1YnBhY2thZ2UgdmlzaXRvcgogKi8KY2xhc3MgTGVzc19WaXNpdG9yX3RvQ1NTIGV4dGVuZHMgTGVzc19WaXNpdG9yUmVwbGFjaW5newoKCXByaXZhdGUgJGNoYXJzZXQ7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7CgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoJfQoKCS8qKgoJICogQHBhcmFtIExlc3NfVHJlZV9SdWxlc2V0ICRyb290CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBydW4oICRyb290ICl7CgkJcmV0dXJuICR0aGlzLT52aXNpdE9iaigkcm9vdCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHZpc2l0UnVsZSggJHJ1bGVOb2RlICl7CgkJaWYoICRydWxlTm9kZS0+dmFyaWFibGUgKXsKCQkJcmV0dXJuIGFycmF5KCk7CgkJfQoJCXJldHVybiAkcnVsZU5vZGU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHZpc2l0TWl4aW5EZWZpbml0aW9uKCRtaXhpbk5vZGUpewoJCS8vIG1peGluIGRlZmluaXRpb25zIGRvIG5vdCBnZXQgZXZhbCdkIC0gdGhpcyBtZWFucyB0aGV5IGtlZXAgc3RhdGUKCQkvLyBzbyB3ZSBoYXZlIHRvIGNsZWFyIHRoYXQgc3RhdGUgaGVyZSBzbyBpdCBpc24ndCB1c2VkIGlmIHRvQ1NTIGlzIGNhbGxlZCB0d2ljZQoJCSRtaXhpbk5vZGUtPmZyYW1lcyA9IGFycmF5KCk7CgkJcmV0dXJuIGFycmF5KCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHZpc2l0RXh0ZW5kKCl7CgkJcmV0dXJuIGFycmF5KCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHZpc2l0Q29tbWVudCggJGNvbW1lbnROb2RlICl7CgkJaWYoICRjb21tZW50Tm9kZS0+aXNTaWxlbnQoKSApewoJCQlyZXR1cm4gYXJyYXkoKTsKCQl9CgkJcmV0dXJuICRjb21tZW50Tm9kZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdmlzaXRNZWRpYSggJG1lZGlhTm9kZSwgJiR2aXNpdERlZXBlciApewoJCSRtZWRpYU5vZGUtPmFjY2VwdCgkdGhpcyk7CgkJJHZpc2l0RGVlcGVyID0gZmFsc2U7CgoJCWlmKCAhJG1lZGlhTm9kZS0+cnVsZXMgKXsKCQkJcmV0dXJuIGFycmF5KCk7CgkJfQoJCXJldHVybiAkbWVkaWFOb2RlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB2aXNpdERpcmVjdGl2ZSggJGRpcmVjdGl2ZU5vZGUgKXsKCQlpZiggaXNzZXQoJGRpcmVjdGl2ZU5vZGUtPmN1cnJlbnRGaWxlSW5mb1sncmVmZXJlbmNlJ10pICYmICghcHJvcGVydHlfZXhpc3RzKCRkaXJlY3RpdmVOb2RlLCdpc1JlZmVyZW5jZWQnKSB8fCAhJGRpcmVjdGl2ZU5vZGUtPmlzUmVmZXJlbmNlZCkgKXsKCQkJcmV0dXJuIGFycmF5KCk7CgkJfQoJCWlmKCAkZGlyZWN0aXZlTm9kZS0+bmFtZSA9PT0gJ0BjaGFyc2V0JyApewoJCQkvLyBPbmx5IG91dHB1dCB0aGUgZGVidWcgaW5mbyB0b2dldGhlciB3aXRoIHN1YnNlcXVlbnQgQGNoYXJzZXQgZGVmaW5pdGlvbnMKCQkJLy8gYSBjb21tZW50IChvciBAbWVkaWEgc3RhdGVtZW50KSBiZWZvcmUgdGhlIGFjdHVhbCBAY2hhcnNldCBkaXJlY3RpdmUgd291bGQKCQkJLy8gYmUgY29uc2lkZXJlZCBpbGxlZ2FsIGNzcyBhcyBpdCBoYXMgdG8gYmUgb24gdGhlIGZpcnN0IGxpbmUKCQkJaWYoIGlzc2V0KCR0aGlzLT5jaGFyc2V0KSAmJiAkdGhpcy0+Y2hhcnNldCApewoKCQkJCS8vaWYoICRkaXJlY3RpdmVOb2RlLT5kZWJ1Z0luZm8gKXsKCQkJCS8vCSRjb21tZW50ID0gbmV3IExlc3NfVHJlZV9Db21tZW50KCcvKiAnIC4gc3RyX3JlcGxhY2UoIlxuIiwnJywkZGlyZWN0aXZlTm9kZS0+dG9DU1MoKSkuIiAqL1xuIik7CgkJCQkvLwkkY29tbWVudC0+ZGVidWdJbmZvID0gJGRpcmVjdGl2ZU5vZGUtPmRlYnVnSW5mbzsKCQkJCS8vCXJldHVybiAkdGhpcy0+dmlzaXQoJGNvbW1lbnQpOwoJCQkJLy99CgoKCQkJCXJldHVybiBhcnJheSgpOwoJCQl9CgkJCSR0aGlzLT5jaGFyc2V0ID0gdHJ1ZTsKCQl9CgkJcmV0dXJuICRkaXJlY3RpdmVOb2RlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjaGVja1Byb3BlcnRpZXNJblJvb3QoICRydWxlc2V0Tm9kZSApewoKCQlpZiggISRydWxlc2V0Tm9kZS0+Zmlyc3RSb290ICl7CgkJCXJldHVybjsKCQl9CgoJCWZvcmVhY2goJHJ1bGVzZXROb2RlLT5ydWxlcyBhcyAkcnVsZU5vZGUpewoJCQlpZiggJHJ1bGVOb2RlIGluc3RhbmNlb2YgTGVzc19UcmVlX1J1bGUgJiYgISRydWxlTm9kZS0+dmFyaWFibGUgKXsKCQkJCSRtc2cgPSAicHJvcGVydGllcyBtdXN0IGJlIGluc2lkZSBzZWxlY3RvciBibG9ja3MsIHRoZXkgY2Fubm90IGJlIGluIHRoZSByb290LiBJbmRleCAiLiRydWxlTm9kZS0+aW5kZXguKCRydWxlTm9kZS0+Y3VycmVudEZpbGVJbmZvID8gKCcgRmlsZW5hbWU6ICcuJHJ1bGVOb2RlLT5jdXJyZW50RmlsZUluZm9bJ2ZpbGVuYW1lJ10pIDogbnVsbCk7CgkJCQl0aHJvdyBuZXcgTGVzc19FeGNlcHRpb25fQ29tcGlsZXIoJG1zZyk7CgkJCX0KCQl9Cgl9CgoKCXB1YmxpYyBmdW5jdGlvbiB2aXNpdFJ1bGVzZXQoICRydWxlc2V0Tm9kZSwgJiR2aXNpdERlZXBlciApewoKCQkkdmlzaXREZWVwZXIgPSBmYWxzZTsKCgkJJHRoaXMtPmNoZWNrUHJvcGVydGllc0luUm9vdCggJHJ1bGVzZXROb2RlICk7CgoJCWlmKCAkcnVsZXNldE5vZGUtPnJvb3QgKXsKCQkJcmV0dXJuICR0aGlzLT52aXNpdFJ1bGVzZXRSb290KCAkcnVsZXNldE5vZGUgKTsKCQl9CgoJCSRydWxlc2V0cyA9IGFycmF5KCk7CgkJJHJ1bGVzZXROb2RlLT5wYXRocyA9ICR0aGlzLT52aXNpdFJ1bGVzZXRQYXRocygkcnVsZXNldE5vZGUpOwoKCgkJLy8gQ29tcGlsZSBydWxlcyBhbmQgcnVsZXNldHMKCQkkbm9kZVJ1bGVDbnQgPSBjb3VudCgkcnVsZXNldE5vZGUtPnJ1bGVzKTsKCQlmb3IoICRpID0gMDsgJGkgPCAkbm9kZVJ1bGVDbnQ7ICl7CgkJCSRydWxlID0gJHJ1bGVzZXROb2RlLT5ydWxlc1skaV07CgoJCQlpZiggcHJvcGVydHlfZXhpc3RzKCRydWxlLCdydWxlcycpICl7CgkJCQkvLyB2aXNpdCBiZWNhdXNlIHdlIGFyZSBtb3ZpbmcgdGhlbSBvdXQgZnJvbSBiZWluZyBhIGNoaWxkCgkJCQkkcnVsZXNldHNbXSA9ICR0aGlzLT52aXNpdE9iaigkcnVsZSk7CgkJCQlhcnJheV9zcGxpY2UoJHJ1bGVzZXROb2RlLT5ydWxlcywkaSwxKTsKCQkJCSRub2RlUnVsZUNudC0tOwoJCQkJY29udGludWU7CgkJCX0KCQkJJGkrKzsKCQl9CgoKCQkvLyBhY2NlcHQgdGhlIHZpc2l0b3IgdG8gcmVtb3ZlIHJ1bGVzIGFuZCByZWZhY3RvciBpdHNlbGYKCQkvLyB0aGVuIHdlIGNhbiBkZWNpZGUgbm93IHdoZXRoZXIgd2Ugd2FudCBpdCBvciBub3QKCQlpZiggJG5vZGVSdWxlQ250ID4gMCApewoJCQkkcnVsZXNldE5vZGUtPmFjY2VwdCgkdGhpcyk7CgoJCQlpZiggJHJ1bGVzZXROb2RlLT5ydWxlcyApewoKCQkJCWlmKCBjb3VudCgkcnVsZXNldE5vZGUtPnJ1bGVzKSA+ICAxICl7CgkJCQkJJHRoaXMtPl9tZXJnZVJ1bGVzKCAkcnVsZXNldE5vZGUtPnJ1bGVzICk7CgkJCQkJJHRoaXMtPl9yZW1vdmVEdXBsaWNhdGVSdWxlcyggJHJ1bGVzZXROb2RlLT5ydWxlcyApOwoJCQkJfQoKCQkJCS8vIG5vdyBkZWNpZGUgd2hldGhlciB3ZSBrZWVwIHRoZSBydWxlc2V0CgkJCQlpZiggJHJ1bGVzZXROb2RlLT5wYXRocyApewoJCQkJCS8vYXJyYXlfdW5zaGlmdCgkcnVsZXNldHMsICRydWxlc2V0Tm9kZSk7CgkJCQkJYXJyYXlfc3BsaWNlKCRydWxlc2V0cywwLDAsYXJyYXkoJHJ1bGVzZXROb2RlKSk7CgkJCQl9CgkJCX0KCgkJfQoKCgkJaWYoIGNvdW50KCRydWxlc2V0cykgPT09IDEgKXsKCQkJcmV0dXJuICRydWxlc2V0c1swXTsKCQl9CgkJcmV0dXJuICRydWxlc2V0czsKCX0KCgoJLyoqCgkgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHZpc2l0aVJ1bGVzZXQKCSAqCgkgKiByZXR1cm4gYXJyYXl8TGVzc19UcmVlX1J1bGVzZXQKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiB2aXNpdFJ1bGVzZXRSb290KCAkcnVsZXNldE5vZGUgKXsKCQkkcnVsZXNldE5vZGUtPmFjY2VwdCggJHRoaXMgKTsKCQlpZiggJHJ1bGVzZXROb2RlLT5maXJzdFJvb3QgfHwgJHJ1bGVzZXROb2RlLT5ydWxlcyApewoJCQlyZXR1cm4gJHJ1bGVzZXROb2RlOwoJCX0KCQlyZXR1cm4gYXJyYXkoKTsKCX0KCgoJLyoqCgkgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHZpc2l0UnVsZXNldCgpCgkgKgoJICogQHJldHVybiBhcnJheQoJICovCglwcml2YXRlIGZ1bmN0aW9uIHZpc2l0UnVsZXNldFBhdGhzKCRydWxlc2V0Tm9kZSl7CgoJCSRwYXRocyA9IGFycmF5KCk7CgkJZm9yZWFjaCgkcnVsZXNldE5vZGUtPnBhdGhzIGFzICRwKXsKCQkJaWYoICRwWzBdLT5lbGVtZW50c1swXS0+Y29tYmluYXRvciA9PT0gJyAnICl7CgkJCQkkcFswXS0+ZWxlbWVudHNbMF0tPmNvbWJpbmF0b3IgPSAnJzsKCQkJfQoKCQkJZm9yZWFjaCgkcCBhcyAkcGkpewoJCQkJaWYoICRwaS0+Z2V0SXNSZWZlcmVuY2VkKCkgJiYgJHBpLT5nZXRJc091dHB1dCgpICl7CgkJCQkJJHBhdGhzW10gPSAkcDsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuICRwYXRoczsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gX3JlbW92ZUR1cGxpY2F0ZVJ1bGVzKCAmJHJ1bGVzICl7CgkJLy8gcmVtb3ZlIGR1cGxpY2F0ZXMKCQkkcnVsZUNhY2hlID0gYXJyYXkoKTsKCQlmb3IoICRpID0gY291bnQoJHJ1bGVzKS0xOyAkaSA+PSAwIDsgJGktLSApewoJCQkkcnVsZSA9ICRydWxlc1skaV07CgkJCWlmKCAkcnVsZSBpbnN0YW5jZW9mIExlc3NfVHJlZV9SdWxlIHx8ICRydWxlIGluc3RhbmNlb2YgTGVzc19UcmVlX05hbWVWYWx1ZSApewoKCQkJCWlmKCAhaXNzZXQoJHJ1bGVDYWNoZVskcnVsZS0+bmFtZV0pICl7CgkJCQkJJHJ1bGVDYWNoZVskcnVsZS0+bmFtZV0gPSAkcnVsZTsKCQkJCX1lbHNlewoJCQkJCSRydWxlTGlzdCA9JiAkcnVsZUNhY2hlWyRydWxlLT5uYW1lXTsKCgkJCQkJaWYoICRydWxlTGlzdCBpbnN0YW5jZW9mIExlc3NfVHJlZV9SdWxlIHx8ICRydWxlTGlzdCBpbnN0YW5jZW9mIExlc3NfVHJlZV9OYW1lVmFsdWUgKXsKCQkJCQkJJHJ1bGVMaXN0ID0gJHJ1bGVDYWNoZVskcnVsZS0+bmFtZV0gPSBhcnJheSggJHJ1bGVDYWNoZVskcnVsZS0+bmFtZV0tPnRvQ1NTKCkgKTsKCQkJCQl9CgoJCQkJCSRydWxlQ1NTID0gJHJ1bGUtPnRvQ1NTKCk7CgkJCQkJaWYoIGFycmF5X3NlYXJjaCgkcnVsZUNTUywkcnVsZUxpc3QpICE9PSBmYWxzZSApewoJCQkJCQlhcnJheV9zcGxpY2UoJHJ1bGVzLCRpLDEpOwoJCQkJCX1lbHNlewoJCQkJCQkkcnVsZUxpc3RbXSA9ICRydWxlQ1NTOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gX21lcmdlUnVsZXMoICYkcnVsZXMgKXsKCQkkZ3JvdXBzID0gYXJyYXkoKTsKCgkJLy9vYmooJHJ1bGVzKTsKCgkJJHJ1bGVzX2xlbiA9IGNvdW50KCRydWxlcyk7CgkJZm9yKCAkaSA9IDA7ICRpIDwgJHJ1bGVzX2xlbjsgJGkrKyApewoJCQkkcnVsZSA9ICRydWxlc1skaV07CgoJCQlpZiggKCRydWxlIGluc3RhbmNlb2YgTGVzc19UcmVlX1J1bGUpICYmICRydWxlLT5tZXJnZSApewoKCQkJCSRrZXkgPSAkcnVsZS0+bmFtZTsKCQkJCWlmKCAkcnVsZS0+aW1wb3J0YW50ICl7CgkJCQkJJGtleSAuPSAnLCEnOwoJCQkJfQoKCQkJCWlmKCAhaXNzZXQoJGdyb3Vwc1ska2V5XSkgKXsKCQkJCQkkZ3JvdXBzWyRrZXldID0gYXJyYXkoKTsKCQkJCX1lbHNlewoJCQkJCWFycmF5X3NwbGljZSgkcnVsZXMsICRpLS0sIDEpOwoJCQkJCSRydWxlc19sZW4tLTsKCQkJCX0KCgkJCQkkZ3JvdXBzWyRrZXldW10gPSAkcnVsZTsKCQkJfQoJCX0KCgoJCWZvcmVhY2goJGdyb3VwcyBhcyAkcGFydHMpewoKCQkJaWYoIGNvdW50KCRwYXJ0cykgPiAxICl7CgkJCQkkcnVsZSA9ICRwYXJ0c1swXTsKCQkJCSRzcGFjZWRHcm91cHMgPSBhcnJheSgpOwoJCQkJJGxhc3RTcGFjZWRHcm91cCA9IGFycmF5KCk7CgkJCQkkcGFydHNfbWFwcGVkID0gYXJyYXkoKTsKCQkJCWZvcmVhY2goJHBhcnRzIGFzICRwKXsKCQkJCQlpZiggJHAtPm1lcmdlID09PSAnKycgKXsKCQkJCQkJaWYoICRsYXN0U3BhY2VkR3JvdXAgKXsKCQkJCQkJCSRzcGFjZWRHcm91cHNbXSA9IHNlbGY6OnRvRXhwcmVzc2lvbigkbGFzdFNwYWNlZEdyb3VwKTsKCQkJCQkJfQoJCQkJCQkkbGFzdFNwYWNlZEdyb3VwID0gYXJyYXkoKTsKCQkJCQl9CgkJCQkJJGxhc3RTcGFjZWRHcm91cFtdID0gJHA7CgkJCQl9CgoJCQkJJHNwYWNlZEdyb3Vwc1tdID0gc2VsZjo6dG9FeHByZXNzaW9uKCRsYXN0U3BhY2VkR3JvdXApOwoJCQkJJHJ1bGUtPnZhbHVlID0gc2VsZjo6dG9WYWx1ZSgkc3BhY2VkR3JvdXBzKTsKCQkJfQoJCX0KCgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0b0V4cHJlc3Npb24oJHZhbHVlcyl7CgkJJG1hcHBlZCA9IGFycmF5KCk7CgkJZm9yZWFjaCgkdmFsdWVzIGFzICRwKXsKCQkJJG1hcHBlZFtdID0gJHAtPnZhbHVlOwoJCX0KCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9FeHByZXNzaW9uKCAkbWFwcGVkICk7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0b1ZhbHVlKCR2YWx1ZXMpewoJCS8vcmV0dXJuIG5ldyBMZXNzX1RyZWVfVmFsdWUoJHZhbHVlcyk7ID8/CgoJCSRtYXBwZWQgPSBhcnJheSgpOwoJCWZvcmVhY2goJHZhbHVlcyBhcyAkcCl7CgkJCSRtYXBwZWRbXSA9ICRwOwoJCX0KCQlyZXR1cm4gbmV3IExlc3NfVHJlZV9WYWx1ZSgkbWFwcGVkKTsKCX0KfQoK]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/Less/VisitorReplacing.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBSZXBsYWNpbmcgVmlzaXRvcgogKgogKiBAcGFja2FnZSBMZXNzCiAqIEBzdWJwYWNrYWdlIHZpc2l0b3IKICovCmNsYXNzIExlc3NfVmlzaXRvclJlcGxhY2luZyBleHRlbmRzIExlc3NfVmlzaXRvcnsKCglwdWJsaWMgZnVuY3Rpb24gdmlzaXRPYmooICRub2RlICl7CgoJCSRmdW5jTmFtZSA9ICd2aXNpdCcuJG5vZGUtPnR5cGU7CgkJaWYoIGlzc2V0KCR0aGlzLT5fdmlzaXRGbkNhY2hlWyRmdW5jTmFtZV0pICl7CgoJCQkkdmlzaXREZWVwZXIgPSB0cnVlOwoJCQkkbm9kZSA9ICR0aGlzLT4kZnVuY05hbWUoICRub2RlLCAkdmlzaXREZWVwZXIgKTsKCgkJCWlmKCAkbm9kZSApewoJCQkJaWYoICR2aXNpdERlZXBlciAmJiBpc19vYmplY3QoJG5vZGUpICl7CgkJCQkJJG5vZGUtPmFjY2VwdCgkdGhpcyk7CgkJCQl9CgoJCQkJJGZ1bmNOYW1lID0gJGZ1bmNOYW1lIC4gIk91dCI7CgkJCQlpZiggaXNzZXQoJHRoaXMtPl92aXNpdEZuQ2FjaGVbJGZ1bmNOYW1lXSkgKXsKCQkJCQkkdGhpcy0+JGZ1bmNOYW1lKCAkbm9kZSApOwoJCQkJfQoJCQl9CgoJCX1lbHNlewoJCQkkbm9kZS0+YWNjZXB0KCR0aGlzKTsKCQl9CgoJCXJldHVybiAkbm9kZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdmlzaXRBcnJheSggJG5vZGVzICl7CgoJCSRuZXdOb2RlcyA9IGFycmF5KCk7CgkJZm9yZWFjaCgkbm9kZXMgYXMgJG5vZGUpewoJCQkkZXZhbGQgPSAkdGhpcy0+dmlzaXRPYmooJG5vZGUpOwoJCQlpZiggJGV2YWxkICl7CgkJCQlpZiggaXNfYXJyYXkoJGV2YWxkKSApewoJCQkJCXNlbGY6OmZsYXR0ZW4oJGV2YWxkLCRuZXdOb2Rlcyk7CgkJCQl9ZWxzZXsKCQkJCQkkbmV3Tm9kZXNbXSA9ICRldmFsZDsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gJG5ld05vZGVzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBmbGF0dGVuKCAkYXJyLCAmJG91dCApewoKCQlmb3JlYWNoKCRhcnIgYXMgJGl0ZW0pewoJCQlpZiggIWlzX2FycmF5KCRpdGVtKSApewoJCQkJJG91dFtdID0gJGl0ZW07CgkJCQljb250aW51ZTsKCQkJfQoKCQkJZm9yZWFjaCgkaXRlbSBhcyAkbmVzdGVkSXRlbSl7CgkJCQlpZiggaXNfYXJyYXkoJG5lc3RlZEl0ZW0pICl7CgkJCQkJc2VsZjo6ZmxhdHRlbiggJG5lc3RlZEl0ZW0sICRvdXQpOwoJCQkJfWVsc2V7CgkJCQkJJG91dFtdID0gJG5lc3RlZEl0ZW07CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiAkb3V0OwoJfQoKfQoKCg==]]></data>
	</file>
	<file>
	  <filename>/preprocessors/LessPHPOyejorge/logo.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/preferences.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CjxoMT57JG1vZC0+TGFuZygncHJlZmVyZW5jZXMnKX08L2gxPgoKeyRmb3JtX3N0YXJ0fQoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgoJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KCQk8L3A+Cgk8L2Rpdj4KCQoJCgk8ZmllbGRzZXQ+CgkJPGxlZ2VuZD57JG1vZC0+TGFuZygnY3NzX3ByZXByb2Nlc3NvcicpfTwvbGVnZW5kPgoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+CgkJCQk8bGFiZWw+eyRtb2QtPkxhbmcoJ2Nob29zZV9wcmVwcm9jZXNzb3InKX08L2xhYmVsPgoJCQk8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCQkJe2ZvcmVhY2ggZnJvbT0kcHJlcHJvY2Vzc29ycyBpdGVtPXByZXByb2Nlc3NvciBrZXk9ZGlyfQoJCQkJCTxkaXYgY2xhc3M9InByZXByb2Nlc3NvciI+CgkJCQkJCgkJCQkJCTxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KCQkJCQkJCTxoMj57JHByZXByb2Nlc3Nvci0+ZnJpZW5kbHlfbmFtZX08L2gyPgoJCQkJCQkJPHA+CgkJCQkJCQkJeyRwcmVwcm9jZXNzb3ItPmRlc2NyaXB0aW9ufSAtIEJ5IDxhIGhyZWY9InskcHJlcHJvY2Vzc29yLT53ZWJzaXRlfSI+PGVtPnskcHJlcHJvY2Vzc29yLT5hdXRob3J9PC9lbT48L2E+CgkJCQkJCQkKCQkJCQkJCQl7aWYgIWVtcHR5KCRwcmVwcm9jZXNzb3ItPm5vdGUpfQoJCQkJCQkJCQk8YnI+PHN0cm9uZz57JG1vZC0+TGFuZygnbm90ZScpfTwvc3Ryb25nPiB7JHByZXByb2Nlc3Nvci0+bm90ZX0KCQkJCQkJCQl7L2lmfQoJCQkJCQkJPC9wPgoJCQkJCQk8L2Rpdj4KCQkJCQkKCQkJCQkJPGxhYmVsPgoJCQkJCQkJPGRpdiBjbGFzcz0iaW5wdXRfcmFkaW8iPgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieyRhY3Rpb25pZH1wcmVwcm9jZXNzb3IiIHZhbHVlPSJ7JGRpcn0iIHtpZiAkY3VycmVudF9wcmVwcm9jZXNzb3IgZXEgJGRpcn1jaGVja2Vkey9pZn0+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJe2lmIGlzc2V0KCRwcmVwcm9jZXNzb3ItPmxvZ28pIGFuZCAhZW1wdHkoJHByZXByb2Nlc3Nvci0+bG9nbyl9CgkJCQkJCQkJPGRpdiBjbGFzcz0ibG9nbyI+CgkJCQkJCQkJCTxpbWcgc3JjPSJ7JG1vZC0+R2V0TW9kdWxlVVJMUGF0aCgpfS9wcmVwcm9jZXNzb3JzL3skZGlyfS97JHByZXByb2Nlc3Nvci0+bG9nb30iPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJey9pZn0KCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCQkJCgkJCQl7L2ZvcmVhY2h9CgkJCTwvcD4KCQk8L2Rpdj4KCQkKCTwvZmllbGRzZXQ+IHsqRW5kIHByZSBwcm9jZXNzb3IqfQoJCgkKCTxmaWVsZHNldD4KCQk8bGVnZW5kPnskbW9kLT5MYW5nKCdvcHRpb25zJyl9PC9sZWdlbmQ+CgkJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KCQkJCTxsYWJlbCBmb3I9J2ltcG9ydF9kaXJzJz57JG1vZC0+TGFuZygnaW1wb3J0X2RpcnMnKX08L2xhYmVsPgoJCQk8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9J3skYWN0aW9uaWR9aW1wb3J0X2RpcnMnIGlkPSdpbXBvcnRfZGlycycgdmFsdWU9J3skaW1wb3J0X2RpcnN9Jz4KCQkJPC9wPgoJCTwvZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+CgkJCQk8bGFiZWw+eyRtb2QtPkxhbmcoJ21pbmlmeScpfTwvbGFiZWw+CgkJCTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQk8bGFiZWwgZm9yPSdtaW5pZnknPgoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9J3skYWN0aW9uaWR9bWluaWZ5JyB2YWx1ZT0nMCc+CgkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSd7JGFjdGlvbmlkfW1pbmlmeScgaWQ9J21pbmlmeScgdmFsdWU9JzEnIHtpZiAkbWluaWZ5fWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0+CgkJCQkJCgkJCQkJeyRtb2QtPkxhbmcoJ21pbmlmeV9sYWJlbCcpfQoJCQkJPC9sYWJlbD4KCQkJPC9wPgoJCTwvZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+CgkJCQk8bGFiZWw+eyRtb2QtPkxhbmcoJ2dlbmVyYXRlX3NvdXJjZW1hcCcpfTwvbGFiZWw+CgkJCTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQk8bGFiZWwgZm9yPSdnZW5lcmF0ZV9zb3VyY2VtYXAnPgoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9J3skYWN0aW9uaWR9Z2VuZXJhdGVfc291cmNlbWFwJyB2YWx1ZT0nMCc+CgkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSd7JGFjdGlvbmlkfWdlbmVyYXRlX3NvdXJjZW1hcCcgaWQ9J2dlbmVyYXRlX3NvdXJjZW1hcCcgdmFsdWU9JzEnIHtpZiAkZ2VuZXJhdGVfc291cmNlbWFwfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0+CgkJCQkJCgkJCQkJeyRtb2QtPkxhbmcoJ2dlbmVyYXRlX3NvdXJjZW1hcF9sYWJlbCcpfQoJCQkJPC9sYWJlbD4KCQkJPC9wPgoJCTwvZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+CgkJCQk8bGFiZWw+QXV0b3ByZWZpeGVyPC9sYWJlbD4KCQkJPC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCTxsYWJlbCBmb3I9J3VzZV9hdXRvcHJlZml4ZXInPgoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9J3skYWN0aW9uaWR9dXNlX2F1dG9wcmVmaXhlcicgdmFsdWU9JzAnPgoJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0neyRhY3Rpb25pZH11c2VfYXV0b3ByZWZpeGVyJyBpZD0ndXNlX2F1dG9wcmVmaXhlcicgdmFsdWU9JzEnIHtpZiAkdXNlX2F1dG9wcmVmaXhlcn1jaGVja2VkPSJjaGVja2VkInsvaWZ9PgoJCQkJCQoJCQkJCXskbW9kLT5MYW5nKCd1c2VfYXV0b3ByZWZpeGVyJyl9CgkJCQk8L2xhYmVsPgoJCQk8L3A+CgkJPC9kaXY+CgkJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KCQkJCTxsYWJlbCBmb3I9J2F1dG9wcmVmaXhlcl9icm93c2Vycyc+eyRtb2QtPkxhbmcoJ2F1dG9wcmVmaXhlcl9icm93c2VycycpfTwvbGFiZWw+CgkJCTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0neyRhY3Rpb25pZH1hdXRvcHJlZml4ZXJfYnJvd3NlcnMnIGlkPSdhdXRvcHJlZml4ZXJfYnJvd3NlcnMnIHZhbHVlPSd7JGF1dG9wcmVmaXhlcl9icm93c2Vyc30nPgoJCQk8L3A+CgkJPC9kaXY+CgkJCgk8L2ZpZWxkc2V0PgoKCQoJCgkKCQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CgkJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgoJCTwvcD4KCTwvZGl2PgoJCgkKCnskZm9ybV9lbmR9Cgo=]]></data>
	</file>
</module>
