Return-Path: Delivered-To: apmail-incubator-jspwiki-user-archive@minotaur.apache.org Received: (qmail 87843 invoked from network); 28 Mar 2011 20:20:59 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 28 Mar 2011 20:20:59 -0000 Received: (qmail 34952 invoked by uid 500); 28 Mar 2011 20:20:59 -0000 Delivered-To: apmail-incubator-jspwiki-user-archive@incubator.apache.org Received: (qmail 34924 invoked by uid 500); 28 Mar 2011 20:20:59 -0000 Mailing-List: contact jspwiki-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jspwiki-user@incubator.apache.org Delivered-To: mailing list jspwiki-user@incubator.apache.org Received: (qmail 34916 invoked by uid 99); 28 Mar 2011 20:20:59 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 Mar 2011 20:20:59 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=MIME_BASE64_BLANKS,NORMAL_HTTP_TO_IP,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of Kenneth.V.George@sprint.com designates 216.32.181.185 as permitted sender) Received: from [216.32.181.185] (HELO ch1outboundpool.messaging.microsoft.com) (216.32.181.185) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 Mar 2011 20:20:54 +0000 Received: from mail99-ch1-R.bigfish.com (216.32.181.171) by CH1EHSOBE002.bigfish.com (10.43.70.52) with Microsoft SMTP Server id 14.1.225.8; Mon, 28 Mar 2011 20:20:33 +0000 Received: from mail99-ch1 (localhost.localdomain [127.0.0.1]) by mail99-ch1-R.bigfish.com (Postfix) with ESMTP id 97C6021807C for ; Mon, 28 Mar 2011 20:20:33 +0000 (UTC) X-SpamScore: -35 X-BigFish: VS-35(z30c3kzbb2dKbb2cK3de5K936eK1be0L542N1432N604T1fa4L9371P166m9db4mzz1202hzz8275bh8275dh867bj2c36i2c37iz2fh2a8h668h63h) X-Spam-TCS-SCL: 2:0 X-Forefront-Antispam-Report: KIP:(null);UIP:(null);IPVD:NLI;H:plsasdm2.corp.sprint.com;RD:smtpls2.sprint.com;EFVD:NLI X-FB-SS: 0, Received: from mail99-ch1 (localhost.localdomain [127.0.0.1]) by mail99-ch1 (MessageSwitch) id 1301343630887955_12724; Mon, 28 Mar 2011 20:20:30 +0000 (UTC) Received: from CH1EHSMHS033.bigfish.com (snatpool1.int.messaging.microsoft.com [10.43.68.244]) by mail99-ch1.bigfish.com (Postfix) with ESMTP id C6E0614C8050 for ; Mon, 28 Mar 2011 20:20:30 +0000 (UTC) Received: from plsasdm2.corp.sprint.com (144.230.168.26) by CH1EHSMHS033.bigfish.com (10.43.70.33) with Microsoft SMTP Server (TLS) id 14.1.225.8; Mon, 28 Mar 2011 20:20:28 +0000 Received: from PDAWEH05.ad.sprint.com (PDAWEH05.corp.sprint.com [144.226.110.92]) by plsasdm2.corp.sprint.com (Sentrion-MTA-4.0.5/Sentrion-MTA-4.0.5) with ESMTP id p2SKKRfK025943 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for ; Mon, 28 Mar 2011 15:20:27 -0500 Received: from pdawm05a.ad.sprint.com ([fe80::1190:6649:9937:212a]) by PDAWEH05.ad.sprint.com ([2002:90e2:6e5c::90e2:6e5c]) with mapi id 14.01.0270.001; Mon, 28 Mar 2011 15:20:26 -0500 From: "George, Kenneth V [NTK]" To: "jspwiki-user@incubator.apache.org" Subject: RE: Profile Security NOT WORKING!!! Thread-Topic: Profile Security NOT WORKING!!! Thread-Index: AcvtYTq4IUJVwyGTQgypD7C8F82niwARO0sAAAoyPSD//7XDgIAAUKmQ//+5kACAAFMNsA== Date: Mon, 28 Mar 2011 20:20:26 +0000 Message-ID: <8D422FFA7868A9489E2D75FF766BD4B5059BCD@PDAWM05A.ad.sprint.com> References: <8D422FFA7868A9489E2D75FF766BD4B5059B8C@PDAWM05A.ad.sprint.com> <14277811.10.1301343387364.JavaMail.javamailuser@localhost> In-Reply-To: <14277811.10.1301343387364.JavaMail.javamailuser@localhost> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.122.53.28] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: sprint.com WWVzLCB0aGF0IGlzIHdoeSBJIHJlbW92ZWQgaXQgZnJvbSB0aGUgcG9saWN5IGZpbGUsIGJ1dCBJ IGRvbid0IHVuZGVyc3RhbmQgd2h5IEpTUFdpa2kgdGhpbmtzIHRoYXQgaXQgc2hvdWxkIGhhdmUg QUxMIGFjY2VzcyB0byBldmVyeSBzaW5nbGUgcGFnZS9yb2xlL2dyb3VwIGluIHRoZSBzeXN0ZW0g LSBldmVuIHdpdGggYSBmcmVzaCBpbnN0YWxsIHN0cmFpZ2h0IGZyb20gcmUtZG93bmxvYWRpbmcg dGhlIEpTUFdJS0kuV0FSIGZpbGUuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiBGbG9yaWFuIEhvbGVjemVrIFttYWlsdG86ZmxvcmlhbkBob2xlY3play5kZV0NClNlbnQ6IE1v bmRheSwgTWFyY2ggMjgsIDIwMTEgMzoxNyBQTQ0KVG86IGpzcHdpa2ktdXNlckBpbmN1YmF0b3Iu YXBhY2hlLm9yZw0KU3ViamVjdDogUmU6IFByb2ZpbGUgU2VjdXJpdHkgTk9UIFdPUktJTkchISEN Cg0KSGkgS2VubmV0aCwNCg0KeW91IGRlZmluaXRlbHkgc2hvdWxkIHJlYWQgdGhlIGRvY3VtZW50 YXRpb24sIGdldCBzdGFydGVkIGhlcmU6IGh0dHA6Ly9kb2MuanNwd2lraS5vcmcvMi40L3dpa2kv V2lraS5BZG1pbi5TZWN1cml0eQ0KDQoiVGhlICJBbGwiIHJvbGUgaXMgc3BlY2lhbDsgaXQgbWVh bnMgImFueWJvZHksIHJlZ2FyZGxlc3Mgb2YgYXV0aGVudGljYXRpb24gc3RhdHVzLiIiDQoNCkhU SA0KIEZsb3JpYW4NCg0KDQotLS0tLSBVcnNwcsO8bmdsaWNoZSBNYWlsIC0tLS0tDQpWb246ICJL ZW5uZXRoIFYgR2VvcmdlIFtOVEtdIiA8S2VubmV0aC5WLkdlb3JnZUBzcHJpbnQuY29tPg0KQW46 IGpzcHdpa2ktdXNlckBpbmN1YmF0b3IuYXBhY2hlLm9yZw0KR2VzZW5kZXQ6IE1vbnRhZywgMjgu IE3DpHJ6IDIwMTEgMjE6NTI6MjkNCkJldHJlZmY6IFJFOiBQcm9maWxlIFNlY3VyaXR5IE5PVCBX T1JLSU5HISEhDQoNClNvLCBsZXQgbWUgYXNrIGEgcXVlc3Rpb246DQoNCldoeSBpcyBpdCB3aGVu IEkgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgbGluZXMgZnJvbSB0aGUganNwd2lraS5wb2xpY3kgZmls ZSwgdGhhdCBJIHN0aWxsIGhhdmUgdGhlIEFMTCBSb2xlIHdpdGggZnVsbCBwZXJtaXNzaW9ucyB0 byB0aGUgcGFnZT8NCg0KZ3JhbnQgcHJpbmNpcGFsIGNvbS5lY3lyZC5qc3B3aWtpLmF1dGguYXV0 aG9yaXplLlJvbGUgIkFsbCIgew0KICAgIHBlcm1pc3Npb24gY29tLmVjeXJkLmpzcHdpa2kuYXV0 aC5wZXJtaXNzaW9ucy5QYWdlUGVybWlzc2lvbiAiKjoqIiwgInZpZXciOw0KICAgIHBlcm1pc3Np b24gY29tLmVjeXJkLmpzcHdpa2kuYXV0aC5wZXJtaXNzaW9ucy5XaWtpUGVybWlzc2lvbiAiKiIs ICJlZGl0UHJlZmVyZW5jZXMiOw0KICAgIHBlcm1pc3Npb24gY29tLmVjeXJkLmpzcHdpa2kuYXV0 aC5wZXJtaXNzaW9ucy5XaWtpUGVybWlzc2lvbiAiKiIsICJlZGl0UHJvZmlsZSI7DQogICAgcGVy bWlzc2lvbiBjb20uZWN5cmQuanNwd2lraS5hdXRoLnBlcm1pc3Npb25zLldpa2lQZXJtaXNzaW9u ICIqIiwgImxvZ2luIjsNCn07DQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206 IEhhcnJ5IE1ldHNrZSBbbWFpbHRvOmhhcnJ5Lm1ldHNrZUBnbWFpbC5jb21dDQpTZW50OiBNb25k YXksIE1hcmNoIDI4LCAyMDExIDI6NDAgUE0NClRvOiBqc3B3aWtpLXVzZXJAaW5jdWJhdG9yLmFw YWNoZS5vcmcNClN1YmplY3Q6IFJlOiBQcm9maWxlIFNlY3VyaXR5IE5PVCBXT1JLSU5HISEhDQoN Ckdlb3JnZSwNCg0KdGhlIGludGVudGlvbiBvZiBteSByZXBseSB3YXMgdGhhdCB5b3Ugd291bGQg aGF2ZSBhIGxvb2sgdGhlIG91dHB1dCBvZg0KU2VjdXJpdHlDb25maWcuanBzIHlvdXJzZWxmIGFu ZCBqdWRnZSBpZiBpdCBpcyB3aGF0IHlvdSBoYXZlIGNvbmZpZ3VyZWQgb3INCm5vdC4NClNpbXBs eSBkdW1waW5nIHRoZSAoZmFpcmx5IHVucmVhZGFibGUpIG91dHB1dCBvbiB0aGUgbGlzdCBpcyBu b3QgdGhlIGJlc3QNCndheSB0byBnZXQgc3VwcG9ydCBmcm9tIHZvbHVudGVlcnMuDQoNClNlZSBm b3IgZXhhbXBsZSA6IGh0dHA6Ly93d3cuY2F0Yi5vcmcvfmVzci9mYXFzL3NtYXJ0LXF1ZXN0aW9u cy5odG1sDQoNCmtpbmQgcmVnYXJkcywNCkhhcnJ5DQoNCg0KMjAxMS8zLzI4IEdlb3JnZSwgS2Vu bmV0aCBWIFtOVEtdIDxLZW5uZXRoLlYuR2VvcmdlQHNwcmludC5jb20+DQoNCj4gT2ssIGRvbmUg dGhhdCENCj4NCj4NCj4NCj4gSGVyZSBpcyB0aGUgb3V0cHV0Og0KPg0KPg0KPiBKU1BXaWtpIFNl Y3VyaXR5IENvbmZpZ3VyYXRpb24gVmVyaWZpZXINCj4gVGhpcyBwYWdlIGV4YW1pbmVzIEpTUFdp a2kncyBzZWN1cml0eSBjb25maWd1cmF0aW9uIGFuZCB0cmllcyB0byBkZXRlcm1pbmUNCj4gaWYg aXQgaXMgd29ya2luZyB0aGUgd2F5IGl0IHNob3VsZC4gQWx0aG91Z2ggSlNQV2lraSBjb21lcyBj b25maWd1cmVkIHdpdGgNCj4gc29tZSByZWFzb25hYmxlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBz ZXR0aW5ncyBvdXQgb2YgdGhlIGJveCwgaXQncyBub3QNCj4gYWx3YXlzIG9idmlvdXMgd2hhdCBz ZXR0aW5ncyB0byBjaGFuZ2UgaWYgeW91IG5lZWQgdG8gY3VzdG9taXplIHRoZQ0KPiBzZWN1cml0 eS4uLiBhbmQgc29vbmVyIG9yIGxhdGVyLCBqdXN0IGFib3V0IGV2ZXJ5b25lIGRvZXMuDQo+IFRo aXMgcGFnZSBpcyBkeW5hbWljYWxseSBnZW5lcmF0ZWQgYnkgSlNQV2lraS4gSXQgZXhhbWluZXMg dGhlDQo+IGF1dGhlbnRpY2F0aW9uLCBhdXRob3JpemF0aW9uIGFuZCBzZWN1cml0eSBwb2xpY3kg c2V0dGluZ3MuIFdoZW4gd2UgdGhpbmsNCj4gc29tZXRoaW5nIGxvb2tzIGZ1bm55LCB3ZSdsbCB0 cnkgdG8gY29tbXVuaWNhdGUgd2hhdCB0aGUgaXNzdWUgbWlnaHQgYmUsIGFuZA0KPiB3aWxsIG1h a2UgcmVjb21tZW5kYXRpb25zIG9uIGhvdyB0byBmaXggdGhlIHByb2JsZW0uDQo+IFBsZWFzZSBk ZWxldGUgdGhpcyBKU1Agd2hlbiB5b3UgYXJlIGZpbmlzaGVkIHRyb3VibGVzaG9vdGluZyB5b3Vy IHN5c3RlbS4NCj4gVGhpcyBkaWFnbm9zdGljIGRhdGEgcHJlc2VudGVkIG9uIHRoaXMgcGFnZSBk byBub3QgcmVwcmVzZW50IGEgc2VjdXJpdHkgcmlzaw0KPiB0byB5b3VyIHN5c3RlbSBwZXIgc2Us IGJ1dCB0aGV5IGRvIHByb3ZpZGUgYSBzaWduaWZpY2FudCBhbW91bnQgb2YNCj4gY29udGV4dHVh bCBpbmZvcm1hdGlvbiB0aGF0IGNvdWxkIGJlIHVzZWZ1bCB0byBhbiBhdHRhY2tlci4gVGhpcyBw YWdlIGlzDQo+IGN1cnJlbnRseSB1bmNvbnN0cmFpbmVkLCB3aGljaCBtZWFucyB0aGF0IGFueW9u ZSBjYW4gdmlldyBpdDogbmljZSBwZW9wbGUsDQo+IG1lYW4gcGVvcGxlIGFuZCBldmVyeW9uZSBp biBiZXR3ZWVuLiBZb3UgaGF2ZSBiZWVuIHdhcm5lZC4gWW91IGNhbiB0dXJuIGl0DQo+IG9mZiBi eSBzZXR0aW5nDQo+ICBqc3B3aWtpLXguc2VjdXJpdHljb25maWcuZW5hYmxlPWZhbHNlDQo+IGlu IHlvdXIganNwd2lraS5wcm9wZXJ0aWVzLg0KPiBBdXRoZW50aWNhdGlvbiBDb25maWd1cmF0aW9u DQo+IENvbnRhaW5lci1NYW5hZ2VkIEF1dGhlbnRpY2F0aW9uDQo+IENvbnRhaW5lci1tYW5hZ2Vk IGF1dGhlbnRpY2F0aW9uIGFwcGVhcnMgdG8gYmUgZGlzYWJsZWQsIGFjY29yZGluZyB0byB5b3Vy DQo+IFdFQi1JTkYvd2ViLnhtbCBmaWxlLg0KPiBKQUFTIExvZ2luIENvbmZpZ3VyYXRpb24NCj4g SlNQV2lraSB3aXJlcyB1cCBpdHMgb3duIEpBQVMgdG8gZGVmaW5lIHRoZSBhdXRoZW50aWNhdGlv biBwcm9jZXNzLCBhbmQNCj4gZG9lcyBub3QgcmVseSBvbiB0aGUgSlJFIGNvbmZpZ3VyYXRpb24u IEJ5IGRlZmF1bHQsIEpTUFdpa2kgY29uZmlndXJlcyBpdHMNCj4gSkFBUyBsb2dpbiBzdGFjayB0 byB1c2UgdGhlIFVzZXJEYXRhYmFzZUxvZ2luTW9kdWxlLiBZb3UgY2FuIHNwZWNpZnkgYQ0KPiBj dXN0b20gbG9naW4gbW9kdWxlIGJ5IHNldHRpbmcgdGhlIGpzcHdpa2kubG9naW5Nb2R1bGUuY2xh c3MgcHJvcGVydHkgaW4NCj4ganNwd2lraS5wcm9wZXJ0aWVzLg0KPiBUaGUgSkFBUyBsb2dpbiBj b25maWd1cmF0aW9uIGlzIGNvcnJlY3RseSBjb25maWd1cmVkIGlmIHRoZQ0KPiBqc3B3aWtpLmxv Z2luTW9kdWxlLmNsYXNzIHByb3BlcnR5IHNwZWNpZmllcyBhIGNsYXNzIHdlIGNhbiBmaW5kIG9u IHRoZQ0KPiBjbGFzc3BhdGguIFRoaXMgY2xhc3MgbXVzdCBhbHNvIGJlIGEgTG9naW5Nb2R1bGUg aW1wbGVtZW50YXRpb24uIFdlIHdpbGwNCj4gY2hlY2sgZm9yIGJvdGggY29uZGl0aW9ucy4NCj4g R29vZCBuZXdzOg0KPg0KPiAgKiAgIFRoZSBwcm9wZXJ0eSAnanNwd2lraS5sb2dpbk1vZHVsZS5j bGFzcycgc3BlY2lmaWVkIHRoZSBjbGFzcw0KPiAnY29tLmVjeXJkLmpzcHdpa2kuYXV0aC5sb2dp bi5Vc2VyRGF0YWJhc2VMb2dpbk1vZHVsZS4nDQo+ICAqICAgV2UgZm91bmQgdGhlIHRoZSBjbGFz cw0KPiAnY29tLmVjeXJkLmpzcHdpa2kuYXV0aC5sb2dpbi5Vc2VyRGF0YWJhc2VMb2dpbk1vZHVs ZScgb24gdGhlIGNsYXNzcGF0aCwgYW5kDQo+IGl0IGlzIGEgTG9naW5Nb2R1bGUgaW1wbGVtZW50 YXRpb24uIEdvb2QhDQo+IEF1dGhvcml6YXRpb24gQ29uZmlndXJhdGlvbg0KPiBDb250YWluZXIt TWFuYWdlZCBBdXRob3JpemF0aW9uDQo+IENvbnRhaW5lci1tYW5hZ2VkIGF1dGhvcml6YXRpb24g YXBwZWFycyB0byBiZSBkaXNhYmxlZCwgYWNjb3JkaW5nIHRvIHlvdXINCj4gV0VCLUlORi93ZWIu eG1sIGZpbGUuDQo+IFNlY3VyaXR5IFBvbGljeQ0KPiBKU1BXaWtpJ3MgYXV0aG9yaXplcyB1c2Vy IGFjdGlvbnMgYnkgY29uc3VsdGluZyBhIHN0YW5kYXJkIEphdmEgMiBzZWN1cml0eQ0KPiBwb2xp Y3kgZmlsZS4gQnkgZGVmYXVsdCwgSlNQV2lraSBpbnN0YWxscyBpdHMgbG9jYWwgc2VjdXJpdHkg cG9saWN5IGZpbGUgYXQNCj4gc3RhcnR1cCB0aW1lLiBUaGlzIHBvbGljeSBmaWxlIGlzIGluZGVw ZW5kZW50IG9mIHlvdXIgZ2xvYmFsLCBKVk0td2lkZQ0KPiBzZWN1cml0eSBwb2xpY3ksIGlmIHlv dSBoYXZlIG9uZS4gV2hlbiBjaGVja2luZyBmb3IgYXV0aG9yaXphdGlvbiwgSlNQV2lraQ0KPiBj b25zdWx0cyB0aGUgZ2xvYmFsIHBvbGljeSBmaXJzdCwgdGhlbiB0aGUgbG9jYWwgcG9saWN5Lg0K PiBMZXQncyB2YWxpZGF0ZSB0aGUgbG9jYWwgc2VjdXJpdHkgcG9saWN5IGZpbGUuIFRvIGRvIHRo aXMsIHdlIHBhcnNlIHRoZQ0KPiBzZWN1cml0eSBwb2xpY3kgYW5kIGV4YW1pbmUgZWFjaCBncmFu dCBibG9jay4gSWYgd2Ugc2VlIGEgcGVybWlzc2lvbiBlbnRyeQ0KPiB0aGF0IGlzIHNpZ25lZCwg d2UgdmVyaWZ5IHRoYXQgdGhlIGNlcnRpZmljYXRlIGFsaWFzIGV4aXN0cyBpbiBvdXIga2V5c3Rv cmUuDQo+IFRoZSBrZXlzdG9yZSBpdHNlbGYgbXVzdCBhbHNvIGV4aXN0IGluIHRoZSBmaWxlIHN5 c3RlbS4gQW5kIGFzIGFuIGFkZGl0aW9uYWwNCj4gY2hlY2ssIHdlIHdpbGwgdHJ5IHRvIGxvYWQg ZWFjaCBQZXJtaXNzaW9uIGNsYXNzIGludG8gbWVtb3J5IHRvIHZlcmlmeSB0aGF0DQo+IEpTUFdp a2kncyBjbGFzc2xvYWRlciBjYW4gZmluZCB0aGVtLg0KPiBHb29kIG5ld3M6DQo+DQo+ICAqICAg VGhlIHNlY3VyaXR5IHBvbGljeQ0KPiAnL29wdC90b21jYXQvYXBhY2hlLXRvbWNhdC03LjAuNi93 ZWJhcHBzL3dpa2kvV0VCLUlORi9qc3B3aWtpLnBvbGljeScNCj4gZXhpc3RzLg0KPiAgKiAgIFRo ZSBzZWN1cml0eSBwb2xpY3kgbG9va3MgZmluZS4NCj4gV2UgZm91bmQgc29tZSBwb3RlbnRpYWwg cHJvYmxlbXMgd2l0aCB5b3VyIGNvbmZpZ3VyYXRpb246IFBvbGljeSBmaWxlIGRvZXMNCj4gbm90 IGhhdmUgYSBrZXlzdG9yZS4uLiBhdCBsZWFzdCBub3Qgb25lIHRoYXQgd2UgY2FuIGxvY2F0ZS4g SWYgeW91ciBwb2xpY3kNCj4gZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSAnc2lnbmVkQnknIGJs b2NrcywgdGhpcyBpcyBwcm9iYWJseSBvay4NCj4gQWNjZXNzIENvbnRyb2wgVmFsaWRhdGlvbg0K PiBTZWN1cml0eSBQb2xpY3kgUmVzdHJpY3Rpb25zDQo+IE5vdyBjb21lcyB0aGUgcmVhbGx5IGZ1 biBwYXJ0LiBVc2luZyB0aGUgY3VycmVudCBzZWN1cml0eSBwb2xpY3ksIHdlIHdpbGwNCj4gdGVz dCB0aGUgUGFnZVBlcm1pc3Npb25zIGVhY2ggSlNQV2lraSByb2xlIHBvc3Nlc3NlcyBmb3IgYSBy YW5nZSBvZiBwYWdlcy4NCj4gVGhlIHJvbGVzIHdlIHdpbGwgdGVzdCBpbmNsdWRlIHRoZSBzdGFu ZGFyZCBKU1BXaWtpIHJvbGVzIChBdXRoZW50aWNhdGVkLA0KPiBBbGwsIGV0Yy4pIHBsdXMgYW55 IG90aGVycyB5b3UgbWF5IGhhdmUgbGlzdGVkIGluIHRoZSBzZWN1cml0eSBwb2xpY3kuIEluDQo+ IGFkZGl0aW9uIHRvIHRoZSBQYWdlUGVybWlzc2lvbnMsIHdlIHdpbGwgYWxzbyB0ZXN0IHRoZSBX aWtpUGVybWlzc2lvbnMuIFRoZQ0KPiByZXN1bHRzIG9mIHRoZXNlIHRlc3RzIHNob3VsZCB0ZWxs IHlvdSB3aGF0IGJlaGF2aW9ycyB5b3UgY2FuIGV4cGVjdCBiYXNlZA0KPiBvbiB5b3VyIHNlY3Vy aXR5IHBvbGljeSBmaWxlLiBJZiB3ZSBoYWQgcHJvYmxlbXMgZmluZGluZywgcGFyc2luZyBvcg0K PiB2ZXJpZnlpbmcgdGhlIHBvbGljeSBmaWxlLCB0aGVzZSB0ZXN0cyB3aWxsIGxpa2VseSBmYWls Lg0KPiBUaGUgY29sb3JzIGluIGVhY2ggY2VsbCBzaG93IHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0 LiAgR3JlZW4gIG1lYW5zDQo+IHN1Y2Nlc3M7ICByZWQgIG1lYW5zIGZhaWx1cmUuIEhvdmVyaW5n IG92ZXIgYSByb2xlIG5hbWUgb3IgaW5kaXZpZHVhbCBjZWxsDQo+IHdpbGwgZGlzcGxheSBtb3Jl IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSByb2xlIG9yIHRlc3QuDQo+IFBlcm1pc3Np b24NCj4NCj4gQWxsDQo+DQo+IEFub255bW91cw0KPg0KPiBBc3NlcnRlZA0KPg0KPiBBdXRoZW50 aWNhdGVkDQo+DQo+IEFkbWluDQo+DQo+IEFkbWluDQo+DQo+IHYNCj4NCj4gZQ0KPg0KPiBtDQo+ DQo+IHINCj4NCj4gZA0KPg0KPiB2DQo+DQo+IGUNCj4NCj4gbQ0KPg0KPiByDQo+DQo+IGQNCj4N Cj4gdg0KPg0KPiBlDQo+DQo+IG0NCj4NCj4gcg0KPg0KPiBkDQo+DQo+IHYNCj4NCj4gZQ0KPg0K PiBtDQo+DQo+IHINCj4NCj4gZA0KPg0KPiB2DQo+DQo+IGUNCj4NCj4gbQ0KPg0KPiByDQo+DQo+ IGQNCj4NCj4gdg0KPg0KPiBlDQo+DQo+IG0NCj4NCj4gcg0KPg0KPiBkDQo+DQo+IFBhZ2VQZXJt aXNzaW9uICJJTlNEIFByb2plY3RzIFdpa2k6TWFpbiINCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gUGFnZVBlcm1p c3Npb24gIklOU0QgUHJvamVjdHMgV2lraTpJbmRleCINCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gUGFnZVBlcm1p c3Npb24gIklOU0QgUHJvamVjdHMgV2lraTpHcm91cFRlc3QiDQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+IFBhZ2VQ ZXJtaXNzaW9uICJJTlNEIFByb2plY3RzIFdpa2k6R3JvdXBBZG1pbiINCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4g R3JvdXBQZXJtaXNzaW9uICJJTlNEIFByb2plY3RzIFdpa2k6QWRtaW4iDQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ IEdyb3VwUGVybWlzc2lvbiAiSU5TRCBQcm9qZWN0cyBXaWtpOlRlc3RHcm91cCINCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4N Cj4NCj4gR3JvdXBQZXJtaXNzaW9uICJJTlNEIFByb2plY3RzIFdpa2k6Rm9vIg0KPg0KPg0KPg0K Pg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0K Pg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0K Pg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0K Pg0KPiBXaWtpUGVybWlzc2lvbiAiSU5TRCBQcm9qZWN0cyBXaWtpIiwiY3JlYXRlR3JvdXBzIg0K Pg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPiBXaWtpUGVybWlzc2lvbiAi SU5TRCBQcm9qZWN0cyBXaWtpIiwiY3JlYXRlUGFnZXMiDQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+IFdpa2lQZXJtaXNzaW9uICJJTlNEIFByb2plY3RzIFdpa2kiLCJs b2dpbiINCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gV2lraVBlcm1p c3Npb24gIklOU0QgUHJvamVjdHMgV2lraSIsImVkaXRQcmVmZXJlbmNlcyINCj4NCj4NCj4NCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gV2lraVBlcm1pc3Npb24gIklOU0QgUHJvamVj dHMgV2lraSIsImVkaXRQcm9maWxlIg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0K Pg0KPg0KPiBBbGxQZXJtaXNzaW9uICJJTlNEIFByb2plY3RzIFdpa2kiDQo+DQo+DQo+DQo+DQo+ DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+IEltcG9ydGFudDogdGhlc2UgdGVzdHMgZG8gbm90 IHRha2UgaW50byBhY2NvdW50IGFueSBwYWdlLWxldmVsIGFjY2Vzcw0KPiBjb250cm9sIGxpc3Rz LiBQYWdlIEFDTHMsIGlmIHRoZXkgZXhpc3QsIHdpbGwgY29udHJhaW4gYWNjZXNzIGZ1cnRoZXIg dGhhbg0KPiB3aGF0IGlzIHNob3duIGluIHRoZSB0YWJsZS4NCj4gVXNlciBhbmQgR3JvdXAgRGF0 YWJhc2VzDQo+IFVzZXIgRGF0YWJhc2UgQ29uZmlndXJhdGlvbg0KPiBUaGUgdXNlciBkYXRhYmFz ZSBzdG9yZXMgdXNlciBwcm9maWxlcy4gSXQncyBwcmV0dHkgaW1wb3J0YW50IHRoYXQgaXQNCj4g ZnVuY3Rpb25zIHByb3Blcmx5LiBXZSB3aWxsIHRyeSB0byBkZXRlcm1pbmUgd2hhdCB5b3VyIGN1 cnJlbnQgVXNlckRhdGFiYXNlDQo+IGltcGxlbWVudGF0aW9uIGlzLCBiYXNlZCBvbiB0aGUgY3Vy cmVudCB2YWx1ZSBvZiB0aGUganNwd2lraS51c2VyZGF0YWJhc2UNCj4gcHJvcGVydHkgaW4geW91 ciBqc3B3aWtpLnByb3BlcnRpZXMgZmlsZS4gSW4gYWRkaXRpb24sIG9uY2Ugd2UgZXN0YWJsaXNo DQo+IHRoYXQgdGhlIFVzZXJEYXRhYmFzZSBoYXMgYmVlbiBpbml0aWFsaXplZCBwcm9wZXJseSwg d2Ugd2lsbCB0cnkgdG8gYWRkDQo+ICh0aGVuLCBkZWxldGUpIGEgcmFuZG9tIHRlc3QgdXNlci4g SWYgYWxsIG9mIHRoZXNlIHRoaW5ncyB3b3JrIHRoZXkgd2F5IHRoZXkNCj4gc2hvdWxkLCB0aGVu IHlvdSBzaG91bGQgaGF2ZSBubyBwcm9ibGVtcyB3aXRoIHVzZXIgc2VsZi1yZWdpc3RyYXRpb24u DQo+IEdvb2QgbmV3czoNCj4NCj4gICogICBVc2VyRGF0YWJhc2UgaXMgb2YgdHlwZSAnY29tLmVj eXJkLmpzcHdpa2kuYXV0aC51c2VyLlhNTFVzZXJEYXRhYmFzZScuDQo+IEl0IGFwcGVhcnMgdG8g YmUgaW5pdGlhbGl6ZWQgcHJvcGVybHkuDQo+ICAqICAgVGhlIHVzZXIgZGF0YWJhc2UgY29udGFp bnMgMTggdXNlcnMuDQo+ICAqICAgVGhlIHVzZXIgZGF0YWJhc2UgYWxsb3dzIG5ldyB1c2VycyB0 byBiZSBjcmVhdGVkLCBhcyBpdCBzaG91bGQuDQo+ICAqICAgVGhlIHVzZXIgZGF0YWJhc2UgYWxs b3dzIHVzZXJzIHRvIGJlIGRlbGV0ZWQsIGFzIGl0IHNob3VsZC4NCj4gICogICBUaGUgdXNlciBk YXRhYmFzZSBjb25maWd1cmF0aW9uIGxvb2tzIGZpbmUuDQo+IEdyb3VwIERhdGFiYXNlIENvbmZp Z3VyYXRpb24NCj4gVGhlIGdyb3VwIGRhdGFiYXNlIHN0b3JlcyB3aWtpIGdyb3Vwcy4gSXQncyBw cmV0dHkgaW1wb3J0YW50IHRoYXQgaXQNCj4gZnVuY3Rpb25zIHByb3Blcmx5LiBXZSB3aWxsIHRy eSB0byBkZXRlcm1pbmUgd2hhdCB5b3VyIGN1cnJlbnQgR3JvdXBEYXRhYmFzZQ0KPiBpbXBsZW1l bnRhdGlvbiBpcywgYmFzZWQgb24gdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGpzcHdpa2kuZ3Jv dXBkYXRhYmFzZQ0KPiBwcm9wZXJ0eSBpbiB5b3VyIGpzcHdpa2kucHJvcGVydGllcyBmaWxlLiBJ biBhZGRpdGlvbiwgb25jZSB3ZSBlc3RhYmxpc2gNCj4gdGhhdCB0aGUgR3JvdXBEYXRhYmFzZSBo YXMgYmVlbiBpbml0aWFsaXplZCBwcm9wZXJseSwgd2Ugd2lsbCB0cnkgdG8gYWRkDQo+ICh0aGVu LCBkZWxldGUpIGEgcmFuZG9tIHRlc3QgZ3JvdXAuIElmIGFsbCBvZiB0aGVzZSB0aGluZ3Mgd29y ayB0aGV5IHdheQ0KPiB0aGV5IHNob3VsZCwgdGhlbiB5b3Ugc2hvdWxkIGhhdmUgbm8gcHJvYmxl bXMgd2l0aCB3aWtpIGdyb3VwIGNyZWF0aW9uIGFuZA0KPiBlZGl0aW5nLg0KPiBHb29kIG5ld3M6 DQo+DQo+ICAqICAgR3JvdXBEYXRhYmFzZSBpcyBvZiB0eXBlDQo+ICdjb20uZWN5cmQuanNwd2lr aS5hdXRoLmF1dGhvcml6ZS5YTUxHcm91cERhdGFiYXNlJy4gSXQgYXBwZWFycyB0byBiZQ0KPiBp bml0aWFsaXplZCBwcm9wZXJseS4NCj4gICogICBUaGUgZ3JvdXAgZGF0YWJhc2UgY29udGFpbnMg NSBncm91cHMuDQo+ICAqICAgVGhlIGdyb3VwIGRhdGFiYXNlIGFsbG93cyBuZXcgZ3JvdXBzIHRv IGJlIGNyZWF0ZWQsIGFzIGl0IHNob3VsZC4NCj4gICogICBUaGUgZ3JvdXAgZGF0YWJhc2UgYWxs b3dzIGdyb3VwcyB0byBiZSBkZWxldGVkLCBhcyBpdCBzaG91bGQuDQo+ICAqICAgVGhlIGdyb3Vw IGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24gbG9va3MgZmluZS4NCj4NCj4NCj4NCj4NCj4NCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSGFycnkgTWV0c2tlIFttYWlsdG86aGFy cnkubWV0c2tlQGdtYWlsLmNvbV0NCj4gU2VudDogTW9uZGF5LCBNYXJjaCAyOCwgMjAxMSAyOjE0 IFBNDQo+IFRvOiBqc3B3aWtpLXVzZXJAaW5jdWJhdG9yLmFwYWNoZS5vcmcNCj4gU3ViamVjdDog UmU6IFByb2ZpbGUgU2VjdXJpdHkgTk9UIFdPUktJTkchISENCj4NCj4NCj4NCj4gR2VvcmdlLA0K Pg0KPg0KPg0KPiBzb21ldGhpbmcgbXVzdCBoYXZlIGJlZW4gY2hhbmdlZCwgYnV0IG1heWJlIHlv dSBjYW4gc3RhcnQgYnkgcG9pbnRpbmcgeW91cg0KPiBicm93c2VyIGF0IGFkbWluL1NlY3VyaXR5 Q29uZmlnLmpzcCwgdGhhdCB3aWxsIHRlbGwgeW91IGhvdyB5b3VyIHNlY3VyaXR5DQo+IHNldHRp bmdzIGFyZS4NCj4NCj4gWW91IHNob3VsZCBmaXJzdCBlbmFibGUgaXQgYnkgYWRkaW5nICJqc3B3 aWtpLXguc2VjdXJpdHljb25maWcuZW5hYmxlPXRydWUiDQo+DQo+IHRvIGpzcHdpa2kucHJvcGVy dGllcyBhbmQgcmVjeWNsZSBKU1BXaWtpLg0KPg0KPg0KPg0KPiByZWdhcmRzLA0KPg0KPiBIYXJy eQ0KPg0KPg0KPg0KPg0KPg0KPiAyMDExLzMvMjggR2VvcmdlLCBLZW5uZXRoIFYgW05US10gPEtl bm5ldGguVi5HZW9yZ2VAc3ByaW50LmNvbTxtYWlsdG86DQo+IEtlbm5ldGguVi5HZW9yZ2VAc3By aW50LmNvbT4+DQo+DQo+DQo+DQo+ID4gR29vZCBtb3JuaW5nLg0KPg0KPiA+DQo+DQo+ID4gT3Zl ciB0aGUgd2Vla2VuZCwgaXQgbG9va3MgYXMgaWYgbXkgcG9saWN5IGlzIG5vdyBiZWluZyBpZ25v cmVkIGFuZA0KPg0KPiA+IHVzZXJzIGNhbiBkbyBhbnl0aGluZyB0aGV5IHdhbnQgdG8gbXkgd2lr aS4gIEkgZm91bmQgdGhpcyBzdHJhbmdlLCBzbw0KPg0KPiA+IEkgZGVjaWRlZCB0byByZS1pbnN0 YWxsIHRoZSB3aWtpIHRvIGEgbG9jYWwgbWFjaGluZSBhbmQgZm91bmQgdGhhdCB0aGUNCj4NCj4g PiBqc3B3aWtpLnBvbGljeSBmaWxlIGlzIGJlaW5nIGxvYWRlZCAoZXZpZGVuY2VkIGluIHRoZSBq c3B3aWtpLmxvZw0KPg0KPiA+IGZpbGUpLCBidXQgdGhlIHNldHRpbmdzIEFSRSBiZWluZyBpZ25v cmVkLiAgSWYgSSBjb25uZWN0IHRvIHRoZSB3aWtpIEkNCj4NCj4gPiBpbnN0YWxsZWQgbG9jYWxs eSB3aXRoIHRoZSBtb2RpZmllZCBqc3B3aWtpLnBvbGljeSBmaWxlLCBJIGNhbiBzdGlsbA0KPg0K PiA+IGVkaXQgJiBjcmVhdGUgcGFnZXMgV0lUSE9VVCBoYXZpbmcgdG8gYmUgbG9nZ2VkLWluLg0K Pg0KPiA+DQo+DQo+ID4gSSBhbSBpbiBzZXJpb3VzIG5lZWQgb2YgYXNzaXN0YW5jZSB3aXRoIHRo aXMgYXMgdW5hdXRob3JpemVkIHVzZXJzIGNhbg0KPg0KPiA+IGdldCBhY2Nlc3MgdG8gc2Vuc2l0 aXZlIGRhdGEgYW5kIG1heSBmb3JjZSBtZSB0byBzaHV0LWRvd24gdGhlIHdpa2kNCj4gcGVybWFu ZW50bHkuDQo+DQo+ID4NCj4NCj4gPiBIZXJlIGlzIG15IHNlcnZlciBjb25maWd1cmF0aW9uOg0K Pg0KPiA+DQo+DQo+ID4gSkFWQSBWZXJzaW9uIDEuNi4wXzI0DQo+DQo+ID4gVG9tY2F0IDYuMA0K Pg0KPiA+IEpTUFdpa2kgMi44LjQNCj4NCj4gPg0KPg0KPiA+IEhlcmUgaXMgbXkganNwd2lraS5w b2xpY3kgZmlsZToNCj4NCj4gPg0KPg0KPiA+IC8vICRJZDoganNwd2lraS5wb2xpY3ksdiAxLjIz IDIwMDctMDctMDYgMTA6MzY6MzYgamFsa2FuZW4gRXhwICQgLy8gLy8NCj4NCj4gPiBUaGlzIGZp bGUgY29udGFpbnMgdGhlIGxvY2FsIHNlY3VyaXR5IHBvbGljeSBmb3IgSlNQV2lraS4NCj4NCj4g PiAvLyBJdCBwcm92aWRlcyB0aGUgcGVybWlzc2lvbnMgcnVsZXMgZm9yIHRoZSBKU1BXaWtpIC8v IGVudmlyb25tZW50LA0KPg0KPiA+IGFuZCBzaG91bGQgYmUgc3VpdGFibGUgZm9yIG1vc3QgcHVy cG9zZXMuDQo+DQo+ID4gLy8gSlNQV2lraSB3aWxsIGxvYWQgdGhpcyBwb2xpY3kgd2hlbiB0aGUg d2lraSB3ZWJhcHAgc3RhcnRzLg0KPg0KPiA+IC8vDQo+DQo+ID4gLy8gQXMgbm90ZWQsIHRoaXMg aXMgdGhlICdsb2NhbCcgcG9saWN5IGZvciB0aGlzIGluc3RhbmNlIG9mIEpTUFdpa2kuDQo+DQo+ ID4gLy8gWW91IGNhbiBhbHNvIHVzZSB0aGUgc3RhbmRhcmQgSmF2YSAyIHNlY3VyaXR5IHBvbGlj eSBtZWNoYW5pc21zIC8vDQo+DQo+ID4gdG8gY3JlYXRlIGEgY29uc29saWRhdGVkICdnbG9iYWwg cG9saWN5JyAoSlZNLXdpZGUpIHRoYXQgd2lsbCBiZQ0KPg0KPiA+IGNoZWNrZWQgZmlyc3QsIC8v IGJlZm9yZSB0aGlzIGxvY2FsIHBvbGljeS4gVGhpcyBpcyBpZGVhbCBmb3INCj4NCj4gPiBzaXR1 YXRpb25zIGluIHdoaWNoIHlvdSBhcmUgLy8gcnVubmluZyBtdWx0aXBsZSBpbnN0YW5jZXMgb2Yg SlNQV2lraQ0KPg0KPiA+IGluIHlvdXIgd2ViIGNvbnRhaW5lci4NCj4NCj4gPiAvLyBUbyBzZXQg YSBnbG9iYWwgc2VjdXJpdHkgcG9saWN5IGZvciBhbGwgcnVubmluZyBpbnN0YW5jZXMgb2YNCj4N Cj4gPiBKU1BXaWtpLCAvLyB5b3Ugd2lsbCBuZWVkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9m IHRoZSBnbG9iYWwgcG9saWN5DQo+DQo+ID4gYnkgc2V0dGluZyB0aGUgLy8gSlZNIHN5c3RlbSBw cm9wZXJ0eSAnamF2YS5zZWN1cml0eS5wb2xpY3knIGluIHRoZQ0KPg0KPiA+IGNvbW1hbmQgbGlu ZSBzY3JpcHQgLy8geW91IHVzZSB0byBzdGFydCB5b3VyIHdlYiBjb250YWluZXIuIFNlZSB0aGUN Cj4NCj4gPiBkb2N1bWVudGF0aW9uIC8vIHBhZ2VzIGF0DQo+DQo+ID4gaHR0cDovL2RvYy5qc3B3 aWtpLm9yZy8yLjQvd2lraS9JbnN0YWxsaW5nSlNQV2lraS4gSWYgeW91IC8vIGRvbid0DQo+DQo+ ID4ga25vdyB3aGF0IHRoaXMgbWVhbnMsIGRvbid0IHdvcnJ5IGFib3V0IGl0Lg0KPg0KPiA+IC8v DQo+DQo+ID4gLy8gQWxzbywgaWYgeW91IGFyZSBydW5uaW5nIEpTUFdpa2kgd2l0aCBhIHNlY3Vy aXR5IHBvbGljeSwgeW91IHdpbGwNCj4NCj4gPiBwcm9iYWJseSAvLyB3YW50IHRvIGNvcHkgdGhl IGNvbnRlbnRzIG9mIHRoZSBmaWxlDQo+DQo+ID4ganNwd2lraS1jb250YWluZXIucG9saWN5IGlu dG8geW91ciAvLyBjb250YWluZXIncyBwb2xpY3kuIFNlZSB0aGF0DQo+DQo+ID4gZmlsZSBmb3Ig bW9yZSBkZXRhaWxzLg0KPg0KPiA+IC8vDQo+DQo+ID4gLy8gLS0tLS0tIEVWRVJZVEhJTkcgVEhB VCBGT0xMT1dTIElTIFRIRSAnTE9DQUwnIFBPTElDWSBGT1IgWU9VUiBXSUtJDQo+DQo+ID4gLS0t LS0tDQo+DQo+ID4NCj4NCj4gPiAvLyBUaGUgZmlyc3QgcG9saWN5IGJsb2NrIGdyYW50cyBwcml2 aWxlZ2VzIHRoYXQgYWxsIHVzZXJzIG5lZWQsDQo+DQo+ID4gcmVnYXJkbGVzcyBvZiAvLyB0aGUg cm9sZXMgb3IgZ3JvdXBzIHRoZXkgYmVsb25nIHRvLiBFdmVyeW9uZSBjYW4NCj4NCj4gPiByZWdp c3RlciB3aXRoIHRoZSB3aWtpIGFuZCAvLyBsb2cgaW4uIEV2ZXJ5b25lIGNhbiBlZGl0IHRoZWly IHByb2ZpbGUNCj4NCj4gPiBhZnRlciB0aGV5IGF1dGhlbnRpY2F0ZS4NCj4NCj4gPiAvLyBFdmVy eW9uZSBjYW4gYWxzbyB2aWV3IGFsbCB3aWtpIHBhZ2VzIHVubGVzcyBvdGhlcndpc2UgcHJvdGVj dGVkIGJ5DQo+DQo+ID4gYW4gQUNMLg0KPg0KPiA+IC8vIElmIHRoYXQgc2VlbXMgdG9vIGxvb3Nl IGZvciB5b3VyIG5lZWRzLCB5b3UgY2FuIHJlc3RyaWN0DQo+DQo+ID4gcGFnZS12aWV3aW5nIC8v IHByaXZpbGVnZXMgYnkgbW92aW5nIHRoZSBQYWdlUGVybWlzc2lvbiAndmlldycgZ3JhbnQNCj4N Cj4gPiB0byBvbmUgb2YgdGhlIG90aGVyIGJsb2Nrcy4NCj4NCj4gPg0KPg0KPiA+IC8vZ3JhbnQg cHJpbmNpcGFsIGNvbS5lY3lyZC5qc3B3aWtpLmF1dGguYXV0aG9yaXplLlJvbGUgIkFsbCIgew0K Pg0KPiA+IC8vICAgIHBlcm1pc3Npb24gY29tLmVjeXJkLmpzcHdpa2kuYXV0aC5wZXJtaXNzaW9u cy5QYWdlUGVybWlzc2lvbiAiKjoqIiwNCj4NCj4gPiAidmlldyI7DQo+DQo+ID4gLy8gICAgcGVy bWlzc2lvbiBjb20uZWN5cmQuanNwd2lraS5hdXRoLnBlcm1pc3Npb25zLldpa2lQZXJtaXNzaW9u ICIqIiwNCj4NCj4gPiAiZWRpdFByZWZlcmVuY2VzIjsNCj4NCj4gPiAvLyAgICBwZXJtaXNzaW9u IGNvbS5lY3lyZC5qc3B3aWtpLmF1dGgucGVybWlzc2lvbnMuV2lraVBlcm1pc3Npb24gIioiLA0K Pg0KPiA+ICJlZGl0UHJvZmlsZSI7DQo+DQo+ID4gLy8gICAgcGVybWlzc2lvbiBjb20uZWN5cmQu anNwd2lraS5hdXRoLnBlcm1pc3Npb25zLldpa2lQZXJtaXNzaW9uICIqIiwNCj4NCj4gPiAibG9n aW4iOw0KPg0KPiA+IC8vfTsNCj4NCj4gPg0KPg0KPiA+DQo+DQo+ID4gLy8gVGhlIHNlY29uZCBw b2xpY3kgYmxvY2sgaXMgZXh0cmVtZWx5IGxvb3NlLCBhbmQgdW5zdWl0ZWQgZm9yDQo+DQo+ID4g cHVibGljLWZhY2luZyB3aWtpcy4NCj4NCj4gPiAvLyBBbm9ueW1vdXMgdXNlcnMgYXJlIGFsbG93 ZWQgdG8gY3JlYXRlLCBlZGl0IGFuZCBjb21tZW50IG9uIGFsbCBwYWdlcy4NCj4NCj4gPiAvLw0K Pg0KPiA+IC8vIE5vdGU6IEZvciBJbnRlcm5ldC1mYWNpbmcgd2lraXMsIHlvdSBhcmUgc3Ryb25n bHkgYWR2aXNlZCB0byByZW1vdmUNCj4NCj4gPiB0aGUgLy8gbGluZXMgY29udGFpbmluZyB0aGUg Im1vZGlmeSIgYW5kICJjcmVhdGVQYWdlcyIgcGVybWlzc2lvbnM7DQo+DQo+ID4gdGhpcyB3aWxs IG1ha2UgLy8gdGhlIHdpa2kgcmVhZC1vbmx5IGZvciBhbm9ueW1vdXMgdXNlcnMuDQo+DQo+ID4N Cj4NCj4gPiAvLyBOb3RlIHRoYXQgIm1vZGlmeSIgaW1wbGllcyAqYm90aCogImVkaXQiIGFuZCAi dXBsb2FkIiwgc28gaWYgeW91DQo+DQo+ID4gd2lzaCB0byAvLyBhbGxvdyBlZGl0aW5nIG9ubHks IHRoZW4gcmVwbGFjZSAibW9kaWZ5IiB3aXRoICJlZGl0Ii4NCj4NCj4gPg0KPg0KPiA+IGdyYW50 IHByaW5jaXBhbCBjb20uZWN5cmQuanNwd2lraS5hdXRoLmF1dGhvcml6ZS5Sb2xlICJBbm9ueW1v dXMiIHsNCj4NCj4gPiAgICBwZXJtaXNzaW9uIGNvbS5lY3lyZC5qc3B3aWtpLmF1dGgucGVybWlz c2lvbnMuUGFnZVBlcm1pc3Npb24gIio6KiIsDQo+DQo+ID4gInZpZXciOyB9Ow0KPg0KPiA+DQo+ DQo+ID4NCj4NCj4gPiAvLyBUaGlzIG5leHQgcG9saWN5IGJsb2NrIGlzIGFsc28gcHJldHR5IGxv b3NlLiBJdCBhbGxvd3MgdXNlcnMgd2hvDQo+DQo+ID4gY2xhaW0gdG8gLy8gYmUgc29tZW9uZSAo dmlhIHRoZWlyIGNvb2tpZSkgdG8gY3JlYXRlLCBlZGl0IGFuZCBjb21tZW50DQo+DQo+ID4gb24g YWxsIHBhZ2VzLCAvLyBhcyB3ZWxsIGFzIHVwbG9hZCBmaWxlcy4NCj4NCj4gPiAvLyBUaGV5IGNh biBhbHNvIHZpZXcgdGhlIG1lbWJlcnNoaXAgbGlzdCBvZiBncm91cHMuDQo+DQo+ID4NCj4NCj4g PiAvLyBBdXRoZW50aWNhdGVkIHVzZXJzIGNhbiBkbyBtb3N0IHRoaW5nczogdmlldywgY3JlYXRl LCBlZGl0IGFuZCAvLw0KPg0KPiA+IGNvbW1lbnQgb24gYWxsIHBhZ2VzOyB1cGxvYWQgZmlsZXMg dG8gZXhpc3Rpbmcgb25lczsgY3JlYXRlIGFuZCBlZGl0DQo+DQo+ID4gLy8gd2lraSBncm91cHM7 IGFuZCByZW5hbWUgZXhpc3RpbmcgcGFnZXMuIEF1dGhlbnRpY2F0ZWQgdXNlcnMgY2FuDQo+DQo+ ID4gYWxzbyAvLyBlZGl0IGdyb3VwcyB0aGV5IGFyZSBtZW1iZXJzIG9mLg0KPg0KPiA+DQo+DQo+ ID4gLy9ncmFudCBwcmluY2lwYWwgY29tLmVjeXJkLmpzcHdpa2kuYXV0aC5hdXRob3JpemUuUm9s ZSAiQXV0aGVudGljYXRlZCIgew0KPg0KPiA+IC8vICAgIHBlcm1pc3Npb24gY29tLmVjeXJkLmpz cHdpa2kuYXV0aC5wZXJtaXNzaW9ucy5QYWdlUGVybWlzc2lvbiAiKjoqIiwNCj4NCj4gPiAibW9k aWZ5LHJlbmFtZSI7DQo+DQo+ID4gLy8gICAgcGVybWlzc2lvbiBjb20uZWN5cmQuanNwd2lraS5h dXRoLnBlcm1pc3Npb25zLkdyb3VwUGVybWlzc2lvbg0KPiAiKjoqIiwNCj4NCj4gPiAidmlldyI7 DQo+DQo+ID4gLy8gICAgcGVybWlzc2lvbiBjb20uZWN5cmQuanNwd2lraS5hdXRoLnBlcm1pc3Np b25zLkdyb3VwUGVybWlzc2lvbg0KPg0KPiA+ICIqOjxncm91cG1lbWJlcj4iLCAiZWRpdCI7DQo+ DQo+ID4gLy8gICAgcGVybWlzc2lvbiBjb20uZWN5cmQuanNwd2lraS5hdXRoLnBlcm1pc3Npb25z Lldpa2lQZXJtaXNzaW9uICIqIiwNCj4NCj4gPiAiY3JlYXRlUGFnZXMsY3JlYXRlR3JvdXBzIjsN Cj4NCj4gPiAvL307DQo+DQo+ID4NCj4NCj4gPg0KPg0KPiA+IC8vIEFkbWluaXN0cmF0b3JzIChw cmluY2lwYWxzIG9yIHJvbGVzIHBvc3Nlc3NpbmcgQWxsUGVybWlzc2lvbikgLy8NCj4NCj4gPiBh cmUgYWxsb3dlZCB0byBkZWxldGUgYW55IHBhZ2UsIGFuZCBjYW4gZWRpdCwgcmVuYW1lIGFuZCBk ZWxldGUgLy8NCj4NCj4gPiBncm91cHMuIFlvdSBzaG91bGQgbWF0Y2ggdGhlIHBlcm1pc3Npb24g dGFyZ2V0IChoZXJlLCAnSlNQV2lraScpIC8vDQo+DQo+ID4gd2l0aCB0aGUgdmFsdWUgb2YgdGhl ICdqc3B3aWtpLmFwcGxpY2F0aW9uTmFtZScgcHJvcGVydHkgaW4gLy8NCj4NCj4gPiBqc3B3aWtp LnByb3BlcnRpZXMuIFR3byBhZG1pbmlzdGF0aXZlIGdyb3VwcyBhcmUgc2V0IHVwIGJlbG93Og0K Pg0KPiA+IC8vIHRoZSB3aWtpIGdyb3VwICJBZG1pbiIgKHN0b3JlZCBieSBkZWZhdWx0IGluIHdp a2kgcGFnZSBHcm91cEFkbWluKQ0KPg0KPiA+IC8vIGFuZCB0aGUgY29udGFpbmVyIHJvbGUgIkFk bWluIiAobWFuYWdlZCBieSB0aGUgd2ViIGNvbnRhaW5lcikuDQo+DQo+ID4NCj4NCj4gPiBncmFu dCBwcmluY2lwYWwgY29tLmVjeXJkLmpzcHdpa2kuYXV0aC5Hcm91cFByaW5jaXBhbCAiQWRtaW4i IHsNCj4NCj4gPiAgICBwZXJtaXNzaW9uIGNvbS5lY3lyZC5qc3B3aWtpLmF1dGgucGVybWlzc2lv bnMuQWxsUGVybWlzc2lvbiAiKiI7IH07DQo+DQo+ID4gZ3JhbnQgcHJpbmNpcGFsIGNvbS5lY3ly ZC5qc3B3aWtpLmF1dGguYXV0aG9yaXplLlJvbGUgIkFkbWluIiB7DQo+DQo+ID4gICAgcGVybWlz c2lvbiBjb20uZWN5cmQuanNwd2lraS5hdXRoLnBlcm1pc3Npb25zLkFsbFBlcm1pc3Npb24gIioi OyB9Ow0KPg0KPiA+DQo+DQo+ID4gQW5kIGhlcmUgaXMgbXkganNwd2lraS5wcm9wZXJ0aWVzIGZp bGUgKGxvY2FsKQ0KPg0KPiA+DQo+DQo+ID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPg0KPiA+ICMjIyMjDQo+ DQo+ID4gIw0KPg0KPiA+ICMgIFRoaXMgaXMgdGhlIEpTUFdpa2kgY29uZmlndXJhdGlvbiBmaWxl LiAgWW91J2xsIG5lZWQgdG8gZWRpdCB0aGlzICMNCj4NCj4gPiBhIGJpdC4gIFRoZSBmaXJzdCBm ZXcgbGluZXMgYXJlIHRoZSBtb3N0IGltcG9ydGFudCBvbmVzLg0KPg0KPiA+ICMNCj4NCj4gPiAj ICBXaGVyZXZlciBpdCBpcyBzYWlkIHRoYXQgYW4gb3B0aW9uIGNhbiBiZSAidHJ1ZSIgb3IgImZh bHNlIiwgeW91DQo+DQo+ID4gY2FuICMgIGFsc28gdXNlICJ5ZXMiLyJubyIsIG9yICJvbi9vZmYi LiAgSnVzdCBmb3Igc29tZSBjb252ZW5pZW5jZS4NCj4NCj4gPiAjDQo+DQo+ID4gIw0KPg0KPiA+ ICMgIFlvdSBjYW4gdXNlIHRoaXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYXBwbGljYXRpb24g bmFtZS4gIEl0DQo+DQo+ID4gYWZmZWN0cyAjICB0aGUgSFRNTCB0aXRsZXMgYW5kIGxvZ2dpbmcs IGZvciBleGFtcGxlLiAgSXQgY2FuIGJlDQo+DQo+ID4gZGlmZmVyZW50IGZyb20gIyAgdGhlIGFj dHVhbCB3ZWIgbmFtZSAoaHR0cDovL215LmNvbS9teXdpa2kpIG9mIHRoZQ0KPg0KPiA+IGFwcGxp Y2F0aW9uLCBidXQgdXN1YWxseSAjICBpdCBpcyB0aGUgc2FtZS4NCj4NCj4gPiAjDQo+DQo+ID4g anNwd2lraS5hcHBsaWNhdGlvbk5hbWUgPUpTUFdpa2kNCj4NCj4gPg0KPg0KPiA+ICMNCj4NCj4g PiAjICBEZXNjcmliZSB3aGVyZSB5b3VyIHdpa2kgbGl2ZXMgKHRoZSByZWFsIFVSTCB0aHJvdWdo IHdoaWNoIGl0IGlzDQo+DQo+ID4gYXZhaWxhYmxlICMgIHRocm91Z2ggdGhlIGludGVybmV0L2lu dHJhbmV0KS4gIFRoaXMgaXMgYSBtYW5kYXRvcnkNCj4NCj4gPiBhdHRyaWJ1dGUuDQo+DQo+ID4g Iw0KPg0KPiA+ICMgIEJlIGNhcmVmdWwgaWYgeW91IHVzZSBhIGxvY2FsaG9zdCBhZGRyZXNzICho dHRwOi8vbG9jYWxob3N0LyBvcg0KPg0KPiA+IGh0dHA6Ly8xMjcuMC4wLjEvKSwgIyAgYXMgdGhp cyB3aWxsIGNhdXNlIHNvbWUgdW53YW50ZWQgc2lkZSBlZmZlY3RzDQo+DQo+ID4gaWYgeW91ciB3 aWtpIGlzIGFjY2Vzc2VkIGZyb20gIyAgYW55IG90aGVyIGNvbXB1dGVyIHRoYW4gd2hlcmUgdGhl DQo+DQo+ID4gd2lraSBpcyBydW5uaW5nLg0KPg0KPiA+ICMNCj4NCj4gPiAjICBFeGFtcGxlOg0K Pg0KPiA+ICMgIGpzcHdpa2kuYmFzZVVSTCA9IGh0dHA6Ly93d3cuanNwd2lraS5vcmcvICMNCj4N Cj4gPiBqc3B3aWtpLmJhc2VVUkw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL3dpa2kvDQo+DQo+ID4N Cj4NCj4gPiAjDQo+DQo+ID4gIyAgV2hpY2ggcGFnZSBwcm92aWRlciBjbGFzcyB0byB1c2UuICBQ b3NzaWJpbGl0aWVzIGFyZToNCj4NCj4gPiAjDQo+DQo+ID4gIyAgICBSQ1NGaWxlUHJvdmlkZXIg ICAgICAgIC0gZm9yIHNpbXBsZSBSQ1MtYmFzZWQgZmlsZSBzdG9yYWdlDQo+DQo+ID4gIyAgICBG aWxlU3lzdGVtUHJvdmlkZXIgICAgIC0gZm9yIHNpbXBsZSBwdXJlIGZpbGUgc3RvcmFnZSB3aXRo IG5vDQo+IHZlcnNpb24NCj4NCj4gPiBpbmZvcm1hdGlvbg0KPg0KPiA+ICMgICAgVmVyc2lvbmlu Z0ZpbGVQcm92aWRlciAtIGZvciBzaW1wbGUsIG5vbi1SQ1MgYmFzZWQgdmVyc2lvbmluZw0KPiBz dG9yYWdlLg0KPg0KPiA+ICMNCj4NCj4gPiAjICBOb3RlIHRoYXQgaWYgeW91J3JlIHVwZ3JhZGlu ZyBmcm9tIEpTUFdpa2kgMS54LCB0aGVuIHlvdSBuZWVkIHRvDQo+DQo+ID4gcmVtb3ZlIHRoZSAj ICAiY29tLmVjeXJkLmpzcHdpa2kuIiBwYXJ0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUNCj4N Cj4gPiBwYXRoLg0KPg0KPiA+ICMNCj4NCj4gPiBqc3B3aWtpLnBhZ2VQcm92aWRlciA9VmVyc2lv bmluZ0ZpbGVQcm92aWRlcg0KPg0KPiA+DQo+DQo+ID4gIw0KPg0KPiA+ICMgSG93IHRvIG9yZGVy IHBhZ2VzIGluIHZhcmlvdXMgbGlzdHMgYW5kIHBsdWdpbnMuICBCeSBkZWZhdWx0LCB0aGV5DQo+ DQo+ID4gYXJlICMgb3JkZXJlZCB1c2luZyBKYXZhJ3MgIm5hdHVyYWwiIFN0cmluZyBvcmRlciAo cHVyZWx5IGNoYXJhY3RlciBieQ0KPg0KPiA+IGNoYXJhY3RlciAjIGNvbXBhcmlzb24pLiBUaGlz IG1lYW5zIHRoYXQgdGhlIHBhZ2VzIG5hbWVkICJQYWdlMSIsDQo+DQo+ID4gIlBhZ2UyIiBhbmQg IlBhZ2UxMCINCj4NCj4gPiAjIGFwcGVhciBpbiB0aGUgb3JkZXIgIlBhZ2UxIiwgIlBhZ2UxMCIs ICJQYWdlMiIuDQo+DQo+ID4gIw0KPg0KPiA+ICMgVG8gc3BlY2lmeSBhIGRpZmZlcmVudCBvcmRl cmluZywgZ2l2ZSB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgYQ0KPg0KPiA+IFN0cmluZyAj IENvbXBhcmF0b3IuIElmIHRoZSBjbGFzcyBjYW4ndCBiZSBmb3VuZCwgYW4gZXJyb3Igd2lsbCBi ZQ0KPg0KPiA+IGxvZ2dlZCBhbmQgcGFnZSAjIHNvcnRpbmcgd2lsbCBmYWxsIGJhY2sgdG8gdGhl IGRlZmF1bHQgIm5hdHVyYWwiDQo+DQo+ID4gb3JkZXJpbmcuIFlvdSBjYW4gc3BlY2lmeSAjIGFu eSBTdHJpbmcgQ29tcGFyYXRvciBjbGFzcyBoZXJlIEJVVCBiZQ0KPg0KPiA+IGNhcmVmdWwgb2Yg dXNpbmcgY2FzZSBpbnNlbnNpdGl2ZSAjIGNvbXBhcmF0b3JzIGFzIEpTUFdpa2kgcGFnZSBuYW1l cw0KPg0KPiA+IG1heSBiZSBjYXNlIHNlbnNpdGl2ZS4NCj4NCj4gPiAjIEV4YW1wbGU6IGpzcHdp a2kucGFnZU5hbWVDb21wYXJhdG9yLmNsYXNzID0NCj4NCj4gPiBteS5mdWxseS5xdWFsaWZpZWQu Y29tcGFyYXRvciAjICMgRm9yIGNvbnZlbmllbmNlLCB3ZSBoYXZlIHByb3ZpZGVkIGENCj4NCj4g PiBmZXcgcG9zc2libHkgdXNlZnVsIGNvbXBhcmF0b3JzOg0KPg0KPiA+ICMNCj4NCj4gPiAjIEh1 bWFuQ29tcGFyYXRvciB1bmRlcnN0YW5kcyBudW1iZXJzIGFuZCBzb3J0cyBpbiBhIG1vcmUgaHVt YW4NCj4NCj4gPiBmcmllbmRseSAjIG9yZGVyIChFbmdsaXNoIG9ubHkpLiAgVXNpbmcgSHVtYW5D b21wYXJhdG9yLCB0aGUgcGFnZXMNCj4NCj4gPiAiUGFnZTEiLCAiUGFnZTIiLCAjICJQYWdlMTAi IHdpbGwgc29ydCBpbiB0aGF0IG9yZGVyLg0KPg0KPiA+ICMgRXhhbXBsZToganNwd2lraS5wYWdl TmFtZUNvbXBhcmF0b3IuY2xhc3MgPSBIdW1hbkNvbXBhcmF0b3IgIyAjDQo+DQo+ID4gTG9jYWxl Q29tcGFyYXRvciB1c2VzIHRoZSBzZXJ2ZXIncyBMb2NhbGUgZm9yIG9yZGVyaW5nLiAgVXNlZnVs IGlmDQo+DQo+ID4geW91ciAjIGNvbnRlbnQgaXMgYWx3YXlzIGluIGEgbGFuZ3VhZ2Ugb3RoZXIg dGhhbiBFbmdsaXNoLiAgRG9lcyBub3QNCj4NCj4gPiBkbyBodW1hbiAjIGZyaWVuZGx5IG51bWVy aWMgb3JkZXJpbmcuDQo+DQo+ID4gIyBFeGFtcGxlOiBqc3B3aWtpLnBhZ2VOYW1lQ29tcGFyYXRv ci5jbGFzcyA9IExvY2FsZUNvbXBhcmF0b3IgIw0KPg0KPiA+ICNqc3B3aWtpLnBhZ2VOYW1lQ29t cGFyYXRvci5jbGFzcyA9DQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgU2V0IHRvIHRydWUs IGlmIHlvdSB3YW50IHRvIGNhY2hlIHBhZ2UgZGF0YSBpbnRvIG1lbW9yeS4gIFRoaXMgaXMgIw0K Pg0KPiA+IGluIGdlbmVyYWwgYSBnb29kIGlkZWEuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIERlZmF1 bHQgaXMgZmFsc2UgKG5vIGNhY2hlKS4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgTkI6IFRoaXMgcmVw bGFjZXMgdGhlIEpTUFdpa2kgMS54ICJDYWNoaW5nUHJvdmlkZXIiIHNldHRpbmcsIHNpbmNlIGl0 DQo+DQo+ID4gIyAgICAgIHByb2JhYmx5IHdhcyB0b28gY29uZnVzaW5nLg0KPg0KPiA+ICMNCj4N Cj4gPiBqc3B3aWtpLnVzZVBhZ2VDYWNoZSA9dHJ1ZQ0KPg0KPiA+DQo+DQo+ID4gIw0KPg0KPiA+ ICMgIERldGVybWluZXMgd2hlcmUgd2lraSBmaWxlcyBhcmUga2VwdCBmb3IgRmlsZVN5c3RlbVBy b3ZpZGVyICMgIGFuZA0KPg0KPiA+IFJDU0ZpbGVQcm92aWRlciAjICMgIElmIHlvdSdyZSB1c2lu ZyBXaW5kb3dzLCB0aGVuIHlvdSBtdXN0IGR1cGxpY2F0ZQ0KPg0KPiA+IHRoZSBiYWNrc2xhc2hl cy4NCj4NCj4gPiAjICBGb3IgZXhhbXBsZSwgdXNlOg0KPg0KPiA+ICMNCj4NCj4gPiAjICBqc3B3 aWtpLmZpbGVTeXN0ZW1Qcm92aWRlci5wYWdlRGlyID0gQzpcXERhdGFcXGpzcHdpa2kgIw0KPg0K PiA+IGpzcHdpa2kuZmlsZVN5c3RlbVByb3ZpZGVyLnBhZ2VEaXIgPS9qc3B3aWtpL2RhdGENCj4N Cj4gPg0KPg0KPiA+ICMNCj4NCj4gPiAjICBUaGUgSlNQV2lraSB3b3JraW5nIGRpcmVjdG9yeS4g IElmIG5vdCBzZXQsIGEgdGVtcG9yYXJ5IHBhdGggd2lsbCAjDQo+DQo+ID4gYmUgdXNlZC4gIFlv dSBjYW4gc2VlIHRoZSBsb2NhdGlvbiBvZiB0aGUgd29ya2RpciBpbiB0aGUgbG9ncy4NCj4NCj4g PiAjICBJdCBpcyBISUdITFkgcmVjb21tZW5kZWQgdGhhdCB5b3Ugc2V0IHRoaXMuDQo+DQo+ID4g Iw0KPg0KPiA+ICMgIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBpcyB1c2VkIHRvIGNhY2hlIHRoaW5n cyBsaWtlIEx1Y2VuZSBzZWFyY2ggIw0KPg0KPiA+IHJlc3VsdHMuDQo+DQo+ID4gIw0KPg0KPiA+ ICNqc3B3aWtpLndvcmtEaXIgPQ0KPg0KPiA+DQo+DQo+ID4gIw0KPg0KPiA+ICMgIEFUVEFDSE1F TlRTOg0KPg0KPiA+ICMNCj4NCj4gPiAjICBVc2UgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eSB0byBk ZWZpbmUgd2hpY2ggYXR0YWNobWVudCBwcm92aWRlciAjDQo+DQo+ID4geW91IHdhbnQgdG8gdXNl LiAgWW91IGhhdmUgYmFzaWNhbGx5IHR3byBjaG9pY2VzOg0KPg0KPiA+ICMgICAgKiBTZXQgdGhl IHZhbHVlIHRvIEJhc2ljQXR0YWNobWVudFByb3ZpZGVyDQo+DQo+ID4gIyAgICAgIGEgc2ltcGxl LCBmbGF0IGZpbGUgdmVyc2lvbmluZyBwcm92aWRlcg0KPg0KPiA+ICMgICAgKiBMZWF2ZSB0aGUg dmFsdWUgZW1wdHkgKG9yIGp1c3QgY29tbWVudCB0aGUgbGluZSBvdXQpDQo+DQo+ID4gIyAgICAg IHRoZSBhdHRhY2htZW50IGZ1bmN0aW9uYWxpdHkgaXMgZGlzYWJsZWQNCj4NCj4gPiAjDQo+DQo+ ID4ganNwd2lraS5hdHRhY2htZW50UHJvdmlkZXIgPUJhc2ljQXR0YWNobWVudFByb3ZpZGVyDQo+ DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgVGhlIEJhc2ljQXR0YWNobWVudFByb3ZpZGVyIG5l ZWRzIHRvIGtub3cgd2hlcmUgdG8gc3RvcmUgdGhlIGZpbGVzDQo+DQo+ID4gIyAgdGhlIHVzZXIg aGFzIHVwbG9hZGVkLiAgSXQncyBva2F5IHRvIHB1dCB0aGVzZSBpbiB0aGUgc2FtZQ0KPg0KPiA+ IGRpcmVjdG9yeSAjICBhcyB5b3UgcHV0IHlvdXIgdGV4dCBmaWxlcyAoaS5lLiB0aGUgcGFnZURp ciBzZXR0aW5nIGFib3ZlKS4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgSWYgeW91J3JlIHVzaW5nIFdp bmRvd3MsIHRoZW4geW91IG11c3QgZHVwbGljYXRlIHRoZSBiYWNrc2xhc2hlcy4NCj4NCj4gPiAj ICBGb3IgZXhhbXBsZSwgdXNlOg0KPg0KPiA+ICMNCj4NCj4gPiAjICBqc3B3aWtpLmJhc2ljQXR0 YWNobWVudFByb3ZpZGVyLnN0b3JhZ2VEaXIgPSBDOlxcRGF0YVxcanNwd2lraSAjDQo+DQo+ID4g anNwd2lraS5iYXNpY0F0dGFjaG1lbnRQcm92aWRlci5zdG9yYWdlRGlyID0vanNwd2lraS9kYXRh DQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgWW91IGNhbiB0ZWxsIHRoZSBCYXNpY0F0dGFj aG1lbnRQcm92aWRlciB0byBhZGQgYSBmbGFnICMgIHNvIHRoYXQNCj4NCj4gPiBicm93c2VycyBk byBub3QgY2FjaGUgY2VydGFpbiAob3IgYWxsKSBhdHRhY2htZW50ICMgIHR5cGVzLiBUaGlzIGlz DQo+DQo+ID4gdXNlZnVsIGluIGludHJhbmV0IGVudmlyb25tZW50cy4gWW91IHNob3VsZCBhY3Rp dmF0ZSAjICB0aGlzIGlmIHlvdXINCj4NCj4gPiB1c2VycyBjb21wbGFpbiB0aGF0IHRoZWlyIGV4 Y2VsIGZpbGVzIGFyZSBub3QgdXBsb2FkZWQgIyAgY29ycmVjdGx5DQo+DQo+ID4gYW5kIHRoZXkg c3RpbGwgZG8gaGF2ZSBhbiBvbGQgdmVyc2lvbjogVXN1YWxseSB0aGUgIyAgZmlsZSB3YXMNCj4N Cj4gPiB1cGxvYWRlZCBjb3JyZWN0bHksIGJ1dCB0aGV5IGdldCB0aGUgbG9jYWxseSBjYWNoZWQg dmVyc2lvbiAjICMgIFlvdQ0KPg0KPiA+IGNhbiB1c2UgcmVndWxhciBleHByZXNzaW9ucyB0byBk aXNhYmxlIHRoZSBjYWNoZSwgZS5nIHRoZSAjICBmb2xsb3dpbmcNCj4NCj4gPiBleGFtcGxlIHdp bGwgZGlzYWJsZSBicm93c2VyIGNhY2hlIGZvciBhbGwgZXhjZWwgYW5kIHdvcmQgZmlsZXMgIyAj DQo+DQo+ID4gSWYgeW91IGRvbid0IGRlZmluZSB0aGlzIHByb3BlcnR5LCBjYWNoZSBpcyBlbmFi bGVkIGJ5IGRlZmF1bHQgZm9yICMNCj4NCj4gPiBhbGwgYXR0YWNobWVudHMgIyAjICBqc3B3aWtp LmJhc2ljQXR0YWNobWVudFByb3ZpZGVyLmRpc2FibGVDYWNoZSA9DQo+DQo+ID4gLipcLnhsc3wu KlwuZG9jDQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgWW91IGNhbiBsaW1pdCB0aGUgbWF4 aW11bSBzaXplIG9mIGFuIGF0dGFjaG1lbnQgYnkgc2V0dGluZyB0aGlzICMNCj4NCj4gPiB2YWx1 ZS4gIFRoZSB2YWx1ZSBpcyBpbiBieXRlcywgYW5kIGJ5IGRlZmF1bHQgYWxsIGF0dGFjaG1lbnRz ICMgIGFyZQ0KPg0KPiA+IGFjY2VwdGVkLg0KPg0KPiA+ICMgVGhpcyBsaW1pdCBpcyBub3QgZW5m b3JjZWQgZm9yIHVzZXJzIHdpdGggQWRtaW5QZXJtaXNzaW9ucy4NCj4NCj4gPiAjDQo+DQo+ID4g IyAgVGhlIGZvbGxvd2luZyBsaW5lIHdvdWxkIGxpbWl0IHRoZSBhdHRhY2htZW50IHNpemUgdG8g MTAwLDAwMCBieXRlcw0KPg0KPiA+ICNqc3B3aWtpLmF0dGFjaG1lbnQubWF4c2l6ZT0xMDAwMDAN Cj4NCj4gPg0KPg0KPiA+ICMNCj4NCj4gPiAjICBCeSBkZWZhdWx0IEpTUFdpa2kgYWNjZXB0cyBh bGwgdHlwZXMgb2YgYXR0YWNobWVudHMuICBIb3dldmVyLCB5b3UNCj4NCj4gPiAjICBjYW4gYWxs b3cgc29tZSB0eXBlcyBvbmx5LCBvciBmb3JiaWQgc29tZSBvdGhlciB0eXBlcy4gIEJ5IGRlZmF1 bHQsDQo+DQo+ID4gIyAgYWxsIGZpbGUgdHlwZXMgYXJlIGFsbG93ZWQgKGlmIHlvdSBkbyBub3Qg c3BlY2lmeSB0aGUgImFsbG93IiBsaXN0DQo+DQo+ID4gIyAgYXQgYWxsIG9yIGl0IGlzIGVtcHR5 KS4NCj4NCj4gPiAjIFRoZXNlIGFsbG93L2ZvcmJpZCBzdGF0ZW1lbnRzIGFyZSBub3QgZW5mb3Jj ZWQgZm9yIHVzZXJzIHdpdGgNCj4NCj4gPiBBZG1pblBlcm1pc3Npb25zLg0KPg0KPiA+ICMNCj4N Cj4gPiAjICBUaGVzZSBib3RoIGFyZSBzcGFjZS1zZXBhcmF0ZWQgbGlzdHMgb2YgZmlsZSBzdWZm aXhlcyAjICMgIEV4YW1wbGU6DQo+DQo+ID4gQWxsb3cgb25seSBQTkcsIEpQRywgWklQIGFuZCBK QVIgZmlsZSBhdHRhY2htZW50cw0KPg0KPiA+ICNqc3B3aWtpLmF0dGFjaG1lbnQuYWxsb3c9LnBu ZyAuanBnIC56aXAgLmphcg0KPg0KPiA+DQo+DQo+ID4gIyAgRXhhbXBsZTogRm9yYmlkIEhUTUws IFBIUCwgQVNQIGFuZCBFWEUNCj4NCj4gPiAjanNwd2lraS5hdHRhY2htZW50LmZvcmJpZD0uaHRt bCAuaHRtIC5waHAgLmFzcCAuZXhlDQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgcGFnZSBE aWZmIFJlcHJlc2VudGF0aW9uDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFRvIHNob3cgZGlmZmVyZW5j ZXMgYmV0d2VlbiBwYWdlIHZlcnNpb25zLCB5b3UgY2FuIGRlZmluZSBhICMNCj4NCj4gPiBkaWZm ZXJlbmNlIHByb3ZpZGVyLg0KPg0KPiA+ICMgIFRoZSBmb2xsb3dpbmcgY2hvaWNlcyBhcmUgYXZh aWxhYmxlOg0KPg0KPiA+ICMgICAgKiBUcmFkaXRpb25hbERpZmZQcm92aWRlciAtIFVzZXMgaW50 ZXJuYWwgKGphdmEpIGRpZmYNCj4NCj4gPiAjICAgICAgICB0byBjcmVhdGUgYSBsaXN0IG9mIGNo YW5nZXMgYW5kIHNob3dzIGl0IGxpbmUgYnkNCj4NCj4gPiAjICAgICAgICBsaW5lIGNvbG9yZWQu IFRoaXMgaXMgdGhlIGRlZmF1bHQNCj4NCj4gPiAjICAgICogQ29udGV4dHVhbERpZmZQcm92aWRl ciAtIFVzZXMgaW50ZXJuYWwgKGphdmEpIGRpZmYNCj4NCj4gPiAjICAgICAgICB0byBjcmVhdGUg Y2hhbmdlcyBpbmxpbmUgYW5kIHNob3dzIGl0IG9uIGEgd29yZCBieQ0KPg0KPiA+ICMgICAgICAg IHdvcmQgYmFzaXMgdXNpbmcgQ1NTLiBUaGlzIGlzIG11Y2ggc3VwZXJpb3IgdG8gdGhlDQo+DQo+ ID4gIyAgICAgICAgdHJhZGl0aW9uYWwgZGlmZiBwcm92aWRlciwgaG93ZXZlciwgaXQgaXMgc3Rp bGwgcXVpdGUNCj4NCj4gPiAjICAgICAgICBuZXcgYW5kIG5vdCBtdWNoIHRlc3RlZC4gWU1NVi4N Cj4NCj4gPiAjICAgICogRXh0ZXJuYWxEaWZmUHJvdmlkZXIgLSB1c2VzIGEgc3lzdGVtIGRpZmYg cHJvZ3JhbSAod2hpY2gNCj4NCj4gPiAjICAgICAgICBjYW4gYmUgY29uZmlndXJlZCB1c2luZyAi anNwd2lraS5kaWZmQ29tbWFuZCIpIHRvDQo+DQo+ID4gIyAgICAgICAgY3JlYXRlIGFuIHVuaWZp ZWQgKCEpIGRpZmYuDQo+DQo+ID4gIw0KPg0KPiA+ICMgICAgICAgIEV4YW1wbGUgZm9yIGEgZGlm ZiBjb21tYW5kOg0KPg0KPiA+ICMgICAgICAgIGpzcHdpa2kuZGlmZkNvbW1hbmQgPSAvdXNyL2Jp bi9kaWZmIC11ICVzMSAlczINCj4NCj4gPiAjDQo+DQo+ID4ganNwd2lraS5kaWZmUHJvdmlkZXIg PVRyYWRpdGlvbmFsRGlmZlByb3ZpZGVyDQo+DQo+ID4NCj4NCj4gPiAjICBEZXRlcm1pbmVzIGlm IHlvdSBuZWVkIHRvIGhhdmUgcmVsYXRpdmUgdXJscyBvciBub3QuICBJZiB0aGUNCj4NCj4gPiBi YXNlVVJMICMgIGlzIG5vdCBzZXQsIHRoZW4gdGhpcyBoYXMgbm8gZWZmZWN0LCBidXQgaWYgeW91 IHNldCB0aGUNCj4NCj4gPiBiYXNlVVJMICh3aGljaCAjICBpcyBoaWdobHkgcmVjb21tZW5kZWQp LCB5b3UgY2FuIHVzZSB0aGlzIHRvIHNldA0KPiByZWxhdGl2ZSB1cmxzLg0KPg0KPiA+ICMNCj4N Cj4gPiAjICBQb3NzaWJsZSB2YWx1ZXMgYXJlICJhYnNvbHV0ZSIgYW5kICJyZWxhdGl2ZSIuDQo+ DQo+ID4gIw0KPg0KPiA+ICNqc3B3aWtpLnJlZmVyZW5jZVN0eWxlPXJlbGF0aXZlDQo+DQo+ID4N Cj4NCj4gPiAjDQo+DQo+ID4gIyAgRGV0ZXJtaW5lcyB3aGljaCBjaGFyYWN0ZXIgZW5jb2Rpbmcg SlNQV2lraSBzaG91bGQgdXNlLiAgSWYgeW91DQo+DQo+ID4gd2FudCAjICB0byBzdXBwb3J0IGFs bCBsYW5ndWFnZXMgaW4geW91ciBXaWtpLCB5b3UgcHJvYmFibHkgd2FudCB0bw0KPg0KPiA+IGVu YWJsZSAjICB0aGlzLiAgRnJvbSBKU1BXaWtpIDIuMiwgaXQgaXMgc3Ryb25nbHkgc3VnZ2VzdGVk IHRoYXQgeW91IHVzZQ0KPiBVVEYtOC4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgTm90ZSB0aGF0IHlv dSBjYW4ndCBzd2l0Y2ggdGhlc2UgaW4gdGhlIG1lYW4gdGltZSwgc2luY2UgdGhlIHdheQ0KPg0K PiA+IHRoZSAjICBmaWxlcyBhcmUgZW5jb2RlZCBvbiBkaXNrIGlzIGluY29tcGF0aWJsZSBiZXR3 ZWVuIElTTy1MYXRpbjEgYW5kDQo+IFVURi04Lg0KPg0KPiA+ICMgIERvbid0IHRyeS4gIFlvdSds bCBnZXQgYWxsIHNvcnRzIG9mIGludGVyZXN0aW5nIHByb2JsZW1zLCBpZiB5b3UgZG8uDQo+DQo+ ID4gIw0KPg0KPiA+ICMgIFBvc3NpYmxlIHZhbHVlcyBhcmUgJ0lTTy04ODU5LTEnIChkZWZhdWx0 LCBpZiBub25lIGhhcyBiZWVuDQo+DQo+ID4gc3BlY2lmaWVkKSAjICBhbmQgJ1VURi04Jy4NCj4N Cj4gPg0KPg0KPiA+IGpzcHdpa2kuZW5jb2RpbmcgPVVURi04DQo+DQo+ID4NCj4NCj4gPiAjDQo+ DQo+ID4gIyAgRGV0ZXJtaW5lcyB3aGV0aGVyIHJhdyBIVE1MIGlzIGFsbG93ZWQgYXMgV2lraSBp bnB1dC4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgVEhJUyBJUyBBIERBTkdFUk9VUyBPUFRJT04hDQo+ DQo+ID4gIw0KPg0KPiA+ICMgIElmIHlvdSBkZWNpZGUgdG8gYWxsb3cgcmF3IEhUTUwsIHVuZGVy c3RhbmQgdGhhdCBBTlkgcGVyc29uIHdobyBoYXMNCj4NCj4gPiAjICBhY2Nlc3MgdG8geW91ciBX aWtpIHNpdGUgY2FuIGVtYmVkIEFOWSBzb3J0IG9mIG1hbGljaW91cw0KPg0KPiA+IEphdmFTY3Jp cHQsICMgIG9yIHBsdWdpbiwgb3IgQWN0aXZlWCwgb3Igd2hhdGV2ZXIgb24geW91ciBzaXRlLiAg VGhleQ0KPg0KPiA+IGNhbiBldmVuIG1lc3MgaXQgIyAgdXAgc28gcm95YWxseSBpdCBpcyBpbXBv c3NpYmxlIGZvciB5b3UgdG8gcmVwbGFjZQ0KPg0KPiA+IHRoZSBzaXR1YXRpb24gd2l0aG91dCAj ICB0aGUgbmVlZCBvZiBkaXJlY3QgYWNjZXNzIHRvIHRoZSByZXBvc2l0b3J5Lg0KPg0KPiA+IFNv IHRoaW5rIHR3aWNlIGJlZm9yZSAjICBhbGxvd2luZyByYXcgSFRNTCBvbiB5b3VyIG93biBzaXRl Lg0KPg0KPiA+ICMNCj4NCj4gPiAjICBNb3N0IHByb2JhYmx5IHlvdSB3YW50IHRvIHVzZSB0aGlz IG9uIEludHJhbmV0cywgb3IgcGVyc29uYWwNCj4NCj4gPiBzZXJ2ZXJzLCAjICB3aGVyZSBvbmx5 IGEgaGFuZGZ1bCBvZiBwZW9wbGUgY2FuIGFjY2VzcyB0aGUgd2lraS4NCj4NCj4gPiAjDQo+DQo+ ID4gIyAgVGV4dCBiZXR3ZWVuIHt7eyBhbmQgfX19IC1vcHRpb25zIGlzIG5vdCBhZmZlY3RlZCBi eSB0aGlzIHNldHRpbmcsDQo+DQo+ID4gc28gIyAgaXQncyBhbHdheXMgc2FmZSB0byBxdW90ZSBI VE1MIGNvZGUgd2l0aCB0aG9zZS4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgVGhlIGRlZmF1bHQgZm9y IHRoaXMgb3B0aW9uIGlzICJmYWxzZSIuDQo+DQo+ID4gIw0KPg0KPiA+IGpzcHdpa2kudHJhbnNs YXRvclJlYWRlci5hbGxvd0hUTUwgPWZhbHNlDQo+DQo+ID4NCj4NCj4gPg0KPg0KPiA+ICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMNCj4NCj4gPiAjIyMjIyMNCj4NCj4gPiAjDQo+DQo+ID4gIyAgVXNhYmlsaXR5IG5p Y2V0aWVzLg0KPg0KPiA+ICMNCj4NCj4gPiAjDQo+DQo+ID4gIyAgSWYgdGhpcyBwcm9wZXJ0eSBp cyBzZXQgdG8gInRydWUiLCB0aGVuIHBhZ2UgdGl0bGVzIGFyZSByZW5kZXJlZCAjDQo+DQo+ID4g dXNpbmcgYW4gZXh0cmEgc3BhY2UgYmV0d2VlbiBldmVyeSBjYXBpdGFsIGxldHRlci4gIEl0IG1h eSBtYWtlICMNCj4NCj4gPiBwYWdlIHRpdGxlcyByZWFkYWJsZSBvbiBzb21lIG9jY2FzaW9ucywg YnV0IGl0IGRvZXMgaGF2ZSB0aGUgIw0KPg0KPiA+IGRyYXdiYWNrIG9mIG1ha2luZyB0aGUgdGl0 bGVzIGxvb2sgYSBiaXQgZnVubnkgYXQgdGltZXMuDQo+DQo+ID4gIw0KPg0KPiA+IGpzcHdpa2ku YnJlYWtUaXRsZVdpdGhTcGFjZXMgPWZhbHNlDQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAg SWYgc2V0IHRvIHRydWUsIHRoaXMgcHJvcGVydHkgbWVhbnMgdGhhdCAiV2lraU5hbWUiIGFuZCAi V2lraU5hbWVzIg0KPg0KPiA+ICMgIGFyZSBjb25zaWRlcmVkIGVxdWFsIHdoZW4gbGlua2luZyBi ZXR3ZWVuIHRoZW0uICBTZXR0aW5nIHRoaXMgdG8gIw0KPg0KPiA+IHRydWUgZG9lcyBub3QgcHJl dmVudCB5b3UgZnJvbSBoYXZpbmcgYm90aCBraW5kcyBvZiBwYWdlcyAtIHdlIGp1c3QgIw0KPg0K PiA+IGZhbGwgYmFjayB0byB0aGUgb3RoZXIgb25lIGlmIHRoZSBwcmltYXJ5IG5hbWUgZG9lcyBu b3QgZXhpc3QuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIEZvciBhbnkgb3RoZXIgbGFuZ3VhZ2UsIHlv dSdsbCBwcm9iYWJseSB3YW50IHRvIHR1cm4gdGhpcyBvZmYuDQo+DQo+ID4gIw0KPg0KPiA+IGpz cHdpa2kudHJhbnNsYXRvclJlYWRlci5tYXRjaEVuZ2xpc2hQbHVyYWxzID10cnVlDQo+DQo+ID4N Cj4NCj4gPiAjDQo+DQo+ID4gIyAgSWYgeW91IHNldCB0aGlzIHRvIHRydWUsIHRoZSBXaWtpIHRy YW5zbGF0b3Igd2lsbCB0aGVuIGFsc28NCj4NCj4gPiBjb25zaWRlciAjICAidHJhZGl0aW9uYWwi IFdpa2lOYW1lcyAodGhhdCBpcywgbmFtZXMgb2YgcGFnZXMNCj4NCj4gPiBKdXN0U21hc2hlZFRv Z2V0aGVyICMgIHdpdGhvdXQgc3F1YXJlIGJyYWNrZXRzKSBhcyBoeXBlcmxpbmtzLiAgVGhpcw0K Pg0KPiA+IHRlY2huaXF1ZSBpcyBhbHNvICMgIGtub3duIGFzICJDYW1lbENhc2UiLCBvciAiQnVt cHlDYXNlIiwgb3INCj4NCj4gPiAiSW50ZXJDYXBwaW5nIi4gIEkgcGVyc29uYWxseSAjICBsaWtl IENhbWVsQ2FzZSBhcyBhIHdvcmQsIHdoaWNoIGlzDQo+DQo+ID4gd2h5IHRoaXMgcHJvcGVydHkg aXMgbmFtZWQgYXMgaXQgaXMgOi0pLg0KPg0KPiA+ICMNCj4NCj4gPiAjICBCeSBkZWZhdWx0IHRo aXMgaXMgZmFsc2UsIHNpbmNlIHRyYWRpdGlvbmFsIFdpa2lMaW5rcyBtYXkgY29uZnVzZQ0KPg0K PiA+IG5ld2JpZXMuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFRoaXMgb3B0aW9uIGNhbiBiZSBvdmVy cmlkZGVuIG9uIGEgcGVyLXBhZ2UgYmFzaXMgdXNpbmcgdGhlIFNFVA0KPg0KPiA+IGRpcmVjdGl2 ZS4NCj4NCj4gPiAjDQo+DQo+ID4ganNwd2lraS50cmFuc2xhdG9yUmVhZGVyLmNhbWVsQ2FzZUxp bmtzID1mYWxzZQ0KPg0KPiA+DQo+DQo+ID4gIw0KPg0KPiA+ICMgIFRoaXMgc2V0cyB0aGUgZGVm YXVsdCB0ZW1wbGF0ZSB1c2VkIGJ5IHRoZSBXaWtpIGVuZ2luZS4gIFRoZQ0KPg0KPiA+IHRlbXBs YXRlcyAjICBsaXZlIGluIHRlbXBsYXRlcy88dGVtcGxhdGUgbmFtZT4uICBKU1BXaWtpIHdpbGwg YXR0ZW1wdA0KPg0KPiA+IHRvIGZpbmQgdGhyZWUgIyAgYmFzaWMgdGVtcGxhdGVzIGZyb20gdGhh dCBkaXJlY3Rvcnk6ICJWaWV3VGVtcGxhdGUsIg0KPiAiRWRpdFRlbXBsYXRlIg0KPg0KPiA+ICMg IGFuZCAiQWRtaW5UZW1wbGF0ZSINCj4NCj4gPiAjDQo+DQo+ID4gIyAgQnkgZGVmYXVsdCB0aGlz IGlzIGNhbGxlZCAiZGVmYXVsdCIuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFRoaXMgb3B0aW9uIGNh biBiZSBvdmVycmlkZGVuIG9uIGEgcGVyLXBhZ2UgYmFzaXMgdXNpbmcgdGhlIFNFVA0KPg0KPiA+ IGRpcmVjdGl2ZS4NCj4NCj4gPiAjDQo+DQo+ID4ganNwd2lraS50ZW1wbGF0ZURpciA9ZGVmYXVs dA0KPg0KPiA+DQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgVGhlIG5hbWUgb2YgdGhlIGZy b250IHBhZ2UuICBUaGlzIGlzIHRoZSBwYWdlIHRoYXQgZ2V0cyBsb2FkZWQgaWYNCj4NCj4gPiBu byAjICBvdGhlciBwYWdlIGlzIGxvYWRlZC4gIFVwIHVudGlsIEpTUFdpa2kgMS45LjI4LCBpdCB3 YXMgYWx3YXlzDQo+DQo+ID4gY2FsbGVkICMgICJNYWluIiwgYnV0IG5vdyB5b3UgY2FuIGVhc2ls eSBjaGFuZ2UgdGhlIGRlZmF1bHQgZnJvbnQgcGFnZQ0KPg0KPiA+IGhlcmUuICBJZiBub3QgIyAg ZGVmaW5lZCwgdXNlcyAiTWFpbiIuDQo+DQo+ID4gIw0KPg0KPiA+ICNqc3B3aWtpLmZyb250UGFn ZSA9IE1haW4NCj4NCj4gPg0KPg0KPiA+ICMNCj4NCj4gPiAjICBBbGxvdyBjcmVhdGlvbiBvZiBl bXB0eSBwYWdlcy4gRGVmYXVsdHMgdG8gZmFsc2UuDQo+DQo+ID4gIw0KPg0KPiA+ICNqc3B3aWtp LmFsbG93Q3JlYXRpb25PZkVtcHR5UGFnZXMgPSBmYWxzZQ0KPg0KPiA+DQo+DQo+ID4gIw0KPg0K PiA+ICMgIElmIHNldCB0byB0cnVlLCBhbGwgb3V0d2FyZCBsaW5rcyBoYXZlIGEgc21hbGwgaWNv biBhdHRhY2hlZC4gIFRoZQ0KPg0KPiA+IGljb24gIyAgY2FuIGJlIGZvdW5kIGZyb20gaW1hZ2Vz L291dC5wbmcuICBEZWZhdWx0IGlzIHRydWUuDQo+DQo+ID4gIw0KPg0KPiA+IGpzcHdpa2kudHJh bnNsYXRvclJlYWRlci51c2VPdXRsaW5rSW1hZ2UgPXRydWUNCj4NCj4gPg0KPg0KPiA+ICMNCj4N Cj4gPiAjICBTZXQgdGhpcyB0byB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYSBwZXJzb24gY2FuICJs b2NrIiBhIHBhZ2UgIyAgZm9yDQo+DQo+ID4gd2hpbGUgaGUgaXMgZWRpdGluZyBpdC4NCj4NCj4g PiAjDQo+DQo+ID4ganNwd2lraS5sb2NrRXhwaXJ5VGltZSA9NjANCj4NCj4gPg0KPg0KPiA+ICMN Cj4NCj4gPiAjICBTZWFyY2ggcHJvdmlkZXIgdXNlZCBmb3Igc2VhcmNoaW5nIHBhZ2VzIGFuZCBh dHRhY2htZW50cy4NCj4NCj4gPiAjICBEZWZhdWx0IGlzIEx1Y2VuZVNlYXJjaFByb3ZpZGVyLCBi dXQgeW91IGNhbiBmYWxsIGJhY2sgdG8NCj4NCj4gPiBCYXNpY1NlYXJjaFByb3ZpZGVyICMganNw d2lraS5zZWFyY2hQcm92aWRlciA9THVjZW5lU2VhcmNoUHJvdmlkZXINCj4NCj4gPg0KPg0KPiA+ ICMNCj4NCj4gPiAjICBJZiB5b3VyIHdpa2kncyBsYW5ndWFnZSBpcyBzb21ldGhpbmcgZWxzZSB0 aGFuIEVuZ2xpc2gsIHlvdSBtaWdodCAjDQo+DQo+ID4gd2FudCB0byB2aXNpdCBqYWthcnRhLmFw YWNoZS5vcmcvbHVjZW5lIGFuZCBkb3dubG9hZCBhIHByb3BlciBBbmFseXplcg0KPg0KPiA+ICMg IGZvciB5b3VyIGxhbmd1YWdlLiAgRGVmYXVsdCBpcyB0byB1c2UgU3RhbmRhcmRBbmFseXplci4N Cj4NCj4gPiAjDQo+DQo+ID4gI2pzcHdpa2kubHVjZW5lLmFuYWx5emVyID0NCj4NCj4gPiBvcmcu YXBhY2hlLmx1Y2VuZS5hbmFseXNpcy5zdGFuZGFyZC5TdGFuZGFyZEFuYWx5emVyDQo+DQo+ID4N Cj4NCj4gPg0KPg0KPiA+ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4NCj4gPiAjIyMjIyMNCj4NCj4gPiAjDQo+ DQo+ID4gIyAgU3BlY2lhbCBwYWdlIHJlZmVyZW5jZXMuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFRo ZSBVUkwgaXMgcmVsYXRpdmUgdG8gV2lraS5qc3AuICBIb3dldmVyLCBpZiB5b3UgdXNlICMgIGEg ZnVsbCwNCj4NCj4gPiBhYnNvbHV0ZSBVUkwsIHlvdSBjYW4gYWxzbyBkbyB0aGF0Lg0KPg0KPiA+ ICMNCj4NCj4gPiAjIEV4YW1wbGUgdG8gcmVkaXJlY3QgYWxsIHJlcXVlc3RzIHRvIGEgcGFnZSBj YWxsZWQgJ09yaWdpbmFsV2lraScNCj4NCj4gPiAjIHRvIHRoZSBvcmlnaW5hbCB3aWtpd2lraSBh dCBodHRwOi8vYzIuY29tL2NnaS93aWtpICMgIw0KPg0KPiA+IGpzcHdpa2kuc3BlY2lhbFBhZ2Uu T3JpZ2luYWxXaWtpID0gaHR0cDovL2MyLmNvbS9jZ2kvd2lraSAjICMgIE5vdGUNCj4NCj4gPiB0 aGF0IGl0IGlzIGVudGlyZWx5IHBvc3NpYmxlIHRvIG92ZXJyaWRlIGFueSBXaWtpIHBhZ2UsIGV2 ZW4gIyAgYW4NCj4NCj4gPiBleGlzdGluZyBvbmUgYnkgcmVkZWZpbmluZyBpdCBoZXJlLg0KPg0K PiA+ICMNCj4NCj4gPiBqc3B3aWtpLnNwZWNpYWxQYWdlLkNyZWF0ZUdyb3VwID1OZXdHcm91cC5q c3ANCj4NCj4gPiAjanNwd2lraS5zcGVjaWFsUGFnZS5GaW5kUGFnZSA9IFNlYXJjaC5qc3AganNw d2lraS5zcGVjaWFsUGFnZS5TZWFyY2gNCj4NCj4gPiA9U2VhcmNoLmpzcCBqc3B3aWtpLnNwZWNp YWxQYWdlLkxvZ2luID1Mb2dpbi5qc3ANCj4NCj4gPiBqc3B3aWtpLnNwZWNpYWxQYWdlLk5ld0dy b3VwID1OZXdHcm91cC5qc3ANCj4NCj4gPiBqc3B3aWtpLnNwZWNpYWxQYWdlLlVzZXJQcmVmZXJl bmNlcyA9VXNlclByZWZlcmVuY2VzLmpzcA0KPg0KPiA+IGpzcHdpa2kuc3BlY2lhbFBhZ2UuV29y a2Zsb3cgPVdvcmtmbG93LmpzcA0KPg0KPiA+DQo+DQo+ID4NCj4NCj4gPiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj DQo+DQo+ID4gIyMjIyMjIw0KPg0KPiA+ICMNCj4NCj4gPiAjICBQbHVnaW4gc2VhcmNoIHBhdGhz Lg0KPg0KPiA+ICMNCj4NCj4gPiAjICBEZWZpbmUgaGVyZSB0aGUgcGFja2FnZXMgeW91IHdhbnQg dG8gdXNlIGZvciBzZWFyY2hpbmcgcGx1Z2lucywgIw0KPg0KPiA+IHNlcGFyYXRlZCB3aXRoIGNv bW1hcy4NCj4NCj4gPiAjICBGb3IgZXhhbXBsZSwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0 byBhZGQNCj4NCj4gPiAib3JnLm15b3JnYW5pc2F0aW9uLmpzcHdpa2kubXlwbHVnaW5zIg0KPg0K PiA+ICMgIGFuZCAiY29tLmZvb2Jhci5teXBsdWdpbnMiIHRvIHRoZSBzZWFyY2ggcGF0aC4NCj4N Cj4gPiAjDQo+DQo+ID4gIyAganNwd2lraS5wbHVnaW4uc2VhcmNoUGF0aCA9DQo+DQo+ID4gb3Jn Lm15b3JnYW5pc2F0aW9uLmpzcHdpa2kubXlwbHVnaW5zLGNvbS5mb29iYXIubXlwbHVnaW5zDQo+ DQo+ID4gIw0KPg0KPiA+ICMgIFRoZSBkZWZhdWx0IHBhdGggaXMgImNvbS5lY3lyZC5qc3B3aWtp LnBsdWdpbiIsIGFuZCBpdCB3aWxsIGJlDQo+DQo+ID4gYWx3YXlzICMgIHRoZSBsYXN0IGl0ZW0g b24gdGhlIHBhdGguICBUaGlzIGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUNCj4NCj4gPiBKU1BXaWtp IGRlZmF1bHQgIyAgcGx1Z2lucy4gIE5vdGUgdGhhdCB5b3UgYXJlIG9ubHkgYWRkaW5nIHRvIHRo ZQ0KPg0KPiA+IHBhdGgsIG5vdCByZXBsYWNpbmcgaXQgKGllLg0KPg0KPiA+ICMgIHRoZSBkZWZh dWx0IHBhdGggaXMgbmV2ZXIgcmVtb3ZlZC4pICMgIyAgSWYgdGhlIHBhdGggaXMgbm90DQo+DQo+ ID4gc3BlY2lmaWVkIChhbmQgdGhlcmUgaXMgbm8ganNwd2lraV9tb2R1bGUueG1sIHdpdGggdGhl ICMgIHBsdWdpbiBKQVIpLA0KPg0KPiA+IHlvdSBuZWVkIHRvIGVpdGhlciBkZWNsYXJlIHRoZSBz ZWFyY2ggcGF0aCBieSBoYW5kLCBvciAjICB1c2UgYSBmdWxseQ0KPg0KPiA+IHF1YWxpZmllZCBu YW1lLg0KPg0KPiA+ICMNCj4NCj4gPiAjICBJZiB5b3UgYXJlIGEgcGx1Z2luIGRldmVsb3Blciwg cGxlYXNlIGNvbnNpZGVyIGRlcGxveWluZyBhDQo+DQo+ID4ganNwd2lraV9tb2R1bGUueG1sICMg IGZpbGUgd2l0aCB5b3VyIHBsdWdpbiBKQVIsIHNvIHRoYXQgdGhlIHVzZXIgZG9lcw0KPg0KPiA+ IG5vdCBoYXZlIHRvIHNldCB0aGUgc2VhcmNoUGF0aC4NCj4NCj4gPiAjDQo+DQo+ID4gIyAganNw d2lraS5wbHVnaW4uc2VhcmNoUGF0aCA9DQo+DQo+ID4gb3JnLm15b3JnYW5pc2F0aW9uLmpzcHdp a2kubXlwbHVnaW5zLGNvbS5mb29iYXIubXlwbHVnaW5zDQo+DQo+ID4gIw0KPg0KPiA+IGpzcHdp a2kucGx1Z2luLnNlYXJjaFBhdGggPQ0KPg0KPiA+DQo+DQo+ID4NCj4NCj4gPiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjDQo+DQo+ID4gIyMjIyMjIw0KPg0KPiA+ICMNCj4NCj4gPiAjICBQYWdlIGZpbHRlcnMNCj4N Cj4gPiAjDQo+DQo+ID4gIyAgTm9ybWFsbHksIHRoZSBmaWx0ZXIgY29uZmlndXJhdGlvbiBpcyBp biB5b3VyIFdFQi1JTkYvIGRpcmVjdG9yeSwNCj4NCj4gPiBzbyB5b3UgIyAgZG8gbm90IG5lZWQg dG8gZ28gYW5kIHNwZWNpZnkgdGhpcy4gIEhvd2V2ZXIsIGlmIHlvdXINCj4NCj4gPiBmaWx0ZXJz LnhtbCBsaXZlIHNvbWV3aGVyZSAjICBlbHNlLCB5b3UnbGwgaGF2ZSB0byBzcGVjaWZ5IGl0IGhl cmUuDQo+DQo+ID4gIw0KPg0KPiA+ICNqc3B3aWtpLmZpbHRlckNvbmZpZyA9IC9zb21lL3BhdGgv dG8veW91ci9maWx0ZXJzLnhtbA0KPg0KPiA+DQo+DQo+ID4NCj4NCj4gPiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj DQo+DQo+ID4gIyMjIyMjIw0KPg0KPiA+ICMNCj4NCj4gPiAjICBVUkwgQ29uc3RydWN0b3INCj4N Cj4gPiAjDQo+DQo+ID4gIyAgSlNQV2lraSBieSBkZWZhdWx0IGdlbmVyYXRlcyBwYWdlIGFuZCBh dHRhY2htZW50IGxpbmtzIHRoYXQgdXNlIEpTUA0KPg0KPiA+ICMgIHBhZ2VzIGFuZCByZXF1ZXN0 IHBhcmFtZXRlcnMuIEl0IGNhbiBhbHNvIHVzZSBhbHRlcm5hdGl2ZSBVUkwgIw0KPg0KPiA+IGNv bnN0cnVjdG9ycyBzbyB0aGF0IFVSTCBwYWdlcyByZXNlbWJsZSB0cmFkaXRpb25hbCB3ZWJzaXRl IHBhdGhzLCB0b28uDQo+DQo+ID4gIyAgWW91IGhhdmUgdGhyZWUgY2hvaWNlcyBmb3IgZ2VuZXJh dGluZyBVUkxzOg0KPg0KPiA+ICMNCj4NCj4gPiAjICAgICBEZWZhdWx0VVJMQ29uc3RydWN0b3Ig LSB1c2VzIEpTUHMgZm9yIGFsbCByZWZlcmVuY2VzOg0KPg0KPiA+ICMgICAgICAgICBodHRwOi8v bXl3aWtpLmNvbS9qc3B3aWtpL1dpa2kuanNwP3BhZ2U9TWFpbg0KPg0KPiA+ICMgICAgICAgICBo dHRwOi8vbXl3aWtpLmNvbS9qc3B3aWtpL0VkaXQuanNwP3BhZ2U9TWFpbg0KPg0KPiA+ICMNCj4N Cj4gPiAjICAgICBTaG9ydFVSTENvbnN0cnVjdG9yIC0gdXNlcyBwYXRoLWxpa2UgcmVmZXJlbmNl IHN0eWxlOg0KPg0KPiA+ICMgICAgICAgICBodHRwOi8vbXl3aWtpLmNvbS9qc3B3aWtpL3dpa2kv TWFpbg0KPg0KPiA+ICMgICAgICAgICBodHRwOi8vbXl3aWtpLmNvbS9qc3B3aWtpL3dpa2kvTWFp bj9kbz1FZGl0DQo+DQo+ID4gIw0KPg0KPiA+ICMgICAgIFNob3J0Vmlld1VSTENvbnN0cnVjdG9y IC0gdXNlcyBwYXRoLWxpa2UgcmVmZXJlbmNlcyBmb3Igdmlld3M7IEpTUHMNCj4NCj4gPiBmb3Ig ZXZlcnl0aGluZyBlbHNlOg0KPg0KPiA+ICMgICAgICAgICBodHRwOi8vbXl3aWtpLmNvbS9qc3B3 aWtpL3dpa2kvTWFpbg0KPg0KPiA+ICMgICAgICAgICBodHRwOi8vbXl3aWtpLmNvbS9qc3B3aWtp L0VkaXQuanNwP3BhZ2U9TWFpbg0KPg0KPiA+ICMNCj4NCj4gPiAjICBPZiBjb3Vyc2UsIHlvdSBj YW4gYWxzbyB3cml0ZSB5b3VyIG93biBpbXBsZW1lbnRhdGlvbiBpZiB5b3Ugd2lzaC4NCj4NCj4g PiAjDQo+DQo+ID4gIyAgRm9yIGVpdGhlciBvZiB0aGUgU2hvcnRVUkwgY29uc3RydWN0b3JzLCB5 b3UgY2FuIGFsc28gc3BlY2lmeSBhICMNCj4NCj4gPiBwcmVmaXggcGF0aCB0byBnbyBpbiBmcm9u dCBvZiBwYWdlIG5hbWVzLiBCeSBkZWZhdWx0LCB0aGUgIyAgcHJlZml4IGlzDQo+DQo+ID4gJ3dp a2kvJy4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgQmUgd2FybmVkIHRoYXQgdGhlIFNob3J0VVJMQ29u c3RydWN0b3IgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggYW55DQo+DQo+ID4gb3RoZXIgZWRpdG9y ICMgIGV4Y2VwdCB0aGUgYnVpbHQtaW4gcGxhaW50ZXh0IG9uZS4gIFVzZQ0KPg0KPiA+IFNob3J0 Vmlld1VSTENvbnN0cnVjdG9yIGlmIHlvdSBwbGFuICMgIHRvIGVuYWJsZSBhbnkgb3RoZXIgb25l cy4NCj4NCj4gPiAjDQo+DQo+ID4gI2pzcHdpa2kudXJsQ29uc3RydWN0b3IgPSBEZWZhdWx0VVJM Q29uc3RydWN0b3INCj4NCj4gPiAjanNwd2lraS51cmxDb25zdHJ1Y3RvciA9IFNob3J0Vmlld1VS TENvbnN0cnVjdG9yDQo+DQo+ID4gI2pzcHdpa2kuc2hvcnRVUkxDb25zdHJ1Y3Rvci5wcmVmaXgg PSB3aWtpLw0KPg0KPiA+DQo+DQo+ID4NCj4NCj4gPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+DQo+ID4gIyMj IyMjIw0KPg0KPiA+ICMNCj4NCj4gPiAjIFJlbmRlcmluZw0KPg0KPiA+ICMNCj4NCj4gPiAjIEF0 IHRoaXMgdGltZSwgZW50cmllcyBoZXJlIGFyZSBzdHJpY3RseSBmb3IgZGV2ZWxvcG1lbnQgYW5k IHRlc3RpbmcuDQo+DQo+ID4gIw0KPg0KPiA+DQo+DQo+ID4gIyBEaXNhYmxlIGludGVybmFsIGNh Y2hpbmcgb2YgcHJlLWNvbnN0cnVjdGVkIGRvY3VtZW50IERPTXMuDQo+DQo+ID4gIyBUaGlzIG1h eSBiZSBuZWNlc3NhcnkgaWYgeW91IHJlcXVpcmUgY3VzdG9tIHJlbmRlcmluZyB0aGF0IG11c3Qg bm90DQo+DQo+ID4gYmUgY2FjaGVkLg0KPg0KPiA+ICNqc3B3aWtpLnJlbmRlcmluZ01hbmFnZXIu dXNlQ2FjaGUgPSBmYWxzZQ0KPg0KPiA+DQo+DQo+ID4NCj4NCj4gPg0KPg0KPiA+ICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMNCj4NCj4gPiAjIyMjIyMjDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFNlY3VyaXR5LCBhdXRo ZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbiAjDQo+DQo+ID4NCj4NCj4gPiAjICBKU1BXaWtp IHN1cHBvcnRzIGEgcGx1Z2luLWJhc2VkIGludGVyZmFjZSBmb3IgdGFsa2luZyB0byBkaWZmZXJl bnQNCj4NCj4gPiAjICBraW5kcyBvZiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbiBz eXN0ZW1zLiBCeQ0KPiAiYXV0aGVudGljYXRpb24sIg0KPg0KPiA+ICMgIHdlIG1lYW4gYSBzeXN0 ZW0gZm9yIGxvZ2dpbmcgaW4gYSB1c2VyIHRvIGVzdGFibGlzaCB0aGVpciBpZGVudGl0eS4NCj4N Cj4gPiAjICBCeSAiYXV0aG9yaXphdGlvbiwiIHdlIG1lYW4gYSBzeXN0ZW0gZm9yIGZpZ3VyaW5n IG91dCB3aGF0IGFjdGlvbnMNCj4NCj4gPiAjICB1c2VycyBjYW4gcGVyZm9ybSBiYXNlZCBvbiB0 aGVpciBhdXRoZW50aWNhdGVkIGlkZW50aXRpZXMuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIEZvciB1 c2VycyBsb29raW5nIHRvIGdldCBzdGFydGVkIHF1aWNrbHksIHRoZSBkZWZhdWx0IHNldHRpbmdz DQo+DQo+ID4gYmVsb3cgIyAgc2hvdWxkIHdvcmsgZmluZS4gSW4gYWRkaXRpb24gdG8gdGhlIHBy b3BlcnRpZXMgYmVsb3csIHlvdQ0KPg0KPiA+IG1heSBhbHNvICMgIHdhbnQgdG8gbW9kaWZ5IHRo ZSBzZWN1cml0eSBwb2xpY3kgZmlsZQ0KPg0KPiA+IFdFQi1JTkYvanNwd2lraS5wb2xpY3kuIFNl ZSAjICB0aGUgcG9saWN5IGZpbGUgZm9yIG1vcmUgZGV0YWlscy4NCj4NCj4gPiAjDQo+DQo+ID4g IyAgQVVUSEVOVElDQVRJT04NCj4NCj4gPiAjDQo+DQo+ID4gIyAgRm9yIGF1dGhlbnRpY2F0aW9u LCBKU1BXaWtpIHVzZXMgSkFBUyAoSmF2YSBBdXRoZW50aWNhdGlvbiBhbmQNCj4NCj4gPiBBdXRo b3JpemF0aW9uICMgIFNlcnZpY2UpIGluIGNvbWJpbmF0aW9uIHdpdGggYSBzZXJ2bGV0IGZpbHRl ciB0aGF0DQo+DQo+ID4gcGlja3MgdXAgYW55IGNyZWRlbnRpYWxzICMgIHNldCBieSB0aGUgc2Vy dmxldCBjb250YWluZXIuIFRoZQ0KPg0KPiA+IEF1dGhlbnRpY2F0aW9uIHN5c3RlbSBpcyBjb25m aWd1cmVkIGJlbG93Lg0KPg0KPiA+ICMNCj4NCj4gPiAjICBZb3UgbXVzdCBjaG9vc2UgZWl0aGVy IChBKSBDb250YWluZXIgb3IgKEIpIEN1c3RvbSBhdXRoZW50aWNhdGlvbi4NCj4NCj4gPiAoQikg aXMgdGhlIGRlZmF1bHQuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIEEpIENPTlRBSU5FUiBBVVRIRU5U SUNBVElPTg0KPg0KPiA+ICMgIEpTUFdpa2kgd2lsbCBhbHdheXMgKHBhc3NpdmVseSkgY29sbGVj dCBjcmVkZW50aWFscyBzdXBwbGllZCBieQ0KPg0KPiA+IHlvdXIgc2VydmxldCAjICBjb250YWlu ZXIsIHZpYQ0KPg0KPiA+IEh0dHBTZXJ2bGV0UmVxdWVzdC5nZXRVc2VyUHJpbmNpcGFsL2dldFJl bW90ZSB1c2VyLiBZb3UgZG8gbm90ICMgIG5lZWQNCj4NCj4gPiB0byBkbyBhbnl0aGluZyB0byBl bmFibGUgdGhpcy4gSW4gYWRkaXRpb24sIHlvdSBjYW4gY2F1c2UgSlNQV2lraQ0KPg0KPiA+IHVz ZXJzICMgIHRvIGxvZyBpbiB0byB0aGUgd2ViIGNvbnRhaW5lciBieSB1bmNvbW1lbnRpbmcgdGhl IHRoZQ0KPg0KPiA+IDxzZWN1cml0eS1jb25zdHJhaW50PiAjICBlbGVtZW50cyBpbiBXRUItSU5G L3dlYi54bWwuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIEIpIENVU1RPTSBBVVRIRU5USUNBVElPTg0K Pg0KPiA+ICMgIElmIHlvdSBkbyBub3Qgd2lzaCB0byB1c2UgY29udGFpbmVyLW1hbmFnZWQgYXV0 aGVudGljYXRpb24sIHlvdSBjYW4NCj4NCj4gPiB1c2UgSlNQV2lraSdzICMgIG93biBjdXN0b20g YXV0aGVudGljYXRpb24gc3lzdGVtLiBUaGlzIHVzZXMgYSBKQUFTDQo+DQo+ID4gTG9naW5Nb2R1 bGUgKHN1cHBsaWVkDQo+DQo+ID4gYmVsb3cpDQo+DQo+ID4gIyAgdG8gbG9nIGluIHRoZSB1c2Vy LiBZb3UgY2FuIHVzZSBhbnkgSkFBUyBMb2dpbk1vZHVsZSB5b3Ugd2FudC4NCj4NCj4gPiAjICBU aGUgZGVmYXVsdCBjbGFzcyBpcw0KPg0KPiA+IGNvbS5lY3lyZC5qc3B3aWtpLmF1dGgubG9naW4u VXNlckRhdGFiYXNlTG9naW5Nb2R1bGUsDQo+DQo+ID4gIyAgd2hpY2ggY29tcGFyZXMgdGhlIHN1 cHBsaWVkIHVzZXJuYW1lIGFuZCBoYXNoZWQgcGFzc3dvcmQgd2l0aCB0aGUNCj4NCj4gPiB2YWx1 ZXMgc3RvcmVkICMgIGluIHRoZSBjb25maWd1cmVkIFVzZXJEYXRhYmFzZSAoc2VlIFVTRVIgREFU QUJBU0UNCj4NCj4gPiBiZWxvdykuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFN1cHBseSB0aGUgSkFB UyBMb2dpbk1vZHVsZSBjbGFzcyB1c2VkIGZvciBjdXN0b20gYXV0aGVudGljYXRpb24gaGVyZS4N Cj4NCj4gPiAjICBUaGUgaW1wbGVtZW50YXRpb24gTVVTVCBoYXZlIGEgemVyby1hcmd1bWVudCBj b25zdHJ1Y3RvciAoYXMgbm90ZWQNCj4NCj4gPiBpbiB0aGUgIyAgamF2YXguc2VjdXJpdHkuYXV0 aC5zcGkuTG9naW5Nb2R1bGUgSmF2YWRvY3MpLg0KPg0KPiA+IGpzcHdpa2kubG9naW5Nb2R1bGUu Y2xhc3MNCj4NCj4gPiA9Y29tLmVjeXJkLmpzcHdpa2kuYXV0aC5sb2dpbi5Vc2VyRGF0YWJhc2VM b2dpbk1vZHVsZQ0KPg0KPiA+DQo+DQo+ID4gIw0KPg0KPiA+ICMgSkFBUyBMb2dpbkNvbnRleHQg cGFyYW1ldGVycyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIExvZ2luTW9kdWxlLg0KPg0KPiA+IE5v dGUgdGhhdCAncGFyYW0xJw0KPg0KPiA+ICMgIGV0Yy4gc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgg dGhlIGFjdHVhbCBwYXJhbWV0ZXIgbmFtZXMuIFRoZQ0KPg0KPiA+IHBhcmFtZXRlciBuYW1lcyBh bmQgIyB2YWx1ZXMgd2lsbCBiZSBsb2FkZWQgdG8gYSBNYXAgYW5kIHBhc3NlZCB0byB0aGUNCj4N Cj4gPiBMb2dpbk1vZHVsZSBhcyB0aGUgJ29wdGlvbnMnIHBhcmFtZXRlciAjIHdoZW4gaXRzIGlu aXRpYWxpemUoKSBtZXRob2QNCj4NCj4gPiBpcyBjYWxsZWQuIFRoZSBkZWZhdWx0IFVzZXJEYXRh YmFzZUxvZ2luTW9kdWxlIGNsYXNzIGRvZXMgIyBub3QgbmVlZA0KPg0KPiA+IGFueSBvcHRpb25z Lg0KPg0KPiA+ICNqc3B3aWtpLmxvZ2luTW9kdWxlLm9wdGlvbnMucGFyYW0xID0gdmFsdWUxDQo+ DQo+ID4gI2pzcHdpa2kubG9naW5Nb2R1bGUub3B0aW9ucy5wYXJhbTIgPSB2YWx1ZTINCj4NCj4g Pg0KPg0KPiA+ICMNCj4NCj4gPiAjICBDb29raWUgYXV0aGVudGljYXRpb24gJiBhc3NlcnRpb24N Cj4NCj4gPiAjDQo+DQo+ID4gIyAgSWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gInRydWUiLCB0aGVu IEpTUFdpa2kgd2lsbCBhbGxvdyB5b3UgdG8NCj4gImFzc2VydCINCj4NCj4gPiBhbg0KPg0KPiA+ ICMgIGlkZW50aXR5IHVzaW5nIGEgY29va2llLiAgSXQncyBzdGlsbCBjb25zaWRlcmVkIHRvIGJl IHVuc2FmZSwganVzdA0KPg0KPiA+IGxpa2Ugbm8gIyAgbG9naW4gYXQgYWxsLCBidXQgaXQgaXMg dXNlZnVsIHdoZW4geW91IGhhdmUgbm8gbmVlZCB0bw0KPg0KPiA+IGZvcmNlIGV2ZXJ5b25lIHRv IGxvZ2luLg0KPg0KPiA+ICMNCj4NCj4gPiAjICBCeSBkZWZhdWx0LCB0aGlzIGlzIG9uLg0KPg0K PiA+ICMNCj4NCj4gPiAjanNwd2lraS5jb29raWVBc3NlcnRpb25zPXRydWUNCj4NCj4gPg0KPg0K PiA+ICMNCj4NCj4gPiAjICBJZiB5b3Ugd291bGQgbGlrZSB0byBrZWVwIHlvdXIgdXNlcnMgbG9n Z2VkIGluIGZvciB3ZWVrcyBhdCBhIHRpbWUsDQo+DQo+ID4geW91IGNhbiAjICB0dXJuIG9uICJj b29raWUgYXV0aGVudGljYXRpb24iIGZlYXR1cmUuICBIb3dldmVyLCB0aGlzDQo+DQo+ID4gY29t ZXMgd2l0aCBpbXBvcnRhbnQgIyAgc2VjdXJpdHkgY2F2ZWF0czoNCj4NCj4gPiAjICAxKSBVc2Vy IHdpbGwgc3RheSBsb2dnZWQgaW4gaW50byB5b3VyIHN5c3RlbSBmb3Igd2Vla3MuICBUaGlzIG1l YW5zDQo+DQo+ID4gdGhhdCBpZg0KPg0KPiA+ICMgICAgIHNvbWVvbmUgbWFuYWdlcyB0byBuYWIg dGhlIGNvb2tpZSBkdXJpbmcgdGhpcyB0aW1lLCB0aGV5IGNhbg0KPiBwcmV0ZW5kDQo+DQo+ID4g dG8NCj4NCj4gPiAjICAgICBiZSB0aGF0IHVzZXIuDQo+DQo+ID4gIyAgMikgVGhlIG1hcHBpbmdz IGJldHdlZW4gY29va2llcyBhbmQgdXNlcnMgYXJlIHdyaXR0ZW4gaW4geW91cg0KPg0KPiA+IGZp bGVzeXN0ZW0sDQo+DQo+ID4gIyAgICAgaW4gJGpzcHdpa2kud29ya0Rpci9sb2dpbmNvb2tpZXMu ICBBY2Nlc3MgdG8gdGhpcyBkaXJlY3RvcnkgbWVhbnMNCj4NCj4gPiB0aGF0DQo+DQo+ID4gIyAg ICAgdGhlIGFiaWxpdHkgdG8gZmFrZSBhbnlvbmUgaW4gdGhlIHdpa2ksIHNvIHBsZWFzZSBtYWtl IHN1cmUgdGhhdA0KPiBvbmx5DQo+DQo+ID4gIyAgICAgdGhlIHByb3BlciBhZG1pbiBoYXMgcmVh ZCBhY2Nlc3MgdG8gdGhpcyBkaXJlY3RvcnkuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIEJ5IGRlZmF1 bHQsIGNvb2tpZSBhdXRoZW50aWNhdGlvbiBpcyBvZmYuDQo+DQo+ID4gIw0KPg0KPiA+ICNqc3B3 aWtpLmNvb2tpZUF1dGhlbnRpY2F0aW9uPWZhbHNlDQo+DQo+ID4NCj4NCj4gPiAjDQo+DQo+ID4g IyAgRGVmaW5lcyBob3cgbWFueSBkYXlzIHRoZSBjb29raWVzIGFyZSBrZXB0LCBhbmQgaG93IG9m dGVuIHRoZQ0KPg0KPiA+IHBlb3BsZSBoYXZlIHRvIGxvZyBpbi4NCj4NCj4gPiAjICBUaGUgZGVm YXVsdCBpcyB0d28gd2Vla3MsIGkuZS4gMTQgZGF5cy4gIElmIHlvdSBuZWVkIGEgc2hvcnRlcg0K Pg0KPiA+IHBlcmlvZCB0aGFuIG9uZSBkYXksICMgIHR1cm4gb2ZmIGNvb2tpZSBhdXRoZW50aWNh dGlvbiwgdGhlbiB0d2Vhaw0KPg0KPiA+IHlvdXIgd2ViLnhtbCB0byBhbGxvdyBmb3IgbG9uZ2Vy IHNlc3Npb25zLg0KPg0KPiA+ICMNCj4NCj4gPiAjanNwd2lraS5jb29raWVBdXRoZW50aWNhdGlv bi5leHBpcnk9MTQNCj4NCj4gPg0KPg0KPiA+ICMNCj4NCj4gPiAjDQo+DQo+ID4gIyAgQVVUSE9S SVpBVElPTg0KPg0KPiA+ICMNCj4NCj4gPiAjICBGb3IgYXV0aG9yaXphdGlvbiwgSlNQV2lraSBo YXMgYSB0d28tdGllciBzeXN0ZW0uIFdoZW4gd2Ugd2FudCB0byAjDQo+DQo+ID4gZGV0ZXJtaW5l IHdoZXRoZXIgYSB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gYSBjZXJ0YWluIGFjdGlv biwgIw0KPg0KPiA+IHdlIGZpcnN0IGNvbnN1bHQgKEEpIGFuIGV4dGVybmFsICJhdXRob3JpemVy IiB0byBkZXRlcm1pbmUgaWYgdGhlIHVzZXINCj4NCj4gPiAjICBpcyBhIG1lbWJlciBvZiB0aGUg cmVxdWlyZWQgcm9sZS4gSW4gYWRkaXRpb24gdG8gY2hlY2tpbmcgaXRzDQo+DQo+ID4gZXh0ZXJu YWwgIyAgYXV0aG9yaXplciwgaXQgYWxzbyBjaGVja3MgKEIpIGl0cyBHcm91cE1hbmFnZXIgZm9y DQo+IHdpa2ktbWFuYWdlZCBncm91cHMuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIEEpIEVYVEVSTkFM IEFVVEhPUklaQVRJT04NCj4NCj4gPiAjICBCeSBkZWZhdWx0LCBKU1BXaWtpIHVzZXMgdGhlIHNl cnZsZXQgY29udGFpbmVyJ3MgYXV0aG9yaXphdGlvbg0KPg0KPiA+IHNlcnZpY2UgIyAgZm9yIHRv IGNoZWNrIHdoYXQgcm9sZXMgdGhlIHVzZXIgYmVsb25ncyB0byAodGhhdCBpcywgaXQNCj4NCj4g PiBjYWxscyAjICBIdHRwU2VydmxldFJlcXVlc3QuaXNVc2VySW5Sb2xlKFN0cmluZykpLiBBZnRl ciB0aGUgdXNlcg0KPg0KPiA+IGF1dGhlbnRpY2F0ZXMsICMgIHRoZSBkZWZhdWx0IEF1dGhvcml6 ZXIgKFdlYkNvbnRhaW5lckF1dGhvcml6ZXIpDQo+DQo+ID4gY2hlY2tzIHRvIHNlZSBpZiB0aGUg dXNlciAjICBiZWxvbmdzIHRvIHRoZSByb2xlcyBsaXN0ZWQgaW4gd2ViLnhtbA0KPg0KPiA+IHVz aW5nIDxzZWN1cml0eS1yb2xlPi88cm9sZS1uYW1lPiBvciAjICA8YXV0aC1jb25zdHJhaW50Pi88 cm9sZS1uYW1lPg0KPg0KPiA+IGVsZW1lbnRzLiBIb3dldmVyLCB5b3UgY2FuIHVzZSBhbm90aGVy ICMgIEF1dGhvcml6ZXIgaWYgeW91IHdpc2g7DQo+DQo+ID4gc3BlY2lmeSB0aGF0IGNsYXNzIGhl cmUuDQo+DQo+ID4NCj4NCj4gPiBqc3B3aWtpLmF1dGhvcml6ZXINCj4NCj4gPiA9Y29tLmVjeXJk LmpzcHdpa2kuYXV0aC5hdXRob3JpemUuV2ViQ29udGFpbmVyQXV0aG9yaXplcg0KPg0KPiA+DQo+ DQo+ID4gIyAgQikgR1JPVVBTDQo+DQo+ID4gIyAgQXMgYW4gYWRkaXRpb25hbCBzb3VyY2Ugb2Yg YXV0aG9yaXphdGlvbiwgdXNlcnMgY2FuIGJlbG9uZyB0bw0KPg0KPiA+IGRpc2NyZXRpb25hcnkg IyAgIndpa2kgZ3JvdXBzIiB0aGF0IHRoZSB1c2VycyBtYW5hZ2UgdGhlbXNlbHZlcy4gV2lraQ0K Pg0KPiA+IGdyb3VwcyBhcmUgc3RvcmVkIGluIGEgIyAgR3JvdXBEYXRhYmFzZS4gVGhlIGRlZmF1 bHQgZ3JvdXAgZGF0YWJhc2UNCj4NCj4gPiB1c2VzIGFuIFhNTCBmaWxlIGZvciBwZXJzaXN0ZW50 ICMgIHN0b3JhZ2UuIE92ZXJyaWRlIHdpdGggeW91ciBvd24NCj4NCj4gPiBHcm91cERhdGFiYXNl IGltcGxlbWVudGF0aW9uIHdpdGggdGhpcw0KPg0KPiA+IHByb3BlcnR5Og0KPg0KPiA+DQo+DQo+ ID4ganNwd2lraS5ncm91cGRhdGFiYXNlDQo+DQo+ID4gPWNvbS5lY3lyZC5qc3B3aWtpLmF1dGgu YXV0aG9yaXplLlhNTEdyb3VwRGF0YWJhc2UNCj4NCj4gPg0KPg0KPiA+ICMgIFRoZSBkZWZhdWx0 IGdyb3VwIGRhdGFiYXNlIGltcGxlbWVudGF0aW9uIHN0b3JlcyBtZW1iZXIgbGlzdHMgIyAgaW4N Cj4NCj4gPiBhbiBYTUwgZmlsZS4gVGhlIGxvY2F0aW9uIG9mIHRoaXMgZmlsZSBzaG91bGQgYmUg aW4gYSBzZWN1cmUgZGlyZWN0b3J5DQo+DQo+ID4gIyAgaW4gdGhlIGZpbGVzeXN0ZW07IGZvciBl eGFtcGxlLCBpbiAvZXRjIG9yIHlvdXIgc2VydmxldCBjb250YWluZXIncw0KPg0KPiA+ICMgIGNv bmZpZ3VyYXRpb24gZGlyZWN0b3J5IElmIHlvdSBkbyBub3Qgc3VwcGx5IGEgdmFsdWUgZm9yIHRo aXMNCj4NCj4gPiBwcm9wZXJ0eSwgIyAgYSBibGFuayBncm91cCBkYXRhYmFzZSB3aWxsIGJlIGlu aXRpYWxpemVkIGluIHRoZQ0KPg0KPiA+IFdFQi1JTkYvIGRpcmVjdG9yeSBvZiB0aGUgIyAgZGVw bG95ZWQgd2ViYXBwLiBTaW5jZSB0aGVzZSBkaXJlY3Rvcmllcw0KPg0KPiA+IGFyZSBvZnRlbiBv dmVyd3JpdHRlbiB3aGVuIHdlYmFwcHMgIyAgYXJlIHVuZGVwbG95ZWQgb3IgcmVkZXBsb3llZCwN Cj4NCj4gPiB5b3Ugc2hvdWxkIHByb2JhYmx5IHNldCB0aGlzIHByb3BlcnR5IHRvICMgIHNvbWV0 aGluZyB1c2VmdWwgYXMgc29vbg0KPg0KPiA+IGFzIHlvdSBjYW4uIEJ1dCBmb3IgdGVzdCB3aWtp cywgaXQncyBwcm9iYWJseSAjICBvayB0byBsZWF2ZSB0aGlzDQo+DQo+ID4gdW4tc2V0LCBhcyBs b25nIGFzIHVzZXJzIGtub3cgdGhhdCB0aGVpciBncm91cHMgY291bGQgIyAgImRpc2FwcGVhciIN Cj4NCj4gPiBpZiB0aGUgd2lraSBhcHAgaXMgZXZlciByZWRlcGxveWVkLg0KPg0KPiA+DQo+DQo+ ID4gI2pzcHdpa2kueG1sR3JvdXBEYXRhYmFzZUZpbGUgPSAvZXRjL3RvbWNhdC9ncm91cGRhdGFi YXNlLnhtbA0KPg0KPiA+DQo+DQo+ID4gIyAgVVNFUiBEQVRBQkFTRQ0KPg0KPiA+ICMgIFVzZXIn cyB3aWtpIHByb2ZpbGVzIGFyZSBzdG9yZWQgaW4gYSBVc2VyRGF0YWJhc2UuIFRoZSBkZWZhdWx0 IHVzZXINCj4NCj4gPiBkYXRhYmFzZSAjICB1c2VzIGFuIFhNTCBmaWxlIGZvciBwZXJzaXN0ZW50 IHN0b3JhZ2UuDQo+DQo+ID4gIyAgT3ZlcnJpZGUgd2l0aCB5b3VyIG93biBVc2VyRGF0YWJhc2Ug aW1wbGVtZW50YXRpb24gd2l0aCB0aGlzIHByb3BlcnR5Og0KPg0KPiA+DQo+DQo+ID4ganNwd2lr aS51c2VyZGF0YWJhc2UgPWNvbS5lY3lyZC5qc3B3aWtpLmF1dGgudXNlci5YTUxVc2VyRGF0YWJh c2UNCj4NCj4gPg0KPg0KPiA+ICMgIFRoZSBkZWZhdWx0IHVzZXIgZGF0YWJhc2UgaW1wbGVtZW50 YXRpb24gc3RvcmVzIHVzZXJuYW1lcyBhbmQNCj4NCj4gPiBwYXNzd29yZHMgIyAgaW4gYW4gWE1M IGZpbGUuIFBhc3N3b3JkcyBhcmUgU0hBLTEgaGFzaGVkLiBUaGUgbG9jYXRpb24NCj4NCj4gPiBv ZiB0aGlzIGZpbGUgIyAgc2hvdWxkIGJlIGluIGEgc2VjdXJlIGRpcmVjdG9yeSBpbiB0aGUgZmls ZXN5c3RlbTsgZm9yDQo+DQo+ID4gZXhhbXBsZSwgaW4gIyAgL2V0YyBvciB5b3VyIHNlcnZsZXQg Y29udGFpbmVyJ3MgY29uZmlndXJhdGlvbiBkaXJlY3RvcnkuDQo+DQo+ID4gIyAgSWYgeW91IGRv IG5vdCBzdXBwbHkgYSB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eSwgYSBibGFuayB1c2VyDQo+DQo+ ID4gZGF0YWJhc2UgIyAgd2lsbCBiZSBpbml0aWFsaXplZCBpbiB0aGUgV0VCLUlORi8gZGlyZWN0 b3J5IG9mIHRoZSBkZXBsb3llZA0KPiB3ZWJhcHAuDQo+DQo+ID4gIyAgU2luY2UgdGhlc2UgZGly ZWN0b3JpZXMgYXJlIG9mdGVuIG92ZXJ3cml0dGVuIHdoZW4gd2ViYXBwcyBhcmUgIw0KPg0KPiA+ IHVuZGVwbG95ZWQgb3IgcmVkZXBsb3llZCwgeW91IHNob3VsZCBwcm9iYWJseSBzZXQgdGhpcyBw cm9wZXJ0eSB0byAjDQo+DQo+ID4gc29tZXRoaW5nIHVzZWZ1bCBhcyBzb29uIGFzIHlvdSBjYW4u IEJ1dCBmb3IgdGVzdCB3aWtpcywgaXQncyBwcm9iYWJseQ0KPg0KPiA+ICMgIG9rIHRvIGxlYXZl IHRoaXMgdW4tc2V0LCBhcyBsb25nIGFzIHVzZXJzIGtub3cgdGhhdCB0aGVpciBwcm9maWxlcw0K Pg0KPiA+IGNvdWxkICMgICJkaXNhcHBlYXIiIGlmIHRoZSB3aWtpIGFwcCBpcyBldmVyIHJlZGVw bG95ZWQuDQo+DQo+ID4NCj4NCj4gPiAjanNwd2lraS54bWxVc2VyRGF0YWJhc2VGaWxlID0gL2V0 Yy90b21jYXQvdXNlcmRhdGFiYXNlLnhtbA0KPg0KPiA+DQo+DQo+ID4gIyBZb3UgY2FuIGFsc28g dXNlIGEgSkRCQyBkYXRhYmFzZSBmb3Igc3RvcmluZyB1c2VyIHByb2ZpbGVzLg0KPg0KPiA+ICMg U2VlIHRoZSBvbmxpbmUgQXV0aGVudGljYXRpb25BbmRBdXRob3JpemF0aW9uMi4zIGRvY3MgZm9y IGRldGFpbHMgb24NCj4NCj4gPiAjIGhvdyB0byBjb25maWd1cmUgaXQuDQo+DQo+ID4NCj4NCj4g PiAjanNwd2lraS51c2VyZGF0YWJhc2UgPSBjb20uZWN5cmQuanNwd2lraS5hdXRoLnVzZXIuSkRC Q1VzZXJEYXRhYmFzZQ0KPg0KPiA+DQo+DQo+ID4gIyAgSWYgeW91ciBKU1BXaWtpIHVzZXIgZGF0 YWJhc2Ugc2hhcmVzIGxvZ2luIGluZm9ybWF0aW9uIHdpdGggeW91ciAjDQo+DQo+ID4gd2ViIGNv bnRhaW5lcidzIGF1dGhlbnRpY2F0aW9uIHJlYWxtLCB5b3UgY2FuIGNvbmZpZ3VyZSBKU1BXaWtp IHRvICMNCj4NCj4gPiBhZGQgY29udGFpbmVyIHVzZXJzLiBBdCBwcmVzZW50LCB0aGlzIG9ubHkg d29ya3Mgd2l0aA0KPg0KPiA+IEpEQkNVc2VyRGF0YWJhc2UsICMgIGFuZCBvbmx5IGlmIHlvdSd2 ZSBjb25maWd1cmVkIHlvdXIgd2ViIGNvbnRhaW5lcg0KPg0KPiA+IHRvIHVzZSBhIGRhdGFiYXNl ICMgIHdpdGggY29tcGF0aWJsZSBjb2x1bW5zIGFuZCB0YWJsZXMuIElmIHlvdSBkb24ndA0KPg0K PiA+IGtub3cgd2hhdCB0aGlzIG1lYW5zLCAjICB0aGVuIGxlYXZlIHRoaXMgcHJvcGVydHkgc2V0 IHRvIEZBTFNFICh0aGUNCj4gZGVmYXVsdCkuDQo+DQo+ID4NCj4NCj4gPiAjanNwd2lraS51c2Vy ZGF0YWJhc2UuaXNTaGFyZWRXaXRoQ29udGFpbmVyID0gZmFsc2UNCj4NCj4gPg0KPg0KPiA+ICMg IEFDQ0VTUyBDT05UUk9MIExJU1RTDQo+DQo+ID4gIyAgTGFzdCBidXQgbm90IGxlYXN0LCBKU1BX aWtpIG5lZWRzIGEgd2F5IG9mIHJlYWRpbmcgYW5kIHBlcnNpc3RpbmcNCj4NCj4gPiBwYWdlICMg IGFjY2VzcyBjb250cm9sIGxpc3RzLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZWFkcyB0 aGVzZQ0KPg0KPiA+IGZyb20gdGhlIHBhZ2UgIyAgbWFya3VwLiBGb3IgZXhhbXBsZTogIlt7QUxM T1cgZWRpdCBDaGFybGllfV0iLiBJZg0KPg0KPiA+IHVzaW5nIGEgY3VzdG9tICMgIEFDTCBtYW5h Z2VyLCBzcGVjaWZ5IHRoZSBBY2xNYW5hZ2VyIGltcGxlbWVudGF0aW9uDQo+DQo+ID4gY2xhc3Mg aGVyZToNCj4NCj4gPg0KPg0KPiA+IGpzcHdpa2kuYWNsTWFuYWdlciA9Y29tLmVjeXJkLmpzcHdp a2kuYXV0aC5hY2wuRGVmYXVsdEFjbE1hbmFnZXINCj4NCj4gPg0KPg0KPiA+DQo+DQo+ID4gIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIw0KPg0KPiA+ICMjIyMjIyMNCj4NCj4gPiAjDQo+DQo+ID4gIyBJbnRlcldpa2kg bGlua3MNCj4NCj4gPiAjDQo+DQo+ID4gIyBUaGUgJXMgaXMgcmVwbGFjZWQgd2l0aCB0aGUgcGFn ZSByZWZlcmVuY2UgKHNwZWNpZnkgIyBtdWx0aXBsZSB0aW1lcw0KPg0KPiA+IHRvIGdldCBtdWx0 aXBsZSByZWZlcmVuY2VzKS4gIFBhZ2UgcmVmZXJlbmNlcyBzaG91bGQgIyBhcHBlYXIgaW4NCj4N Cj4gPiBmb3JtYXQgOiBbd2lraTp3aWtpcGFnZV0uDQo+DQo+ID4gIw0KPg0KPiA+ICMgVGhpcyBp cyB0aGUgSlNQV2lraSBob21lLiAgSW4gZnV0dXJlLCBKU1BXaWtpIHdpbGwgcHJvYmFibHkgcmVs eSBvbg0KPg0KPiA+IHRoaXMgIyBmb3IgZXJyb3IgbWVzc2FnZXMsIHNvIEkgZG9uJ3QgcmVjb21t ZW5kIHRoYXQgeW91IGNoYW5nZSBpdC4NCj4NCj4gPiBqc3B3aWtpLmludGVyV2lraVJlZi5KU1BX aWtpID1odHRwOi8vd3d3LmpzcHdpa2kub3JnL3dpa2kvJXMNCj4NCj4gPg0KPg0KPiA+ICMgSGVy ZSdzIGhvdyB5b3UgY2FuIGhhdmUgZGlyZWN0bHkgbGlua3MgdG8gdGhlIEpTUFdpa2kgZWRpdG9y Lg0KPg0KPiA+ICMgTm93IHlvdSBjYW4gcHV0IGEgaHlwZXJsaW5rIGZvciBlZGl0aW5nICJNYWlu UGFnZSIgYnkgbWFraW5nICMgYQ0KPg0KPiA+IGxpbmsgW0VkaXQ6TWFpblBhZ2VdLg0KPg0KPiA+ IGpzcHdpa2kuaW50ZXJXaWtpUmVmLkVkaXQgPUVkaXQuanNwP3BhZ2U9JXMNCj4NCj4gPg0KPg0K PiA+ICMgIFRoaXMgaXMgdGhlIG9yaWdpbmFsIFdpa2lXaWtpV2ViDQo+DQo+ID4ganNwd2lraS5p bnRlcldpa2lSZWYuV2lraVdpa2lXZWIgPWh0dHA6Ly9jMi5jb20vY2dpL3dpa2k/JXMNCj4NCj4g Pg0KPg0KPiA+ICMgIFRXaWtpLCBhIHZlcnkgbmljZSBXaWtpQ2xvbmUuDQo+DQo+ID4ganNwd2lr aS5pbnRlcldpa2lSZWYuVFdpa2kgPWh0dHA6Ly90d2lraS5vcmcvY2dpLWJpbi92aWV3L1RXaWtp LyVzDQo+DQo+ID4NCj4NCj4gPiAjICBNZWF0YmFsbFdpa2ksIHdoaWNoIHNlZW1zIHRvIGJlIHF1 aXRlIHBvcHVsYXIuDQo+DQo+ID4ganNwd2lraS5pbnRlcldpa2lSZWYuTWVhdGJhbGxXaWtpID1o dHRwOi8vdXNlbW9kLmNvbS9jZ2ktYmluL21iLnBsPyVzDQo+DQo+ID4NCj4NCj4gPiAjICBXaWtp cGVkaWEsIGEgV2lraSBlbmN5Y2xvcGVkaWEhDQo+DQo+ID4ganNwd2lraS5pbnRlcldpa2lSZWYu V2lraXBlZGlhID1odHRwOi8vd3d3Lndpa2lwZWRpYS5jb20vd2lraS8lcw0KPg0KPiA+DQo+DQo+ ID4gIyAgR29vZ2xlLCB0aGUgdWJpcXVpdG91cyBzZWFyY2ggZW5naW5lLg0KPg0KPiA+IGpzcHdp a2kuaW50ZXJXaWtpUmVmLkdvb2dsZSA9aHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSVz DQo+DQo+ID4NCj4NCj4gPiAjICBKU1BXaWtpIGRvY3VtZW50YXRpb24gKGZvciB0aGlzIHJlbGVh c2UpIGpzcHdpa2kuaW50ZXJXaWtpUmVmLkRvYw0KPg0KPiA+ID1odHRwOi8vZG9jLmpzcHdpa2ku b3JnLzIuOC93aWtpLyVzDQo+DQo+ID4NCj4NCj4gPg0KPg0KPiA+ICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4N Cj4gPiAjIyMjIyMNCj4NCj4gPiAjDQo+DQo+ID4gIyBEZWZpbmUgd2hpY2ggaW1hZ2UgdHlwZXMg YXJlIGlubGluZWQuDQo+DQo+ID4gIyBUaGVzZSBhcmUgeW91ciBzdGFuZGFyZCBnbG9iIGV4cHJl c3Npb25zIChqdXN0IGxpa2UgaW4geW91ciAjDQo+DQo+ID4gV2luZG93cyBvciBVTklYIHNoZWxs cykuICBEZWZhdWx0IHBhdHRlcm4gaXMgdG8gaW5jbHVkZSBhbGwgUE5HICMNCj4NCj4gPiBpbWFn ZXMuICBJZiB5b3Ugc3BlY2lmeSBzb21ldGhpbmcgaGVyZSwgeW91IHdpbGwgb3ZlcnJpZGUgdGhl IGRlZmF1bHQuDQo+DQo+ID4gIw0KPg0KPiA+ICMgRG9uJ3QgZm9yZ2V0IHRvIGluY3JlYXNlIHRo ZSBudW1iZXIgYWZ0ZXIgdGhlIGRvdCAtIGR1cGxpY2F0ZQ0KPg0KPiA+IGVudHJpZXMgIyBjYXVz ZSBwcm9ibGVtcyENCj4NCj4gPiAjDQo+DQo+ID4gIyBGb3IgZXhhbXBsZToNCj4NCj4gPiAjICAg SW5saW5lIGFsbCBKUEcgZmlsZXMsIFBORyBmaWxlcyBhbmQgYWxsIGZpbGVzIGZyb20gaW1hZ2Vz LmNvbToNCj4NCj4gPiAjDQo+DQo+ID4gIyAgICAgIGpzcHdpa2kudHJhbnNsYXRvclJlYWRlci5p bmxpbmVQYXR0ZXJuLjEgPSAqLmpwZw0KPg0KPiA+ICMgICAgICBqc3B3aWtpLnRyYW5zbGF0b3JS ZWFkZXIuaW5saW5lUGF0dGVybi4yID0gKi5wbmcNCj4NCj4gPiAjICAgICAganNwd2lraS50cmFu c2xhdG9yUmVhZGVyLmlubGluZVBhdHRlcm4uMyA9IGh0dHA6Ly9pbWFnZXMuY29tLyoNCj4NCj4g Pg0KPg0KPiA+DQo+DQo+ID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPg0KPiA+ICMjIyMjDQo+DQo+ID4gIw0K Pg0KPiA+ICMgIERldGVybWluZSBob3cgdGhlIFJTUyAoUmljaCBTaXRlIFN1bW1hcnkpIGZpbGUg Z2VuZXJhdGlvbiBzaG91bGQgd29yay4NCj4NCj4gPiAjICBSU1MgaXMgYSBzdGFuZGFyZCBwaW9u ZWVyZWQgYnkgTmV0c2NhcGUsIHdoaWNoIGFsbG93cyB5b3UgdG8gam9pbg0KPg0KPiA+IHlvdXIg IyAgV2lraSB3aXRoIGEgaHVnZSBudW1iZXIgb2YgZGlmZmVyZW50IG5ld3Mgc2VydmljZXMgYXJv dW5kIHRoZQ0KPiB3b3JsZC4NCj4NCj4gPiAjICBUcnkgYSBHb29nbGUgc2VhcmNoIG9uIFJTUyBh bmQgc2VlIHdoYXQgeW91IGNhbiBkbyB3aXRoIGl0Lg0KPg0KPiA+ICMNCj4NCj4gPiAjICBBbGwg b2YgdGhlc2Ugc2V0dGluZ3Mgd2VyZSBhZGRlZCBpbiBKU1BXaWtpIDEuNy42Lg0KPg0KPiA+ICMN Cj4NCj4gPiAjICBOb3RlIHRoYXQganNwd2lraS5iYXNlVVJMIE1VU1QgQkUgREVGSU5FRCBpZiB5 b3Ugd2FudCB0byBlbmFibGUgUlNTIQ0KPg0KPiA+ICMNCj4NCj4gPiAjICBEZXRlcm1pbmUgaWYg dGhlIFJTUyBmaWxlIHNob3VsZCBiZSBnZW5lcmF0ZWQgYXQgYWxsLiAgQWxsb3dlZA0KPg0KPiA+ IHZhbHVlcyAjICBhcmUgInRydWUiIGFuZCAiZmFsc2UiLiAgRGVmYXVsdCBpcyAiZmFsc2UiLg0K Pg0KPiA+ICMNCj4NCj4gPiBqc3B3aWtpLnJzcy5nZW5lcmF0ZSA9ZmFsc2UNCj4NCj4gPg0KPg0K PiA+ICMNCj4NCj4gPiAjICBEZXRlcm1pbmUgdGhlIG5hbWUgb2YgdGhlIFJTUyBmaWxlLiBUaGlz IHBhdGggaXMgcmVsYXRpdmUgdG8geW91ciAjDQo+DQo+ID4gV2lraSByb290LiAgRGVmYXVsdCBp cyAicnNzLnJkZiINCj4NCj4gPiAjDQo+DQo+ID4ganNwd2lraS5yc3MuZmlsZU5hbWUgPXJzcy5y ZGYNCj4NCj4gPg0KPg0KPiA+ICMNCj4NCj4gPiAjICBEZXRlcm1pbmUgdGhlIHJlZnJlc2ggaW50 ZXJ2YWwgKGllLiBob3cgb2Z0ZW4gdGhlIFJTUyBmaWxlIGlzDQo+DQo+ID4gcmVnZW5lcmF0ZWQu DQo+DQo+ID4gIyAgSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIG1ha2UgdGhpcyB0b28gb2Z0ZW4s IG9yIHlvdSdsbCBjaG9rZSB5b3VyDQo+DQo+ID4gc2VydmVyLg0KPg0KPiA+ICMgIEFueXRoaW5n IGFib3ZlIGZpdmUgbWludXRlcyBpcyBwcm9iYWJseSBva2F5LiAgVGhlIGRlZmF1bHQgdmFsdWUg aXMNCj4NCj4gPiBvbmUgaG91ci4NCj4NCj4gPiAjICBUaGUgdmFsdWUgc2hvdWxkIGJlIGluIHNl Y29uZHMuDQo+DQo+ID4gIw0KPg0KPiA+IGpzcHdpa2kucnNzLmludGVydmFsID0zNjAwDQo+DQo+ ID4NCj4NCj4gPiAjDQo+DQo+ID4gIyAgVGhlIHRleHQgeW91IHdhbnQgdG8gYmUgc2hvd24gYXMg eW91ciAiY2hhbm5lbCBkZXNjcmlwdGlvbiIgd2hlbg0KPg0KPiA+IHNvbWVvbmUgIyAgc3Vic2Ny aWJlcyB0byBpdC4gIFlvdSBjYW4gYmUgcXVpdGUgdmVyYm9zZSBoZXJlLCB1cCB0byA1MDANCj4N Cj4gPiBjaGFyYWN0ZXJzIG9yICMgIHNvLiAgWW91IGNhbiBjb250aW51ZSB0byBhIG5ldyBsaW5l IGJ5IGFkZGluZyBhDQo+DQo+ID4gYmFja3NsYXNoIHRvIHRoZSBlbmQgb2YgdGhlICMgIGxpbmUu ICBEZWZhdWx0IGlzIHRvIGhhdmUgbm8NCj4NCj4gPiBkZXNjcmlwdGlvbi4NCj4NCj4gPiAjDQo+ DQo+ID4ganNwd2lraS5yc3MuY2hhbm5lbERlc2NyaXB0aW9uID1PaCBwb29yIG1lLCBteSBvd25l ciBoYXMgbm90IHNldCBhDQo+DQo+ID4gY2hhbm5lbCBkZXNjcmlwdGlvbiBhdCBhbGwuIFBpdHkg bWUuDQo+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIGNoYW5uZWwgZGVz Y3JpcHRpb24gYXQgYWxsLiBcDQo+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQaXR5IG1lLg0KPg0KPiA+DQo+DQo+ID4gIw0KPg0KPiA+ICMgIFRoZSBsYW5ndWFnZSBvZiB5 b3VyIFdpa2kuICBUaGlzIGlzIGEgc3RhbmRhcmQsIHR3by1sZXR0ZXIgbGFuZ3VhZ2UNCj4NCj4g PiAjICBjb2RlLCBvciBpbiBjYXNlIG9mIHNvbWUgbGFuZ3VhZ2VzLCB0d28gbGV0dGVycyBmb3Ig dGhlIGNvdW50cnksICMNCj4NCj4gPiBhIGRhc2gsIGFuZCB0d28gbGV0dGVycyBmb3IgdGhlIGRp YWxlY3QuDQo+DQo+ID4gIw0KPg0KPiA+IGpzcHdpa2kucnNzLmNoYW5uZWxMYW5ndWFnZSA9ZW4t dXMNCj4NCj4gPg0KPg0KPiA+ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4NCj4gPiAjIyMjIw0KPg0KPiA+ICMN Cj4NCj4gPiAjICBKREJDIENvbmZpZ3VyYXRpb24uIFRlbGxzIEpTUFdpa2kgd2hpY2ggdGFibGVz IGFuZCBjb2x1bW5zIHRvIG1hcCAjDQo+DQo+ID4gdG8gZm9yIHRoZSBKREJDVXNlckRhdGFiYXNl IGFuZCBKREJDR3JvdXBEYXRhYmFzZS4gRm9yIG1vcmUgaW5mbywgc2VlDQo+DQo+ID4gdGhlICMg IEphdmFEb2MgZm9yIGNsYXNzZXMNCj4NCj4gPiBjb20uZWN5cmQuanNwd2lraS5hdXRoLnVzZXIu SkRCQ1VzZXJEYXRhYmFzZSBhbmQgIw0KPg0KPiA+IGNvbS5lY3lyZC5qc3B3aWtpLmF1dGguYXV0 aG9yaXplLkpEQkNHcm91cERhdGFiYXNlLg0KPg0KPiA+ICMNCj4NCj4gPiBqc3B3aWtpLnVzZXJk YXRhYmFzZS5kYXRhc291cmNlPWpkYmMvVXNlckRhdGFiYXNlDQo+DQo+ID4ganNwd2lraS51c2Vy ZGF0YWJhc2UudGFibGU9dXNlcnMNCj4NCj4gPiBqc3B3aWtpLnVzZXJkYXRhYmFzZS51aWQ9dWlk DQo+DQo+ID4ganNwd2lraS51c2VyZGF0YWJhc2UuZW1haWw9ZW1haWwNCj4NCj4gPiBqc3B3aWtp LnVzZXJkYXRhYmFzZS5mdWxsTmFtZT1mdWxsX25hbWUNCj4NCj4gPiBqc3B3aWtpLnVzZXJkYXRh YmFzZS5sb2dpbk5hbWU9bG9naW5fbmFtZQ0KPg0KPiA+IGpzcHdpa2kudXNlcmRhdGFiYXNlLnBh c3N3b3JkPXBhc3N3b3JkDQo+DQo+ID4ganNwd2lraS51c2VyZGF0YWJhc2Uud2lraU5hbWU9d2lr aV9uYW1lDQo+DQo+ID4ganNwd2lraS51c2VyZGF0YWJhc2UuY3JlYXRlZD1jcmVhdGVkDQo+DQo+ ID4ganNwd2lraS51c2VyZGF0YWJhc2UubW9kaWZpZWQ9bW9kaWZpZWQNCj4NCj4gPiBqc3B3aWtp LnVzZXJkYXRhYmFzZS5sb2NrRXhwaXJ5PWxvY2tfZXhwaXJ5DQo+DQo+ID4ganNwd2lraS51c2Vy ZGF0YWJhc2UuYXR0cmlidXRlcz1hdHRyaWJ1dGVzDQo+DQo+ID4ganNwd2lraS51c2VyZGF0YWJh c2Uucm9sZVRhYmxlPXJvbGUNCj4NCj4gPiBqc3B3aWtpLnVzZXJkYXRhYmFzZS5yb2xlPXJvbGUN Cj4NCj4gPiBqc3B3aWtpLmdyb3VwZGF0YWJhc2UuZGF0YXNvdXJjZT1qZGJjL0dyb3VwRGF0YWJh c2UNCj4NCj4gPiBqc3B3aWtpLmdyb3VwZGF0YWJhc2UudGFibGU9Z3JvdXBzDQo+DQo+ID4ganNw d2lraS5ncm91cGRhdGFiYXNlLm1lbWJlcnRhYmxlPW1lbWJlcg0KPg0KPiA+IGpzcHdpa2kuZ3Jv dXBkYXRhYmFzZS5jcmVhdGVkPWNyZWF0ZWQNCj4NCj4gPiBqc3B3aWtpLmdyb3VwZGF0YWJhc2Uu Y3JlYXRvcj1jcmVhdG9yDQo+DQo+ID4ganNwd2lraS5ncm91cGRhdGFiYXNlLm5hbWU9bmFtZQ0K Pg0KPiA+IGpzcHdpa2kuZ3JvdXBkYXRhYmFzZS5tZW1iZXI9bWVtYmVyDQo+DQo+ID4ganNwd2lr aS5ncm91cGRhdGFiYXNlLm1vZGlmaWVkPW1vZGlmaWVkDQo+DQo+ID4ganNwd2lraS5ncm91cGRh dGFiYXNlLm1vZGlmaWVyPW1vZGlmaWVyDQo+DQo+ID4NCj4NCj4gPiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ DQo+ID4gIyMjIyMNCj4NCj4gPiAjDQo+DQo+ID4gIyAgSmF2YU1haWwgY29uZmlndXJhdGlvbi4g SWYgeW91IHdpc2ggdG8gYWxsb3cgeW91ciB1c2VycyB0byByZWNvdmVyDQo+DQo+ID4gIyAgdGhl aXIgcGFzc3dvcmRzIHZpYSBlbWFpbCwgeW91IHNob3VsZCBjb25maWd1cmUgdGhlc2UgcHJvcGVy dGllcy4NCj4NCj4gPiAjICBKYXZhTWFpbCBjYW4gdXNlIGVpdGhlciBhIGNvbnRhaW5lci1tYW5h Z2VkIEpOREkgcmVzb3VyY2UgZmFjdG9yeSAjDQo+DQo+ID4gKHJlY29tbWVuZGVkLCBhbmQgdGhl IGRlZmF1bHQpLCBvciBhIHN0YW5kLWFsb25lIGZhY3Rvcnkgd2hvc2UNCj4NCj4gPiBwcm9wZXJ0 aWVzICMgIGFyZSBjb25maWd1cmVkIHdpdGggbWFpbC4qIHByb3BlcnRpZXMgaW4gdGhpcyBmaWxl DQo+DQo+ID4gKGJlbG93KS4NCj4NCj4gPiAjDQo+DQo+ID4NCj4NCj4gPiAjICBBLiBDb25maWd1 cmUgdGhlIGFkZHJlc3MgZnJvbSB3aGljaCB0aGUgZW1haWwgYXBwZWFycyB0byBjb21lLg0KPg0K PiA+ICMgICAgIElmIHlvdSdyZSBnb2luZyB0byB1c2UgYSBtYWlsIHNlc3Npb24gb2J0YWluZWQg dmlhIEpOREksIHRoaXMNCj4gc2V0dGluZw0KPg0KPiA+ICMgICAgIHdpbGwgb25seSBiZSB1c2Vk IGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCBpbiB0aGUNCj4NCj4gPiBvYnRh aW5lZA0KPg0KPiA+ICMgICAgIHNlc3Npb24gaXRzZWxmLiBJZiB5b3UgY29tbWVudCBpdCBvdXQs IEpTUFdpa2kgd2lsbCB1c2UgaXRzDQo+IGludGVybmFsDQo+DQo+ID4gIyAgICAgZGVmYXVsdCB2 YWx1ZS4NCj4NCj4gPiAjICAgICBJZiB5b3UncmUgZ29pbmcgdG8gdXNlIGEgc3RhbmQtYWxvbmUg bWFpbCBzZXNzaW9uLCB5b3Ugd2lsbCBzdXJlbHkNCj4NCj4gPiB3YW50DQo+DQo+ID4gIyAgICAg dG8gY29uZmlndXJlIGl0LCBvdGhlcndpc2UgdGhlIGludGVybmFsIGRlZmF1bHQgdmFsdWUgd2ls bCBiZSB1c2VkLg0KPg0KPiA+ICMNCj4NCj4gPiBtYWlsLmZyb20gPUBtYWlsLmZyb21APG1haWx0 bzo9QG1haWwuZnJvbUA+DQo+DQo+ID4NCj4NCj4gPiAjICBCLiBKTkRJIFJlc291cmNlIEZhY3Rv cnkgQ29uZmlndXJhdGlvbi4gSlNQV2lraSB3aWxsIHRyeSB0aGlzIGZpcnN0Lg0KPg0KPiA+ICMg ICAgIFlvdSB3aWxsIG5lZWQgdG8gY29uZmlndXJlIHlvdXIgY29udGFpbmVyIHRvIHByb3ZpZGUg YSBKYXZhTWFpbA0KPg0KPiA+ICMgICAgIHJlc291cmNlIGZhY3RvcnkuIFNlZSB5b3VyIGNvbnRh aW5lciBkb2N1bWVudGF0aW9uLCBvciBjaGVjayBvdXINCj4NCj4gPiAjICAgICBmYWlybHkgY29t cGxldGUgZG9jdW1lbnRhdGlvbiAod2l0aCBleGFtcGxlcyBmb3IgVG9tY2F0KSBpbg0KPg0KPiA+ ICMgICAgIHRoZSBKYXZhRG9jcyBmb3IgY29tLmVjeXJkLmpzcHdpa2kudXRpbC5NYWlsVXRpbC4N Cj4NCj4gPiAjDQo+DQo+ID4gIyAgSk5ESSByZXNvdXJjZSBuYW1lLiBUaGUgY29tbWVudGVkLW91 dCB2YWx1ZSBpcyB0aGUgZGVmYXVsdC4NCj4NCj4gPiAjanNwd2lraS5tYWlsLmpuZGluYW1lID0g bWFpbC9TZXNzaW9uDQo+DQo+ID4NCj4NCj4gPiAjICBDLiBTdGFuZC1hbG9uZSBSZXNvdXJjZSBG YWN0b3J5LiBKU1BXaWtpIHdpbGwgdXNlIHRoZXNlIHZhbHVlcyBpZg0KPg0KPiA+IEpOREkgZmFp bHMuDQo+DQo+ID4gIw0KPg0KPiA+ICMgIFlvdXIgU01UUCBob3N0IChpLmUuIHRoZSBvbmUgd2hp Y2ggc2VuZHMgZW1haWwpIG1haWwuc210cC5ob3N0DQo+DQo+ID4gPUBtYWlsLnNtdHAuaG9zdEA8 bWFpbHRvOj1AbWFpbC5zbXRwLmhvc3RAPg0KPg0KPiA+DQo+DQo+ID4gIyBJZiBmb3Igc29tZSBy ZWFzb24gdGhlIHN0YW5kYXJkIHNtdHAgcG9ydCAoMjUpIGlzIGJsb2NrZWQsIHlvdSBjYW4NCj4N Cj4gPiBjaGFuZ2UgaXQgaGVyZSAjbWFpbC5zbXRwLnBvcnQgPSBAbWFpbC5zbXRwLnBvcnRADQo+ DQo+ID4NCj4NCj4gPiAjIElmIHlvdSBhcmUgdXNpbmcgYSB3ZWJzZXJ2ZXIgdGhhdCBpcyBwdWJs aWNhbGx5IGFjY2Vzc2libGUgaXQNCj4NCj4gPiB1c3VhbGx5ICMgZG9lc24ndCBhbGxvdyB5b3Ug dG8gc2VuZCBtYWlsIGFub255bW91c2x5ICMgKGJlY2F1c2UgdGhlbg0KPg0KPiA+IHRoaXMgbWFp bHNlcnZlciB3b3VsZCBiZWNvbWUgYW4gb3BlbiByZWxheSkuDQo+DQo+ID4gIyBUaGVyZWZvcmUg eW91IGNhbiBpbmRpY2F0ZSB5b3VyIGFjY291bnQgaW5mb3JtYXRpb24gaGVyZS4uLg0KPg0KPiA+ ICMNCj4NCj4gPiAjbWFpbC5zbXRwLmFjY291bnQgPSBAbWFpbC5zbXRwLmFjY291bnRAICNtYWls LnNtdHAucGFzc3dvcmQgPQ0KPg0KPiA+IEBtYWlsLnNtdHAucGFzc3dvcmRADQo+DQo+ID4NCj4N Cj4gPiAjIFRoZSBwcm9wZXJ0aWVzIGJlbG93IGNvbnRyb2wgY29ubmVjdGlvbiB0aW1lb3V0cyBh bmQgVExTDQo+DQo+ID4gKGVuY3J5cHRpb24pICMgaWYgdGhlIG1haWxzZXJ2ZXIgc3VwcG9ydHMg aXQuIFRoZSBjb21tZW50ZWQtb3V0IHZhbHVlcw0KPiBhcmUgdGhlIGRlZmF1bHRzLg0KPg0KPiA+ ICNtYWlsLnNtdHAudGltZW91dCA9IDUwMDANCj4NCj4gPiAjbWFpbC5zbXRwLmNvbm5lY3Rpb250 aW1lb3V0ID0gNTAwMA0KPg0KPiA+ICNtYWlsLnNtdHAuc3RhcnR0bHMuZW5hYmxlID0gdHJ1ZQ0K Pg0KPiA+DQo+DQo+ID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPg0KPiA+ICMjIyMjDQo+DQo+ID4gIw0KPg0K PiA+ICMgIENvbmZpZ3VyZSBsb2dzLiAgU2VlIGxvZzRqIGRvY3VtZW50YXRpb24gZm9yIG1vcmUg aW5mb3JtYXRpb24gIyAgb24NCj4NCj4gPiBob3cgeW91IGNhbiBjb25maWd1cmUgdGhlIGxvZ3Mu DQo+DQo+ID4gIw0KPg0KPiA+ICMgIExvZzRqIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vamFrYXJ0 YS5hcGFjaGUub3JnL2xvZzRqICMgIyAgV0FSTklORw0KPg0KPiA+IFdBUk5JTkcgV0lMTCBST0JJ TlNPTjogSWYgeW91IHR1cm4gb24gREVCVUcgbG9nZ2luZywgYmUgYXdhcmUgIyAgdGhhdA0KPg0K PiA+IHNvbWUgc2VjdXJpdHktc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9nZ2VkIChz dWNoIGFzIHNlc3Npb24NCj4NCj4gPiBJRHMpLg0KPg0KPiA+ICMgIFBsZWFzZSBiZSBjYXJlZnVs Lg0KPg0KPiA+ICMNCj4NCj4gPiAjICBTZW5kIG1haWwgdG8gcm9vdCBvbiBhbGwgcHJvYmxlbXMg Y29udGFpbmluZyB3YXJuaW5ncy4NCj4NCj4gPiAjDQo+DQo+ID4gI2xvZzRqLmFwcGVuZGVyLm1h aWwgPSBvcmcuYXBhY2hlLmxvZzRqLm5ldC5TTVRQQXBwZW5kZXINCj4NCj4gPiAjbG9nNGouYXBw ZW5kZXIubWFpbC5UaHJlc2hvbGQgPSBXQVJOICNsb2c0ai5hcHBlbmRlci5tYWlsLlRvID0NCj4N Cj4gPiByb290QGxvY2FsaG9zdCAjbG9nNGouYXBwZW5kZXIubWFpbC5Gcm9tID0gSlNQV2lraUBs b2NhbGhvc3QNCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIubWFpbC5TdWJqZWN0ID0gUHJvYmxlbSB3 aXRoIEpTUFdpa2khDQo+DQo+ID4gI2xvZzRqLmFwcGVuZGVyLm1haWwuU01UUEhvc3QgPSBtYWls DQo+DQo+ID4NCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIubWFpbC5sYXlvdXQgPSBvcmcuYXBhY2hl LmxvZzRqLlBhdHRlcm5MYXlvdXQNCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIubWFpbC5sYXlvdXQu Q29udmVyc2lvblBhdHRlcm4gPSVkIFsldF0gJXAgJWMgJXggLSAlbSVuDQo+DQo+ID4NCj4NCj4g PiAjDQo+DQo+ID4gIyAgTG9nIGV2ZXJ5dGhpbmcgaW50byBhIGZpbGUsIHJvbGwgaXQgb3ZlciBl dmVyeSAxMCBNQiwga2VlcCAjICBvbmx5DQo+DQo+ID4gMTQgbGF0ZXN0IG9uZXMuDQo+DQo+ID4g Iw0KPg0KPiA+IGxvZzRqLmFwcGVuZGVyLkZpbGVMb2cgPW9yZy5hcGFjaGUubG9nNGouUm9sbGlu Z0ZpbGVBcHBlbmRlcg0KPg0KPiA+IGxvZzRqLmFwcGVuZGVyLkZpbGVMb2cuTWF4RmlsZVNpemUg ICAgPTEwTUINCj4NCj4gPiBsb2c0ai5hcHBlbmRlci5GaWxlTG9nLk1heEJhY2t1cEluZGV4ID0x NCBsb2c0ai5hcHBlbmRlci5GaWxlTG9nLkZpbGUNCj4NCj4gPiA9L2pzcHdpa2kvdG1wL2pzcHdp a2kubG9nIGxvZzRqLmFwcGVuZGVyLkZpbGVMb2cubGF5b3V0DQo+DQo+ID4gPW9yZy5hcGFjaGUu bG9nNGouUGF0dGVybkxheW91dA0KPg0KPiA+IGxvZzRqLmFwcGVuZGVyLkZpbGVMb2cubGF5b3V0 LkNvbnZlcnNpb25QYXR0ZXJuPSVkIFsldF0gJXAgJWMgJXggLQ0KPg0KPiA+ICVtJW4NCj4NCj4g Pg0KPg0KPiA+ICMNCj4NCj4gPiAjIElmIHlvdSB3YW50IHRvIHVzZSBzb21lIG90aGVyIGxvZ2dp bmcgc3lzdGVtIChzdWNoIGFzIEpCb3NzLCB3aGljaA0KPg0KPiA+IHVzZXMgIyBsb2c0aiBhbHJl YWR5LCBjb21tZW50IHRoaXMgbGluZSBvdXQuICBJZiB5b3UganVzdCBkb24ndCB3YW50DQo+DQo+ ID4gYW55IGxvZ3MgIyBhdCBhbGwsIHlvdSBjYW4gc2V0IGl0IHRvIGJlIGVtcHR5LiAgSG93ZXZl ciwgSSBzdWdnZXN0DQo+DQo+ID4gdGhhdCB5b3UgZG8gIyBhdCBsZWFzdCB0byBhIGxldmVsIG9m IFdBUk4uDQo+DQo+ID4gIw0KPg0KPiA+IGxvZzRqLnJvb3RDYXRlZ29yeT1JTkZPLEZpbGVMb2cN Cj4NCj4gPg0KPg0KPiA+ICMgRW5hYmxlIGlmIHlvdSdyZSB1c2luZyBtYWlsaW5nLCBhYm92ZS4N Cj4NCj4gPiAjbG9nNGoucm9vdENhdGVnb3J5PUlORk8sRmlsZUxvZyxtYWlsDQo+DQo+ID4NCj4N Cj4gPiAjDQo+DQo+ID4gIyBVbmNvbW1lbnQgdGhlc2UgbGluZXMgaWYgeW91IHdhbnQgdG8gc2Vl IGRldGFpbGVkIHNlY3VyaXR5IGV2ZW50DQo+IGxvZ2dpbmcuDQo+DQo+ID4gIyBUaGUgbG9nZ2lu ZyBsZXZlbHMgYXJlIGFzIGZvbGxvd3M6DQo+DQo+ID4gIyAgRVJST1I6IGxvZ2luIGVycm9ycyAo b3RoZXIgdGhhbiBmYWlsZWQvZXhwaXJlZCBsb2dpbnMpICMgIFdBUk46DQo+DQo+ID4gYWNjZXNz IGRlbmllZCwgZmFpbGVkIGxvZ2luIChhY2NvdW50IGV4cGlyZWQsIHBhc3N3b3JkL2NyZWRlbnRp YWwNCj4NCj4gPiBleHBpcmVkKQ0KPg0KPiA+ICMgIElORk86ICBsb2dpbiwgbG9nb3V0DQo+DQo+ ID4gIyAgREVCVUc6IGFkZC9yZW1vdmUgZ3JvdXAsIGFkZC9yZW1vdmUgZ3JvdXAgbWVtYmVyLCBj bGVhcg0KPg0KPiA+IGdyb3Vwcy9ncm91cCBtZW1iZXJzLCBhY2Nlc3MgYWxsb3dlZCAjICNsb2c0 ai5sb2dnZXIuU2VjdXJpdHlMb2c9SU5GTywNCj4NCj4gPiBTZWN1cml0eUFwcGVuZGVyICNsb2c0 ai5hcHBlbmRlci5TZWN1cml0eUFwcGVuZGVyID0NCj4NCj4gPiBvcmcuYXBhY2hlLmxvZzRqLlJv bGxpbmdGaWxlQXBwZW5kZXINCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIuU2VjdXJpdHlBcHBlbmRl ci5NYXhGaWxlU2l6ZSAgICA9IDEwTUINCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIuU2VjdXJpdHlB cHBlbmRlci5NYXhCYWNrdXBJbmRleCA9IDE0DQo+DQo+ID4gI2xvZzRqLmFwcGVuZGVyLlNlY3Vy aXR5QXBwZW5kZXIuRmlsZSA9IEBzZWN1cml0eWxvZ0ANCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIu U2VjdXJpdHlBcHBlbmRlci5sYXlvdXQgPQ0KPg0KPiA+IG9yZy5hcGFjaGUubG9nNGouUGF0dGVy bkxheW91dA0KPg0KPiA+ICNsb2c0ai5hcHBlbmRlci5TZWN1cml0eUFwcGVuZGVyLmxheW91dC5D b252ZXJzaW9uUGF0dGVybj0lZCAlcCAtICVtJW4NCj4NCj4gPg0KPg0KPiA+ICMNCj4NCj4gPiAj ICBVbmNvbW1lbnQgdGhlc2UgbGluZXMgaWYgeW91IHdpc2ggdG8gcmVjZWl2ZSBkZXRhaWxlZCBz cGFtICMNCj4NCj4gPiBmaWx0ZXIgbG9nZ2luZy4NCj4NCj4gPiAjDQo+DQo+ID4gI2xvZzRqLmxv Z2dlci5TcGFtTG9nPUlORk8sU3BhbUFwcGVuZGVyDQo+DQo+ID4gI2xvZzRqLmFwcGVuZGVyLlNw YW1BcHBlbmRlciA9IG9yZy5hcGFjaGUubG9nNGouUm9sbGluZ0ZpbGVBcHBlbmRlcg0KPg0KPiA+ ICNsb2c0ai5hcHBlbmRlci5TcGFtQXBwZW5kZXIuTWF4RmlsZVNpemUgPSAxME1CDQo+DQo+ID4g I2xvZzRqLmFwcGVuZGVyLlNwYW1BcHBlbmRlci5NYXhCYWNrdXBJbmRleCA9IDE0DQo+DQo+ID4g I2xvZzRqLmFwcGVuZGVyLlNwYW1BcHBlbmRlci5GaWxlID0gQHNwYW1sb2dADQo+DQo+ID4gI2xv ZzRqLmFwcGVuZGVyLlNwYW1BcHBlbmRlci5sYXlvdXQgPSBvcmcuYXBhY2hlLmxvZzRqLlBhdHRl cm5MYXlvdXQNCj4NCj4gPiAjbG9nNGouYXBwZW5kZXIuU3BhbUFwcGVuZGVyLmxheW91dC5Db252 ZXJzaW9uUGF0dGVybj0lZHtJU084NjAxfSAlbSVuDQo+DQo+ID4NCj4NCj4gPiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjDQo+DQo+ID4gIyMjIyMNCj4NCj4gPiAjDQo+DQo+ID4gIyBXb3JrZmxvdyBjb25maWd1cmF0 aW9uDQo+DQo+ID4gIw0KPg0KPiA+ICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIG1hcCBzcGVj aWZpYyB3b3JrZmxvdyBzdGVwcyB0byB0aGVpcg0KPg0KPiA+IGFzc29jaWF0ZWQgYXBwcm92ZXJz ICMgVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93IG9yIGRlY2lzaW9uIGlzIHRoZQ0KPg0KPiA+IHBh cnQgb2YgdGhlIGtleSBhZnRlciAianNwd2lraS5hcHByb3Zlci4iLg0KPg0KPiA+ICMgVGhpcyBp cyBhIGxvZ2ljYWwgbmFtZSBKU1BXaWtpIHVzZXMgdG8gZGV0ZXJtaW5lIHdoaWNoIFByaW5jaXBh bCB0bw0KPg0KPiA+IGNvbnN1bHQgZm9yIGFwcHJvdmFsLg0KPg0KPiA+ICMgVGhlIFByaW5jaXBh bCBpcyBpZGVudGlmaWVkIHVwIGJ5IEF1dGhvcml6YXRpb25NYW5hZ2VyIGF0IHJ1bnRpbWU7DQo+ DQo+ID4gaXQgbG9va3MgZm9yIGEgUHJpbmNpcGFsICMgbWF0Y2ggYXMgZm9sbG93czogR3JvdXBQ cmluY2lwYWxzOyBSb2xlczsNCj4NCj4gPiBXaWtpUHJpbmNpcGFscy9vdGhlciBwcmluY2lwYWxz LiBUaHVzLCBpZiBhIHZhbHVlICMgb2YgIkFkbWluIiBpcw0KPg0KPiA+IHN1cHBsaWVkIEpTUFdp a2kgd2lsbCBmaXJzdCBjaGVjayB0aGUgR3JvdXBNYW5hZ2VyIHRvIHNlZSBpZiBncm91cA0KPg0K PiA+IEFkbWluIGV4aXRzOyAjIHRoZW4gdGhlIGNvbnRhaW5lciByb2xlcywgaWYgYW55OyB0aGVu LCB1c2VyDQo+DQo+ID4gUHJpbmNpcGFscy4gSWYgdGhlIHZhbHVlIGlzIGJsYW5rIG9yIHRoZSAj IHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQsDQo+DQo+ID4gaXQgbWVhbnMgdGhhdCB0aGUgd29y a2Zsb3cgZG9lcyBub3QgcmVxdWlyZSBhcHByb3ZhbC4NCj4NCj4gPiAjDQo+DQo+ID4gIyBFWEFN UExFOg0KPg0KPiA+ICMgVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gcmVxdWlyZSB0aGUgQWRt aW4gZ3JvdXAgKG9yIEFkbWluIHVzZXIsDQo+DQo+ID4gaWYgYSBncm91cCBpcyBub3QgZm91bmQp ICMgdG8gYXBwcm92ZSB3aWtpIHBhZ2VzIGFmdGVyIHNhdmluZy4NCj4NCj4gPiAjanNwd2lraS5h cHByb3Zlci53b3JrZmxvdy5zYXZlV2lraVBhZ2U9QWRtaW4NCj4NCj4gPg0KPg0KPiA+ICMgVW5j b21tZW50IHRoZSBuZXh0IGxpbmUgdG8gcmVxdWlyZSB0aGUgQWRtaW4gZ3JvdXAgdG8gYXBwcm92 ZSBuZXcNCj4NCj4gPiB1c2VyIHByb2ZpbGVzICNqc3B3aWtpLmFwcHJvdmVyLndvcmtmbG93LmNy ZWF0ZVVzZXJQcm9maWxlPUFkbWluDQo+DQo+ID4NCj4NCj4gPiAjIyMgRW5kIG9mIGNvbmZpZ3Vy YXRpb24gZmlsZS4NCj4NCj4gPg0KPg0KPiA+IGpzcHdpa2kud29ya0RpciA9L2pzcHdpa2kvdG1w Lw0KPg0KPiA+DQo+DQo+ID4ganNwd2lraS5zZWN1cml0eSA9IGphYXMNCj4NCj4gPg0KPg0KPiA+ DQo+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4NCj4gPg0KPg0KPiA+ IFRoaXMgZS1tYWlsIG1heSBjb250YWluIFNwcmludCBOZXh0ZWwgcHJvcHJpZXRhcnkgaW5mb3Jt YXRpb24gaW50ZW5kZWQNCj4NCj4gPiBmb3IgdGhlIHNvbGUgdXNlIG9mIHRoZSByZWNpcGllbnQo cykuIEFueSB1c2UgYnkgb3RoZXJzIGlzIHByb2hpYml0ZWQuDQo+DQo+ID4gSWYgeW91IGFyZSBu b3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQN Cj4NCj4gPiBkZWxldGUgYWxsIGNvcGllcyBvZiB0aGUgbWVzc2FnZS4NCj4NCj4gPg0KPg0KPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPg0KPiBUaGlzIGUtbWFpbCBtYXkgY29u dGFpbiBTcHJpbnQgTmV4dGVsIHByb3ByaWV0YXJ5IGluZm9ybWF0aW9uIGludGVuZGVkIGZvcg0K PiB0aGUgc29sZSB1c2Ugb2YgdGhlIHJlY2lwaWVudChzKS4gQW55IHVzZSBieSBvdGhlcnMgaXMg cHJvaGliaXRlZC4gSWYgeW91DQo+IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxl YXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQgZGVsZXRlIGFsbA0KPiBjb3BpZXMgb2YgdGhlIG1l c3NhZ2UuDQo+DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoNClRoaXMgZS1t YWlsIG1heSBjb250YWluIFNwcmludCBOZXh0ZWwgcHJvcHJpZXRhcnkgaW5mb3JtYXRpb24gaW50 ZW5kZWQgZm9yIHRoZSBzb2xlIHVzZSBvZiB0aGUgcmVjaXBpZW50KHMpLiBBbnkgdXNlIGJ5IG90 aGVycyBpcyBwcm9oaWJpdGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50 LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFuZCBkZWxldGUgYWxsIGNvcGllcyBvZiB0aGUg bWVzc2FnZS4NCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQpUaGlzIGUt bWFpbCBtYXkgY29udGFpbiBTcHJpbnQgTmV4dGVsIHByb3ByaWV0YXJ5IGluZm9ybWF0aW9uIGlu dGVuZGVkIGZvciB0aGUgc29sZSB1c2Ugb2YgdGhlIHJlY2lwaWVudChzKS4gQW55IHVzZSBieSBv dGhlcnMgaXMgcHJvaGliaXRlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVu dCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQgZGVsZXRlIGFsbCBjb3BpZXMgb2YgdGhl IG1lc3NhZ2UuDQo=