From owner-svn-src-head@freebsd.org Sat May 5 09:02:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A3E4FA7609; Sat, 5 May 2018 09:02:02 +0000 (UTC) (envelope-from o.hartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9D4C16993B; Sat, 5 May 2018 09:02:01 +0000 (UTC) (envelope-from o.hartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([77.14.80.170]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M1SLt-1eLh3P162z-00tXMc; Sat, 05 May 2018 11:01:50 +0200 Date: Sat, 5 May 2018 11:01:11 +0200 From: "O. Hartmann" To: "K. Macy" , Stephen Hurd Cc: "O. Hartmann" , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , FreeBSD CURRENT Subject: Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys: TRAP 12 Message-ID: <20180505110138.6cae0f75@thor.intern.walstatt.dynvpn.de> In-Reply-To: <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de> References: <201805021936.w42JaTlq039053@repo.freebsd.org> <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de> <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:MnDkm2d5rKwgZK3RWRh2AEWyuRhScfqav79bp9XhK4jIrmkKdQ1 fR1fwLfUHjwK/pj3C46HSZaM/C96yET7i8Dx1r0txRm3qurD7iX9VkuQCm9FBPb7PCgRjwd LqzoeJGpVxWBfN0i43N1QNv5CZg4ba4InY/X1tjEZ5k+mFGxPnx5JNwFqtrCJz2PecDWrd1 v1tae55kUr/mIrem+/TKQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:Hms12gabo6I=:IpjPtXHD1zzM1102MYF4wN UejCrh1Nh+ddzd/ESVG+d00fQEYJLp8Bto/Ft3Q9Zamd8cKOimCYwcoRdGL5oqlZidCvP7Vf0 iYa4ynaDKhdI0CamvKF+IdHMW/MOc4HNNLRteuw0fCc+89iD0XEF9zoR7F8bcyT36RIKWMTPm p4MvE2CaPMZfc0BSAua0tHA22ROAvwXb0RO677zglIeO6JE9N36F3Fj+l+WlDUshrFG+/MPtw NLd9mE0MuiECM2JHjlJRsfZS73uS8WfFPKeqASkJcaGEq6CGBXlTXIWlXq4YlrkDT9CLnvmRm TWju+fF6tHxSNfH+Hs/5gtreJtlrd2iN69PqePx6dXV/WvIeDh7Q0l3Y+YzIcqfU7W6aFrKHh 1r5k1SGQYHgFRlpxMpJUcfwlEtlyP7bP/tM+yKSWEJ4qqHz+6CwhY+P+guQZahoJXQFc46Ll4 rqdLZ/3R/6yQ9RIoBVlrZTyCjuiCOsWGZ8f0U2TUuEm3RkUio/SM4WJG9unECD0+DZsg1NnZY UbJA6WrMRA7Ze5RG6JnIXby4GPvPbnQpNUBQY7aKY+DlNJicqvw9J6F9kl66ZQPPNzxFUmQJv DnCtmBJtRytEWiUUusMG9vpUXuHAMhMd/b2jCFw51fTlyP6gsWHFwleZiaoRMiycVHtlnMGEu 9hCWV8ltOYLlUDFxUlGlaC2SWhGDDiV2u1bvLFAugw+TzQGvx2hkdLf8TYqKsibFh3HU1HZrg hseHuNj1sNa1x1PoUMsnvtT30p31fCj96XmX4q1dCXQJXTp41HADJfYmKZA/m27oyHF3Q1Biu pIs8ysr X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 May 2018 09:02:03 -0000 LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFRo dSwgMyBNYXkgMjAxOCAyMjoyMzo1MiArMDIwMA0KIk8uIEhhcnRtYW5uIiA8b2hhcnRtYW5uQHdh bHN0YXR0Lm9yZz4gc2NocmllYjoNCg0KDQpJJ20gbm90IGZhbWlsaWFyIHdpdGgga2VybmVsIGRl YnVnZ2luZywgc28gdGhlcmUgYXJlIHNvbWUgc3RydWdnbGVzLg0KDQpBZnRlciBjb21waWxpbmcg YSBkZWJ1Z2dpbmcga2VybmVsIG9uIA0KDQpWZXJzaW9uIFN0cmluZzogRnJlZUJTRCAxMi4wLUNV UlJFTlQgIzIgcjMzMzI2OTogU2F0IE1heSAgNSAwODoxMDozMiBDRVNUIDIwMTgNCg0KUGFuaWMg U3RyaW5nOiBMb2NrIHRjcCBub3QgZXhjbHVzaXZlbHkgbG9ja2VkIEAgL3Vzci9zcmMvc3lzL25l dGluZXQvaW5fcGNiLmM6MTM5MQ0KDQoNCkFuZCB0aGlzIGlzIHdoYXQgSSBjYW4gcHJvdmlkZSB5 b3Ugd2l0aDoNCg0KDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL29iai91c3Ivc3JjL2FtZDY0 LmFtZDY0L3N5cy9XQUxIQUxMLURFQlVHL2tlcm5lbC5mdWxsLi4uZG9uZS4NCg0KVW5yZWFkIHBv cnRpb24gb2YgdGhlIGtlcm5lbCBtZXNzYWdlIGJ1ZmZlcjoNCnBhbmljOiBMb2NrIHRjcCBub3Qg ZXhjbHVzaXZlbHkgbG9ja2VkIEAgL3Vzci9zcmMvc3lzL25ldGluZXQvaW5fcGNiLmM6MTM5MQ0K DQpjcHVpZCA9IDQNCnRpbWUgPSAxNTI1NTEwMjkxDQpLREI6IHN0YWNrIGJhY2t0cmFjZToNCmRi X3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3NlbGZfd3JhcHBlcisweDJiL2ZyYW1l IDB4ZmZmZmZlMDBlNDg1ZTY3MA0KdnBhbmljKCkgYXQgdnBhbmljKzB4MWEzL2ZyYW1lIDB4ZmZm ZmZlMDBlNDg1ZTZkMA0KcGFuaWMoKSBhdCBwYW5pYysweDQzL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1 ZTczMA0KX3J3X3d1bmxvY2tfY29va2llKCkgYXQgX3J3X3d1bmxvY2tfY29va2llKzB4MTM3L2Zy YW1lIDB4ZmZmZmZlMDBlNDg1ZTc2MA0KaW5fcGNiZnJlZSgpIGF0IGluX3BjYmZyZWUrMHg1MWEv ZnJhbWUgMHhmZmZmZmUwMGU0ODVlN2IwDQp0Y3BfdXNyX2RldGFjaCgpIGF0IHRjcF91c3JfZGV0 YWNoKzB4MTVlL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTdmMA0Kc29mcmVlKCkgYXQgc29mcmVlKzB4 MmY0L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTg0MA0Kc29jbG9zZSgpIGF0IHNvY2xvc2UrMHgzODcv ZnJhbWUgMHhmZmZmZmUwMGU0ODVlOGIwDQpjbG9zZWYoKSBhdCBjbG9zZWYrMHgxZjUvZnJhbWUg MHhmZmZmZmUwMGU0ODVlOTQwDQpjbG9zZWZwKCkgYXQgY2xvc2VmcCsweGEwL2ZyYW1lIDB4ZmZm ZmZlMDBlNDg1ZTk4MA0KYW1kNjRfc3lzY2FsbCgpIGF0IGFtZDY0X3N5c2NhbGwrMHg2ZDMvZnJh bWUgMHhmZmZmZmUwMGU0ODVlYWIwDQpmYXN0X3N5c2NhbGxfY29tbW9uKCkgYXQgZmFzdF9zeXNj YWxsX2NvbW1vbisweDEwMS9mcmFtZSAweGZmZmZmZTAwZTQ4NWVhYjANCi0gLS0tIHN5c2NhbGwg KDYsIEZyZWVCU0QgRUxGNjQsIHN5c19jbG9zZSksIHJpcCA9IDB4ODAxMTFhZGRhLCByc3AgPSAw eDdmZmZkZjNmNzIyOCwgcmJwID0NCjB4N2ZmZmRmM2Y3MjQwIC0tLSBLREI6IGVudGVyOiBwYW5p Yw0KDQpfX2N1cnRocmVhZCAoKSBhdCAuL21hY2hpbmUvcGNwdS5oOjIzMQ0KMjMxICAgICAgICAg ICAgIF9fYXNtKCJtb3ZxICUlZ3M6JTEsJTAiIDogIj1yIiAodGQpDQooa2dkYikgYnQNCihrZ2Ri KSBidA0KIzAgIF9fY3VydGhyZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQojMSAgZG9h ZHVtcCAodGV4dGR1bXA9MCkgYXQgL3Vzci9zcmMvc3lzL2tlcm4va2Vybl9zaHV0ZG93bi5jOjM2 NQ0KIzIgIDB4ZmZmZmZmZmY4MDU5N2Q1YiBpbiBkYl9kdW1wIChkdW1teT08b3B0aW1pemVkIG91 dD4sIGR1bW15Mj08dW5hdmFpbGFibGU+LA0KZHVtbXkzPTx1bmF2YWlsYWJsZT4sIGR1bW15ND08 dW5hdmFpbGFibGU+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo1NzQNCiMzICAw eGZmZmZmZmZmODA1OTdhZTYgaW4gZGJfY29tbWFuZCAobGFzdF9jbWRwPTxvcHRpbWl6ZWQgb3V0 PiwgY21kX3RhYmxlPTxvcHRpbWl6ZWQNCm91dD4sIGRvcGFnZXI9PG9wdGltaXplZCBvdXQ+KSBh dCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo0ODEgIzQNCm91dD4weGZmZmZmZmZmODA1 OTc4MTQgaW4gZGJfY29tbWFuZF9sb29wICgpIGF0IC91c3Ivc3JjL3N5cy9kZGIvZGJfY29tbWFu ZC5jOjUzNA0KIzUgIDB4ZmZmZmZmZmY4MDU5YjA0ZiBpbiBkYl90cmFwICh0eXBlPTxvcHRpbWl6 ZWQgb3V0PiwgY29kZT08b3B0aW1pemVkIG91dD4pDQphdCAvdXNyL3NyYy9zeXMvZGRiL2RiX21h aW4uYzoyNTAgIzYgIDB4ZmZmZmZmZmY4MDkyNDQ2MyBpbiBrZGJfdHJhcCAodHlwZT0zLA0KY29k ZT0tNjE0NTYsIHRmPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vicl9r ZGIuYzo2OTcgIzcNCjB4ZmZmZmZmZmY4MGM4MGFiNyBpbiB0cmFwIChmcmFtZT0weGZmZmZmZTAw ZTQ4NWU1YTApDQphdCAvdXNyL3NyYy9zeXMvYW1kNjQvYW1kNjQvdHJhcC5jOjU1MCAjOCAgPHNp Z25hbCBoYW5kbGVyIGNhbGxlZD4gIzkgIGtkYl9lbnRlcg0KKHdoeT0weGZmZmZmZmZmODBkZDdi NTQgInBhbmljIiwgbXNnPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vi cl9rZGIuYzo0NzkNCiMxMCAweGZmZmZmZmZmODA4ZGI1MDAgaW4gdnBhbmljIChmbXQ9PG9wdGlt aXplZCBvdXQ+LCBhcD0weGZmZmZmZTAwZTQ4NWU3MTApDQphdCAvdXNyL3NyYy9zeXMva2Vybi9r ZXJuX3NodXRkb3duLmM6ODUxICMxMSAweGZmZmZmZmZmODA4ZGI1OTMgaW4gcGFuaWMNCihmbXQ9 MHhmZmZmZmZmZjgxMjViYmQ4IDxjbnB1dHNfbXR4PiAiXDI1MVwzMTJcMzMyXDIwMFwzNzdcMzc3 XDM3N1wzNzciKQ0KYXQgL3Vzci9zcmMvc3lzL2tlcm4va2Vybl9zaHV0ZG93bi5jOjc4OSAjMTIg MHhmZmZmZmZmZjgwOGQ2NWI3IGluIF9fcndfYXNzZXJ0DQooYz0weGZmZmZmZTAwMTExZWU2NTAs IHdoYXQ9NCwgZmlsZT0weGZmZmZmZmZmODBkYzUxNTcgIi91c3Ivc3JjL3N5cy9uZXRpbmV0L2lu X3BjYi5jIiwNCmxpbmU9MTM5MSkgYXQgL3Vzci9zcmMvc3lzL2tlcm4va2Vybl9yd2xvY2suYzox NDI2ICMxMyBfcndfd3VubG9ja19jb29raWUNCihjPTB4ZmZmZmZlMDAxMTFlZTY1MCwgZmlsZT0w eGZmZmZmZmZmODBkYzUxNTcgIi91c3Ivc3JjL3N5cy9uZXRpbmV0L2luX3BjYi5jIiwNCmxpbmU9 MTM5MSkgYXQgL3Vzci9zcmMvc3lzL2tlcm4va2Vybl9yd2xvY2suYzozNjIgIzE0IDB4ZmZmZmZm ZmY4MGE2OGNhYSBpbiBpbl9wY2JmcmVlDQooaW5wPTB4ZmZmZmY4MDA2NjA1OGIxMCkgYXQgL3Vz ci9zcmMvc3lzL25ldGluZXQvaW5fcGNiLmM6MTM5MSAjMTUgMHhmZmZmZmZmZjgwYjA5YTZlIGlu DQp0Y3BfZGV0YWNoIChzbz08b3B0aW1pemVkIG91dD4sIGlucD08b3B0aW1pemVkIG91dD4pDQph dCAvdXNyL3NyYy9zeXMvbmV0aW5ldC90Y3BfdXNycmVxLmM6MjU4ICMxNiB0Y3BfdXNyX2RldGFj aCAoc289PG9wdGltaXplZCBvdXQ+KQ0KYXQgL3Vzci9zcmMvc3lzL25ldGluZXQvdGNwX3VzcnJl cS5jOjI4OSAjMTcgMHhmZmZmZmZmZjgwOTdjMzk0IGluIHNvZnJlZQ0KKHNvPTB4ZmZmZmY4MDAx OTg4ZDM1OCkgYXQgL3Vzci9zcmMvc3lzL2tlcm4vdWlwY19zb2NrZXQuYzoxMDMyICMxOCAweGZm ZmZmZmZmODA5N2Q0ODcgaW4NCnNvY2xvc2UgKHNvPTB4ZmZmZmY4MDAxOTg4ZDM1OCkgYXQgL3Vz ci9zcmMvc3lzL2tlcm4vdWlwY19zb2NrZXQuYzoxMTI2ICMxOQ0KMHhmZmZmZmZmZjgwODg1YWQ1 IGluIGZvX2Nsb3NlIChmcD08b3B0aW1pemVkIG91dD4sIHRkPTxvcHRpbWl6ZWQgb3V0PikNCmF0 IC91c3Ivc3JjL3N5cy9zeXMvZmlsZS5oOjM0OCAjMjAgX2Zkcm9wIChmcD08b3B0aW1pemVkIG91 dD4sIHRkPTxvcHRpbWl6ZWQgb3V0PikNCmF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3Jp cC5jOjI5NTcgIzIxIGNsb3NlZiAoZnA9MHhmZmZmZjgwMDA0ZWY0ZWIwLA0KdGQ9MHhmZmZmZjgw MDE5ODkxNTYwKSBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX2Rlc2NyaXAuYzoyNTM4ICMyMiAw eGZmZmZmZmZmODA4ODI5MjAgaW4NCmNsb3NlZnAgKGZkcD0weGZmZmZmODAwMTk1NTM0NTAsIGZk PTEyLCBmcD0weGZmZmZmODAwMDRlZjRlYjAsIHRkPTB4ZmZmZmY4MDAxOTg5MTU2MCwNCmhvbGRs ZWFkZXJzPTApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3JpcC5jOjEyMDggIzIzIDB4 ZmZmZmZmZmY4MGM4MjAzMyBpbg0Kc3lzY2FsbGVudGVyICh0ZD0weGZmZmZmODAwMTk4OTE1NjAp DQphdCAvdXNyL3NyYy9zeXMvYW1kNjQvYW1kNjQvLi4vLi4va2Vybi9zdWJyX3N5c2NhbGwuYzox MzUgIzI0IGFtZDY0X3N5c2NhbGwNCih0ZD0weGZmZmZmODAwMTk4OTE1NjAsIHRyYWNlZD0wKSBh dCAvdXNyL3NyYy9zeXMvYW1kNjQvYW1kNjQvdHJhcC5jOjk0NSAjMjUgPHNpZ25hbA0KaGFuZGxl ciBjYWxsZWQ+ICMyNiAweDAwMDAwMDA4MDExMWFkZGEgaW4gPz8gKCkgQmFja3RyYWNlIHN0b3Bw ZWQ6IENhbm5vdCBhY2Nlc3MgbWVtb3J5DQphdCBhZGRyZXNzIDB4N2ZmZmRmM2Y3MjI4IChrZ2Ri KSANCg0KDQoNCg0KPiAtLS0tLUJFR0lOIFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+IEhhc2g6 IFNIQTUxMg0KPiANCj4gQW0gVGh1LCAzIE1heSAyMDE4IDEyOjUzOjA1IC0wNzAwDQo+ICJLLiBN YWN5IiA8a21hY3lAZnJlZWJzZC5vcmc+IHNjaHJpZWI6DQo+IA0KPiA+IENhbiB5b3UgZ2l2ZSBh bnkgY29udGV4dCBvbiB3aGF0IHRoZXkncmUgZG9pbmc/IEluIGFkZGl0aW9uIC0gZXZlbiBvbg0K PiA+IGEgcHJvZHVjdGlvbiBrZXJuZWwgaXQncyBwb3NzaWJsZSB0byBjb21waWxlIGluIEREQiB0 byBhdCBsZWFzdCBnZXQgYQ0KPiA+IGJhY2t0cmFjZS4gWW91ciByZXBvcnQgb25seSBnaXZlcyB1 cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8ga25vdyB0aGF0ICANCj4gDQo+IE5vdCBhdCB0aGUgbW9t ZW50LiBUaGUgaW1tZWRpYXRlIGNyYXNoIGNvcnJ1cHRlZCB0aGUgL3Vzci9zcmMgZmlsZXN5c3Rl bSBzbyBJIGNhbiBub3QNCj4gcmVjb21waWxlIGEga2VybmVsLiBFdmVyeSBhdHRlbXB0IHRvIC9l dGMvbmV0c3RhcnQgdGhlIG5ldHdvcmsgb24gdGhlIGJ1Z2d5IGtlcm5lbCBlbmRzDQo+IHVwIGlu IGEgZnVydGhlciBkZXN0cnVjdGlvbiwgc28gSSBzdG9wcGVkIGF0IHRoaXMgdmVyeSBtb21lbnQg YW5kIGhvcGVmdWxseSBJIGNhbg0KPiBjb3B5IC91c3Ivc3JjIGZyb20gYSByMzMxNTMgYm94IChy MzMzMTUzIGlzIGZvciBtZSB0aGUgbGFzdCB3b3JraW5nIHJldmlzaW9uKSB2aWEgVVNCDQo+IGZs YXNoIGRyaXZlIGFuZCByZWNvbXBpbGUgdGhlIGtlcm5lbC4gQnV0IEknbGwgZ28gZm9yIHIzMzMx NTMgZmlyc3Qgc2luY2UgSSBuZWVkIHRoZQ0KPiBzZXJ2ZXIgdXAgdG9tb3Jyb3cgYW5kIEknbGwg dHJ5IG9uIHRoZSBvdGhlciBib3ggd2hpY2ggaXMgYWxzbyBhZmZlY3RlZCwgYnV0IGFsc28NCj4g ZXF1aXB0ZWQgd2l0aCB0aGUgaTM1MCBOSUMgb24gd2hpY2ggdGhlIHByb2JsZW0gb2NjdXJzIHZl cnkgcXVpY2tseS4NCj4gDQo+ID4gdGhlcmUgaXMgX2FuXyBpc3N1ZS4gSXQncyBkaWZmaWN1bHQg dG8gcHJvY2VlZCBvbiB0aGlzIGFsb25lLiBJIGRvDQo+ID4gaGF2ZSBhIHJlcG9ydCBmcm9tIHRo ZSBGcmVlQlNEIENJIGluZnJhc3RydWN0dXJlIHRoYXQgd2UncmUgbG9va2luZyBpbg0KPiA+IHRv IG5vdy4gIFdpdGggbHVjayB0aGF0IGlzIHRoZSBzYW1lIGlzc3VlLg0KPiA+IA0KPiA+IC1NDQo+ ID4gDQo+ID4gT24gVGh1LCBNYXkgMywgMjAxOCBhdCAxMjozMSBQTSwgTy4gSGFydG1hbm4gPG9o YXJ0bWFubkB3YWxzdGF0dC5vcmc+IHdyb3RlOiAgDQo+ID4gPiAtLS0tLUJFR0lOIFBHUCBTSUdO RUQgTUVTU0FHRS0tLS0tDQo+ID4gPiBIYXNoOiBTSEE1MTINCj4gPiA+DQo+ID4gPiBBbSBXZWQs IDIgTWF5IDIwMTggMTk6MzY6MjkgKzAwMDAgKFVUQykNCj4gPiA+IFN0ZXBoZW4gSHVyZCA8c2h1 cmRARnJlZUJTRC5vcmc+IHNjaHJpZWI6DQo+ID4gPiAgICANCj4gPiA+PiBBdXRob3I6IHNodXJk DQo+ID4gPj4gRGF0ZTogV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4DQo+ID4gPj4gTmV3IFJldmlz aW9uOiAzMzMxNzUNCj4gPiA+PiBVUkw6IGh0dHBzOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5n ZXNldC9iYXNlLzMzMzE3NQ0KPiA+ID4+DQo+ID4gPj4gTG9nOg0KPiA+ID4+ICAgU2VwYXJhdGUg bGlzdCBtYW5pcHVsYXRpb24gbG9ja2luZyBmcm9tIHN0YXRlIGNoYW5nZSBpbiBtdWx0aWNhc3QN Cj4gPiA+Pg0KPiA+ID4+ICAgTXVsdGljYXN0IGluY29ycmVjdGx5IGNhbGxzIGluIHRvIGRyaXZl cnMgd2l0aCBhIG11dGV4IGhlbGQgY2F1c2luZyBkcml2ZXJzDQo+ID4gPj4gICB0byBoYXZlIHRv IGdvIHRocm91Z2ggYWxsIG1hbm5lciBvZiBjb250b3J0aW9ucyB0byB1c2UgYSBub24gc2xlZXBh YmxlIGxvY2suDQo+ID4gPj4gICBTZXJpYWxpemUgbXVsdGljYXN0IHVwZGF0ZXMgaW5zdGVhZC4N Cj4gPiA+Pg0KPiA+ID4+ICAgU3VibWl0dGVkIGJ5OiAgICAgICBtbWFjeSA8bW1hY3lAbWF0dG1h Y3kuaW8+DQo+ID4gPj4gICBSZXZpZXdlZCBieTogICAgICAgIHNodXJkLCBzYnJ1bm8NCj4gPiA+ PiAgIFNwb25zb3JlZCBieTogICAgICAgTGltZWxpZ2h0IE5ldHdvcmtzDQo+ID4gPj4gICBEaWZm ZXJlbnRpYWwgUmV2aXNpb246ICAgICAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0QxNDk2 OQ0KPiA+ID4+DQo+ID4gPj4gTW9kaWZpZWQ6DQo+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJf Z3Rhc2txdWV1ZS5jDQo+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4g Pj4gICBoZWFkL3N5cy9uZXQvaWYuYw0KPiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pZ21wLmMN Cj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaWdtcF92YXIuaA0KPiA+ID4+ICAgaGVhZC9zeXMv bmV0aW5ldC9pbi5jDQo+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPiA+ PiAgIGhlYWQvc3lzL25ldGluZXQvaW5fcGNiLmMNCj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQv aW5fdmFyLmgNCj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaXBfY2FycC5jDQo+ID4gPj4gICBo ZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYw0KPiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvaW42X2lm YXR0YWNoLmMNCj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2L2luNl9tY2FzdC5jDQo+ID4gPj4g ICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfcGNiLmMNCj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2 L2luNl92YXIuaA0KPiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvbWxkNi5jDQo+ID4gPj4gICBo ZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2X3Zhci5oDQo+ID4gPj4gICBoZWFkL3N5cy9zeXMvZ3Rhc2tx dWV1ZS5oDQo+ID4gPj4NCj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNr cXVldWUuYw0KPiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ID4+IC0tLSBoZWFkL3N5 cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5jICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAgICAg ICAocjMzMzE3NCkNCj4gPiA+PiArKysgaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNrcXVldWUuYyAg IFdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4gPj4gQEAgLTUz LDYgKzUzLDcgQEAgc3RhdGljIHZvaWQgZ3Rhc2txdWV1ZV90aHJlYWRfZW5xdWV1ZSh2b2lkICop Ow0KPiA+ID4+ICBzdGF0aWMgdm9pZCAgZ3Rhc2txdWV1ZV90aHJlYWRfbG9vcCh2b2lkICphcmcp Ow0KPiA+ID4+DQo+ID4gPj4gIFRBU0tRR1JPVVBfREVGSU5FKHNvZnRpcnEsIG1wX25jcHVzLCAx KTsNCj4gPiA+PiArVEFTS1FHUk9VUF9ERUZJTkUoY29uZmlnLCAxLCAxKTsNCj4gPiA+Pg0KPiA+ ID4+ICBzdHJ1Y3QgZ3Rhc2txdWV1ZV9idXN5IHsNCj4gPiA+PiAgICAgICBzdHJ1Y3QgZ3Rhc2sg ICAgKnRiX3J1bm5pbmc7DQo+ID4gPj4gQEAgLTY2Miw3ICs2NjMsNyBAQCBTWVNJTklUKHRxZ19y ZWNvcmRfc21wX3N0YXJ0ZWQsIFNJX1NVQl9TTVAsIFNJX09SREVSX0YNCj4gPiA+Pg0KPiA+ID4+ ICB2b2lkDQo+ID4gPj4gIHRhc2txZ3JvdXBfYXR0YWNoKHN0cnVjdCB0YXNrcWdyb3VwICpxZ3Jv dXAsIHN0cnVjdCBncm91cHRhc2sgKmd0YXNrLA0KPiA+ID4+IC0gICAgdm9pZCAqdW5pcSwgaW50 IGlycSwgY2hhciAqbmFtZSkNCj4gPiA+PiArICAgIHZvaWQgKnVuaXEsIGludCBpcnEsIGNvbnN0 IGNoYXIgKm5hbWUpDQo+ID4gPj4gIHsNCj4gPiA+PiAgICAgICBjcHVzZXRfdCBtYXNrOw0KPiA+ ID4+ICAgICAgIGludCBxaWQsIGVycm9yOw0KPiA+ID4+IEBAIC05NzYsNCArOTc3LDEzIEBAIHZv aWQNCj4gPiA+PiAgdGFza3Fncm91cF9kZXN0cm95KHN0cnVjdCB0YXNrcWdyb3VwICpxZ3JvdXAp DQo+ID4gPj4gIHsNCj4gPiA+Pg0KPiA+ID4+ICt9DQo+ID4gPj4gKw0KPiA+ID4+ICt2b2lkDQo+ ID4gPj4gK3Rhc2txZ3JvdXBfY29uZmlnX2d0YXNrX2luaXQodm9pZCAqY3R4LCBzdHJ1Y3QgZ3Jv dXB0YXNrICpndGFzaywgZ3Rhc2tfZm5fdCAqZm4sDQo+ID4gPj4gKyAgICAgY29uc3QgY2hhciAq bmFtZSkNCj4gPiA+PiArew0KPiA+ID4+ICsNCj4gPiA+PiArICAgICBHUk9VUFRBU0tfSU5JVChn dGFzaywgMCwgZm4sIGN0eCk7DQo+ID4gPj4gKyAgICAgdGFza3Fncm91cF9hdHRhY2gocWdyb3Vw X2NvbmZpZywgZ3Rhc2ssIGd0YXNrLCAtMSwgbmFtZSk7DQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4gPj4gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQo+ID4gPj4gLS0tIGhlYWQvc3lzL2tlcm4vc3Vicl93aXRuZXNzLmMg ICAgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAgICAgIChyMzMzMTc0KQ0KPiA+ID4+ICsr KyBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jICAgICAgV2VkIE1heSAgMiAxOTozNjoyOSAy MDE4ICAgICAgICAocjMzMzE3NSkNCj4gPiA+PiBAQCAtNTMyLDE4ICs1MzIsMjIgQEAgc3RhdGlj IHN0cnVjdCB3aXRuZXNzX29yZGVyX2xpc3RfZW50cnkgb3JkZXJfbGlzdHNbXSA9DQo+ID4gPj4g ICAgICAgICogSVB2NCBtdWx0aWNhc3Q6DQo+ID4gPj4gICAgICAgICogcHJvdG9jb2wgbG9ja3Mg YmVmb3JlIGludGVyZmFjZSBsb2NrcywgYWZ0ZXIgVURQIGxvY2tzLg0KPiA+ID4+ICAgICAgICAq Lw0KPiA+ID4+ICsgICAgIHsgImluX211bHRpX3N4IiwgJmxvY2tfY2xhc3Nfc3ggfSwNCj4gPiA+ PiAgICAgICB7ICJ1ZHBpbnAiLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+ID4+IC0gICAgIHsgImlu X211bHRpX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+ID4+ICsgICAgIHsgImlu X211bHRpX2xpc3RfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4gPj4gICAgICAg eyAiaWdtcF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwNCj4gPiA+PiArICAgICB7ICJp Zm5ldF9ydyIsICZsb2NrX2NsYXNzX3J3IH0sDQo+ID4gPj4gICAgICAgeyAiaWZfYWRkcl9sb2Nr IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPiA+PiAgICAgICB7IE5VTEwsIE5VTEwgfSwNCj4gPiA+ PiAgICAgICAvKg0KPiA+ID4+ICAgICAgICAqIElQdjYgbXVsdGljYXN0Og0KPiA+ID4+ICAgICAg ICAqIHByb3RvY29sIGxvY2tzIGJlZm9yZSBpbnRlcmZhY2UgbG9ja3MsIGFmdGVyIFVEUCBsb2Nr cy4NCj4gPiA+PiAgICAgICAgKi8NCj4gPiA+PiArICAgICB7ICJpbjZfbXVsdGlfc3giLCAmbG9j a19jbGFzc19zeCB9LA0KPiA+ID4+ICAgICAgIHsgInVkcGlucCIsICZsb2NrX2NsYXNzX3J3IH0s DQo+ID4gPj4gLSAgICAgeyAiaW42X211bHRpX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9 LA0KPiA+ID4+ICsgICAgIHsgImluNl9tdWx0aV9saXN0X210eCIsICZsb2NrX2NsYXNzX210eF9z bGVlcCB9LA0KPiA+ID4+ICAgICAgIHsgIm1sZF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAg fSwNCj4gPiA+PiArICAgICB7ICJpZm5ldF9ydyIsICZsb2NrX2NsYXNzX3J3IH0sDQo+ID4gPj4g ICAgICAgeyAiaWZfYWRkcl9sb2NrIiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPiA+PiAgICAgICB7 IE5VTEwsIE5VTEwgfSwNCj4gPiA+PiAgICAgICAvKg0KPiA+ID4+DQo+ID4gPj4gTW9kaWZpZWQ6 IGhlYWQvc3lzL25ldC9pZi5jDQo+ID4gPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPj4g LS0tIGhlYWQvc3lzL25ldC9pZi5jIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAgICAgKHIz MzMxNzQpDQo+ID4gPj4gKysrIGhlYWQvc3lzL25ldC9pZi5jIFdlZCBNYXkgIDIgMTk6MzY6Mjkg MjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4gPj4gQEAgLTk4NSwxMSArOTg1LDEzIEBAIHN0YXRp YyB2b2lkDQo+ID4gPj4gIGlmX3B1cmdlbWFkZHJzKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ID4+ ICB7DQo+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICppZm1hOw0KPiA+ID4+IC0gICAg IHN0cnVjdCBpZm11bHRpYWRkciAqbmV4dDsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIElGX0FERFJf V0xPQ0soaWZwKTsNCj4gPiA+PiAtICAgICBUQUlMUV9GT1JFQUNIX1NBRkUoaWZtYSwgJmlmcC0+ aWZfbXVsdGlhZGRycywgaWZtYV9saW5rLCBuZXh0KQ0KPiA+ID4+ICsgICAgIHdoaWxlICghVEFJ TFFfRU1QVFkoJmlmcC0+aWZfbXVsdGlhZGRycykpIHsNCj4gPiA+PiArICAgICAgICAgICAgIGlm bWEgPSBUQUlMUV9GSVJTVCgmaWZwLT5pZl9tdWx0aWFkZHJzKTsNCj4gPiA+PiArICAgICAgICAg ICAgIFRBSUxRX1JFTU9WRSgmaWZwLT5pZl9tdWx0aWFkZHJzLCBpZm1hLCBpZm1hX2xpbmspOw0K PiA+ID4+ICAgICAgICAgICAgICAgaWZfZGVsbXVsdGlfbG9ja2VkKGlmcCwgaWZtYSwgMSk7DQo+ ID4gPj4gKyAgICAgfQ0KPiA+ID4+ICAgICAgIElGX0FERFJfV1VOTE9DSyhpZnApOw0KPiA+ID4+ ICB9DQo+ID4gPj4NCj4gPiA+PiBAQCAtMzQyOSw2ICszNDMxLDEyIEBAIGlmX2FkZG11bHRpKHN0 cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3Qgc29ja2FkZHIgKnNhLA0KPiA+ID4+ICAgICAgIHN0cnVj dCBzb2NrYWRkcl9kbCBzZGw7DQo+ID4gPj4gICAgICAgaW50IGVycm9yOw0KPiA+ID4+DQo+ID4g Pj4gKyNpZmRlZiBJTkVUDQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0tfQVNTRVJU KCk7DQo+ID4gPj4gKyNlbmRpZg0KPiA+ID4+ICsjaWZkZWYgSU5FVDYNCj4gPiA+PiArICAgICBJ TjZfTVVMVElfTElTVF9VTkxPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gKyNlbmRpZg0KPiA+ID4+ICAg ICAgIC8qDQo+ID4gPj4gICAgICAgICogSWYgdGhlIGFkZHJlc3MgaXMgYWxyZWFkeSBwcmVzZW50 LCByZXR1cm4gYSBuZXcgcmVmZXJlbmNlIHRvIGl0Ow0KPiA+ID4+ICAgICAgICAqIG90aGVyd2lz ZSwgYWxsb2NhdGUgc3RvcmFnZSBhbmQgc2V0IHVwIGEgbmV3IGFkZHJlc3MuDQo+ID4gPj4gQEAg LTM2MTAsNiArMzYxOCw5IEBAIGlmX2RlbG11bHRpX2lmbWEoc3RydWN0IGlmbXVsdGlhZGRyICpp Zm1hKQ0KPiA+ID4+ICAgICAgIHN0cnVjdCBpZm5ldCAqaWZwOw0KPiA+ID4+ICAgICAgIGludCBs YXN0cmVmOw0KPiA+ID4+DQo+ID4gPj4gKyNpZmRlZiBJTkVUDQo+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9VTkxPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gKyNlbmRpZg0KPiA+ID4+ICAgICAgIGlm cCA9IGlmbWEtPmlmbWFfaWZwOw0KPiA+ID4+ICAjaWZkZWYgRElBR05PU1RJQw0KPiA+ID4+ICAg ICAgIGlmIChpZnAgPT0gTlVMTCkgew0KPiA+ID4+IEBAIC0zNzExLDggKzM3MjIsNyBAQCBpZl9k ZWxtdWx0aV9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBpZm11bHRpYWQNCj4gPiA+ PiAgICAgICAgICAgICAgICAgICAgICAgaWZfZnJlZW11bHRpKGxsX2lmbWEpOw0KPiA+ID4+ICAg ICAgICAgICAgICAgfQ0KPiA+ID4+ICAgICAgIH0NCj4gPiA+PiAtDQo+ID4gPj4gLSAgICAgaWYg KGlmcCAhPSBOVUxMKQ0KPiA+ID4+ICsgICAgIGlmIChpZnAgIT0gTlVMTCAmJiBkZXRhY2hpbmcg PT0gMCkNCj4gPiA+PiAgICAgICAgICAgICAgIFRBSUxRX1JFTU9WRSgmaWZwLT5pZl9tdWx0aWFk ZHJzLCBpZm1hLCBpZm1hX2xpbmspOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgaWZfZnJlZW11bHRp KGlmbWEpOw0KPiA+ID4+DQo+ID4gPj4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvaWdtcC5j DQo+ID4gPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPj4gLS0tIGhlYWQvc3lzL25ldGlu ZXQvaWdtcC5jICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAgICAgICAocjMzMzE3NCkNCj4g PiA+PiArKysgaGVhZC9zeXMvbmV0aW5ldC9pZ21wLmMgICBXZWQgTWF5ICAyIDE5OjM2OjI5IDIw MTggICAgICAgIChyMzMzMTc1KQ0KPiA+ID4+IEBAIC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIGlu dCAgICAgICAgaWdtcF92M19lbnF1ZXVlX2dyb3VwX3JlY29yZChzdHJ1Y3QgbWJ1ZnEgKg0KPiA+ ID4+ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbl9tdWx0aSAqLCBjb25zdCBpbnQsIGNvbnN0 IGludCwgY29uc3QgaW50KTsNCj4gPiA+PiAgc3RhdGljIGludCAgIGlnbXBfdjNfZW5xdWV1ZV9m aWx0ZXJfY2hhbmdlKHN0cnVjdCBtYnVmcSAqLA0KPiA+ID4+ICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBpbl9tdWx0aSAqKTsNCj4gPiA+PiAtc3RhdGljIHZvaWQgIGlnbXBfdjNfcHJvY2Vzc19n cm91cF90aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqLA0KPiA+ID4+ICtzdGF0aWMgdm9pZCAg aWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhzdHJ1Y3QgaW5fbXVsdGlfaGVhZCAqLA0KPiA+ ID4+ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtYnVmcSAqLCBzdHJ1Y3QgbWJ1ZnEgKiwgc3Ry dWN0IGluX211bHRpICosDQo+ID4gPj4gICAgICAgICAgICAgICAgICAgY29uc3QgaW50KTsNCj4g PiA+PiAgc3RhdGljIGludCAgIGlnbXBfdjNfbWVyZ2Vfc3RhdGVfY2hhbmdlcyhzdHJ1Y3QgaW5f bXVsdGkgKiwNCj4gPiA+PiBAQCAtMTYyLDEyICsxNjIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBuZXRpc3JfaGFuZGxlciBpZ21wX25oID0gew0KPiA+ID4+ICAgKiB0aGVtc2VsdmVzIGFyZSBu b3QgdmlydHVhbGl6ZWQuDQo+ID4gPj4gICAqDQo+ID4gPj4gICAqIExvY2tpbmc6DQo+ID4gPj4g LSAqICAqIFRoZSBwZXJtaXR0ZWQgbG9jayBvcmRlciBpczogSU5fTVVMVElfTE9DSywgSUdNUF9M T0NLLCBJRl9BRERSX0xPQ0suDQo+ID4gPj4gKyAqICAqIFRoZSBwZXJtaXR0ZWQgbG9jayBvcmRl ciBpczogSU5fTVVMVElfTElTVF9MT0NLLCBJR01QX0xPQ0ssIElGX0FERFJfTE9DSy4NCj4gPiA+ PiAgICogICAgQW55IG1heSBiZSB0YWtlbiBpbmRlcGVuZGVudGx5OyBpZiBhbnkgYXJlIGhlbGQg YXQgdGhlIHNhbWUNCj4gPiA+PiAgICogICAgdGltZSwgdGhlIGFib3ZlIGxvY2sgb3JkZXIgbXVz dCBiZSBmb2xsb3dlZC4NCj4gPiA+PiAgICogICogQWxsIG91dHB1dCBpcyBkZWxlZ2F0ZWQgdG8g dGhlIG5ldGlzci4NCj4gPiA+PiAgICogICAgTm93IHRoYXQgR2lhbnQgaGFzIGJlZW4gZWxpbWlu YXRlZCwgdGhlIG5ldGlzciBtYXkgYmUgaW5saW5lZC4NCj4gPiA+PiAtICogICogSU5fTVVMVElf TE9DSyBjb3ZlcnMgaW5fbXVsdGkuDQo+ID4gPj4gKyAqICAqIElOX01VTFRJX0xJU1RfTE9DSyBj b3ZlcnMgaW5fbXVsdGkuDQo+ID4gPj4gICAqICAqIElHTVBfTE9DSyBjb3ZlcnMgaWdtcF9pZnNv ZnRjIGFuZCBhbnkgZ2xvYmFsIHZhcmlhYmxlcyBpbiB0aGlzIGZpbGUsDQo+ID4gPj4gICAqICAg IGluY2x1ZGluZyB0aGUgb3V0cHV0IHF1ZXVlLg0KPiA+ID4+ICAgKiAgKiBJRl9BRERSX0xPQ0sg Y292ZXJzIGlmX211bHRpYWRkcnMsIHdoaWNoIGlzIHVzZWQgZm9yIGEgdmFyaWV0eSBvZg0KPiA+ ID4+IEBAIC00NDEsNyArNDQxLDcgQEAgc3lzY3RsX2lnbXBfaWZpbmZvKFNZU0NUTF9IQU5ETEVS X0FSR1MpDQo+ID4gPj4gICAgICAgaWYgKGVycm9yKQ0KPiA+ID4+ICAgICAgICAgICAgICAgcmV0 dXJuIChlcnJvcik7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4g Pj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7 DQo+ID4gPj4NCj4gPiA+PiAgICAgICBpZiAobmFtZVswXSA8PSAwIHx8IG5hbWVbMF0gPiBWX2lm X2luZGV4KSB7DQo+ID4gPj4gQEAgLTQ3NSw3ICs0NzUsNyBAQCBzeXNjdGxfaWdtcF9pZmluZm8o U1lTQ1RMX0hBTkRMRVJfQVJHUykNCj4gPiA+Pg0KPiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+ID4+ ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4gPj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPiA+PiAgICAgICByZXR1cm4g KGVycm9yKTsNCj4gPiA+PiAgfQ0KPiA+ID4+DQo+ID4gPj4gQEAgLTU4Niw3ICs1ODYsNiBAQCBp Z2lfYWxsb2NfbG9ja2VkKC8qY29uc3QqLyBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPiA+PiAgICAg ICBpZ2ktPmlnaV9xaSA9IElHTVBfUUlfSU5JVDsNCj4gPiA+PiAgICAgICBpZ2ktPmlnaV9xcmkg PSBJR01QX1FSSV9JTklUOw0KPiA+ID4+ICAgICAgIGlnaS0+aWdpX3VyaSA9IElHTVBfVVJJX0lO SVQ7DQo+ID4gPj4gLSAgICAgU0xJU1RfSU5JVCgmaWdpLT5pZ2lfcmVsaW5taGVhZCk7DQo+ID4g Pj4gICAgICAgbWJ1ZnFfaW5pdCgmaWdpLT5pZ2lfZ3EsIElHTVBfTUFYX1JFU1BPTlNFX1BBQ0tF VFMpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgTElTVF9JTlNFUlRfSEVBRCgmVl9pZ2lfaGVhZCwg aWdpLCBpZ2lfbGluayk7DQo+ID4gPj4gQEAgLTYxMiwxMSArNjExLDEyIEBAIGlnbXBfaWZkZXRh Y2goc3RydWN0IGlmbmV0ICppZnApDQo+ID4gPj4gIHsNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaWdt cF9pZnNvZnRjICAgICAqaWdpOw0KPiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAg ICppZm1hOw0KPiA+ID4+IC0gICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5t Ow0KPiA+ID4+IC0NCj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0K PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX3RtcDsNCj4gPiA+PiAg ICAgICBDVFIzKEtUUl9JR01QVjMsICIlczogY2FsbGVkIGZvciBpZnAgJXAoJXMpIiwgX19mdW5j X18sIGlmcCwNCj4gPiA+PiAgICAgICAgICAgaWZwLT5pZl94bmFtZSk7DQo+ID4gPj4NCj4gPiA+ PiArICAgICBTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiA+ID4+ICAgICAgIElHTVBfTE9D SygpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZw LT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5paV9pZ21wOw0KPiA+ID4+IEBAIC02MzEsMjQgKzYzMSwx NSBAQCBpZ21wX2lmZGV0YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ID4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgKCIlczogaWZtYV9wcm90b3NwZWMgaXMgTlVMTCIsIF9fZnVuY19fKSk7 DQo+ID4gPj4gICNlbmRpZg0KPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpbm0gPSAoc3Ry dWN0IGluX211bHRpICopaWZtYS0+aWZtYV9wcm90b3NwZWM7DQo+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgIGlmIChpbm0tPmlubV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSKSB7DQo+ ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmln aS0+aWdpX3JlbGlubWhlYWQsDQo+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlubSwgaW5tX25yZWxlKTsNCj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFW SU5HX01FTUJFUikNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm1fcmVs ZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsNCj4gPiA+PiAgICAgICAgICAgICAgICAgICAg ICAgaW5tX2NsZWFyX3JlY29yZGVkKGlubSk7DQo+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4g Pj4gICAgICAgICAgICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPiA+PiAtICAgICAgICAg ICAgIC8qDQo+ID4gPj4gLSAgICAgICAgICAgICAgKiBGcmVlIHRoZSBpbl9tdWx0aSByZWZlcmVu Y2UocykgZm9yIHRoaXMgSUdNUCBsaWZlY3ljbGUuDQo+ID4gPj4gLSAgICAgICAgICAgICAgKi8N Cj4gPiA+PiAtICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZpZ2ktPmlnaV9y ZWxpbm1oZWFkLCBpbm1fbnJlbGUsDQo+ID4gPj4gLSAgICAgICAgICAgICAgICAgdGlubSkgew0K PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lf cmVsaW5taGVhZCwgaW5tX25yZWxlKTsNCj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgaW5t X3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4gPj4gLSAgICAgICAgICAgICB9DQo+ID4gPj4gKyAg ICAgICAgICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZpbm1fZnJlZV90bXApOw0KPiA+ ID4+ICAgICAgIH0NCj4gPiA+PiAtDQo+ID4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPiA+ PiArDQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ID4+ICAvKg0KPiA+ID4+IEBAIC02ODQsMTEgKzY3 NSw2IEBAIGlnaV9kZWxldGVfbG9ja2VkKGNvbnN0IHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ID4+ ICAgICAgICAgICAgICAgICAgICAgICBtYnVmcV9kcmFpbigmaWdpLT5pZ2lfZ3EpOw0KPiA+ID4+ DQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIExJU1RfUkVNT1ZFKGlnaSwgaWdpX2xpbmsp Ow0KPiA+ID4+IC0NCj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgS0FTU0VSVChTTElTVF9F TVBUWSgmaWdpLT5pZ2lfcmVsaW5taGVhZCksDQo+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAoIiVzOiB0aGVyZSBhcmUgZGFuZ2xpbmcgaW5fbXVsdGkgcmVmZXJlbmNlcyIsDQo+ID4g Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXykpOw0KPiA+ID4+IC0NCj4gPiA+ PiAgICAgICAgICAgICAgICAgICAgICAgZnJlZShpZ2ksIE1fSUdNUCk7DQo+ID4gPj4gICAgICAg ICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPiA+PiBA QCAtNzIyLDcgKzcwOCw3IEBAIGlnbXBfaW5wdXRfdjFfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAs IGNvbnN0IHN0cnVjdCBpcA0KPiA+ID4+ICAgICAgIH0NCj4gPiA+PiAgICAgICBJR01QU1RBVF9J TkMoaWdwc19yY3ZfZ2VuX3F1ZXJpZXMpOw0KPiA+ID4+DQo+ID4gPj4gLSAgICAgSU5fTVVMVElf TE9DSygpOw0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+ID4+ICAgICAg IElHTVBfTE9DSygpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZp bmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5paV9pZ21wOw0KPiA+ID4+IEBAIC03Nzgs NyArNzY0LDcgQEAgaWdtcF9pbnB1dF92MV9xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qg c3RydWN0IGlwDQo+ID4gPj4NCj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPiA+PiAgICAgICBJR01Q X1VOTE9DSygpOw0KPiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+ID4+ICsgICAg IElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4gPj4NCj4gPiA+PiAgICAgICByZXR1cm4gKDAp Ow0KPiA+ID4+ICB9DQo+ID4gPj4gQEAgLTgxNiw3ICs4MDIsNyBAQCBpZ21wX2lucHV0X3YyX3F1 ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaXANCj4gPiA+PiAgICAgICAgICAg ICAgIElHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9ncm91cF9xdWVyaWVzKTsNCj4gPiA+PiAgICAgICB9 DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4gPj4gKyAgICAgSU5f TVVMVElfTElTVF9MT0NLKCk7DQo+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4gPj4NCj4g PiA+PiAgICAgICBpZ2kgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9J TkVUXSktPmlpX2lnbXA7DQo+ID4gPj4gQEAgLTg3Miw3ICs4NTgsNyBAQCBpZ21wX2lucHV0X3Yy X3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaXANCj4gPiA+Pg0KPiA+ID4+ ICBvdXRfbG9ja2VkOg0KPiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4gPj4gLSAgICAg SU5fTVVMVElfVU5MT0NLKCk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsN Cj4gPiA+Pg0KPiA+ID4+ICAgICAgIHJldHVybiAoMCk7DQo+ID4gPj4gIH0NCj4gPiA+PiBAQCAt ODk5LDcgKzg4NSw3IEBAIGlnbXBfdjJfdXBkYXRlX2dyb3VwKHN0cnVjdCBpbl9tdWx0aSAqaW5t LCBjb25zdCBpbnQgdA0KPiA+ID4+ICAgICAgIENUUjQoS1RSX0lHTVBWMywgIjB4JTA4eDogJXMv JXMgdGltZXI9JWQiLCBfX2Z1bmNfXywNCj4gPiA+PiAgICAgICAgICAgbnRvaGwoaW5tLT5pbm1f YWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAtPmlmX3huYW1lLCB0aW1lcik7DQo+ID4gPj4NCj4g PiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsgICAgIElOX01VTFRJ X0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIHN3aXRjaCAoaW5tLT5p bm1fc3RhdGUpIHsNCj4gPiA+PiAgICAgICBjYXNlIElHTVBfTk9UX01FTUJFUjoNCj4gPiA+PiBA QCAtMTAxMSw3ICs5OTcsNyBAQCBpZ21wX2lucHV0X3YzX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZw LCBjb25zdCBzdHJ1Y3QgaXANCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgSUdNUFNUQVRf SU5DKGlncHNfcmN2X2dzcl9xdWVyaWVzKTsNCj4gPiA+PiAgICAgICB9DQo+ID4gPj4NCj4gPiA+ PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL KCk7DQo+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4gPj4NCj4gPiA+PiAgICAgICBpZ2kg PSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7 DQo+ID4gPj4gQEAgLTEwOTIsNyArMTA3OCw3IEBAIGlnbXBfaW5wdXRfdjNfcXVlcnkoc3RydWN0 IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+ID4+DQo+ID4gPj4gIG91dF9sb2NrZWQ6 DQo+ID4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPiA+PiAtICAgICBJTl9NVUxUSV9VTkxP Q0soKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+ID4+DQo+ID4g Pj4gICAgICAgcmV0dXJuICgwKTsNCj4gPiA+PiAgfQ0KPiA+ID4+IEBAIC0xMTA5LDcgKzEwOTUs NyBAQCBpZ21wX2lucHV0X3YzX2dyb3VwX3F1ZXJ5KHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBzdHJ1 Y3QNCj4gPiA+PiAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgcmV0dmFsOw0KPiA+ID4+ ICAgICAgIHVpbnQxNl90ICAgICAgICAgICAgICAgICBuc3JjOw0KPiA+ID4+DQo+ID4gPj4gLSAg ICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xP Q0tfQVNTRVJUKCk7DQo+ID4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+DQo+ ID4gPj4gICAgICAgcmV0dmFsID0gMDsNCj4gPiA+PiBAQCAtMTI0Niw3ICsxMjMyLDcgQEAgaWdt cF9pbnB1dF92MV9yZXBvcnQoc3RydWN0IGlmbmV0ICppZnAsIC8qY29uc3QqLyBzdHJ1DQo+ID4g Pj4gICAgICAgICogSWYgd2UgYXJlIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAsIGFuZCBvdXIgbWVt YmVyc2hpcCBzaG91bGQgYmUNCj4gPiA+PiAgICAgICAgKiByZXBvcnRlZCwgc3RvcCBvdXIgZ3Jv dXAgdGltZXIgYW5kIHRyYW5zaXRpb24gdG8gdGhlICdsYXp5JyBzdGF0ZS4NCj4gPiA+PiAgICAg ICAgKi8NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9MT0NLKCk7DQo+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAsIGlnbXAt PmlnbXBfZ3JvdXApOw0KPiA+ID4+ICAgICAgIGlmIChpbm0gIT0gTlVMTCkgew0KPiA+ID4+ICAg ICAgICAgICAgICAgc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpOw0KPiA+ID4+IEBAIC0xMzA1LDcg KzEyOTEsNyBAQCBpZ21wX2lucHV0X3YxX3JlcG9ydChzdHJ1Y3QgaWZuZXQgKmlmcCwgLypjb25z dCovIHN0cnUNCj4gPiA+PiAgICAgICB9DQo+ID4gPj4NCj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4g PiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNU X1VOTE9DSygpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPiA+PiAgfQ0K PiA+ID4+IEBAIC0xMzczLDcgKzEzNTksNyBAQCBpZ21wX2lucHV0X3YyX3JlcG9ydChzdHJ1Y3Qg aWZuZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gPiA+PiAgICAgICAgKiByZXBvcnRlZCwgYW5k IG91ciBncm91cCB0aW1lciBpcyBwZW5kaW5nIG9yIGFib3V0IHRvIGJlIHJlc2V0LA0KPiA+ID4+ ICAgICAgICAqIHN0b3Agb3VyIGdyb3VwIHRpbWVyIGJ5IHRyYW5zaXRpb25pbmcgdG8gdGhlICds YXp5JyBzdGF0ZS4NCj4gPiA+PiAgICAgICAgKi8NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NL KCk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4gPj4gICAgICAgaW5t ID0gaW5tX2xvb2t1cChpZnAsIGlnbXAtPmlnbXBfZ3JvdXApOw0KPiA+ID4+ICAgICAgIGlmIChp bm0gIT0gTlVMTCkgew0KPiA+ID4+ICAgICAgICAgICAgICAgc3RydWN0IGlnbXBfaWZzb2Z0YyAq aWdpOw0KPiA+ID4+IEBAIC0xNDE4LDcgKzE0MDQsNyBAQCBpZ21wX2lucHV0X3YyX3JlcG9ydChz dHJ1Y3QgaWZuZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gPiA+PiAgICAgICB9DQo+ID4gPj4N Cj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4g PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAg cmV0dXJuICgwKTsNCj4gPiA+PiAgfQ0KPiA+ID4+IEBAIC0xNjQ3LDYgKzE2MzMsNyBAQCBpZ21w X2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICAg ICAqaWdpOw0KPiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAgICppZm1hOw0KPiA+ ID4+ICAgICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm07DQo+ID4gPj4gKyAgICAgc3Ry dWN0IGluX211bHRpX2hlYWQgaW5tX2ZyZWVfdG1wOw0KPiA+ID4+ICAgICAgIGludCAgICAgICAg ICAgICAgICAgICAgICBsb29wLCB1cmlfZmFzdGh6Ow0KPiA+ID4+DQo+ID4gPj4gICAgICAgbG9v cCA9IDA7DQo+ID4gPj4gQEAgLTE2NjIsNyArMTY0OSw4IEBAIGlnbXBfZmFzdHRpbW9fdm5ldCh2 b2lkKQ0KPiA+ID4+ICAgICAgICAgICAhVl9zdGF0ZV9jaGFuZ2VfdGltZXJzX3J1bm5pbmcpDQo+ ID4gPj4gICAgICAgICAgICAgICByZXR1cm47DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxU SV9MT0NLKCk7DQo+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmaW5tX2ZyZWVfdG1wKTsNCj4gPiA+ PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPiA+PiAgICAgICBJR01QX0xPQ0soKTsN Cj4gPiA+Pg0KPiA+ID4+ICAgICAgIC8qDQo+ID4gPj4gQEAgLTE3MjAsNyArMTcwOCw3IEBAIGln bXBfZmFzdHRpbW9fdm5ldCh2b2lkKQ0KPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZ2ktPmlnaV92ZXJzaW9uKTsNCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBJR01QX1ZF UlNJT05fMzoNCj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ21wX3YzX3By b2Nlc3NfZ3JvdXBfdGltZXJzKGlnaSwgJnFycSwNCj4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKCZpbm1fZnJlZV90bXAsICZx cnEsDQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzY3EsIGlubSwg dXJpX2Zhc3Roeik7DQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPiA+PiBAQCAtMTcyOCw4ICsxNzE2 LDYgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4gPj4gICAgICAgICAgICAgICBJRl9B RERSX1JVTkxPQ0soaWZwKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgICAgICAgICAgaWYgKGlnaS0+ aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMpIHsNCj4gPiA+PiAtICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGluX211bHRpICAgICAgICAgKnRpbm07DQo+ID4gPj4gLQ0KPiA+ID4+ICAg ICAgICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1ZXVlKCZxcnEsIDAsIGxvb3ApOw0K PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1ZXVlKCZzY3EsIDAs IGxvb3ApOw0KPiA+ID4+DQo+ID4gPj4gQEAgLTE3MzcsMTggKzE3MjMsMTMgQEAgaWdtcF9mYXN0 dGltb192bmV0KHZvaWQpDQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAqIEZyZWUgdGhl IGluX211bHRpIHJlZmVyZW5jZShzKSBmb3IgdGhpcw0KPiA+ID4+ICAgICAgICAgICAgICAgICAg ICAgICAgKiBJR01QIGxpZmVjeWNsZS4NCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICov DQo+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZp Z2ktPmlnaV9yZWxpbm1oZWFkLA0KPiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgaW5t X25yZWxlLCB0aW5tKSB7DQo+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0xJ U1RfUkVNT1ZFX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlubV9ucmVsZSk7DQo+ID4gPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4gPj4gLSAgICAgICAg ICAgICAgICAgICAgIH0NCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2Vf bGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4g PiA+PiAgICAgICB9DQo+ID4gPj4NCj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPiA+PiAgICAgICBJ R01QX1VOTE9DSygpOw0KPiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+ID4+ICsg ICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ID4+ICAv Kg0KPiA+ID4+IEBAIC0xNzYwLDcgKzE3NDEsNyBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90 aW1lcihzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY28NCj4gPiA+PiAgew0KPiA+ID4+ICAgICAgIGlu dCByZXBvcnRfdGltZXJfZXhwaXJlZDsNCj4gPiA+Pg0KPiA+ID4+IC0gICAgIElOX01VTFRJX0xP Q0tfQVNTRVJUKCk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0K PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIGlm IChpbm0tPmlubV90aW1lciA9PSAwKSB7DQo+ID4gPj4gQEAgLTE4MDIsMTQgKzE3ODMsMTQgQEAg aWdtcF92MXYyX3Byb2Nlc3NfZ3JvdXBfdGltZXIoc3RydWN0IGluX211bHRpICppbm0sIGNvDQo+ ID4gPj4gICAqIE5vdGU6IFVubG9ja2VkIHJlYWQgZnJvbSBpZ2kuDQo+ID4gPj4gICAqLw0KPiA+ ID4+ICBzdGF0aWMgdm9pZA0KPiA+ID4+IC1pZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0 cnVjdCBpZ21wX2lmc29mdGMgKmlnaSwNCj4gPiA+PiAraWdtcF92M19wcm9jZXNzX2dyb3VwX3Rp bWVycyhzdHJ1Y3QgaW5fbXVsdGlfaGVhZCAqaW5taCwNCj4gPiA+PiAgICAgIHN0cnVjdCBtYnVm cSAqcXJxLCBzdHJ1Y3QgbWJ1ZnEgKnNjcSwNCj4gPiA+PiAgICAgIHN0cnVjdCBpbl9tdWx0aSAq aW5tLCBjb25zdCBpbnQgdXJpX2Zhc3RoeikNCj4gPiA+PiAgew0KPiA+ID4+ICAgICAgIGludCBx dWVyeV9yZXNwb25zZV90aW1lcl9leHBpcmVkOw0KPiA+ID4+ICAgICAgIGludCBzdGF0ZV9jaGFu Z2VfcmV0cmFuc21pdF90aW1lcl9leHBpcmVkOw0KPiA+ID4+DQo+ID4gPj4gLSAgICAgSU5fTVVM VElfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJU KCk7DQo+ID4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+DQo+ID4gPj4gICAg ICAgcXVlcnlfcmVzcG9uc2VfdGltZXJfZXhwaXJlZCA9IDA7DQo+ID4gPj4gQEAgLTE5MDcsOCAr MTg4OCw3IEBAIGlnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0 YyAqaWdpLA0KPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5tLT5pbm1fc3RhdGUg PT0gSUdNUF9MRUFWSU5HX01FTUJFUiAmJg0KPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5tLT5pbm1fc2NydiA9PSAwKSB7DQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5tLT5pbm1fc3RhdGUgPSBJR01QX05PVF9NRU1CRVI7DQo+ID4gPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhl YWQsDQo+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubSwgaW5tX25y ZWxlKTsNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2Nr ZWQoaW5taCwgaW5tKTsNCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ID4+ICAg ICAgICAgICAgICAgfQ0KPiA+ID4+ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPj4gQEAgLTE5 MjksNyArMTkwOSw3IEBAIHN0YXRpYyB2b2lkDQo+ID4gPj4gIGlnbXBfdjNfc3VwcHJlc3NfZ3Jv dXBfcmVjb3JkKHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+ID4+ICB7DQo+ID4gPj4NCj4gPiA+ PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJ U1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIEtBU1NFUlQoaW5tLT5pbm1f aWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05fMywNCj4gPiA+PiAgICAgICAgICAgICAg ICgiJXM6IG5vdCBJR01QdjMgbW9kZSBvbiBsaW5rIiwgX19mdW5jX18pKTsNCj4gPiA+PiBAQCAt MjAwMywxMyArMTk4MywxNSBAQCBpZ21wX3YzX2NhbmNlbF9saW5rX3RpbWVycyhzdHJ1Y3QgaWdt cF9pZnNvZnRjICppZ2kpDQo+ID4gPj4gIHsNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaWZtdWx0aWFk ZHIgICAgICAqaWZtYTsNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaWZuZXQgICAgICAgICAgICAqaWZw Ow0KPiA+ID4+IC0gICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5tOw0KPiA+ ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm07DQo+ID4gPj4gKyAgICAgc3Ry dWN0IGluX211bHRpX2hlYWQgaW5tX2ZyZWVfdG1wOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgQ1RS MyhLVFJfSUdNUFYzLCAiJXM6IGNhbmNlbCB2MyB0aW1lcnMgb24gaWZwICVwKCVzKSIsIF9fZnVu Y19fLA0KPiA+ID4+ICAgICAgICAgICBpZ2ktPmlnaV9pZnAsIGlnaS0+aWdpX2lmcC0+aWZfeG5h bWUpOw0KPiA+ID4+DQo+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPiA+ PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gICAgICAgSUdNUF9M T0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlubV9mcmVlX3RtcCk7DQo+ ID4gPj4NCj4gPiA+PiAgICAgICAvKg0KPiA+ID4+ICAgICAgICAqIFN0b3AgdGhlIHYzIEdlbmVy YWwgUXVlcnkgUmVzcG9uc2Ugb24gdGhpcyBsaW5rIHN0b25lIGRlYWQuDQo+ID4gPj4gQEAgLTIw NTAsNyArMjAzMiw3IEBAIGlnbXBfdjNfY2FuY2VsX2xpbmtfdGltZXJzKHN0cnVjdCBpZ21wX2lm c29mdGMgKmlnaSkNCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICogbWVzc2FnZSBpcyBz ZW50IHVwc3RyZWFtIHRvIHRoZSBvbGQgcXVlcmllciAtLQ0KPiA+ID4+ICAgICAgICAgICAgICAg ICAgICAgICAgKiB0cmFuc2l0aW9uIHRvIE5PVCB3b3VsZCBsb3NlIHRoZSBsZWF2ZSBhbmQgcmFj ZS4NCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgIFNMSVNUX0lOU0VSVF9IRUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm0sIGlu bV9ucmVsZSk7DQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgIGlubV9yZWxlX2xvY2tlZCgm aW5tX2ZyZWVfdG1wLCBpbm0pOw0KPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAvKiBGQUxM VEhST1VHSCAqLw0KPiA+ID4+ICAgICAgICAgICAgICAgY2FzZSBJR01QX0dfUVVFUllfUEVORElO R19NRU1CRVI6DQo+ID4gPj4gICAgICAgICAgICAgICBjYXNlIElHTVBfU0dfUVVFUllfUEVORElO R19NRU1CRVI6DQo+ID4gPj4gQEAgLTIwNjksMTAgKzIwNTEsOCBAQCBpZ21wX3YzX2NhbmNlbF9s aW5rX3RpbWVycyhzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2kpDQo+ID4gPj4gICAgICAgICAgICAg ICBtYnVmcV9kcmFpbigmaW5tLT5pbm1fc2NxKTsNCj4gPiA+PiAgICAgICB9DQo+ID4gPj4gICAg ICAgSUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+ID4gPj4gLSAgICAgU0xJU1RfRk9SRUFDSF9TQUZF KGlubSwgJmlnaS0+aWdpX3JlbGlubWhlYWQsIGlubV9ucmVsZSwgdGlubSkgew0KPiA+ID4+IC0g ICAgICAgICAgICAgU0xJU1RfUkVNT1ZFX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsIGlubV9u cmVsZSk7DQo+ID4gPj4gLSAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4g PiA+PiAtICAgICB9DQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgIGlubV9yZWxlYXNlX2xpc3RfZGVm ZXJyZWQoJmlubV9mcmVlX3RtcCk7DQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ID4+ICAvKg0KPiA+ ID4+IEBAIC0yMTk5LDcgKzIxNzksNyBAQCBpZ21wX3YxdjJfcXVldWVfcmVwb3J0KHN0cnVjdCBp bl9tdWx0aSAqaW5tLCBjb25zdCBpbnQNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaXAgICAgICAgICAg ICAgICAqaXA7DQo+ID4gPj4gICAgICAgc3RydWN0IG1idWYgICAgICAgICAgICAgKm07DQo+ID4g Pj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsgICAgIElO X01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJU KCk7DQo+ID4gPj4NCj4gPiA+PiAgICAgICBpZnAgPSBpbm0tPmlubV9pZnA7DQo+ID4gPj4gQEAg LTIyNzYsMTAgKzIyNTYsOCBAQCBpZ21wX2NoYW5nZV9zdGF0ZShzdHJ1Y3QgaW5fbXVsdGkgKmlu bSkNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaWZuZXQgKmlmcDsNCj4gPiA+PiAgICAgICBpbnQgZXJy b3I7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ IC0NCj4gPiA+PiAgICAgICBlcnJvciA9IDA7DQo+ID4gPj4gLQ0KPiA+ID4+ICsgICAgIElOX01V TFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gICAgICAgLyoNCj4gPiA+PiAgICAgICAgKiBUcnkg dG8gZGV0ZWN0IGlmIHRoZSB1cHBlciBsYXllciBqdXN0IGFza2VkIHVzIHRvIGNoYW5nZSBzdGF0 ZQ0KPiA+ID4+ICAgICAgICAqIGZvciBhbiBpbnRlcmZhY2Ugd2hpY2ggaGFzIG5vdyBnb25lIGF3 YXkuDQo+ID4gPj4gQEAgLTIzNzksOSArMjM1NywxMCBAQCBpZ21wX2luaXRpYWxfam9pbihzdHJ1 Y3QgaW5fbXVsdGkgKmlubSwgc3RydWN0IGlnbXBfaWYNCj4gPiA+PiAgICAgICAgICAgICAgICAq IGdyb3VwIGFyb3VuZCBmb3IgdGhlIGZpbmFsIElOQ0xVREUge30gZW5xdWV1ZS4NCj4gPiA+PiAg ICAgICAgICAgICAgICAqLw0KPiA+ID4+ICAgICAgICAgICAgICAgaWYgKGlnaS0+aWdpX3ZlcnNp b24gPT0gSUdNUF9WRVJTSU9OXzMgJiYNCj4gPiA+PiAtICAgICAgICAgICAgICAgICBpbm0tPmlu bV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSKQ0KPiA+ID4+IC0gICAgICAgICAgICAgICAg ICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPiA+PiAtDQo+ID4gPj4gKyAgICAgICAg ICAgICAgICAgaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFWSU5HX01FTUJFUikgew0KPiA+ID4+ ICsgICAgICAgICAgICAgICAgICAgICBNUEFTUyhpbm0tPmlubV9yZWZjb3VudCA+IDEpOw0KPiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoTlVMTCwgaW5tKTsNCj4g PiA+PiArICAgICAgICAgICAgIH0NCj4gPiA+PiAgICAgICAgICAgICAgIGlubS0+aW5tX3N0YXRl ID0gSUdNUF9SRVBPUlRJTkdfTUVNQkVSOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgICAgICAgICBz d2l0Y2ggKGlnaS0+aWdpX3ZlcnNpb24pIHsNCj4gPiA+PiBAQCAtMjQ3Myw3ICsyNDUyLDcgQEAg aWdtcF9oYW5kbGVfc3RhdGVfY2hhbmdlKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBzdHJ1Y3QNCj4g PiA+Pg0KPiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4gPiA+Pg0KPiA+ID4+IC0g ICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9M T0NLX0FTU0VSVCgpOw0KPiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0K PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpICYmIGlnaS0+aWdpX2lmcCA9PSBpZnAsICgiJXM6IGlu Y29uc2lzdGVudCBpZnAiLCBfX2Z1bmNfXykpOw0KPiA+ID4+IEBAIC0yNTMxLDcgKzI1MTAsNyBA QCBpZ21wX2ZpbmFsX2xlYXZlKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBzdHJ1Y3QgaWdtcF9pZnMN Cj4gPiA+PiAgICAgICAgICAgX19mdW5jX18sIG50b2hsKGlubS0+aW5tX2FkZHIuc19hZGRyKSwg aW5tLT5pbm1faWZwLA0KPiA+ID4+ICAgICAgICAgICBpbm0tPmlubV9pZnAtPmlmX3huYW1lKTsN Cj4gPiA+Pg0KPiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ICAgICAgIElHTVBfTE9DS19B U1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIHN3aXRjaCAoaW5tLT5pbm1fc3RhdGUpIHsN Cj4gPiA+PiBAQCAtMjY1OCw3ICsyNjM3LDcgQEAgaWdtcF92M19lbnF1ZXVlX2dyb3VwX3JlY29y ZChzdHJ1Y3QgbWJ1ZnEgKm1xLCBzdHJ1Y3QNCj4gPiA+PiAgICAgICBpbl9hZGRyX3QgICAgICAg ICAgICAgICAgbmFkZHI7DQo+ID4gPj4gICAgICAgdWludDhfdCAgICAgICAgICAgICAgICAgIG1v ZGU7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAg IGVycm9yID0gMDsNCj4gPiA+PiAgICAgICBpZnAgPSBpbm0tPmlubV9pZnA7DQo+ID4gPj4gQEAg LTMwMTgsNyArMjk5Nyw3IEBAIGlnbXBfdjNfZW5xdWV1ZV9maWx0ZXJfY2hhbmdlKHN0cnVjdCBt YnVmcSAqbXEsIHN0cnVjdA0KPiA+ID4+ICAgICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICBt b2RlLCBub3csIHRoZW47DQo+ID4gPj4gICAgICAgcmVjdHlwZV90ICAgICAgICAgICAgICAgIGNy dCwgZHJ0LCBucnQ7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgp Ow0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ ID4+ICAgICAgIGlmIChpbm0tPmlubV9uc3JjID09IDAgfHwNCj4gPiA+PiAgICAgICAgICAgKGlu bS0+aW5tX3N0WzBdLmlzc19hc20gPiAwICYmIGlubS0+aW5tX3N0WzFdLmlzc19hc20gPiAwKSkN Cj4gPiA+PiBAQCAtMzIyMSw3ICszMjAwLDcgQEAgaWdtcF92M19tZXJnZV9zdGF0ZV9jaGFuZ2Vz KHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBzdHJ1DQo+ID4gPj4gICAgICAgZG9tZXJnZSA9IDA7DQo+ ID4gPj4gICAgICAgcmVjc2xlbiA9IDA7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9M T0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsN Cj4gPiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4NCj4gPiA+PiAgICAgICAv Kg0KPiA+ID4+IEBAIC0zMzIwLDcgKzMyOTksNyBAQCBpZ21wX3YzX2Rpc3BhdGNoX2dlbmVyYWxf cXVlcnkoc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWcNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaW5fbXVs dGkgICAgICAgICAqaW5tOw0KPiA+ID4+ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICBy ZXR2YWwsIGxvb3A7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgp Ow0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiAgICAg ICBJR01QX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4NCj4gPiA+PiAgICAgICBLQVNTRVJUKGlnaS0+ aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMsDQo+ID4gPj4gQEAgLTM2MzIsNyArMzYxMSw2 IEBAIERCX1NIT1dfQ09NTUFORChpZ2lfbGlzdCwgZGJfc2hvd19pZ2lfbGlzdCkNCj4gPiA+PiAg ICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHFpICV1XG4iLCBpZ2ktPmlnaV9xaSk7DQo+ID4g Pj4gICAgICAgICAgICAgICBkYl9wcmludGYoIiAgICBxcmkgJXVcbiIsIGlnaS0+aWdpX3FyaSk7 DQo+ID4gPj4gICAgICAgICAgICAgICBkYl9wcmludGYoIiAgICB1cmkgJXVcbiIsIGlnaS0+aWdp X3VyaSk7DQo+ID4gPj4gLSAgICAgICAgICAgICAvKiBTTElTVF9IRUFEKCxpbl9tdWx0aSkgICBp Z2lfcmVsaW5taGVhZCAqLw0KPiA+ID4+ICAgICAgICAgICAgICAgLyogc3RydWN0IG1idWZxICAg IGlnaV9ncTsgKi8NCj4gPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiXG4iKTsNCj4gPiA+ PiAgICAgICB9DQo+ID4gPj4NCj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMvbmV0aW5ldC9pZ21w X3Zhci5oDQo+ID4gPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPj4gLS0tIGhlYWQvc3lz L25ldGluZXQvaWdtcF92YXIuaCAgICAgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAgICAg IChyMzMzMTc0KQ0KPiA+ID4+ICsrKyBoZWFkL3N5cy9uZXRpbmV0L2lnbXBfdmFyLmggICAgICAg V2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPiA+PiBAQCAtMjE0 LDcgKzIxNCw2IEBAIHN0cnVjdCBpZ21wX2lmc29mdGMgew0KPiA+ID4+ICAgICAgIHVpbnQzMl90 IGlnaV9xaTsgICAgICAgIC8qIElHTVB2MyBRdWVyeSBJbnRlcnZhbCAocykgKi8NCj4gPiA+PiAg ICAgICB1aW50MzJfdCBpZ2lfcXJpOyAgICAgICAvKiBJR01QdjMgUXVlcnkgUmVzcG9uc2UgSW50 ZXJ2YWwgKHMpICovDQo+ID4gPj4gICAgICAgdWludDMyX3QgaWdpX3VyaTsgICAgICAgLyogSUdN UHYzIFVuc29saWNpdGVkIFJlcG9ydCBJbnRlcnZhbCAocykgKi8NCj4gPiA+PiAtICAgICBTTElT VF9IRUFEKCxpbl9tdWx0aSkgICBpZ2lfcmVsaW5taGVhZDsgLyogcmVsZWFzZWQgZ3JvdXBzICov DQo+ID4gPj4gICAgICAgc3RydWN0IG1idWZxICAgIGlnaV9ncTsgICAgICAgICAvKiBnZW5lcmFs IHF1ZXJ5IHJlc3BvbnNlcyBxdWV1ZSAqLw0KPiA+ID4+ICB9Ow0KPiA+ID4+DQo+ID4gPj4NCj4g PiA+PiBNb2RpZmllZDogaGVhZC9zeXMvbmV0aW5ldC9pbi5jDQo+ID4gPj4gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQo+ID4gPj4gLS0tIGhlYWQvc3lzL25ldGluZXQvaW4uYyAgICAgV2VkIE1heSAg MiAxNzo0MTowMCAyMDE4ICAgICAgICAocjMzMzE3NCkNCj4gPiA+PiArKysgaGVhZC9zeXMvbmV0 aW5ldC9pbi5jICAgICBXZWQgTWF5ICAyIDE5OjM2OjI5IDIwMTggICAgICAgIChyMzMzMTc1KQ0K PiA+ID4+IEBAIC02MzIsMTIgKzYzMiwxMCBAQCBpbl9kaWZhZGRyX2lvY3RsKHVfbG9uZyBjbWQs IGNhZGRyX3QgZGF0YSwgc3RydWN0IGlmbmUNCj4gPiA+PiAgICAgICAgICAgICAgIHN0cnVjdCBp bl9pZmluZm8gKmlpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgICAgICAgICBpaSA9ICgoc3RydWN0 IGluX2lmaW5mbyAqKWlmcC0+aWZfYWZkYXRhW0FGX0lORVRdKTsNCj4gPiA+PiAtICAgICAgICAg ICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPiA+PiAgICAgICAgICAgICAgIGlmIChpaS0+aWlfYWxs aG9zdHMpIHsNCj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgKHZvaWQpaW5fbGVhdmVncm91 cF9sb2NrZWQoaWktPmlpX2FsbGhvc3RzLCBOVUxMKTsNCj4gPiA+PiArICAgICAgICAgICAgICAg ICAgICAgKHZvaWQpaW5fbGVhdmVncm91cChpaS0+aWlfYWxsaG9zdHMsIE5VTEwpOw0KPiA+ID4+ ICAgICAgICAgICAgICAgICAgICAgICBpaS0+aWlfYWxsaG9zdHMgPSBOVUxMOw0KPiA+ID4+ICAg ICAgICAgICAgICAgfQ0KPiA+ID4+IC0gICAgICAgICAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ ID4gPj4gICAgICAgfQ0KPiA+ID4+DQo+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DSyhpZnApOw0K PiA+ID4+IEBAIC05OTQsMTEgKzk5MiwxMiBAQCBpbl9icm9hZGNhc3Qoc3RydWN0IGluX2FkZHIg aW4sIHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ID4+ICB2b2lkDQo+ID4gPj4gIGluX2lmZGV0YWNo KHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ID4+ICB7DQo+ID4gPj4gLQ0KPiA+ID4+ICsgICAgIElO X01VTFRJX0xPQ0soKTsNCj4gPiA+PiAgICAgICBpbl9wY2JwdXJnZWlmMCgmVl9yaXBjYmluZm8s IGlmcCk7DQo+ID4gPj4gICAgICAgaW5fcGNicHVyZ2VpZjAoJlZfdWRiaW5mbywgaWZwKTsNCj4g PiA+PiAgICAgICBpbl9wY2JwdXJnZWlmMCgmVl91bGl0ZWNiaW5mbywgaWZwKTsNCj4gPiA+PiAg ICAgICBpbl9wdXJnZW1hZGRycyhpZnApOw0KPiA+ID4+ICsgICAgIElOX01VTFRJX1VOTE9DSygp Ow0KPiA+ID4+ICB9DQo+ID4gPj4NCj4gPiA+PiAgLyoNCj4gPiA+PiBAQCAtMTAxMSwxMiArMTAx MCwxMiBAQCBpbl9pZmRldGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPiA+PiAgc3RhdGljIHZv aWQNCj4gPiA+PiAgaW5fcHVyZ2VtYWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4gPj4gIHsN Cj4gPiA+PiAtICAgICBMSVNUX0hFQUQoLGluX211bHRpKSBwdXJnZWlubXM7DQo+ID4gPj4gLSAg ICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubSwgKnRpbm07DQo+ID4gPj4gKyAgICAgc3Ry dWN0IGluX211bHRpX2hlYWQgcHVyZ2Vpbm1zOw0KPiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0 aSAgICAgICAgICppbm07DQo+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICAgICAgKmlm bWE7DQo+ID4gPj4NCj4gPiA+PiAtICAgICBMSVNUX0lOSVQoJnB1cmdlaW5tcyk7DQo+ID4gPj4g LSAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJnB1cmdlaW5t cyk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4gPj4NCj4gPiA+PiAg ICAgICAvKg0KPiA+ID4+ICAgICAgICAqIEV4dHJhY3QgbGlzdCBvZiBpbl9tdWx0aSBhc3NvY2lh dGVkIHdpdGggdGhlIGRldGFjaGluZyBpZnANCj4gPiA+PiBAQCAtMTAzNCwxNyArMTAzMywxMyBA QCBpbl9wdXJnZW1hZGRycyhzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPiA+PiAgICAgICAgICAgICAg ICAgICAoIiVzOiBpZm1hX3Byb3Rvc3BlYyBpcyBOVUxMIiwgX19mdW5jX18pKTsNCj4gPiA+PiAg I2VuZGlmDQo+ID4gPj4gICAgICAgICAgICAgICBpbm0gPSAoc3RydWN0IGluX211bHRpICopaWZt YS0+aWZtYV9wcm90b3NwZWM7DQo+ID4gPj4gLSAgICAgICAgICAgICBMSVNUX0lOU0VSVF9IRUFE KCZwdXJnZWlubXMsIGlubSwgaW5tX2xpbmspOw0KPiA+ID4+ICsgICAgICAgICAgICAgaW5tX3Jl bGVfbG9ja2VkKCZwdXJnZWlubXMsIGlubSk7DQo+ID4gPj4gICAgICAgfQ0KPiA+ID4+ICAgICAg IElGX0FERFJfUlVOTE9DSyhpZnApOw0KPiA+ID4+DQo+ID4gPj4gLSAgICAgTElTVF9GT1JFQUNI X1NBRkUoaW5tLCAmcHVyZ2Vpbm1zLCBpbm1fbGluaywgdGlubSkgew0KPiA+ID4+IC0gICAgICAg ICAgICAgTElTVF9SRU1PVkUoaW5tLCBpbm1fbGluayk7DQo+ID4gPj4gLSAgICAgICAgICAgICBp bm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPiA+PiAtICAgICB9DQo+ID4gPj4gKyAgICAgaW5t X3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmcHVyZ2Vpbm1zKTsNCj4gPiA+PiAgICAgICBpZ21wX2lm ZGV0YWNoKGlmcCk7DQo+ID4gPj4gLQ0KPiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0K PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4gPj4gIH0NCj4gPiA+Pg0K PiA+ID4+ICBzdHJ1Y3QgaW5fbGxlbnRyeSB7DQo+ID4gPj4NCj4gPiA+PiBNb2RpZmllZDogaGVh ZC9zeXMvbmV0aW5ldC9pbl9tY2FzdC5jDQo+ID4gPj4gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ ID4gPj4gLS0tIGhlYWQvc3lzL25ldGluZXQvaW5fbWNhc3QuYyAgICAgICBXZWQgTWF5ICAyIDE3 OjQxOjAwIDIwMTggICAgICAgIChyMzMzMTc0KQ0KPiA+ID4+ICsrKyBoZWFkL3N5cy9uZXRpbmV0 L2luX21jYXN0LmMgICAgICAgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3 NSkNCj4gPiA+PiBAQCAtNTEsNiArNTEsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7DQo+ID4g Pj4gICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+DQo+ID4gPj4gICNpbmNsdWRlIDxzeXMva3RyLmg+ DQo+ID4gPj4gICNpbmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+DQo+ID4gPj4gKyNpbmNsdWRlIDxz eXMvZ3Rhc2txdWV1ZS5oPg0KPiA+ID4+ICAjaW5jbHVkZSA8c3lzL3RyZWUuaD4NCj4gPiA+Pg0K PiA+ID4+ICAjaW5jbHVkZSA8bmV0L2lmLmg+DQo+ID4gPj4gQEAgLTU5LDYgKzYwLDggQEAgX19G QlNESUQoIiRGcmVlQlNEJCIpOw0KPiA+ID4+ICAjaW5jbHVkZSA8bmV0L3JvdXRlLmg+DQo+ID4g Pj4gICNpbmNsdWRlIDxuZXQvdm5ldC5oPg0KPiA+ID4+DQo+ID4gPj4gKyNpbmNsdWRlIDxuZXQv ZXRoZXJuZXQuaD4NCj4gPiA+PiArDQo+ID4gPj4gICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+DQo+ ID4gPj4gICNpbmNsdWRlIDxuZXRpbmV0L2luX3N5c3RtLmg+DQo+ID4gPj4gICNpbmNsdWRlIDxu ZXRpbmV0L2luX2ZpYi5oPg0KPiA+ID4+IEBAIC05MSwxOCArOTQsMjQgQEAgc3RhdGljIE1BTExP Q19ERUZJTkUoTV9JUE1TT1VSQ0UsICJpcF9tc291cmNlIiwNCj4gPiA+Pg0KPiA+ID4+ICAvKg0K PiA+ID4+ICAgKiBMb2NraW5nOg0KPiA+ID4+IC0gKiAtIExvY2sgb3JkZXIgaXM6IEdpYW50LCBJ TlBfV0xPQ0ssIElOX01VTFRJX0xPQ0ssIElHTVBfTE9DSywgSUZfQUREUl9MT0NLLg0KPiA+ID4+ ICsgKiAtIExvY2sgb3JkZXIgaXM6IEdpYW50LCBJTlBfV0xPQ0ssIElOX01VTFRJX0xJU1RfTE9D SywgSUdNUF9MT0NLLCBJRl9BRERSX0xPQ0suDQo+ID4gPj4gICAqIC0gVGhlIElGX0FERFJfTE9D SyBpcyBpbXBsaWNpdGx5IHRha2VuIGJ5IGlubV9sb29rdXAoKSBlYXJsaWVyLCBob3dldmVyDQo+ ID4gPj4gICAqICAgaXQgY2FuIGJlIHRha2VuIGJ5IGNvZGUgaW4gbmV0L2lmLmMgYWxzby4NCj4g PiA+PiAgICogLSBpcF9tb3B0aW9ucyBhbmQgaW5fbWZpbHRlciBhcmUgY292ZXJlZCBieSB0aGUg SU5QX1dMT0NLLg0KPiA+ID4+ICAgKg0KPiA+ID4+IC0gKiBzdHJ1Y3QgaW5fbXVsdGkgaXMgY292 ZXJlZCBieSBJTl9NVUxUSV9MT0NLLiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiA+ID4+ICsgKiBz dHJ1Y3QgaW5fbXVsdGkgaXMgY292ZXJlZCBieSBJTl9NVUxUSV9MSVNUX0xPQ0suIFRoZXJlIGlz bid0IHN0cmljdGx5DQo+ID4gPj4gICAqIGFueSBuZWVkIGZvciBpbl9tdWx0aSBpdHNlbGYgdG8g YmUgdmlydHVhbGl6ZWQgLS0gaXQgaXMgYm91bmQgdG8gYW4gaWZwDQo+ID4gPj4gICAqIGFueXdh eSBubyBtYXR0ZXIgd2hhdCBoYXBwZW5zLg0KPiA+ID4+ICAgKi8NCj4gPiA+PiAtc3RydWN0IG10 eCBpbl9tdWx0aV9tdHg7DQo+ID4gPj4gLU1UWF9TWVNJTklUKGluX211bHRpX210eCwgJmluX211 bHRpX210eCwgImluX211bHRpX210eCIsIE1UWF9ERUYpOw0KPiA+ID4+ICtzdHJ1Y3QgbXR4IGlu X211bHRpX2xpc3RfbXR4Ow0KPiA+ID4+ICtNVFhfU1lTSU5JVChpbl9tdWx0aV9tdHgsICZpbl9t dWx0aV9saXN0X210eCwgImluX211bHRpX2xpc3RfbXR4IiwgTVRYX0RFRik7DQo+ID4gPj4NCj4g PiA+PiArc3RydWN0IG10eCBpbl9tdWx0aV9mcmVlX210eDsNCj4gPiA+PiArTVRYX1NZU0lOSVQo aW5fbXVsdGlfZnJlZV9tdHgsICZpbl9tdWx0aV9mcmVlX210eCwgImluX211bHRpX2ZyZWVfbXR4 IiwgTVRYX0RFRik7DQo+ID4gPj4gKw0KPiA+ID4+ICtzdHJ1Y3Qgc3ggaW5fbXVsdGlfc3g7DQo+ ID4gPj4gK1NYX1NZU0lOSVQoaW5fbXVsdGlfc3gsICZpbl9tdWx0aV9zeCwgImluX211bHRpX3N4 Iik7DQo+ID4gPj4gKw0KPiA+ID4+ICAvKg0KPiA+ID4+ICAgKiBGdW5jdGlvbnMgd2l0aCBub24t c3RhdGljIGxpbmthZ2UgZGVmaW5lZCBpbiB0aGlzIGZpbGUgc2hvdWxkIGJlDQo+ID4gPj4gICAq IGRlY2xhcmVkIGluIGluX3Zhci5oOg0KPiA+ID4+IEBAIC0xNTEsNiArMTYwLDcgQEAgc3RhdGlj IGludCAgICAgICAgaW5tX2lzX2lmcF9kZXRhY2hlZChjb25zdCBzdHJ1Y3QgaW5fbXVsdGkgKg0K PiA+ID4+ICBzdGF0aWMgaW50ICAgaW5tX21lcmdlKHN0cnVjdCBpbl9tdWx0aSAqLCAvKmNvbnN0 Ki8gc3RydWN0IGluX21maWx0ZXIgKik7DQo+ID4gPj4gIHN0YXRpYyB2b2lkICBpbm1fcHVyZ2Uo c3RydWN0IGluX211bHRpICopOw0KPiA+ID4+ICBzdGF0aWMgdm9pZCAgaW5tX3JlYXAoc3RydWN0 IGluX211bHRpICopOw0KPiA+ID4+ICtzdGF0aWMgdm9pZCBpbm1fcmVsZWFzZShzdHJ1Y3QgaW5f bXVsdGkgKik7DQo+ID4gPj4gIHN0YXRpYyBzdHJ1Y3QgaXBfbW9wdGlvbnMgKg0KPiA+ID4+ICAg ICAgICAgICAgICAgaW5wX2ZpbmRtb3B0aW9ucyhzdHJ1Y3QgaW5wY2IgKik7DQo+ID4gPj4gIHN0 YXRpYyB2b2lkICBpbnBfZnJlZW1vcHRpb25zX2ludGVybmFsKHN0cnVjdCBpcF9tb3B0aW9ucyAq KTsNCj4gPiA+PiBAQCAtMjE2LDYgKzIyNiw2NSBAQCBpbm1faXNfaWZwX2RldGFjaGVkKGNvbnN0 IHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+ID4+ICB9DQo+ID4gPj4gICNlbmRpZg0KPiA+ID4+ DQo+ID4gPj4gK3N0YXRpYyBzdHJ1Y3QgZ3JvdXB0YXNrIGZyZWVfZ3Rhc2s7DQo+ID4gPj4gK3N0 YXRpYyBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBpbm1fZnJlZV9saXN0Ow0KPiA+ID4+ICtzdGF0aWMg dm9pZCBpbm1fcmVsZWFzZV90YXNrKHZvaWQgKmFyZyBfX3VudXNlZCk7DQo+ID4gPj4gK3N0YXRp YyB2b2lkIGlubV9pbml0KHZvaWQpDQo+ID4gPj4gK3sNCj4gPiA+PiArICAgICBTTElTVF9JTklU KCZpbm1fZnJlZV9saXN0KTsNCj4gPiA+PiArICAgICB0YXNrcWdyb3VwX2NvbmZpZ19ndGFza19p bml0KE5VTEwsICZmcmVlX2d0YXNrLCBpbm1fcmVsZWFzZV90YXNrLCAiaW5tDQo+ID4gPj4gcmVs ZWFzZSB0YXNrIik7ICt9DQo+ID4gPj4gKw0KPiA+ID4+ICtTWVNJTklUKGlubV9pbml0LCBTSV9T VUJfU01QICsgMSwgU0lfT1JERVJfRklSU1QsDQo+ID4gPj4gKyAgICAgaW5tX2luaXQsIE5VTEwp Ow0KPiA+ID4+ICsNCj4gPiA+PiArDQo+ID4gPj4gK3ZvaWQNCj4gPiA+PiAraW5tX3JlbGVhc2Vf bGlzdF9kZWZlcnJlZChzdHJ1Y3QgaW5fbXVsdGlfaGVhZCAqaW5taCkNCj4gPiA+PiArew0KPiA+ ID4+ICsNCj4gPiA+PiArICAgICBpZiAoU0xJU1RfRU1QVFkoaW5taCkpDQo+ID4gPj4gKyAgICAg ICAgICAgICByZXR1cm47DQo+ID4gPj4gKyAgICAgbXR4X2xvY2soJmluX211bHRpX2ZyZWVfbXR4 KTsNCj4gPiA+PiArICAgICBTTElTVF9DT05DQVQoJmlubV9mcmVlX2xpc3QsIGlubWgsIGluX211 bHRpLCBpbm1fbnJlbGUpOw0KPiA+ID4+ICsgICAgIG10eF91bmxvY2soJmluX211bHRpX2ZyZWVf bXR4KTsNCj4gPiA+PiArICAgICBHUk9VUFRBU0tfRU5RVUVVRSgmZnJlZV9ndGFzayk7DQo+ID4g Pj4gK30NCj4gPiA+PiArDQo+ID4gPj4gK3ZvaWQNCj4gPiA+PiAraW5tX3JlbGVhc2VfZGVmZXJy ZWQoc3RydWN0IGluX211bHRpICppbm0pDQo+ID4gPj4gK3sNCj4gPiA+PiArICAgICBzdHJ1Y3Qg aW5fbXVsdGlfaGVhZCB0bXA7DQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1Rf TE9DS19BU1NFUlQoKTsNCj4gPiA+PiArICAgICBNUEFTUyhpbm0tPmlubV9yZWZjb3VudCA+IDAp Ow0KPiA+ID4+ICsgICAgIGlmICgtLWlubS0+aW5tX3JlZmNvdW50ID09IDApIHsNCj4gPiA+PiAr ICAgICAgICAgICAgIFNMSVNUX0lOSVQoJnRtcCk7DQo+ID4gPj4gKyAgICAgICAgICAgICBpbm0t PmlubV9pZm1hLT5pZm1hX3Byb3Rvc3BlYyA9IE5VTEw7DQo+ID4gPj4gKyAgICAgICAgICAgICBT TElTVF9JTlNFUlRfSEVBRCgmdG1wLCBpbm0sIGlubV9ucmVsZSk7DQo+ID4gPj4gKyAgICAgICAg ICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZ0bXApOw0KPiA+ID4+ICsgICAgIH0NCj4g PiA+PiArfQ0KPiA+ID4+ICsNCj4gPiA+PiArc3RhdGljIHZvaWQNCj4gPiA+PiAraW5tX3JlbGVh c2VfdGFzayh2b2lkICphcmcgX191bnVzZWQpDQo+ID4gPj4gK3sNCj4gPiA+PiArICAgICBzdHJ1 Y3QgaW5fbXVsdGlfaGVhZCBpbm1fZnJlZV90bXA7DQo+ID4gPj4gKyAgICAgc3RydWN0IGluX211 bHRpICppbm0sICp0aW5tOw0KPiA+ID4+ICsNCj4gPiA+PiArICAgICBTTElTVF9JTklUKCZpbm1f ZnJlZV90bXApOw0KPiA+ID4+ICsgICAgIG10eF9sb2NrKCZpbl9tdWx0aV9mcmVlX210eCk7DQo+ ID4gPj4gKyAgICAgU0xJU1RfQ09OQ0FUKCZpbm1fZnJlZV90bXAsICZpbm1fZnJlZV9saXN0LCBp bl9tdWx0aSwgaW5tX25yZWxlKTsNCj4gPiA+PiArICAgICBtdHhfdW5sb2NrKCZpbl9tdWx0aV9m cmVlX210eCk7DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+ID4+ICsgICAgIFNM SVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZpbm1fZnJlZV90bXAsIGlubV9ucmVsZSwgdGlubSkgew0K PiA+ID4+ICsgICAgICAgICAgICAgU0xJU1RfUkVNT1ZFX0hFQUQoJmlubV9mcmVlX3RtcCwgaW5t X25yZWxlKTsNCj4gPiA+PiArICAgICAgICAgICAgIE1QQVNTKGlubSk7DQo+ID4gPj4gKyAgICAg ICAgICAgICBpbm1fcmVsZWFzZShpbm0pOw0KPiA+ID4+ICsgICAgIH0NCj4gPiA+PiArICAgICBJ Tl9NVUxUSV9VTkxPQ0soKTsNCj4gPiA+PiArfQ0KPiA+ID4+ICsNCj4gPiA+PiAgLyoNCj4gPiA+ PiAgICogSW5pdGlhbGl6ZSBhbiBpbl9tZmlsdGVyIHN0cnVjdHVyZSB0byBhIGtub3duIHN0YXRl IGF0IHQwLCB0MQ0KPiA+ID4+ICAgKiB3aXRoIGFuIGVtcHR5IHNvdXJjZSBmaWx0ZXIgbGlzdC4N Cj4gPiA+PiBAQCAtMjMyLDcgKzMwMSw3IEBAIGltZl9pbml0KHN0cnVjdCBpbl9tZmlsdGVyICpp bWYsIGNvbnN0IGludCBzdDAsIGNvbnN0DQo+ID4gPj4gIC8qDQo+ID4gPj4gICAqIEZ1bmN0aW9u IGZvciBsb29raW5nIHVwIGFuIGluX211bHRpIHJlY29yZCBmb3IgYW4gSVB2NCBtdWx0aWNhc3Qg YWRkcmVzcw0KPiA+ID4+ICAgKiBvbiBhIGdpdmVuIGludGVyZmFjZS4gaWZwIG11c3QgYmUgdmFs aWQuIElmIG5vIHJlY29yZCBmb3VuZCwgcmV0dXJuIE5VTEwuDQo+ID4gPj4gLSAqIFRoZSBJTl9N VUxUSV9MT0NLIGFuZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVsZC4NCj4gPiA+PiAr ICogVGhlIElOX01VTFRJX0xJU1RfTE9DSyBhbmQgSUZfQUREUl9MT0NLIG9uIGlmcCBtdXN0IGJl IGhlbGQuDQo+ID4gPj4gICAqLw0KPiA+ID4+ICBzdHJ1Y3QgaW5fbXVsdGkgKg0KPiA+ID4+ICBp bm1fbG9va3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIg aW5hKQ0KPiA+ID4+IEBAIC0yNDAsNyArMzA5LDcgQEAgaW5tX2xvb2t1cF9sb2NrZWQoc3RydWN0 IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hDQo+ID4gPj4gICAgICAgc3RydWN0IGlmbXVs dGlhZGRyICppZm1hOw0KPiA+ID4+ICAgICAgIHN0cnVjdCBpbl9tdWx0aSAqaW5tOw0KPiA+ID4+ DQo+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiArICAgICBJTl9N VUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gICAgICAgSUZfQUREUl9MT0NLX0FTU0VS VChpZnApOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgaW5tID0gTlVMTDsNCj4gPiA+PiBAQCAtMjY0 LDcgKzMzMyw3IEBAIGlubV9sb29rdXAoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBp bl9hZGRyIGluYQ0KPiA+ID4+ICB7DQo+ID4gPj4gICAgICAgc3RydWN0IGluX211bHRpICppbm07 DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsg ICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiAgICAgICBJRl9BRERSX1JM T0NLKGlmcCk7DQo+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cF9sb2NrZWQoaWZwLCBpbmEp Ow0KPiA+ID4+ICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnApOw0KPiA+ID4+IEBAIC00NTEsNyAr NTIwLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9h ZGRyICpnDQo+ID4gPj4gICAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ ID4+ICAgICAgIGlpID0gKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVU XTsNCj4gPiA+PiAtDQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4gPj4g ICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAsICpncm91cCk7DQo+ID4gPj4gICAgICAgaWYgKGlu bSAhPSBOVUxMKSB7DQo+ID4gPj4gICAgICAgICAgICAgICAvKg0KPiA+ID4+IEBAIC00NjAsMTEg KzUyOSwxMyBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlu X2FkZHIgKmcNCj4gPiA+PiAgICAgICAgICAgICAgICAqLw0KPiA+ID4+ICAgICAgICAgICAgICAg S0FTU0VSVChpbm0tPmlubV9yZWZjb3VudCA+PSAxLA0KPiA+ID4+ICAgICAgICAgICAgICAgICAg ICgiJXM6IGJhZCByZWZjb3VudCAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCkpOw0K PiA+ID4+IC0gICAgICAgICAgICAgKytpbm0tPmlubV9yZWZjb3VudDsNCj4gPiA+PiArICAgICAg ICAgICAgIGlubV9hY3F1aXJlX2xvY2tlZChpbm0pOw0KPiA+ID4+ICAgICAgICAgICAgICAgKnBp bm0gPSBpbm07DQo+ID4gPj4gLSAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+ID4+ICAgICAg IH0NCj4gPiA+PiAtDQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPiA+ PiArICAgICBpZiAoaW5tICE9IE5VTEwpDQo+ID4gPj4gKyAgICAgICAgICAgICByZXR1cm4gKDAp Ow0KPiA+ID4+ICsNCj4gPiA+PiAgICAgICBtZW1zZXQoJmdzaW4sIDAsIHNpemVvZihnc2luKSk7 DQo+ID4gPj4gICAgICAgZ3Npbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCj4gPiA+PiAgICAgICBn c2luLnNpbl9sZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsNCj4gPiA+PiBAQCAtNDc5 LDYgKzU1MCw3IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3Qg aW5fYWRkciAqZw0KPiA+ID4+ICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4gPj4N Cj4gPiA+PiAgICAgICAvKiBYWFggaWZtYV9wcm90b3NwZWMgbXVzdCBiZSBjb3ZlcmVkIGJ5IElG X0FERFJfTE9DSyAqLw0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+ID4+ ICAgICAgIElGX0FERFJfV0xPQ0soaWZwKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIC8qDQo+ID4g Pj4gQEAgLTUwNCwxMCArNTc2LDkgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNv bnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBf X2Z1bmNfXywgaWZtYSwgaW5tLCBpbmV0X250b2FfcigqZ3JvdXAsIGFkZHJidWYpKTsNCj4gPiA+ PiAgICAgICAgICAgICAgIH0NCj4gPiA+PiAgI2VuZGlmDQo+ID4gPj4gLSAgICAgICAgICAgICAr K2lubS0+aW5tX3JlZmNvdW50Ow0KPiA+ID4+ICsgICAgICAgICAgICAgaW5tX2FjcXVpcmVfbG9j a2VkKGlubSk7DQo+ID4gPj4gICAgICAgICAgICAgICAqcGlubSA9IGlubTsNCj4gPiA+PiAtICAg ICAgICAgICAgIElGX0FERFJfV1VOTE9DSyhpZnApOw0KPiA+ID4+IC0gICAgICAgICAgICAgcmV0 dXJuICgwKTsNCj4gPiA+PiArICAgICAgICAgICAgIGdvdG8gb3V0X2xvY2tlZDsNCj4gPiA+PiAg ICAgICB9DQo+ID4gPj4NCj4gPiA+PiAgICAgICBJRl9BRERSX1dMT0NLX0FTU0VSVChpZnApOw0K PiA+ID4+IEBAIC01MjIsNiArNTkzLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAs IGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4gPj4gICAgICAgaW5tID0gbWFsbG9jKHNpemVv ZigqaW5tKSwgTV9JUE1BRERSLCBNX05PV0FJVCB8IE1fWkVSTyk7DQo+ID4gPj4gICAgICAgaWYg KGlubSA9PSBOVUxMKSB7DQo+ID4gPj4gICAgICAgICAgICAgICBJRl9BRERSX1dVTkxPQ0soaWZw KTsNCj4gPiA+PiArICAgICAgICAgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4gPj4g ICAgICAgICAgICAgICBpZl9kZWxtdWx0aV9pZm1hKGlmbWEpOw0KPiA+ID4+ICAgICAgICAgICAg ICAgcmV0dXJuIChFTk9NRU0pOw0KPiA+ID4+ICAgICAgIH0NCj4gPiA+PiBAQCAtNTM5LDggKzYx MSw5IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRk ciAqZw0KPiA+ID4+ICAgICAgIGlmbWEtPmlmbWFfcHJvdG9zcGVjID0gaW5tOw0KPiA+ID4+DQo+ ID4gPj4gICAgICAgKnBpbm0gPSBpbm07DQo+ID4gPj4gLQ0KPiA+ID4+ICsgb3V0X2xvY2tlZDoN Cj4gPiA+PiAgICAgICBJRl9BRERSX1dVTkxPQ0soaWZwKTsNCj4gPiA+PiArICAgICBJTl9NVUxU SV9MSVNUX1VOTE9DSygpOw0KPiA+ID4+ICAgICAgIHJldHVybiAoMCk7DQo+ID4gPj4gIH0NCj4g PiA+Pg0KPiA+ID4+IEBAIC01NTAsMzYgKzYyMywyOSBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZu ZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPiA+PiAgICogSWYgdGhlIHJlZmNv dW50IGRyb3BzIHRvIDAsIGZyZWUgdGhlIGluX211bHRpIHJlY29yZCBhbmQNCj4gPiA+PiAgICog ZGVsZXRlIHRoZSB1bmRlcmx5aW5nIGxpbmstbGF5ZXIgbWVtYmVyc2hpcC4NCj4gPiA+PiAgICov DQo+ID4gPj4gLXZvaWQNCj4gPiA+PiAtaW5tX3JlbGVhc2VfbG9ja2VkKHN0cnVjdCBpbl9tdWx0 aSAqaW5tKQ0KPiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+ID4+ICtpbm1fcmVsZWFzZShzdHJ1Y3Qg aW5fbXVsdGkgKmlubSkNCj4gPiA+PiAgew0KPiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRk ciAqaWZtYTsNCj4gPiA+PiArICAgICBzdHJ1Y3QgaWZuZXQgKmlmcDsNCj4gPiA+Pg0KPiA+ID4+ IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4gLQ0KPiA+ID4+ICAgICAgIENU UjIoS1RSX0lHTVBWMywgIiVzOiByZWZjb3VudCBpcyAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9y ZWZjb3VudCk7DQo+ID4gPj4gLQ0KPiA+ID4+IC0gICAgIGlmICgtLWlubS0+aW5tX3JlZmNvdW50 ID4gMCkgew0KPiA+ID4+IC0gICAgICAgICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6IHJlZmNv dW50IGlzIG5vdyAlZCIsIF9fZnVuY19fLA0KPiA+ID4+IC0gICAgICAgICAgICAgICAgIGlubS0+ aW5tX3JlZmNvdW50KTsNCj4gPiA+PiAtICAgICAgICAgICAgIHJldHVybjsNCj4gPiA+PiAtICAg ICB9DQo+ID4gPj4gLQ0KPiA+ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID09IDAp Ow0KPiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBmcmVlaW5nIGlubSAlcCIsIF9f ZnVuY19fLCBpbm0pOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgaWZtYSA9IGlubS0+aW5tX2lmbWE7 DQo+ID4gPj4gKyAgICAgaWZwID0gaW5tLT5pbm1faWZwOw0KPiA+ID4+DQo+ID4gPj4gICAgICAg LyogWFhYIHRoaXMgYWNjZXNzIGlzIG5vdCBjb3ZlcmVkIGJ5IElGX0FERFJfTE9DSyAqLw0KPiA+ ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBwdXJnaW5nIGlmbWEgJXAiLCBfX2Z1bmNf XywgaWZtYSk7DQo+ID4gPj4gLSAgICAgS0FTU0VSVChpZm1hLT5pZm1hX3Byb3Rvc3BlYyA9PSBp bm0sDQo+ID4gPj4gLSAgICAgICAgICgiJXM6IGlmbWFfcHJvdG9zcGVjICE9IGlubSIsIF9fZnVu Y19fKSk7DQo+ID4gPj4gLSAgICAgaWZtYS0+aWZtYV9wcm90b3NwZWMgPSBOVUxMOw0KPiA+ID4+ IC0NCj4gPiA+PiArICAgICBpZiAoaWZwKQ0KPiA+ID4+ICsgICAgICAgICAgICAgQ1VSVk5FVF9T RVQoaWZwLT5pZl92bmV0KTsNCj4gPiA+PiAgICAgICBpbm1fcHVyZ2UoaW5tKTsNCj4gPiA+PiAt DQo+ID4gPj4gICAgICAgZnJlZShpbm0sIE1fSVBNQUREUik7DQo+ID4gPj4NCj4gPiA+PiAgICAg ICBpZl9kZWxtdWx0aV9pZm1hKGlmbWEpOw0KPiA+ID4+ICsgICAgIGlmIChpZnApDQo+ID4gPj4g KyAgICAgICAgICAgICBDVVJWTkVUX1JFU1RPUkUoKTsNCj4gPiA+PiAgfQ0KPiA+ID4+DQo+ID4g Pj4gIC8qDQo+ID4gPj4gQEAgLTU5Miw3ICs2NTgsNyBAQCBpbm1fY2xlYXJfcmVjb3JkZWQoc3Ry dWN0IGluX211bHRpICppbm0pDQo+ID4gPj4gIHsNCj4gPiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNv dXJjZSAgICAgICAqaW1zOw0KPiA+ID4+DQo+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NF UlQoKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4gPj4N Cj4gPiA+PiAgICAgICBSQl9GT1JFQUNIKGltcywgaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1f c3Jjcykgew0KPiA+ID4+ICAgICAgICAgICAgICAgaWYgKGltcy0+aW1zX3N0cCkgew0KPiA+ID4+ IEBAIC02MzIsNyArNjk4LDcgQEAgaW5tX3JlY29yZF9zb3VyY2Uoc3RydWN0IGluX211bHRpICpp bm0sIGNvbnN0IGluX2FkZHJfDQo+ID4gPj4gICAgICAgc3RydWN0IGlwX21zb3VyY2UgICAgICAg IGZpbmQ7DQo+ID4gPj4gICAgICAgc3RydWN0IGlwX21zb3VyY2UgICAgICAgKmltcywgKm5pbXM7 DQo+ID4gPj4NCj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+ICsg ICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIGZp bmQuaW1zX2hhZGRyID0gbnRvaGwobmFkZHIpOw0KPiA+ID4+ICAgICAgIGltcyA9IFJCX0ZJTkQo aXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3JjcywgJmZpbmQpOw0KPiA+ID4+IEBAIC05NTks NiArMTAyNSw3IEBAIGlubV9tZXJnZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgLypjb25zdCovIHN0 cnVjdCBpbl9tZg0KPiA+ID4+ICAgICAgIHNjaGFuZ2VkID0gMDsNCj4gPiA+PiAgICAgICBlcnJv ciA9IDA7DQo+ID4gPj4gICAgICAgbnNyYzEgPSBuc3JjMCA9IDA7DQo+ID4gPj4gKyAgICAgSU5f TVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgLyoNCj4gPiA+ PiAgICAgICAgKiBVcGRhdGUgdGhlIHNvdXJjZSBmaWx0ZXJzIGZpcnN0LCBhcyB0aGlzIG1heSBm YWlsLg0KPiA+ID4+IEBAIC0xMTY1LDYgKzEyMzIsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0 cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW4NCj4gPiA+PiAgICAgICBpbnQgICAgICAg ICAgICAgICAgICAgICAgZXJyb3I7DQo+ID4gPj4NCj4gPiA+PiAgICAgICBJTl9NVUxUSV9MT0NL X0FTU0VSVCgpOw0KPiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0K PiA+ID4+DQo+ID4gPj4gICAgICAgQ1RSNChLVFJfSUdNUFYzLCAiJXM6IGpvaW4gMHglMDh4IG9u ICVwKCVzKSkiLCBfX2Z1bmNfXywNCj4gPiA+PiAgICAgICAgICAgbnRvaGwoZ2luYS0+c19hZGRy KSwgaWZwLCBpZnAtPmlmX3huYW1lKTsNCj4gPiA+PiBAQCAtMTE4Niw3ICsxMjU0LDcgQEAgaW5f am9pbmdyb3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluDQo+ID4g Pj4gICAgICAgICAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogaW5fZ2V0bXVsdGkoKSBmYWls dXJlIiwgX19mdW5jX18pOw0KPiA+ID4+ICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvcik7DQo+ ID4gPj4gICAgICAgfQ0KPiA+ID4+IC0NCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0so KTsNCj4gPiA+PiAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogbWVyZ2UgaW5tIHN0YXRlIiwg X19mdW5jX18pOw0KPiA+ID4+ICAgICAgIGVycm9yID0gaW5tX21lcmdlKGlubSwgaW1mKTsNCj4g PiA+PiAgICAgICBpZiAoZXJyb3IpIHsNCj4gPiA+PiBAQCAtMTIwMSwxMCArMTI2OSwxMiBAQCBp bl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW4NCj4g PiA+PiAgICAgICAgICAgICAgIGdvdG8gb3V0X2lubV9yZWxlYXNlOw0KPiA+ID4+ICAgICAgIH0N Cj4gPiA+Pg0KPiA+ID4+IC1vdXRfaW5tX3JlbGVhc2U6DQo+ID4gPj4gKyBvdXRfaW5tX3JlbGVh c2U6DQo+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPiA+PiAgICAgICBp ZiAoZXJyb3IpIHsNCj4gPiA+PiArDQo+ID4gPj4gICAgICAgICAgICAgICBDVFIyKEtUUl9JR01Q VjMsICIlczogZHJvcHBpbmcgcmVmIG9uICVwIiwgX19mdW5jX18sIGlubSk7DQo+ID4gPj4gLSAg ICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPiA+PiArICAgICAgICAgICAg IGlubV9yZWxlYXNlX2RlZmVycmVkKGlubSk7DQo+ID4gPj4gICAgICAgfSBlbHNlIHsNCj4gPiA+ PiAgICAgICAgICAgICAgICpwaW5tID0gaW5tOw0KPiA+ID4+ICAgICAgIH0NCj4gPiA+PiBAQCAt MTI0OSw2ICsxMzE5LDcgQEAgaW5fbGVhdmVncm91cF9sb2NrZWQoc3RydWN0IGluX211bHRpICpp bm0sIC8qY29uc3QqLyBzDQo+ID4gPj4gICAgICAgZXJyb3IgPSAwOw0KPiA+ID4+DQo+ID4gPj4g ICAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNU X1VOTE9DS19BU1NFUlQoKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIENUUjUoS1RSX0lHTVBWMywg IiVzOiBsZWF2ZSBpbm0gJXAsIDB4JTA4eC8lcywgaW1mICVwIiwgX19mdW5jX18sDQo+ID4gPj4g ICAgICAgICAgIGlubSwgbnRvaGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLA0KPiA+ID4+IEBAIC0x MjcyLDE4ICsxMzQzLDIwIEBAIGluX2xlYXZlZ3JvdXBfbG9ja2VkKHN0cnVjdCBpbl9tdWx0aSAq aW5tLCAvKmNvbnN0Ki8gcw0KPiA+ID4+ICAgICAgICAqIHRoZSB0cmFuc2FjdGlvbiwgaXQgTVVT VCBOT1QgZmFpbC4NCj4gPiA+PiAgICAgICAgKi8NCj4gPiA+PiAgICAgICBDVFIxKEtUUl9JR01Q VjMsICIlczogbWVyZ2UgaW5tIHN0YXRlIiwgX19mdW5jX18pOw0KPiA+ID4+ICsgICAgIElOX01V TFRJX0xJU1RfTE9DSygpOw0KPiA+ID4+ICAgICAgIGVycm9yID0gaW5tX21lcmdlKGlubSwgaW1m KTsNCj4gPiA+PiAgICAgICBLQVNTRVJUKGVycm9yID09IDAsICgiJXM6IGZhaWxlZCB0byBtZXJn ZSBpbm0gc3RhdGUiLCBfX2Z1bmNfXykpOw0KPiA+ID4+DQo+ID4gPj4gICAgICAgQ1RSMShLVFJf SUdNUFYzLCAiJXM6IGRvaW5nIGlnbXAgZG93bmNhbGwiLCBfX2Z1bmNfXyk7DQo+ID4gPj4gICAg ICAgQ1VSVk5FVF9TRVQoaW5tLT5pbm1faWZwLT5pZl92bmV0KTsNCj4gPiA+PiAgICAgICBlcnJv ciA9IGlnbXBfY2hhbmdlX3N0YXRlKGlubSk7DQo+ID4gPj4gKyAgICAgaW5tX3JlbGVhc2VfZGVm ZXJyZWQoaW5tKTsNCj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+ID4+ ICAgICAgIENVUlZORVRfUkVTVE9SRSgpOw0KPiA+ID4+ICAgICAgIGlmIChlcnJvcikNCj4gPiA+ PiAgICAgICAgICAgICAgIENUUjEoS1RSX0lHTVBWMywgIiVzOiBmYWlsZWQgaWdtcCBkb3duY2Fs bCIsIF9fZnVuY19fKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVz OiBkcm9wcGluZyByZWYgb24gJXAiLCBfX2Z1bmNfXywgaW5tKTsNCj4gPiA+PiAtICAgICBpbm1f cmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgIHJldHVybiAoZXJyb3Ip Ow0KPiA+ID4+ICB9DQo+ID4gPj4gQEAgLTEzMTUsMTggKzEzODgsNiBAQCBpbl9hZGRtdWx0aShz dHJ1Y3QgaW5fYWRkciAqYXAsIHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ID4+ICB9DQo+ID4gPj4N Cj4gPiA+PiAgLyoNCj4gPiA+PiAtICogTGVhdmUgYW4gSVB2NCBtdWx0aWNhc3QgZ3JvdXAsIGFz c3VtZWQgdG8gYmUgaW4gZXhjbHVzaXZlICgqLEcpIG1vZGUuDQo+ID4gPj4gLSAqIFRoaXMgS1BJ IGlzIGZvciBsZWdhY3kga2VybmVsIGNvbnN1bWVycyBvbmx5Lg0KPiA+ID4+IC0gKi8NCj4gPiA+ Pg0KPiA+ID4+ICoqKiBESUZGIE9VVFBVVCBUUlVOQ0FURUQgQVQgMTAwMCBMSU5FUyAqKioNCj4g PiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ ID4+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QNCj4gPiA+PiBodHRwczov L2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNyYy1oZWFkDQo+ID4gPj4g VG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gInN2bi1zcmMtaGVhZC11bnN1YnNjcmli ZUBmcmVlYnNkLm9yZyIgICAgDQo+ID4gPg0KPiA+ID4NCj4gPiA+IEFmdGVyIChhcm91bmQhKSB0 aGlzIHVwZGF0ZSwgc29tZSBib3hlcyB3aXRoIGkzNTAgZHVhbCBwb3J0IE5JQ3MgaW1tZWRpYXRl bHkgY3Jhc2gNCj4gPiA+IHdpdGggRmF0YWwgdHJhcCAxMjogcGFnZSBmYXVsdCBhbmQgc29tZXRo aW5nIHdpdGgNCj4gPiA+DQo+ID4gPiBjdXJyZW50IHByb2Nlc3M6IChpc2Mtd29ya2VyMDAwNikN Cj4gPiA+DQo+ID4gPiAuLi4uDQo+ID4gPg0KPiA+ID4gVGhvc2UgYm94ZXMgZG8gbm90IGhhdmUg ZGVidWdnaW5nIGtlcm5lbC4gVGhlIHN5bXB0b21icyBhcmUgdGhlIHNhbWUuIFNpbmdsZSB1c2Vy DQo+ID4gPiBrZXJuZWwgd29ya3MsIGJ1dCB0aGUgbW9tZW50IEkgcGVyZm9ybSAvZXRjL25ldHN0 YXJ0IGFuZCBhbnkga2luZCBvZiBuZXQgdHJhZmZpYw0KPiA+ID4gZXN0YWJsaXNoZXMsIHRoaXMg Y3JhcCBiYWlscyBvdXQuDQo+ID4gPg0KPiA+ID4NCj4gPiA+IC0gLS0NCj4gPiA+IE8uIEhhcnRt YW5uDQo+ID4gPg0KPiA+ID4gSWNoIHdpZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOcYmVy bWl0dGx1bmcgbWVpbmVyIERhdGVuIGbDvHINCj4gPiA+IFdlcmJlendlY2tlIG9kZXIgZsO8ciBk aWUgTWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4NCj4g PiA+IC0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tDQo+ID4gPg0KPiA+ID4gaUxVRUFSTUtB QjBXSVFRWlZaTXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdXRqdGdBS0NSRFM1MjhmeUZoWQ0K PiA+ID4gbEFrekFmOVBoYUZUd05oUUQyekY3eFNISjJ3ZnZMdG9VRWpabHpHc3VzQUNwMXBhN0pB ZnowUHl2K2xtK1hOSg0KPiA+ID4gdkxFbHJJZjFDbUR6dUE4eWJsWi94L3dPVlNKa0FmOUMrNTBE VkV0R3E1SC9iSFNETnd6bXFyajhZZ0I3WHBTcw0KPiA+ID4gUE1SWGMrSXdJYTFKZ2kyeU0rNlRD U05TczFONWJFVWhVOUJpOGVYeTZZMEZTa0FaZVYrcw0KPiA+ID4gPVMwYkMNCj4gPiA+IC0tLS0t RU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCj4gPiA+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBtYWls aW5nIGxpc3QNCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5m by9zdm4tc3JjLWhlYWQNCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJz dm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmciICAgIA0KPiANCj4gDQo+IA0KPiAt IC0tIA0KPiBPLiBIYXJ0bWFubg0KPiANCj4gSWNoIHdpZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBv ZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbDvHINCj4gV2VyYmV6d2Vja2Ugb2RlciBm w7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0IEJEU0cp Lg0KPiAtLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiANCj4gaUxVRUFSTUtBQjBXSVFR WlZaTXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdXR2OHdBS0NSRFM1MjhmeUZoWQ0KPiBsSWUx QWZ3T0NBaWdwWGF3WjdLQWpMTnBXalJUNERzcnpmcWNDNTdNb3ppVlF5SytYOXFvUUEydjBwbFZO cFAwDQo+IEZMcWg1ZGtSWGlpT0xyeXI5YXVJTFVLeUxDTnlBZndMN2NGZTFZUlg3Vm5zSzV3Ly84 WG0yNXRKNzRDWEM4UDANCj4gZ2FvU3F2RHFDS1dUajZpTitRL1Bqb05vaFdvSUs3NnRpWkFXUGpr YUhldUZieXBQYTJHKw0KPiA9RXBKYQ0KPiAtLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0NCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gc3ZuLXNy Yy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiBodHRwczovL2xpc3RzLmZyZWVic2Qu b3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNyYy1oZWFkDQo+IFRvIHVuc3Vic2NyaWJlLCBzZW5k IGFueSBtYWlsIHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmciDQoNCg0K DQotIC0tIA0KTy4gSGFydG1hbm4NCg0KSWNoIHdpZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVy IMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbDvHINCldlcmJlendlY2tlIG9kZXIgZsO8ciBk aWUgTWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4NCi0t LS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tDQoNCmlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJU Lzg2VHJTNTI4ZnlGaFlsQVVDV3UxeThnQUtDUkRTNTI4ZnlGaFkNCmxGRW9BZjRpVys0dFNBT2NH MEVRMS9ZMlBOcUxDWDRBbnBZVGxTbGFFQ3h0RmxEWi9YYk5PdzNUeVZCOVJiUUMNCnFHRTlVeDJ4 UUJENDhhMU5iMUlIVlZDOWppN2pBZ0NMT1h6S1VxbWNYa1BOdmpTZ1pXWitTZHlkNTVDaG9MZ1kN ClNreVk4RlNVM0dFRG0yOFdnYVhqUTRvSmgrNy9GZjY5TnN1RFpsdDdpQzI0S1pkUktIMDANCj00 YlkrDQotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0NCg==