From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Alan E. Davis" Subject: Re: org file for reference card? Date: Wed, 21 Dec 2011 01:20:51 -0800 Message-ID: References: <20111216033757.GA9495@panahar> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=f46d043be05e768e6404b496b4d7 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:58920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RdIMO-0005Z9-22 for emacs-orgmode@gnu.org; Wed, 21 Dec 2011 04:21:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RdIMN-0001ID-04 for emacs-orgmode@gnu.org; Wed, 21 Dec 2011 04:21:16 -0500 Received: from mail-wi0-f169.google.com ([209.85.212.169]:41044) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RdIMM-0001I1-67 for emacs-orgmode@gnu.org; Wed, 21 Dec 2011 04:21:14 -0500 Received: by wibhq12 with SMTP id hq12so2387925wib.0 for ; Wed, 21 Dec 2011 01:21:12 -0800 (PST) In-Reply-To: <20111216033757.GA9495@panahar> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode --f46d043be05e768e6404b496b4d7 Content-Type: multipart/alternative; boundary=f46d043be05e768e5d04b496b4d5 --f46d043be05e768e5d04b496b4d5 Content-Type: text/plain; charset=ISO-8859-1 Vikas: Along a similar vein, Some time ago ( over a year ago) I started an org mode help file. I lost track of it at the point where babel appeared on the horizon... It's hopelessly out of date. Very useful, and perhaps I'll pick it up soon and work on it. It was built up from bare bones text of the reference card. I am not sure it is what you want, but it's wonderful way to have an online reference. One feature has been to hae each topic then a link into the relative section of the manual. Maybe I'll clean it up, but lots has changed in the interim. Alan On Thu, Dec 15, 2011 at 7:37 PM, Vikas Rawal < vikaslists@agrarianresearch.org> wrote: > Isn't it odd that a tex file is distributed with orgmode, a pdf and a > text file available on the website. Should we not have a .org version > of the reference card? Can't orgmode produce the reference card pdf from > a .org file? > > Vikas > > --f46d043be05e768e5d04b496b4d5 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Vikas:

Along a similar vein,

Some time ago ( over a year ago= ) I started an org mode help file.=A0=A0 I lost track of it at the point wh= ere babel appeared on the horizon...=A0=A0 It's hopelessly out of date.= =A0 Very useful, and perhaps I'll pick it up soon and work on it.=A0=A0= It was built up from bare bones text of the reference card.=A0

I am not sure it is what you want, but it's wonderful way to have a= n online reference.=A0 One feature has been to hae each topic then a link i= nto the relative section of the manual.=A0

Maybe I'll clean it = up, but lots has changed in the interim.

Alan

On Thu, Dec 15, 2011 at 7:37 PM= , Vikas Rawal <vikaslists@agrarianresearch.org> wrote:
Isn't it odd that a tex file is distribu= ted with orgmode, a pdf and a
text file available on the website. Should we not have a .org version
of the reference card? Can't orgmode produce the reference card pdf fro= m
a .org file?

Vikas


