Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1odB03-0003ak-1l for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Sep 2022 13:51:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1odB01-0005w1-Nd for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Sep 2022 13:51:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1odAzz-0005tM-Ms for pgsql-hackers@lists.postgresql.org; Tue, 27 Sep 2022 13:51:49 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1odAzi-0003jh-O2 for pgsql-hackers@postgresql.org; Tue, 27 Sep 2022 13:51:46 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id C154232002E8 for ; Tue, 27 Sep 2022 09:51:28 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Tue, 27 Sep 2022 09:51:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1664286688; x=1664373088; bh=hS+6KDohFrCBcP21algSu8D1uuJZ BqL8lDrkYBOp70s=; b=xVCY1k55N4xQ5gpdDeUNrhjLBE51/lb4v5B3hU8v43uV U3Zt7T7jPscBBJNn+gYcNgxVcz828LWntl2SDfduGV47RlHTDb5fw4bTfZJiW3Mn zHQXDEfNFrBXp6wr7yfy7JJAjYNhimmZTtwCmw43VwdD92tDDZ4AcKQuQZRcSmZI fQ64aSMC0U2EjzvCOhemQkuOu6Wy7U5S6yjpczHQ4LBJ8LxJufa+foXP96DssAnb 7iNXaByPOJ2B/E+6OevTCDcD/H27PjLuZOBghDtXSZ5mXkDsVnUMPvWBN3GGO0aE qbqK5BippF2Z/10eDJuqUssV41KhCknY8tWm+Cl/Mw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeegiedggeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 27 Sep 2022 09:51:26 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------ULxHWSvzuDhj7RnFhfk5j0Gg" Message-ID: <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> Date: Tue, 27 Sep 2022 15:51:25 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> In-Reply-To: <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ULxHWSvzuDhj7RnFhfk5j0Gg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Updated version with meson build system support added (for added files and new tests). On 21.09.22 23:37, Peter Eisentraut wrote: > New version with some merge conflicts resolved, and I have worked to > resolve several "TODO" items that I had noted in the code. > > On 13.09.22 10:27, Peter Eisentraut wrote: >> Here is an updated patch that resolves some merge conflicts; no >> functionality changes over v6. >> >> On 30.08.22 13:35, Peter Eisentraut wrote: >>> Here is an updated patch. >>> >>> I mainly spent time on adding a full set of DDL commands for the >>> keys. This made the patch very bulky now, but there is not really >>> anything surprising in there.  It probably needs another check of >>> permission handling etc., but it's got everything there to try it >>> out.  Along with the DDL commands, the pg_dump side is now fully >>> implemented. >>> >>> Secondly, I isolated the protocol changes into a protocol extension >>> with the name _pq_.column_encryption.  So by default there are no >>> protocol changes and this feature is disabled.  AFAICT, we haven't >>> actually ever used the _pq_ protocol extension mechanism, so it would >>> be good to review whether this was done here in the intended way. >>> >>> At this point, the patch is sort of feature complete, meaning it has >>> all the concepts, commands, and interfaces that I had in mind.  I >>> have a long list of things to recheck and tighten up, based on >>> earlier feedback and some things I found along the way.  But I don't >>> currently plan any more major architectural or design changes, >>> pending feedback.  (Also, the patch is now very big, so anything >>> additional might be better for a future separate patch.) --------------ULxHWSvzuDhj7RnFhfk5j0Gg Content-Type: text/plain; charset=UTF-8; name="v9-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v9-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA2YTA1NWI4ZDEyZDI2YzM3MjhmNTE3NDMyY2VlNTQyNDYyOGYwMmRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyNyBTZXAgMjAyMiAxNTo0ODo0NCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjldIFRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uCgpUaGlzIGZlYXR1 cmUgZW5hYmxlcyB0aGUgYXV0b21hdGljLCB0cmFuc3BhcmVudCBlbmNyeXB0aW9uIGFuZApk ZWNyeXB0aW9uIG9mIHBhcnRpY3VsYXIgY29sdW1ucyBpbiB0aGUgY2xpZW50LiAgVGhlIGRh dGEgZm9yIHRob3NlCmNvbHVtbnMgdGhlbiBvbmx5IGV2ZXIgYXBwZWFycyBpbiBjaXBoZXJ0 ZXh0IG9uIHRoZSBzZXJ2ZXIsIHNvIGl0IGlzCnByb3RlY3RlZCBmcm9tIERCQXMsIHN5c2Fk bWlucywgY2xvdWQgb3BlcmF0b3JzLCBldGMuIGFzIHdlbGwgYXMKYWNjaWRlbnRhbCBsZWFr YWdlIHRvIHNlcnZlciBsb2dzLCBmaWxlLXN5c3RlbSBiYWNrdXBzLCBldGMuICBUaGUKY2Fu b25pY2FsIHVzZSBjYXNlIGZvciB0aGlzIGZlYXR1cmUgaXMgc3RvcmluZyBjcmVkaXQgY2Fy ZCBudW1iZXJzCmVuY3J5cHRlZCwgaW4gYWNjb3JkYW5jZSB3aXRoIFBDSSBEU1MsIGFzIHdl bGwgYXMgc2ltaWxhciBzaXR1YXRpb25zCmludm9sdmluZyBzb2NpYWwgc2VjdXJpdHkgbnVt YmVycyBldGMuICBPbmUgY2FuJ3QgZG8gYW55IGNvbXB1dGF0aW9ucwp3aXRoIGVuY3J5cHRl ZCB2YWx1ZXMgb24gdGhlIHNlcnZlciwgYnV0IGZvciB0aGVzZSB1c2UgY2FzZXMsIHRoYXQg aXMKbm90IG5lY2Vzc2FyeS4gIFRoaXMgZmVhdHVyZSBkb2VzIHN1cHBvcnQgZGV0ZXJtaW5p c3RpYyBlbmNyeXB0aW9uIGFzCmFuIGFsdGVybmF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhbmRv bWl6ZWQgZW5jcnlwdGlvbiwgc28gaW4gdGhhdCBtb2RlCm9uZSBjYW4gZG8gZXF1YWxpdHkg bG9va3VwcywgYXQgdGhlIGNvc3Qgb2Ygc29tZSBzZWN1cml0eS4KClRoaXMgZnVuY3Rpb25h bGl0eSBhbHNvIGV4aXN0cyBpbiBvdGhlciBkYXRhYmFzZSBwcm9kdWN0cywgYW5kIHRoZQpv dmVyYWxsIGNvbmNlcHRzIHdlcmUgbW9zdGx5IGFkb3B0ZWQgZnJvbSB0aGVyZS4KCihOb3Rl OiBUaGlzIGZlYXR1cmUgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBhbnkgb24tZGlzayBlbmNy eXB0aW9uCmZlYXR1cmUuICBCb3RoIGNhbiBleGlzdCBpbmRlcGVuZGVudGx5LikKCllvdSBk ZWNsYXJlIGEgY29sdW1uIGFzIGVuY3J5cHRlZCBpbiBhIENSRUFURSBUQUJMRSBzdGF0ZW1l bnQuICBUaGUKY29sdW1uIHZhbHVlIGlzIGVuY3J5cHRlZCBieSBhIHN5bW1ldHJpYyBrZXkg Y2FsbGVkIHRoZSBjb2x1bW4KZW5jcnlwdGlvbiBrZXkgKENFSykuICBUaGUgQ0VLIGlzIGEg Y2F0YWxvZyBvYmplY3QuICBUaGUgQ0VLIGtleQptYXRlcmlhbCBpcyBpbiB0dXJuIGVuY3J5 cHRlZCBieSBhbiBhc3N5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpQR19DTUtfUlNB RVNfT0FFUF9TSEFfMSBvciBfMjU2LiAgVGhlIENFSyBwcm9jZXNzIHVzZXMKQUVBRF9BRVNf Kl9DQkNfSE1BQ19TSEFfKiB3aXRoIHNldmVyYWwgc3RyZW5ndGhzLgoKSW4gdGhlIHNlcnZl ciwgdGhlIGVuY3J5cHRlZCBkYXR1bXMgYXJlIHN0b3JlZCBpbiB0eXBlcyBjYWxsZWQKcGdf ZW5jcnlwdGVkX3JuZCBhbmQgcGdfZW5jcnlwdGVkX2RldCAoZm9yIHJhbmRvbWl6ZWQgYW5k CmRldGVybWluaXN0aWMgZW5jcnlwdGlvbikuICBUaGVzZSBhcmUgZXNzZW50aWFsbHkgY291 c2lucyBvZiBieXRlYS4KRm9yIHRoZSByZXN0IG9mIHRoZSBkYXRhYmFzZSBzeXN0ZW0gYmVs b3cgdGhlIHByb3RvY29sIGhhbmRsaW5nLCB0aGVyZQppcyBub3RoaW5nIHNwZWNpYWwgYWJv dXQgdGhvc2UuICBGb3IgZXhhbXBsZSwgcGdfZW5jcnlwdGVkX3JuZCBoYXMgbm8Kb3BlcmF0 b3JzIGF0IGFsbCwgcGdfZW5jcnlwdGVkX2RldCBoYXMgb25seSBhbiBlcXVhbGl0eSBvcGVy YXRvci4KcGdfYXR0cmlidXRlIGhhcyBhIG5ldyBjb2x1bW4gYXR0cmVhbHR5cGlkIHRoYXQg c3RvcmVzIHRoZSBvcmlnaW5hbAp0eXBlIG9mIHRoZSBkYXRhIGluIHRoZSBjb2x1bW4uICBU aGlzIGlzIG9ubHkgdXNlZCBmb3IgcHJvdmlkaW5nIGl0IHRvCmNsaWVudHMsIHNvIHRoYXQg aGlnaGVyLWxldmVsIGNsaWVudHMgY2FuIGNvbnZlcnQgdGhlIGRlY3J5cHRlZCB2YWx1ZQp0 byB0aGVpciBhcHByb3ByaWF0ZSBkYXRhIHR5cGVzIGluIHRoZWlyIGVudmlyb25tZW50cy4K ClRoZSBwcm90b2NvbCBleHRlbnNpb25zIGFyZSBndWFyZGVkIGJ5IGEgbmV3IHByb3RvY29s IGV4dGVuc2lvbiBvcHRpb24KIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iLiAgSWYgdGhpcyBp cyBub3Qgc2V0LCBub3RoaW5nIGNoYW5nZXMsIHRoZQpwcm90b2NvbCBzdGF5cyB0aGUgc2Ft ZSwgYW5kIG5vIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiBoYXBwZW5zLgoKVGhlIHRyaWNr aWVzdCBwYXJ0IG9mIHRoaXMgd2hvbGUgdGhpbmcgYXBwZWFycyB0byBiZSBob3cgdG8gZ2V0 CnRyYW5zcGFyZW50bHkgZW5jcnlwdGVkIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgKGFzIG9w cG9zZWQgdG8gcmVhZGluZwppdCBvdXQpLiAgSXQgaXMgcmVxdWlyZWQgdG8gdXNlIHByb3Rv Y29sLWxldmVsIHByZXBhcmVkIHN0YXRlbWVudHMKKGkuZS4sIGV4dGVuZGVkIHF1ZXJ5KSBm b3IgdGhpcy4gIFRoZSBjbGllbnQgbXVzdCBmaXJzdCBwcmVwYXJlIGEKc3RhdGVtZW50LCB0 aGVuIGRlc2NyaWJlIHRoZSBzdGF0ZW1lbnQgdG8gZ2V0IHBhcmFtZXRlciBtZXRhZGF0YSwK d2hpY2ggaW5kaWNhdGVzIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHRvIGJlIGVuY3J5cHRlZCBh bmQgaG93LiAgU28gdGhpcwp3aWxsIHJlcXVpcmUgc29tZSBjYXJlIGJ5IGFwcGxpY2F0aW9u cyB0aGF0IHdhbnQgdG8gZG8gdGhpcywgYnV0LAp3ZWxsLCB0aGV5IHByb2JhYmx5IHNob3Vs ZCBiZSBjYXJlZnVsIGFueXdheS4gIEluIGxpYnBxLCB0aGUgZXhpc3RpbmcKQVBJcyBtYWtl IHRoaXMgZGlmZmljdWx0LCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIHRoZSBy ZXN1bHQKb2YgYSBkZXNjcmliZS1zdGF0ZW1lbnQgY2FsbCBiYWNrIGludG8KZXhlY3V0ZS1z dGF0ZW1lbnQtd2l0aC1wYXJhbWV0ZXJzLiAgSSBhZGRlZCBuZXcgZnVuY3Rpb25zIHRoYXQg ZG8KdGhpcywgc28geW91IHRoZW4gZXNzZW50aWFsbHkgZG8KCiAgICByZXMwID0gUFFkZXNj cmliZVByZXBhcmVkKGNvbm4sICIiKTsKICAgIHJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25u LCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwLCByZXMwKTsKCihUaGUgbmFtZSBjb3Vs ZCBvYnZpb3VzbHkgYmUgaW1wcm92ZWQuKSAgT3RoZXIgY2xpZW50IEFQSXMgdGhhdCBoYXZl IGEKInN0YXRlbWVudCBoYW5kbGUiIGNvbmNlcHQgY291bGQgZG8gdGhpcyBtb3JlIGVsZWdh bnRseSBhbmQgcHJvYmFibHkKd2l0aG91dCBhbnkgQVBJIGNoYW5nZXMuCgpBbm90aGVyIGNo YWxsZW5nZSBpcyB0aGF0IHRoZSBwYXJzZSBhbmFseXNpcyBtdXN0IGNoZWNrIHdoaWNoCnVu ZGVybHlpbmcgY29sdW1uIGEgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvLiAgVGhpcyBpcyBz aW1pbGFyIHRvCnJlc29yaWd0YmwgYW5kIHJlc29yaWdjb2wgaW4gdGhlIG9wcG9zaXRlIGRp cmVjdGlvbi4gIFRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIG9mIHRoaXMgd29ya3MgZm9y IHRoZSB0ZXN0IGNhc2VzLCBidXQgSSBrbm93IGl0IGhhcwpzb21lIHByb2JsZW1zLCBzbyBJ J2xsIGNvbnRpbnVlIHdvcmtpbmcgaW4gdGhpcy4gIFRoaXMgZnVuY3Rpb25hbGl0eQppcyBp biBwcmluY2lwbGUgYXZhaWxhYmxlIHRvIGFsbCBwcmVwYXJlZC1zdGF0ZW1lbnQgdmFyaWFu dHMsIG5vdCBvbmx5CnByb3RvY29sLWxldmVsLiAgU28geW91IGNhbiBzZWUgaW4gdGhlIHRl c3RzIHRoYXQgSSBleHBhbmRlZCB0aGUKcGdfcHJlcGFyZWRfc3RhdGVtZW50cyB2aWV3IHRv IHNob3cgdGhpcyBpbmZvcm1hdGlvbiBhcyB3ZWxsLCB3aGljaAphbHNvIHByb3ZpZGVzIGFu IGVhc3kgd2F5IHRvIHRlc3QgYW5kIGRlYnVnIHRoaXMgZnVuY3Rpb25hbGl0eQppbmRlcGVu ZGVudCBvZiBjb2x1bW4gZW5jcnlwdGlvbi4KCnBzcWwgZG9lc24ndCB1c2UgcHJlcGFyZWQg c3RhdGVtZW50cywgc28gd3JpdGluZyBpbnRvIGVuY3J5cHRlZApjb2x1bW5zIHdvdWxkbid0 IHdvcmsgYXQgYWxsIHZpYSBwc3FsLiAgKFJlYWRpbmcgd29ya3Mgbm8KcHJvYmxlbS4pICBJ IGFkZGVkIGEgbmV3IHBzcWwgY29tbWFuZCBcZ2VuY3IgdGhhdCB5b3UgY2FuIHVzZSBsaWtl CgpJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKCQxLCAkMikgXGdlbmNyICd2YWwxJyAndmFsMicK ClRPRE86IFRoaXMgcGF0Y2ggdmVyc2lvbiBoYXMgYWxsIHRoZSBuZWNlc3NhcnkgcGllY2Vz IGluIHBsYWNlIHRvIG1ha2UKdGhpcyB3b3JrLCBzbyB5b3UgY2FuIGhhdmUgYW4gaWRlYSBo b3cgdGhlIG92ZXJhbGwgc3lzdGVtIHdvcmtzLiAgSXQKY29udGFpbnMgc29tZSBkb2N1bWVu dGF0aW9uIGFuZCB0ZXN0cyB0byBoZWxwIGlsbHVzdHJhdGUgdGhlCmZ1bmN0aW9uYWxpdHku ICBNaXNzaW5nOgoKLSBwc3FsIFxkIHN1cHBvcnQKCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3 LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC84OTE1NzkyOS1jMmI2LTgxN2ItNjAy NS04ZTRiMmQ4OWQ4OGYlNDBlbnRlcnByaXNlZGIuY29tCi0tLQogZG9jL3NyYy9zZ21sL2Fj cm9ueW1zLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsKIGRvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8IDI3NSArKysrKysrCiBkb2Mvc3Jj L3NnbWwvZGF0YXR5cGUuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgNDcgKysKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDM3OSArKysrKysr KysKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAy MyArCiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgfCAy ODAgKysrKysrLQogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgMzkyICsrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAg ICAgICAgICAgICAgIHwgICA2ICsKIC4uLi9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlw dGlvbl9rZXkuc2dtbCB8IDE4NiArKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1 bW5fbWFzdGVyX2tleS5zZ21sIHwgMTE3ICsrKwogLi4uL3JlZi9jcmVhdGVfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwgICAgIHwgMTYzICsrKysKIC4uLi9zZ21sL3JlZi9jcmVhdGVf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbCAgICB8IDEwNiArKysKIGRvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8ICA0MiArLQogLi4uL3NnbWwvcmVmL2Ry b3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgIHwgMTEyICsrKwogZG9jL3NyYy9zZ21s L3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgIHwgMTEyICsrKwogZG9jL3NyYy9z Z21sL3JlZi9wZ19kdW1wLnNnbWwgICAgICAgICAgICAgICAgIHwgIDMxICsKIGRvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcGFsbC5zZ21sICAgICAgICAgICAgICB8ICAyNyArCiBkb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgMzMgKwogZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9i YWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYyAgICAgICB8ICAgNyArCiBzcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMgICAgICAgICAgfCAxOTEgKysrKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jICAgICAgICAgICB8ICAxMiAr CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyAgICAgICAgfCAgIDIg Ky0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAg MyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgICAgIHwg IDY0ICsrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAg fCAgMTggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAg IHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAg ICB8IDIyMCArKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAg ICAgICAgICB8ICAxNSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMgICAg ICAgICAgICAgfCAzNTQgKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuYyAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jICAgICAgICAgICAgICAgIHwgIDc0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNs YWJlbC5jICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMgICAgICAgICAgICAgIHwgIDk2ICsrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFyaWFibGUuYyAgICAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9leGVjdXRv ci9zcGkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTIxICsrLQogc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMgICAgICAgICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAgICAgIHwgIDE5ICstCiBzcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAgICAgfCAgNTcgKy0KIHNyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICA0MiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYyAgICAgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDExMSArKysK IHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAgICB8ICAzMSAr LQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYyAgICAgICAgICAgIHwgIDU4 ICsrCiBzcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMgICAgICAgICAgICAgICAgfCAg MTggKy0KIHNyYy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8 ICAgNiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAg IHwgICA0ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGIuYyAgICAgICAgICAgICAg ICB8ICAgOSArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgMzUwICsrKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAg ICAgICAgICAgICAgfCAgMzEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAg ICAgICAgICAgICAgIHwgIDE0ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgICAg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bCAgICAgICAgICAgICAgfCAgNTYgKy0KIHNyYy9iaW4vcHNxbC9jb21tYW5kLmMgICAgICAg ICAgICAgICAgICAgICAgICB8ICAzMSArCiBzcmMvYmluL3BzcWwvY29tbW9uLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMzkgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAyOSArLQogc3JjL2Jpbi9wc3FsL2hlbHAuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9zZXR0aW5ncy5o ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvYmluL3BzcWwvc3RhcnR1cC5j ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDUxICstCiBzcmMvaW5jbHVkZS9hY2Nlc3Mv cHJpbnR0dXAuaCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9kZXBlbmRlbmN5LmggICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2Ftb3AuZGF0ICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYXR0cmlidXRlLmggICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0ICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jb2xlbmNrZXkuaCAgICAgICAgICAgIHwgIDU1ICsrCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCAgICAgICAgfCAgNDYgKysKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmggICAgICAgICB8ICA0NSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAgICAgIHwgIDEwICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0ICAgICAgICAgICB8ICAgMiArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgICAgICAgICAgICAgICB8ICAxMiArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oICAgICAgICAgICAgIHwgIDI1ICsK IHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmggICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTcg Kwogc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oICAgICAgICAgICAgICB8 ICAgMyArLQogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAg IHwgICA2ICsKIHNyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCAgICAgICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAg ICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oICAgICAgICAgICAg ICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oICAgICAgICAgICAg ICAgICAgfCAgIDYgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0ICAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgICAg ICAgICAgICAgfCAgMzggKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jICAgICB8IDc2NiArKysrKysrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWVuY3J5cHQuaCAgICAgICAgICAgICB8ICAzMyArCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1leGVjLmMgICAgICAgICAgICAgICAgfCA1OTMgKysrKysrKysrKysrKy0KIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jICAgICAgICAgICB8IDE4MCArKyst CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jICAgICAgICAgICAgICAgfCAgNTUg Ky0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggICAgICAgICAgICAgICB8ICAy MiArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgICAgICAgfCAg MzcgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tayAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlICAgICAgICAg IHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUgICAgICAgICAg ICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkICAgICAg ICAgfCAgIDIgKwogc3JjL3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICstCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlICAg ICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUgICAg ICAgICAgIHwgIDI5ICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxk ICAgICAgICB8ICAyMCArCiAuLi4vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwgICAgICAg ICAgICAgICAgfCAxODMgKysrKysKIC4uLi9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtf cm90YXRpb24ucGwgICB8IDEwOCArKysKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rl c3RfY2xpZW50LmMgICAgICB8IDIxMCArKysrKwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3Rl c3RfcnVuX2RlY3J5cHQucGwgICAgIHwgIDQxICsKIHNyYy90ZXN0L21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9j b2x1bW5fZW5jcnlwdGlvbi5vdXQgICAgfCAxNDMgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgIHwgMTUzICsrLS0KIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgNiArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICAgICAgfCAgMTIgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQgICAgICAgICB8ICAzOCArLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDI1ICsKIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQgICAgIHwgIDQ2ICstCiBzcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDMgKwogc3Jj L3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYyAgICAgICAgICAgIHwgICAyICstCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwgICAgfCAxMjQgKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwgICAgICAgfCAgMTgg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsICAgICAgICAgICAgICB8ICAg MiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAgIHwg IDE3ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbCAgICAgICAgICB8 ICAgMiArCiAxMzUgZmlsZXMgY2hhbmdlZCwgNzYzMyBpbnNlcnRpb25zKCspLCAyMDggZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9j b2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21s CiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21h c3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJv cF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9z cmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNz bC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlw dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdp dGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9u L01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vbWVzb24uYnVpbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5j cnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50 LmMKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0 X3J1bl9kZWNyeXB0LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21s CmluZGV4IDJkZjY1NTlhY2NjZS4uYmQxYTAxODVlZDdhIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvYWNyb255bXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbApA QCAtNTYsNiArNTYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8L2xpc3Rp dGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PGFjcm9ueW0+Q0VLPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQ29sdW1uIEVuY3J5cHRpb24gS2V5CisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgPHRlcm0+PGFjcm9ueW0+Q0lEUjwvYWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtNjcsNiArNzYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PGFjcm9ueW0+Q01LPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgQ29sdW1uIE1hc3RlciBLZXkKKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRy eT4KICAgICA8dGVybT48YWNyb255bT5DUEFOPC9hY3JvbnltPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDAwZjgzM2QyMTBlNy4uNjM4YmUxYzg1MDdi IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMTA1LDYgKzEwNSwyMSBAQCA8dGl0bGU+U3lzdGVt IENhdGFsb2dzPC90aXRsZT4KICAgICAgIDxlbnRyeT5jb2xsYXRpb25zIChsb2NhbGUgaW5m b3JtYXRpb24pPC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+ cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5 PmNvbHVtbiBlbmNyeXB0aW9uIGtleXM8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5 ZGF0YSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L2xpbms+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5jb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YTwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlu a2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3Rl cmtleTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5jb2x1bW4g bWFzdGVyIGtleXM8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29uc3RyYWludCI+PHN0cnVjdG5h bWU+cGdfY29uc3RyYWludDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAgIDxl bnRyeT5jaGVjayBjb25zdHJhaW50cywgdW5pcXVlIGNvbnN0cmFpbnRzLCBwcmltYXJ5IGtl eSBjb25zdHJhaW50cywgZm9yZWlnbiBrZXkgY29uc3RyYWludHM8L2VudHJ5PgpAQCAtMTM2 MCw2ICsxMzc1LDQwIEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVj dG5hbWU+IENvbHVtbnM8L3RpdGxlPgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwv cm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5hdHRjZWs8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJl ZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1Y3Ru YW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8 L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElm IHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCBhIHJlZmVyZW5jZSB0byB0aGUgY29sdW1uIGVu Y3J5cHRpb24ga2V5LCBlbHNlIDAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmF0dHJlYWx0eXBpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3Ru YW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1 Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUg Y29sdW1uIGlzIGVuY3J5cHRlZCwgdGhlbiB0aGlzIGNvbHVtbiBpbmRpY2F0ZXMgdGhlIHR5 cGUgb2YgdGhlCisgICAgICAgZW5jcnlwdGVkIGRhdGEgdGhhdCBpcyByZXBvcnRlZCB0byB0 aGUgY2xpZW50LiAgRm9yIGVuY3J5cHRlZCBjb2x1bW5zLAorICAgICAgIHRoZSBmaWVsZCA8 c3RydWN0ZmllbGQ+YXR0dHlwaWQ8L3N0cnVjdGZpZWxkPiBpcyBlaXRoZXIKKyAgICAgICA8 dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiBvciA8dHlwZT5wZ19lbmNyeXB0ZWRfcm5k PC90eXBlPi4gIElmIHRoZQorICAgICAgIGNvbHVtbiBpcyBub3QgZW5jcnlwdGVkLCB0aGVu IDAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dGVuY2FsZzwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDE2PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgSWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIHRoZSBpZGVudGlmaWVy IG9mIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobTsKKyAgICAgICBzZWUgPHhyZWYgbGlua2Vu ZD0icHJvdG9jb2wtY2VrIi8+IGZvciBwb3NzaWJsZSB2YWx1ZXMuCisgICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgogICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRpbmhjb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDQ8L3R5cGU+CkBAIC0yNDU2LDYgKzI1MDUsMjMyIEBAIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19jb2xsYXRpb248L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgogICA8L3BhcmE+ CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisK KyAgPGluZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+CisgICA8cHJpbWFy eT5wZ19jb2xlbmNrZXk8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgor ICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBj b250YWlucyBpbmZvcm1hdGlvbgorICAgYWJvdXQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eXMgaW4gdGhlIGRhdGFiYXNlLiAgVGhlIGFjdHVhbCBrZXkgbWF0ZXJpYWwKKyAgIG9mIHRo ZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGlzIGluIHRoZSBjYXRhbG9nIDxsaW5rCisgICBs aW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVu Y2tleWRhdGE8L3N0cnVjdG5hbWU+PC9saW5rPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4K KyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+IENvbHVt bnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5jZWtuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBu YW1lCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNla293bmVyPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVj dG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgY29sdW1uIGVuY3J5 cHRpb24ga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEg aWQ9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJjYXRhbG9nLXBnLWNvbGVuY2tleWRhdGEiPgorICAgPHByaW1hcnk+cGdfY29sZW5j a2V5ZGF0YTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUg Y2F0YWxvZyA8c3RydWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPiBjb250 YWlucyB0aGUga2V5CisgICBtYXRlcmlhbCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLiAg RWFjaCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb2JqZWN0IGNhbgorICAgY29udGFpbiBzZXZl cmFsIHZlcnNpb25zIG9mIHRoZSBrZXkgbWF0ZXJpYWwsIGVhY2ggZW5jcnlwdGVkIHdpdGgg YQorICAgZGlmZmVyZW50IGNvbHVtbiBtYXN0ZXIga2V5LiAgVGhhdCBhbGxvd3MgdGhlIGdy YWR1YWwgcm90YXRpb24gb2YgdGhlCisgICBjb2x1bW4gbWFzdGVyIGtleXMuICBUaHVzLCA8 bGl0ZXJhbD4oY2tkY2VraWQsIGNrZGNta2lkKTwvbGl0ZXJhbD4gaXMgYQorICAgdW5pcXVl IGtleSBvZiB0aGlzIHRhYmxlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUga2V5 IG1hdGVyaWFsIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgc2hvdWxkIG5ldmVyIGJlIGRl Y3J5cHRlZCBpbnNpZGUKKyAgIHRoZSBkYXRhYmFzZSBpbnN0YW5jZS4gIEl0IGlzIG1lYW50 IHRvIGJlIHNlbnQgYXMtaXMgdG8gdGhlIGNsaWVudCwgd2hlcmUKKyAgIGl0IGlzIGRlY3J5 cHRlZCB1c2luZyB0aGUgYXNzb2NpYXRlZCBjb2x1bW4gbWFzdGVyIGtleSwgYW5kIHRoZW4g dXNlZCB0bworICAgZW5jcnlwdCBvciBkZWNyeXB0IGNvbHVtbiB2YWx1ZXMuCisgIDwvcGFy YT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0 YTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgor ICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29s dW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0 aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4K KworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNrZGNla2lkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctY29sZW5ja2V5Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+ PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRoaXMg ZW50cnkgYmVsb25ncyB0bworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5j a2RjbWtpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJl bmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5h bWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg VGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRoYXQgdGhlIGtleSBtYXRlcmlhbCBpcyBlbmNyeXB0 ZWQgd2l0aAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjbWthbGc8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQxNjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB1c2VkIGZvciBlbmNy eXB0aW5nIHRoZSBrZXkgbWF0ZXJpYWw7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InBy b3RvY29sLWNtayIvPiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5ja2RlbmN2YWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ieXRlYTwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBrZXkgbWF0 ZXJpYWwgb2YgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB1c2luZyB0 aGUKKyAgICAgICByZWZlcmVuY2VkIGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8 L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sbWFzdGVy a2V5Ij4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFt ZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJr ZXkiPgorICAgPHByaW1hcnk+cGdfY29sbWFzdGVya2V5PC9wcmltYXJ5PgorICA8L2luZGV4 dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbG1h c3RlcmtleTwvc3RydWN0bmFtZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IGNv bHVtbiBtYXN0ZXIga2V5cy4gIFRoZSBrZXlzIHRoZW1zZWx2ZXMgYXJlIG5vdCBzdG9yZWQg aW4gdGhlCisgICBkYXRhYmFzZS4gIFRoZSBjYXRhbG9nIGVudHJ5IG9ubHkgY29udGFpbnMg aW5mb3JtYXRpb24gdGhhdCBpcyB1c2VkIGJ5CisgICBjbGllbnRzIHRvIGxvY2F0ZSB0aGUg a2V5cywgZm9yIGV4YW1wbGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAg IHN5c3RlbS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRl bnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtuYW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIENvbHVtbiBtYXN0ZXIga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+Y21rb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRo aWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE93bmVyIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtyZWFsbTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBIDxxdW90ZT5y ZWFsbTwvcXVvdGU+IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbiBtYXN0ZXIga2V5LiAg VGhpcyBpcworICAgICAgIGEgZnJlZWx5IGNob3NlbiBzdHJpbmcgdGhhdCBpcyB1c2VkIGJ5 IGNsaWVudHMgdG8gZGV0ZXJtaW5lIGhvdyB0byBsb29rCisgICAgICAgdXAgdGhlIGtleS4g IEEgdHlwaWNhbCBjb25maWd1cmF0aW9uIHdvdWxkIHB1dCBhbGwgQ01LcyB0aGF0IGFyZSBs b29rZWQKKyAgICAgICB1cCBpbiB0aGUgc2FtZSB3YXkgaW50byB0aGUgc2FtZSByZWFsbS4K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAg PC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iY2F0YWxv Zy1wZy1jb25zdHJhaW50Ij4KICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8 L3N0cnVjdG5hbWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RhdGF0 eXBlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbAppbmRleCAwMjU4YjE5MmUw ZTQuLjA1Mjg2ZGQzZTUzMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKQEAgLTUzNDYsNCArNTM0Niw1 MSBAQCA8dGl0bGU+UHNldWRvLVR5cGVzPC90aXRsZT4KIAogICA8L3NlY3QxPgogCisgIDxz ZWN0MSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkIj4KKyAgIDx0aXRsZT5UeXBlcyBSZWxhdGVk IHRvIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBBbiBlbmNyeXB0ZWQg Y29sdW1uIHZhbHVlIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9u Ii8+KSBpcworICAgIGludGVybmFsbHkgc3RvcmVkIHVzaW5nIHRoZSB0eXBlcworICAgIDx0 eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+IChmb3IgcmFuZG9taXplZCBlbmNyeXB0aW9u KSBvcgorICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IChmb3IgZGV0ZXJtaW5p c3RpYyBlbmNyeXB0aW9uKTsgc2VlIDx4cmVmCisgICAgbGlua2VuZD0iZGF0YXR5cGUtZW5j cnlwdGVkLXRhYmxlIi8+LiAgTW9zdCBvZiB0aGUgZGF0YWJhc2Ugc3lzdGVtIHRyZWF0cwor ICAgIHRoaXMgYXMgbm9ybWFsIHR5cGVzLiAgRm9yIGV4YW1wbGUsIHRoZSB0eXBlIDx0eXBl PnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IGhhcworICAgIGFuIGVxdWFscyBvcGVyYXRvciB0 aGF0IGFsbG93cyBsb29rdXAgb2YgZW5jcnlwdGVkIHZhbHVlcy4gIFRoZSBleHRlcm5hbAor ICAgIHJlcHJlc2VudGF0aW9uIG9mIHRoZXNlIHR5cGVzIGlzIHRoZSBzYW1lIGFzIHRoZSA8 dHlwZT5ieXRlYTwvdHlwZT4gdHlwZS4KKyAgICBUaHVzLCBjbGllbnRzIHRoYXQgZG9uJ3Qg c3VwcG9ydCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBvciBoYXZlCisgICAgZGlz YWJsZWQgaXQgd2lsbCBzZWUgdGhlIGVuY3J5cHRlZCB2YWx1ZXMgYXMgYnl0ZSBhcnJheXMu ICBDbGllbnRzIHRoYXQKKyAgICBzdXBwb3J0IHRyYW5zcGFyZW50IGRhdGEgZW5jcnlwdGlv biB3aWxsIG5vdCBzZWUgdGhlc2UgdHlwZXMgaW4gcmVzdWx0CisgICAgc2V0cywgYXMgdGhl IHByb3RvY29sIGxheWVyIHdpbGwgdHJhbnNsYXRlIHRoZW0gYmFjayB0byBkZWNsYXJlZAor ICAgIHVuZGVybHlpbmcgdHlwZSBpbiB0aGUgdGFibGUgZGVmaW5pdGlvbi4KKyAgIDwvcGFy YT4KKworICAgIDx0YWJsZSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkLXRhYmxlIj4KKyAgICAg PHRpdGxlPlR5cGVzIFJlbGF0ZWQgdG8gRW5jcnlwdGlvbjwvdGl0bGU+CisgICAgIDx0Z3Jv dXAgY29scz0iMyI+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wxIiBjb2x3aWR0aD0i MSoiLz4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDIiIGNvbHdpZHRoPSIzKiIvPgor ICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMyIgY29sd2lkdGg9IjIqIi8+CisgICAgICA8 dGhlYWQ+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAg ICAgICA8ZW50cnk+U3RvcmFnZSBTaXplPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PkRlc2Ny aXB0aW9uPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGhlYWQ+CisgICAgICA8 dGJvZHk+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2VuY3J5cHRl ZF9kZXQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PjEgb3IgNCBieXRlcyBwbHVz IHRoZSBhY3R1YWwgYmluYXJ5IHN0cmluZzwvZW50cnk+CisgICAgICAgIDxlbnRyeT5lbmNy eXB0ZWQgY29sdW1uIHZhbHVlLCBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb248L2VudHJ5Pgor ICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT48dHlwZT5wZ19l bmNyeXB0ZWRfcm5kPC90eXBlPjwvZW50cnk+CisgICAgICAgIDxlbnRyeT4xIG9yIDQgYnl0 ZXMgcGx1cyB0aGUgYWN0dWFsIGJpbmFyeSBzdHJpbmc8L2VudHJ5PgorICAgICAgICA8ZW50 cnk+ZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSwgcmFuZG9taXplZCBlbmNyeXB0aW9uPC9lbnRy eT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGJvZHk+CisgICAgIDwvdGdyb3VwPgorICAg IDwvdGFibGU+CisgIDwvc2VjdDE+CiAgPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDAzYzAxOTM3 MDk0Yi4uOGNmNjlmZTEwZmVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0xMjExLDYgKzEyMTEsMzg1IEBAIDx0 aXRsZT5FeGNsdXNpb24gQ29uc3RyYWludHM8L3RpdGxlPgogICA8L3NlY3QyPgogIDwvc2Vj dDE+CiAKKyA8c2VjdDEgaWQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiI+CisgIDx0aXRsZT5U cmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBX aXRoIDxmaXJzdHRlcm0+dHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb248L2ZpcnN0dGVy bT4sIGNvbHVtbnMgY2FuIGJlCisgICBzdG9yZWQgZW5jcnlwdGVkIGluIHRoZSBkYXRhYmFz ZS4gIFRoZSBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIGhhcHBlbnMgb24KKyAgIHRoZSBj bGllbnQsIHNvIHRoYXQgdGhlIHBsYWludGV4dCB2YWx1ZSBpcyBuZXZlciBzZWVuIGluIHRo ZSBkYXRhYmFzZQorICAgaW5zdGFuY2Ugb3Igb24gdGhlIHNlcnZlciBob3N0aW5nIHRoZSBk YXRhYmFzZS4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IG1vc3QKKyAgIG9wZXJhdGlvbnMsIHN1 Y2ggYXMgZnVuY3Rpb24gY2FsbHMgb3Igc29ydGluZywgYXJlIG5vdCBwb3NzaWJsZSBvbgor ICAgZW5jcnlwdGVkIHZhbHVlcy4KKyAgPC9wYXJhPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRs ZT5Vc2luZyBUcmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBh cmE+CisgICBUcmFucGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIHVzZXMgdHdvIGxldmVscyBv ZiBjcnlwdG9ncmFwaGljIGtleXMuICBUaGUKKyAgIGFjdHVhbCBjb2x1bW4gdmFsdWUgaXMg ZW5jcnlwdGVkIHVzaW5nIGEgc3ltbWV0cmljIGFsZ29yaXRobSwgc3VjaCBhcyBBRVMsCisg ICB1c2luZyBhIDxmaXJzdHRlcm0+Y29sdW1uIGVuY3J5cHRpb24ga2V5PC9maXJzdHRlcm0+ CisgICAoPGFjcm9ueW0+Q0VLPC9hY3JvbnltPikuICBUaGUgY29sdW1uIGVuY3J5cHRpb24g a2V5IGlzIGluIHR1cm4gZW5jcnlwdGVkCisgICB1c2luZyBhbiBhc3N5bW1ldHJpYyBhbGdv cml0aG0sIHN1Y2ggYXMgUlNBLCB1c2luZyBhIDxmaXJzdHRlcm0+Y29sdW1uCisgICBtYXN0 ZXIga2V5PC9maXJzdHRlcm0+ICg8YWNyb255bT5DTUs8L2Fjcm9ueW0+KS4gIFRoZSBlbmNy eXB0ZWQgQ0VLIGlzCisgICBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIHN5c3RlbS4gIFRoZSBD TUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UKKyAgIHN5c3RlbTsgaXQgaXMgc3Rv cmVkIG9uIHRoZSBjbGllbnQgb3Igc29tZXdoZXJlIHdoZXJlIHRoZSBjbGllbnQgY2FuIGFj Y2VzcworICAgaXQsIHN1Y2ggYXMgaW4gYSBsb2NhbCBmaWxlIG9yIGluIGEga2V5IG1hbmFn ZW1lbnQgc3lzdGVtLiAgVGhlIGRhdGFiYXNlCisgICBzeXN0ZW0gb25seSByZWNvcmRzIHdo ZXJlIHRoZSBDTUsgaXMgc3RvcmVkIGFuZCBwcm92aWRlcyB0aGlzIGluZm9ybWF0aW9uCisg ICB0byB0aGUgY2xpZW50LiAgV2hlbiByb3dzIGNvbnRhaW5pbmcgZW5jcnlwdGVkIGNvbHVt bnMgYXJlIHNlbnQgdG8gdGhlCisgICBjbGllbnQsIHRoZSBzZXJ2ZXIgZmlyc3Qgc2VuZHMg YW55IG5lY2Vzc2FyeSBDTUsgaW5mb3JtYXRpb24sIGZvbGxvd2VkIGJ5CisgICBhbnkgcmVx dWlyZWQgQ0VLLiAgVGhlIGNsaWVudCB0aGVuIGxvb2tzIHVwIHRoZSBDTUsgYW5kIHVzZXMg dGhhdCB0bworICAgZGVjcnlwdCB0aGUgQ0VLLiAgVGhlbiBpdCBkZWNyeXB0cyBpbmNvbWlu ZyByb3cgZGF0YSB1c2luZyB0aGUgQ0VLIGFuZAorICAgcHJvdmlkZXMgdGhlIGRlY3J5cHRl ZCByb3cgZGF0YSB0byB0aGUgYXBwbGljYXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIEhlcmUgaXMgYW4gZXhhbXBsZSBkZWNsYXJpbmcgYSBjb2x1bW4gYXMgZW5jcnlwdGVk OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGN1c3RvbWVycyAoCisgICAgaWQg aW50IFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAg ICBjcmVkaXRjYXJkX251bSB0ZXh0IDxlbXBoYXNpcz5FTkNSWVBURUQgV0lUSCAoY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gY2VrMSk8L2VtcGhhc2lzPgorKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBv cnRzIDxmaXJzdHRlcm0+cmFuZG9taXplZDwvZmlyc3R0ZXJtPgorICAgKGFsc28ga25vd24g YXMgPGZpcnN0dGVybT5wcm9iYWJpbGlzdGljPC9maXJzdHRlcm0+KSBhbmQKKyAgIDxmaXJz dHRlcm0+ZGV0ZXJtaW5pc3RpYzwvZmlyc3R0ZXJtPiBlbmNyeXB0aW9uLiAgVGhlIGFib3Zl IGV4YW1wbGUgdXNlcworICAgcmFuZG9taXplZCBlbmNyeXB0aW9uLCB3aGljaCBpcyB0aGUg ZGVmYXVsdC4gIFJhbmRvbWl6ZWQgZW5jcnlwdGlvbiB1c2VzIGEKKyAgIHJhbmRvbSBpbml0 aWFsaXphdGlvbiB2ZWN0b3IgZm9yIGVhY2ggZW5jcnlwdGlvbiwgc28gdGhhdCBldmVuIGlm IHRoZQorICAgcGxhaW50ZXh0IG9mIHR3byByb3dzIGlzIGVxdWFsLCB0aGUgZW5jcnlwdGVk IHZhbHVlcyB3aWxsIGJlIGRpZmZlcmVudC4KKyAgIFRoaXMgcHJldmVudHMgc29tZW9uZSB3 aXRoIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciB0byBtYWtlCisgICBj b21wdXRhdGlvbnMgc3VjaCBhcyBkaXN0aW5jdCBjb3VudHMgb24gdGhlIGVuY3J5cHRlZCB2 YWx1ZXMuCisgICBEZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gdXNlcyBhIGZpeGVkIGluaXRp YWxpemF0aW9uIHZlY3Rvci4gIFRoaXMgcmVkdWNlcworICAgc2VjdXJpdHksIGJ1dCBpdCBh bGxvd3MgZXF1YWxpdHkgc2VhcmNoZXMgb24gZW5jcnlwdGVkIHZhbHVlcy4gIFRoZQorICAg Zm9sbG93aW5nIGV4YW1wbGUgZGVjbGFyZXMgYSBjb2x1bW4gd2l0aCBkZXRlcm1pbmlzdGlj IGVuY3J5cHRpb246Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZW1wbG95ZWVz ICgKKyAgICBpZCBpbnQgUFJJTUFSWSBLRVksCisgICAgbmFtZSB0ZXh0IE5PVCBOVUxMLAor ICAgIC4uLgorICAgIHNzbiB0ZXh0IEVOQ1JZUFRFRCBXSVRIICgKKyAgICAgICAgY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgPGVtcGhhc2lzPmVuY3J5cHRpb25fdHlwZSA9IGRl dGVybWluaXN0aWM8L2VtcGhhc2lzPikKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBOdWxsIHZhbHVlcyBhcmUgbm90IGVuY3J5cHRlZCBieSB0 cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbjsgbnVsbCB2YWx1ZXMKKyAgIHNlbnQgYnkg dGhlIGNsaWVudCBhcmUgdmlzaWJsZSBhcyBudWxsIHZhbHVlcyBpbiB0aGUgZGF0YWJhc2Uu ICBJZiB0aGUgZmFjdAorICAgdGhhdCBhIHZhbHVlIGlzIG51bGwgbmVlZHMgdG8gYmUgaGlk ZGVuIGZyb20gdGhlIHNlcnZlciwgdGhpcyBpbmZvcm1hdGlvbgorICAgbmVlZHMgdG8gYmUg ZW5jb2RlZCBpbnRvIGEgbm9ubnVsbCB2YWx1ZSBpbiB0aGUgY2xpZW50IHNvbWVob3cuCisg IDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+UmVhZGluZyBh bmQgV3JpdGluZyBFbmNyeXB0ZWQgQ29sdW1uczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAg IFJlYWRpbmcgYW5kIHdyaXRpbmcgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbWVhbnQgdG8gYmUg aGFuZGxlZCBhdXRvbWF0aWNhbGx5CisgICAgYnkgdGhlIGNsaWVudCBsaWJyYXJ5L2RyaXZl ciBhbmQgc2hvdWxkIGJlIG1vc3RseSB0cmFuc3BhcmVudCB0byB0aGUKKyAgICBhcHBsaWNh dGlvbiBjb2RlLCBpZiBjZXJ0YWluIHByZXJlcXVpc2l0ZXMgYXJlIGZ1bGZpbGxlZDoKKwor ICAgIDxpdGVtaXplZGxpc3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBjbGllbnQgbGlicmFyeSBuZWVkcyB0byBzdXBwb3J0IHRyYW5zcGFyZW50IGNv bHVtbiBlbmNyeXB0aW9uLiAgTm90CisgICAgICAgYWxsIGNsaWVudCBsaWJyYXJpZXMgZG8u ICBGdXJ0aGVybW9yZSwgdGhlIGNsaWVudCBsaWJyYXJ5IG1pZ2h0IHJlcXVpcmUKKyAgICAg ICB0aGF0IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGV4cGxpY2l0bHkgZW5h YmxlZCBhdCBjb25uZWN0aW9uCisgICAgICAgdGltZS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlv biBvZiB0aGUgY2xpZW50IGxpYnJhcnkgZm9yIGRldGFpbHMuCisgICAgICA8L3BhcmE+Cisg ICAgIDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAg ICAgQ29sdW1uIG1hc3RlciBrZXlzIGFuZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGhhdmUg YmVlbiBzZXQgdXAsIGFuZCB0aGUKKyAgICAgICBjbGllbnQgbGlicmFyeSBoYXMgYmVlbiBj b25maWd1cmVkIHRvIGJlIGFibGUgdG8gbG9vayB1cCBjb2x1bW4gbWFzdGVyCisgICAgICAg a2V5cyBmcm9tIHRoZSBrZXkgc3RvcmUgb3Iga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICAg ICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBSZWFkaW5nIGZyb20gZW5jcnlwdGVkIGNvbHVt bnMgd2lsbCB0aGVuIHdvcmsgYXV0b21hdGljYWxseS4gIEZvciBleGFtcGxlLAorICAgIHVz aW5nIHRoZSBhYm92ZSBleGFtcGxlLAorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIHNzbiBG Uk9NIGVtcGxveWVlcyBXSEVSRSBpZCA9IDU7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIHdp bGwgcmV0dXJuIHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSBmb3IgdGhlIDxsaXRlcmFsPnNzbjwv bGl0ZXJhbD4gY29sdW1uIGluCisgICAgYW55IHJvd3MgZm91bmQuCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFdyaXRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgcmVxdWlyZXMg dGhhdCB0aGUgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyAgICAocHJvdG9jb2wtbGV2ZWwg cHJlcGFyZWQgc3RhdGVtZW50cykgYmUgdXNlZCwgc28gdGhhdCB0aGUgdmFsdWVzIHRvIGJl CisgICAgZW5jcnlwdGVkIGFyZSBzdXBwbGllZCBzZXBhcmF0ZWx5IGZyb20gdGhlIFNRTCBj b21tYW5kLiAgRm9yIGV4YW1wbGUsCisgICAgdXNpbmcsIHNheSwgcHNxbCBvciBsaWJwcSwg dGhlIGZvbGxvd2luZyB3b3VsZCBub3Qgd29yazoKKzxwcm9ncmFtbGlzdGluZz4KKy0tIFdS T05HIQorSU5TRVJUIElOVE8gc3NuIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKDEsICdTb21l b25lJywgJzEyMzQ1Jyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIFRoaXMgd2lsbCBsZWFr IHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSA8bGl0ZXJhbD4xMjM0NTwvbGl0ZXJhbD4gdG8gdGhl CisgICAgc2VydmVyLCB0aHVzIGRlZmVhdGluZyB0aGUgcG9pbnQgb2YgY29sdW1uIGVuY3J5 cHRpb24uCisgICAgTm90ZSB0aGF0IHVzaW5nIHNlcnZlci1zaWRlIHByZXBhcmVkIHN0YXRl bWVudHMgdXNpbmcgdGhlIFNRTCBjb21tYW5kcworICAgIDxjb21tYW5kPlBSRVBBUkU8L2Nv bW1hbmQ+IGFuZCA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiBpcyBlcXVhbGx5CisgICAg aW5jb3JyZWN0LCBzaW5jZSB0aGF0IHdvdWxkIGFsc28gbGVhayB0aGUgcGFyYW1ldGVycyBw cm92aWRlZCB0bworICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IHRvIHRoZSBzZXJ2 ZXIuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb3JyZWN0IG5vdGlvbmFs IG9yZGVyIG9mIG9wZXJhdGlvbnMgaXMgaWxsdXN0cmF0ZWQgaGVyZSB1c2luZworICAgIGxp YnBxLWxpa2UgY29kZSAod2l0aG91dCBlcnJvciBjaGVja2luZyk6Cis8cHJvZ3JhbWxpc3Rp bmc+CitQR3Jlc3VsdCAgICp0bXByZXMsCisgICAgICAgICAgICpyZXM7Citjb25zdCBjaGFy ICp2YWx1ZXNbXSA9IHsiMSIsICJTb21lb25lIiwgIjEyMzQ1In07CisKK1BRcHJlcGFyZShj b25uLCAiIiwgIklOU0VSVCBJTlRPIHNzbiAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwg JDIsICQzKSIsIDMsIE5VTEwpOworCisvKiBUaGlzIGZldGNoZXMgaW5mb3JtYXRpb24gYWJv dXQgd2hpY2ggcGFyYW1ldGVycyBuZWVkIHRvIGJlIGVuY3J5cHRlZC4gKi8KK3RtcHJlcyA9 IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisKK3JlcyA9IFBRZXhlY1ByZXBhcmVk Mihjb25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCB0bXByZXMpOwor CisvKiBwcmludCByZXN1bHQgaW4gcmVzICovCis8L3Byb2dyYW1saXN0aW5nPgorICAgIEhp Z2hlci1sZXZlbCBjbGllbnQgbGlicmFyaWVzIG1pZ2h0IHVzZSB0aGUgcHJvdG9jb2wtbGV2 ZWwgcHJlcGFyZWQKKyAgICBzdGF0ZW1lbnRzIGF1dG9tYXRpY2FsbHkgYW5kIHRodXMgd29u J3QgcmVxdWlyZSBhbnkgY29kZSBjaGFuZ2VzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICA8YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+IHByb3ZpZGVzIHRoZSBjb21t YW5kCisgICAgPGxpdGVyYWw+XGdlbmNyPC9saXRlcmFsPiB0byBydW4gcHJlcGFyZWQgc3Rh dGVtZW50cyBsaWtlIHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitJTlNFUlQgSU5UTyBzc24g KGlkLCBuYW1lLCBzc24pIFZBTFVFUyAoJDEsICQyLCAkMykgXGdlbmNyICcxJyAnU29tZW9u ZScsICcxMjM0NScKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisgIDwvc2VjdDI+ CisKKyAgPHNlY3QyPgorICAgPHRpdGxlPlNldHRpbmcgdXAgVHJhbnNwYXJlbnQgQ29sdW1u IEVuY3J5cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHN0ZXBzIHRvIHNldCB1 cCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmb3IgYSBkYXRhYmFzZSBhcmU6CisK KyAgIDxvcmRlcmVkbGlzdD4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg Q3JlYXRlIHRoZSBrZXkgbWF0ZXJpYWwgZm9yIHRoZSBDTUssIGZvciBleGFtcGxlLCB1c2lu ZyBhIGNyeXB0b2dyYXBoaWMKKyAgICAgIGxpYnJhcnkgb3IgdG9vbGtpdCwgb3IgYSBrZXkg bWFuYWdlbWVudCBzeXN0ZW0uICBTZWN1cmUgYWNjZXNzIHRvIHRoZQorICAgICAga2V5IGFz IGFwcHJvcHJpYXRlLCB1c2luZyBhY2Nlc3MgY29udHJvbCwgcGFzc3dvcmRzLCBldGMuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDTUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIHRo ZSBTUUwgY29tbWFuZCA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIt a2V5Ii8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgdGhlICh1bmVuY3J5cHRlZCkga2V5IG1h dGVyaWFsIGZvciB0aGUgQ0VLIGluIGEgdGVtcG9yYXJ5CisgICAgICBsb2NhdGlvbi4gIChJ dCB3aWxsIGJlIGVuY3J5cHRlZCBpbiB0aGUgbmV4dCBzdGVwLiAgRGVwZW5kaW5nIG9uIHRo ZQorICAgICAgYXZhaWxhYmxlIHRvb2xzLCBpdCBtaWdodCBiZSBwb3NzaWJsZSBhbmQgc2Vu c2libGUgdG8gY29tYmluZSB0aGVzZSB0d28KKyAgICAgIHN0ZXBzLikKKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgRW5jcnlwdCB0aGUgY3JlYXRlZCBDRUsga2V5IG1hdGVyaWFsIHVzaW5nIHRoZSBDTUsg KGNyZWF0ZWQgZWFybGllcikuCisgICAgICAoVGhlIHVuZW5jcnlwdGVkIHZlcnNpb24gb2Yg dGhlIENFSyBrZXkgbWF0ZXJpYWwgY2FuIG5vdyBiZSBkaXNwb3NlZAorICAgICAgb2YuKQor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ0VLIGluIHRoZSBkYXRhYmFzZSB1c2luZyB0 aGUgU1FMIGNvbW1hbmQgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LWVuY3J5cHRpb24ta2V5Ii8+LiAgVGhpcyBjb21tYW5kCisgICAgICA8cXVvdGU+dXBsb2Fk czwvcXVvdGU+IHRoZSBlbmNyeXB0ZWQgQ0VLIGtleSBtYXRlcmlhbCBjcmVhdGVkIGluIHRo ZQorICAgICAgcHJldmlvdXMgc3RlcCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLiAgVGhlIGxv Y2FsIGNvcHkgb2YgdGhlIENFSyBrZXkKKyAgICAgIG1hdGVyaWFsIGNhbiB0aGVuIGJlIHJl bW92ZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyB1c2luZyB0 aGUgY3JlYXRlZCBDRUsuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbmZpZ3VyZSB0aGUgY2xpZW50IGxp YnJhcnkvZHJpdmVyIHRvIGJlIGFibGUgdG8gbG9vayB1cCB0aGUgQ01LCisgICAgICBjcmVh dGVkIGVhcmxpZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRl cmVkbGlzdD4KKworICAgT25jZSB0aGlzIGlzIGRvbmUsIHZhbHVlcyBjYW4gYmUgd3JpdHRl biB0byBhbmQgcmVhZCBmcm9tIHRoZSBlbmNyeXB0ZWQKKyAgIGNvbHVtbnMgaW4gYSB0cmFu c3BhcmVudCB3YXkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE5vdGUgdGhhdCB0aGVz ZSBzdGVwcyBzaG91bGQgbm90IGJlIHJ1biBvbiB0aGUgZGF0YWJhc2Ugc2VydmVyLCBidXQg b24gc29tZQorICAgY2xpZW50IG1hY2hpbmUuICBOZWl0aGVyIHRoZSBDTUsgbm9yIHRoZSB1 bmVuY3J5cHRlZCBDRUsgc2hvdWxkIGV2ZXIgYXBwZWFyCisgICBvbiB0aGUgZGF0YWJhc2Ug c2VydmVyIGhvc3QuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBzcGVjaWZpYyBk ZXRhaWxzIG9mIHRoaXMgc2V0dXAgZGVwZW5kIG9uIHRoZSBkZXNpcmVkIENNSyBzdG9yYWdl CisgICBtZWNoYW5pc20va2V5IG1hbmFnZW1lbnQgc3lzdGVtIGFzIHdlbGwgYXMgdGhlIGNs aWVudCBsaWJyYXJpZXMgdG8gYmUgdXNlZC4KKyAgIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1 c2VzIHRoZSA8Y29tbWFuZD5vcGVuc3NsPC9jb21tYW5kPiBjb21tYW5kLWxpbmUgdG9vbAor ICAgdG8gc2V0IHVwIHRoZSBrZXlzLgorCisgICA8b3JkZXJlZGxpc3Q+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUga2V5IG1hdGVyaWFsIGZvciB0 aGUgQ01LIGFuZCB3cml0ZSBpdCB0byBhIGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVu c3NsIGdlbnBrZXkgLWFsZ29yaXRobSByc2EgLW91dCBjbWsxLnBlbQorPC9wcm9ncmFtbGlz dGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJhc2U6 Cis8cHJvZ3JhbWxpc3Rpbmc+Citwc3FsIC4uLiAtYyAiQ1JFQVRFIENPTFVNTiBNQVNURVIg S0VZIGNtazEgV0lUSCAocmVhbG0gPSAnJykiCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBDcmVhdGUgdGhlIHVuZW5jcnlwdGVkIENFSyBrZXkgbWF0ZXJpYWwgaW4gYSBm aWxlOgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCByYW5kIC1vdXQgY2VrMS5iaW4gMzIK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAoU2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29s LWNlay10YWJsZSIvPiBmb3IgcmVxdWlyZWQga2V5IGxlbmd0aHMuKQorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBFbmNyeXB0IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWw6Cis8cHJvZ3JhbWxpc3Rp bmc+CitvcGVuc3NsIHBrZXl1dGwgLWVuY3J5cHQgLWlua2V5IGNtazEucGVtIC1wa2V5b3B0 IHJzYV9wYWRkaW5nX21vZGU6b2FlcCAtaW4gY2VrMS5iaW4gLW91dCBjZWsxLmJpbi5lbmMK K3JtIGNlazEuYmluCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3Rl ciB0aGUgQ0VLIGluIHRoZSBkYXRhYmFzZToKKzxwcm9ncmFtbGlzdGluZz4KKyMgY29udmVy dCBmaWxlIGNvbnRlbnRzIHRvIGhleCBlbmNvZGluZzsgdGhpcyBpcyBqdXN0IG9uZSBwb3Nz aWJsZSB3YXkKK2Nla2VuY2hleD0kKHBlcmwgLTBuZSAncHJpbnQgdW5wYWNrICJIKiInIGNl azEuYmluLmVuYykKK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgZW5jcnlwdGVk X3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpIgorcm0gY2VrMS5iaW4uZW5jCis8L3Byb2dy YW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgZW5jcnlwdGVkIGNvbHVtbnMgYXMg c2hvd24gaW4gdGhlIGV4YW1wbGVzIGFib3ZlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb25maWd1cmUg dGhlIGxpYnBxIGZvciBDTUsgbG9va3VwIChzZWUgYWxzbyA8eHJlZiBsaW5rZW5kPSJsaWJw cS1jb25uZWN0LWNta2xvb2t1cCIvPik6Cis8cHJvZ3JhbWxpc3Rpbmc+CitQR0NNS0xPT0tV UD0iKj1maWxlOiRQV0QvJWsucGVtIgorZXhwb3J0IFBHQ01LTE9PS1VQCis8L3Byb2dyYW1s aXN0aW5nPgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBBZGRpdGlvbmFs bHksIGxpYnBxIHJlcXVpcmVzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVyIDx4cmVm CisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0aW9uIi8+IGJl IHNldCBpbiBvcmRlciB0byBhY3RpdmF0ZQorICAgICAgdGhlIHRyYW5zcGFyZW50IGNvbHVt biBlbmNyeXB0aW9uIGZ1bmN0aW9uYWxpdHkuICBUaGlzIHNob3VsZCBiZSBkb25lIGluCisg ICAgICB0aGUgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBhcHBsaWNhdGlvbiwgYnV0 IGFuIGVudmlyb25tZW50CisgICAgICB2YXJpYWJsZSAoPGVudmFyPlBHQ09MVU1ORU5DUllQ VElPTjwvZW52YXI+KSBpcyBhbHNvIGF2YWlsYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L29yZGVyZWRsaXN0PgorICA8L3BhcmE+CisgIDwvc2VjdDI+CisK KyAgPHNlY3QyPgorICAgPHRpdGxlPkd1aWRhbmNlIG9uIFVzaW5nIFRyYW5zcGFyZW50IENv bHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhpcyBzZWN0aW9u IGNvbnRhaW5zIHNvbWUgaW5mb3JtYXRpb24gb24gd2hlbiBpdCBpcyBvciBpcyBub3QgYXBw cm9wcmlhdGUKKyAgICB0byB1c2UgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24sIGFu ZCB3aGF0IHByZWNhdXRpb25zIG5lZWQgdG8gYmUKKyAgICB0YWtlbiB0byBtYWludGFpbiBp dHMgc2VjdXJpdHkuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluIGdlbmVyYWws IGNvbHVtbiBlbmNyeXB0aW9uIGlzIG5ldmVyIGEgcmVwbGFjZW1lbnQgZm9yIGFkZGl0aW9u YWwKKyAgICBzZWN1cml0eSBhbmQgZW5jcnlwdGlvbiB0ZWNobmlxdWVzIHN1Y2ggYXMgdHJh bnNtaXNzaW9uIGVuY3J5cHRpb24KKyAgICAoU1NML1RMUyksIHN0b3JhZ2UgZW5jcnlwdGlv biwgc3Ryb25nIGFjY2VzcyBjb250cm9sLCBhbmQgcGFzc3dvcmQKKyAgICBzZWN1cml0eS4g IENvbHVtbiBlbmNyeXB0aW9uIG9ubHkgdGFyZ2V0cyBzcGVjaWZpYyB1c2UgY2FzZXMgYW5k IHNob3VsZCBiZQorICAgIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhZGRpdGlvbmFsIHNl Y3VyaXR5IG1lYXN1cmVzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBIHR5cGlj YWwgdXNlIGNhc2UgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGlzIHRvIGVuY3J5cHQgc3BlY2lm aWMgdmFsdWVzCisgICAgd2l0aCBhZGRpdGlvbmFsIHNlY3VyaXR5IHJlcXVpcmVtZW50cywg Zm9yIGV4YW1wbGUgY3JlZGl0IGNhcmQgbnVtYmVycy4KKyAgICBUaGlzIHdvdWxkIGFsbG93 IHlvdSB0byBzdG9yZSB0aGF0IHNlY3VyaXR5LXNlbnNpdGl2ZSBkYXRhIHRvZ2V0aGVyIHdp dGgKKyAgICB0aGUgcmVzdCBvZiB5b3VyIGRhdGEgKHRodXMgZ2V0dGluZyB2YXJpb3VzIGJl bmVmaXRzLCBzdWNoIGFzIHJlZmVyZW50aWFsCisgICAgaW50ZWdyaXR5LCBjb25zaXN0ZW50 IGJhY2t1cHMpLCB3aGlsZSBnaXZpbmcgYWNjZXNzIHRvIHRoYXQgZGF0YSBvbmx5IHRvCisg ICAgc3BlY2lmaWMgY2xpZW50cyBhbmQgcHJldmVudGluZyBhY2NpZGVudGFsIGxlYWthZ2Ug b24gdGhlIHNlcnZlciBzaWRlCisgICAgKHNlcnZlciBsb2dzLCBmaWxlIHN5c3RlbSBiYWNr dXBzLCBldGMuKS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ29sdW1uIGVuY3J5 cHRpb24gY2Fubm90IGhpZGUgdGhlIGV4aXN0ZW5jZSBvciBhYnNlbmNlIG9mIGRhdGEsIGl0 IGNhbgorICAgIG9ubHkgZGlzZ3Vpc2UgdGhlIHBhcnRpY3VsYXIgZGF0YSB0aGF0IGlzIGtu b3duIHRvIGV4aXN0LiAgRm9yIGV4YW1wbGUsCisgICAgc3RvcmluZyBhIGNsZWFydGV4dCBw ZXJzb24gbmFtZSBhbmQgYW4gZW5jcnlwdGVkIGNyZWRpdCBjYXJkIG51bWJlcgorICAgIGlu ZGljYXRlcyB0aGF0IHRoZSBwZXJzb24gaGFzIGEgY3JlZGl0IGNhcmQuICBUaGF0IG1pZ2h0 IG5vdCByZXZlYWwgdG9vCisgICAgbXVjaCBpZiB0aGUgZGF0YWJhc2UgaXMgZm9yIGFuIG9u bGluZSBzdG9yZSBhbmQgdGhlcmUgaXMgb3RoZXIgZGF0YSBuZWFyYnkKKyAgICB0aGF0IHNo b3dzIHRoYXQgdGhlIHBlcnNvbiBoYXMgcmVjZW50bHkgbWFkZSBwdXJjaGFzZXMuICBCdXQg aW4gYW5vdGhlcgorICAgIGV4YW1wbGUsIHN0b3JpbmcgYSBjbGVhcnRleHQgcGVyc29uIG5h bWUgYW5kIGFuIGVuY3J5cHRlZCBkaWFnbm9zaXMgaW4gYQorICAgIG1lZGljYWwgZGF0YWJh c2UgcHJvYmFibHkgaW5kaWNhdGVzIHRoYXQgdGhlIHBlcnNvbiBoYXMgYSBtZWRpY2FsIGlz c3VlLgorICAgIERlcGVuZGluZyBvbiB0aGUgY2lyY3Vtc3RhbmNlcywgdGhhdCBtaWdodCBu b3QgYnkgaXRzZWxmIGJlIHN1ZmZpY2llbnQKKyAgICBzZWN1cml0eS4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgRW5jcnlwdGlvbiBjYW5ub3QgY29tcGxldGVseSBoaWRlIHRo ZSBsZW5ndGggb2YgdmFsdWVzLiAgVGhlIGVuY3J5cHRpb24KKyAgICBtZXRob2RzIHdpbGwg cGFkIHZhbHVlcyB0byBtdWx0aXBsZXMgb2YgdGhlIHVuZGVybHlpbmcgY2lwaGVyJ3MgYmxv Y2sgc2l6ZQorICAgICh1c3VhbGx5IDE2IGJ5dGVzKSwgc28gc29tZSBsZW5ndGggZGlmZmVy ZW5jZXMgd2lsbCBiZSB1bmlmaWVkIHRoaXMgd2F5LgorICAgIFRoZXJlIGlzIG5vIGNvbmNl cm4gaWYgYWxsIHZhbHVlcyBhcmUgb2YgdGhlIHNhbWUgbGVuZ3RoIChlLmcuLCBjcmVkaXQK KyAgICBjYXJkIG51bWJlcnMpLiAgQnV0IGlmIHRoZXJlIGFyZSBzaWduZmljYW50IGxlbmd0 aCBkaWZmZXJlbmNlcyBiZXR3ZWVuCisgICAgdmFsaWQgdmFsdWVzIGFuZCB0aGF0IGxlbmd0 aCBpbmZvcm1hdGlvbiBpcyBzZWN1cml0eS1zZW5zaXRpdmUsIHRoZW4KKyAgICBhcHBsaWNh dGlvbi1zcGVjaWZpYyB3b3JrYXJvdW5kcyBzdWNoIGFzIHBhZGRpbmcgd291bGQgbmVlZCB0 byBiZSBhcHBsaWVkLgorICAgIEhvdyB0byBkbyB0aGF0IHNlY3VyZWx5IGlzIGJleW9uZCB0 aGUgc2NvcGUgb2YgdGhpcyBtYW51YWwuCisgICA8L3BhcmE+CisKKyAgIDxub3RlPgorICAg IDxwYXJhPgorICAgICBTdG9yaW5nIGRhdGEgc3VjaCBjcmVkaXQgY2FyZCBkYXRhLCBtZWRp Y2FsIGRhdGEsIGFuZCBzbyBpcyB1c3VhbGx5CisgICAgIHN1YmplY3QgdG8gZ292ZXJubWVu dCBvciBpbmR1c3RyeSByZWd1bGF0aW9ucy4gIFRoaXMgc2VjdGlvbiBpcyBub3QgbWVhbnQK KyAgICAgdG8gcHJvdmlkZSBjb21wbGV0ZSBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGRvIHRo aXMgY29ycmVjdGx5LiAgUGxlYXNlCisgICAgIHNlZWsgYWRkaXRpb25hbCBhZHZpY2Ugd2hl biBlbmdhZ2luZyBpbiBzdWNoIHByb2plY3RzLgorICAgIDwvcGFyYT4KKyAgIDwvbm90ZT4K KyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVtLWNvbHVt bnMiPgogICA8dGl0bGU+U3lzdGVtIENvbHVtbnM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21s CmluZGV4IGQ2ZDBhM2E4MTQwYy4uMTA1MDdlNDM5MTFlIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApA QCAtMzUzLDYgKzM1MywyOSBAQCA8dGl0bGU+R2xvc3Nhcnk8L3RpdGxlPgogICAgPC9nbG9z c2RlZj4KICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4gZW5jcnlwdGlv biBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBj cnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIHZhbHVlcyB3aGVuIHVz aW5nIHRyYW5zcGFyZW50CisgICAgIGNvbHVtbiBlbmNyeXB0aW9uLiAgQ29sdW1uIGVuY3J5 cHRpb24ga2V5cyBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZQorICAgICBlbmNyeXB0ZWQg YnkgYW5vdGhlciBrZXksIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICA8L3BhcmE+Cisg ICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKKyAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgIDxnbG9zc3Rlcm0+Q29sdW1uIG1hc3Rl ciBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBj cnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIGVuY3J5cHRpb24ga2V5 cy4gIChTbyB0aGUKKyAgICAgY29sdW1uIG1hc3RlciBrZXkgaXMgYSA8Zmlyc3R0ZXJtPmtl eSBlbmNyeXB0aW9uIGtleTwvZmlyc3R0ZXJtPi4pCisgICAgIENvbHVtbiBtYXN0ZXIga2V5 cyBhcmUgc3RvcmVkIG91dHNpZGUgdGhlIGRhdGFiYXNlIHN5c3RlbSwgZm9yIGV4YW1wbGUg aW4KKyAgICAgYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAgPC9wYXJhPgorICAgPC9n bG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2Fy eS1jb21taXQiPgogICAgPGdsb3NzdGVybT5Db21taXQ8L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9z Z21sL2xpYnBxLnNnbWwKaW5kZXggNTdiZmM4ZmM3MTRkLi4xMDc2ZDQ2NjQwNzkgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJw cS5zZ21sCkBAIC0xOTY0LDYgKzE5NjQsMTIzIEBAIDx0aXRsZT5QYXJhbWV0ZXIgS2V5IFdv cmRzPC90aXRsZT4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1jb25uZWN0 LWNvbHVtbi1lbmNyeXB0aW9uIiB4cmVmbGFiZWw9ImNvbHVtbl9lbmNyeXB0aW9uIj4KKyAg ICAgIDx0ZXJtPjxsaXRlcmFsPmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgc2V0IHRvIDEs IHRoaXMgZW5hYmxlcyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmb3IgdGhlCisg ICAgICAgIGNvbm5lY3Rpb24uICBJZiBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgcXVlcmllZCBh bmQgdGhpcyBpcyBub3QgZW5hYmxlZCwKKyAgICAgICAgdGhlIGVuY3J5cHRlZCB2YWx1ZSBp cyByZXR1cm5lZC4gIFNlZSA8eHJlZgorICAgICAgICBsaW5rZW5kPSJkZGwtY29sdW1uLWVu Y3J5cHRpb24iLz4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcworICAgICAgICBm ZWF0dXJlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtY21r bG9va3VwIiB4cmVmbGFiZWw9ImNta2xvb2t1cCI+CisgICAgICA8dGVybT48bGl0ZXJhbD5j bWtsb29rdXA8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGlzIHNwZWNpZmllcyBob3cgbGlicHEgc2hvdWxkIGxvb2sgdXAg Y29sdW1uIG1hc3RlciBrZXlzIChDTUtzKSBpbgorICAgICAgICBvcmRlciB0byBkZWNyeXB0 IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIChDRUtzKS4KKyAgICAgICAgVGhlIHZhbHVl IGlzIGEgbGlzdCBvZiA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IGVudHJpZXMgc2Vw YXJhdGVkCisgICAgICAgIGJ5IHNlbWljb2xvbnMuICBFYWNoIGtleSBpcyB0aGUgbmFtZSBv ZiBhIGtleSByZWFsbSwgb3IKKyAgICAgICAgPGxpdGVyYWw+KjwvbGl0ZXJhbD4gdG8gbWF0 Y2ggYWxsIHJlYWxtcy4gIFRoZSB2YWx1ZSBpcyBhCisgICAgICAgIDxsaXRlcmFsPnNjaGVt ZTpkYXRhPC9saXRlcmFsPiBzcGVjaWZpY2F0aW9uLiAgVGhlIHNjaGVtZSBzcGVjaWZpZXMK KyAgICAgICAgdGhlIG1ldGhvZCB0byBsb29rIHVwIHRoZSBrZXksIHRoZSByZW1haW5pbmcg ZGF0YSBpcyBzcGVjaWZpYyB0byB0aGUKKyAgICAgICAgc2NoZW1lLiAgUGxhY2Vob2xkZXJz IGFyZSByZXBsYWNlZCBpbiB0aGUgcmVtYWluaW5nIGRhdGEgYXMgZm9sbG93czoKKworICAg ICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAg ICA8dGVybT48bGl0ZXJhbD4lYTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBDTUsgYWxnb3JpdGht IG5hbWUgKHNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jbWstdGFibGUiLz4pCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+ PGxpdGVyYWw+JWI8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgZW5jcnlwdGVkIENFSyBkYXRhIGlu IEJhc2U2NCBlbmNvZGluZyAob25seSBmb3IgdGhlIDxsaXRlcmFsPnJ1bjwvbGl0ZXJhbD4g c2NoZW1lKQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVrPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENNSyBrZXkg bmFtZQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg ICAgIDx0ZXJtPjxsaXRlcmFsPiVyPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIHJlYWxtIG5hbWUK KyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEF2YWlsYWJsZSBzY2hlbWVzIGFyZToKKyAg ICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAg ICAgPHRlcm0+PGxpdGVyYWw+ZmlsZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIExvYWQgdGhlIGtleSBt YXRlcmlhbCBmcm9tIGEgZmlsZS4gIFRoZSByZW1haW5pbmcgZGF0YSBpcyB0aGUgZmlsZQor ICAgICAgICAgICAgbmFtZS4gIFVzZSB0aGlzIGlmIHRoZSBDTUtzIGFyZSBrZXB0IGluIGEg ZmlsZSBvbiB0aGUgZmlsZSBzeXN0ZW0uCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+cnVuPC9saXRlcmFsPjwv dGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAg ICAgICAgUnVuIHRoZSBzcGVjaWZpZWQgY29tbWFuZCB0byBkZWNyeXB0IHRoZSBDRUsuICBU aGUgcmVtYWluaW5nIGRhdGEKKyAgICAgICAgICAgIGlzIGEgc2hlbGwgY29tbWFuZC4gIFVz ZSB0aGlzIHdpdGgga2V5IG1hbmFnZW1lbnQgc3lzdGVtcyB0aGF0CisgICAgICAgICAgICBw ZXJmb3JtIHRoZSBkZWNyeXB0aW9uIHRoZW1zZWx2ZXMuICBUaGUgY29tbWFuZCBtdXN0IHBy aW50IHRoZQorICAgICAgICAgICAgZGVjcnlwdGVkIHBsYWludGV4dCBpbiBCYXNlNjQgZm9y bWF0IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwv dmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAg ICA8cGFyYT4KKyAgICAgICAgRXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK2Nta2xvb2t1 cD0icjE9ZmlsZTovc29tZS93aGVyZS9zZWNyZXRzLyVrLnBlbTsqPWZpbGU6L2Vsc2Uvd2hl cmUvJXIvJWsucGVtIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgVGhpcyBzcGVjaWZp Y2F0aW9uIHNheXMsIGZvciBrZXlzIGluIHJlYWxtIDxxdW90ZT5yMTwvcXVvdGU+LCBsb2Fk CisgICAgICAgIHRoZW0gZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUsIHJlcGxhY2luZyA8bGl0 ZXJhbD4lazwvbGl0ZXJhbD4gYnkgdGhlCisgICAgICAgIGtleSBuYW1lLiAgRm9yIGtleXMg aW4gb3RoZXIgcmVhbG1zLCBsb2FkIHRoZW0gZnJvbSB0aGUgZmlsZSwKKyAgICAgICAgcmVw bGFjaW5nIHJlYWxtIGFuZCBrZXkgbmFtZXMgYXMgc3BlY2lmaWVkLgorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBBbiBleGFtcGxlIGZvciBpbnRlcmFjdGlu ZyB3aXRoIGEgKGh5cG90aGV0aWNhbCkga2V5IG1hbmFnZW1lbnQKKyAgICAgICAgc3lzdGVt OgorPHByb2dyYW1saXN0aW5nPgorY21rbG9va3VwPSIqPXJ1bjphY21la21zIGRlY3J5cHQg LS1rZXkgJWsgLS1hbGcgJWEgLS1ibG9iICclYiciCis8L3Byb2dyYW1saXN0aW5nPgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgog ICAgIDwvdmFyaWFibGVsaXN0PgogICAgPC9wYXJhPgogICA8L3NlY3QyPgpAQCAtMzAxMiw2 ICszMTI5LDU3IEBAIDx0aXRsZT5NYWluIEZ1bmN0aW9uczwvdGl0bGU+CiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlk PSJsaWJwcS1QUWV4ZWNQcmVwYXJlZDIiPgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZXhl Y1ByZXBhcmVkMjwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWV4ZWNQcmVwYXJl ZDI8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIFNlbmRzIGEgcmVxdWVzdCB0byBleGVjdXRlIGEgcHJl cGFyZWQgc3RhdGVtZW50IHdpdGggZ2l2ZW4KKyAgICAgICAgcGFyYW1ldGVycywgYW5kIHdh aXRzIGZvciB0aGUgcmVzdWx0LCB3aXRoIHN1cHBvcnQgZm9yIGVuY3J5cHRlZCBjb2x1bW5z LgorPHN5bm9wc2lzPgorUEdyZXN1bHQgKlBRZXhlY1ByZXBhcmVkMihQR2Nvbm4gKmNvbm4s CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpwYXJhbVZhbHVlcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7Cis8L3N5bm9wc2lzPgorICAg ICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUWV4ZWNQcmVwYXJlZDIiLz4gaXMgbGlrZSA8eHJlZgorICAgICAgICBsaW5rZW5k PSJsaWJwcS1QUWV4ZWNQcmVwYXJlZCIvPiB3aXRoIGFkZGl0aW9uYWwgc3VwcG9ydCBmb3Ig ZW5jcnlwdGVkCisgICAgICAgIGNvbHVtbnMuICBUaGUgcGFyYW1ldGVyIDxwYXJhbWV0ZXI+ cGFyYW1EZXNjPC9wYXJhbWV0ZXI+IG11c3QgYmUgYQorICAgICAgICByZXN1bHQgc2V0IG9i dGFpbmVkIGZyb20gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+ IG9uCisgICAgICAgIHRoZSBzYW1lIHByZXBhcmVkIHN0YXRlbWVudC4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVz ZWQgaWYgYSBzdGF0ZW1lbnQgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvIGFuCisgICAgICAg IHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQgc2l0dWF0aW9uLCB0aGUg cHJlcGFyZWQKKyAgICAgICAgc3RhdGVtZW50IG5lZWRzIHRvIGJlIGRlc2NyaWJlZCBmaXJz dCBzbyB0aGF0IGxpYnBxIGNhbiBvYnRhaW4gdGhlCisgICAgICAgIG5lY2Vzc2FyeSBrZXkg YW5kIG90aGVyIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci4gIFdoZW4gdGhhdCBpcwor ICAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRl ZCBjb2x1bW5zIGFyZQorICAgICAgICBhdXRvbWF0aWNhbGx5IGVuY3J5cHRlZCBhcHByb3By aWF0ZWx5IGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIuCisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5w YXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnM8L3BhcmFtZXRlcj4KKyAgICAgICAgc3BlY2lm aWVzIHdoZXRoZXIgZW5jcnlwdGlvbiBzaG91bGQgYmUgZm9yY2VkIGZvciBhIHBhcmFtZXRl ci4gIElmCisgICAgICAgIGVuY3J5cHRpb24gaXMgZm9yY2VkIGZvciBhIHBhcmFtZXRlciBi dXQgaXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbgorICAgICAgICBlbmNyeXB0ZWQgY29s dW1uIG9uIHRoZSBzZXJ2ZXIsIHRoZW4gdGhlIGNhbGwgd2lsbCBmYWlsIGFuZCB0aGUKKyAg ICAgICAgcGFyYW1ldGVyIHdpbGwgbm90IGJlIHNlbnQuICBUaGlzIGNhbiBiZSB1c2VkIGZv ciBhZGRpdGlvbmFsIHNlY3VyaXR5CisgICAgICAgIGFnYWluc3QgYSBjb21wcmltaXNlZCBz ZXJ2ZXIuICAoVGhlIGRyYXdiYWNrIGlzIHRoYXQgYXBwbGljYXRpb24gY29kZQorICAgICAg ICB0aGVuIG5lZWRzIHRvIGJlIGtlcHQgdXAgdG8gZGF0ZSB3aXRoIGtub3dsZWRnZSBhYm91 dCB3aGljaCBjb2x1bW5zCisgICAgICAgIGFyZSBlbmNyeXB0ZWQgcmF0aGVyIHRoYW4gbGV0 dGluZyB0aGUgc2VydmVyIHNwZWNpZnkgdGhpcy4pICBJZiB0aGUKKyAgICAgICAgYXJyYXkg cG9pbnRlciBpcyBudWxsIHRoZW4gZW5jcnlwdGlvbiBpcyBub3QgZm9yY2VkIGZvciBhbnkg cGFyYW1ldGVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZGVzY3Jp YmVQcmVwYXJlZCI+CiAgICAgICA8dGVybT48ZnVuY3Rpb24+UFFkZXNjcmliZVByZXBhcmVk PC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZGVzY3JpYmVQcmVwYXJlZDwvcHJp bWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTM4NjIsNiArNDAzMCwyOCBAQCA8dGl0 bGU+UmV0cmlldmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgogICAgICA8 L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBp ZD0ibGlicHEtUFFmaXNlbmNyeXB0ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFmaXNl bmNyeXB0ZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFmaXNlbmNyeXB0ZWQ8 L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBnaXZl biBjb2x1bW4gY2FtZSBmcm9tIGFuIGVuY3J5cHRlZAorICAgICAgIGNvbHVtbi4gIENvbHVt biBudW1iZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQgUFFmaXNlbmNyeXB0ZWQo Y29uc3QgUEdyZXN1bHQgKnJlcywKKyAgICAgICAgICAgICAgICAgICBpbnQgY29sdW1uX251 bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAg ICAgICBFbmNyeXB0ZWQgY29sdW1uIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBkZWNyeXB0 ZWQsIHNvIHRoaXMgZnVuY3Rpb24KKyAgICAgICBpcyBub3QgbmVjZXNzYXJ5IHRvIGFjY2Vz cyB0aGUgY29sdW1uIHZhbHVlLiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4dHJhCisgICAgICAg c2VjdXJpdHkgdG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUgd2FzIHN0b3JlZCBlbmNyeXB0 ZWQgd2hlbiBvbmUKKyAgICAgICB0aG91Z2h0IGl0IHNob3VsZCBiZS4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJs aXN0ZW50cnkgaWQ9ImxpYnBxLVBRZnNpemUiPgogICAgICA8dGVybT48ZnVuY3Rpb24+UFFm c2l6ZTwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWZzaXplPC9wcmltYXJ5Pjwv aW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDAzNywxMiArNDIyNywzNyBAQCA8dGl0bGU+UmV0 cmlldmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgogCiAgICAgICA8cGFy YT4KICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgdXNlZnVsIHdoZW4gaW5zcGVjdGlu ZyB0aGUgcmVzdWx0IG9mCi0gICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmli ZVByZXBhcmVkIi8+LiAgRm9yIG90aGVyIHR5cGVzIG9mIHF1ZXJpZXMgaXQKKyAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4uICBGb3Igb3RoZXIg dHlwZXMgb2YgcmVzdWx0cyBpdAogICAgICAgIHdpbGwgcmV0dXJuIHplcm8uCiAgICAgICA8 L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8 dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXBhcmFtaXNlbmNyeXB0ZWQiPgorICAgICA8dGVy bT48ZnVuY3Rpb24+UFFwYXJhbWlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxw cmltYXJ5PlBRcGFyYW1pc2VuY3J5cHRlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+ CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUmV0dXJucyB3aGV0 aGVyIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlciBpcyBkZXN0aW5lZCBmb3Ig YW4KKyAgICAgICBlbmNyeXB0ZWQgY29sdW1uLiAgUGFyYW1ldGVyIG51bWJlcnMgc3RhcnQg YXQgMC4KKzxzeW5vcHNpcz4KK2ludCBQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1 bHQgKnJlcywgaW50IHBhcmFtX251bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJh PgorCisgICAgICA8cGFyYT4KKyAgICAgICBWYWx1ZXMgZm9yIHBhcmFtZXRlcnMgZGVzdGlu ZWQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSBhdXRvbWF0aWNhbGx5CisgICAgICAgZW5j cnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBuZWNlc3NhcnkgdG8gcHJlcGFyZSB0 aGUgcGFyYW1ldGVyCisgICAgICAgdmFsdWUuICBJdCBjYW4gYmUgdXNlZCBmb3IgZXh0cmEg c2VjdXJpdHkgdG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUKKyAgICAgICB3aWxsIGJlIHN0 b3JlZCBlbmNyeXB0ZWQgd2hlbiBvbmUgdGhvdWdodCBpdCBzaG91bGQgYmUuICAoQnV0IHNl ZSBhbHNvCisgICAgICAgYXQgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQy Ii8+IGZvciBhbm90aGVyIHdheSB0byBkbyB0aGF0LikKKyAgICAgICBUaGlzIGZ1bmN0aW9u IGlzIG9ubHkgdXNlZnVsIHdoZW4gaW5zcGVjdGluZyB0aGUgcmVzdWx0IG9mIDx4cmVmCisg ICAgICAgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+LiAgRm9yIG90aGVy IHR5cGVzIG9mIHJlc3VsdHMgaXQKKyAgICAgICB3aWxsIHJldHVybiBmYWxzZS4KKyAgICAg IDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRcHJpbnQiPgogICAgICA8dGVybT48ZnVuY3Rp b24+UFFwcmludDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXByaW50PC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDU2OCw2ICs0NzgzLDcgQEAgPHRpdGxl PkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5k UXVlcnlQcmVwYXJlZCIvPiwKKyAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5 UHJlcGFyZWQyIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQ cmVwYXJlZCIvPiwgYW5kCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmli ZVBvcnRhbCIvPiwKICAgIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggPHhyZWYgbGlua2VuZD0i bGlicHEtUFFnZXRSZXN1bHQiLz4gdG8gZHVwbGljYXRlCkBAIC00NTc1LDYgKzQ3OTEsNyBA QCA8dGl0bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXByZXBhcmUiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQ cmVwYXJlZCIvPiwKKyAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiIv PiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiwgYW5k CiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUG9ydGFsIi8+CiAgICByZXNw ZWN0aXZlbHkuCkBAIC00Njg1LDYgKzQ5MDIsNDYgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBD b21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZW5kUXVlcnlQ cmVwYXJlZDIiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZW5kUXVlcnlQcmVwYXJlZDI8 L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFzZW5kUXVlcnlQcmVwYXJlZDI8L3By aW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFNlbmRzIGEgcmVxdWVzdCB0byBleGVjdXRlIGEgcHJlcGFyZWQgc3Rh dGVtZW50IHdpdGggZ2l2ZW4KKyAgICAgICBwYXJhbWV0ZXJzLCB3aXRob3V0IHdhaXRpbmcg Zm9yIHRoZSByZXN1bHQocyksIHdpdGggc3VwcG9ydCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMu Cis8c3lub3BzaXM+CitpbnQgUFFzZW5kUXVlcnlQcmVwYXJlZDIoUEdjb25uICpjb25uLAor ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBuUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKKzwvc3lub3BzaXM+CisgICAgICA8L3BhcmE+ CisKKyAgICAgIDxwYXJhPgorICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1 ZXJ5UHJlcGFyZWQyIi8+IGlzIGxpa2UgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1Q UXNlbmRRdWVyeVByZXBhcmVkIi8+IHdpdGggYWRkaXRpb25hbCBzdXBwb3J0IGZvciBlbmNy eXB0ZWQKKyAgICAgICBjb2x1bW5zLiAgVGhlIHBhcmFtZXRlciA8cGFyYW1ldGVyPnBhcmFt RGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJlIGEKKyAgICAgICByZXN1bHQgc2V0IG9idGFpbmVk IGZyb20gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiBv bgorICAgICAgIHRoZSBzYW1lIHByZXBhcmVkIHN0YXRlbWVudC4KKyAgICAgIDwvcGFyYT4K KworICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVzZWQgaWYg YSBzdGF0ZW1lbnQgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvIGFuCisgICAgICAgdW5kZXJs eWluZyBlbmNyeXB0ZWQgY29sdW1uLiAgSW4gdGhhdCBzaXR1YXRpb24sIHRoZSBwcmVwYXJl ZAorICAgICAgIHN0YXRlbWVudCBuZWVkcyB0byBiZSBkZXNjcmliZWQgZmlyc3Qgc28gdGhh dCBsaWJwcSBjYW4gb2J0YWluIHRoZQorICAgICAgIG5lY2Vzc2FyeSBrZXkgYW5kIG90aGVy IGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci4gIFdoZW4gdGhhdCBpcworICAgICAgIGRv bmUsIHRoZSBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMg YXJlCisgICAgICAgYXV0b21hdGljYWxseSBlbmNyeXB0ZWQgYXBwcm9wcmlhdGVseSBiZWZv cmUgYmVpbmcgc2VudCB0byB0aGUgc2VydmVyLgorICAgICAgIFNlZSBhbHNvIHVuZGVyIDx4 cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiIvPi4KKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0 ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiPgogICAgICA8dGVybT48 ZnVuY3Rpb24+UFFzZW5kRGVzY3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48 cHJpbWFyeT5QUXNlbmREZXNjcmliZVByZXBhcmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwv dGVybT4KIApAQCAtNDczNSw2ICs0OTkyLDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21t YW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBR c2VuZFF1ZXJ5UGFyYW1zIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2Vu ZFByZXBhcmUiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQ cmVwYXJlZCIvPiwKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBy ZXBhcmVkMiIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmli ZVByZXBhcmVkIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2Ny aWJlUG9ydGFsIi8+LCBvcgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRcGlwZWxp bmVTeW5jIi8+CkBAIC03NzY3LDYgKzgwMjUsMjYgQEAgPHRpdGxlPkVudmlyb25tZW50IFZh cmlhYmxlczwvdGl0bGU+CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHBy aW1hcnk+PGVudmFyPlBHQ01LTE9PS1VQPC9lbnZhcj48L3ByaW1hcnk+CisgICAgICA8L2lu ZGV4dGVybT4KKyAgICAgIDxlbnZhcj5QR0NNS0xPT0tVUDwvZW52YXI+IGJlaGF2ZXMgdGhl IHNhbWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNta2xv b2t1cCIvPiBjb25uZWN0aW9uIHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVy bT4KKyAgICAgICA8cHJpbWFyeT48ZW52YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj48 L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDxlbnZhcj5QR0NPTFVNTkVO Q1JZUFRJT048L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAg bGlua2VuZD0ibGlicHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBjb25uZWN0aW9u IHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwK aW5kZXggNzVjYWE3ZmRiNjc5Li42YWE2NjA1OGQzMDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCkBA IC0xMTA4LDYgKzExMDgsNjggQEAgPHRpdGxlPlBpcGVsaW5pbmc8L3RpdGxlPgogICAgPC9w YXJhPgogICA8L3NlY3QyPgogCisgIDxzZWN0MiBpZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQt Y29sdW1uLWVuY3J5cHRpb24tZmxvdyI+CisgICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1u IEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUcmFuc3BhcmVudCBjb2x1 bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkIGJ5IHNlbmRpbmcgdGhlIHBhcmFtZXRlcgorICAg IDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IHdpdGggYSB2YWx1 ZSBvZgorICAgIDxsaXRlcmFsPjE8L2xpdGVyYWw+IGluIHRoZSBTdGFydHVwTWVzc2FnZS4g IFRoaXMgaXMgYSBwcm90b2NvbCBleHRlbnNpb24KKyAgICB0aGF0IGVuYWJsZXMgYSBmZXcg YWRkaXRpb25hbCBwcm90b2NvbCBtZXNzYWdlcyBhbmQgYWRkcyBhZGRpdGlvbmFsIGZpZWxk cworICAgIHRvIGV4aXN0aW5nIHByb3RvY29sIG1lc3NhZ2VzLiAgQ2xpZW50IGRyaXZlcnMg c2hvdWxkIG9ubHkgYWN0aXZhdGUgdGhpcworICAgIHByb3RvY29sIGV4dGVuc2lvbiB3aGVu IHJlcXVlc3RlZCBieSB0aGUgdXNlciwgZm9yIGV4YW1wbGUgdGhyb3VnaCBhCisgICAgY29u bmVjdGlvbiBwYXJhbWV0ZXIuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4g dHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIG1lc3NhZ2Vz CisgICAgQ29sdW1uTWFzdGVyS2V5IGFuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IGNhbiBhcHBl YXIgYmVmb3JlIFJvd0Rlc2NyaXB0aW9uCisgICAgYW5kIFBhcmFtZXRlckRlc2NyaXB0aW9u IG1lc3NhZ2VzLiAgQ2xpZW50cyBzaG91bGQgY29sbGVjdCB0aGUgaW5mb3JtYXRpb24KKyAg ICBpbiB0aGVzZSBtZXNzYWdlcyBhbmQga2VlcCB0aGVtIGZvciB0aGUgZHVyYXRpb24gb2Yg dGhlIGNvbm5lY3Rpb24uICBBCisgICAgc2VydmVyIGlzIG5vdCByZXF1aXJlZCB0byByZXNl bmQgdGhlIGtleSBpbmZvcm1hdGlvbiBmb3IgZWFjaCBzdGF0ZW1lbnQKKyAgICBjeWNsZSBp ZiBpdCB3YXMgYWxyZWFkeSBzZW50IGR1cmluZyB0aGlzIGNvbm5lY3Rpb24uICBJZiBhIHNl cnZlciByZXNlbmRzCisgICAgYSBrZXkgdGhhdCB0aGUgY2xpZW50IGhhcyBhbHJlYWR5IHN0 b3JlZCAodGhhdCBpcywgYSBrZXkgaGF2aW5nIGFuIElECisgICAgZXF1YWwgdG8gb25lIGFs cmVhZHkgc3RvcmVkKSwgdGhlIG5ldyBpbmZvcm1hdGlvbiBzaG91bGQgcmVwbGFjZSB0aGUg b2xkLgorICAgIChUaGlzIGNvdWxkIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBrZXkg d2FzIGFsdGVyZWQgYnkgc2VydmVyLXNpZGUgRERMCisgICAgY29tbWFuZHMuKQorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBBIGNsaWVudCBzdXBwb3J0aW5nIHRyYW5zcGFyZW50 IGNvbHVtbiBlbmNyeXB0aW9uIHNob3VsZCBhdXRvbWF0aWNhbGx5CisgICAgZGVjcnlwdCB0 aGUgY29sdW1uIHZhbHVlIGZpZWxkcyBvZiBEYXRhUm93IG1lc3NhZ2VzIGNvcnJlc3BvbmRp bmcgdG8KKyAgICBlbmNyeXB0ZWQgY29sdW1ucywgYW5kIGl0IHNob3VsZCBhdXRvbWF0aWNh bGx5IGVuY3J5cHQgdGhlIHBhcmFtZXRlciB2YWx1ZQorICAgIGZpZWxkcyBvZiBCaW5kIG1l c3NhZ2VzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMuCisgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIFdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgdXNlZCwgdGhl IHBsYWludGV4dCBpcyBhbHdheXMgaW4gdGV4dCBmb3JtYXQKKyAgICAobm90IGJpbmFyeSBm b3JtYXQpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIGRldGVybWluaXN0 aWMgZW5jcnlwdGlvbiBpcyB1c2VkLCBjbGllbnRzIG5lZWQgdG8gdGFrZSBjYXJlIHRvCisg ICAgcmVwcmVzZW50IHBsYWludGV4dCB0byBiZSBlbmNyeXB0ZWQgaW4gYSBjb25zaXN0ZW50 IGZvcm0uICBGb3IgZXhhbXBsZSwKKyAgICBlbmNyeXB0aW5nIGFuIGludGVnZXIgcmVwcmVz ZW50ZWQgYnkgdGhlIHN0cmluZyA8bGl0ZXJhbD4xMDA8L2xpdGVyYWw+IGFuZAorICAgIGFu IGludGVnZXIgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyA8bGl0ZXJhbD4rMTAwPC9saXRl cmFsPiB3b3VsZCByZXN1bHQKKyAgICBpbiB0d28gZGlmZmVyZW50IGNpcGhlcnRleHRzLCB0 aHVzIGRlZmVhdGluZyB0aGUgbWFpbiBwb2ludCBvZgorICAgIGRldGVybWluaXN0aWMgZW5j cnlwdGlvbi4gIFRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGUKKyAg ICBwbGFpbnRleHQgdG8gYmUgaW4gPHF1b3RlPmNhbm9uaWNhbDwvcXVvdGU+IGZvcm0sIHdo aWNoIGlzIHRoZSBmb3JtIHRoYXQKKyAgICBpcyBwcm9kdWNlZCBieSB0aGUgc2VydmVyIHdo ZW4gaXQgb3V0cHV0cyBhIHBhcnRpY3VsYXIgdmFsdWUgaW4gdGV4dAorICAgIGZvcm1hdC4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiB0cmFuc3BhcmVudCBjb2x1bW4g ZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGUgY2xpZW50IGVuY29kaW5nIG11c3QKKyAgICBt YXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLiAgVGhpcyBlbnN1cmVzIHRoYXQgYWxsIHZhbHVl cyBlbmNyeXB0ZWQgb3IKKyAgICBkZWNyeXB0ZWQgYnkgdGhlIGNsaWVudCBtYXRjaCB0aGUg c2VydmVyIGVuY29kaW5nLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgY3J5 cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgZm9yIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNy eXB0aW9uIGFyZQorICAgIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC10 cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iLz4uCisgICA8L3BhcmE+Cisg IDwvc2VjdDI+CisKICAgPHNlY3QyPgogICAgPHRpdGxlPkZ1bmN0aW9uIENhbGw8L3RpdGxl PgogCkBAIC00MDU1LDYgKzQxMTcsMTQwIEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3Rp dGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbkVuY3J5cHRpb25L ZXkiPgorICAgIDx0ZXJtPkNvbHVtbkVuY3J5cHRpb25LZXkgKEIpPC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBw ZWFyIGlmIHRoZSBwcm90b2NvbCBleHRlbnNpb24KKyAgICAgIDxsaXRlcmFsPl9wcV8uY29s dW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzIGVuYWJsZWQuICAoU2VlIDx4cmVmCisgICAg ICBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93 Ii8+LikKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUxKCdZJyk8L3Rlcm0+CisgICAgICAgPGxp c3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3Nh Z2UgYXMgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29u dGVudHMgaW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlm aWVyIG9mIHRoZSBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAg PHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBtYXN0ZXIga2V5IHVzZWQgdG8gZW5j cnlwdCB0aGlzIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8 dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGVuY3J5 cHQgdGhpcyBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRl cm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGZvbGxvd2luZyBrZXkgbWF0ZXJpYWwuCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTxyZXBsYWNlYWJs ZT5uPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8 cGFyYT4KKyAgICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIHRoZSBt YXN0ZXIga2V5IHJlZmVyZW5jZWQgYWJvdmUuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0 PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbk1hc3RlcktleSI+Cisg ICAgPHRlcm0+Q29sdW1uTWFzdGVyS2V5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhpcyBtZXNzYWdlIGNhbiBvbmx5IGFwcGVhciBpZiB0aGUg cHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgICA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0 aW9uPC9saXRlcmFsPiBpcyBlbmFibGVkLiAgKFNlZSA8eHJlZgorICAgICAgbGlua2VuZD0i cHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24tZmxvdyIvPi4pCisgICAg IDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT5CeXRlMSgneScpPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBJZGVudGlmaWVzIHRoZSBtZXNzYWdlIGFzIGEgY29s dW1uIG1hc3RlciBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg IDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMgaW4gYnl0ZXMs IGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+ CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9mIHRoZSBrZXku CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5nPC90 ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUg bmFtZSBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPlN0cmluZzwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICAgVGhlIGtleSdzIHJlYWxtLgorICAgICAgICA8L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlz dD4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0 ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db21tYW5kQ29tcGxldGUiPgog ICAgIDx0ZXJtPkNvbW1hbmRDb21wbGV0ZSAoQik8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpA QCAtNTE1MSw2ICs1MzQ3LDQ2IEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgog ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJp YWJsZWxpc3Q+CisKKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0ZW5z aW9uIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzCisgICAg ICBlbmFibGVkIChzZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFy ZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciLz4pLCB0aGVuIHRoZXJlIGlzCisgICAgICBh bHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggcGFyYW1ldGVyOgorICAgICA8L3BhcmE+CisK KyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRl cm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVj aWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRl ZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVyIG9mIHRoZSBlbmNy eXB0aW9uIGFsZ29yaXRobSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBUaGlzIGlzIHVzZWQgYXMgYSBiaXQgZmllbGQgb2Yg ZmxhZ3MuICBJZiB0aGUgY29sdW1uIGlzCisgICAgICAgICBlbmNyeXB0ZWQgYW5kIGJpdCAw eDAxIGlzIHNldCwgdGhlIGNvbHVtbiB1c2VzIGRldGVybWluaXN0aWMKKyAgICAgICAgIGVu Y3J5cHRpb24sIG90aGVyd2lzZSByYW5kb21pemVkIGVuY3J5cHRpb24uCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAg IDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K IApAQCAtNTUzOSw2ICs1Nzc1LDM1IEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxl PgogICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92 YXJpYWJsZWxpc3Q+CisKKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0 ZW5zaW9uIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzCisg ICAgICBlbmFibGVkIChzZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5z cGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciLz4pLCB0aGVuIHRoZXJlIGlzCisgICAg ICBhbHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggZmllbGQ6CisgICAgIDwvcGFyYT4KKwor ICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVy bT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlIGlk ZW50aWZpZXIgb2YgdGhlCisgICAgICAgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNl LCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRl cm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBp ZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAgZW5jcnlwdCBhbGdvcml0aG0sIGVsc2UgemVy by4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCkBAIC03MzQyLDYgKzc2MDcsMTMzIEBAIDx0aXRsZT5Mb2dpY2Fs IFJlcGxpY2F0aW9uIE1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgIDwvdmFyaWFibGVsaXN0 PgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVt bi1lbmNyeXB0aW9uLWNyeXB0byI+CisgIDx0aXRsZT5UcmFuc3BhcmVudCBDb2x1bW4gRW5j cnlwdGlvbiBDcnlwdG9ncmFwaHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhpcyBzZWN0 aW9uIGRlc2NyaWJlcyB0aGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgYnkgdHJh bnNwYXJlbnQKKyAgIGNvbHVtbiBlbmNyeXB0aW9uLiAgQSBjbGllbnQgdGhhdCBzdXBwb3J0 cyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbgorICAgbmVlZHMgdG8gaW1wbGVtZW50 IHRoZXNlIG9wZXJhdGlvbnMgYXMgc3BlY2lmaWVkIGhlcmUgaW4gb3JkZXIgdG8gYmUgYWJs ZQorICAgdG8gaW50ZXJvcGVyYXRlIHdpdGggb3RoZXIgY2xpZW50cy4KKyAgPC9wYXJhPgor CisgIDxwYXJhPgorICAgQ29sdW1uIGVuY3J5cHRpb24ga2V5IGFsZ29yaXRobXMgYW5kIGNv bHVtbiBtYXN0ZXIga2V5IGFsZ29yaXRobXMgYXJlCisgICBpZGVudGlmaWVkIGJ5IGludGVn ZXJzIGluIHRoZSBwcm90b2NvbCBtZXNzYWdlcyBhbmQgdGhlIHN5c3RlbSBjYXRhbG9ncy4K KyAgIEFkZGl0aW9uYWwgYWxnb3JpdGhtcyBtYXkgYmUgYWRkZWQgdG8gdGhpcyBwcm90b2Nv bCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgYQorICAgY2hhbmdlIGluIHRoZSBwcm90b2NvbCB2 ZXJzaW9uIG51bWJlci4gIENsaWVudHMgc2hvdWxkIGltcGxlbWVudCBzdXBwb3J0CisgICBm b3IgYWxsIHRoZSBhbGdvcml0aG1zIHNwZWNpZmllZCBoZXJlLiAgSWYgYSBjbGllbnQgZW5j b3VudGVycyBhbiBhbGdvcml0aG0KKyAgIGlkZW50aWZpZXIgaXQgZG9lcyBub3QgcmVjb2du aXplIG9yIGRvZXMgbm90IHN1cHBvcnQsIGl0IG11c3QgcmFpc2UgYW4KKyAgIGVycm9yLiAg QSBzdWl0YWJsZSBlcnJvciBtZXNzYWdlIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgYXBw bGljYXRpb24gb3IKKyAgIHVzZXIuCisgIDwvcGFyYT4KKworICA8c2VjdDIgaWQ9InByb3Rv Y29sLWNtayI+CisgICA8dGl0bGU+Q29sdW1uIE1hc3RlciBLZXlzPC90aXRsZT4KKworICAg PHBhcmE+CisgICAgVGhlIGN1cnJlbnRseSBkZWZpbmVkIGFsZ29yaXRobXMgZm9yIGNvbHVt biBtYXN0ZXIga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9j b2wtY21rLXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InByb3RvY29s LWNtay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5IEFsZ29yaXRobXM8 L3RpdGxlPgorICAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgIDx0aGVhZD4KKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5PklEPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50 cnk+CisgICAgICAgPGVudHJ5PlJlZmVyZW5jZTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAg ICAgPC90aGVhZD4KKyAgICAgPHRib2R5PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+ MTwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRh dHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxpbms+IChQ S0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVu dHJ5PjI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8y NTY8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6 Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxp bms+IChQS0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAg ICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJw cm90b2NvbC1jZWsiPgorICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleXM8L3RpdGxl PgorCisgICA8cGFyYT4KKyAgICBUaGUgY3VycmVudGx5IGRlZmluZWQgYWxnb3JpdGhtcyBm b3IgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlu a2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8dGFibGUg aWQ9InByb3RvY29sLWNlay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9u IEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8 dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5JRDwvZW50cnk+CisgICAgICAg PGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5SZWZlcmVuY2U8L2VudHJ5Pgor ICAgICAgIDxlbnRyeT5LZXkgbGVuZ3RoIChvY3RldHMpPC9lbnRyeT4KKyAgICAgIDwvcm93 PgorICAgICA8L3RoZWFkPgorICAgICA8dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxl bnRyeT4xMzA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxp bmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1j Z3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+MzI8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRy eT4xMzE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xOTJfQ0JD X0hNQUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsg dXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jl dy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ NDg8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4x MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hN QUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJs PSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1h ZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NTY8 L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzM8 L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNf U0hBXzUxMjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJo dHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFk LWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NjQ8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8 L3RhYmxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgPHF1b3RlPmFzc29jaWF0ZWQgZGF0YTwv cXVvdGU+IGluIHRoZXNlIGFsZ29yaXRobXMgY29uc2lzdHMgb2YgNAorICAgIGJ5dGVzOiBU aGUgQVNDSUkgbGV0dGVycyA8bGl0ZXJhbD5QPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Rzwv bGl0ZXJhbD4KKyAgICAoYnl0ZSB2YWx1ZXMgODAgYW5kIDcxKSwgZm9sbG93ZWQgYnkgdGhl IGFsZ29yaXRobSBJRCBhcyBhIDE2LWJpdCB1bnNpZ25lZAorICAgIGludGVnZXIgaW4gbmV0 d29yayBieXRlIG9yZGVyLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgbGVu Z3RoIG9mIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgMTYgb2N0ZXRzIGZvciBhbGwg Q0VLIGFsZ29yaXRobQorICAgIHZhcmlhbnRzLiAgRm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlv biwgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBzaG91bGQgYmUKKyAgICAoY3J5cHRvZ3Jh cGhpY2FsbHkgc3Ryb25nKSByYW5kb20gYnl0ZXMuICBGb3IgZGV0ZXJtaW5pc3RpYyBlbmNy eXB0aW9uLAorICAgIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgY29uc3RydWN0ZWQg YXMKKzxwcm9ncmFtbGlzdGluZz4KK1NVQlNUUklORyg8cmVwbGFjZWFibGU+SE1BQzwvcmVw bGFjZWFibGU+KDxyZXBsYWNlYWJsZT5LPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5Q PC9yZXBsYWNlYWJsZT4pIEZPUiA8cmVwbGFjZWFibGU+SVZMRU48L3JlcGxhY2VhYmxlPikK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hlcmUgPHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgSE1BQyBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGgKKyAgICB0aGUg YWxnb3JpdGhtLCA8cmVwbGFjZWFibGU+SzwvcmVwbGFjZWFibGU+IGlzIHRoZSBwcmVmaXgg b2YgdGhlIENFSyBvZgorICAgIHRoZSBsZW5ndGggcmVxdWlyZWQgYnkgdGhlIEhNQUMgZnVu Y3Rpb24sIGFuZCA8cmVwbGFjZWFibGU+UDwvcmVwbGFjZWFibGU+CisgICAgaXMgdGhlIHBs YWludGV4dCB0byBiZSBlbmNyeXB0ZWQuICAoVGhpcyBpcyB0aGUgc2FtZSBwb3J0aW9uIG9m IHRoZSBDRUsKKyAgICB0aGF0IHRoZSBBRUFEX0FFU18qX0hNQUNfKiBhbGdvcml0aG1zIHVz ZSBmb3IgdGhlIE1BQyBwYXJ0LikKKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3Qx PgorCiAgPHNlY3QxIGlkPSJwcm90b2NvbC1jaGFuZ2VzIj4KICAgPHRpdGxlPlN1bW1hcnkg b2YgQ2hhbmdlcyBzaW5jZSBQcm90b2NvbCAyLjA8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKaW5kZXggZTkwYTBlMWY4MzcyLi4zMzFiMWYwMTBiNWMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwKQEAgLTgsNiArOCw4IEBACiA8IUVOVElUWSBhYm9ydCAgICAgICAg ICAgICAgU1lTVEVNICJhYm9ydC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQWdncmVnYXRlICAg ICBTWVNURU0gImFsdGVyX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQ29sbGF0 aW9uICAgICBTWVNURU0gImFsdGVyX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGFsdGVy Q29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImFsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tl eS5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiYWx0ZXJf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBhbHRlckNvbnZlcnNpb24gICAg U1lTVEVNICJhbHRlcl9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJEYXRhYmFz ZSAgICAgIFNZU1RFTSAiYWx0ZXJfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBhbHRlckRl ZmF1bHRQcml2aWxlZ2VzIFNZU1RFTSAiYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwi PgpAQCAtNjIsNiArNjQsOCBAQAogPCFFTlRJVFkgY3JlYXRlQWdncmVnYXRlICAgIFNZU1RF TSAiY3JlYXRlX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUNhc3QgICAgICAg ICBTWVNURU0gImNyZWF0ZV9jYXN0LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29sbGF0aW9u ICAgIFNZU1RFTSAiY3JlYXRlX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZUNv bHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJjcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5 LnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiY3JlYXRl X2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29udmVyc2lvbiAg IFNZU1RFTSAiY3JlYXRlX2NvbnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVEYXRh YmFzZSAgICAgU1lTVEVNICJjcmVhdGVfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBjcmVh dGVEb21haW4gICAgICAgU1lTVEVNICJjcmVhdGVfZG9tYWluLnNnbWwiPgpAQCAtMTA5LDYg KzExMyw4IEBACiA8IUVOVElUWSBkcm9wQWdncmVnYXRlICAgICAgU1lTVEVNICJkcm9wX2Fn Z3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BDYXN0ICAgICAgICAgICBTWVNURU0gImRy b3BfY2FzdC5zZ21sIj4KIDwhRU5USVRZIGRyb3BDb2xsYXRpb24gICAgICBTWVNURU0gImRy b3BfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgZHJvcENvbHVtbkVuY3J5cHRpb25LZXkg U1lTVEVNICJkcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGRy b3BDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwi PgogPCFFTlRJVFkgZHJvcENvbnZlcnNpb24gICAgIFNZU1RFTSAiZHJvcF9jb252ZXJzaW9u LnNnbWwiPgogPCFFTlRJVFkgZHJvcERhdGFiYXNlICAgICAgIFNZU1RFTSAiZHJvcF9kYXRh YmFzZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BEb21haW4gICAgICAgICBTWVNURU0gImRyb3Bf ZG9tYWluLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1 bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi43NTk3Y2Q4MGNhNmEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBAIC0wLDAgKzEsMTg2IEBA Cis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1hbHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3Fs LWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxwcmltYXJ5PkFMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRh PgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+ U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgor CisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEg Y29sdW1uIGVuY3J5cHRpb24ga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IEFERCBWQUxVRSAoCisgICAg Q09MVU1OX01BU1RFUl9LRVkgPSA8cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT4sCisg ICAgWyBBTEdPUklUSE0gPSA8cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJsZT4s IF0KKyAgICBFTkNSWVBURURfVkFMVUUgPSA8cmVwbGFjZWFibGU+ZW5jdmFsPC9yZXBsYWNl YWJsZT4KKykKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5u YW1lPC9yZXBsYWNlYWJsZT4gRFJPUCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkg PSA8cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT4KKykKKworQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7 IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8 IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lu b3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIGVuY3J5 cHRpb24ga2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgZmlyc3QgZm9ybSBh ZGRzIG5ldyBlbmNyeXB0ZWQga2V5IGRhdGEgdG8gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXks CisgICB3aGljaCBtdXN0IGJlIGVuY3J5cHRlZCB3aXRoIGEgZGlmZmVyZW50IGNvbHVtbiBt YXN0ZXIga2V5IHRoYW4gdGhlCisgICBleGlzdGluZyBrZXkgZGF0YS4gIFRoZSBzZWNvbmQg Zm9ybSByZW1vdmVzIGEga2V5IGRhdGEgZW50cnkgZm9yIGEgZ2l2ZW4KKyAgIGNvbHVtbiBt YXN0ZXIga2V5LiAgVG9nZXRoZXIsIHRoZXNlIGZvcm1zIGNhbiBiZSB1c2VkIGZvciBjb2x1 bW4gbWFzdGVyIGtleQorICAgcm90YXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFlvdSBtdXN0IG93biB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSA8Y29tbWFu ZD5BTFRFUiBDT0xVTU4KKyAgIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPi4gIFRvIGFsdGVy IHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvcgorICAgaW5kaXJlY3Qg bWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZl CisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5J3MKKyAgIGRhdGFiYXNlLiAgKFRoZXNlIHJlc3RyaWN0aW9ucyBl bmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8KKyAgIGFueXRoaW5n IHlvdSBjb3VsZG4ndCBkbyBieSBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgY29sdW1u IGVuY3J5cHRpb24KKyAgIGtleS4gIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBhbHRlciBv d25lcnNoaXAgb2YgYW55IGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICAgYW55d2F5LikKKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFt ZSBvZiBhbiBleGlzdGluZyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+PC90ZXJtPgor CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBj b2x1bW4gbWFzdGVyIGtleSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhpcyBjb2x1bW4K KyAgICAgIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhh dCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMg Y29sdW1uIGVuY3J5cHRpb24ga2V5LiAgU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJzcWwt Y3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPiBmb3IgZGV0YWlscworICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1h dGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0 aGUKKyAgICAgIHNwZWNpZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lm aWVkIGFsZ29yaXRobS4gIFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVh PC90eXBlPi1jb21wYXRpYmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcg bmFtZSBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIG5ldyBvd25lciBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxl bGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcm90YXRlIHRoZSBtYXN0ZXIga2V5cyB1c2Vk IHRvIGVuY3J5cHQgYSBnaXZlbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICB1c2UgYSBj b21tYW5kIHNlcXVlbmNlIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RF Ul9LRVkgPSBjbWsyLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJwor KTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoCisg ICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmNlazI8L2xp dGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgUkVOQU1FIFRPIGNlazI7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwv bGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAgIFNRTCBzdGFuZGFy ZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29sdW1u LWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1u X21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjEzZTMxMGIyMjc0OAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlci1jb2x1 bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXItY29sdW1uLW1h c3Rlci1rZXkiPgorICA8cHJpbWFyeT5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRF UiBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9t YW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9y ZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5n ZSB0aGUgZGVmaW5pdGlvbiBvZiBhIGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgor IDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVS IENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVO QU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xV TU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xF IHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KKzwvc3lub3BzaXM+CisgPC9yZWZz eW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9j b21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIg a2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVt biBtYXN0ZXIga2V5IHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSCisgICBL RVk8L2NvbW1hbmQ+LiAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEg ZGlyZWN0IG9yIGluZGlyZWN0CisgICBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZSwg YW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4g cHJpdmlsZWdlIG9uIHRoZSBjb2x1bW4gbWFzdGVyIGtleSdzIGRhdGFiYXNlLgorICAgKFRo ZXNlIHJlc3RyaWN0aW9ucyBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNu J3QgZG8gYW55dGhpbmcgeW91CisgICBjb3VsZG4ndCBkbyBieSBkcm9wcGluZyBhbmQgcmVj cmVhdGluZyB0aGUgY29sdW1uIG1hc3RlciBrZXkuICBIb3dldmVyLCBhCisgICBzdXBlcnVz ZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIG1hc3RlciBrZXkgYW55d2F5 LikKKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiBhbiBleGlzdGluZyBj b2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBuYW1lIG9mIHRo ZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgb3duZXIg b2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8bGl0ZXJhbD5jbWsxPC9s aXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y21rMjwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rp bmc+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWsyOworPC9w cm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRo ZSBvd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwvbGl0ZXJh bD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitB TFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5D b21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21t YW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhl CisgICBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0Pgor IDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmE5NGIwOTI0YjE1MwotLS0gL2Rldi9udWxsCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBA IC0wLDAgKzEsMTYzIEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKwor PHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGlu ZGV4dGVybSB6b25lPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxw cmltYXJ5PkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xu dW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNj aW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5l IGEgbmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVk aXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSCBWQUxV RVMgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFj ZWFibGU+LAorICAgIFsgQUxHT1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVw bGFjZWFibGU+LCBdCisgICAgRU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3Zh bDwvcmVwbGFjZWFibGU+CispCitbICwgLi4uIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5v cHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4K KworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L2NvbW1hbmQ+IGRlZmluZXMgYSBuZXcgY29sdW1uCisgICBlbmNyeXB0aW9uIGtleS4gIEEg Y29sdW1uIGVuY3J5cHRpb24ga2V5IGlzIHVzZWQgZm9yIGNsaWVudC1zaWRlIGVuY3J5cHRp b24KKyAgIG9mIHRhYmxlIGNvbHVtbnMgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZCBhcyBlbmNy eXB0ZWQuICBUaGUga2V5IG1hdGVyaWFsIG9mCisgICBhIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBpcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlJ3Mgc3lzdGVtIGNhdGFsb2dzLAorICAgZW5j cnlwdGVkICh3cmFwcGVkKSBieSBhIGNvbHVtbiBtYXN0ZXIga2V5ICh3aGljaCBpbiB0dXJu IGlzIG9ubHkKKyAgIGFjY2Vzc2libGUgdG8gdGhlIGNsaWVudCwgbm90IHRoZSBkYXRhYmFz ZSBzZXJ2ZXIpLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgY29sdW1uIG1h c3RlcgorICAga2V5LiAgVG8gc3BlY2lmeSB0aGF0LCBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUg cGFyZW50aGVzaXplZCBkZWZpbml0aW9uIChzZWUKKyAgIGFsc28gdGhlIGV4YW1wbGVzKS4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJh bWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBuZXcg Y29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkg dGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoaXMgY29sdW1uCisgICAgICBlbmNyeXB0aW9u IGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+YWxnb3Jp dGhtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHRoYXQgd2FzIHVzZWQgdG8gZW5j cnlwdCB0aGUga2V5IG1hdGVyaWFsIG9mCisgICAgICB0aGlzIGNvbHVtbiBlbmNyeXB0aW9u IGtleS4gIFN1cHBvcnRlZCBhbGdvcml0aG1zIGFyZToKKyAgICAgIDxpdGVtaXplZGxpc3Q+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJhbD5SU0FFU19PQUVQ X1NIQV8xPC9saXRlcmFsPiAoZGVmYXVsdCk8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPlJTQUVTX09BRVBf U0hBXzI1NjwvbGl0ZXJhbD4gKGRlZmF1bHQpPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuICBUaGUgc3BlY2lmaWVkIHZhbHVl IGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAgY2xpZW50LCB3aGljaCBtYXkgdXNlIGl0IGZv ciBkZWNyeXB0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb24gdGhlCisgICAgICBj bGllbnQgc2lkZS4gIEJ1dCBhIGNsaWVudCBpcyBhbHNvIGZyZWUgdG8gaWdub3JlIHRoaXMg aW5mb3JtYXRpb24gYW5kCisgICAgICBmaWd1cmUgb3V0IGhvdyB0byBhcnJhbmdlIHRoZSBk ZWNyeXB0aW9uIGluIHNvbWUgb3RoZXIgd2F5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMg Y29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0aGUKKyAgICAgIHNwZWNp ZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobS4g IFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVhPC90eXBlPi1jb21wYXRp YmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxp c3Rpbmc+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMg KAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMSwKKyAgICBFTkNSWVBURURfVkFMVUUg PSAnXHgwMTAyMDIwNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgYXNzb2NpYXRlZCBjb2x1 bW4gbWFzdGVyIGtleToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBj bWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKSwKKygKKyAg ICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4 RjFGMkYyRjQuLi4nCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFy ZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4t ZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxp c3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZWM1ZmE0Y2RlNTcxCi0tLSAvZGV2L251bGwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCww ICsxLDEwNiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rl cl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9 InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFyeT5DUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAt IExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxy ZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5h bWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gbWFzdGVyIGtleTwvcmVm cHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3Bz aXM+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxh Y2VhYmxlPiBXSVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxhY2VhYmxlPnJlYWxtPC9yZXBs YWNlYWJsZT4gXQorKQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAg PGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEg bmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1uIG1hc3RlciBrZXkgaXMgdXNl ZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMsIHdoaWNoCisgICBhcmUgdGhl IGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1bW4gZGF0YS4gIFRoZSBrZXkg bWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBub3Qgc3RvcmVkIGlu IHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIg a2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFsbG93IGEgY2xpZW50IHRvIGxv Y2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1wbGUgaW4gYSBmaWxlIG9yIGlu IGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJs ZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGlzIGFu IG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGNvbHVtbiBt YXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxvb2t1cCBieSBjbGllbnRzLiAg VGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAgIG1hc3RlciBrZXlzIHRoYXQg YXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUgc3lzdGVtIGxvY2F0aW9uLAor ICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBzaG91bGQgYmUgaW4gdGhlIHNh bWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhlbiBiZSBjb25maWd1cmVkIHRv IGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBpbiBhCisgICAgICBjZXJ0YWlu IHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcmVzcGVjdGl2ZSBjbGllbnQg bGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5zdHJ1Y3Rpb25zLgorICAgICA8 L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVmYXVsdCBpcyB0aGUgZW1wdHkg c3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXlyZWFsbScpOworPC9wcm9ncmFt bGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0 aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5D UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhl IFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5s aW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0 ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w LWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwv c2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggYzE0YjIwMTBkODFkLi5mZWViZjUxZmQ5YTUgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMjIsNyArMjIsNyBAQAogIDxy ZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwg XSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJ U1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxh Y2VhYmxlPiAoIFsKLSAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVY VEVOREVEIHwgTUFJTiB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Np b25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxh dGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBF TkNSWVBURUQgV0lUSCAoIDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxh Y2VhYmxlPiApIF0gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVYVEVOREVEIHwg TUFJTiB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9k PC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVw bGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2Nv bnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxyZXBsYWNlYWJsZT50 YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxl PnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9u PC9yZXBsYWNlYWJsZT4gLi4uIF0gfQogICAgIFssIC4uLiBdCkBAIC0zNDksNiArMzQ5LDQ2 IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+ RU5DUllQVEVEIFdJVEggKCA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBs YWNlYWJsZT4gKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIEVuYWJsZXMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gZm9yIHRo ZSBjb2x1bW4uCisgICAgICA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBs YWNlYWJsZT4gYXJlIGNvbW1hLXNlcGFyYXRlZAorICAgICAgPGxpdGVyYWw+a2V5PXZhbHVl PC9saXRlcmFsPiBzcGVjaWZpY2F0aW9ucy4gIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUK KyAgICAgIGF2YWlsYWJsZToKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1uX2VuY3J5cHRpb25fa2V5 PC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgdG8gdXNlLiAgU3BlY2lmeWluZworICAgICAgICAgIHRoaXMgaXMgbWFuZGF0b3J5 LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFy bGlzdGVudHJ5PgorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPmVuY3J5cHRpb25fdHlwZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPnJhbmRvbWl6ZWQ8L2xp dGVyYWw+ICh0aGUgZGVmYXVsdCkgb3IgPGxpdGVyYWw+ZGV0ZXJtaW5pc3RpYzwvbGl0ZXJh bD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zh cmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0 ZXJhbD5hbGdvcml0aG08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdG8g dXNlLiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICA8bGl0ZXJhbD5BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxl bGlzdD4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5JTkhFUklUUyAo IDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9s aXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZDE1N2RlOWM1ZjgKLS0tIC9kZXYvbnVsbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAg LTAsMCArMSwxMTIgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5j cnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJl ZmVudHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRl cm0gem9uZT0ic3FsLWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+ RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9y ZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4gZW5j cnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgWyBJRiBF WElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FERSB8IFJF U1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21t YW5kPkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiByZW1vdmVzIGEgcHJl dmlvdXNseSBkZWZpbmVkCisgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBUbyBiZSBhYmxl IHRvIGRyb3AgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIHlvdQorICAgbXVzdCBiZSBpdHMg b3duZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90IHRocm93 IGFuIGVycm9yIGlmIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZG9lcyBub3QgZXhpc3Qu CisgICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJs aXN0ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5h bWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAg PC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LAorICAgICAg IGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMK KyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZ1c2UgdG8g ZHJvcCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IGlmIGFueSBvYmplY3RzIGRlcGVuZCBv biBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0 PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0 bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwv dGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1i ZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5 cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVt bl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rl cl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM4 NTA5OGVhMWM5OQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9j b2x1bW5fbWFzdGVyX2tleS5zZ21sCkBAIC0wLDAgKzEsMTEyIEBACis8IS0tCitkb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVy LWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSI+ CisgIDxwcmltYXJ5PkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gTUFT VEVSIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+Cisg IDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4g TUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgY29sdW1uIG1h c3RlciBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lz ZGl2PgorPHN5bm9wc2lzPgorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBbIElGIEVYSVNUUyBd IDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJQ1Qg XQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJP UCBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gcmVtb3ZlcyBhIHByZXZpb3VzbHkgZGVm aW5lZAorICAgY29sdW1uIG1hc3RlciBrZXkuICBUbyBiZSBhYmxlIHRvIGRyb3AgYSBjb2x1 bW4gbWFzdGVyIGtleSwgeW91CisgICBtdXN0IGJlIGl0cyBvd25lci4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRs ZT4KKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVy bT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGNv bHVtbiBtYXN0ZXIga2V5IGRvZXMgbm90IGV4aXN0LgorICAgICAgIEEgbm90aWNlIGlzIGlz c3VlZCBpbiB0aGlzIGNhc2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+Cisg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48 cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVy IGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NB REU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29s dW1uIG1hc3RlciBrZXksCisgICAgICAgYW5kIGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBk ZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRs LWRlcGVuZCIvPikuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJh bD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFJlZnVzZSB0byBkcm9wIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpZiBh bnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzCisgICAgICAgaXMgdGhlIGRlZmF1bHQu CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisgICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorPHByb2dyYW1saXN0aW5nPgor RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjZWsxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xV TU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5k YXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlNlZSBBbHNvPC90aXRsZT4KKworICAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+Cisg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1jb2x1bW4tbWFzdGVyLWtleSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVt bi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1w LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAppbmRleCA4YjlkOWY0Y2Fk NDMuLjcyMDQ5NzFlMWExMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1w LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKQEAgLTY5MSw2ICs2 OTEsMzcgQEAgPHRpdGxlPk9wdGlvbnM8L3RpdGxlPgogICAgICAgPC9saXN0aXRlbT4KICAg ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJt PjxvcHRpb24+LS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zPC9vcHRpb24+PC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBj YXVzZXMgdGhlIHZhbHVlcyBvZiBhbGwgZW5jcnlwdGVkIGNvbHVtbnMgdG8gYmUgZGVjcnlw dGVkCisgICAgICAgIGFuZCB3cml0dGVuIHRvIHRoZSBvdXRwdXQgaW4gcGxhaW50ZXh0LiAg QnkgZGVmYXVsdCwgdGhlIHZhbHVlcyBvZgorICAgICAgICBlbmNyeXB0ZWQgY29sdW1ucyBh cmUgd3JpdHRlbiB0byB0aGUgZHVtcCBpbiBjaXBoZXJ0ZXh0ICh0aGF0IGlzLCB0aGV5Cisg ICAgICAgIGFyZSBub3QgZGVjcnlwdGVkKS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8 cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gcmVxdWlyZXMgdGhhdCA8b3B0aW9uPi0taW5z ZXJ0czwvb3B0aW9uPiwKKyAgICAgICAgPG9wdGlvbj4tLWNvbHVtbi1pbnNlcnRzPC9vcHRp b24+IG9yCisgICAgICAgIDxvcHRpb24+LS1yb3dzLXBlci1pbnNlcnQ8L29wdGlvbj4gaXMg YWxzbyBzcGVjaWZpZWQuCisgICAgICAgICg8Y29tbWFuZD5DT1BZPC9jb21tYW5kPiBkb2Vz IG5vdCBzdXBwb3J0IGNvbHVtbiBkZWNyeXB0aW9uLikKKyAgICAgICA8L3BhcmE+CisKKyAg ICAgICA8cGFyYT4KKyAgICAgICAgRm9yIHJvdXRpbmUgYmFja3VwcywgdGhlIGRlZmF1bHQg YmVoYXZpb3IgaXMgYXBwcm9wcmlhdGUgYW5kIG1vc3QKKyAgICAgICAgZWZmaWNpZW50LiAg VGhpcyBvcHRpb24gaXMgc3VpdGFibGUgaWYgdGhlIGRhdGEgaXMgbWVhbnQgdG8gYmUKKyAg ICAgICAgaW5zcGVjdGVkIG9yIGV4cG9ydGVkIGZvciBvdGhlciBwdXJwb3Nlcy4gIE5vdGUg dGhhdCBhIGR1bXAgY3JlYXRlZAorICAgICAgICB3aXRoIHRoaXMgb3B0aW9uIGNhbm5vdCBi ZSByZXN0b3JlZCBpbnRvIGEgZGF0YWJhc2Ugd2l0aCBjb2x1bW4KKyAgICAgICAgZW5jcnlw dGlvbi4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPCEtLQorICAgICAgICAgICBYWFg6IFRo ZSBsYXR0ZXIgd291bGQgcmVxdWlyZSBhbm90aGVyIHBnX2R1bXAgb3B0aW9uIHRvIHB1dCBv dXQKKyAgICAgICAgICAgSU5TRVJUIC4uLiBcZ2VuY3IgY29tbWFuZHMuCisgICAgICAgLS0+ CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5PgogICAgICAgPHRlcm0+PG9wdGlvbj4tLWRpc2FibGUtZG9sbGFyLXF1b3Rp bmc8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVt cGFsbC5zZ21sCmluZGV4IGU2MmQwNWU1YWI1OC4uNGJmNjBjNzI5ZjdmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BnX2R1bXBhbGwuc2dtbApAQCAtMjU5LDYgKzI1OSwzMyBAQCA8dGl0bGU+T3B0aW9u czwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5j cnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFs bCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0 ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVz IG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1w IGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0 ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9w dGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAg ICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlv bj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAg ICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRl Y3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBG b3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0 ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJs ZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhw b3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisg ICAgICAgIHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRh YmFzZSB3aXRoIGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGlu Zzwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbAppbmRleCA5NDk0ZjI4MDYzYWQuLmNkNjFlOTllODZmZSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNx bC1yZWYuc2dtbApAQCAtMjI1NSw2ICsyMjU1LDI4IEBAIDx0aXRsZT5NZXRhLUNvbW1hbmRz PC90aXRsZT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCiAKKyAgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICAgPHRlcm0+PGxpdGVyYWw+XGdlbmNyPC9saXRlcmFsPiBbIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBdIC4uLiA8 L3Rlcm0+CisKKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAg U2VuZHMgdGhlIGN1cnJlbnQgcXVlcnkgYnVmZmVyIHRvIHRoZSBzZXJ2ZXIgZm9yIGV4ZWN1 dGlvbiwgYXMgd2l0aAorICAgICAgICAgPGxpdGVyYWw+XGc8L2xpdGVyYWw+LCB3aXRoIHRo ZSBzcGVjaWZpZWQgcGFyYW1ldGVycyBwYXNzZWQgZm9yIGFueQorICAgICAgICAgcGFyYW1l dGVyIHBsYWNlaG9sZGVycyAoPGxpdGVyYWw+JDE8L2xpdGVyYWw+IGV0Yy4pLiAgVGhpcyBj b21tYW5kCisgICAgICAgICBlbnN1cmVzIHRoYXQgYW55IHBhcmFtZXRlcnMgY29ycmVzcG9u ZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgIHNlbnQgdG8gdGhlIHNl cnZlciBlbmNyeXB0ZWQuCisgICAgICAgIDwvcGFyYT4KKworICAgICAgICA8cGFyYT4KKyAg ICAgICAgIEV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitJTlNFUlQgSU5UTyB0YmwxIFZB TFVFUyAoJDEsICQyKSBcZ2VuY3IgJ2ZpcnN0IHZhbHVlJyAnc2Vjb25kIHZhbHVlJworPC9w cm9ncmFtbGlzdGluZz4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAg ICA8dGVybT48bGl0ZXJhbD5cZ2V0ZW52IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wc3FsX3ZhcjwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5lbnZfdmFyPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgogCkBAIC0zOTc4LDYg KzQwMDAsMTcgQEAgPHRpdGxlPlZhcmlhYmxlczwvdGl0bGU+CiAgICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgICAgPHRlcm0+PHZhcm5hbWU+SElERV9DT0xVTU5fRU5DUllQVElPTjwvdmFybmFtZT48 L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJ ZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgY29s dW1uIGVuY3J5cHRpb24KKyAgICAgICAgIGRldGFpbHMgYXJlIG5vdCBkaXNwbGF5ZWQuIFRo aXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgcmVncmVzc2lvbgorICAgICAgICAgdGVzdHMuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgICA8dGVybT48dmFybmFtZT5I SURFX1RPQVNUX0NPTVBSRVNTSU9OPC92YXJuYW1lPjwvdGVybT4KICAgICAgICAgPGxpc3Rp dGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGEzYjc0M2U4YzFlNy4uZTE0MjVjMjIyZmFi IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0zNiw2ICszNiw4IEBAIDx0aXRsZT5TUUwgQ29t bWFuZHM8L3RpdGxlPgogICAgJmFib3J0OwogICAgJmFsdGVyQWdncmVnYXRlOwogICAgJmFs dGVyQ29sbGF0aW9uOworICAgJmFsdGVyQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZhbHRl ckNvbHVtbk1hc3RlcktleTsKICAgICZhbHRlckNvbnZlcnNpb247CiAgICAmYWx0ZXJEYXRh YmFzZTsKICAgICZhbHRlckRlZmF1bHRQcml2aWxlZ2VzOwpAQCAtOTAsNiArOTIsOCBAQCA8 dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVhdGVBZ2dyZWdhdGU7CiAgICAm Y3JlYXRlQ2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247CisgICAmY3JlYXRlQ29sdW1uRW5j cnlwdGlvbktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJLZXk7CiAgICAmY3JlYXRlQ29u dmVyc2lvbjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZjcmVhdGVEb21haW47CkBAIC0x MzcsNiArMTQxLDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAmZHJvcEFn Z3JlZ2F0ZTsKICAgICZkcm9wQ2FzdDsKICAgICZkcm9wQ29sbGF0aW9uOworICAgJmRyb3BD b2x1bW5FbmNyeXB0aW9uS2V5OworICAgJmRyb3BDb2x1bW5NYXN0ZXJLZXk7CiAgICAmZHJv cENvbnZlcnNpb247CiAgICAmZHJvcERhdGFiYXNlOwogICAgJmRyb3BEb21haW47CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKaW5kZXggYzk5YWU1NGNiMDI2 Li44NjQ4MmViNGM4MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnRzaW1wbGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2lt cGxlLmMKQEAgLTIwLDcgKzIwLDkgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9wcmludHNpbXBs ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImxpYnBxL2xp YnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKKyNpbmNsdWRlICJtaXNj YWRtaW4uaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogCiAvKgpAQCAtNDYsNiAr NDgsMTEgQEAgcHJpbnRzaW1wbGVfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBv cGVyYXRpb24sIFR1cGxlRGVzYyB0dXBkZXNjKQogCQlwcV9zZW5kaW50MTYoJmJ1ZiwgYXR0 ci0+YXR0bGVuKTsKIAkJcHFfc2VuZGludDMyKCZidWYsIGF0dHItPmF0dHR5cG1vZCk7CiAJ CXBxX3NlbmRpbnQxNigmYnVmLCAwKTsJLyogZm9ybWF0IGNvZGUgKi8KKwkJaWYgKE15UHJv Y1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxX3NlbmRpbnQz MigmYnVmLCAwKTsJLyogQ0VLICovCisJCQlwcV9zZW5kaW50MTYoJmJ1ZiwgMCk7CS8qIENF SyBhbGcgKi8KKwkJfQogCX0KIAogCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKaW5kZXggZDJmM2I1NzI4ODQ2Li44MGFiNWU4NzVi ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKQEAgLTE1LDEzICsx NSwyOCBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vz cy9nZW5hbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9wcmludHR1cC5oIgorI2luY2x1ZGUgImFj Y2Vzcy9za2V5LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRh dGEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUg ImxpYnBxL2xpYnBxLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIKICNpbmNsdWRl ICJsaWJwcS9wcWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUg InRjb3AvcHF1ZXJ5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKKyNpbmNsdWRlICJ1 dGlscy9hcnJheWFjY2Vzcy5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5j bHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL21lbWRlYnVnLmgi CiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWwuaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAKIHN0YXRpYyB2b2lkIHByaW50dHVw X3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLApAQCAtMTUxLDYg KzE2NiwxMzkgQEAgcHJpbnR0dXBfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBv cGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKIAkgKi8KIH0KIAorLyoKKyAqIFNlbmQg Q29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVhZHkgYmVlbiBzZW50 IGluIHRoaXMgc2Vzc2lvbgorICogZm9yIHRoaXMga2V5LgorICovCitMaXN0CSAgICpjbWtf c2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQKK2Nta19jaGFuZ2VfY2IoRGF0dW0gYXJnLCBp bnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2ZyZWUoY21rX3NlbnQp OworCWNta19zZW50ID0gTklMOworfQorCitzdGF0aWMgdm9pZAorTWF5YmVTZW5kQ29sdW1u TWFzdGVyS2V5TWVzc2FnZShPaWQgY21raWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCUZv cm1fcGdfY29sbWFzdGVya2V5IGNta2Zvcm07CisJRGF0dW0JCWRhdHVtOworCWJvb2wJCWlz bnVsbDsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJc3RhdGljIGJvb2wgcmVnaXN0ZXJlZF9p bnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworCUFzc2VydChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKKworCWlmIChsaXN0X21l bWJlcl9vaWQoY21rX3NlbnQsIGNta2lkKSkKKwkJcmV0dXJuOworCisJdHVwbGUgPSBTZWFy Y2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta2lkKSk7CisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOworCWNta2Zvcm0gPSAo Rm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwlwcV9iZWdpbm1l c3NhZ2UoJmJ1ZiwgJ3knKTsgLyogQ29sdW1uTWFzdGVyS2V5ICovCisJcHFfc2VuZGludDMy KCZidWYsIGNta2Zvcm0tPm9pZCk7CisJcHFfc2VuZHN0cmluZygmYnVmLCBOYW1lU3RyKGNt a2Zvcm0tPmNta25hbWUpKTsKKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihDTUtPSUQsIHR1 cGxlLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSwgJmlzbnVsbCk7CisJQXNzZXJ0 KCFpc251bGwpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgVGV4dERhdHVtR2V0Q1N0cmluZyhk YXR1bSkpOworCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw bGUpOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2FjaGVSZWdpc3RlclN5 c2NhY2hlQ2FsbGJhY2soQ01LT0lELCBjbWtfY2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQly ZWdpc3RlcmVkX2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNta19zZW50ID0gbGFwcGVuZF9v aWQoY21rX3NlbnQsIGNta2lkKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4 dCk7Cit9CisKKy8qCisgKiBTZW5kIENvbHVtbkVuY3J5cHRpb25LZXkgbWVzc2FnZSwgdW5s ZXNzIGl0J3MgYWxyZWFkeSBiZWVuIHNlbnQgaW4gdGhpcworICogc2Vzc2lvbiBmb3IgdGhp cyBrZXkuCisgKi8KK0xpc3QJICAgKmNla19zZW50ID0gTklMOworCitzdGF0aWMgdm9pZAor Y2VrX2NoYW5nZV9jYihEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVl KQoreworCWxpc3RfZnJlZShjZWtfc2VudCk7CisJY2VrX3NlbnQgPSBOSUw7Cit9CisKK3Zv aWQKK01heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWspCit7 CisJSGVhcFR1cGxlCXR1cGxlOworCVNjYW5LZXlEYXRhIHNrZXlbMV07CisJU3lzU2NhbkRl c2Mgc2Q7CisJUmVsYXRpb24JcmVsOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJc3RhdGlj IGJvb2wgcmVnaXN0ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29u dGV4dDsKKworCUFzc2VydChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk KTsKKworCWlmIChsaXN0X21lbWJlcl9vaWQoY2VrX3NlbnQsIGF0dGNlaykpCisJCXJldHVy bjsKKworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1fcGdfY29sZW5ja2V5ZGF0 YV9ja2RjZWtpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJ T2JqZWN0SWRHZXREYXR1bShhdHRjZWspKTsKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVu Y0tleURhdGFSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCXNkID0gc3lzdGFibGVf YmVnaW5zY2FuKHJlbCwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsIHRydWUsIE5V TEwsIDEsIHNrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Qp KSkKKwl7CisJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBja2Rmb3JtID0gKEZvcm1fcGdfY29s ZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJRGF0dW0JCWRhdHVtOworCQlib29s CQlpc251bGw7CisJCWJ5dGVhCSAgICpiYTsKKwkJU3RyaW5nSW5mb0RhdGEgYnVmOworCisJ CU1heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoY2tkZm9ybS0+Y2tkY21raWQpOwor CisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFf Y2tkZW5jdmFsLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOworCQlBc3NlcnQo IWlzbnVsbCk7CisJCWJhID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNrZWQoKGJ5dGVhICopIERh dHVtR2V0UG9pbnRlcihkYXR1bSkpOworCisJCXBxX2JlZ2lubWVzc2FnZSgmYnVmLCAnWScp OyAvKiBDb2x1bW5FbmNyeXB0aW9uS2V5ICovCisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rm b3JtLT5ja2RjZWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjbWtp ZCk7CisJCXBxX3NlbmRpbnQxNigmYnVmLCBja2Rmb3JtLT5ja2RjbWthbGcpOworCQlwcV9z ZW5kaW50MzIoJmJ1ZiwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJcHFfc2VuZGJ5dGVz KCZidWYsIFZBUkRBVEFfQU5ZKGJhKSwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJcHFf ZW5kbWVzc2FnZSgmYnVmKTsKKworCQlmb3VuZCA9IHRydWU7CisJfQorCisJaWYgKCFmb3Vu ZCkKKwkJZWxvZyhFUlJPUiwgImxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhICV1IiwgYXR0Y2VrKTsKKworCXN5c3RhYmxlX2VuZHNjYW4oc2QpOworCXRh YmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworCWlmICghcmVnaXN0ZXJlZF9pbnZhbCkKKwl7 CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENFS0RBVEFPSUQsIGNla19jaGFu Z2VfY2IsIChEYXR1bSkgMCk7CisJCXJlZ2lzdGVyZWRfaW52YWwgPSB0cnVlOworCX0KKwor CW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5Q29udGV4dCk7 CisJY2VrX3NlbnQgPSBsYXBwZW5kX29pZChjZWtfc2VudCwgYXR0Y2VrKTsKKwlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7Cit9CisKIC8qCiAgKiBTZW5kUm93RGVzY3Jp cHRpb25NZXNzYWdlIC0tLSBzZW5kIGEgUm93RGVzY3JpcHRpb24gbWVzc2FnZSB0byB0aGUg ZnJvbnRlbmQKICAqCkBAIC0xNjcsNiArMzE1LDcgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVz c2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCQkJCQkJICBMaXN0 ICp0YXJnZXRsaXN0LCBpbnQxNiAqZm9ybWF0cykKIHsKIAlpbnQJCQluYXR0cyA9IHR5cGVp bmZvLT5uYXR0czsKKwlzaXplX3QJCXN6OwogCWludAkJCWk7CiAJTGlzdENlbGwgICAqdGxp c3RfaXRlbSA9IGxpc3RfaGVhZCh0YXJnZXRsaXN0KTsKIApAQCAtMTgzLDE0ICszMzIsMTcg QEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNj IHR5cGVpbmZvLAogCSAqIEhhdmUgdG8gb3ZlcmVzdGltYXRlIHRoZSBzaXplIG9mIHRoZSBj b2x1bW4tbmFtZXMsIHRvIGFjY291bnQgZm9yCiAJICogY2hhcmFjdGVyIHNldCBvdmVyaGVh ZC4KIAkgKi8KLQllbmxhcmdlU3RyaW5nSW5mbyhidWYsIChOQU1FREFUQUxFTiAqIE1BWF9D T05WRVJTSU9OX0dST1dUSCAvKiBhdHRuYW1lICovCi0JCQkJCQkJKyBzaXplb2YoT2lkKQkv KiByZXNvcmlndGJsICovCi0JCQkJCQkJKyBzaXplb2YoQXR0ck51bWJlcikJLyogcmVzb3Jp Z2NvbCAqLwotCQkJCQkJCSsgc2l6ZW9mKE9pZCkJLyogYXR0dHlwaWQgKi8KLQkJCQkJCQkr IHNpemVvZihpbnQxNikgLyogYXR0bGVuICovCi0JCQkJCQkJKyBzaXplb2YoaW50MzIpIC8q IGF0dHlwbW9kICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYpIC8qIGZvcm1hdCAqLwotCQkJ CQkJCSkgKiBuYXR0cyk7CisJc3ogPSAoTkFNRURBVEFMRU4gKiBNQVhfQ09OVkVSU0lPTl9H Uk9XVEggLyogYXR0bmFtZSAqLworCQkgICsgc2l6ZW9mKE9pZCkJLyogcmVzb3JpZ3RibCAq LworCQkgICsgc2l6ZW9mKEF0dHJOdW1iZXIpCS8qIHJlc29yaWdjb2wgKi8KKwkJICArIHNp emVvZihPaWQpCS8qIGF0dHR5cGlkICovCisJCSAgKyBzaXplb2YoaW50MTYpIC8qIGF0dGxl biAqLworCQkgICsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1vZCAqLworCQkgICsgc2l6ZW9m KGludDE2KSk7IC8qIGZvcm1hdCAqLworCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQlzeiArPSAoc2l6ZW9mKGludDMyKQkJLyogYXR0Y2VraWQgKi8K KwkJCSAgICsgc2l6ZW9mKGludDE2KSk7CS8qIGF0dGVuY2FsZyAqLworCWVubGFyZ2VTdHJp bmdJbmZvKGJ1Ziwgc3ogKiBuYXR0cyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7ICsr aSkKIAl7CkBAIC0yMDAsNiArMzUyLDggQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShT dHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCQlPaWQJCQlyZXNvcmlndGJs OwogCQlBdHRyTnVtYmVyCXJlc29yaWdjb2w7CiAJCWludDE2CQlmb3JtYXQ7CisJCU9pZAkJ CWF0dGNla2lkID0gSW52YWxpZE9pZDsKKwkJaW50MTYJCWF0dGVuY2FsZyA9IDA7CiAKIAkJ LyoKIAkJICogSWYgY29sdW1uIGlzIGEgZG9tYWluLCBzZW5kIHRoZSBiYXNlIHR5cGUgYW5k IHR5cG1vZCBpbnN0ZWFkLgpAQCAtMjMxLDYgKzM4NSwyMiBAQCBTZW5kUm93RGVzY3JpcHRp b25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCWVsc2UK IAkJCWZvcm1hdCA9IDA7CiAKKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9u X2VuYWJsZWQgJiYgdHlwZV9pc19lbmNyeXB0ZWQoYXR0dHlwaWQpKQorCQl7CisJCQlIZWFw VHVwbGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJdHAgPSBT ZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHJlc29yaWd0YmwpLCBJ bnQxNkdldERhdHVtKHJlc29yaWdjb2wpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0 ZSAlZCBvZiByZWxhdGlvbiAldSIsIHJlc29yaWdjb2wsIHJlc29yaWd0YmwpOworCQkJb3Jp Z19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0cCk7CisJCQlNYXliZVNl bmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShvcmlnX2F0dC0+YXR0Y2VrKTsKKwkJCWF0 dHR5cGlkID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJCWF0dGNla2lkID0gb3JpZ19h dHQtPmF0dGNlazsKKwkJCWF0dGVuY2FsZyA9IG9yaWdfYXR0LT5hdHRlbmNhbGc7CisJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQl9CisKIAkJcHFfd3JpdGVzdHJpbmcoYnVmLCBOYW1l U3RyKGF0dC0+YXR0bmFtZSkpOwogCQlwcV93cml0ZWludDMyKGJ1ZiwgcmVzb3JpZ3RibCk7 CiAJCXBxX3dyaXRlaW50MTYoYnVmLCByZXNvcmlnY29sKTsKQEAgLTIzOCw2ICs0MDgsMTEg QEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNj IHR5cGVpbmZvLAogCQlwcV93cml0ZWludDE2KGJ1ZiwgYXR0LT5hdHRsZW4pOwogCQlwcV93 cml0ZWludDMyKGJ1ZiwgYXR0dHlwbW9kKTsKIAkJcHFfd3JpdGVpbnQxNihidWYsIGZvcm1h dCk7CisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7 CisJCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0Y2VraWQpOworCQkJcHFfd3JpdGVpbnQxNihi dWYsIGF0dGVuY2FsZyk7CisJCX0KIAl9CiAKIAlwcV9lbmRtZXNzYWdlX3JldXNlKGJ1Zik7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCmluZGV4IGQ2ZmIyNjFlMjAxNi4u ZTNlY2M2NGVhN2E1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1 cGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwpAQCAt NDU5LDYgKzQ1OSwxMiBAQCBlcXVhbFR1cGxlRGVzY3MoVHVwbGVEZXNjIHR1cGRlc2MxLCBU dXBsZURlc2MgdHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0 aXNsb2NhbCAhPSBhdHRyMi0+YXR0aXNsb2NhbCkKIAkJCXJldHVybiBmYWxzZTsKKwkJaWYg KGF0dHIxLT5hdHRjZWsgIT0gYXR0cjItPmF0dGNlaykKKwkJCXJldHVybiBmYWxzZTsKKwkJ aWYgKGF0dHIxLT5hdHRyZWFsdHlwaWQgIT0gYXR0cjItPmF0dHJlYWx0eXBpZCkKKwkJCXJl dHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRlbmNhbGcgIT0gYXR0cjItPmF0dGVuY2Fs ZykKKwkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5hdHRpbmhjb3VudCAhPSBhdHRy Mi0+YXR0aW5oY291bnQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0Y29s bGF0aW9uICE9IGF0dHIyLT5hdHRjb2xsYXRpb24pCkBAIC02MjksNiArNjM1LDkgQEAgVHVw bGVEZXNjSW5pdEVudHJ5KFR1cGxlRGVzYyBkZXNjLAogCWF0dC0+YXR0Z2VuZXJhdGVkID0g J1wwJzsKIAlhdHQtPmF0dGlzZHJvcHBlZCA9IGZhbHNlOwogCWF0dC0+YXR0aXNsb2NhbCA9 IHRydWU7CisJYXR0LT5hdHRjZWsgPSAwOworCWF0dC0+YXR0cmVhbHR5cGlkID0gMDsKKwlh dHQtPmF0dGVuY2FsZyA9IDA7CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFyaWFi bGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwogCkBA IC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0aW5FbnRyeShUdXBsZURlc2Mg ZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJYXR0LT5hdHRpc2Ryb3BwZWQg PSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOworCWF0dC0+YXR0Y2VrID0gMDsK KwlhdHQtPmF0dHJlYWx0eXBpZCA9IDA7CisJYXR0LT5hdHRlbmNhbGcgPSAwOwogCWF0dC0+ YXR0aW5oY291bnQgPSAwOwogCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgYXJlIG5vdCBw cmVzZW50IGluIHR1cGxlZGVzY3MgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo dmFsaWRhdGUuYwppbmRleCAxMGJmMjZjZTdjMDcuLmNlYTkxZDRhODhhMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKQEAgLTMzMSw3ICszMzEsNyBAQCBj aGVja19oYXNoX2Z1bmNfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIGludDE2IGFtcHJvY251bSwg T2lkIGFyZ3R5cGUpCiAJCQkJIGFyZ3R5cGUgPT0gQk9PTE9JRCkKIAkJCSAvKiBva2F5LCBh bGxvd2VkIHVzZSBvZiBoYXNoY2hhcigpICovIDsKIAkJZWxzZSBpZiAoKGZ1bmNpZCA9PSBG X0hBU0hWQVJMRU5BIHx8IGZ1bmNpZCA9PSBGX0hBU0hWQVJMRU5BRVhURU5ERUQpICYmCi0J CQkJIGFyZ3R5cGUgPT0gQllURUFPSUQpCisJCQkJIChhcmd0eXBlID09IEJZVEVBT0lEIHx8 IGFyZ3R5cGUgPT0gUEdfRU5DUllQVEVEX0RFVE9JRCkpCiAJCQkgLyogb2theSwgYWxsb3dl ZCB1c2Ugb2YgaGFzaHZhcmxlbmEoKSAqLyA7CiAJCWVsc2UKIAkJCXJlc3VsdCA9IGZhbHNl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggODlhMDIyMWVjOWI4Li43ZTFhOTFiOTc0OWMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyArNzIsOCBAQCBDQVRBTE9HX0hFQURF UlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFtZXRlcl9hY2wuaCBwZ19wYXJ0aXRp b25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3RyYW5zZm9ybS5oIFwKIAlwZ19zZXF1 ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAot CXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1YnNjcmlwdGlv bl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1 YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5LmggcGdfY29sZW5ja2V5Lmgg cGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19I RUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0ZW1fZmtfaW5mby5oCiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCmluZGV4IGFhNWEyZWQ5NDgzZS4uMzE5NzgzMzBjM2Y3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvYWNsY2hrLmMKQEAgLTMyLDcgKzMyLDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19k ZWZhdWx0X2FjbC5oIgpAQCAtMzU3Nyw2ICszNTc5LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNs UmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9B TVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJCQkJY2FzZSBPQkpFQ1Rf Q0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRB OgorCQkJCQljYXNlIE9CSkVDVF9DTUs6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJ CQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlO VDoKQEAgLTM2MDcsNiArMzYxMiwxMiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNs ZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToK IAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBhZ2dyZWdhdGUg JXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQltc2cg PSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5 ICVzIik7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJbXNn ID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5ICVz Iik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJ bXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIGNvbGxhdGlvbiAlcyIpOwog CQkJCQkJYnJlYWs7CkBAIC0zNzE3LDYgKzM3MjgsNyBAQCBhY2xjaGVja19lcnJvcihBY2xS ZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FN UFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQkJCQljYXNlIE9CSkVDVF9D QVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgogCQkJCQljYXNlIE9CSkVDVF9ERUZB VUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJCWNhc2UgT0JKRUNUX0RPTUNP TlNUUkFJTlQ6CkBAIC01NTgwLDYgKzU1OTIsNTggQEAgcGdfY29sbGF0aW9uX293bmVyY2hl Y2soT2lkIGNvbGxfb2lkLCBPaWQgcm9sZWlkKQogCXJldHVybiBoYXNfcHJpdnNfb2Zfcm9s ZShyb2xlaWQsIG93bmVySWQpOwogfQogCisvKgorICogT3duZXJzaGlwIGNoZWNrIGZvciBh IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8KK2Jvb2wK K3BnX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9vd25lcmNoZWNrKE9pZCBjZWtfb2lkLCBPaWQg cm9sZWlkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlPaWQJCQlvd25lcklkOworCisJLyog U3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Npb24gY2hlY2tpbmcuICovCisJaWYgKHN1 cGVydXNlcl9hcmcocm9sZWlkKSkKKwkJcmV0dXJuIHRydWU7CisKKwl0dXBsZSA9IFNlYXJj aFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY2VrX29pZCkpOworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5j cnlwdGlvbiBrZXkgd2l0aCBPSUQgJXUgZG9lcyBub3QgZXhpc3QiLCBjZWtfb2lkKSkpOwor CisJb3duZXJJZCA9ICgoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXBsZSkpLT5j ZWtvd25lcjsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gaGFzX3By aXZzX29mX3JvbGUocm9sZWlkLCBvd25lcklkKTsKK30KKworLyoKKyAqIE93bmVyc2hpcCBj aGVjayBmb3IgYSBjb2x1bW4gbWFzdGVyIGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8K K2Jvb2wKK3BnX2NvbHVtbl9tYXN0ZXJfa2V5X293bmVyY2hlY2soT2lkIGNta19vaWQsIE9p ZCByb2xlaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCW93bmVySWQ7CisKKwkv KiBTdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVybWlzc2lvbiBjaGVja2luZy4gKi8KKwlpZiAo c3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXR1cGxlID0gU2Vh cmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtfb2lkKSk7CisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBt YXN0ZXIga2V5IHdpdGggT0lEICV1IGRvZXMgbm90IGV4aXN0IiwgY21rX29pZCkpKTsKKwor CW93bmVySWQgPSAoKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwbGUpKS0+ Y21rb3duZXI7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJcmV0dXJuIGhhc19w cml2c19vZl9yb2xlKHJvbGVpZCwgb3duZXJJZCk7Cit9CisKIC8qCiAgKiBPd25lcnNoaXAg Y2hlY2sgZm9yIGEgY29udmVyc2lvbiAoc3BlY2lmaWVkIGJ5IE9JRCkuCiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMzk3NjhmYTIyYmUxLi42ZjFlYTI2OGYwMzQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0zMCw3ICszMCwxMCBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRo X21lbWJlcnMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5 ZGF0YS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0 cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCkBAIC0xNTMsNiArMTU2LDkgQEAgc3RhdGljIGNv bnN0IE9pZCBvYmplY3RfY2xhc3Nlc1tdID0gewogCVR5cGVSZWxhdGlvbklkLAkJCQkvKiBP Q0xBU1NfVFlQRSAqLwogCUNhc3RSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfQ0FTVCAqLwog CUNvbGxhdGlvblJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09MTEFUSU9OICovCisJQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwJCS8qIE9DTEFTU19DRUsgKi8KKwlDb2x1bW5FbmNLZXlEYXRh UmVsYXRpb25JZCwJLyogT0NMQVNTX0NFS0RBVEEgKi8KKwlDb2x1bW5NYXN0ZXJLZXlSZWxh dGlvbklkLAkvKiBPQ0xBU1NfQ01LICovCiAJQ29uc3RyYWludFJlbGF0aW9uSWQsCQkvKiBP Q0xBU1NfQ09OU1RSQUlOVCAqLwogCUNvbnZlcnNpb25SZWxhdGlvbklkLAkJLyogT0NMQVNT X0NPTlZFUlNJT04gKi8KIAlBdHRyRGVmYXVsdFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfREVG QVVMVCAqLwpAQCAtMTQ4Nyw2ICsxNDkzLDkgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAogCQljYXNlIE9DTEFTU19DQVNUOgogCQlj YXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xB U1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05WRVJT SU9OOgogCQljYXNlIE9DTEFTU19MQU5HVUFHRToKIAkJY2FzZSBPQ0xBU1NfT1BDTEFTUzoK QEAgLTI4NTksNiArMjg2OCwxNSBAQCBnZXRPYmplY3RDbGFzcyhjb25zdCBPYmplY3RBZGRy ZXNzICpvYmplY3QpCiAJCWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJCXJldHVybiBP Q0xBU1NfQ09MTEFUSU9OOwogCisJCWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJ CXJldHVybiBPQ0xBU1NfQ0VLOworCisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9u SWQ6CisJCQlyZXR1cm4gT0NMQVNTX0NFS0RBVEE7CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJL ZXlSZWxhdGlvbklkOgorCQkJcmV0dXJuIE9DTEFTU19DTUs7CisKIAkJY2FzZSBDb25zdHJh aW50UmVsYXRpb25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09OU1RSQUlOVDsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2hlYXAuYwppbmRleCA5YTgwY2NkY2NkZjQuLmI2NWYxOTQwNjllMyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9o ZWFwLmMKQEAgLTc0OSw2ICs3NDksOSBAQCBJbnNlcnRQZ0F0dHJpYnV0ZVR1cGxlcyhSZWxh dGlvbiBwZ19hdHRyaWJ1dGVfcmVsLAogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0Z2VuZXJhdGVkIC0gMV0gPSBDaGFyR2V0RGF0dW0oYXR0 cnMtPmF0dGdlbmVyYXRlZCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVt X3BnX2F0dHJpYnV0ZV9hdHRpc2Ryb3BwZWQgLSAxXSA9IEJvb2xHZXREYXR1bShhdHRycy0+ YXR0aXNkcm9wcGVkKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdf YXR0cmlidXRlX2F0dGlzbG9jYWwgLSAxXSA9IEJvb2xHZXREYXR1bShhdHRycy0+YXR0aXNs b2NhbCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0 ZV9hdHRjZWsgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dGNlayk7CisJCXNs b3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRyZWFsdHlw aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dHJlYWx0eXBpZCk7CisJCXNs b3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRlbmNhbGcg LSAxXSA9IEludDE2R2V0RGF0dW0oYXR0cnMtPmF0dGVuY2FsZyk7CiAJCXNsb3Rbc2xvdENv dW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpbmhjb3VudCAtIDFdID0g SW50MzJHZXREYXR1bShhdHRycy0+YXR0aW5oY291bnQpOwogCQlzbG90W3Nsb3RDb3VudF0t PnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y29sbGF0aW9uIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGF0dHJzLT5hdHRjb2xsYXRpb24pOwogCQlpZiAoYXR0b3B0aW9ucyAm JiBhdHRvcHRpb25zW25hdHRzXSAhPSAoRGF0dW0pIDApCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCmluZGV4IDI4NGNhNTU0NjllMC4uNjJmZGI2ZDcwYTcwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjksNyArMjksMTAgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9t ZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRh dGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJh aW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMTkxLDYgKzE5NCw0OCBAQCBzdGF0aWMgY29u c3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5W10gPQogCQlPQkpFQ1RfQ09M TEFUSU9OLAogCQl0cnVlCiAJfSwKKwl7CisJCSJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiLAor CQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5FbmNLZXlPaWRJbmRleElkLAor CQlDRUtPSUQsCisJCUNFS05BTUUsCisJCUFudW1fcGdfY29sZW5ja2V5X29pZCwKKwkJQW51 bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUFudW1f cGdfY29sZW5ja2V5X2Nla293bmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJT0JKRUNU X0NFSywKKwkJdHJ1ZQorCX0sCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEi LAorCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwKKwkJQ29sdW1uRW5jS2V5RGF0YU9p ZEluZGV4SWQsCisJCUNFS0RBVEFPSUQsCisJCS0xLAorCQlBbnVtX3BnX2NvbGVuY2tleWRh dGFfb2lkLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJ CUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZh bHNlCisJfSwKKwl7CisJCSJjb2x1bW4gbWFzdGVyIGtleSIsCisJCUNvbHVtbk1hc3Rlcktl eVJlbGF0aW9uSWQsCisJCUNvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsCisJCUNNS09JRCwK KwkJQ01LTkFNRSwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQlBbnVtX3BnX2Nv bG1hc3RlcmtleV9jbWtuYW1lLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJQW51bV9wZ19j b2xtYXN0ZXJrZXlfY21rb3duZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlPQkpFQ1Rf Q01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25zdHJhaW50IiwKIAkJQ29uc3RyYWludFJl bGF0aW9uSWQsCkBAIC03MjMsNiArNzY4LDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Jq ZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9uIiwgT0JKRUNUX0NPTExBVElPTgogCX0s CisJLyogT0NMQVNTX0NFSyAqLworCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSIsIE9C SkVDVF9DRUsKKwl9LAorCS8qIE9DTEFTU19DRUtEQVRBICovCisJeworCQkiY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEiLCBPQkpFQ1RfQ0VLREFUQQorCX0sCisJLyogT0NMQVNTX0NN SyAqLworCXsKKwkJImNvbHVtbiBtYXN0ZXIga2V5IiwgT0JKRUNUX0NNSworCX0sCiAJLyog T0NMQVNTX0NPTlNUUkFJTlQgKi8KIAl7CiAJCSJ0YWJsZSBjb25zdHJhaW50IiwgT0JKRUNU X1RBQkNPTlNUUkFJTlQKQEAgLTEwMjgsNiArMTA4NSw4IEBAIGdldF9vYmplY3RfYWRkcmVz cyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJYWRkcmVzcy5vYmpl Y3RTdWJJZCA9IDA7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfQ0VLOgor CQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQljYXNl IE9CSkVDVF9FWFRFTlNJT046CiAJCQljYXNlIE9CSkVDVF9UQUJMRVNQQUNFOgpAQCAtMTEw Nyw2ICsxMTY2LDIxIEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUs IE5vZGUgKm9iamVjdCwKIAkJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJfQog CQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKKwkJCQl7CisJCQkJCWNoYXIJ ICAgKmNla25hbWUgPSBzdHJWYWwobGluaXRpYWwoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSkp OworCQkJCQljaGFyCSAgICpjbWtuYW1lID0gc3RyVmFsKGxzZWNvbmQoY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSkpOworCQkJCQlPaWQJCQljZWtpZDsKKwkJCQkJT2lkCQkJY21raWQ7CisK KwkJCQkJY2VraWQgPSBnZXRfY2VrX29pZChjZWtuYW1lLCBtaXNzaW5nX29rKTsKKwkJCQkJ Y21raWQgPSBnZXRfY21rX29pZChjbWtuYW1lLCBtaXNzaW5nX29rKTsKKworCQkJCQlhZGRy ZXNzLmNsYXNzSWQgPSBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZDsKKwkJCQkJYWRkcmVz cy5vYmplY3RJZCA9IGdldF9jZWtkYXRhX29pZChjZWtpZCwgY21raWQsIG1pc3Npbmdfb2sp OworCQkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQl9CisJCQkJYnJlYWs7CiAJ CQljYXNlIE9CSkVDVF9UUkFOU0ZPUk06CiAJCQkJewogCQkJCQlUeXBlTmFtZSAgICp0eXBl bmFtZSA9IGxpbml0aWFsX25vZGUoVHlwZU5hbWUsIGNhc3ROb2RlKExpc3QsIG9iamVjdCkp OwpAQCAtMTI5NCw2ICsxMzY4LDE2IEBAIGdldF9vYmplY3RfYWRkcmVzc191bnF1YWxpZmll ZChPYmplY3RUeXBlIG9ianR5cGUsCiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2FtX29p ZChuYW1lLCBtaXNzaW5nX29rKTsKIAkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFkZHJlc3MuY2xhc3NJZCA9IENvbHVt bkVuY0tleVJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Nla19vaWQo bmFtZSwgbWlzc2luZ19vayk7CisJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5N YXN0ZXJLZXlSZWxhdGlvbklkOworCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jbWtfb2lk KG5hbWUsIG1pc3Npbmdfb2spOworCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQli cmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQlhZGRyZXNzLmNsYXNzSWQgPSBE YXRhYmFzZVJlbGF0aW9uSWQ7CiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2RhdGFiYXNl X29pZChuYW1lLCBtaXNzaW5nX29rKTsKQEAgLTIyNTQsNiArMjMzOCw3IEBAIHBnX2dldF9v YmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCSAqLwogCXN3aXRjaCAodHlwZSkK IAl7CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O X05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgogCQkJaWYgKGxpc3Rf bGVuZ3RoKG5hbWUpICE9IDEpCkBAIC0yMzI4LDYgKzI0MTMsOCBAQCBwZ19nZXRfb2JqZWN0 X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBuYW1l OwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CisJCWNhc2UgT0JK RUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToK IAkJY2FzZSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjoKIAkJY2FzZSBPQkpFQ1RfRVhURU5TSU9O OgpAQCAtMjM1OCw2ICsyNDQ1LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNU SU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCW9iam5vZGUg PSAoTm9kZSAqKSBsaXN0X21ha2UyKG5hbWUsIGxpbml0aWFsKGFyZ3MpKTsKIAkJCWJyZWFr OworCQljYXNlIE9CSkVDVF9DRUtEQVRBOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9O QU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKIAkJCW9iam5vZGUgPSAo Tm9kZSAqKSBsaXN0X21ha2UyKGxpbml0aWFsKG5hbWUpLCBsaW5pdGlhbChhcmdzKSk7CkBA IC0yNjM1LDYgKzI3MjMsMTYgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlk LCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQlhY2xj aGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgTmFt ZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQkJaWYgKCFwZ19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfb3du ZXJjaGVjayhhZGRyZXNzLm9iamVjdElkLCByb2xlaWQpKQorCQkJCWFjbGNoZWNrX2Vycm9y KEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKKwkJCQkJCQkgICBzdHJWYWwob2JqZWN0 KSk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJaWYgKCFwZ19jb2x1bW5f bWFzdGVyX2tleV9vd25lcmNoZWNrKGFkZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkpCisJCQkJ YWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBlLAorCQkJCQkJCSAg IHN0clZhbChvYmplY3QpKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0eXBl KTsKQEAgLTMwOTUsNiArMzE5Myw0OCBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJ CX0KIAorCQljYXNlIE9DTEFTU19DRUs6CisJCQl7CisJCQkJY2hhcgkgICAqY2VrbmFtZSA9 IGdldF9jZWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlm IChjZWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBl bmNyeXB0aW9uIGtleSAlcyIpLCBjZWtuYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQlj YXNlIE9DTEFTU19DRUtEQVRBOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9y bV9wZ19jb2xlbmNrZXlkYXRhIGNla2RhdGE7CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNo ZTEoQ0VLREFUQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJ CQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Np bmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElk KTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJY2VrZGF0YSA9IChGb3JtX3BnX2NvbGVu Y2tleWRhdGEpIEdFVFNUUlVDVCh0dXApOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVm ZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXMgZGF0YSBmb3IgbWFzdGVyIGtleSAl cyIpLAorCQkJCQkJCQkgZ2V0X2Nla19uYW1lKGNla2RhdGEtPmNrZGNla2lkLCBmYWxzZSks CisJCQkJCQkJCSBnZXRfY21rX25hbWUoY2VrZGF0YS0+Y2tkY21raWQsIGZhbHNlKSk7CisK KwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNl IE9DTEFTU19DTUs6CisJCQl7CisJCQkJY2hhcgkgICAqY21rbmFtZSA9IGdldF9jbWtfbmFt ZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlmIChjbWtuYW1lKQor CQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBtYXN0ZXIga2V5ICVz IiksIGNta25hbWUpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgT0NMQVNTX0NPTlNU UkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ1MTksNiArNDY1OSwx OCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2Jq ZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZm ZXIsICJjb2xsYXRpb24iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9uIGtl eSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIik7 CisJCQlicmVhazsKKworCQljYXNlIE9DTEFTU19DTUs6CisJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZidWZmZXIsICJjb2x1bW4gbWFzdGVyIGtleSIpOworCQkJYnJlYWs7CisKIAkJ Y2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJCWdldENvbnN0cmFpbnRUeXBlRGVzY3JpcHRp b24oJmJ1ZmZlciwgb2JqZWN0LT5vYmplY3RJZCwKIAkJCQkJCQkJCQkgbWlzc2luZ19vayk7 CkBAIC00OTg0LDYgKzUxMzYsNzQgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xB U1NfQ0VLOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNr ZXkgZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElk R2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIs CisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJ Zm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJICAgcXVvdGVfaWRlbnRpZmll cihOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpv YmpuYW1lID0gbGlzdF9tYWtlMShwc3RyZHVwKE5hbWVTdHIoZm9ybS0+Y2VrbmFtZSkpKTsK KwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNl IE9DTEFTU19DRUtEQVRBOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9w Z19jb2xlbmNrZXlkYXRhIGZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VL REFUQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2sp CisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJ CQkJYnJlYWs7CisJCQkJfQorCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBH RVRTVFJVQ1QodHVwKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJ CSAib2YgJXMgZm9yICVzIiwgZ2V0X2Nla19uYW1lKGZvcm0tPmNrZGNla2lkLCBmYWxzZSks IGdldF9jbWtfbmFtZShmb3JtLT5ja2RjbWtpZCwgZmFsc2UpKTsKKwkJCQlpZiAob2JqbmFt ZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UxKGdldF9jZWtfbmFtZShmb3JtLT5ja2Rj ZWtpZCwgZmFsc2UpKTsKKwkJCQlpZiAob2JqYXJncykKKwkJCQkJKm9iamFyZ3MgPSBsaXN0 X21ha2UxKGdldF9jbWtfbmFtZShmb3JtLT5ja2RjbWtpZCwgZmFsc2UpKTsKKwkJCQlSZWxl YXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19D TUs6CisJCQl7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX2NvbG1hc3Rlcmtl eSBmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRH ZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLAorCQkJ CQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWZvcm0g PSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXApOworCQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX2lkZW50aWZpZXIo TmFtZVN0cihmb3JtLT5jbWtuYW1lKSkpOworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2Jq bmFtZSA9IGxpc3RfbWFrZTEocHN0cmR1cChOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7CisJ CQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBP Q0xBU1NfQ09OU1RSQUlOVDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJY29uVHVwOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxYzcuLjY5ZjYxNzVjNjBlMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgT0JKUyA9IFwKIAlhbmFseXpl Lm8gXAogCWFzeW5jLm8gXAogCWNsdXN0ZXIubyBcCisJY29sZW5jY21kcy5vIFwKIAljb2xs YXRpb25jbWRzLm8gXAogCWNvbW1lbnQubyBcCiAJY29uc3RyYWludC5vIFwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hbHRlci5jCmluZGV4IDU1MjE5YmIwOTc0YS4uNmNhYTIxZTMyNWZiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2FsdGVyLmMKQEAgLTIyLDcgKzIyLDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL2luZGV4 aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCIKQEAgLTgwLDYgKzgyLDEyIEBAIHJl cG9ydF9uYW1lX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpuYW1lKQogCiAJ c3dpdGNoIChjbGFzc0lkKQogCXsKKwkJY2FzZSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOgor CQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wi IGFscmVhZHkgZXhpc3RzIik7CisJCQlicmVhazsKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gbWFzdGVyIGtl eSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEV2ZW50VHJp Z2dlclJlbGF0aW9uSWQ6CiAJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoImV2ZW50IHRyaWdn ZXIgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CiAJCQlicmVhazsKQEAgLTM3NSw2ICszODMs OCBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpzdG10KQogCQkJcmV0dXJuIFJlbmFt ZVR5cGUoc3RtdCk7CiAKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVD VF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgog CQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9FVkVOVF9UUklHR0VS OgpAQCAtNjM5LDYgKzY0OSw5IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xh c3NJZCwgT2lkIG9iamlkLCBPaWQgbnNwT2lkLAogCQkJYnJlYWs7CiAKIAkJY2FzZSBPQ0xB U1NfQ0FTVDoKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQljYXNlIE9DTEFTU19DRUtEQVRBOgor CQljYXNlIE9DTEFTU19DTUs6CiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCWNhc2Ug T0NMQVNTX0RFRkFVTFQ6CiAJCWNhc2UgT0NMQVNTX0xBTkdVQUdFOgpAQCAtODcyLDYgKzg4 NSw4IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAogCQkJ LyogR2VuZXJpYyBjYXNlcyAqLwogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CisJCWNhc2Ug T0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJ T046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0ZVTkNUSU9O OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uYmVmOGYwMGI5ODM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCkBAIC0wLDAgKzEsMzU0IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNjbWRzLmMKKyAqCSAgY29sdW1uLWVu Y3J5cHRpb24tcmVsYXRlZCBjb21tYW5kcyBzdXBwb3J0IGNvZGUKKyAqCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYworICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUg ImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVu Y3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfY29sbWFzdGVya2V5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29sZW5jY21kcy5o IgorI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJ1dGlscy9h Y2wuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCisKK3N0YXRpYyB2b2lkCitwYXJzZV9jZWtfYXR0cmlidXRlcyhQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKmRlZmluaXRpb24sIE9pZCAqY21rb2lkX3AsIGludDE2ICph bGdfcCwgY2hhciAqKmVuY3ZhbF9wKQoreworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0g ICAgKmNta0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICphbGdFbCA9IE5VTEw7CisJRGVmRWxl bSAgICAqZW5jdmFsRWwgPSBOVUxMOworCU9pZAkJCWNta29pZCA9IDA7CisJaW50MTYJCWFs ZzsKKwljaGFyCSAgICplbmN2YWw7CisKKwlBc3NlcnQoY21rb2lkX3ApOworCisJZm9yZWFj aChsYywgZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25v ZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgImNvbHVtbl9tYXN0ZXJfa2V5IikgPT0gMCkKKwkJCWRlZmVs cCA9ICZjbWtFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiYWxnb3Jp dGhtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZhbGdFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRl ZmVsLT5kZWZuYW1lLCAiZW5jcnlwdGVkX3ZhbHVlIikgPT0gMCkKKwkJCWRlZmVscCA9ICZl bmN2YWxFbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0 aW9uIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwKKwkJCQkJCQlkZWZl bC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+ bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpkZWZlbHAgIT0gTlVMTCkKKwkJCWVycm9yQ29u ZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCQkqZGVmZWxwID0gZGVmZWw7CisJ fQorCisJaWYgKGNta0VsKQorCXsKKwkJY2hhcgkgICAqdmFsID0gZGVmR2V0U3RyaW5nKGNt a0VsKTsKKworCQljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfb2lkLCBQb2ludGVyR2V0RGF0dW0odmFsKSk7CisJCWlmICghY21rb2lk KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9P QkpFQ1QpLAorCQkJCQllcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIHZhbCkpOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBc IiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJImNvbHVtbl9tYXN0ZXJfa2V5Iikp KTsKKworCWlmIChhbGdFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9IGRlZkdldFN0cmluZyhh bGdFbCk7CisKKwkJaWYgKCFhbGdfcCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwi JXNcIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJhbGdvcml0aG0iKSkpOwor CisJCWlmIChzdHJjbXAodmFsLCAiUlNBRVNfT0FFUF9TSEFfMSIpID09IDApCisJCQlhbGcg PSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKwkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIlBH X0NNS19SU0FFU19PQUVQX1NIQV8yNTYiKSA9PSAwKQorCQkJYWxnID0gUEdfQ01LX1JTQUVT X09BRVBfU0hBXzI1NjsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJZXJybXNnKCJ1bnJl Y29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06ICVzIiwgdmFsKSk7CisJfQorCWVsc2UK KwkJYWxnID0gUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE7CisKKwlpZiAoZW5jdmFsRWwpCisJ eworCQlpZiAoIWVuY3ZhbF9wKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wi IG11c3Qgbm90IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJImVuY3J5cHRlZF92YWx1ZSIpKSk7 CisKKwkJZW5jdmFsID0gZGVmR2V0U3RyaW5nKGVuY3ZhbEVsKTsKKwl9CisJZWxzZQorCXsK KwkJaWYgKGVuY3ZhbF9wKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11 c3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKwl9CisK KwkqY21rb2lkX3AgPSBjbWtvaWQ7CisJaWYgKGFsZ19wKQorCQkqYWxnX3AgPSBhbGc7CisJ aWYgKGVuY3ZhbF9wKQorCQkqZW5jdmFsX3AgPSBlbmN2YWw7Cit9CisKK3N0YXRpYyB2b2lk CitpbnNlcnRfY2VrZGF0YV9yZWNvcmQoT2lkIGNla29pZCwgT2lkIGNta29pZCwgaW50MTYg YWxnLCBjaGFyICplbmN2YWwpCit7CisJT2lkCQkJY2VrZGF0YW9pZDsKKwlSZWxhdGlvbgly ZWw7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xlbmNrZXlkYXRhXSA9IHswfTsKKwli b29sCQludWxsc1tOYXR0c19wZ19jb2xlbmNrZXlkYXRhXSA9IHswfTsKKwlIZWFwVHVwbGUJ dHVwOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9iamVjdEFkZHJlc3Mgb3RoZXI7CisK KwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCWNla2RhdGFvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBD b2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCk7 CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0oY2VrZGF0YW9pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2Rj ZWtpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjZWtvaWQpOworCXZhbHVlc1tBbnVtX3Bn X2NvbGVuY2tleWRhdGFfY2tkY21raWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lk KTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNta2FsZyAtIDFdID0gSW50 MTZHZXREYXR1bShhbGcpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkZW5j dmFsIC0gMV0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKGJ5dGVhaW4sIENTdHJpbmdHZXREYXR1 bShlbmN2YWwpKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2Ny KHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7 CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBD b2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgY2VrZGF0YW9pZCk7CisKKwkvKiBkZXBlbmRl bmN5IGNla2RhdGEgLT4gY2VrICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwgQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2Vs ZiwgJm90aGVyLCBERVBFTkRFTkNZX0FVVE8pOworCisJLyogZGVwZW5kZW5jeSBjZWtkYXRh IC0+IGNtayAqLworCU9iamVjdEFkZHJlc3NTZXQob3RoZXIsIENvbHVtbk1hc3RlcktleVJl bGF0aW9uSWQsIGNta29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZvdGhl ciwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwor fQorCitPYmplY3RBZGRyZXNzCitDcmVhdGVDRUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZp bmVTdG10ICpzdG10KQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJUmVsYXRpb24JcmVs OworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9pZAkJCWNla29pZDsKKwlMaXN0Q2VsbCAg ICpsYzsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJYm9v bAkJbnVsbHNbTmF0dHNfcGdfY29sZW5ja2V5XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOwor CisJYWNscmVzdWx0ID0gcGdfZGF0YWJhc2VfYWNsY2hlY2soTXlEYXRhYmFzZUlkLCBHZXRV c2VySWQoKSwgQUNMX0NSRUFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykK KwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfREFUQUJBU0UsCisJCQkJCSAg IGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpOworCisJcmVsID0gdGFibGVfb3Bl bihDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNla29p ZCA9IEdldFN5c0NhY2hlT2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJ CQkJCQkJIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkp OworCWlmIChPaWRJc1ZhbGlkKGNla29pZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0clZhbChs bGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJY2Vrb2lkID0gR2V0TmV3T2lkV2l0aElu ZGV4KHJlbCwgQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNrZXlfb2lk KTsKKworCWZvcmVhY2ggKGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsKKwkJTGlzdAkgICAq ZGVmaW5pdGlvbiA9IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJT2lkCQkJY21rb2lkID0g MDsKKwkJaW50MTYJCWFsZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19h dHRyaWJ1dGVzKHBzdGF0ZSwgZGVmaW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7 CisKKwkJLyogcGdfY29sZW5ja2V5ZGF0YSAqLworCQlpbnNlcnRfY2VrZGF0YV9yZWNvcmQo Y2Vrb2lkLCBjbWtvaWQsIGFsZywgZW5jdmFsKTsKKwl9CisKKwkvKiBwZ19jb2xlbmNrZXkg Ki8KKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfb2lkIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5X2Nla25hbWUgLSAxXSA9 CisJCURpcmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0oc3RyVmFs KGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlf Y2Vrb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOworCisJdHVw ID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxs cyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0 dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbkVuY0tleVJlbGF0aW9u SWQsIGNla29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uRW5jS2V5UmVs YXRpb25JZCwgY2Vrb2lkLCBHZXRVc2VySWQoKSk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJv d0V4Y2x1c2l2ZUxvY2spOworCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7Cit9CisK K09iamVjdEFkZHJlc3MKK0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQpCit7CisJT2lkCQkJ Y2Vrb2lkOworCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKworCWNla29pZCA9IGdldF9jZWtf b2lkKHN0bXQtPmNla25hbWUsIGZhbHNlKTsKKworCWlmICghcGdfY29sdW1uX2VuY3J5cHRp b25fa2V5X293bmVyY2hlY2soY2Vrb2lkLCBHZXRVc2VySWQoKSkpCisJCWFjbGNoZWNrX2Vy cm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNUX0NFSywgc3RtdC0+Y2VrbmFtZSk7CisK KwlpZiAoc3RtdC0+aXNEcm9wKQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJT2lkCQkJ Y2VrZGF0YW9pZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJcGFyc2VfY2VrX2F0dHJp YnV0ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAmY21rb2lkLCBOVUxMLCBOVUxMKTsK KwkJY2VrZGF0YW9pZCA9IGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNta29pZCwgZmFsc2Up OworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQs IGNla2RhdGFvaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAw KTsKKwkJLy8gVE9ETzogcHJldmVudCBkZWxldGluZyBhbGwgZGF0YSBlbnRyaWVzIGZvciBh IGtleT8KKwl9CisJZWxzZQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJaW50MTYJCWFs ZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0 ZSwgc3RtdC0+ZGVmaW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7CisJCWlmIChn ZXRfY2VrZGF0YV9vaWQoY2Vrb2lkLCBjbWtvaWQsIHRydWUpKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQllcnJt c2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFkeSBoYXMgZGF0YSBmb3Ig bWFzdGVyIGtleSBcIiVzXCIiLAorCQkJCQkJICAgc3RtdC0+Y2VrbmFtZSwgZ2V0X2Nta19u YW1lKGNta29pZCwgZmFsc2UpKSk7CisJCWluc2VydF9jZWtkYXRhX3JlY29yZChjZWtvaWQs IGNta29pZCwgYWxnLCBlbmN2YWwpOworCX0KKworCUludm9rZU9iamVjdFBvc3RBbHRlckhv b2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKwlPYmplY3RBZGRyZXNz U2V0KGFkZHJlc3MsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla29pZCk7CisKKwlyZXR1 cm4gYWRkcmVzczsKK30KKworT2JqZWN0QWRkcmVzcworQ3JlYXRlQ01LKFBhcnNlU3RhdGUg KnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0Owor CVJlbGF0aW9uCXJlbDsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlPaWQJCQljbWtvaWQ7 CisJTGlzdENlbGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9IE5VTEw7CisJY2hh cgkgICAqcmVhbG07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0g ezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJSGVh cFR1cGxlCXR1cDsKKworCWFjbHJlc3VsdCA9IHBnX2RhdGFiYXNlX2FjbGNoZWNrKE15RGF0 YWJhc2VJZCwgR2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChhY2xyZXN1bHQgIT0g QUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0RBVEFC QVNFLAorCQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKKworCXJl bCA9IHRhYmxlX29wZW4oQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfb2lkLAorCQkJCQkJCSBDU3RyaW5nR2V0RGF0dW0oc3RyVmFsKGxsYXN0 KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwlpZiAoT2lkSXNWYWxpZChjbWtvaWQpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJ CQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwK KwkJCQkJCXN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJZm9yZWFjaChs Yywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0 X25vZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFs bUVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkg YXR0cmlidXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5h bWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9u KSkpOworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5n RGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlm IChyZWFsbUVsKQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVsKTsKKwllbHNlCisJ CXJlYWxtID0gIiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1 bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQpOworCXZh bHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o Y21rb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSAtIDFdID0K KwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1bShzdHJWYWwo bGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3Rlcmtl eV9jbWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRVc2VySWQoKSk7CisJdmFs dWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKHJlYWxtKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERl c2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1 cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCXJlY29yZERlcGVuZGVuY3lPbk93bmVy KENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklkKCkpOworCisJ T2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNt a29pZCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJSW52 b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21r b2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMKaW5kZXggNDQxZjI5ZDY4NGZmLi41MWI4Njg2ZDQ2MzIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEsOSBAQCBFdmVu dFRyaWdnZXJTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUpCiAJCWNhc2Ug T0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVD VF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJ CWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVD VF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0xMDI3LDYgKzEw MzAsOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVjdENsYXNzIG9i amNsYXNzKQogCQljYXNlIE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19DQVNUOgogCQlj YXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xB U1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05TVFJB SU5UOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFTU19ERUZBVUxU OgpAQCAtMjA1Niw2ICsyMDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0 VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FU VFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQlj YXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNU X0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1Rf REVGQVVMVDoKQEAgLTIxMzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2Jq dHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2Fz ZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVD VF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJ Y2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQlj YXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA5 YjM1MGQwMjVmZmMuLjZlMjZlMTU4YzQ0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQKQEAgLTUsNiArNSw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ2FuYWx5 emUuYycsCiAgICdhc3luYy5jJywKICAgJ2NsdXN0ZXIuYycsCisgICdjb2xlbmNjbWRzLmMn LAogICAnY29sbGF0aW9uY21kcy5jJywKICAgJ2NvbW1lbnQuYycsCiAgICdjb25zdHJhaW50 LmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGM0YjU0ZDA1NDc1Ny4uNjVkZGUz MjQ0MTllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC01MCw3ICs1MCw2IEBAIHN0 YXRpYyB2b2lkIEluaXRRdWVyeUhhc2hUYWJsZSh2b2lkKTsKIHN0YXRpYyBQYXJhbUxpc3RJ bmZvIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCVByZXBh cmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQkJCQkJCQkJRVN0YXRlICpl c3RhdGUpOwotc3RhdGljIERhdHVtIGJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90 eXBlcywgaW50IG51bV9wYXJhbXMpOwogCiAvKgogICogSW1wbGVtZW50cyB0aGUgJ1BSRVBB UkUnIHV0aWxpdHkgc3RhdGVtZW50LgpAQCAtNjIsNiArNjEsOCBAQCBQcmVwYXJlUXVlcnko UGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwKIAlSYXdTdG10ICAgICpy YXdzdG10OwogCUNhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2U7CiAJT2lkCQkgICAqYXJn dHlwZXMgPSBOVUxMOworCU9pZAkJICAgKmFyZ29yaWd0YmxzID0gTlVMTDsKKwlBdHRyTnVt YmVyICphcmdvcmlnY29scyA9IE5VTEw7CiAJaW50CQkJbmFyZ3M7CiAJTGlzdAkgICAqcXVl cnlfbGlzdDsKIApAQCAtMTA4LDYgKzEwOSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRl ICpwc3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCiAJCQlhcmd0eXBlc1tpKytdID0gdG9p ZDsKIAkJfQorCisJCWFyZ29yaWd0YmxzID0gcGFsbG9jMF9hcnJheShPaWQsIG5hcmdzKTsK KwkJYXJnb3JpZ2NvbHMgPSBwYWxsb2MwX2FycmF5KEF0dHJOdW1iZXIsIG5hcmdzKTsKIAl9 CiAKIAkvKgpAQCAtMTE3LDcgKzEyMSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpw c3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCSAqIFJld3JpdGUgdGhlIHF1ZXJ5LiBUaGUg cmVzdWx0IGNvdWxkIGJlIDAsIDEsIG9yIG1hbnkgcXVlcmllcy4KIAkgKi8KIAlxdWVyeV9s aXN0ID0gcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMocmF3c3RtdCwgcHN0YXRl LT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkJCQkgICZhcmd0eXBlcywgJm5hcmdzLCBOVUxM KTsKKwkJCQkJCQkJCQkJCSAgJmFyZ3R5cGVzLCAmbmFyZ3MsCisJCQkJCQkJCQkJCQkgICZh cmdvcmlndGJscywgJmFyZ29yaWdjb2xzLAorCQkJCQkJCQkJCQkJICBOVUxMKTsKIAogCS8q IEZpbmlzaCBmaWxsaW5nIGluIHRoZSBDYWNoZWRQbGFuU291cmNlICovCiAJQ29tcGxldGVD YWNoZWRQbGFuKHBsYW5zb3VyY2UsCkBAIC0xMjUsNiArMTMxLDggQEAgUHJlcGFyZVF1ZXJ5 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAJCQkJCSAgIE5VTEws CiAJCQkJCSAgIGFyZ3R5cGVzLAogCQkJCQkgICBuYXJncywKKwkJCQkJICAgYXJnb3JpZ3Ri bHMsCisJCQkJCSAgIGFyZ29yaWdjb2xzLAogCQkJCQkgICBOVUxMLAogCQkJCQkgICBOVUxM LAogCQkJCQkgICBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLAkvKiBhbGxvdyBwYXJhbGxlbCBt b2RlICovCkBAIC02ODMsMzQgKzY5MSw0OSBAQCBwZ19wcmVwYXJlZF9zdGF0ZW1lbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkJaGFzaF9zZXFfaW5pdCgmaGFzaF9zZXEsIHByZXBhcmVkX3F1 ZXJpZXMpOwogCQl3aGlsZSAoKHByZXBfc3RtdCA9IGhhc2hfc2VxX3NlYXJjaCgmaGFzaF9z ZXEpKSAhPSBOVUxMKQogCQl7CisJCQlpbnQJCQludW1fcGFyYW1zID0gcHJlcF9zdG10LT5w bGFuc291cmNlLT5udW1fcGFyYW1zOwogCQkJVHVwbGVEZXNjCXJlc3VsdF9kZXNjOwotCQkJ RGF0dW0JCXZhbHVlc1s4XTsKLQkJCWJvb2wJCW51bGxzWzhdID0gezB9OworCQkJRGF0dW0J ICAgKnRtcF9hcnk7CisJCQlEYXR1bQkJdmFsdWVzWzEwXTsKKwkJCWJvb2wJCW51bGxzWzEw XSA9IHswfTsKIAogCQkJcmVzdWx0X2Rlc2MgPSBwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnJl c3VsdERlc2M7CiAKIAkJCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocHJlcF9z dG10LT5zdG10X25hbWUpOwogCQkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRleHREYXR1bShw cmVwX3N0bXQtPnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CiAJCQl2YWx1ZXNbMl0gPSBU aW1lc3RhbXBUekdldERhdHVtKHByZXBfc3RtdC0+cHJlcGFyZV90aW1lKTsKLQkJCXZhbHVl c1szXSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXkocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJh bV90eXBlcywKLQkJCQkJCQkJCQkJcHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fcGFyYW1z KTsKKworCQkJdG1wX2FyeSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX3BhcmFtcyk7CisJ CQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ld ID0gT2JqZWN0SWRHZXREYXR1bShwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnBhcmFtX3R5cGVz W2ldKTsKKwkJCXZhbHVlc1szXSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlf YnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBSRUdUWVBFT0lEKSk7CisKKwkJCXRtcF9h cnkgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bV9wYXJhbXMpOworCQkJZm9yIChpbnQgaSA9 IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0 RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV9vcmlndGJsc1tpXSk7CisJCQl2 YWx1ZXNbNF0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1w X2FyeSwgbnVtX3BhcmFtcywgUkVHQ0xBU1NPSUQpKTsKKworCQkJdG1wX2FyeSA9IHBhbGxv Y19hcnJheShEYXR1bSwgbnVtX3BhcmFtcyk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51 bV9wYXJhbXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gSW50MTZHZXREYXR1bShwcmVwX3N0 bXQtPnBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzW2ldKTsKKwkJCXZhbHVlc1s1XSA9IFBv aW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFy YW1zLCBJTlQyT0lEKSk7CisKIAkJCWlmIChyZXN1bHRfZGVzYykKIAkJCXsKLQkJCQlPaWQJ CSAgICpyZXN1bHRfdHlwZXM7Ci0KLQkJCQlyZXN1bHRfdHlwZXMgPSBwYWxsb2NfYXJyYXko T2lkLCByZXN1bHRfZGVzYy0+bmF0dHMpOworCQkJCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXko RGF0dW0sIHJlc3VsdF9kZXNjLT5uYXR0cyk7CiAJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBy ZXN1bHRfZGVzYy0+bmF0dHM7IGkrKykKLQkJCQkJcmVzdWx0X3R5cGVzW2ldID0gcmVzdWx0 X2Rlc2MtPmF0dHJzW2ldLmF0dHR5cGlkOwotCQkJCXZhbHVlc1s0XSA9IGJ1aWxkX3JlZ3R5 cGVfYXJyYXkocmVzdWx0X3R5cGVzLCByZXN1bHRfZGVzYy0+bmF0dHMpOworCQkJCQl0bXBf YXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShyZXN1bHRfZGVzYy0+YXR0cnNbaV0uYXR0dHlw aWQpOworCQkJCXZhbHVlc1s2XSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlf YnVpbHRpbih0bXBfYXJ5LCByZXN1bHRfZGVzYy0+bmF0dHMsIFJFR1RZUEVPSUQpKTsKIAkJ CX0KIAkJCWVsc2UKIAkJCXsKIAkJCQkvKiBubyByZXN1bHQgZGVzY3JpcHRvciAoZm9yIGV4 YW1wbGUsIERNTCBzdGF0ZW1lbnQpICovCi0JCQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCW51 bGxzWzZdID0gdHJ1ZTsKIAkJCX0KLQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShwcmVw X3N0bXQtPmZyb21fc3FsKTsKLQkJCXZhbHVlc1s2XSA9IEludDY0R2V0RGF0dW1GYXN0KHBy ZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2dlbmVyaWNfcGxhbnMpOwotCQkJdmFsdWVzWzdd ID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fY3VzdG9t X3BsYW5zKTsKKworCQkJdmFsdWVzWzddID0gQm9vbEdldERhdHVtKHByZXBfc3RtdC0+ZnJv bV9zcWwpOworCQkJdmFsdWVzWzhdID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5w bGFuc291cmNlLT5udW1fZ2VuZXJpY19wbGFucyk7CisJCQl2YWx1ZXNbOV0gPSBJbnQ2NEdl dERhdHVtRmFzdChwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPm51bV9jdXN0b21fcGxhbnMpOwog CiAJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLAogCQkJCQkJCQkgdmFsdWVzLCBudWxscyk7CkBAIC03MTksMjQgKzc0MiwzIEBA IHBnX3ByZXBhcmVkX3N0YXRlbWVudChQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KLQotLyoKLSAqIFRoaXMgdXRpbGl0eSBmdW5jdGlvbiB0YWtlcyBhIEMg YXJyYXkgb2YgT2lkcywgYW5kIHJldHVybnMgYSBEYXR1bQotICogcG9pbnRpbmcgdG8gYSBv bmUtZGltZW5zaW9uYWwgUG9zdGdyZXMgYXJyYXkgb2YgcmVndHlwZXMuIEFuIGVtcHR5Ci0g KiBhcnJheSBpcyByZXR1cm5lZCBhcyBhIHplcm8tZWxlbWVudCBhcnJheSwgbm90IE5VTEwu Ci0gKi8KLXN0YXRpYyBEYXR1bQotYnVpbGRfcmVndHlwZV9hcnJheShPaWQgKnBhcmFtX3R5 cGVzLCBpbnQgbnVtX3BhcmFtcykKLXsKLQlEYXR1bQkgICAqdG1wX2FyeTsKLQlBcnJheVR5 cGUgICpyZXN1bHQ7Ci0JaW50CQkJaTsKLQotCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXkoRGF0 dW0sIG51bV9wYXJhbXMpOwotCi0JZm9yIChpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykK LQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocGFyYW1fdHlwZXNbaV0pOwotCi0J cmVzdWx0ID0gY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywg UkVHVFlQRU9JRCk7Ci0JcmV0dXJuIFBvaW50ZXJHZXREYXR1bShyZXN1bHQpOwotfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggN2FlMTliOThiYjlhLi4wN2FkNjQ2YTUyMGMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtNjYsNiArNjYsOSBAQCBTZWNMYWJl bFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNU X0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNU OgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2Ug T0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9D T05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwppbmRleCA3ZDhhNzVkMjNjMmQuLmU5YjUwZTMzM2E0ZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZXBlbmQuaCIKQEAg LTYzNiw2ICs2MzcsNyBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVm cyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9y ZWlnbktleVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJp YnV0ZUNvbXByZXNzaW9uKE9pZCBhdHR0eXBpZCwgY2hhciAqY29tcHJlc3Npb24pOwogc3Rh dGljIGNoYXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIg KnN0b3JhZ2Vtb2RlKTsKK3N0YXRpYyB2b2lkIEdldENvbHVtbkVuY3J5cHRpb24oY29uc3Qg TGlzdCAqY29sZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cik7CiAKIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpAQCAtOTM1LDYgKzkzNyw5IEBAIERlZmluZVJlbGF0aW9uKENyZWF0 ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCQlhdHRyLT5hdHRj b21wcmVzc2lvbiA9IEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKGF0dHItPmF0dHR5cGlkLAog CQkJCQkJCQkJCQkJCQkgICBjb2xEZWYtPmNvbXByZXNzaW9uKTsKIAorCQlpZiAoY29sRGVm LT5lbmNyeXB0aW9uKQorCQkJR2V0Q29sdW1uRW5jcnlwdGlvbihjb2xEZWYtPmVuY3J5cHRp b24sIGF0dHIpOworCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2VfbmFtZSkKIAkJCWF0dHItPmF0 dHN0b3JhZ2UgPSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHItPmF0dHR5cGlkLCBjb2xEZWYt PnN0b3JhZ2VfbmFtZSk7CiAJfQpAQCAtNjg3MCw2ICs2ODc1LDE0IEBAIEFURXhlY0FkZENv bHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAlhdHRyaWJ1dGUuYXR0aXNsb2NhbCA9IGNvbERlZi0+aXNfbG9jYWw7CiAJYXR0cmli dXRlLmF0dGluaGNvdW50ID0gY29sRGVmLT5pbmhjb3VudDsKIAlhdHRyaWJ1dGUuYXR0Y29s bGF0aW9uID0gY29sbE9pZDsKKwlpZiAoY29sRGVmLT5lbmNyeXB0aW9uKQorCQlHZXRDb2x1 bW5FbmNyeXB0aW9uKGNvbERlZi0+ZW5jcnlwdGlvbiwgJmF0dHJpYnV0ZSk7CisJZWxzZQor CXsKKwkJYXR0cmlidXRlLmF0dGNlayA9IDA7CisJCWF0dHJpYnV0ZS5hdHRyZWFsdHlwaWQg PSAwOworCQlhdHRyaWJ1dGUuYXR0ZW5jYWxnID0gMDsKKwl9CiAKIAlSZWxlYXNlU3lzQ2Fj aGUodHlwZVR1cGxlKTsKIApAQCAtMTI2NjQsNiArMTI2NzcsOSBAQCBBVEV4ZWNBbHRlckNv bHVtblR5cGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQljYXNl IE9DTEFTU19UWVBFOgogCQkJY2FzZSBPQ0xBU1NfQ0FTVDoKIAkJCWNhc2UgT0NMQVNTX0NP TExBVElPTjoKKwkJCWNhc2UgT0NMQVNTX0NFSzoKKwkJCWNhc2UgT0NMQVNTX0NFS0RBVEE6 CisJCQljYXNlIE9DTEFTU19DTUs6CiAJCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQkJ Y2FzZSBPQ0xBU1NfTEFOR1VBR0U6CiAJCQljYXNlIE9DTEFTU19MQVJHRU9CSkVDVDoKQEAg LTE5Mjk5LDMgKzE5MzE1LDgzIEBAIEdldEF0dHJpYnV0ZVN0b3JhZ2UoT2lkIGF0dHR5cGlk LCBjb25zdCBjaGFyICpzdG9yYWdlbW9kZSkKIAogCXJldHVybiBjc3RvcmFnZTsKIH0KKwor LyoKKyAqIHJlc29sdmUgY29sdW1uIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbgorICovCitz dGF0aWMgdm9pZAorR2V0Q29sdW1uRW5jcnlwdGlvbihjb25zdCBMaXN0ICpjb2xkZWZlbmNy eXB0aW9uLCBGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyKQoreworCUxpc3RDZWxsICAgKmxjOwor CWNoYXIJICAgKmNlayA9IE5VTEw7CisJT2lkCQkJY2Vrb2lkOworCWJvb2wJCWVuY2RldCA9 IGZhbHNlOworCWludAkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hB XzI1NjsKKworCWZvcmVhY2gobGMsIGNvbGRlZmVuY3J5cHRpb24pCisJeworCQlEZWZFbGVt ICAgICplbCA9IGxmaXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKworCQlpZiAoc3RyY21wKGVs LT5kZWZuYW1lLCAiY29sdW1uX2VuY3J5cHRpb25fa2V5IikgPT0gMCkKKwkJCWNlayA9IHN0 clZhbChsaW5pdGlhbChjYXN0Tm9kZShUeXBlTmFtZSwgZWwtPmFyZyktPm5hbWVzKSk7CisJ CWVsc2UgaWYgKHN0cmNtcChlbC0+ZGVmbmFtZSwgImVuY3J5cHRpb25fdHlwZSIpID09IDAp CisJCXsKKwkJCWNoYXIJICAgKnZhbCA9IHN0clZhbChsaW5pdGlhbChjYXN0Tm9kZShUeXBl TmFtZSwgZWwtPmFyZyktPm5hbWVzKSk7CisKKwkJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJt aW5pc3RpYyIpID09IDApCisJCQkJZW5jZGV0ID0gdHJ1ZTsKKwkJCWVsc2UgaWYgKHN0cmNt cCh2YWwsICJyYW5kb21pemVkIikgPT0gMCkKKwkJCQllbmNkZXQgPSBmYWxzZTsKKwkJCWVs c2UKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRp b24gdHlwZTogJXMiLCB2YWwpKTsKKwkJfQorCQllbHNlIGlmIChzdHJjbXAoZWwtPmRlZm5h bWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICp2YWwgPSBzdHJWYWwo ZWwtPmFyZyk7CisKKwkJCWlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMTI4X0NCQ19ITUFD X1NIQV8yNTYiKSA9PSAwKQorCQkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hN QUNfU0hBXzI1NjsKKwkJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJBRUFEX0FFU18xOTJfQ0JD X0hNQUNfU0hBXzM4NCIpID09IDApCisJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzE5Ml9D QkNfSE1BQ19TSEFfMzg0OworCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIkFFQURfQUVTXzI1 Nl9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJCQlhbGcgPSBQR19DRUtfQUVBRF9BRVNf MjU2X0NCQ19ITUFDX1NIQV8zODQ7CisJCQllbHNlIGlmIChzdHJjbXAodmFsLCAiQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV81MTIiKSA9PSAwKQorCQkJCWFsZyA9IFBHX0NFS19BRUFE X0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjsKKwkJCWVsc2UKKwkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJ CQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAlcyIsIHZh bCkpOworCQl9CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygidW5yZWNvZ25p emVkIGNvbHVtbiBlbmNyeXB0aW9uIHBhcmFtZXRlcjogJXMiLCBlbC0+ZGVmbmFtZSkpOwor CX0KKworCWlmICghY2VrKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJCQllcnJtc2coImNvbHVtbiBlbmNy eXB0aW9uIGtleSBtdXN0IGJlIHNwZWNpZmllZCIpKTsKKworCWNla29pZCA9IEdldFN5c0Nh Y2hlT2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsIFBvaW50ZXJHZXREYXR1 bShjZWspKTsKKwlpZiAoIWNla29pZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlw dGlvbiBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY2VrKSk7CisKKwlhdHRyLT5hdHRj ZWsgPSBjZWtvaWQ7CisJYXR0ci0+YXR0cmVhbHR5cGlkID0gYXR0ci0+YXR0dHlwaWQ7CisJ YXR0ci0+YXR0ZW5jYWxnID0gYWxnOworCisJLyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAq LworCWlmIChlbmNkZXQpCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX0RFVE9J RDsKKwllbHNlCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX1JORE9JRDsKKwln ZXRfdHlwbGVuYnl2YWxhbGlnbihhdHRyLT5hdHR0eXBpZCwKKwkJCQkJCSAmYXR0ci0+YXR0 bGVuLCAmYXR0ci0+YXR0Ynl2YWwsICZhdHRyLT5hdHRhbGlnbik7CisJYXR0ci0+YXR0c3Rv cmFnZSA9IGdldF90eXBzdG9yYWdlKGF0dHItPmF0dHR5cGlkKTsKKwlhdHRyLT5hdHRjb2xs YXRpb24gPSBJbnZhbGlkT2lkOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKaW5kZXgg Yzc5NWNiN2EyOWNlLi42Y2FkMjdiZjU5N2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUu YwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncHJlZmV0Y2hlci5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0 cmluZy5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibWIvcGdf d2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwb3N0bWFzdGVy L3Bvc3RtYXN0ZXIuaCIKQEAgLTcwNiw3ICs3MDcsMTEgQEAgY2hlY2tfY2xpZW50X2VuY29k aW5nKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAkg Ki8KIAlpZiAoUHJlcGFyZUNsaWVudEVuY29kaW5nKGVuY29kaW5nKSA8IDApCiAJewotCQlp ZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5j cnlwdGlvbl9lbmFibGVkKQorCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiQ29udmVyc2lvbiBi ZXR3ZWVuICVzIGFuZCAlcyBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlv biBpcyBlbmFibGVkLiIsCisJCQkJCQkJCWNhbm9uaWNhbF9uYW1lLAorCQkJCQkJCQlHZXRE YXRhYmFzZUVuY29kaW5nTmFtZSgpKTsKKwkJZWxzZSBpZiAoSXNUcmFuc2FjdGlvblN0YXRl KCkpCiAJCXsKIAkJCS8qIE11c3QgYmUgYSBnZW51aW5lIG5vLXN1Y2gtY29udmVyc2lvbiBw cm9ibGVtICovCiAJCQlHVUNfY2hlY2tfZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IDI5YmMyNjY2OWIwMC4uY2RlNWIwZTA4 NzBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYwpAQCAtMjI3OSw2ICsyMjc5LDggQEAgX1NQSV9wcmVw YXJlX3BsYW4oY29uc3QgY2hhciAqc3JjLCBTUElQbGFuUHRyIHBsYW4pCiAJCQkJCQkgICBO VUxMLAogCQkJCQkJICAgcGxhbi0+YXJndHlwZXMsCiAJCQkJCQkgICBwbGFuLT5uYXJncywK KwkJCQkJCSAgIE5VTEwsCisJCQkJCQkgICBOVUxMLAogCQkJCQkJICAgcGxhbi0+cGFyc2Vy U2V0dXAsCiAJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJCSAgIHBsYW4t PmN1cnNvcl9vcHRpb25zLApAQCAtMjUxNiw2ICsyNTE4LDggQEAgX1NQSV9leGVjdXRlX3Bs YW4oU1BJUGxhblB0ciBwbGFuLCBjb25zdCBTUElFeGVjdXRlT3B0aW9ucyAqb3B0aW9ucywK IAkJCQkJCQkgICBOVUxMLAogCQkJCQkJCSAgIHBsYW4tPmFyZ3R5cGVzLAogCQkJCQkJCSAg IHBsYW4tPm5hcmdzLAorCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgTlVMTCwKIAkJCQkJ CQkgICBwbGFuLT5wYXJzZXJTZXR1cCwKIAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFy ZywKIAkJCQkJCQkgICBwbGFuLT5jdXJzb3Jfb3B0aW9ucywKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMKaW5kZXggMGE3YjIyZjk3ZTdiLi5hNTQ5Yjk4NWQzNjUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVG dW5jcy5jCkBAIC00MDA2LDYgKzQwMDYsOCBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtl cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChXQUxLKGNv bGRlZi0+Y29tcHJlc3Npb24pKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhj b2xkZWYtPmVuY3J5cHRpb24pKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhj b2xkZWYtPnJhd19kZWZhdWx0KSkKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEso Y29sZGVmLT5jb2xsQ2xhdXNlKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDY2ODhjMmE4 NjViOC4uY2U5YjdhNWY1ZjM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE0NSw2ICsx NDUsNyBAQCBwYXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwg Y29uc3QgY2hhciAqc291cmNlVGV4dCwKIFF1ZXJ5ICoKIHBhcnNlX2FuYWx5emVfdmFycGFy YW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJ CU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJT2lkICoqcGFyYW1P cmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMsCiAJCQkJCQlRdWVyeUVudmly b25tZW50ICpxdWVyeUVudikKIHsKIAlQYXJzZVN0YXRlICpwc3RhdGUgPSBtYWtlX3BhcnNl c3RhdGUoTlVMTCk7CkBAIC0xNTUsNyArMTU2LDcgQEAgcGFyc2VfYW5hbHl6ZV92YXJwYXJh bXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogCiAJcHN0 YXRlLT5wX3NvdXJjZXRleHQgPSBzb3VyY2VUZXh0OwogCi0Jc2V0dXBfcGFyc2VfdmFyaWFi bGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFtcyk7CisJc2V0dXBf cGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFt cywgcGFyYW1PcmlnVGJscywgcGFyYW1PcmlnQ29scyk7CiAKIAlwc3RhdGUtPnBfcXVlcnlF bnYgPSBxdWVyeUVudjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMGQ4ZDI5Mjg1MDljLi4xOTBm YjY2YWE5MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiB9CiAKICV0eXBlIDxub2RlPglzdG10IHRvcGxldmVsX3N0 bXQgc2NoZW1hX3N0bXQgcm91dGluZV9ib2R5X3N0bXQKLQkJQWx0ZXJFdmVudFRyaWdTdG10 IEFsdGVyQ29sbGF0aW9uU3RtdAorCQlBbHRlckV2ZW50VHJpZ1N0bXQgQWx0ZXJDb2xsYXRp b25TdG10IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKIAkJQWx0ZXJEYXRhYmFzZVN0 bXQgQWx0ZXJEYXRhYmFzZVNldFN0bXQgQWx0ZXJEb21haW5TdG10IEFsdGVyRW51bVN0bXQK IAkJQWx0ZXJGZHdTdG10IEFsdGVyRm9yZWlnblNlcnZlclN0bXQgQWx0ZXJHcm91cFN0bXQK IAkJQWx0ZXJPYmplY3REZXBlbmRzU3RtdCBBbHRlck9iamVjdFNjaGVtYVN0bXQgQWx0ZXJP d25lclN0bXQKQEAgLTQyMCw2ICs0MjAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCiAldHlwZSA8bGlzdD4JcGFyc2VfdG9wbGV2ZWwgc3RtdG11bHRpIHJvdXRpbmVfYm9k eV9zdG10X2xpc3QKIAkJCQlPcHRUYWJsZUVsZW1lbnRMaXN0IFRhYmxlRWxlbWVudExpc3Qg T3B0SW5oZXJpdCBkZWZpbml0aW9uCisJCQkJbGlzdF9vZl9kZWZpbml0aW9ucwogCQkJCU9w dFR5cGVkVGFibGVFbGVtZW50TGlzdCBUeXBlZFRhYmxlRWxlbWVudExpc3QKIAkJCQlyZWxv cHRpb25zIG9wdF9yZWxvcHRpb25zCiAJCQkJT3B0V2l0aCBvcHRfZGVmaW5pdGlvbiBmdW5j X2FyZ3MgZnVuY19hcmdzX2xpc3QKQEAgLTU5Myw2ICs1OTQsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CVRhYmxlQ29uc3RyYWludCBUYWJsZUxpa2VD bGF1c2UKICV0eXBlIDxpdmFsPglUYWJsZUxpa2VPcHRpb25MaXN0IFRhYmxlTGlrZU9wdGlv bgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21wcmVzc2lvbiBvcHRfY29sdW1uX2NvbXByZXNz aW9uIGNvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fc3RvcmFnZQorJXR5cGUgPGxpc3Q+CW9w dF9jb2x1bW5fZW5jcnlwdGlvbgogJXR5cGUgPGxpc3Q+CUNvbFF1YWxMaXN0CiAldHlwZSA8 bm9kZT4JQ29sQ29uc3RyYWludCBDb2xDb25zdHJhaW50RWxlbSBDb25zdHJhaW50QXR0cgog JXR5cGUgPGl2YWw+CWtleV9tYXRjaApAQCAtNjkxLDggKzY5Myw4IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJREVUQUNIIERJQ1RJT05BUlkgRElTQUJMRV9QIERJU0NBUkQg RElTVElOQ1QgRE8gRE9DVU1FTlRfUCBET01BSU5fUAogCURPVUJMRV9QIERST1AKIAotCUVB Q0ggRUxTRSBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVTQ0FQ RSBFVkVOVCBFWENFUFQKLQlFWENMVURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhFQ1VURSBF WElTVFMgRVhQTEFJTiBFWFBSRVNTSU9OCisJRUFDSCBFTFNFIEVOQUJMRV9QIEVOQ09ESU5H IEVOQ1JZUFRJT04gRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFU0NBUEUKKwlFVkVOVCBFWENF UFQgRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExBSU4g RVhQUkVTU0lPTgogCUVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAKIAlGQUxTRV9QIEZB TUlMWSBGRVRDSCBGSUxURVIgRklOQUxJWkUgRklSU1RfUCBGTE9BVF9QIEZPTExPV0lORyBG T1IKQEAgLTcxNSw3ICs3MTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUxF QURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9B RCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9D S0VEIExPR0dFRAogCi0JTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhW QUxVRSBNRVJHRSBNRVRIT0QKKwlNQVBQSU5HIE1BU1RFUiBNQVRDSCBNQVRDSEVEIE1BVEVS SUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxVRSBNT0RF IE1PTlRIX1AgTU9WRQogCiAJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIg TkVXIE5FWFQgTkZDIE5GRCBORktDIE5GS0QgTk8gTk9ORQpAQCAtOTQzLDYgKzk0NSw3IEBA IHRvcGxldmVsX3N0bXQ6CiBzdG10OgogCQkJQWx0ZXJFdmVudFRyaWdTdG10CiAJCQl8IEFs dGVyQ29sbGF0aW9uU3RtdAorCQkJfCBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10CiAJ CQl8IEFsdGVyRGF0YWJhc2VTdG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTZXRTdG10CiAJCQl8 IEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10CkBAIC0zNjgxLDE0ICszNjg0LDE1IEBAIFR5 cGVkVGFibGVFbGVtZW50OgogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsg fQogCQk7CiAKLWNvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdl IG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFs TGlzdAorY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX2VuY3J5cHRpb24g b3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVy aWNfb3B0aW9ucyBDb2xRdWFsTGlzdAogCQkJCXsKIAkJCQkJQ29sdW1uRGVmICpuID0gbWFr ZU5vZGUoQ29sdW1uRGVmKTsKIAogCQkJCQluLT5jb2xuYW1lID0gJDE7CiAJCQkJCW4tPnR5 cGVOYW1lID0gJDI7Ci0JCQkJCW4tPnN0b3JhZ2VfbmFtZSA9ICQzOwotCQkJCQluLT5jb21w cmVzc2lvbiA9ICQ0OworCQkJCQluLT5lbmNyeXB0aW9uID0gJDM7CisJCQkJCW4tPnN0b3Jh Z2VfbmFtZSA9ICQ0OworCQkJCQluLT5jb21wcmVzc2lvbiA9ICQ1OwogCQkJCQluLT5pbmhj b3VudCA9IDA7CiAJCQkJCW4tPmlzX2xvY2FsID0gdHJ1ZTsKIAkJCQkJbi0+aXNfbm90X251 bGwgPSBmYWxzZTsKQEAgLTM2OTcsOCArMzcwMSw4IEBAIGNvbHVtbkRlZjoJQ29sSWQgVHlw ZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRl X2dlbmVyCiAJCQkJCW4tPnJhd19kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29va2VkX2Rl ZmF1bHQgPSBOVUxMOwogCQkJCQluLT5jb2xsT2lkID0gSW52YWxpZE9pZDsKLQkJCQkJbi0+ ZmR3b3B0aW9ucyA9ICQ1OwotCQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ2LCAmbi0+Y29uc3Ry YWludHMsICZuLT5jb2xsQ2xhdXNlLAorCQkJCQluLT5mZHdvcHRpb25zID0gJDY7CisJCQkJ CVNwbGl0Q29sUXVhbExpc3QoJDcsICZuLT5jb25zdHJhaW50cywgJm4tPmNvbGxDbGF1c2Us CiAJCQkJCQkJCQkgeXlzY2FubmVyKTsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwpAQCAtMzc1NSw2ICszNzU5LDExIEBAIG9wdF9jb2x1bW5fY29t cHJlc3Npb246CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwog CitvcHRfY29sdW1uX2VuY3J5cHRpb246CisJCQlFTkNSWVBURUQgV0lUSCAnKCcgZGVmX2xp c3QgJyknCQkJeyAkJCA9ICQ0OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5V TEw7IH0KKwkJOworCiBjb2x1bW5fc3RvcmFnZToKIAkJCVNUT1JBR0UgQ29sSWQJCQkJCQkJ eyAkJCA9ICQyOyB9CiAJCTsKQEAgLTYyNTAsNiArNjI1OSwyNCBAQCBEZWZpbmVTdG10Ogog CQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBXSVRI IFZBTFVFUyBsaXN0X29mX2RlZmluaXRpb25zCisJCQkJeworCQkJCQlEZWZpbmVTdG10ICpu ID0gbWFrZU5vZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9DRUs7 CisJCQkJCW4tPmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAkODsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBNQVNURVIg S0VZIGFueV9uYW1lIFdJVEggZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAq biA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ01L OworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gJDc7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogZGVmaW5pdGlvbjogJygnIGRl Zl9saXN0ICcpJwkJCQkJCXsgJCQgPSAkMjsgfQpAQCAtNjI2OSw2ICs2Mjk2LDEwIEBAIGRl Zl9lbGVtOglDb2xMYWJlbCAnPScgZGVmX2FyZwogCQkJCX0KIAkJOwogCitsaXN0X29mX2Rl ZmluaXRpb25zOiBkZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJ CQl8IGxpc3Rfb2ZfZGVmaW5pdGlvbnMgJywnIGRlZmluaXRpb24JeyAkJCA9IGxhcHBlbmQo JDEsICQzKTsgfQorCQk7CisKIC8qIE5vdGU6IGFueSBzaW1wbGUgaWRlbnRpZmllciB3aWxs IGJlIHJldHVybmVkIGFzIGEgdHlwZSBuYW1lISAqLwogZGVmX2FyZzoJZnVuY190eXBlCQkJ CQkJeyAkJCA9IChOb2RlICopICQxOyB9CiAJCQl8IHJlc2VydmVkX2tleXdvcmQJCQkJeyAk JCA9IChOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cCgkMSkpOyB9CkBAIC02ODA0LDYgKzY4 MzUsOCBAQCBvYmplY3RfdHlwZV9uYW1lOgogCiBkcm9wX3R5cGVfbmFtZToKIAkJCUFDQ0VT UyBNRVRIT0QJCQkJCQkJeyAkJCA9IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOyB9CisJCQl8IENP TFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVDVF9DRUs7IH0KKwkJCXwgQ09M VU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NNSzsgfQogCQkJfCBFVkVOVCBU UklHR0VSCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjsgfQogCQkJfCBFWFRF TlNJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVhURU5TSU9OOyB9CiAJCQl8IEZPUkVJR04g REFUQV9QIFdSQVBQRVIJCQkJeyAkJCA9IE9CSkVDVF9GRFc7IH0KQEAgLTkxMjAsNiArOTE1 MywyNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJn dHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9 IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1Rf Q0VLOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJ bi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNURVIgS0VZIG5h bWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9k ZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0NNSzsKKwkJ CQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4tPm5ld25h bWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2Rl ICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgUkVOQU1F IFRPIG5hbWUKIAkJCQl7CiAJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVT dG10KTsKQEAgLTEwMTI4LDYgKzEwMTgxLDI0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBB R0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJ CQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUgT1dORVIgVE8gUm9sZVNwZWMK KwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0 bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJCQluLT5vYmpl Y3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJbi0+bmV3b3duZXIgPSAkODsK KwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIE1BU1RF UiBLRVkgbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0 bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlw ZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1ha2VTdHJpbmco JDUpOworCQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJ CQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIgVE8gUm9sZVNw ZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25l clN0bXQpOwpAQCAtMTEyODQsNiArMTEzNTUsMzQgQEAgQWx0ZXJDb2xsYXRpb25TdG10OiBB TFRFUiBDT0xMQVRJT04gYW55X25hbWUgUkVGUkVTSCBWRVJTSU9OX1AKIAkJOwogCiAKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29sdW1uRW5j cnlwdGlvbktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgbmFtZSBB RERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1uRW5jcnlw dGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10 KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IGZhbHNlOwor CQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIERST1AgVkFMVUVfUCBk ZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCk7CisKKwkJCQkJbi0+ Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSB0cnVlOworCQkJCQluLT5kZWZpbml0 aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKworCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJQUxURVIgU1lTVEVNCkBAIC0xNjcxOSw2 ICsxNjgxOCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgRU5BQkxFX1AKIAkJCXwg RU5DT0RJTkcKIAkJCXwgRU5DUllQVEVECisJCQl8IEVOQ1JZUFRJT04KIAkJCXwgRU5VTV9Q CiAJCQl8IEVTQ0FQRQogCQkJfCBFVkVOVApAQCAtMTY3ODIsNiArMTY4ODIsNyBAQCB1bnJl c2VydmVkX2tleXdvcmQ6CiAJCQl8IExPQ0tFRAogCQkJfCBMT0dHRUQKIAkJCXwgTUFQUElO RworCQkJfCBNQVNURVIKIAkJCXwgTUFUQ0gKIAkJCXwgTUFUQ0hFRAogCQkJfCBNQVRFUklB TElaRUQKQEAgLTE3MjY0LDYgKzE3MzY1LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJ fCBFTkFCTEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQ VElPTgogCQkJfCBFTkRfUAogCQkJfCBFTlVNX1AKIAkJCXwgRVNDQVBFCkBAIC0xNzM1Miw2 ICsxNzQ1NCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTE9DS0VECiAJCQl8IExP R0dFRAogCQkJfCBNQVBQSU5HCisJCQl8IE1BU1RFUgogCQkJfCBNQVRDSAogCQkJfCBNQVRD SEVECiAJCQl8IE1BVEVSSUFMSVpFRApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3BhcmFtLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYwppbmRl eCBmNjY4YWJmY2IzMzYuLmQwYmVjMGEwNmQxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Bh cmFtLmMKQEAgLTQ5LDYgKzQ5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgVmFyUGFyYW1TdGF0ZQog ewogCU9pZAkJICAqKnBhcmFtVHlwZXM7CQkvKiBhcnJheSBvZiBwYXJhbWV0ZXIgdHlwZSBP SURzICovCiAJaW50CQkgICAqbnVtUGFyYW1zOwkJLyogbnVtYmVyIG9mIGFycmF5IGVudHJp ZXMgKi8KKwlPaWQJCSAgKipwYXJhbU9yaWdUYmxzOwkvKiB1bmRlcmx5aW5nIHRhYmxlcyAo MCBpZiBub25lKSAqLworCUF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzOyAvKiB1bmRlcmx5 aW5nIGNvbHVtbnMgKDAgaWYgbm9uZSkgKi8KIH0gVmFyUGFyYW1TdGF0ZTsKIAogc3RhdGlj IE5vZGUgKmZpeGVkX3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJl ZiAqcHJlZik7CkBAIC01Niw2ICs1OCw3IEBAIHN0YXRpYyBOb2RlICp2YXJpYWJsZV9wYXJh bXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpOwogc3RhdGlj IE5vZGUgKnZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg UGFyYW0gKnBhcmFtLAogCQkJCQkJCQkJCU9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdl dFR5cGVNb2QsCiAJCQkJCQkJCQkJaW50IGxvY2F0aW9uKTsKK3N0YXRpYyB2b2lkIHZhcmlh YmxlX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAq cGFyYW0sIE9pZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpOwogc3RhdGljIGJvb2wg Y2hlY2tfcGFyYW1ldGVyX3Jlc29sdXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIFBhcnNlU3Rh dGUgKnBzdGF0ZSk7CiBzdGF0aWMgYm9vbCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1z X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIApAQCAtODEsMTUgKzg0LDE5 IEBAIHNldHVwX3BhcnNlX2ZpeGVkX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAog ICovCiB2b2lkCiBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUg KnBzdGF0ZSwKLQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMpCisJ CQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJCQlPaWQg KipwYXJhbU9yaWdUYmxzLCBBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scykKIHsKIAlWYXJQ YXJhbVN0YXRlICpwYXJzdGF0ZSA9IHBhbGxvYyhzaXplb2YoVmFyUGFyYW1TdGF0ZSkpOwog CiAJcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBwYXJhbVR5cGVzOwogCXBhcnN0YXRlLT5udW1Q YXJhbXMgPSBudW1QYXJhbXM7CisJcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMgPSBwYXJhbU9y aWdUYmxzOworCXBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzID0gcGFyYW1PcmlnQ29sczsKIAlw c3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSAodm9pZCAqKSBwYXJzdGF0ZTsKIAlwc3RhdGUt PnBfcGFyYW1yZWZfaG9vayA9IHZhcmlhYmxlX3BhcmFtcmVmX2hvb2s7CiAJcHN0YXRlLT5w X2NvZXJjZV9wYXJhbV9ob29rID0gdmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2s7CisJcHN0 YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2sgPSB2YXJpYWJsZV9wYXJhbV9hc3NpZ25f b3JpZ19ob29rOwogfQogCiAvKgpAQCAtMTQ1LDE0ICsxNTIsMzYgQEAgdmFyaWFibGVfcGFy YW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogCXsKIAkJ LyogTmVlZCB0byBlbmxhcmdlIHBhcmFtIGFycmF5ICovCiAJCWlmICgqcGFyc3RhdGUtPnBh cmFtVHlwZXMpCi0JCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSAoT2lkICopIHJlcGFsbG9j KCpwYXJzdGF0ZS0+cGFyYW1UeXBlcywKLQkJCQkJCQkJCQkJCQkgcGFyYW1ubyAqIHNpemVv ZihPaWQpKTsKKwkJeworCQkJKnBhcnN0YXRlLT5wYXJhbVR5cGVzID0gcmVwYWxsb2NfYXJy YXkoKnBhcnN0YXRlLT5wYXJhbVR5cGVzLAorCQkJCQkJCQkJCQkJICAgT2lkLCBwYXJhbW5v KTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCQkqcGFyc3RhdGUtPnBh cmFtT3JpZ1RibHMgPSByZXBhbGxvY19hcnJheSgqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMs CisJCQkJCQkJCQkJCQkJCSAgT2lkLCBwYXJhbW5vKTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFy YW1PcmlnQ29scykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMgPSByZXBhbGxvY19h cnJheSgqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJCQkJCQkJCSAgQXR0ck51 bWJlciwgcGFyYW1ubyk7CisJCX0KIAkJZWxzZQotCQkJKnBhcnN0YXRlLT5wYXJhbVR5cGVz ID0gKE9pZCAqKSBwYWxsb2MocGFyYW1ubyAqIHNpemVvZihPaWQpKTsKKwkJeworCQkJKnBh cnN0YXRlLT5wYXJhbVR5cGVzID0gcGFsbG9jX2FycmF5KE9pZCwgcGFyYW1ubyk7CisJCQlp ZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCQkJKnBhcnN0YXRlLT5wYXJhbU9yaWdU YmxzID0gcGFsbG9jX2FycmF5KE9pZCwgcGFyYW1ubyk7CisJCQlpZiAocGFyc3RhdGUtPnBh cmFtT3JpZ0NvbHMpCisJCQkJKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzID0gcGFsbG9jX2Fy cmF5KEF0dHJOdW1iZXIsIHBhcmFtbm8pOworCQl9CiAJCS8qIFplcm8gb3V0IHRoZSBwcmV2 aW91c2x5LXVucmVmZXJlbmNlZCBzbG90cyAqLwogCQlNZW1TZXQoKnBhcnN0YXRlLT5wYXJh bVR5cGVzICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCiAJCQkgICAwLAogCQkJICAgKHBhcmFt bm8gLSAqcGFyc3RhdGUtPm51bVBhcmFtcykgKiBzaXplb2YoT2lkKSk7CisJCWlmIChwYXJz dGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCU1lbVNldCgqcGFyc3RhdGUtPnBhcmFtT3JpZ1Ri bHMgKyAqcGFyc3RhdGUtPm51bVBhcmFtcywKKwkJCQkgICAwLAorCQkJCSAgIChwYXJhbW5v IC0gKnBhcnN0YXRlLT5udW1QYXJhbXMpICogc2l6ZW9mKE9pZCkpOworCQlpZiAocGFyc3Rh dGUtPnBhcmFtT3JpZ0NvbHMpCisJCQlNZW1TZXQoKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xz ICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCisJCQkJICAgMCwKKwkJCQkgICAocGFyYW1ubyAt ICpwYXJzdGF0ZS0+bnVtUGFyYW1zKSAqIHNpemVvZihBdHRyTnVtYmVyKSk7CiAJCSpwYXJz dGF0ZS0+bnVtUGFyYW1zID0gcGFyYW1ubzsKIAl9CiAKQEAgLTI2MCw2ICsyODksMTggQEAg dmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAq cGFyYW0sCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyB2b2lkCit2YXJpYWJsZV9wYXJh bV9hc3NpZ25fb3JpZ19ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLCBP aWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKQoreworCVZhclBhcmFtU3RhdGUgKnBh cnN0YXRlID0gKFZhclBhcmFtU3RhdGUgKikgcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlOwor CWludAkJCXBhcmFtbm8gPSBwYXJhbS0+cGFyYW1pZDsKKworCWlmIChwYXJzdGF0ZS0+cGFy YW1PcmlnVGJscykKKwkJKCpwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscylbcGFyYW1ubyAtIDFd ID0gb3JpZ3RibDsKKwlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMpCisJCSgqcGFyc3Rh dGUtPnBhcmFtT3JpZ0NvbHMpW3BhcmFtbm8gLSAxXSA9IG9yaWdjb2w7Cit9CisKIC8qCiAg KiBDaGVjayBmb3IgY29uc2lzdGVudCBhc3NpZ25tZW50IG9mIHZhcmlhYmxlIHBhcmFtZXRl cnMgYWZ0ZXIgY29tcGxldGlvbgogICogb2YgcGFyc2luZyB3aXRoIHBhcnNlX3ZhcmlhYmxl X3BhcmFtZXRlcnMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFy Z2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggYmQ4MDU3 YmMzZTc0Li4zNzQwNmRkNzNkMWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMK QEAgLTU5NCw2ICs1OTQsMTIgQEAgdHJhbnNmb3JtQXNzaWduZWRFeHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihvcmlnX2V4cHIpKSkpOwogCX0KIAorCWlmIChJc0EoZXhwciwgUGFyYW0pKQorCXsKKwkJ aWYgKHBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKQorCQkJcHN0YXRlLT5wX3Bh cmFtX2Fzc2lnbl9vcmlnX2hvb2socHN0YXRlLCBjYXN0Tm9kZShQYXJhbSwgZXhwciksIFJl bGF0aW9uR2V0UmVsaWQocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbiksIGF0dHJubyk7CisJ fQorCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IHN2X2V4cHJfa2luZDsKIAogCXJldHVybiBl eHByOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCAzODNiYzQ3NzZl ZjkuLjUxMmJjOTJiMjk2NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9w b3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMK QEAgLTIyNTQsMTIgKzIyNTQsMjcgQEAgUHJvY2Vzc1N0YXJ0dXBQYWNrZXQoUG9ydCAqcG9y dCwgYm9vbCBzc2xfZG9uZSwgYm9vbCBnc3NfZG9uZSkKIAkJCQkJCQkJCXZhbHB0ciksCiAJ CQkJCQkJIGVycmhpbnQoIlZhbGlkIHZhbHVlcyBhcmU6IFwiZmFsc2VcIiwgMCwgXCJ0cnVl XCIsIDEsIFwiZGF0YWJhc2VcIi4iKSkpOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKG5h bWVwdHIsICJfcHFfLmNvbHVtbl9lbmNyeXB0aW9uIikgPT0gMCkKKwkJCXsKKwkJCQkvKgor CQkJCSAqIFJpZ2h0IG5vdywgdGhlIG9ubHkgYWNjZXB0ZWQgdmFsdWUgaXMgIjEiLiAgVGhp cyBnaXZlcyByb29tCisJCQkJICogdG8gZXhwYW5kIHRoaXMgaW50byBhIHZlcnNpb24gbnVt YmVyLCBmb3IgZXhhbXBsZS4KKwkJCQkgKi8KKwkJCQlpZiAoc3RyY21wKHZhbHB0ciwgIjEi KSA9PSAwKQorCQkJCQlwb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gdHJ1ZTsK KwkJCQllbHNlCisJCQkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJIGVycm1zZygiaW52YWxpZCB2 YWx1ZSBmb3IgcGFyYW1ldGVyIFwiJXNcIjogXCIlc1wiIiwKKwkJCQkJCQkJCSJjb2x1bW5f ZW5jcnlwdGlvbiIsCisJCQkJCQkJCQl2YWxwdHIpLAorCQkJCQkJCSBlcnJoaW50KCJWYWxp ZCB2YWx1ZXMgYXJlOiAxLiIpKSk7CisJCQl9CiAJCQllbHNlIGlmIChzdHJuY21wKG5hbWVw dHIsICJfcHFfLiIsIDUpID09IDApCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBBbnkgb3B0aW9u IGJlZ2lubmluZyB3aXRoIF9wcV8uIGlzIHJlc2VydmVkIGZvciB1c2UgYXMgYQotCQkJCSAq IHByb3RvY29sLWxldmVsIG9wdGlvbiwgYnV0IGF0IHByZXNlbnQgbm8gc3VjaCBvcHRpb25z IGFyZQotCQkJCSAqIGRlZmluZWQuCisJCQkJICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLgog CQkJCSAqLwogCQkJCXVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zID0KIAkJCQkJbGFw cGVuZCh1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucywgcHN0cmR1cChuYW1lcHRyKSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMKaW5kZXggNTM1MmQ1ZjRjNmJiLi5hZjllMGUzOWU3NzUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMKQEAgLTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlICJ1dGlscy9t ZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0 aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApAQCAt Njc4LDYgKzY3OSw4IEBAIHBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKFJhd1N0 bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywKIAkJ CQkJCQkJIE9pZCAqKnBhcmFtVHlwZXMsCiAJCQkJCQkJCSBpbnQgKm51bVBhcmFtcywKKwkJ CQkJCQkJIE9pZCAqKnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCSBBdHRyTnVtYmVyICoqcGFy YW1PcmlnQ29scywKIAkJCQkJCQkJIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KQogewog CVF1ZXJ5CSAgICpxdWVyeTsKQEAgLTY5Miw3ICs2OTUsNyBAQCBwZ19hbmFseXplX2FuZF9y ZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRyZWUsCiAJCVJlc2V0VXNhZ2UoKTsK IAogCXF1ZXJ5ID0gcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMocGFyc2V0cmVlLCBxdWVyeV9z dHJpbmcsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywKLQkJCQkJCQkJCXF1ZXJ5RW52KTsKKwkJ CQkJCQkJCXBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0NvbHMsIHF1ZXJ5RW52KTsKIAogCS8q CiAJICogQ2hlY2sgYWxsIHBhcmFtZXRlciB0eXBlcyBnb3QgZGV0ZXJtaW5lZC4KQEAgLTEz NjYsNiArMTM2OSw4IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVyeV9z dHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJYm9vbAkJaXNfbmFtZWQ7CiAJYm9v bAkJc2F2ZV9sb2dfc3RhdGVtZW50X3N0YXRzID0gbG9nX3N0YXRlbWVudF9zdGF0czsKIAlj aGFyCQltc2VjX3N0clszMl07CisJT2lkCQkgICAqcGFyYW1PcmlnVGJscyA9IHBhbGxvY19h cnJheShPaWQsIG51bVBhcmFtcyk7CisJQXR0ck51bWJlciAqcGFyYW1PcmlnQ29scyA9IHBh bGxvY19hcnJheShBdHRyTnVtYmVyLCBudW1QYXJhbXMpOwogCiAJLyoKIAkgKiBSZXBvcnQg cXVlcnkgdG8gdmFyaW91cyBtb25pdG9yaW5nIGZhY2lsaXRpZXMuCkBAIC0xNDg2LDYgKzE0 OTEsOCBAQCBleGVjX3BhcnNlX21lc3NhZ2UoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAkv KiBzdHJpbmcgdG8gZXhlY3V0ZSAqLwogCQkJCQkJCQkJCQkJCQkgIHF1ZXJ5X3N0cmluZywK IAkJCQkJCQkJCQkJCQkJICAmcGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJCQkJICAmbnVtUGFy YW1zLAorCQkJCQkJCQkJCQkJCQkgICZwYXJhbU9yaWdUYmxzLAorCQkJCQkJCQkJCQkJCQkg ICZwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkJCQkgIE5VTEwpOwogCiAJCS8qIERvbmUg d2l0aCB0aGUgc25hcHNob3QgdXNlZCBmb3IgcGFyc2luZyAqLwpAQCAtMTUxNiw2ICsxNTIz LDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywJLyog c3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAkJCQkJICAgdW5uYW1lZF9zdG10X2NvbnRleHQsCiAJ CQkJCSAgIHBhcmFtVHlwZXMsCiAJCQkJCSAgIG51bVBhcmFtcywKKwkJCQkJICAgcGFyYW1P cmlnVGJscywKKwkJCQkJICAgcGFyYW1PcmlnQ29scywKIAkJCQkJICAgTlVMTCwKIAkJCQkJ ICAgTlVMTCwKIAkJCQkJICAgQ1VSU09SX09QVF9QQVJBTExFTF9PSywJLyogYWxsb3cgcGFy YWxsZWwgbW9kZSAqLwpAQCAtMTgxMyw2ICsxODIyLDE2IEBAIGV4ZWNfYmluZF9tZXNzYWdl KFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkKIAkJCWVsc2UKIAkJCQlwZm9ybWF0ID0gMDsJ LyogZGVmYXVsdCA9IHRleHQgKi8KIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBl KSkKKwkJCXsKKwkJCQlpZiAocGZvcm1hdCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4 RjA7CisJCQkJZWxzZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfUFJPVE9DT0xfVklPTEFUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIg Y29ycmVzcG9uZHMgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwgYnV0IHRoZSBwYXJhbWV0ZXIg dmFsdWUgd2FzIG5vdCBlbmNyeXB0ZWQiKSkpOworCQkJfQorCiAJCQlpZiAocGZvcm1hdCA9 PSAwKQkvKiB0ZXh0IG1vZGUgKi8KIAkJCXsKIAkJCQlPaWQJCQl0eXBpbnB1dDsKQEAgLTI2 MDMsOCArMjYyMiw0NCBAQCBleGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNzYWdlKGNvbnN0 IGNoYXIgKnN0bXRfbmFtZSkKIAlmb3IgKGludCBpID0gMDsgaSA8IHBzcmMtPm51bV9wYXJh bXM7IGkrKykKIAl7CiAJCU9pZAkJCXB0eXBlID0gcHNyYy0+cGFyYW1fdHlwZXNbaV07CisJ CU9pZAkJCXBjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludAkJCXBjZWthbGcgPSAwOworCQlp bnQxNgkJcGZsYWdzID0gMDsKKworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRp b25fZW5hYmxlZCAmJiB0eXBlX2lzX2VuY3J5cHRlZChwdHlwZSkpCisJCXsKKwkJCU9pZAkJ CXBvcmlndGJsID0gcHNyYy0+cGFyYW1fb3JpZ3RibHNbaV07CisJCQlBdHRyTnVtYmVyCXBv cmlnY29sID0gcHNyYy0+cGFyYW1fb3JpZ2NvbHNbaV07CisJCQlIZWFwVHVwbGUJdHA7CisJ CQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJaWYgKHBvcmlndGJsID09IElu dmFsaWRPaWQgfHwgcG9yaWdjb2wgPD0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z ZygicGFyYW1ldGVyICVkIGNvcnJlc3BvbmRzIHRvIGFuIGVuY3J5cHRlZCBjb2x1bW4sIGJ1 dCBhbiB1bmRlcmx5aW5nIHRhYmxlIGFuZCBjb2x1bW4gY291bGQgbm90IGJlIGRldGVybWlu ZWQiLCBpKSkpOworCisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihBVFROVU0sIE9iamVjdElk R2V0RGF0dW0ocG9yaWd0YmwpLCBJbnQxNkdldERhdHVtKHBvcmlnY29sKSk7CisJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCBwb3JpZ2NvbCwgcG9y aWd0YmwpOworCQkJb3JpZ19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0 cCk7CisJCQlwdHlwZSA9IG9yaWdfYXR0LT5hdHRyZWFsdHlwaWQ7CisJCQlwY2VraWQgPSBv cmlnX2F0dC0+YXR0Y2VrOworCQkJcGNla2FsZyA9IG9yaWdfYXR0LT5hdHRlbmNhbGc7CisJ CQlSZWxlYXNlU3lzQ2FjaGUodHApOworCisJCQlpZiAocHNyYy0+cGFyYW1fdHlwZXNbaV0g PT0gUEdfRU5DUllQVEVEX0RFVE9JRCkKKwkJCQlwZmxhZ3MgfD0gMHgwMTsKKworCQkJTWF5 YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2UocGNla2lkKTsKKwkJfQogCiAJCXBx X3NlbmRpbnQzMigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgKGludCkgcHR5cGUpOworCQlpZiAo TXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfc2Vu ZGludDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwY2VraWQpOworCQkJcHFfc2Vu ZGludDE2KCZyb3dfZGVzY3JpcHRpb25fYnVmLCBwY2VrYWxnKTsKKwkJCXBxX3NlbmRpbnQx Nigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgcGZsYWdzKTsKKwkJfQogCX0KIAlwcV9lbmRtZXNz YWdlX3JldXNlKCZyb3dfZGVzY3JpcHRpb25fYnVmKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRl eCBhYTAwODE1Nzg3ODguLjU0OWQzMWU1ZDRiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTMw LDYgKzMwLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY2x1c3Rlci5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL2NvbGVuY2NtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb2xsYXRp b25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2NvbnZlcnNpb25jbWRzLmgiCkBAIC0xMzcsNiArMTM4LDcgQEAgQ2xhc3NpZnlV dGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCXN3aXRjaCAobm9k ZVRhZyhwYXJzZXRyZWUpKQogCXsKIAkJY2FzZSBUX0FsdGVyQ29sbGF0aW9uU3RtdDoKKwkJ Y2FzZSBUX0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CiAJCWNhc2UgVF9BbHRlckRh dGFiYXNlUmVmcmVzaENvbGxTdG10OgogCQljYXNlIFRfQWx0ZXJEYXRhYmFzZVNldFN0bXQ6 CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlU3RtdDoKQEAgLTE0NDEsNiArMTQ0MywxNCBAQCBQ cm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQkJCQkJ c3RtdC0+ZGVmaW5pdGlvbiwKIAkJCQkJCQkJCQkJCQkJCSZzZWNvbmRhcnlPYmplY3QpOwog CQkJCQkJCWJyZWFrOworCQkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQkJCUFzc2VydChz dG10LT5hcmdzID09IE5JTCk7CisJCQkJCQkJYWRkcmVzcyA9IENyZWF0ZUNFSyhwc3RhdGUs IHN0bXQpOworCQkJCQkJCWJyZWFrOworCQkJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJ CUFzc2VydChzdG10LT5hcmdzID09IE5JTCk7CisJCQkJCQkJYWRkcmVzcyA9IENyZWF0ZUNN Syhwc3RhdGUsIHN0bXQpOworCQkJCQkJCWJyZWFrOwogCQkJCQkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQkJCQkJCUFzc2VydChzdG10LT5hcmdzID09IE5JTCk7CiAJCQkJCQkJYWRk cmVzcyA9IERlZmluZUNvbGxhdGlvbihwc3RhdGUsCkBAIC0xOTAzLDYgKzE5MTMsMTAgQEAg UHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQlhZGRyZXNzID0g QWx0ZXJDb2xsYXRpb24oKEFsdGVyQ29sbGF0aW9uU3RtdCAqKSBwYXJzZXRyZWUpOwogCQkJ CWJyZWFrOwogCisJCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJ CQlhZGRyZXNzID0gQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KHBzdGF0ZSwgKEFsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJ ZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQi LAogCQkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTIyMjUsNiArMjIzOSwx MiBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ Y2FzZSBPQkpFQ1RfQ09MVU1OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1RBQkxFOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xV TU5fRU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJ dGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJlYWs7CiAJCWNh c2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09OVkVSU0lP TjsKIAkJCWJyZWFrOwpAQCAtMjY0MCw2ICsyNjYwLDEyIEBAIENyZWF0ZUNvbW1hbmRUYWco Tm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJ CXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2Ug T0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfQ09MVU1OX0VOQ1JZUFRJT05f S0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCXRhZyA9IENN RFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQlicmVhazsKIAkJCQlkZWZhdWx0 OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTI3NjAsNiArMjc4Niwx MiBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVD VF9DT0xMQVRJT046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MTEFUSU9OOwogCQkJ CQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVB VEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVD VF9DTUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVk7CisJ CQkJCWJyZWFrOwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9 IENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CkBAIC0zMDYzLDYg KzMwOTUsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcg PSBDTURUQUdfQUxURVJfQ09MTEFUSU9OOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0FsdGVy Q29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MVU1O X0VOQ1JZUFRJT05fS0VZOworCQkJYnJlYWs7CisKIAkJY2FzZSBUX1ByZXBhcmVTdG10Ogog CQkJdGFnID0gQ01EVEFHX1BSRVBBUkU7CiAJCQlicmVhazsKQEAgLTMyMTcsNyArMzI1Myw3 IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJ ZGVmYXVsdDoKLQkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVk IiwKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJ IChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsK IAkJCWJyZWFrOwpAQCAtMzY4OCw2ICszNzI0LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChO b2RlICpwYXJzZXRyZWUpCiAJCQlsZXYgPSBMT0dTVE1UX0RETDsKIAkJCWJyZWFrOwogCisJ CWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10OgorCQkJbGV2ID0gTE9HU1RN VF9EREw7CisJCQlicmVhazsKKwogCQkJLyogYWxyZWFkeS1wbGFubmVkIHF1ZXJpZXMgKi8K IAkJY2FzZSBUX1BsYW5uZWRTdG10OgogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1 bmNzLmMKaW5kZXggNDk1ZTQ0OWE5ZTlhLi40MDVmMDhhOWIzNzggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2FycmF5ZnVuY3MuYwpAQCAtMzM4Niw2ICszMzg2LDcgQEAgY29uc3RydWN0X2Fy cmF5X2J1aWx0aW4oRGF0dW0gKmVsZW1zLCBpbnQgbmVsZW1zLCBPaWQgZWxtdHlwZSkKIAkJ CWJyZWFrOwogCiAJCWNhc2UgT0lET0lEOgorCQljYXNlIFJFR0NMQVNTT0lEOgogCQljYXNl IFJFR1RZUEVPSUQ6CiAJCQllbG1sZW4gPSBzaXplb2YoT2lkKTsKIAkJCWVsbWJ5dmFsID0g dHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTE2YTYzZjQ5 NTdiLi5kNWVhMTY4OWUyOWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j CkBAIC0yNCw3ICsyNCwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW1wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlv bi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYW5ndWFn ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCkBAIC0yNjU4LDYgKzI2 NjEsMjUgQEAgdHlwZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBpZCkKIAlyZXR1cm4gKGdldF90 eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX01VTFRJUkFOR0UpOwogfQogCitib29sCit0eXBl X2lzX2VuY3J5cHRlZChPaWQgdHlwaWQpCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAgPSBT ZWFyY2hTeXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpZCkpOworCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAo Rm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOworCQlib29sCQlyZXN1bHQ7CisKKwkJcmVz dWx0ID0gKHR5cHR1cC0+dHlwY2F0ZWdvcnkgPT0gVFlQQ0FURUdPUllfRU5DUllQVEVEKTsK KwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJZWxzZQor CQlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBnZXRfdHlwZV9jYXRlZ29yeV9wcmVmZXJy ZWQKICAqCkBAIC0zNjc5LDMgKzM3MDEsOTIgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9p ZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKK09p ZAorZ2V0X2Nla19vaWQoY29uc3QgY2hhciAqY2VrbmFtZSwgYm9vbCBtaXNzaW5nX29rKQor eworCU9pZAkJCW9pZDsKKworCW9pZCA9IEdldFN5c0NhY2hlT2lkMShDRUtOQU1FLCBBbnVt X3BnX2NvbGVuY2tleV9vaWQsCisJCQkJCQkgIENTdHJpbmdHZXREYXR1bShjZWtuYW1lKSk7 CisJaWYgKCFPaWRJc1ZhbGlkKG9pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJy bXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY2Vr bmFtZSkpKTsKKwlyZXR1cm4gb2lkOworfQorCitjaGFyICoKK2dldF9jZWtfbmFtZShPaWQg Y2VraWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHVwOworCWNoYXIJICAg KmNla25hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLT0lELCBPYmplY3RJZEdl dERhdHVtKGNla2lkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwl7CisJ CWlmICghbWlzc2luZ19vaykKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUiLCBjZWtpZCk7CisJCXJldHVybiBOVUxM OworCX0KKworCWNla25hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX2NvbGVuY2tl eSkgR0VUU1RSVUNUKHR1cCkpLT5jZWtuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw KTsKKworCXJldHVybiBjZWtuYW1lOworfQorCitPaWQKK2dldF9jZWtkYXRhX29pZChPaWQg Y2VraWQsIE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCWNla2RhdGFp ZDsKKworCWNla2RhdGFpZCA9IEdldFN5c0NhY2hlT2lkMihDRUtEQVRBQ0VLQ01LLCBBbnVt X3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKGNla2lk KSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCWlmICghT2lkSXNWYWxp ZChjZWtkYXRhaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygiY29sdW1u IGVuY3J5cHRpb24ga2V5IFwiJXNcIiBoYXMgbm8gZGF0YSBmb3IgbWFzdGVyIGtleSBcIiVz XCIiLAorCQkJCQkJZ2V0X2Nla19uYW1lKGNla2lkLCBmYWxzZSksIGdldF9jbWtfbmFtZShj bWtpZCwgZmFsc2UpKSkpOworCisJcmV0dXJuIGNla2RhdGFpZDsKK30KKworT2lkCitnZXRf Y21rX29pZChjb25zdCBjaGFyICpjbWtuYW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJT2lk CQkJb2lkOworCisJb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENNS05BTUUsIEFudW1fcGdfY29s bWFzdGVya2V5X29pZCwKKwkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGNta25hbWUpKTsKKwlp ZiAoIU9pZElzVmFsaWQob2lkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2co ImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNta25hbWUpKSk7 CisJcmV0dXJuIG9pZDsKK30KKworY2hhciAqCitnZXRfY21rX25hbWUoT2lkIGNta2lkLCBi b29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXR1cDsKKwljaGFyCSAgICpjbWtuYW1l OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShj bWtpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJeworCQlpZiAoIW1p c3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29s dW1uIG1hc3RlciBrZXkgJXUiLCBjbWtpZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWNt a25hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RS VUNUKHR1cCkpLT5jbWtuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiBjbWtuYW1lOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRl eCAwZDZhMjk1Njc0ODcuLmYyYTVlMDI5ZTNhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMKQEAgLTM0MCw2ICszNDAsOCBAQCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkgICBNZW1vcnlDb250ZXh0IHF1ZXJ5 dHJlZV9jb250ZXh0LAogCQkJCSAgIE9pZCAqcGFyYW1fdHlwZXMsCiAJCQkJICAgaW50IG51 bV9wYXJhbXMsCisJCQkJICAgT2lkICpwYXJhbV9vcmlndGJscywKKwkJCQkgICBBdHRyTnVt YmVyICpwYXJhbV9vcmlnY29scywKIAkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0 dXAsCiAJCQkJICAgdm9pZCAqcGFyc2VyU2V0dXBBcmcsCiAJCQkJICAgaW50IGN1cnNvcl9v cHRpb25zLApAQCAtNDE3LDggKzQxOSwxNiBAQCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2FjaGVk UGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAogCWlmIChudW1fcGFyYW1zID4gMCkKIAl7Ci0J CXBsYW5zb3VyY2UtPnBhcmFtX3R5cGVzID0gKE9pZCAqKSBwYWxsb2MobnVtX3BhcmFtcyAq IHNpemVvZihPaWQpKTsKKwkJcGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSBwYWxsb2NfYXJy YXkoT2lkLCBudW1fcGFyYW1zKTsKIAkJbWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX3R5cGVz LCBwYXJhbV90eXBlcywgbnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKworCQlwbGFuc291 cmNlLT5wYXJhbV9vcmlndGJscyA9IHBhbGxvYzBfYXJyYXkoT2lkLCBudW1fcGFyYW1zKTsK KwkJaWYgKHBhcmFtX29yaWd0YmxzKQorCQkJbWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX29y aWd0YmxzLCBwYXJhbV9vcmlndGJscywgbnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKwor CQlwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scyA9IHBhbGxvYzBfYXJyYXkoQXR0ck51bWJl ciwgbnVtX3BhcmFtcyk7CisJCWlmIChwYXJhbV9vcmlnY29scykKKwkJCW1lbWNweShwbGFu c291cmNlLT5wYXJhbV9vcmlnY29scywgcGFyYW1fb3JpZ2NvbHMsIG51bV9wYXJhbXMgKiBz aXplb2YoQXR0ck51bWJlcikpOwogCX0KIAllbHNlCiAJCXBsYW5zb3VyY2UtPnBhcmFtX3R5 cGVzID0gTlVMTDsKQEAgLTE1MzUsMTMgKzE1NDUsMjIgQEAgQ29weUNhY2hlZFBsYW4oQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSkKIAluZXdzb3VyY2UtPmNvbW1hbmRUYWcgPSBw bGFuc291cmNlLT5jb21tYW5kVGFnOwogCWlmIChwbGFuc291cmNlLT5udW1fcGFyYW1zID4g MCkKIAl7Ci0JCW5ld3NvdXJjZS0+cGFyYW1fdHlwZXMgPSAoT2lkICopCi0JCQlwYWxsb2Mo cGxhbnNvdXJjZS0+bnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKwkJbmV3c291cmNlLT5w YXJhbV90eXBlcyA9IHBhbGxvY19hcnJheShPaWQsIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMp OwogCQltZW1jcHkobmV3c291cmNlLT5wYXJhbV90eXBlcywgcGxhbnNvdXJjZS0+cGFyYW1f dHlwZXMsCiAJCQkgICBwbGFuc291cmNlLT5udW1fcGFyYW1zICogc2l6ZW9mKE9pZCkpOwor CQlpZiAocGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMpCisJCXsKKwkJCW5ld3NvdXJjZS0+ cGFyYW1fb3JpZ3RibHMgPSBwYWxsb2NfYXJyYXkoT2lkLCBwbGFuc291cmNlLT5udW1fcGFy YW1zKTsKKwkJCW1lbWNweShuZXdzb3VyY2UtPnBhcmFtX29yaWd0YmxzLCBwbGFuc291cmNl LT5wYXJhbV9vcmlndGJscywKKwkJCQkgICBwbGFuc291cmNlLT5udW1fcGFyYW1zICogc2l6 ZW9mKE9pZCkpOworCQl9CisJCWlmIChwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scykKKwkJ eworCQkJbmV3c291cmNlLT5wYXJhbV9vcmlnY29scyA9IHBhbGxvY19hcnJheShBdHRyTnVt YmVyLCBwbGFuc291cmNlLT5udW1fcGFyYW1zKTsKKwkJCW1lbWNweShuZXdzb3VyY2UtPnBh cmFtX29yaWdjb2xzLCBwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scywKKwkJCQkgICBwbGFu c291cmNlLT5udW1fcGFyYW1zICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKKwkJfQogCX0KLQll bHNlCi0JCW5ld3NvdXJjZS0+cGFyYW1fdHlwZXMgPSBOVUxMOwogCW5ld3NvdXJjZS0+bnVt X3BhcmFtcyA9IHBsYW5zb3VyY2UtPm51bV9wYXJhbXM7CiAJbmV3c291cmNlLT5wYXJzZXJT ZXR1cCA9IHBsYW5zb3VyY2UtPnBhcnNlclNldHVwOwogCW5ld3NvdXJjZS0+cGFyc2VyU2V0 dXBBcmcgPSBwbGFuc291cmNlLT5wYXJzZXJTZXR1cEFyZzsKQEAgLTE1NDksOCArMTU2OCw2 IEBAIENvcHlDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpCiAJbmV3 c291cmNlLT5maXhlZF9yZXN1bHQgPSBwbGFuc291cmNlLT5maXhlZF9yZXN1bHQ7CiAJaWYg KHBsYW5zb3VyY2UtPnJlc3VsdERlc2MpCiAJCW5ld3NvdXJjZS0+cmVzdWx0RGVzYyA9IENy ZWF0ZVR1cGxlRGVzY0NvcHkocGxhbnNvdXJjZS0+cmVzdWx0RGVzYyk7Ci0JZWxzZQotCQlu ZXdzb3VyY2UtPnJlc3VsdERlc2MgPSBOVUxMOwogCW5ld3NvdXJjZS0+Y29udGV4dCA9IHNv dXJjZV9jb250ZXh0OwogCiAJcXVlcnl0cmVlX2NvbnRleHQgPSBBbGxvY1NldENvbnRleHRD cmVhdGUoc291cmNlX2NvbnRleHQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9zeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpp bmRleCBlZWM2NDRlYzg0ODkuLjYzMzdmMjdiZmNmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9zeXNjYWNoZS5jCkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf YXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0 ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFi YXNlLmgiCkBAIC0yNjcsNiArMjcwLDQzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVk ZXNjIGNhY2hlaW5mb1tdID0gewogCQl9LAogCQkyNTYKIAl9LAorCXsKKwkJQ29sdW1uRW5j S2V5RGF0YVJlbGF0aW9uSWQsIC8qIENFS0RBVEFDRUtDTUsgKi8KKwkJQ29sdW1uRW5jS2V5 Q2VraWRDbWtpZEluZGV4SWQsCisJCTIsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0 YV9ja2RjZWtpZCwKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWtpZCwKKwkJfSwK KwkJOAorCX0sCisJeworCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgLyogQ0VLREFU QU9JRCAqLworCQlDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJ QW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1 bW5FbmNLZXlSZWxhdGlvbklkLCAvKiBDRUtOQU1FICovCisJCUNvbHVtbkVuY0tleU5hbWVJ bmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lLAorCQl9 LAorCQk4CisJfSwKKwl7CisJCUNvbHVtbkVuY0tleVJlbGF0aW9uSWQsIC8qIENFS09JRCAq LworCQlDb2x1bW5FbmNLZXlPaWRJbmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2Nv bGVuY2tleV9vaWQsCisJCX0sCisJCTgKKwl9LAogCXtPcGVyYXRvckNsYXNzUmVsYXRpb25J ZCwJLyogQ0xBQU1OQU1FTlNQICovCiAJCU9wY2xhc3NBbU5hbWVOc3BJbmRleElkLAogCQkz LApAQCAtMjg5LDYgKzMyOSwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBj YWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJOAogCX0sCisJeworCQlDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLCAvKiBDTUtOQU1FICovCisJCUNvbHVtbk1hc3RlcktleU5hbWVJbmRleElk LAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtuYW1lLAorCQl9LAor CQk4CisJfSwKKwl7CisJCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCS8qIENNS09JRCAq LworCQlDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3Bn X2NvbG1hc3RlcmtleV9vaWQsCisJCX0sCisJCTgKKwl9LAogCXtDb2xsYXRpb25SZWxhdGlv bklkLAkJLyogQ09MTE5BTUVFTkNOU1AgKi8KIAkJQ29sbGF0aW9uTmFtZUVuY05zcEluZGV4 SWQsCiAJCTMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKaW5kZXggMDU0M2M1NzRjNjdlLi5k ZTgzN2VjM2NkZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKQEAgLTM2LDcgKzM2LDkg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1l c3BhY2UuaCIKKyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1iL3Bn X3djaGFyLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCkBAIC0xMjksNiArMTMxLDEyIEBAIFByZXBhcmVDbGllbnRFbmNvZGlu ZyhpbnQgZW5jb2RpbmcpCiAJCWVuY29kaW5nID09IFBHX1NRTF9BU0NJSSkKIAkJcmV0dXJu IDA7CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5 cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5 cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOworCiAJaWYgKElzVHJhbnNhY3Rpb25TdGF0 ZSgpKQogCXsKIAkJLyoKQEAgLTIzNiw2ICsyNDQsMTIgQEAgU2V0Q2xpZW50RW5jb2Rpbmco aW50IGVuY29kaW5nKQogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKgorCSAqIENhbm5vdCBkbyBj b252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlp ZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0x OworCiAJLyoKIAkgKiBTZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgZW50cnkgcHJldmlvdXNs eSBwcmVwYXJlZCBieQogCSAqIFByZXBhcmVDbGllbnRFbmNvZGluZzsgaWYgdGhlcmUgaXNu J3Qgb25lLCB3ZSBsb3NlLiAgV2hpbGUgYXQgaXQsCkBAIC0yOTYsNyArMzEwLDkgQEAgSW5p dGlhbGl6ZUNsaWVudEVuY29kaW5nKHZvaWQpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImNvbnZlcnNpb24gYmV0d2VlbiAl cyBhbmQgJXMgaXMgbm90IHN1cHBvcnRlZCIsCiAJCQkJCQlwZ19lbmMybmFtZV90YmxbcGVu ZGluZ19jbGllbnRfZW5jb2RpbmddLm5hbWUsCi0JCQkJCQlHZXREYXRhYmFzZUVuY29kaW5n TmFtZSgpKSkpOworCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZ05hbWUoKSksCisJCQkJIChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKSA/CisJCQkJIGVycmRldGFp bCgiRW5jb2RpbmcgY29udmVyc2lvbiBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5j cnlwdGlvbiBpcyBlbmFibGVkLiIpIDogMCkpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5k ZXggNDRmYTUyY2M1NWZlLi44OWZlY2ViM2JkZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAgLTIwMSw2 ICsyMDEsMTIgQEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxl c1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyB1c2VyLWRlZmluZWQgY29sbGF0aW9ucyIp OwogCSh2b2lkKSBnZXRDb2xsYXRpb25zKGZvdXQsICZudW1Db2xsYXRpb25zKTsKIAorCXBn X2xvZ19pbmZvKCJyZWFkaW5nIGNvbHVtbiBtYXN0ZXIga2V5cyIpOworCWdldENvbHVtbk1h c3RlcktleXMoZm91dCk7CisKKwlwZ19sb2dfaW5mbygicmVhZGluZyBjb2x1bW4gZW5jcnlw dGlvbiBrZXlzIik7CisJZ2V0Q29sdW1uRW5jcnlwdGlvbktleXMoZm91dCk7CisKIAlwZ19s b2dfaW5mbygicmVhZGluZyB1c2VyLWRlZmluZWQgY29udmVyc2lvbnMiKTsKIAlnZXRDb252 ZXJzaW9ucyhmb3V0LCAmbnVtQ29udmVyc2lvbnMpOwogCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5k ZXggZThiNzg5ODI5NzFlLi5mODlkYWFhMjMxNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKQEAg LTg0LDYgKzg0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2Nvbm5QYXJhbXMKIAljaGFyCSAgICpw Z2hvc3Q7CiAJY2hhcgkgICAqdXNlcm5hbWU7CiAJdHJpdmFsdWUJcHJvbXB0UGFzc3dvcmQ7 CisJaW50CQkJY29sdW1uX2VuY3J5cHRpb247CiAJLyogSWYgbm90IE5VTEwsIHRoaXMgb3Zl cnJpZGVzIHRoZSBkYm5hbWUgb2J0YWluZWQgZnJvbSBjb21tYW5kIGxpbmUgKi8KIAkvKiAo YnV0ICpvbmx5KiB0aGUgREIgbmFtZSwgbm90IGFueXRoaW5nIGVsc2UgaW4gdGhlIGNvbm5z dHJpbmcpICovCiAJY2hhcgkgICAqb3ZlcnJpZGVfZGJuYW1lOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDIzMzE5OGFmYzBjOS4uOGEyYmQ3ZmI5NWFiIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zNDExLDYgKzM0MTEs OCBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBUb2NFbnRyeSAq dGUpCiAKIAkvKiBvYmplY3RzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsIGRlY29yYXRp b24gKi8KIAlpZiAoc3RyY21wKHR5cGUsICJDT0xMQVRJT04iKSA9PSAwIHx8CisJCXN0cmNt cCh0eXBlLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIikgPT0gMCB8fAorCQlzdHJjbXAodHlw ZSwgIkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIkNPTlZF UlNJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiRE9NQUlOIikgPT0gMCB8fAogCQlz dHJjbXAodHlwZSwgIlRBQkxFIikgPT0gMCB8fApAQCAtMzU4OCw2ICszNTkwLDggQEAgX3By aW50VG9jRW50cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSwgYm9vbCBpc0Rh dGEpCiAJCWlmIChzdHJjbXAodGUtPmRlc2MsICJBR0dSRUdBVEUiKSA9PSAwIHx8CiAJCQlz dHJjbXAodGUtPmRlc2MsICJCTE9CIikgPT0gMCB8fAogCQkJc3RyY21wKHRlLT5kZXNjLCAi Q09MTEFUSU9OIikgPT0gMCB8fAorCQkJc3RyY21wKHRlLT5kZXNjLCAiQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIikgPT0gMCB8fAorCQkJc3RyY21wKHRlLT5kZXNjLCAiQ09MVU1OIE1BU1RF UiBLRVkiKSA9PSAwIHx8CiAJCQlzdHJjbXAodGUtPmRlc2MsICJDT05WRVJTSU9OIikgPT0g MCB8fAogCQkJc3RyY21wKHRlLT5kZXNjLCAiREFUQUJBU0UiKSA9PSAwIHx8CiAJCQlzdHJj bXAodGUtPmRlc2MsICJET01BSU4iKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2RiLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMK aW5kZXggMjhiYWE2OGZkNGU5Li45NjBjM2YzOWE5MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfZGIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2RiLmMKQEAgLTEzMyw4ICsxMzMsOCBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhY LAogCSAqLwogCWRvCiAJewotCQljb25zdCBjaGFyICprZXl3b3Jkc1s4XTsKLQkJY29uc3Qg Y2hhciAqdmFsdWVzWzhdOworCQljb25zdCBjaGFyICprZXl3b3Jkc1s5XTsKKwkJY29uc3Qg Y2hhciAqdmFsdWVzWzldOwogCQlpbnQJCQlpID0gMDsKIAogCQkvKgpAQCAtMTU5LDYgKzE1 OSwxMSBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhYLAogCQl9CiAJCWtleXdvcmRz W2ldID0gImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUiOwogCQl2YWx1ZXNbaSsrXSA9IHBy b2duYW1lOworCQlpZiAoY3BhcmFtcy0+Y29sdW1uX2VuY3J5cHRpb24pCisJCXsKKwkJCWtl eXdvcmRzW2ldID0gImNvbHVtbl9lbmNyeXB0aW9uIjsKKwkJCXZhbHVlc1tpKytdID0gIjEi OworCQl9CiAJCWtleXdvcmRzW2ldID0gTlVMTDsKIAkJdmFsdWVzW2krK10gPSBOVUxMOwog CQlBc3NlcnQoaSA8PSBsZW5ndGhvZihrZXl3b3JkcykpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg ZjhjNGNiOGQxODNkLi40Nzg4NzI4MDFmMWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDcsNiAr NDcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2Nhc3RfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3NfZC5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19kZWZhdWx0X2FjbF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJnZW9iamVjdF9k LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJnZW9iamVjdF9tZXRhZGF0YV9kLmgiCkBA IC0yMjUsNiArMjI2LDggQEAgc3RhdGljIHZvaWQgZHVtcEFjY2Vzc01ldGhvZChBcmNoaXZl ICpmb3V0LCBjb25zdCBBY2Nlc3NNZXRob2RJbmZvICphbWluZm8pOwogc3RhdGljIHZvaWQg ZHVtcE9wY2xhc3MoQXJjaGl2ZSAqZm91dCwgY29uc3QgT3BjbGFzc0luZm8gKm9wY2luZm8p Owogc3RhdGljIHZvaWQgZHVtcE9wZmFtaWx5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wZmFt aWx5SW5mbyAqb3BmaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUg KmZvdXQsIGNvbnN0IENvbGxJbmZvICpjb2xsaW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29s dW1uRW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDZWtJbmZvICpjZWtpbmZv KTsKK3N0YXRpYyB2b2lkIGR1bXBDb2x1bW5NYXN0ZXJLZXkoQXJjaGl2ZSAqZm91dCwgY29u c3QgQ21rSW5mbyAqY2VraW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29udmVyc2lvbihBcmNo aXZlICpmb3V0LCBjb25zdCBDb252SW5mbyAqY29udmluZm8pOwogc3RhdGljIHZvaWQgZHVt cFJ1bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUnVsZUluZm8gKnJpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBBZ2coQXJjaGl2ZSAqZm91dCwgY29uc3QgQWdnSW5mbyAqYWdnaW5mbyk7CkBA IC0zODQsNiArMzg3LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsiYXR0 cmlidXRlLWluc2VydHMiLCBub19hcmd1bWVudCwgJmRvcHQuY29sdW1uX2luc2VydHMsIDF9 LAogCQl7ImJpbmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZkb3B0LmJpbmFyeV91cGdy YWRlLCAxfSwKIAkJeyJjb2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5jb2x1 bW5faW5zZXJ0cywgMX0sCisJCXsiZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIsIG5vX2Fy Z3VtZW50LCAmZG9wdC5jcGFyYW1zLmNvbHVtbl9lbmNyeXB0aW9uLCAxfSwKIAkJeyJkaXNh YmxlLWRvbGxhci1xdW90aW5nIiwgbm9fYXJndW1lbnQsICZkb3B0LmRpc2FibGVfZG9sbGFy X3F1b3RpbmcsIDF9LAogCQl7ImRpc2FibGUtdHJpZ2dlcnMiLCBub19hcmd1bWVudCwgJmRv cHQuZGlzYWJsZV90cmlnZ2VycywgMX0sCiAJCXsiZW5hYmxlLXJvdy1zZWN1cml0eSIsIG5v X2FyZ3VtZW50LCAmZG9wdC5lbmFibGVfcm93X3NlY3VyaXR5LCAxfSwKQEAgLTY3Niw2ICs2 ODAsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkgKiAtLWluc2VydHMgYXJl IGFscmVhZHkgaW1wbGllZCBhYm92ZSBpZiAtLWNvbHVtbi1pbnNlcnRzIG9yCiAJICogLS1y b3dzLXBlci1pbnNlcnQgd2VyZSBzcGVjaWZpZWQuCiAJICovCisJaWYgKGRvcHQuY3BhcmFt cy5jb2x1bW5fZW5jcnlwdGlvbiAmJiBkb3B0LmR1bXBfaW5zZXJ0cyA9PSAwKQorCQlwZ19m YXRhbCgib3B0aW9uIC0tZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucyByZXF1aXJlcyBvcHRp b24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4taW5zZXJ0cyIp OworCiAJaWYgKGRvcHQuZG9fbm90aGluZyAmJiBkb3B0LmR1bXBfaW5zZXJ0cyA9PSAwKQog CQlwZ19mYXRhbCgib3B0aW9uIC0tb24tY29uZmxpY3QtZG8tbm90aGluZyByZXF1aXJlcyBv cHRpb24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4taW5zZXJ0 cyIpOwogCkBAIC0xMDIxLDYgKzEwMjgsNyBAQCBoZWxwKGNvbnN0IGNoYXIgKnByb2duYW1l KQogCXByaW50ZihfKCIgIC14LCAtLW5vLXByaXZpbGVnZXMgICAgICAgICAgZG8gbm90IGR1 bXAgcHJpdmlsZWdlcyAoZ3JhbnQvcmV2b2tlKVxuIikpOwogCXByaW50ZihfKCIgIC0tYmlu YXJ5LXVwZ3JhZGUgICAgICAgICAgICAgZm9yIHVzZSBieSB1cGdyYWRlIHV0aWxpdGllcyBv bmx5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb2x1bW4taW5zZXJ0cyAgICAgICAgICAgICBk dW1wIGRhdGEgYXMgSU5TRVJUIGNvbW1hbmRzIHdpdGggY29sdW1uIG5hbWVzXG4iKSk7CisJ cHJpbnRmKF8oIiAgLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zICBkZWNyeXB0IGVuY3J5 cHRlZCBjb2x1bW5zIGluIHRoZSBvdXRwdXRcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2Fi bGUtZG9sbGFyLXF1b3RpbmcgICAgIGRpc2FibGUgZG9sbGFyIHF1b3RpbmcsIHVzZSBTUUwg c3RhbmRhcmQgcXVvdGluZ1xuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS10cmlnZ2Vy cyAgICAgICAgICAgZGlzYWJsZSB0cmlnZ2VycyBkdXJpbmcgZGF0YS1vbmx5IHJlc3RvcmVc biIpKTsKIAlwcmludGYoXygiICAtLWVuYWJsZS1yb3ctc2VjdXJpdHkgICAgICAgIGVuYWJs ZSByb3cgc2VjdXJpdHkgKGR1bXAgb25seSBjb250ZW50IHVzZXIgaGFzXG4iCkBAIC01NTE3 LDYgKzU1MjUsMTM4IEBAIGdldENvbGxhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1D b2xsYXRpb25zKQogCXJldHVybiBjb2xsaW5mbzsKIH0KIAorLyoKKyAqIGdldENvbHVtbkVu Y3J5cHRpb25LZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCBjb2x1bW4gZW5jcnlw dGlvbiBrZXlzCisgKi8KK3ZvaWQKK2dldENvbHVtbkVuY3J5cHRpb25LZXlzKEFyY2hpdmUg KmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCWlu dAkJCW50dXBzOworCUNla0luZm8JICAgKmNla2luZm87CisJaW50CQkJaV90YWJsZW9pZDsK KwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nla25hbWU7CisJaW50CQkJaV9jZWtvd25lcjsK KworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTYwMDAwKQorCQlyZXR1cm47CisKKwlx dWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwKKwkJCQkJICAiU0VMRUNUIGNlay50YWJsZW9pZCwgY2VrLm9pZCwgY2VrLmNla25hbWUs XG4iCisJCQkJCSAgIiBjZWsuY2Vrb3duZXJcbiIKKwkJCQkJICAiRlJPTSBwZ19jb2xlbmNr ZXkgY2VrIik7CisKKwlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEs IFBHUkVTX1RVUExFU19PSyk7CisKKwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90 YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVt YmVyKHJlcywgIm9pZCIpOworCWlfY2VrbmFtZSA9IFBRZm51bWJlcihyZXMsICJjZWtuYW1l Iik7CisJaV9jZWtvd25lciA9IFBRZm51bWJlcihyZXMsICJjZWtvd25lciIpOworCisJY2Vr aW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihDZWtJbmZvKSk7CisKKwlmb3IgKGlu dCBpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlQR3Jlc3VsdAkgICAqcmVzMjsKKwkJ aW50CQkJCW50dXBzMjsKKworCQljZWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX0NFSzsK KwkJY2VraW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC5vaWQgPSBh dG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmY2Vr aW5mb1tpXS5kb2JqKTsKKwkJY2VraW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIGksIGlfY2VrbmFtZSkpOworCQljZWtpbmZvW2ldLnJvbG5hbWUgPSBn ZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9jZWtvd25lcikpOworCisJCXJlc2V0 UFFFeHBCdWZmZXIocXVlcnkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJ CSAgIlNFTEVDVCAoU0VMRUNUIGNta25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbG1hc3Rl cmtleSBXSEVSRSBwZ19jb2xtYXN0ZXJrZXkub2lkID0gY2tkY21raWQpIEFTIGNla2Nta25h bWUsXG4iCisJCQkJCQkgICIgY2tkY21rYWxnLCBja2RlbmN2YWxcbiIKKwkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19jb2xlbmNrZXlkYXRhXG4iCisJCQkJCQkgICJXSEVSRSBja2Rj ZWtpZCA9ICV1IiwgY2VraW5mb1tpXS5kb2JqLmNhdElkLm9pZCk7CisJCXJlczIgPSBFeGVj dXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisJCW50 dXBzMiA9IFBRbnR1cGxlcyhyZXMyKTsKKwkJY2VraW5mb1tpXS5udW1kYXRhID0gbnR1cHMy OworCQljZWtpbmZvW2ldLmNla2Nta25hbWVzID0gcGdfbWFsbG9jKHNpemVvZihjaGFyICop ICogbnR1cHMyKTsKKwkJY2VraW5mb1tpXS5jZWtjbWthbGdzID0gcGdfbWFsbG9jKHNpemVv ZihpbnQpICogbnR1cHMyKTsKKwkJY2VraW5mb1tpXS5jZWtlbmN2YWxzID0gcGdfbWFsbG9j KHNpemVvZihjaGFyICopICogbnR1cHMyKTsKKwkJZm9yIChpbnQgaiA9IDA7IGogPCBudHVw czI7IGorKykKKwkJeworCQkJY2VraW5mb1tpXS5jZWtjbWtuYW1lc1tqXSA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2VrY21rbmFtZSIpKSk7 CisJCQljZWtpbmZvW2ldLmNla2Nta2FsZ3Nbal0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzMiwg aiwgUFFmbnVtYmVyKHJlczIsICJja2RjbWthbGciKSkpOworCQkJY2VraW5mb1tpXS5jZWtl bmN2YWxzW2pdID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzMiwgaiwgUFFmbnVtYmVyKHJl czIsICJja2RlbmN2YWwiKSkpOworCQl9CisJCVBRY2xlYXIocmVzMik7CisKKwkJc2VsZWN0 RHVtcGFibGVPYmplY3QoJihjZWtpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwl9CisJUFFjbGVh cihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKworLyoKKyAqIGdl dENvbHVtbk1hc3RlcktleXMKKyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbiBt YXN0ZXIga2V5cworICovCit2b2lkCitnZXRDb2x1bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZv dXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJ CW50dXBzOworCUNta0luZm8JICAgKmNta2luZm87CisJaW50CQkJaV90YWJsZW9pZDsKKwlp bnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nta25hbWU7CisJaW50CQkJaV9jbWtvd25lcjsKKwlp bnQJCQlpX2Nta3JlYWxtOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxNjAwMDAp CisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1QgY21rLnRhYmxlb2lkLCBjbWsu b2lkLCBjbWsuY21rbmFtZSxcbiIKKwkJCQkJICAiIGNtay5jbWtvd25lciwgY21rLmNta3Jl YWxtXG4iCisJCQkJCSAgIkZST00gcGdfY29sbWFzdGVya2V5IGNtayIpOworCisJcmVzID0g RXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwor CisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIo cmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlp X2Nta25hbWUgPSBQUWZudW1iZXIocmVzLCAiY21rbmFtZSIpOworCWlfY21rb3duZXIgPSBQ UWZudW1iZXIocmVzLCAiY21rb3duZXIiKTsKKwlpX2Nta3JlYWxtID0gUFFmbnVtYmVyKHJl cywgImNta3JlYWxtIik7CisKKwljbWtpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9m KENta0luZm8pKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJ CWNta2luZm9baV0uZG9iai5vYmpUeXBlID0gRE9fQ01LOworCQljbWtpbmZvW2ldLmRvYmou Y2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQp KTsKKwkJY21raW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZjbWtpbmZvW2ldLmRvYmopOworCQlj bWtpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9j bWtuYW1lKSk7CisJCWNta2luZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFs dWUocmVzLCBpLCBpX2Nta293bmVyKSk7CisJCWNta2luZm9baV0uY21rcmVhbG0gPSBwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfY21rcmVhbG0pKTsKKworCQlzZWxlY3REdW1w YWJsZU9iamVjdCgmKGNta2luZm9baV0uZG9iaiksIGZvdXQpOworCX0KKwlQUWNsZWFyKHJl cyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQorCiAvKgogICogZ2V0Q29u dmVyc2lvbnM6CiAgKgkgIHJlYWQgYWxsIGNvbnZlcnNpb25zIGluIHRoZSBzeXN0ZW0gY2F0 YWxvZ3MgYW5kIHJldHVybiB0aGVtIGluIHRoZQpAQCAtODEwNyw2ICs4MjQ3LDkgQEAgZ2V0 VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1U YWJsZXMpCiAJaW50CQkJaV90eXBzdG9yYWdlOwogCWludAkJCWlfYXR0aWRlbnRpdHk7CiAJ aW50CQkJaV9hdHRnZW5lcmF0ZWQ7CisJaW50CQkJaV9hdHRjZWtuYW1lOworCWludAkJCWlf YXR0ZW5jYWxnOworCWludAkJCWlfYXR0ZW5jZGV0OwogCWludAkJCWlfYXR0aXNkcm9wcGVk OwogCWludAkJCWlfYXR0bGVuOwogCWludAkJCWlfYXR0YWxpZ247CkBAIC04MjE2LDE3ICs4 MzU5LDI5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0Ymxp bmZvLCBpbnQgbnVtVGFibGVzKQogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTIw MDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiYS5hdHRnZW5lcmF0 ZWRcbiIpOworCQkJCQkJCSAiYS5hdHRnZW5lcmF0ZWQsXG4iKTsKKwllbHNlCisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHEsCisJCQkJCQkJICInJyBBUyBhdHRnZW5lcmF0ZWQsXG4iKTsK KworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE2MDAwMCkKKwkJYXBwZW5kUFFFeHBC dWZmZXIocSwKKwkJCQkJCSAgIihTRUxFQ1QgY2VrbmFtZSBGUk9NIHBnX2NvbGVuY2tleSBj ZWsgV0hFUkUgY2VrLm9pZCA9IGEuYXR0Y2VrKSBBUyBhdHRjZWtuYW1lLFxuIgorCQkJCQkJ ICAiQ0FTRSBhdHR0eXBpZCBXSEVOICV1IFRIRU4gdHJ1ZSBXSEVOICV1IFRIRU4gZmFsc2Ug RU5EIEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCSAgImF0dGVuY2FsZ1xuIiwKKwkJCQkJCSAg UEdfRU5DUllQVEVEX0RFVE9JRCwgUEdfRU5DUllQVEVEX1JORE9JRCk7CiAJZWxzZQogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVkXG4i KTsKKwkJCQkJCQkgIk5VTEwgQVMgYXR0Y2VrbmFtZSxcbiIKKwkJCQkJCQkgIk5VTEwgQVMg YXR0ZW5jZGV0LFxuIgorCQkJCQkJCSAiTlVMTCBBUyBhdHRlbmNhbGdcbiIpOwogCiAJLyog bmVlZCBsZWZ0IGpvaW4gdG8gcGdfdHlwZSB0byBub3QgZmFpbCBvbiBkcm9wcGVkIGNvbHVt bnMgLi4uICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocSwKIAkJCQkJICAiRlJPTSB1bm5lc3Qo JyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkgQVMgc3JjKHRibG9pZClcbiIKIAkJCQkJICAiSk9J TiBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBhIE9OIChzcmMudGJsb2lkID0gYS5hdHRyZWxp ZCkgIgogCQkJCQkgICJMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIHQgIgotCQkJCQkg ICJPTiAoYS5hdHR0eXBpZCA9IHQub2lkKVxuIgorCQkJCQkgICJPTiAoQ0FTRSBXSEVOIGEu YXR0cmVhbHR5cGlkIDw+IDAgVEhFTiBhLmF0dHJlYWx0eXBpZCBFTFNFIGEuYXR0dHlwaWQg RU5EID0gdC5vaWQpXG4iCiAJCQkJCSAgIldIRVJFIGEuYXR0bnVtID4gMDo6cGdfY2F0YWxv Zy5pbnQyXG4iCiAJCQkJCSAgIk9SREVSIEJZIGEuYXR0cmVsaWQsIGEuYXR0bnVtIiwKIAkJ CQkJICB0YmxvaWRzLT5kYXRhKTsKQEAgLTgyNDUsNiArODQwMCw5IEBAIGdldFRhYmxlQXR0 cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQog CWlfdHlwc3RvcmFnZSA9IFBRZm51bWJlcihyZXMsICJ0eXBzdG9yYWdlIik7CiAJaV9hdHRp ZGVudGl0eSA9IFBRZm51bWJlcihyZXMsICJhdHRpZGVudGl0eSIpOwogCWlfYXR0Z2VuZXJh dGVkID0gUFFmbnVtYmVyKHJlcywgImF0dGdlbmVyYXRlZCIpOworCWlfYXR0Y2VrbmFtZSA9 IFBRZm51bWJlcihyZXMsICJhdHRjZWtuYW1lIik7CisJaV9hdHRlbmNkZXQgPSBQUWZudW1i ZXIocmVzLCAiYXR0ZW5jZGV0Iik7CisJaV9hdHRlbmNhbGcgPSBQUWZudW1iZXIocmVzLCAi YXR0ZW5jYWxnIik7CiAJaV9hdHRpc2Ryb3BwZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0aXNk cm9wcGVkIik7CiAJaV9hdHRsZW4gPSBQUWZudW1iZXIocmVzLCAiYXR0bGVuIik7CiAJaV9h dHRhbGlnbiA9IFBRZm51bWJlcihyZXMsICJhdHRhbGlnbiIpOwpAQCAtODMwNiw2ICs4NDY0 LDkgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8s IGludCBudW1UYWJsZXMpCiAJCXRiaW5mby0+dHlwc3RvcmFnZSA9IChjaGFyICopIHBnX21h bGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKIAkJdGJpbmZvLT5hdHRpZGVudGl0eSA9 IChjaGFyICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKIAkJdGJpbmZv LT5hdHRnZW5lcmF0ZWQgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihj aGFyKSk7CisJCXRiaW5mby0+YXR0Y2VrbmFtZSA9IChjaGFyICoqKSBwZ19tYWxsb2MobnVt YXR0cyAqIHNpemVvZihjaGFyICopKTsKKwkJdGJpbmZvLT5hdHRlbmNkZXQgPSAoYm9vbCAq KSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihib29sKSk7CisJCXRiaW5mby0+YXR0ZW5j YWxnID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihpbnQpKTsKIAkJdGJp bmZvLT5hdHRpc2Ryb3BwZWQgPSAoYm9vbCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVv Zihib29sKSk7CiAJCXRiaW5mby0+YXR0bGVuID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0 cyAqIHNpemVvZihpbnQpKTsKIAkJdGJpbmZvLT5hdHRhbGlnbiA9IChjaGFyICopIHBnX21h bGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKQEAgLTgzMzQsNiArODQ5NSwxOCBAQCBn ZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51 bVRhYmxlcykKIAkJCXRiaW5mby0+YXR0aWRlbnRpdHlbal0gPSAqKFBRZ2V0dmFsdWUocmVz LCByLCBpX2F0dGlkZW50aXR5KSk7CiAJCQl0YmluZm8tPmF0dGdlbmVyYXRlZFtqXSA9ICoo UFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Z2VuZXJhdGVkKSk7CiAJCQl0YmluZm8tPm5lZWRz X292ZXJyaWRlID0gdGJpbmZvLT5uZWVkc19vdmVycmlkZSB8fCAodGJpbmZvLT5hdHRpZGVu dGl0eVtqXSA9PSBBVFRSSUJVVEVfSURFTlRJVFlfQUxXQVlTKTsKKwkJCWlmICghUFFnZXRp c251bGwocmVzLCByLCBpX2F0dGNla25hbWUpKQorCQkJCXRiaW5mby0+YXR0Y2VrbmFtZVtq XSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRjZWtuYW1lKSk7CisJCQll bHNlCisJCQkJdGJpbmZvLT5hdHRjZWtuYW1lW2pdID0gTlVMTDsKKwkJCWlmICghUFFnZXRp c251bGwocmVzLCByLCBpX2F0dGVuY2RldCkpCisJCQkJdGJpbmZvLT5hdHRlbmNkZXRbal0g PSAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0ZW5jZGV0KVswXSA9PSAndCcpOworCQkJZWxz ZQorCQkJCXRiaW5mby0+YXR0ZW5jZGV0W2pdID0gMDsKKwkJCWlmICghUFFnZXRpc251bGwo cmVzLCByLCBpX2F0dGVuY2FsZykpCisJCQkJdGJpbmZvLT5hdHRlbmNhbGdbal0gPSBhdG9p KFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGVuY2FsZykpOworCQkJZWxzZQorCQkJCXRiaW5m by0+YXR0ZW5jYWxnW2pdID0gMDsKIAkJCXRiaW5mby0+YXR0aXNkcm9wcGVkW2pdID0gKFBR Z2V0dmFsdWUocmVzLCByLCBpX2F0dGlzZHJvcHBlZClbMF0gPT0gJ3QnKTsKIAkJCXRiaW5m by0+YXR0bGVuW2pdID0gYXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRsZW4pKTsKIAkJ CXRiaW5mby0+YXR0YWxpZ25bal0gPSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGFsaWdu KSk7CkBAIC05ODU4LDYgKzEwMDMxLDEyIEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZl ICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19PUEZBTUlMWToKIAkJ CWR1bXBPcGZhbWlseShmb3V0LCAoY29uc3QgT3BmYW1pbHlJbmZvICopIGRvYmopOwogCQkJ YnJlYWs7CisJCWNhc2UgRE9fQ0VLOgorCQkJZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoZm91 dCwgKGNvbnN0IENla0luZm8gKikgZG9iaik7CisJCQlicmVhazsKKwkJY2FzZSBET19DTUs6 CisJCQlkdW1wQ29sdW1uTWFzdGVyS2V5KGZvdXQsIChjb25zdCBDbWtJbmZvICopIGRvYmop OworCQkJYnJlYWs7CiAJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJZHVtcENvbGxhdGlvbihm b3V0LCAoY29uc3QgQ29sbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTEzMjUxLDYg KzEzNDMwLDE1MyBAQCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJ bmZvICpjb2xsaW5mbykKIAlmcmVlKHFjb2xsbmFtZSk7CiB9CiAKK3N0YXRpYyBjb25zdCBj aGFyICoKK2dldF9lbmNhbGdfbmFtZShpbnQgbnVtKQoreworCXN3aXRjaCAobnVtKQorCXsK KwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCXJldHVybiAiUlNBRVNfT0FF UF9TSEFfMSI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCXJldHVy biAiUlNBRVNfT0FFUF9TSEFfMjU2IjsKKworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjoKKwkJCXJldHVybiAiQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NI QV8yNTYiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoK KwkJCXJldHVybiAiQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQiOworCQljYXNlIFBH X0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCXJldHVybiAiQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV8zODQiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZf Q0JDX0hNQUNfU0hBXzUxMjoKKwkJCXJldHVybiAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NI QV81MTIiOworCisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gTlVMTDsKKwl9Cit9CisKKy8qCisg KiBkdW1wQ29sdW1uRW5jcnlwdGlvbktleQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9m IHRoZSBnaXZlbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAqLworc3RhdGljIHZvaWQKK2R1 bXBDb2x1bW5FbmNyeXB0aW9uS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENla0luZm8gKmNl a2luZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhwQnVm ZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcWNla25hbWU7CisK KwkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRhdGFP bmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVy eSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxY2VrbmFtZSA9IHBnX3N0cmR1cChmbXRJ ZChjZWtpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJE Uk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAlcztcbiIsCisJCQkJCSAgcWNla25hbWUpOwor CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZICVzIFdJVEggVkFMVUVTICIsCisJCQkJCSAgcWNla25hbWUpOworCisJZm9yIChpbnQg aSA9IDA7IGkgPCBjZWtpbmZvLT5udW1kYXRhOyBpKyspCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIigiKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImNvbHVt bl9tYXN0ZXJfa2V5ID0gJXMsICIsIGZtdElkKGNla2luZm8tPmNla2Nta25hbWVzW2ldKSk7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiYWxnb3JpdGhtID0gJyVzJywgIiwgZ2V0 X2VuY2FsZ19uYW1lKGNla2luZm8tPmNla2Nta2FsZ3NbaV0pKTsKKwkJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICJlbmNyeXB0ZWRfdmFsdWUgPSAiKTsKKwkJYXBwZW5kU3RyaW5nTGl0 ZXJhbEFIKHF1ZXJ5LCBjZWtpbmZvLT5jZWtlbmN2YWxzW2ldLCBmb3V0KTsKKworCQlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIikiKTsKKwkJaWYgKGkgPCBjZWtpbmZvLT5udW1kYXRh IC0gMSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsICIpOworCX0KKworCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAoY2VraW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQs IGNla2luZm8tPmRvYmouY2F0SWQsIGNla2luZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJD SElWRV9PUFRTKC50YWcgPSBjZWtpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVy ID0gY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQ09MVU1O IEVOQ1JZUFRJT04gS0VZIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RB VEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAu ZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYg RFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBF TkNSWVBUSU9OIEtFWSIsIHFjZWtuYW1lLAorCQkJCQlOVUxMLCBjZWtpbmZvLT5yb2xuYW1l LAorCQkJCQljZWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjZWtpbmZvLT5kb2JqLmR1bXBJZCk7 CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwp CisJCWR1bXBTZWNMYWJlbChmb3V0LCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgcWNla25h bWUsCisJCQkJCSBOVUxMLCBjZWtpbmZvLT5yb2xuYW1lLAorCQkJCQkgY2VraW5mby0+ZG9i ai5jYXRJZCwgMCwgY2VraW5mby0+ZG9iai5kdW1wSWQpOworCisJZGVzdHJveVBRRXhwQnVm ZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJZnJlZShxY2VrbmFt ZSk7Cit9CisKKy8qCisgKiBkdW1wQ29sdW1uTWFzdGVyS2V5CisgKgkgIGR1bXAgdGhlIGRl ZmluaXRpb24gb2YgdGhlIGdpdmVuIGNvbHVtbiBtYXN0ZXIga2V5CisgKi8KK3N0YXRpYyB2 b2lkCitkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENta0luZm8g KmNta2luZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhw QnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcWNta25hbWU7 CisKKwkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRh dGFPbmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlx dWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxY21rbmFtZSA9IHBnX3N0cmR1cChm bXRJZChjbWtpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEs ICJEUk9QIENPTFVNTiBNQVNURVIgS0VZICVzO1xuIiwKKwkJCQkJICBxY21rbmFtZSk7CisK KwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAl cyBXSVRIICgiLAorCQkJCQkgIHFjbWtuYW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAicmVhbG0gPSAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNta2lu Zm8tPmNta3JlYWxtLCBmb3V0KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAi KTtcbiIpOworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RF RklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCBjbWtpbmZvLT5kb2JqLmNhdElkLCBj bWtpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY21raW5m by0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNta2luZm8tPnJvbG5hbWUsCisJ CQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBNQVNURVIgS0VZIiwKKwkJCQkJCQkJ ICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQg PSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisK KwlpZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJ ZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBNQVNURVIgS0VZIiwgcWNta25hbWUsCisJCQkJ CU5VTEwsIGNta2luZm8tPnJvbG5hbWUsCisJCQkJCWNta2luZm8tPmRvYmouY2F0SWQsIDAs IGNta2luZm8tPmRvYmouZHVtcElkKTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBE VU1QX0NPTVBPTkVOVF9TRUNMQUJFTCkKKwkJZHVtcFNlY0xhYmVsKGZvdXQsICJDT0xVTU4g TUFTVEVSIEtFWSIsIHFjbWtuYW1lLAorCQkJCQkgTlVMTCwgY21raW5mby0+cm9sbmFtZSwK KwkJCQkJIGNta2luZm8tPmRvYmouY2F0SWQsIDAsIGNta2luZm8tPmRvYmouZHVtcElkKTsK KworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVl cnkpOworCWZyZWUocWNta25hbWUpOworfQorCiAvKgogICogZHVtcENvbnZlcnNpb24KICAq CSAgd3JpdGUgb3V0IGEgc2luZ2xlIGNvbnZlcnNpb24gZGVmaW5pdGlvbgpAQCAtMTUzMzQs NiArMTU2NjAsMjIgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRh YmxlSW5mbyAqdGJpbmZvKQogCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHR0eXBuYW1lc1tqXSk7 CiAJCQkJCX0KIAorCQkJCQlpZiAodGJpbmZvLT5hdHRjZWtuYW1lW2pdKQorCQkJCQl7CisJ CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5j cnlwdGlvbl9rZXkgPSAlcywgIiwKKwkJCQkJCQkJCQkgIGZtdElkKHRiaW5mby0+YXR0Y2Vr bmFtZVtqXSkpOworCQkJCQkJLyoKKwkJCQkJCSAqIFRvIHJlZHVjZSBvdXRwdXQgc2l6ZSwg d2UgZG9uJ3QgcHJpbnQgdGhlIGRlZmF1bHQKKwkJCQkJCSAqIG9mIGVuY3J5cHRpb25fdHlw ZSwgYnV0IHdlIGRvIHByaW50IHRoZSBkZWZhdWx0IG9mCisJCQkJCQkgKiBhbGdvcml0aG0s IHNpbmNlIHdlIG1pZ2h0IHdhbnQgdG8gY2hhbmdlIHRvIGEgbmV3CisJCQkJCQkgKiBkZWZh dWx0IGFsZ29yaXRobSBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgorCQkJCQkJICovCisJCQkJ CQlpZiAodGJpbmZvLT5hdHRlbmNkZXRbal0pCisJCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIo cSwgImVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMsICIpOworCQkJCQkJYXBwZW5k UFFFeHBCdWZmZXIocSwgImFsZ29yaXRobSA9ICclcycpIiwKKwkJCQkJCQkJCQkgIGdldF9l bmNhbGdfbmFtZSh0YmluZm8tPmF0dGVuY2FsZ1tqXSkpOworCQkJCQl9CisKIAkJCQkJaWYg KHByaW50X2RlZmF1bHQpCiAJCQkJCXsKIAkJCQkJCWlmICh0YmluZm8tPmF0dGdlbmVyYXRl ZFtqXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKQEAgLTE3ODk4LDYgKzE4MjQw LDggQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2Jqcywg aW50IG51bU9ianMsCiAJCQljYXNlIERPX0FDQ0VTU19NRVRIT0Q6CiAJCQljYXNlIERPX09Q Q0xBU1M6CiAJCQljYXNlIERPX09QRkFNSUxZOgorCQkJY2FzZSBET19DRUs6CisJCQljYXNl IERPX0NNSzoKIAkJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJY2FzZSBET19DT05WRVJTSU9O OgogCQkJY2FzZSBET19UQUJMRToKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDQyN2Y1ZDQ1ZjY1Yi4u Y2JkYmFlOTAzZjMzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3LDYgKzQ3LDggQEAgdHlwZWRl ZiBlbnVtCiAJRE9fQUNDRVNTX01FVEhPRCwKIAlET19PUENMQVNTLAogCURPX09QRkFNSUxZ LAorCURPX0NFSywKKwlET19DTUssCiAJRE9fQ09MTEFUSU9OLAogCURPX0NPTlZFUlNJT04s CiAJRE9fVEFCTEUsCkBAIC0zMzMsNiArMzM1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxl SW5mbwogCWJvb2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3Bw ZWQ7IGRvbid0IGR1bXAgaXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAg ICphdHRnZW5lcmF0ZWQ7CisJY2hhcgkgICoqYXR0Y2VrbmFtZTsKKwlpbnQJCSAgICphdHRl bmNhbGc7CisJYm9vbAkgICAqYXR0ZW5jZGV0OwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBh dHRyaWJ1dGUgbGVuZ3RoLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJY2hhcgkgICAq YXR0YWxpZ247CQkvKiBhdHRyaWJ1dGUgYWxpZ24sIHVzZWQgYnkgYmluYXJ5X3VwZ3JhZGUg Ki8KIAlib29sCSAgICphdHRpc2xvY2FsOwkJLyogdHJ1ZSBpZiBhdHRyIGhhcyBsb2NhbCBk ZWZpbml0aW9uICovCkBAIC02NjQsNiArNjY5LDMwIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJz Y3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogfSBTdWJzY3JpcHRp b25JbmZvOwogCisvKgorICogVGhlIENla0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVz ZW50IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX0Nla0lu Zm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJ aW50CQkJbnVtZGF0YTsKKwkvKiBUaGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVtZGF0 YSBlbnRyaWVzIGVhY2g6ICovCisJY2hhcgkgICoqY2VrY21rbmFtZXM7CisJaW50CQkgICAq Y2VrY21rYWxnczsKKwljaGFyCSAgKipjZWtlbmN2YWxzOworfSBDZWtJbmZvOworCisvKgor ICogVGhlIENta0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVtbiBtYXN0 ZXIga2V5LgorICovCit0eXBlZGVmIHN0cnVjdCBfQ21rSW5mbworeworCUR1bXBhYmxlT2Jq ZWN0IGRvYmo7CisJY29uc3QgY2hhciAqcm9sbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsK K30gQ21rSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBA IC03MTEsNiArNzQwLDggQEAgZXh0ZXJuIEFjY2Vzc01ldGhvZEluZm8gKmdldEFjY2Vzc01l dGhvZHMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1BY2Nlc3NNZXRob2RzKTsKIGV4dGVybiBP cGNsYXNzSW5mbyAqZ2V0T3BjbGFzc2VzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3BjbGFz c2VzKTsKIGV4dGVybiBPcGZhbWlseUluZm8gKmdldE9wZmFtaWxpZXMoQXJjaGl2ZSAqZm91 dCwgaW50ICpudW1PcGZhbWlsaWVzKTsKIGV4dGVybiBDb2xsSW5mbyAqZ2V0Q29sbGF0aW9u cyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbGxhdGlvbnMpOworZXh0ZXJuIHZvaWQgZ2V0 Q29sdW1uRW5jcnlwdGlvbktleXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRD b2x1bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIENvbnZJbmZvICpnZXRD b252ZXJzaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbnZlcnNpb25zKTsKIGV4dGVy biBUYWJsZUluZm8gKmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcyk7 CiBleHRlcm4gdm9pZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRi bGluZm9bXSwgaW50IG51bVRhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXgg NWRlMzI0MWViNDk2Li5lNTYyYTY3N2VkNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK QEAgLTY5LDYgKzY5LDggQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19U U1RFTVBMQVRFLAogCVBSSU9fVFNESUNULAogCVBSSU9fVFNDT05GSUcsCisJUFJJT19DTUss CisJUFJJT19DRUssCiAJUFJJT19GRFcsCiAJUFJJT19GT1JFSUdOX1NFUlZFUiwKIAlQUklP X1RBQkxFLApAQCAtMTExLDYgKzExMyw4IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RU eXBlUHJpb3JpdHlbXSA9CiAJUFJJT19BQ0NFU1NfTUVUSE9ELAkJCS8qIERPX0FDQ0VTU19N RVRIT0QgKi8KIAlQUklPX09QRkFNSUxZLAkJCQkvKiBET19PUENMQVNTICovCiAJUFJJT19P UEZBTUlMWSwJCQkJLyogRE9fT1BGQU1JTFkgKi8KKwlQUklPX0NFSywJCQkJCS8qIERPX0NF SyAqLworCVBSSU9fQ01LLAkJCQkJLyogRE9fQ01LICovCiAJUFJJT19DT0xMQVRJT04sCQkJ CS8qIERPX0NPTExBVElPTiAqLwogCVBSSU9fQ09OVkVSU0lPTiwJCQkvKiBET19DT05WRVJT SU9OICovCiAJUFJJT19UQUJMRSwJCQkJCS8qIERPX1RBQkxFICovCkBAIC0xMzIyLDYgKzEz MjYsMTYgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBj aGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIk9QRVJBVE9SIEZBTUlMWSAlcyAgKElE ICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJ ZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX0NFSzoKKwkJCXNucHJpbnRmKGJ1Ziwg YnVmc2l6ZSwKKwkJCQkJICJDT0xVTU4gRU5DUllQVElPTiBLRVkgKElEICVkIE9JRCAldSki LAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKKwkJ Y2FzZSBET19DTUs6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiQ09MVU1O IE1BU1RFUiBLRVkgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19DT0xMQVRJT046CiAJCQlzbnBy aW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiQ09MTEFUSU9OICVzICAoSUQgJWQgT0lEICV1 KSIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBhbGwuYwppbmRleCAwODMwMTJjYTM5ZDUuLmJmZTc2ZGQzMTVk NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCkBAIC05Myw2ICs5Myw3IEBAIHN0YXRpYyBib29s IGRvc3luYyA9IHRydWU7CiAKIHN0YXRpYyBpbnQJYmluYXJ5X3VwZ3JhZGUgPSAwOwogc3Rh dGljIGludAljb2x1bW5faW5zZXJ0cyA9IDA7CitzdGF0aWMgaW50CWRlY3J5cHRfZW5jcnlw dGVkX2NvbHVtbnMgPSAwOwogc3RhdGljIGludAlkaXNhYmxlX2RvbGxhcl9xdW90aW5nID0g MDsKIHN0YXRpYyBpbnQJZGlzYWJsZV90cmlnZ2VycyA9IDA7CiBzdGF0aWMgaW50CWlmX2V4 aXN0cyA9IDA7CkBAIC0xNTQsNiArMTU1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCQl7ImF0dHJpYnV0ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZjb2x1bW5faW5z ZXJ0cywgMX0sCiAJCXsiYmluYXJ5LXVwZ3JhZGUiLCBub19hcmd1bWVudCwgJmJpbmFyeV91 cGdyYWRlLCAxfSwKIAkJeyJjb2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1u X2luc2VydHMsIDF9LAorCQl7ImRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMiLCBub19hcmd1 bWVudCwgJmRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMsIDF9LAogCQl7ImRpc2FibGUtZG9s bGFyLXF1b3RpbmciLCBub19hcmd1bWVudCwgJmRpc2FibGVfZG9sbGFyX3F1b3RpbmcsIDF9 LAogCQl7ImRpc2FibGUtdHJpZ2dlcnMiLCBub19hcmd1bWVudCwgJmRpc2FibGVfdHJpZ2dl cnMsIDF9LAogCQl7ImV4Y2x1ZGUtZGF0YWJhc2UiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVM TCwgNn0sCkBAIC00MjQsNiArNDI2LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tYmluYXJ5LXVwZ3Jh ZGUiKTsKIAlpZiAoY29sdW1uX2luc2VydHMpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBn ZHVtcG9wdHMsICIgLS1jb2x1bW4taW5zZXJ0cyIpOworCWlmIChkZWNyeXB0X2VuY3J5cHRl ZF9jb2x1bW5zKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tZGVj cnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIpOwogCWlmIChkaXNhYmxlX2RvbGxhcl9xdW90aW5n KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tZGlzYWJsZS1kb2xs YXItcXVvdGluZyIpOwogCWlmIChkaXNhYmxlX3RyaWdnZXJzKQpAQCAtNjQ5LDYgKzY1Myw3 IEBAIGhlbHAodm9pZCkKIAlwcmludGYoXygiICAteCwgLS1uby1wcml2aWxlZ2VzICAgICAg ICAgIGRvIG5vdCBkdW1wIHByaXZpbGVnZXMgKGdyYW50L3Jldm9rZSlcbiIpKTsKIAlwcmlu dGYoXygiICAtLWJpbmFyeS11cGdyYWRlICAgICAgICAgICAgIGZvciB1c2UgYnkgdXBncmFk ZSB1dGlsaXRpZXMgb25seVxuIikpOwogCXByaW50ZihfKCIgIC0tY29sdW1uLWluc2VydHMg ICAgICAgICAgICAgZHVtcCBkYXRhIGFzIElOU0VSVCBjb21tYW5kcyB3aXRoIGNvbHVtbiBu YW1lc1xuIikpOworCXByaW50ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyAg ZGVjcnlwdCBlbmNyeXB0ZWQgY29sdW1ucyBpbiB0aGUgb3V0cHV0XG4iKSk7CiAJcHJpbnRm KF8oIiAgLS1kaXNhYmxlLWRvbGxhci1xdW90aW5nICAgICBkaXNhYmxlIGRvbGxhciBxdW90 aW5nLCB1c2UgU1FMIHN0YW5kYXJkIHF1b3RpbmdcbiIpKTsKIAlwcmludGYoXygiICAtLWRp c2FibGUtdHJpZ2dlcnMgICAgICAgICAgIGRpc2FibGUgdHJpZ2dlcnMgZHVyaW5nIGRhdGEt b25seSByZXN0b3JlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1leGNsdWRlLWRhdGFiYXNlPVBB VFRFUk4gICBleGNsdWRlIGRhdGFiYXNlcyB3aG9zZSBuYW1lIG1hdGNoZXMgUEFUVEVSTlxu IikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBhODY5MzIxY2RmYzMuLmM1 YWNhNjUyZmFlYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTU5Myw2ICs1 OTMsMTggQEAKIAkJdW5saWtlICAgID0+IHsgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgbm9f b3duZXIgPT4gMSwgfSwKIAl9LAogCisJJ0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsxIE9XTkVSIFRPJyA9PiB7CisJCXJlZ2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazEgT1dORVIgVE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fb3duZXIg PT4gMSwgfSwKKwl9LAorCisJJ0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgT1dORVIg VE8nID0+IHsKKwkJcmVnZXhwID0+IHFyL15BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsx IE9XTkVSIFRPIC4rOy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3By ZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwK KwogCSdBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTycgPT4gewog CQlyZWdleHAgPT4gcXIvXkFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15IE9XTkVS IFRPIC4rOy9tLAogCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRh ID0+IDEsIH0sCkBAIC0xMTkzLDYgKzEyMDUsMjQgQEAKIAkJbGlrZSAgICAgID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ09NTUVOVCBP TiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5 XCc7JywKKwkJcmVnZXhwID0+CisJCSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5JzsvbSwK KwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9 LAorCisJJ0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVh dGVfb3JkZXIgPT4gNTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4g TUFTVEVSIEtFWSBjbWsxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiBjb2x1bW4gbWFzdGVy IGtleVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVNTiBNQVNU RVIgS0VZIGNtazEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXknOy9tLAorCQls aWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisK IAknQ09NTUVOVCBPTiBMQVJHRSBPQkpFQ1QgLi4uJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9 PiA2NSwKIAkJY3JlYXRlX3NxbCAgID0+ICdETyAkJApAQCAtMTYxMSw2ICsxNjQxLDI0IEBA CiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCiAJ fSwKIAorCSdDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3Jl YXRlX29yZGVyID0+IDUxLAorCQljcmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsx LCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4REVBREJFRUYnKTsiLAorCQlyZWdleHAgICAgICAg PT4gcXIvXgorCQkJXFFDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBW QUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgYWxnb3JpdGhtID0gJ1JTQUVTX09B RVBfU0hBXzEnLCBlbmNyeXB0ZWRfdmFsdWUgPSBcRQorCQkJL3htLAorCQlsaWtlID0+IHsg JWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKKwknQ1JFQVRF IENPTFVNTiBNQVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAor CQljcmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEgg KHJlYWxtID0gJ215cmVhbG0nKTsiLAorCQlyZWdleHAgICAgICAgPT4gcXIvXgorCQkJXFFD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICdteXJlYWxtJyk7 XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEg PT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBEQVRBQkFTRSBwb3N0Z3JlcycgPT4gewogCQly ZWdleHAgPT4gcXIvXgogCQkJXFFDUkVBVEUgREFUQUJBU0UgcG9zdGdyZXMgV0lUSCBURU1Q TEFURSA9IHRlbXBsYXRlMCBcRQpAQCAtMzk4NCw4ICs0MDMyLDEyIEBACiAJCQluZXh0Owog CQl9CiAKLQkJIyBBZGQgdGVybWluYXRpbmcgc2VtaWNvbG9uCi0JCSRjcmVhdGVfc3FseyR0 ZXN0X2RifSAuPSAkdGVzdHN7JHRlc3R9LT57Y3JlYXRlX3NxbH0gLiAiOyI7CisJCSMgTm9y bWFsaXplIGNvbW1hbmQgZW5kaW5nOiBzdHJpcCBhbGwgbGluZSBlbmRpbmdzLCBhZGQKKwkJ IyBzZW1pY29sb24gaWYgbWlzc2luZywgYWRkIHR3byBuZXdsaW5lcy4KKwkJbXkgJGNyZWF0 ZV9zcWwgPSAkdGVzdHN7JHRlc3R9LT57Y3JlYXRlX3NxbH07CisJCWNob21wICRjcmVhdGVf c3FsOworCQkkY3JlYXRlX3NxbCAuPSAnOycgdW5sZXNzIHN1YnN0cigkY3JlYXRlX3NxbCwg LTEpIGVxICc7JzsKKwkJJGNyZWF0ZV9zcWx7JHRlc3RfZGJ9IC49ICRjcmVhdGVfc3FsIC4g IlxuXG4iOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBi L3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggYTE0MTE0NmU3MDZiLi4yMzA2ZjRjYTYw YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYwpAQCAtOTgsNiArOTgsNyBAQCBzdGF0aWMgYmFja3NsYXNoUmVzdWx0 IHByb2Nlc3NfY29tbWFuZF9nX29wdGlvbnMoY2hhciAqZmlyc3Rfb3B0aW9uLAogCQkJCQkJ CQkJCQkJIGJvb2wgYWN0aXZlX2JyYW5jaCwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpj bWQpOwogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpOworc3RhdGljIGJhY2tz bGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2VuY3IoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRl LCBib29sIGFjdGl2ZV9icmFuY2gpOwogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2Nv bW1hbmRfZ2V0ZW52KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoLAogCQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMgYmFja3NsYXNo UmVzdWx0IGV4ZWNfY29tbWFuZF9nZXhlYyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJv b2wgYWN0aXZlX2JyYW5jaCk7CkBAIC0zNTAsNiArMzUxLDggQEAgZXhlY19jb21tYW5kKGNv bnN0IGNoYXIgKmNtZCwKIAkJc3RhdHVzID0gZXhlY19jb21tYW5kX2coc2Nhbl9zdGF0ZSwg YWN0aXZlX2JyYW5jaCwgY21kKTsKIAllbHNlIGlmIChzdHJjbXAoY21kLCAiZ2Rlc2MiKSA9 PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfZ2Rlc2Moc2Nhbl9zdGF0ZSwgYWN0aXZl X2JyYW5jaCk7CisJZWxzZSBpZiAoc3RyY21wKGNtZCwgImdlbmNyIikgPT0gMCkKKwkJc3Rh dHVzID0gZXhlY19jb21tYW5kX2dlbmNyKHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwog CWVsc2UgaWYgKHN0cmNtcChjbWQsICJnZXRlbnYiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVj X2NvbW1hbmRfZ2V0ZW52KHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gsIGNtZCk7CiAJZWxz ZSBpZiAoc3RyY21wKGNtZCwgImdleGVjIikgPT0gMCkKQEAgLTE0OTIsNiArMTQ5NSwzNCBA QCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFj dGl2ZV9icmFuY2gpCiAJcmV0dXJuIHN0YXR1czsKIH0KIAorLyoKKyAqIFxnZW5jciAtLSBz ZW5kIHF1ZXJ5LCB3aXRoIHN1cHBvcnQgZm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uCisgKi8K K3N0YXRpYyBiYWNrc2xhc2hSZXN1bHQKK2V4ZWNfY29tbWFuZF9nZW5jcihQc3FsU2NhblN0 YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKK3sKKwliYWNrc2xhc2hSZXN1 bHQgc3RhdHVzID0gUFNRTF9DTURfU0tJUF9MSU5FOworCWNoYXIJICAgKmFwOworCisJcHNl dC5udW1fcGFyYW1zID0gMDsKKwlwc2V0LnBhcmFtcyA9IE5VTEw7CisJd2hpbGUgKChhcCA9 IHBzcWxfc2Nhbl9zbGFzaF9vcHRpb24oc2Nhbl9zdGF0ZSwKKwkJCQkJCQkJCQlPVF9OT1JN QUwsIE5VTEwsIHRydWUpKSAhPSBOVUxMKQorCXsKKwkJcHNldC5udW1fcGFyYW1zKys7CisJ CXBzZXQucGFyYW1zID0gcGdfcmVhbGxvYyhwc2V0LnBhcmFtcywgcHNldC5udW1fcGFyYW1z ICogc2l6ZW9mKGNoYXIgKikpOworCQlwc2V0LnBhcmFtc1twc2V0Lm51bV9wYXJhbXMgLSAx XSA9IGFwOworCX0KKworCWlmIChhY3RpdmVfYnJhbmNoKQorCXsKKwkJcHNldC5nZW5jcl9m bGFnID0gdHJ1ZTsKKwkJc3RhdHVzID0gUFNRTF9DTURfU0VORDsKKwl9CisKKwlyZXR1cm4g c3RhdHVzOworfQorCiAvKgogICogXGdldGVudiAtLSBzZXQgdmFyaWFibGUgZnJvbSBlbnZp cm9ubWVudCB2YXJpYWJsZQogICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbW9u LmMgYi9zcmMvYmluL3BzcWwvY29tbW9uLmMKaW5kZXggZTYxMWUzMjY2ZDBjLi5kNjg0NmFj ZjVmNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tb24uYworKysgYi9zcmMvYmlu L3BzcWwvY29tbW9uLmMKQEAgLTEyODUsNiArMTI4NSwxNCBAQCBTZW5kUXVlcnkoY29uc3Qg Y2hhciAqcXVlcnkpCiAJLyogcmVzZXQgXGdkZXNjIHRyaWdnZXIgKi8KIAlwc2V0LmdkZXNj X2ZsYWcgPSBmYWxzZTsKIAorCS8qIHJlc2V0IFxnZW5jciB0cmlnZ2VyICovCisJcHNldC5n ZW5jcl9mbGFnID0gZmFsc2U7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBwc2V0Lm51bV9wYXJh bXM7IGkrKykKKwkJcGdfZnJlZShwc2V0LnBhcmFtc1tpXSk7CisJcGdfZnJlZShwc2V0LnBh cmFtcyk7CisJcHNldC5wYXJhbXMgPSBOVUxMOworCXBzZXQubnVtX3BhcmFtcyA9IDA7CisK IAkvKiByZXNldCBcZ2V4ZWMgdHJpZ2dlciAqLwogCXBzZXQuZ2V4ZWNfZmxhZyA9IGZhbHNl OwogCkBAIC0xNDQ5LDcgKzE0NTcsMzYgQEAgRXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3VsdHMo Y29uc3QgY2hhciAqcXVlcnksIGRvdWJsZSAqZWxhcHNlZF9tc2VjLCBib29sICpzdnB0X2cK IAlpZiAodGltaW5nKQogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGJlZm9yZSk7CiAKLQlz dWNjZXNzID0gUFFzZW5kUXVlcnkocHNldC5kYiwgcXVlcnkpOworCWlmIChwc2V0LmdlbmNy X2ZsYWcpCisJeworCQlQR3Jlc3VsdCAgICpyZXMxLAorCQkJCSAgICpyZXMyOworCisJCXJl czEgPSBQUXByZXBhcmUocHNldC5kYiwgIiIsIHF1ZXJ5LCBwc2V0Lm51bV9wYXJhbXMsIE5V TEwpOworCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMSkgIT0gUEdSRVNfQ09NTUFORF9PSykK KwkJeworCQkJcGdfbG9nX2luZm8oIiVzIiwgUFFlcnJvck1lc3NhZ2UocHNldC5kYikpOwor CQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzMSk7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJUFFj bGVhcihyZXMxKTsKKworCQlyZXMyID0gUFFkZXNjcmliZVByZXBhcmVkKHBzZXQuZGIsICIi KTsKKwkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJ CXsKKwkJCXBnX2xvZ19pbmZvKCIlcyIsIFBRZXJyb3JNZXNzYWdlKHBzZXQuZGIpKTsKKwkJ CUNsZWFyT3JTYXZlUmVzdWx0KHJlczIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJc3Vj Y2VzcyA9IFBRc2VuZFF1ZXJ5UHJlcGFyZWQyKHBzZXQuZGIsICIiLCBwc2V0Lm51bV9wYXJh bXMsIChjb25zdCBjaGFyICpjb25zdCAqKSBwc2V0LnBhcmFtcywgTlVMTCwgTlVMTCwgTlVM TCwgMCwgcmVzMik7CisKKwkJUFFjbGVhcihyZXMyKTsKKwl9CisJZWxzZQorCXsKKwkJc3Vj Y2VzcyA9IFBRc2VuZFF1ZXJ5KHBzZXQuZGIsIHF1ZXJ5KTsKKwl9CiAKIAlpZiAoIXN1Y2Nl c3MpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCBjNjQ1ZDY2NDE4YTkuLjNmYmZlNWRjNjg2NSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKQEAgLTE1MzIsNyArMTUzMiw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxz KGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJYm9vbAkJcHJpbnRUYWJsZUluaXRpYWxpemVk ID0gZmFsc2U7CiAJaW50CQkJaTsKIAljaGFyCSAgICp2aWV3X2RlZiA9IE5VTEw7Ci0JY2hh cgkgICAqaGVhZGVyc1sxMl07CisJY2hhcgkgICAqaGVhZGVyc1sxM107CiAJUFFFeHBCdWZm ZXJEYXRhIHRpdGxlOwogCVBRRXhwQnVmZmVyRGF0YSB0bXBidWY7CiAJaW50CQkJY29sczsK QEAgLTE1NDgsNiArMTU0OCw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJCQkJZmR3b3B0c19jb2wgPSAtMSwKIAkJCQlhdHRzdG9yYWdl X2NvbCA9IC0xLAogCQkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IC0xLAorCQkJCWF0dGNla25h bWVfY29sID0gLTEsCiAJCQkJYXR0c3RhdHRhcmdldF9jb2wgPSAtMSwKIAkJCQlhdHRkZXNj cl9jb2wgPSAtMTsKIAlpbnQJCQludW1yb3dzOwpAQCAtMTg0Niw3ICsxODQ3LDcgQEAgZGVz Y3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAljb2xzID0g MDsKIAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEuYXR0bmFtZSIpOwogCWF0 dG5hbWVfY29sID0gY29scysrOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4g IHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7CisJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlw ZShDQVNFIFdIRU4gYS5hdHRyZWFsdHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVM U0UgYS5hdHR0eXBpZCBFTkQsIGEuYXR0dHlwbW9kKSIpOwogCWF0dHR5cGVfY29sID0gY29s cysrOwogCiAJaWYgKHNob3dfY29sdW1uX2RldGFpbHMpCkBAIC0xODYwLDcgKzE4NjEsNyBA QCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQlh dHRyZGVmX2NvbCA9IGNvbHMrKzsKIAkJYXR0bm90bnVsbF9jb2wgPSBjb2xzKys7CiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCi0J CQkJCQkJICIgICBXSEVSRSBjLm9pZCA9IGEuYXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IGEu YXR0dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uKSBBUyBhdHRj b2xsYXRpb24iKTsKKwkJCQkJCQkgIiAgIFdIRVJFIGMub2lkID0gYS5hdHRjb2xsYXRpb24g QU5EIHQub2lkID0gKENBU0UgV0hFTiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRy ZWFsdHlwaWQgRUxTRSBhLmF0dHR5cGlkIEVORCkgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQu dHlwY29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKIAkJYXR0Y29sbF9jb2wgPSBjb2xz Kys7CiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0aWRlbnRpdHkiKTsKQEAgLTE5MTEsNiArMTkxMiwx NSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAog CQkJYXR0Y29tcHJlc3Npb25fY29sID0gY29scysrOwogCQl9CiAKKwkJLyogZW5jcnlwdGlv biBpbmZvICovCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCAmJgorCQkJIXBzZXQu aGlkZV9jb2x1bW5fZW5jcnlwdGlvbiAmJgorCQkJKHRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfUkVMQVRJT04pKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi LFxuICAoU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5v aWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFtZSIpOworCQkJYXR0Y2VrbmFtZV9jb2wgPSBj b2xzKys7CisJCX0KKwogCQkvKiBzdGF0cyB0YXJnZXQsIGlmIHJlbGV2YW50IHRvIHJlbGtp bmQgKi8KIAkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwK IAkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKQEAgLTIwMzQsNiAr MjA0NCw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5h bWUsCiAJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3RvcmFnZSIpOwogCWlm IChhdHRjb21wcmVzc2lvbl9jb2wgPj0gMCkKIAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4 dF9ub29wKCJDb21wcmVzc2lvbiIpOworCWlmIChhdHRjZWtuYW1lX2NvbCA+PSAwKQorCQlo ZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkVuY3J5cHRpb24iKTsKIAlpZiAoYXR0 c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29w KCJTdGF0cyB0YXJnZXQiKTsKIAlpZiAoYXR0ZGVzY3JfY29sID49IDApCkBAIC0yMTI2LDYg KzIxMzgsMTcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CiAJCX0KIAorCQkvKiBDb2x1bW4gZW5j cnlwdGlvbiAqLworCQlpZiAoYXR0Y2VrbmFtZV9jb2wgPj0gMCkKKwkJeworCQkJaWYgKCFQ UWdldGlzbnVsbChyZXMsIGksIGF0dGNla25hbWVfY29sKSkKKwkJCQlwcmludFRhYmxlQWRk Q2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dGNla25hbWVfY29sKSwKKwkJCQkJ CQkJICBmYWxzZSwgZmFsc2UpOworCQkJZWxzZQorCQkJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCAiIiwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQl9CisKIAkJLyogU3RhdGlz dGljcyB0YXJnZXQsIGlmIHRoZSByZWxraW5kIHN1cHBvcnRzIHRoaXMgZmVhdHVyZSAqLwog CQlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBQUWdldHZhbHVlKHJlcywgaSwgYXR0c3RhdHRhcmdldF9jb2wpLApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggZjhj ZTFhMDcwNjBkLi45ZjRmY2UyNmZkZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxw LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMTk1LDYgKzE5NSw3IEBAIHNsYXNo VXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZyBbKE9QVElP TlMpXSBbRklMRV0gIGV4ZWN1dGUgcXVlcnkgKGFuZCBzZW5kIHJlc3VsdCB0byBmaWxlIG9y IHxwaXBlKTtcbiIKIAkJICAiICAgICAgICAgICAgICAgICAgICAgICAgIFxcZyB3aXRoIG5v IGFyZ3VtZW50cyBpcyBlcXVpdmFsZW50IHRvIGEgc2VtaWNvbG9uXG4iKTsKIAlIRUxQMCgi ICBcXGdkZXNjICAgICAgICAgICAgICAgICBkZXNjcmliZSByZXN1bHQgb2YgcXVlcnksIHdp dGhvdXQgZXhlY3V0aW5nIGl0XG4iKTsKKwlIRUxQMCgiICBcXGdlbmNyIFtQQVJBTV0uLi4g ICAgICBleGVjdXRlIHF1ZXJ5LCB3aXRoIHN1cHBvcnQgZm9yIHBhcmFtZXRlciBlbmNyeXB0 aW9uXG4iKTsKIAlIRUxQMCgiICBcXGdleGVjICAgICAgICAgICAgICAgICBleGVjdXRlIHF1 ZXJ5LCB0aGVuIGV4ZWN1dGUgZWFjaCB2YWx1ZSBpbiBpdHMgcmVzdWx0XG4iKTsKIAlIRUxQ MCgiICBcXGdzZXQgW1BSRUZJWF0gICAgICAgICBleGVjdXRlIHF1ZXJ5IGFuZCBzdG9yZSBy ZXN1bHQgaW4gcHNxbCB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIgIFxcZ3ggWyhPUFRJT05T KV0gW0ZJTEVdIGFzIFxcZywgYnV0IGZvcmNlcyBleHBhbmRlZCBvdXRwdXQgbW9kZVxuIik7 CkBAIC00MTIsNiArNDEzLDggQEAgaGVscFZhcmlhYmxlcyh1bnNpZ25lZCBzaG9ydCBpbnQg cGFnZXIpCiAJCSAgIiAgICB0cnVlIGlmIGxhc3QgcXVlcnkgZmFpbGVkLCBlbHNlIGZhbHNl XG4iKTsKIAlIRUxQMCgiICBGRVRDSF9DT1VOVFxuIgogCQkgICIgICAgdGhlIG51bWJlciBv ZiByZXN1bHQgcm93cyB0byBmZXRjaCBhbmQgZGlzcGxheSBhdCBhIHRpbWUgKDAgPSB1bmxp bWl0ZWQpXG4iKTsKKwlIRUxQMCgiICBISURFX0NPTFVNTl9FTkNSWVBUSU9OXG4iCisJCSAg IiAgICBpZiBzZXQsIGNvbHVtbiBlbmNyeXB0aW9uIGRldGFpbHMgYXJlIG5vdCBkaXNwbGF5 ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVEFCTEVBTVxuIgogCQkgICIgICAgaWYgc2V0LCB0 YWJsZSBhY2Nlc3MgbWV0aG9kcyBhcmUgbm90IGRpc3BsYXllZFxuIik7CiAJSEVMUDAoIiAg SElERV9UT0FTVF9DT01QUkVTU0lPTlxuIgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Nl dHRpbmdzLmggYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaAppbmRleCAyMzk5Y2ZmYTNmYmEu LjYzNjcyOWRmMWQyOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKKysr IGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKQEAgLTk1LDYgKzk1LDEwIEBAIHR5cGVkZWYg c3RydWN0IF9wc3FsU2V0dGluZ3MKIAogCWNoYXIJICAgKmdzZXRfcHJlZml4OwkvKiBvbmUt c2hvdCBwcmVmaXggYXJndW1lbnQgZm9yIFxnc2V0ICovCiAJYm9vbAkJZ2Rlc2NfZmxhZzsJ CS8qIG9uZS1zaG90IHJlcXVlc3QgdG8gZGVzY3JpYmUgcXVlcnkgcmVzdWx0ICovCisJYm9v bAkJZ2VuY3JfZmxhZzsJCS8qIG9uZS1zaG90IHJlcXVlc3QgdG8gc2VuZCBxdWVyeSB3aXRo IHN1cHBvcnQKKwkJCQkJCQkJICogZm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uICovCisJaW50 CQkJbnVtX3BhcmFtczsJCS8qIG51bWJlciBvZiBxdWVyeSBwYXJhbWV0ZXJzICovCisJY2hh cgkgICoqcGFyYW1zOwkJCS8qIHF1ZXJ5IHBhcmFtZXRlcnMgKi8KIAlib29sCQlnZXhlY19m bGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0byBleGVjdXRlIHF1ZXJ5IHJlc3VsdCAqLwog CWJvb2wJCWNyb3NzdGFiX2ZsYWc7CS8qIG9uZS1zaG90IHJlcXVlc3QgdG8gY3Jvc3N0YWIg cmVzdWx0ICovCiAJY2hhcgkgICAqY3R2X2FyZ3NbNF07CS8qIFxjcm9zc3RhYnZpZXcgYXJn dW1lbnRzICovCkBAIC0xMzQsNiArMTM4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX3BzcWxTZXR0 aW5ncwogCWJvb2wJCXF1aWV0OwogCWJvb2wJCXNpbmdsZWxpbmU7CiAJYm9vbAkJc2luZ2xl c3RlcDsKKwlib29sCQloaWRlX2NvbHVtbl9lbmNyeXB0aW9uOwogCWJvb2wJCWhpZGVfY29t cHJlc3Npb247CiAJYm9vbAkJaGlkZV90YWJsZWFtOwogCWludAkJCWZldGNoX2NvdW50Owpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyBiL3NyYy9iaW4vcHNxbC9zdGFy dHVwLmMKaW5kZXggZjViOWUyNjhmMjAwLi4wYjgxMmYzMzIyMTEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9zdGFydHVwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwpAQCAt MTE4OCw2ICsxMTg4LDEzIEBAIGhpZGVfY29tcHJlc3Npb25faG9vayhjb25zdCBjaGFyICpu ZXd2YWwpCiAJCQkJCQkJICZwc2V0LmhpZGVfY29tcHJlc3Npb24pOwogfQogCitzdGF0aWMg Ym9vbAoraGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkK K3sKKwlyZXR1cm4gUGFyc2VWYXJpYWJsZUJvb2wobmV3dmFsLCAiSElERV9DT0xVTU5fRU5D UllQVElPTiIsCisJCQkJCQkJICZwc2V0LmhpZGVfY29sdW1uX2VuY3J5cHRpb24pOworfQor CiBzdGF0aWMgYm9vbAogaGlkZV90YWJsZWFtX2hvb2soY29uc3QgY2hhciAqbmV3dmFsKQog ewpAQCAtMTI1OSw2ICsxMjY2LDkgQEAgRXN0YWJsaXNoVmFyaWFibGVTcGFjZSh2b2lkKQog CVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiU0hPV19DT05URVhUIiwKIAkJCQkJIHNo b3dfY29udGV4dF9zdWJzdGl0dXRlX2hvb2ssCiAJCQkJCSBzaG93X2NvbnRleHRfaG9vayk7 CisJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJISURFX0NPTFVNTl9FTkNSWVBUSU9O IiwKKwkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9ob29rLAorCQkJCQkgaGlkZV9jb2x1bW5fZW5j cnlwdGlvbl9ob29rKTsKIAlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywgIkhJREVfVE9B U1RfQ09NUFJFU1NJT04iLAogCQkJCQkgYm9vbF9zdWJzdGl0dXRlX2hvb2ssCiAJCQkJCSBo aWRlX2NvbXByZXNzaW9uX2hvb2spOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGRiZTg5ZDdl YjJjMC4uYjhlYzI3ZGYxY2M0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xMTY5LDYgKzEx NjksMTYgQEAgc3RhdGljIGNvbnN0IFZlcnNpb25lZFF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29m X3N1YnNjcmlwdGlvbnNbXSA9IHsKIAl7MCwgTlVMTH0KIH07CiAKK3N0YXRpYyBjb25zdCBW ZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jZWtzW10gPSB7CisJezE2MDAwMCwg IlNFTEVDVCBjZWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xlbmNrZXkgV0hFUkUgY2Vr bmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisKK3N0YXRpYyBjb25zdCBWZXJz aW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jbWtzW10gPSB7CisJezE2MDAwMCwgIlNF TEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkgV0hFUkUgY21r bmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisKIC8qCiAgKiBUaGlzIGlzIGEg bGlzdCBvZiBhbGwgInRoaW5ncyIgaW4gUGdzcWwsIHdoaWNoIGNhbiBzaG93IHVwIGFmdGVy IENSRUFURSBvcgogICogRFJPUDsgYW5kIHRoZXJlIGlzIGFsc28gYSBxdWVyeSB0byBnZXQg YSBsaXN0IG9mIHRoZW0uCkBAIC0xMjAyLDYgKzEyMTIsOCBAQCBzdGF0aWMgY29uc3QgcGdz cWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IkNBU1QiLCBOVUxMLCBO VUxMLCBOVUxMfSwgLyogQ2FzdHMgaGF2ZSBjb21wbGV4IHN0cnVjdHVyZXMgZm9yIG5hbWVz LCBzbwogCQkJCQkJCQkgKiBza2lwIGl0ICovCiAJeyJDT0xMQVRJT04iLCBOVUxMLCBOVUxM LCAmUXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0aW9uc30sCisJeyJDT0xVTU4gRU5DUllQVElP TiBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7IkNPTFVNTiBNQVNURVIgS0VZIEtFWSIs IE5VTEwsIE5VTEwsIE5VTEx9LAogCiAJLyoKIAkgKiBDUkVBVEUgQ09OU1RSQUlOVCBUUklH R0VSIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBiZWNhdXNlIGl0IGlzIGRlc2lnbmVkCkBAIC0x NjkyLDcgKzE3MDQsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50 IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxp ZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9z ZSIsICJcXGV2IiwKIAkJIlxcZiIsCi0JCSJcXGciLCAiXFxnZGVzYyIsICJcXGdldGVudiIs ICJcXGdleGVjIiwgIlxcZ3NldCIsICJcXGd4IiwKKwkJIlxcZyIsICJcXGdkZXNjIiwgIlxc Z2VuY3IiLCAiXFxnZXRlbnYiLCAiXFxnZXhlYyIsICJcXGdzZXQiLCAiXFxneCIsCiAJCSJc XGhlbHAiLCAiXFxodG1sIiwKIAkJIlxcaWYiLCAiXFxpbmNsdWRlIiwgIlxcaW5jbHVkZV9y ZWxhdGl2ZSIsICJcXGlyIiwKIAkJIlxcbGlzdCIsICJcXGxvX2ltcG9ydCIsICJcXGxvX2V4 cG9ydCIsICJcXGxvX2xpc3QiLCAiXFxsb191bmxpbmsiLApAQCAtMTkwMCw2ICsxOTEyLDIy IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09MTEFUSU9OIiwgTWF0Y2hBbnkp KQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRUZSRVNIIFZFUlNJT04iLCAiUkVO QU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAorCS8qIEFMVEVSL0RST1AgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8RFJPUCIsICJDT0xVTU4i LCAiRU5DUllQVElPTiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lUSF9WRVJTSU9ORURfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrcyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xVTU4iLCAiRU5D UllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFERCBWQUxV RSAoIiwgIkRST1AgVkFMVUUgKCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iKTsKKworCS8q IEFMVEVSL0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUnxEUk9QIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIikpCisJCUNPTVBMRVRFX1dJ VEhfVkVSU0lPTkVEX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2Nta3MpOworCisJLyogQUxU RVIgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJD T0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgi T1dORVIgVE8iLCAiUkVOQU1FIFRPIik7CisKIAkvKiBBTFRFUiBDT05WRVJTSU9OIDxuYW1l PiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIkNPTlZFUlNJT04iLCBNYXRjaEFu eSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NI RU1BIik7CkBAIC0yNzk0LDYgKzI4MjIsMjYgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEgoInRydWUi LCAiZmFsc2UiKTsKIAl9CiAKKwkvKiBDUkVBVEUvQUxURVIvRFJPUCBDT0xVTU4gLi4uIEtF WSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwgIkNPTFVNTiIp KQorCQlDT01QTEVURV9XSVRIKCJFTkNSWVBUSU9OIiwgIk1BU1RFUiIpOworCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1B U1RFUiIpKQorCQlDT01QTEVURV9XSVRIKCJLRVkiKTsKKworCS8qIENSRUFURSBDT0xVTU4g RU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1O IiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJX SVRIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJFTkNSWVBU SU9OIiwgIktFWSIsIE1hdGNoQW55LCAiV0lUSCIpKQorCQlDT01QTEVURV9XSVRIKCJWQUxV RVMiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJ T04iLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRIIiwgIlZBTFVFUyIpKQorCQlDT01QTEVURV9X SVRIKCIoIik7CisKKwkvKiBDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlm IChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFu eSkpCisJCUNPTVBMRVRFX1dJVEgoIldJVEgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSwgIldJVEgiKSkKKwkJ Q09NUExFVEVfV0lUSCgiKCIpOworCiAJLyogQ1JFQVRFIERBVEFCQVNFICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkRBVEFCQVNFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVU RV9XSVRIKCJPV05FUiIsICJURU1QTEFURSIsICJFTkNPRElORyIsICJUQUJMRVNQQUNFIiwK QEAgLTM1MTcsNiArMzU2NSw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0 LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkgTWF0Y2hlcygiRFJPUCIsICJBQ0NFU1MiLCAi TUVUSE9EIiwgTWF0Y2hBbnkpIHx8CiAJCQkgKE1hdGNoZXMoIkRST1AiLCAiQUdHUkVHQVRF fEZVTkNUSU9OfFBST0NFRFVSRXxST1VUSU5FIiwgTWF0Y2hBbnksIE1hdGNoQW55KSAmJgog CQkJICBlbmRzX3dpdGgocHJldl93ZCwgJyknKSkgfHwKKwkJCSBNYXRjaGVzKCJEUk9QIiwg IkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkgfHwKIAkJ CSBNYXRjaGVzKCJEUk9QIiwgIkVWRU5UIiwgIlRSSUdHRVIiLCBNYXRjaEFueSkgfHwKIAkJ CSBNYXRjaGVzKCJEUk9QIiwgIkZPUkVJR04iLCAiREFUQSIsICJXUkFQUEVSIiwgTWF0Y2hB bnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJGT1JFSUdOIiwgIlRBQkxFIiwgTWF0Y2hB bnkpIHx8CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCmluZGV4IDk3MWE3NGNmMjJiNC4uZGIxZjNi ODgxMWExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaAorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaApAQCAtMjAsNiArMjAsOCBAQCBleHRl cm4gRGVzdFJlY2VpdmVyICpwcmludHR1cF9jcmVhdGVfRFIoQ29tbWFuZERlc3QgZGVzdCk7 CiAKIGV4dGVybiB2b2lkIFNldFJlbW90ZURlc3RSZWNlaXZlclBhcmFtcyhEZXN0UmVjZWl2 ZXIgKnNlbGYsIFBvcnRhbCBwb3J0YWwpOwogCitleHRlcm4gdm9pZCBNYXliZVNlbmRDb2x1 bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKTsKKwogZXh0ZXJuIHZvaWQgU2Vu ZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwKIAkJCQkJCQkJCSAgVHVw bGVEZXNjIHR5cGVpbmZvLCBMaXN0ICp0YXJnZXRsaXN0LCBpbnQxNiAqZm9ybWF0cyk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmgKaW5kZXggOThhMWE4NDI4OTA3Li4xYTJhODE3 N2QxYTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCkBAIC05Miw2ICs5Miw5IEBA IHR5cGVkZWYgZW51bSBPYmplY3RDbGFzcwogCU9DTEFTU19UWVBFLAkJCQkvKiBwZ190eXBl ICovCiAJT0NMQVNTX0NBU1QsCQkJCS8qIHBnX2Nhc3QgKi8KIAlPQ0xBU1NfQ09MTEFUSU9O LAkJCS8qIHBnX2NvbGxhdGlvbiAqLworCU9DTEFTU19DRUssCQkJCQkvKiBwZ19jb2xlbmNr ZXkgKi8KKwlPQ0xBU1NfQ0VLREFUQSwJCQkJLyogcGdfY29sZW5ja2V5ZGF0YSAqLworCU9D TEFTU19DTUssCQkJCQkvKiBwZ19jb2xtYXN0ZXJrZXkgKi8KIAlPQ0xBU1NfQ09OU1RSQUlO VCwJCQkvKiBwZ19jb25zdHJhaW50ICovCiAJT0NMQVNTX0NPTlZFUlNJT04sCQkJLyogcGdf Y29udmVyc2lvbiAqLwogCU9DTEFTU19ERUZBVUxULAkJCQkvKiBwZ19hdHRyZGVmICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCA0NWZmYTk5NjkyZTkuLmYzYTBiMWNlZTlj MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02Myw2ICs2Myw5IEBAIGNhdGFs b2dfaGVhZGVycyA9IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNj cmlwdGlvbi5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbl9yZWwuaCcsCisgICdwZ19jb2xtYXN0 ZXJrZXkuaCcsCisgICdwZ19jb2xlbmNrZXkuaCcsCisgICdwZ19jb2xlbmNrZXlkYXRhLmgn LAogXQogCiBia2lfZGF0YSA9IFsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYW1vcC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CmluZGV4IDYx Y2Q1OTE0MzA0YS4uYTBiZDcwODEzMjdjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2Ftb3AuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQK QEAgLTEwMjgsNiArMTAyOCwxMSBAQAogICBhbW9wcmlnaHR0eXBlID0+ICdieXRlYScsIGFt b3BzdHJhdGVneSA9PiAnMScsIGFtb3BvcHIgPT4gJz0oYnl0ZWEsYnl0ZWEpJywKICAgYW1v cG1ldGhvZCA9PiAnaGFzaCcgfSwKIAorIyBwZ19lbmNyeXB0ZWRfZGV0X29wcworeyBhbW9w ZmFtaWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3BzJywgYW1vcGxlZnR0eXBlID0+ ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgYW1vcHJpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVk X2RldCcsIGFtb3BzdHJhdGVneSA9PiAnMScsIGFtb3BvcHIgPT4gJz0ocGdfZW5jcnlwdGVk X2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsCisgIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCisK ICMgeGlkX29wcwogeyBhbW9wZmFtaWx5ID0+ICdoYXNoL3hpZF9vcHMnLCBhbW9wbGVmdHR5 cGUgPT4gJ3hpZCcsIGFtb3ByaWdodHR5cGUgPT4gJ3hpZCcsCiAgIGFtb3BzdHJhdGVneSA9 PiAnMScsIGFtb3BvcHIgPT4gJz0oeGlkLHhpZCknLCBhbW9wbWV0aG9kID0+ICdoYXNoJyB9 LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CmluZGV4IDRjYzEyOWJlYmQ4My4uZGRk YjI3MTEzZmExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC00MDIsNiAr NDAyLDExIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9ieXRlYV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAnYnl0ZWEnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2J5dGVhJywgYW1w cm9jbnVtID0+ICcyJywKICAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9LAor eyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn cGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAnMScsIGFtcHJvYyA9PiAnaGFzaHZh cmxlbmEnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgYW1wcm9jbnVtID0+ICcyJywKKyAgYW1w cm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2hh c2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ3hpZCcsIGFtcHJvY251bSA9PiAnMScsIGFtcHJvYyA9PiAnaGFzaGludDQnIH0s CiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J3hpZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAppbmRleCAwNTMyOTRjOTlm MzcuLjU1MGE1MzY0OWJlYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h dHRyaWJ1dGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCkBA IC0xNjQsNiArMTY0LDE1IEBAIENBVEFMT0cocGdfYXR0cmlidXRlLDEyNDksQXR0cmlidXRl UmVsYXRpb25JZCkgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzUsCiAJICovCiAJ Ym9vbAkJYXR0aXNsb2NhbCBCS0lfREVGQVVMVCh0KTsKIAorCS8qIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAqLworCU9pZAkJCWF0dGNlayBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09Q VChwZ19jb2xlbmNrZXkpOworCisJLyogcmVhbCB0eXBlIGlmIGVuY3J5cHRlZCAqLworCU9p ZAkJCWF0dHJlYWx0eXBpZCBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ190eXBl KTsKKworCS8qIGVuY3J5cHRpb24gYWxnb3JpdGhtIChQR19DRUtfKiB2YWx1ZXMpICovCisJ aW50MTYJCWF0dGVuY2FsZyBCS0lfREVGQVVMVCgwKTsKKwogCS8qIE51bWJlciBvZiB0aW1l cyBpbmhlcml0ZWQgZnJvbSBkaXJlY3QgcGFyZW50IHJlbGF0aW9uKHMpICovCiAJaW50MzIJ CWF0dGluaGNvdW50IEJLSV9ERUZBVUxUKDApOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRh dAppbmRleCA0NDcxZWI2YmJlYTQuLjg3OGIwYmNiYmY1MCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2Nhc3QuZGF0CkBAIC01NDYsNCArNTQ2LDEwIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3RzdHpy YW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4g J3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCiAgIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisKK3sgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFy Z2V0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgY2FzdGZ1bmMgPT4gJzAnLAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCit7IGNhc3Rzb3VyY2UgPT4gJ2J5 dGVhJywgY2FzdHRhcmdldCA9PiAncGdfZW5jcnlwdGVkX3JuZCcsIGNhc3RmdW5jID0+ICcw JywKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAorCiBdCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjA5NWVkNzEyYjAzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKQEAgLTAsMCArMSw1NSBAQAorLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sZW5ja2V5LmgKKyAqCSAgZGVmaW5pdGlv biBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSIgc3lzdGVtIGNhdGFsb2cKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jb2xlbmtleS5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFs b2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAg aW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYg UEdfQ09MRU5DS0VZX0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZX0gKKworI2luY2x1ZGUgImNh dGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlfZC5oIgor CisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5IGRlZmluaXRpb24uIGNw cCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19jb2xl bmNrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19jb2xlbmNrZXks ODIzNCxDb2x1bW5FbmNLZXlSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKwlOYW1lRGF0 YQljZWtuYW1lOworCU9pZAkJCWNla293bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKK30g Rm9ybURhdGFfcGdfY29sZW5ja2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVuY2tl eSAqRm9ybV9wZ19jb2xlbmNrZXk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdf Y29sZW5ja2V5X29pZF9pbmRleCwgODI0MCwgQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwgb24g cGdfY29sZW5ja2V5IHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFV RV9JTkRFWChwZ19jb2xlbmNrZXlfY2VrbmFtZV9pbmRleCwgODI0MiwgQ29sdW1uRW5jS2V5 TmFtZUluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShjZWtuYW1lIG5hbWVf b3BzKSk7CisKKy8qCisgKiBDb25zdGFudHMgZm9yIENNSyBhbmQgQ0VLIGFsZ29yaXRobXMu ICBOb3RlIHRoYXQgdGhlc2UgYXJlIHBhcnQgb2YgdGhlCisgKiBwcm90b2NvbC4gIEZvciBj bGFyaXR5LCB0aGUgYXNzaWduZWQgbnVtYmVycyBhcmUgbm90IHJldXNlZCBiZXR3ZWVuIENN S3MKKyAqIGFuZCBDRUtzLCBidXQgdGhhdCBpcyBub3QgdGVjaG5pY2FsbHkgcmVxdWlyZWQu ICBJbiBlaXRoZXIgY2FzZSwgZG9uJ3QKKyAqIGFzc2lnbiB6ZXJvLCBzbyB0aGF0IHRoYXQg Y2FuIGJlIHVzZWQgYXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAqLworCisjZGVmaW5lIFBHX0NN S19SU0FFU19PQUVQX1NIQV8xCQkJMQorI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFf MjU2CQkyCisKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2 CTEzMAorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQJMTMx CisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NAkxMzIKKyNk ZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyCTEzMworCisjZW5k aWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZTRkZWE3MjE4MGMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaApAQCAtMCww ICsxLDQ2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19jb2xlbmNrZXlk YXRhLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBk YXRhIiBzeXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVua2V5ZGF0YS5o CisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMg ZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MRU5DS0VZREFUQV9ICisjZGVm aW5lIFBHX0NPTEVOQ0tFWURBVEFfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGFfZC5oIgorCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5ZGF0YSBkZWZpbml0aW9uLiBjcHAgdHVybnMg dGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0 YQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbGVuY2tleWRhdGEs ODI1MCxDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJT2lk CQkJY2tkY2VraWQgQktJX0xPT0tVUChwZ19jb2xlbmNrZXkpOworCU9pZAkJCWNrZGNta2lk IEJLSV9MT09LVVAocGdfY29sbWFzdGVya2V5KTsKKwlpbnQxNgkJY2tkY21rYWxnOwkJLyog UEdfQ01LXyogdmFsdWVzICovCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJs ZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwlieXRlYQkJY2tkZW5jdmFsIEJLSV9G T1JDRV9OT1RfTlVMTDsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ19jb2xlbmNrZXlkYXRhOwor Cit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVuY2tleWRhdGEgKkZvcm1fcGdfY29sZW5ja2V5 ZGF0YTsKKworREVDTEFSRV9UT0FTVChwZ19jb2xlbmNrZXlkYXRhLCA4MjM3LCA4MjM4KTsK KworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNrZXlkYXRhX29pZF9pbmRl eCwgODI1MSwgQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleWRh dGEgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBn X2NvbGVuY2tleWRhdGFfY2tkY2VraWRfY2tkY21raWRfaW5kZXgsIDgyNTIsIENvbHVtbkVu Y0tleUNla2lkQ21raWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXlkYXRhIHVzaW5nIGJ0cmVl KGNrZGNla2lkIG9pZF9vcHMsIGNrZGNta2lkIG9pZF9vcHMpKTsKKworI2VuZGlmCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjAzNDRjYzQyMDE2OAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKQEAgLTAsMCArMSw0NSBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sbWFzdGVya2V5LmgKKyAqCSAg ZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBtYXN0ZXIga2V5IiBzeXN0ZW0gY2F0YWxvZwor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0 LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCisgKgorICogTk9URVMKKyAqCSAg VGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hl bWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KyNpZm5kZWYgUEdfQ09MTUFTVEVSS0VZX0gKKyNkZWZpbmUgUEdfQ09MTUFTVEVSS0VZX0gK KworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xtYXN0ZXJrZXlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sbWFz dGVya2V5IGRlZmluaXRpb24uIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0 cnVjdCBGb3JtRGF0YV9wZ19jb2xtYXN0ZXJrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAq LworQ0FUQUxPRyhwZ19jb2xtYXN0ZXJrZXksODIzMyxDb2x1bW5NYXN0ZXJLZXlSZWxhdGlv bklkKQoreworCU9pZAkJCW9pZDsKKwlOYW1lRGF0YQljbWtuYW1lOworCU9pZAkJCWNta293 bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCXRleHQJCWNta3JlYWxt IEJLSV9GT1JDRV9OT1RfTlVMTDsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ19jb2xtYXN0ZXJr ZXk7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sbWFzdGVya2V5ICpGb3JtX3BnX2NvbG1h c3RlcmtleTsKKworREVDTEFSRV9UT0FTVChwZ19jb2xtYXN0ZXJrZXksIDgyMzUsIDgyMzYp OworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2NvbG1hc3RlcmtleV9vaWRfaW5k ZXgsIDgyMzksIENvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsIG9uIHBnX2NvbG1hc3Rlcmtl eSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdf Y29sbWFzdGVya2V5X2Nta25hbWVfaW5kZXgsIDgyNDEsIENvbHVtbk1hc3RlcktleU5hbWVJ bmRleElkLCBvbiBwZ19jb2xtYXN0ZXJrZXkgdXNpbmcgYnRyZWUoY21rbmFtZSBuYW1lX29w cykpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bj bGFzcy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CmluZGV4IGRi Y2FlN2ZmZGQyMS4uMGNhNDAxZmZlNDc4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX29wY2xhc3MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFz cy5kYXQKQEAgLTE2Niw2ICsxNjYsOCBAQAogICBvcGNpbnR5cGUgPT4gJ2Jvb2wnIH0sCiB7 IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ2J5dGVhX29wcycsIG9wY2ZhbWls eSA9PiAnaGFzaC9ieXRlYV9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ2J5dGVhJyB9LAoreyBv cGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X29wcycs IG9wY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycsCisgIG9wY2ludHlw ZSA9PiAncGdfZW5jcnlwdGVkX2RldCcgfSwKIHsgb3BjbWV0aG9kID0+ICdidHJlZScsIG9w Y25hbWUgPT4gJ3RpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2J0cmVlL3RpZF9vcHMnLAogICBv cGNpbnR5cGUgPT4gJ3RpZCcgfSwKIHsgb3BjbWV0aG9kID0+ICdoYXNoJywgb3BjbmFtZSA9 PiAneGlkX29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19vcGVyYXRvci5kYXQKaW5kZXggYmM1ZjgyMTNmM2FmLi40NzM3YTdmOWVkMTcg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CkBAIC0zNDU4LDQgKzM0NTgs MTQgQEAKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9hZnRlcl9tdWx0aXJhbmdlJywgb3By cmVzdCA9PiAnbXVsdGlyYW5nZXNlbCcsCiAgIG9wcmpvaW4gPT4gJ3NjYWxhcmd0am9pbnNl bCcgfSwKIAoreyBvaWQgPT4gJzgyNDcnLCBkZXNjciA9PiAnZXF1YWwnLAorICBvcHJuYW1l ID0+ICc9Jywgb3ByY2FubWVyZ2UgPT4gJ2YnLCBvcHJjYW5oYXNoID0+ICd0Jywgb3BybGVm dCA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIG9wcnJpZ2h0ID0+ICdwZ19lbmNyeXB0ZWRf ZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywgb3ByY29tID0+ICc9KHBnX2VuY3J5cHRlZF9k ZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJuZWdhdGUgPT4gJzw+KHBnX2VuY3J5cHRl ZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLCBvcHJjb2RlID0+ICdwZ19lbmNyeXB0ZWRfZGV0 X2VxJywgb3BycmVzdCA9PiAnZXFzZWwnLAorICBvcHJqb2luID0+ICdlcWpvaW5zZWwnIH0s Cit7IG9pZCA9PiAnODI0OCcsIGRlc2NyID0+ICdub3QgZXF1YWwnLAorICBvcHJuYW1lID0+ ICc8PicsIG9wcmxlZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBvcHJyaWdodCA9PiAncGdf ZW5jcnlwdGVkX2RldCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsCisgIG9wcmNvbSA9PiAnPD4o cGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9wcm5lZ2F0ZSA9PiAnPShw Z19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgb3ByY29kZSA9PiAncGdf ZW5jcnlwdGVkX2RldF9uZScsIG9wcnJlc3QgPT4gJ25lcXNlbCcsIG9wcmpvaW4gPT4gJ25l cWpvaW5zZWwnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf b3BmYW1pbHkuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKaW5k ZXggYjNiNmE3ZTYxNmE5Li41MzQzNTgwYjA2MzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf b3BmYW1pbHkuZGF0CkBAIC0xMDgsNiArMTA4LDggQEAKICAgb3BmbWV0aG9kID0+ICdoYXNo Jywgb3BmbmFtZSA9PiAnYm9vbF9vcHMnIH0sCiB7IG9pZCA9PiAnMjIyMycsCiAgIG9wZm1l dGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ2J5dGVhX29wcycgfSwKK3sgb2lkID0+ICc4 MjQ5JywKKyAgb3BmbWV0aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9PiAncGdfZW5jcnlwdGVk X2RldF9vcHMnIH0sCiB7IG9pZCA9PiAnMjc4OScsCiAgIG9wZm1ldGhvZCA9PiAnYnRyZWUn LCBvcGZuYW1lID0+ICd0aWRfb3BzJyB9LAogeyBvaWQgPT4gJzIyMjUnLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKaW5kZXggYTA3ZTczN2EzMzdlLi43ZjYyOTg0NTJmYjIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtODAzMyw5ICs4MDMzLDkgQEAKICAgcHJvbmFt ZSA9PiAncGdfcHJlcGFyZWRfc3RhdGVtZW50JywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3Jl dHNldCA9PiAndCcsCiAgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJv YWxsYXJndHlwZXMgPT4gJ3t0ZXh0LHRleHQsdGltZXN0YW1wdHosX3JlZ3R5cGUsX3JlZ3R5 cGUsYm9vbCxpbnQ4LGludDh9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxv LG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tuYW1lLHN0YXRlbWVudCxwcmVwYXJlX3RpbWUs cGFyYW1ldGVyX3R5cGVzLHJlc3VsdF90eXBlcyxmcm9tX3NxbCxnZW5lcmljX3BsYW5zLGN1 c3RvbV9wbGFuc30nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne3RleHQsdGV4dCx0aW1lc3Rh bXB0eixfcmVndHlwZSxfcmVnY2xhc3MsX2ludDIsX3JlZ3R5cGUsYm9vbCxpbnQ4LGludDh9 JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2Fy Z25hbWVzID0+ICd7bmFtZSxzdGF0ZW1lbnQscHJlcGFyZV90aW1lLHBhcmFtZXRlcl90eXBl cyxwYXJhbWV0ZXJfb3JpZ190YWJsZXMscGFyYW1ldGVyX29yaWdfY29sdW1ucyxyZXN1bHRf dHlwZXMsZnJvbV9zcWwsZ2VuZXJpY19wbGFucyxjdXN0b21fcGxhbnN9JywKICAgcHJvc3Jj ID0+ICdwZ19wcmVwYXJlZF9zdGF0ZW1lbnQnIH0sCiB7IG9pZCA9PiAnMjUxMScsIGRlc2Ny ID0+ICdnZXQgdGhlIG9wZW4gY3Vyc29ycyBmb3IgdGhpcyBzZXNzaW9uJywKICAgcHJvbmFt ZSA9PiAncGdfY3Vyc29yJywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcs CkBAIC0xMTgyMCw0ICsxMTgyMCwxMSBAQAogICBwcm9yZXR0eXBlID0+ICdieXRlYScsIHBy b2FyZ3R5cGVzID0+ICdwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5JywKICAgcHJvc3Jj ID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnIH0sCiAKK3sgb2lkID0+ICc4 MjQ1JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9lcScsIHByb2xlYWtwcm9v ZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAncGdf ZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYWVxJyB9 LAoreyBvaWQgPT4gJzgyNDYnLAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X25l JywgcHJvbGVha3Byb29mID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2Fy Z3R5cGVzID0+ICdwZ19lbmNyeXB0ZWRfZGV0IHBnX2VuY3J5cHRlZF9kZXQnLCBwcm9zcmMg PT4gJ2J5dGVhbmUnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdHlwZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0CmluZGV4IGRm NDU4Nzk0NjM1Ny4uODUxMDYzY2Y1ZjA1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3R5cGUuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQK QEAgLTY5Miw0ICs2OTIsMTYgQEAKICAgdHlwcmVjZWl2ZSA9PiAnYnJpbl9taW5tYXhfbXVs dGlfc3VtbWFyeV9yZWN2JywKICAgdHlwc2VuZCA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3Vt bWFyeV9zZW5kJywgdHlwYWxpZ24gPT4gJ2knLAogICB0eXBzdG9yYWdlID0+ICd4JywgdHlw Y29sbGF0aW9uID0+ICdkZWZhdWx0JyB9LAorCit7IG9pZCA9PiAnODI0MycsIGRlc2NyID0+ ICdlbmNyeXB0ZWQgY29sdW1uIChkZXRlcm1pbmlzdGljKScsCisgIHR5cG5hbWUgPT4gJ3Bn X2VuY3J5cHRlZF9kZXQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0 eXBlID0+ICdiJywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0ZWFp bicsIHR5cG91dHB1dCA9PiAnYnl0ZWFvdXQnLAorICB0eXByZWNlaXZlID0+ICdieXRlYXJl Y3YnLCB0eXBzZW5kID0+ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0 b3JhZ2UgPT4gJ2UnIH0sCit7IG9pZCA9PiAnODI0NCcsIGRlc2NyID0+ICdlbmNyeXB0ZWQg Y29sdW1uIChyYW5kb21pemVkKScsCisgIHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmQn LCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdiJywKKyAg dHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0ZWFpbicsIHR5cG91dHB1dCA9 PiAnYnl0ZWFvdXQnLAorICB0eXByZWNlaXZlID0+ICdieXRlYXJlY3YnLCB0eXBzZW5kID0+ ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4gJ2UnIH0s CisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKaW5kZXggNDhhMjU1OTEzNzQyLi5jMWQzMDkw M2I1YjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oCkBAIC0yOTQsNiArMjk0LDcgQEAgREVD TEFSRV9VTklRVUVfSU5ERVgocGdfdHlwZV90eXBuYW1lX25zcF9pbmRleCwgMjcwNCwgVHlw ZU5hbWVOc3BJbmRleElkLCBvbiBwZ18KICNkZWZpbmUgIFRZUENBVEVHT1JZX1VTRVIJCSdV JwogI2RlZmluZSAgVFlQQ0FURUdPUllfQklUU1RSSU5HCSdWJyAvKiBlciAuLi4gInZhcmJp dCI/ICovCiAjZGVmaW5lICBUWVBDQVRFR09SWV9VTktOT1dOCSdYJworI2RlZmluZSAgVFlQ Q0FURUdPUllfRU5DUllQVEVECSdZJwogI2RlZmluZSAgVFlQQ0FURUdPUllfSU5URVJOQUwJ J1onCiAKICNkZWZpbmUgIFRZUEFMSUdOX0NIQVIJCQknYycgLyogY2hhciBhbGlnbm1lbnQg KGkuZS4gdW5hbGlnbmVkKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv Y29sZW5jY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDk3NDFlMTAwYmIyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCkBAIC0w LDAgKzEsMjUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuY2NtZHMu aAorICoJICBwcm90b3R5cGVzIGZvciBjb2xlbmNjbWRzLmMuCisgKgorICoKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21t YW5kcy9jb2xlbmNjbWRzLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aWZuZGVmIENPTEVOQ0NNRFNfSAorI2RlZmluZSBDT0xFTkNDTURTX0gKKworI2luY2x1ZGUg ImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2Rl LmgiCisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3Rh dGUsIERlZmluZVN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJDb2x1 bW5FbmNyeXB0aW9uS2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5FbmNyeXB0 aW9uS2V5U3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVDTUsoUGFy c2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKKworI2VuZGlmCQkJCQkJCS8q IENPTEVOQ0NNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEt YmUuaCBiL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKaW5kZXggNmQ0NTJlYzZkOTU2 Li5lMzJjNzc3OWM5NTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJl LmgKKysrIGIvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaApAQCAtMTY0LDYgKzE2NCw3 IEBAIHR5cGVkZWYgc3RydWN0IFBvcnQKIAkgKi8KIAljaGFyCSAgICpkYXRhYmFzZV9uYW1l OwogCWNoYXIJICAgKnVzZXJfbmFtZTsKKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFi bGVkOwogCWNoYXIJICAgKmNtZGxpbmVfb3B0aW9uczsKIAlMaXN0CSAgICpndWNfb3B0aW9u czsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGFlYWQyYWZkNmVmNy4uOGJkODM0 YjIxYmJhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC02ODYsNiArNjg2LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgQ29sdW1uRGVmCiAJY2hhcgkgICAqY29sbmFtZTsJCS8qIG5hbWUg b2YgY29sdW1uICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0eXBlIG9mIGNvbHVt biAqLwogCWNoYXIJICAgKmNvbXByZXNzaW9uOwkvKiBjb21wcmVzc2lvbiBtZXRob2QgZm9y IGNvbHVtbiAqLworCUxpc3QJICAgKmVuY3J5cHRpb247CQkvKiBlbmNyeXB0aW9uIGluZm8g Zm9yIGNvbHVtbiAqLwogCWludAkJCWluaGNvdW50OwkJLyogbnVtYmVyIG9mIHRpbWVzIGNv bHVtbiBpcyBpbmhlcml0ZWQgKi8KIAlib29sCQlpc19sb2NhbDsJCS8qIGNvbHVtbiBoYXMg bG9jYWwgKG5vbi1pbmhlcml0ZWQpIGRlZiduICovCiAJYm9vbAkJaXNfbm90X251bGw7CS8q IE5PVCBOVUxMIGNvbnN0cmFpbnQgc3BlY2lmaWVkPyAqLwpAQCAtMTg2NCw2ICsxODY1LDkg QEAgdHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfQ0FTVCwKIAlPQkpFQ1RfQ09M VU1OLAogCU9CSkVDVF9DT0xMQVRJT04sCisJT0JKRUNUX0NFSywKKwlPQkpFQ1RfQ0VLREFU QSwKKwlPQkpFQ1RfQ01LLAogCU9CSkVDVF9DT05WRVJTSU9OLAogCU9CSkVDVF9EQVRBQkFT RSwKIAlPQkpFQ1RfREVGQVVMVCwKQEAgLTIwNTYsNiArMjA2MCwxOSBAQCB0eXBlZGVmIHN0 cnVjdCBBbHRlckNvbGxhdGlvblN0bXQKIH0gQWx0ZXJDb2xsYXRpb25TdG10OwogCiAKKy8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEFsdGVyIENvbHVtbiBFbmNyeXB0aW9uIEtl eQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBBbHRl ckNvbHVtbkVuY3J5cHRpb25LZXlTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAg ICpjZWtuYW1lOworCWJvb2wJCWlzRHJvcDsJCQkvKiBBREQgb3IgRFJPUCB0aGUgaXRlbXM/ ICovCisJTGlzdAkgICAqZGVmaW5pdGlvbjsKK30gQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5 U3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKglBbHRlciBEb21haW4K ICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL2FuYWx5emUuaAppbmRleCAzZDNhNTkxOGMyZmMuLjZjMjg2NmQxOWY4 YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC0yOCw3ICsyOCw5IEBAIGV4dGVybiBQR0RM TElNUE9SVCBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBvc3RfcGFyc2VfYW5hbHl6 ZV9ob29rOwogZXh0ZXJuIFF1ZXJ5ICpwYXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJhd1N0 bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJCQkJCQljb25z dCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1 ZXJ5RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMoUmF3U3Rt dCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAotCQkJCQkJCQkJICBPaWQg KipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlF bnYpOworCQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJ CQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0Nv bHMsCisJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBR dWVyeSAqcGFyc2VfYW5hbHl6ZV93aXRoY2IoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBj aGFyICpzb3VyY2VUZXh0LAogCQkJCQkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0 dXAsCiAJCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CmluZGV4IDlhN2NjMGM2YmQxZC4uODEzY2YzZDIzZDMxIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC0xNDksNiArMTQ5LDcgQEAgUEdfS0VZV09SRCgiZWxzZSIsIEVMU0UsIFJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmFibGUiLCBFTkFCTEVfUCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5jb2Rpbmci LCBFTkNPRElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgiZW5jcnlwdGVkIiwgRU5DUllQVEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCitQR19LRVlXT1JEKCJlbmNyeXB0aW9uIiwgRU5DUllQVElPTiwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5kIiwgRU5EX1AsIFJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbnVtIiwgRU5VTV9QLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlc2NhcGUiLCBFU0NB UEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTI1MCw2ICsyNTEsNyBA QCBQR19LRVlXT1JEKCJsb2NrIiwgTE9DS19QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJsb2NrZWQiLCBMT0NLRUQsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxvZ2dlZCIsIExPR0dFRCwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWFwcGluZyIsIE1BUFBJTkcs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoIm1hc3RlciIs IE1BU1RFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi bWF0Y2giLCBNQVRDSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgibWF0Y2hlZCIsIE1BVENIRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoIm1hdGVyaWFsaXplZCIsIE1BVEVSSUFMSVpFRCwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXgg OTYyZWJmNjVkZTE4Li5mNmE3MTc4NzY2ZWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aApAQCAtOTMsNiArOTMsNyBAQCB0eXBlZGVmIE5vZGUgKigqUGFyc2VQYXJhbVJlZkhvb2sp IChQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKTsKIHR5cGVkZWYgTm9kZSAq KCpDb2VyY2VQYXJhbUhvb2spIChQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtICpwYXJhbSwK IAkJCQkJCQkJICBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJ CQkJCQkgIGludCBsb2NhdGlvbik7Cit0eXBlZGVmIHZvaWQgKCpQYXJhbUFzc2lnbk9yaWdI b29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0sIE9pZCBvcmlndGJsLCBB dHRyTnVtYmVyIG9yaWdjb2wpOwogCiAKIC8qCkBAIC0yMjIsNiArMjIzLDcgQEAgc3RydWN0 IFBhcnNlU3RhdGUKIAlQb3N0UGFyc2VDb2x1bW5SZWZIb29rIHBfcG9zdF9jb2x1bW5yZWZf aG9vazsKIAlQYXJzZVBhcmFtUmVmSG9vayBwX3BhcmFtcmVmX2hvb2s7CiAJQ29lcmNlUGFy YW1Ib29rIHBfY29lcmNlX3BhcmFtX2hvb2s7CisJUGFyYW1Bc3NpZ25PcmlnSG9vayBwX3Bh cmFtX2Fzc2lnbl9vcmlnX2hvb2s7CiAJdm9pZAkgICAqcF9yZWZfaG9va19zdGF0ZTsJLyog Y29tbW9uIHBhc3N0aHJvdWdoIGxpbmsgZm9yIGFib3ZlICovCiB9OwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9wYXJhbS5oCmluZGV4IGRmMWVlNjYwZDgzMS4uZGEyMDJiMjhhN2MzIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaApAQCAtMTgsNyArMTgsOCBAQAogZXh0ZXJuIHZv aWQgc2V0dXBfcGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkJCQkJIGNvbnN0IE9pZCAqcGFyYW1UeXBlcywgaW50IG51bVBhcmFtcyk7CiBleHRl cm4gdm9pZCBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUgKnBz dGF0ZSwKLQkJCQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMpOwor CQkJCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJCQkJCQkJ CQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMpOwog ZXh0ZXJuIHZvaWQgY2hlY2tfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3Rh dGUsIFF1ZXJ5ICpxdWVyeSk7CiBleHRlcm4gYm9vbCBxdWVyeV9jb250YWluc19leHRlcm5f cGFyYW1zKFF1ZXJ5ICpxdWVyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggOWU5 NGY0NGM1ZjQzLi5kODJhMmUxMTcxYmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0y OSw2ICsyOSw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUNDRVNTX01FVEhPRCwgIkFM VEVSIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0FMVEVSX0FHR1JFR0FURSwgIkFMVEVSIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ0FTVCwgIkFMVEVSIENBU1QiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTExBVElPTiwgIkFM VEVSIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdf QUxURVJfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT0xV TU5fTUFTVEVSX0tFWSwgIkFMVEVSIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJBSU5ULCAiQUxURVIgQ09O U1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJf Q09OVkVSU0lPTiwgIkFMVEVSIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0FMVEVSX0RBVEFCQVNFLCAiQUxURVIgREFUQUJBU0UiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQpAQCAtODYsNiArODgsOCBAQCBQR19DTURUQUcoQ01EVEFHX0NS RUFURV9BQ0NFU1NfTUVUSE9ELCAiQ1JFQVRFIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxz ZSwgZmFscwogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUdHUkVHQVRFLCAiQ1JFQVRFIEFH R1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRF X0NBU1QsICJDUkVBVEUgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX0NPTExBVElPTiwgIkNSRUFURSBDT0xMQVRJT04iLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xVTU5fRU5DUllQVElPTl9L RVksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVksICJDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0NSRUFURV9DT05TVFJBSU5ULCAiQ1JFQVRFIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05WRVJTSU9OLCAiQ1JFQVRF IENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NS RUFURV9EQVRBQkFTRSwgIkNSRUFURSBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CkBAIC0xMzgsNiArMTQyLDggQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRI T0QsICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ0FTVCwgIkRST1AgQ0FTVCIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DT0xMQVRJT04sICJE Uk9QIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdf RFJPUF9DT0xVTU5fRU5DUllQVElPTl9LRVksICJEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtF WSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9DT0xVTU5f TUFTVEVSX0tFWSwgIkRST1AgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OU1RSQUlOVCwgIkRST1AgQ09OU1RSQUlO VCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DT05WRVJT SU9OLCAiRFJPUCBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0RBVEFCQVNFLCAiRFJPUCBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwg ZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmggYi9zcmMv aW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKaW5kZXggNWQzNDk3OGYzMjllLi43NTAyZDcxYjBk MjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaAorKysgYi9zcmMv aW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKQEAgLTUzLDYgKzUzLDggQEAgZXh0ZXJuIExpc3Qg KnBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNldHJlZSwK IAkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCiAJCQkJCQkJCQkJCSAg T2lkICoqcGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJICBpbnQgKm51bVBhcmFtcywKKwkJCQkJ CQkJCQkJICBPaWQgKipwYXJhbU9yaWdUYmxzLAorCQkJCQkJCQkJCQkgIEF0dHJOdW1iZXIg KipwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5 RW52KTsKIGV4dGVybiBMaXN0ICpwZ19hbmFseXplX2FuZF9yZXdyaXRlX3dpdGhjYihSYXdT dG10ICpwYXJzZXRyZWUsCiAJCQkJCQkJCQkJICAgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5n LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91 dGlscy9hY2wuaAppbmRleCA5YTRkZjNhNWRhY2MuLmE3YzUxZGMzYzg5YSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNs LmgKQEAgLTMxOCw2ICszMTgsOCBAQCBleHRlcm4gYm9vbCBwZ19vcGNsYXNzX293bmVyY2hl Y2soT2lkIG9wY19vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJvb2wgcGdfb3BmYW1pbHlf b3duZXJjaGVjayhPaWQgb3BmX29pZCwgT2lkIHJvbGVpZCk7CiBleHRlcm4gYm9vbCBwZ19k YXRhYmFzZV9vd25lcmNoZWNrKE9pZCBkYl9vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJv b2wgcGdfY29sbGF0aW9uX293bmVyY2hlY2soT2lkIGNvbGxfb2lkLCBPaWQgcm9sZWlkKTsK K2V4dGVybiBib29sIHBnX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9vd25lcmNoZWNrKE9pZCBj ZWtfb2lkLCBPaWQgcm9sZWlkKTsKK2V4dGVybiBib29sIHBnX2NvbHVtbl9tYXN0ZXJfa2V5 X293bmVyY2hlY2soT2lkIGNta19vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJvb2wgcGdf Y29udmVyc2lvbl9vd25lcmNoZWNrKE9pZCBjb252X29pZCwgT2lkIHJvbGVpZCk7CiBleHRl cm4gYm9vbCBwZ190c19kaWN0X293bmVyY2hlY2soT2lkIGRpY3Rfb2lkLCBPaWQgcm9sZWlk KTsKIGV4dGVybiBib29sIHBnX3RzX2NvbmZpZ19vd25lcmNoZWNrKE9pZCBjZmdfb2lkLCBP aWQgcm9sZWlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggNTBmMDI4ODMwNTI1Li43 MjU4ZDQwMDc3MDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xNjMsNiArMTYzLDcg QEAgZXh0ZXJuIGJvb2wgdHlwZV9pc19yb3d0eXBlKE9pZCB0eXBpZCk7CiBleHRlcm4gYm9v bCB0eXBlX2lzX2VudW0oT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfcmFuZ2Uo T2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfbXVsdGlyYW5nZShPaWQgdHlwaWQp OworZXh0ZXJuIGJvb2wgdHlwZV9pc19lbmNyeXB0ZWQoT2lkIHR5cGlkKTsKIGV4dGVybiB2 b2lkIGdldF90eXBlX2NhdGVnb3J5X3ByZWZlcnJlZChPaWQgdHlwaWQsCiAJCQkJCQkJCQkJ Y2hhciAqdHlwY2F0ZWdvcnksCiAJCQkJCQkJCQkJYm9vbCAqdHlwaXNwcmVmZXJyZWQpOwpA QCAtMjAyLDYgKzIwMywxMSBAQCBleHRlcm4gT2lkCWdldF9wdWJsaWNhdGlvbl9vaWQoY29u c3QgY2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRf cHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g T2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlz c2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJp ZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X2Nla19vaWQoY29uc3QgY2hh ciAqY2VrbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBjaGFyICpnZXRfY2VrX25h bWUoT2lkIGNla2lkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfY2VrZGF0 YV9vaWQoT2lkIGNla2lkLCBPaWQgY21raWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4g T2lkCWdldF9jbWtfb2lkKGNvbnN0IGNoYXIgKmNta25hbWUsIGJvb2wgbWlzc2luZ19vayk7 CitleHRlcm4gY2hhciAqZ2V0X2Nta19uYW1lKE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29r KTsKIAogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUo dHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRz IGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxz L3BsYW5jYWNoZS5oCmluZGV4IDA0OTk2MzVmNTk0NS4uOWE3Y2Y3OTRjZWNmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9wbGFuY2FjaGUuaApAQCAtMTAxLDYgKzEwMSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBD YWNoZWRQbGFuU291cmNlCiAJQ29tbWFuZFRhZwljb21tYW5kVGFnOwkJLyogJ251ZmYgc2Fp ZCAqLwogCU9pZAkJICAgKnBhcmFtX3R5cGVzOwkvKiBhcnJheSBvZiBwYXJhbWV0ZXIgdHlw ZSBPSURzLCBvciBOVUxMICovCiAJaW50CQkJbnVtX3BhcmFtczsJCS8qIGxlbmd0aCBvZiBw YXJhbV90eXBlcyBhcnJheSAqLworCU9pZAkJICAgKnBhcmFtX29yaWd0YmxzOyAvKiBhcnJh eSBvZiB1bmRlcmx5aW5nIHRhYmxlcyBvZiBwYXJhbWV0ZXJzLAorCQkJCQkJCQkgKiBvciBO VUxMICovCisJQXR0ck51bWJlciAqcGFyYW1fb3JpZ2NvbHM7IC8qIGFycmF5IG9mIHVuZGVy bHlpbmcgY29sdW1ucyBvZiBwYXJhbWV0ZXJzLAorCQkJCQkJCQkgKiBvciBOVUxMICovCiAJ UGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwOwkvKiBhbHRlcm5hdGl2ZSBwYXJhbWV0ZXIg c3BlYyBtZXRob2QgKi8KIAl2b2lkCSAgICpwYXJzZXJTZXR1cEFyZzsKIAlpbnQJCQljdXJz b3Jfb3B0aW9uczsgLyogY3Vyc29yIG9wdGlvbnMgdXNlZCBmb3IgcGxhbm5pbmcgKi8KQEAg LTE5OSw2ICsyMDMsOCBAQCBleHRlcm4gdm9pZCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2FjaGVk UGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkJCQkgICBNZW1vcnlDb250ZXh0IHF1ZXJ5 dHJlZV9jb250ZXh0LAogCQkJCQkJCSAgIE9pZCAqcGFyYW1fdHlwZXMsCiAJCQkJCQkJICAg aW50IG51bV9wYXJhbXMsCisJCQkJCQkJICAgT2lkICpwYXJhbV9vcmlndGJscywKKwkJCQkJ CQkgICBBdHRyTnVtYmVyICpwYXJhbV9vcmlnY29scywKIAkJCQkJCQkgICBQYXJzZXJTZXR1 cEhvb2sgcGFyc2VyU2V0dXAsCiAJCQkJCQkJICAgdm9pZCAqcGFyc2VyU2V0dXBBcmcsCiAJ CQkJCQkJICAgaW50IGN1cnNvcl9vcHRpb25zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgKaW5kZXgg NDQ2M2VhNjZiZWE1Li40ODljNmVlNzM0YmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL3N5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaApAQCAt NDQsOCArNDQsMTQgQEAgZW51bSBTeXNDYWNoZUlkZW50aWZpZXIKIAlBVVRITkFNRSwKIAlB VVRIT0lELAogCUNBU1RTT1VSQ0VUQVJHRVQsCisJQ0VLREFUQUNFS0NNSywKKwlDRUtEQVRB T0lELAorCUNFS05BTUUsCisJQ0VLT0lELAogCUNMQUFNTkFNRU5TUCwKIAlDTEFPSUQsCisJ Q01LTkFNRSwKKwlDTUtPSUQsCiAJQ09MTE5BTUVFTkNOU1AsCiAJQ09MTE9JRCwKIAlDT05E RUZBVUxULApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQppbmRleCAxZDMxYjI1NmZjOWUuLjQ4MTJm ODYyY2E2YSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKQEAgLTU0LDYgKzU0LDcgQEAgZW5k aWYKIAogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKIE9CSlMgKz0gXAorCWZlLWVuY3J5 cHQtb3BlbnNzbC5vIFwKIAlmZS1zZWN1cmUtb3BlbnNzbC5vCiBlbmRpZgogCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IGU4YmNjODgzNzA5MS4uZmFiYWQzOGFjMGYxIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dAorKysgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dApAQCAtMTg2LDMgKzE4Niw3IEBAIFBRcGlw ZWxpbmVTdGF0dXMgICAgICAgICAgMTgzCiBQUXNldFRyYWNlRmxhZ3MgICAgICAgICAgIDE4 NAogUFFtYmxlbkJvdW5kZWQgICAgICAgICAgICAxODUKIFBRc2VuZEZsdXNoUmVxdWVzdCAg ICAgICAgMTg2CitQUWV4ZWNQcmVwYXJlZDIgICAgICAgICAgIDE4NworUFFzZW5kUXVlcnlQ cmVwYXJlZDIgICAgICAxODgKK1BRZmlzZW5jcnlwdGVkICAgICAgICAgICAgMTg5CitQUXBh cmFtaXNlbmNyeXB0ZWQgICAgICAgIDE5MApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5j CmluZGV4IDc0NmU5YjRmMWVmYy4uZjJhMzczOTA4NDdlIDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtY29ubmVjdC5jCkBAIC0zNDEsNiArMzQxLDE0IEBAIHN0YXRpYyBjb25zdCBpbnRlcm5h bFBRY29ubmluZm9PcHRpb24gUFFjb25uaW5mb09wdGlvbnNbXSA9IHsKIAkJIlRhcmdldC1T ZXNzaW9uLUF0dHJzIiwgIiIsIDE1LCAvKiBzaXplb2YoInByZWZlci1zdGFuZGJ5IikgPSAx NSAqLwogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCB0YXJnZXRfc2Vzc2lvbl9hdHRycyl9 LAogCisJeyJjbWtsb29rdXAiLCAiUEdDTUtMT09LVVAiLCAiIiwgTlVMTCwKKwkJIkNNSy1M b29rdXAiLCAiIiwgNjQsCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIGNta2xvb2t1cCl9 LAorCisJeyJjb2x1bW5fZW5jcnlwdGlvbiIsICJQR0NPTFVNTkVOQ1JZUFRJT04iLCAiMCIs IE5VTEwsCisJCSJDb2x1bW4tRW5jcnlwdGlvbiIsICIiLCAxLAorCW9mZnNldG9mKHN0cnVj dCBwZ19jb25uLCBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nKX0sCisKIAkvKiBUZXJtaW5h dGluZyBlbnRyeSAtLS0gTVVTVCBCRSBMQVNUICovCiAJe05VTEwsIE5VTEwsIE5VTEwsIE5V TEwsCiAJTlVMTCwgTlVMTCwgMH0KQEAgLTI0NTQsNiArMjQ2Miw3IEBAIFBRY29ubmVjdFBv bGwoUEdjb25uICpjb25uKQogI2lmZGVmIEVOQUJMRV9HU1MKIAkJY29ubi0+dHJ5X2dzcyA9 IChjb25uLT5nc3NlbmNtb2RlWzBdICE9ICdkJyk7CS8qICJkaXNhYmxlIiAqLwogI2VuZGlm CisJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSAoY29ubi0+Y29sdW1uX2Vu Y3J5cHRpb25fc2V0dGluZ1swXSA9PSAnMScpOwogCiAJCXJlc2V0X2Nvbm5lY3Rpb25fc3Rh dGVfbWFjaGluZSA9IGZhbHNlOwogCQluZWVkX25ld19jb25uZWN0aW9uID0gdHJ1ZTsKQEAg LTMyNDksNyArMzI1OCw3IEBAIFBRY29ubmVjdFBvbGwoUEdjb25uICpjb25uKQogCQkJCSAq IHJlcXVlc3Qgb3IgYW4gZXJyb3IgaGVyZS4gIEFueXRoaW5nIGVsc2UgcHJvYmFibHkgbWVh bnMKIAkJCQkgKiBpdCdzIG5vdCBQb3N0Z3JlcyBvbiB0aGUgb3RoZXIgZW5kIGF0IGFsbC4K IAkJCQkgKi8KLQkJCQlpZiAoIShiZXJlc3AgPT0gJ1InIHx8IGJlcmVzcCA9PSAnRScpKQor CQkJCWlmICghKGJlcmVzcCA9PSAnUicgfHwgYmVyZXNwID09ICdFJyB8fCBiZXJlc3AgPT0g J3YnKSkKIAkJCQl7CiAJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCiAJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImV4cGVjdGVkIGF1dGhlbnRpY2F0aW9u IHJlcXVlc3QgZnJvbSBzZXJ2ZXIsIGJ1dCByZWNlaXZlZCAlY1xuIiksCkBAIC0zNDA1LDYg KzM0MTQsMTcgQEAgUFFjb25uZWN0UG9sbChQR2Nvbm4gKmNvbm4pCiAKIAkJCQkJZ290byBl cnJvcl9yZXR1cm47CiAJCQkJfQorCQkJCWVsc2UgaWYgKGJlcmVzcCA9PSAndicpCisJCQkJ eworCQkJCQlpZiAocHFHZXROZWdvdGlhdGVQcm90b2NvbFZlcnNpb24zKGNvbm4pKQorCQkJ CQl7CisJCQkJCQkvKiBXZSdsbCBjb21lIGJhY2sgd2hlbiB0aGVyZSBpcyBtb3JlIGRhdGEg Ki8KKwkJCQkJCXJldHVybiBQR1JFU19QT0xMSU5HX1JFQURJTkc7CisJCQkJCX0KKwkJCQkJ LyogT0ssIHdlIHJlYWQgdGhlIG1lc3NhZ2U7IG1hcmsgZGF0YSBjb25zdW1lZCAqLworCQkJ CQljb25uLT5pblN0YXJ0ID0gY29ubi0+aW5DdXJzb3I7CisJCQkJCWdvdG8gZXJyb3JfcmV0 dXJuOworCQkJCX0KIAogCQkJCS8qIEl0IGlzIGFuIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3Qu ICovCiAJCQkJY29ubi0+YXV0aF9yZXFfcmVjZWl2ZWQgPSB0cnVlOwpAQCAtNDA4MCw2ICs0 MTAwLDIyIEBAIGZyZWVQR2Nvbm4oUEdjb25uICpjb25uKQogCWZyZWUoY29ubi0+a3Jic3J2 bmFtZSk7CiAJZnJlZShjb25uLT5nc3NsaWIpOwogCWZyZWUoY29ubi0+Y29ubmlwKTsKKwlm cmVlKGNvbm4tPmNta2xvb2t1cCk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY21r czsgaSsrKQorCXsKKwkJZnJlZShjb25uLT5jbWtzW2ldLmNta25hbWUpOworCQlmcmVlKGNv bm4tPmNta3NbaV0uY21rcmVhbG0pOworCX0KKwlmcmVlKGNvbm4tPmNta3MpOworCWZvciAo aW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJCWlmIChjb25uLT5jZWtz W2ldLmNla2RhdGEpCisJCXsKKwkJCWV4cGxpY2l0X2J6ZXJvKGNvbm4tPmNla3NbaV0uY2Vr ZGF0YSwgY29ubi0+Y2Vrc1tpXS5jZWtkYXRhbGVuKTsKKwkJCWZyZWUoY29ubi0+Y2Vrc1tp XS5jZWtkYXRhKTsKKwkJfQorCX0KKwlmcmVlKGNvbm4tPmNla3MpOwogCS8qIE5vdGUgdGhh dCBjb25uLT5QZmRlYnVnIGlzIG5vdCBvdXJzIHRvIGNsb3NlIG9yIGZyZWUgKi8KIAlmcmVl KGNvbm4tPndyaXRlX2Vycl9tc2cpOwogCWZyZWUoY29ubi0+aW5CdWZmZXIpOwpkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk3NGEzYWE4MTBhZgotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCkBAIC0wLDAg KzEsNzY2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LW9w ZW5zc2wuYworICoJICBlbmNyeXB0aW9uIHN1cHBvcnQgdXNpbmcgT3BlblNTTAorICoKKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwg UmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBv c3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJmZS1lbmNyeXB0LmgiCisjaW5jbHVkZSAibGli cHEtaW50LmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1 ZGUgInBvcnQvcGdfYnN3YXAuaCIKKworI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisKKwor I2lmZGVmIFRFU1RfRU5DUllQVAorCisvKgorICogVGVzdCBkYXRhIGZyb20KKyAqIDxodHRw czovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFl cy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisvKgorICogVGhlIGRpZmZl cmVudCB0ZXN0IGNhc2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVmaXhlcyBvZiBLLCBzbyBv bmUgY29uc3RhbnQKKyAqIGlzIGVub3VnaCBoZXJlLgorICovCitzdGF0aWMgY29uc3QgdW5z aWduZWQgY2hhciBLW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgw NSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgwYywgMHgwZCwgMHgw ZSwgMHgwZiwKKwkweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LCAw eDE3LCAweDE4LCAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFkLCAweDFlLCAweDFmLAor CTB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4MjYsIDB4MjcsIDB4Mjgs IDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4MmYsCisJMHgzMCwgMHgz MSwgMHgzMiwgMHgzMywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywgMHgzOCwgMHgzOSwgMHgz YSwgMHgzYiwgMHgzYywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisKK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYzLCAweDY5LCAweDcwLCAw eDY4LCAweDY1LCAweDcyLCAweDIwLCAweDczLCAweDc5LCAweDczLCAweDc0LCAweDY1LCAw eDZkLCAweDIwLAorCTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NmUsIDB4NmYs IDB4NzQsIDB4MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4NjUsIDB4NzEsIDB4NzUs CisJMHg2OSwgMHg3MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg2 MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwKKwkweDc0LCAw eDJjLCAweDIwLCAweDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5LCAweDc0LCAweDIwLCAw eDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4NjUsIDB4MjAsIDB4NjEs IDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NjYsIDB4NjEs IDB4NmMsIDB4NmMsIDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg3 NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHg3MywgMHgy MCwgMHg2ZiwgMHg2NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDY1LCAw eDZlLCAweDY1LCAweDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5LCAweDc0LCAweDY4LCAw eDZmLAorCTB4NzUsIDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4NjMsIDB4NmYsIDB4NmUs IDB4NzYsIDB4NjUsIDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4NjMsIDB4NjUsCit9Owor CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10gPSB7CisJMHgxYSwgMHhm MywgMHg4YywgMHgyZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwgMHhkOCwgMHg2NiwgMHg5 NCwgMHgwOSwgMHgyMywgMHg0MSwgMHhiYywgMHgwNCwKK307CisKK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIHRlc3RfQVtdID0geworCTB4NTQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4 NzMsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NzAsIDB4NzIsIDB4 NjksIDB4NmUsIDB4NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2NSwgMHgyMCwgMHg2Ziwg MHg2NiwgMHgyMCwgMHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3MywgMHg3NCwgMHg2NSwg MHgyMCwKKwkweDRiLCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAweDY4LCAweDZmLCAweDY2 LCAweDY2LCAweDczLAorfTsKKworCisjZGVmaW5lIGxpYnBxX2dldHRleHQoeCkgKHgpCisK KyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KKworCit1bnNpZ25lZCBjaGFyICoK K2RlY3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIEZJTEUgKmZwLCBpbnQgY21r YWxnLAorCQkJCQkgIGludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAor CQkJCQkgIGludCAqdG9sZW4pCit7CisJY29uc3QgRVZQX01EICptZCA9IE5VTEw7CisJRVZQ X1BLRVkgICAqa2V5ID0gTlVMTDsKKwlSU0EJCSAgICpyc2EgPSBOVUxMOworCUVWUF9QS0VZ X0NUWCAqY3R4ID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpvdXQgPSBOVUxMOworCXNpemVf dAkJb3V0bGVuOworCisJc3dpdGNoIChjbWthbGcpCisJeworCQljYXNlIFBHX0NNS19SU0FF U19PQUVQX1NIQV8xOgorCQkJbWQgPSBFVlBfc2hhMSgpOworCQkJYnJlYWs7CisJCWNhc2Ug UEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJ YnJlYWs7CisJCWRlZmF1bHQ6CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JN ZXNzYWdlLAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5zdXBwb3J0ZWQgQ01LIGFsZ29y aXRobSBJRDogJWRcbiIpLCBjbWthbGcpOworCQkJZ290byBmYWlsOworCX0KKworCXJzYSA9 IFJTQV9uZXcoKTsKKwlpZiAoIXJzYSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25u LT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxv Y2F0ZSBSU0Egc3RydWN0dXJlOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCXJzYSA9IFBF TV9yZWFkX1JTQVByaXZhdGVLZXkoZnAsICZyc2EsIE5VTEwsIE5VTEwpOworCWlmICghcnNh KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJ CSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IHJlYWQgUlNBIHByaXZhdGUga2V5OiAlc1xu IiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkp OworCQlnb3RvIGZhaWw7CisJfQorCisJa2V5ID0gRVZQX1BLRVlfbmV3KCk7CisJaWYgKCFr ZXkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUgcHJpdmF0ZSBrZXkgc3Ry dWN0dXJlOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9n ZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfUEtFWV9hc3Np Z25fUlNBKGtleSwgcnNhKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJv ck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhc3NpZ24gcHJp dmF0ZSBrZXk6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwljdHggPSBFVlBfUEtFWV9D VFhfbmV3KGtleSwgTlVMTCk7CisJaWYgKCFjdHgpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBu b3QgYWxsb2NhdGUgcHVibGljIGtleSBhbGdvcml0aG0gY29udGV4dDogJXNcbiIpLAorCQkJ CQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKworCWlmIChFVlBfUEtFWV9kZWNyeXB0X2luaXQoY3R4KSA8PSAwKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAg bGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4i KSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGlu ZyhjdHgsIFJTQV9QS0NTMV9PQUVQX1BBRERJTkcpIDw9IDAgfHwKKwkJRVZQX1BLRVlfQ1RY X3NldF9yc2FfbWdmMV9tZChjdHgsIG1kKSA8PSAwIHx8CisJCUVWUF9QS0VZX0NUWF9zZXRf cnNhX29hZXBfbWQoY3R4LCBtZCkgPD0gMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBz ZXQgUlNBIHBhcmFtZXRlcjogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBf UEtFWV9kZWNyeXB0KGN0eCwgTlVMTCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoIlJTQSBkZWNyeXB0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJ ICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBm YWlsOworCX0KKworCW91dCA9IG1hbGxvYyhvdXRsZW4pOworCWlmICghb3V0KQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFf Z2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYg KEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBvdXQsICZvdXRsZW4sIGZyb20sIGZyb21sZW4pIDw9 IDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJSU0EgZGVjcnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJ CQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWZy ZWUob3V0KTsKKwkJb3V0ID0gTlVMTDsKKwkJZ290byBmYWlsOworCX0KKworCSp0b2xlbiA9 IG91dGxlbjsKKworZmFpbDoKKwlFVlBfUEtFWV9DVFhfZnJlZShjdHgpOworCUVWUF9QS0VZ X2ZyZWUoa2V5KTsKKworCXJldHVybiBvdXQ7Cit9CisKK3N0YXRpYyBjb25zdCBFVlBfQ0lQ SEVSICoKK3BnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihpbnQgY2VrYWxnKQoreworCWNv bnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2Fz ZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQljaXBoZXIgPSBF VlBfYWVzXzEyOF9jYmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18x OTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTkyX2NiYygpOwor CQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0 OgorCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCWNp cGhlciA9IEVWUF9hZXNfMjU2X2NiYygpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlj aXBoZXIgPSBOVUxMOworCX0KKworCXJldHVybiBjaXBoZXI7Cit9CisKK3N0YXRpYyBjb25z dCBFVlBfTUQgKgorcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoaW50IGNla2FsZykKK3sKKwlj b25zdCBFVlBfTUQgKm1kOworCisJc3dpdGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NF S19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1Nigp OworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFf Mzg0OgorCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJ CW1kID0gRVZQX3NoYTM4NCgpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVT XzI1Nl9DQkNfSE1BQ19TSEFfNTEyOgorCQkJbWQgPSBFVlBfc2hhNTEyKCk7CisJCQlicmVh azsKKwkJZGVmYXVsdDoKKwkJCW1kID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gbWQ7Cit9CisK K3N0YXRpYyBpbnQKK21kX2tleV9sZW5ndGgoY29uc3QgRVZQX01EICptZCkKK3sKKwlpZiAo bWQgPT0gRVZQX3NoYTI1NigpKQorCQlyZXR1cm4gMTY7CisJZWxzZSBpZiAobWQgPT0gRVZQ X3NoYTM4NCgpKQorCQlyZXR1cm4gMjQ7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTUxMigp KQorCQlyZXR1cm4gMzI7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQK K21kX2hhc2hfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7CisJaWYgKG1kID09IEVWUF9z aGEyNTYoKSkKKwkJcmV0dXJuIDMyOworCWVsc2UgaWYgKG1kID09IEVWUF9zaGEzODQoKSkK KwkJcmV0dXJuIDQ4OworCWVsc2UgaWYgKG1kID09IEVWUF9zaGE1MTIoKSkKKwkJcmV0dXJu IDY0OworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisjaWZuZGVmIFRFU1RfRU5DUllQVAor I2RlZmluZSBQR19BRF9MRU4gNAorI2Vsc2UKKyNkZWZpbmUgUEdfQURfTEVOIHNpemVvZih0 ZXN0X0EpCisjZW5kaWYKKworc3RhdGljIGJvb2wKK2dldF9tZXNzYWdlX2F1dGhfdGFnKGNv bnN0IEVWUF9NRCAqbWQsCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5LCBp bnQgbWFjX2tleV9sZW4sCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICplbmNyLCBpbnQg ZW5jcmxlbiwKKwkJCQkJIGludCBjZWthbGcsCisJCQkJCSB1bnNpZ25lZCBjaGFyICptZF92 YWx1ZSwgc2l6ZV90ICptZF9sZW5fcCwKKwkJCQkJIGNvbnN0IGNoYXIgKiplcnJtc2dwKQor eworCXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0XTsKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4 ID0gTlVMTDsKKwlFVlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwlzaXplX3QJCWJ1ZnNpemU7 CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsK KworCWlmIChlbmNybGVuIDwgMCkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1z Z2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImVuY3J5cHRlZCB2YWx1ZSBoYXMgaW52YWxp ZCBsZW5ndGgiKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQor CisJZXZwX21kX2N0eCA9IEVWUF9NRF9DVFhfbmV3KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlf bmV3X3Jhd19wcml2YXRlX2tleShFVlBfUEtFWV9ITUFDLCBOVUxMLCBtYWNfa2V5LCBtYWNf a2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2Yo bXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IGFsbG9jYXRlIGtleSBm b3IgSE1BQzogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJ YnVmc2l6ZSA9IFBHX0FEX0xFTiArIGVuY3JsZW4gKyBzaXplb2YoaW50NjQpOworCWJ1ZiA9 IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFf Z2V0dGV4dCgib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorI2lmbmRlZiBU RVNUX0VOQ1JZUFQKKwlidWZbMF0gPSAnUCc7CisJYnVmWzFdID0gJ0cnOworCSooaW50MTYg KikgKGJ1ZiArIDIpID0gcGdfaHRvbjE2KGNla2FsZyk7CisjZWxzZQorCW1lbWNweShidWYs IHRlc3RfQSwgc2l6ZW9mKHRlc3RfQSkpOworI2VuZGlmCisJbWVtY3B5KGJ1ZiArIFBHX0FE X0xFTiwgZW5jciwgZW5jcmxlbik7CisJKihpbnQ2NCAqKSAoYnVmICsgUEdfQURfTEVOICsg ZW5jcmxlbikgPSBwZ19odG9uNjQoUEdfQURfTEVOICogOCk7CisKKwlpZiAoIUVWUF9EaWdl c3RTaWduSW5pdChldnBfbWRfY3R4LCBOVUxMLCBtZCwgTlVMTCwgcGtleSkpCisJeworCQlz bnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJk aWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRlKGV2cF9tZF9j dHgsIGJ1ZiwgYnVmc2l6ZSkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2di dWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiks CisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2Vz dFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgbWRfbGVuX3ApKQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGln ZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisJQXNzZXJ0KCptZF9sZW5fcCA9PSBtZF9oYXNoX2xlbmd0aChtZCkpOworCisJ LyogdHJ1bmNhdGUgb3V0cHV0IHRvIGhhbGYgdGhlIGxlbmd0aCwgcGVyIHNwZWMgKi8KKwkq bWRfbGVuX3AgLz0gMjsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCWZyZWUoYnVmKTsK KwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsK KwlyZXR1cm4gcmVzdWx0OworfQorCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfdmFsdWUo UEdyZXN1bHQgKnJlcywgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5z aWduZWQgY2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwgY29uc3QgY2hhciAqKmVycm1zZ3Ap Cit7CisJc3RhdGljIGNoYXIgbXNnYnVmWzEwMjRdOworCisJY29uc3QgdW5zaWduZWQgY2hh ciAqaXYgPSBOVUxMOworCXNpemVfdAkJaXZsZW47CisKKwljb25zdCBFVlBfQ0lQSEVSICpj aXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhl cl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19rZXlfbGVu OworCWludAkJCWtleV9sZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwlj b25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5OworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVb RVZQX01BWF9NRF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7 CisJc2l6ZV90CQlidWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJdW5z aWduZWQgY2hhciAqZGVjcjsKKwlpbnQJCQlkZWNybGVuLAorCQkJCWRlY3JsZW4yOworCisJ dW5zaWduZWQgY2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190 b19vcGVuc3NsX2NpcGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJc25wcmlu dGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgidW5yZWNv Z25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19j ZWthbGdfdG9fb3BlbnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJeworCQlzbnByaW50 Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29n bml6ZWQgZGlnZXN0IGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4 ID0gRVZQX0NJUEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChl dnBfY2lwaGVyX2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCXNucHJp bnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5 cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJfQ1RYX2tleV9s ZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gbWRfa2V5X2xlbmd0aCht ZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpZiAoY2Vr LT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVv Zihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg aGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6ICV6dSwgcmVxdWlyZWQ6ICVk KSIpLAorCQkJCSBjZWstPmNla2RhdGFsZW4sIGtleV9sZW4pOworCQkqZXJybXNncCA9IG1z Z2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXkgPSBjZWstPmNla2RhdGEgKyBt YWNfa2V5X2xlbjsKKwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCisJaWYgKCFnZXRfbWVz c2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBpbnB1 dCwgaW5wdXRsZW4gLSAobWRfaGFzaF9sZW5ndGgobWQpIC8gMiksCisJCQkJCQkJICBjZWth bGcsCisJCQkJCQkJICBtZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgIGVycm1zZ3ApKQor CXsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChtZW1jbXAoaW5wdXQgKyAoaW5wdXRsZW4g LSBtZF9sZW4pLCBtZF92YWx1ZSwgbWRfbGVuKSAhPSAwKQorCXsKKwkJKmVycm1zZ3AgPSBs aWJwcV9nZXR0ZXh0KCJNQUMgbWlzbWF0Y2giKTsKKwkJZ290byBmYWlsOworCX0KKworCWl2 bGVuID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwlpdiA9 IGlucHV0OworCWlucHV0ICs9IGl2bGVuOworCWlucHV0bGVuIC09IGl2bGVuOworCWlmICgh RVZQX0RlY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBOVUxMLCBOVUxMLCBlbmNfa2V5 LCBpdikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBs aWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiKSwK KwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSpl cnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IGlucHV0 bGVuICsgRVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0eCkgKyAxOwor I2lmbmRlZiBURVNUX0VOQ1JZUFQKKwlidWYgPSBwcVJlc3VsdEFsbG9jKHJlcywgYnVmc2l6 ZSwgZmFsc2UpOworI2Vsc2UKKwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisjZW5kaWYKKwlp ZiAoIWJ1ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9y eSIpOworCQlnb3RvIGZhaWw7CisJfQorCWRlY3IgPSBidWY7CisJaWYgKCFFVlBfRGVjcnlw dFVwZGF0ZShldnBfY2lwaGVyX2N0eCwgZGVjciwgJmRlY3JsZW4sIGlucHV0LCBpbnB1dGxl biAtIG1kX2xlbikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAor CQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJS X3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0g bXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCWlmICghRVZQX0RlY3J5cHRGaW5hbF9leChl dnBfY2lwaGVyX2N0eCwgZGVjciArIGRlY3JsZW4sICZkZWNybGVuMikpCisJeworCQlzbnBy aW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNy eXB0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJ fQorCWRlY3JsZW4gKz0gZGVjcmxlbjI7CisJQXNzZXJ0KGRlY3JsZW4gPCBidWZzaXplKTsK KwlkZWNyW2RlY3JsZW5dID0gJ1wwJzsKKwlyZXN1bHQgPSBkZWNyOworCitmYWlsOgorCUVW UF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2NpcGhlcl9jdHgpOworCisJcmV0dXJuIHJlc3VsdDsK K30KKworI2lmbmRlZiBURVNUX0VOQ1JZUFQKK3N0YXRpYyBib29sCittYWtlX3NpdihQR2Nv bm4gKmNvbm4sCisJCSB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2bGVuLAorCQkgY29u c3QgRVZQX01EICptZCwKKwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2X2tleSwgaW50IGl2 X2tleV9sZW4sCisJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQsIGludCBwbGFp bnRleHRfbGVuKQoreworCUVWUF9NRF9DVFggKmV2cF9tZF9jdHggPSBOVUxMOworCUVWUF9Q S0VZICAgKnBrZXkgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9N RF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJYm9vbAkJ cmVzdWx0ID0gZmFsc2U7CisKKwlldnBfbWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKwor CXBrZXkgPSBFVlBfUEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5V TEwsIGl2X2tleSwgaXZfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgi Y291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXNcbiIpLAorCQkJCQkJICBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOwor CX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgsIE5VTEwsIG1kLCBO VUxMLCBwa2V5KSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImRpZ2VzdCBpbml0aWFsaXphdGlvbiBmYWls ZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBk YXRlKGV2cF9tZF9jdHgsIHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbikpCisJeworCQlhcHBl bmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0 ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNv bl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisK KwlpZiAoIUVWUF9EaWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwgbWRfdmFsdWUsICZtZF9s ZW4pKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJ CQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKwlBc3NlcnQobWRfbGVuID09IG1kX2hhc2hfbGVuZ3RoKG1kKSk7CisJ bWVtY3B5KGl2LCBtZF92YWx1ZSwgaXZsZW4pOworCisJcmVzdWx0ID0gdHJ1ZTsKK2ZhaWw6 CisJRVZQX1BLRVlfZnJlZShwa2V5KTsKKwlFVlBfTURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7 CisJcmV0dXJuIHJlc3VsdDsKK30KKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8K KwordW5zaWduZWQgY2hhciAqCitlbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29ubiwgY29uc3Qg UEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGlu dCAqbmJ5dGVzcCwgYm9vbCBlbmNfZGV0KQoreworCWludAkJCW5ieXRlcyA9ICpuYnl0ZXNw OworCXVuc2lnbmVkIGNoYXIgaXZbRVZQX01BWF9JVl9MRU5HVEhdOworCXNpemVfdAkJaXZs ZW47CisJY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJ RVZQX0NJUEhFUl9DVFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5 X2xlbjsKKwlpbnQJCQltYWNfa2V5X2xlbjsKKwlpbnQJCQlrZXlfbGVuOworCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmVuY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqbWFjX2tleTsK KwlzaXplX3QJCWJ1ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwl1bnNp Z25lZCBjaGFyICplbmNyOworCWludAkJCWVuY3JsZW4sCisJCQkJZW5jcmxlbjI7CisKKwlj b25zdCBjaGFyICplcnJtc2c7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01E X1NJWkVdOworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlzaXplX3QJ CWJ1ZjJzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZjIgPSBOVUxMOworCisJdW5zaWduZWQg Y2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3Ns X2NpcGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZm ZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5yZWNv Z25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkXG4iKSwgY2VrYWxn KTsKKwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQo Y2VrYWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVy cm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGRpZ2Vz dCBhbGdvcml0aG0gaWRlbnRpZmllcjogJWRcbiIpLCBjZWthbGcpOworCQlnb3RvIGZhaWw7 CisJfQorCisJZXZwX2NpcGhlcl9jdHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKworCWlm ICghRVZQX0VuY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5V TEwsIE5VTEwpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlvbiBm YWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dl dF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9D SVBIRVJfQ1RYX2tleV9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0g bWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9s ZW47CisKKwlpZiAoY2VrLT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0 KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGht IChoYXM6ICV6dSwgcmVxdWlyZWQ6ICVkKVxuIiksCisJCQkJCQkgIGNlay0+Y2VrZGF0YWxl biwga2V5X2xlbik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5ID0gY2VrLT5jZWtk YXRhICsgbWFjX2tleV9sZW47CisJbWFjX2tleSA9IGNlay0+Y2VrZGF0YTsKKworCWl2bGVu ID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwlBc3NlcnQo aXZsZW4gPD0gc2l6ZW9mKGl2KSk7CisJaWYgKGVuY19kZXQpCisJeworI2lmbmRlZiBURVNU X0VOQ1JZUFQKKwkJbWFrZV9zaXYoY29ubiwgaXYsIGl2bGVuLCBtZCwgbWFjX2tleSwgbWFj X2tleV9sZW4sIHZhbHVlLCBuYnl0ZXMpOworI2Vsc2UKKwkJbWVtY3B5KGl2LCB0ZXN0X0lW LCBpdmxlbik7CisjZW5kaWYKKwl9CisJZWxzZQorCQlwZ19zdHJvbmdfcmFuZG9tKGl2LCBp dmxlbik7CisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIE5VTEws IE5VTEwsIGVuY19rZXksIGl2KSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImVuY3J5cHRpb24gaW5pdGlh bGl6YXRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9 IGl2bGVuICsgKG5ieXRlcyArIDIgKiBFVlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9j aXBoZXJfY3R4KSAtIDEpOworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnlcbiIpKTsKKwkJZ290byBmYWlsOworCX0K KwltZW1jcHkoYnVmLCBpdiwgaXZsZW4pOworCWVuY3IgPSBidWYgKyBpdmxlbjsKKwlpZiAo IUVWUF9FbmNyeXB0VXBkYXRlKGV2cF9jaXBoZXJfY3R4LCBlbmNyLCAmZW5jcmxlbiwgdmFs dWUsIG5ieXRlcykpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0aW9uIGZhaWxlZDogJXNcbiIp LAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsK KwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9FbmNyeXB0RmluYWxfZXgoZXZwX2NpcGhl cl9jdHgsIGVuY3IgKyBlbmNybGVuLCAmZW5jcmxlbjIpKQorCXsKKwkJYXBwZW5kUFFFeHBC dWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5j cnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJp bmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJZW5jcmxlbiArPSBl bmNybGVuMjsKKworCWVuY3IgLT0gaXZsZW47CisJZW5jcmxlbiArPSBpdmxlbjsKKworCUFz c2VydChlbmNybGVuIDw9IGJ1ZnNpemUpOworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3Rh ZyhtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBlbmNyLCBlbmNybGVuLAor CQkJCQkJCSAgY2VrYWxnLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9sZW4sCisJCQkJCQkJ ICAmZXJybXNnKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsICIlc1xuIiwgZXJybXNnKTsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZjJzaXplID0g ZW5jcmxlbiArIG1kX2xlbjsKKwlidWYyID0gbWFsbG9jKGJ1ZjJzaXplKTsKKwlpZiAoIWJ1 ZjIpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCWdvdG8gZmFpbDsK Kwl9CisJbWVtY3B5KGJ1ZjIsIGVuY3IsIGVuY3JsZW4pOworCW1lbWNweShidWYyICsgZW5j cmxlbiwgbWRfdmFsdWUsIG1kX2xlbik7CisKKwlyZXN1bHQgPSBidWYyOworCW5ieXRlcyA9 IGJ1ZjJzaXplOworCitmYWlsOgorCWZyZWUoYnVmKTsKKwlFVlBfQ0lQSEVSX0NUWF9mcmVl KGV2cF9jaXBoZXJfY3R4KTsKKworCSpuYnl0ZXNwID0gbmJ5dGVzOworCXJldHVybiByZXN1 bHQ7Cit9CisKKworLyoKKyAqIFJ1biB0ZXN0IGNhc2VzCisgKi8KKyNpZmRlZiBURVNUX0VO Q1JZUFQKKworc3RhdGljIHZvaWQKK2RlYnVnX3ByaW50X2hleChjb25zdCBjaGFyICpuYW1l LCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWwsIGludCBsZW4pCit7CisJcHJpbnRmKCIlcyA9 IiwgbmFtZSk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKKwl7CisJCWlmIChp ICUgMTYgPT0gMCkKKwkJCXByaW50ZigiXG4iKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgIik7 CisJCXByaW50ZigiJTAyeCIsIHZhbFtpXSk7CisJfQorCXByaW50ZigiXG4iKTsKK30KKwor c3RhdGljIHZvaWQKK3Rlc3RfY2FzZShpbnQgYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICpL LCBzaXplX3QgS19sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xlbikK K3sKKwl1bnNpZ25lZCBjaGFyICpDOworCWludAkJCW5ieXRlczsKKwlQR0NFSwkJY2VrOwor CisJbmJ5dGVzID0gUF9sZW47CisJY2VrLmNla2RhdGEgPSB1bmNvbnN0aWZ5KHVuc2lnbmVk IGNoYXIgKiwgSyk7CisJY2VrLmNla2RhdGFsZW4gPSBLX2xlbjsKKworCUMgPSBlbmNyeXB0 X3ZhbHVlKE5VTEwsICZjZWssIGFsZywgUCwgJm5ieXRlcywgdHJ1ZSk7CisJZGVidWdfcHJp bnRfaGV4KCJDIiwgQywgbmJ5dGVzKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKK3sKKwlwcmludGYoIjUuMVxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFE X0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NiwgSywgMzIsIFAsIHNpemVvZihQKSk7CisJcHJp bnRmKCI1LjJcbiIpOworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFD X1NIQV8zODQsIEssIDQ4LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS4zXG4iKTsKKwl0 ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0LCBLLCA1Niwg UCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuNFxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19B RUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMiwgSywgNjQsIFAsIHNpemVvZihQKSk7CisK KwlyZXR1cm4gMDsKK30KKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYjAwOTNkYzUyNzA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIGZlLWVuY3J5cHQuaAorICoKKyAqIGVuY3J5cHRpb24gc3Vw cG9ydAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisg KiBJREVOVElGSUNBVElPTgorICoJICBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0 LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIEZFX0VOQ1JZ UFRfSAorI2RlZmluZSBGRV9FTkNSWVBUX0gKKworI2luY2x1ZGUgImxpYnBxLWZlLmgiCisj aW5jbHVkZSAibGlicHEtaW50LmgiCisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpkZWNyeXB0 X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBGSUxFICpmcCwgaW50IGNta2FsZywKKwkJ CQkJCQkJCQkJaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJ CQkJCQkJCWludCAqdG9sZW4pOworCitleHRlcm4gdW5zaWduZWQgY2hhciAqZGVjcnlwdF92 YWx1ZShQR3Jlc3VsdCAqcmVzLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLAorCQkJ CQkJCQkJY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwKKwkJCQkJ CQkJCWNvbnN0IGNoYXIgKiplcnJtc2dwKTsKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmVu Y3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxn LAorCQkJCQkJCQkJY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCAqbmJ5dGVzcCwg Ym9vbCBlbmNfZGV0KTsKKworI2VuZGlmCQkJCQkJCS8qIEZFX0VOQ1JZUFRfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtZXhlYy5jCmluZGV4IDAyNzRjMWIxNTZjNi4uODM1ZTM1MTZmZmY2IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSA8 dW5pc3RkLmg+CiAjZW5kaWYKIAorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CisjaW5jbHVkZSAiY29tbW9uL2Jhc2U2NC5oIgorI2luY2x1ZGUgImZlLWVuY3J5cHQuaCIK ICNpbmNsdWRlICJsaWJwcS1mZS5oIgogI2luY2x1ZGUgImxpYnBxLWludC5oIgogI2luY2x1 ZGUgIm1iL3BnX3djaGFyLmgiCkBAIC03Miw3ICs3NSw5IEBAIHN0YXRpYyBpbnQJUFFzZW5k UXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQkJCQljb25zdCBjaGFyICpjb25zdCAqcGFy YW1WYWx1ZXMsCiAJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJY29u c3QgaW50ICpwYXJhbUZvcm1hdHMsCi0JCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CisJCQkJ CQkJY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJCQkJaW50 IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKIHN0YXRpYyB2 b2lkIHBhcnNlSW5wdXQoUEdjb25uICpjb25uKTsKIHN0YXRpYyBQR3Jlc3VsdCAqZ2V0Q29w eVJlc3VsdChQR2Nvbm4gKmNvbm4sIEV4ZWNTdGF0dXNUeXBlIGNvcHl0eXBlKTsKIHN0YXRp YyBib29sIFBRZXhlY1N0YXJ0KFBHY29ubiAqY29ubik7CkBAIC0xMTg1LDYgKzExOTAsMzgy IEBAIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogCX0KIH0KIAoraW50CitwcVNhdmVDb2x1bW5NYXN0 ZXJLZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGNvbnN0IGNoYXIgKmtleW5hbWUsCisJ CQkJCSAgY29uc3QgY2hhciAqa2V5cmVhbG0pCit7CisJY2hhcgkgICAqa2V5bmFtZV9jb3B5 OworCWNoYXIJICAgKmtleXJlYWxtX2NvcHk7CisJYm9vbAkJZm91bmQ7CisKKwlrZXluYW1l X2NvcHkgPSBzdHJkdXAoa2V5bmFtZSk7CisJaWYgKCFrZXluYW1lX2NvcHkpCisJCXJldHVy biBFT0Y7CisJa2V5cmVhbG1fY29weSA9IHN0cmR1cChrZXlyZWFsbSk7CisJaWYgKCFrZXly ZWFsbV9jb3B5KQorCXsKKwkJZnJlZShrZXluYW1lX2NvcHkpOworCQlyZXR1cm4gRU9GOwor CX0KKworCWZvdW5kID0gZmFsc2U7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY21r czsgaSsrKQorCXsKKwkJc3RydWN0IHBnX2NtayAqY2hlY2tjbWsgPSAmY29ubi0+Y21rc1tp XTsKKworCQkvKiByZXBsYWNlIGV4aXN0aW5nPyAqLworCQlpZiAoY2hlY2tjbWstPmNta2lk ID09IGtleWlkKQorCQl7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtuYW1lKTsKKwkJCWZyZWUo Y2hlY2tjbWstPmNta3JlYWxtKTsKKwkJCWNoZWNrY21rLT5jbWtuYW1lID0ga2V5bmFtZV9j b3B5OworCQkJY2hlY2tjbWstPmNta3JlYWxtID0ga2V5cmVhbG1fY29weTsKKwkJCWZvdW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlp ZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNta3M7CisJCXN0cnVjdCBwZ19jbWsgKm5l d2Nta3M7CisJCXN0cnVjdCBwZ19jbWsgKm5ld2NtazsKKworCQluZXduY21rcyA9IGNvbm4t Pm5jbWtzICsgMTsKKwkJaWYgKG5ld25jbWtzIDw9IDApCisJCQlyZXR1cm4gRU9GOworCQlu ZXdjbWtzID0gcmVhbGxvYyhjb25uLT5jbWtzLCBuZXduY21rcyAqIHNpemVvZihzdHJ1Y3Qg cGdfY21rKSk7CisJCWlmICghbmV3Y21rcykKKwkJeworCQkJZnJlZShrZXluYW1lX2NvcHkp OworCQkJZnJlZShrZXlyZWFsbV9jb3B5KTsKKwkJCXJldHVybiBFT0Y7CisJCX0KKworCQlu ZXdjbWsgPSAmbmV3Y21rc1tuZXduY21rcyAtIDFdOworCQluZXdjbWstPmNta2lkID0ga2V5 aWQ7CisJCW5ld2Ntay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJbmV3Y21rLT5jbWty ZWFsbSA9IGtleXJlYWxtX2NvcHk7CisKKwkJY29ubi0+bmNta3MgPSBuZXduY21rczsKKwkJ Y29ubi0+Y21rcyA9IG5ld2Nta3M7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBS ZXBsYWNlIHBsYWNlaG9sZGVycyBpbiBpbnB1dCBzdHJpbmcuICBSZXR1cm4gdmFsdWUgbWFs bG9jJ2VkLgorICovCitzdGF0aWMgY2hhciAqCityZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMo Y29uc3QgY2hhciAqaW4sIGNvbnN0IGNoYXIgKmNta25hbWUsIGNvbnN0IGNoYXIgKmNta3Jl YWxtLCBpbnQgY21rYWxnLCBjb25zdCBjaGFyICpiNjRkYXRhKQoreworCVBRRXhwQnVmZmVy RGF0YSBidWY7CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlmb3IgKGNvbnN0IGNo YXIgKnAgPSBpbjsgKnA7IHArKykKKwl7CisJCWlmIChwWzBdID09ICclJykKKwkJeworCQkJ c3dpdGNoIChwWzFdKQorCQkJeworCQkJCWNhc2UgJ2EnOgorCQkJCQl7CisJCQkJCQljb25z dCBjaGFyICpzOworCisJCQkJCQlzd2l0Y2ggKGNta2FsZykKKwkJCQkJCXsKKwkJCQkJCQlj YXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOgorCQkJCQkJCQlzID0gIlJTQUVTX09BRVBf U0hBXzEiOworCQkJCQkJCQlicmVhazsKKwkJCQkJCQljYXNlIFBHX0NNS19SU0FFU19PQUVQ X1NIQV8yNTY6CisJCQkJCQkJCXMgPSAiUlNBRVNfT0FFUF9TSEFfMjU2IjsKKwkJCQkJCQkJ YnJlYWs7CisJCQkJCQkJZGVmYXVsdDoKKwkJCQkJCQkJcyA9ICJJTlZBTElEIjsKKwkJCQkJ CX0KKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIHMpOworCQkJCQl9CisJCQkJ CXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnYic6CisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKCZidWYsIGI2NGRhdGEpOworCQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWNh c2UgJ2snOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBjbWtuYW1lKTsKKwkJ CQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdyJzoKKwkJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgY21rcmVhbG0pOworCQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJ CWRlZmF1bHQ6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcigmYnVmLCBwWzBdKTsKKwkJ CX0KKwkJfQorCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlckNoYXIoJmJ1ZiwgcFswXSk7 CisJfQorCisJcmV0dXJuIGJ1Zi5kYXRhOworfQorCisjaWZuZGVmIFVTRV9TU0wKKy8qCisg KiBEdW1teSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9uLVNTTCBidWlsZHMKKyAqLwordW5zaWdu ZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBGSUxFICpm cCwgaW50IGNta2FsZywKKwkJCQkJICBpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hh ciAqZnJvbSwKKwkJCQkJICBpbnQgKnRvbGVuKQoreworCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5 cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkXG4iKSk7CisJcmV0dXJuIE5VTEw7 Cit9CisjZW5kaWYKKworLyoKKyAqIERlY3J5cHQgYSBDRUsgdXNpbmcgdGhlIGdpdmVuIENN Sy4gIFRoZSBjaXBoZXJ0ZXh0IGlzIHBhc3NlZCBpbgorICogImZyb20iIGFuZCAiZnJvbWxl biIuICBSZXR1cm4gdGhlIGRlY3J5cHRlZCB2YWx1ZSBpbiBhIG1hbGxvYydlZCBhcmVhLCBp dHMKKyAqIGxlbmd0aCB2aWEgInRvbGVuIi4gIFJldHVybiBOVUxMIG9uIGVycm9yOyBhZGQg ZXJyb3IgbWVzc2FnZXMgZGlyZWN0bHkgdG8KKyAqICJjb25uIi4KKyAqLworc3RhdGljIHVu c2lnbmVkIGNoYXIgKgorZGVjcnlwdF9jZWsoUEdjb25uICpjb25uLCBjb25zdCBQR0NNSyAq Y21rLCBpbnQgY21rYWxnLAorCQkJaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmZyb20sCisJCQlpbnQgKnRvbGVuKQoreworCWNoYXIJICAgKmNta2xvb2t1cDsKKwlib29s CQlmb3VuZCA9IGZhbHNlOworCXVuc2lnbmVkIGNoYXIgKnJlc3VsdCA9IE5VTEw7CisKKwlj bWtsb29rdXAgPSBzdHJkdXAoY29ubi0+Y21rbG9va3VwID8gY29ubi0+Y21rbG9va3VwIDog IiIpOworCisJaWYgKCFjbWtsb29rdXApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29u bi0+ZXJyb3JNZXNzYWdlLCBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJ CXJldHVybiBOVUxMOworCX0KKworCS8qCisJICogQW5hbHl6ZSBzZW1pY29sb24tc2VwYXJh dGVkIGxpc3QKKwkgKi8KKwlmb3IgKGNoYXIgKnMgPSBzdHJ0b2soY21rbG9va3VwLCAiOyIp OyBzOyBzID0gc3RydG9rKE5VTEwsICI7IikpCisJeworCQljaGFyCSAgICpzZXA7CisKKwkJ Lyogc3BsaXQgZm91bmQgdG9rZW4gYXQgJz0nICovCisJCXNlcCA9IHN0cmNocihzLCAnPScp OworCQlpZiAoIXNlcCkKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9y TWVzc2FnZSwKKwkJCQkJCQkgIGxpYnBxX2dldHRleHQoInN5bnRheCBlcnJvciBpbiBDTUsg bG9va3VwIHNwZWNpZmljYXRpb24sIG1pc3NpbmcgXCIlY1wiOiAlc1xuIiksICc9Jywgcyk7 CisJCQlicmVhazsKKwkJfQorCisJCS8qIG1hdGNoaW5nIHJlYWxtPyAqLworCQlpZiAoc3Ry bmNtcChzLCAiKiIsIHNlcCAtIHMpID09IDAgfHwgc3RybmNtcChzLCBjbWstPmNta3JlYWxt LCBzZXAgLSBzKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICpzZXAyOworCisJCQlmb3VuZCA9 IHRydWU7CisKKwkJCXNlcDIgPSBzdHJjaHIoc2VwLCAnOicpOworCQkJaWYgKCFzZXAyKQor CQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgic3ludGF4IGVycm9yIGluIENNSyBsb29rdXAgc3BlY2lm aWNhdGlvbiwgbWlzc2luZyBcIiVjXCI6ICVzXG4iKSwgJzonLCBzKTsKKwkJCQlnb3RvIGZh aWw7CisJCQl9CisKKwkJCWlmIChzdHJuY21wKHNlcCArIDEsICJmaWxlIiwgc2VwMiAtIChz ZXAgKyAxKSkgPT0gMCkKKwkJCXsKKwkJCQljaGFyCSAgICpjbWtmaWxlbmFtZTsKKwkJCQlG SUxFCSAgICpmcDsKKworCQkJCWNta2ZpbGVuYW1lID0gcmVwbGFjZV9jbWtfcGxhY2Vob2xk ZXJzKHNlcDIgKyAxLCBjbWstPmNta25hbWUsIGNtay0+Y21rcmVhbG0sIGNta2FsZywgIklO VkFMSUQiKTsKKwkJCQlmcCA9IGZvcGVuKGNta2ZpbGVuYW1lLCAicmIiKTsKKwkJCQlpZiAo ZnApCisJCQkJeworCQkJCQlyZXN1bHQgPSBkZWNyeXB0X2Nla19mcm9tX2ZpbGUoY29ubiwg ZnAsIGNta2FsZywgZnJvbWxlbiwgZnJvbSwgdG9sZW4pOworCQkJCQlmY2xvc2UoZnApOwor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3Qgb3Bl biBmaWxlIFwiJXNcIjogJW1cbiIpLCBjbWtmaWxlbmFtZSk7CisJCQkJCWZyZWUoY21rZmls ZW5hbWUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWZyZWUoY21rZmlsZW5hbWUp OworCQkJfQorCQkJZWxzZSBpZiAoc3RybmNtcChzZXAgKyAxLCAicnVuIiwgc2VwMiAtIChz ZXAgKyAxKSkgPT0gMCkKKwkJCXsKKwkJCQlpbnQJCQllbmNsZW47CisJCQkJY2hhcgkgICAq ZW5jOworCQkJCWNoYXIJICAgKmNvbW1hbmQ7CisJCQkJRklMRQkgICAqZnA7CisJCQkJY2hh cgkJYnVmWzQwOTZdOworCisJCQkJZW5jbGVuID0gcGdfYjY0X2VuY19sZW4oZnJvbWxlbik7 CisJCQkJZW5jID0gbWFsbG9jKGVuY2xlbiArIDEpOworCQkJCWlmICghZW5jKQorCQkJCXsK KwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgbGlicHFfZ2V0 dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJ CWVuY2xlbiA9IHBnX2I2NF9lbmNvZGUoKGNvbnN0IGNoYXIgKikgZnJvbSwgZnJvbWxlbiwg ZW5jLCBlbmNsZW4pOworCQkJCWlmIChlbmNsZW4gPCAwKQorCQkJCXsKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgbGlicHFfZ2V0dGV4dCgiYmFzZTY0 IGVuY29kaW5nIGZhaWxlZFxuIikpOworCQkJCQlmcmVlKGVuYyk7CisJCQkJCWdvdG8gZmFp bDsKKwkJCQl9CisJCQkJY29tbWFuZCA9IHJlcGxhY2VfY21rX3BsYWNlaG9sZGVycyhzZXAy ICsgMSwgY21rLT5jbWtuYW1lLCBjbWstPmNta3JlYWxtLCBjbWthbGcsIGVuYyk7CisJCQkJ ZnJlZShlbmMpOworCQkJCWZwID0gcG9wZW4oY29tbWFuZCwgInIiKTsKKwkJCQlpZiAoIWZw KQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwK KwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IHJ1biBjb21tYW5kIFwiJXNc IjogJW1cbiIpLCBjb21tYW5kKTsKKwkJCQkJZnJlZShjb21tYW5kKTsKKwkJCQkJZ290byBm YWlsOworCQkJCX0KKwkJCQlmcmVlKGNvbW1hbmQpOworCQkJCWlmIChmZ2V0cyhidWYsIHNp emVvZihidWYpLCBmcCkpCisJCQkJeworCQkJCQlpbnQJCQlsaW5lbGVuOworCQkJCQlpbnQJ CQlkZWNsZW47CisJCQkJCWNoYXIJICAgKmRlYzsKKworCQkJCQlsaW5lbGVuID0gc3RybGVu KGJ1Zik7CisJCQkJCWlmIChidWZbbGluZWxlbiAtIDFdID09ICdcbicpCisJCQkJCXsKKwkJ CQkJCWJ1ZltsaW5lbGVuIC0gMV0gPSAnXDAnOworCQkJCQkJbGluZWxlbi0tOworCQkJCQl9 CisJCQkJCWRlY2xlbiA9IHBnX2I2NF9kZWNfbGVuKGxpbmVsZW4pOworCQkJCQlkZWMgPSBt YWxsb2MoZGVjbGVuKTsKKwkJCQkJaWYgKCFkZWMpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFBR RXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoIm91dCBvZiBt ZW1vcnlcbiIpKTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJCQkJfQorCQkJCQlkZWNsZW4gPSBw Z19iNjRfZGVjb2RlKGJ1ZiwgbGluZWxlbiwgZGVjLCBkZWNsZW4pOworCQkJCQlpZiAoZGVj bGVuIDwgMCkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9y TWVzc2FnZSwKKwkJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImJhc2U2NCBkZWNvZGluZyBm YWlsZWRcbiIpKTsKKwkJCQkJCWZyZWUoZGVjKTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJCQkJ fQorCQkJCQlyZXN1bHQgPSAodW5zaWduZWQgY2hhciAqKSBkZWM7CisJCQkJCSp0b2xlbiA9 IGRlY2xlbjsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZm ZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291 bGQgbm90IHJlYWQgZnJvbSBjb21tYW5kOiAlbVxuIikpOworCQkJCQlwY2xvc2UoZnApOwor CQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCXBjbG9zZShmcCk7CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJ CQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJDTUsgbG9va3VwIHNjaGVtZSBcIiVzXCIgbm90IHJl Y29nbml6ZWRcbiIpLCBzZXAgKyAxKTsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CisJCX0KKwl9 CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9y TWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgibm8gQ01LIGxvb2t1cCBmb3VuZCBm b3IgcmVhbG0gXCIlc1wiXG4iKSwgY21rLT5jbWtyZWFsbSk7CisJfQorCitmYWlsOgorCWZy ZWUoY21rbG9va3VwKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCitpbnQKK3BxU2F2ZUNvbHVt bkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50 IGNta2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4pCit7CisJUEdD TUsJICAgKmNtayA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqcGxhaW52YWwgPSBOVUxMOwor CWludAkJCXBsYWludmFsbGVuID0gMDsKKwlib29sCQlmb3VuZDsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWlmIChjb25uLT5jbWtzW2ldLmNt a2lkID09IGNta2lkKQorCQl7CisJCQljbWsgPSAmY29ubi0+Y21rc1tpXTsKKwkJCWJyZWFr OworCQl9CisJfQorCisJaWYgKCFjbWspCisJCXJldHVybiBFT0Y7CisKKwlwbGFpbnZhbCA9 IGRlY3J5cHRfY2VrKGNvbm4sIGNtaywgY21rYWxnLCBsZW4sIHZhbHVlLCAmcGxhaW52YWxs ZW4pOworCWlmICghcGxhaW52YWwpCisJCXJldHVybiBFT0Y7CisKKwlmb3VuZCA9IGZhbHNl OworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJCXN0cnVj dCBwZ19jZWsgKmNoZWNrY2VrID0gJmNvbm4tPmNla3NbaV07CisKKwkJLyogcmVwbGFjZSBl eGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY2VrLT5jZWtpZCA9PSBrZXlpZCkKKwkJeworCQkJ ZnJlZShjaGVja2Nlay0+Y2VrZGF0YSk7CisJCQljaGVja2Nlay0+Y2VrZGF0YSA9IHBsYWlu dmFsOworCQkJY2hlY2tjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsKKwkJCWZvdW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlp ZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5l d2Nla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2NlazsKKworCQluZXduY2VrcyA9IGNvbm4t Pm5jZWtzICsgMTsKKwkJaWYgKG5ld25jZWtzIDw9IDApCisJCXsKKwkJCWZyZWUocGxhaW52 YWwpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCQluZXdjZWtzID0gcmVhbGxvYyhjb25uLT5j ZWtzLCBuZXduY2VrcyAqIHNpemVvZihzdHJ1Y3QgcGdfY2VrKSk7CisJCWlmICghbmV3Y2Vr cykKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJ bmV3Y2VrID0gJm5ld2Nla3NbbmV3bmNla3MgLSAxXTsKKwkJbmV3Y2VrLT5jZWtpZCA9IGtl eWlkOworCQluZXdjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJbmV3Y2VrLT5jZWtkYXRh bGVuID0gcGxhaW52YWxsZW47CisKKwkJY29ubi0+bmNla3MgPSBuZXduY2VrczsKKwkJY29u bi0+Y2VrcyA9IG5ld2Nla3M7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBwcVJv d1Byb2Nlc3NvcgpAQCAtMTI1Myw2ICsxNjM0LDU1IEBAIHBxUm93UHJvY2Vzc29yKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQlib29sCQlpc2JpbmFyeSA9IChy ZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKIAkJCWNoYXIJICAgKnZhbDsKIAorCQkJ aWYgKHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQl7CisjaWZkZWYgVVNFX1NTTAorCQkJ CVBHQ0VLCSAgICpjZWsgPSBOVUxMOworCisJCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25u LT5uY2VrczsgaisrKQorCQkJCXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0g cmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNl a3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJ CQl7CisJCQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24g a2V5IG5vdCBmb3VuZCIpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCisJCQkJaWYgKGlz YmluYXJ5KQorCQkJCXsKKwkJCQkJdmFsID0gKGNoYXIgKikgZGVjcnlwdF92YWx1ZShyZXMs IGNlaywgcmVzLT5hdHREZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCQkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKikgY29sdW1uc1tpXS52YWx1ZSwgY2xlbiwgZXJybXNncCk7CisJCQkJ fQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKKwkJCQkJdW5z aWduZWQgY2hhciAqZW5jY29sdmFsOworCQkJCQlzaXplX3QJCWVuY2NvbHZhbGxlbjsKKwor CQkJCQlidWYgPSBtYWxsb2MoY2xlbiArIDEpOworCQkJCQltZW1jcHkoYnVmLCBjb2x1bW5z W2ldLnZhbHVlLCBjbGVuKTsKKwkJCQkJYnVmW2NsZW5dID0gJ1wwJzsKKwkJCQkJZW5jY29s dmFsID0gUFF1bmVzY2FwZUJ5dGVhKGJ1ZiwgJmVuY2NvbHZhbGxlbik7CisJCQkJCXZhbCA9 IChjaGFyICopIGRlY3J5cHRfdmFsdWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3NbaV0uY2Vr YWxnLAorCQkJCQkJCQkJCQkJIGVuY2NvbHZhbCwgZW5jY29sdmFsbGVuLCBlcnJtc2dwKTsK KwkJCQkJZnJlZShlbmNjb2x2YWwpOworCQkJCQlmcmVlKGJ1Zik7CisJCQkJfQorCisJCQkJ aWYgKHZhbCA9PSBOVUxMKQorCQkJCQlnb3RvIGZhaWw7CisjZWxzZQorCQkJCSplcnJtc2dw ID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0 aGlzIGJ1aWxkIik7CisJCQkJZ290byBmYWlsOworI2VuZGlmCisJCQl9CisJCQllbHNlCisJ CQl7CiAJCQl2YWwgPSAoY2hhciAqKSBwcVJlc3VsdEFsbG9jKHJlcywgY2xlbiArIDEsIGlz YmluYXJ5KTsKIAkJCWlmICh2YWwgPT0gTlVMTCkKIAkJCQlnb3RvIGZhaWw7CkBAIC0xMjYw LDYgKzE2OTAsNyBAQCBwcVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KiplcnJtc2dwKQogCQkJLyogY29weSBhbmQgemVyby10ZXJtaW5hdGUgdGhlIGRhdGEgKGV2 ZW4gaWYgaXQncyBiaW5hcnkpICovCiAJCQltZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVl LCBjbGVuKTsKIAkJCXZhbFtjbGVuXSA9ICdcMCc7CisJCQl9CiAKIAkJCXR1cFtpXS5sZW4g PSBjbGVuOwogCQkJdHVwW2ldLnZhbHVlID0gdmFsOwpAQCAtMTUzMSw3ICsxOTYyLDkgQEAg UFFzZW5kUXVlcnlQYXJhbXMoUEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMs CiAJCQkJCQkgICBwYXJhbUxlbmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJ CQkgICByZXN1bHRGb3JtYXQpOworCQkJCQkJICAgTlVMTCwKKwkJCQkJCSAgIHJlc3VsdEZv cm1hdCwKKwkJCQkJCSAgIE5VTEwpOwogfQogCiAvKgpAQCAtMTY0OSw2ICsyMDgyLDIwIEBA IFBRc2VuZFF1ZXJ5UHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJCQljb25zdCBpbnQgKnBh cmFtTGVuZ3RocywKIAkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCWludCBy ZXN1bHRGb3JtYXQpCit7CisJcmV0dXJuIFBRc2VuZFF1ZXJ5UHJlcGFyZWQyKGNvbm4sIHN0 bXROYW1lLCBuUGFyYW1zLCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1h dHMsIE5VTEwsIHJlc3VsdEZvcm1hdCwgTlVMTCk7Cit9CisKK2ludAorUFFzZW5kUXVlcnlQ cmVwYXJlZDIoUEdjb25uICpjb25uLAorCQkJCQkgY29uc3QgY2hhciAqc3RtdE5hbWUsCisJ CQkJCSBpbnQgblBhcmFtcywKKwkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVl cywKKwkJCQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkgY29uc3QgaW50ICpw YXJhbUZvcm1hdHMsCisJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0 aW9ucywKKwkJCQkJIGludCByZXN1bHRGb3JtYXQsCisJCQkJCSBQR3Jlc3VsdCAqcGFyYW1E ZXNjKQogewogCWlmICghUFFzZW5kUXVlcnlTdGFydChjb25uLCB0cnVlKSkKIAkJcmV0dXJu IDA7CkBAIC0xNjc2LDcgKzIxMjMsOSBAQCBQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAq Y29ubiwKIAkJCQkJCSAgIHBhcmFtVmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAog CQkJCQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJ CSAgIHBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJCQkJCSAgIHJlc3VsdEZvcm1h dCwKKwkJCQkJCSAgIHBhcmFtRGVzYyk7CiB9CiAKIC8qCkBAIC0xNzc3LDcgKzIyMjYsOSBA QCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCWNvbnN0IGNoYXIgKmNvbnN0 ICpwYXJhbVZhbHVlcywKIAkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQljb25z dCBpbnQgKnBhcmFtRm9ybWF0cywKLQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQorCQkJCWNvbnN0 IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCWludCByZXN1bHRGb3Jt YXQsCisJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpbnQJCQlpOwogCVBHY21kUXVl dWVFbnRyeSAqZW50cnk7CkBAIC0xODI0LDE0ICsyMjc1LDUzIEBAIFBRc2VuZFF1ZXJ5R3V0 cyhQR2Nvbm4gKmNvbm4sCiAJCXBxUHV0cyhzdG10TmFtZSwgY29ubikgPCAwKQogCQlnb3Rv IHNlbmRGYWlsZWQ7CiAKKwkvKiBDaGVjayBmb3JjZSBjb2x1bW4gZW5jcnlwdGlvbiAqLwor CWlmIChuUGFyYW1zID4gMCAmJiBwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMpCisJewor CQlmb3IgKGkgPSAwOyBpIDwgblBhcmFtczsgaSsrKQorCQl7CisJCQlpZiAocGFyYW1Gb3Jj ZUNvbHVtbkVuY3J5cHRpb25zW2ldKQorCQkJeworCQkJCWlmICghKHBhcmFtRGVzYyAmJgor CQkJCQkgIHBhcmFtRGVzYy0+cGFyYW1EZXNjcyAmJgorCQkJCQkgIHBhcmFtRGVzYy0+cGFy YW1EZXNjc1tpXS5jZWtpZCkpCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm Y29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJCSBsaWJwcV9nZXR0ZXh0KCJwYXJhbWV0 ZXIgd2l0aCBmb3JjZWQgZW5jcnlwdGlvbiBpcyBub3QgdG8gYmUgZW5jcnlwdGVkXG4iKSk7 CisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisKIAkvKiBT ZW5kIHBhcmFtZXRlciBmb3JtYXRzICovCi0JaWYgKG5QYXJhbXMgPiAwICYmIHBhcmFtRm9y bWF0cykKKwlpZiAoblBhcmFtcyA+IDAgJiYgKHBhcmFtRm9ybWF0cyB8fCAocGFyYW1EZXNj ICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjcykpKQogCXsKIAkJaWYgKHBxUHV0SW50KG5QYXJh bXMsIDIsIGNvbm4pIDwgMCkKIAkJCWdvdG8gc2VuZEZhaWxlZDsKKwogCQlmb3IgKGkgPSAw OyBpIDwgblBhcmFtczsgaSsrKQogCQl7Ci0JCQlpZiAocHFQdXRJbnQocGFyYW1Gb3JtYXRz W2ldLCAyLCBjb25uKSA8IDApCisJCQlpbnQJCQlmb3JtYXQgPSBwYXJhbUZvcm1hdHMgPyBw YXJhbUZvcm1hdHNbaV0gOiAwOworCisJCQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+ cGFyYW1EZXNjcykKKwkJCXsKKwkJCQlQR3Jlc1BhcmFtRGVzYyAqcGQgPSAmcGFyYW1EZXNj LT5wYXJhbURlc2NzW2ldOworCisJCQkJaWYgKHBkLT5jZWtpZCkKKwkJCQl7CisJCQkJCWlm IChmb3JtYXQgIT0gMCkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmNv bm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJCQkJIGxpYnBxX2dldHRleHQoImZvcm1hdCBt dXN0IGJlIHRleHQgZm9yIGVuY3J5cHRlZCBwYXJhbWV0ZXJcbiIpKTsKKwkJCQkJCWdvdG8g c2VuZEZhaWxlZDsKKwkJCQkJfQorCQkJCQlmb3JtYXQgPSAxOworCQkJCQlmb3JtYXQgfD0g MHgxMDsKKwkJCQl9CisJCQl9CisKKwkJCWlmIChwcVB1dEludChmb3JtYXQsIDIsIGNvbm4p IDwgMCkKIAkJCQlnb3RvIHNlbmRGYWlsZWQ7CiAJCX0KIAl9CkBAIC0xODUwLDYgKzIzNDAs NyBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQlpZiAocGFyYW1WYWx1ZXMg JiYgcGFyYW1WYWx1ZXNbaV0pCiAJCXsKIAkJCWludAkJCW5ieXRlczsKKwkJCWNvbnN0IGNo YXIgKnBhcmFtVmFsdWU7CiAKIAkJCWlmIChwYXJhbUZvcm1hdHMgJiYgcGFyYW1Gb3JtYXRz W2ldICE9IDApCiAJCQl7CkBAIC0xODY4LDkgKzIzNTksNTQgQEAgUFFzZW5kUXVlcnlHdXRz KFBHY29ubiAqY29ubiwKIAkJCQkvKiB0ZXh0IHBhcmFtZXRlciwgZG8gbm90IHVzZSBwYXJh bUxlbmd0aHMgKi8KIAkJCQluYnl0ZXMgPSBzdHJsZW4ocGFyYW1WYWx1ZXNbaV0pOwogCQkJ fQorCisJCQlwYXJhbVZhbHVlID0gcGFyYW1WYWx1ZXNbaV07CisKKwkJCWlmIChwYXJhbURl c2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tp XS5jZWtpZCkKKwkJCXsKKyNpZmRlZiBVU0VfU1NMCisJCQkJYm9vbAkJZW5jX2RldCA9IChw YXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uZmxhZ3MgJiAweDAxKSAhPSAwOworCQkJCVBHQ0VL CSAgICpjZWsgPSBOVUxMOworCQkJCWNoYXIJICAgKmVuY19wYXJhbVZhbHVlOworCQkJCWlu dAkJCWVuY19uYnl0ZXMgPSBuYnl0ZXM7CisKKwkJCQlmb3IgKGludCBqID0gMDsgaiA8IGNv bm4tPm5jZWtzOyBqKyspCisJCQkJeworCQkJCQlpZiAoY29ubi0+Y2Vrc1tqXS5jZWtpZCA9 PSBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpCisJCQkJCXsKKwkJCQkJCWNlayA9 ICZjb25uLT5jZWtzW2pdOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQkJaWYg KCFjZWspCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLAorCQkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg bm90IGZvdW5kXG4iKSk7CisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCQl9CisKKwkJCQll bmNfcGFyYW1WYWx1ZSA9IChjaGFyICopIGVuY3J5cHRfdmFsdWUoY29ubiwgY2VrLCBwYXJh bURlc2MtPnBhcmFtRGVzY3NbaV0uY2VrYWxnLAorCQkJCQkJCQkJCQkJCQkoY29uc3QgdW5z aWduZWQgY2hhciAqKSBwYXJhbVZhbHVlLCAmZW5jX25ieXRlcywgZW5jX2RldCk7CisJCQkJ aWYgKCFlbmNfcGFyYW1WYWx1ZSkKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCisJCQkJaWYg KHBxUHV0SW50KGVuY19uYnl0ZXMsIDQsIGNvbm4pIDwgMCB8fAorCQkJCQlwcVB1dG5jaGFy KGVuY19wYXJhbVZhbHVlLCBlbmNfbmJ5dGVzLCBjb25uKSA8IDApCisJCQkJCWdvdG8gc2Vu ZEZhaWxlZDsKKworCQkJCWZyZWUoZW5jX3BhcmFtVmFsdWUpOworI2Vsc2UKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkgIGxpYnBxX2dl dHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZFxu IikpOworCQkJCWdvdG8gc2VuZEZhaWxlZDsKKyNlbmRpZgorCQkJfQorCQkJZWxzZQorCQkJ ewogCQkJaWYgKHBxUHV0SW50KG5ieXRlcywgNCwgY29ubikgPCAwIHx8Ci0JCQkJcHFQdXRu Y2hhcihwYXJhbVZhbHVlc1tpXSwgbmJ5dGVzLCBjb25uKSA8IDApCisJCQkJcHFQdXRuY2hh cihwYXJhbVZhbHVlLCBuYnl0ZXMsIGNvbm4pIDwgMCkKIAkJCQlnb3RvIHNlbmRGYWlsZWQ7 CisJCQl9CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0yMzA4LDEyICsyODQ0LDI3IEBAIFBRZXhl Y1ByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCSAgIGNvbnN0IGludCAqcGFyYW1MZW5ndGhz LAogCQkJICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkgICBpbnQgcmVzdWx0Rm9y bWF0KQoreworCXJldHVybiBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgc3RtdE5hbWUsIG5QYXJh bXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsIHBhcmFtRm9ybWF0cywgTlVMTCwgcmVz dWx0Rm9ybWF0LCBOVUxMKTsKK30KKworUEdyZXN1bHQgKgorUFFleGVjUHJlcGFyZWQyKFBH Y29ubiAqY29ubiwKKwkJCQljb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQlpbnQgblBhcmFt cywKKwkJCQljb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJY29uc3QgaW50 ICpwYXJhbUxlbmd0aHMsCisJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJY29u c3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJaW50IHJlc3VsdEZv cm1hdCwKKwkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKQogewogCWlmICghUFFleGVjU3RhcnQo Y29ubikpCiAJCXJldHVybiBOVUxMOwotCWlmICghUFFzZW5kUXVlcnlQcmVwYXJlZChjb25u LCBzdG10TmFtZSwKLQkJCQkJCQkgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3Ro cywKLQkJCQkJCQkgcGFyYW1Gb3JtYXRzLCByZXN1bHRGb3JtYXQpKQorCWlmICghUFFzZW5k UXVlcnlQcmVwYXJlZDIoY29ubiwgc3RtdE5hbWUsCisJCQkJCQkJICBuUGFyYW1zLCBwYXJh bVZhbHVlcywgcGFyYW1MZW5ndGhzLAorCQkJCQkJCSAgcGFyYW1Gb3JtYXRzLCBwYXJhbUZv cmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJCQkJICByZXN1bHRGb3JtYXQsIHBhcmFtRGVz YykpCiAJCXJldHVybiBOVUxMOwogCXJldHVybiBQUWV4ZWNGaW5pc2goY29ubik7CiB9CkBA IC0zNjEyLDYgKzQxNjMsMTcgQEAgUFFmbW9kKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBm aWVsZF9udW0pCiAJCXJldHVybiAwOwogfQogCitpbnQKK1BRZmlzZW5jcnlwdGVkKGNvbnN0 IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pCit7CisJaWYgKCFjaGVja19maWVsZF9u dW1iZXIocmVzLCBmaWVsZF9udW0pKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKHJlcy0+YXR0 RGVzY3MpCisJCXJldHVybiAocmVzLT5hdHREZXNjc1tmaWVsZF9udW1dLmNla2lkICE9IDAp OworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiBjaGFyICoKIFBRY21kU3RhdHVzKFBH cmVzdWx0ICpyZXMpCiB7CkBAIC0zNzk3LDYgKzQzNTksMTcgQEAgUFFwYXJhbXR5cGUoY29u c3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKIAkJcmV0dXJuIEludmFsaWRPaWQ7 CiB9CiAKK2ludAorUFFwYXJhbWlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGlu dCBwYXJhbV9udW0pCit7CisJaWYgKCFjaGVja19wYXJhbV9udW1iZXIocmVzLCBwYXJhbV9u dW0pKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKHJlcy0+cGFyYW1EZXNjcykKKwkJcmV0dXJu IChyZXMtPnBhcmFtRGVzY3NbcGFyYW1fbnVtXS5jZWtpZCAhPSAwKTsKKwllbHNlCisJCXJl dHVybiBmYWxzZTsKK30KKwogCiAvKiBQUXNldG5vbmJsb2NraW5nOgogICoJc2V0cyB0aGUg UEdjb25uJ3MgZGF0YWJhc2UgY29ubmVjdGlvbiBub24tYmxvY2tpbmcgaWYgdGhlIGFyZyBp cyB0cnVlCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMu YyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCmluZGV4IGYwMDExMzdi NzY5Mi4uNDE4NDMzZWQ2OTU3IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMu YwpAQCAtNDMsNiArNDMsOCBAQCBzdGF0aWMgaW50CWdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nv bm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRQYXJhbURlc2NyaXB0 aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRBbm90 aGVyVHVwbGUoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBpbnQJZ2V0 UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubik7CitzdGF0aWMgaW50CWdldENvbHVtbk1h c3RlcktleShQR2Nvbm4gKmNvbm4pOworc3RhdGljIGludAlnZXRDb2x1bW5FbmNyeXB0aW9u S2V5KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdldE5vdGlmeShQR2Nvbm4gKmNvbm4p Owogc3RhdGljIGludAlnZXRDb3B5U3RhcnQoUEdjb25uICpjb25uLCBFeGVjU3RhdHVzVHlw ZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50CWdldFJlYWR5Rm9yUXVlcnkoUEdjb25uICpjb25u KTsKQEAgLTMwMSw2ICszMDMsMjIgQEAgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pCiAJ CQkJCWlmIChwcUdldEludCgmKGNvbm4tPmJlX2tleSksIDQsIGNvbm4pKQogCQkJCQkJcmV0 dXJuOwogCQkJCQlicmVhazsKKwkJCQljYXNlICd5JzoJCS8qIENvbHVtbiBNYXN0ZXIgS2V5 ICovCisJCQkJCWlmIChnZXRDb2x1bW5NYXN0ZXJLZXkoY29ubikpCisJCQkJCXsKKwkJCQkJ CS8vIFRPRE86IHJldmlldyBlcnJvciBoYW5kbGluZyBoZXJlCisJCQkJCQlwcVNhdmVFcnJv clJlc3VsdChjb25uKTsKKwkJCQkJCXBxSW50ZXJuYWxOb3RpY2UoJmNvbm4tPm5vdGljZUhv b2tzLCAiJXMiLCBjb25uLT5lcnJvck1lc3NhZ2UuZGF0YSk7CisJCQkJCX0KKwkJCQkJYnJl YWs7CisJCQkJY2FzZSAnWSc6CQkvKiBDb2x1bW4gRW5jcnlwdGlvbiBLZXkgKi8KKwkJCQkJ aWYgKGdldENvbHVtbkVuY3J5cHRpb25LZXkoY29ubikpCisJCQkJCXsKKwkJCQkJCS8vIFRP RE86IHJldmlldyBlcnJvciBoYW5kbGluZyBoZXJlCisJCQkJCQlwcVNhdmVFcnJvclJlc3Vs dChjb25uKTsKKwkJCQkJCXBxSW50ZXJuYWxOb3RpY2UoJmNvbm4tPm5vdGljZUhvb2tzLCAi JXMiLCBjb25uLT5lcnJvck1lc3NhZ2UuZGF0YSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7CiAJ CQkJY2FzZSAnVCc6CQkvKiBSb3cgRGVzY3JpcHRpb24gKi8KIAkJCQkJaWYgKGNvbm4tPmVy cm9yX3Jlc3VsdCB8fAogCQkJCQkJKGNvbm4tPnJlc3VsdCAhPSBOVUxMICYmCkBAIC01NTgs NiArNTc2LDggQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xl bmd0aCkKIAkJaW50CQkJdHlwbGVuOwogCQlpbnQJCQlhdHR0eXBtb2Q7CiAJCWludAkJCWZv cm1hdDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKIAogCQlpZiAocHFHZXRz KCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSB8fAogCQkJcHFHZXRJbnQoJnRhYmxlaWQsIDQs IGNvbm4pIHx8CkBAIC01NzIsNiArNTkyLDIxIEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nv bm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCQlnb3RvIGFkdmFuY2VfYW5kX2Vycm9yOwog CQl9CiAKKwkJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJ CWlmIChwcUdldEludCgmY2VraWQsIDQsIGNvbm4pIHx8CisJCQkJcHFHZXRJbnQoJmNla2Fs ZywgMiwgY29ubikpCisJCQl7CisJCQkJZXJybXNnID0gbGlicHFfZ2V0dGV4dCgiaW5zdWZm aWNpZW50IGRhdGEgaW4gXCJUXCIgbWVzc2FnZSIpOworCQkJCWdvdG8gYWR2YW5jZV9hbmRf ZXJyb3I7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQljZWtpZCA9IDA7CisJCQljZWth bGcgPSAwOworCQl9CisKIAkJLyoKIAkJICogU2luY2UgcHFHZXRJbnQgdHJlYXRzIDItYnl0 ZSBpbnRlZ2VycyBhcyB1bnNpZ25lZCwgd2UgbmVlZCB0bwogCQkgKiBjb2VyY2UgdGhlc2Ug cmVzdWx0cyB0byBzaWduZWQgZm9ybS4KQEAgLTU5Myw4ICs2MjgsMTAgQEAgZ2V0Um93RGVz Y3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJcmVzdWx0LT5hdHRE ZXNjc1tpXS50eXBpZCA9IHR5cGlkOwogCQlyZXN1bHQtPmF0dERlc2NzW2ldLnR5cGxlbiA9 IHR5cGxlbjsKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS5hdHR0eXBtb2QgPSBhdHR0eXBtb2Q7 CisJCXJlc3VsdC0+YXR0RGVzY3NbaV0uY2VraWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5hdHRE ZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7CiAKLQkJaWYgKGZvcm1hdCAhPSAxKQorCQlpZiAo KGZvcm1hdCAmIDB4MEYpICE9IDEpCiAJCQlyZXN1bHQtPmJpbmFyeSA9IDA7CiAJfQogCkBA IC02OTYsMTAgKzczMywzMSBAQCBnZXRQYXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4s IGludCBtc2dMZW5ndGgpCiAJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKIAl7CiAJ CWludAkJCXR5cGlkOworCQlpbnQJCQljZWtpZDsKKwkJaW50CQkJY2VrYWxnOworCQlpbnQJ CQlmbGFnczsKIAogCQlpZiAocHFHZXRJbnQoJnR5cGlkLCA0LCBjb25uKSkKIAkJCWdvdG8g bm90X2Vub3VnaF9kYXRhOworCQlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxl ZCkKKwkJeworCQkJaWYgKHBxR2V0SW50KCZjZWtpZCwgNCwgY29ubikpCisJCQkJZ290byBu b3RfZW5vdWdoX2RhdGE7CisJCQlpZiAocHFHZXRJbnQoJmNla2FsZywgMiwgY29ubikpCisJ CQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCQlpZiAocHFHZXRJbnQoJmZsYWdzLCAyLCBj b25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJfQorCQllbHNlCisJCXsKKwkJ CWNla2lkID0gMDsKKwkJCWNla2FsZyA9IDA7CisJCQlmbGFncyA9IDA7CisJCX0KIAkJcmVz dWx0LT5wYXJhbURlc2NzW2ldLnR5cGlkID0gdHlwaWQ7CisJCXJlc3VsdC0+cGFyYW1EZXNj c1tpXS5jZWtpZCA9IGNla2lkOworCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0uY2VrYWxnID0g Y2VrYWxnOworCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0uZmxhZ3MgPSBmbGFnczsKIAl9CiAK IAkvKiBTdWNjZXNzISAqLwpAQCAtMTM5Nyw2ICsxNDU1LDQwIEBAIHJlcG9ydEVycm9yUG9z aXRpb24oUFFFeHBCdWZmZXIgbXNnLCBjb25zdCBjaGFyICpxdWVyeSwgaW50IGxvYywgaW50 IGVuY29kaW5nKQogfQogCiAKK2ludAorcHFHZXROZWdvdGlhdGVQcm90b2NvbFZlcnNpb24z KFBHY29ubiAqY29ubikKK3sKKwlpbnQJCQl0aGVpcl92ZXJzaW9uOworCWludAkJCW51bTsK KwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCWlm IChwcUdldEludCgmdGhlaXJfdmVyc2lvbiwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVP RjsKKwlpZiAocHFHZXRJbnQoJm51bSwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsK Kwlmb3IgKGludCBpID0gMDsgaSA8IG51bTsgaSsrKQorCXsKKwkJaWYgKHBxR2V0cygmY29u bi0+d29ya0J1ZmZlciwgY29ubikpCisJCQlyZXR1cm4gRU9GOworCQlpZiAoYnVmLmxlbiA+ IDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlckNoYXIoJmJ1ZiwgJyAnKTsKKwkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwl9CisKKwlpZiAo dGhlaXJfdmVyc2lvbiAhPSBjb25uLT5wdmVyc2lvbikKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgicHJvdG9jb2wg dmVyc2lvbiBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlcjogY2xpZW50IHVzZXMgJWQuJWQsIHNl cnZlciBzdXBwb3J0cyAlZC4lZCIpLAorCQkJCQkJICBQR19QUk9UT0NPTF9NQUpPUihjb25u LT5wdmVyc2lvbiksIFBHX1BST1RPQ09MX01JTk9SKGNvbm4tPnB2ZXJzaW9uKSwKKwkJCQkJ CSAgUEdfUFJPVE9DT0xfTUFKT1IodGhlaXJfdmVyc2lvbiksIFBHX1BST1RPQ09MX01JTk9S KHRoZWlyX3ZlcnNpb24pKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoInByb3RvY29sIGV4dGVuc2lv biBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlcjogJXNcbiIpLCBidWYuZGF0YSk7CisKKwl0ZXJt UFFFeHBCdWZmZXIoJmJ1Zik7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBBdHRlbXB0IHRv IHJlYWQgYSBQYXJhbWV0ZXJTdGF0dXMgbWVzc2FnZS4KICAqIFRoaXMgaXMgcG9zc2libGUg aW4gc2V2ZXJhbCBwbGFjZXMsIHNvIHdlIGJyZWFrIGl0IG91dCBhcyBhIHN1YnJvdXRpbmUu CkBAIC0xNDI1LDYgKzE1MTcsODkgQEAgZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29u bikKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIEF0dGVtcHQgdG8gcmVhZCBhIENvbHVtbk1h c3RlcktleSBtZXNzYWdlLgorICogRW50cnk6ICd5JyBtZXNzYWdlIHR5cGUgYW5kIGxlbmd0 aCBoYXZlIGFscmVhZHkgYmVlbiBjb25zdW1lZC4KKyAqIEV4aXQ6IHJldHVybnMgMCBpZiBz dWNjZXNzZnVsbHkgY29uc3VtZWQgbWVzc2FnZS4KKyAqCQkgcmV0dXJucyBFT0YgaWYgbm90 IGVub3VnaCBkYXRhLgorICovCitzdGF0aWMgaW50CitnZXRDb2x1bW5NYXN0ZXJLZXkoUEdj b25uICpjb25uKQoreworCWludAkJCWtleWlkOworCWNoYXIJICAgKmtleW5hbWU7CisJY2hh cgkgICAqa2V5cmVhbG07CisJaW50CQkJcmV0OworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8K KwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOwor CS8qIEdldCB0aGUga2V5IG5hbWUgKi8KKwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVy LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCWtleW5hbWUgPSBzdHJkdXAoY29ubi0+ d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleW5hbWUpCisJCXJldHVybiBFT0Y7CisJLyog R2V0IHRoZSBrZXkgcmVhbG0gKi8KKwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBj b25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtID0gc3RyZHVwKGNvbm4tPndv cmtCdWZmZXIuZGF0YSk7CisJaWYgKCFrZXlyZWFsbSkKKwkJcmV0dXJuIEVPRjsKKwkvKiBB bmQgc2F2ZSBpdCAqLworCXJldCA9IHBxU2F2ZUNvbHVtbk1hc3RlcktleShjb25uLCBrZXlp ZCwga2V5bmFtZSwga2V5cmVhbG0pOworCisJZnJlZShrZXluYW1lKTsKKwlmcmVlKGtleXJl YWxtKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBBdHRlbXB0IHRvIHJlYWQgYSBD b2x1bW5FbmNyeXB0aW9uS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ1knIG1lc3NhZ2UgdHlw ZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDogcmV0 dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1cm5z IEVPRiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVtbkVu Y3J5cHRpb25LZXkoUEdjb25uICpjb25uKQoreworCWludAkJCWtleWlkOworCWludAkJCWNt a2lkOworCWludAkJCWNta2FsZzsKKwljaGFyCSAgICpidWY7CisJaW50CQkJdmFsbGVuOwor CisJLyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25u KSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUgQ01LIElEICovCisJaWYgKHBx R2V0SW50KCZjbWtpZCwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQg dGhlIENNSyBhbGdvcml0aG0gKi8KKwlpZiAocHFHZXRJbnQoJmNta2FsZywgMiwgY29ubikg IT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIGtleSBkYXRhIGxlbiAqLworCWlm IChwcUdldEludCgmdmFsbGVuLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8q IEdldCB0aGUga2V5IGRhdGEgKi8KKwlidWYgPSBtYWxsb2ModmFsbGVuKTsKKwlpZiAoIWJ1 ZikKKwkJcmV0dXJuIEVPRjsKKwlpZiAocHFHZXRuY2hhcihidWYsIHZhbGxlbiwgY29ubikg IT0gMCkKKwl7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJuIEVPRjsKKwl9CisJLyogQW5kIHNh dmUgaXQgKi8KKwlpZiAocHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShjb25uLCBrZXlpZCwg Y21raWQsIGNta2FsZywgKHVuc2lnbmVkIGNoYXIgKikgYnVmLCB2YWxsZW4pICE9IDApCisJ eworCQlmcmVlKGJ1Zik7CisJCXJldHVybiBFT0Y7CisJfQorCWZyZWUoYnVmKTsKKwlyZXR1 cm4gMDsKK30KIAogLyoKICAqIEF0dGVtcHQgdG8gcmVhZCBhIE5vdGlmeSByZXNwb25zZSBt ZXNzYWdlLgpAQCAtMjI1MCw2ICsyNDI1LDkgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29u c3QgUEdjb25uICpjb25uLCBjaGFyICpwYWNrZXQsCiAJaWYgKGNvbm4tPmNsaWVudF9lbmNv ZGluZ19pbml0aWFsICYmIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsWzBdKQogCQlB RERfU1RBUlRVUF9PUFRJT04oImNsaWVudF9lbmNvZGluZyIsIGNvbm4tPmNsaWVudF9lbmNv ZGluZ19pbml0aWFsKTsKIAorCWlmIChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk KQorCQlBRERfU1RBUlRVUF9PUFRJT04oIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iLCAiMSIp OworCiAJLyogQWRkIGFueSBlbnZpcm9ubWVudC1kcml2ZW4gR1VDIHNldHRpbmdzIG5lZWRl ZCAqLwogCWZvciAobmV4dF9lbyA9IG9wdGlvbnM7IG5leHRfZW8tPmVudk5hbWU7IG5leHRf ZW8rKykKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5j IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYwppbmRleCA1ZDY4Y2YyZWIzYjUu LjgzOTY4ODhhNWIxNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJh Y2UuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCkBAIC00NTAsNyAr NDUwLDggQEAgcHFUcmFjZU91dHB1dFMoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwg aW50ICpjdXJzb3IpCiAKIC8qIFBhcmFtZXRlckRlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9p ZAotcHFUcmFjZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpj dXJzb3IsIGJvb2wgcmVncmVzcykKK3BxVHJhY2VPdXRwdXR0KEZJTEUgKmYsIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MsCisJCQkgICBib29sIGNv bHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCiB7CiAJaW50CQkJbmZpZWxkczsKIApAQCAtNDU4 LDEyICs0NTksMjEgQEAgcHFUcmFjZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVz c2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAluZmllbGRzID0gcHFUcmFjZU91 dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8 IG5maWVsZHM7IGkrKykKKwl7CiAJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBj dXJzb3IsIHJlZ3Jlc3MpOworCQlpZiAoY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJ eworCQkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7 CisJCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwkJCXBxVHJh Y2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOworCQl9CisJfQogfQogCiAvKiBS b3dEZXNjcmlwdGlvbiAqLwogc3RhdGljIHZvaWQKLXBxVHJhY2VPdXRwdXRUKEZJTEUgKmYs IGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCitwcVRy YWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwg Ym9vbCByZWdyZXNzLAorCQkJICAgYm9vbCBjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQog ewogCWludAkJCW5maWVsZHM7CiAKQEAgLTQ3OSw2ICs0ODksMTEgQEAgcHFUcmFjZU91dHB1 dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVn cmVzcykKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBx VHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFj ZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCWlmIChjb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwg Y3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBj dXJzb3IpOworCQl9CiAJfQogfQogCkBAIC01MTQsNiArNTI5LDMwIEBAIHBxVHJhY2VPdXRw dXRXKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBpbnQgbGVu Z3RoKQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIH0KIAor LyogQ29sdW1uTWFzdGVyS2V5ICovCitzdGF0aWMgdm9pZAorcHFUcmFjZU91dHB1dHkoRklM RSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykK K3sKKwlmcHJpbnRmKGYsICJDb2x1bW5NYXN0ZXJLZXlcdCIpOworCXBxVHJhY2VPdXRwdXRJ bnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRTdHJp bmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1dFN0cmluZyhm LCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKK30KKworLyogQ29sdW1uRW5jcnlwdGlvbktl eSAqLworc3RhdGljIHZvaWQKK3BxVHJhY2VPdXRwdXRZKEZJTEUgKmYsIGNvbnN0IGNoYXIg Km1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCit7CisJaW50CQkJbGVuOwor CisJZnByaW50ZihmLCAiQ29sdW1uRW5jcnlwdGlvbktleVx0Iik7CisJcHFUcmFjZU91dHB1 dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFjZU91dHB1dElu dDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFjZU91dHB1dEludDE2 KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJbGVuID0gcHFUcmFjZU91dHB1dEludDMyKGYsIG1l c3NhZ2UsIGN1cnNvciwgZmFsc2UpOworCXBxVHJhY2VPdXRwdXROY2hhcihmLCBsZW4sIG1l c3NhZ2UsIGN1cnNvcik7Cit9CisKIC8qIFJlYWR5Rm9yUXVlcnkgKi8KIHN0YXRpYyB2b2lk CiBwcVRyYWNlT3V0cHV0WihGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1 cnNvcikKQEAgLTY0NywxMCArNjg2LDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJCQlmcHJp bnRmKGNvbm4tPlBmZGVidWcsICJTeW5jIik7IC8qIG5vIG1lc3NhZ2UgY29udGVudCAqLwog CQkJYnJlYWs7CiAJCWNhc2UgJ3QnOgkJCQkvKiBQYXJhbWV0ZXIgRGVzY3JpcHRpb24gKi8K LQkJCXBxVHJhY2VPdXRwdXR0KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3Is IHJlZ3Jlc3MpOworCQkJcHFUcmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwg JmxvZ0N1cnNvciwgcmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9u X2VuYWJsZWQpOwogCQkJYnJlYWs7CiAJCWNhc2UgJ1QnOgkJCQkvKiBSb3cgRGVzY3JpcHRp b24gKi8KLQkJCXBxVHJhY2VPdXRwdXRUKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dD dXJzb3IsIHJlZ3Jlc3MpOworCQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVz c2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNy eXB0aW9uX2VuYWJsZWQpOwogCQkJYnJlYWs7CiAJCWNhc2UgJ3YnOgkJCQkvKiBOZWdvdGlh dGUgUHJvdG9jb2wgVmVyc2lvbiAqLwogCQkJcHFUcmFjZU91dHB1dHYoY29ubi0+UGZkZWJ1 ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CkBAIC02NjUsNiArNzA2LDEyIEBAIHBxVHJhY2VP dXRwdXRNZXNzYWdlKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0 b1NlcnZlcikKIAkJCWZwcmludGYoY29ubi0+UGZkZWJ1ZywgIlRlcm1pbmF0ZSIpOwogCQkJ LyogTm8gbWVzc2FnZSBjb250ZW50ICovCiAJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQlw cVRyYWNlT3V0cHV0eShjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdy ZXNzKTsKKwkJCWJyZWFrOworCQljYXNlICdZJzoKKwkJCXBxVHJhY2VPdXRwdXRZKGNvbm4t PlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOworCQkJYnJlYWs7CiAJ CWNhc2UgJ1onOgkJCQkvKiBSZWFkeSBGb3IgUXVlcnkgKi8KIAkJCXBxVHJhY2VPdXRwdXRa KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwogCQkJYnJlYWs7CmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvbGlicHEtZmUuaAppbmRleCBiN2RmMzIyNGMwZjcuLjAyMzQ3MjQzOTZkMyAx MDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAorKysgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBAIC0yNjcsNiArMjY3LDggQEAgdHlwZWRl ZiBzdHJ1Y3QgcGdyZXNBdHREZXNjCiAJT2lkCQkJdHlwaWQ7CQkJLyogdHlwZSBpZCAqLwog CWludAkJCXR5cGxlbjsJCQkvKiB0eXBlIHNpemUgKi8KIAlpbnQJCQlhdHR0eXBtb2Q7CQkv KiB0eXBlLXNwZWNpZmljIG1vZGlmaWVyIGluZm8gKi8KKwlPaWQJCQljZWtpZDsKKwlpbnQJ CQljZWthbGc7CiB9IFBHcmVzQXR0RGVzYzsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAt NDM4LDYgKzQ0MCwxNSBAQCBleHRlcm4gUEdyZXN1bHQgKlBRZXhlY1ByZXBhcmVkKFBHY29u biAqY29ubiwKIAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJCWNv bnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KTsKK2V4 dGVybiBQR3Jlc3VsdCAqUFFleGVjUHJlcGFyZWQyKFBHY29ubiAqY29ubiwKKwkJCQkJCQkJ IGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCQkJ CSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJCSBjb25zdCBpbnQg KnBhcmFtTGVuZ3RocywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJ CQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJCQkJ CSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiAK IC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9yIGFzeW5jaHJvbm91cyBxdWVy aWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9MSU1JVCA2NTUzNQpAQCAtNDYx LDYgKzQ3MiwxNSBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJlcGFyZWQoUEdjb25uICpj b25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQkJCQkJY29uc3Qg aW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRGb3JtYXQpOworZXh0ZXJu IGludAlQUXNlbmRRdWVyeVByZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJCQkJCSBjb25z dCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkJCQkgY29u c3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJh bUxlbmd0aHMsCisJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCQkJ IGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJCQkgaW50 IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJIFBHcmVzdWx0ICpwYXJhbURlc2MpOwogZXh0ZXJu IGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25uICpjb25uKTsKIGV4dGVybiBQR3Jlc3Vs dCAqUFFnZXRSZXN1bHQoUEdjb25uICpjb25uKTsKIApAQCAtNTMxLDYgKzU1MSw3IEBAIGV4 dGVybiBpbnQJUFFmZm9ybWF0KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0p OwogZXh0ZXJuIE9pZAlQUWZ0eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9u dW0pOwogZXh0ZXJuIGludAlQUWZzaXplKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVs ZF9udW0pOwogZXh0ZXJuIGludAlQUWZtb2QoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZp ZWxkX251bSk7CitleHRlcm4gaW50CVBRZmlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpy ZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGNoYXIgKlBRY21kU3RhdHVzKFBHcmVzdWx0 ICpyZXMpOwogZXh0ZXJuIGNoYXIgKlBRb2lkU3RhdHVzKGNvbnN0IFBHcmVzdWx0ICpyZXMp OwkvKiBvbGQgYW5kIHVnbHkgKi8KIGV4dGVybiBPaWQJUFFvaWRWYWx1ZShjb25zdCBQR3Jl c3VsdCAqcmVzKTsJLyogbmV3IGFuZCBpbXByb3ZlZCAqLwpAQCAtNTQwLDYgKzU2MSw3IEBA IGV4dGVybiBpbnQJUFFnZXRsZW5ndGgoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHR1cF9u dW0sIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWdldGlzbnVsbChjb25zdCBQR3Jl c3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxkX251bSk7CiBleHRlcm4gaW50CVBR bnBhcmFtcyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsKIGV4dGVybiBPaWQJUFFwYXJhbXR5cGUo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSk7CitleHRlcm4gaW50CVBRcGFy YW1pc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKTsKIAog LyogRGVzY3JpYmUgcHJlcGFyZWQgc3RhdGVtZW50cyBhbmQgcG9ydGFscyAqLwogZXh0ZXJu IFBHcmVzdWx0ICpQUWRlc2NyaWJlUHJlcGFyZWQoUEdjb25uICpjb25uLCBjb25zdCBjaGFy ICpzdG10KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5o IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKaW5kZXggYzc1ZWQ2M2EyYzYy Li4wOTMwN2RhYjExYzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBx LWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCkBAIC0xMTIs NiArMTEyLDkgQEAgdW5pb24gcGdyZXN1bHRfZGF0YQogdHlwZWRlZiBzdHJ1Y3QgcGdyZXNQ YXJhbURlc2MKIHsKIAlPaWQJCQl0eXBpZDsJCQkvKiB0eXBlIGlkICovCisJT2lkCQkJY2Vr aWQ7CisJaW50CQkJY2VrYWxnOworCWludAkJCWZsYWdzOwogfSBQR3Jlc1BhcmFtRGVzYzsK IAogLyoKQEAgLTM0Myw2ICszNDYsMjYgQEAgdHlwZWRlZiBzdHJ1Y3QgcGdfY29ubl9ob3N0 CiAJCQkJCQkJCSAqIGZvdW5kIGluIHBhc3N3b3JkIGZpbGUuICovCiB9IHBnX2Nvbm5faG9z dDsKIAorLyoKKyAqIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnQgZGF0YQorICovCisKKy8q IGNvbHVtbiBtYXN0ZXIga2V5ICovCit0eXBlZGVmIHN0cnVjdCBwZ19jbWsKK3sKKwlPaWQJ CQljbWtpZDsKKwljaGFyCSAgICpjbWtuYW1lOworCWNoYXIJICAgKmNta3JlYWxtOworfSBQ R0NNSzsKKworLyogY29sdW1uIGVuY3J5cHRpb24ga2V5ICovCit0eXBlZGVmIHN0cnVjdCBw Z19jZWsKK3sKKwlPaWQJCQljZWtpZDsKKwl1bnNpZ25lZCBjaGFyICpjZWtkYXRhOwkJLyog KGRlY3J5cHRlZCkgKi8KKwlzaXplX3QJCWNla2RhdGFsZW47Cit9IFBHQ0VLOworCiAvKgog ICogUEdjb25uIHN0b3JlcyBhbGwgdGhlIHN0YXRlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEg c2luZ2xlIGNvbm5lY3Rpb24KICAqIHRvIGEgYmFja2VuZC4KQEAgLTM5Niw2ICs0MTksOCBA QCBzdHJ1Y3QgcGdfY29ubgogCWNoYXIJICAgKnNzbF9taW5fcHJvdG9jb2xfdmVyc2lvbjsJ LyogbWluaW11bSBUTFMgcHJvdG9jb2wgdmVyc2lvbiAqLwogCWNoYXIJICAgKnNzbF9tYXhf cHJvdG9jb2xfdmVyc2lvbjsJLyogbWF4aW11bSBUTFMgcHJvdG9jb2wgdmVyc2lvbiAqLwog CWNoYXIJICAgKnRhcmdldF9zZXNzaW9uX2F0dHJzOwkvKiBkZXNpcmVkIHNlc3Npb24gcHJv cGVydGllcyAqLworCWNoYXIJICAgKmNta2xvb2t1cDsJCS8qIENNSyBsb29rdXAgc3BlY2lm aWNhdGlvbiAqLworCWNoYXIJICAgKmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmc7CS8qIGNv bHVtbl9lbmNyeXB0aW9uIGNvbm5lY3Rpb24gcGFyYW1ldGVyICgwIG9yIDEpICovCiAKIAkv KiBPcHRpb25hbCBmaWxlIHRvIHdyaXRlIHRyYWNlIGluZm8gdG8gKi8KIAlGSUxFCSAgICpQ ZmRlYnVnOwpAQCAtNDc3LDYgKzUwMiwxMyBAQCBzdHJ1Y3QgcGdfY29ubgogCVBHVmVyYm9z aXR5IHZlcmJvc2l0eTsJCS8qIGVycm9yL25vdGljZSBtZXNzYWdlIHZlcmJvc2l0eSAqLwog CVBHQ29udGV4dFZpc2liaWxpdHkgc2hvd19jb250ZXh0OwkvKiB3aGV0aGVyIHRvIHNob3cg Q09OVEVYVCBmaWVsZCAqLwogCVBHbG9iamZ1bmNzICpsb2JqZnVuY3M7CQkvKiBwcml2YXRl IHN0YXRlIGZvciBsYXJnZS1vYmplY3QgYWNjZXNzIGZucyAqLworCWJvb2wJCWNvbHVtbl9l bmNyeXB0aW9uX2VuYWJsZWQ7CS8qIHBhcnNlZCB2ZXJzaW9uIG9mIGNvbHVtbl9lbmNyeXB0 aW9uX3NldHRpbmcgKi8KKworCS8qIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnQgZGF0YSAq LworCWludAkJCW5jbWtzOworCVBHQ01LCSAgICpjbWtzOworCWludAkJCW5jZWtzOworCVBH Q0VLCSAgICpjZWtzOwogCiAJLyogQnVmZmVyIGZvciBkYXRhIHJlY2VpdmVkIGZyb20gYmFj a2VuZCBhbmQgbm90IHlldCBwcm9jZXNzZWQgKi8KIAljaGFyCSAgICppbkJ1ZmZlcjsJCS8q IGN1cnJlbnRseSBhbGxvY2F0ZWQgYnVmZmVyICovCkBAIC02NzMsNiArNzA1LDEwIEBAIGV4 dGVybiB2b2lkIHBxU2F2ZU1lc3NhZ2VGaWVsZChQR3Jlc3VsdCAqcmVzLCBjaGFyIGNvZGUs CiAJCQkJCQkJICAgY29uc3QgY2hhciAqdmFsdWUpOwogZXh0ZXJuIHZvaWQgcHFTYXZlUGFy YW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJCQkJ ICBjb25zdCBjaGFyICp2YWx1ZSk7CitleHRlcm4gaW50CXBxU2F2ZUNvbHVtbk1hc3Rlcktl eShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgY29uc3QgY2hhciAqa2V5bmFtZSwKKwkJCQkJ CQkJICBjb25zdCBjaGFyICprZXlyZWFsbSk7CitleHRlcm4gaW50CXBxU2F2ZUNvbHVtbkVu Y3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50IGNt a2FsZywKKwkJCQkJCQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4p OwogZXh0ZXJuIGludAlwcVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KiplcnJtc2dwKTsKIGV4dGVybiB2b2lkIHBxQ29tbWFuZFF1ZXVlQWR2YW5jZShQR2Nvbm4g KmNvbm4pOwogZXh0ZXJuIGludAlQUXNlbmRRdWVyeUNvbnRpbnVlKFBHY29ubiAqY29ubiwg Y29uc3QgY2hhciAqcXVlcnkpOwpAQCAtNjg1LDYgKzcyMSw3IEBAIGV4dGVybiB2b2lkIHBx UGFyc2VJbnB1dDMoUEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJcHFHZXRFcnJvck5vdGlj ZTMoUEdjb25uICpjb25uLCBib29sIGlzRXJyb3IpOwogZXh0ZXJuIHZvaWQgcHFCdWlsZEVy cm9yTWVzc2FnZTMoUFFFeHBCdWZmZXIgbXNnLCBjb25zdCBQR3Jlc3VsdCAqcmVzLAogCQkJ CQkJCQkgUEdWZXJib3NpdHkgdmVyYm9zaXR5LCBQR0NvbnRleHRWaXNpYmlsaXR5IHNob3df Y29udGV4dCk7CitleHRlcm4gaW50CXBxR2V0TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9uMyhQ R2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlwcUdldENvcHlEYXRhMyhQR2Nvbm4gKmNvbm4s IGNoYXIgKipidWZmZXIsIGludCBhc3luYyk7CiBleHRlcm4gaW50CXBxR2V0bGluZTMoUEdj b25uICpjb25uLCBjaGFyICpzLCBpbnQgbWF4bGVuKTsKIGV4dGVybiBpbnQJcHFHZXRsaW5l QXN5bmMzKFBHY29ubiAqY29ubiwgY2hhciAqYnVmZmVyLCBpbnQgYnVmc2l6ZSk7CmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL21lc29uLmJ1aWxkCmluZGV4IGJjMDQ3ZTAwZDYyMC4uYWI2OWU5ODJlMjYy IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZAorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZApAQCAtMjMsNiArMjMsNyBAQCBlbmRp ZgogCiBpZiBzc2wuZm91bmQoKQogICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1zZWN1 cmUtY29tbW9uLmMnKQorICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1lbmNyeXB0LW9w ZW5zc2wuYycpCiAgIGxpYnBxX3NvdXJjZXMgKz0gZmlsZXMoJ2ZlLXNlY3VyZS1vcGVuc3Ns LmMnKQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1r IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCmluZGV4IDkyNTZiNDI2YzFkNC4uYzQ1 ZmU4NmQxZDI0IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCkBAIC0xLDUgKzEsNSBAQAogIyBzcmMv aW50ZXJmYWNlcy9saWJwcS9ubHMubWsKIENBVEFMT0dfTkFNRSAgICAgPSBsaWJwcQotR0VU VEVYVF9GSUxFUyAgICA9IGZlLWF1dGguYyBmZS1hdXRoLXNjcmFtLmMgZmUtY29ubmVjdC5j IGZlLWV4ZWMuYyBmZS1nc3NhcGktY29tbW9uLmMgZmUtbG9iai5jIGZlLW1pc2MuYyBmZS1w cm90b2NvbDMuYyBmZS1zZWN1cmUuYyBmZS1zZWN1cmUtY29tbW9uLmMgZmUtc2VjdXJlLWdz c2FwaS5jIGZlLXNlY3VyZS1vcGVuc3NsLmMgd2luMzIuYyAuLi8uLi9wb3J0L3RocmVhZC5j CitHRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBmZS1jb25u ZWN0LmMgZmUtZW5jcnlwdC1vcGVuc3NsLmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24u YyBmZS1sb2JqLmMgZmUtbWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNl Y3VyZS1jb21tb24uYyBmZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3 aW4zMi5jIC4uLy4uL3BvcnQvdGhyZWFkLmMKIEdFVFRFWFRfVFJJR0dFUlMgPSBsaWJwcV9n ZXR0ZXh0IHBxSW50ZXJuYWxOb3RpY2U6MgogR0VUVEVYVF9GTEFHUyAgICA9IGxpYnBxX2dl dHRleHQ6MTpwYXNzLWMtZm9ybWF0IHBxSW50ZXJuYWxOb3RpY2U6MjpjLWZvcm1hdApkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlCmluZGV4IDZiYTc4YWRiNjc4Ni4uMTg0 NjU5NGVjNTE2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRp Z25vcmUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlCkBAIC0x LDIgKzEsMyBAQAorL2xpYnBxX3Rlc3RfZW5jcnlwdAogL2xpYnBxX3Rlc3RjbGllbnQKIC9s aWJwcV91cmlfcmVncmVzcwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVz dC9NYWtlZmlsZSBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUKaW5kZXgg NzVhYzA4Zjk0M2Q5Li5iMWViYWI5MGQ0ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL3Rlc3QvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9N YWtlZmlsZQpAQCAtMTUsMTAgKzE1LDE3IEBAIG92ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChs aWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCiBMREZMQUdTX0lOVEVSTkFMICs9ICQobGlicHFf cGdwb3J0KQogCiBQUk9HUyA9IGxpYnBxX3Rlc3RjbGllbnQgbGlicHFfdXJpX3JlZ3Jlc3MK K2lmZXEgKCQod2l0aF9zc2wpLG9wZW5zc2wpCitQUk9HUyArPSBsaWJwcV90ZXN0X2VuY3J5 cHQKK2VuZGlmCisKIAogYWxsOiAkKFBST0dTKQogCiAkKFBST0dTKTogJChXSU4zMlJFUykK IAorbGlicHFfdGVzdF9lbmNyeXB0OiAuLi9mZS1lbmNyeXB0LW9wZW5zc2wuYworCSQoQ0Mp ICQoQ1BQRkxBR1MpIC1EVEVTVF9FTkNSWVBUICQoQ0ZMQUdTKSAkXiAkKExERkxBR1MpICQo TERGTEFHU19FWCkgJChMSUJTKSAtbyAkQCQoWCkKKwogY2xlYW4gZGlzdGNsZWFuIG1haW50 YWluZXItY2xlYW46CiAJcm0gLWYgJChQUk9HUykgKi5vCmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC9tZXNvbi5idWlsZAppbmRleCAxNmY5NGMxZWQ4YjEuLjQ5MWNjZjMwZmY5YSAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9tZXNvbi5idWlsZAorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkCkBAIC0xMywzICsxMyw1IEBA IGV4ZWN1dGFibGUoJ2xpYnBxX3Rlc3RjbGllbnQnLAogICAgICdpbnN0YWxsJzogZmFsc2Us CiAgIH0KICkKKworIyBUT0RPOiBsaWJwcV90ZXN0X2VuY3J5cHQKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L01ha2VmaWxlIGIvc3JjL3Rlc3QvTWFrZWZpbGUKaW5kZXggZGJkMzE5Mjg3NGQz Li5jOGJhMTcwNTAzMGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L01ha2VmaWxlCisrKyBiL3Ny Yy90ZXN0L01ha2VmaWxlCkBAIC0yNCw3ICsyNCw3IEBAIGlmZXEgKCQod2l0aF9sZGFwKSx5 ZXMpCiBTVUJESVJTICs9IGxkYXAKIGVuZGlmCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3Ns KQotU1VCRElSUyArPSBzc2wKK1NVQkRJUlMgKz0gY29sdW1uX2VuY3J5cHRpb24gc3NsCiBl bmRpZgogCiAjIFRlc3Qgc3VpdGVzIHRoYXQgYXJlIG5vdCBzYWZlIGJ5IGRlZmF1bHQgYnV0 IGNhbiBiZSBydW4gaWYgc2VsZWN0ZWQKQEAgLTM2LDcgKzM2LDcgQEAgZXhwb3J0IFBHX1RF U1RfRVhUUkEKICMgY2xlYW4iIGV0YyB0byByZWN1cnNlIGludG8gdGhlbS4gIChXZSBtdXN0 IGZpbHRlciBvdXQgdGhvc2UgdGhhdCB3ZQogIyBoYXZlIGNvbmRpdGlvbmFsbHkgaW5jbHVk ZWQgaW50byBTVUJESVJTIGFib3ZlLCBlbHNlIHRoZXJlIHdpbGwgYmUKICMgbWFrZSBjb25m dXNpb24uKQotQUxXQVlTX1NVQkRJUlMgPSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFt cGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBzc2wpCitBTFdBWVNfU1VCRElSUyA9ICQoZmlsdGVy LW91dCAkKFNVQkRJUlMpLGV4YW1wbGVzIGtlcmJlcm9zIGljdSBsZGFwIHNzbCBjb2x1bW5f ZW5jcnlwdGlvbikKIAogIyBXZSB3YW50IHRvIHJlY3Vyc2UgdG8gYWxsIHN1YmRpcnMgZm9y IGFsbCBzdGFuZGFyZCB0YXJnZXRzLCBleGNlcHQgdGhhdAogIyBpbnN0YWxsY2hlY2sgYW5k IGluc3RhbGwgc2hvdWxkIG5vdCByZWN1cnNlIGludG8gdGhlIHN1YmRpcmVjdG9yeSAibW9k dWxlcyIuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdu b3JlIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1NmRiZjY5ZDJhNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUKQEAgLTAs MCArMSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2VuZXJhdGVkIGJ5IHRlc3Qgc3VpdGUKKy90 bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtl ZmlsZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2FjYTg0YjE3YTAwCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKQEAgLTAsMCAr MSwyOSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKyMgTWFrZWZpbGUgZm9yIHNyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uCisjCisjIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorIyBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorIworIyBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQorIwor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3ViZGlyID0gc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24KK3RvcF9idWlsZGRpciA9IC4uLy4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxkZGly KS9zcmMvTWFrZWZpbGUuZ2xvYmFsCisKK292ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChsaWJw cV9zcmNkaXIpICQoQ1BQRkxBR1MpCitMREZMQUdTX0lOVEVSTkFMICs9IC1MJCh0b3BfYnVp bGRkaXIpL3NyYy9mZV91dGlscyAtbHBnZmV1dGlscyAkKGxpYnBxX3BncG9ydCkKKworYWxs OiB0ZXN0X2NsaWVudAorCitjaGVjazogYWxsCisJJChwcm92ZV9jaGVjaykKKworaW5zdGFs bGNoZWNrOgorCSQocHJvdmVfaW5zdGFsbGNoZWNrKQorCitjbGVhbiBkaXN0Y2xlYW4gbWFp bnRhaW5lci1jbGVhbjoKKwlybSAtZiB0ZXN0X2NsaWVudC5vIHRlc3RfY2xpZW50CisJcm0g LXJmIHRtcF9jaGVjawpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24v bWVzb24uYnVpbGQgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEwNTI1ZGEzNjYxNQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1 aWxkCkBAIC0wLDAgKzEsMjAgQEAKK2NvbHVtbl9lbmNyeXB0aW9uX3Rlc3RfY2xpZW50ID0g ZXhlY3V0YWJsZSgndGVzdF9jbGllbnQnLAorICBmaWxlcygndGVzdF9jbGllbnQuYycpLAor ICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsaWJwcV0sCisgIGt3YXJnczogZGVm YXVsdF9iaW5fYXJncyArIHsKKyAgICAnaW5zdGFsbCc6IGZhbHNlLAorICB9LAorKQordGVz dHByZXBfdGFyZ2V0cyArPSBjb2x1bW5fZW5jcnlwdGlvbl90ZXN0X2NsaWVudAorCit0ZXN0 cyArPSB7CisgICduYW1lJzogJ2NvbHVtbl9lbmNyeXB0aW9uJywKKyAgJ3NkJzogbWVzb24u Y3VycmVudF9zb3VyY2VfZGlyKCksCisgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRfZGly KCksCisgICd0YXAnOiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3QvMDAxX2NvbHVtbl9l bmNyeXB0aW9uLnBsJywKKyAgICAgICd0LzAwMl9jbWtfcm90YXRpb24ucGwnLAorICAgIF0s CisgIH0sCit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAw MV9jb2x1bW5fZW5jcnlwdGlvbi5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Qv MDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNGEyMzQxNGVlMGE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv Y29sdW1uX2VuY3J5cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKQEAgLTAsMCAr MSwxODMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czsKK3VzZSBUZXN0OjpNb3JlOworCitteSAkbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNs dXN0ZXItPm5ldygnbm9kZScpOworJG5vZGUtPmluaXQ7Ciskbm9kZS0+c3RhcnQ7CisKKwor c3ViIGNyZWF0ZV9jbWsKK3sKKwlteSAoJGNta25hbWUpID0gQF87CisJbXkgJGNta2ZpbGVu YW1lID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjbWtuYW1l fS5wZW0iOworCXN5c3RlbV9vcl9iYWlsICdvcGVuc3NsJywgJ2dlbnBrZXknLCAnLWFsZ29y aXRobScsICdyc2EnLCAnLW91dCcsICRjbWtmaWxlbmFtZTsKKwkkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAke2Nta25hbWV9IFdJ VEggKHJlYWxtID0gJycpfSk7CisJcmV0dXJuICRjbWtmaWxlbmFtZTsKK30KKworc3ViIGNy ZWF0ZV9jZWsKK3sKKwlteSAoJGNla25hbWUsICRieXRlcywgJGNta25hbWUsICRjbWtmaWxl bmFtZSkgPSBAXzsKKworCSMgZ2VuZXJhdGUgcmFuZG9tIGJ5dGVzCisJc3lzdGVtX29yX2Jh aWwgJ29wZW5zc2wnLCAncmFuZCcsICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLCAkYnl0ZXM7CisKKwkjIGVuY3J5cHQg Q0VLIHVzaW5nIENNSworCXN5c3RlbV9vcl9iYWlsICdvcGVuc3NsJywgJ3BrZXl1dGwnLCAn LWVuY3J5cHQnLAorCSAgJy1pbmtleScsICRjbWtmaWxlbmFtZSwKKwkgICctcGtleW9wdCcs ICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAorCSAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRl c3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwKKwkgICctb3V0JywgIiR7 UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5j IjsKKworCW15ICRjZWtlbmNoZXggPSB1bnBhY2soJ0gqJywgc2x1cnBfZmlsZSAiJHtQb3N0 Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiKTsK KworCSMgY3JlYXRlIENFSyBpbiBkYXRhYmFzZQorCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25hbWV9IFdJVEgg VkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9ICR7Y21rbmFtZX0sIGVuY3J5cHRlZF92YWx1 ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKworCXJldHVybjsKK30KKworCitteSAkY21r MWZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMScpOworbXkgJGNtazJmaWxlbmFtZSA9IGNy ZWF0ZV9jbWsoJ2NtazInKTsKK2NyZWF0ZV9jZWsoJ2NlazEnLCAzMiwgJ2NtazEnLCAkY21r MWZpbGVuYW1lKTsKK2NyZWF0ZV9jZWsoJ2NlazInLCA0OCwgJ2NtazInLCAkY21rMmZpbGVu YW1lKTsKKworJEVOVnsnUEdDT0xVTU5FTkNSWVBUSU9OJ30gPSAnMSc7CiskRU5WeydQR0NN S0xPT0tVUCd9ID0gJyo9ZmlsZTonIC4gJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1w X2NoZWNrfSAuICcvJWsucGVtJzsKKworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxeworQ1JFQVRFIFRBQkxFIHRibDEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSksCisgICAgYyBzbWFs bGludCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7 Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJM RSB0YmwyICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGVuY3J5 cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMsIGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNl azEpCispOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVB VEUgVEFCTEUgdGJsMyAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHRleHQgRU5DUllQVEVE IFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazIsIGFsZ29yaXRobSA9ICdBRUFE X0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCcpCispOworfSk7CisKKyRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAo MSwgJDEsICQyKSBcZ2VuY3IgJ3ZhbDEnIDExCitJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBj KSBWQUxVRVMgKDIsICQxLCAkMikgXGdlbmNyICd2YWwyJyAyMgorfSk7CisKKyMgRXhwZWN0 ZWQgY2lwaGVydGV4dCBsZW5ndGggaXMgMiBibG9ja3Mgb2YgQUVTIG91dHB1dCAoMiAqIDE2 KSBwbHVzCisjIGhhbGYgU0hBLTI1NiBvdXRwdXQgKDE2KSBpbiBoZXggZW5jb2Rpbmc6ICgy ICogMTYgKyAxNikgKiAyID0gOTYKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxe0NPUFkgKFNFTEVDVCAqIEZST00gdGJsMSkgVE8gU1RET1VUfSksCisJcXIvMVx0XFxc XHhbMC05YS1mXXs5Nn1cdFxcXFx4WzAtOWEtZl17OTZ9XG4yXHRcXFxceFswLTlhLWZdezk2 fVx0XFxcXHhbMC05YS1mXXs5Nn0vLAorCSdpbnNlcnRlZCBkYXRhIGlzIGVuY3J5cHRlZCcp OworCitteSAkcmVzdWx0OworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMSBcZ2Rlc2N9KTsKK2lzKCRyZXN1bHQs CisJcShhfGludGVnZXIKK2J8dGV4dAorY3xzbWFsbGludCksCisJJ3F1ZXJ5IHJlc3VsdCBk ZXNjcmlwdGlvbiBoYXMgb3JpZ2luYWwgdHlwZScpOworCiskcmVzdWx0ID0gJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0pOworaXMo JHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5 IHJlc3VsdCcpOworCit7CisJbG9jYWwgJEVOVnsnUEdDTUtMT09LVVAnfSA9ICcqPXJ1bjpi cm9rZW4gJWsgIiViIic7CisJJHJlc3VsdCA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHF7 U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CisJaXNudCgkcmVzdWx0LCAwLCAncXVlcnkg ZmFpbHMgd2l0aCBicm9rZW4gY21rbG9va3VwIHJ1biBzZXR0aW5nJyk7Cit9CisKK3sKKwls b2NhbCAkRU5WeydQR0NNS0xPT0tVUCd9ID0gIio9cnVuOnBlcmwgLi90ZXN0X3J1bl9kZWNy eXB0LnBsICcke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9JyAlayAlYSAn JWInIjsKKworCSRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VM RUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CisJaXMoJHJlc3VsdCwKKwkJcSgxfHZhbDF8MTEK KzJ8dmFsMnwyMiksCisJCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggY21rbG9va3Vw IHJ1bicpOworfQorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQg SU5UTyB0YmwzIChhLCBiLCBjKSBWQUxVRVMgKDEsICQxLCAkMikgXGdlbmNyICd2YWxCMScg J3ZhbEMxJworfSk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwzfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWxC MXx2YWxDMSksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgbXVsdGlwbGUga2V5cycpOwor CisKKyRub2RlLT5jb21tYW5kX2ZhaWxzX2xpa2UoWyd0ZXN0X2NsaWVudCcsICd0ZXN0MSdd LCBxci9ub3QgZW5jcnlwdGVkLywgJ3Rlc3QgY2xpZW50IGZhaWxzIGJlY2F1c2UgcGFyYW1l dGVycyBub3QgZW5jcnlwdGVkJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAor CXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFm dGVyIHRlc3QgY2xpZW50IGluc2VydCcpOworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3Rf Y2xpZW50JywgJ3Rlc3QyJ10sICd0ZXN0IGNsaWVudCB0ZXN0IDInKTsKKworJHJlc3VsdCA9 ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRi bDF9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwzfDMz KSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQg MicpOworCitsaWtlKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtDT1BZIChTRUxF Q1QgKiBGUk9NIHRibDEgV0hFUkUgYSA9IDMpIFRPIFNURE9VVH0pLAorCXFyLzNcdFxcXFx4 WzAtOWEtZl17OTZ9LywKKwknaW5zZXJ0ZWQgZGF0YSBpcyBlbmNyeXB0ZWQnKTsKKworJG5v ZGUtPmNvbW1hbmRfb2soWyd0ZXN0X2NsaWVudCcsICd0ZXN0MyddLCAndGVzdCBjbGllbnQg dGVzdCAzJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDEx CisyfHZhbDJ8MjIKKzN8dmFsM3VwZHwzMyksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQg YWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0IDMnKTsKKworJG5vZGUtPmNvbW1hbmRfb2soWyd0 ZXN0X2NsaWVudCcsICd0ZXN0NCddLCAndGVzdCBjbGllbnQgdGVzdCA0Jyk7CisKKyRyZXN1 bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0 YmwyfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWxBCisyfHZhbEIKKzN8dmFsQSksCisJJ2Rl Y3J5cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0IDQnKTsKKwor aXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBiLCBjb3VudCgqKSBG Uk9NIHRibDIgR1JPVVAgQlkgYiBPUkRFUiBCWSAyfSksCisJcSh2YWxCfDEKK3ZhbEF8Miks CisJJ2dyb3VwIGJ5IGRldGVybWluaXN0aWNhbGx5IGVuY3J5cHRlZCBjb2x1bW4nKTsKKwor JG5vZGUtPmNvbW1hbmRfb2soWyd0ZXN0X2NsaWVudCcsICd0ZXN0NSddLCAndGVzdCBjbGll bnQgdGVzdCA1Jyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwzfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWxC MXx2YWxDMQorMnx2YWxCMnx2YWxDMgorM3x2YWxCM3x2YWxDMyksCisJJ2RlY3J5cHRlZCBx dWVyeSByZXN1bHQgbXVsdGlwbGUga2V5cyBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgNScp OworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0 aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmVjNDQ3ODcyYWIyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbApAQCAtMCwwICsxLDEw OCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IGNvbHVtbiBtYXN0ZXIga2V5IHJvdGF0aW9uLiAg Rmlyc3QsIHdlIGdlbmVyYXRlIENNSzEgYW5kIGEgQ0VLCisjIGVuY3J5cHRlZCB3aXRoIGl0 LiAgVGhlbiB3ZSBhZGQgYSBDTUsyIGFuZCBlbmNyeXB0IHRoZSBDRUsgd2l0aCBpdAorIyBh cyB3ZWxsLiAgKFJlY2FsbCB0aGF0IGEgQ0VLIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbXVs dGlwbGUgQ01LcywKKyMgZm9yIHRoaXMgcmVhc29uLiAgVGhhdCdzIHdoeSBwZ19jb2xlbmNr ZXlkYXRhIGlzIHNwbGl0IG91dCBmcm9tCisjIHBnX2NvbGVuY2tleS4pICBUaGVuIHdlIHJl bW92ZSBDTUsxLiAgV2UgdGVzdCB0aGF0IHdlIGNhbiBnZXQKKyMgZGVjcnlwdGVkIHF1ZXJ5 IHJlc3VsdHMgYXQgZWFjaCBzdGVwLgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0Owor CisKK3N1YiBjcmVhdGVfY21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRjbWtm aWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21r bmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdnZW5wa2V5JywgJy1h bGdvcml0aG0nLCAncnNhJywgJy1vdXQnLCAkY21rZmlsZW5hbWU7CisJJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgJHtjbWtuYW1l fSBXSVRIIChyZWFsbSA9ICcnKX0pOworCXJldHVybiAkY21rZmlsZW5hbWU7Cit9CisKKwor bXkgJGNtazFmaWxlbmFtZSA9IGNyZWF0ZV9jbWsoJ2NtazEnKTsKKworIyBjcmVhdGUgQ0VL CitteSAoJGNla25hbWUsICRieXRlcykgPSAoJ2NlazEnLCAxNisxNik7CisKKyMgZ2VuZXJh dGUgcmFuZG9tIGJ5dGVzCitzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdyYW5kJywgJy1v dXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9 LmJpbiIsICRieXRlczsKKworIyBlbmNyeXB0IENFSyB1c2luZyBDTUsKK3N5c3RlbV9vcl9i YWlsICdvcGVuc3NsJywgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNt azFmaWxlbmFtZSwKKyAgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisg ICctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25h bWV9LmJpbiIsCisgICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9j aGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIjsKKworbXkgJGNla2VuY2hleCA9IHVucGFjaygn SConLCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9 LyR7Y2VrbmFtZX0uYmluLmVuYyIpOworCisjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9O IEtFWSAke2Nla25hbWV9IFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEs IGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKworJEVOVnsnUEdD T0xVTU5FTkNSWVBUSU9OJ30gPSAnMSc7CiskRU5WeydQR0NNS0xPT0tVUCd9ID0gJyo9Zmls ZTonIC4gJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfSAuICcvJWsucGVt JzsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0 YmwxICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9l bmNyeXB0aW9uX2tleSA9IGNlazEpCispOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDEgKGEsIGIpIFZBTFVFUyAoMSwgJDEpIFxn ZW5jciAndmFsMScKK0lOU0VSVCBJTlRPIHRibDEgKGEsIGIpIFZBTFVFUyAoMiwgJDEpIFxn ZW5jciAndmFsMicKK30pOworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSksCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5 cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBvbmUgQ01LJyk7CisKKworIyBjcmVhdGUgbmV3IENN SworbXkgJGNtazJmaWxlbmFtZSA9IGNyZWF0ZV9jbWsoJ2NtazInKTsKKworIyBlbmNyeXB0 IENFSyB1c2luZyBuZXcgQ01LCisjCisjIChIZXJlLCB3ZSBzdGlsbCBoYXZlIHRoZSBwbGFp bnRleHQgb2YgdGhlIENFSyBhdmFpbGFibGUgZnJvbQorIyBlYXJsaWVyLiAgSW4gcmVhbGl0 eSwgb25lIHdvdWxkIGRlY3J5cHQgdGhlIENFSyB3aXRoIHRoZSBmaXJzdCBDTUsKKyMgYW5k IHRoZW4gcmUtZW5jcnlwdCBpdCB3aXRoIHRoZSBzZWNvbmQgQ01LLikKK3N5c3RlbV9vcl9i YWlsICdvcGVuc3NsJywgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNt azJmaWxlbmFtZSwKKyAgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisg ICctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25h bWV9LmJpbiIsCisgICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9j aGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIjsKKworJGNla2VuY2hleCA9IHVucGFjaygnSCon LCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7 Y2VrbmFtZX0uYmluLmVuYyIpOworCisjIGFkZCBuZXcgZGF0YSByZWNvcmQgZm9yIENFSyBp biBkYXRhYmFzZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgJHtjZWtuYW1lfSBBREQgVkFMVUUgKGNvbHVtbl9tYXN0ZXJf a2V5ID0gY21rMiwgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOwor CisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9N IHRibDF9KSwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3Vs dCB3aXRoIHR3byBDTUtzJyk7CisKKworIyBkZWxldGUgQ0VLIHJlY29yZCBmb3IgZmlyc3Qg Q01LCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0FMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWSAke2Nla25hbWV9IERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMSk7fSk7CisKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVD VCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQg cXVlcnkgcmVzdWx0IHdpdGggb25seSBuZXcgQ01LJyk7CisKKworZG9uZV90ZXN0aW5nKCk7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5j IGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYzNmRlODhjNzg1MQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKQEAg LTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqLworCisjaW5jbHVkZSAicG9zdGdy ZXNfZmUuaCIKKworI2luY2x1ZGUgImxpYnBxLWZlLmgiCisKKworc3RhdGljIGludAordGVz dDEoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2 YWx1ZXNbXSA9IHsiMyIsICJ2YWwzIiwgIjMzIn07CisKKwlyZXMgPSBQUWV4ZWNQYXJhbXMo Y29ubiwgIklOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMyki LAorCQkJCQkgICAzLCBOVUxMLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0 ZGVyciwgIlBRZXhlY1BhcmFtcygpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3Nh Z2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludAordGVzdDIoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlcywKKwkJCSAg ICpyZXMyOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMiLCAiMzMifTsK KwlpbnQJCQlmb3JjZXNbXSA9IHtmYWxzZSwgdHJ1ZX07CisKKwlyZXMgPSBQUXByZXBhcmUo Y29ubiwgIiIsICJJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKCQxLCAkMiwg JDMpIiwKKwkJCQkJMywgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFp bGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOwor CX0KKworCXJlczIgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50Zihz dGRlcnIsICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJy b3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKCEoIVBRcGFyYW1p c2VuY3J5cHRlZChyZXMyLCAwKSAmJgorCQkgIFBRcGFyYW1pc2VuY3J5cHRlZChyZXMyLCAx KSkpCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIndyb25nIHJlc3VsdHMgZnJvbSBQUXBhcmFt aXNlbmNyeXB0ZWQoKVxuIik7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1By ZXBhcmVkMihjb25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBOVUxMLCBmb3JjZXMsIDAsIHJl czIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJ eworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwK KwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVy biAwOworfQorCitzdGF0aWMgaW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1 bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjMi LCAidmFsM3VwZCJ9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiVVBEQVRFIHRi bDEgU0VUIGIgPSAkMiBXSEVSRSBhID0gJDEiLAorCQkJCQkyLCBOVUxMKTsKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50Zihz dGRlcnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdl KGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJl ZChjb25uLCAiIik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1B TkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZh aWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsK Kwl9CisKKwlyZXMgPSBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgIiIsIDIsIHZhbHVlcywgTlVM TCwgTlVMTCwgTlVMTCwgMCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0g UEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFy ZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0 dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3Q0KFBHY29u biAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBj aGFyICp2YWx1ZXNbXSA9IHsiMSIsICJ2YWxBIiwgIjIiLCAidmFsQiIsICIzIiwgInZhbEEi fTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDIgKGEs IGIpIFZBTFVFUyAoJDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIiwKKwkJCQkJNiwgTlVM TCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7 CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQ UWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlczIgPSBQUWRl c2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAh PSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJl UHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsK KwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCA2 LCB2YWx1ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0 YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwg IlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShj b25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 Cit0ZXN0NShQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJl czI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7CisJCSIyIiwgInZhbEIyIiwgInZhbEMy IiwKKwkJIjMiLCAidmFsQjMiLCAidmFsQzMiCisJfTsKKworCXJlcyA9IFBRcHJlcGFyZShj b25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAk MyksICgkNCwgJDUsICQ2KSIsCisJCQkJCTYsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1 cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBR cHJlcGFyZSgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOwor CQlyZXR1cm4gMTsKKwl9CisKKwlyZXMyID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIi KTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7 CisJCWZwcmludGYoc3RkZXJyLCAiUFFkZXNjcmliZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xu IiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJl cyA9IFBRZXhlY1ByZXBhcmVkMihjb25uLCAiIiwgNiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBO VUxMLCAwLCByZXMyKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01N QU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxl ZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK K3sKKwlQR2Nvbm4JICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKworCWNvbm4gPSBQUWNv bm5lY3RkYigiIik7CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5FQ1RJT05fT0spCisJ eworCQlmcHJpbnRmKHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVkOiAl c1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKwor CWlmIChhcmdjIDwgMiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVybiA4NzsKKwllbHNl IGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0ID0gdGVzdDEoY29u bik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09IDApCisJCXJldCA9 IHRlc3QyKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDMiKSA9PSAw KQorCQlyZXQgPSB0ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRl c3Q0IikgPT0gMCkKKwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFy Z3ZbMV0sICJ0ZXN0NSIpID09IDApCisJCXJldCA9IHRlc3Q1KGNvbm4pOworCWVsc2UKKwkJ cmV0ID0gODg7CisKKwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbCBi L3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKbmV3IGZp bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwLi45NjY0MzQ5ZjE0MDEKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNy eXB0LnBsCkBAIC0wLDAgKzEsNDEgQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIFRlc3Qvc2Ft cGxlIGNvbW1hbmQgZm9yIGxpYnBxIGNta2xvb2t1cCBydW4gc2NoZW1lCisjCisjIFRoaXMg anVzdCBwbGFjZXMgdGhlIGRhdGEgaW50byB0ZW1wb3JhcnkgZmlsZXMgYW5kIHJ1bnMgdGhl IG9wZW5zc2wKKyMgY29tbWFuZCBvbiBpdC4gIChJbiBwcmFjdGljZSwgdGhpcyBjb3VsZCBt b3JlIHNpbXBseSBiZSB3cml0dGVuIGFzIGEKKyMgc2hlbGwgc2NyaXB0LCBidXQgdGhpcyB3 YXkgaXQncyBtb3JlIHBvcnRhYmxlLikKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3Vz ZSB3YXJuaW5nczsKKwordXNlIE1JTUU6OkJhc2U2NDsKKworbXkgKCR0bXBkaXIsICRjbWtu YW1lLCAkYWxnLCAkYjY0ZGF0YSkgPSBAQVJHVjsKKworZGllIHVubGVzcyAkYWxnIGVxICdS U0FFU19PQUVQX1NIQV8xJzsKKworb3BlbiBteSAkZmgsICc+OnJhdycsICIke3RtcGRpcn0v aW5wdXQudG1wIiBvciBkaWU7CitwcmludCAkZmggZGVjb2RlX2Jhc2U2NCgkYjY0ZGF0YSk7 CitjbG9zZSAkZmg7CisKK3N5c3RlbSgnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1kZWNyeXB0 JywKKwknLWlua2V5JywgIiR7dG1wZGlyfS8ke2Nta25hbWV9LnBlbSIsICctcGtleW9wdCcs ICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAorCSctaW4nLCAiJHt0bXBkaXJ9L2lucHV0LnRt cCIsICctb3V0JywgIiR7dG1wZGlyfS9vdXRwdXQudG1wIikgPT0gMCBvciBkaWU7CisKK29w ZW4gJGZoLCAnPDpyYXcnLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiIG9yIGRpZTsKK215ICRk YXRhID0gJyc7CisKK3doaWxlICgxKSB7CisJbXkgJHN1Y2Nlc3MgPSByZWFkICRmaCwgJGRh dGEsIDEwMCwgbGVuZ3RoKCRkYXRhKTsKKwlkaWUgJCEgaWYgbm90IGRlZmluZWQgJHN1Y2Nl c3M7CisJbGFzdCBpZiBub3QgJHN1Y2Nlc3M7Cit9CisKK2Nsb3NlICRmaDsKKwordW5saW5r ICIke3RtcGRpcn0vaW5wdXQudG1wIiwgIiR7dG1wZGlyfS9vdXRwdXQudG1wIjsKKworcHJp bnQgZW5jb2RlX2Jhc2U2NCgkZGF0YSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tZXNvbi5i dWlsZCBiL3NyYy90ZXN0L21lc29uLmJ1aWxkCmluZGV4IDI0MWQ5ZDQ4YWE1My4uMGQzOWNl ZGViMTA5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVz dC9tZXNvbi5idWlsZApAQCAtNyw2ICs3LDcgQEAgc3ViZGlyKCdzdWJzY3JpcHRpb24nKQog c3ViZGlyKCdtb2R1bGVzJykKIAogaWYgc3NsLmZvdW5kKCkKKyAgc3ViZGlyKCdjb2x1bW5f ZW5jcnlwdGlvbicpCiAgIHN1YmRpcignc3NsJykKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jYmQ4Y2Q5ODMzNjkKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91 dApAQCAtMCwwICsxLDE0MyBAQAorXHNldCBISURFX0NPTFVNTl9FTkNSWVBUSU9OIGZhbHNl CitDUkVBVEUgUk9MRSByZWdyZXNzX2VuY191c2VyMTsKK0NSRUFURSBDT0xVTU4gTUFTVEVS IEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworQ09NTUVOVCBPTiBD T0xVTU4gTUFTVEVSIEtFWSBjbWsxIElTICdjb2x1bW4gbWFzdGVyIGtleSc7CitDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkgY21rMWEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdCcKKyk7 CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBXSVRIICgKKyAgICByZWFsbSA9ICd0 ZXN0MicKKyk7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMmEgV0lUSCAoCisgICAg cmVhbG0gPSAndGVzdDInCispOworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsx IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxn b3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdc eERFQURCRUVGJworKTsKK0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg SVMgJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSc7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisg ICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1 ZSA9ICdceERFQURCRUVGJworKTsKKy0tIGR1cGxpY2F0ZQorQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNt azFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0 ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9u IGtleSAiY2VrMSIgYWxyZWFkeSBoYXMgZGF0YSBmb3IgbWFzdGVyIGtleSAiY21rMWEiCitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbCBBREQgVkFMVUUgKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAg Y29sdW1uIGVuY3J5cHRpb24ga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazIsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAor ICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKSwKKygKKyAgICBjb2x1bW5f bWFzdGVyX2tleSA9IGNtazJhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8x JywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitDUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazQgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ1JFQVRFIFRBQkxFIHRi bF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRF RCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBub3RleGlzdCkKKyk7CitFUlJPUjog IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAibm90ZXhpc3QiIGRvZXMgbm90IGV4aXN0CitDUkVB VEUgVEFCTEUgdGJsXzI5ZjMgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRl eHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOwor XGQgdGJsXzI5ZjMKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfMjlmMyIKKyBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4 dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisKK1xkKyB0YmxfMjlmMworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3Jh Z2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAg fCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8 ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAg fCAKKworQ1JFQVRFIFRBQkxFIHRibF80NDdmICgKKyAgICBhIGludCwKKyAgICBiIHRleHQK Kyk7CitBTFRFUiBUQUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBFTkNSWVBURUQg V0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk7CitcZCB0YmxfNDQ3ZgorICAg ICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF80NDdmIgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKworXGQrIHRibF80NDdmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfNDQ3ZiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9u IHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwg CisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8 IGV4dGVybmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAgICAgICB8IAorCitEUk9QIENPTFVN TiBNQVNURVIgS0VZIGNtazEgUkVTVFJJQ1Q7ICAtLSBmYWlsCitFUlJPUjogIGNhbm5vdCBk cm9wIGNvbHVtbiBtYXN0ZXIga2V5IGNtazEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazEgZGF0YSBmb3Ig bWFzdGVyIGtleSBjbWsxIGRlcGVuZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorY29s dW1uIGVuY3J5cHRpb24ga2V5IGNlazQgZGF0YSBmb3IgbWFzdGVyIGtleSBjbWsxIGRlcGVu ZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVND QURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNtazIgUkVOQU1FIFRPIGNtazM7CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtF WSBjbWsxIFJFTkFNRSBUTyBjbWszOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gbWFzdGVy IGtleSAiY21rMyIgYWxyZWFkeSBleGlzdHMKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNt a3ggUkVOQU1FIFRPIGNta3k7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5 ICJjbWt4IiBkb2VzIG5vdCBleGlzdAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azIgUkVOQU1FIFRPIGNlazM7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBS RU5BTUUgVE8gY2VrMzsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5 ICJjZWszIiBhbHJlYWR5IGV4aXN0cworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl a3ggUkVOQU1FIFRPIGNla3k7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9u IGtleSAiY2VreCIgZG9lcyBub3QgZXhpc3QKK1NFVCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIx OworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZhaWwKK0VSUk9SOiAg bXVzdCBiZSBvd25lciBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2VrMworRFJPUCBDT0xV TU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gZmFpbAorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9m IGNvbHVtbiBtYXN0ZXIga2V5IGNtazMKK1JFU0VUIFJPTEU7CitBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSBjbWszIE9XTkVSIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworQUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIGNlazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitTRVQg Uk9MRSByZWdyZXNzX2VuY191c2VyMTsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azM7ICAtLSBvayBub3cKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIG9rIG5v dworUkVTRVQgUk9MRTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1Ag VkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEpOworQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7 ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiY2VrMSIgaGFzIG5v IGRhdGEgZm9yIG1hc3RlciBrZXkgImNtazFhIgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZh aWwKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFz dGVyX2tleSA9IGNtazFhLCBhbGdvcml0aG0gPSAnZm9vJyk7ICAtLSBmYWlsCitFUlJPUjog IGF0dHJpYnV0ZSAiYWxnb3JpdGhtIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQKK0RST1AgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazQ7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBm YWlsOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImZhaWwiIGRvZXMgbm90IGV4 aXN0CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazFhOworRFJPUCBDT0xVTU4gTUFTVEVS IEtFWSBmYWlsOworRVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSAiZmFpbCIgZG9lcyBub3Qg ZXhpc3QKK0RST1AgUk9MRSByZWdyZXNzX2VuY191c2VyMTsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKaW5kZXggMzU0OWI2M2E3OWMxLi4z ZWNhNmNkYjY2MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2Jq ZWN0X2FkZHJlc3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0 X2FkZHJlc3Mub3V0CkBAIC0zNyw2ICszNyw4IEBAIENSRUFURSBTRVJWRVIgImludGVnZXIi IEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3OwogQ1JFQVRFIFVTRVIgTUFQUElORyBG T1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJpbnRlZ2VyIjsKIEFMVEVSIERFRkFVTFQg UFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBJTiBTQ0hFTUEgcHVibGlj IEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVzc19hZGRyX3VzZXI7CiBBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgUkVWT0tFIERFTEVU RSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJfdXNlcjsKK0NSRUFURSBDT0xVTU4gTUFT VEVSIEtFWSBhZGRyX2NtayBXSVRIIChyZWFsbSA9ICcnKTsKK0NSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVkgYWRkcl9jZWsgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0g YWRkcl9jbWssIGVuY3J5cHRlZF92YWx1ZSA9ICcnKTsKIC0tIHRoaXMgdHJhbnNmb3JtIHdv dWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBseWluZyBhcm91bmQsCiAtLSBleGNlcHQg dGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8gYXR0ZW50aW9uIHRvIHRyYW5zZm9ybXM6 CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgKQEAgLTEwNSw3ICsx MDcsOCBAQCBCRUdJTgogCQkoJ3RleHQgc2VhcmNoIHRlbXBsYXRlJyksICgndGV4dCBzZWFy Y2ggY29uZmlndXJhdGlvbicpLAogCQkoJ3BvbGljeScpLCAoJ3VzZXIgbWFwcGluZycpLCAo J2RlZmF1bHQgYWNsJyksICgndHJhbnNmb3JtJyksCiAJCSgnb3BlcmF0b3Igb2YgYWNjZXNz IG1ldGhvZCcpLCAoJ2Z1bmN0aW9uIG9mIGFjY2VzcyBtZXRob2QnKSwKLQkJKCdwdWJsaWNh dGlvbiBuYW1lc3BhY2UnKSwgKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpCisJCSgncHVibGlj YXRpb24gbmFtZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRpb24nKSwKKwkJKCdjb2x1 bW4gZW5jcnlwdGlvbiBrZXknKSwgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScpLCAo J2NvbHVtbiBtYXN0ZXIga2V5JykKIAlMT09QCiAJCUZPUiBuYW1lcyBJTiBWQUxVRVMgKCd7 ZWluc30nKSwgKCd7YWRkcl9uc3AsIHp3ZWl9JyksICgne2VpbnMsIHp3ZWksIGRyZWl9JykK IAkJTE9PUApAQCAtMzI1LDYgKzMyOCwyNCBAQCBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1Ymxp Y2F0aW9uIHJlbGF0aW9uLHthZGRyX25zcCx6d2VpfSx7fTogYXJndW1lbnQgbGlzdCBsZW5n dAogV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxhdGlvbix7YWRkcl9uc3As endlaX0se2ludGVnZXJ9OiByZWxhdGlvbiAiYWRkcl9uc3AuendlaSIgZG9lcyBub3QgZXhp c3QKIFdBUk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2VpbnMsendl aSxkcmVpfSx7fTogYXJndW1lbnQgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKIFdB Uk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2VpbnMsendlaSxkcmVp fSx7aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogImVpbnMuendlaS5kcmVpIgorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5j cnlwdGlvbiBrZXkse2VpbnN9LHt9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRv ZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSx7ZWluc30se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRvZXMg bm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7 YWRkcl9uc3AsendlaX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEK K1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHthZGRyX25zcCx6 d2VpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dB Uk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWksZHJl aX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBl cnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWksZHJlaX0se2ludGVn ZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJy b3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zfSx7fTogYXJndW1lbnQg bGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIGVuY3J5 cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7YWRkcl9uc3AsendlaX0se306IG5hbWUgbGlz dCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1u IGVuY3J5cHRpb24ga2V5IGRhdGEse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFtZSBs aXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3Qg bGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBuYW1lIGxp c3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVt biBtYXN0ZXIga2V5LHtlaW5zfSx7fTogY29sdW1uIG1hc3RlciBrZXkgImVpbnMiIGRvZXMg bm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5z fSx7aW50ZWdlcn06IGNvbHVtbiBtYXN0ZXIga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlzdAor V0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRkcl9uc3AsendlaX0s e306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJv ciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFt ZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBj b2x1bW4gbWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3Ro IG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5LHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3Qg YmUgZXhhY3RseSAxCiAtLSB0aGVzZSBvYmplY3QgdHlwZXMgY2Fubm90IGJlIHF1YWxpZmll ZCBuYW1lcwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnbGFuZ3VhZ2UnLCAne29u ZX0nLCAne30nKTsKIEVSUk9SOiAgbGFuZ3VhZ2UgIm9uZSIgZG9lcyBub3QgZXhpc3QKQEAg LTM4MCw2ICs0MDEsMTQgQEAgU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2Ny aXB0aW9uJywgJ3tvbmV9JywgJ3t9Jyk7CiBFUlJPUjogIHN1YnNjcmlwdGlvbiAib25lIiBk b2VzIG5vdCBleGlzdAogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0 aW9uJywgJ3tvbmUsdHdvfScsICd7fScpOwogRVJST1I6ICBuYW1lIGxpc3QgbGVuZ3RoIG11 c3QgYmUgZXhhY3RseSAxCitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4g ZW5jcnlwdGlvbiBrZXknLCAne29uZX0nLCAne30nKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5 cHRpb24ga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9h ZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7CitF UlJPUjogIG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1NFTEVDVCBwZ19n ZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9Jyk7 CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxF Q1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25lLHR3 b30nLCAne30nKTsKK0VSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkg MQogLS0gdGVzdCBzdWNjZXNzZnVsIGNhc2VzCiBXSVRIIG9iamVjdHMgKHR5cGUsIG5hbWUs IGFyZ3MpIEFTIChWQUxVRVMKIAkJCQkoJ3RhYmxlJywgJ3thZGRyX25zcCwgZ2VudGFibGV9 Jzo6dGV4dFtdLCAne30nOjp0ZXh0W10pLApAQCAtNDAyLDYgKzQzMSw5IEBAIFdJVEggb2Jq ZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogCQkJCSgndHlwZScsICd7YWRk cl9uc3AuZ2VuZW51bX0nLCAne30nKSwKIAkJCQkoJ2Nhc3QnLCAne2ludDh9JywgJ3tpbnQ0 fScpLAogCQkJCSgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAorCQkJCSgnY29s dW1uIGVuY3J5cHRpb24ga2V5JywgJ3thZGRyX2Nla30nLCAne30nKSwKKwkJCQkoJ2NvbHVt biBlbmNyeXB0aW9uIGtleSBkYXRhJywgJ3thZGRyX2Nla30nLCAne2FkZHJfY21rfScpLAor CQkJCSgnY29sdW1uIG1hc3RlciBrZXknLCAne2FkZHJfY21rfScsICd7fScpLAogCQkJCSgn dGFibGUgY29uc3RyYWludCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBhX2Noa30nLCAne30n KSwKIAkJCQkoJ2RvbWFpbiBjb25zdHJhaW50JywgJ3thZGRyX25zcC5nZW5kb21haW59Jywg J3tkb21jb25zdHJ9JyksCiAJCQkJKCdjb252ZXJzaW9uJywgJ3twZ19jYXRhbG9nLCBrb2k4 X3JfdG9fbWljfScsICd7fScpLApAQCAtNDQ3LDU5ICs0NzksNjIgQEAgU0VMRUNUIChwZ19p ZGVudGlmeV9vYmplY3QoYWRkcjEuY2xhc3NpZCwgYWRkcjEub2JqaWQsIGFkZHIxLm9ianN1 YmlkKSkuKiwKIAkJCXBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQsIG9i amlkLCBvYmpzdWJpZCkgaW9hKHR5cCxubXMsYXJncyksCiAJCQlwZ19nZXRfb2JqZWN0X2Fk ZHJlc3ModHlwLCBubXMsIGlvYS5hcmdzKSBhcyBhZGRyMgogCU9SREVSIEJZIGFkZHIxLmNs YXNzaWQsIGFkZHIxLm9iamlkLCBhZGRyMS5vYmpzdWJpZDsKLSAgICAgICAgICAgdHlwZSAg ICAgICAgICAgIHwgICBzY2hlbWEgICB8ICAgICAgIG5hbWUgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA/Y29sdW1uPyAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSBkZWZhdWx0IGFjbCAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgZm9yIHJvbGUgcmVncmVzc19hZGRyX3VzZXIgaW4gc2NoZW1hIHB1YmxpYyBv biB0YWJsZXMgICAgICAgICAgICAgICAgfCB0Ci0gZGVmYXVsdCBhY2wgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGZvciByb2xlIHJlZ3Jlc3Nf YWRkcl91c2VyIG9uIHRhYmxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg dAotIHR5cGUgICAgICAgICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nIHwgX2ludDQgICAg ICAgICAgICAgfCBpbnRlZ2VyW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB0eXBlICAgICAgICAgICAgICAgICAg ICAgIHwgYWRkcl9uc3AgICB8IGdlbmNvbXB0eXBlICAgICAgIHwgYWRkcl9uc3AuZ2VuY29t cHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0Ci0gdHlwZSAgICAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW5lbnVt ICAgICAgICAgICB8IGFkZHJfbnNwLmdlbmVudW0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHR5cGUgICAgICAgICAgICAgICAg ICAgICAgfCBhZGRyX25zcCAgIHwgZ2VuZG9tYWluICAgICAgICAgfCBhZGRyX25zcC5nZW5k b21haW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHQKLSBmdW5jdGlvbiAgICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyB8ICAgICAg ICAgICAgICAgICAgIHwgcGdfY2F0YWxvZy5wZ19pZGVudGlmeV9vYmplY3QocGdfY2F0YWxv Zy5vaWQscGdfY2F0YWxvZy5vaWQsaW50ZWdlcikgfCB0Ci0gYWdncmVnYXRlICAgICAgICAg ICAgICAgICB8IGFkZHJfbnNwICAgfCAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwLmdl bmFnZ3IoaW50ZWdlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdAotIHByb2NlZHVyZSAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgICAg ICAgICAgICAgICAgICAgfCBhZGRyX25zcC5wcm9jKGludGVnZXIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBzZXF1ZW5jZSAgICAgICAg ICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbnRhYmxlX2Ffc2VxICAgIHwgYWRkcl9uc3Au Z2VudGFibGVfYV9zZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0Ci0gdGFibGUgICAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBn ZW50YWJsZSAgICAgICAgICB8IGFkZHJfbnNwLmdlbnRhYmxlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHRhYmxlIGNvbHVtbiAg ICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VudGFibGUgICAgICAgICAgfCBhZGRyX25z cC5nZW50YWJsZS5iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKLSBpbmRleCAgICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8 IGdlbnRhYmxlX3BrZXkgICAgIHwgYWRkcl9uc3AuZ2VudGFibGVfcGtleSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gdGFibGUgICAgICAg ICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBwYXJ0dGFibGUgICAgICAgICB8IGFkZHJf bnNwLnBhcnR0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdAotIGluZGV4ICAgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAg IHwgcGFydHRhYmxlX3BrZXkgICAgfCBhZGRyX25zcC5wYXJ0dGFibGVfcGtleSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB2aWV3ICAgICAg ICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbnZpZXcgICAgICAgICAgIHwgYWRk cl9uc3AuZ2VudmlldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB0Ci0gbWF0ZXJpYWxpemVkIHZpZXcgICAgICAgICB8IGFkZHJfbnNw ICAgfCBnZW5tYXR2aWV3ICAgICAgICB8IGFkZHJfbnNwLmdlbm1hdHZpZXcgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIGZvcmVpZ24g dGFibGUgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VuZnRhYmxlICAgICAgICAgfCBh ZGRyX25zcC5nZW5mdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHQKLSBmb3JlaWduIHRhYmxlIGNvbHVtbiAgICAgIHwgYWRkcl9u c3AgICB8IGdlbmZ0YWJsZSAgICAgICAgIHwgYWRkcl9uc3AuZ2VuZnRhYmxlLmEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gcm9sZSAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCByZWdyZXNzX2FkZHJfdXNlciB8 IHJlZ3Jlc3NfYWRkcl91c2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdAotIHNlcnZlciAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgYWRkcl9mc2VydiAgICAgICAgfCBhZGRyX2ZzZXJ2ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB1c2Vy IG1hcHBpbmcgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc19hZGRyX3VzZXIgb24gc2VydmVyIGludGVnZXIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0Ci0gZm9yZWlnbi1kYXRhIHdyYXBwZXIgICAgICB8ICAg ICAgICAgICAgfCBhZGRyX2ZkdyAgICAgICAgICB8IGFkZHJfZmR3ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIGFj Y2VzcyBtZXRob2QgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgYnRyZWUgICAgICAgICAg ICAgfCBidHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQKLSBvcGVyYXRvciBvZiBhY2Nlc3MgbWV0aG9kIHwg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgb3BlcmF0b3IgMSAoaW50ZWdlciwg aW50ZWdlcikgb2YgcGdfY2F0YWxvZy5pbnRlZ2VyX29wcyBVU0lORyBidHJlZSAgfCB0Ci0g ZnVuY3Rpb24gb2YgYWNjZXNzIG1ldGhvZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8IGZ1bmN0aW9uIDIgKGludGVnZXIsIGludGVnZXIpIG9mIHBnX2NhdGFsb2cuaW50 ZWdlcl9vcHMgVVNJTkcgYnRyZWUgIHwgdAotIGRlZmF1bHQgdmFsdWUgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBmb3IgYWRkcl9uc3AuZ2VudGFi bGUuYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQK LSBjYXN0ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgKGJpZ2ludCBBUyBpbnRlZ2VyKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gdGFibGUgY29uc3RyYWludCAgICAgICAg ICB8IGFkZHJfbnNwICAgfCAgICAgICAgICAgICAgICAgICB8IGFfY2hrIG9uIGFkZHJfbnNw LmdlbnRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg dAotIGRvbWFpbiBjb25zdHJhaW50ICAgICAgICAgfCBhZGRyX25zcCAgIHwgICAgICAgICAg ICAgICAgICAgfCBkb21jb25zdHIgb24gYWRkcl9uc3AuZ2VuZG9tYWluICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBjb252ZXJzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyB8IGtvaThfcl90b19taWMgICAgIHwgcGdfY2F0YWxvZy5rb2k4 X3JfdG9fbWljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0Ci0gbGFuZ3VhZ2UgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCBwbHBnc3Fs ICAgICAgICAgICB8IHBscGdzcWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHNjaGVtYSAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgYWRkcl9uc3AgICAgICAgICAgfCBhZGRyX25zcCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHQKLSBvcGVyYXRvciBjbGFzcyAgICAgICAgICAgIHwgcGdfY2F0YWxvZyB8IGludDRf b3BzICAgICAgICAgIHwgcGdfY2F0YWxvZy5pbnQ0X29wcyBVU0lORyBidHJlZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gb3BlcmF0b3IgICAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgfCAgICAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cu KyhpbnRlZ2VyLGludGVnZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdAotIHJ1bGUgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAiX1JFVFVSTiIgb24gYWRkcl9uc3AuZ2VudmlldyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB0cmlnZ2VyICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgdCBvbiBhZGRy X25zcC5nZW50YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0Ci0gb3BlcmF0b3IgZmFtaWx5ICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCBp bnRlZ2VyX29wcyAgICAgICB8IHBnX2NhdGFsb2cuaW50ZWdlcl9vcHMgVVNJTkcgYnRyZWUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHBvbGljeSAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBnZW5wb2wg b24gYWRkcl9uc3AuZ2VudGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKLSBzdGF0aXN0aWNzIG9iamVjdCAgICAgICAgIHwgYWRkcl9uc3AgICB8 IGdlbnRhYmxlX3N0YXQgICAgIHwgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gY29sbGF0aW9uICAg ICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCAiZGVmYXVsdCIgICAgICAgICB8IHBnX2Nh dGFsb2cuImRlZmF1bHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdAotIHRyYW5zZm9ybSAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCBmb3IgaW50ZWdlciBvbiBsYW5ndWFnZSBzcWwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB0ZXh0IHNlYXJj aCBkaWN0aW9uYXJ5ICAgIHwgYWRkcl9uc3AgICB8IGFkZHJfdHNfZGljdCAgICAgIHwgYWRk cl9uc3AuYWRkcl90c19kaWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB0Ci0gdGV4dCBzZWFyY2ggcGFyc2VyICAgICAgICB8IGFkZHJfbnNw ICAgfCBhZGRyX3RzX3BycyAgICAgICB8IGFkZHJfbnNwLmFkZHJfdHNfcHJzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHRleHQgc2Vh cmNoIGNvbmZpZ3VyYXRpb24gfCBhZGRyX25zcCAgIHwgYWRkcl90c19jb25mICAgICAgfCBh ZGRyX25zcC5hZGRyX3RzX2NvbmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHQKLSB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZSAgICAgIHwgYWRkcl9u c3AgICB8IGFkZHJfdHNfdGVtcCAgICAgIHwgYWRkcl9uc3AuYWRkcl90c190ZW1wICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gc3Vic2Ny aXB0aW9uICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCByZWdyZXNzX2FkZHJfc3ViICB8 IHJlZ3Jlc3NfYWRkcl9zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdAotIHB1YmxpY2F0aW9uICAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgYWRkcl9wdWIgICAgICAgICAgfCBhZGRyX3B1YiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBwdWJs aWNhdGlvbiByZWxhdGlvbiAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgYWRkcl9uc3AuZ2VudGFibGUgaW4gcHVibGljYXRpb24gYWRkcl9wdWIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0Ci0gcHVibGljYXRpb24gbmFtZXNwYWNlICAgICB8ICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwIGluIHB1YmxpY2F0aW9u IGFkZHJfcHViX3NjaGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotKDUw IHJvd3MpCisgICAgICAgICAgICB0eXBlICAgICAgICAgICAgfCAgIHNjaGVtYSAgIHwgICAg ICAgbmFtZSAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGl0 eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ID9jb2x1bW4/IAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBkZWZhdWx0IGFjbCAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGZvciByb2xlIHJlZ3Jlc3Nf YWRkcl91c2VyIGluIHNjaGVtYSBwdWJsaWMgb24gdGFibGVzICAgICAgICAgICAgICAgIHwg dAorIGRlZmF1bHQgYWNsICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgZm9yIHJvbGUgcmVncmVzc19hZGRyX3VzZXIgb24gdGFibGVzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgdHlwZSAgICAgICAgICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nIHwgX2ludDQgICAgICAgICAgICAgfCBpbnRlZ2VyW10gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHQKKyB0eXBlICAgICAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW5j b21wdHlwZSAgICAgICB8IGFkZHJfbnNwLmdlbmNvbXB0eXBlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHR5cGUgICAgICAgICAgICAg ICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbmVudW0gICAgICAgICAgIHwgYWRkcl9uc3Au Z2VuZW51bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0CisgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwg Z2VuZG9tYWluICAgICAgICAgfCBhZGRyX25zcC5nZW5kb21haW4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBmdW5jdGlvbiAgICAg ICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCAgICAgICAgICAgICAgICAgICB8IHBnX2Nh dGFsb2cucGdfaWRlbnRpZnlfb2JqZWN0KHBnX2NhdGFsb2cub2lkLHBnX2NhdGFsb2cub2lk LGludGVnZXIpIHwgdAorIGFnZ3JlZ2F0ZSAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3Ag ICB8ICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AuZ2VuYWdncihpbnRlZ2VyKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgcHJvY2VkdXJl ICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgICAgICAgICAgICAgICAgICAgfCBh ZGRyX25zcC5wcm9jKGludGVnZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHQKKyBzZXF1ZW5jZSAgICAgICAgICAgICAgICAgICB8IGFkZHJf bnNwICAgfCBnZW50YWJsZV9hX3NlcSAgICB8IGFkZHJfbnNwLmdlbnRhYmxlX2Ffc2VxICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHRhYmxl ICAgICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbnRhYmxlICAgICAgICAg IHwgYWRkcl9uc3AuZ2VudGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0CisgdGFibGUgY29sdW1uICAgICAgICAgICAgICAgfCBh ZGRyX25zcCAgIHwgZ2VudGFibGUgICAgICAgICAgfCBhZGRyX25zcC5nZW50YWJsZS5iICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBp bmRleCAgICAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW50YWJsZV9wa2V5 ICAgICB8IGFkZHJfbnNwLmdlbnRhYmxlX3BrZXkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHRhYmxlICAgICAgICAgICAgICAgICAgICAg IHwgYWRkcl9uc3AgICB8IHBhcnR0YWJsZSAgICAgICAgIHwgYWRkcl9uc3AucGFydHRhYmxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0 CisgaW5kZXggICAgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgcGFydHRhYmxl X3BrZXkgICAgfCBhZGRyX25zcC5wYXJ0dGFibGVfcGtleSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyB2aWV3ICAgICAgICAgICAgICAgICAg ICAgICB8IGFkZHJfbnNwICAgfCBnZW52aWV3ICAgICAgICAgICB8IGFkZHJfbnNwLmdlbnZp ZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgdAorIG1hdGVyaWFsaXplZCB2aWV3ICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbm1h dHZpZXcgICAgICAgIHwgYWRkcl9uc3AuZ2VubWF0dmlldyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgZm9yZWlnbiB0YWJsZSAgICAg ICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VuZnRhYmxlICAgICAgICAgfCBhZGRyX25zcC5n ZW5mdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHQKKyBmb3JlaWduIHRhYmxlIGNvbHVtbiAgICAgICB8IGFkZHJfbnNwICAgfCBn ZW5mdGFibGUgICAgICAgICB8IGFkZHJfbnNwLmdlbmZ0YWJsZS5hICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHJvbGUgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IHJlZ3Jlc3NfYWRkcl91c2VyIHwgcmVncmVz c19hZGRyX3VzZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB0Cisgc2VydmVyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgYWRkcl9mc2VydiAgICAgICAgfCBhZGRyX2ZzZXJ2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyB1c2VyIG1hcHBp bmcgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3NfYWRkcl91c2VyIG9uIHNlcnZlciBpbnRlZ2VyICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgdAorIGZvcmVpZ24tZGF0YSB3cmFwcGVyICAgICAgIHwgICAgICAg ICAgICB8IGFkZHJfZmR3ICAgICAgICAgIHwgYWRkcl9mZHcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgYWNjZXNz IG1ldGhvZCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgYnRyZWUgICAgICAgICAgICAg fCBidHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHQKKyBvcGVyYXRvciBvZiBhY2Nlc3MgbWV0aG9kICB8ICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IG9wZXJhdG9yIDEgKGludGVnZXIsIGlu dGVnZXIpIG9mIHBnX2NhdGFsb2cuaW50ZWdlcl9vcHMgVVNJTkcgYnRyZWUgIHwgdAorIGZ1 bmN0aW9uIG9mIGFjY2VzcyBtZXRob2QgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgIHwgZnVuY3Rpb24gMiAoaW50ZWdlciwgaW50ZWdlcikgb2YgcGdfY2F0YWxvZy5pbnRl Z2VyX29wcyBVU0lORyBidHJlZSAgfCB0CisgZGVmYXVsdCB2YWx1ZSAgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBmb3IgYWRkcl9uc3AuZ2VudGFi bGUuYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQK KyBjYXN0ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8IChiaWdpbnQgQVMgaW50ZWdlcikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHRhYmxlIGNvbnN0cmFpbnQgICAgICAg ICAgIHwgYWRkcl9uc3AgICB8ICAgICAgICAgICAgICAgICAgIHwgYV9jaGsgb24gYWRkcl9u c3AuZ2VudGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0CisgZG9tYWluIGNvbnN0cmFpbnQgICAgICAgICAgfCBhZGRyX25zcCAgIHwgICAgICAg ICAgICAgICAgICAgfCBkb21jb25zdHIgb24gYWRkcl9uc3AuZ2VuZG9tYWluICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBjb252ZXJzaW9uICAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgfCBrb2k4X3JfdG9fbWljICAgICB8IHBnX2NhdGFsb2cu a29pOF9yX3RvX21pYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdAorIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IHBs cGdzcWwgICAgICAgICAgIHwgcGxwZ3NxbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Cisgc2NoZW1hICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgYWRkcl9uc3AgICAgICAgICAgfCBhZGRyX25z cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKKyBvcGVyYXRvciBjbGFzcyAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg fCBpbnQ0X29wcyAgICAgICAgICB8IHBnX2NhdGFsb2cuaW50NF9vcHMgVVNJTkcgYnRyZWUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIG9wZXJhdG9yICAg ICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyB8ICAgICAgICAgICAgICAgICAgIHwgcGdf Y2F0YWxvZy4rKGludGVnZXIsaW50ZWdlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB0CisgcnVsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAiX1JFVFVSTiIgb24gYWRkcl9uc3AuZ2Vudmll dyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyB0cmlnZ2Vy ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IHQgb24gYWRkcl9uc3AuZ2VudGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdAorIG9wZXJhdG9yIGZhbWlseSAgICAgICAgICAgIHwgcGdf Y2F0YWxvZyB8IGludGVnZXJfb3BzICAgICAgIHwgcGdfY2F0YWxvZy5pbnRlZ2VyX29wcyBV U0lORyBidHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgcG9s aWN5ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCBnZW5wb2wgb24gYWRkcl9uc3AuZ2VudGFibGUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQKKyBzdGF0aXN0aWNzIG9iamVjdCAgICAgICAgICB8 IGFkZHJfbnNwICAgfCBnZW50YWJsZV9zdGF0ICAgICB8IGFkZHJfbnNwLmdlbnRhYmxlX3N0 YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAor IGNvbGxhdGlvbiAgICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyB8ICJkZWZhdWx0IiAg ICAgICAgIHwgcGdfY2F0YWxvZy4iZGVmYXVsdCIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgdHJhbnNmb3JtICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBmb3IgaW50ZWdlciBvbiBs YW5ndWFnZSBzcWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHQKKyB0ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5ICAgICB8IGFkZHJfbnNwICAgfCBhZGRyX3Rz X2RpY3QgICAgICB8IGFkZHJfbnNwLmFkZHJfdHNfZGljdCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHRleHQgc2VhcmNoIHBhcnNlciAg ICAgICAgIHwgYWRkcl9uc3AgICB8IGFkZHJfdHNfcHJzICAgICAgIHwgYWRkcl9uc3AuYWRk cl90c19wcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCB0CisgdGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiAgfCBhZGRyX25zcCAgIHwgYWRk cl90c19jb25mICAgICAgfCBhZGRyX25zcC5hZGRyX3RzX2NvbmYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyB0ZXh0IHNlYXJjaCB0ZW1w bGF0ZSAgICAgICB8IGFkZHJfbnNwICAgfCBhZGRyX3RzX3RlbXAgICAgICB8IGFkZHJfbnNw LmFkZHJfdHNfdGVtcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgdAorIHN1YnNjcmlwdGlvbiAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 IHJlZ3Jlc3NfYWRkcl9zdWIgIHwgcmVncmVzc19hZGRyX3N1YiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgcHVibGljYXRpb24g ICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgYWRkcl9wdWIgICAgICAgICAgfCBhZGRy X3B1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHQKKyBwdWJsaWNhdGlvbiByZWxhdGlvbiAgICAgICB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwLmdlbnRhYmxlIGluIHB1YmxpY2F0 aW9uIGFkZHJfcHViICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHB1YmxpY2F0 aW9uIG5hbWVzcGFjZSAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg YWRkcl9uc3AgaW4gcHVibGljYXRpb24gYWRkcl9wdWJfc2NoZW1hICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCB0CisgY29sdW1uIG1hc3RlciBrZXkgICAgICAgICAgfCAgICAg ICAgICAgIHwgYWRkcl9jbWsgICAgICAgICAgfCBhZGRyX2NtayAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgICAgICB8ICAgICAgICAgICAgfCBhZGRyX2NlayAgICAgICAg ICB8IGFkZHJfY2VrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgdAorIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIHwg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgb2YgYWRkcl9jZWsgZm9yIGFkZHJf Y21rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ciso NTMgcm93cykKIAogLS0tCiAtLS0gQ2xlYW51cCByZXNvdXJjZXMKQEAgLTUxMyw2ICs1NDgs OCBAQCBkcm9wIGNhc2NhZGVzIHRvIHVzZXIgbWFwcGluZyBmb3IgcmVncmVzc19hZGRyX3Vz ZXIgb24gc2VydmVyIGludGVnZXIKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWI7CiBEUk9Q IFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfYWRkcl9zdWI7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlazsKK0RS T1AgQ09MVU1OIE1BU1RFUiBLRVkgYWRkcl9jbWs7CiBEUk9QIFNDSEVNQSBhZGRyX25zcCBD QVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBvYmplY3RzCiBE RVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIGRpY3Rpb25hcnkgYWRkcl90 c19kaWN0CkBAIC01NDgsNiArNTg1LDkgQEAgV0lUSCBvYmplY3RzIChjbGFzc2lkLCBvYmpp ZCwgb2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX3R5cGUnOjpyZWdjbGFzcywgMCwg MCksIC0tIG5vIHR5cGUKICAgICAoJ3BnX2Nhc3QnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNhc3QKICAgICAoJ3BnX2NvbGxhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29s bGF0aW9uCisgICAgKCdwZ19jb2xlbmNrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNv bHVtbiBlbmNyeXB0aW9uIGtleQorICAgICgncGdfY29sZW5ja2V5ZGF0YSc6OnJlZ2NsYXNz LCAwLCAwKSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEKKyAgICAoJ3BnX2Nv bG1hc3RlcmtleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIG1hc3RlciBrZXkK ICAgICAoJ3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbnN0cmFp bnQKICAgICAoJ3BnX2NvbnZlcnNpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbnZl cnNpb24KICAgICAoJ3BnX2F0dHJkZWYnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGRlZmF1 bHQgYXR0cmlidXRlCkBAIC01NzgsNiArNjE4LDcgQEAgV0lUSCBvYmplY3RzIChjbGFzc2lk LCBvYmppZCwgb2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX2V2ZW50X3RyaWdnZXIn OjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2ZW50IHRyaWdnZXIKICAgICAoJ3BnX3BvbGlj eSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5CiAgICAgKCdwZ19wdWJsaWNhdGlv bic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24KKyAgICAoJ3BnX3B1Ymxp Y2F0aW9uX25hbWVzcGFjZSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24g bmFtZXNwYWNlCiAgICAgKCdwZ19wdWJsaWNhdGlvbl9yZWwnOjpyZWdjbGFzcywgMCwgMCks IC0tIG5vIHB1YmxpY2F0aW9uIHJlbGF0aW9uCiAgICAgKCdwZ19zdWJzY3JpcHRpb24nOjpy ZWdjbGFzcywgMCwgMCksIC0tIG5vIHN1YnNjcmlwdGlvbgogICAgICgncGdfdHJhbnNmb3Jt Jzo6cmVnY2xhc3MsIDAsIDApIC0tIG5vIHRyYW5zZm9ybWF0aW9uCkBAIC02MjksNSArNjcw LDkgQEAgT1JERVIgQlkgb2JqZWN0cy5jbGFzc2lkLCBvYmplY3RzLm9iamlkLCBvYmplY3Rz Lm9ianN1YmlkOwogKCIoc3Vic2NyaXB0aW9uLCwsKSIpfCgiKHN1YnNjcmlwdGlvbiwsKSIp fE5VTEwKICgiKHB1YmxpY2F0aW9uLCwsKSIpfCgiKHB1YmxpY2F0aW9uLCwpIil8TlVMTAog KCIoIiJwdWJsaWNhdGlvbiByZWxhdGlvbiIiLCwsKSIpfCgiKCIicHVibGljYXRpb24gcmVs YXRpb24iIiwsKSIpfE5VTEwKKygiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIsLCwpIil8 KCIoIiJwdWJsaWNhdGlvbiBuYW1lc3BhY2UiIiwsKSIpfE5VTEwKKygiKCIiY29sdW1uIG1h c3RlciBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBtYXN0ZXIga2V5IiIsLCkiKXxOVUxMCiso IigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSIiLCwsKSIpfCgiKCIiY29sdW1uIGVuY3J5cHRp b24ga2V5IiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiIs LCwpIil8KCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIiLCwpIil8TlVMTAogLS0g cmVzdG9yZSBub3JtYWwgb3V0cHV0IG1vZGUKIFxhXHQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZTNlLi4yYWEwZTE2MzIzMTcgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC03Myw2ICs3Myw4 IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGJhc2V0eXBlfSA9PiBwZ190eXBl IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ190eXBlIHt0eXBjb2xsYXRpb259ID0+IHBn X2NvbGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0cmlidXRlIHthdHRy ZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0 ZSB7YXR0dHlwaWR9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0 dHJpYnV0ZSB7YXR0Y2VrfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElDRTogIGNoZWNr aW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVhbHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJ Q0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0 aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsbmFtZXNwYWNlfSA9 PiBwZ19uYW1lc3BhY2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2NsYXNzIHtyZWx0 eXBlfSA9PiBwZ190eXBlIHtvaWR9CkBAIC0yNjYsMyArMjY4LDcgQEAgTk9USUNFOiAgY2hl Y2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQog Tk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0 aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1 YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBj aGVja2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0K K05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2Vrb3duZXJ9ID0+IHBnX2F1dGhp ZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY2VraWR9 ID0+IHBnX2NvbGVuY2tleSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5 ZGF0YSB7Y2tkY21raWR9ID0+IHBnX2NvbG1hc3RlcmtleSB7b2lkfQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggMzMwZWIwZjc2NTZiLi42NDY1 MDdmMDI5MGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nh bml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91 dApAQCAtMTc1LDEzICsxNzUsMTQgQEAgV0hFUkUgcDEub2lkICE9IHAyLm9pZCBBTkQKIE9S REVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgIHwgICAgICAgcHJv YXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAgICAgICAgICAgICAgICAgICAgfCBw Z19lbmNyeXB0ZWRfZGV0CiAgYmlnaW50ICAgICAgICAgICAgICAgICAgICAgIHwgeGlkOAog IHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlcgogIHRleHQgICAgICAg ICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nCiAgdGltZXN0YW1wIHdpdGhv dXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lCiAgYml0ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0eGlkX3NuYXBzaG90ICAgICAgICAg ICAgICAgfCBwZ19zbmFwc2hvdAotKDYgcm93cykKKyg3IHJvd3MpCiAKIFNFTEVDVCBESVNU SU5DVCBwMS5wcm9hcmd0eXBlc1sxXTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMV06OnJl Z3R5cGUKIEZST00gcGdfcHJvYyBBUyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtMTk3LDEyICsx OTgsMTMgQEAgV0hFUkUgcDEub2lkICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAg ICAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBieXRlYSAgICAgICAgICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0 CiAgaW50ZWdlciAgICAgICAgICAgICAgICAgICAgIHwgeGlkCiAgdGltZXN0YW1wIHdpdGhv dXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lCiAgYml0ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0eGlkX3NuYXBzaG90ICAgICAgICAg ICAgICAgfCBwZ19zbmFwc2hvdAogIGFueXJhbmdlICAgICAgICAgICAgICAgICAgICB8IGFu eW11bHRpcmFuZ2UKLSg1IHJvd3MpCisoNiByb3dzKQogCiBTRUxFQ1QgRElTVElOQ1QgcDEu cHJvYXJndHlwZXNbMl06OnJlZ3R5cGUsIHAyLnByb2FyZ3R5cGVzWzJdOjpyZWd0eXBlCiBG Uk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2MgQVMgcDIKQEAgLTg0MSw2ICs4NDMsOCBAQCB4 aWQ4Z2UoeGlkOCx4aWQ4KQogeGlkOGVxKHhpZDgseGlkOCkKIHhpZDhuZSh4aWQ4LHhpZDgp CiB4aWQ4Y21wKHhpZDgseGlkOCkKK3BnX2VuY3J5cHRlZF9kZXRfZXEocGdfZW5jcnlwdGVk X2RldCxwZ19lbmNyeXB0ZWRfZGV0KQorcGdfZW5jcnlwdGVkX2RldF9uZShwZ19lbmNyeXB0 ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpCiAtLSByZXN0b3JlIG5vcm1hbCBvdXRwdXQgbW9k ZQogXGFcdAogLS0gTGlzdCBvZiBmdW5jdGlvbnMgdXNlZCBieSBsaWJwcSdzIGZlLWxvYmou YwpAQCAtOTg4LDcgKzk5Miw5IEBAIFdIRVJFIGMuY2FzdG1ldGhvZCA9ICdiJyBBTkQKICB4 bWwgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgIDAgfCBhCiAg eG1sICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAwIHwgYQog IHhtbCAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgICAgMCB8IGEK LSgxMCByb3dzKQorIGJ5dGVhICAgICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX2RldCAgfCAg ICAgICAgMCB8IGUKKyBieXRlYSAgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9ybmQgIHwg ICAgICAgIDAgfCBlCisoMTIgcm93cykKIAogLS0gKioqKioqKioqKioqKioqKiBwZ19jb252 ZXJzaW9uICoqKioqKioqKioqKioqKioKIC0tIExvb2sgZm9yIGlsbGVnYWwgdmFsdWVzIGlu IHBnX2NvbnZlcnNpb24gZmllbGRzLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wcmVwYXJlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFy ZS5vdXQKaW5kZXggNTgxNWUxN2IzOWNjLi40NDgyYTY1ZDI0NTkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dApAQCAtMTYyLDI2ICsxNjIsMjYgQEAgUFJFUEFS RSBxNyh1bmtub3duKSBBUwogLS0gRE1MIHN0YXRlbWVudHMKIFBSRVBBUkUgcTggQVMKICAg ICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOwot U0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVyX3R5cGVzLCByZXN1bHRfdHlwZXMg RlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCitTRUxFQ1QgbmFtZSwgc3RhdGVtZW50LCBw YXJhbWV0ZXJfdHlwZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxlcywgcGFyYW1ldGVyX29yaWdf Y29sdW1ucywgcmVzdWx0X3R5cGVzIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50cwogICAg IE9SREVSIEJZIG5hbWU7Ci0gbmFtZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXRlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg IHBhcmFtZXRlcl90eXBlcyAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF90eXBlcyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHEyICAgfCBQUkVQQVJFIHEyKHRl eHQpIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wg e3RleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7 bmFtZSxib29sZWFuLGJvb2xlYW59Ci0gICAgICB8ICAgICAgICAgU0VMRUNUIGRhdG5hbWUs IGRhdGlzdGVtcGxhdGUsIGRhdGFsbG93Y29ubiAgICAgICAgICAgICArfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotICAgICAgfCAg ICAgICAgIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICQxOyAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAKLSBxMyAgIHwgUFJFUEFSRSBxMyh0ZXh0LCBpbnQsIGZsb2F0LCBib29s ZWFuLCBzbWFsbGludCkgQVMgICAgICAgICAgICAgICt8IHt0ZXh0LGludGVnZXIsImRvdWJs ZSBwcmVjaXNpb24iLGJvb2xlYW4sc21hbGxpbnR9IHwge2ludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxuYW1lLG5hbWV9Ci0gICAgICB8 ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSBzdHJpbmc0ID0gJDEgQU5EIChm b3VyID0gJDIgT1IrfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IAotICAgICAgfCAgICAgICAgIHRlbiA9ICQzOjpiaWdpbnQgT1IgdHJ1 ZSA9ICQ0IE9SIG9kZCA9ICQ1OjppbnQpICAgICAgICAgK3wgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgICAgICBP UkRFUiBCWSB1bmlxdWUxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgCi0gcTUgICB8IFBSRVBBUkUgcTUoaW50LCB0ZXh0KSBBUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcix0ZXh0fSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQotICAgICAgfCAgICAgICAg IFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIE9SIHN0cmluZ3UxID0g JDIgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAKLSAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1bmlxdWUxOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTYgICB8IFBSRVBBUkUgcTYgQVMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50 ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFt ZSxuYW1lfQotICAgICAgfCAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlxdWUx ID0gJDEgQU5EIHN0cmluZ3UxID0gJDI7ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxNyAgIHwgUFJFUEFSRSBxNyh1bmtu b3duKSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtw YXRofSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwge3Rl eHQscGF0aH0KLSAgICAgIHwgICAgIFNFTEVDVCAqIEZST00gcm9hZCBXSEVSRSB0aGVwYXRo ID0gJDE7ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTggICB8IFBSRVBBUkUgcTggQVMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7 aW50ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAot ICAgICAgfCAgICAgVVBEQVRFIHRlbmsxIFNFVCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVuaXF1 ZTEgPSAkMTsgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAKKyBuYW1lIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgcGFyYW1ldGVyX3R5cGVzICAgICAgICAgICAgICAgICAgIHwgcGFyYW1ldGVyX29y aWdfdGFibGVzIHwgcGFyYW1ldGVyX29yaWdfY29sdW1ucyB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF90eXBlcyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBxMiAgIHwgUFJFUEFSRSBxMih0ZXh0KSBB UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHt0ZXh0 fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey19ICAg ICAgICAgICAgICAgICAgIHwgezB9ICAgICAgICAgICAgICAgICAgICB8IHtuYW1lLGJvb2xl YW4sYm9vbGVhbn0KKyAgICAgIHwgICAgICAgICBTRUxFQ1QgZGF0bmFtZSwgZGF0aXN0ZW1w bGF0ZSwgZGF0YWxsb3djb25uICAgICAgICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgfCAgICAgICAgIEZST00gcGdf ZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICQxOyAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgcTMgICB8 IFBSRVBBUkUgcTModGV4dCwgaW50LCBmbG9hdCwgYm9vbGVhbiwgc21hbGxpbnQpIEFTICAg ICAgICAgICAgICArfCB7dGV4dCxpbnRlZ2VyLCJkb3VibGUgcHJlY2lzaW9uIixib29sZWFu LHNtYWxsaW50fSB8IHstLC0sLSwtLC19ICAgICAgICAgICB8IHswLDAsMCwwLDB9ICAgICAg ICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAgIHwgICAgICAgICBTRUxFQ1QgKiBGUk9NIHRl bmsxIFdIRVJFIHN0cmluZzQgPSAkMSBBTkQgKGZvdXIgPSAkMiBPUit8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgfCAgICAgICAg IHRlbiA9ICQzOjpiaWdpbnQgT1IgdHJ1ZSA9ICQ0IE9SIG9kZCA9ICQ1OjppbnQpICAgICAg ICAgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg CisgICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAKKyBxNSAgIHwgUFJFUEFSRSBxNShpbnQsIHRleHQpIEFTICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtpbnRlZ2VyLHRleHR9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey0sLX0gICAgICAgICAg ICAgICAgIHwgezAsMH0gICAgICAgICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQorICAgICAg fCAgICAgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIE9SIHN0 cmluZ3UxID0gJDIgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxNiAgIHwgUFJFUEFSRSBxNiBBUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtpbnRl Z2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey0sLX0g ICAgICAgICAgICAgICAgIHwgezAsMH0gICAgICAgICAgICAgICAgICB8IHtpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1l fQorICAgICAgfCAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlxdWUxID0gJDEg QU5EIHN0cmluZ3UxID0gJDI7ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgcTcgICB8IFBSRVBBUkUgcTcodW5rbm93bikgQVMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7cGF0aH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstfSAgICAgICAgICAg ICAgICAgICB8IHswfSAgICAgICAgICAgICAgICAgICAgfCB7dGV4dCxwYXRofQorICAgICAg fCAgICAgU0VMRUNUICogRlJPTSByb2FkIFdIRVJFIHRoZXBhdGggPSAkMTsgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgcTggICB8IFBSRVBBUkUgcTggQVMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcixuYW1lfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLHRlbmsxfSAgICAgICAgICAgICB8 IHswLDE0fSAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgIFVQREFURSB0ZW5rMSBT RVQgc3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDYgcm93cykK IAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0CmluZGV4IGE3ZjU3MDBlZGMxMi4uMmVlNWY3NTQ2ZDViIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIzNyw2ICsyMzcsMzEgQEAgU0VMRUNUIDMgQVMgeCwg J0hlbGxvJywgNCBBUyB5LCB0cnVlIEFTICJkaXJ0eVxuYW1lIiBcZ2Rlc2MgXGcKICAzIHwg SGVsbG8gICAgfCA0IHwgdAogKDEgcm93KQogCistLSBcZ2VuY3IKKy0tIChUaGlzIGp1c3Qg dGVzdHMgdGhlIHBhcmFtZXRlciBwYXNzaW5nOyB0aGVyZSBpcyBubyBlbmNyeXB0aW9uIGhl cmUuKQorQ1JFQVRFIFRBQkxFIHRlc3RfZ2VuY3IgKGEgaW50LCBiIHRleHQpOworSU5TRVJU IElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKDEsICdvbmUnKSBcZ2VuY3IKK1NFTEVDVCAqIEZS T00gdGVzdF9nZW5jciBXSEVSRSBhID0gMSBcZ2VuY3IKKyBhIHwgIGIgIAorLS0tKy0tLS0t CisgMSB8IG9uZQorKDEgcm93KQorCitJTlNFUlQgSU5UTyB0ZXN0X2dlbmNyIFZBTFVFUyAo JDEsICQyKSBcZ2VuY3IgMiAndHdvJworU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdIRVJF IGEgSU4gKCQxLCAkMikgXGdlbmNyIDIgMworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwg dHdvCisoMSByb3cpCisKKy0tIHRlc3QgcGFyc2UgZXJyb3IKK1NFTEVDVCAqIEZST00gdGVz dF9nZW5jciBXSEVSRSBhID0geCBcZ2VuY3IKK0VSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5v dCBleGlzdAorTElORSAxOiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IHgg CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gdGVz dCBiaW5kIGVycm9yCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9ICQxIFxn ZW5jcgorRVJST1I6ICBiaW5kIG1lc3NhZ2Ugc3VwcGxpZXMgMCBwYXJhbWV0ZXJzLCBidXQg cHJlcGFyZWQgc3RhdGVtZW50ICIiIHJlcXVpcmVzIDEKIC0tIFxnZXhlYwogY3JlYXRlIHRl bXBvcmFyeSB0YWJsZSBnZXhlY190ZXN0KGEgaW50LCBiIHRleHQsIGMgZGF0ZSwgZCBmbG9h dCk7CiBzZWxlY3QgZm9ybWF0KCdjcmVhdGUgaW5kZXggb24gZ2V4ZWNfdGVzdCglSSknLCBh dHRuYW1lKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA5ZGQxMzc0 MTVlODYuLjdlYmY2ZmRiMjVhMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKQEAgLTE0MjMsMTEgKzE0MjMsMTMgQEAgcGdfcHJlcGFyZWRfc3RhdGVtZW50c3wgU0VM RUNUIHAubmFtZSwKICAgICBwLnN0YXRlbWVudCwKICAgICBwLnByZXBhcmVfdGltZSwKICAg ICBwLnBhcmFtZXRlcl90eXBlcywKKyAgICBwLnBhcmFtZXRlcl9vcmlnX3RhYmxlcywKKyAg ICBwLnBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsCiAgICAgcC5yZXN1bHRfdHlwZXMsCiAgICAg cC5mcm9tX3NxbCwKICAgICBwLmdlbmVyaWNfcGxhbnMsCiAgICAgcC5jdXN0b21fcGxhbnMK LSAgIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50KCkgcChuYW1lLCBzdGF0ZW1lbnQsIHBy ZXBhcmVfdGltZSwgcGFyYW1ldGVyX3R5cGVzLCByZXN1bHRfdHlwZXMsIGZyb21fc3FsLCBn ZW5lcmljX3BsYW5zLCBjdXN0b21fcGxhbnMpOworICAgRlJPTSBwZ19wcmVwYXJlZF9zdGF0 ZW1lbnQoKSBwKG5hbWUsIHN0YXRlbWVudCwgcHJlcGFyZV90aW1lLCBwYXJhbWV0ZXJfdHlw ZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxlcywgcGFyYW1ldGVyX29yaWdfY29sdW1ucywgcmVz dWx0X3R5cGVzLCBmcm9tX3NxbCwgZ2VuZXJpY19wbGFucywgY3VzdG9tX3BsYW5zKTsKIHBn X3ByZXBhcmVkX3hhY3RzfCBTRUxFQ1QgcC50cmFuc2FjdGlvbiwKICAgICBwLmdpZCwKICAg ICBwLnByZXBhcmVkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90 eXBlX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5 Lm91dAppbmRleCBkM2FjMDhjOWVlM2UuLjM1NzA5NWUxYjliNiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKQEAgLTc1LDcgKzc1LDkgQEAgT1JE RVIgQlkgdDEub2lkOwogIDQ2MDAgfCBwZ19icmluX2Jsb29tX3N1bW1hcnkKICA0NjAxIHwg cGdfYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeQogIDUwMTcgfCBwZ19tY3ZfbGlzdAotKDYg cm93cykKKyA4MjQzIHwgcGdfZW5jcnlwdGVkX2RldAorIDgyNDQgfCBwZ19lbmNyeXB0ZWRf cm5kCisoOCByb3dzKQogCiAtLSBNYWtlIHN1cmUgdHlwYXJyYXkgcG9pbnRzIHRvIGEgInRy dWUiIGFycmF5IHR5cGUgb2Ygb3VyIG93biBiYXNlCiBTRUxFQ1QgdDEub2lkLCB0MS50eXBu YW1lIGFzIGJhc2V0eXBlLCB0Mi50eXBuYW1lIGFzIGFycmF5dHlwZSwKQEAgLTE3MSwxMCAr MTczLDEyIEBAIFdIRVJFIHQxLnR5cGlucHV0ID0gcDEub2lkIEFORCB0MS50eXB0eXBlIGlu ICgnYicsICdwJykgQU5EIE5PVAogICAgICh0MS50eXBlbGVtICE9IDAgQU5EIHQxLnR5cGxl biA8IDApIEFORCBOT1QKICAgICAocDEucHJvcmV0dHlwZSA9IHQxLm9pZCBBTkQgTk9UIHAx LnByb3JldHNldCkKIE9SREVSIEJZIDE7Ci0gb2lkICB8ICB0eXBuYW1lICB8IG9pZCB8IHBy b25hbWUgCi0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tCi0gMTc5MCB8IHJl ZmN1cnNvciB8ICA0NiB8IHRleHRpbgotKDEgcm93KQorIG9pZCAgfCAgICAgdHlwbmFtZSAg ICAgIHwgb2lkICB8IHByb25hbWUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0KKyAxNzkwIHwgcmVmY3Vyc29yICAgICAgICB8ICAgNDYgfCB0ZXh0aW4K KyA4MjQzIHwgcGdfZW5jcnlwdGVkX2RldCB8IDEyNDQgfCBieXRlYWluCisgODI0NCB8IHBn X2VuY3J5cHRlZF9ybmQgfCAxMjQ0IHwgYnl0ZWFpbgorKDMgcm93cykKIAogLS0gVmFybGVu YSBhcnJheSB0eXBlcyB3aWxsIHBvaW50IHRvIGFycmF5X2luCiAtLSBFeGNlcHRpb24gYXMg b2YgOC4xOiBpbnQydmVjdG9yIGFuZCBvaWR2ZWN0b3IgaGF2ZSB0aGVpciBvd24gSS9PIHJv dXRpbmVzCkBAIC0yMjMsMTAgKzIyNywxMiBAQCBXSEVSRSB0MS50eXBvdXRwdXQgPSBwMS5v aWQgQU5EIHQxLnR5cHR5cGUgaW4gKCdiJywgJ3AnKSBBTkQgTk9UCiAgICAgICAocDEub2lk ID0gJ2FycmF5X291dCc6OnJlZ3Byb2MgQU5ECiAgICAgICAgdDEudHlwZWxlbSAhPSAwIEFO RCB0MS50eXBsZW4gPSAtMSkpKQogT1JERVIgQlkgMTsKLSBvaWQgIHwgIHR5cG5hbWUgIHwg b2lkIHwgcHJvbmFtZSAKLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0KLSAx NzkwIHwgcmVmY3Vyc29yIHwgIDQ3IHwgdGV4dG91dAotKDEgcm93KQorIG9pZCAgfCAgICAg dHlwbmFtZSAgICAgIHwgb2lkIHwgcHJvbmFtZSAgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tKy0tLS0tLS0tLS0KKyAxNzkwIHwgcmVmY3Vyc29yICAgICAgICB8ICA0NyB8 IHRleHRvdXQKKyA4MjQzIHwgcGdfZW5jcnlwdGVkX2RldCB8ICAzMSB8IGJ5dGVhb3V0Cisg ODI0NCB8IHBnX2VuY3J5cHRlZF9ybmQgfCAgMzEgfCBieXRlYW91dAorKDMgcm93cykKIAog U0VMRUNUIHQxLm9pZCwgdDEudHlwbmFtZSwgcDEub2lkLCBwMS5wcm9uYW1lCiBGUk9NIHBn X3R5cGUgQVMgdDEsIHBnX3Byb2MgQVMgcDEKQEAgLTI4NywxMCArMjkzLDEyIEBAIFdIRVJF IHQxLnR5cHJlY2VpdmUgPSBwMS5vaWQgQU5EIHQxLnR5cHR5cGUgaW4gKCdiJywgJ3AnKSBB TkQgTk9UCiAgICAgKHQxLnR5cGVsZW0gIT0gMCBBTkQgdDEudHlwbGVuIDwgMCkgQU5EIE5P VAogICAgIChwMS5wcm9yZXR0eXBlID0gdDEub2lkIEFORCBOT1QgcDEucHJvcmV0c2V0KQog T1JERVIgQlkgMTsKLSBvaWQgIHwgIHR5cG5hbWUgIHwgb2lkICB8IHByb25hbWUgIAotLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tCi0gMTc5MCB8IHJlZmN1cnNvciB8 IDI0MTQgfCB0ZXh0cmVjdgotKDEgcm93KQorIG9pZCAgfCAgICAgdHlwbmFtZSAgICAgIHwg b2lkICB8ICBwcm9uYW1lICAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tCisgMTc5MCB8IHJlZmN1cnNvciAgICAgICAgfCAyNDE0IHwgdGV4dHJlY3YK KyA4MjQzIHwgcGdfZW5jcnlwdGVkX2RldCB8IDI0MTIgfCBieXRlYXJlY3YKKyA4MjQ0IHwg cGdfZW5jcnlwdGVkX3JuZCB8IDI0MTIgfCBieXRlYXJlY3YKKygzIHJvd3MpCiAKIC0tIFZh cmxlbmEgYXJyYXkgdHlwZXMgd2lsbCBwb2ludCB0byBhcnJheV9yZWN2CiAtLSBFeGNlcHRp b24gYXMgb2YgOC4xOiBpbnQydmVjdG9yIGFuZCBvaWR2ZWN0b3IgaGF2ZSB0aGVpciBvd24g SS9PIHJvdXRpbmVzCkBAIC0zNDgsMTAgKzM1NiwxMiBAQCBXSEVSRSB0MS50eXBzZW5kID0g cDEub2lkIEFORCB0MS50eXB0eXBlIGluICgnYicsICdwJykgQU5EIE5PVAogICAgICAgKHAx Lm9pZCA9ICdhcnJheV9zZW5kJzo6cmVncHJvYyBBTkQKICAgICAgICB0MS50eXBlbGVtICE9 IDAgQU5EIHQxLnR5cGxlbiA9IC0xKSkpCiBPUkRFUiBCWSAxOwotIG9pZCAgfCAgdHlwbmFt ZSAgfCBvaWQgIHwgcHJvbmFtZSAgCi0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0KLSAxNzkwIHwgcmVmY3Vyc29yIHwgMjQxNSB8IHRleHRzZW5kCi0oMSByb3cpCisg b2lkICB8ICAgICB0eXBuYW1lICAgICAgfCBvaWQgIHwgIHByb25hbWUgIAorLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0KKyAxNzkwIHwgcmVmY3Vyc29y ICAgICAgICB8IDI0MTUgfCB0ZXh0c2VuZAorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwg MjQxMyB8IGJ5dGVhc2VuZAorIDgyNDQgfCBwZ19lbmNyeXB0ZWRfcm5kIHwgMjQxMyB8IGJ5 dGVhc2VuZAorKDMgcm93cykKIAogU0VMRUNUIHQxLm9pZCwgdDEudHlwbmFtZSwgcDEub2lk LCBwMS5wcm9uYW1lCiBGUk9NIHBnX3R5cGUgQVMgdDEsIHBnX3Byb2MgQVMgcDEKQEAgLTcw Nyw2ICs3MTcsOCBAQCBDUkVBVEUgVEFCTEUgdGFiX2NvcmVfdHlwZXMgQVMgU0VMRUNUCiAg ICd0eHQnOjp0ZXh0LAogICB0cnVlOjpib29sLAogICBFJ1xceERFQURCRUVGJzo6Ynl0ZWEs CisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfcm5kLAorICBFJ1xceERFQURCRUVG Jzo6cGdfZW5jcnlwdGVkX2RldCwKICAgQicxMDAwMSc6OmJpdCwKICAgQicxMDAwMSc6OnZh cmJpdCBBUyB2YXJiaXQsCiAgICcxMi4zNCc6Om1vbmV5LApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKaW5kZXggOWY2NDRhMGMxYjJjLi5lNjhiY2NmZGM4NzkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTI5LDYgKzEyOSw5IEBAIHRlc3Q6IHBs YW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJl cGFyZSBjb252ZXJzaW9uIHRyCiAjIC0tLS0tLS0tLS0KIHRlc3Q6IHBhcnRpdGlvbl9qb2lu IHBhcnRpdGlvbl9wcnVuZSByZWxvcHRpb25zIGhhc2hfcGFydCBpbmRleGluZyBwYXJ0aXRp b25fYWdncmVnYXRlIHBhcnRpdGlvbl9pbmZvIHR1cGxlc29ydCBleHBsYWluIGNvbXByZXNz aW9uIG1lbW9pemUgc3RhdHMKIAorIyBXSVAKK3Rlc3Q6IGNvbHVtbl9lbmNyeXB0aW9uCisK ICMgZXZlbnRfdHJpZ2dlciBjYW5ub3QgcnVuIGNvbmN1cnJlbnRseSB3aXRoIGFueSB0ZXN0 IHRoYXQgcnVucyBEREwKICMgb2lkam9pbnMgaXMgcmVhZC1vbmx5LCB0aG91Z2gsIGFuZCBz aG91bGQgcnVuIGxhdGUgZm9yIGJlc3QgY292ZXJhZ2UKIHRlc3Q6IGV2ZW50X3RyaWdnZXIg b2lkam9pbnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWlu LmMgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCmluZGV4IGE0YjM1NGM5 ZTZjMC4uOGFkMWY0NThkNTAzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3Jl Z3Jlc3NfbWFpbi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMK QEAgLTgyLDcgKzgyLDcgQEAgcHNxbF9zdGFydF90ZXN0KGNvbnN0IGNoYXIgKnRlc3RuYW1l LAogCQkJCQkgICBiaW5kaXIgPyBiaW5kaXIgOiAiIiwKIAkJCQkJICAgYmluZGlyID8gIi8i IDogIiIsCiAJCQkJCSAgIGRibGlzdC0+c3RyLAotCQkJCQkgICAiLXYgSElERV9UQUJMRUFN PW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24iLAorCQkJCQkgICAiLXYgSElERV9U QUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24gLXYgSElERV9DT0xVTU5f RU5DUllQVElPTj1vbiIsCiAJCQkJCSAgIGluZmlsZSwKIAkJCQkJICAgb3V0ZmlsZSk7CiAJ aWYgKG9mZnNldCA+PSBzaXplb2YocHNxbF9jbWQpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZDA1NjczN2FkNTE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCkBAIC0wLDAgKzEsMTI0IEBACitc c2V0IEhJREVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKKworQ1JFQVRFIFJPTEUgcmVncmVz c19lbmNfdXNlcjE7CisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAor ICAgIHJlYWxtID0gJ3Rlc3QnCispOworCitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZ IGNtazEgSVMgJ2NvbHVtbiBtYXN0ZXIga2V5JzsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIg S0VZIGNtazFhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworCitDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkgY21rMiBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0MicKKyk7CisK K0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyYSBXSVRIICgKKyAgICByZWFsbSA9ICd0 ZXN0MicKKyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZB TFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9 ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVF RicKKyk7CisKK0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgSVMgJ2Nv bHVtbiBlbmNyeXB0aW9uIGtleSc7CisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsxIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBh bGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0g J1x4REVBREJFRUYnCispOworCistLSBkdXBsaWNhdGUKK0FMVEVSIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsx YSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVk X3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgZmFpbCBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisg ICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1 ZSA9ICdceERFQURCRUVGJworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsyIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazIsCisgICAg YWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9 ICdceERFQURCRUVGJworKSwKKygKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazJhLAor ICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFs dWUgPSAnXHhERUFEQkVFRicKKyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrNCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAg IGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUg PSAnXHhERUFEQkVFRicKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBp bnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCispOworCitDUkVBVEUgVEFCTEUgdGJsXzI5ZjMg KAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEgg KGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworCitcZCB0YmxfMjlmMworXGQr IHRibF8yOWYzCisKK0NSRUFURSBUQUJMRSB0YmxfNDQ3ZiAoCisgICAgYSBpbnQsCisgICAg YiB0ZXh0CispOworCitBTFRFUiBUQUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBF TkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk7CisKK1xkIHRi bF80NDdmCitcZCsgdGJsXzQ0N2YKKworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJF U1RSSUNUOyAgLS0gZmFpbAorCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyIFJFTkFN RSBUTyBjbWszOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21r MzsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNt a3k7ICAtLSBmYWlsCisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFN RSBUTyBjZWszOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRP IGNlazM7ICAtLSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5B TUUgVE8gY2VreTsgIC0tIGZhaWwKKworU0VUIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CitE Uk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0gZmFpbAorRFJPUCBDT0xVTU4g TUFTVEVSIEtFWSBjbWszOyAgLS0gZmFpbAorUkVTRVQgUk9MRTsKK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05FUiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NF VCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMzsgIC0tIG9rIG5vdworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gb2sg bm93CitSRVNFVCBST0xFOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBE Uk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MWEpOyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBW QUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0FMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZhaWwKKworRFJPUCBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWw7CisK K0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZ IGZhaWw7CisKK0RST1AgUk9MRSByZWdyZXNzX2VuY191c2VyMTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAppbmRleCBlOTEwNzJhNzVkMWQuLmM5ZjVmMGNl ZDlmMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Mu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbApAQCAt NDAsNiArNDAsOCBAQCBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdOIERBVEEgV1JB UFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRkcl91 c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJP TEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBHUkFOVCBBTEwgT04gVEFC TEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZP UiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJFVk9LRSBERUxFVEUgT04gVEFCTEVTIEZST00g cmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgYWRkcl9jbWsg V0lUSCAocmVhbG0gPSAnJyk7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJf Y2VrIFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGFkZHJfY21rLCBlbmNyeXB0 ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5zZm9ybSB3b3VsZCBiZSBxdWl0ZSB1bnNh ZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0gZXhjZXB0IHRoYXQgdGhlIFNRTCBsYW5n dWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFuc2Zvcm1zOgogQ1JFQVRFIFRSQU5TRk9S TSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC05OCw3ICsxMDAsOCBAQCBDUkVBVEUgU1RB VElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5n ZW50YWJsZTsKIAkJKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAoJ3RleHQgc2VhcmNoIGNv bmZpZ3VyYXRpb24nKSwKIAkJKCdwb2xpY3knKSwgKCd1c2VyIG1hcHBpbmcnKSwgKCdkZWZh dWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogCQkoJ29wZXJhdG9yIG9mIGFjY2VzcyBtZXRo b2QnKSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3MgbWV0aG9kJyksCi0JCSgncHVibGljYXRpb24g bmFtZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRpb24nKQorCQkoJ3B1YmxpY2F0aW9u IG5hbWVzcGFjZScpLCAoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJyksCisJCSgnY29sdW1uIGVu Y3J5cHRpb24ga2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnKSwgKCdjb2x1 bW4gbWFzdGVyIGtleScpCiAJTE9PUAogCQlGT1IgbmFtZXMgSU4gVkFMVUVTICgne2VpbnN9 JyksICgne2FkZHJfbnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBkcmVpfScpCiAJCUxP T1AKQEAgLTE0Myw2ICsxNDYsMTAgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2Vu dGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiBTRUxFQ1QgcGdf Z2V0X29iamVjdF9hZGRyZXNzKCdwdWJsaWNhdGlvbicsICd7b25lLHR3b30nLCAne30nKTsK IFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3N1YnNjcmlwdGlvbicsICd7b25lfScs ICd7fScpOwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0aW9uJywg J3tvbmUsdHdvfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnY29s dW1uIGVuY3J5cHRpb24ga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitTRUxFQ1QgcGdfZ2V0X29i amVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZSx0d299JywgJ3t9 Jyk7CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScs ICd7b25lfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnY29sdW1u IG1hc3RlciBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7CiAKIC0tIHRlc3Qgc3VjY2Vzc2Z1 bCBjYXNlcwogV0lUSCBvYmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCkBA IC0xNjYsNiArMTczLDkgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVf c3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiAJCQkJKCd0eXBlJywgJ3th ZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogCQkJCSgnY2FzdCcsICd7aW50OH0nLCAne2lu dDR9JyksCiAJCQkJKCdjb2xsYXRpb24nLCAne2RlZmF1bHR9JywgJ3t9JyksCisJCQkJKCdj b2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJfY2VrfScsICd7fScpLAorCQkJCSgnY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2FkZHJfY2VrfScsICd7YWRkcl9jbWt9Jyks CisJCQkJKCdjb2x1bW4gbWFzdGVyIGtleScsICd7YWRkcl9jbWt9JywgJ3t9JyksCiAJCQkJ KCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGFfY2hrfScsICd7 fScpLAogCQkJCSgnZG9tYWluIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLmdlbmRvbWFpbn0n LCAne2RvbWNvbnN0cn0nKSwKIAkJCQkoJ2NvbnZlcnNpb24nLCAne3BnX2NhdGFsb2csIGtv aThfcl90b19taWN9JywgJ3t9JyksCkBAIC0yMTksNiArMjI5LDggQEAgQ1JFQVRFIFNUQVRJ U1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2Vu dGFibGU7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBh ZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOwor RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNU RVIgS0VZIGFkZHJfY21rOwogCiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVNDQURFOwogCkBA IC0yNDMsNiArMjU1LDkgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVf c3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiAgICAgKCdwZ190eXBlJzo6 cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdwZ19jb2xsYXRpb24nOjpyZWdjbGFzcywgMCwg MCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgncGdfY29sZW5ja2V5Jzo6cmVnY2xhc3MsIDAs IDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAoJ3BnX2NvbGVuY2tleWRh dGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRh CisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVt biBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MsIDAsIDApLCAt LSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19jb252ZXJzaW9uJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdwZ19hdHRyZGVmJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpAQCAtMjczLDYgKzI4OCw3IEBAIENSRUFURSBT VEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNw LmdlbnRhYmxlOwogICAgICgncGdfZXZlbnRfdHJpZ2dlcic6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gZXZlbnQgdHJpZ2dlcgogICAgICgncGdfcG9saWN5Jzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBwb2xpY3kKICAgICAoJ3BnX3B1YmxpY2F0aW9uJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBwdWJsaWNhdGlvbgorICAgICgncGdfcHVibGljYXRpb25fbmFtZXNwYWNlJzo6 cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwdWJsaWNhdGlvbiBuYW1lc3BhY2UKICAgICAoJ3Bn X3B1YmxpY2F0aW9uX3JlbCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24g cmVsYXRpb24KICAgICAoJ3BnX3N1YnNjcmlwdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0g bm8gc3Vic2NyaXB0aW9uCiAgICAgKCdwZ190cmFuc2Zvcm0nOjpyZWdjbGFzcywgMCwgMCkg LS0gbm8gdHJhbnNmb3JtYXRpb24KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3ByZXBhcmUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJlcGFyZS5zcWwKaW5kZXgg YzYwOThkYzk1Y2VlLi43ZGI3ODg3MzVjN2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3ByZXBhcmUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUu c3FsCkBAIC03NSw3ICs3NSw3IEBAIENSRUFURSBURU1QT1JBUlkgVEFCTEUgcTVfcHJlcF9u b2RhdGEgQVMgRVhFQ1VURSBxNSgyMDAsICdEVEFBQUEnKQogUFJFUEFSRSBxOCBBUwogICAg IFVQREFURSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7CiAK LVNFTEVDVCBuYW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0X3R5cGVz IEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50cworU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwg cGFyYW1ldGVyX3R5cGVzLCBwYXJhbWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRlcl9vcmln X2NvbHVtbnMsIHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKICAg ICBPUkRFUiBCWSBuYW1lOwogCiAtLSB0ZXN0IERFQUxMT0NBVEUgQUxMOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wc3FsLnNxbAppbmRleCAxMTQ5YzZhODM5ZWYuLmU4OGM3MGQzMDI0YyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwKQEAgLTExOSw2ICsxMTksMjMgQEAgQ1JFQVRFIFRBQkxFIGJ1YnVi dShhIGludCkgXGdkZXNjCiAtLSBhbGwgb24gb25lIGxpbmUKIFNFTEVDVCAzIEFTIHgsICdI ZWxsbycsIDQgQVMgeSwgdHJ1ZSBBUyAiZGlydHlcbmFtZSIgXGdkZXNjIFxnCiAKKworLS0g XGdlbmNyCistLSAoVGhpcyBqdXN0IHRlc3RzIHRoZSBwYXJhbWV0ZXIgcGFzc2luZzsgdGhl cmUgaXMgbm8gZW5jcnlwdGlvbiBoZXJlLikKKworQ1JFQVRFIFRBQkxFIHRlc3RfZ2VuY3Ig KGEgaW50LCBiIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKDEsICdv bmUnKSBcZ2VuY3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhID0gMSBcZ2Vu Y3IKKworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKCQxLCAkMikgXGdlbmNyIDIg J3R3bycKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhIElOICgkMSwgJDIpIFxn ZW5jciAyIDMKKworLS0gdGVzdCBwYXJzZSBlcnJvcgorU0VMRUNUICogRlJPTSB0ZXN0X2dl bmNyIFdIRVJFIGEgPSB4IFxnZW5jcgorLS0gdGVzdCBiaW5kIGVycm9yCitTRUxFQ1QgKiBG Uk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9ICQxIFxnZW5jcgorCisKIC0tIFxnZXhlYwogCiBj cmVhdGUgdGVtcG9yYXJ5IHRhYmxlIGdleGVjX3Rlc3QoYSBpbnQsIGIgdGV4dCwgYyBkYXRl LCBkIGZsb2F0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2Fu aXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAppbmRleCA1 ZWRjMWYxZjZlZDAuLjBmZmU0NWZkMzcwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvdHlwZV9zYW5pdHkuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVf c2FuaXR5LnNxbApAQCAtNTI5LDYgKzUyOSw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90 eXBlcyBBUyBTRUxFQ1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4 REVBREJFRUYnOjpieXRlYSwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2VuY3J5cHRlZF9ybmQs CisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfZGV0LAogICBCJzEwMDAxJzo6Yml0 LAogICBCJzEwMDAxJzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEyLjM0Jzo6bW9uZXksCgpi YXNlLWNvbW1pdDogNDE0OGM4YjNkYWY5NWNhMzA4ZjA1NWUxMDNmNmVlODJlMjViOGY5OQot LSAKMi4zNy4zCgo= --------------ULxHWSvzuDhj7RnFhfk5j0Gg--