Adding an update parameter to the <zip> task
[email protected] Thu, 13 Dec 2012 14:32:02 +0100
| Newsgroups | gmane.comp.windows.dotnet.nant.devel |
|---|---|
| Message-ID | <OF33BD55F9.7ABC2A1F-ONC1257AD3.004A580D-C1257AD3.004A5810@solog.net> |
--=_mixed 004A580FC1257AD3_= Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 <font face=3D"Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size= =3D"2"><DIV>Attached is a first draft of a <A href=3D"https://github.com/na= nt/nant/tree/master/src/NAnt.Compression/Tasks/ZipTask.cs">https://github.c= om/nant/nant/tree/master/src/NAnt.Compression/Tasks/ZipTask.cs</A> version = allowing to append files to an existing zip archive (see <A href=3D"http://= ant.apache.org/manual/Tasks/zip.html">http://ant.apache.org/manual/Tasks/zi= p.html</A>).</DIV> <DIV>Is it worth writing a unit test for it? What do you think?</DIV> <DIV>/J</DIV> <DIV></DIV></font> --=_mixed 004A580FC1257AD3_= Content-Type: application/octet-stream; name="ZipTask.cs" Content-Disposition: attachment; filename="ZipTask.cs" Content-Transfer-Encoding: base64 Ly8gTkFudCAtIEEgLk5FVCBidWlsZCB0b29sCi8vIENvcHlyaWdodCAoQykgMjAwMSBHZXJyeSBT aGF3Ci8vCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci8vIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi8vIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAovLyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgovLyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCi8vIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi8vCi8v IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3Vp dGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLy8KLy8gTWlrZSBLcnVlZ2VyICht aWtlQGljc2hhcnBjb2RlLm5ldCkKLy8gR2VycnkgU2hhdyAoZ2Vycnlfc2hhd0B5YWhvby5jb20p Cgp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsKdXNpbmcgU3lzdGVtLkds b2JhbGl6YXRpb247CnVzaW5nIFN5c3RlbS5JTzsKdXNpbmcgU3lzdGVtLlRleHQ7Cgp1c2luZyBJ Q1NoYXJwQ29kZS5TaGFycFppcExpYi5DaGVja3N1bXM7CnVzaW5nIElDU2hhcnBDb2RlLlNoYXJw WmlwTGliLlppcDsKCnVzaW5nIE5BbnQuQ29yZTsKdXNpbmcgTkFudC5Db3JlLkF0dHJpYnV0ZXM7 CnVzaW5nIE5BbnQuQ29yZS5UeXBlczsKdXNpbmcgTkFudC5Db3JlLlV0aWw7Cgp1c2luZyBOQW50 LkNvbXByZXNzaW9uLlR5cGVzOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cgpu YW1lc3BhY2UgTkFudC5Db21wcmVzc2lvbi5UYXNrcyB7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAv Ly8gQ3JlYXRlcyBhIHppcCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBmaWxlc2V0cy4KICAgIC8v LyA8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+CiAgICAvLy8gICA8cGFyYT4KICAgIC8vLyAg IFVzZXMgPHNlZSBocmVmPSJodHRwOi8vd3d3Lmljc2hhcnBjb2RlLm5ldC9PcGVuU291cmNlL1No YXJwWmlwTGliLyI+I3ppcGxpYjwvc2VlPgogICAgLy8vICAgKFNoYXJwWmlwTGliKSwgYW4gb3Bl biBzb3VyY2UgVGFyL1ppcC9HWmlwIGxpYnJhcnkgd3JpdHRlbiBlbnRpcmVseSBpbiBDIy4KICAg IC8vLyAgIDwvcGFyYT4KICAgIC8vLyA8L3JlbWFya3M+CiAgICAvLy8gPGV4YW1wbGU+CiAgICAv Ly8gICA8cGFyYT4KICAgIC8vLyAgIFppcCBhbGwgZmlsZXMgaW4gPGM+JHtidWlsZC5kaXJ9PC9j PiBhbmQgPGM+JHtkb2MuZGlyfTwvYz4gaW50byBhIGZpbGUKICAgIC8vLyAgIGNhbGxlZCAmcXVv dDtiYWNrdXAuemlwJnF1b3Q7LgogICAgLy8vICAgPC9wYXJhPgogICAgLy8vICAgPGNvZGU+CiAg ICAvLy8gICAgIDwhW0NEQVRBWwogICAgLy8vIDx6aXAgemlwZmlsZT0iYmFja3VwLnppcCI+CiAg ICAvLy8gICAgIDxmaWxlc2V0IGJhc2VkaXI9IiR7YmluLmRpcn0iIHByZWZpeD0iYmluIj4KICAg IC8vLyAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyoiIC8+CiAgICAvLy8gICAgIDwvZmlsZXNl dD4KICAgIC8vLyAgICAgPGZpbGVzZXQgYmFzZWRpcj0iJHtkb2MuZGlyfSIgcHJlZml4PSJkb2Mi PgogICAgLy8vICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKiIgLz4KICAgIC8vLyAgICAgPC9m aWxlc2V0PgogICAgLy8vIDwvemlwPgogICAgLy8vICAgICBdXT4KICAgIC8vLyAgIDwvY29kZT4K ICAgIC8vLyA8L2V4YW1wbGU+CiAgICBbVGFza05hbWUoInppcCIpXQogICAgcHVibGljIGNsYXNz IFppcFRhc2sgOiBUYXNrIHsKICAgICAgICAjcmVnaW9uIFByaXZhdGUgSW5zdGFuY2UgRmllbGRz CgogICAgICAgIHByaXZhdGUgRmlsZUluZm8gX3ppcGZpbGU7CiAgICAgICAgcHJpdmF0ZSBpbnQg X3ppcGxldmVsID0gNjsgCiAgICAgICAgcHJpdmF0ZSBaaXBGaWxlU2V0Q29sbGVjdGlvbiBfZmls ZXNldHMgPSBuZXcgWmlwRmlsZVNldENvbGxlY3Rpb24oKTsKICAgICAgICBwcml2YXRlIERhdGVU aW1lIF9zdGFtcERhdGVUaW1lOwogICAgICAgIHByaXZhdGUgc3RyaW5nIF9jb21tZW50OwogICAg ICAgIHByaXZhdGUgYm9vbCBfaW5jbHVkZUVtcHR5RGlyczsNCiAgICAgICAgcHJpdmF0ZSBib29s IF9mbGF0dGVuOw0KICAgICAgICBwcml2YXRlIGJvb2wgX3VwZGF0ZTsNCiAgICAgICAgcHJpdmF0 ZSBEdXBsaWNhdGVIYW5kbGluZyBfZHVwbGljYXRlSGFuZGxpbmcgPSBEdXBsaWNhdGVIYW5kbGlu Zy5BZGQ7CiAgICAgICAgcHJpdmF0ZSBFbmNvZGluZyBfZW5jb2Rpbmc7CiAgICAgICAgcHJpdmF0 ZSBIYXNodGFibGUgX2FkZGVkRGlycyA9IG5ldyBIYXNodGFibGUoKTsKICAgICAgICBwcml2YXRl IEhhc2h0YWJsZSBfZmlsZUVudHJpZXMgPSBuZXcgSGFzaHRhYmxlKCk7CgogICAgICAgICNlbmRy ZWdpb24gUHJpdmF0ZSBJbnN0YW5jZSBGaWVsZHMKCiAgICAgICAgI3JlZ2lvbiBQdWJsaWMgSW5z dGFuY2UgUHJvcGVydGllcwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFRoZSB6 aXAgZmlsZSB0byBjcmVhdGUuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbVGFza0F0 dHJpYnV0ZSgiemlwZmlsZSIsIFJlcXVpcmVkPXRydWUpXQogICAgICAgIHB1YmxpYyBGaWxlSW5m byBaaXBGaWxlIHsKICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF96aXBmaWxlOyB9CiAgICAgICAg ICAgIHNldCB7IF96aXBmaWxlID0gdmFsdWU7IH0KICAgICAgICB9CgogICAgICAgIC8vLyA8c3Vt bWFyeT4KICAgICAgICAvLy8gVGhlIGNvbW1lbnQgZm9yIHRoZSBmaWxlLgogICAgICAgIC8vLyA8 L3N1bW1hcnk+CiAgICAgICAgW1Rhc2tBdHRyaWJ1dGUoImNvbW1lbnQiKV0KICAgICAgICBwdWJs aWMgc3RyaW5nIENvbW1lbnQgewogICAgICAgICAgICBnZXQgeyByZXR1cm4gX2NvbW1lbnQ7IH0K ICAgICAgICAgICAgc2V0IHsgX2NvbW1lbnQgPSBTdHJpbmdVdGlscy5Db252ZXJ0RW1wdHlUb051 bGwodmFsdWUpOyB9CiAgICAgICAgfQoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8v IERhdGUvdGltZSBzdGFtcCBmb3IgdGhlIGZpbGVzIGluIHRoZSBmb3JtYXQgTU0vREQvWVlZWSBI SDpNTTpTUy4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtUYXNrQXR0cmlidXRlKCJz dGFtcGRhdGV0aW1lIildCiAgICAgICAgW0RhdGVUaW1lVmFsaWRhdG9yKCldCiAgICAgICAgcHVi bGljIERhdGVUaW1lIFN0YW1wIHsKICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9zdGFtcERhdGVU aW1lOyB9CiAgICAgICAgICAgIHNldCB7IF9zdGFtcERhdGVUaW1lID0gdmFsdWU7IH0KICAgICAg ICB9CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gRGVzaXJlZCBsZXZlbCBvZiBj b21wcmVzc2lvbi4gUG9zc2libGUgdmFsdWVzIGFyZSAwIChTVE9SRSBvbmx5KSAKICAgICAgICAv Ly8gdG8gOSAoaGlnaGVzdCkuIFRoZSBkZWZhdWx0IGlzIDxjPjY8L2M+LgogICAgICAgIC8vLyA8 L3N1bW1hcnk+CiAgICAgICAgW1Rhc2tBdHRyaWJ1dGUoInppcGxldmVsIildCiAgICAgICAgW0lu dDMyVmFsaWRhdG9yQXR0cmlidXRlKDAsIDkpXQogICAgICAgIHB1YmxpYyBpbnQgWmlwTGV2ZWwg ewogICAgICAgICAgICBnZXQgeyByZXR1cm4gX3ppcGxldmVsOyB9CiAgICAgICAgICAgIHNldCB7 IF96aXBsZXZlbCA9IHZhbHVlOyB9CiAgICAgICAgfQoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAg ICAgICAgLy8vIEluY2x1ZGUgZW1wdHkgZGlyZWN0b3JpZXMgaW4gdGhlIGdlbmVyYXRlZCB6aXAg ZmlsZS4gVGhlIGRlZmF1bHQgaXMKICAgICAgICAvLy8gPHNlZSBsYW5nd29yZD0iZmFsc2UiIC8+ LgogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Rhc2tBdHRyaWJ1dGUoImluY2x1ZGVl bXB0eWRpcnMiKV0KICAgICAgICBbQm9vbGVhblZhbGlkYXRvcigpXQogICAgICAgIHB1YmxpYyBi b29sIEluY2x1ZGVFbXB0eURpcnMgewogICAgICAgICAgICBnZXQgeyByZXR1cm4gX2luY2x1ZGVF bXB0eURpcnM7IH0KICAgICAgICAgICAgc2V0IHsgX2luY2x1ZGVFbXB0eURpcnMgPSB2YWx1ZTsg fQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIEln bm9yZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHNvdXJjZSBkaXJlY3RvcnksIGNvbXByZXNzIGFs bCBmaWxlcyAKICAgICAgICAvLy8gaW50byBhIHNpbmdsZSBkaXJlY3RvcnkuCiAgICAgICAgLy8v IFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxzZWUgbGFuZ3dvcmQ9ImZhbHNlIiAvPi4KICAgICAgICAv Ly8gPC9zdW1tYXJ5PgogICAgICAgIFtUYXNrQXR0cmlidXRlKCJmbGF0dGVuIildCiAgICAgICAg W0Jvb2xlYW5WYWxpZGF0b3IoKV0KICAgICAgICBwdWJsaWMgdmlydHVhbCBib29sIEZsYXR0ZW4g ewogICAgICAgICAgICBnZXQgeyByZXR1cm4gX2ZsYXR0ZW47IH0KICAgICAgICAgICAgc2V0IHsg X2ZsYXR0ZW4gPSB2YWx1ZTsgfQogICAgICAgIH0KCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAg ICAgIC8vLyBUaGUgc2V0IG9mIGZpbGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBhcmNoaXZlLgog ICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0J1aWxkRWxlbWVudEFycmF5KCJmaWxlc2V0 IildCiAgICAgICAgcHVibGljIFppcEZpbGVTZXRDb2xsZWN0aW9uIFppcEZpbGVTZXRzIHsKICAg ICAgICAgICAgZ2V0IHsgcmV0dXJuIF9maWxlc2V0czsgfQogICAgICAgICAgICBzZXQgeyBfZmls ZXNldHMgPSB2YWx1ZTsgfQogICAgICAgIH0KCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAg IC8vLyBTcGVjaWZpZXMgdGhlIGJlaGF2aW91ciB3aGVuIGEgZHVwbGljYXRlIGZpbGUgaXMgZm91 bmQuIFRoZSBkZWZhdWx0CiAgICAgICAgLy8vIGlzIDxzZWUgY3JlZj0iVDpOQW50LkNvbXByZXNz aW9uLlR5cGVzLkR1cGxpY2F0ZUhhbmRsaW5nLkFkZCIgLz4uCiAgICAgICAgLy8vIDwvc3VtbWFy eT4KICAgICAgICBbVGFza0F0dHJpYnV0ZSgiZHVwbGljYXRlIildCiAgICAgICAgcHVibGljIER1 cGxpY2F0ZUhhbmRsaW5nIER1cGxpY2F0ZUhhbmRsaW5nIHsKICAgICAgICAgICAgZ2V0IHsgcmV0 dXJuIF9kdXBsaWNhdGVIYW5kbGluZzsgfQogICAgICAgICAgICBzZXQgeyBfZHVwbGljYXRlSGFu ZGxpbmcgPSB2YWx1ZTsgfQogICAgICAgIH0KCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAg IC8vLyBUaGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZSBmb3IgZmlsZW5hbWVzIGFuZCBjb21t ZW50IGluc2lkZSB0aGUKICAgICAgICAvLy8gemlwIGZpbGUuIFRoZSBkZWZhdWx0IGlzIHRoZSBz eXN0ZW0ncyBPRU0gY29kZSBwYWdlLgogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Rh c2tBdHRyaWJ1dGUoImVuY29kaW5nIildCiAgICAgICAgcHVibGljIEVuY29kaW5nIEVuY29kaW5n IHsKICAgICAgICAgICAgZ2V0IHsKICAgICAgICAgICAgICAgIGlmIChfZW5jb2RpbmcgPT0gbnVs bCkgewogICAgICAgICAgICAgICAgICAgIF9lbmNvZGluZyA9IEVuY29kaW5nLkdldEVuY29kaW5n KEN1bHR1cmVJbmZvLkN1cnJlbnRDdWx0dXJlLlRleHRJbmZvLk9FTUNvZGVQYWdlKTsKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBfZW5jb2Rpbmc7IAogICAgICAgICAg ICB9CiAgICAgICAgICAgIHNldCB7IF9lbmNvZGluZyA9IHZhbHVlOyB9CiAgICAgICAgfQ0KDQog ICAgICAgIFtUYXNrQXR0cmlidXRlKCJ1cGRhdGUiKV0NCiAgICAgICAgcHVibGljIGJvb2wgVXBk YXRlRXhpc3RpbmdaaXAgew0KICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF91cGRhdGU7IH0NCiAg ICAgICAgICAgIHNldCB7IF91cGRhdGUgPSB2YWx1ZTsgfQogICAgICAgIH0KCiAgICAgICAgI2Vu ZHJlZ2lvbiBQdWJsaWMgSW5zdGFuY2UgUHJvcGVydGllcwoKICAgICAgICAjcmVnaW9uIE92ZXJy aWRlIGltcGxlbWVudGF0aW9uIG9mIFRhc2sKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAg IC8vLyBDcmVhdGVzIHRoZSB6aXAgZmlsZS4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAg IHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEV4ZWN1dGVUYXNrKCkgewogICAgICAgICAgICBaaXBP dXRwdXRTdHJlYW0gek91dHN0cmVhbSA9IG51bGw7DQogICAgICAgICAgICBJQ1NoYXJwQ29kZS5T aGFycFppcExpYi5aaXAuWmlwRmlsZSB6RmlsZSA9IG51bGw7CgogICAgICAgICAgICBMb2coTGV2 ZWwuSW5mbywgIlppcHBpbmcgezB9IGZpbGVzIHRvICd7MX0nLiIsIAogICAgICAgICAgICAgICAg WmlwRmlsZVNldHMuRmlsZUNvdW50LCBaaXBGaWxlLkZ1bGxOYW1lKTsKICAgICAgICAgICAgICAg IAogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKCFEaXJlY3RvcnkuRXhpc3Rz KFppcEZpbGUuRGlyZWN0b3J5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICBEaXJlY3Rvcnku Q3JlYXRlRGlyZWN0b3J5KFppcEZpbGUuRGlyZWN0b3J5TmFtZSk7CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gc2V0IGVuY29kaW5nIHRvIHVzZSBmb3Ig ZmlsZW5hbWVzIGFuZCBjb21tZW50CiAgICAgICAgICAgICAgICBaaXBDb25zdGFudHMuRGVmYXVs dENvZGVQYWdlID0gRW5jb2RpbmcuQ29kZVBhZ2U7CiAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgIC8vIGNoZWNrIGFwcGVuZCBtb2RlIHdoZW4gZmlsZSBleGlzdHMNCiAgICAgICAgICAg ICAgICBpZiAoRmlsZS5FeGlzdHMoWmlwRmlsZS5GdWxsTmFtZSkgJiYgVXBkYXRlRXhpc3Rpbmda aXApIHsNCiAgICAgICAgICAgICAgICAgICAgekZpbGUgPSBuZXcgSUNTaGFycENvZGUuU2hhcnBa aXBMaWIuWmlwLlppcEZpbGUoWmlwRmlsZS5GdWxsTmFtZSk7DQogICAgICAgICAgICAgICAgICAg IHpGaWxlLkJlZ2luVXBkYXRlKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICB6T3V0c3RyZWFtID0gbmV3IFppcE91dHB1dFN0 cmVhbShaaXBGaWxlLkNyZWF0ZSgpKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBzZXQgY29t cHJlc3Npb24gbGV2ZWwNCiAgICAgICAgICAgICAgICAgICAgek91dHN0cmVhbS5TZXRMZXZlbCha aXBMZXZlbCk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGNvbW1lbnQNCiAgICAgICAg ICAgICAgICAgICAgaWYgKCFTdHJpbmcuSXNOdWxsT3JFbXB0eShDb21tZW50KSkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgek91dHN0cmVhbS5TZXRDb21tZW50KENvbW1lbnQpOw0KICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGZvcmVh Y2ggKFppcEZpbGVTZXQgZmlsZXNldCBpbiBaaXBGaWxlU2V0cykgewogICAgICAgICAgICAgICAg ICAgIHN0cmluZyBiYXNlUGF0aCA9IGZpbGVzZXQuQmFzZURpcmVjdG9yeS5GdWxsTmFtZTsKICAg ICAgICAgICAgICAgICAgICBpZiAoUGF0aC5HZXRQYXRoUm9vdChiYXNlUGF0aCkgIT0gYmFzZVBh dGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVBhdGggPSBQYXRoLkdldERpcmVjdG9y eU5hbWUoYmFzZVBhdGggKyBQYXRoLkRpcmVjdG9yeVNlcGFyYXRvckNoYXIpOwogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGZpbGVzIHRvIHppcAogICAg ICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBmaWxlIGluIGZpbGVzZXQuRmlsZU5hbWVz KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuc3VyZSBmaWxlIGV4aXN0cyAoaW4gY2Fz ZSAiYXNpcyIgd2FzIHVzZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghRmlsZS5FeGlz dHMoZmlsZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBCdWlsZEV4 Y2VwdGlvbihzdHJpbmcuRm9ybWF0KEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgJ3swfScgZG9lcyBub3QgZXhpc3QuIiwg ZmlsZSksIExvY2F0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdGhlIG5hbWUgb2YgdGhlIHppcCBlbnRyeQogICAgICAgICAgICAgICAg ICAgICAgICBzdHJpbmcgZW50cnlOYW1lOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGV0 ZXJtaW5lIG5hbWUgb2YgdGhlIHppcCBlbnRyeQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo IUZsYXR0ZW4gJiYgZmlsZS5TdGFydHNXaXRoKGJhc2VQYXRoKSkgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW50cnlOYW1lID0gZmlsZS5TdWJzdHJpbmcoYmFzZVBhdGguTGVuZ3RoKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeU5hbWUuTGVuZ3RoID4gMCAmJiBl bnRyeU5hbWVbMF0gPT0gUGF0aC5EaXJlY3RvcnlTZXBhcmF0b3JDaGFyKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW50cnlOYW1lID0gZW50cnlOYW1lLlN1YnN0cmluZygxKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyByZW1lbWJlciB0aGF0IGRpcmVjdG9yeSB3YXMgYWRkZWQgdG8gemlwIGZpbGUsIHNvCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlIHdvbid0IGFkZCBpdCBhZ2FpbiBs YXRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGRpciA9IFBhdGguR2V0RGly ZWN0b3J5TmFtZShmaWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYWRkZWRE aXJzW2Rpcl0gPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hZGRl ZERpcnNbZGlyXSA9IGRpcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZs YXR0ZW4gZGlyZWN0b3J5IHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50 cnlOYW1lID0gUGF0aC5HZXRGaWxlTmFtZShmaWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHByZWZpeCBpZiBzcGVjaWZpZWQKICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVzZXQuUHJlZml4ICE9IG51bGwpIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVudHJ5TmFtZSA9IGZpbGVzZXQuUHJlZml4ICsgZW50cnlO YW1lOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAv LyBlbnN1cmUgZGlyZWN0b3J5IHNlcGFyYXRvcnMgYXJlIHVuZGVyc3Rvb2Qgb24gbGludXgKICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguRGlyZWN0b3J5U2VwYXJhdG9yQ2hhciA9PSAn XFwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeU5hbWUgPSBlbnRyeU5hbWUu UmVwbGFjZShAIlwiLCAiLyIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAvLyBwZXJmb3JtIGR1cGxpY2F0ZSBjaGVja2luZwogICAgICAgICAgICAg ICAgICAgICAgICBpZiAoX2ZpbGVFbnRyaWVzLkNvbnRhaW5zS2V5KGVudHJ5TmFtZSkpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoRHVwbGljYXRlSGFuZGxpbmcpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIER1cGxpY2F0ZUhhbmRsaW5nLkFkZDoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2FzZSBEdXBsaWNhdGVIYW5kbGluZy5GYWlsOgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQnVpbGRFeGNlcHRpb24oc3RyaW5n LkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1bHR1cmVJ bmZvLkludmFyaWFudEN1bHR1cmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkR1cGxpY2F0ZSBmaWxlICd7MH0nIHdhcyBmb3VuZC4iLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5TmFtZSksIExvY2F0aW9uLlVua25vd25Mb2Nh dGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBEdXBsaWNhdGVIYW5k bGluZy5QcmVzZXJ2ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tp cCBjdXJyZW50IGVudHJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBCdWlsZEV4Y2VwdGlvbihzdHJpbmcu Rm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VsdHVyZUlu Zm8uSW52YXJpYW50Q3VsdHVyZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRHVwbGljYXRlIHZhbHVlICd7MH0nIGlzIG5vdCBzdXBwb3J0ZWQuIiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEdXBsaWNhdGVIYW5kbGluZy5Ub1N0cmlu ZygpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbi5V bmtub3duTG9jYXRpb24pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB6aXAg ZW50cnkNCiAgICAgICAgICAgICAgICAgICAgICAgIFppcEVudHJ5IGVudHJ5ID0gbmV3IFppcEVu dHJ5KGVudHJ5TmFtZSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0b3JlIGVudHJ5 ICh0byBhbGxvdyBmb3IgZHVwbGljYXRlIGNoZWNraW5nKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgX2ZpbGVFbnRyaWVzW2VudHJ5TmFtZV0gPSBudWxsOw0KDQogICAgICAgICAgICAgICAgICAg ICAgICAvLyBzZXQgZGF0ZS90aW1lIHN0YW1wIG9uIHppcCBlbnRyeQ0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKFN0YW1wICE9IERhdGVUaW1lLk1pblZhbHVlKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LkRhdGVUaW1lID0g U3RhbXA7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW50cnkuRGF0ZVRpbWUgPSBGaWxlLkdldExhc3RXcml0ZVRpbWUoZmlsZSk7DQogICAg ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIExvZyhMZXZl bC5WZXJib3NlLCAiQWRkaW5nIHswfS4iLCBlbnRyeU5hbWUpOw0KDQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoek91dHN0cmVhbSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGZpbGUgY29udGVudCB0byBz dHJlYW0gaW4gc21hbGwgY2h1bmNrcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5n IChGaWxlU3RyZWFtIGZzID0gRmlsZS5PcGVuUmVhZChmaWxlKSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBzZXQgc2l6ZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3 aXRoIG9sZGVyIHVuemlwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LlNp emUgPSBmcy5MZW5ndGg7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3Jp dGUgZmlsZSB0byB6aXAgZmlsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6T3V0 c3RyZWFtLlB1dE5leHRFbnRyeShlbnRyeSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlWzUwMDAwXTsNCg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzUmVh ZCA9IGZzLlJlYWQoYnVmZmVyLCAwLCBidWZmZXIuTGVuZ3RoKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChieXRlc1JlYWQgPT0gMCkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHpPdXRzdHJlYW0uV3JpdGUoYnVmZmVyLCAwLCBieXRlc1JlYWQpOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxz ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgekZpbGUuQWRkKGZpbGUsIGVudHJ5TmFt ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBhZGQgKHBvc3NpYmx5 IGVtcHR5KSBkaXJlY3RvcmllcyB0byB6aXAKICAgICAgICAgICAgICAgICAgICBpZiAoSW5jbHVk ZUVtcHR5RGlycykgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgZGly ZWN0b3J5IGluIGZpbGVzZXQuRGlyZWN0b3J5TmFtZXMpIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHNraXAgZGlyZWN0b3JpZXMgdGhhdCB3ZXJlIGFscmVhZHkgYWRkZWQgd2hlbiB0 aGUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaWxlcyB3ZXJlIGFkZGVkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2FkZGVkRGlyc1tkaXJlY3RvcnldICE9IG51bGwp IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIGRp cmVjdG9yaWVzIHRoYXQgYXJlIG5vdCBsb2NhdGVkIGJlbmVhdGggdGhlIGJhc2UgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBkaXJlY3RvcnkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICghZGlyZWN0b3J5LlN0YXJ0c1dpdGgoYmFzZVBhdGgpIHx8IGRpcmVjdG9yeS5MZW5n dGggPD0gYmFzZVBhdGguTGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIHppcCBlbnRyeSBuYW1lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmcgZW50cnlOYW1lID0gZGlyZWN0b3J5LlN1YnN0cmluZyhiYXNlUGF0 aC5MZW5ndGggKyAxKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgcHJlZml4 IGlmIHNwZWNpZmllZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVzZXQuUHJl Zml4ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeU5hbWUg PSBmaWxlc2V0LlByZWZpeCArIGVudHJ5TmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbnN1cmUgZGlyZWN0b3J5IHNlcGFy YXRvcnMgYXJlIHVuZGVyc3Rvb2Qgb24gbGludXgKICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIChQYXRoLkRpcmVjdG9yeVNlcGFyYXRvckNoYXIgPT0gJ1xcJykgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVudHJ5TmFtZSA9IGVudHJ5TmFtZS5SZXBsYWNlKEAiXCIsICIv Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFlbnRyeU5hbWUuRW5kc1dpdGgoIi8iKSkgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHRyYWlsaW5nIGRpcmVjdG9yeSBzaWduYWxzIHRvICN6aXBsaWIgdGhh dCB3ZSdyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlYWxpbmcgd2l0aCBk aXJlY3RvcnkgZW50cnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeU5hbWUg Kz0gIi8iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gY3JlYXRlIGRpcmVjdG9yeSBlbnRyeQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFppcEVudHJ5IGVudHJ5ID0gbmV3IFppcEVudHJ5KGVudHJ5TmFtZSk7DQoNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgc2l6ZSBmb3IgYmFja3dhcmQgY29tcGF0 aWJpbGl0eSB3aXRoIG9sZGVyIHVuemlwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50 cnkuU2l6ZSA9IDBMOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgZGly ZWN0b3J5IHRvIHppcCBmaWxlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHpPdXRz dHJlYW0gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHpPdXRzdHJlYW0uUHV0TmV4dEVudHJ5KGVudHJ5KTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpGaWxlLkFkZChlbnRyeSk7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IGlmICh6T3V0c3RyZWFtICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICB6T3V0c3RyZWFtLkNsb3NlKCk7DQogICAgICAgICAgICAgICAgICAgIHpPdXRzdHJl YW0uRmluaXNoKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0K ICAgICAgICAgICAgICAgICAgICB6RmlsZS5Db21taXRVcGRhdGUoKTsNCiAgICAgICAgICAgICAg ICAgICAgekZpbGUuQ2xvc2UoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRj aCAoRXhjZXB0aW9uIGV4KSB7CiAgICAgICAgICAgICAgICAvLyBjbG9zZSB0aGUgemlwIG91dHB1 dCBzdHJlYW0KICAgICAgICAgICAgICAgIGlmICh6T3V0c3RyZWFtICE9IG51bGwpIHsKICAgICAg ICAgICAgICAgICAgICB6T3V0c3RyZWFtLkNsb3NlKCk7CiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgLy8gY2xvc2UgdGhlIHppcCBmaWxlDQogICAgICAgICAgICAgICAgaWYgKHpG aWxlICE9IG51bGwpIHsNCiAgICAgICAgICAgICAgICAgICAgekZpbGUuQ2xvc2UoKTsNCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZSAocG9zc2libHkgY29y cnVwdCkgemlwIGZpbGUKICAgICAgICAgICAgICAgIGlmIChaaXBGaWxlLkV4aXN0cykgewogICAg ICAgICAgICAgICAgICAgIFppcEZpbGUuRGVsZXRlKCk7CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgdGhyb3cgbmV3IEJ1aWxkRXhjZXB0aW9uKHN0cmluZy5Gb3JtYXQoQ3VsdHVy ZUluZm8uSW52YXJpYW50Q3VsdHVyZSwKICAgICAgICAgICAgICAgICAgICAiWmlwIGZpbGUgJ3sw fScgY291bGQgbm90IGJlIGNyZWF0ZWQuIiwgWmlwRmlsZS5GdWxsTmFtZSksIAogICAgICAgICAg ICAgICAgICAgIExvY2F0aW9uLCBleCk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAg ICAgICAgICBDbGVhblVwKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICNlbmRy ZWdpb24gT3ZlcnJpZGUgaW1wbGVtZW50YXRpb24gb2YgVGFzawoKICAgICAgICAjcmVnaW9uIFBy aXZhdGUgSW5zdGFuY2UgTWV0aG9kcwoKICAgICAgICBwcml2YXRlIHZvaWQgQ2xlYW5VcCgpIHsK ICAgICAgICAgICAgX2FkZGVkRGlycy5DbGVhcigpOwogICAgICAgICAgICBfZmlsZUVudHJpZXMu Q2xlYXIoKTsKICAgICAgICB9CgogICAgICAgICNlbmRyZWdpb24gUHJpdmF0ZSBJbnN0YW5jZSBN ZXRob2RzCiAgICB9Cn0K --=_mixed 004A580FC1257AD3_= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d --=_mixed 004A580FC1257AD3_= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ nant-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/nant-developers --=_mixed 004A580FC1257AD3_=--