--f46d043be05e768e5d04b496b4d5-- --f46d043be05e768e6404b496b4d7 Content-Type: application/vnd.lotus-organizer; name="org-help.org" Content-Disposition: attachment; filename="org-help.org" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gwg4t8wx0 PyMgb3JnLWhlbHAub3JnICAgLSotIG1vZGU6IG9yZyBmaWxsLWNvbHVtbjo3OCAtKi0KIyBUaW1l LXN0YW1wOiA8MjAxMS0xMC0xMyAwMDowMjo0MCBvb2Q+CgogTW9zdCBoZWFkbGluZXMgYXJlIGxp bmtzIHRvIHRoZSBvcmcgaW5mbyBtYW51YWwuIAogCiogW1tpbmZvOm9yZzpWaXNpYmlsaXR5JTIw Y3ljbGluZ11bVmlzaWJpbGl0eSBDeWNsaW5nXV0gICAgICAgICAgICAgICBUQUIgICAgQy1pIAoK ICAgICAgIHJvdGF0ZSBjdXJyZW50IHN1YnRyZWUgYmV0d2VlbiBzdGF0ZXMgICAgICAgICBUQUIg CiAgICAgICByb3RhdGUgZW50aXJlIGJ1ZmZlciBiZXR3ZWVuIHN0YXRlcyAgICAgICAgICAgUy1U QUIsIEMtdSBUQUIKICAgICAgIHNob3cgdXAgdG8gTGV2ZWwgTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDLXUgTiBUQUIKICAgICAgIHJlc3RvcmUgcHJvcGVydHktZGVwZW5kZW50IHN0YXJ0 dXAgdmlzaWJpbGl0eSBDLXUgQy11IFRBQiAKICAgICAgIHNob3cgdGhlIHdob2xlIGZpbGUsIGlu Y2x1ZGluZyBkcmF3ZXJzICAgICAgICBDLXUgQy11IEMtdSBUQUIgCiAgICAgICByZXZlYWwgY29u dGV4dCBhcm91bmQgcG9pbnQgICAgICAgICAgICAgICAgICAgQy1jIEMtciAKICAgICAgIHNob3cg dGhlIGN1cnJlbnQgc3VidHJlZSwgaW5kaXJlY3QgYnVmZmVyICAgICBDLWMgQy14IGIKICAgICAg IAoqIFtbaW5mbzpvcmc6TW90aW9uXVtNb3Rpb25dXSAgICAgICAgICAgICAgICAgICAgICAgICAg IEMtYyBDLW4vcCAvIEMtYyBDLWYvYiAvIEMtYyBDLXUgLyBDLWMgQy1qCgogICAgICAgbmV4dC9w cmV2aW91cyBoZWFkaW5nICh2aXNpYmxlPykgICAgICAgICAgICAgIEMtYyBDLW4vcCAKICAgICAg IG5leHQvcHJldmlvdXMgaGVhZGluZywgc2FtZSBsZXZlbCAgICAgICAgICAgICBDLWMgQy1mL2Ig CiAgICAgICBiYWNrd2FyZCB0byBoaWdoZXIgbGV2ZWwgaGVhZGluZyAgICAgICAgICAgICAgQy1j IEMtdSAKICAgICAgICpvcmctZ290byo6IGp1bXAgZWxzZXdoZXJlLCBpbmRpcmVjdCBidWZmZXIg ICBDLWMgQy1qCiAgICAgICBwcmV2aW91cy9uZXh0IHBsYWluIGxpc3QgaXRlbSAgICAgICAgICAg ICAgICAgUy1VUC9ET1dOIAogICAgICAgCiogW1tpbmY/bzpvcmc6RG9jdW1lbnQlMjBTdHJ1Y3R1 cmVdW1N0cnVjdHVyZSBFZGl0aW5nXV0gICAgICAgICAgICAgICAgTS1SRVQgIC8gICBNLUwvUiAg LyAgTS1TLUwvUgoKICAgICAgIGluc2VydCBuZXcgaGVhZGluZy9pdGVtIGF0IGN1cnJlbnQgbGV2 ZWwgICAgICBNLVJFVCAKICAgICAgIGluc2VydCBuZXcgaGVhZGluZyBhZnRlciBzdWJ0cmVlICAg ICAgICAgICAgICBDLVJFVCAKICAgICAgIGluc2VydCBuZXcgVE9ETyBlbnRyeS9jaGVja2JveCBp dGVtICAgICAgICAgICBNLVMtUkVUIAogICAgICAgaW5zZXJ0IFRPRE8gZW50cnkvY2tieCBhZnRl ciBzdWJ0cmVlICAgICAgICAgIEMtUy1SRVQgCgogICAgIAogICAgICAgcHJvbW90ZS9kZW1vdGUg aGVhZGluZyAgICAgICAgICAgICAgICAgICAgICAgIE0tTEVGVC9SSUdIVCAKICAgICAgIHByb21v dGUvZGVtb3RlIGN1cnJlbnQgc3VidHJlZSAgICAgICAgICAgICAgICBNLVMtTEVGVC9SSUdIVCAK ICAgICAgICAgICAqd29yayBvbiBhbGwgaGVhZGxpbmVzIGluIGEgcmVnaW9uKgogICAgICAgICAg ICAgICAgIAogICAgICAgbW92ZSBzdWJ0cmVlL2xpc3QgaXRlbSB1cC9kb3duICAgICAgICAgICAg ICAgIE0tUy1VUC9ET1dOIAogICAgICAgcmVmaWxlIHN1YnRyZWUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEMtYyBDLXcgCiAgICAgICBraWxsIHN1YnRyZWUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQy1jIEMteCBDLXcgCiAgICAgICBjb3B5IHN1YnRyZWUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQy1jIEMteCBNLXcgCiAgICAgICB5YW5rIHN1YnRy ZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQy1jIEMteCBDLXkgb3IgQy15IAog ICAgICAgbmFycm93IGJ1ZmZlciB0byBjdXJyZW50IHN1YnRyZWUgICAgICAgICAgICAgIEMteCBu IHMgCiAgICAgICB3aWRlbiByZXN0cmljdGlvbiB0byBmdWxsIGJ1ZmZlciAgICAgICAgICAgICAg Qy14IG4gdyAKKiogQ29udmVydGluZyB0byBoZWFkbGluZXMvcmVtb3Zpbmcgc3RhcnMgICBDLWMg KiAgICAgIAogICAgICAgIHR1cm4gbGluZSBvciBsaXN0IGl0ZW0gaW50byBoZWFkbGluZSAgICAg ICAgICBDLWMgKiAgCiAgICAgICAgICAgaWYgYWN0aXZlIHJlZ2lvbiwgdHVybiBhbGwgbGluZXMg aW4gcmVnaW9uCiAgICAgICAgICAgICAgIGludG8gaGVhZGxpbmVzCiAgICAgICAgICAgaWYgZmly c3QgbGluZSBhIGhlYWRsaW5lLCByZW1vdmUgc3RhcnMgCiAgICAgICAgICAgdHVybiBhY3RpdmUg aGVhZGxpbmUgaW50byBub3JtYWwgbGluZQoqIFNvcnRpbmcgICAgICAgICAgICAgICAgICAgICAg ICAgIEMtYyBeICAgICAKKiogW1tpbmZvOm9yZzpTdHJ1Y3R1cmUlMjBlZGl0aW5nXVtTb3J0IHNh bWUgbGV2ZWxdXSAgICAgICAgICAgICAgIEMtYyBeCiAgICAgICBjaGlsZHJlbiBvZiBjdXJyZW50 IGhlYWRsaW5lCiAgICAgICBpZiBhY3RpdmUgcmVnaW9uLCBhbGwgZW50cmllcyBpbiByZWdpb24K ICAgICAgIHByb21wdHMgZm9yIHNvcnRpbmcgbWV0aG9kCiAgICAgICBDLXUgQy1jIF4gICBzb3J0 aW5nIGlzIGNhc2Ugc2Vuc2l0aXZlCiAgICAgICBDLXUgQy11IEMtYyBeICAgZHVwbGljYXRlcyBh cmUgcmVtb3ZlZAoqKiBbW2luZm86b3JnOlNvcnRpbmclMjBvZiUyMGFnZW5kYSUyMGl0ZW1zXVtT b3J0IEFnZW5kYSBJdGVtc11dICAgICAgICAgICAgIAoqKiBTb3J0IHRhYmxlIGxpbmVzIGluIHJl Z2lvbiAgICBDLWMgXgoqKiBSYW5kb20gYXNzb3J0bWVudCAgICAgICAgICAgICBDLWMgXiBmIHJh bmRvbSBSRVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiogQ2hlY2tib3hlcyAg ICAgICAgICAgICAgICAgICAgICAgTS1TLVJFVAkJCQkJIDpOT1RFOgogIFsyMDA5LTAyLTAxIFN1 bl0gTmV3IGVtYWlsIG9uIG9yZyBsaXN0IGFib3V0IHRoaXMKICAgICAgIGluc2VydCBuZXcgY2hl Y2tib3ggaXRlbSBpbiBwbGFpbiBsaXN0ICAgICAgICBNLVMtUkVUIAogICAgICAgdG9nZ2xlIGNo ZWNrYm94KGVzKSBpbiByZWdpb24vZW50cnkvYXQgcG9pbnQgIEMtYyBDLXggQy1iIAogICAgICAg Y29udmVydCBsaXN0IHRvIGNoZWNrYm94IGxpc3QgICAgICAgICAgICAgICAgIEMtYyBDLXggQy1i CmcgICAgICAgdG9nZ2xlIGNoZWNrYm94IGF0IHBvaW50ICAgICAgICAgICAgICAgICAgICAgIEMt YyBDLWMgCiAgICAgICBjaGVja2JveCBzdGF0aXN0aWNzIGNvb2tpZXM6IGluc2VydCAgICAgICAg ICAgWy9dICBvciBbJV0gICAgCiAgICAgICB1cGRhdGUgY2hlY2tib3ggc3RhdGlzdGljcyAoQy11 IDogd2hvbGUgZmlsZSkgQy1jICMgCiogW1tpbmZvOm9yZzpBcmNoaXZpbmddW0FyY2hpdmluZ11d ICAgICAgICAgICAgICAgICAgICAgICAgQy1jIEMteCBhCgoKICAgICAgIHRvZ2dsZSBBUkNISVZF IHRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLWMgQy14IGEgCiAgICAgICBmb3JjZSBj eWNsaW5nIG9mIGFuIEFSQ0hJVkVkIHRyZWUgICAgICAgICAgICAgQy1UQUIgCiAgICAgICBtb3Zl IHRvIEF0dGljIFNpYmxpbmcgICAgICAgICAgICAgICAgICAgICAgICAgQy1jIEMteCBBIAogICAg ICAgbW92ZSBzdWJ0cmVlIHRvIGFyY2hpdmUgZmlsZSAgICAgICAgICAgICAgICAgIEMtYyBDLXgg Qy1zIAoKKiBGaWx0ZXJpbmcgYW5kIFtbaW5mbzpvcmc6U3BhcnNlJTIwdHJlZXNdW1NwYXJzZSBU cmVlc11dICAgICAgIEMtYyAvCgogICAgICAgY29uc3RydWN0IGEgc3BhcnNlIHRyZWUgYnkgdmFy aW91cyBjcml0ZXJpYSAgIEMtYyAvIAogICAgICAgdmlldyBUT0RPJ3MgaW4gc3BhcnNlIHRyZWUg ICAgICAgICAgICAgICAgICAgIEMtYyBDLXYgCiAgICAgICBnbG9iYWwgVE9ETyBsaXN0IGluIGFn ZW5kYSBtb2RlICAgICAgICAgICAgICAgQy1jIGEgdF4xIAogICAgICAgdGltZSBzb3J0ZWQgdmll dyBvZiBjdXJyZW50IG9yZyBmaWxlICAgICAgICAgIEMtYyBhIEwgCgoqIFtbaW5mbzpvcmc6VGFi bGVzXVtUYWJsZXNdXSAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqKiBSb3cgYW5kIGNvbHVt biBlZGl0aW5nICAgICAgICAgICAgTS1ML1IvVS9ECgogICAgICAgbW92ZSB0aGUgY3VycmVudCBj b2x1bW4gbGVmdC9yaWdodCAgICAgICAgICAgIE0tTEVGVC9SSUdIVCAKICAgICAgIGtpbGwgdGhl IGN1cnJlbnQgY29sdW1uICAgICAgICAgICAgICAgICAgICAgICBNLVMtTEVGVCAKICAgICAgIGlu c2VydCBuZXcgY29sdW1uIHRvIGxlZnQgb2YgY3Vyc29yIHBvc2l0aW9uICBNLVMtUklHSFQgCgog ICAgICAgbW92ZSB0aGUgY3VycmVudCByb3cgdXAvZG93biAgICAgICAgICAgICAgICAgICBNLVVQ L0RPV04gCiAgICAgICBraWxsIHRoZSBjdXJyZW50IHJvdyBvciBob3Jpem9udGFsIGxpbmUgICAg ICAgIE0tUy1VUCAKICAgICAgIGluc2VydCBuZXcgcm93IGFib3ZlIHRoZSBjdXJyZW50IHJvdyAg ICAgICAgICAgTS1TLURPV04gCiAgICAgICBpbnNlcnQgaGxpbmUgYmVsb3cgKEMtdSA6IGFib3Zl KSBjdXJyZW50IHJvdyAgIEMtYyAtIAogICAgICAgc29ydCBsaW5lcyBpbiByZWdpb24gICAgICAg ICAgICAgICAgICAgICAgICAgICBDLWMgXgoKICAgICAgIHRvIGxpbWl0IGNvbHVtbiB3aWR0aCB0 byBOIGNoYXJhY3RlcnMsIHVzZSAgICAgLi4ufCA8Tj4gfC4uLiAKICAgICAgIGVkaXQgdGhlIGN1 cnJlbnQgZmllbGQgaW4gYSBzZXBhcmF0ZSB3aW5kb3cgICAgQy1jIGAgCiAgICAgICBtYWtlIGN1 cnJlbnQgZmllbGQgZnVsbHkgdmlzaWJsZSAgICAgICAgICAgICAgIEMtdSBUQUIgCiAgICAKKiog UmFkaW8gVGFibGVzIGFuZCBMYVRlWCBFeHBvcnQgCioqIENyZWF0aW5nIGEgdGFibGUgCgogICAg ICAgICBqdXN0IHN0YXJ0IHR5cGluZywgZS5nLiB8TmFtZXxQaG9uZXxBZ2UgUkVUIHwtIFRBQiAK CiAgICAgICAgICBjb252ZXJ0IHJlZ2lvbiB0byB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAg Qy1jIHwgCiAgICAgICAgICAuLi4gc2VwYXJhdG9yIGF0IGxlYXN0IDMgc3BhY2VzICAgICAgICAg ICAgICAgQy0zIEMtYyB8IAogICAgICAgICAgY29udmVydGluZyBjc3YgdGFibGUgICAgICAgICAg ICAgICAgICAgICAgICAgICBDLXUgQy1jIHwKCioqIENvbW1hbmRzIGF2YWlsYWJsZSBpbnNpZGUg dGFibGVzIAoKKioqICBSZS1hbGlnbmluZyBhbmQgZmllbGQgbW90aW9uICAgICAgQy1jIEMtYyAg LyAgVEFCCgogICAgICAgICByZS1hbGlnbiB0aGUgdGFibGUgd2l0aG91dCBtb3ZpbmcgdGhlIGN1 cnNvciAgQy1jIEMtYyAKICAgICAgICAgcmUtYWxpZ24gdGhlIHRhYmxlLCBtb3ZlIHRvIG5leHQg ZmllbGQgICAgICAgICBUQUIgCiAgICAgICAgIG1vdmUgdG8gcHJldmlvdXMgZmllbGQgICAgICAg ICAgICAgICAgICAgICAgICAgUy1UQUIgCiAgICAgICAgIHJlLWFsaWduIHRoZSB0YWJsZSwgbW92 ZSB0byBuZXh0IHJvdyAgICAgICAgICAgUkVUIAoKKioqICBSZWdpb25zICAgICAgICAgICAgICAg Qy1jIEMteCBDLXcvTS13L0MteQoKICAgICBjdXQgcmVjdGFuZ3VsYXIgcmVnaW9uICAgICAgICAg ICAgICAgICAgICAgICAgICAgQy1jIEMteCBDLXcgCiAgICAgY29weSByZWN0YW5ndWxhciByZWdp b24gICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBDLXggTS13IAogICAgIHBhc3RlIHJlY3Rh bmd1bGFyIHJlZ2lvbiAgICAgICAgICAgICAgICAgICAgICAgICBDLWMgQy14IEMteSAKICAgICBm aWxsIHBhcmFncmFwaCBhY3Jvc3Mgc2VsZWN0ZWQgY2VsbHMgICAgICAgICAgICAgQy1jIEMtcSAK CioqKiAgTWlzY2VsbGFuZW91cyAKCiAgICAgICBleHBvcnQgYXMgdGFiLXNlcGFyYXRlZCBmaWxl ICAgICAgICAgICAgICAgICAgIE0teCBvcmctdGFibGUtZXhwb3J0IAogICAgICAgaW1wb3J0IHRh Yi1zZXBhcmF0ZWQgZmlsZSAgICAgICAgICAgICAgICAgICAgICBNLXggb3JnLXRhYmxlLWltcG9y dCAKICAgICAgIGltcG9ydCBjc3YgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Qy11IEMtYyB8CiAgICAgICBzdW0gbnVtYmVycyBpbiBjdXJyZW50IGNvbHVtbi9yZWN0YW5nbGUg ICAgICAgQy1jICsgCgoqKiogIFRhYmxlcyBjcmVhdGVkIHdpdGggdGhlICAgdGFibGUuZWwgIHBh Y2thZ2UgCgogICAgICAgaW5zZXJ0IGEgbmV3IHRhYmxlLmVsIHRhYmxlICAgICAgICAgICAgICAg ICAgICBDLWMgICAKICAgICAgIHJlY29nbml6ZSBleGlzdGluZyB0YWJsZS5lbCB0YWJsZSAgICAg ICAgICAgICAgQy1jIEMtYyAKICAgICAgIGNvbnZlcnQgdGFibGUgKE9yZy1tb2RlIHRhYmxlLmVs KSAgICAgICAgICAgICAgQy1jICAgCgoqKiogIFNwcmVhZHNoZWV0IAoKICAgIEZvcm11bGFzIHR5 cGVkIGluIGZpZWxkIGFyZSBleGVjdXRlZCBieSAgIFRBQiwgUkVULCBhbmQgQy1jIEMtYyAuICAK ICAgICAgICA9ICBpbnRyb2R1Y2VzIGEgY29sdW1uIGZvcm11bGEgICAKICAgICAgICA6PSBpbnRy b2R1Y2VkICBhIGZpZWxkIGZvcm11bGEKCioqKiogRXhhbXBsZQoKICAgICAgIEV4YW1wbGU6IEFk ZCBDb2wxIGFuZCBDb2wyICAgICAgICAgICAgICAgICAgICB8PSQxKyQyICAgICAgfCAKICAgICAg IC4uLiB3aXRoIHByaW50ZiBmb3JtYXQgc3BlY2lmaWNhdGlvbiAgICAgICAgICB8PSQxKyQyOyUu MmZ8IAogICAgICAgLi4uIHdpdGggY29uc3RhbnRzIGZyb20gY29uc3RhbnRzLmVsICAgICAgICAg IHw9JDEvJGMvJGNtIHwgCiAgICAgICBzdW0gZnJvbSAybmQgdG8gM3JkIGhsaW5lICAgICAgICAg ICAgICAgICAgICAgfDo9dnN1bShASUkuLkBJSUkpfCAKICAgICAgIGFwcGx5IGN1cnJlbnQgY29s dW1uIGZvcm11bGEgICAgICAgICAgICAgICAgICB8ID0gfCAKCiAgICAgICBzZXQgYW5kIGV2YWwg Y29sdW1uIGZvcm11bGEgICAgICAgICAgICAgICAgICAgQy1jID0gCiAgICAgICBzZXQgYW5kIGV2 YWwgZmllbGQgZm9ybXVsYSAgICAgICAgICAgICAgICAgICAgQy11IEMtYyA9IAogICAgICAgcmUt YXBwbHkgYWxsIHN0b3JlZCBlcXVhdGlvbnMgdG8gY3VycmVudCBsaW5lIEMtYyAqIAogICAgICAg cmUtYXBwbHkgYWxsIHN0b3JlZCBlcXVhdGlvbnMgdG8gZW50aXJlIHRhYmxlIEMtdSBDLWMgKiAK ICAgICAgIGl0ZXJhdGUgdGFibGUgdG8gc3RhYmlsaXR5ICAgICAgICAgICAgICAgICAgICBDLXUg Qy11IEMtYyAqIAogICAgICAgcm90YXRlIGNhbGN1bGF0aW9uIG1hcmsgdGhyb3VnaCAjICogISAg ICAgICAgIF8gJCAgQy0jIAogICAgICAgc2hvdyBsaW5lLCBjb2x1bW4sIGZvcm11bGEgcmVmZXJl bmNlICAgICAgICAgIEMtYyA/IAogICAgICAgdG9nZ2xlIGNvb3JkaW5hdGUgZ3JpZCAgICAgICAg ICAgICAgICAgICAgICAgIEMtYyB9IAogICAgICAgdG9nZ2xlIGZvcm11bGEgZGVidWdnZXIgICAg ICAgICAgICAgICAgICAgICAgIEMtYyB7IAoKCioqKiAgIEZvcm11bGEgRWRpdG9yIAoKICAgZWRp dCBmb3JtdWxhcyBpbiBzZXBhcmF0ZSBidWZmZXIgIEMtYyAnIAogICBleGl0IGFuZCBpbnN0YWxs IG5ldyBmb3JtdWxhcyAgQy1jIEMtYyAKICAgZXhpdCwgaW5zdGFsbCwgYW5kIGFwcGx5IG5ldyBm b3JtdWxhcyAgQy11IEMtYyBDLWMgCiAgIGFib3J0ICBDLWMgQy1xIAogICB0b2dnbGUgcmVmZXJl bmNlIHN0eWxlICBDLWMgQy1yIAogICBwcmV0dHktcHJpbnQgTGlzcCBmb3JtdWxhICBUQUIgCiAg IGNvbXBsZXRlIExpc3Agc3ltYm9sICBNLVRBQiAKICAgc2hpZnQgcmVmZXJlbmNlIHBvaW50ICBT LWN1cnNvciAKICAgc2hpZnQgdGVzdCBsaW5lIGZvciBjb2x1bW4gcmVmZXJlbmNlcyAgTS11cC9k b3duIAogICBzY3JvbGwgdGhlIHdpbmRvdyBzaG93aW5nIHRoZSB0YWJsZSAgTS1TLXVwL2Rvd24g CiAgIHRvZ2dsZSB0YWJsZSBjb29yZGluYXRlIGdyaWQgIEMtYyB9IAoKKiogSW1wb3J0aW5nIGFu ZCBFeHBvcnRpbmcgVGFibGUKIAogICAgICAgZXhwb3J0IGFzIHRhYi1zZXBhcmF0ZWQgZmlsZSAg ICAgICAgICAgICAgICAgICBNLXggb3JnLXRhYmxlLWV4cG9ydCAKICAgICAgIGltcG9ydCB0YWIt c2VwYXJhdGVkIGZpbGUgICAgICAgICAgICAgICAgICAgICAgTS14IG9yZy10YWJsZS1pbXBvcnQg CiAgICAgICBpbXBvcnQgY3N2IGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMt dSBDLWMgfAogCiogW1tpbmZvOm9yZzpIeXBlcmxpbmtzXVtMaW5rc11dICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEMtYyBsICAgIC8gICAgQy1jIEMtbAoKICAgICAgICBnbG9iYWxseSBzdG9y ZSBsaW5rIHRvIHRoZSBjdXJyZW50IGxvY2F0aW9uICAgQy1jIGwgCiAgICAgICAgaW5zZXJ0IGEg bGluayAoVEFCIGNvbXBsZXRlcyBzdG9yZWQgbGlua3MpICAgIEMtYyBDLWwgCiAgICAgICAgaW5z ZXJ0IGZpbGUgbGluayB3aXRoIGZpbGUgbmFtZSBjb21wbGV0aW9uICAgIEMtdSBDLWMgQy1sIAog ICAgICAgIGVkaXQgKGFsc28gaGlkZGVuIHBhcnQgb2YpIGxpbmsgYXQgcG9pbnQgICAgICBDLWMg Qy1sIAoKICAgICAgICBvcGVuIGZpbGUgbGlua3MgaW4gZW1hY3MgICAgICAgICAgICAgICAgICAg ICAgQy1jIEMtbyAKICAgICAgICAuLi5mb3JjZSBvcGVuIGluIGVtYWNzL290aGVyIHdpbmRvdyAg ICAgICAgICAgQy11IEMtYyBDLW8gCiAgICAgICAgb3BlbiBsaW5rIGF0IHBvaW50ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vdXNlLTEvMiAKICAgICAgICAuLi5mb3JjZSBvcGVuIGluIGVt YWNzL290aGVyIHdpbmRvdyAgICAgICAgICAgbW91c2UtMyAKICAgICAgICByZWNvcmQgYSBwb3Np dGlvbiBpbiBtYXJrIHJpbmcgICAgICAgICAgICAgICAgQy1jICUgCiAgICAgICAganVtcCBiYWNr IHRvIGxhc3QgZm9sbG93ZWQgbGluayhzKSAgICAgICAgICAgIEMtYyAmIAogICAgICAgIGZpbmQg bmV4dCBsaW5rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLWMgQy14IEMtbiAKICAg ICAgICBmaW5kIHByZXZpb3VzIGxpbmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQy1jIEMt eCBDLXAgCiAgICAgICAgZWRpdCBjb2RlIHNuaXBwZXQgb2YgZmlsZSBhdCBwb2ludCAgICAgICAg ICAgIEMtYyAnIAoKKiogIEludGVybmFsIExpbmtzCgogICAgICAgIDw8TXkgVGFyZ2V0Pj4gICAg IHRhcmdldCAKICAgICAgICA8PDxNeSBUYXJnZXQ+Pj4gICAgIHJhZGlvIHRhcmdldF4yIAogICAg ICAgIFtbKnRoaXMgdGV4dF1dICAgICBmaW5kIGhlYWRsaW5lIAogICAgICAgIFtbdGhpcyB0ZXh0 XV0gICAgIGZpbmQgdGFyZ2V0IG9yIHRleHQgaW4gYnVmZmVyIAogICAgICAgIFtbdGhpcyB0ZXh0 XVtkZXNjcmlwdGlvbl1dICAgICBvcHRpb25hbCBsaW5rIHRleHQgCgoqKiAgRXh0ZXJuYWwgTGlu a3MgCgogICAgICAgZmlsZTovaG9tZS9kb21pbmlrL2ltZy9tYXJzLmpwZyAgICAgICBmaWxlLCBh YnNvbHV0ZSAKICAgICAgIGZpbGU6cGFwZXJzL2xhc3QucGRmICAgICAgICAgICAgICAgICAgZmls ZSwgcmVsYXRpdmUgCiAgICAgICBmaWxlOnByb2plY3RzLm9yZzo6KnRoYXQgdGV4dCAgICAgICAg IGZpbmQgaGVhZGxpbmUgCiAgICAgICBmaWxlOnByb2plY3RzLm9yZzo6ZmluZCBtZSAgICAgICAg ICAgIGZpbmQgdHJndC9zdHJpbmcgCiAgICAgICBodHRwOi8vd3d3LmFzdHJvLnV2YS5ubC9kb21p bmlrICAgICAgIG9uIHRoZSB3ZWIgCiAgICAgICBtYWlsdG86YWRlbnRAZ2FsYXh5Lm5ldCAgICAg ICAgICAgICAgIEVtYWlsIGFkZHJlc3MgCiAgICAgICBuZXdzOmNvbXAuZW1hY3MgICAgICAgICAg ICAgICAgICAgICAgIFVzZW5ldCBncm91cCAKICAgICAgIGJiZGI6UmljaGFyZCBTdGFsbG1hbiAg ICAgICAgICAgICAgICAgQkJEQiBwZXJzb24gCiAgICAgICBnbnVzOmdyb3VwICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdOVVMgZ3JvdXAgCiAgICAgICBnbnVzOmdyb3VwI2lkICAgICAgICAg ICAgICAgICAgICAgICAgIEdOVVMgbWVzc2FnZSAKICAgICAgIHZtfHdsfG1oZXxybWFpbDpmb2xk ZXIgICAgICAgICAgICAgICAgTWFpbCBmb2xkZXIgCiAgICAgICB2bXx3bHxtaGV8cm1haWw6Zm9s ZGVyI2lkICAgICAgICAgICAgIE1haWwgbWVzc2FnZSAKICAgICAgIGluZm86ZW1hY3M6UmVnZXhw cyAgICAgICAgICAgICAgICAgICAgSW5mbyBmaWxlOm5vZGUgCiAgICAgICBzaGVsbDpscyAqLm9y ZyAgICAgICAgICAgICAgICAgICAgICAgIHNoZWxsIGNvbW1hbmQgCiAgICAgICBlbGlzcDooY2Fs ZW5kYXIpICAgICAgICAgICAgICAgICAgICAgIGVsaXNwIGZvcm0gCiAgICAgICBbW2V4dGVybmFs IGxpbmtdW2Rlc2NyaXB0aW9uXV0gICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBs aW5rIHRleHQgCgp+KiBDb21wbGV0aW9uIAoKICAgICAgIEluLWJ1ZmZlciBjb21wbGV0aW9uIGNv bXBsZXRlcyBUT0RPIGtleXdvcmRzIGF0IGhlYWRsaW5lc3RhcnQsCiAgICAgICAgICAgICBUZVgg bWFjcm9zIGFmdGVyICJcIgogICAgICAgICAgICAgb3B0aW9uIGtleXdvcmRzIGFmdGVyICIjLSIg CiAgICAgICAgICAgICBUQUdTIGFmdGVyICI6IiAKICAgICAgICAgICAgIGFuZCBkaWN0aW9uYXJ5 IHdvcmRzIGVsc2V3aGVyZS4KCiAgICAgICAgQ29tcGxldGUgd29yZCBhdCBwb2ludCAgICAgICAg ICAgICAgICAgICAgICAgIE0tVEFCIAoKKiBbW2luZm86b3JnOlRPRE8lMjBJdGVtc11bVE9ETyBJ dGVtc11dICAgICAgICAgICAgICAgICAgICAgICBNLVMtUkVUICAgICAgICAgQy1jIEMtdAoKICAg ICAgICBpbnNlcnQgbmV3IFRPRE8gZW50cnkvY2hlY2tib3ggaXRlbSAgICAgICAgICAgTS1TLVJF VCAKICAgICAgICBpbnNlcnQgVE9ETyBlbnRyeS9ja2J4IGFmdGVyIHN1YnRyZWUgICAgICAgICAg Qy1TLVJFVCAKICAgICAgICBDT05WRVJUIENVUlJFTlQgSEVBRElORyBUTyBUT0RPICAgICAgICAg ICAgICAgQy1jIEMtdAoKICAgICAgICByb3RhdGUgdGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50IGl0 ZW0gICAgICAgICAgQy1jIEMtdCAKICAgICAgICBzZWxlY3QgbmV4dC9wcmV2aW91cyBzdGF0ZSAg ICAgICAgICAgICAgICAgICAgUy1MRUZUL1JJR0hUIAogICAgICAgIHNlbGVjdCBuZXh0L3ByZXZp b3VzIHNldCAgICAgICAgICAgICAgICAgICAgICBDLVMtTEVGVC9SSUdIVCAKICAgICAgICB2aWV3 IFRPRE8gaXRlbXMgaW4gYSBzcGFyc2UgdHJlZSAgICAgICAgICAgICAgQy1jIEMtdiAKICAgICAg ICB2aWV3IDNyZCBUT0RPIGtleXdvcmQncyBzcGFyc2UgdHJlZSAgICAgICAgICAgQy0zIEMtYyBD LXYgCgogICAgICAgIHNldCB0aGUgcHJpb3JpdHkgb2YgdGhlIGN1cnJlbnQgaXRlbSAgICAgICAg ICBDLWMgLCBbQUJDXSAKICAgICAgICByZW1vdmUgcHJpb3JpdHkgY29va2llIGZyb20gY3VycmVu dCBpdGVtICAgICAgQy1jICwgU1BDIAogICAgICAgIHJhaXNlL2xvd2VyIHByaW9yaXR5IG9mIGN1 cnJlbnQgaXRlbSAgICAgICAgICBTLVVQL0RPV05eMyAKCiogW1tpbmZvOm9yZzpUYWdzXVtUYWdz XV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBDLXEgIC8gIEMtYyBDLWMgIC8gIEMt YyBcCQk6Q2hlY2s6CgogICAgICAgIHNldCB0YWdzIGZvciBjdXJyZW50IGhlYWRpbmcgICAgICAg ICAgICAgICAgICBDLWMgQy1xIAogICAgICAgIHNldCB0YWJzIHdoZW4gb24gdGhlIGhlYWRpbmcg ICAgICAgICAgICAgICAgICBDLWMgQy1jIAogICAgICAgIHJlYWxpZ24gdGFncyBpbiBhbGwgaGVh ZGluZ3MgICAgICAgICAgICAgICAgICBDLXUgQy1jIEMtcSAKCiAgICAgICAgY3JlYXRlIHNwYXJz ZSB0cmVlIHdpdGggbWF0Y2hpbmcgdGFncyAgICAgICAgIEMtYyAvIFQgIC8gIEMtYyBcIAogICAg ICAgIGNyZWF0ZSBnbG9iYWwgbGlzdCBvZiB0YWcgbWF0Y2hlcyAgICAgICAgICAgICBDLWMgYSBt CiAgICAgICAgICB3aXRoIFxDLXUgcHJlZml4LCBpZ25vcmUgbm90IFRPRE8gICAgICAgICAgIEMt dSBDLWMgYSBtCiAgICAgICAgZ2xvYmFsIGFnZW5kYSBsaXN0IHRhZyBtYXRjaGVzIG9ubHkgVE9E TyAgICAgIEMtYyBhIE0KICAgICAgICBnbG9iYWxseSAoYWdlbmRhKSBtYXRjaCB0YWdzIGF0IGN1 cnNvciAgICAgICAgQy1jIEMtbyAKCiogW1tpbmZvOm9yZzpQcm9wZXJ0aWVzJTIwYW5kJTIwQ29s dW1uc11bUHJvcGVydGllcyBhbmQgQ29sdW1uIFZpZXddXSAgICAgICBDLWMgQy14IHAKCiAgICAg ICAgc2V0IHByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBDLXgg cCAKICAgICAgICBzcGVjaWFsIGNvbW1hbmRzIGluIHByb3BlcnR5IGxpbmVzICAgICAgICAgICAg Qy1jIEMtYyAKICAgICAgICBuZXh0L3ByZXZpb3VzIGFsbG93ZWQgdmFsdWUgICAgICAgICAgICAg ICAgICAgUy1sZWZ0L3JpZ2h0IAogICAgICAgIHR1cm4gb24gY29sdW1uIHZpZXcgICAgICAgICAg ICAgICAgICAgICAgICAgICBDLWMgQy14IEMtYyAKICAgICAgICBjYXB0dXJlIGNvbHVtbnMgdmll dyBpbiBkeW5hbWljIGJsb2NrICAgICAgICAgQy1jIEMteCBpIAoKICAgICAgICBxdWl0IGNvbHVt biB2aWV3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSAKICAgICAgICBuZXh0L3ByZXZp b3VzIGFsbG93ZWQgdmFsdWUgICAgICAgICAgICAgICAgICAgUy1sZWZ0L3JpZ2h0IAogICAgICAg IG5leHQvcHJldmlvdXMgYWxsb3dlZCB2YWx1ZSAgICAgICAgICAgICAgICAgICBuIC8gcCAKICAg ICAgICBlZGl0IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSAKICAg ICAgICBlZGl0IGFsbG93ZWQgdmFsdWVzIGxpc3QgICAgICAgICAgICAgICAgICAgICAgYSAKICAg ICAgICBzaG93IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAKICAg ICAgICBtYWtlIGNvbHVtbiB3aWRlci9uYXJyb3dlciAgICAgICAgICAgICAgICAgICAgPiAvIDwg CiAgICAgICAgbW92ZSBjb2x1bW4gbGVmdC9yaWdodCAgICAgICAgICAgICAgICAgICAgICAgIE0t bGVmdC9yaWdodCAKICAgICAgICBhZGQgbmV3IGNvbHVtbiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTS1TLXJpZ2h0IAogICAgICAgIERlbGV0ZSBjdXJyZW50IGNvbHVtbiAgICAgICAg ICAgICAgICAgICAgICAgICBNLVMtbGVmdCAKCiogW1tpbmZvOm9yZzpUaW1lc3RhbXBzXVtUaW1l c3RhbXBzXV0gICAgICAgICAgICAgICAgICAgICAgIEMtYyAuICAvICAgQy1jICEKCiAgICAgICAg cHJvbXB0IGZvciBkYXRlIGFuZCBpbnNlcnQgdGltZXN0YW1wICAgICAgICAgIEMtYyAuIAogICAg ICAgIGxpa2UgQy1jIC4gYnV0IGluc2VydCBkYXRlIGFuZCB0aW1lIGZvcm1hdCAgICBDLXUgQy1j IC4gCiAgICAgICAgTGlrZSBDLWMgLiBidXQgbWFrZSBzdGFtcCBpbmFjdGl2ZSAgICAgICAgICAg IEMtYyAhICAKICAgICAgICBpbnNlcnQgREVBRExJTkUgdGltZXN0YW1wICAgICAgICAgICAgICAg ICAgICAgQy1jIEMtZCAKICAgICAgICBpbnNlcnQgU0NIRURVTEVEIHRpbWVzdGFtcCAgICAgICAg ICAgICAgICAgICAgQy1jIEMtcyAKICAgICAgICBjcmVhdGUgc3BhcnNlIHRyZWUgd2l0aCBhbGwg ZGVhZGxpbmVzIGR1ZSAgICAgQy1jIC8gZCAKICAgICAgICB0aGUgdGltZSBiZXR3ZWVuIDIgZGF0 ZXMgaW4gYSB0aW1lIHJhbmdlICAgICAgQy1jIEMteSAKICAgICAgICBjaGFuZ2UgdGltZXN0YW1w IGF0IGN1cnNvciBieSAxIGRheSAgICAgICAgICAgUy1SSUdIVC9MRUZUCiAgICAgICAgY2hhbmdl IHllYXIvbW9udGgvZGF5IGF0IGN1cnNvciBieSAxICAgICAgICAgIFMtVVAvRE9XTgogICAgICAg IGFjY2VzcyB0aGUgY2FsZW5kYXIgZm9yIHRoZSBjdXJyZW50IGRhdGUgICAgICBDLWMgPiAKICAg ICAgICBpbnNlcnQgdGltZXN0YW1wIG1hdGNoaW5nIGRhdGUgaW4gY2FsZW5kYXIgICAgQy1jIDwg CiAgICAgICAgYWNjZXNzIGFnZW5kYSBmb3IgY3VycmVudCBkYXRlICAgICAgICAgICAgICAgIEMt YyBDLW8gCiAgICAgICAgU2VsZWN0IGRhdGUgd2hpbGUgcHJvbXB0ZWQgICAgICAgICAgICAgICAg ICAgIG1vdXNlLTEvUkVUIAogICAgICAgIFRvZ2dsZSBjdXN0b20gZm9ybWF0IGRpc3BsYXkgZm9y IGRhdGVzL3RpbWVzICBDLWMgQy14IEMtdCAKKiBbW2luZm86b3JnOkluc2VydGluZyUyMGRlYWRs aW5lL3NjaGVkdWxlXVtTY2hlZHVsZSBhbmQgRGVhZGxpbmVdXSAgICAgICAgICAgIEMtYyBDLXMg IC8gIEMtYyBDLWQgICAgICAgICAgIAoqIFtbaW5mbzpvcmc6Q2xvY2tpbmclMjB3b3JrJTIwdGlt ZV1bQ2xvY2tpbmcgdGltZV1dICAgICAgICAgICAgICAgICAgICBDLWMgQy14IEMtaSAgLyAgQy1j IEMteCBDLW8KCiAgICAgICAgc3RhcnQgY2xvY2sgb24gY3VycmVudCBpdGVtICAgICAgICAgICAg ICAgICAgIEMtYyBDLXggQy1pIAogICAgICAgIHN0b3AgY2xvY2sgb24gY3VycmVudCBpdGVtICAg ICAgICAgICAgICAgICAgICBDLWMgQy14IEMtbyAKICAgICAgICBjYW5jZWwgY3VycmVudCBjbG9j ayAgICAgICAgICAgICAgICAgICAgICAgICAgQy1jIEMteCBDLXggCiAgICAgICAgZGlzcGxheSB0 b3RhbCBzdWJ0cmVlIHRpbWVzICAgICAgICAgICAgICAgICAgIEMtYyBDLXggQy1kIAogICAgICAg IHJlbW92ZSBkaXNwbGF5ZWQgdGltZXMgICAgICAgICAgICAgICAgICAgICAgICBDLWMgQy1jIAog ICAgICAgIGluc2VydC91cGRhdGUgdGFibGUgd2l0aCBjbG9jayByZXBvcnQgICAgICAgICBDLWMg Qy14IEMtciAKCgkJCQkJCSogW1tpbmZvZzpvcmc6UmVsYXRpdmUlMjB0aW1lcl1bUmVsYXRpdmUg dGltZSBjbG9ja11dICAgICAgICAgICAgICBDLWMgQy14MSAuICAvICBDLWMgQy14IC0gIAoKCQkJ CQkJICAgICAgICBpbnNlcnQgYSByZWxhdGl2ZSB0aW1lIGludG8gdGhlIGJ1ZmZlciAgICAgICAg IEMtYyBDLXggLgoJCQkJCQkgICAgICAgICAgIHRoZSBmaXJzdCB0aW1lIHRoZSB0aW1lciBpcyBz dGFydGVkCgkJCQkJCSAgICAgICAgICAgcmVzZXQgcmVsYXRpdmUgdGltZSB0byBaZXJvICAgICAg ICAgICAgIEMtdSBDLWMgQy14IC4KCQkJCQkJICAgICAgICBpbnNlcnQgYSBkZXNjcmlwdGlvbiBs aXN0IGl0ZW0gd2l0aCB0aW1lICAgICAgIEMtYyBDLXggLQoJCQkJCQkJICAgd2l0aCBwcmVmaXgg c2V0IHRvIHplcm8gICAgICAgICAgICAgICAgICBDLXUgQy1jIEMteCAtCgkJCQkJCSAgICAgICAg cmVzZXQgdGltZXIgd2l0aG91dCBpbnNlcnRpbmcgYW55dGhpbmcgICAgICAgICBDLWMgQy14IDAK CQkJCQkJICAgICAgICAgICBzZXQgdG8gYSBzcGVjaWZpYyBvZmZzZXQgICAgICAgICAgICAgICAg Qy11IEMtYyBDLXggMAoJCQkJCQkgICAgICAgICAgIHdpdGggQy1jIEMtdSBwcmVmaXgsIGNoYW5n ZSBhbGwgdGltZXMgaW4gcmVnaW9uCgkJCQkJCSAgICAgICAgICAgICBieSBhIGdpdmVuIG9mZnNl dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBDLXUgQy1jIEMteCAwCgkJCQkJCSAg ICAgICAgcGF1c2UgdGltZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBD LXggLAoJCQkJCQkgICAgICAgIHN0b3AgdGltZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEMtdSBDLWMgQy14ICwKCQkJCQkJKiBDb3VudGRvd24gdGltZXIgKFRlYXRpbWUgRnVuY3Rp b25hbGl0eSkgICBDLWMgQy14IDsJCQkgICAgICA6VE9ETzoKCQkJCQkJICBGcm9tIEFnZW5kYTog IjsidgogIE9uIG1haWxpbmcgbGlzdCwgYnV0IGRpZG4ndCBmaW5kIGluIHVwIHRvIGRhdGUgZG9j cyBvbiBbMjAwOS0wOC0xMCBNb25dCiogW1tpbmZvOm9yZzpSZWZpbGluZyUyMG5vdGVzXVtSZWZp bGluZ11dICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBDLXcgCgogICAgQy1jIEMtdyAgICAg ICAgICAgUmVmaWxlIGVudHJ5IG9yIHJlZ2lvbiBhdCBwb2ludAogICAgQy11IEMtYyBDLXcgICAg ICAgVXNlIHRoZSByZWZpbGUgaW50ZXJmYWNlIHRvIGp1bXAgdG8gYSBoZWFkaW5nLgogICAgQy11 IEMtdSBDLWMgQy13ICAgSnVtcCB0byAgbG9jYXRpb24gd2hlcmUgb3JnLXJlZmlsZSBsYXN0IG1v dmVkIGEgdHJlZSAKCiAgICAgQnkgZGVmYXVsdCwgYWxsIGxldmVsIDEgaGVhZGxpbmVzIGluIHRo ZSBjdXJyZW50IGJ1ZmZlciBhcmUgY29uc2lkZXJlZCB0byBiZQogICAgIHRhcmdldHMsIGJ1dCB5 b3UgY2FuIGhhdmUgbW9yZSBjb21wbGV4IGRlZmluaXRpb25zIGFjcm9zcyBhIG51bWJlciBvZgog ICAgIGZpbGVzLiBTZWUgIFtbKlZhcmlhYmxlJTIwb3JnJTIwcmVmaWxlJTIwdGFyZ2V0c11bbG9j YWwgbGluayB0byBkb2NzdHJpbmcgb2YgdmFyaWFibGUgb3JnLXJlZmlsZS10YXJnZXRzXV0gZm9y CiAgICAgZGV0YWlscy4gIAogICAgIAoqKiBWYXJpYWJsZXMKCiAgICAgRmVhdHVyZSAgICAgICAg ICAgICAgICAgIFZhcmlhYmxlIChjbGljayB0byBjdXN0b21pemUpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtbZWxpc3A6KGN1c3RvbWl6ZS12YXJpYWJsZSAnb3JnLXJldmVyc2Utbm90ZS1vcmRlcildW29y Zy1yZXZlcnNlLW5vdGUtb3JkZXJdXSAgICAgICAgICAgICAgICAKICAgICB1c2luZyBmaWxlcyAg ICAgICAgICAgICAgW1soY3VzdG9taXplLXZhcmlhYmxlJTIwJ29yZy1yZWZpbGUtdGFyZ2V0cyld W29yZy1yZWZpbGUtdGFyZ2V0c11dICAgICAgICAgICAgICAgICAgICAgIAogICAgIHBhdGggY29t cGxldGlvbiAgICAgICAgICBbW2VsaXNwOihjdXN0b21pemUtdmFyaWFibGUlMjAnb3JnLXJlZmls ZS11c2Utb3V0bGluZS1wYXRoKV1bb3JnLXJlZmlsZS11c2Utb3V0bGluZS1wYXRoXV0KICAgICAi ICAgICAgICAgICAgICAgICAgICAgICAgW1tlbGlzcDooY3VzdG9taXplLXZhcmlhYmxlJTIwJ29y Zy1vdXRsaW5lLXBhdGgtY29tcGxldGUtaW4tc3RlcHMpXVtvcmctb3V0bGluZS1wYXRoLWNvbXBs ZXRlLWluLXN0ZXBzXV0gICAgICAKICAgICBjcmVhdGUgbm9kZSBvbiB0aGUgZmx5ICAgW1tlbGlz cDooY3VzdG9taXplLXZhcmlhYmxlJTIwJ29yZy1yZWZpbGUtYWxsb3ctY3JlYXRpbmctcGFyZW50 LW5vZGVzJTIwJTIwKV1bb3JnLXJlZmlsZS1hbGxvdy1jcmVhdGluZy1wYXJlbnQtbm9kZXNdXQoK KioqIFZhcmlhYmxlIG9yZy1yZWZpbGUtdGFyZ2V0cwogICAgICBvcmctcmVmaWxlLXRhcmdldHMg aXMgYSB2YXJpYWJsZSBkZWZpbmVkIGluIGBvcmcuZWwnLgogICAgICBJdHMgdmFsdWUgaXMgCiAg ICAgICgobmlsIDptYXhsZXZlbCAuIDEpKQogICAgICAKICAgICAgCiAgICAgIERvY3VtZW50YXRp b246CiAgICAgIFRhcmdldHMgZm9yIHJlZmlsaW5nIGVudHJpZXMgd2l0aCBDLWMgQy13LgogICAg ICBUaGlzIGlzIGxpc3Qgb2YgY29ucyBjZWxscy4gIEVhY2ggY2VsbCBjb250YWluczoKICAgICAg LSBhIHNwZWNpZmljYXRpb24gb2YgdGhlIGZpbGVzIHRvIGJlIGNvbnNpZGVyZWQsIGVpdGhlciBh IGxpc3Qgb2YgZmlsZXMsCiAgICAgICAgb3IgYSBzeW1ib2wgd2hvc2UgZnVuY3Rpb24gb3IgdmFy aWFibGUgdmFsdWUgd2lsbCBiZSB1c2VkIHRvIHJldHJpZXZlCiAgICAgICAgYSBmaWxlIG5hbWUg b3IgYSBsaXN0IG9mIGZpbGUgbmFtZXMuICBJZiB5b3UgdXNlIGBvcmctYWdlbmRhLWZpbGVzJyBm b3IKICAgICAgICB0aGF0LCBhbGwgYWdlbmRhIGZpbGVzIHdpbGwgYmUgc2Nhbm5lZCBmb3IgdGFy Z2V0cy4gIE5pbCBtZWFucywgY29uc2lkZXIKICAgICAgICBoZWFkaW5ncyBpbiB0aGUgY3VycmVu dCBidWZmZXIuCiAgICAgIC0gQSBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0byBmaW5kIGNhbmRpZGF0 ZSByZWZpbGUgdGFyZ2V0cy4gIFRoaXMgbWF5IGJlCiAgICAgICAgYW55IG9mOgogICAgICAgIC0g YSBjb25zIGNlbGwgKDp0YWcgLiAiVEFHIikgdG8gaWRlbnRpZnkgcmVmaWxlIHRhcmdldHMgYnkg YSB0YWcuCiAgICAgICAgICBUaGlzIHRhZyBoYXMgdG8gYmUgcHJlc2VudCBpbiBhbGwgdGFyZ2V0 IGhlYWRsaW5lcywgaW5oZXJpdGFuY2Ugd2lsbAogICAgICAgICAgbm90IGJlIGNvbnNpZGVyZWQu CiAgICAgICAgLSBhIGNvbnMgY2VsbCAoOnRvZG8gLiAiS0VZV09SRCIpIHRvIGlkZW50aWZ5IHJl ZmlsZSB0YXJnZXRzIGJ5CiAgICAgICAgICB0b2RvIGtleXdvcmQuCiAgICAgICAgLSBhIGNvbnMg Y2VsbCAoOnJlZ2V4cCAuICJSRUdFWFAiKSB3aXRoIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNo aW5nCiAgICAgICAgICBoZWFkbGluZXMgdGhhdCBhcmUgcmVmaWxpbmcgdGFyZ2V0cy4KICAgICAg ICAtIGEgY29ucyBjZWxsICg6bGV2ZWwgLiBOKS4gIEFueSBoZWFkbGluZSBvZiBsZXZlbCBOIGlz IGNvbnNpZGVyZWQgYSB0YXJnZXQuCiAgICAgICAgICBOb3RlIHRoYXQsIHdoZW4gYG9yZy1vZGQt bGV2ZWxzLW9ubHknIGlzIHNldCwgbGV2ZWwgY29ycmVzcG9uZHMgdG8KICAgICAgICAgIG9yZGVy IGluIGhpZXJhcmNoeSwgbm90IHRvIHRoZSBudW1iZXIgb2Ygc3RhcnMuCiAgICAgICAgLSBhIGNv bnMgY2VsbCAoOm1heGxldmVsIC4gTikuIEFueSBoZWFkbGluZSB3aXRoIGxldmVsIDw9IE4gaXMg YSB0YXJnZXQuCiAgICAgICAgICBOb3RlIHRoYXQsIHdoZW4gYG9yZy1vZGQtbGV2ZWxzLW9ubHkn IGlzIHNldCwgbGV2ZWwgY29ycmVzcG9uZHMgdG8KICAgICAgICAgIG9yZGVyIGluIGhpZXJhcmNo eSwgbm90IHRvIHRoZSBudW1iZXIgb2Ygc3RhcnMuCiAgICAgIAogICAgICBZb3UgY2FuIHNldCB0 aGUgdmFyaWFibGUgYG9yZy1yZWZpbGUtdGFyZ2V0LXZlcmlmeS1mdW5jdGlvbicgdG8gYSBmdW5j dGlvbgogICAgICB0byB2ZXJpZnkgZWFjaCBoZWFkbGluZSBmb3VuZCBieSB0aGUgc2ltcGxlIGNy aXRlcnkgYWJvdmUuCiAgICAgIAogICAgICBXaGVuIHRoaXMgdmFyaWFibGUgaXMgbmlsLCBhbGwg dG9wLWxldmVsIGhlYWRsaW5lcyBpbiB0aGUgY3VycmVudCBidWZmZXIKICAgICAgYXJlIHVzZWQs IGVxdWl2YWxlbnQgdG8gdGhlIHZhbHVlIGAoKG5pbCAuICg6bGV2ZWwgLiAxKSknLgogICAgICAK ICAgICAgWW91IGNhbiBjdXN0b21pemUgdGhpcyB2YXJpYWJsZS4KICAgICAgCiAgICAgIAoKCiog W1tpbmZvOm9yZzpDYXB0dXJlXVtPcmctQ2FwdHVyZV1dICAgICAgICAgICAgICAgICAgICAgIEMt YyBjIChsb2NhbCBrZXliaW5kaW5nKQoKICAgICBvcmctY2FwdHVyZS1maW5hbGl6ZSAgICAgICAg ICBDLWMgQy1jCiAgICAgICBmaW5hbGl6ZS9qdW1wIHRvIGl0ZW0gICAgICAgQy11IEMtYyBDLWMK ICAgICAgIHRvIGZpbmFsaXplIGFuZCAKICAgICBvcmctY2FwdHVyZS1yZWZpbGUgICAgICAgICAg ICBDLWMgQy13IAogICAgICAgcmVmaWxlL2p1bXAgdG8gaXRlbSAgICAgICAgIEMtdSBDLWMgQy13 CiAgICAgb3JnLWNhcHR1cmUta2lsbCAgICAgICAgICAgICAgQy1jIEMtawoKICAgICBpbnNlcnQg dGhlIHRlbXBsYXRlIEhFUkUgICAgICBDLTAgQy1jIGMKCiAgICAgdmlzaXQgdGFyZ2V0IHdpdGhv dXQgY2FwdHVyaW5nICAgICAgQy11IEMtYyBjCiAgICAgdmlzaXQgbGFzdCBzdG9yZWQgaXRlbSBp biBwbGFjZSAgICAgQy11IEMtdSBDLWMgYwoKICAgICBhbm90aGVyIHdheTogTS14IG9yZy1jYXB0 dXJlLXZpc2l0LWdvdG8tbGFzdC1zdG9yZWQKICAgCgoqKiBDYWxsaW5nIGZyb20gdGhlIGFnZW5k YSAgICAgICAgIGsgYyAoaW4gYWdlbmRhKQogICAgIChkYXRlcyBkZWZhdWx0IHRvIGN1cnNvciBk YXRlIHdoZW4gY2FsbGVkKQoKCgoqKiBUZW1wbGF0ZSAiU25pcHBldHMiIHNvIHRvIHNwZWFrIChl eGFtcGxlcykKKioqICBBIG5ldyBsaW5lIGluIGEgdGFibGUKCiAgICAgICAoIlN0IiAiVGVtcGVy YXR1cmUgTG9nIiB0YWJsZS1saW5lIChmaWxlK2hlYWRsaW5lICJTeXN0ZW0uSm91cm5hbC5vcmci ICJzcGluZWxlc3M6OiBUZW1wZXJhdHVyZSBsb2ciKSAiICB8ICVVICB8ICU/ICAgICAgICAgICB8 ICAgICB8ICAgICB8ICAgIHwgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICB8ICAgICB8 ICAgICB8IiA6dW5uYXJyb3dlZCB0KSAKCioqKiAgRGVzaWduaW5nOiB1c2luZyBmdW5jdGlvbnMg dG8gCioqKiAgQ2hlY2tib3hlcwoqKiogIE5FRUQgYSB0ZW1wbGF0ZSBhYm91dCBsZWdkZXIgdGVt cGxhdGVzCioqKiAgRXhhbXBsZXMgd2l0aCBhIHRlbXBsYXRlIGFzIAoKICAgICAgICAxLiBTdHJp bmcKCTIuIEZpbGUgCgkzLiBGdW5jdGlvbgoKKioqICBFeGFtcGxlcyB3aXRoIGVhY2ggdGFyZ2V0 IHR5cGUKCiAgICAgICAgMS4gZmlsZQoJMi4gSUQKICAgICAgICAzLiBmaWxlICsgaGVhZGxpbmUK CTQuIGZpbGUgKyBvdXRsaW5lLXBhdGgKCTUuIGZpbGUgKyByZWd1bGFyIGV4cHJlc3Npb24KCTYu IGZpbGUgKyBkYXRlIHRyZWUKCTcuIGZpbGUgKyBkYXRlIHRyZWUsIHByb21wdCBmb3IgZGF0ZQoJ OC4gZmlsZSArIGZ1bmN0aW9uCgk5LiBDdXJyZW50IGNsb2NraW5nIHRhc2sKCTEwLiBmdW5jdGlv bgoKKioqICBFeGFtcGxlcyB3aXRoIGVhY2ggImtleSIgdHlwZSAgKHBhcmFtZXRlciBvciAicGVy IHRlbXBsYXRlIHNldHRpbmciKQoKICAgICAgICAxLiA6cHJlcGVuZCAKICAgICAgICAyLiA6aW1t ZWRpYXRlLWZpbmlzaCAKICAgICAgICAzLiA6ZW1wdHktbGluZXMgCiAgICAgICAgNC4gOmNsb2Nr LWluIAogICAgICAgIDUuIDpjbG9jay1yZXN1bWUgCiAgICAgICAgNi4gOnVubmFycm93ZWQgCiAg ICAgICAgNy4gOmtpbGwtYnVmZmVyIAoKICAgIAoqKiAgW1tJbmZvOm9yZzpTZXR0aW5nJTIwdXAl MjBjYXB0dXJlXVtTZXR0aW5nIHVwXV0gIChsaW5rIHRvIHRoZSBvcmcgaW5mbyBtYW51YWwpCioq IENhcnN0ZW4ncyBsaXN0IG9mIGRpZmZlcmVuY2VzIGZyb20gb3JnLXJlbWVtYmVyCiAgIChmcm9t IHRoZSBvcmlnaW5hbCBBbm5vdW5jZW1lbnQgYWJvdXQgQ2FwdHVyZSkKCioqKiBPdmVydmlldyBv ZiB0aGUgY2hhbmdlcwogICAgICAKKioqKiAgTm8gdGVtcG9yYXJ5IGJ1ZmZlcgogICAgICAgCgkg V2Ugbm8gbG9uZ2VyIHVzZSBhIHRlbXBvcmFyeSBidWZmZXIgZm9yIGNyZWF0aW5nIHRoZSByZW1l bWJlciBub3RlLgoJIEluc3RlYWQsIHdlIG1ha2UgYW4gaW5kaXJlY3QgYnVmZmVyIGxpbmtlZCB0 byB0aGUgdGFyZ2V0IGJ1ZmZlciBhbmQKCSBlZGl0IHRoZSBuZXcgbm90ZSBhbHJlYWR5IGludG8g aXRzIGludGVuZGVkIHRhcmdldCBmaWxlLiAgVGhpcwoJIG1lYW5zIHlvdSB3aWxsIG5ldmVyIGFn YWluIGxvb3NlIGEgbm90ZSBieSBhY2NpZGVudGFsbHkgc3RhcnRpbmcgYQoJIHNlY29uZCByZW1l bWJlciBwcm9jZXNzLiAgQWxzbywgYWxsIGxvY2FsIHNldHRpbmdzIGxpa2UKCSBmaWxlLXNwZWNp ZmljIFRPRE8ga2V5d29yZHMgZXRjIGluIHRoZSB0YXJnZXQgYnVmZmVyIHdpbGwgYmUKCSBhdmFp bGFibGUgd2hlbiBjb21wb3NpbmcgdGhlIG5vdGUuCiAgICAgICAKKioqKiAgRGlmZmVyZW50IHR5 cGVzIG9mIGNhcHR1cmUgZW50cmllcwogICAgICAgCgkgVGhlIGNhcHR1cmUgcHJvY2VzcyBjYW4g bm93IGFkZCB0byB0aGUgdGFyZ2V0IGZpbGU6CiAgICAgICAKCSAtIGEgbmV3IE9yZyBvdXRsaW5l IG5vZGUsIGVpdGhlciBhdCB0b3AgbGV2ZWwgb3IgYXMgYSBjaGlsZCBvZiBhbgoJICAgZXhpc3Rp bmcgKHRoaXMgaXMgd2hhdCBvcmctcmVtZW1iZXIgYWxyZWFkeSBkb2VzKQoJIC0gcGxhaW4gbGlz dCBpdGVtcwoJIC0gY2hlY2tib3hlcwoJIC0gYSBuZXcgbGluZSBpbiBhIHRhYmxlICh0aGlzIGlz IGNvb2wpCgkgLSBhIGNodW5rIG9mIHBsYWluIHRleHQgKGFuZCB0aGlzIGlzIGdlbmVyYWwpCiAg ICAgICAKCSBGb3IgZXhhbXBsZSwgaXQgc2hvdWxkIGJlIGVhc3kgbm93IHRvIHVzZSBgb3JnLWNh cHR1cmUnIGluIG9yZGVyIHRvCgkgYWRkIHN0dWZmIHRvIGEgbGVkZ2VyIGZpbGUgKFJ1c3NlbGws IGFyZSB5b3UgaGFwcHkgbm93PyA6KQogICAgICAgCioqKiogIE1hbnkgZGlmZmVyZW50IGFuZCBw cmVjaXNlIHdheXMgdG8gc3BlY2lmeSB0aGUgdGFyZ2V0IG9mIGEgdGVtcGxhdGUKICAgICAgIAoJ IFlvdSBjYW4gaWRlbnRpZnkgdGhlIHRhcmdldCBsb2NhdGlvbiBmb3IgYSBub3RlIGluIGEgbnVt YmVyIG9mCgkgd2F5czoKICAgICAgIAoJIC0gZmlsZQoJIC0gZmlsZSArIGhlYWRsaW5lCgkgLSBm aWxlICsgb3V0bGluZS1wYXRoCgkgLSBmaWxlICsgcmVndWxhciBleHByZXNzaW9uCgkgLSBmaWxl ICsgZGF0ZSB0cmVlCgkgLSBjbG9jayAodG8gZmlsZSB0byB0aGUgcnVubmluZyBjbG9jaykKCSAt IElECgkgLSB1c2VyLWRlZmluZWQgZnVuY3Rpb24KICAgICAgIAoJIFlvdSBjYW4gYWxzbyBhZGQg YSB0ZW1wbGF0ZSByaWdodCBhdCBwb2ludCBpbiB0aGUgYnVmZmVyIHdoZXJlIHlvdQoJIGN1cnJl bnRseSBhcmUgd29ya2luZywgYnlwYXNzaW5nIHRoZSB0YXJnZXQgc2V0dGluZyBvZiB0aGUgdGVt cGxhdGUKCSBlbnRpcmVseS4gIFRoaXMgaXMgZG9uZSBieSB1c2luZyBhIHplcm8gcHJlZml4OiAg YEMtMCBDLWMgYycuCiAgICAgICAKKioqKiAgTXVsdGlwbGUgY2FwdHVyZSBldmVudHMgZ29pbmcg b24gYXQgdGhlIHNhbWUgdGltZQoKICAgICAgIAoJIElmIHlvdSBuZWVkIHRvIGNhcHR1cmUgc29t ZXRoaW5nIHdoaWxlIGFscmVhZHkgY2FwdHVyaW5nIHNvbWV0aGluZwoJIGVsc2UsIHlvdSBjYW4g bm93IGRvIHNvLiAgRmluaXNoaW5nIHRoZSBzZWNvbmQgcHJvY2VzcyB3aWxsCgkgYXV0b21hdGlj YWxseSByZXR1cm4geW91IHRvIHRoZSB3aW5kb3cgc2V0dXAgb2YgdGhlIGZpcnN0IG9uZS4KICAg ICAgIAoJIEJlcm50LCB0aGlzIG1pZ2h0IGxlYWQgdG8gY29uZnVzaW5nIHJlc3VsdHMgaWYgeW91 IHdvdWxkIHRyeSB0bwoJIHBvcnQgeW91ciBpbW1lZGlhdGUgY2xvY2staW4sIGNsb2NrLW91dCBj b2RlLiAgSXQgd2lsbCBwcm9iYWJseSBiZQoJIGJldHRlciAoaWYgeW91IGRlY2lkZSBhdCBhbGwg dG8gdHJ5IHRoZSBuZXcgY29kZSkgdG8gdXNlIHRoZQoJIGJ1aWx0LWluIDpjbG9jay1pbiBhbmQg OmNsb2NrLXJlc3VtZSBwcm9wZXJ0aWVzOgogICAgICAgCgkgVGhlc2Ugd2lsbCBldmVuIHdvcmsg Zm9yIGEgY2hhaW46IHN0YXJ0IGNhcHR1cmUgMSwgdGhlbiAyLCB0aGVuIDMsCgkgZmluYWxpemUg MywgdGhlbiAyLCB0aGVuIDEsIGFuZCB0aGUgcHJldmlvdXMgY2xvY2sgd2lsbCBiZQoJIHJlc3Rh cnRlZCBlYWNoIHRpbWUuICBPbmx5IHdoZW4geW91IGZpbmlzaCB0aGUgY2FwdHVyZXMgaW4gYQoJ IGRpZmZlcmVudCBzZXF1ZW5jZSwgdGhlbiB0aGUgY2xvY2stcmVzdW1lIHN0dWZmIHdpbGwgbGVh ZCB0bwoJIHVuZGVmaW5lZCByZXN1bHRzLgogICAgICAgCioqKiogIE5vIHByZWZpeCBhcmdzIHRv IEMtYyBDLWMgd2hlbiBmaW5pc2hpbmcgdXAKCgkgU2luY2UgdGhlIG5vdGUgaXMgYWxyZWFkeSBp biB0aGUgdGFyZ2V0IGJ1ZmZlciwgYWxsIGV4aXRpbmcgZG9lcyBpcwoJIHRvIGtpbGwgdGhlIGlu ZGlyZWN0IGJ1ZmZlciBhbmQgdG8gcmVzdG9yZSB0aGUgd2luZG93IGNvbmZpZ3VyYXRpb24KCSBi ZWZvcmUgc3RhcnRpbmcgdGhlIHByb2Nlc3MuICBJdCBkb2VzIG5vIGxvbmdlciBtYWtlIHNlbnNl IHRvIHRyeQoJIHRvIGNoYW5nZSB0aGUgdGFyZ2V0IGxvY2F0aW9uIHdoZW4gZmluaXNoaW5nIHRo ZSBjYXB0dXJlLgoJIFRoZXJlZm9yZSwgcHJlZml4IGFyZ3VtZW50cyB0byB0aGUgYEMtYyBDLWMn IGZpbmlzaGluZyBwcm9jZXNzIGFyZQoJIG5vIGxvbmdlciBpbnRlcnByZXRlZC4KICAgICAgIAoJ IEluc3RlYWQsIHlvdSBjYW4gc2ltcGx5IHByZXNzIGBDLWMgQy13JyB0byByZWZpbGUgYSBuZXcg T3JnIGVudHJ5LgoJIEFwYXJ0IGZyb20gbW92aW5nIHRoZSBlbnRyeSwgdGhpcyB3aWxsIGFsc28g a2lsbCB0aGUgaW5kaXJlY3QKCSBidWZmZXIgaW4gdGhlIHByb2Nlc3MgYW5kIHJlc3RvcmUgdGhl IHByZXZpb3VzIHdpbmRvdwoJIGNvbmZpZ3VyYXRpb24uICBOb3RlIHRoYXQgY3VycmVudGx5IG9u bHkgYEMtYyBDLXcnIHdpbGwgZG8gdGhpcyAtCgkgdGhlIGNvcnJlc3BvbmRpbmcgc3BlZWQgY29t bWFuZCBvciBhbnkgb3RoZXIga2V5cyB0aGF0IGxlYWQgdG8KCSBgb3JnLXJlZmlsZScgd2lsbCBu b3QgdGVybWluYXRlIHRoZSBpbmRpcmVjdCBidWZmZXIgYW5kIHJlc3RvcmUgdGhlCgkgd2luZG93 IGNvbmZpZ3VyYXRpb24uCiAgICAgICAKCSBUbyBhYm9ydCBhIGNhcHR1cmUgeW91IGNhbiBub3cg c2ltcGx5IHByZXNzIGB1bmRvJyB0byByZW1vdmUgdGhlCgkgdGVtcGxhdGUgYW5kIHRoZW4ga2ls bCB0aGUgKGluZGlyZWN0KSBidWZmZXIuICBJIHdvdWxkIGxpa2UgdG8gbWFrZQoJIGBDLWMgQy1r JyBkbyB0aGVzZSBzdGVwcyBhdXRvbWF0aWNhbGx5LCBidXQgdGhhdCBkb2VzIG5vdCB5ZXQgd29y awoJIGJlY2F1c2UgSSBoYXZlIG5vdCBmaWd1cmVkIG91dCBxdWl0ZSBob3cgdG8gZG8gdGhpcyBp biBhIHNhZmUgd2F5CgkgKGZvciBleGFtcGxlLCB5b3UgbWlnaHQgaGF2ZSB3aWRlbmVkIHRoZSBp bmRpcmVjdCBidWZmZXIgYW5kIGVkaXRlZAoJIHN0dWZmIGluIGEgZGlmZmVyZW50IHBsYWNlLi4u Li4pLgogICAgICAgCioqKiogIFRoZSBjb2RlIGlzIG5vdyBtdWNoIG11Y2ggY2xlYW5lciBhbmQg ZWFzaWVyIHRvIG1haW50YWluCgogICAgICAgCgkgSnVzdCBsb29rIGF0IGl0Li4uIDopCiAgICAg ICAKLC0tLS0KfCAJIFRoZSBkb2NzdHJpbmdzIG9mIGBvcmctY2FwdHVyZS10ZW1wbGF0ZXMnIGFu ZCBvZiB0aGUgY29tbWFuZAp8IAkgYG9yZy1jYXB0dXJlJyBjb250YWluIG11Y2ggb2YgdGhlIGRv Y3VtZW50YXRpb24gZm9yIHRoZSBtb21lbnQsCnwgCSB1bnRpbCBJIGNhbiB3cml0ZSBpdCB1cCBm b3IgdGhlIG1hbnVhbCAoaWYgd2UgZGVjaWRlIHRoYXQgdGhpcyBpcwp8IAkgdGhlIHdheSB0byBn by4uLi4uCmAtLS0tCgoqIFtbaW5mbzpvcmc6Q2FwdHVyZSUyMHRlbXBsYXRlc11bQ2FwdHVyZSBU ZW1wbGF0ZXNdXSAgICAgICAgICAgICAgIEMtYyBDIChieSBkZWZhdWx0KQogICAgLSBleGFtcGxl czoKICAgICAgCiAgICAgICwtLS0tCiAgICAgIHwgICAoc2V0cSBvcmctY2FwdHVyZS10ZW1wbGF0 ZXMKICAgICAgfCAgICAnKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK2hlYWRsaW5lICJ+L29yZy9n dGQub3JnIiAiVGFza3MiKQogICAgICB8ICAgICAgICAgICAiKiBUT0RPICU/XG4gICVpXG4gICVh IikKICAgICAgfCAgICAgICgiaiIgIkpvdXJuYWwiIGVudHJ5IChmaWxlK2RhdGV0cmVlICJ+L29y Zy9qb3VybmFsLm9yZyIpCiAgICAgIHwgICAgICAgICAgICIqICU/XG5FbnRlcmVkIG9uICVVXG4g ICVpXG4gICVhIikpKQogICAgICBgLS0tLQogICAgICAtIHdpdGggYSBzZXR0aW5nIGF0IGVuZCBv ZiB0ZW1wbGF0ZToKICAgICAgICAsLS0tLQogICAgICAgIHwgICAoIkwiICJMYVRlWCIgZW50cnkg KGZpbGUraGVhZGxpbmUgIn4vb3JnL0xhVGVYLm9yZyIgIkxhVGVYIEluY29taW5nIikgIiogJVUg ICU/IiA6cHJlcGVuZCB0KSAKICAgICAgICBgLS0tLQogICAgIAoKICAgIC0gW1tpbmZvOm9yZzpU ZW1wbGF0ZSUyMGV4cGFuc2lvbl1bVGVtcGxhdGUgZXhwYW5zaW9uOl1dIEVzY2FwZXMgCgkgJV57 UFJPTVBUfSAgcHJvbXB0IHRoZSB1c2VyIGZvciBhIHN0cmluZyBhbmQgcmVwbGFjZSB0aGlzIHNl cXVlbmNlCgkJICAgICB3aXRoIGl0LiAgWW91IG1heSBzcGVjaWZ5IGEgZGVmYXVsdCB2YWx1ZSBh bmQgYQoJCSAgICAgY29tcGxldGlvbiB0YWJsZSB3aXRoCgkJICAgICAlXntwcm9tcHR8ZGVmYXVs dHxjb21wbGV0aW9uMnxjb21wbGV0aW9uMy4uLn0gIFRoZSBhcnJvdwoJCSAgICAga2V5cyBhY2Nl c3MgYSBwcm9tcHQtc3BlY2lmaWMgaGlzdG9yeS4KCSAlYSAgICAgICAgICBhbm5vdGF0aW9uLCBu b3JtYWxseSB0aGUgbGluayBjcmVhdGVkIHdpdGggYG9yZy1zdG9yZS1saW5rJwoJICVBICAgICAg ICAgIGxpa2UgYCVhJywgYnV0IHByb21wdCBmb3IgdGhlIGRlc2NyaXB0aW9uIHBhcnQKCSAlaSAg ICAgICAgICBpbml0aWFsIGNvbnRlbnQsIHRoZSByZWdpb24gd2hlbiBjYXB0dXJlIGlzIGNhbGxl ZCB3aGlsZSB0aGUKCQkgICAgIHJlZ2lvbiBpcyBhY3RpdmUuICBUaGUgZW50aXJlIHRleHQgd2ls bCBiZSBpbmRlbnRlZCBsaWtlCgkJICAgICBgJWknIGl0c2VsZi4KCSAldCAgICAgICAgICB0aW1l c3RhbXAsIGRhdGUgb25seQoJICVUICAgICAgICAgIHRpbWVzdGFtcCB3aXRoIGRhdGUgYW5kIHRp bWUKCSAldSwgJVUgICAgICBsaWtlIHRoZSBhYm92ZSwgYnV0IGluYWN0aXZlIHRpbWVzdGFtcHMK CSAlXnQgICAgICAgICBsaWtlIGAldCcsIGJ1dCBwcm9tcHQgZm9yIGRhdGUuICBBbHNvIGAlXlQn LGAlXnUnLGAlXlUnLiAgCgkJICAgICBZb3UgbWF5IGRlZmluZSBhIHByb21wdCBsaWtlIGAlXntC aXJ0aGRheX10JwoJICVuICAgICAgICAgIHVzZXIgbmFtZSAodGFrZW4gZnJvbSBgdXNlci1mdWxs LW5hbWUnKQoJICVjICAgICAgICAgIEN1cnJlbnQga2lsbCByaW5nIGhlYWQuCgkgJXggICAgICAg ICAgQ29udGVudCBvZiB0aGUgWCBjbGlwYm9hcmQuCgkgJV5DICAgICAgICAgSW50ZXJhY3RpdmUg c2VsZWN0aW9uIG9mIHdoaWNoIGtpbGwgb3IgY2xpcCB0byB1c2UuCgkgJV5MICAgICAgICAgTGlr ZSBgJV5DJywgYnV0IGluc2VydCBhcyBsaW5rLgoJICVrICAgICAgICAgIHRpdGxlIG9mIHRoZSBj dXJyZW50bHkgY2xvY2tlZCB0YXNrCgkgJUsgICAgICAgICAgbGluayB0byB0aGUgY3VycmVudGx5 IGNsb2NrZWQgdGFzawoJICVeZyAgICAgICAgIHByb21wdCBmb3IgdGFncywgd2l0aCBjb21wbGV0 aW9uIG9uIHRhZ3MgaW4gdGFyZ2V0IGZpbGUuCgkgJV5HICAgICAgICAgcHJvbXB0IGZvciB0YWdz LCB3aXRoIGNvbXBsZXRpb24gYWxsIHRhZ3MgaW4gYWxsIGFnZW5kYSBmaWxlcy4KCSAlXntQUk9Q fXAgICBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgdmFsdWUgZm9yIHByb3BlcnR5IFBST1AKCSAlOmtl eXdvcmQgICBzcGVjaWZpYyBpbmZvcm1hdGlvbiBmb3IgY2VydGFpbiBsaW5rIHR5cGVzLCBzZWUg YmVsb3cKCSAlW0ZJTEVdICAgICBpbnNlcnQgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIGdpdmVu IGJ5IEZJTEUKCSAlKFNFWFApICAgICBldmFsdWF0ZSBFbGlzcCBTRVhQIGFuZCByZXBsYWNlIHdp dGggdGhlIHJlc3VsdAoKICAKKiogW1tpbmZvOm9yZzpUZW1wbGF0ZSUyMGVsZW1lbnRzXVtUZW1w bGF0ZSBlbGVtZW50cyAoZGVmaW5pbmcgYSB0ZW1wbGF0ZSldXQoKICAtIEtFWVMKICAgICBUaGUg a2V5cyB0aGF0IHdpbGwgc2VsZWN0IHRoZSB0ZW1wbGF0ZSwgYXMgYSBzdHJpbmcsIGNoYXJhY3Rl cnMKICAgICBvbmx5LCBmb3IgZXhhbXBsZSBgImEiJyBmb3IgYSB0ZW1wbGF0ZSB0byBiZSBzZWxl Y3RlZCB3aXRoIGEKICAgICBzaW5nbGUga2V5LCBvciBgImJ0IicgZm9yIHNlbGVjdGlvbiB3aXRo IHR3byBrZXlzLiAgV2hlbiB1c2luZwogICAgIHNldmVyYWwga2V5cywga2V5cyB1c2luZyB0aGUg c2FtZSBwcmVmaXgga2V5IG11c3QgYmUgc2VxdWVudGlhbCBpbgogICAgIHRoZSBsaXN0IGFuZCBw cmVjZWRlZCBieSBhIDItZWxlbWVudCBlbnRyeSBleHBsYWluaW5nIHRoZSBwcmVmaXgKICAgICBr ZXksIGZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAgICAoImIiICJUZW1wbGF0ZXMgZm9yIG1h cmtpbmcgc3R1ZmYgdG8gYnV5IikKICAgICBJZiB5b3UgZG8gbm90IGRlZmluZSBhIHRlbXBsYXRl IGZvciB0aGUgYEMnIGtleSwgdGhpcyBrZXkgd2lsbCBiZQogICAgIHVzZWQgdG8gb3BlbiB0aGUg Y3VzdG9taXplIGJ1ZmZlciBmb3IgdGhpcyBjb21wbGV4IHZhcmlhYmxlLgoKICAtIERFU0NSSVBU SU9OCiAgICAgQSBzaG9ydCBzdHJpbmcgZGVzY3JpYmluZyB0aGUgdGVtcGxhdGUsIHdoaWNoIHdp bGwgYmUgc2hvd24gZHVyaW5nCiAgICAgc2VsZWN0aW9uLgoKICAtIFRZUEU6IAogICAgIFRoZSB0 eXBlIG9mIGVudHJ5LCBhIHN5bWJvbC4gIFZhbGlkIHZhbHVlcyBhcmU6CgogICAgLSBgZW50cnkn CiAgICAgICAgICBBbiBPcmctbW9kZSBub2RlLCB3aXRoIGEgaGVhZGxpbmUuIFdpbGwgYmUgZmls ZWQgYXMgdGhlIGNoaWxkCiAgICAgICAgICBvZiB0aGUgdGFyZ2V0IGVudHJ5IG9yIGFzIGEgdG9w LWxldmVsIGVudHJ5LiAgVGhlIHRhcmdldCBmaWxlCiAgICAgICAgICBzaG91bGQgYmUgYW4gT3Jn LW1vZGUgZmlsZS4KCiAgICAtIGBpdGVtJwogICAgICAgICAgQSBwbGFpbiBsaXN0IGl0ZW0sIHBs YWNlZCBpbiB0aGUgZmlyc3QgcGxhaW4gIGxpc3QgYXQgdGhlCiAgICAgICAgICB0YXJnZXQgbG9j YXRpb24uICBBZ2FpbiB0aGUgdGFyZ2V0IGZpbGUgc2hvdWxkIGJlIGFuIE9yZyBmaWxlLgoKICAg IC0gYGNoZWNraXRlbScKICAgICAgICAgIEEgY2hlY2tib3ggaXRlbS4gIFRoaXMgb25seSBkaWZm ZXJzIGZyb20gdGhlIHBsYWluIGxpc3QgaXRlbQogICAgICAgICAgYnkgdGhlIGRlZmF1bHQgdGVt cGxhdGUuCgogICAgLSBgdGFibGUtbGluZScKICAgICAgICAgIGEgbmV3IGxpbmUgaW4gdGhlIGZp cnN0IHRhYmxlIGF0IHRoZSB0YXJnZXQgbG9jYXRpb24uICBXaGVyZQogICAgICAgICAgZXhhY3Rs eSB0aGUgbGluZSB3aWxsIGJlIGluc2VydGVkIGRlcGVuZHMgb24gdGhlIHByb3BlcnRpZXMKICAg ICAgICAgIGA6cHJlcGVuZCcgYW5kIGA6dGFibGUtbGluZS1wb3MnIChzZWUgYmVsb3cpLgoKICAg IC0gYHBsYWluJwogICAgICAgICAgVGV4dCB0byBiZSBpbnNlcnRlZCBhcyBpdCBpcy4KCiAgLSBU QVJHRVQ6IHR5cGUgYW5kIHBsYWNlIHRvIGluc2ludWF0ZSB0aGlzIHR5cGUgb2YgY2FwdHVyZWQg aXRlbSAKICAgICBTcGVjaWZpY2F0aW9uIG9mIHdoZXJlIHRoZSBjYXB0dXJlZCBpdGVtIHNob3Vs ZCBiZSBwbGFjZWQuICBJbgogICAgIE9yZy1tb2RlIGZpbGVzLCB0YXJnZXRzIHVzdWFsbHkgZGVm aW5lIGEgbm9kZS4gIEVudHJpZXMgd2lsbAogICAgIGJlY29tZSBjaGlsZHJlbiBvZiB0aGlzIG5v ZGUuICBPdGhlciB0eXBlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZQogICAgIHRhYmxlIG9yIGxpc3Qg aW4gdGhlIGJvZHkgb2YgdGhpcyBub2RlLiAgTW9zdCB0YXJnZXQKICAgICBzcGVjaWZpY2F0aW9u cyBjb250YWluIGEgZmlsZSBuYW1lLiAgSWYgdGhhdCBmaWxlIG5hbWUgaXMgdGhlCiAgICAgZW1w dHkgc3RyaW5nLCBpdCBkZWZhdWx0cyB0byBgb3JnLWRlZmF1bHQtbm90ZXMtZmlsZScuCgogICAg IFZhbGlkIHZhbHVlcyBhcmU6CiAgICBgKGZpbGUgInBhdGgvdG8vZmlsZSIpJwogICAgICAgICAg VGV4dCB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiB0aGF0IGZpbGUu CgogICAgYChpZCAiaWQgb2YgZXhpc3Rpbmcgb3JnIGVudHJ5IiknCiAgICAgICAgICBGaWxpbmcg YXMgY2hpbGQgb2YgdGhpcyBlbnRyeSwgb3IgaW4gdGhlIGJvZHkgb2YgdGhlIGVudHJ5LgoKICAg IGAoZmlsZStoZWFkbGluZSAicGF0aC90by9maWxlIiAibm9kZSBoZWFkbGluZSIpJwogICAgICAg ICAgRmFzdCBjb25maWd1cmF0aW9uIGlmIHRoZSB0YXJnZXQgaGVhZGluZyBpcyB1bmlxdWUgaW4g dGhlCiAgICAgICAgICBmaWxlLgoKICAgIGAoZmlsZStvbHAgInBhdGgvdG8vZmlsZSIgIkxldmVs IDEgaGVhZGluZyIgIkxldmVsIDIiIC4uLiknCiAgICAgICAgICBGb3Igbm9uLXVuaXF1ZSBoZWFk aW5ncywgdGhlIGZ1bGwgcGF0aCBpcyBzYWZlci4KCiAgICBgKGZpbGUrcmVnZXhwICAicGF0aC90 by9maWxlIiAicmVnZXhwIHRvIGZpbmQgbG9jYXRpb24iKScKICAgICAgICAgIFVzZSBhIHJlZ3Vs YXIgZXhwcmVzc2lvbiB0byBwb3NpdGlvbiB0aGUgY3Vyc29yLgoKICAgIGAoZmlsZStkYXRldHJl ZSAicGF0aC90by9maWxlIiknCiAgICAgICAgICBXaWxsIGNyZWF0ZSBhIGhlYWRpbmcgaW4gYSBk YXRlIHRyZWUgZm9yIHRvZGF5J3MgZGF0ZS4KCiAgICBgKGZpbGUrZGF0ZXRyZWUrcHJvbXB0ICJw YXRoL3RvL2ZpbGUiKScKICAgICAgICAgIFdpbGwgY3JlYXRlIGEgaGVhZGluZyBpbiBhIGRhdGUg dHJlZSwgYnV0IHdpbGwgcHJvbXB0IGZvciB0aGUKICAgICAgICAgIGRhdGUuCgogICAgYChmaWxl K2Z1bmN0aW9uICJwYXRoL3RvL2ZpbGUiIGZ1bmN0aW9uLWZpbmRpbmctbG9jYXRpb24pJwogICAg ICAgICAgQSBmdW5jdGlvbiB0byBmaW5kIHRoZSByaWdodCBsb2NhdGlvbiBpbiB0aGUgZmlsZS4K CiAgICBgKGNsb2NrKScKICAgICAgICAgIEZpbGUgdG8gdGhlIGVudHJ5IHRoYXQgaXMgY3VycmVu dGx5IGJlaW5nIGNsb2NrZWQuCgogICAgYChmdW5jdGlvbiBmdW5jdGlvbi1maW5kaW5nLWxvY2F0 aW9uKScKICAgICAgICAgIE1vc3QgZ2VuZXJhbCB3YXksIHdyaXRlIHlvdXIgb3duIGZ1bmN0aW9u IHRvIGZpbmQgYm90aCBmaWxlCiAgICAgICAgICBhbmQgbG9jYXRpb24uCgogIC0gVEVNUExBVEU6 IFRoZSBTa2VsZXRvbgogICAgIFRoZSB0ZW1wbGF0ZSBmb3IgY3JlYXRpbmcgdGhlIGNhcHR1cmUg aXRlbS4gIElmIHlvdSBsZWF2ZSB0aGlzCiAgICAgZW1wdHksIGFuIGFwcHJvcHJpYXRlIGRlZmF1 bHQgdGVtcGxhdGUgd2lsbCBiZSB1c2VkLiAgT3RoZXJ3aXNlCiAgICAgdGhpcyBpcyBhIHN0cmlu ZyB3aXRoIGVzY2FwZSBjb2Rlcywgd2hpY2ggd2lsbCBiZSByZXBsYWNlZAogICAgIGRlcGVuZGlu ZyBvbiB0aW1lIGFuZCBjb250ZXh0IG9mIHRoZSBjYXB0dXJlIGNhbGwuICBUaGUgc3RyaW5nCiAg ICAgd2l0aCBlc2NhcGVzIG1heSBiZSBsb2FkZWQgZnJvbSBhIHRlbXBsYXRlIGZpbGUsIHVzaW5n IHRoZSBzcGVjaWFsCiAgICAgc3ludGF4IGAoZmlsZSAicGF0aC90by90ZW1wbGF0ZSIpJy4gIFNl ZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgoKICAtIFBST1BFUlRJRVM6IFBlci10ZW1wbGF0ZSBz ZXR0aW5ncyAKICAgICBUaGUgcmVzdCBvZiB0aGUgZW50cnkgaXMgYSBwcm9wZXJ0eSBsaXN0IG9m IGFkZGl0aW9uYWwgb3B0aW9ucy4KICAgICBSZWNvZ25pemVkIHByb3BlcnRpZXMgYXJlOgogICAg YDpwcmVwZW5kJwogICAgICAgICAgTm9ybWFsbHkgbmV3IGNhcHR1cmVkIGluZm9ybWF0aW9uIHdp bGwgYmUgYXBwZW5kZWQgYXQgdGhlCiAgICAgICAgICB0YXJnZXQgbG9jYXRpb24gKGxhc3QgY2hp bGQsIGxhc3QgdGFibGUgbGluZSwgbGFzdCBsaXN0CiAgICAgICAgICBpdGVtLi4uKS4gIFNldHRp bmcgdGhpcyBwcm9wZXJ0eSB3aWxsIGNoYW5nZSB0aGF0LgoKICAgIGA6aW1tZWRpYXRlLWZpbmlz aCcKICAgICAgICAgIFdoZW4gc2V0LCBkbyBub3Qgb2ZmZXIgdG8gZWRpdCB0aGUgaW5mb3JtYXRp b24sIGp1c3QgZmlsZSBpdAogICAgICAgICAgYXdheSBpbW1lZGlhdGVseS4gIFRoaXMgbWFrZXMg c2Vuc2UgaWYgdGhlIHRlbXBsYXRlIG9ubHkgbmVlZHMKICAgICAgICAgIGluZm9ybWF0aW9uIHRo YXQgY2FuIGJlIGFkZGVkIGF1dG9tYXRpY2FsbHkuCgogICAgYDplbXB0eS1saW5lcycKICAgICAg ICAgIFNldCB0aGlzIHRvIHRoZSBudW1iZXIgb2YgbGluZXMgdG8gaW5zZXJ0IGJlZm9yZSBhbmQg YWZ0ZXIKICAgICAgICAgIHRoZSBuZXcgaXRlbS4gIERlZmF1bHQgMCwgb25seSBjb21tb24gb3Ro ZXIgdmFsdWUgaXMgMS4KCiAgICBgOmNsb2NrLWluJwogICAgICAgICAgU3RhcnQgdGhlIGNsb2Nr IGluIHRoaXMgaXRlbS4KCiAgICBgOmNsb2NrLXJlc3VtZScKICAgICAgICAgIElmIHN0YXJ0aW5n IHRoZSBjYXB0dXJlIGludGVycnVwdGVkIGEgY2xvY2ssIHJlc3RhcnQgdGhhdAogICAgICAgICAg Y2xvY2sgd2hlbiBmaW5pc2hlZCB3aXRoIHRoZSBjYXB0dXJlLgoKICAgIGA6dW5uYXJyb3dlZCcK ICAgICAgICAgIERvIG5vdCBuYXJyb3cgdGhlIHRhcmdldCBidWZmZXIsIHNpbXBseSBzaG93IHRo ZSBmdWxsIGJ1ZmZlci4KICAgICAgICAgIERlZmF1bHQgaXMgdG8gbmFycm93IGl0IHNvIHRoYXQg eW91IG9ubHkgc2VlIHRoZSBuZXcgbWF0ZXJpYWwuCgogICAgYDpraWxsLWJ1ZmZlcicKICAgICAg ICAgIElmIHRoZSB0YXJnZXQgZmlsZSB3YXMgbm90IHlldCB2aXNpdGVkIHdoZW4gY2FwdHVyZSB3 YXMKICAgICAgICAgIGludm9rZWQsIGtpbGwgdGhlIGJ1ZmZlciBhZ2FpbiBhZnRlciBjYXB0dXJl IGlzIGNvbXBsZXRlZC4KCgoqIFtbaW5mbzpvcmc6QWdlbmRhJTIwVmlld3NdW0FnZW5kYSBWaWV3 c11dICAgICAgICAgICAgICAgICAgICAgQy1jIGEgCioqIFRPRE8gWyNCXSBBZ2VuZGEgQ29tbWFu ZHMgKGF2YWlsYWJsZSBpbiBhZ2VuZGEgYnVmZmVyKQogICAtIGFzIG9mIFsyMDA5LTEyLTE1IFR1 ZV0gdXNlID4gdG8gd29yayBvbiBpbmFjdGl2ZSB0aW1lc3RhbXBzIAoqKiogQ2FsZW5kYXIgaXNz dWVzIG9mIGFsbCBraW5kcwoqKioqIEluIEFnZW5kYSBidWZmZXIKICAgICAtIGYvYjo6ICBnbyBm b3J3YXJkL2JhY2sgaW4gdGltZSBieSBvbmUgIm9yZy1hZ2VuZGEtbmRheXMiCioqKioqIFJlbW90 ZSBlZGl0aW5nCiAgICAgIGsgOjoKKioqKiBJbiBDYWxlbmRhcgoKKiogVE9ETyBDdXJzb3IgS2V5 cyBpbiBhZ2VuZGEgYnVmZmVyOiB0aGVyZSBpcyBzb21lIHRyYWZmaWMgb24gdGhlIGxpc3QKKioq IExpbmsgdG8gTWFudWFsOiBbW2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvQWdlbmRhLWNvbW1h bmRzLmh0bWwjQWdlbmRhLWNvbW1hbmRzXVtPcmcgQWdlbmRhIENvbW1hbmRzXV0KKioqKiBNb3Rp b24KCS0gbiA6OiAgIE5leHQgbGluZSAoc2FtZSBhcyA8dXA+IGFuZCBDLXApLgoJLSBwIDo6ICAg UHJldmlvdXMgbGluZSAoc2FtZSBhcyA8ZG93bj4gYW5kIEMtbikuCioqKioqIFZpZXcvR28gdG8g T3JnIGZpbGUKCS0gbW91c2UtMyA6OgoJLSA8U1BDPiA6OiBEaXNwbGF5IHRoZSBvcmlnaW5hbCBs b2NhdGlvbiBvZiB0aGUgaXRlbSBpbiBhbm90aGVyIHdpbmRvdy4gV2l0aCBwcmVmaXggYXJnLCBt YWtlIHN1cmUgdGhhdCB0aGUgZW50aXJlIGVudHJ5IGlzIG1hZGUgdmlzaWJsZSBpbiB0aGUgb3V0 bGluZSwgbm90IG9ubHkgdGhlIGhlYWRpbmcuCgktIEwgOjogICBEaXNwbGF5IG9yaWdpbmFsIGxv Y2F0aW9uIGFuZCByZWNlbnRlciB0aGF0IHdpbmRvdy4KCS0gbW91c2UtMiA6OgoJLSBtb3VzZS0x OjoKCS0gPFRBQj4gOjogICBHbyB0byB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGl0ZW0g aW4gYW5vdGhlciB3aW5kb3cuIFVuZGVyIEVtYWNzIDIyLCBtb3VzZS0xIHdpbGwgYWxzbyB3b3Jr cyBmb3IgdGhpcy4gCgktIDxSRVQ+IDo6ICAgR28gdG8gdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9m IHRoZSBpdGVtIGFuZCBkZWxldGUgb3RoZXIgd2luZG93cy4KCS0gRiA6OiAgIFRvZ2dsZSBGb2xs b3cgbW9kZS4gSW4gRm9sbG93IG1vZGUsIGFzIHlvdSBtb3ZlIHRoZSBjdXJzb3IgdGhyb3VnaCB0 aGUgYWdlbmRhIGJ1ZmZlciwgdGhlIG90aGVyIHdpbmRvdyBhbHdheXMgc2hvd3MgdGhlIGNvcnJl c3BvbmRpbmcgbG9jYXRpb24gaW4gdGhlIE9yZyBmaWxlLiBUaGUgaW5pdGlhbCBzZXR0aW5nIGZv ciB0aGlzIG1vZGUgaW4gbmV3IGFnZW5kYSBidWZmZXJzIGNhbiBiZSBzZXQgd2l0aCB0aGUgdmFy aWFibGUgb3JnLWFnZW5kYS1zdGFydC13aXRoLWZvbGxvdy1tb2RlLgoJLSBDLWMgQy14IGIgOjog RGlzcGxheSB0aGUgZW50aXJlIHN1YnRyZWUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpbiBhbiBpbmRp cmVjdCBidWZmZXIuIFdpdGggYSBudW1lcmljIHByZWZpeCBhcmd1bWVudCBOLCBnbyB1cCB0byBs ZXZlbCBOIGFuZCB0aGVuIHRha2UgdGhhdCB0cmVlLiBJZiBOIGlzIG5lZ2F0aXZlLCBnbyB1cCB0 aGF0IG1hbnkgbGV2ZWxzLiBXaXRoIGEgQy11IHByZWZpeCwgZG8gbm90IHJlbW92ZSB0aGUgcHJl dmlvdXNseSB1c2VkIGluZGlyZWN0IGJ1ZmZlci4KCS0gQy1jIEMtbyA6OiAgIEZvbGxvdyBhIGxp bmsgaW4gdGhlIGVudHJ5LiBUaGlzIHdpbGwgb2ZmZXIgYSBzZWxlY3Rpb24gb2YgYW55IGxpbmtz IGluIHRoZSB0ZXh0IGJlbG9uZ2luZyB0byB0aGUgcmVmZXJlbmNlZCBPcmcgbm9kZS4gSWYgdGhl cmUgaXMgb25seSBvbmUgbGluaywgaXQgd2lsbCBiZSBmb2xsb3dlZCB3aXRob3V0IGEgc2VsZWN0 aW9uIHByb21wdC4KKioqKiBDaGFuZ2UgZGlzcGxheQoJCgktIG8gOjogICBEZWxldGUgb3RoZXIg d2luZG93cy4KCS0gdiBkIG9yIHNob3J0IGQgOjoKCS0gdiB3IG9yIHNob3J0IHcgOjoKCS0gdiBt IDo6CgktIHYgeSA6OiBTd2l0Y2ggdG8gZGF5L3dlZWsvbW9udGgveWVhciB2aWV3LiBXaGVuIHN3 aXRjaGluZyB0byBkYXkgb3Igd2VlawogICAgICAgICAgICAgIHZpZXcsIHRoaXMgc2V0dGluZyBi ZWNvbWVzIHRoZSBkZWZhdWx0IGZvciBzdWJzZXF1ZW50IGFnZW5kYQogICAgICAgICAgICAgIGNv bW1hbmRzLiBTaW5jZSBtb250aCBhbmQgeWVhciB2aWV3cyBhcmUgc2xvdyB0byBjcmVhdGUsIHRo ZXkgZG8KICAgICAgICAgICAgICBub3QgYmVjb21lIHRoZSBkZWZhdWx0LiBBIG51bWVyaWMgcHJl Zml4IGFyZ3VtZW50IG1heSBiZSB1c2VkIHRvCiAgICAgICAgICAgICAganVtcCBkaXJlY3RseSB0 byBhIHNwZWNpZmljIGRheSBvZiB0aGUgeWVhciwgSVNPIHdlZWssIG1vbnRoLCBvcgogICAgICAg ICAgICAgIHllYXIsIHJlc3BlY3RpdmVseS4gRm9yIGV4YW1wbGUsIDMyIGQganVtcHMgdG8gRmVi cnVhcnkgMXN0LCA5IHcKICAgICAgICAgICAgICB0byBJU08gd2VlayBudW1iZXIgOS4gV2hlbiBz ZXR0aW5nIGRheSwgd2Vlaywgb3IgbW9udGggdmlldywgYQogICAgICAgICAgICAgIHllYXIgbWF5 IGJlIGVuY29kZWQgaW4gdGhlIHByZWZpeCBhcmd1bWVudCBhcyB3ZWxsLiBGb3IgZXhhbXBsZSwK ICAgICAgICAgICAgICAyMDA3MTIgdyB3aWxsIGp1bXAgdG8gd2VlayAxMiBpbiAyMDA3LiBJZiBz dWNoIGEgeWVhcgogICAgICAgICAgICAgIHNwZWNpZmljYXRpb24gaGFzIG9ubHkgb25lIG9yIHR3 byBkaWdpdHMsIGl0IHdpbGwgYmUgbWFwcGVkIHRvCiAgICAgICAgICAgICAgdGhlIGludGVydmFs IDE5MzgtMjAzNy4KCS0gZjo6ICAgIEdvIGZvcndhcmQgaW4gdGltZSB0byBkaXNwbGF5IHRoZSBm b2xsb3dpbmcgb3JnLWFnZW5kYS1uZGF5cwogICAgICAgICAgICAgZGF5cy4gRm9yIGV4YW1wbGUs IGlmIHRoZSBkaXNwbGF5IGNvdmVycyBhIHdlZWssIHN3aXRjaCB0byB0aGUKICAgICAgICAgICAg IGZvbGxvd2luZyB3ZWVrLiBXaXRoIHByZWZpeCBhcmcsIGdvIGZvcndhcmQgdGhhdCBtYW55IHRp bWVzCiAgICAgICAgICAgICBvcmctYWdlbmRhLW5kYXlzIGRheXMuIAoJLSBiIDo6ICAgR28gYmFj a3dhcmQgaW4gdGltZSB0byBkaXNwbGF5IGVhcmxpZXIgZGF0ZXMuCgktIFwuIDo6ICAgIEdvIHRv IHRvZGF5LgoJLSBqIDo6ICAgUHJvbXB0IGZvciBhIGRhdGUgYW5kIGdvIHRoZXJlLgoJLSBEIDo6 ICAgVG9nZ2xlIHRoZSBpbmNsdXNpb24gb2YgZGlhcnkgZW50cmllcy4gU2VlIFdlZWtseS9kYWls eSBhZ2VuZGEuCgktIHYgbCBvciBzaG9ydCBsIDo6ICBUb2dnbGUgTG9nYm9vayBtb2RlLiBJbiBM b2dib29rIG1vZGUsIGVudHJpZXMgdGhhdAogICAgICAgICAgICAgICB3ZXJlIG1hcmtlZCBET05F IHdoaWxlIGxvZ2dpbmcgd2FzIG9uICh2YXJpYWJsZSBvcmctbG9nLWRvbmUpIGFyZQogICAgICAg ICAgICAgICBzaG93biBpbiB0aGUgYWdlbmRhLCBhcyBhcmUgZW50cmllcyB0aGF0IGhhdmUgYmVl biBjbG9ja2VkIG9uCiAgICAgICAgICAgICAgIHRoYXQgZGF5LiBZb3UgY2FuIGNvbmZpZ3VyZSB0 aGUgZW50cnkgdHlwZXMgdGhhdCBzaG91bGQgYmUKICAgICAgICAgICAgICAgaW5jbHVkZWQgaW4g bG9nIG1vZGUgdXNpbmcgdGhlIHZhcmlhYmxlCiAgICAgICAgICAgICAgIG9yZy1hZ2VuZGEtbG9n LW1vZGUtaXRlbXMuIFdoZW4gY2FsbGVkIHdpdGggYSBDLXUgcHJlZml4LCBzaG93CiAgICAgICAg ICAgICAgIGFsbCBwb3NzaWJsZSBsb2dib29rIGVudHJpZXMsIGluY2x1ZGluZyBzdGF0ZSBjaGFu Z2VzLiBXaGVuCiAgICAgICAgICAgICAgIGNhbGxlZCB3aXRoIHR3byBwcmVmaXggYXJncyBDLXUg Qy11LCBzaG93IG9ubHkgbG9nZ2luZwogICAgICAgICAgICAgICBpbmZvcm1hdGlvbiwgbm90aGlu ZyBlbHNlLiAgCgkKCS0gdiBbIG9yIHNob3J0IFsgOjogIEluY2x1ZGUgaW5hY3RpdmUgdGltZXN0 YW1wcyBpbnRvIHRoZSBjdXJyZW50CiAgICAgICAgICAgICAgdmlldy4gT25seSBmb3Igd2Vla2x5 L2RhaWx5IGFnZW5kYSBhbmQgdGltZWxpbmUgdmlld3MuIAoJLSB2IGEgOjoKCS0gdiBBIDo6ICAg VG9nZ2xlIEFyY2hpdmVzIG1vZGUuIEluIEFyY2hpdmVzIG1vZGUsIHRyZWVzIHRoYXQgYXJlIG1h cmtlZAogICAgICAgICAgICAgIEFSQ0hJVkVEIGFyZSBhbHNvIHNjYW5uZWQgd2hlbiBwcm9kdWNp bmcgdGhlIGFnZW5kYS4gV2hlbiB5b3UKICAgICAgICAgICAgICB1c2UgdGhlIGNhcGl0YWwgQSwg ZXZlbiBhbGwgYXJjaGl2ZSBmaWxlcyBhcmUgaW5jbHVkZWQuIFRvIGV4aXQKICAgICAgICAgICAg ICBhcmNoaXZlcyBtb2RlLCBwcmVzcyB2IGEgYWdhaW4uIAoJLSB2IFIgb3Igc2hvcnQgUiA6OiAg VG9nZ2xlIENsb2NrcmVwb3J0IG1vZGUuIEluIENsb2NrcmVwb3J0IG1vZGUsIHRoZQogICAgICAg ICAgICAgIGRhaWx5L3dlZWtseSBhZ2VuZGEgd2lsbCBhbHdheXMgc2hvdyBhIHRhYmxlIHdpdGgg dGhlIGNsb2NrZWQKICAgICAgICAgICAgICB0aW1lcyBmb3IgdGhlIHRpbWVzcGFuIGFuZCBmaWxl IHNjb3BlIGNvdmVyZWQgYnkgdGhlIGN1cnJlbnQKICAgICAgICAgICAgICBhZ2VuZGEgdmlldy4g VGhlIGluaXRpYWwgc2V0dGluZyBmb3IgdGhpcyBtb2RlIGluIG5ldyBhZ2VuZGEKICAgICAgICAg ICAgICBidWZmZXJzIGNhbiBiZSBzZXQgd2l0aCB0aGUgdmFyaWFibGUKICAgICAgICAgICAgICBv cmctYWdlbmRhLXN0YXJ0LXdpdGgtY2xvY2tyZXBvcnQtbW9kZS4gCgktIHYgRSBvciBzaG9ydCBF IDo6ICBUb2dnbGUgZW50cnkgdGV4dCBtb2RlLiBJbiBlbnRyeSB0ZXh0IG1vZGUsIGEgbnVtYmVy CiAgICAgICAgICAgICAgb2YgbGluZXMgZnJvbSB0aGUgT3JnIG91dGxpbmUgbm9kZSByZWZlcmVu Y2VkIGJ5IGFuIGFnZW5kYSBsaW5lCiAgICAgICAgICAgICAgd2lsbCBiZSBkaXNwbGF5ZWQgYmVs b3cgdGhlIGxpbmUuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyBpcwogICAgICAgICAgICAg IGdpdmVuIGJ5IHRoZSB2YXJpYWJsZSBvcmctYWdlbmRhLWVudHJ5LXRleHQtbWF4bGluZXMuIENh bGxpbmcKICAgICAgICAgICAgICB0aGlzIGNvbW1hbmQgd2l0aCBhIG51bWVyaWMgcHJlZml4IGFy Z3VtZW50IHdpbGwgdGVtcG9yYXJpbHkKICAgICAgICAgICAgICBtb2RpZnkgdGhhdCBudW1iZXIg dG8gdGhlIHByZWZpeCB2YWx1ZS4gCgktIEcgOjogICBUb2dnbGUgdGhlIHRpbWUgZ3JpZCBvbiBh bmQgb2ZmLiBTZWUgYWxzbyB0aGUgdmFyaWFibGVzCiAgICAgICAgICAgICAgb3JnLWFnZW5kYS11 c2UtdGltZS1ncmlkIGFuZCBvcmctYWdlbmRhLXRpbWUtZ3JpZC4gCgktIHIgOjogICBSZWNyZWF0 ZSB0aGUgYWdlbmRhIGJ1ZmZlciwgZm9yIGV4YW1wbGUgdG8gcmVmbGVjdCB0aGUgY2hhbmdlcwog ICAgICAgICAgICAgIGFmdGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgdGltZXN0YW1wcyBvZiBpdGVt cyB3aXRoIFMtPGxlZnQ+IGFuZAogICAgICAgICAgICAgIFMtPHJpZ2h0Pi4gV2hlbiB0aGUgYnVm ZmVyIGlzIHRoZSBnbG9iYWwgVE9ETyBsaXN0LCBhIHByZWZpeAogICAgICAgICAgICAgIGFyZ3Vt ZW50IGlzIGludGVycHJldGVkIHRvIGNyZWF0ZSBhIHNlbGVjdGl2ZSBsaXN0IGZvciBhCiAgICAg ICAgICAgICAgc3BlY2lmaWMgVE9ETyBrZXl3b3JkLiAKCS0gZyA6OiAgIFNhbWUgYXMgci4KCS0g cyA6OiAgIAoJLSBDLXggQy1zIDo6IFNhdmUgYWxsIE9yZyBidWZmZXJzIGluIHRoZSBjdXJyZW50 IEVtYWNzIHNlc3Npb24sIGFuZCBhbHNvCiAgICAgICAgICAgICAgdGhlIGxvY2F0aW9ucyBvZiBJ RHMuIAoJLSBDLWMgQy14IEMtYyA6OiAgSW52b2tlIGNvbHVtbiB2aWV3IChzZWUgQ29sdW1uIHZp ZXcpIGluIHRoZSBhZ2VuZGEKICAgICAgICAgICAgICBidWZmZXIuIFRoZSBjb2x1bW4gdmlldyBm b3JtYXQgaXMgdGFrZW4gZnJvbSB0aGUgZW50cnkgYXQgcG9pbnQsCiAgICAgICAgICAgICAgb3Ig KGlmIHRoZXJlIGlzIG5vIGVudHJ5IGF0IHBvaW50KSwgZnJvbSB0aGUgZmlyc3QgZW50cnkgaW4g dGhlCiAgICAgICAgICAgICAgYWdlbmRhIHZpZXcuIFNvIHdoYXRldmVyIHRoZSBmb3JtYXQgZm9y IHRoYXQgZW50cnkgd291bGQgYmUgaW4KICAgICAgICAgICAgICB0aGUgb3JpZ2luYWwgYnVmZmVy ICh0YWtlbiBmcm9tIGEgcHJvcGVydHksIGZyb20gYSAjK0NPTFVNTlMKICAgICAgICAgICAgICBs aW5lLCBvciBmcm9tIHRoZSBkZWZhdWx0IHZhcmlhYmxlIG9yZy1jb2x1bW5zLWRlZmF1bHQtZm9y bWF0KSwKICAgICAgICAgICAgICB3aWxsIGJlIHVzZWQgaW4gdGhlIGFnZW5kYS4gCgktIEMtYyBD LXggPiA6OiAgIFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gbG9jayBvbiB0aGUgYWdlbmRhLCBpZiBp dCBpcwogICAgICAgICAgICAgIGN1cnJlbnRseSByZXN0cmljdGVkIHRvIGEgZmlsZSBvciBzdWJ0 cmVlIChzZWUgQWdlbmRhIGZpbGVzKS4gCioqKiogU2Vjb25kYXJ5IGZpbHRlcmluZyBhbmQgcXVl cnkgZWRpdGluZwoJLSAvOjogICBGaWx0ZXIgdGhlIGN1cnJlbnQgYWdlbmRhIHZpZXcgd2l0aCBy ZXNwZWN0IHRvIGEgdGFnIGFuZC9vciBlZmZvcnQKICAgICAgICAgICAgZXN0aW1hdGVzLiBUaGUg ZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIGEgY3VzdG9tIGFnZW5kYSBjb21tYW5kCiAgICAg ICAgICAgIGlzIHRoYXQgZmlsdGVyaW5nIGlzIHZlcnkgZmFzdCwgc28gdGhhdCB5b3UgY2FuIHN3 aXRjaCBxdWlja2x5CiAgICAgICAgICAgIGJldHdlZW4gZGlmZmVyZW50IGZpbHRlcnMgd2l0aG91 dCBoYXZpbmcgdG8gcmVjcmVhdGUgdGhlIGFnZW5kYTEgCgkgICAgWW91IHdpbGwgYmUgcHJvbXB0 ZWQgZm9yIGEgdGFnIHNlbGVjdGlvbiBsZXR0ZXIuIFByZXNzaW5nIDxUQUI+IGF0CiAgICAgICAg ICAgIHRoYXQgcHJvbXB0IHdpbGwgb2ZmZXIgdXNlIGNvbXBsZXRpb24gdG8gc2VsZWN0IGEgdGFn IChpbmNsdWRpbmcKICAgICAgICAgICAgYW55IHRhZ3MgdGhhdCBkbyBub3QgaGF2ZSBhIHNlbGVj dGlvbiBjaGFyYWN0ZXIpLiBUaGUgY29tbWFuZCB0aGVuCiAgICAgICAgICAgIGhpZGVzIGFsbCBl bnRyaWVzIHRoYXQgZG8gbm90IGNvbnRhaW4gb3IgaW5oZXJpdCB0aGlzIHRhZy4gV2hlbgogICAg ICAgICAgICBjYWxsZWQgd2l0aCBwcmVmaXggYXJnLCByZW1vdmUgdGhlIGVudHJpZXMgdGhhdCBk byBoYXZlIHRoZSB0YWcuIEEKICAgICAgICAgICAgc2Vjb25kIC8gYXQgdGhlIHByb21wdCB3aWxs IHR1cm4gb2ZmIHRoZSBmaWx0ZXIgYW5kIHVuaGlkZSBhbnkKICAgICAgICAgICAgaGlkZGVuIGVu dHJpZXMuIElmIHRoZSBmaXJzdCBrZXkgeW91IHByZXNzIGlzIGVpdGhlciArIG9yIC0sIHRoZQog ICAgICAgICAgICBwcmV2aW91cyBmaWx0ZXIgd2lsbCBiZSBuYXJyb3dlZCBieSByZXF1aXJpbmcg b3IgZm9yYmlkZGluZyB0aGUKICAgICAgICAgICAgc2VsZWN0ZWQgYWRkaXRpb25hbCB0YWcuIElu c3RlYWQgb2YgcHJlc3NpbmcgKyBvciAtIGFmdGVyIC8sIHlvdQogICAgICAgICAgICBjYW4gYWxz byBpbW1lZGlhdGVseSB1c2UgdGhlIFwgY29tbWFuZC4gCgkgICAgSW4gb3JkZXIgdG8gZmlsdGVy IGZvciBlZmZvcnQgZXN0aW1hdGVzLCB5b3Ugc2hvdWxkIHNldC11cCBhbGxvd2VkCiAgICAgICAg ICAgIGVmZm9ydHMgZ2xvYmFsbHksIGZvciBleGFtcGxlIAoJICAgICAgICAgICAgICAoc2V0cSBv cmctZ2xvYmFsLXByb3BlcnRpZXMKCSAgICAgICAgICAgICAgICAgICcoKCJFZmZvcnRfQUxMIi4g IjAgMDoxMCAwOjMwIDE6MDAgMjowMCAzOjAwIDQ6MDAiKSkpCgkgICAgWW91IGNhbiB0aGVuIGZp bHRlciBmb3IgYW4gZWZmb3J0IGJ5IGZpcnN0IHR5cGluZyBhbiBvcGVyYXRvciwgb25lCiAgICAg ICAgICAgIG9mIDwsID4sIGFuZCA9LCBhbmQgdGhlbiB0aGUgb25lLWRpZ2l0IGluZGV4IG9mIGFu IGVmZm9ydCBlc3RpbWF0ZQogICAgICAgICAgICBpbiB5b3VyIGFycmF5IG9mIGFsbG93ZWQgdmFs dWVzLCB3aGVyZSAwIG1lYW5zIHRoZSAxMHRoIHZhbHVlLiBUaGUKICAgICAgICAgICAgZmlsdGVy IHdpbGwgdGhlbiByZXN0cmljdCB0byBlbnRyaWVzIHdpdGggZWZmb3J0IHNtYWxsZXItb3ItZXF1 YWwsCiAgICAgICAgICAgIGVxdWFsLCBvciBsYXJnZXItb3ItZXF1YWwgdGhhbiB0aGUgc2VsZWN0 ZWQgdmFsdWUuIElmIHRoZSBkaWdpdHMKICAgICAgICAgICAgMC05IGFyZSBub3QgdXNlZCBhcyBm YXN0IGFjY2VzcyBrZXlzIHRvIHRhZ3MsIHlvdSBjYW4gYWxzbyBzaW1wbHkKICAgICAgICAgICAg cHJlc3MgdGhlIGluZGV4IGRpZ2l0IGRpcmVjdGx5IHdpdGhvdXQgYW4gb3BlcmF0b3IuIEluIHRo aXMgY2FzZSwKICAgICAgICAgICAgPCB3aWxsIGJlIGFzc3VtZWQuIEZvciBhcHBsaWNhdGlvbiBv ZiB0aGUgb3BlcmF0b3IsIGVudHJpZXMKICAgICAgICAgICAgd2l0aG91dCBhIGRlZmluZWQgZWZm b3J0IHdpbGwgYmUgdHJlYXRlZCBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mCiAgICAgICAgICAg IG9yZy1zb3J0LWFnZW5kYS1ub2VmZm9ydC1pcy1oaWdoLiBUbyBmaWx0ZXIgZm9yIHRhc2tzIHdp dGhvdXQKICAgICAgICAgICAgZWZmb3J0IGRlZmluaXRpb24sIHByZXNzID8gYXMgdGhlIG9wZXJh dG9yLiAKCS0gZyA6OgoJLSBcIDo6ICAgTmFycm93IHRoZSBjdXJyZW50IGFnZW5kYSBmaWx0ZXIg YnkgYW4gYWRkaXRpb25hbCBjb25kaXRpb24uIFdoZW4KICAgICAgICAgICAgY2FsbGVkIHdpdGgg cHJlZml4IGFyZywgcmVtb3ZlIHRoZSBlbnRyaWVzIHRoYXQgZG8gaGF2ZSB0aGUgdGFnLAogICAg ICAgICAgICBvciB0aGF0IGRvIG1hdGNoIHRoZSBlZmZvcnQgY3JpdGVyaW9uLiBZb3UgY2FuIGFj aGlldmUgdGhlIHNhbWUKICAgICAgICAgICAgZWZmZWN0IGJ5IHByZXNzaW5nICsgb3IgLSBhcyB0 aGUgZmlyc3Qga2V5IGFmdGVyIHRoZSAvIGNvbW1hbmQuIAoJLSBbIF0geyB9IDo6ICBpbiBzZWFy Y2ggdmlldyAgICBhZGQgbmV3IHNlYXJjaCB3b3JkcyAoWyBhbmQgXSkgb3IgbmV3CiAgICAgICAg ICAgIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKHsgYW5kIH0pIHRvIHRoZSBxdWVyeSBzdHJpbmcuIFRo ZSBvcGVuaW5nCiAgICAgICAgICAgIGJyYWNrZXQvYnJhY2Ugd2lsbCBhZGQgYSBwb3NpdGl2ZSBz ZWFyY2ggdGVybSBwcmVmaXhlZCBieSDigJgr4oCZLAogICAgICAgICAgICBpbmRpY2F0aW5nIHRo YXQgdGhpcyBzZWFyY2ggdGVybSBtdXN0IG9jY3VyL21hdGNoIGluIHRoZQogICAgICAgICAgICBl bnRyeS4gVGhlIGNsb3NpbmcgYnJhY2tldC9icmFjZSB3aWxsIGFkZCBhIG5lZ2F0aXZlIHNlYXJj aCB0ZXJtCiAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IG9jY3VyL21hdGNoIGluIHRoZSBlbnRy eSBmb3IgaXQgdG8gYmUgc2VsZWN0ZWQuICAKKioqKiBSZW1vdGUgZWRpdGluZwoKCS0gMC05IDo6 ICAgIERpZ2l0IGFyZ3VtZW50LgoJLSBDLVxfIDo6ICAgIFVuZG8gYSBjaGFuZ2UgZHVlIHRvIGEg cmVtb3RlIGVkaXRpbmcgY29tbWFuZC4gVGhlIGNoYW5nZSBpcyB1bmRvbmUgYm90aCBpbiB0aGUg YWdlbmRhIGJ1ZmZlciBhbmQgaW4gdGhlIHJlbW90ZSBidWZmZXIuCgktIHQgIDo6ICAgIENoYW5n ZSB0aGUgVE9ETyBzdGF0ZSBvZiB0aGUgaXRlbSwgYm90aCBpbiB0aGUgYWdlbmRhIGFuZCBpbiB0 aGUgb3JpZ2luYWwgb3JnIGZpbGUuCgktIEMtayA6OiAgICBEZWxldGUgdGhlIGN1cnJlbnQgYWdl bmRhIGl0ZW0gYWxvbmcgd2l0aCB0aGUgZW50aXJlIHN1YnRyZWUgYmVsb25naW5nIHRvIGl0IGlu IHRoZSBvcmlnaW5hbCBPcmcgZmlsZS4gSWYgdGhlIHRleHQgdG8gYmUgZGVsZXRlZCByZW1vdGVs eSBpcyBsb25nZXIgdGhhbiBvbmUgbGluZSwgdGhlIGtpbGwgbmVlZHMgdG8gYmUgY29uZmlybWVk IGJ5IHRoZSB1c2VyLiBTZWUgdmFyaWFibGUgb3JnLWFnZW5kYS1jb25maXJtLWtpbGwuCgktIEMt YyBDLXcgOjogICBSZWZpbGUgdGhlIGVudHJ5IGF0IHBvaW50LgoJLSBhIDo6ICAgIFRvZ2dsZSB0 aGUgQVJDSElWRSB0YWcgZm9yIHRoZSBjdXJyZW50IGhlYWRsaW5lLgoJLSBBIDo6ICAgIE1vdmUg dGhlIHN1YnRyZWUgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBlbnRyeSB0byBpdHMgYXJj aGl2ZSBzaWJsaW5nLgoJLSAkIDo6ICAgIEFyY2hpdmUgdGhlIHN1YnRyZWUgY29ycmVzcG9uZGlu ZyB0byB0aGUgY3VycmVudCBoZWFkbGluZS4gVGhpcyBtZWFucyB0aGUgZW50cnkgd2lsbCBiZSBt b3ZlZCB0byB0aGUgY29uZmlndXJlZCBhcmNoaXZlIGxvY2F0aW9uLCBtb3N0IGxpa2VseSBhIGRp ZmZlcmVudCBmaWxlLgoJLSBUIDo6ICAgIFNob3cgYWxsIHRhZ3MgYXNzb2NpYXRlZCB3aXRoIHRo ZSBjdXJyZW50IGl0ZW0uIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIHR1cm5lZCBvZmYgb3Jn LWFnZW5kYS1zaG93LWluaGVyaXRlZC10YWdzLCBidXQgc3RpbGwgd2FudCB0byBzZWUgYWxsIHRh Z3Mgb2YgYSBoZWFkbGluZSBvY2Nhc2lvbmFsbHkuCgktIDogOjogICAgU2V0IHRhZ3MgZm9yIHRo ZSBjdXJyZW50IGhlYWRsaW5lLiBJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9uIGluIHRoZSBh Z2VuZGEsIGNoYW5nZSBhIHRhZyBmb3IgYWxsIGhlYWRpbmdzIGluIHRoZSByZWdpb24uCgktICwg OjogICAgU2V0IHRoZSBwcmlvcml0eSBmb3IgdGhlIGN1cnJlbnQgaXRlbS4gT3JnIG1vZGUgcHJv bXB0cyBmb3IgdGhlIHByaW9yaXR5IGNoYXJhY3Rlci4gSWYgeW91IHJlcGx5IHdpdGggPFNQQz4s IHRoZSBwcmlvcml0eSBjb29raWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBlbnRyeS4KCS0gUCA6OiAg ICBEaXNwbGF5IHdlaWdodGVkIHByaW9yaXR5IG9mIGN1cnJlbnQgaXRlbS4KCS0gKywgUy08dXA+ ICAgOjogSW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mIHRoZSBjdXJyZW50IGl0ZW0uIFRoZSBwcmlv cml0eSBpcyBjaGFuZ2VkIGluIHRoZSBvcmlnaW5hbCBidWZmZXIsIGJ1dCB0aGUgYWdlbmRhIGlz IG5vdCByZXNvcnRlZC4gVXNlIHRoZSByIGtleSBmb3IgdGhpcy4KCS0gLSwgUy08ZG93bj4gOjog IERlY3JlYXNlIHRoZSBwcmlvcml0eSBvZiB0aGUgY3VycmVudCBpdGVtLgoJLSB6IDo6ICAgIEFk ZCBhIG5vdGUgdG8gdGhlIGVudHJ5LiBUaGlzIG5vdGUgd2lsbCBiZSByZWNvcmRlZCwgYW5kIHRo ZW4gZmlsZXMgdG8gdGhlIHNhbWUgbG9jYXRpb24gd2hlcmUgc3RhdGUgY2hhbmdlIG5vdGVzIGFy ZSBwdXQuIERlcGVuZGluZyBvbiBvcmctbG9nLWludG8tZHJhd2VyLCB0aGlzIG1heWJlIGluc2lk ZSBhIGRyYXdlci4KCS0gQy1jIEMtYSA6OiAgRGlzcGF0Y2hlciBmb3IgYWxsIGNvbW1hbmQgcmVs YXRlZCB0byBhdHRhY2htZW50cy4KCS0gQy1jIEMtcyA6OiAgU2NoZWR1bGUgdGhpcyBpdGVtCgkt IEMtYyBDLWQgOjogIFNldCBhIGRlYWRsaW5lIGZvciB0aGlzIGl0ZW0uCgktIGsgOjogICAgQWdl bmRhIGFjdGlvbnMsIHRvIHNldCBkYXRlcyBmb3Igc2VsZWN0ZWQgaXRlbXMgdG8gdGhlIGN1cnNv ciBkYXRlLiBUaGlzIGNvbW1hbmQgYWxzbyB3b3JrcyBpbiB0aGUgY2FsZW5kYXIhIFRoZSBjb21t YW5kIHByb21wdHMgZm9yIGFuIGFkZGl0aW9uYWwga2V5OgogICAgICAgICAgICAgLSAgbSA6OiAg IE1hcmsgdGhlIGVudHJ5IGF0IHBvaW50IGZvciBhY3Rpb24uICBZb3UgY2FuIGFsc28gbWFrZSBl bnRyaWVzCiAgICAgICAgICAgICAgICAgICBpbiBPcmcgZmlsZXMgd2l0aCBDLWMgQy14IEMtay4K ICAgICAgICAgICAgIC0gIGQgOjogIFNldCB0aGUgZGVhZGxpbmUgb2YgdGhlIG1hcmtlZCBlbnRy eSB0byB0aGUgZGF0ZSBhdCBwb2ludC4KICAgICAgICAgICAgIC0gIHMgOjogIFNjaGVkdWxlIHRo ZSBtYXJrZWQgZW50cnkgYXQgdGhlIGRhdGUgYXQgcG9pbnQuCiAgICAgICAgICAgICAtICByIDo6 ICBDYWxsIG9yZy1yZW1lbWJlciB3aXRoIHRoZSBjdXJzb3IgZGF0ZSBhcyBkZWZhdWx0IGRhdGUu CiAJICAgCgkgICAgIFtQcmVzcyByIGFmdGVyd2FyZCB0byByZWZyZXNoIHRoZSBhZ2VuZGEgYW5k IHNlZSB0aGUgZWZmZWN0IG9mIHRoZSBjb21tYW5kLl0KCS0gUy08cmlnaHQ+IDo6ICBDaGFuZ2Ug dGhlIHRpbWVzdGFtcCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbGluZSBieSBvbmUgZGF5 IGludG8gdGhlIGZ1dHVyZS4gV2l0aCBhIG51bWVyaWMgcHJlZml4IGFyZ3VtZW50LCBjaGFuZ2Ug aXQgYnkgdGhhdCBtYW55IGRheXMuIEZvciBleGFtcGxlLCAzIDYgNSBTLTxyaWdodD4gd2lsbCBj aGFuZ2UgaXQgYnkgYSB5ZWFyLiBXaXRoIGEgQy11IHByZWZpeCwgY2hhbmdlIHRoZSB0aW1lIGJ5 IG9uZSBob3VyLiBJZiB5b3UgaW1tZWRpYXRlbHkgcmVwZWF0IHRoZSBjb21tYW5kLCBpdCB3aWxs IGNvbnRpbnVlIHRvIGNoYW5nZSBob3VycyBldmVuIHdpdGhvdXQgdGhlIHByZWZpeCBhcmcuIFdp dGggYSBkb3VibGUgQy11IEMtdSBwcmVmaXgsIGRvIHRoZSBzYW1lIGZvciBjaGFuZ2luZyBtaW51 dGVzLiBUaGUgc3RhbXAgaXMgY2hhbmdlZCBpbiB0aGUgb3JpZ2luYWwgT3JnIGZpbGUsIGJ1dCB0 aGUgY2hhbmdlIGlzIG5vdCBkaXJlY3RseSByZWZsZWN0ZWQgaW4gdGhlIGFnZW5kYSBidWZmZXIu IFVzZSByIG9yIGcgdG8gdXBkYXRlIHRoZSBidWZmZXIuCgktIFMtPGxlZnQ+ICA6OiAgQ2hhbmdl IHRoZSB0aW1lc3RhbXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxpbmUgYnkgb25lIGRh eSBpbnRvIHRoZSBwYXN0LgoJLSA+IDo6ICAgIENoYW5nZSB0aGUgdGltZXN0YW1wIGFzc29jaWF0 ZWQgd2l0aCB0aGUgY3VycmVudCBsaW5lIHRvIHRvZGF5LiBUaGUga2V5ID4gaGFzIGJlZW4gY2hv c2VuLCBiZWNhdXNlIGl0IGlzIHRoZSBzYW1lIGFzIFMtLiBvbiBteSBrZXlib2FyZC4KCS0gSSA6 OiAgICBTdGFydCB0aGUgY2xvY2sgb24gdGhlIGN1cnJlbnQgaXRlbS4gSWYgYSBjbG9jayBpcyBy dW5uaW5nIGFscmVhZHksIGl0IGlzIHN0b3BwZWQgZmlyc3QuCgktIE8gOjogICAgU3RvcCB0aGUg cHJldmlvdXNseSBzdGFydGVkIGNsb2NrLgoJLSBYIDo6ICAgIENhbmNlbCB0aGUgY3VycmVudGx5 IHJ1bm5pbmcgY2xvY2suCgktIEogOjogICAgSnVtcCB0byB0aGUgcnVubmluZyBjbG9jayBpbiBh bm90aGVyIHdpbmRvdy4KKioqKiBCdWxrIHJlbW90ZSBlZGl0aW5nIHNlbGVjdGVkIGVudHJpZXMK CgktIHMgOjogICBNYXJrIHRoZSBlbnRyeSBhdCBwb2ludCBmb3IgYnVsayBhY3Rpb24uCgktIHUg OjogICBVbm1hcmsgZW50cnkgZm9yIGJ1bGsgYWN0aW9uLgoJLSBVIDo6ICAgVW5tYXJrIGFsbCBt YXJrZWQgZW50cmllcyBmb3IgYnVsayBhY3Rpb24uICAgIAoJLSBCIDo6ICAgIEJ1bGsgYWN0aW9u OiBhY3Qgb24gYWxsIG1hcmtlZCBlbnRyaWVzIGluIHRoZSBhZ2VuZGEuIFRoaXMgd2lsbCBwcm9t cHQgZm9yIGFub3RoZXIga2V5IHRvIHNlbGVjdCB0aGUgYWN0aW9uIHRvIGJlIGFwcGxpZWQ6CiAg ICAgICAgICAgICAgLSByIDo6ICBQcm9tcHQgZm9yIGEgc2luZ2xlIHJlZmlsZSB0YXJnZXQgYW5k IG1vdmUgYWxsIGVudHJpZXMuICBUaGUgZW50cmllcwogICAgICAgICAgICAgICAgICA6ICB3aWxs IG5vIGxvbmdlciBiZSBpbiB0aGUgYWdlbmRhLCByZWZyZXNoIChnKSB0byBicmluZyB0aGVtIGJh Y2suCiAgICAgICAgICAgICAgLSAkIDo6ICBBcmNoaXZlIGFsbCBzZWxlY3RlZCBlbnRyaWVzLgog ICAgICAgICAgICAgIC0gQSA6OiAgQXJjaGl2ZSBlbnRyaWVzIGJ5IG1vdmluZyB0aGVtIHRvIHRo ZWlyIHJlc3BlY3RpdmUgYXJjaGl2ZSBzaWJsaW5ncy4KICAgICAgICAgICAgICAtIHQgOjogQ2hh bmdlIFRPRE8gc3RhdGUuICBUaGlzIHByb21wdHMgZm9yIGEgc2luZ2xlIFRPRE8ga2V5d29yZCBh bmQKICAgICAgICAgICAgICAgICAgY2hhbmdlcyB0aGUgc3RhdGUgb2YgYWxsIHNlbGVjdGVkIGVu dHJpZXMsIGJ5cGFzc2luZyBibG9ja2luZyBhbmQKICAgICAgICAgICAgICAgICAgc3VwcHJlc3Np bmcgbG9nZ2luZyBub3RlcyAoYnV0IG5vdCB0aW1lIHN0YW1wcykuCiAgICAgICAgICAgICAgLSAr IDo6IEFkZCBhIHRhZyB0byBhbGwgc2VsZWN0ZWQgZW50cmllcy4KICAgICAgICAgICAgICAtIC0g OjogUmVtb3ZlIGEgdGFnIGZyb20gYWxsIHNlbGVjdGVkIGVudHJpZXMuCiAgICAgICAgICAgICAg LSBzIDo6IFNjaGVkdWxlIGFsbCBpdGVtcyB0byBhIG5ldyBkYXRlLiAgVG8gc2hpZnQgZXhpc3Rp bmcgc2NoZWR1bGUgZGF0ZXMKICAgICAgICAgICAgICAgICAgYnkgYSBmaXhlZCBudW1iZXIgb2Yg ZGF5cywgdXNlIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIGRvdWJsZSBwbHVzCiAgICAgICAgICAg ICAgICAgIGF0IHRoZSBwcm9tcHQsIGZvciBleGFtcGxlIOKAmCsrOGTigJkgb3Ig4oCYKysyd+KA mS4KICAgICAgICAgICAgICAtIGQgOjogU2V0IGRlYWRsaW5lIHRvIGEgc3BlY2lmaWMgZGF0ZS4K CQoqKioqIENhbGVuZGFyIGNvbW1hbmRzCgoJLSBjICAgOjogIE9wZW4gdGhlIEVtYWNzIGNhbGVu ZGFyIGFuZCBtb3ZlIHRvIHRoZSBkYXRlIGF0IHRoZSBhZ2VuZGEgY3Vyc29yLgoJLSBjICAgOjog IFdoZW4gaW4gdGhlIGNhbGVuZGFyLCBjb21wdXRlIGFuZCBzaG93IHRoZSBPcmcgbW9kZSBhZ2Vu ZGEgZm9yIHRoZSBkYXRlIGF0IHRoZSBjdXJzb3IuCgktIGkgICA6OiAgSW5zZXJ0IGEgbmV3IGVu dHJ5IGludG8gdGhlIGRpYXJ5LiBQcm9tcHRzIGZvciB0aGUgdHlwZSBvZiBlbnRyeSAoZGF5LCB3 ZWVrbHksIG1vbnRobHksIHllYXJseSwgYW5uaXZlcnNhcnksIGN5Y2xpYykgYW5kIGNyZWF0ZXMg YSBuZXcgZW50cnkgaW4gdGhlIGRpYXJ5LCBqdXN0IGFzIGkgZCwgZXRjLiwgd291bGQgZG8gaW4g dGhlIGNhbGVuZGFyLiBUaGUgZGF0ZSBpcyB0YWtlbiBmcm9tIHRoZSBjdXJzb3IgcG9zaXRpb24u CgktIE0gICA6OiAgU2hvdyB0aGUgcGhhc2VzIG9mIHRoZSBtb29uIGZvciB0aGUgdGhyZWUgbW9u dGhzIGFyb3VuZCBjdXJyZW50IGRhdGUuCgktIFMgICA6OiAgU2hvdyBzdW5yaXNlIGFuZCBzdW5z ZXQgdGltZXMuIFRoZSBnZW9ncmFwaGljYWwgbG9jYXRpb24gbXVzdCBiZSBzZXQgd2l0aCBjYWxl bmRhciB2YXJpYWJsZXMsIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEVtYWNzIGNhbGVu ZGFyLgoJLSBDICAgOjogIENvbnZlcnQgdGhlIGRhdGUgYXQgY3Vyc29yIGludG8gbWFueSBvdGhl ciBjdWx0dXJhbCBhbmQgaGlzdG9yaWMgY2FsZW5kYXJzLgoJLSBIICAgOjogIFNob3cgaG9saWRh eXMgZm9yIHRocmVlIG1vbnRocyBhcm91bmQgdGhlIGN1cnNvciBkYXRlLgoJLSBNLXggOjogb3Jn LWV4cG9ydC1pY2FsZW5kYXItY29tYmluZS1hZ2VuZGEtZmlsZXMKCSAgICBFeHBvcnQgYSBzaW5n bGUgaUNhbGVuZGFyIGZpbGUgY29udGFpbmluZyBlbnRyaWVzIGZyb20gYWxsIGFnZW5kYSBmaWxl cy4gVGhpcyBpcyBhIGdsb2JhbGx5IGF2YWlsYWJsZSBjb21tYW5kLCBhbmQgYWxzbyBhdmFpbGFi bGUgaW4gdGhlIGFnZW5kYSBtZW51LgoKKioqKiogRXhwb3J0aW5nIHRvIGEgZmlsZQoJCgktIEMt eCBDLXcgOjogICBXcml0ZSB0aGUgYWdlbmRhIHZpZXcgdG8gYSBmaWxlLiBEZXBlbmRpbmcgb24g dGhlIGV4dGVuc2lvbiBvZiB0aGUgc2VsZWN0ZWQgZmlsZSBuYW1lLCB0aGUgdmlldyB3aWxsIGJl IGV4cG9ydGVkIGFzIEhUTUwgKGV4dGVuc2lvbiAuaHRtbCBvciAuaHRtKSwgUG9zdHNjcmlwdCAo ZXh0ZW5zaW9uIC5wcyksIFBERiAoZXh0ZW5zaW9uIC5wZGYpLCBPcmctbW9kZSAoZXh0ZW5zaW9u IC5vcmcpLCBhbmQgcGxhaW4gdGV4dCAoYW55IG90aGVyIGV4dGVuc2lvbikuIFdoZW4gY2FsbGVk IHdpdGggYSBDLXUgcHJlZml4IGFyZ3VtZW50LCBpbW1lZGlhdGVseSBvcGVuIHRoZSBuZXdseSBj cmVhdGVkIGZpbGUuIFVzZSB0aGUgdmFyaWFibGUgb3JnLWFnZW5kYS1leHBvcnRlci1zZXR0aW5n cyB0byBzZXQgb3B0aW9ucyBmb3IgcHMtcHJpbnQgYW5kIGZvciBodG1saXplIHRvIGJlIHVzZWQg ZHVyaW5nIGV4cG9ydC4KCioqKioqICAgICAgUXVpdCBhbmQgRXhpdAoJLSBxIDo6CgoqKioqIFF1 aXQgYWdlbmRhLCByZW1vdmUgdGhlIGFnZW5kYSBidWZmZXIuCgktIHggOjoJICAgIEV4aXQgYWdl bmRhLCByZW1vdmUgdGhlIGFnZW5kYSBidWZmZXIgYW5kIGFsbCBidWZmZXJzIGxvYWRlZCBieSBF bWFjcyBmb3IKCSAgICB0aGUgY29tcGlsYXRpb24gb2YgdGhlIGFnZW5kYS4gQnVmZmVycyBjcmVh dGVkIGJ5IHRoZSB1c2VyIHRvIHZpc2l0IE9yZwoJICAgIGZpbGVzIHdpbGwgbm90IGJlIHJlbW92 ZWQuIAoKKioqIE9MRCAKKioqKiBNT1JFOgogICAgICAtIEMteCBDLXMgICAgICAgCioqKioqICAg VmlldyBPcmcgZmlsZSAKCiAgICAgICAgICAgc2hvdyBvcmlnaW5hbCBsb2NhdGlvbiBvZiBpdGVt ICAgICAgICAgICAgICAgU1BDL21vdXNlLTMgCiAgICAgICAgICAgc2hvdyBhbmQgcmVjZW50ZXIg d2luZG93ICAgICAgICAgICAgICAgICAgICAgTCAKICAgICAgICAgICBnb3RvIG9yaWdpbmFsIGxv Y2F0aW9uIGluIG90aGVyIHdpbmRvdyAgICAgICBUQUIvbW91c2UtMi9tb3VzZS0xIAogICAgICAg ICAgIGdvdG8gb3JpZ2luYWwgbG9jYXRpb24sIGRlbGV0ZSBvdGhlciB3aW5kb3dzIFJFVCAKICAg ICAgICAgICBzaG93IHN1YnRyZWUgaW4gaW5kaXJlY3QgYnVmZmVyLCBkZWQuIGZyYW1lICBiIAog ICAgICAgICAgIHRvZ2dsZSBmb2xsb3ctbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgIGYg CgoqKioqKiAgQ2hhbmdlIGRpc3BsYXkgCgogICAgICAgICAgIGRlbGV0ZSBvdGhlciB3aW5kb3dz ICAgICAgICAgICAgICAgICAgICAgICAgbyAKICAgICAgICAgICBzd2l0Y2ggdG8gZGF5L3dlZWsv bW9udGgveWVhciB2aWV3ICAgICAgICAgIGQgdyBtIHkgCiAgICAgICAgICAgVG9nZ2xlIGluY2x1 c2lvbiBvZiBkaWFyeSBlbnRyaWVzICAgICAgICAgICBEIAogICAgICAgICAgIHRvZ2dsZSB0aW1l IGdyaWQgZm9yIGRhaWx5IHNjaGVkdWxlICAgICAgICAgRyAKICAgICAgICAgICB0b2dnbGUgZGlz cGxheSBvZiBsb2dib29rIGVudHJpZXMgICAgICAgICAgIGwgCiAgICAgICAgICAgdG9nZ2xlIGlu Y2x1c2lvbiBvZiBhcmNoaXZlZCB0cmVlcy9maWxlcyAgICAgdiAvIEMtdSB2IAogICAgICAgICAg IHJlZnJlc2ggYWdlbmRhIGJ1ZmZlciB3aXRoIGFueSBjaGFuZ2VzICAgICAgIHIgLyBnIAogICAg ICAgICAgIGZpbHRlciB3aXRoIHJlcGVjdCB0byBhIHRhZyAgICAgICAgICAgICAgICAgLyAKICAg ICAgICAgICBzYXZlIGFsbCBvcmctbW9kZSBidWZmZXJzICAgICAgICAgICAgICAgICAgIHMgCiAg ICAgICAgICAgZGlzcGxheSBuZXh0L3ByZXZpb3VzIGRheSx3ZWVrLC4uLiAgICAgICAgICBSSUdI VC9MRUZUIAogICAgICAgICAgIGdvdG8gdG9kYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLiAKCioqKioqICBSZW1vdGUgRWRpdGluZyBmcm9tIEFnZW5kYSAKCiAgICAgICAgIFlv dSBhcmUgbm90IGFsbG93ZWQgdG8gZWRpdCB0aGUgYWdlbmRhIGJ1ZmZlciBpdHNlbGYsIGJ1dAog ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGVkaXQgaXQgInJlbW90ZWx5IjoKCiAgICAg ICAgICAgdW5kbyBhIGNoYW5nZSBkdWUgdG8gcmVtb3RlIGVkaXRpbmcgICAgICAgICBDLV8KICAg ICAgICAgICBkaWdpdCBhcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAtOSAK ICAgICAgICAgICBjaGFuZ2Ugc3RhdGUgb2YgY3VycmVudCBUT0RPIGl0ZW0gICAgICAgICAgIHQg CiAgICAgICAgICAga2lsbCBpdGVtIGFuZCBzb3VyY2UgICAgICAgICAgICAgICAgICAgICAgICBD LWsgCiAgICAgICAgICAgUmVmaWxlIGVudHJ5IGF0IHBvaW50ICAgICAgICAgICAgICAgICAgICAg ICBDLWMgQy13CiAgICAgICAgICAgdG9nZ2xlIGFyY2hpdmUgdGFnIGZvciBoZWFkbGluZSAgICAg ICAgICAgICBhCiAgICAgICAgICAgbW92ZSBzdWJ0cmVlIHRvIF9BcmNoaXZlIFNpYmxpbmdfICAg ICAgICAgICBBIAogICAgICAgICAgIGFyY2hpdmUgdGhlIHN1YnRyZWUgb2YgaGVhZGxpbmUgICAg ICAgICAgICAgJAogICAgICAgICAgICAgKHRvIGNvbmZpZ3VyZWQgYXJjaGl2ZSBsb2NhdGlvbi0t LT9maWxlKQoKICAgICAgICAgICBzaG93IHRhZ3Mgb2YgY3VycmVudCBoZWFkbGluZSAgICAgICAg ICAgICAgIFQgCiAgICAgICAgICAgICAoaW5jbHVkaW5nIGluaGVyaXRlZCB0YWdzKQogICAgICAg ICAgIHNldCB0YWdzIGZvciBjdXJyZW50IGhlYWRsaW5lL3JlZ2lvbiAgICAgICAgOiAKICAgICAg ICAgICBzZXQgcHJpb3JpdHkgb2YgY3VycmVudCBpdGVtICAgICAgICAgICAgICAgIHAgLyAnLCcK ICAgICAgICAgICByYWlzZSBwcmlvcml0eSBvZiBjdXJyZW50IGl0ZW0gICAgICAgICAgICAgIFMt VVAvRE9XTiAvICsgCiAgICAgICAgICAgbG93ZXIgcHJpb3JpdHkgb2YgY3VycmVudCBpdGVtICAg ICAgICAgICAgICBTLURPV04gIC8gLSAgCiAgICAgICAgICAgZGlzcGxheSB3ZWlnaHRlZCBwcmlv cml0eSBvZiBjdXJyZW50IGl0ZW0gICBQIAogICAgICAgICAgIGRpc3BhdGNoZXIgZm9yIGF0dGFj aG1lbnQgY29tbWFuZHMgICAgICAgICAgQy1jIEMtYSAKICAgICAgICAgICBzY2hlZHVsZSB0aGlz IGl0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgIEMtYyBDLXMKICAgICAgICAgICBzZXQgZGVh ZGxpbmUgZm9yIHRoaXMgaXRlbSAgICAgICAgICAgICAgICAgIEMtYyBDLWQgCiAgICAgICAgICAg Y2hhbmdlIHRpbWVzdGFtcCB0byBvbmUgZGF5IGVhcmxpZXIvbGF0ZXIgICBTLUxFRlQvUklHSFRe MyAKICAgICAgICAgICBjaGFuZ2UgdGltZXN0YW1wIHRvIHRvZGF5ICAgICAgICAgICAgICAgICAg ID4gCiAgICAgICAgICAgaW5zZXJ0IG5ldyBlbnRyeSBpbnRvIGRpYXJ5ICAgICAgICAgICAgICAg ICBpIAoKKioqKioqIEFnZW5kYSBBY3Rpb25zIGZvciBzZWxlY3RlZCBpdGVtcyAgICAgIAoKICAg ICAgICAgICBEaXNwYXRjaGVyIGZvciBhZ2VuZGEgYWN0aW9ucyAgICAgICAgICAgICAgawogICAg ICAgICAgIFttYXJrIGVudHJ5IGF0IHBvaW50IGZvciBhY3Rpb24gICAgICAgICAgYSBdCgkgICAg ICAgCW1heSBiZSBvdXQgb2YgZGF0ZQogICAgICAgICAgIHNldCBkZWFkbGluZSB0byBkYXRlIGF0 IHBvaW50ICAgICAgICAgICAgICBkIAogICAgICAgICAgIHNjaGVkdWxlIHRvIGRhdGUgYXQgcG9p bnQgICAgICAgICAgICAgICAgICBzCiAgICAgICAgICAgY2FsbCByZW1lbWJlciwgY3Vyc29yIGRh dGUgYXMgZGVmYXVsdCAgICAgIHIKCiAgICAgICAgIFByZXNzICdyJyBhZnRlcndhcmQgdG8gc2Vl IGVmZmVjdCBvZiBhY3Rpb24KCioqKioqKiBDbG9jayBhY3Rpb25zICAgICAgICAgICAgICAgICBJ IC8gTyAvIFggLyBKCgogICAgICAgICAgIHN0YXJ0IHRoZSBjbG9jayBvbiBjdXJyZW50IGl0ZW0g ICAgICAgICAgICAgSQogICAgICAgICAgIHN0b3AgdGhlIGNsb2NrIG9uIGN1cnJlbnQgaXRlbSAg ICAgICAgICAgICAgTwogICAgICAgICAgIGNhbmNlbCB0aGUgY2xvY2sgb24gY3VycmVudCBpdGVt ICAgICAgICAgICAgWCAKICAgIAogICAgICAgICAgIGp1bXAgdG8gcnVubmluZyBjbG9jayBlbnRy eSwgb3RoZXIgd2luZG93ICAgSiAKICAgIAoqKioqIEFnZW5kYSBBY3Rpb25zIGZvciBzZWxlY3Rl ZCBpdGVtcwoKICAgICAgIAlEaXNwYXRjaGVyIGZvciBhZ2VuZGEgYWN0aW9ucyAgICBTdWdnZXN0 ZWQ6IEMtYyBhCgogICAgICAgICBtYXJrIGVudHJ5IGF0IHBvaW50IGZvciBhY3Rpb24gICAgICAg ICAgYQogICAgICAgICBzZXQgZGVhZGxpbmUgdG8gZGF0ZSBhdCBwb2ludCAgICAgICAgICAgZCAK ICAgICAgICAgc2NoZWR1bGUgdG8gZGF0ZSBhdCBwb2ludCAgICAgICAgICAgICAgIHMKICAgICAg ICAgY2FsbCByZW1lbWJlciwgY3Vyc29yIGRhdGUgYXMgZGVmYXVsdCAgIHIKCiAgICAgICAJUHJl c3MgJ3InIGFmdGVyd2FyZCB0byBzZWUgZWZmZWN0IG9mIGFjdGlvbgoKCgoqKioqKiBDbG9jayBh Y3Rpb25zIGluIGFnZW5kYQoKICAgICAgIHN0YXJ0IHRoZSBjbG9jayBvbiBjdXJyZW50IGl0ZW0g ICAgICAgICAgICAgIEkKICAgICAgIHN0b3AgdGhlIGNsb2NrIG9uIGN1cnJlbnQgaXRlbSAgICAg ICAgICAgICAgIE8KICAgICAgIGNhbmNlbCB0aGUgY2xvY2sgb24gY3VycmVudCBpdGVtICAgICAg ICAgICAgIFggCgogICAgICAganVtcCB0byBydW5uaW5nIGNsb2NrIGVudHJ5LCBvdGhlciB3aW5k b3cgICAgSiAKCioqKiogTWlzYyAKCiAgICAgT3BlbiBsaW5rIGluIGN1cnJlbnQgbGluZSAgQy1j IEMtbyAKCioqKiogQ2FsZW5kYXIgY29tbWFuZHMgaW4gYWdlbmRhCgogICAgICAgICBmaW5kIGFn ZW5kYSBjdXJzb3IgZGF0ZSBpbiBjYWxlbmRhciAgICAgICAgICAgYyAKICAgICAgICAgY29tcHV0 ZSBhZ2VuZGEgZm9yIGNhbGVuZGFyIGN1cnNvciBkYXRlICAgICAgIGMgCiAgICAgICAgIHNob3cg cGhhc2VzIG9mIHRoZSBtb29uICAgICAgICAgICAgICAgICAgICAgICBNIAogICAgICAgICBzaG93 IHN1bnJpc2Uvc3Vuc2V0IHRpbWVzICAgICAgICAgICAgICAgICAgICAgUyAKICAgICAgICAgc2hv dyBob2xpZGF5cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggCiAgICAgICAgIGNv bnZlcnQgZGF0ZSB0byBvdGhlciBjYWxlbmRhcnMgICAgICAgICAgICAgICBDIAoKKioqKiBRdWl0 IGFuZCBFeGl0CgogICAgICAgICBxdWl0IGFnZW5kYSwgcmVtb3ZlIGFnZW5kYSBidWZmZXIgICAg ICAgICAgICAgcSAKICAgICAgICAgZXhpdCBhZ2VuZGEsIHJlbW92ZSBhbGwgYWdlbmRhIGJ1ZmZl cnMgICAgICAgIHggCioqICBBZ2VuZGEgRmlsZXMgCiAgICAgVGhlIHZhcmlhYmxlIG9yZy1hZ2Vu ZGEtZmlsZXMgY29udHJvbHMgd2hpY2ggZmlsZXMgYXJlIHVzZWQgZm9yCiAgICAgYWdlbmRhIGRp c3BsYXkuCiAgICAgICAtIGlmIGl0IGlzIGEgZGlyZWN0b3J5LCBhbGwgZmlsZXMgbWF0Y2hlZCBi eQogICAgICAgICBvcmctYWdlbmRhLWZpbGVzLXJlZ2V4cCBhcmUgaW5jbHVkZWQKICAgICAgIC0g YSBsaXN0IG9mIGZpbGVzIG1heSBiZSBzdG9yZWQgaW4gYSBmaWxlOiAgCiAgICAgICAgIG9yZy1h Z2VuZGEtZmlsZXMgaXMgdGhlbiB0aGUgbmFtZSBvZiBhIHNpbmdsZSBmaWxlLgogICAgICAgLSB0 aGUgdmFyaWFibGUgY2FuIGJlIGN1c3RvbWl6ZWQKCiAgICAgVGhlIHZhcmlhYmxlICdvcmctYWdl bmRhLWZpbGVzJyBtYXkgYmUgbWFpbnRhaW5lZCB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgCiAgICAg Y29tbWFuZHM6IAoKICAgICAgICBhZGQvbW92ZSBjdXJyZW50IGZpbGUgdG8gZnJvbnQgb2YgYWdl bmRhICAgICAgQy1jIFsgCiAgICAgICAgcmVtb3ZlIGN1cnJlbnQgZmlsZSBmcm9tIHlvdXIgYWdl bmRhICAgICAgICAgIEMtYyBdIAogICAgICAgIGN5Y2xlIHRocm91Z2ggYWdlbmRhIGZpbGUgbGlz dCAgICAgICAgICAgICAgICBDLSwgLyBDLScgCiAgICAgICAgc2V0L3JlbW92ZSByZXN0cmljdGlv biBsb2NrICA1ICAgICAgICAgICAgICAgIEMtYyBDLXggPC8+IAoKKiogIEFnZW5kYSBGaWxlcyBN YWludGVuYW5jZQoKICAgICBUaGUgdmFyaWFibGUgJ29yZy1hZ2VuZGEtZmlsZXMnIG1heSBiZSBt YWludGFpbmVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyAKICAgICBjb21tYW5kczogCgogICAgICAg IGFkZC9tb3ZlIGN1cnJlbnQgZmlsZSB0byBmcm9udCBvZiBhZ2VuZGEgICAgICBDLWMgWyAKICAg ICAgICByZW1vdmUgY3VycmVudCBmaWxlIGZyb20geW91ciBhZ2VuZGEgICAgICAgICAgQy1jIF0g CiAgICAgICAgY3ljbGUgdGhyb3VnaCBhZ2VuZGEgZmlsZSBsaXN0ICAgICAgICAgICAgICAgIEMt LCAvIEMtJyAKICAgICAgICBzZXQgcmVzdHJpY3Rpb24gbG9jayAgICAgICAgICAgICAgICAgICAg ICAgICAgQy1jIEMteCA8CiAgICAgICAgcmVtb3ZlIHJlc3RyaWN0aW9uIGxvY2sgICAgICAgICAg ICAgICAgICAgICAgIEMtYyBDLXggPiAKCioqICBUaGUgQWdlbmRhIERpc3BhdGNoZXIgCgoKICAg ICAgICAoYXNzdW1pbmcgQy1jIGEgaXMgdGhlIEFnZW5kYSBEaXNwYXRjaGVyLCB0aGUgZm9sbG93 aW5nIGFyZSAKICAgICAgICBzdWdnZXN0ZWQgYmluZGluZ3MpCgogICAgICAgIHJlc3RyaWN0IGFn ZW5kYSBjb21tYW5kIHRvIGN1cnJlbnQgYnVmZmVyICAgICBDLWMgYSA8ICh0aGVuIGNoYXJhY3Rl cikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Qy1jIGEgPCA8IAogICAgICAgICAgICAgICAgIElmIHRoZXJlIGlzIGFuIGFjdGl2ZSByZWdpb24s IHJlc3RyaWN0IHRoZSBmb2xsb3dpbmcgYWdlbmRhCiAgICAgICAgICAgICAgICAgY29tbWFuZCB0 byAgdGhlIHJlZ2lvbi4gT3RoZXJ3aXNlLCByZXN0cmljdCBpdCB0byB0aGUgCiAgICAgICAgICAg ICAgICAgY3VycmVudCBzdWJ0cmVlMi4gQWZ0ZXIgcHJlc3NpbmcgPCA8LCB5b3Ugc3RpbGwgCgkJ IG5lZWQgdG8gcHJlc3MgdGhlIGNoYXJhY3RlciBzZWxlY3RpbmcgdGhlIGNvbW1hbmQuIAoKICAg ICAgICBjb21waWxlIGFnZW5kYSBmb3IgdGhlIGN1cnJlbnQgd2VlayAgICAgICAgICAgQy1jIGEg YSAKCiAgICAgICAgY29tcGlsZSBnbG9iYWwgVE9ETyBsaXN0ICAgICAgICAgICAgICAgICAgICAg IEMtYyBhIHQgCiAgICAgICAgY29tcGlsZSBUT0RPIGxpc3QgZm9yIHNwZWNpZmljIGtleXdvcmQg ICAgICAgIEMtYyBhIFQgCgogICAgICAgIG1hdGNoIHRhZ3MsIFRPRE8ga3dkcywgcHJvcGVydGll cyAgICAgICAgICAgICBDLWMgYSBtIAogICAgICAgIG1hdGNoIG9ubHkgaW4gVE9ETyBlbnRyaWVz ICAgICAgICAgICAgICAgICAgICBDLWMgYSBNIAoKICAgICAgICBzaG93IHRpbWVsaW5lIHZpZXcg b2YgY3VycmVudCBvcmcgZmlsZSAgICAgICAgQy1jIGEgTCAKICAgICAgICAgICh0aW1lLXNvcnRl ZCB2aWV3KQogICAgICAgIG1hdGNoIGJvb2xlYW4gZXhwcmVzc2lvbiAgICAgICAgICAgICAgICAg ICAgICBDLWMgYSBzCiAgICAgICAgY29uZmlndXJlIGN1c3RvbSBjb21tYW5kcyAgICAgICAgICAg ICAgICAgICAgIEMtYyBhIEMKICAgICAgICBzZWFyY2ggYWdlbmRhIGZpbGVzIGZvciByZWd1bGFy IGV4cHJlc3Npb24gICAgQy1jIGEgLwoKICAgICAgICBmaW5kIHN0dWNrIHByb2plY3RzICAgICAg ICAgICAgICAgICAgICAgICAgICAgQy1jIGEgIyA7IEMtYyBhICEKICAgICAgICByZXN0cmljdCBh Z2VuZGEgY29tbWFuZCB0byBjdXJyZW50IGJ1ZmZlciAgICAgQy1jIGEgPCAodGhlbiBjaGFyYWN0 ZXIpCiAgICAgICAgYWdlbmRhIGZvciBkYXRlIGF0IGN1cnNvciAgICAgICAgICAgICAgICAgICAg IEMtYyBDLW8gCgoqKiogRnJvbSBvcmctYWdlbmRhLmVsCiAgICAgICBhICAgICBDYWxsIGBvcmct YWdlbmRhLWxpc3QnIHRvIGRpc3BsYXkgdGhlIGFnZW5kYSBmb3IgY3VycmVudCBkYXkgb3Igd2Vl ay4KICAgICAgIHQgICAgIENhbGwgYG9yZy10b2RvLWxpc3QnIHRvIGRpc3BsYXkgdGhlIGdsb2Jh bCB0b2RvIGxpc3QuCiAgICAgICBUICAgICBDYWxsIGBvcmctdG9kby1saXN0JyB0byBkaXNwbGF5 IHRoZSBnbG9iYWwgdG9kbyBsaXN0LCBzZWxlY3Qgb25seQogICAgICAgICAgICAgZW50cmllcyB3 aXRoIGEgc3BlY2lmaWMgVE9ETyBrZXl3b3JkICh0aGUgdXNlciBnZXRzIGEgcHJvbXB0KS4KICAg ICAgIG0gICAgIENhbGwgYG9yZy10YWdzLXZpZXcnIHRvIGRpc3BsYXkgaGVhZGxpbmVzIHdpdGgg dGFncyBtYXRjaGluZwogICAgICAgICAgICAgYSBjb25kaXRpb24gICh0aGUgdXNlciBpcyBwcm9t cHRlZCBmb3IgdGhlIGNvbmRpdGlvbikuCiAgICAgICBNICAgICBMaWtlIGBtJywgYnV0IHNlbGVj dCBvbmx5IFRPRE8gZW50cmllcywgbm8gb3JkaW5hcnkgaGVhZGxpbmVzLgogICAgICAgTCAgICAg Q3JlYXRlIGEgdGltZWxpbmUgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlci4KICAgICAgIGUgICAgIEV4 cG9ydCB2aWV3cyB0byBhc3NvY2lhdGVkIGZpbGVzLgogICAgICAgcyAgICAgU2VhcmNoIGVudHJp ZXMgZm9yIGtleXdvcmRzLgogICAgICAgLyAgICAgTXVsdGkgb2NjdXIgYWNjcm9zIGFsbCBhZ2Vu ZGEgZmlsZXMgYW5kIGFsc28gZmlsZXMgbGlzdGVkCiAgICAgICAgICAgICBpbiBgb3JnLWFnZW5k YS10ZXh0LXNlYXJjaC1leHRyYS1maWxlcycuCiAgICAgICA8ICAgICBSZXN0cmljdCBhZ2VuZGEg Y29tbWFuZHMgdG8gYnVmZmVyLCBzdWJ0cmVlLCBvciByZWdpb24uCiAgICAgICAgICAgICBQcmVz cyBzZXZlcmFsIHRpbWVzIHRvIGdldCB0aGUgZGVzaXJlZCBlZmZlY3QuCiAgICAgICA+ICAgICBS ZW1vdmUgYSBwcmV2aW91cyByZXN0cmljdGlvbi4KICAgICAgICMgICAgIExpc3QgXCJzdHVja1wi IHByb2plY3RzLgogICAgICAgISAgICAgQ29uZmlndXJlIHdoYXQgXCJzdHVja1wiIG1lYW5zLgog ICAgICAgQyAgICAgQ29uZmlndXJlIGN1c3RvbSBhZ2VuZGEgY29tbWFuZHMuCgoKKioqIEtleXdv cmQgc2VhcmNoCgogICAgICAgIGJvb2xlYW4gc2VhcmNoIGJ5IGtleXdvcmQgb2YgZmlsZXMgICAg ICAgICAgICBDLWMgYSBzCiAgICAgICAoc2VhcmNoZXMgYWxsIGZpbGVzIGluIGBvcmctYWdlbmRh LXRleHQtc2VhcmNoLWV4dHJhLWZpbGVzJykgCgoqKiBUT0RPIFsjQl0gQWdlbmRhIENvbW1hbmRz IChhdmFpbGFibGUgaW4gIGFnZW5kYSBidWZmZXIpIAoqKiogTU9SRToKICAgICAtIEMteCBDLXMg ICAgICAgPyBvcmctYWdlbmRhLVNjaGVkdWxlCioqKiogIFZpZXcgT3JnIGZpbGUJCQkJCQkJICAg ICAgIDplcnJvcnM6CgogICAgICAgICAgc2hvdyBvcmlnaW5hbCBsb2NhdGlvbiBvZiBpdGVtICAg ICAgICAgICAgICAgU1BDL21vdXNlLTMgCiAgICAgICAgICBzaG93IGFuZCByZWNlbnRlciB3aW5k b3cgICAgICAgICAgICAgICAgICAgICBMIAogICAgICAgICAgZ290byBvcmlnaW5hbCBsb2NhdGlv biBpbiBvdGhlciB3aW5kb3cgICAgICAgVEFCL21vdXNlLTIvbW91c2UtMSAKICAgICAgICAgIGdv dG8gb3JpZ2luYWwgbG9jYXRpb24sIGRlbGV0ZSBvdGhlciB3aW5kb3dzIFJFVCAKICAgICAgICAg IHNob3cgc3VidHJlZSBpbiBpbmRpcmVjdCBidWZmZXIsIGRlZC4gZnJhbWUgIGIgICAgICAgICAg ICAgICAgICAgICAgIFgKICAgICAgICAgIHRvZ2dsZSBmb2xsb3ctbW9kZSAgICAgICAgICAgICAg ICAgICAgICAgICAgIEYgCgoqKioqICBDaGFuZ2UgZGlzcGxheSAKCiAgICAgICAgICBkZWxldGUg b3RoZXIgd2luZG93cyAgICAgICAgICAgICAgICAgICAgICAgIG8gCiAgICAgICAgICBzd2l0Y2gg dG8gZGF5L3dlZWsvbW9udGgveWVhciB2aWV3ICAgICAgICAgIGQgdyBtIHkgCiAgICAgICAgICBU b2dnbGUgaW5jbHVzaW9uIG9mIGRpYXJ5IGVudHJpZXMgICAgICAgICAgIEQgCiAgICAgICAgICB0 b2dnbGUgdGltZSBncmlkIGZvciBkYWlseSBzY2hlZHVsZSAgICAgICAgIEcgCiAgICAgICAgICB0 b2dnbGUgZGlzcGxheSBvZiBsb2dib29rIGVudHJpZXMgICAgICAgICAgIGwgCiAgICAgICAgICB0 b2dnbGUgaW5jbHVzaW9uIG9mIGFyY2hpdmVkIHRyZWVzL2ZpbGVzICAgICB2IC8gQy11IHYgCiAg ICAgICAgICByZWZyZXNoIGFnZW5kYSBidWZmZXIgd2l0aCBhbnkgY2hhbmdlcyAgICAgICByIC8g ZyAKICAgICAgICAgIGZpbHRlciB3aXRoIHJlcGVjdCB0byBhIHRhZyAgICAgICAgICAgICAgICAg LyAKICAgICAgICAgIHNhdmUgYWxsIG9yZy1tb2RlIGJ1ZmZlcnMgICAgICAgICAgICAgICAgICAg cyAKICAgICAgICAgIGRpc3BsYXkgbmV4dC9wcmV2aW91cyBkYXksd2VlaywuLi4gICAgICAgICAg UklHSFQvTEVGVCAKICAgICAgICAgIGdvdG8gdG9kYXkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLiAKCioqKiogIFJlbW90ZSBFZGl0aW5nIGZyb20gQWdlbmRhIAoKICAgICAgICBZ b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGVkaXQgdGhlIGFnZW5kYSBidWZmZXIgaXRzZWxmLCBidXQK ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGVkaXQgaXQgInJlbW90ZWx5IjoKCiAgICAg ICAgICB1bmRvIGEgY2hhbmdlIGR1ZSB0byByZW1vdGUgZWRpdGluZyAgICAgICAgIEMtXwogICAg ICAgICAgZGlnaXQgYXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLTkgCiAg ICAgICAgICBjaGFuZ2Ugc3RhdGUgb2YgY3VycmVudCBUT0RPIGl0ZW0gICAgICAgICAgIHQgCiAg ICAgICAgICBraWxsIGl0ZW0gYW5kIHNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgIEMtayAK ICAgICAgICAgIFJlZmlsZSBlbnRyeSBhdCBwb2ludCAgICAgICAgICAgICAgICAgICAgICAgQy1j IEMtdwogICAgICAgICAgdG9nZ2xlIGFyY2hpdmUgdGFnIGZvciBoZWFkbGluZSAgICAgICAgICAg ICBhCiAgICAgICAgICBtb3ZlIHN1YnRyZWUgdG8gX0FyY2hpdmUgU2libGluZ18gICAgICAgICAg IEEgCiAgICAgICAgICBhcmNoaXZlIHRoZSBzdWJ0cmVlIG9mIGhlYWRsaW5lICAgICAgICAgICAg ICQKICAgICAgICAgICAgKHRvIGNvbmZpZ3VyZWQgYXJjaGl2ZSBsb2NhdGlvbi0tLT9maWxlKQoK ICAgICAgICAgIHNob3cgdGFncyBvZiBjdXJyZW50IGhlYWRsaW5lICAgICAgICAgICAgICAgVCAK ICAgICAgICAgICAgKGluY2x1ZGluZyBpbmhlcml0ZWQgdGFncykKICAgICAgICAgIHNldCB0YWdz IGZvciBjdXJyZW50IGhlYWRsaW5lL3JlZ2lvbiAgICAgICAgOiAKICAgICAgICAgIHNldCBwcmlv cml0eSBvZiBjdXJyZW50IGl0ZW0gICAgICAgICAgICAgICAgcCAvICcsJwogICAgICAgICAgcmFp c2UgcHJpb3JpdHkgb2YgY3VycmVudCBpdGVtICAgICAgICAgICAgICBTLVVQL0RPV04gLyArIAog ICAgICAgICAgbG93ZXIgcHJpb3JpdHkgb2YgY3VycmVudCBpdGVtICAgICAgICAgICAgICBTLURP V04gIC8gLSAgCiAgICAgICAgICBkaXNwbGF5IHdlaWdodGVkIHByaW9yaXR5IG9mIGN1cnJlbnQg aXRlbSAgIFAgCiAgICAgICAgICBkaXNwYXRjaGVyIGZvciBhdHRhY2htZW50IGNvbW1hbmRzICAg ICAgICAgIEMtYyBDLWEgCiAgICAgICAgICBzY2hlZHVsZSB0aGlzIGl0ZW0gICAgICAgICAgICAg ICAgICAgICAgICAgIEMtYyBDLXMKICAgICAgICAgIHNldCBkZWFkbGluZSBmb3IgdGhpcyBpdGVt ICAgICAgICAgICAgICAgICAgQy1jIEMtZCAKICAgICAgICAgIGNoYW5nZSB0aW1lc3RhbXAgdG8g b25lIGRheSBlYXJsaWVyL2xhdGVyICAgUy1MRUZUL1JJR0hUXjMgCiAgICAgICAgICBjaGFuZ2Ug dGltZXN0YW1wIHRvIHRvZGF5ICAgICAgICAgICAgICAgICAgID4gCiAgICAgICAgICBpbnNlcnQg bmV3IGVudHJ5IGludG8gZGlhcnkgICAgICAgICAgICAgICAgIGkgCgoqKioqKiBBZ2VuZGEgQWN0 aW9ucyBmb3Igc2VsZWN0ZWQgaXRlbXMgICAgICAKCiAgICAgICAgICBEaXNwYXRjaGVyIGZvciBh Z2VuZGEgYWN0aW9ucyAgICAgICAgICAgICAgawogICAgICAgICAgW21hcmsgZW50cnkgYXQgcG9p bnQgZm9yIGFjdGlvbiAgICAgICAgICBhIF0KCSAgICAgICBtYXkgYmUgb3V0IG9mIGRhdGUKICAg ICAgICAgIHNldCBkZWFkbGluZSB0byBkYXRlIGF0IHBvaW50ICAgICAgICAgICAgICBkIAogICAg ICAgICAgc2NoZWR1bGUgdG8gZGF0ZSBhdCBwb2ludCAgICAgICAgICAgICAgICAgIHMKICAgICAg ICAgIGNhbGwgcmVtZW1iZXIsIGN1cnNvciBkYXRlIGFzIGRlZmF1bHQgICAgICByCgogICAgICAg IFByZXNzICdyJyBhZnRlcndhcmQgdG8gc2VlIGVmZmVjdCBvZiBhY3Rpb24KCioqKioqIENsb2Nr IGFjdGlvbnMgICAgICAgICAgICAgICAgIEkgLyBPIC8gWCAvIEoKCiAgICAgICAgICBzdGFydCB0 aGUgY2xvY2sgb24gY3VycmVudCBpdGVtICAgICAgICAgICAgIEkKICAgICAgICAgIHN0b3AgdGhl IGNsb2NrIG9uIGN1cnJlbnQgaXRlbSAgICAgICAgICAgICAgTwogICAgICAgICAgY2FuY2VsIHRo ZSBjbG9jayBvbiBjdXJyZW50IGl0ZW0gICAgICAgICAgICBYIAogICAKICAgICAgICAgIGp1bXAg dG8gcnVubmluZyBjbG9jayBlbnRyeSwgb3RoZXIgd2luZG93ICAgSiAKICAgCioqKiBBZ2VuZGEg QWN0aW9ucyBmb3Igc2VsZWN0ZWQgaXRlbXMKCiAgICAgICBEaXNwYXRjaGVyIGZvciBhZ2VuZGEg YWN0aW9ucyAgICBTdWdnZXN0ZWQ6IEMtYyBhCgogICAgICAgIG1hcmsgZW50cnkgYXQgcG9pbnQg Zm9yIGFjdGlvbiAgICAgICAgICBhCiAgICAgICAgc2V0IGRlYWRsaW5lIHRvIGRhdGUgYXQgcG9p bnQgICAgICAgICAgIGQgCiAgICAgICAgc2NoZWR1bGUgdG8gZGF0ZSBhdCBwb2ludCAgICAgICAg ICAgICAgIHMKICAgICAgICBjYWxsIHJlbWVtYmVyLCBjdXJzb3IgZGF0ZSBhcyBkZWZhdWx0ICAg cgoKICAgICAgIFByZXNzICdyJyBhZnRlcndhcmQgdG8gc2VlIGVmZmVjdCBvZiBhY3Rpb24KCgoq KioqIENsb2NrIGFjdGlvbnMgaW4gYWdlbmRhCgogICAgICBzdGFydCB0aGUgY2xvY2sgb24gY3Vy cmVudCBpdGVtICAgICAgICAgICAgICBJCiAgICAgIHN0b3AgdGhlIGNsb2NrIG9uIGN1cnJlbnQg aXRlbSAgICAgICAgICAgICAgIE8KICAgICAgY2FuY2VsIHRoZSBjbG9jayBvbiBjdXJyZW50IGl0 ZW0gICAgICAgICAgICAgWCAKCiAgICAgIGp1bXAgdG8gcnVubmluZyBjbG9jayBlbnRyeSwgb3Ro ZXIgd2luZG93ICAgIEogCgoqKiogTWlzYyAKCiAgICBPcGVuIGxpbmsgaW4gY3VycmVudCBsaW5l ICBDLWMgQy1vIAoKKioqIENhbGVuZGFyIGNvbW1hbmRzIGluIGFnZW5kYQoKICAgICAgICBmaW5k IGFnZW5kYSBjdXJzb3IgZGF0ZSBpbiBjYWxlbmRhciAgICAgICAgICAgYyAKICAgICAgICBjb21w dXRlIGFnZW5kYSBmb3IgY2FsZW5kYXIgY3Vyc29yIGRhdGUgICAgICAgYyAKICAgICAgICBzaG93 IHBoYXNlcyBvZ2YgdGhlIG1vb24gICAgICAgICAgICAgICAgICAgICAgIE0gCiAgICAgICAgc2hv dyBzdW5yaXNlL3N1bnNldCB0aW1lcyAgICAgICAgICAgICAgICAgICAgIFMgCiAgICAgICAgc2hv dyBob2xpZGF5cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggCiAgICAgICAgY29u dmVydCBkYXRlIHRvIG90aGVyIGNhbGVuZGFycyAgICAgICAgICAgICAgIEMgCgoqKiogUXVpdCBh bmQgRXhpdAoKICAgICAgICBxdWl0IGFnZW5kYSwgcmVtb3ZlIGFnZW5kYSBidWZmZXIgICAgICAg ICAgICAgcSAKICAgICAgICBleGl0IGFnZW5kYSwgcmVtb3ZlIGFsbCBhZ2VuZGEgYnVmZmVycyAg ICAgICAgeCAKCiogU3BlY2lhbCBzZWFyY2hlcwoKICAgMS4gW1todHRwOi8vb3JnbW9kZS5vcmcv d29yZy9vcmctdHV0b3JpYWxzL2FkdmFuY2VkLXNlYXJjaGluZy5odG1sXVtUdXRvcmlhbCBvbiBB ZHZhbmNlZCBTZWFyY2hpbmddXSAgIAogICAxLiBBZ2VuZGE6IHRhZ3MgbWF0Y2ggb24gY3VycmVu dCBmaWxlIG9ubHkgICAgQy1jIGEgMSBtCiAgIDIuIFtbcDovL29yZ21vZGUub3JnL21hbnVhbC9N YXRjaGluZy10YWdzLWFuZC1wcm9wZXJ0aWVzLmh0bWxdW01hdGNoaW5nIHRhZ3MgYW5kIFByb3Bl cnRpZXNdXSAoaW5mbyBtYW51YWwpCiAgIDMuIFtbaHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3Jn LXR1dG9yaWFscy9hZHZhbmNlZC1zZWFyY2hpbmcuaHRtbCNwcm9wZXJ0eS1zZWFyY2hlc11bUHJv cGVydHkgc2VhcmNoZXMgdHV0b3JpYWxdXSAod29yZykKICAgNC4gU2VhcmNoIGFsbCBvcmcgZmls ZXMgKGZ1bmN0aW9uKSAgIFtMb2NhbGx5IEMtYyA5XSAKICAgICAgLC0tLS0KICAgICAgfCAgICAg ICAgIChkZWZ1biBteS1vcmctZ3JlcCAoc2VhcmNoICZvcHRpb25hbCBjb250ZXh0KQogICAgICB8 ICAgICAgIlNlYXJjaCBmb3Igd29yZCBpbiBvcmcgZmlsZXMuCiAgICAgIHwgICAKICAgICAgfCAg IFByZWZpeCBhcmd1bWVudCBkZXRlcm1pbmVzIG51bWJlciBvZiBsaW5lcy4iCiAgICAgIHwgICAg ICAoaW50ZXJhY3RpdmUgInNTZWFyY2ggZm9yOiBcblAiKQogICAgICB8ICAgICAgKGxldCAoKGdy ZXAtZmluZC1pZ25vcmVkLWZpbGVzICcoIiMqIiAiLiMqIikpCiAgICAgIHwgICAgICAgICAgICAo Z3JlcC10ZW1wbGF0ZSAoY29uY2F0ICJncmVwIDxYPiAtaSAtbkggIgogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBjb250ZXh0CiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiLUMiIChudW1iZXItdG8tc3RyaW5n IGNvbnRleHQpKSkKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAt ZSA8Uj4gPEY+IikpKQogICAgICB8ICAgICAgICAobGdyZXAgc2VhcmNoICIqb3JnKiIgIi9ob21l L21hdHQvb3JnLyIpKSkKICAgICAgfCAgIAogICAgICB8ICAgKGdsb2JhbC1zZXQta2V5IChrYmQg IkMtYyA5IikgJ215LW9yZy1ncmVwKQogICAgICBgLS0tLQoKCiogUmVzdHJpY3RpbmcgYW5kIG1v ZGlmeWluZyBhZ2VuZGEtZmlsZXMgdmFyaW91cyB3YXlzCiAgIDEuIEMtYyBDLXggPCAgICAgICBS ZXN0cmljdCB0aGUgYWdlbmRhIHRvIHRoZSBjdXJyZW50IHN1YnRyZWUKICAgMi4gQy11IEMtYyBD LXggPCAgIFJlc3RyaWN0IGFnZW5kYSB0byBlbnRpcmUgY3VycmVudCBmaWxlCiAgIDMuIEMtYyBD LXggPiAgICAgICBSRU1PVkUgUmVzdHJpY3Rpb24KICAgNC4gSW4gQWdlbmRhIERpc3BhdGNoZXI6 OiAnPCcgb3IgJz4nCgogICAgICAKKiBDYWxlbmRhciBhbmQgRGlhcnkgSW50ZWdyYXRpb24gCgog IEluY2x1ZGUgRW1hY3MgZGlhcnkgZW50cmllcyBpbnRvIE9yZy1tb2RlIGFnZW5kYSB3aXRoOgog IChzZXRxIG9yZy1hZ2VuZGEtaW5jbHVkZS1kaWFyeSB0KQoKKiBMYVRlWCBhbmQgY2RsYXRleC1t b2RlIAoKICAgICAgICBwcmV2aWV3IExhVGVYIGZyYWdtZW50ICAgICAgICAgICAgICAgICAgICAg ICAgQy1jIEMteCBDLWwgCgogICAgICAgIGNkbGF0ZXgtbW9kZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTS14IG9yZy1jZGxhdGV4LW1vZGUKICAgICAgICAgICAgIChhbHRlcm5hdGVseSB1 c2UgbGF0ZXggaG9vaykKICAgICAgICBFeHBhbmQgYWJicmV2aWF0aW9uIChjZGxhdGV4LW1vZGUp ICAgICAgICAgICAgVEFCIAogICAgICAgIEluc2VydC9tb2RpZnkgbWF0aCBzeW1ib2wgKGNkbGF0 ZXgtbW9kZSkgICAgICBgIC8gJyAKCioqIEZlYXR1cmVzIG9mIENETGFUZVggTW9kZQogICAgIGlu c2VydCBlbnZpcm9ubWVudCB0ZW1wbGF0ZXMgICAgICAgICAgICAgICAgIEMtYyB7CiAgICAgZXhw YW5kIHRlbXBsYXRlIGFiYnJldnMgICAgICAgICAgICAgICAgICAgICAgVEFCIAogICAgICAgIGxp c3Qgb2YgYWxsIGFiYnJldnM6ICAgICAgICAgICAgICAgICAgICAgICBNLXggY2RsYXRleC1jb21t YW5kLWhlbHAKICAgICBzdXBlci0gLyBzdWJzY3JpcHRzICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiAgLyAgXwogICAgIG1hdGggbWFjcm9zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBiYWNrcXVvdGUgKGApIGFuZCBjaGFyIAogICAgICAgKGhlbHAgcG9wcyB1cCAxLjUgc2Vj IGFmdGVyICJgIiBpcyBlbnRlcmVkKQogICAgIG1vZGlmeSBzeW1ib2wgYmVmb3JlIGNoYXIsIG9y IGZvbnQgICAgICAgICAgICBxdW90ZSAoJykgYW5kIGNoYXIKICAgICAgIChoZWxwIHBvcHMgdXAg MS41IHNlYyBhZnRlciAiJyIgaXMgZW50ZXJlZCkgIAoKKiBbW2luZm86b3JnOkV4cG9ydGluZ11b RXhwb3J0aW5nXV0gYW5kIFtbaW5mbzpvcmc6UHVibGlzaGluZ11bUHVibGlzaGluZ11dICAgICAg ICAgQy1jIEMtZQoKICAgICAgIEV4cG9ydGluZyBjcmVhdGVzIGZpbGVzIHdpdGggZXh0ZW5zaW9u cyAudHh0IGFuZCAuaHRtbCAgCiAgICAgICBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBQdWJs aXNoaW5nIHB1dHMgdGhlIHJlc3VsdGluZyBmaWxlCiAgICAgICBpbnRvIHNvbWUgb3RoZXIgcGxh Y2UuCgogICAgICAgIGV4cG9ydC9wdWJsaXNoIGRpc3BhdGNoZXIgICAgICAgICAgICAgICAgICAg ICBDLWMgQy1lIAogICAgICAgIGV4cG9ydCB2aXNpYmxlIHBhcnQgb25seSAgICAgICAgICAgICAg ICAgICAgICBDLWMgQy1lIHYgCiAgICAgICAgaW5zZXJ0IHRlbXBsYXRlIG9mIGV4cG9ydCBvcHRp b25zICAgICAgICAgICAgIEMtYyBDLXggdCAKICAgICAgICB0b2dnbGUgZml4ZWQgd2lkdGggZm9y IGVudHJ5IG9yIHJlZ2lvbiAgICAgICAgQy1jIDogCgoKKiogS2V5Ym9hcmQgc2hvcnRjdXRzIGZv ciB0eXBpbmcgY2VydGFpbiBzdHJ1Y3R1cmVzIAogICAgKGZyb20gb3JnLXN0cnVjdHVyZS10ZW1w bGF0ZS1hbGlzdCkKICAgICBUeXBlIGFueSBvZiB0aGVzZSBvbiBhbiBlbXB0eSBsaW5lLCBmb2xs b3dlZCBieSA8VEFCPgoKICAgICAtIDxzICAgIytiZWdpbl9zcmMgLyAjK2VuZF9zcmMKICAgICAt IDxlICAgIytiZWdpbl9leGFtcGxlICAvIytlbmRfZXhhbXBsZQogICAgIC0gPHEgICAjK2JlZ2lu X3F1b3RlICAvICAjK2VuZF9xdW90ZQogICAgIC0gPHYgICAjK2JlZ2luX3ZlcnNlICAvICAjK2Vu ZF92ZXJzZQogICAgIC0gPGwgICAjK2JlZ2luX2xhdGV4ICAvICAgIytlbmRfbGF0ZXgKICAgICAt IDxMICAgIytsYXRleDogIAogIC0gSFRNTCBFeHBvcnQ6IAogICAgIC0gPGggICAjK2JlZ2luX2h0 bWwgIC8gICMrZW5kX2h0bWwKICAgICAtIDxIICAgIytodG1sOiAKICAtICAKICAgICAtIDxhICAg IytiZWdpbl9hc2NpaSAgLyAgIytlbmRfYXNjaWkiCiAgICAgLSA8QSAgICMrYXNjaWk6CiAgICAg LSA8aSAgICMraW5jbHVkZSAlZmlsZSAKKiogQ29tbW9ubHkgdXNlZCBzZXR1cHMgZm9yIExhVGVY IGV4cG9ydAogICBTZXQgVGl0bGU6ICAgICAgIAogICAgICAgIytUSVRMRTogVGhpcyBpcyB0aGUg dGl0bGUgb2YgdGhlIGRvY3VtZW50IAogICAgICAgKEZvciBzdWJ0cmVlcywgcHJvcGVydHkgRVhQ T1JUX1RJVExFIHRha2VzIHByZWNlZGVuY2UpIAogICBOdW1iZXIgb2YgTGV2ZWxzIGFzIHNlY3Rp b25zOiAgICAgICAgICAgICAgICAgICAgIytPUFRJT05TOiBIOjQKICAgVE9DIGV4YW1wbGVzICAg ICAgICAjK09QVElPTlM6IHRvYzoyICAsIG9yICAgIytPUFRJT05TOiB0b2M6bmlsICAgIAogICBJ bmNsdWRlIGZpbGVzOiAgW1tpbmZvOm9yZzpJbmNsdWRlJTIwZmlsZXNdW0xpbmsgdG8gaW5mbyBk b2NzXV0gICAgICAKCioqIEV4cG9ydCBPcHRpb25zICAgICAgICAgQy1jIEMtZSB0ICAgICAKICAg IGBDLWMgQy1lIHQnICAgSW5zZXJ0IHRlbXBsYXRlIHdpdGggZXhwb3J0IG9wdGlvbnMsIHNlZSBl eGFtcGxlIGJlbG93LgoKICAgICAjK1RJVExFOiAgICAgdGhlIHRpdGxlIHRvIGJlIHNob3duIChk ZWZhdWx0IGlzIHRoZSBidWZmZXIgbmFtZSkKICAgICAjK0FVVEhPUjogICAgdGhlIGF1dGhvciAo ZGVmYXVsdCB0YWtlbiBmcm9tIGB1c2VyLWZ1bGwtbmFtZScpCiAgICAgIytEQVRFOiAgICAgIEEg ZGF0ZSwgZml4ZWQsIG9mIGEgZm9ybWF0IHN0cmluZyBmb3IgYGZvcm1hdC10aW1lLXN0cmluZycK ICAgICAjK0VNQUlMOiAgICAgaGlzL2hlciBlbWFpbCBhZGRyZXNzIChkZWZhdWx0IGZyb20gYHVz ZXItbWFpbC1hZGRyZXNzJykKICAgICAjK0xBTkdVQUdFOiAgbGFuZ3VhZ2UgZm9yIEhUTUwsIGUu Zy4gYGVuJyAoYG9yZy1leHBvcnQtZGVmYXVsdC1sYW5ndWFnZScpCiAgICAgIytURVhUOiAgICAg IFNvbWUgZGVzY3JpcHRpdmUgdGV4dCB0byBiZSBpbnNlcnRlZCBhdCB0aGUgYmVnaW5uaW5nLgog ICAgICMrVEVYVDogICAgICBTZXZlcmFsIGxpbmVzIG1heSBiZSBnaXZlbi4KICAgICAjK09QVElP TlM6ICAgSDoyIG51bTp0IHRvYzp0IFxuOm5pbCBAOnQgOjp0IHw6dCBeOnQgZjp0IFRlWDp0IC4u LgogICAgICMrTElOS19VUDogICB0aGUgYGB1cCcnIGxpbmsgb2YgYW4gZXhwb3J0ZWQgcGFnZQog ICAgICMrTElOS19IT01FOiB0aGUgYGBob21lJycgbGluayBvZiBhbiBleHBvcnRlZCBwYWdlCiAg ICAgIytFWFBPUlRfU0VMRUNUX1RBR1M6ICAgVGFncyB0aGF0IHNlbGVjdCBhIHRyZWUgZm9yIGV4 cG9ydAogICAgICMrRVhQT1JUX0VYQ0xVREVfVEFHUzogIFRhZ3MgdGhhdCBleGNsdWRlIGEgdHJl ZSBmcm9tIGV4cG9ydAogICAgICMrQVRUUl9MYVRlWDogIEF0dHJpYnV0ZXMgKHRibCwgZmlndXJl KSBleGFtcGxlOiAnYWxpZ249cnJscHsyY219bHJsJwogICAgICMrQVRUUl9IVE1MOiAgIEF0dHJp YnV0ZXMgCiAgICAgIytMYVRlWF9IRUFERVI6IDxhbnkgb3B0b2luIGZyb20gcHJlYW1ibGU+CgoK ICAgIFRoZSBPUFRJT05TIGxpbmUgaXMgYSBjb21wYWN0KDEpIGZvcm0gdG8gc3BlY2lmeSBleHBv cnQgc2V0dGluZ3MuICBIZXJlCiAgICB5b3UgY2FuOiAKICAgICAgSDogICAgICAgICBzZXQgdGhl IG51bWJlciBvZiBoZWFkbGluZSBsZXZlbHMgZm9yIGV4cG9ydAogICAgICBudW06ICAgICAgIHR1 cm4gb24vb2ZmIHNlY3Rpb24tbnVtYmVycwogICAgICB0b2M6ICAgICAgIHR1cm4gb24vb2ZmIHRh YmxlIG9mIGNvbnRlbnRzLCBvciBzZXQgbGV2ZWwgbGltaXQgKGludGVnZXIpCiAgICAgIFxuOiAg ICAgICAgdHVybiBvbi9vZmYgbGluZS1icmVhay1wcmVzZXJ2YXRpb24KICAgICAgQDogICAgICAg ICB0dXJuIG9uL29mZiBxdW90ZWQgSFRNTCB0YWdzCiAgICAgIDo6ICAgICAgICAgdHVybiBvbi9v ZmYgZml4ZWQtd2lkdGggc2VjdGlvbnMKICAgICAgfDogICAgICAgICB0dXJuIG9uL29mZiB0YWJs ZXMKICAgICAgXjogICAgICAgICB0dXJuIG9uL29mZiBUZVgtbGlrZSBzeW50YXggZm9yIHN1Yi0g YW5kIHN1cGVyc2NyaXB0cy4gIElmCiAgICAgICAgICAgICAgICAgeW91IHdyaXRlICJeOnt9Iiwg YGFfe2J9JyB3aWxsIGJlIGludGVycHJldGVkLCBidXQKICAgICAgICAgICAgICAgICB0aGUgc2lt cGxlIGBhX2InIHdpbGwgYmUgbGVmdCBhcyBpdCBpcy4KICAgICAgLTogICAgICAgICB0dXJuIG9u L29mZiBjb252ZXJzaW9uIG9mIHNwZWNpYWwgc3RyaW5ncy4KICAgICAgZjogICAgICAgICB0dXJu IG9uL29mZiBmb290bm90ZXMgbGlrZSB0aGlzWzFdLgogICAgICB0b2RvOiAgICAgIHR1cm4gb24v b2ZmIGluY2x1c2lvbiBvZiBUT0RPIGtleXdvcmRzIGludG8gZXhwb3J0ZWQgdGV4dAogICAgICBw cmk6ICAgICAgIHR1cm4gb24vb2ZmIHByaW9yaXR5IGNvb2tpZXMKICAgICAgdGFnczogICAgICB0 dXJuIG9uL29mZiBpbmNsdXNpb24gb2YgdGFncywgbWF5IGFsc28gYmUgYG5vdC1pbi10b2MnCiAg ICAgIDw6ICAgICAgICAgdHVybiBvbi9vZmYgaW5jbHVzaW9uIG9mIGFueSB0aW1lL2RhdGUgc3Rh bXBzIGxpa2UgREVBRExJTkVTCiAgICAgICo6ICAgICAgICAgdHVybiBvbi9vZmYgZW1waGFzaXpl ZCB0ZXh0IChib2xkLCBpdGFsaWMsIHVuZGVybGluZWQpCiAgICAgIFRlWDogICAgICAgdHVybiBv bi9vZmYgc2ltcGxlIFRlWCBtYWNyb3MgaW4gcGxhaW4gdGV4dAogICAgICBMYVRlWDogICAgIHR1 cm4gb24vb2ZmIExhVGVYIGZyYWdtZW50cwogICAgICBza2lwOiAgICAgIHR1cm4gb24vb2ZmIHNr aXBwaW5nIHRoZSB0ZXh0IGJlZm9yZSB0aGUgZmlyc3QgaGVhZGluZwogICAgICBhdXRob3I6ICAg IHR1cm4gb24vb2ZmIGluY2x1c2lvbiBvZiBhdXRob3IgbmFtZS9lbWFpbCBpbnRvIGV4cG9ydGVk IGZpbGUKICAgICAgY3JlYXRvcjogICB0dXJuIG9uL29mZiBpbmNsdXNpb24gb2YgY3JlYXRvciBp bmZvIGludG8gZXhwb3J0ZWQgZmlsZQogICAgICB0aW1lc3RhbXA6IHR1cm4gb24vb2ZmIGluY2x1 c2lvbiBjcmVhdGlvbiB0aW1lIGludG8gZXhwb3J0ZWQgZmlsZQogICAgICBkOiAgICAgICAgIHR1 cm4gb24vb2ZmIGluY2x1c2lvbiBvZiBkcmF3ZXJzCgogICAgIFRoZXNlIG9wdGlvbnMgdGFrZSBl ZmZlY3QgaW4gYm90aCB0aGUgSFRNTCBhbmQgTGFUZVggZXhwb3J0LCBleGNlcHQKICAgICBmb3Ig YFRlWCcgYW5kIGBMYVRlWCcsIHdoaWNoIGFyZSByZXNwZWN0aXZlbHkgYHQnIGFuZCBgbmlsJyBm b3IgdGhlIAogICAgIExhVGVYIGV4cG9ydC4KCiAgICAgV2hlbiBleHBvcnRpbmcgb25seSBhIHNp bmdsZSBzdWJ0cmVlIGJ5IHNlbGVjdGluZyBpdCB3aXRoIGBDLWMgQCcKICAgICBiZWZvcmUgY2Fs bGluZyBhbiBleHBvcnQgY29tbWFuZCwgdGhlIHN1YnRyZWUgY2FuIG92ZXJydWxlIHNvbWUgb2YK ICAgICB0aGUgZmlsZSdzIGV4cG9ydCBzZXR0aW5ncyB3aXRoIHByb3BlcnRpZXMgYEVYUE9SVF9G SUxFX05BTUUnLAogICAgIGBFWFBPUlRfVElUTEUnLCBgRVhQT1JUX1RFWFQnLCBhbmQgYEVYUE9S VF9PUFRJT05TJy4KCioqIENvbW1lbnRzOiBUZXh0IG5vdCBiZWluZyBleHBvcnRlZCAKCiAgICAg VGV4dCBiZWZvcmUgdGhlIGZpcnN0IGhlYWRsaW5lIGlzIG5vdCBjb25zaWRlcmVkIHBhcnQgb2Yg dGhlCiAgICAgZG9jdW1lbnQgYW5kIGlzIHRoZXJlZm9yZSBuZXZlciBleHBvcnRlZC4gCgogICAg IExpbmVzIHN0YXJ0aW5nIHdpdGggICAjICBhcmUgY29tbWVudHMgYW5kIGFyZSBub3QgZXhwb3J0 ZWQuIAoKICAgICBTdWJ0cmVlcyB3aG9zZSBoZWFkZXIgc3RhcnRzIHdpdGggQ09NTUVOVCBhcmUg bmV2ZXIgZXhwb3J0ZWQuCgoKICAgICAgIHRvZ2dsZSBDT01NRU5UIGtleXdvcmQgb24gZW50cnkg ICAgICAgICAgICAgICBDLWMgOyAKCioqIER5bmFtaWMgQmxvY2tzIAoKICAgICAgIHVwZGF0ZSBk eW5hbWljIGJsb2NrIGF0IHBvaW50ICAgICAgICAgICAgICAgICBDLWMgQy14IEMtdSAKICAgICAg IHVwZGF0ZSBhbGwgZHluYW1pYyBibG9ja3MgICAgICAgICAgICAgICAgICAgICBDLXUgQy1jIEMt eCBDLXUgCgoqIFtbaW5mbzpvcmc6TGl0ZXJhbCUyMGV4YW1wbGVzXVtMaXRlcmFsIEV4YW1wbGVz XV0gKHNldCBpbiBtb25vc3BhY2UgP3doZW4gZXhwb3J0ZWQpCiAgIC0gRXhhbXBsZQogICAgICMr QkVHSU5fRVhBTVBMRQogICAgIDxFeGFtcGxlPgogICAgICMrRU5EX0VYQU1QTEUgICAgIAogICAt IFNvdXJjZSBjb2RlIAogICAgICAjK0JFR0lOX1NSQyA8bGFuZ3VhZ2U+IAogICAgICA8Y29kZT4K ICAgICAgIytFTkRfU1JDCiAgIC0gVG8gZWRpdCBpbiB0aGUgbWFqb3IgbW9kZSBmb3Igc3BlY2lm aWVkIGxhbmd1YWdlOiAKICAgICAgIC0gc3RhcnQgZWRpdGluZyAgICAgICAgICBcQy0nICAgb24g dGhlICMrQkVHSU4gbGluZQogICAgICAgLSBlbmQgZWRpdGluZyAgICAgICAgICAgIFxDLScgICAK CiAgICBTaG9ydGN1dDogT24gYW4gZW1wdHkgbGluZSwgaW5zZXJ0ICI8ZSIgYW5kIHRoZW4gdHlw ZSBUQUIuCiAgICBMaW5rIHRvIFtbKlNob3J0Y3V0cyUyMGZvciUyMHR5cGluZyUyMHN0cnVjdHVy ZXNdW3Nob3J0Y3V0c11dIGZvciBvdGhlciAidGVtcGxhdGVzIgoKKiBbW2luZm86b3JnOkRyYXdl cnNdW0RyYXdlcnNdXQoqKiBEcmF3ZXIgZXhhbXBsZQogICAgICoqIFRoaXMgaXMgYSBoZWFkbGlu ZQogICAgIFN0aWxsIG91dHNpZGUgdGhlIGRyYXdlcgogICAgIDpEUkFXRVJOQU1FOgogICAgICAg VGhpcyBpcyBpbnNpZGUgdGhlIGRyYXdlci4KICAgICA6RU5EOgogICAgIEFmdGVyIHRoZSBkcmF3 ZXIuCioqIE9yZy1kcmF3ZXJzIGNvbmZpZ3VyYXRpb24KICAgLSBjb25maWd1cmVkIHdpdGggdGhl IHZhcmlhYmxlIGBvcmctZHJhd2VycwogICAtIHBlciBmaWxlIGRyYXdlciBjb25maWd1cmF0aW9u OgogICAgYCMrRFJBV0VSUzogSElEREVOIFBST1BFUlRJRVMgUwoqIFtbaW5mbzpvcmc6Rm9vdG5v dGVzXVtGb290bm90ZXNdXSAoSW5mbyBNYW51YWw6ICBbW2luZm86b3JnOkZvb3Rub3Rlc11baW5m bzogRm9vdG5vdGVzXV0KKiogV3JpdGluZyBGb290bm90ZXMKKioqIFZhcmlhYmxlOiBvcmctZm9v dG5vdGUtZGVmaW5lLWlubGluZQogICAgLSBEZWZhdWx0IDo6IG5pbCAoZm9vdG5vdGVzIGluIHNw ZWNpYWwgc2VjdGlvbiBhdCBlbmQpCiAgICAtIEF2YWlsYWJsZSAqaW4tYnVmZmVyIHNldHRpbmdz KjoKICAgICAgLSAjK1NUQVJUVVA6IGZuaW5saW5lIAogICAgICAtICMrU1RBUlRVUDogbm9mbmlu bGluZQoqKiogRW50cnkgZm9yIEZvb3Rub3RlcwogICAgIC0gTnVtZXJpYzogICAgICAgICAgICAg ICAgICAgICAgWzFdCiAgICAgLSBOYW1lZCByZWZlcmVuY2U6ICAgICAgICAgICAgICBbZm46bmFt ZV0gCiAgICAgLSBEZWZpbml0aW9uICAgICAgICAgICAgICAgICAgICBbZm46OkRlZmluaXRpb24g aGVyZV0KICAgICAtIElubGluZSAgICAgICAgICAgICAgICAgICAgICAgIFtmbjpuYW1lOkRlZmlu aXRpb25dCiAgICAgLSBTZWNvbmRhcnksIGV0Yy4gcmVmZXJlbmNlcyAgICAgIFtmbjpuYW1lXSAo dG8gc2FtZSBkZWZpbml0aW9uKQoqKiAgQy1jIEMteCBmICAgIEZvb3Rub3RlIEFjdGlvbiBDb21t YW5kCiAgICAgIC0gSWYgY3Vyc29yIGlzIG9uIGEgZm9vdG5vdGUgcmVmZXJlbmNlLCBqdW1wIHRv IGRlZmluaXRpb24uIAogICAgIDQuIFJlaXRlcmF0aW5nLCBwZXJoYXBzOgoJMS4gICAgICAgLSBJ ZiBjdXJzb3IgaXMgYXQgYSBkZWZpbml0aW9uLCBqdW1wIHRvIHRoZSAoZmlyc3QpIHJlZmVyZW5j ZS4gCiAgICAgIC0gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgZm9vdG5vdGUuIAoKICAgICAgRGVw ZW5kaW5nIG9uIHRoZSB2YXJpYWJsZSBgb3JnLWZvb3Rub3RlLWRlZmluZS1pbmxpbmUnIAogICAg ICBkZWZpbml0aW9ucyBhcmUgcGxhY2VkIGxvY2FsbHksIG9yIGludG8gdGhlIG5lYXJlc3Qgb3V0 bGluZQogICAgICBzZWN0aW9uIHdpdGggaGVhZGluZyBgRm9vdG5vdGVzJy4gICBJZiBzdWNoIGEg c2VjdGlvbiBpcwogICAgICBub3QgZm91bmQgYWZ0ZXIgdGhlIHJlZmVyZW5jZSBwb2ludCwgb25l IHdpbGwgYmUgY3JlYXRlZCBhdCB0aGUgZW5kCiAgICAgIG9mIHRoZSBmaWxlLiAgV2hlbiB0aGlz IGNvbW1hbmQgaXMgY2FsbGVkIHdpdGggYSBwcmVmaXggYXJndW1lbnQsCiAgICAgIGEgbWVudSBv ZiBhZGRpdGlvbmFsIG9wdGlvbnMgaXMgb2ZmZXJlZDogCgogICAgICAtIFdpdGggcHJlZml4IGFy Z3VtZW50OiAgICAgICBDLXUgQy1jIEMteCBmCgogICAgICAgIHMgIFNvcnQgZm9vdG5vdGUgZGVm aW5pdGlvbnMgYnkgcmVmZXJlbmNlIHNlcXVlbmNlLiAKICAgICAgICBuICBOb3JtYWxpemUgZm9v dG5vdGVzLS0tY29sbGVjdCBkZWZpbml0aW9ucyBpbnRvIGEgc3BlY2lhbAogICAgICAgICAgIHNl Y3Rpb24gYW5kIG51bWJlciBpbiBzZXF1ZW5jZSAoaW5jbC4gaW5saW5lIGRlZmluaXRpb25zKQog ICAgICAgICAgICAtIFRoZSByZWZlcmVuY2VzIHdpbGwgdGhlbiBhbHNvIGJlIG51bWJlcnMuIAog ICAgICAgICAgICAgIE1lYW50IGFzIHRoZSBmaW5hbCBzdGVwIGJlZm9yZSBmaW5pc2hpbmcgYQog ICAgICAgICAgICAgIGRvY3VtZW50IChlLmcuIHNlbmRpbmcgb2ZmIGFuIGVtYWlsKS4gIAogICAg ICAgICAgICAtIEV4cG9ydGVycyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIAogICAgICAgICAgICAt IHNvIGNvdWxkIHNvbWV0aGluZyBsaWtlIGBtZXNzYWdlLXNlbmQtaG9vaycKICAgICAgICBkICBE ZWxldGUgdGhlIGZvb3Rub3RlIGF0IHBvaW50LCBhbmQgYWxsIHJlZmVyZW5jZXMgdG8gaXQuIAoK KiogICBDLWMgQy1jIAogICAgLSBPbiBmb290bm90ZSByZWZlcmVuY2UsIGp1bXAgdG8gZGVmaW5p dGlvbgogICAgLSBPbiBkZWZpbml0aW9uLCBqdW1wIGJhY2sgdG8gdGhlIHJlZmVyZW5jZS4gCiAg ICAtIEMtdSBDLWMgQy1jOiBCb3RoIGxvY2F0aW9ucyBvZmZlciBtZW51IG9mIGBDLXUgQy1jIEMt eCBmJyAgCgoqKiAgIFRvIHVzZSBmb290bm90ZXMgb3V0c2lkZSBPcmctbW9kZSAKICAgICAgIFNl dCAgb3JnLWZvb3Rub3RlLWFjdGlvbiB0byBhIGdsb2JhbCBrZXkgbGlrZSBDLWMgZgoKKiBbW2ln bmZvOm9yZzpBdHRhY2htZW50c11bQXR0YWNobWVudHNdXSAgICAgICAgICAgICAgICAgICAgICBD LWMgQy1hIAogIC0gU2V0ICphdHRhY2htZW50IGRpcmVjdG9yeSogZm9yIGVudHJ5OiAgICBDLWMg Qy1hIHMKICAtIFNldCAqaW5oZXJpdGFuY2UqIGZvciBjaGlsZHJlbiAgICAgICAgICAgQy1jIEMt YSBpCiAgLSBBdHRhY2htZW50cyAqRGlzcGF0Y2hlciogQ29tbWFuZHM6ICAgICAgICAgQy1jIEMt YQogICAgICAgICpWQVJJQUJMRToqIG9yZy1hdHRhY2gtbWV0aG9kIG9yZy1hdHRhY2gtbWV0aG9k IGRldGVybWluZXMgaG93CiAgICAgICAgIGF0dGFjaG1lbnRzIGFyZSBoYW5kbGVkIChjb3BpZWQs IG1vdmVkLCBvciBoYXJkLWxpbmtlZC4pCiAgICBzZWNvbmRhcnkga2V5cyB0byBzZWxlY3QgY29t bWFuZHM6CiAgICAgYSAgICAgIFNlbGVjdCBmaWxlIGFuZCBtb3ZlIHRvIHRoZSB0YXNrJ3MgYXR0 YWNobWVudCBkaXJlY3RvcnkuIAogICAgICAgICAgICAgKHNlZSB2YXJpYWJsZSAnb3JnLWF0dGFj aC1tZXRob2QnKSAKICAgICBjL20vbCAgQXR0YWNoIGEgZmlsZSB1c2luZyB0aGUgY29weS9tb3Zl L2xpbmsgbWV0aG9kLiAKICAgICBuICAgICAgQ3JlYXRlIGEgbmV3IGF0dGFjaG1lbnQgYXMgYW4g RW1hY3MgYnVmZmVyLgogICAgIHogICAgICBTeW5jIGN1cnJlbnQgdGFzayB3aXRoIGl0cyBhdHRh Y2htZW50IGRpcmVjdG9yeSwgaW4gY2FzZQogICAgICAgICAgICAgeW91IGFkZGVkIGF0dGFjaG1l bnRzIHlvdXJzZWxmLiAKICAgICBvICAgICAgT3BlbiBjdXJyZW50IHRhc2sncyBhdHRhY2htZW50 LiBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSwgCiAgICAgICAgICAgICBwcm9tcHQgZm9yIGEg ZmlsZSBuYW1lIGZpcnN0LiAKICAgICBPICAgICAgTGlrZSAnbycsICBvcGVucyB0aGUgYXR0YWNo bWVudCwgZm9yY2luZyBvcGVuaW5nIHRoZSBmaWxlIGluIEVtYWNzLiAKICAgICBmICAgICAgT3Bl biB0aGUgY3VycmVudCB0YXNrJ3MgYXR0YWNobWVudCBkaXJlY3RvcnkuCiAgICAgRiAgICAgIExp a2UgJ2YtLCAgYnV0IG9wZW4gdGhlIGRpcmVjdG9yeSBpbiBFbWFjcyBkaXJlZC4KICAgICBkICAg ICAgU2VsZWN0IGFuZCBkZWxldGUgYSBzaW5nbGUgYXR0YWNobWVudC4KICAgICAgW0QgICAgRGVs ZXRlIGFsbCBvZiBhIHRhc2sncyBhdHRhY2htZW50cy4gQSBzYWZlciB3YXkgaXMgdG8gb3BlbiB0 aGUKICAgICAgICAgICAgIGRpcmVjdG9yeSBpbiBkaXJlZCBhbmQgZGVsZXRlIGZyb20gdGhlcmUu XSAgCgoKICAgICAKICAgICAgICAKCgojK1NUQVJUVVA6IGZvbGRlZAoKKiBSZW1lbWJlciBUZW1w bGF0ZXMKCiogU3ltYm9sIFRhYmxlOiBTZWUgIFtbaHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3Jn LXR1dG9yaWFscy9vcmctcHVibGlzaC1odG1sLXR1dG9yaWFsLnBocCNzZWMtOV1bVGhpcyBMaW5r XV0gb24gV29yawoKU3ltYm9sCU9yZwogCVxuYnNwCsKhCVxpZXhjbArCoglcY2VudArCowlccG91 bmQKwqQJXGN1cnJlbgrCpQlceWVuCsKmCVxicnZiYXIKfAlcdmVydArCpwlcc2VjdArCqAlcdW1s CsKpCVxjb3B5CsKqCVxvcmRmCsKrCVxsYXF1bwrCrAlcbm90CsKtCVxzaHkKwq4JXHJlZwrCrwlc bWFjcgrCsAlcZGVnCsKxCVxwbHVzbW4K4oqDMglcc3VwMgriioMzCVxzdXAzCsK0CVxhY3V0ZQrC tQlcbWljcm8KwrYJXHBhcmEKwrcJXG1pZGRvdApvCVxvZG90CioJXHN0YXIKwrgJXGNlZGlsCuKK gzEJXHN1cDEKwroJXG9yZG0KwrsJXHJhcXVvClxmcmFjMTQJXGZyYWMxNApcZnJhYzEyCVxmcmFj MTIKXGZyYWMzNAlcZnJhYzM0CsK/CVxpcXVlc3QKXEFncmF2CVxBZ3JhdgpcQWFjdXQJXEFhY3V0 CsOCCVxBY2lyYwpcQXRpbGQJXEF0aWxkCsOECVxBdW1sCsOFCVxBcmluZyBcQUEKw4YJXEFFbGln CsOHCVxDY2VkaWwKw4gJXEVncmF2ZQrDiQlcRWFjdXRlCsOKCVxFY2lyYwrDiwlcRXVtbArDjAlc SWdyYXZlCsONCVxJYWN1dGUKw44JXEljaXJjCsOPCVxJdW1sCsOQCVxFVEgKw5EJXE50aWxkZQrD kglcT2dyYXZlCsOTCVxPYWN1dGUKw5QJXE9jaXJjCsOVCVxPdGlsZGUKw5YJXE91bWwKw5cJXHRp bWVzCsOYCVxPc2xhc2gKw5kJXFVncmF2ZQrDmglcVWFjdXRlCsObCVxVY2lyYwrDnAlcVXVtbArD nQlcWWFjdXRlCsOeCVxUSE9STgrDnwlcc3psaWcKw6AJXGFncmF2ZQrDoQlcYWFjdXRlCsOiCVxh Y2lyYwrDowlcYXRpbGRlCsOkCVxhdW1sCsOlCVxhcmluZwrDpglcYWVsaWcKw6cJXGNjZWRpbArD qAlcZWdyYXZlCsOpCVxlYWN1dGUKw6oJXGVjaXJjCsOrCVxldW1sCsOsCVxpZ3JhdmUKw60JXGlh Y3V0ZQrDrglcaWNpcmMKw68JXGl1bWwKw7AJXGV0aArDsQlcbnRpbGRlCsOyCVxvZ3JhdmUKw7MJ XG9hY3V0ZQrDtAlcb2NpcmMKw7UJXG90aWxkZQrDtglcb3VtbArDtwlcZGl2aWRlCsO4CVxvc2xh c2gKw7kJXHVncmF2ZQrDuglcdWFjdXRlCsO7CVx1Y2lyYwrDvAlcdXVtbArDvQlceWFjdXRlCsO+ CVx0aG9ybgrDvwlceXVtbArGkglcZm5vZgrOkQlcQWxwaGEKzpIJXEJldGEKzpMJXEdhbW1hCs6U CVxEZWx0YQrOlQlcRXBzaWxvbgrOlglcWmV0YQrOlwlcRXRhCs6YCVxUaGV0YQrOmQlcSW90YQrO mglcS2FwcGEKzpsJXExhbWJkYQrOnAlcTXUKzp0JXE51Cs6eCVxYaQrOnwlcT21pY3JvbgrOoAlc UGkKzqEJXFJobwrOowlcU2lnbWEKzqQJXFRhdQrOpQlcVXBzaWxvbgrOpglcUGhpCs6nCVxDaGkK zqgJXFBzaQrOqQlcT21lZ2EKzrEJXGFscGhhCs6yCVxiZXRhCs6zCVxnYW1tYQrOtAlcZGVsdGEK zrUJXGVwc2lsb24KzrUJXHZhcmVwc2lsb24KzrYJXHpldGEKzrcJXGV0YQrOuAlcdGhldGEKzrkJ XGlvdGEKzroJXGthcHBhCs67CVxsYW1iZGEKzrwJXG11Cs69CVxudQrOvglceGkKzr8JXG9taWNy b24Kz4AJXHBpCs+BCVxyaG8Kz4IJXHNpZ21hZiBcdmFyc2lnbWEKz4MJXHNpZ21hCs+ECVx0YXUK z4UJXHVwc2lsb24Kz4YJXHBoaQrPhwlcY2hpCs+ICVxwc2kKz4kJXG9tZWdhCs+RCVx0aGV0YXN5 bSBcdmFydGhldGEKz5IJXHVwc2loCs+WCVxwaXYK4oCiCVxidWxsIFxidWxsZXQK4oCmCVxoZWxs aXAgXGRvdHMK4oCyCVxwcmltZQrigLMJXFByaW1lCuKAvglcb2xpbmUK4oGECVxmcmFzbArihJgJ XHdlaWVycArihJEJXGltYWdlCuKEnAlccmVhbArihKIJXHRyYWRlCuKEtQlcYWxlZnN5bQrihpAJ XGxhcnIK4oaRCVx1YXJyCuKGkglccmFycgrihpMJXGRhcnIK4oaUCVxoYXJyCuKGtQlcY3JhcnIK 4oeQCVxsQXJyCuKHkQlcdUFycgrih5IJXHJBcnIK4oeTCVxkQXJyCuKHlAlcaEFycgriiIAJXGZv cmFsbAriiIIJXHBhcnQK4oiDCVxleGlzdAriiIUJXGVtcHR5CuKIhwlcbmFibGEK4oiICVxpc2lu CuKIiQlcbm90aW4K4oiLCVxuaQriiI8JXHByb2QK4oiRCVxzdW0K4oiSCVxtaW51cwriiJcJXGxv d2FzdAriiJoJXHJhZGljCuKInQlccHJvcAriiJ4JXGluZmluCuKIoAlcYW5nCuKIpwlcYW5kCuKI qAlcb3IK4oipCVxjYXAK4oiqCVxjdXAK4oirCVxpbnQKXHRoZXJlNAlcdGhlcmU0CuKIvAlcc2lt CuKJhQlcY29uZwriiYgJXGFzeW1wCuKJoAlcbmUK4omhCVxlcXVpdgriiaQJXGxlCuKJpQlcZ2UK 4oqCCVxzdWIK4oqDCVxzdXAK4oqECVxuc3ViCuKKhglcc3ViZQriiocJXHN1cGUK4oqVCVxvcGx1 cwriipcJXG90aW1lcwriiqUJXHBlcnAK4ouFCVxzZG90CuKMiAlcbGNlaWwK4oyJCVxyY2VpbAri jIoJXGxmbG9vcgrijIsJXHJmbG9vcgrijKkJXGxhbmcK4oyqCVxyYW5nCuKXiglcbG96CuKZoAlc c3BhZGVzCuKZowlcY2x1YnMK4pmlCVxoZWFydHMK4pmmCVxkaWFtcwrimLoJXHNtaWxlCiIJXHF1 b3QKJglcYW1wCjwJXGx0Cj4JXGd0CsWSCVxPRWxpZwrFkwlcb2VsaWcKxaAJXFNjYXJvbgrFoQlc c2Nhcm9uCsW4CVxZdW1sCsuGCVxjaXJjCsucCVx0aWxkZQrigIIJXGVuc3AK4oCDCVxlbXNwCuKA iQlcdGhpbnNwCuKAjAlcenduagrigI0JXHp3agrigI4JXGxybQrigI8JXHJsbQrigJMJXG5kYXNo CuKAlAlcbWRhc2gK4oCYCVxsc3F1bwrigJkJXHJzcXVvCuKAmglcc2JxdW8K4oCcCVxsZHF1bwri gJ0JXHJkcXVvCuKAnglcYmRxdW8K4oCgCVxkYWdnZXIK4oChCVxEYWdnZXIK4oCwCVxwZXJtaWwK 4oC5CVxsc2FxdW8K4oC6CVxyc2FxdW8K4oKsCVxldXJvCmFyY2NvcwlcYXJjY29zCmFyY3Npbglc YXJjc2luCmFyY3RhbglcYXJjdGFuCmFyZwlcYXJnCmNvcwlcY29zCmNvc2gJXGNvc2gKY290CVxj b3QKY290aAlcY290aApjc2MJXGNzYwrCsAlcZGVnCmRldAlcZGV0CmRpbQlcZGltCmV4cAlcZXhw CmdjZAlcZ2NkCmhvbQlcaG9tCmluZglcaW5mCmtlcglca2VyCmxnCVxsZwpsaW0JXGxpbQpsaW1p bmYJXGxpbWluZgpsaW1zdXAJXGxpbXN1cApsbglcbG4KbG9nCVxsb2cKbWF4CVxtYXgKbWluCVxt aW4KUHIJXFByCnNlYwlcc2VjCnNpbglcc2luCnNpbmgJXHNpbmgK4oqDCVxzdXAKdGFuCVx0YW4K dGFuaAlcdGFuaAoKKiB1bm5lZWRlZD8gKG15IG93biwgbGFyZ2VseSBkdXBsaWNhdGVzIGZyb20g W1sqQ29tbW9ubHklMjB1c2VkJTIwc2V0dXBzJTIwZm9yJTIwTGFUZVglMjBleHBvcnRdW2Fib3Zl XV0pIAoqKiBDdXN0b21pemluZyBMYVRlWCBFeHBvcnQKICAgQ0xPU0VEOiBbMjAwOS0wMy0yMCBG cmkgMjE6MjFdCiAgICAtIFRhYnVsYXIgYWxpZ25tZW50cwogICAgICAtICMrQVRUUl9MYVRlWDog YWxpZ249cnJscHsyY219bHJsCiAgICAtIEltYWdlIChvcHRpb25zIGZvciAqaW5jbHVkZWdyYXBo aWNzKiBtYWNybykKICAgICAgLC0tLS0KICAgICAgfCAgIytDQVBUSU9OOiAgICBUaGUgYmxhY2st Ym9keSBlbWlzc2lvbiBvZiB0aGUgZGlzayBhcm91bmQgSFIgNDA0OQogICAgICB8ICAjK0xBQkVM OiAgICAgIGZpZzpTRUQtSFI0MDQ5CiAgICAgIHwgICMrQVRUUl9MYVRlWDogd2lkdGg9NWNtLGFu Z2xlPTkwCiAgICAgIHwgIFtbLi9pbWcvc2VkLWhyNDA0OS5wZGZdXQogICAgICBgLS0tLQogICAg LSBRdW90ZTogIAogICAgICAsLS0tLQogICAgICB8ICMrQkVHSU5fUVVPVEUgfAogICAgICB8IDxx dW90ZT4gICAgICAgfAogICAgICB8ICMrRU5EX1FVT1RFICAgfAogICAgICBgLS0tLQogICAgLSBK dXN0IHdyaXRlIHRoZSBMYVRlWCBjb2RlOgogICAgICAsLS0tLQogICAgICB8ICBcYmVnaW57Zmln dXJlfVshdHBiXQogICAgICB8ICBcY2VudGVybGluZXsKICAgICAgfCAgXGluY2x1ZGVncmFwaGlj c1tzY2FsZT0wLjNde2ltYWdlcy9CZWVyUGxvdH0KICAgICAgfCAgfVxjYXB0aW9ue1RoaXMgaXMg cGxvdCBsb29rcyBsaWtlIGEgYmVlci59XGxhYmVse2ZpZzpCZWVyfQogICAgICB8ICBcZW5ke2Zp Z3VyZX0KICAgICAgYC0tLS0KICAgIC0gU2VlIHRoaXMgYmxvZyBwb3N0OiBbW2h0dHA6Ly93d3cu bWZhc29sZC5uZXQvYmxvZy8yMDA5LzAyL3VzaW5nLWVtYWNzLW9yZy1tb2RlLXRvLWRyYWZ0LXBh cGVycy9dW1VzaW5nIEVtYWNzIE9yZy1Nb2RlIHRvIERyYWZ0IFBhcGVyc11dCgoKKiBCaWJ0ZXgg Y2l0YXRpb25zIEhPV1RPCioqIFNvbWUgbm90ZXMgb24gaG93IHRvIGluY29ycG9yYXRlIGJpYnRl eCBlbnRyaWVzIGluIG9yZyBmaWxlcwogIDEuIEJpYnRleCBkaXNjYXJkcyBhbnl0aGluZyBvdXRz aWRlIG9mIGFuIGVudHJ5IHNvIHlvdSBjb3VsZCBzeW1saW5rIHlvdXIgb3JnIBxsZSB0byBzb21l dGhpbmcKICB3aXRoIGEgYmliIGV4dGVuc2lvbiAoZS5nLiwgbm90ZXMub3JnIC0+IG5vdGVzLmJp YikgYW5kIHNpbXBseSBwb2ludCBsYXRleC9iaWJ0ZXggdG8gdGhhdCAcbGUuCgogIDIuIFlvdSBj b3VsZCBpbnN0cnVjdCBlbWFjcyB0byBlZGl0IGJpYiAcbGVzIHdpdGggb3JnbW9kZSBhbmQgdXNl IGJhYmVsIGFuZCBzb3VyY2UgYmxvY2tzIHRvCiAgZW50ZXIgaXRlbXMgKGFkZC10by1saXN0IGBh dXRvLW1vZGUtYWxpc3QgYCgQCiAgIC4KICAgKG9yZwogICB8YmliCiAgICkkESAuIG9yZy1tb2Rl KSkKCiAgIDMuIEFGQUlDVCwgcmVmdGV4IGlzIGJsaXNzZnVsbHkgaW5kaRtlcmVudCB0byBub24t YmlidGV4IGRhdGEsIHNvIHlvdSBjb3VsZCB1c2UgcmVmdGV4IHRvIHF1ZXJ5CiAgIHlvdXIgb3Jn IBxsZXMgZm9yIGNpdGF0aW9uIGtleXMuIFRoZW4sIHlvdSBjb3VsZCB1c2UgcmVmdGV4IHRvIGdl bmVyYXRlIGEgcHJvcGVyIGJpYiAcbGUgd2l0aAogICBhbGwgZW50cmllcyBjaXRlZCBpbiB5b3Vy IHBhcGUKKiogTWF0dCBMdW5kaW4ncyB3b3JrZmxvdyBmb3IgcmVzZWFyY2gKCiAgICBGV0lXLCBo ZXJlJ3MgbXkgd29ya2Zsb3c6CiAgICAKICAgIDEuIENsaXAgYSBiaWJ0ZXggY2l0YXRpb24gb3Ig dW5mb3JtYXR0ZWQgYmlibGlvZ3JhcGhpY2FsIGRhdGEgdXNpbmcKICAgICAgb3JnLWNhcHR1cmUg YW5kIGNvbmtlcm9yIG9yIGVtYWNzLiAoVGhpcyBnZW5lcmF0ZXMgYSB0aW1lc3RhbXAgYW5kIGEK ICAgICAgbGluayB0byB3aGVyZSBJIGZpcnN0IGZvdW5kIHRoZSByZWZlcmVuY2UgLS0tIHZlcnkg dXNlZnVsIGRhdGEgZm9yCiAgICAgIHJldmlld2luZyBvbmUncyBvd24gcmVzZWFyY2ggaGFiaXRz IGFuZCBzb3VyY2VzLikKICAgIDIuIERvd25sb2FkIHRoZSBwZGYsIGlmIHBvc3NpYmxlIChvciBt YWtlIGEgdG9kbyB0byBnZXQvcmVhZCBpdCBsYXRlcikuCiAgICAzLiBXaGlsZSBpbiB0aGUgY2Fw dHVyZSBidWZmZXIsIHVzZSBvcmctYXR0YWNoIHRvIG1vdmUgdGhlIHBkZiBxdWlja2x5CiAgICAg IGZyb20gfi9Eb3dubG9hZHMgdG8gdGhlIGF0dGFjaG1lbnRzIGRpcmVjdG9yeSAodGhpcyBpcyBt dWNoIGZhc3RlcgogICAgICB0aGFuIGl0IHNvdW5kcykuCiAgICA0LiBDcmVhdGUgb3IgY29ycmVj dCBhIGJpYnRleCBzb3VyY2UgYmxvY2sgd2l0aGluIHRoZSBvcmcgZW50cnkuCiAgICA1LiBNYWtl IGEgVE9ETyB0byByZWFkIHRoZSBwZGYuIDopCiAgICAKICAgIExhdGVyLCB3aGVuIEkgcmVhZCB0 aGUgZG9jdW1lbnQsIEkgcHJvb2ZyZWFkIHRoZSBiaWJ0ZXggZW50cnkgb25jZSBhZ2FpbgogICAg YW5kIGNhbGwgYSBmdW5jdGlvbiB0aGF0IG1vdmVzIGl0IHRvIGEgY2VudHJhbGl6ZWQgYmlidGV4 IGZpbGUsIGxlYXZpbmcKICAgIGEgbGluayBpbiBpdHMgcGxhY2UuIEFzIGEgcnVsZSwgYW55IGNp dGF0aW9uIHRoYXQgZ29lcyBpbnRvIG15IG9mZmljaWFsCiAgICBiaWJ0ZXggZmlsZSAqbXVzdCog YmUgY29ycmVjdCBhbmQgY29tcGxldGUuIFJlZnRleCwgYW5vdGhlciBvZiBDYXJzdGVuJ3MKICAg IGluZ2VuaW91cyBjcmVhdGlvbnMsIGlzIHZlcnkgaGFuZHkgZm9yIGNyZWF0aW5nIGxpbmtzIHRv IHRoZSBjaXRhdGlvbgogICAgd2hpbGUgdGFraW5nIG5vdGVzLgogICAgCiAgICBGb3IgbXkgb3du IHB1cnBvc2VzLCB0aGVyZSB3b3VsZCBiZSBsaXR0bGUgcG9pbnQgaW4gYXV0b21hdGluZyB0aGlz CiAgICBwcm9jZXNzLCBhcyBhbnkgcGRmIEkgZG93bmxvYWQgbmVlZHMgdG8gYmUgaW5zcGVjdGVk IG1hbnVhbGx5IGFuZCBhbnkKICAgIGJpYnRleCBlbnRyeSBJIGNsaXAgbmVlZHMgdG8gYmUgcHJv b2ZyZWFkIGFuZCB0d2Vha2VkLiBUaGUgcHJvY2VzcwogICAgaXRzZWxmIGZvcmNlcyBtZSB0byBj aGVjayBldmVyeSBjaXRhdGlvbiBmb3IgYWNjdXJhY3kuCioqIFVzaW5nIGJhYmVsIHRvIHRhbmds ZQoqKiogTWF0dCBMdW5kaW46IHVzaW5nIGJhYmVsIHdpdGggYmlidGV4CgogICAgIE1hdHQgTHVu ZGluIOKchgogICAgICB0byBtZSwgZW1hY3Mtb3JnbW9kZSwgU3RlcGhlbgogICAgCSAKCiAgICAg CiAgICAgWWVzLCB5b3UgY2FuIHVzZSBiYWJlbCdzIHRhbmdsaW5nIGZhY2lsaXRpZXMgdG8gZXh0 cmFjdCBiaWJ0ZXggZW50cmllcwogICAgIGVuY2xvc2VkIGluIHNvdXJjZSBibG9ja3MuCiAgICAg CiAgICAgIytiZWdpbl9zcmMgYmlidGV4IDp0YW5nbGUgaGlzdG9yeS5iaWIKICAgICAgQEluQ29s bGVjdGlvbntsZXZpMjAwMV9taWNyb2hpc3RvcnksCiAgICAgICAJYXV0aG9yID0gICAgICAge0xl dmksIEdpb3Zhbm5pfSwKICAgICAgIAl0aXRsZSA9ICAgICAgICB7T24gTWljcm9oaXN0b3J5fSwK ICAgICAgIAllZGl0b3IgPSAgICAgICB7UGV0ZXIgQnVya2V9LAogICAgICAgCWJvb2t0aXRsZSA9 ICAgIHtOZXcgUGVyc3BlY3RpdmVzIG9uIEhpc3RvcmljYWwgV3JpdGluZ30sCiAgICAgICAJYWRk cmVzcyA9ICAgICAge1VuaXZlcnNpdHkgUGFyaywgUEF9LAogICAgICAgCXB1Ymxpc2hlciA9ICAg IHtQZW5uIFN0YXRlIFByZXNzfSwKICAgICAgIAl5ZWFyID0gICAgICAgICAyMDAxLAogICAgICB9 CiAgICAgIytlbmRfc3JjCiAgICAgCiAgICAgQ2FsbGluZyBvcmctYmFiZWwtdGFuZ2xlLWZpbGUg d2lsbCBwdXQgdGhpcyBlbnRyeSBpbiB0aGUgZmlsZQogICAgIGhpc3RvcnkuYmliLgoKKioqKiog VXNpbmcgdGhlIG9yZyBkYXRhIGFzIHNvdXJjZXMgZm9yIHB1YmxpY2F0aW9uCiAgICAgIAogICAg ICBUaGVyZSBhcmUgYSBmZXcgb3RoZXIgcm91dGVzLgogICAgICAKICAgICAgMS4gQmlidGV4IGRp c2NhcmRzIGFueXRoaW5nIG91dHNpZGUgb2YgYW4gZW50cnkgc28geW91IGNvdWxkIHN5bWxpbmsK ICAgICAgIAl5b3VyIG9yZyBmaWxlIHRvIHNvbWV0aGluZyB3aXRoIGEgYmliIGV4dGVuc2lvbiAo ZS5nLiwgbm90ZXMub3JnIC0+CiAgICAgICAJbm90ZXMuYmliKSBhbmQgc2ltcGx5IHBvaW50IGxh dGV4L2JpYnRleCB0byB0aGF0IGZpbGUuCiAgICAgIAogICAgICAyLiBZb3UgY291bGQgaW5zdHJ1 Y3QgZW1hY3MgdG8gZWRpdCBiaWIgZmlsZXMgd2l0aCBvcmdtb2RlIGFuZCB1c2UgYmFiZWwKICAg ICAgIAlhbmQgc291cmNlIGJsb2NrcyB0byBlbnRlciBpdGVtcwogICAgICAgCShhZGQtdG8tbGlz dCAnYXV0by1tb2RlLWFsaXN0CiAgICAgICAgICAgICAgICAgICcoIlxcLlxcKG9yZ1xcfGJpYlxc KSQiIC4gb3JnLW1vZGUpKQogICAgICAKICAgICAgMy4gQUZBSUNULCByZWZ0ZXggaXMgYmxpc3Nm dWxseSBpbmRpZmZlcmVudCB0byBub24tYmlidGV4IGRhdGEsIHNvIHlvdQogICAgICAgCWNvdWxk IHVzZSByZWZ0ZXggdG8gcXVlcnkgeW91ciBvcmcgZmlsZXMgZm9yIGNpdGF0aW9uIGtleXMuIFRo ZW4sIHlvdQogICAgICAgCWNvdWxkIHVzZSByZWZ0ZXggdG8gZ2VuZXJhdGUgYSBwcm9wZXIgYmli IGZpbGUgd2l0aCBhbGwgZW50cmllcyBjaXRlZAogICAgICAgCWluIHlvdXIgcGFwZXIuCiAgICAg IAogICAgICBCZXN0LAogICAgICBNYXR0CgoqKiogRXJpYyBGcmFnYTogYW5zd2VyIGFib3V0IHRh bmdsaW5nIAoKICAgICBFcmljIFMgRnJhZ2Eg4pyGCiAgICAgIHRvIG1lLCBlbWFjcy1vcmdtb2Rl CiAgICAJIAogICAgIFdvdWxkIHRhbmdsaW5nIGRvIHdoYXQgeW91IHdhbnQ/ICBTZWVtcyB0byB3 b3JrIGZvciBtZToKCiMrQkVHSU5fRVhBTVBMRSAgICAgIAogICAgIC0tODwtLS0tLS0tLS0tLS0t LS1jdXQgaGVyZS0tLS0tLS0tLS0tLS0tLXN0YXJ0LS0tLS0tLS0tLS0tLT44LS0tCiAgICAgIyti YWJlbDogOnRhbmdsZSBoZW5zLmJpYgogICAgIAogICAgICogaGVhdCBleGNoYW5nZXIgbmV0d29y ayBzeW50aGVzaXMKICAgICAqKiogUmV3cml0aW5nIGdyYW1tYXIgZm9yIEhFTlMgd2l0aCBzcGxp dHRpbmcgKEZyYWdhLCAyMDA5KQogICAgICMrYmVnaW5fc3JjIGJpYgogICAgIEBhcnRpY2xle2Zy YWdhLTIwMDlhLAogICAgICAgICAgICB0aXRsZSA9IHtBIHJld3JpdGluZyBncmFtbWFyIGZvciBo ZWF0IGV4Y2hhbmdlciBuZXR3b3JrIHN0cnVjdHVyZSBldm9sdXRpb24gd2l0aCBzdHJlYW0gc3Bs aXR0aW5nfSwKICAgICAgICAgICAgdm9sdW1lID0gNDEsCiAgICAgICAgICAgIGlzc24gPSB7ezAz MDUtMjE1WH19LAogICAgICAgICAgICBkb2kgPSB7MTAuMTA4MC8wMzA1MjE1MDkwMzA3MDE1M30s CiAgICAgICAgICAgIG51bWJlciA9IDksCiAgICAgICAgICAgIGpvdXJuYWwgPSB7RW5naW5lZXJp bmcgT3B0aW1pemF0aW9ufSwKICAgICAgICAgICAgYXV0aG9yID0ge0VyaWMgUy4gRnJhZ2F9LAog ICAgICAgICAgICB5ZWFyID0gMjAwOSwKICAgICAgICAgICAgcGFnZXMgPSB7ODEzLTgzMX0KICAg ICB9CiAgICAgIytlbmRfc3JjCiAgICAgLS04PC0tLS0tLS0tLS0tLS0tLWN1dCBoZXJlLS0tLS0t LS0tLS0tLS0tZW5kLS0tLS0tLS0tLS0tLS0tPjgtLS0KIytFTkRfRVhBTVBMRSAgICAgCgogICAg IFB1dCB0aGlzIGluIGEgZmlsZSwgKnQub3JnKiBzYXksIGFuZCBoaXQgPUMtYyBDLXYgdD0gKD1v cmctYmFiZWwtdGFuZ2xlPSkKICAgICBhbmQgaXQgc2hvdWxkIGNyZWF0ZSA9aGVucy5iaWI9LiAg U29ycnkgZm9yIHRoZSBzZWxmLWNpdGF0aW9uIGhlcmUgOy0pCiAgICAgCiAgICAgWW91IGNvdWxk IGFsc28gcHV0IHRoZSBhY3R1YWwgdGFuZ2xlIGRlc3RpbmF0aW9uIG9uIGVhY2ggc3JjIGJsb2Nr LCBpbgogICAgIGNhc2UgeW91IHdhbnQgdG8gdGFuZ2xlIHRvIG1vcmUgdGhhbiBvbmUgZmlsZSBm cm9tIHRoZSBzYW1lIG9yZyBmaWxlLgogICAgIAogICAgICAtLQogICAgIDogRXJpYyBTIEZyYWdh IChHbnVQRzogMHhDODkxOTNEOEZGRkNGNjdEKSBpbiBFbWFjcyAyNC4wLjUwLjEKICAgICA6IHVz aW5nIE9yZy1tb2RlIHZlcnNpb24gNy41IChyZWxlYXNlXzcuNS4xMjguZ2E5ZTYpCgoqKiogTXkg cmVhY3Rpb24gKEkgZm91bmQgdGhpcyBhcyB0byBiZSBwZXJmZWN0aW9uKQoKICAgIEFsYW4gRS4g RGF2aXMg4pyGCiAgICAgdG8gb3JnLW1vZGUsIEVyaWMsIE1hdHQKCiAgIAkgCiAgICBJIGhhdmUg YmVlbiBlbmxpZ2h0ZW5lZC4gIFRoaXMgY2xvc2VzIGEgbG9vcCBmb3IgbXkgaGFuZGxpbmcgb2Yg bGl0ZXJhdHVyZS4KICAgIAogICAgVGhhbmsgeW91IGJvdGguCgoqIE9yZyB0YWJsZSB3aXRoIGxv bmcgbGluZXMgdmlzaWJpbGl0eSAgIEMtdSBDLXUgQy1jIEMtYCAgCgogICAgdGhpcyBpcyBhIGdv b2QgaWRlYSwgYW5kIGl0IGlzIG5vdyBpbXBsZW1lbnRlZC4KICAgIAogICAgIEMtdSBDLXUgQy1j IEMtYAogICAgCiAgICB3aGlsZSB0aGUgY3Vyc29yIGlzIGluIGEgdGFibGUgdHVybnMgb24gYSBz cGVjaWFsIG1vZGUgaW4KICAgIHdoaWNoIHRoZSBmaWVsZCBlZGl0b3Igd2luZG93IHdpbGwgZm9s bG93IHRoZSBjdXJzb3IgdGhyb3VnaAogICAgdGhlIHRhYmxlLiAgWW91IGNhbiB1c2UgdGhlIGVk aXRvciB3aW5kb3cgdG8gc2VlIHRoZSBmaWVsZAogICAgY29udGVudHMsIHlvdSBjYW4gc3dpdGNo IHRvIHRoZSBlZGl0b3Igd2luZG93LCBlZGl0IHRoZQogICAgZmllbGQgYW5kIHByZXNzIEMtYyBD LWMgdG8gdXBkYXRlIHRoZSBmaWVsZCBpbiB0aGUgdGFibGUuCiAgICAKICAgIFRoZSBtb2RlIGNh biBiZSB0dXJuZWQgb2ZmIHdoZW4gZXhlY3V0aW5nIHRoZSBjb21tYW5kCiAgICBhZ2FpbjogQy11 IEMtdSBDLWMgYAogICAgCiAgICBBbHNvLCBpZiB0aGUgY3Vyc29yIGxlYXZlcyB0aGUgdGFibGUs IHRoZSBmb2xsb3cgbW9kZQogICAgYXV0b21hdGljYWxseSB0dXJucyBpdHNlbGYgb2ZmLCB0byBh dm9pZCBzdXJwcmlzZXMgaW4gdGhlCiAgICB3aW5kb3cgc2V0dXAgd2hlbiB5b3UgZW50ZXIgYW5v dGhlciB0YWJsZS4gIElmIHlvdSBwcmVmZXIKICAgIHRvIGtlZXAgdGhlIG1vZGUgb24gYW5kIHN1 ZmZlciBmcm9tIHBvc3NpYmxlIHNpZGUgZWZmZWN0cywKICAgIHRha2UgYSBsb29rIGF0IHRoZSBu ZXcgdmFyaWFibGUKICAgIGBvcmctdGFibGUtZXhpdC1mb2xsb3ctZmllbGQtbW9kZS13aGVuLWxl YXZpbmctdGFibGUnLgo= --f46d043be05e768e6404b496b4d7--