Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ruUx6-005md3-0r for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Apr 2024 10:13:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ruUx5-000cG3-7j for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Apr 2024 10:13:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ruUx3-000cBR-1l for pgsql-hackers@lists.postgresql.org; Wed, 10 Apr 2024 10:13:10 +0000 Received: from wfout7-smtp.messagingengine.com ([64.147.123.150]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ruUwv-000B1C-1o for pgsql-hackers@postgresql.org; Wed, 10 Apr 2024 10:13:08 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.west.internal (Postfix) with ESMTP id AC2FE1C000BD for ; Wed, 10 Apr 2024 06:12:56 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Wed, 10 Apr 2024 06:12:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1712743976; x=1712830376; bh=JE0qQhtzar NGjSt5etRVVYum8xK57H1sX+WTJSEOEuA=; b=k7zCVY4ckGRc9C1pfGDW15EHvD z/vl9EZW8IEljg7oXru6q4s5Bx834JaO4t4bJ8IGJmkGGF+SnBxdjQER+aBbWlNj KPyVh4jJyuL8VNR3Bu62It5KekNoK+/HbqNOBsbasFUo2lVAntbl20bHtas3O/Qa EQCiVM8Pp1uXqKutI0VNCsz2GQRLZn1GSMHsvOpv42gIu4AdQ2+vmyJjpk2JNEvP 9JRwLzmWgldJThSATemrBQ05quRUEtHYFoK2oASrAYQUXd1myldxcOF+pcWMI/QJ kOgRUk7rDl/gisr24/GCuEf4gLWfbI0F/azVgSwjSUofSPqpSicbpRPTyyUg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1712743976; x=1712830376; bh=JE0qQhtzarNGjSt5etRVVYum8xK5 7H1sX+WTJSEOEuA=; b=chIhhMZTWUKC7+PsoraIMBgAyf3WnZnlE/z52EiQ7/Ob Io+SWvU5QwCq3s/sCuU56tVLUOEBC2fAwkTOKKli54gT7oWakGdkDSLA123wCt4A dUPqGad5RE/NzVEJQrsIvSuSs8L0hFMB9jtmDPsHYHKJDRHVgYMm3pBYfmVo+l1v 5HEbW+w+kOfbey7qqvpddfgaYc2eszlY67hY7whFPByV3d6LWk5JEmvOBMTjEAr2 qYPuLmQooXQ9W6nbWUCDNuezfpxZOoS9ENQg0P/a5I1v91Xr+GFlklT4CWv0cLWv ubfdiYJTT1yn8J1nC5SWKlN6AAH1xkCEaC1xivxZ2Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudehiedgvdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertddvjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhes vghishgvnhhtrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeelgedvgeeghedvie ekkeduieekhfeludegleeitdejieevgffhfeefjeevgfffieenucffohhmrghinhepphho shhtghhrvghsqhhlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 10 Apr 2024 06:12:54 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------FFXbhPa1FY2yJodyKgpMO0CW" Message-ID: Date: Wed, 10 Apr 2024 12:12:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Transparent column encryption From: Peter Eisentraut To: pgsql-hackers References: <1034b6f1-ccab-8a22-c843-71104ebedf01@enterprisedb.com> <40c43d0d-ae4b-fe34-2667-771b3718384e@enterprisedb.com> <47e17f03-6595-6c09-8978-7a1581cad6f2@enterprisedb.com> <7a430d89-233b-5cd7-6892-9fed06695d39@enterprisedb.com> <20230312001125.ijeu4imbwlhj5flf@awork3.anarazel.de> <43a88695-5e0b-4379-94cf-0392fdea4be9@enterprisedb.com> <20230313204119.4mkepdvixcxrwpsc@awork3.anarazel.de> <20230313211108.zge6vnqukexkih62@awork3.anarazel.de> Content-Language: en-US In-Reply-To: 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. --------------FFXbhPa1FY2yJodyKgpMO0CW Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit To kick some things off for PG18, here is an updated version of the patch for automatic client-side column-level encryption. (See commit message included in the patch for a detailed description, if you have forgotten. Also, see [0] if the thread has dropped off your local mail storage.) [0]: https://www.postgresql.org/message-id/flat/89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com This patch got stuck around CF 2023-03 because expanding the size of the tuple descriptor (with new pg_attribute columns) had a noticeable performance impact. Various work in PG17 has made it more manageable to have columns in pg_attribute that are not in the tuple descriptor, and this patch now takes advantage of that (and I wanted to do this merge soon to verify that the changes in PG17 are usable). Otherwise, this version v20 is functionally unchanged over the last posted version v19. Obviously, it's early days, so there will be plenty of time to have discussions on various other aspects of this patch. I'm keeping a keen eye on the discussion of protocol extensions, for example. --------------FFXbhPa1FY2yJodyKgpMO0CW Content-Type: text/plain; charset=UTF-8; name="v20-0001-Automatic-client-side-column-level-encryption.patch" Content-Disposition: attachment; filename*0="v20-0001-Automatic-client-side-column-level-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSBlMDhiNDliMzlhNTcyYzc4MTZhNDMwYTU3NmUxYTE0NWE5NjVkNjBhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAxMCBBcHIgMjAyNCAxMTo1Mjo1OCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjIwXSBBdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5 cHRpb24KClRoaXMgZmVhdHVyZSBlbmFibGVzIHRoZSBhdXRvbWF0aWMgZW5jcnlwdGlvbiBh bmQgZGVjcnlwdGlvbiBvZgpwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRo ZSBkYXRhIGZvciB0aG9zZSBjb2x1bW5zIHRoZW4Kb25seSBldmVyIGFwcGVhcnMgaW4gY2lw aGVydGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcyBwcm90ZWN0ZWQgZnJvbQpEQkFzLCBz eXNhZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywgZXRjLiBhcyB3ZWxsIGFzIGFjY2lkZW50YWwg bGVha2FnZQp0byBzZXJ2ZXIgbG9ncywgZmlsZS1zeXN0ZW0gYmFja3VwcywgZXRjLiAgVGhl IGNhbm9uaWNhbCB1c2UgY2FzZSBmb3IKdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0 IGNhcmQgbnVtYmVycyBlbmNyeXB0ZWQsIGluIGFjY29yZGFuY2UKd2l0aCBQQ0kgRFNTLCBh cyB3ZWxsIGFzIHNpbWlsYXIgc2l0dWF0aW9ucyBpbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5 Cm51bWJlcnMgZXRjLiAgT25lIGNhbid0IGRvIGFueSBjb21wdXRhdGlvbnMgd2l0aCBlbmNy eXB0ZWQgdmFsdWVzIG9uCnRoZSBzZXJ2ZXIsIGJ1dCBmb3IgdGhlc2UgdXNlIGNhc2VzLCB0 aGF0IGlzIG5vdCBuZWNlc3NhcnkuICBUaGlzCmZlYXR1cmUgZG9lcyBzdXBwb3J0IGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbiBhcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUKZGVmYXVsdCBy YW5kb21pemVkIGVuY3J5cHRpb24sIHNvIGluIHRoYXQgbW9kZSBvbmUgY2FuIGRvIGVxdWFs aXR5Cmxvb2t1cHMsIGF0IHRoZSBjb3N0IG9mIHNvbWUgc2VjdXJpdHkuCgpUaGlzIGZ1bmN0 aW9uYWxpdHkgYWxzbyBleGlzdHMgaW4gb3RoZXIgZGF0YWJhc2UgcHJvZHVjdHMsIGFuZCB0 aGUKb3ZlcmFsbCBjb25jZXB0cyB3ZXJlIG1vc3RseSBhZG9wdGVkIGZyb20gdGhlcmUuCgoo Tm90ZTogVGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYW55IG9uLWRpc2sg ZW5jcnlwdGlvbgpmZWF0dXJlLiAgQm90aCBjYW4gZXhpc3QgaW5kZXBlbmRlbnRseS4pCgpZ b3UgZGVjbGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3Rh dGVtZW50LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMg a2V5IGNhbGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBp cyBhIGNhdGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBl bmNyeXB0ZWQgYnkgYW4gYXN5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVy IGtleSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0 IHNvbWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxl IGluIGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2 ZXIgc2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRo ZSBjbGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZv cm1hdGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVk cyB0byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9u IHRvIGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZv cndhcmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01L cywgbGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRo YXQKc3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlz LiAgUmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmls ZSwgb3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZy b20gYSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlv biB0byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBs ZSwgZm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNo IENFSyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNl LAplbmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90 YXRlZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwg dGhlIGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2Ug Y291bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQg d291bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24g YWxnb3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpSU0FFU19P QUVQX1NIQV8xIG9yIF8yNTYuICBUaGUgQ0VLIHByb2Nlc3MgdXNlcwpBRUFEX0FFU18qX0NC Q19ITUFDX1NIQV8qIHdpdGggc2V2ZXJhbCBzdHJlbmd0aHMuCgpJbiB0aGUgc2VydmVyLCB0 aGUgZW5jcnlwdGVkIGRhdHVtcyBhcmUgc3RvcmVkIGluIHR5cGVzIGNhbGxlZApwZ19lbmNy eXB0ZWRfcm5kIGFuZCBwZ19lbmNyeXB0ZWRfZGV0IChmb3IgcmFuZG9taXplZCBhbmQKZGV0 ZXJtaW5pc3RpYyBlbmNyeXB0aW9uKS4gIFRoZXNlIGFyZSBlc3NlbnRpYWxseSBjb3VzaW5z IG9mIGJ5dGVhLgpGb3IgdGhlIHJlc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSBiZWxvdyB0 aGUgcHJvdG9jb2wgaGFuZGxpbmcsIHRoZXJlCmlzIG5vdGhpbmcgc3BlY2lhbCBhYm91dCB0 aG9zZS4gIEZvciBleGFtcGxlLCBwZ19lbmNyeXB0ZWRfcm5kIGhhcyBubwpvcGVyYXRvcnMg YXQgYWxsLCBwZ19lbmNyeXB0ZWRfZGV0IGhhcyBvbmx5IGFuIGVxdWFsaXR5IG9wZXJhdG9y LgpwZ19hdHRyaWJ1dGUgaGFzIGEgbmV3IGNvbHVtbiBhdHRyZWFsdHlwaWQgdGhhdCBzdG9y ZXMgdGhlIG9yaWdpbmFsCnR5cGUgb2YgdGhlIGRhdGEgaW4gdGhlIGNvbHVtbi4gIFRoaXMg aXMgb25seSB1c2VkIGZvciBwcm92aWRpbmcgaXQgdG8KY2xpZW50cywgc28gdGhhdCBoaWdo ZXItbGV2ZWwgY2xpZW50cyBjYW4gY29udmVydCB0aGUgZGVjcnlwdGVkIHZhbHVlCnRvIHRo ZWlyIGFwcHJvcHJpYXRlIGRhdGEgdHlwZXMgaW4gdGhlaXIgZW52aXJvbm1lbnRzLgoKVGhl IHByb3RvY29sIGV4dGVuc2lvbnMgYXJlIGd1YXJkZWQgYnkgYSBuZXcgcHJvdG9jb2wgZXh0 ZW5zaW9uIG9wdGlvbgoiX3BxXy5jb2x1bW5fZW5jcnlwdGlvbiIuICBJZiB0aGlzIGlzIG5v dCBzZXQsIG5vdGhpbmcgY2hhbmdlcywgdGhlCnByb3RvY29sIHN0YXlzIHRoZSBzYW1lLCBh bmQgbm8gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIGhhcHBlbnMuCgpUbyBnZXQgYXV0b21h dGljYWxseSBlbmNyeXB0ZWQgZGF0YSBpbnRvIHRoZSBkYXRhYmFzZSAoYXMgb3Bwb3NlZCB0 bwpyZWFkaW5nIGl0IG91dCksIGl0IGlzIHJlcXVpcmVkIHRvIHVzZSBwcm90b2NvbC1sZXZl bCBwcmVwYXJlZApzdGF0ZW1lbnRzIChpLmUuLCBleHRlbmRlZCBxdWVyeSkuICBUaGUgY2xp ZW50IG11c3QgZmlyc3QgcHJlcGFyZSBhCnN0YXRlbWVudCwgdGhlbiBkZXNjcmliZSB0aGUg c3RhdGVtZW50IHRvIGdldCBwYXJhbWV0ZXIgbWV0YWRhdGEsCndoaWNoIGluZGljYXRlcyB3 aGljaCBwYXJhbWV0ZXJzIGFyZSB0byBiZSBlbmNyeXB0ZWQgYW5kIGhvdy4gIGxpYnBxJ3MK UFFleGVjUGFyYW1zKCkgZG9lcyB0aGlzIGludGVybmFsbHkuICBGb3IgdGhlIGFzeW5jaHJv bm91cyBpbnRlcmZhY2VzLAphZGRpdGlvbmFsIGxpYnBxIGZ1bmN0aW9ucyBhcmUgYWRkZWQg dG8gYmUgYWJsZSB0byBwYXNzIHRoZSBkZXNjcmliZQpyZXN1bHQgYmFjayBpbnRvIHRoZSBz dGF0ZW1lbnQgZXhlY3V0aW9uIGZ1bmN0aW9uLiAgKE90aGVyIGNsaWVudCBBUElzCnRoYXQg aGF2ZSBhICJzdGF0ZW1lbnQgaGFuZGxlIiBjb25jZXB0IGNvdWxkIGRvIHRoaXMgbW9yZSBl bGVnYW50bHkKYW5kIHByb2JhYmx5IHdpdGhvdXQgYW55IEFQSSBjaGFuZ2VzLikgIHBzcWwg YWxzbyBzdXBwb3J0cyB0aGlzIGlmIHRoZQpcYmluZCBjb21tYW5kIGlzIHVzZWQuCgpBbm90 aGVyIGNoYWxsZW5nZSBpcyB0aGF0IHRoZSBwYXJzZSBhbmFseXNpcyBtdXN0IGNoZWNrIHdo aWNoCnVuZGVybHlpbmcgY29sdW1uIGEgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvLiAgVGhp cyBpcyBzaW1pbGFyIHRvCnJlc29yaWd0YmwgYW5kIHJlc29yaWdjb2wgaW4gdGhlIG9wcG9z aXRlIGRpcmVjdGlvbi4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L21lc3NhZ2UtaWQvZmxhdC84OTE1NzkyOS1jMmI2LTgxN2ItNjAyNS04ZTRiMmQ4OWQ4OGYl NDBlbnRlcnByaXNlZGIuY29tCi0tLQogZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwgICAg ICAgICAgICAgICAgICAgIHwgIDE4ICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8IDMxNyArKysrKysrCiBkb2Mvc3JjL3NnbWwvY2hhcnNldC5z Z21sICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9zZ21sL2RhdGF0eXBl LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDYxICsrCiBkb2Mvc3JjL3NnbWwvZGRsLnNn bWwgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NDQgKysrKysrKysrCiBkb2Mvc3JjL3Nn bWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKysKIGRvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAyNiArCiBkb2Mvc3Jj L3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgfCAzMjIgKysrKysrKwog ZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgNDY4ICsr KysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAg ICB8ICAgNiArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNn bWwgfCAxOTcgKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tl eS5zZ21sIHwgMTM0ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgICAgICAg ICAgICAgICAgIHwgICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sICAgICAgICAg ICAgICAgICAgICB8ICAxMCArCiAuLi4vcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9r ZXkuc2dtbCAgICAgfCAxNzMgKysrKwogLi4uL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFz dGVyX2tleS5zZ21sICAgIHwgMTA3ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFi bGUuc2dtbCAgICAgICAgICAgIHwgIDU1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQu c2dtbCAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIC4uLi9zZ21sL3JlZi9kcm9wX2NvbHVt bl9lbmNyeXB0aW9uX2tleS5zZ21sICB8IDExMiArKysKIGRvYy9zcmMvc2dtbC9yZWYvZHJv cF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICB8IDExMiArKysKIGRvYy9zcmMvc2dtbC9yZWYv Z3JhbnQuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogZG9jL3NyYy9zZ21sL3Jl Zi9wZ19kdW1wLnNnbWwgICAgICAgICAgICAgICAgIHwgIDQyICsKIGRvYy9zcmMvc2dtbC9y ZWYvcGdfZHVtcGFsbC5zZ21sICAgICAgICAgICAgICB8ICAyNyArCiBkb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgMzkgKwogZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYyAgICAgICB8ICAgOCArCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMgICAgICAgICAgfCAyMzYgKysrKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jICAgICAgICB8ICAgMiArLQogc3Jj L2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RwYXJzZS55ICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA2MCArKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICA2ICsK IHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICAgICB8ICA2MSAr LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAgICAgICAgICAgIHwgICA0 ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDI3 MiArKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAg ICB8IDI4NyArKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvdG9hc3RpbmcuYyAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyAgICAgICAg ICAgICAgICAgIHwgIDE0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYyAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMg ICAgICAgICAgICAgfCA0NDkgKysrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY3Jl YXRlYXMuYyAgICAgICAgICAgICAgIHwgIDMwICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Rp c2NhcmQuYyAgICAgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv ZHJvcGNtZHMuYyAgICAgICAgICAgICAgIHwgIDE1ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC9jb21tYW5k cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8IDIzOSArKysrLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFyaWFibGUuYyAgICAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIHNyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxOTQgKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMgICAgICAgICAgICAgIHwgMTU3ICsrKysK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jICAgICAgICAgICB8ICAgMiAr LQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgIDE0 ICsKIHNyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9zdGFydHVwLmMgICAgICAgICAgICB8ICAx OSArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwg IDY0ICsrCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAg fCAgNTYgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAg ICB8IDM5OCArKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgICAg ICAgICAgICAgICB8IDEwNyArKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jICAgICAgICAgICB8ICA4MyArKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxz LmMgICAgICAgICAgICAgICAgfCAgMTggKy0KIHNyYy9iaW4vcGdfZHVtcC9jb21tb24uYyAg ICAgICAgICAgICAgICAgICAgICB8ICA0NCArCiBzcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxz LmMgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2RiLmMgICAgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDQxNiArKysrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAzNSArCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgMTQgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBhbGwuYyAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDEwOSArKysKIHNyYy9i aW4vcHNxbC9jb21tYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTkxICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQg Kwogc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iaW4vcHNxbC9zdGFydHVwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAx MCArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAg NzIgKy0KIHNyYy9jb21tb24vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvY29tbW9uL2NvbGVuYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxMDcgKysrCiBzcmMvY29tbW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmggICAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAg ICAgICB8ICAgNSArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAg ICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAg ICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgICAg ICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQg ICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUu aCAgICAgICAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tl eS5oICAgICAgICAgICAgfCAgNDkgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNr ZXlkYXRhLmggICAgICAgIHwgIDQ5ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFz dGVya2V5LmggICAgICAgICB8ICA1MCArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNs YXNzLmRhdCAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bl cmF0b3IuZGF0ICAgICAgICAgICB8ICAxNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29w ZmFtaWx5LmRhdCAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdCAgICAgICAgICAgICAgIHwgMTAwICsrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z190eXBlLmRhdCAgICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdHlwZS5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5k cy9jb2xlbmNjbWRzLmggICAgICAgICAgICAgfCAgMjYgKwogc3JjL2luY2x1ZGUvY29tbWFu ZHMvdGFibGVjbWRzLmggICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9jb21t b24vY29sZW5jLmggICAgICAgICAgICAgICAgICAgfCAgNTEgKysKIHNyYy9pbmNsdWRlL2xp YnBxL2xpYnBxLWJlLmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9s aWJwcS9wcm90b2NvbC5oICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDQxICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmggICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5j bHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2lu Y2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9p bmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMv aW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQgICAgICAgICAgICAgIHwgICA0ICsKIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyAgICAgICAgICAgICB8ICA0NiArCiBz cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYyAgICAgfCA4NDAgKysr KysrKysrKysrKysrKysrCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmggICAg ICAgICAgICAgfCAgMzMgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jICAgICAg ICAgICAgICAgIHwgNjc0ICsrKysrKysrKysrKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1wcm90b2NvbDMuYyAgICAgICAgICAgfCAxNTcgKysrLQogc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtdHJhY2UuYyAgICAgICAgICAgICAgIHwgIDU2ICstCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9saWJwcS1mZS5oICAgICAgICAgICAgICAgfCAgMjAgKwogc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtaW50LmggICAgICAgICAgICAgIHwgIDM3ICsKIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW50ZXJmYWNl cy9saWJwcS9ubHMubWsgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2ludGVyZmFj ZXMvbGlicHEvdC8wMTBfZW5jcnlwdC5wbCAgICAgICAgIHwgIDcyICsrCiBzcmMvaW50ZXJm YWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUgICAgICAgICAgfCAgIDEgKwogc3JjL2ludGVy ZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZSAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbnRl cmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQgICAgICAgICB8ICAyMyArCiBzcmMvdGVz dC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUgICAgICAgICB8ICAgMyArCiBzcmMv dGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZSAgICAgICAgICAgfCAgMzEgKwogc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vbWVzb24uYnVpbGQgICAgICAgIHwgIDIzICsKIC4u Li90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbCAgICAgICAgICAgICAgICB8IDMwNyArKysr KysrCiAuLi4vY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsICAgfCAx MjUgKysrCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jICAgICAg fCAxNjEgKysrKwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwg ICAgIHwgIDYxICsrCiBzcmMvdGVzdC9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24u b3V0ICAgIHwgNTQxICsrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29i amVjdF9hZGRyZXNzLm91dCAgfCAgMzUgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v aWRqb2lucy5vdXQgICAgICAgIHwgICA4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b3ByX3Nhbml0eS5vdXQgICAgICB8ICAxMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC90eXBlX3Nhbml0eS5vdXQgICAgIHwgICA2ICstCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGdf cmVncmVzc19tYWluLmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29sdW1uX2VuY3J5cHRpb24uc3FsICAgIHwgMzcxICsrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwgICAgICAgfCAgMTEgKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsICAgICAgICAgIHwgICAyICsKIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgOSArCiAxNDcgZmls ZXMgY2hhbmdlZCwgMTA3MTAgaW5zZXJ0aW9ucygrKSwgMTE1IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRp b25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5 cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9jb21t b24vY29sZW5jLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NvbGVuY2tleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb2xlbmNrZXlkYXRhLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2NvbG1hc3RlcmtleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUv Y29tbWFuZHMvY29sZW5jY21kcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUv Y29tbW9uL2NvbGVuYy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJm YWNlcy9saWJwcS90LzAxMF9lbmNyeXB0LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vbWVzb24uYnVpbGQKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlv bi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Qv MDAyX2Nta19yb3RhdGlvbi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVt bl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBsCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlw dGlvbi5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCmluZGV4IDgxN2QwNjJjN2U2Li5lY2RkMGNjNjAy YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2Fjcm9ueW1zLnNnbWwKQEAgLTY1LDYgKzY1LDE1IEBAIDx0aXRsZT5BY3Jvbnlt czwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxhY3JvbnltPkNFSzwvYWNyb255bT48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbHVtbiBFbmNyeXB0aW9u IEtleTsgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiIvPgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8 dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3JvbnltPkNJRFI8L2Fjcm9ueW0+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KQEAgLTc2LDYgKzg1LDE1IEBAIDx0aXRsZT5BY3Jvbnltczwv dGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxhY3JvbnltPkNNSzwvYWNyb255bT48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbHVtbiBNYXN0ZXIgS2V5OyBz ZWUgPHhyZWYgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIi8+CisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0 ZW50cnk+CiAgICAgPHRlcm0+PGFjcm9ueW0+Q1BBTjwvYWNyb255bT48L3Rlcm0+CiAgICAg PGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCAwOTZkZGFiNDgxYy4uZjAzZmM2M2Y3 NjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xMDUsNiArMTA1LDIxIEBAIDx0aXRsZT5TeXN0 ZW0gQ2F0YWxvZ3M8L3RpdGxlPgogICAgICAgPGVudHJ5PmNvbGxhdGlvbnMgKGxvY2FsZSBp bmZvcm1hdGlvbik8L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48c3RydWN0bmFt ZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50 cnk+Y29sdW1uIGVuY3J5cHRpb24ga2V5czwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNr ZXlkYXRhIj48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGlu az48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhPC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5hbWU+cGdfY29sbWFz dGVya2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVt biBtYXN0ZXIga2V5czwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij48c3RydWN0 bmFtZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAg PGVudHJ5PmNoZWNrIGNvbnN0cmFpbnRzLCB1bmlxdWUgY29uc3RyYWludHMsIHByaW1hcnkg a2V5IGNvbnN0cmFpbnRzLCBmb3JlaWduIGtleSBjb25zdHJhaW50czwvZW50cnk+CkBAIC0x NDEwLDYgKzE0MjUsNDQgQEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3Ry dWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmF0dGNlazwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAo cmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVj dG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg SWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIGEgcmVmZXJlbmNlIHRvIHRoZSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXksIGVsc2UgbnVsbC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+YXR0dXNlcnR5cGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0 cnVjdG5hbWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8 L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElm IHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCB0aGVuIHRoaXMgY29sdW1uIGluZGljYXRlcyB0 aGUgdHlwZSBvZiB0aGUKKyAgICAgICBlbmNyeXB0ZWQgZGF0YSB0aGF0IGlzIHJlcG9ydGVk IHRvIHRoZSBjbGllbnQuICBJZiB0aGUgY29sdW1uIGlzIG5vdAorICAgICAgIGVuY3J5cHRl ZCwgdGhlbiBudWxsLiAgRm9yIGVuY3J5cHRlZCBjb2x1bW5zLCB0aGUgZmllbGQKKyAgICAg ICA8c3RydWN0ZmllbGQ+YXR0dHlwaWQ8L3N0cnVjdGZpZWxkPiBpcyBlaXRoZXIKKyAgICAg ICA8dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiBvciA8dHlwZT5wZ19lbmNyeXB0ZWRf cm5kPC90eXBlPi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dHVz ZXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIHRo ZW4gdGhpcyBjb2x1bW4gaW5kaWNhdGVzIHRoZSB0eXBlCisgICAgICAgbW9kaWZpZXIgKGFu YWxvZ291cyB0byA8c3RydWN0ZmllbGQ+YXR0dHlwbW9kPC9zdHJ1Y3RmaWVsZD4pIHRoYXQg aXMKKyAgICAgICByZXBvcnRlZCB0byB0aGUgY2xpZW50LiAgSWYgdGhlIGNvbHVtbiBpcyBu b3QgZW5jcnlwdGVkLCB0aGVuIG51bGwuICBGb3IKKyAgICAgICBlbmNyeXB0ZWQgY29sdW1u cywgdGhlIGZpZWxkIDxzdHJ1Y3RmaWVsZD5hdHR0eXBtb2Q8L3N0cnVjdGZpZWxkPikKKyAg ICAgICBjb250YWlucyB0aGUgaWRlbnRpZmllciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0 aG07IHNlZSA8eHJlZgorICAgICAgIGxpbmtlbmQ9InByb3RvY29sLWNlayIvPiBmb3IgcG9z c2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAg ICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRt aXNzaW5ndmFsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YW55YXJyYXk8L3R5cGU+CkBAIC0yNDk0 LDYgKzI1NDcsMjcwIEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVj dG5hbWU+IENvbHVtbnM8L3RpdGxlPgogICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorIDxzZWN0 MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf Y29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJj YXRhbG9nLXBnLWNvbGVuY2tleSI+CisgICA8cHJpbWFyeT5wZ19jb2xlbmNrZXk8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVj dG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBjb250YWlucyBpbmZvcm1hdGlvbgor ICAgYWJvdXQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaW4gdGhlIGRhdGFiYXNlLiAg VGhlIGFjdHVhbCBrZXkgbWF0ZXJpYWwKKyAgIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBr ZXlzIGlzIGluIHRoZSBjYXRhbG9nIDxsaW5rCisgICBsaW5rZW5kPSJjYXRhbG9nLXBnLWNv bGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+ PC9saW5rPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91 cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor ICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRp ZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtuYW1lPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBuYW1lCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmNla25hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9p ZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFp bnMgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+Y2Vrb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+Cisg ICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxz dHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+Y2VrYWNsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YWNsaXRlbVtd PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWNjZXNzIHBy aXZpbGVnZXM7IHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtcHJpdiIvPiBmb3IgZGV0YWlscwor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8 L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9n LXBnLWNvbGVuY2tleWRhdGEiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5 ZGF0YTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxv Zy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgIDxwcmltYXJ5PnBnX2NvbGVuY2tleWRhdGE8L3By aW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0 cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT4gY29udGFpbnMgdGhlIGtl eQorICAgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIEVhY2ggY29sdW1u IGVuY3J5cHRpb24ga2V5IG9iamVjdCBjYW4KKyAgIGNvbnRhaW4gc2V2ZXJhbCB2ZXJzaW9u cyBvZiB0aGUga2V5IG1hdGVyaWFsLCBlYWNoIGVuY3J5cHRlZCB3aXRoIGEKKyAgIGRpZmZl cmVudCBjb2x1bW4gbWFzdGVyIGtleS4gIFRoYXQgYWxsb3dzIHRoZSBncmFkdWFsIHJvdGF0 aW9uIG9mIHRoZQorICAgY29sdW1uIG1hc3RlciBrZXlzLiAgVGh1cywgPGxpdGVyYWw+KGNr ZGNla2lkLCBja2RjbWtpZCk8L2xpdGVyYWw+IGlzIGEKKyAgIHVuaXF1ZSBrZXkgb2YgdGhp cyB0YWJsZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGtleSBtYXRlcmlhbCBv ZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIHNob3VsZCBuZXZlciBiZSBkZWNyeXB0ZWQgaW5z aWRlCisgICB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuICBJdCBpcyBtZWFudCB0byBiZSBzZW50 IGFzLWlzIHRvIHRoZSBjbGllbnQsIHdoZXJlCisgICBpdCBpcyBkZWNyeXB0ZWQgdXNpbmcg dGhlIGFzc29jaWF0ZWQgY29sdW1uIG1hc3RlciBrZXksIGFuZCB0aGVuIHVzZWQgdG8KKyAg IGVuY3J5cHQgb3IgZGVjcnlwdCBjb2x1bW4gdmFsdWVzLgorICA8L3BhcmE+CisKKyAgPHRh YmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5h bWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJv ZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5ja2RjZWtpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVu Y2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0aGlzIGVudHJ5IGJlbG9u Z3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21raWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsg bGlua2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbG1h c3RlcmtleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjb2x1bW4g bWFzdGVyIGtleSB0aGF0IHRoZSBrZXkgbWF0ZXJpYWwgaXMgZW5jcnlwdGVkIHdpdGgKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21rYWxnPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB1c2VkIGZvciBlbmNyeXB0aW5nIHRoZSBr ZXkgbWF0ZXJpYWw7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtayIv PiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5ja2RlbmN2YWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ieXRlYTwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhp cyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB1c2luZyB0aGUKKyAgICAgICBy ZWZlcmVuY2VkIGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwv c2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij4KKyAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L3RpdGxlPgor CisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPgorICAgPHBy aW1hcnk+cGdfY29sbWFzdGVya2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8 cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3Ry dWN0bmFtZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IGNvbHVtbiBtYXN0ZXIg a2V5cy4gIFRoZSBrZXlzIHRoZW1zZWx2ZXMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlCisgICBk YXRhYmFzZS4gIFRoZSBjYXRhbG9nIGVudHJ5IG9ubHkgY29udGFpbnMgaW5mb3JtYXRpb24g dGhhdCBpcyB1c2VkIGJ5CisgICBjbGllbnRzIHRvIGxvY2F0ZSB0aGUga2V5cywgZm9yIGV4 YW1wbGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAgIHN5c3RlbS4KKyAg PC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0 ZXJrZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIx Ij4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNj cmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhl YWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtuYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IENvbHVtbiBtYXN0ZXIga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+Y21rbmFtZXNwYWNlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctbmFtZXNwYWNlIj48 c3RydWN0bmFtZT5wZ19uYW1lc3BhY2U8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0Zmll bGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgT0lEIG9mIHRoZSBuYW1lc3BhY2UgdGhhdCBjb250YWlucyB0aGlzIGNvbHVt biBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta293 bmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2Vz IDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRo aWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4p CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgY29s dW1uIG1hc3RlciBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21r cmVhbG08L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgQSA8cXVvdGU+cmVhbG08L3F1b3RlPiBhc3NvY2lhdGVk IHdpdGggdGhpcyBjb2x1bW4gbWFzdGVyIGtleS4gIFRoaXMgaXMKKyAgICAgICBhIGZyZWVs eSBjaG9zZW4gc3RyaW5nIHRoYXQgaXMgdXNlZCBieSBjbGllbnRzIHRvIGRldGVybWluZSBo b3cgdG8gbG9vaworICAgICAgIHVwIHRoZSBrZXkuICBBIHR5cGljYWwgY29uZmlndXJhdGlv biB3b3VsZCBwdXQgYWxsIENNS3MgdGhhdCBhcmUgbG9va2VkCisgICAgICAgdXAgaW4gdGhl IHNhbWUgd2F5IGludG8gdGhlIHNhbWUgcmVhbG0uCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmNta2FjbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmFjbGl0ZW1bXTwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjY2VzcyBwcml2aWxl Z2VzOyBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXByaXYiLz4gZm9yIGRldGFpbHMKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3Jv dXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1j b25zdHJhaW50Ij4KICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVj dG5hbWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dt bCBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKaW5kZXggNTViYmIyMGRhY2MuLjAyMWIy ZmZmYzdiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKQEAgLTIzOTcsNiArMjM5NywxNiBAQCA8dGl0bGU+ QXV0b21hdGljIENoYXJhY3RlciBTZXQgQ29udmVyc2lvbiBCZXR3ZWVuIFNlcnZlciBhbmQg Q2xpZW50PC90aXRsZT4KICAgICAgSnVzdCBhcyBmb3IgdGhlIHNlcnZlciwgdXNlIG9mIDxs aXRlcmFsPlNRTF9BU0NJSTwvbGl0ZXJhbD4gaXMgdW53aXNlCiAgICAgIHVubGVzcyB5b3Ug YXJlIHdvcmtpbmcgd2l0aCBhbGwtQVNDSUkgZGF0YS4KICAgICA8L3BhcmE+CisKKyAgICA8 cGFyYT4KKyAgICAgV2hlbiBhdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVu Y3J5cHRpb24gaXMgdXNlZCwgdGhlbiBubworICAgICBlbmNvZGluZyBjb252ZXJzaW9uIGlz IHBvc3NpYmxlLiAgKFRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGhhcHBlbnMgb24gdGhlCisg ICAgIHNlcnZlciwgYW5kIHRoZSBzZXJ2ZXIgY2Fubm90IGxvb2sgaW5zaWRlIGFueSBlbmNy eXB0ZWQgY29sdW1uIHZhbHVlcy4pCisgICAgIElmIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBj b2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBpcyBlbmFibGVkIGZvciBhCisgICAgIHNlc3Npb24s IHRoZW4gdGhlIHNlcnZlciBlbmZvcmNlcyB0aGF0IHRoZSBjbGllbnQgZW5jb2RpbmcgbWF0 Y2hlcyB0aGUKKyAgICAgc2VydmVyIGVuY29kaW5nLCBhbmQgYW55IGF0dGVtcHRzIHRvIGNo YW5nZSB0aGUgY2xpZW50IGVuY29kaW5nIHdpbGwgYmUKKyAgICAgcmVqZWN0ZWQgYnkgdGhl IHNlcnZlci4KKyAgICA8L3BhcmE+CiAgICA8L3NlY3QyPgogCiAgICA8c2VjdDIgaWQ9Im11 bHRpYnl0ZS1jb252ZXJzaW9ucy1zdXBwb3J0ZWQiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2RhdGF0eXBlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbAppbmRleCA3 M2U1MWIwYjExNC4uNDkyMDNhODY4MDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kYXRh dHlwZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCkBAIC01MzkwLDQg KzUzOTAsNjUgQEAgPHRpdGxlPlBzZXVkby1UeXBlczwvdGl0bGU+CiAKICAgPC9zZWN0MT4K IAorICA8c2VjdDEgaWQ9ImRhdGF0eXBlLWVuY3J5cHRlZCI+CisgICA8dGl0bGU+VHlwZXMg UmVsYXRlZCB0byBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQW4gZW5j cnlwdGVkIGNvbHVtbiB2YWx1ZSAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5j cnlwdGlvbiIvPikgaXMKKyAgICBpbnRlcm5hbGx5IHN0b3JlZCB1c2luZyB0aGUgdHlwZXMK KyAgICA8dHlwZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBlPiAoZm9yIHJhbmRvbWl6ZWQgZW5j cnlwdGlvbikgb3IKKyAgICA8dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiAoZm9yIGRl dGVybWluaXN0aWMgZW5jcnlwdGlvbik7IHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9ImRhdGF0 eXBlLWVuY3J5cHRlZC10YWJsZSIvPi4gIE1vc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSB0 cmVhdHMKKyAgICB0aGVzZSBhcyBub3JtYWwgdHlwZXMuICBGb3IgZXhhbXBsZSwgdGhlIHR5 cGUgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gaGFzCisgICAgYW4gZXF1YWxzIG9w ZXJhdG9yIHRoYXQgYWxsb3dzIGxvb2t1cCBvZiBlbmNyeXB0ZWQgdmFsdWVzLiAgSXQgaXMs CisgICAgaG93ZXZlciwgbm90IGFsbG93ZWQgdG8gY3JlYXRlIGEgdGFibGUgdXNpbmcgb25l IG9mIHRoZXNlIHR5cGVzIGRpcmVjdGx5CisgICAgYXMgYSBjb2x1bW4gdHlwZS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGV4dGVybmFsIHJlcHJlc2VudGF0aW9uIG9m IHRoZXNlIHR5cGVzIGlzIHRoZSBzdHJpbmcKKyAgICA8bGl0ZXJhbD5lbmNyeXB0ZWQkPC9s aXRlcmFsPiBmb2xsb3dlZCBieSBoZXhhZGVjaW1hbCBieXRlIHZhbHVlcywgZm9yCisgICAg ZXhhbXBsZQorICAgIDxsaXRlcmFsPmVuY3J5cHRlZCQzYWFjZDA2M2QyZDNhMWEwNDExOWRm NzY4NzRlMGI5Nzg1ZWE0NjYxNzdmMThmZTljMGExYTMxM2VhZjA5Yzk4PC9saXRlcmFsPi4K KyAgICBDbGllbnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBhdXRvbWF0aWMgY2xpZW50LXNpZGUg Y29sdW1uLWxldmVsIGVuY3J5cHRpb24KKyAgICBvciBoYXZlIGRpc2FibGVkIGl0IHdpbGwg c2VlIHRoZSBlbmNyeXB0ZWQgdmFsdWVzIGluIHRoaXMgZm9ybWF0LiAgQ2xpZW50cworICAg IHRoYXQgc3VwcG9ydCBhdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5 cHRpb24gd2lsbCBub3Qgc2VlCisgICAgdGhlc2UgdHlwZXMgaW4gcmVzdWx0IHNldHMsIGFz IHRoZSBwcm90b2NvbCBsYXllciB3aWxsIHRyYW5zbGF0ZSB0aGVtIGJhY2sKKyAgICB0byB0 aGUgZGVjbGFyZWQgdW5kZXJseWluZyB0eXBlIGluIHRoZSB0YWJsZSBkZWZpbml0aW9uLgor ICAgPC9wYXJhPgorCisgICAgPHRhYmxlIGlkPSJkYXRhdHlwZS1lbmNyeXB0ZWQtdGFibGUi PgorICAgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBFbmNyeXB0aW9uPC90aXRsZT4KKyAg ICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDEiIGNv bHdpZHRoPSIxKiIvPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMiIgY29sd2lkdGg9 IjMqIi8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wzIiBjb2x3aWR0aD0iMioiLz4K KyAgICAgIDx0aGVhZD4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+TmFtZTwvZW50 cnk+CisgICAgICAgIDxlbnRyeT5TdG9yYWdlIFNpemU8L2VudHJ5PgorICAgICAgICA8ZW50 cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgPC90aGVhZD4K KyAgICAgIDx0Ym9keT4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5cGU+cGdf ZW5jcnlwdGVkX2RldDwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBvciA0IGJ5 dGVzIHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbjwv ZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pjx0 eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PjEg b3IgNCBieXRlcyBwbHVzIHRoZSBhY3R1YWwgYmluYXJ5IHN0cmluZzwvZW50cnk+CisgICAg ICAgIDxlbnRyeT5lbmNyeXB0ZWQgY29sdW1uIHZhbHVlLCByYW5kb21pemVkIGVuY3J5cHRp b248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgPC90Ym9keT4KKyAgICAgPC90Z3Jv dXA+CisgICAgPC90YWJsZT4KKworICAgIDxwYXJhPgorICAgICBGb3IgZW5jcnlwdGVkIGNv bHVtbnMsIHRoZSB0eXBlIG1vZGlmaWVyICg8c3RydWN0ZmllbGQ+YXR0dHlwbW9kPC9zdHJ1 Y3RmaWVsZD4pCisgICAgIGNvbnRhaW5zIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0 aW9uIGFsZ29yaXRobTsgc2VlIDx4cmVmCisgICAgIGxpbmtlbmQ9InByb3RvY29sLWNlayIv PiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KICA8L2No YXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwKaW5kZXggMDBmNDRmNTZmYWYuLjIxODJjNmM3ODY1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC0xMzc1LDYgKzEzNzUsNDQwIEBAIDx0aXRsZT5FeGNsdXNpb24gQ29uc3RyYWludHM8L3Rp dGxlPgogICA8L3NlY3QyPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImRkbC1jb2x1bW4t ZW5jcnlwdGlvbiI+CisgIDx0aXRsZT5BdXRvbWF0aWMgQ2xpZW50LXNpZGUgQ29sdW1uLWxl dmVsIEVuY3J5cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgV2l0aCA8Zmlyc3R0ZXJt PmF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbjwvZmlyc3R0 ZXJtPiwKKyAgIGNvbHVtbnMgY2FuIGJlIHN0b3JlZCBlbmNyeXB0ZWQgaW4gdGhlIGRhdGFi YXNlLiAgVGhlIGVuY3J5cHRpb24gYW5kCisgICBkZWNyeXB0aW9uIGhhcHBlbnMgYXV0b21h dGljYWxseSBvbiB0aGUgY2xpZW50LCBzbyB0aGF0IHRoZSBwbGFpbnRleHQgdmFsdWUKKyAg IGlzIG5ldmVyIHNlZW4gaW4gdGhlIGRhdGFiYXNlIGluc3RhbmNlIG9yIG9uIHRoZSBzZXJ2 ZXIgaG9zdGluZyB0aGUKKyAgIGRhdGFiYXNlLiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgbW9z dCBvcGVyYXRpb25zLCBzdWNoIGFzIGZ1bmN0aW9uIGNhbGxzIG9yCisgICBzb3J0aW5nLCBh cmUgbm90IHBvc3NpYmxlIG9uIGVuY3J5cHRlZCB2YWx1ZXMuCisgIDwvcGFyYT4KKworICA8 c2VjdDIgaWQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbi11c2luZyI+CisgICA8dGl0bGU+VXNp bmcgQXV0b21hdGljIENsaWVudC1zaWRlIENvbHVtbi1sZXZlbCBFbmNyeXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIEF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwg ZW5jcnlwdGlvbiB1c2VzIHR3byBsZXZlbHMgb2YKKyAgIGNyeXB0b2dyYXBoaWMga2V5cy4g IFRoZSBhY3R1YWwgY29sdW1uIHZhbHVlIGlzIGVuY3J5cHRlZCB1c2luZyBhIHN5bW1ldHJp YworICAgYWxnb3JpdGhtLCBzdWNoIGFzIEFFUywgdXNpbmcgYSA8Zmlyc3R0ZXJtPmNvbHVt biBlbmNyeXB0aW9uCisgICBrZXk8L2ZpcnN0dGVybT4gKDxhY3JvbnltPkNFSzwvYWNyb255 bT4pLiAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyBpbgorICAgdHVybiBlbmNyeXB0 ZWQgdXNpbmcgYW4gYXN5bW1ldHJpYyBhbGdvcml0aG0sIHN1Y2ggYXMgUlNBLCB1c2luZyBh CisgICA8Zmlyc3R0ZXJtPmNvbHVtbiBtYXN0ZXIga2V5PC9maXJzdHRlcm0+ICg8YWNyb255 bT5DTUs8L2Fjcm9ueW0+KS4gIFRoZQorICAgZW5jcnlwdGVkIENFSyBpcyBzdG9yZWQgaW4g dGhlIGRhdGFiYXNlIHN5c3RlbS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbgorICAgdGhl IGRhdGFiYXNlIHN5c3RlbTsgaXQgaXMgc3RvcmVkIG9uIHRoZSBjbGllbnQgb3Igc29tZXdo ZXJlIHdoZXJlIHRoZQorICAgY2xpZW50IGNhbiBhY2Nlc3MgaXQsIHN1Y2ggYXMgaW4gYSBs b2NhbCBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAgIHN5c3RlbS4gIFRoZSBkYXRh YmFzZSBzeXN0ZW0gb25seSByZWNvcmRzIHdoZXJlIHRoZSBDTUsgaXMgc3RvcmVkIGFuZAor ICAgcHJvdmlkZXMgdGhpcyBpbmZvcm1hdGlvbiB0byB0aGUgY2xpZW50LiAgV2hlbiByb3dz IGNvbnRhaW5pbmcgZW5jcnlwdGVkCisgICBjb2x1bW5zIGFyZSBzZW50IHRvIHRoZSBjbGll bnQsIHRoZSBzZXJ2ZXIgZmlyc3Qgc2VuZHMgYW55IG5lY2Vzc2FyeSBDTUsKKyAgIGluZm9y bWF0aW9uLCBmb2xsb3dlZCBieSBhbnkgcmVxdWlyZWQgQ0VLLiAgVGhlIGNsaWVudCB0aGVu IGxvb2tzIHVwIHRoZQorICAgQ01LIGFuZCB1c2VzIHRoYXQgdG8gZGVjcnlwdCB0aGUgQ0VL LiAgVGhlbiBpdCBkZWNyeXB0cyBpbmNvbWluZyByb3cgZGF0YQorICAgdXNpbmcgdGhlIENF SyBhbmQgcHJvdmlkZXMgdGhlIGRlY3J5cHRlZCByb3cgZGF0YSB0byB0aGUgYXBwbGljYXRp b24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEhlcmUgaXMgYW4gZXhhbXBsZSBkZWNs YXJpbmcgYSBjb2x1bW4gYXMgZW5jcnlwdGVkOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFRBQkxFIGN1c3RvbWVycyAoCisgICAgaWQgaW50IFBSSU1BUlkgS0VZLAorICAgIG5hbWUg dGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBjcmVkaXRjYXJkX251bSB0ZXh0IDxlbXBo YXNpcz5FTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk8L2Vt cGhhc2lzPgorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnRzIDxmaXJzdHRlcm0+cmFuZG9taXplZDwv Zmlyc3R0ZXJtPgorICAgKGFsc28ga25vd24gYXMgPGZpcnN0dGVybT5wcm9iYWJpbGlzdGlj PC9maXJzdHRlcm0+KSBhbmQKKyAgIDxmaXJzdHRlcm0+ZGV0ZXJtaW5pc3RpYzwvZmlyc3R0 ZXJtPiBlbmNyeXB0aW9uLiAgVGhlIGFib3ZlIGV4YW1wbGUgdXNlcworICAgcmFuZG9taXpl ZCBlbmNyeXB0aW9uLCB3aGljaCBpcyB0aGUgZGVmYXVsdC4gIFJhbmRvbWl6ZWQgZW5jcnlw dGlvbiB1c2VzIGEKKyAgIHJhbmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgZm9yIGVhY2gg ZW5jcnlwdGlvbiwgc28gdGhhdCBldmVuIGlmIHRoZQorICAgcGxhaW50ZXh0IG9mIHR3byBy b3dzIGlzIGVxdWFsLCB0aGUgZW5jcnlwdGVkIHZhbHVlcyB3aWxsIGJlIGRpZmZlcmVudC4K KyAgIFRoaXMgcHJldmVudHMgc29tZW9uZSB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGRh dGFiYXNlIHNlcnZlciBmcm9tIG1ha2luZworICAgY29tcHV0YXRpb25zIHN1Y2ggYXMgZGlz dGluY3QgY291bnRzIG9uIHRoZSBlbmNyeXB0ZWQgdmFsdWVzLgorICAgRGV0ZXJtaW5pc3Rp YyBlbmNyeXB0aW9uIHVzZXMgYSBmaXhlZCBpbml0aWFsaXphdGlvbiB2ZWN0b3IuICBUaGlz IHJlZHVjZXMKKyAgIHNlY3VyaXR5LCBidXQgaXQgYWxsb3dzIGVxdWFsaXR5IHNlYXJjaGVz IG9uIGVuY3J5cHRlZCB2YWx1ZXMuICBUaGUKKyAgIGZvbGxvd2luZyBleGFtcGxlIGRlY2xh cmVzIGEgY29sdW1uIHdpdGggZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uOgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFRBQkxFIGVtcGxveWVlcyAoCisgICAgaWQgaW50IFBSSU1BUlkg S0VZLAorICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBzc24gdGV4dCBF TkNSWVBURUQgV0lUSCAoCisgICAgICAgIGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEs IDxlbXBoYXNpcz5lbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljPC9lbXBoYXNpcz4p CispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTnVs bCB2YWx1ZXMgYXJlIG5vdCBlbmNyeXB0ZWQgYnkgYXV0b21hdGljIGNsaWVudC1zaWRlIGNv bHVtbi1sZXZlbAorICAgZW5jcnlwdGlvbjsgbnVsbCB2YWx1ZXMgc2VudCBieSB0aGUgY2xp ZW50IGFyZSB2aXNpYmxlIGFzIG51bGwgdmFsdWVzIGluCisgICB0aGUgZGF0YWJhc2UuICBJ ZiB0aGUgZmFjdCB0aGF0IGEgdmFsdWUgaXMgbnVsbCBuZWVkcyB0byBiZSBoaWRkZW4gZnJv bSB0aGUKKyAgIHNlcnZlciwgdGhpcyBpbmZvcm1hdGlvbiBuZWVkcyB0byBiZSBlbmNvZGVk IGludG8gYSBub25udWxsIHZhbHVlIGluIHRoZQorICAgY2xpZW50IHNvbWVob3cuCisgIDwv cGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIgaWQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlv bi1yZWFkaW5nLXdyaXRpbmctZW5jcnlwdGVkLWNvbHVtbnMiPgorICAgPHRpdGxlPlJlYWRp bmcgYW5kIFdyaXRpbmcgRW5jcnlwdGVkIENvbHVtbnM8L3RpdGxlPgorCisgICA8cGFyYT4K KyAgICBSZWFkaW5nIGFuZCB3cml0aW5nIGVuY3J5cHRlZCBjb2x1bW5zIGlzIG1lYW50IHRv IGJlIGhhbmRsZWQgYXV0b21hdGljYWxseQorICAgIGJ5IHRoZSBjbGllbnQgbGlicmFyeS9k cml2ZXIgYW5kIHNob3VsZCBiZSBtb3N0bHkgdHJhbnNwYXJlbnQgdG8gdGhlCisgICAgYXBw bGljYXRpb24gY29kZSwgaWYgY2VydGFpbiBwcmVyZXF1aXNpdGVzIGFyZSBmdWxmaWxsZWQ6 CisKKyAgICA8aXRlbWl6ZWRsaXN0PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4K KyAgICAgICBUaGUgY2xpZW50IGxpYnJhcnkgbmVlZHMgdG8gc3VwcG9ydCBhdXRvbWF0aWMg Y2xpZW50LXNpZGUgY29sdW1uLWxldmVsCisgICAgICAgZW5jcnlwdGlvbi4gIE5vdCBhbGwg Y2xpZW50IGxpYnJhcmllcyBkby4gIEZ1cnRoZXJtb3JlLCB0aGUgY2xpZW50CisgICAgICAg bGlicmFyeSBtaWdodCByZXF1aXJlIHRoYXQgYXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVt bi1sZXZlbAorICAgICAgIGVuY3J5cHRpb24gaXMgZXhwbGljaXRseSBlbmFibGVkIGF0IGNv bm5lY3Rpb24gdGltZS4gIFNlZSB0aGUKKyAgICAgICBkb2N1bWVudGF0aW9uIG9mIHRoZSBj bGllbnQgbGlicmFyeSBmb3IgZGV0YWlscy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4g bWFzdGVyIGtleXMgYW5kIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaGF2ZSBiZWVuIHNldCB1 cCwgYW5kIHRoZQorICAgICAgIGNsaWVudCBsaWJyYXJ5IGhhcyBiZWVuIGNvbmZpZ3VyZWQg dG8gYmUgYWJsZSB0byBsb29rIHVwIGNvbHVtbiBtYXN0ZXIKKyAgICAgICBrZXlzIGZyb20g dGhlIGtleSBzdG9yZSBvciBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFJlYWRpbmcgZnJvbSBlbmNyeXB0ZWQgY29sdW1ucyB3aWxsIHRo ZW4gd29yayBhdXRvbWF0aWNhbGx5LiAgRm9yIGV4YW1wbGUsCisgICAgdXNpbmcgdGhlIGFi b3ZlIGV4YW1wbGUsCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1Qgc3NuIEZST00gZW1wbG95 ZWVzIFdIRVJFIGlkID0gNTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd291bGQgcmV0dXJu IHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSBmb3IgdGhlIDxsaXRlcmFsPnNzbjwvbGl0ZXJhbD4g Y29sdW1uCisgICAgaW4gYW55IHJvd3MgZm91bmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJh PgorICAgIFdyaXRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgcmVxdWlyZXMgdGhhdCB0aGUg ZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyAgICAocHJvdG9jb2wtbGV2ZWwgcHJlcGFyZWQg c3RhdGVtZW50cykgYmUgdXNlZCwgc28gdGhhdCB0aGUgdmFsdWVzIHRvIGJlCisgICAgZW5j cnlwdGVkIGFyZSBzdXBwbGllZCBzZXBhcmF0ZWx5IGZyb20gdGhlIFNRTCBjb21tYW5kLiAg Rm9yIGV4YW1wbGUsCisgICAgdXNpbmcsIHNheSwgcHNxbCBvciBsaWJwcSwgdGhlIGZvbGxv d2luZyB3b3VsZCBub3Qgd29yazoKKzxwcm9ncmFtbGlzdGluZz4KKy0tIFdST05HIQorSU5T RVJUIElOVE8gZW1wbG95ZWVzIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKDEsICdTb21lb25l JywgJzEyMzQ1Jyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIFRoaXMgd291bGQgbGVhayB0 aGUgdW5lbmNyeXB0ZWQgdmFsdWUgPGxpdGVyYWw+MTIzNDU8L2xpdGVyYWw+IHRvIHRoZQor ICAgIHNlcnZlciwgdGh1cyBkZWZlYXRpbmcgdGhlIHBvaW50IG9mIGNsaWVudC1zaWRlIGNv bHVtbi1sZXZlbCBlbmNyeXB0aW9uLgorICAgIChBbmQgZXZlbiBpZ25vcmluZyB0aGF0LCBp dCBjb3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBzZXJ2ZXIgZG9lcyBub3QKKyAgICBoYXZl IGFjY2VzcyB0byB0aGUga2V5cyB0byBwZXJmb3JtIHRoZSBlbmNyeXB0aW9uLikgIE5vdGUg dGhhdCB1c2luZworICAgIHNlcnZlci1zaWRlIHByZXBhcmVkIHN0YXRlbWVudHMgdXNpbmcg dGhlIFNRTCBjb21tYW5kcworICAgIDxjb21tYW5kPlBSRVBBUkU8L2NvbW1hbmQ+IGFuZCA8 Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiBpcyBlcXVhbGx5CisgICAgaW5jb3JyZWN0LCBz aW5jZSB0aGF0IHdvdWxkIGFsc28gbGVhayB0aGUgcGFyYW1ldGVycyBwcm92aWRlZCB0bwor ICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IHRvIHRoZSBzZXJ2ZXIuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIFRoaXMgc2hvd3MgYSBjb3JyZWN0IGludm9jYXRpb24g aW4gbGlicHEgKHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcpOgorPHByb2dyYW1saXN0aW5nPgor UEdyZXN1bHQgICAqcmVzOworY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjEiLCAiU29tZW9u ZSIsICIxMjM0NSJ9OworCityZXMgPSBQUWV4ZWNQYXJhbXMoY29ubiwgIklOU0VSVCBJTlRP IGVtcGxveWVlcyAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwgJDIsICQzKSIsCisgICAg ICAgICAgICAgICAgICAgMywgTlVMTCwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICAgSGlnaGVyLWxldmVsIGNsaWVudCBsaWJyYXJpZXMgbWlnaHQg dXNlIHRoZSBwcm90b2NvbC1sZXZlbCBwcmVwYXJlZAorICAgIHN0YXRlbWVudHMgYXV0b21h dGljYWxseSBhbmQgdGh1cyB3b24ndCByZXF1aXJlIGFueSBjb2RlIGNoYW5nZXMuCisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxhcHBsaWNhdGlvbj5wc3FsPC9hcHBsaWNhdGlv bj4gcHJvdmlkZXMgdGhlIGNvbW1hbmQKKyAgICA8bGl0ZXJhbD5cYmluZDwvbGl0ZXJhbD4g dG8gcnVuIHN0YXRlbWVudHMgd2l0aCBwYXJhbWV0ZXJzIGxpa2UgdGhpczoKKzxwcm9ncmFt bGlzdGluZz4KK0lOU0VSVCBJTlRPIGVtcGxveWVlcyAoaWQsIG5hbWUsIHNzbikgVkFMVUVT ICgkMSwgJDIsICQzKSBcYmluZCAnMScgJ1NvbWVvbmUnLCAnMTIzNDUnIFxnCis8L3Byb2dy YW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBTaW1pbGFybHksIGlm IGRldGVybWluaXN0aWMgZW5jcnlwdGlvbiBpcyB1c2VkLCBwYXJhbWV0ZXJzIG5lZWQgdG8g YmUgdXNlZAorICAgIGluIHNlYXJjaCBjb25kaXRpb25zIHVzaW5nIGVuY3J5cHRlZCBjb2x1 bW5zOgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUICogRlJPTSBlbXBsb3llZXMgV0hFUkUg c3NuID0gJDEgXGJpbmQgJzEyMzQ1JyBcZworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFy YT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIgaWQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbi1z ZXR0aW5nLXVwIj4KKyAgIDx0aXRsZT5TZXR0aW5nIHVwIEF1dG9tYXRpYyBDbGllbnQtc2lk ZSBDb2x1bW4tbGV2ZWwgRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUg c3RlcHMgdG8gc2V0IHVwIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5j cnlwdGlvbiBmb3IgYQorICAgZGF0YWJhc2UgYXJlOgorCisgICA8b3JkZXJlZGxpc3Q+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUga2V5IG1hdGVy aWFsIGZvciB0aGUgQ01LLCBmb3IgZXhhbXBsZSwgdXNpbmcgYSBjcnlwdG9ncmFwaGljCisg ICAgICBsaWJyYXJ5IG9yIHRvb2xraXQsIG9yIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLiAg U2VjdXJlIGFjY2VzcyB0byB0aGUKKyAgICAgIGtleSBhcyBhcHByb3ByaWF0ZSwgdXNpbmcg YWNjZXNzIGNvbnRyb2wsIHBhc3N3b3JkcywgZXRjLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3Rl ciB0aGUgQ01LIGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUgU1FMIGNvbW1hbmQgPHhyZWYK KyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz4uCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIENyZWF0ZSB0aGUgKHVuZW5jcnlwdGVkKSBrZXkgbWF0ZXJpYWwgZm9yIHRo ZSBDRUsgaW4gYSB0ZW1wb3JhcnkKKyAgICAgIGxvY2F0aW9uLiAgKEl0IHdpbGwgYmUgZW5j cnlwdGVkIGluIHRoZSBuZXh0IHN0ZXAuICBEZXBlbmRpbmcgb24gdGhlCisgICAgICBhdmFp bGFibGUgdG9vbHMsIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIGFuZCBzZW5zaWJsZSB0byBjb21i aW5lIHRoZXNlIHR3bworICAgICAgc3RlcHMuKQorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBFbmNyeXB0IHRo ZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWwgdXNpbmcgdGhlIENNSyAoY3JlYXRlZCBlYXJs aWVyKS4KKyAgICAgIChUaGUgdW5lbmNyeXB0ZWQgdmVyc2lvbiBvZiB0aGUgQ0VLIGtleSBt YXRlcmlhbCBjYW4gbm93IGJlIGRpc3Bvc2VkCisgICAgICBvZi4pCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIHRoZSBTUUwgY29tbWFu ZCA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1r ZXkiLz4uICBUaGlzIGNvbW1hbmQKKyAgICAgIDxxdW90ZT51cGxvYWRzPC9xdW90ZT4gdGhl IGVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFsIGNyZWF0ZWQgaW4gdGhlCisgICAgICBwcmV2 aW91cyBzdGVwIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIuICBUaGUgbG9jYWwgY29weSBvZiB0 aGUgQ0VLIGtleQorICAgICAgbWF0ZXJpYWwgY2FuIHRoZW4gYmUgcmVtb3ZlZC4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5zIHVzaW5nIHRoZSBjcmVhdGVkIENF Sy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBjbGllbnQgbGlicmFyeS9kcml2ZXIg dG8gYmUgYWJsZSB0byBsb29rIHVwIHRoZSBDTUsKKyAgICAgIGNyZWF0ZWQgZWFybGllci4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L29yZGVyZWRsaXN0PgorCisg ICBPbmNlIHRoaXMgaXMgZG9uZSwgdmFsdWVzIGNhbiBiZSB3cml0dGVuIHRvIGFuZCByZWFk IGZyb20gdGhlIGVuY3J5cHRlZAorICAgY29sdW1ucyBpbiBhIHRyYW5zcGFyZW50IHdheS4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTm90ZSB0aGF0IHRoZXNlIHN0ZXBzIHNob3Vs ZCBub3QgYmUgcnVuIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGJ1dCBvbiBzb21lCisgICBj bGllbnQgbWFjaGluZS4gIE5laXRoZXIgdGhlIENNSyBub3IgdGhlIHVuZW5jcnlwdGVkIENF SyBzaG91bGQgZXZlciBhcHBlYXIKKyAgIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIgaG9zdC4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNwZWNpZmljIGRldGFpbHMgb2YgdGhp cyBzZXR1cCBkZXBlbmQgb24gdGhlIGRlc2lyZWQgQ01LIHN0b3JhZ2UKKyAgIG1lY2hhbmlz bS9rZXkgbWFuYWdlbWVudCBzeXN0ZW0gYXMgd2VsbCBhcyB0aGUgY2xpZW50IGxpYnJhcmll cyB0byBiZSB1c2VkLgorICAgVGhlIGZvbGxvd2luZyBleGFtcGxlIHVzZXMgdGhlIDxjb21t YW5kPm9wZW5zc2w8L2NvbW1hbmQ+IGNvbW1hbmQtbGluZSB0b29sCisgICB0byBzZXQgdXAg dGhlIGtleXMuCisKKyAgIDxvcmRlcmVkbGlzdD4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgQ3JlYXRlIHRoZSBrZXkgbWF0ZXJpYWwgZm9yIHRoZSBDTUsgYW5kIHdy aXRlIGl0IHRvIGEgZmlsZToKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5zc2wgZ2VucGtleSAt YWxnb3JpdGhtIHJzYSAtb3V0IGNtazEucGVtCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBSZWdpc3RlciB0aGUgQ01LIGluIHRoZSBkYXRhYmFzZToKKzxwcm9ncmFtbGlz dGluZz4KK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSIKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgdW5lbmNyeXB0ZWQg Q0VLIGtleSBtYXRlcmlhbCBpbiBhIGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3Ns IHJhbmQgLW91dCBjZWsxLmJpbiA0OAorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIChTZWUg PHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+IGZvciByZXF1aXJlZCBrZXkg bGVuZ3Rocy4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtleSBt YXRlcmlhbDoKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5zc2wgcGtleXV0bCAtZW5jcnlwdCAt aW5rZXkgY21rMS5wZW0gLXBrZXlvcHQgcnNhX3BhZGRpbmdfbW9kZTpvYWVwIC1pbiBjZWsx LmJpbiAtb3V0IGNlazEuYmluLmVuYworcm0gY2VrMS5iaW4KKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlOgorPHBy b2dyYW1saXN0aW5nPgorIyBjb252ZXJ0IGZpbGUgY29udGVudHMgdG8gaGV4IGVuY29kaW5n OyB0aGlzIGlzIGp1c3Qgb25lIHBvc3NpYmxlIHdheQorY2VrZW5jaGV4PSQocGVybCAtMG5l ICdwcmludCB1bnBhY2sgIkgqIicgY2VrMS5iaW4uZW5jKQorcHNxbCAuLi4gLWMgIkNSRUFU RSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rl cl9rZXkgPSBjbWsxLCBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsIGVuY3J5cHRl ZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKSIKK3JtIGNlazEuYmluLmVuYworPC9wcm9n cmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5zIGFz IHNob3duIGluIHRoZSBleGFtcGxlcyBhYm92ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJl IHRoZSBsaWJwcSBmb3IgQ01LIGxvb2t1cCAoc2VlIGFsc28gPHhyZWYgbGlua2VuZD0ibGli cHEtY29ubmVjdC1jbWtsb29rdXAiLz4pOgorPHByb2dyYW1saXN0aW5nPgorUEdDTUtMT09L VVA9Iio9ZmlsZTokUFdELyVrLnBlbSIKK2V4cG9ydCBQR0NNS0xPT0tVUAorPC9wcm9ncmFt bGlzdGluZz4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgQWRkaXRpb25h bGx5LCBsaWJwcSByZXF1aXJlcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBhcmFtZXRlciA8eHJl ZgorICAgICAgbGlua2VuZD0ibGlicHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBi ZSBzZXQgaW4gb3JkZXIgdG8gYWN0aXZhdGUKKyAgICAgIHRoZSBhdXRvbWF0aWMgY2xpZW50 LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gZnVuY3Rpb25hbGl0eS4gIFRoaXMKKyAg ICAgIHNob3VsZCBiZSBkb25lIGluIHRoZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgb2YgdGhl IGFwcGxpY2F0aW9uLCBidXQgYW4KKyAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlICg8ZW52 YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj4pIGlzIGFsc28KKyAgICAgIGF2YWlsYWJs ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L29yZGVyZWRsaXN0Pgor ICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJkZGwtY29sdW1uLWVuY3J5 cHRpb24tZ3VpZGFuY2UiPgorICAgPHRpdGxlPkd1aWRhbmNlIG9uIFVzaW5nIEF1dG9tYXRp YyBDbGllbnQtc2lkZSBDb2x1bW4tbGV2ZWwgRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgIDxw YXJhPgorICAgIFRoaXMgc2VjdGlvbiBjb250YWlucyBzb21lIGluZm9ybWF0aW9uIG9uIHdo ZW4gaXQgaXMgb3IgaXMgbm90IGFwcHJvcHJpYXRlCisgICAgdG8gdXNlIGF1dG9tYXRpYyBj bGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiwgYW5kIHdoYXQgcHJlY2F1dGlv bnMKKyAgICBuZWVkIHRvIGJlIHRha2VuIHRvIG1haW50YWluIGl0cyBzZWN1cml0eS4KKyAg IDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSW4gZ2VuZXJhbCwgY29sdW1uIGVuY3J5cHRp b24gaXMgbmV2ZXIgYSByZXBsYWNlbWVudCBmb3IgYWRkaXRpb25hbAorICAgIHNlY3VyaXR5 IGFuZCBlbmNyeXB0aW9uIHRlY2huaXF1ZXMgc3VjaCBhcyB0cmFuc3BvcnQgZW5jcnlwdGlv bgorICAgIChTU0wvVExTKSwgc3RvcmFnZSBlbmNyeXB0aW9uLCBzdHJvbmcgYWNjZXNzIGNv bnRyb2wsIGFuZCBwYXNzd29yZAorICAgIHNlY3VyaXR5LiAgQ29sdW1uIGVuY3J5cHRpb24g b25seSB0YXJnZXRzIHNwZWNpZmljIHVzZSBjYXNlcyBhbmQgc2hvdWxkIGJlCisgICAgdXNl ZCBpbiBjb25qdW5jdGlvbiB3aXRoIGFkZGl0aW9uYWwgc2VjdXJpdHkgbWVhc3VyZXMuCisg ICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEEgdHlwaWNhbCB1c2UgY2FzZSBmb3IgY29s dW1uIGVuY3J5cHRpb24gaXMgdG8gZW5jcnlwdCBzcGVjaWZpYyB2YWx1ZXMKKyAgICB3aXRo IGFkZGl0aW9uYWwgc2VjdXJpdHkgcmVxdWlyZW1lbnRzLCBmb3IgZXhhbXBsZSBjcmVkaXQg Y2FyZCBudW1iZXJzLgorICAgIFRoaXMgYWxsb3dzIHlvdSB0byBzdG9yZSB0aGF0IHNlY3Vy aXR5LXNlbnNpdGl2ZSBkYXRhIHRvZ2V0aGVyIHdpdGggdGhlCisgICAgcmVzdCBvZiB5b3Vy IGRhdGEgKHRodXMgZ2V0dGluZyB2YXJpb3VzIGJlbmVmaXRzLCBzdWNoIGFzIHJlZmVyZW50 aWFsCisgICAgaW50ZWdyaXR5LCBjb25zaXN0ZW50IGJhY2t1cHMpLCB3aGlsZSBnaXZpbmcg YWNjZXNzIHRvIHRoYXQgZGF0YSBvbmx5IHRvCisgICAgc3BlY2lmaWMgY2xpZW50cyBhbmQg cHJldmVudGluZyBhY2NpZGVudGFsIGxlYWthZ2Ugb24gdGhlIHNlcnZlciBzaWRlCisgICAg KHNlcnZlciBsb2dzLCBmaWxlIHN5c3RlbSBiYWNrdXBzLCBldGMuKS4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgV2hlbiB1c2luZyBwYXJhbWV0ZXJzIHRvIHByb3ZpZGUgdmFs dWVzIHRvIGluc2VydCBvciBzZWFyY2ggYnksIGNhcmUgbXVzdAorICAgIGJlIHRha2VuIHRo YXQgdmFsdWVzIG1lYW50IHRvIGJlIGVuY3J5cHRlZCBhcmUgbm90IGFjY2lkZW50YWxseSBs ZWFrZWQgdG8KKyAgICB0aGUgc2VydmVyLiAgVGhlIHNlcnZlciB3aWxsIHRlbGwgdGhlIGNs aWVudCB3aGljaCBwYXJhbWV0ZXJzIHRvIGVuY3J5cHQsCisgICAgYmFzZWQgb24gdGhlIHNj aGVtYSBkZWZpbml0aW9uIG9uIHRoZSBzZXJ2ZXIuICBCdXQgaWYgdGhlIHF1ZXJ5IG9yIGNs aWVudAorICAgIGFwcGxpY2F0aW9uIGlzIGZhdWx0eSwgdmFsdWVzIG1lYW50IHRvIGJlIGVu Y3J5cHRlZCBtaWdodCBhY2NpZGVudGFsbHkgYmUKKyAgICBhc3NvY2lhdGVkIHdpdGggcGFy YW1ldGVycyB0aGF0IHRoZSBzZXJ2ZXIgZG9lcyBub3QgdGhpbmsgbmVlZCB0byBiZQorICAg IGVuY3J5cHRlZC4gIEFkZGl0aW9uYWwgcm9idXN0bmVzcyBjYW4gYmUgYWNoaWV2ZWQgYnkg Zm9yY2luZyBlbmNyeXB0aW9uIG9mCisgICAgY2VydGFpbiBwYXJhbWV0ZXJzIGluIHRoZSBj bGllbnQgbGlicmFyeSAoc2VlIGl0cyBkb2N1bWVudGF0aW9uOyBmb3IKKyAgICA8YXBwbGlj YXRpb24+bGlicHE8L2FwcGxpY2F0aW9uPiwgc2VlIDx4cmVmCisgICAgbGlua2VuZD0ibGli cHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPikuCisgICA8L3BhcmE+CisKKyAgIDxw YXJhPgorICAgIENvbHVtbiBlbmNyeXB0aW9uIGNhbm5vdCBoaWRlIHRoZSBleGlzdGVuY2Ug b3IgYWJzZW5jZSBvZiBkYXRhLCBpdCBjYW4KKyAgICBvbmx5IGRpc2d1aXNlIHRoZSBwYXJ0 aWN1bGFyIGRhdGEgdGhhdCBpcyBrbm93biB0byBleGlzdC4gIEZvciBleGFtcGxlLAorICAg IHN0b3JpbmcgYSBjbGVhcnRleHQgcGVyc29uIG5hbWUgYW5kIGFuIGVuY3J5cHRlZCBjcmVk aXQgY2FyZCBudW1iZXIKKyAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVyc29uIGhhcyBhIGNy ZWRpdCBjYXJkLiAgVGhhdCBtaWdodCBub3QgcmV2ZWFsIHRvbworICAgIG11Y2ggaWYgdGhl IGRhdGFiYXNlIGlzIGZvciBhbiBvbmxpbmUgc3RvcmUgYW5kIHRoZXJlIGlzIG90aGVyIGRh dGEgbmVhcmJ5CisgICAgdGhhdCBzaG93cyB0aGF0IHRoZSBwZXJzb24gaGFzIHJlY2VudGx5 IG1hZGUgcHVyY2hhc2VzLiAgQnV0IGluIGFub3RoZXIKKyAgICBleGFtcGxlLCBzdG9yaW5n IGEgY2xlYXJ0ZXh0IHBlcnNvbiBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQgZGlhZ25vc2lzIGlu IGEKKyAgICBtZWRpY2FsIGRhdGFiYXNlIHByb2JhYmx5IGluZGljYXRlcyB0aGF0IHRoZSBw ZXJzb24gaGFzIGEgbWVkaWNhbCBpc3N1ZS4KKyAgICBEZXBlbmRpbmcgb24gdGhlIGNpcmN1 bXN0YW5jZXMsIHRoYXQgbWlnaHQgbm90IGJ5IGl0c2VsZiBiZSBzdWZmaWNpZW50CisgICAg c2VjdXJpdHkuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEVuY3J5cHRpb24gY2Fu bm90IGNvbXBsZXRlbHkgaGlkZSB0aGUgbGVuZ3RoIG9mIHZhbHVlcy4gIFRoZSBlbmNyeXB0 aW9uCisgICAgbWV0aG9kcyB3aWxsIHBhZCB2YWx1ZXMgdG8gbXVsdGlwbGVzIG9mIHRoZSB1 bmRlcmx5aW5nIGNpcGhlcidzIGJsb2NrIHNpemUKKyAgICAodXN1YWxseSAxNiBieXRlcyks IHNvIHNvbWUgbGVuZ3RoIGRpZmZlcmVuY2VzIHdpbGwgYmUgdW5pZmllZCB0aGlzIHdheS4K KyAgICBUaGVyZSBpcyBubyBjb25jZXJuIGlmIGFsbCB2YWx1ZXMgYXJlIG9mIHRoZSBzYW1l IGxlbmd0aCwgYnV0IGlmIHRoZXJlIGFyZQorICAgIHNpZ25maWNhbnQgbGVuZ3RoIGRpZmZl cmVuY2VzIGJldHdlZW4gdmFsaWQgdmFsdWVzIGFuZCB0aGF0IGxlbmd0aAorICAgIGluZm9y bWF0aW9uIGlzIHNlY3VyaXR5LXNlbnNpdGl2ZSwgdGhlbiBhcHBsaWNhdGlvbi1zcGVjaWZp YyB3b3JrYXJvdW5kcworICAgIHN1Y2ggYXMgcGFkZGluZyB3b3VsZCBuZWVkIHRvIGJlIGFw cGxpZWQuICBIb3cgdG8gZG8gdGhhdCBzZWN1cmVseSBpcworICAgIGJleW9uZCB0aGUgc2Nv cGUgb2YgdGhpcyBtYW51YWwuICBOb3RlIHRoYXQgY29sdW1uIGVuY3J5cHRpb24gaXMgYXBw bGllZAorICAgIHRvIHRoZSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdG9yZWQgdmFs dWUsIHNvIGxlbmd0aCBkaWZmZXJlbmNlcyBjYW4KKyAgICBiZSBsZWFrZWQgZXZlbiBmb3Ig Zml4ZWQtbGVuZ3RoIGNvbHVtbiB0eXBlcyAoZS5nLiAgPHR5cGU+YmlnaW50PC90eXBlPiwK KyAgICB3aG9zZSBsYXJnZXN0IGRlY2ltYWwgcmVwcmVzZW50YXRpb24gaXMgbG9uZ2VyIHRo YW4gMTYgYnl0ZXMpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBDb2x1bW4gZW5j cnlwdGlvbiBwcm92aWRlcyBvbmx5IHBhcnRpYWwgcHJvdGVjdGlvbiBhZ2FpbnN0IGEgbWFs aWNpb3VzCisgICAgdXNlciB3aXRoIHdyaXRlIGFjY2VzcyB0byB0aGUgdGFibGUuICBPbmNl IGVuY3J5cHRlZCwgYW55IG1vZGlmaWNhdGlvbnMgdG8KKyAgICBhIHN0b3JlZCB2YWx1ZSBv biB0aGUgc2VydmVyIHNpZGUgd2lsbCBjYXVzZSBhIGRlY3J5cHRpb24gZmFpbHVyZSBvbiB0 aGUKKyAgICBjbGllbnQuICBIb3dldmVyLCBhIHVzZXIgd2l0aCB3cml0ZSBhY2Nlc3MgY2Fu IHN0aWxsIGZyZWVseSBzd2FwIGVuY3J5cHRlZAorICAgIHZhbHVlcyBiZXR3ZWVuIHJvd3Mg b3IgY29sdW1ucyAob3IgZXZlbiBzZXBhcmF0ZSBkYXRhYmFzZSBjbHVzdGVycykgYXMKKyAg ICBsb25nIGFzIHRoZXkgd2VyZSBlbmNyeXB0ZWQgd2l0aCB0aGUgc2FtZSBrZXkuICBBdHRh Y2tlcnMgY2FuIGFsc28gcmVtb3ZlCisgICAgdmFsdWVzIGJ5IHJlcGxhY2luZyB0aGVtIHdp dGggbnVsbHMsIGFuZCB1c2VycyB3aXRoIG93bmVyc2hpcCBvdmVyIHRoZQorICAgIHRhYmxl IHNjaGVtYSBjYW4gcmVwbGFjZSBlbmNyeXB0aW9uIGtleXMgb3Igc3RyaXAgZW5jcnlwdGlv biBmcm9tIHRoZQorICAgIGNvbHVtbnMgZW50aXJlbHkuICBBbGwgb2YgdGhpcyBpcyB0byBz YXk6IFByb3BlciBhY2Nlc3MgY29udHJvbCBpcyBzdGlsbAorICAgIG9mIHZpdGFsIGltcG9y dGFuY2Ugd2hlbiB1c2luZyB0aGlzIGZlYXR1cmUuCisgICA8L3BhcmE+CisKKyAgIDx0aXA+ CisgICAgPHBhcmE+CisgICAgIE9uZSBtaWdodCBiZSBpbmNsaW5lZCB0byB0aGluayBvZiB0 aGUgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24KKyAgICAgZmVhdHVyZSBh cyBhIG1lY2hhbmlzbSBmb3IgYXBwbGljYXRpb24gd3JpdGVycyBhbmQgdXNlcnMgdG8gcHJv dGVjdAorICAgICB0aGVtc2VsdmVzIGFnYWluc3QgYW4gPHF1b3RlPmV2aWwgREJBPC9xdW90 ZT4sIGJ1dCB0aGF0IGlzIG5vdCB0aGUKKyAgICAgaW50ZW5kZWQgcHVycG9zZS4gIFJhdGhl ciwgaXQgaXMgKGFsc28pIGEgdG9vbCBmb3IgdGhlIERCQSB0byBjb250cm9sCisgICAgIHdo aWNoIGRhdGEgdGhleSBkbyBub3Qgd2FudCAoaW4gcGxhaW50ZXh0KSBvbiB0aGUgc2VydmVy LgorICAgIDwvcGFyYT4KKyAgIDwvdGlwPgorCisgICA8cGFyYT4KKyAgICBXaGVuIHVzaW5n IGFzeW1tZXRyaWMgQ01LIGFsZ29yaXRobXMgdG8gZW5jcnlwdCBDRUtzLCB0aGUKKyAgICA8 cXVvdGU+cHVibGljPC9xdW90ZT4gaGFsZiBvZiB0aGUgQ01LIGNhbiBiZSB1c2VkIHRvIHJl cGxhY2UgZXhpc3RpbmcKKyAgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIHdpdGgga2V5cyBv ZiBhbiBhdHRhY2tlcidzIGNob29zaW5nLCBjb21wcm9taXNpbmcKKyAgICBjb25maWRlbnRp YWxpdHkgYW5kIGF1dGhlbnRpY2l0eSBmb3IgdmFsdWVzIGVuY3J5cHRlZCB1bmRlciB0aGF0 IENNSy4gIEZvcgorICAgIHRoaXMgcmVhc29uLCBpdCdzIGltcG9ydGFudCB0byBrZWVwIGJv dGggdGhlIHByaXZhdGUKKyAgICA8ZW1waGFzaXM+YW5kPC9lbXBoYXNpcz4gcHVibGljIGhh bHZlcyBvZiB0aGUgQ01LIGtleSBwYWlyIGNvbmZpZGVudGlhbC4KKyAgIDwvcGFyYT4KKwor ICAgPG5vdGU+CisgICAgPHBhcmE+CisgICAgIFN0b3JpbmcgZGF0YSBzdWNoIGNyZWRpdCBj YXJkIGRhdGEsIG1lZGljYWwgZGF0YSwgYW5kIHNvIG9uIGlzIHVzdWFsbHkKKyAgICAgc3Vi amVjdCB0byBnb3Zlcm5tZW50IG9yIGluZHVzdHJ5IHJlZ3VsYXRpb25zLiAgVGhpcyBzZWN0 aW9uIGlzIG5vdCBtZWFudAorICAgICB0byBwcm92aWRlIGNvbXBsZXRlIGluc3RydWN0aW9u cyBvbiBob3cgdG8gZG8gdGhpcyBjb3JyZWN0bHkuICBQbGVhc2UKKyAgICAgc2VlayBhZGRp dGlvbmFsIGFkdmljZSB3aGVuIGVuZ2FnaW5nIGluIHN1Y2ggcHJvamVjdHMuCisgICAgPC9w YXJhPgorICAgPC9ub3RlPgorICA8L3NlY3QyPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9 ImRkbC1zeXN0ZW0tY29sdW1ucyI+CiAgIDx0aXRsZT5TeXN0ZW0gQ29sdW1uczwvdGl0bGU+ CiAKQEAgLTIxMzYsNiArMjU3MCwxNCBAQCA8dGl0bGU+UHJpdmlsZWdlczwvdGl0bGU+CiAg ICAgICAgc2VydmVyLiAgR3JhbnRlZXMgbWF5IGFsc28gY3JlYXRlLCBhbHRlciwgb3IgZHJv cCB0aGVpciBvd24gdXNlcgogICAgICAgIG1hcHBpbmdzIGFzc29jaWF0ZWQgd2l0aCB0aGF0 IHNlcnZlci4KICAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEZvciBjb2x1 bW4gbWFzdGVyIGtleXMsIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY29sdW1uIGVuY3J5cHRp b24ga2V5cworICAgICAgIHVzaW5nIHRoZSBtYXN0ZXIga2V5LgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgRm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMsIGFsbG93 cyB0aGUgdXNlIG9mIHRoZSBrZXkgaW4gdGhlIGNyZWF0aW9uCisgICAgICAgb2YgdGFibGUg Y29sdW1ucy4KKyAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxp c3RlbnRyeT4KIApAQCAtMjMwMiw2ICsyNzQ0LDggQEAgPHRpdGxlPkFDTCBQcml2aWxlZ2Ug QWJicmV2aWF0aW9uczwvdGl0bGU+CiAgICAgICA8ZW50cnk+PGxpdGVyYWw+VVNBR0U8L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50 cnk+CiAgICAgICA8ZW50cnk+CisgICAgICAgPGxpdGVyYWw+Q09MVU1OIEVOQ1JZUFRJT04g S0VZPC9saXRlcmFsPiwKKyAgICAgICA8bGl0ZXJhbD5DT0xVTU4gTUFTVEVSIEtFWTwvbGl0 ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+RE9NQUlOPC9saXRlcmFsPiwKICAgICAgICA8bGl0 ZXJhbD5GT1JFSUdOIERBVEEgV1JBUFBFUjwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+ Rk9SRUlHTiBTRVJWRVI8L2xpdGVyYWw+LApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggYmYxMzIxNmU0NzcuLjc3 ZTdlZTBiYmQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTI0ODk2LDYgKzI0ODk2LDQwIEBAIDx0aXRsZT5B Y2Nlc3MgUHJpdmlsZWdlIElucXVpcnkgRnVuY3Rpb25zPC90aXRsZT4KICAgICAgICA8L3Bh cmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCisgICAgICA8cm93PgorICAgICAgIDxlbnRy eSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+ CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5oYXNfY29sdW1uX2Vu Y3J5cHRpb25fa2V5X3ByaXZpbGVnZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+ CisgICAgICAgIDxmdW5jdGlvbj5oYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVn ZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwv cGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29w dGlvbmFsPgorICAgICAgICAgIDxwYXJhbWV0ZXI+Y2VrPC9wYXJhbWV0ZXI+IDx0eXBlPnRl eHQ8L3R5cGU+IG9yIDx0eXBlPm9pZDwvdHlwZT4sCisgICAgICAgICAgPHBhcmFtZXRlcj5w cml2aWxlZ2U8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gKQorICAgICAgICA8cmV0 dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAg IDxwYXJhPgorICAgICAgICBEb2VzIHVzZXIgaGF2ZSBwcml2aWxlZ2UgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGtleT8KKyAgICAgICAgVGhlIG9ubHkgYWxsb3dhYmxlIHByaXZpbGVnZSB0 eXBlIGlzIDxsaXRlcmFsPlVTQUdFPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJm dW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAg IDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5oYXNfY29sdW1uX21hc3Rlcl9rZXlf cHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1 bmN0aW9uPmhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2U8L2Z1bmN0aW9uPiAoCisg ICAgICAgICAgPG9wdGlvbmFsPiA8cGFyYW1ldGVyPnVzZXI8L3BhcmFtZXRlcj4gPHR5cGU+ bmFtZTwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwgPC9vcHRpb25hbD4KKyAgICAgICAg ICA8cGFyYW1ldGVyPmNtazwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiBvciA8dHlw ZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJhbWV0ZXI+cHJpdmlsZWdlPC9wYXJhbWV0 ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPmJvb2xlYW48 L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg RG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBjb2x1bW4gbWFzdGVyIGtleT8KKyAgICAg ICAgVGhlIG9ubHkgYWxsb3dhYmxlIHByaXZpbGVnZSB0eXBlIGlzIDxsaXRlcmFsPlVTQUdF PC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAg ICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTM4 Niw2ICsyNTQyMCwzMiBAQCA8dGl0bGU+U2NoZW1hIFZpc2liaWxpdHkgSW5xdWlyeSBGdW5j dGlvbnM8L3RpdGxlPgogICAgICA8L3RoZWFkPgogCiAgICAgIDx0Ym9keT4KKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmlt YXJ5PnBnX2Nla19pc192aXNpYmxlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4K KyAgICAgICAgPGZ1bmN0aW9uPnBnX2Nla19pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFy YW1ldGVyPmNlazwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJl dHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgSXMgY29sdW1uIGVuY3J5cHRpb24ga2V5IHZpc2libGUgaW4g c2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwor ICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAg ICAgPHByaW1hcnk+cGdfY21rX2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+cGdfY21rX2lzX3Zpc2libGU8L2Z1bmN0aW9u PiAoIDxwYXJhbWV0ZXI+Y21rPC9wYXJhbWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAg ICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJh PgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBjb2x1bW4gbWFzdGVyIGtleSB2aXNpYmxl IGluIHNlYXJjaCBwYXRoPworICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+ CisKICAgICAgIDxyb3c+CiAgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2ds b3NzYXJ5LnNnbWwKaW5kZXggYTgxYzE3YTg2OTAuLjg5ZTY3YjZiNWM1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nh cnkuc2dtbApAQCAtNDMzLDYgKzQzMywzMiBAQCA8dGl0bGU+R2xvc3Nhcnk8L3RpdGxlPgog ICAgPC9nbG9zc2RlZj4KICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJn bG9zc2FyeS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4g ZW5jcnlwdGlvbiBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4K KyAgICAgQSBjcnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIHZhbHVl cyB3aGVuIHVzaW5nIGF1dG9tYXRpYworICAgICBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwg ZW5jcnlwdGlvbiAoPHhyZWYKKyAgICAgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9u Ii8+KS4gIENvbHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIHN0b3JlZCBpbgorICAgICB0aGUg ZGF0YWJhc2UgZW5jcnlwdGVkIGJ5IGFub3RoZXIga2V5LCB0aGUgPGdsb3NzdGVybQorICAg ICBsaW5rZW5kPSJnbG9zc2FyeS1jb2x1bW4tbWFzdGVyLWtleSI+Y29sdW1uIG1hc3RlciBr ZXk8L2dsb3NzdGVybT4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9z c2VudHJ5PgorCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb2x1bW4tbWFzdGVyLWtl eSI+CisgICA8Z2xvc3N0ZXJtPkNvbHVtbiBtYXN0ZXIga2V5PC9nbG9zc3Rlcm0+CisgICA8 Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgY3J5cHRvZ3JhcGhpYyBrZXkgdXNlZCB0 byBlbmNyeXB0IDxnbG9zc3Rlcm0KKyAgICAgbGlua2VuZD0iZ2xvc3NhcnktY29sdW1uLWVu Y3J5cHRpb24ta2V5Ij5jb2x1bW4gZW5jcnlwdGlvbgorICAgICBrZXlzPC9nbG9zc3Rlcm0+ LiAgKFNvIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBhIDxmaXJzdHRlcm0+a2V5CisgICAg IGVuY3J5cHRpb24ga2V5PC9maXJzdHRlcm0+LikgIENvbHVtbiBtYXN0ZXIga2V5cyBhcmUg c3RvcmVkIG91dHNpZGUgdGhlCisgICAgIGRhdGFiYXNlIHN5c3RlbSwgZm9yIGV4YW1wbGUg aW4gYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2Rl Zj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb21t aXQiPgogICAgPGdsb3NzdGVybT5Db21taXQ8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xp YnBxLnNnbWwKaW5kZXggMzVmYjM0NmVkOTcuLjlmOGYyYzNjMTNiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApA QCAtMjI2Miw2ICsyMjYyLDE0MSBAQCA8dGl0bGU+UGFyYW1ldGVyIEtleSBXb3JkczwvdGl0 bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8 dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0aW9uIiB4cmVm bGFiZWw9ImNvbHVtbl9lbmNyeXB0aW9uIj4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvbHVt bl9lbmNyeXB0aW9uPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgSWYgc2V0IHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiwgPGxp dGVyYWw+dHJ1ZTwvbGl0ZXJhbD4sIG9yCisgICAgICAgIDxsaXRlcmFsPjE8L2xpdGVyYWw+ LCB0aGlzIGVuYWJsZXMgYXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbAorICAg ICAgICBlbmNyeXB0aW9uIGZvciB0aGUgY29ubmVjdGlvbi4gIElmIGVuY3J5cHRlZCBjb2x1 bW5zIGFyZSBxdWVyaWVkIGFuZAorICAgICAgICB0aGlzIGlzIG5vdCBlbmFibGVkLCB0aGUg ZW5jcnlwdGVkIHZhbHVlcyBhcmUgcmV0dXJuZWQuICBTZWUgPHhyZWYKKyAgICAgICAgbGlu a2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIi8+IGZvciBtb3JlIGluZm9ybWF0aW9uIGFi b3V0IHRoaXMKKyAgICAgICAgZmVhdHVyZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlk PSJsaWJwcS1jb25uZWN0LWNta2xvb2t1cCIgeHJlZmxhYmVsPSJjbWtsb29rdXAiPgorICAg ICAgPHRlcm0+PGxpdGVyYWw+Y21rbG9va3VwPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBzcGVjaWZpZXMgaG93IGxp YnBxIHNob3VsZCBsb29rIHVwIGNvbHVtbiBtYXN0ZXIga2V5cyAoQ01LcykgaW4KKyAgICAg ICAgb3JkZXIgdG8gZGVjcnlwdCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyAoQ0VLcyku CisgICAgICAgIFRoZSB2YWx1ZSBpcyBhIGxpc3Qgb2YgPGxpdGVyYWw+a2V5PXZhbHVlPC9s aXRlcmFsPiBlbnRyaWVzIHNlcGFyYXRlZAorICAgICAgICBieSBzZW1pY29sb25zLiAgRWFj aCBrZXkgaXMgdGhlIG5hbWUgb2YgYSBrZXkgcmVhbG0sIG9yCisgICAgICAgIDxsaXRlcmFs Pio8L2xpdGVyYWw+IHRvIG1hdGNoIGFsbCByZWFsbXMuICBUaGUgdmFsdWUgaXMgYQorICAg ICAgICA8bGl0ZXJhbD5zY2hlbWU6ZGF0YTwvbGl0ZXJhbD4gc3BlY2lmaWNhdGlvbi4gIFRo ZSBzY2hlbWUgc3BlY2lmaWVzCisgICAgICAgIHRoZSBtZXRob2QgdG8gbG9vayB1cCB0aGUg a2V5LCB0aGUgcmVtYWluaW5nIGRhdGEgaXMgc3BlY2lmaWMgdG8gdGhlCisgICAgICAgIHNj aGVtZS4gIFBsYWNlaG9sZGVycyBhcmUgcmVwbGFjZWQgaW4gdGhlIHJlbWFpbmluZyBkYXRh IGFzIGZvbGxvd3M6CisKKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWE8L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAg ICBUaGUgQ01LIGFsZ29yaXRobSBuYW1lIChzZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wt Y21rLXRhYmxlIi8+KQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVqPC9saXRlcmFsPjwvdGVybT4KKyAgICAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENN SyBhbGdvcml0aG0gbmFtZSBpbiBKU09OIFdlYiBBbGdvcml0aG1zIGZvcm1hdCAoc2VlIDx4 cmVmCisgICAgICAgICAgICBsaW5rZW5kPSJwcm90b2NvbC1jbWstdGFibGUiLz4pLiAgVGhp cyBpcyB1c2VmdWwgZm9yIGludGVyZmFjaW5nCisgICAgICAgICAgICB3aXRoIHNvbWUga2V5 IG1hbmFnZW1lbnQgc3lzdGVtcyB0aGF0IHVzZSB0aGVzZSBuYW1lcy4KKyAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJh bD4lazwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBDTUsga2V5IG5hbWUKKyAgICAgICAgICAgPC9w YXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4l cDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICAgIFRoZSBuYW1lIG9mIGEgdGVtcG9yYXJ5IGZpbGUgd2l0aCB0 aGUgZW5jcnlwdGVkIENFSyBkYXRhIChvbmx5IGZvcgorICAgICAgICAgICAgdGhlIDxsaXRl cmFsPnJ1bjwvbGl0ZXJhbD4gc2NoZW1lKQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVyPC9saXRlcmFsPjwv dGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAg ICAgICAgVGhlIHJlYWxtIG5hbWUKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgICAgPC92YXJpYWJs ZWxpc3Q+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEF2YWls YWJsZSBzY2hlbWVzIGFyZToKKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+ZmlsZTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAg ICAgICAgIExvYWQgdGhlIGtleSBtYXRlcmlhbCBmcm9tIGEgZmlsZS4gIFRoZSByZW1haW5p bmcgZGF0YSBpcyB0aGUgZmlsZQorICAgICAgICAgICAgbmFtZS4gIFVzZSB0aGlzIGlmIHRo ZSBDTUtzIGFyZSBrZXB0IGluIGEgZmlsZSBvbiB0aGUgZmlsZSBzeXN0ZW0uCisgICAgICAg ICAgIDwvcGFyYT4KKworICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBmaWxl IHNjaGVtZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBDTUsgYWxnb3JpdGhtCisgICAgICAgICAg ICA8bGl0ZXJhbD51bnNwZWNpZmllZDwvbGl0ZXJhbD4uCisgICAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+cnVuPC9s aXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJh PgorICAgICAgICAgICAgUnVuIHRoZSBzcGVjaWZpZWQgY29tbWFuZCB0byBkZWNyeXB0IHRo ZSBDRUsuICBUaGUgcmVtYWluaW5nIGRhdGEKKyAgICAgICAgICAgIGlzIGEgc2hlbGwgY29t bWFuZC4gIFVzZSB0aGlzIHdpdGgga2V5IG1hbmFnZW1lbnQgc3lzdGVtcyB0aGF0CisgICAg ICAgICAgICBwZXJmb3JtIHRoZSBkZWNyeXB0aW9uIHRoZW1zZWx2ZXMuICBUaGUgY29tbWFu ZCBtdXN0IHByaW50IHRoZQorICAgICAgICAgICAgZGVjcnlwdGVkIHBsYWludGV4dCBvbiB0 aGUgc3RhbmRhcmQgb3V0cHV0LgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICA8L3ZhcmlhYmxl bGlzdD4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGRl ZmF1bHQgdmFsdWUgaXMgZW1wdHkuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+ CisgICAgICAgIEV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29rdXA9InIxPWZp bGU6L3NvbWUvd2hlcmUvc2VjcmV0cy8lay5wZW07Kj1maWxlOi9lbHNlL3doZXJlLyVyLyVr LnBlbSIKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIFRoaXMgc3BlY2lmaWNhdGlvbiBz YXlzLCBmb3Iga2V5cyBpbiByZWFsbSA8cXVvdGU+cjE8L3F1b3RlPiwgbG9hZAorICAgICAg ICB0aGVtIGZyb20gdGhlIHNwZWNpZmllZCBmaWxlLCByZXBsYWNpbmcgPGxpdGVyYWw+JWs8 L2xpdGVyYWw+IGJ5IHRoZQorICAgICAgICBrZXkgbmFtZS4gIEZvciBrZXlzIGluIG90aGVy IHJlYWxtcywgbG9hZCB0aGVtIGZyb20gdGhlIGZpbGUsCisgICAgICAgIHJlcGxhY2luZyBy ZWFsbSBhbmQga2V5IG5hbWVzIGFzIHNwZWNpZmllZC4KKyAgICAgICA8L3BhcmE+CisKKyAg ICAgICA8cGFyYT4KKyAgICAgICAgQW4gZXhhbXBsZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBh IChoeXBvdGhldGljYWwpIGtleSBtYW5hZ2VtZW50CisgICAgICAgIHN5c3RlbToKKzxwcm9n cmFtbGlzdGluZz4KK2Nta2xvb2t1cD0iKj1ydW46YWNtZWttcyBkZWNyeXB0IC0ta2V5ICVr IC0tYWxnICVhIC0taW5maWxlICclcCciCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtbG9hZC1iYWxhbmNlLWhvc3RzIiB4 cmVmbGFiZWw9ImxvYWRfYmFsYW5jZV9ob3N0cyI+CiAgICAgICA8dGVybT48bGl0ZXJhbD5s b2FkX2JhbGFuY2VfaG9zdHM8L2xpdGVyYWw+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpA QCAtMzI1Miw2ICszMzg3LDMyIEBAIDx0aXRsZT5NYWluIEZ1bmN0aW9uczwvdGl0bGU+CiAg ICAgICAgICAgICA8ZmlsZW5hbWU+c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYzo6 bnVtZXJpY19zZW5kKCk8L2ZpbGVuYW1lPiBhbmQKICAgICAgICAgICAgIDxmaWxlbmFtZT5z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jOjpudW1lcmljX3JlY3YoKTwvZmlsZW5h bWU+LgogICAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgICBXaGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIHRoZSBzZWNvbmQtbGVh c3Qtc2lnbmlmaWNhbnQKKyAgICAgICAgICAgIGhhbGYtYnl0ZSBvZiB0aGlzIHBhcmFtZXRl ciBzcGVjaWZpZXMgd2hldGhlciBlbmNyeXB0aW9uIHNob3VsZCBiZQorICAgICAgICAgICAg Zm9yY2VkIGZvciBhIHBhcmFtZXRlci4gIFNldCB0aGlzIGhhbGYtYnl0ZSB0byBvbmUgdG8g Zm9yY2UKKyAgICAgICAgICAgIGVuY3J5cHRpb24uICBGb3IgZXhhbXBsZSwgdXNlIHRoZSBD IGNvZGUgbGl0ZXJhbAorICAgICAgICAgICAgPGxpdGVyYWw+MHgxMDwvbGl0ZXJhbD4gdG8g c3BlY2lmeSB0ZXh0IGZvcm1hdCB3aXRoIGZvcmNlZAorICAgICAgICAgICAgZW5jcnlwdGlv bi4gIElmIHRoZSBhcnJheSBwb2ludGVyIGlzIG51bGwgdGhlbiBlbmNyeXB0aW9uIGlzIG5v dAorICAgICAgICAgICAgZm9yY2VkIGZvciBhbnkgcGFyYW1ldGVyLgorICAgICAgICAgICA8 L3BhcmE+CisKKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBQYXJhbWV0ZXJzIGNv cnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgbXVzdCBiZSBwYXNzZWQgaW4KKyAg ICAgICAgICAgIHRleHQgZm9ybWF0LiAgU3BlY2lmeWluZyBiaW5hcnkgZm9ybWF0IGZvciBz dWNoIGEgcGFyYW1ldGVyIHdpbGwKKyAgICAgICAgICAgIHJlc3VsdCBpbiBhbiBlcnJvci4K KyAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAg SWYgZW5jcnlwdGlvbiBpcyBmb3JjZWQgZm9yIGEgcGFyYW1ldGVyIGJ1dCB0aGUgcGFyYW1l dGVyIGRvZXMgbm90CisgICAgICAgICAgICBjb3JyZXNwb25kIHRvIGFuIGVuY3J5cHRlZCBj b2x1bW4gb24gdGhlIHNlcnZlciwgdGhlbiB0aGUgY2FsbAorICAgICAgICAgICAgd2lsbCBm YWlsIGFuZCB0aGUgcGFyYW1ldGVyIHdpbGwgbm90IGJlIHNlbnQuICBUaGlzIGNhbiBiZSB1 c2VkCisgICAgICAgICAgICBmb3IgYWRkaXRpb25hbCBzZWN1cml0eSBhZ2FpbnN0IGEgY29t cHJvbWlzZWQgc2VydmVyLiAgKFRoZQorICAgICAgICAgICAgZHJhd2JhY2sgaXMgdGhhdCBh cHBsaWNhdGlvbiBjb2RlIHRoZW4gbmVlZHMgdG8gYmUga2VwdCB1cCB0byBkYXRlCisgICAg ICAgICAgICB3aXRoIGtub3dsZWRnZSBhYm91dCB3aGljaCBjb2x1bW5zIGFyZSBlbmNyeXB0 ZWQgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgIGxldHRpbmcgdGhlIHNlcnZlciBzcGVjaWZ5 IHRoaXMuKQorICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICAgPC9saXN0aXRlbT4KICAg ICAgICAgIDwvdmFybGlzdGVudHJ5PgogCkBAIC0zMjY0LDYgKzM0MjUsMTMgQEAgPHRpdGxl Pk1haW4gRnVuY3Rpb25zPC90aXRsZT4KICAgICAgICAgICAgIHRvIG9idGFpbiBkaWZmZXJl bnQgcmVzdWx0IGNvbHVtbnMgaW4gZGlmZmVyZW50IGZvcm1hdHMsCiAgICAgICAgICAgICBh bHRob3VnaCB0aGF0IGlzIHBvc3NpYmxlIGluIHRoZSB1bmRlcmx5aW5nIHByb3RvY29sLikK ICAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAg SWYgY29sdW1uIGVuY3J5cHRpb24gaXMgdXNlZCwgdGhlbiBlbmNyeXB0ZWQgY29sdW1ucyB3 aWxsIGJlCisgICAgICAgICAgICByZXR1cm5lZCBpbiB0ZXh0IGZvcm1hdCBpbmRlcGVuZGVu dCBvZiB0aGlzIHNldHRpbmcuICBBcHBsaWNhdGlvbnMKKyAgICAgICAgICAgIGNhbiBjaGVj ayB0aGUgZm9ybWF0IG9mIGVhY2ggcmVzdWx0IGNvbHVtbiB3aXRoIDx4cmVmCisgICAgICAg ICAgICBsaW5rZW5kPSJsaWJwcS1QUWZmb3JtYXQiLz4gYmVmb3JlIGFjY2Vzc2luZyBpdC4K KyAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KICAgICAgICAgPC92YXJpYWJsZWxpc3Q+CkBAIC0zNDEzLDYgKzM1 ODEsNDQgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90aXRsZT4KICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imxp YnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkIj4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5Q UWV4ZWNQcmVwYXJlZERlc2NyaWJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5Q UWV4ZWNQcmVwYXJlZERlc2NyaWJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisK KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2VuZHMgYSByZXF1 ZXN0IHRvIGV4ZWN1dGUgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBnaXZlbgorICAgICAg ICBwYXJhbWV0ZXJzLCBhbmQgd2FpdHMgZm9yIHRoZSByZXN1bHQsIHdpdGggc3VwcG9ydCBm b3IgZW5jcnlwdGVkIGNvbHVtbnMuCis8c3lub3BzaXM+CitQR3Jlc3VsdCAqUFFleGVjUHJl cGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBuUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsK Kzwvc3lub3BzaXM+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkIi8+IGlzIGxp a2UgPHhyZWYKKyAgICAgICAgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4gd2l0 aCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgICBjb2x1bW5zLiAg VGhlIHBhcmFtZXRlciA8cGFyYW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJl IGEKKyAgICAgICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiBvbgorICAgICAgICB0aGUgc2FtZSBwcmVwYXJl ZCBzdGF0ZW1lbnQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBj b3JyZXNwb25kcyB0byBhbgorICAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1bW4u ICBJbiB0aGF0IHNpdHVhdGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgIHN0YXRlbWVudCBu ZWVkcyB0byBiZSBkZXNjcmliZWQgZmlyc3Qgc28gdGhhdCBsaWJwcSBjYW4gb2J0YWluIHRo ZQorICAgICAgICBuZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRo ZSBzZXJ2ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMg Y29ycmVzcG9uZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgYXV0b21h dGljYWxseSBlbmNyeXB0ZWQgYXBwcm9wcmlhdGVseSBiZWZvcmUgYmVpbmcgc2VudCB0byB0 aGUgc2VydmVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZGVzY3Jp YmVQcmVwYXJlZCI+CiAgICAgICA8dGVybT48ZnVuY3Rpb24+UFFkZXNjcmliZVByZXBhcmVk PC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZGVzY3JpYmVQcmVwYXJlZDwvcHJp bWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQzNDEsNiArNDU0NywyOCBAQCA8dGl0 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 aW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDUyMiw2ICs0NzUwLDMxIEBAIDx0aXRsZT5SZXRy aWV2aW5nIFF1ZXJ5IFJlc3VsdCBJbmZvcm1hdGlvbjwvdGl0bGU+CiAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJw cS1QUXBhcmFtaXNlbmNyeXB0ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFwYXJhbWlz ZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRcGFyYW1pc2VuY3J5 cHRlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgUmV0dXJucyB3aGV0aGVyIHRoZSB2YWx1ZSBmb3IgdGhl IGdpdmVuIHBhcmFtZXRlciBpcyBkZXN0aW5lZCBmb3IgYW4KKyAgICAgICBlbmNyeXB0ZWQg Y29sdW1uLiAgUGFyYW1ldGVyIG51bWJlcnMgc3RhcnQgYXQgMC4KKzxzeW5vcHNpcz4KK2lu dCBQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251 bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAg ICAgICBWYWx1ZXMgZm9yIHBhcmFtZXRlcnMgZGVzdGluZWQgZm9yIGVuY3J5cHRlZCBjb2x1 bW5zIGFyZSBhdXRvbWF0aWNhbGx5CisgICAgICAgZW5jcnlwdGVkLCBzbyB0aGlzIGZ1bmN0 aW9uIGlzIG5vdCBuZWNlc3NhcnkgdG8gcHJlcGFyZSB0aGUgcGFyYW1ldGVyCisgICAgICAg dmFsdWUuICBJdCBjYW4gYmUgdXNlZCBmb3IgZXh0cmEgc2VjdXJpdHkgdG8gY2hlY2sgd2hl dGhlciB0aGUgdmFsdWUKKyAgICAgICB3aWxsIGJlIHN0b3JlZCBlbmNyeXB0ZWQgd2hlbiBv bmUgdGhvdWdodCBpdCBzaG91bGQgYmUuICAoQnV0IHNlZSBhbHNvCisgICAgICAgYXQgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWREZXNjcmliZWQiLz4gZm9yIGFub3Ro ZXIgd2F5IHRvIGRvIHRoYXQuKQorICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSB1c2Vm dWwgd2hlbiBpbnNwZWN0aW5nIHRoZSByZXN1bHQgb2YgPHhyZWYKKyAgICAgICBsaW5rZW5k PSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4uICBGb3Igb3RoZXIgdHlwZXMgb2YgcmVz dWx0cyBpdAorICAgICAgIHdpbGwgcmV0dXJuIGZhbHNlLgorICAgICAgPC9wYXJhPgorICAg ICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRy eSBpZD0ibGlicHEtUFFwcmludCI+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXByaW50PC9m dW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRcHJpbnQ8L3ByaW1hcnk+PC9pbmRleHRl cm0+PC90ZXJtPgogCkBAIC01MDQ3LDYgKzUzMDAsNyBAQCA8dGl0bGU+QXN5bmNocm9ub3Vz IENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UXNlbmRRdWVyeVBhcmFtcyIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFBy ZXBhcmUiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVk Ii8+LAorICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2Ny aWJlZCIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFy ZWQiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVBvcnRhbCIv PiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZENsb3NlUHJlcGFyZWQiLz4sIGFu ZApAQCAtNTA1Niw2ICs1MzEwLDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFBy b2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUGFyYW1z Ii8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFwcmVwYXJlIi8+LAogICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBR ZGVzY3JpYmVQb3J0YWwiLz4KICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRY2xvc2VQcmVw YXJlZCIvPiwgYW5kCkBAIC01MTE0LDYgKzUzNjksMTMgQEAgPHRpdGxlPkFzeW5jaHJvbm91 cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRZXhlY1BhcmFtcyIvPiwgaXQgYWxsb3dzIG9ubHkgb25lIGNvbW1hbmQgaW4gdGhl CiAgICAgICAgcXVlcnkgc3RyaW5nLgogICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4K KyAgICAgICBJZiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGVuIHRoaXMgZnVu Y3Rpb24gaXMgbm90CisgICAgICAgYXN5bmNocm9ub3VzLiAgVG8gZ2V0IGFzeW5jaHJvbm91 cyBiZWhhdmlvciwgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVwYXJl Ii8+IGZvbGxvd2VkIGJ5IDx4cmVmCisgICAgICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVl cnlQcmVwYXJlZERlc2NyaWJlZCIvPiBzaG91bGQgYmUgY2FsbGVkIGluZGl2aWR1YWxseS4K KyAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4K IApAQCAtNTE2OCw2ICs1NDMwLDQ1IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQ cm9jZXNzaW5nPC90aXRsZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWRE ZXNjcmliZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZW5kUXVlcnlQcmVwYXJlZERl c2NyaWJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXNlbmRRdWVyeVByZXBh cmVkRGVzY3JpYmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTZW5kcyBhIHJlcXVlc3QgdG8gZXhlY3V0 ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAgcGFyYW1ldGVycywg d2l0aG91dCB3YWl0aW5nIGZvciB0aGUgcmVzdWx0KHMpLCB3aXRoIHN1cHBvcnQgZm9yIGVu Y3J5cHRlZCBjb2x1bW5zLgorPHN5bm9wc2lzPgoraW50IFBRc2VuZFF1ZXJ5UHJlcGFyZWRE ZXNjcmliZWQoUEdjb25uICpjb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqc3RtdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpwYXJhbURlc2MpOworPC9zeW5vcHNpcz4K KyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCIvPiBpcyBsaWtlIDx4cmVmCisg ICAgICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiB3aXRoIGFkZGl0 aW9uYWwgc3VwcG9ydCBmb3IgZW5jcnlwdGVkCisgICAgICAgY29sdW1ucy4gIFRoZSBwYXJh bWV0ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBhCisgICAg ICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2Vu ZERlc2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0 ZW1lbnQuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgZnVu Y3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNwb25k cyB0byBhbgorICAgICAgIHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQg c2l0dWF0aW9uLCB0aGUgcHJlcGFyZWQKKyAgICAgICBzdGF0ZW1lbnQgbmVlZHMgdG8gYmUg ZGVzY3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUKKyAgICAgICBu ZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBX aGVuIHRoYXQgaXMKKyAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5n IHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFyZQorICAgICAgIGF1dG9tYXRpY2FsbHkgZW5jcnlw dGVkIGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZlci4KKyAg ICAgICBTZWUgYWxzbyB1bmRlciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJl ZERlc2NyaWJlZCIvPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZERl c2NyaWJlUHJlcGFyZWQiPgogICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZW5kRGVzY3JpYmVQ cmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXNlbmREZXNjcmliZVBy ZXBhcmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNTI1OCw2ICs1NTU5 LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgog ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UGFyYW1zIi8+LAogICAg ICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFByZXBhcmUiLz4sCiAgICAgICAgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiwKKyAgICAgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkIi8+LAogICAg ICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sCiAg ICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sCiAg ICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kQ2xvc2VQcmVwYXJlZCIvPiwKQEAg LTg4NDgsNiArOTE1MCwyNiBAQCA8dGl0bGU+RW52aXJvbm1lbnQgVmFyaWFibGVzPC90aXRs ZT4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48ZW52YXI+ UEdDTUtMT09LVVA8L2VudmFyPjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAg ICAgPGVudmFyPlBHQ01LTE9PS1VQPC9lbnZhcj4gYmVoYXZlcyB0aGUgc2FtZSBhcyB0aGUg PHhyZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIi8+IGNvbm5l Y3Rpb24gcGFyYW1ldGVyLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxw cmltYXJ5PjxlbnZhcj5QR0NPTFVNTkVOQ1JZUFRJT048L2VudmFyPjwvcHJpbWFyeT4KKyAg ICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPGVudmFyPlBHQ09MVU1ORU5DUllQVElPTjwvZW52 YXI+IGJlaGF2ZXMgdGhlIHNhbWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJw cS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0aW9uIi8+IGNvbm5lY3Rpb24gcGFyYW1ldGVyLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKwogICAgIDxsaXN0aXRlbT4KICAgICAg PHBhcmE+CiAgICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3By b3RvY29sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAppbmRleCBhOGVjNzJj MjdmNC4uZTg4YWY2ZjMxZjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0xMDkxLDYgKzEwOTEs NzYgQEAgPHRpdGxlPlBpcGVsaW5pbmc8L3RpdGxlPgogICAgPC9wYXJhPgogICA8L3NlY3Qy PgogCisgIDxzZWN0MiBpZD0icHJvdG9jb2wtZmxvdy1jb2x1bW4tZW5jcnlwdGlvbiI+Cisg ICA8dGl0bGU+QXV0b21hdGljIENsaWVudC1zaWRlIENvbHVtbi1sZXZlbCBFbmNyeXB0aW9u PC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVt bi1sZXZlbCBlbmNyeXB0aW9uIGlzIGVuYWJsZWQgYnkgc2VuZGluZyB0aGUKKyAgICBwYXJh bWV0ZXIgPGxpdGVyYWw+X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gd2l0aCBh IHZhbHVlIG9mCisgICAgPGxpdGVyYWw+MTwvbGl0ZXJhbD4gaW4gdGhlIFN0YXJ0dXBNZXNz YWdlLiAgVGhpcyBpcyBhIHByb3RvY29sIGV4dGVuc2lvbgorICAgIHRoYXQgZW5hYmxlcyBh IGZldyBhZGRpdGlvbmFsIHByb3RvY29sIG1lc3NhZ2VzIGFuZCBhZGRzIGFkZGl0aW9uYWwg ZmllbGRzCisgICAgdG8gZXhpc3RpbmcgcHJvdG9jb2wgbWVzc2FnZXMuICBDbGllbnQgZHJp dmVycyBzaG91bGQgb25seSBhY3RpdmF0ZSB0aGlzCisgICAgcHJvdG9jb2wgZXh0ZW5zaW9u IHdoZW4gcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLCBmb3IgZXhhbXBsZSB0aHJvdWdoIGEKKyAg ICBjb25uZWN0aW9uIHBhcmFtZXRlci4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg V2hlbiBhdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gaXMg ZW5hYmxlZCwgdGhlCisgICAgbWVzc2FnZXMgQ29sdW1uTWFzdGVyS2V5IGFuZCBDb2x1bW5F bmNyeXB0aW9uS2V5IGNhbiBhcHBlYXIgYmVmb3JlCisgICAgUm93RGVzY3JpcHRpb24gYW5k IFBhcmFtZXRlckRlc2NyaXB0aW9uIG1lc3NhZ2VzLiAgQ2xpZW50cyBzaG91bGQgY29sbGVj dAorICAgIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGVzZSBtZXNzYWdlcyBhbmQga2VlcCB0aGVt IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlCisgICAgY29ubmVjdGlvbi4gIEEgc2VydmVyIGlz IG5vdCByZXF1aXJlZCB0byByZXNlbmQgdGhlIGtleSBpbmZvcm1hdGlvbiBmb3IKKyAgICBl YWNoIHN0YXRlbWVudCBjeWNsZSBpZiBpdCB3YXMgYWxyZWFkeSBzZW50IGR1cmluZyB0aGlz IGNvbm5lY3Rpb24uICBJZiBhCisgICAgc2VydmVyIHJlc2VuZHMgYSBrZXkgdGhhdCB0aGUg Y2xpZW50IGhhcyBhbHJlYWR5IHN0b3JlZCAodGhhdCBpcywgYSBrZXkKKyAgICBoYXZpbmcg YW4gSUQgZXF1YWwgdG8gb25lIGFscmVhZHkgc3RvcmVkKSwgdGhlIG5ldyBpbmZvcm1hdGlv biBzaG91bGQKKyAgICByZXBsYWNlIHRoZSBvbGQuICAoVGhpcyBjb3VsZCBoYXBwZW4sIGZv ciBleGFtcGxlLCBpZiB0aGUga2V5IHdhcyBhbHRlcmVkCisgICAgYnkgc2VydmVyLXNpZGUg RERMIGNvbW1hbmRzLikKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQSBjbGllbnQg c3VwcG9ydGluZyBhdXRvbWF0aWMgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gc2hvdWxkIGF1 dG9tYXRpY2FsbHkKKyAgICBkZWNyeXB0IHRoZSBjb2x1bW4gdmFsdWUgZmllbGRzIG9mIERh dGFSb3cgbWVzc2FnZXMgY29ycmVzcG9uZGluZyB0bworICAgIGVuY3J5cHRlZCBjb2x1bW5z LCBhbmQgaXQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgZW5jcnlwdCB0aGUgcGFyYW1ldGVyIHZh bHVlCisgICAgZmllbGRzIG9mIEJpbmQgbWVzc2FnZXMgY29ycmVzcG9uZGluZyB0byBlbmNy eXB0ZWQgY29sdW1ucy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBjb2x1 bW4gZW5jcnlwdGlvbiBpcyB1c2VkLCBmb3JtYXQgc3BlY2lmaWNhdGlvbnMgKHRleHQvYmlu YXJ5KSBpbiB0aGUKKyAgICB2YXJpb3VzIHByb3RvY29sIG1lc3NhZ2VzIGFwcGx5IHRvIHRo ZSBjaXBoZXJ0ZXh0LiAgVGhlIHBsYWludGV4dCBpbnNpZGUKKyAgICB0aGUgY2lwaGVydGV4 dCBpcyBhbHdheXMgaW4gdGV4dCBmb3JtYXQsIGJ1dCB0aGlzIGlzIGludmlzaWJsZSB0byB0 aGUKKyAgICBwcm90b2NvbC4gIEV2ZW4gdGhvdWdoIHRoZSBjaXBoZXJ0ZXh0IGNvdWxkIGlu IHRoZW9yeSBiZSBzZW50IGluIGVpdGhlcgorICAgIHRleHQgb3IgYmluYXJ5IGZvcm1hdCwg dGhlIHNlcnZlciB3aWxsIGFsd2F5cyBzZW5kIGl0IGluIGJpbmFyeSBpZiB0aGUKKyAgICBj b2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBwcm90b2NvbCBvcHRpb24gaXMgZW5hYmxlZC4gIFRo YXQgd2F5LCBhIGNsaWVudAorICAgIGxpYnJhcnkgb25seSBuZWVkcyB0byBzdXBwb3J0IGRl Y3J5cHRpbmcgZGF0YSBzZW50IGluIGJpbmFyeSBhbmQgZG9lcyBub3QKKyAgICBoYXZlIHRv IHN1cHBvcnQgZGVjb2RpbmcgdGhlIHRleHQgZm9ybWF0IG9mIHRoZSBlbmNyeXB0aW9uLXJl bGF0ZWQgdHlwZXMKKyAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRhdGF0eXBlLWVuY3J5cHRl ZCIvPikuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gZGV0ZXJtaW5pc3Rp YyBlbmNyeXB0aW9uIGlzIHVzZWQsIGNsaWVudHMgbmVlZCB0byB0YWtlIGNhcmUgdG8KKyAg ICByZXByZXNlbnQgcGxhaW50ZXh0IHRvIGJlIGVuY3J5cHRlZCBpbiBhIGNvbnNpc3RlbnQg Zm9ybS4gIEZvciBleGFtcGxlLAorICAgIGVuY3J5cHRpbmcgYW4gaW50ZWdlciByZXByZXNl bnRlZCBieSB0aGUgc3RyaW5nIDxsaXRlcmFsPjEwMDwvbGl0ZXJhbD4gYW5kCisgICAgYW4g aW50ZWdlciByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nIDxsaXRlcmFsPisxMDA8L2xpdGVy YWw+IHdvdWxkIHJlc3VsdAorICAgIGluIHR3byBkaWZmZXJlbnQgY2lwaGVydGV4dHMsIHRo dXMgZGVmZWF0aW5nIHRoZSBtYWluIHBvaW50IG9mCisgICAgZGV0ZXJtaW5pc3RpYyBlbmNy eXB0aW9uLiAgVGhpcyBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzIHRoZQorICAg IHBsYWludGV4dCB0byBiZSBpbiA8cXVvdGU+Y2Fub25pY2FsPC9xdW90ZT4gZm9ybSwgd2hp Y2ggaXMgdGhlIGZvcm0gdGhhdAorICAgIGlzIHByb2R1Y2VkIGJ5IHRoZSBzZXJ2ZXIgd2hl biBpdCBvdXRwdXRzIGEgcGFydGljdWxhciB2YWx1ZSBpbiB0ZXh0CisgICAgZm9ybWF0Lgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIGF1dG9tYXRpYyBjbGllbnQtc2lk ZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGUgY2xpZW50CisgICAg ZW5jb2RpbmcgbXVzdCBtYXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLiAgVGhpcyBlbnN1cmVz IHRoYXQgYWxsIHZhbHVlcworICAgIGVuY3J5cHRlZCBvciBkZWNyeXB0ZWQgYnkgdGhlIGNs aWVudCBtYXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBUaGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgZm9yIGF1dG9tYXRp YyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwKKyAgICBlbmNyeXB0aW9uIGFyZSBkZXNjcmli ZWQgaW4gPHhyZWYKKyAgICBsaW5rZW5kPSJwcm90b2NvbC1jb2x1bW4tZW5jcnlwdGlvbi1j cnlwdG8iLz4uCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKICAgPHNlY3QyIGlkPSJwcm90 b2NvbC1mbG93LWZ1bmN0aW9uLWNhbGwiPgogICAgPHRpdGxlPkZ1bmN0aW9uIENhbGw8L3Rp dGxlPgogCkBAIC0zOTk0LDYgKzQwNjQsMTYgQEAgPHRpdGxlPk1lc3NhZ2UgRm9ybWF0czwv dGl0bGU+CiAgICAgICAgICBUaGUgcGFyYW1ldGVyIGZvcm1hdCBjb2Rlcy4gIEVhY2ggbXVz dCBwcmVzZW50bHkgYmUKICAgICAgICAgIHplcm8gKHRleHQpIG9yIG9uZSAoYmluYXJ5KS4K ICAgICAgICAgPC9wYXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhlIHBy b3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRl cmFsPgorICAgICAgICAgaXMgZW5hYmxlZCAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29s LWZsb3ctY29sdW1uLWVuY3J5cHRpb24iLz4pLAorICAgICAgICAgdGhlbiB0aGUgc2Vjb25k LWxlYXN0LXNpZ25pZmljYW50IGhhbGYtYnl0ZSBpcyBzZXQgdG8gb25lIGlmIHRoZQorICAg ICAgICAgcGFyYW1ldGVyIHdhcyBlbmNyeXB0ZWQgYnkgdGhlIGNsaWVudC4gIChTbywgZm9y IGV4YW1wbGUsIHRvIHNlbmQgYW4KKyAgICAgICAgIGVuY3J5cHRlZCB2YWx1ZSBpbiBiaW5h cnksIHRoZSBmaWVsZCBpcyBzZXQgdG8gMHgxMSBpbiB0b3RhbC4pICBUaGlzCisgICAgICAg ICBpcyB1c2VkIGJ5IHRoZSBzZXJ2ZXIgdG8gY2hlY2sgdGhhdCBhIHBhcmFtZXRlciB0aGF0 IHdhcyByZXF1aXJlZCB0bworICAgICAgICAgYmUgZW5jcnlwdGVkIHdhcyBhY3R1YWxseSBl bmNyeXB0ZWQuCisgICAgICAgIDwvcGFyYT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAg PC92YXJsaXN0ZW50cnk+CiAKQEAgLTQyMTQsNiArNDI5NCwxNDAgQEAgPHRpdGxlPk1lc3Nh Z2UgRm9ybWF0czwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29s dW1uRW5jcnlwdGlvbktleSI+CisgICAgPHRlcm0+Q29sdW1uRW5jcnlwdGlvbktleSAoQik8 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgbWVzc2Fn ZSBjYW4gb25seSBhcHBlYXIgaWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbgorICAgICAgPGxp dGVyYWw+X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMgZW5hYmxlZC4gIChT ZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLWZsb3ctY29sdW1uLWVuY3J5cHRp b24iLz4uKQorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTEoJ1knKTwvdGVybT4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUgbWVz c2FnZSBhcyBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBtZXNzYWdlLgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBMZW5ndGggb2YgbWVzc2FnZSBj b250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNlbGYuCisgICAgICAgIDwvcGFyYT4KKyAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVt PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBzZXNzaW9uLXNwZWNpZmljIGlkZW50 aWZpZXIgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg ICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIG1hc3RlciBrZXkgdXNlZCB0byBl bmNyeXB0IHRoaXMga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+ CisgICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgYWxnb3JpdGhtIHVzZWQgdG8gZW5j cnlwdCB0aGlzIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8 dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZm9sbG93aW5nIGtleSBtYXRlcmlhbC4KKyAg ICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlPHJlcGxhY2Vh YmxlPm48L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg IDxwYXJhPgorICAgICAgICAgVGhlIGtleSBtYXRlcmlhbCwgZW5jcnlwdGVkIHdpdGggdGhl IG1hc3RlciBrZXkgcmVmZXJlbmNlZCBhYm92ZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxp c3Q+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29sdW1uTWFzdGVyS2V5Ij4K KyAgICA8dGVybT5Db2x1bW5NYXN0ZXJLZXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBwZWFyIGlmIHRo ZSBwcm90b2NvbCBleHRlbnNpb24KKyAgICAgIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5 cHRpb248L2xpdGVyYWw+IGlzIGVuYWJsZWQuICAoU2VlIDx4cmVmCisgICAgICBsaW5rZW5k PSJwcm90b2NvbC1mbG93LWNvbHVtbi1lbmNyeXB0aW9uIi8+LikKKyAgICAgPC9wYXJhPgor CisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0 ZXJtPkJ5dGUxKCd5Jyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gbWFzdGVy IGtleSBtZXNzYWdlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0 ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+Cisg ICAgICAgICBMZW5ndGggb2YgbWVzc2FnZSBjb250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5n IHNlbGYuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50 MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IFRoZSBzZXNzaW9uLXNwZWNpZmljIGlkZW50aWZpZXIgb2YgdGhlIGtleS4KKyAgICAgICAg PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBuYW1lIG9mIHRo ZSBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3Ry aW5nPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAg ICBUaGUga2V5J3MgcmVhbG0uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVt PgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0i cHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbW1hbmRDb21wbGV0ZSI+CiAgICAgPHRlcm0+ Q29tbWFuZENvbXBsZXRlIChCKTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC01MzE3LDYg KzU1MzEsNDUgQEAgPHRpdGxlPk1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgICAgICAgPC9s aXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogICAgICA8L3ZhcmlhYmxlbGlzdD4K KworICAgICA8cGFyYT4KKyAgICAgIElmIHRoZSBwcm90b2NvbCBleHRlbnNpb24gPGxpdGVy YWw+X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMKKyAgICAgIGVuYWJsZWQg KHNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1mbG93LWNvbHVtbi1lbmNyeXB0aW9uIi8+ KSwgdGhlbgorICAgICAgdGhlcmUgaXMgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBh cmFtZXRlcjoKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0 byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmll ciBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBh cmFtZXRlciBpcyB0byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAg ICAgaWRlbnRpZmllciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4K KyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBp cyB1c2VkIGFzIGEgYml0IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIHBhcmFtZXRlciBpcyB0 byBiZQorICAgICAgICAgZW5jcnlwdGVkIGFuZCBiaXQgMHgwMDAxIGlzIHNldCwgdGhlIGNv bHVtbiB1bmRlcmx5aW5nIHRoZSBwYXJhbWV0ZXIKKyAgICAgICAgIHVzZXMgZGV0ZXJtaW5p c3RpYyBlbmNyeXB0aW9uLCBvdGhlcndpc2UgcmFuZG9taXplZCBlbmNyeXB0aW9uLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKQEAgLTU3MDUsNiArNTk1OCw1MCBAQCA8dGl0bGU+TWVzc2FnZSBGb3JtYXRz PC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAg ICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIHByb3Rv Y29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFs PiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWZsb3ct Y29sdW1uLWVuY3J5cHRpb24iLz4pLCB0aGVuCisgICAgICB0aGVyZSBpcyBhbHNvIHRoZSBm b2xsb3dpbmcgZm9yIGVhY2ggZmllbGQ6CisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFi bGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhl IGZpZWxkIGlzIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlIGlkZW50aWZpZXIgb2Yg dGhlCisgICAgICAgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8u CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rl cm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRo ZSBmaWVsZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBpZGVudGlmaWVyIG9m IHRoZQorICAgICAgICAgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAg ICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBpcyB1c2Vk IGFzIGEgYml0IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5cHRlZCBh bmQKKyAgICAgICAgIGJpdCAweDAwMDEgaXMgc2V0LCB0aGUgZmllbGQgdXNlcyBkZXRlcm1p bmlzdGljIGVuY3J5cHRpb24sIG90aGVyd2lzZQorICAgICAgICAgcmFuZG9taXplZCBlbmNy eXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwhLS0KKyAgICAgICAgICAgIFRo aXMgaXMgbm90IHJlYWxseSB1c2VmdWwgaGVyZSwgYnV0IGl0IGtlZXBzIGFsaWdubWVudCB3 aXRoCisgICAgICAgICAgICBQYXJhbWV0ZXJEZXNjcmlwdGlvbi4gIEZ1dHVyZSBmbGFncyBt aWdodCBiZSB1c2VmdWwgaW4gYm90aAorICAgICAgICAgICAgcGxhY2VzLgorICAgICAgICAt LT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwv dmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApA QCAtNzUzMCw2ICs3ODI3LDE3NyBAQCA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBNZXNz YWdlIEZvcm1hdHM8L3RpdGxlPgogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3NlY3QxPgogCisg PHNlY3QxIGlkPSJwcm90b2NvbC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iPgorICA8dGl0 bGU+QXV0b21hdGljIENsaWVudC1zaWRlIENvbHVtbi1sZXZlbCBFbmNyeXB0aW9uIENyeXB0 b2dyYXBoeTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVz IHRoZSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgdXNlZCBieSB0aGUgYXV0b21hdGljCisg ICBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBmdW5jdGlvbmFsaXR5LiAg QSBjbGllbnQgdGhhdCBzdXBwb3J0cworICAgdGhpcyBmdW5jdGlvbmFsaXR5IG5lZWRzIHRv IGltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25zIGFzIHNwZWNpZmllZCBoZXJlIGluCisgICBv cmRlciB0byBiZSBhYmxlIHRvIGludGVyb3BlcmF0ZSB3aXRoIG90aGVyIGNsaWVudHMuCisg IDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBhbGdvcml0 aG1zIGFuZCBjb2x1bW4gbWFzdGVyIGtleSBhbGdvcml0aG1zIGFyZQorICAgaWRlbnRpZmll ZCBieSBpbnRlZ2VycyBpbiB0aGUgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIHRoZSBzeXN0ZW0g Y2F0YWxvZ3MuCisgICBBZGRpdGlvbmFsIGFsZ29yaXRobXMgbWF5IGJlIGFkZGVkIHRvIHRo aXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiB3aXRob3V0IGEKKyAgIGNoYW5nZSBpbiB0aGUg cHJvdG9jb2wgdmVyc2lvbiBudW1iZXIuICBDbGllbnRzIHNob3VsZCBpbXBsZW1lbnQgc3Vw cG9ydAorICAgZm9yIGFsbCB0aGUgYWxnb3JpdGhtcyBzcGVjaWZpZWQgaGVyZS4gIElmIGEg Y2xpZW50IGVuY291bnRlcnMgYW4gYWxnb3JpdGhtCisgICBpZGVudGlmaWVyIGl0IGRvZXMg bm90IHJlY29nbml6ZSBvciBkb2VzIG5vdCBzdXBwb3J0LCBpdCBtdXN0IHJhaXNlIGFuCisg ICBlcnJvci4gIEEgc3VpdGFibGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUgcHJvdmlkZWQg dG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgICB1c2VyLgorICA8L3BhcmE+CisKKyAgPHNlY3Qy IGlkPSJwcm90b2NvbC1jbWsiPgorICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5czwvdGl0 bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0aG1z IGZvciBjb2x1bW4gbWFzdGVyIGtleXMgYXJlIGxpc3RlZCBpbgorICAgIDx4cmVmIGxpbmtl bmQ9InByb3RvY29sLWNtay10YWJsZSIvPi4KKyAgIDwvcGFyYT4KKworICAgPCEtLSBzZWUg YWxzbyBzcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmggLS0+CisKKyAgIDx0YWJsZSBpZD0i cHJvdG9jb2wtY21rLXRhYmxlIj4KKyAgICA8dGl0bGU+Q29sdW1uIE1hc3RlciBLZXkgQWxn b3JpdGhtczwvdGl0bGU+CisgICAgPHRncm91cCBjb2xzPSI0Ij4KKyAgICAgPHRoZWFkPgor ICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+UG9zdGdyZVNRTCBJRDwvZW50cnk+CisgICAg ICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5KV0EgKDx1bGluayB1cmw9 Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzUxOCI+UkZDIDc1 MTg8L3VsaW5rPikgbmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5PkRlc2NyaXB0aW9uPC9l bnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgorICAgICA8dGJvZHk+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT4xPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVy YWw+dW5zcGVjaWZpZWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+KG5vbmUp PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+aW50ZXJwcmV0ZWQgYnkgY2xpZW50PC9lbnRyeT4K KyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNBLU9BRVA8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgICA8ZW50cnk+UlNBRVMgT0FFUCB1c2luZyBkZWZhdWx0IHBhcmFtZXRlcnMgKDx1 bGluaworICAgICAgIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRt bC9yZmM4MDE3Ij5SRkMKKyAgICAgICA4MDE3PC91bGluaz4vUEtDUyAjMSk8L2VudHJ5Pgor ICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4zPC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJTQS1PQUVQLTI1NjwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgIDxlbnRyeT5SU0FFUyBPQUVQIHVzaW5nIFNIQS0yNTYgYW5kIE1HRjEg d2l0aCBTSEEtMjU2ICg8dWxpbmsKKyAgICAgICB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIu aWV0Zi5vcmcvZG9jL2h0bWwvcmZjODAxNyI+UkZDCisgICAgICAgODAxNzwvdWxpbms+L1BL Q1MgIzEpPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3Rib2R5PgorICAgIDwvdGdy b3VwPgorICAgPC90YWJsZT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIgaWQ9InByb3RvY29s LWNlayI+CisgICA8dGl0bGU+Q29sdW1uIEVuY3J5cHRpb24gS2V5czwvdGl0bGU+CisKKyAg IDxwYXJhPgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0aG1zIGZvciBjb2x1 bW4gZW5jcnlwdGlvbiBrZXlzIGFyZSBsaXN0ZWQgaW4KKyAgICA8eHJlZiBsaW5rZW5kPSJw cm90b2NvbC1jZWstdGFibGUiLz4uCisgICA8L3BhcmE+CisKKyAgIDwhLS0gc2VlIGFsc28g c3JjL2luY2x1ZGUvY29tbW9uL2NvbGVuYy5oIC0tPgorCisgICA8cGFyYT4KKyAgICBUaGUg a2V5IG1hdGVyaWFsIG9mIGEgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNvbnNpc3RzIG9mIHRo cmVlIGNvbXBvbmVudHMsCisgICAgY29uY2F0ZW5hdGVkIGluIHRoaXMgb3JkZXI6IHRoZSBN QUMga2V5LCB0aGUgZW5jcnlwdGlvbiBrZXksIGFuZCB0aGUgSVYKKyAgICBrZXkuICA8eHJl ZiBsaW5rZW5kPSJwcm90b2NvbC1jZWstdGFibGUiLz4gc2hvd3MgdGhlIHRvdGFsIGxlbmd0 aCB0aGF0IGEKKyAgICBrZXkgZ2VuZXJhdGVkIGZvciBlYWNoIGFsZ29yaXRobSBpcyByZXF1 aXJlZCB0byBoYXZlLiAgVGhlIE1BQyBrZXkgYW5kIHRoZQorICAgIGVuY3J5cHRpb24ga2V5 IGFyZSB1c2VkIGJ5IHRoZSByZWZlcmVuY2VkIGVuY3J5cHRpb24gYWxnb3JpdGhtczsgc2Vl IHRoZXJlCisgICAgZm9yIGRldGFpbHMuICBUaGUgSVYga2V5IGlzIHVzZWQgZm9yIGNvbXB1 dGluZyB0aGUgc3RhdGljIGluaXRpYWxpemF0aW9uCisgICAgdmVjdG9yIGZvciBkZXRlcm1p bmlzdGljIGVuY3J5cHRpb247IGl0IGlzIHVudXNlZCBmb3IgcmFuZG9taXplZAorICAgIGVu Y3J5cHRpb24uCisgICA8L3BhcmE+CisKKyAgIDwhLS0gc2VlIGFsc28gaHR0cHM6Ly9kYXRh dHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWht YWMtc2hhMi0wNSNzZWN0aW9uLTIuOCAtLT4KKyAgIDx0YWJsZSBpZD0icHJvdG9jb2wtY2Vr LXRhYmxlIj4KKyAgICA8dGl0bGU+Q29sdW1uIEVuY3J5cHRpb24gS2V5IEFsZ29yaXRobXM8 L3RpdGxlPgorICAgIDx0Z3JvdXAgY29scz0iNyI+CisgICAgIDx0aGVhZD4KKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5PlBvc3RncmVTUUwgSUQ8L2VudHJ5PgorICAgICAgIDxlbnRy eT5OYW1lPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICAgIDxlbnRyeT5NQUMga2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+CisgICAgICAgPGVu dHJ5PkVuY3J5cHRpb24ga2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+CisgICAgICAgPGVu dHJ5PklWIGtleSBsZW5ndGggKG9jdGV0cyk8L2VudHJ5PgorICAgICAgIDxlbnRyeT5Ub3Rh bCBrZXkgbGVuZ3RoIChvY3RldHMpPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3Ro ZWFkPgorICAgICA8dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4zMjc2ODwv ZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPkFFQURfQUVTXzEyOF9DQkNfSE1BQ19T SEFfMjU2PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGluayB1cmw9Imh0 dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQt YWVzLWNiYy1obWFjLXNoYTItMDUiLz48L2VudHJ5PgorICAgICAgIDxlbnRyeT4xNjwvZW50 cnk+CisgICAgICAgPGVudHJ5PjE2PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MTY8L2VudHJ5 PgorICAgICAgIDxlbnRyeT40ODwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjMyNzY5PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ QUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2Mv aHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+ CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MjQ8L2VudHJ5Pgor ICAgICAgIDxlbnRyeT4yNDwvZW50cnk+CisgICAgICAgPGVudHJ5PjcyPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzI3NzA8L2VudHJ5Pgor ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2Rh dGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMt aG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MjQ8L2VudHJ5PgorICAg ICAgIDxlbnRyeT4zMjwvZW50cnk+CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+OTA8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAg IDxlbnRyeT4zMjc3MTwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPkFFQURfQUVT XzI1Nl9DQkNfSE1BQ19TSEFfNTEyPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 Pjx1bGluayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJh ZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDUiLz48L2VudHJ5PgorICAgICAg IDxlbnRyeT4zMjwvZW50cnk+CisgICAgICAgPGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT45NjwvZW50cnk+CisgICAgICA8L3Jv dz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxw YXJhPgorICAgIFRoZSA8cXVvdGU+YXNzb2NpYXRlZCBkYXRhPC9xdW90ZT4gaW4gdGhlc2Ug YWxnb3JpdGhtcyBjb25zaXN0cyBvZiA0CisgICAgYnl0ZXM6IFRoZSBBU0NJSSBsZXR0ZXJz IDxsaXRlcmFsPlA8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5HPC9saXRlcmFsPgorICAgIChi eXRlIHZhbHVlcyA4MCBhbmQgNzEpLCBmb2xsb3dlZCBieSB0aGUgdmVyc2lvbiBudW1iZXIg YXMgYSAxNi1iaXQKKyAgICB1bnNpZ25lZCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRl ci4gIFRoZSB2ZXJzaW9uIG51bWJlciBpcyBjdXJyZW50bHkKKyAgICBhbHdheXMgMS4gIChU aGlzIGlzIGludGVuZGVkIHRvIGFsbG93IGZvciBwb3NzaWJsZSBpbmNvbXBhdGlibGUgY2hh bmdlcyBvcgorICAgIGV4dGVuc2lvbnMgaW4gdGhlIGZ1dHVyZS4pCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFRoZSBsZW5ndGggb2YgdGhlIGluaXRpYWxpemF0aW9uIHZlY3Rv ciBpcyAxNiBvY3RldHMgZm9yIGFsbCBDRUsgYWxnb3JpdGhtCisgICAgdmFyaWFudHMuICBG b3IgcmFuZG9taXplZCBlbmNyeXB0aW9uLCB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIHNo b3VsZCBiZQorICAgIChjcnlwdG9ncmFwaGljYWxseSBzdHJvbmcpIHJhbmRvbSBieXRlcy4g IEZvciBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24sCisgICAgdGhlIGluaXRpYWxpemF0aW9u IHZlY3RvciBpcyBjb25zdHJ1Y3RlZCBhcworPHByb2dyYW1saXN0aW5nPgorU1VCU1RSSU5H KDxyZXBsYWNlYWJsZT5ITUFDPC9yZXBsYWNlYWJsZT4oPHJlcGxhY2VhYmxlPks8L3JlcGxh Y2VhYmxlPiwgPHJlcGxhY2VhYmxlPlA8L3JlcGxhY2VhYmxlPikgRk9SIDxyZXBsYWNlYWJs ZT5JVkxFTjwvcmVwbGFjZWFibGU+KQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aGVyZSA8 cmVwbGFjZWFibGU+SE1BQzwvcmVwbGFjZWFibGU+IGlzIHRoZSBITUFDIGZ1bmN0aW9uIGFz c29jaWF0ZWQgd2l0aAorICAgIHRoZSBhbGdvcml0aG0sIDxyZXBsYWNlYWJsZT5LPC9yZXBs YWNlYWJsZT4gaXMgdGhlIElWIGtleSwgYW5kCisgICAgPHJlcGxhY2VhYmxlPlA8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgcGxhaW50ZXh0IHRvIGJlIGVuY3J5cHRlZC4KKyAgIDwvcGFyYT4K KyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJwcm90b2NvbC1jaGFuZ2Vz Ij4KICAgPHRpdGxlPlN1bW1hcnkgb2YgQ2hhbmdlcyBzaW5jZSBQcm90b2NvbCAyLjA8L3Rp dGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2N2EuLmJmNTk4 ODMyZDE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC04LDYgKzgsOCBAQAogPCFF TlRJVFkgYWJvcnQgICAgICAgICAgICAgIFNZU1RFTSAiYWJvcnQuc2dtbCI+CiA8IUVOVElU WSBhbHRlckFnZ3JlZ2F0ZSAgICAgU1lTVEVNICJhbHRlcl9hZ2dyZWdhdGUuc2dtbCI+CiA8 IUVOVElUWSBhbHRlckNvbGxhdGlvbiAgICAgU1lTVEVNICJhbHRlcl9jb2xsYXRpb24uc2dt bCI+Cis8IUVOVElUWSBhbHRlckNvbHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJhbHRlcl9j b2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCI+Cis8IUVOVElUWSBhbHRlckNvbHVtbk1hc3Rl cktleSBTWVNURU0gImFsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkg YWx0ZXJDb252ZXJzaW9uICAgIFNZU1RFTSAiYWx0ZXJfY29udmVyc2lvbi5zZ21sIj4KIDwh RU5USVRZIGFsdGVyRGF0YWJhc2UgICAgICBTWVNURU0gImFsdGVyX2RhdGFiYXNlLnNnbWwi PgogPCFFTlRJVFkgYWx0ZXJEZWZhdWx0UHJpdmlsZWdlcyBTWVNURU0gImFsdGVyX2RlZmF1 bHRfcHJpdmlsZWdlcy5zZ21sIj4KQEAgLTYyLDYgKzY0LDggQEAKIDwhRU5USVRZIGNyZWF0 ZUFnZ3JlZ2F0ZSAgICBTWVNURU0gImNyZWF0ZV9hZ2dyZWdhdGUuc2dtbCI+CiA8IUVOVElU WSBjcmVhdGVDYXN0ICAgICAgICAgU1lTVEVNICJjcmVhdGVfY2FzdC5zZ21sIj4KIDwhRU5U SVRZIGNyZWF0ZUNvbGxhdGlvbiAgICBTWVNURU0gImNyZWF0ZV9jb2xsYXRpb24uc2dtbCI+ Cis8IUVOVElUWSBjcmVhdGVDb2x1bW5FbmNyeXB0aW9uS2V5IFNZU1RFTSAiY3JlYXRlX2Nv bHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZUNvbHVtbk1hc3Rl cktleSBTWVNURU0gImNyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIj4KIDwhRU5USVRZ IGNyZWF0ZUNvbnZlcnNpb24gICBTWVNURU0gImNyZWF0ZV9jb252ZXJzaW9uLnNnbWwiPgog PCFFTlRJVFkgY3JlYXRlRGF0YWJhc2UgICAgIFNZU1RFTSAiY3JlYXRlX2RhdGFiYXNlLnNn bWwiPgogPCFFTlRJVFkgY3JlYXRlRG9tYWluICAgICAgIFNZU1RFTSAiY3JlYXRlX2RvbWFp bi5zZ21sIj4KQEAgLTEwOSw2ICsxMTMsOCBAQAogPCFFTlRJVFkgZHJvcEFnZ3JlZ2F0ZSAg ICAgIFNZU1RFTSAiZHJvcF9hZ2dyZWdhdGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wQ2FzdCAg ICAgICAgICAgU1lTVEVNICJkcm9wX2Nhc3Quc2dtbCI+CiA8IUVOVElUWSBkcm9wQ29sbGF0 aW9uICAgICAgU1lTVEVNICJkcm9wX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGRyb3BD b2x1bW5FbmNyeXB0aW9uS2V5IFNZU1RFTSAiZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXku c2dtbCI+Cis8IUVOVElUWSBkcm9wQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiZHJvcF9jb2x1 bW5fbWFzdGVyX2tleS5zZ21sIj4KIDwhRU5USVRZIGRyb3BDb252ZXJzaW9uICAgICBTWVNU RU0gImRyb3BfY29udmVyc2lvbi5zZ21sIj4KIDwhRU5USVRZIGRyb3BEYXRhYmFzZSAgICAg ICBTWVNURU0gImRyb3BfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBkcm9wRG9tYWluICAg ICAgICAgU1lTVEVNICJkcm9wX2RvbWFpbi5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NTVlMWUwMGQ4ZAotLS0gL2Rldi9udWxsCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwK QEAgLTAsMCArMSwxOTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisK KzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGlu ZGV4dGVybSB6b25lPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHBy aW1hcnk+QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5m bz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhl IGRlZmluaXRpb24gb2YgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+Cisg PC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4g QUREIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8 L3JlcGxhY2VhYmxlPiwKKyAgICBbIEFMR09SSVRITSA9IDxyZXBsYWNlYWJsZT5hbGdvcml0 aG08L3JlcGxhY2VhYmxlPiwgXQorICAgIEVOQ1JZUFRFRF9WQUxVRSA9IDxyZXBsYWNlYWJs ZT5lbmN2YWw8L3JlcGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIFZBTFVFICgKKyAgICBD T0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPgorKQor CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxh Y2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4K K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFj ZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+ IFNFVCBTQ0hFTUEgPHJlcGxhY2VhYmxlPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9z eW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9m IGEKKyAgIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgVGhlIGZpcnN0IGZvcm0gYWRkcyBuZXcgZW5jcnlwdGVkIGtleSBkYXRhIHRvIGEgY29s dW1uIGVuY3J5cHRpb24ga2V5LAorICAgd2hpY2ggbXVzdCBiZSBlbmNyeXB0ZWQgd2l0aCBh IGRpZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleSB0aGFuIHRoZQorICAgZXhpc3Rpbmcga2V5 IGRhdGEuICBUaGUgc2Vjb25kIGZvcm0gcmVtb3ZlcyBhIGtleSBkYXRhIGVudHJ5IGZvciBh IGdpdmVuCisgICBjb2x1bW4gbWFzdGVyIGtleS4gIFRvZ2V0aGVyLCB0aGVzZSBmb3JtcyBj YW4gYmUgdXNlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkKKyAgIHJvdGF0aW9uLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVtbiBlbmNyeXB0aW9u IGtleSB0byB1c2UgPGNvbW1hbmQ+QUxURVIgQ09MVU1OCisgICBFTkNSWVBUSU9OIEtFWTwv Y29tbWFuZD4uICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYSBkaXJl Y3Qgb3IKKyAgIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLCBhbmQg dGhhdCByb2xlIG11c3QgaGF2ZQorICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2 aWxlZ2Ugb24gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSdzCisgICBzY2hlbWEuICAoVGhl c2UgcmVzdHJpY3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24n dCBkbworICAgYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5IGRyb3BwaW5nIGFuZCByZWNy ZWF0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbgorICAga2V5LiAgSG93ZXZlciwgYSBzdXBl cnVzZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIGVuY3J5cHRpb24ga2V5 CisgICBhbnl3YXkuKQorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSBuYW1lIChvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIGFu IGV4aXN0aW5nIGNvbHVtbiBlbmNyeXB0aW9uCisgICAgICBrZXkuCisgICAgIDwvcGFyYT4K 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+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdf c2NoZW1hPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSBuZXcgc2NoZW1hIGZvciB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5 LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcm90YXRlIHRoZSBtYXN0 ZXIga2V5cyB1c2VkIHRvIGVuY3J5cHQgYSBnaXZlbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXks CisgICB1c2UgYSBjb21tYW5kIHNlcXVlbmNlIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAg Q09MVU1OX01BU1RFUl9LRVkgPSBjbWsyLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAx MDIwMjA0Li4uJworKTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJP UCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxCispOworPC9wcm9ncmFt bGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIHRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRl cmFsPmNlazI8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazI7Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxs aXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPjwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJp bGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5BTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAg IFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5s aW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5j cnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlz dD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uN2YwZTY1NmVmMDYKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAgLTAsMCArMSwxMzQg QEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt YWx0ZXItY29sdW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVy LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+QUxURVIgQ09MVU1OIE1BU1RFUiBL RVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5 dGl0bGU+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52 b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3Rh dGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+Cisg IDxyZWZuYW1lPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9yZWZuYW1lPgorICA8cmVmcHVy cG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSBjb2x1bW4gbWFzdGVyIGtleTwvcmVm cHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3Bz aXM+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFj ZWFibGU+ICggUkVBTE0gPSA8cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxlPiApCisK K0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJs ZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRF UiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9X TkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVO VF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8 cmVwbGFjZWFibGU+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwv cmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwv dGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSIEtF WTwvY29tbWFuZD4gY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4gbWFz dGVyIGtleS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGZpcnN0IGZvcm0gY2hh bmdlcyB0aGUgcGFyYW1ldGVycyBvZiBhIGNvbHVtbiBtYXN0ZXIga2V5LiAgU2VlIDx4cmVm CisgICBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+IGZvciBkZXRh aWxzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVt biBtYXN0ZXIga2V5IHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSCisgICBL RVk8L2NvbW1hbmQ+LiAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEg ZGlyZWN0IG9yIGluZGlyZWN0CisgICBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZSwg YW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4g cHJpdmlsZWdlIG9uIHRoZSBjb2x1bW4gbWFzdGVyIGtleSdzIHNjaGVtYS4KKyAgIChUaGVz ZSByZXN0cmljdGlvbnMgZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0 IGRvIGFueXRoaW5nIHlvdQorICAgY291bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJlY3Jl YXRpbmcgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LiAgSG93ZXZlciwgYQorICAgc3VwZXJ1c2Vy IGNhbiBhbHRlciBvd25lcnNoaXAgb2YgYW55IGNvbHVtbiBtYXN0ZXIga2V5IGFueXdheS4p CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgYW4gZXhpc3RpbmcgY29s dW1uIG1hc3RlciBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgbmFtZSBvZiB0aGUg Y29sdW1uIG1hc3RlciBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG93bmVyIG9m IHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IHNj aGVtYSBmb3IgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisg IDxwYXJhPgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8bGl0ZXJhbD5j bWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y21rMjwvbGl0ZXJhbD46Cis8cHJvZ3Jh bWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWsy OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hh bmdlIHRoZSBvd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwv bGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rp bmc+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPIGpvZTsKKzwvcHJv Z3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5v IDxjb21tYW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQg aW4gdGhlCisgICBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0 IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUt Y29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVs aXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApp bmRleCA1YjQzYzU2YjEzMy4uMWNhZjliZmE1NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21s CkBAIC0yOCw2ICsyOCw4IEBACiAgIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwv cmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+ KSB8CiAgIENPTExBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0 X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIENPTFVNTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmVsYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwKKyAgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFt ZTwvcmVwbGFjZWFibGU+IHwKKyAgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBDT05TVFJB SU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3Jl cGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFt ZTwvcmVwbGFjZWFibGU+IHwKICAgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4gT04gRE9NQUlOIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kb21haW5fbmFtZTwvcmVwbGFjZWFibGU+IHwK ICAgQ09OVkVSU0lPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25h bWU8L3JlcGxhY2VhYmxlPiB8CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHku c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCmluZGV4IDMzY2U3YzRlYTZjLi4y MTNjOGU4ZWQyMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKQEAgLTYyNSw2ICs2MjUsMTYgQEAgPHRp dGxlPk5vdGVzPC90aXRsZT4KICAgICBudWxsIHN0cmluZ3MgdG8gbnVsbCB2YWx1ZXMgYW5k IHVucXVvdGVkIG51bGwgc3RyaW5ncyB0byBlbXB0eSBzdHJpbmdzLgogICAgPC9wYXJhPgog CisgICA8cGFyYT4KKyAgICA8Y29tbWFuZD5DT1BZPC9jb21tYW5kPiBkb2VzIG5vdCBzdXBw b3J0IGF1dG9tYXRpYyBjbGllbnQtc2lkZQorICAgIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9u IG9yIGRlY3J5cHRpb247IGl0cyBpbnB1dCBvciBvdXRwdXQgZGF0YSB3aWxsCisgICAgYWx3 YXlzIGJlIHRoZSBjaXBoZXJ0ZXh0LiAgVGhpcyBpcyB1c3VhbGx5IHN1aXRhYmxlIGZvciBi YWNrdXBzIChzZWUgYWxzbworICAgIDx4cmVmIGxpbmtlbmQ9ImFwcC1wZ2R1bXAiLz4pLiAg SWYgYXV0b21hdGljIGNsaWVudC1zaWRlIGVuY3J5cHRpb24gb3IKKyAgICBkZWNyeXB0aW9u IGlzIHdhbnRlZCwgPGNvbW1hbmQ+SU5TRVJUPC9jb21tYW5kPiBhbmQKKyAgICA8Y29tbWFu ZD5TRUxFQ1Q8L2NvbW1hbmQ+IG5lZWQgdG8gYmUgdXNlZCBpbnN0ZWFkIHRvIHdyaXRlIGFu ZCByZWFkIHRoZQorICAgIGRhdGEuCisgICA8L3BhcmE+CisKICA8L3JlZnNlY3QxPgogCiAg PHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNjU1MzRmYjAzZjMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCwwICsxLDE3MyBAQAor PCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNn bWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3Fs LWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3Fs LWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5DUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1l dGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3Jl ZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2lu Zm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRh PgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4gRU5DUllQVElP TiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gZW5j cnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVw bGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5f TUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPiwKKyAgICBBTEdP UklUSE0gPSA8cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJsZT4sCisgICAgRU5D UllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+CispCitb ICwgLi4uIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21t YW5kPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IGRlZmluZXMgYSBu ZXcgY29sdW1uCisgICBlbmNyeXB0aW9uIGtleS4gIEEgY29sdW1uIGVuY3J5cHRpb24ga2V5 IGlzIHVzZWQgZm9yIGNsaWVudC1zaWRlIGVuY3J5cHRpb24KKyAgIG9mIHRhYmxlIGNvbHVt bnMgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZCBhcyBlbmNyeXB0ZWQuICBUaGUga2V5IG1hdGVy aWFsIG9mCisgICBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyBzdG9yZWQgaW4gdGhlIGRh dGFiYXNlJ3Mgc3lzdGVtIGNhdGFsb2dzLAorICAgZW5jcnlwdGVkICh3cmFwcGVkKSBieSBh IGNvbHVtbiBtYXN0ZXIga2V5ICh3aGljaCBpbiB0dXJuIGlzIG9ubHkKKyAgIGFjY2Vzc2li bGUgdG8gdGhlIGNsaWVudCwgbm90IHRoZSBkYXRhYmFzZSBzZXJ2ZXIpLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjYW4gYmUgYXNzb2Np YXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgY29sdW1uIG1hc3RlcgorICAga2V5LiAgVG8gc3Bl Y2lmeSB0aGF0LCBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgcGFyZW50aGVzaXplZCBkZWZpbml0 aW9uIChzZWUKKyAgIGFsc28gdGhlIGV4YW1wbGVzKS4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8 dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFi bGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBuZXcgY29sdW1uIGVuY3J5cHRpb24ga2V5 LiAgVGhlIG5hbWUgY2FuIGJlCisgICAgICBzY2hlbWEtcXVhbGlmaWVkLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPjwvdGVy bT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0 aGUgY29sdW1uIG1hc3RlciBrZXkgdGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoaXMgY29s dW1uCisgICAgICBlbmNyeXB0aW9uIGtleS4gIFlvdSBtdXN0IGhhdmUgPGxpdGVyYWw+VVNB R0U8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUKKyAgICAgIGNvbHVtbiBtYXN0ZXIga2V5 LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5hbGdvcml0aG08 L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0 IHRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5 LiAgU3VwcG9ydGVkIGFsZ29yaXRobXMgYXJlOgorICAgICAgPGl0ZW1pemVkbGlzdD4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPnVuc3BlY2lmaWVkPC9s aXRlcmFsPjwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMTwvbGl0ZXJhbD48L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxw YXJhPjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzI1NjwvbGl0ZXJhbD48L3BhcmE+CisgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICA8L3BhcmE+CisK KyAgICAgPHBhcmE+CisgICAgICBUaGlzIGlzIGluZm9ybWF0aW9uYWwgb25seS4gIFRoZSBz cGVjaWZpZWQgdmFsdWUgaXMgcHJvdmlkZWQgdG8gdGhlCisgICAgICBjbGllbnQsIHdoaWNo IG1heSB1c2UgaXQgZm9yIGRlY3J5cHRpbmcgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBv biB0aGUKKyAgICAgIGNsaWVudCBzaWRlLiAgQnV0IGEgY2xpZW50IGlzIGFsc28gZnJlZSB0 byBpZ25vcmUgdGhpcyBpbmZvcm1hdGlvbiBhbmQKKyAgICAgIGZpZ3VyZSBvdXQgaG93IHRv IGFycmFuZ2UgdGhlIGRlY3J5cHRpb24gaW4gc29tZSBvdGhlciB3YXkuICBJbiB0aGF0Cisg ICAgICBjYXNlLCBzcGVjaWZ5aW5nIHRoZSBhbGdvcml0aG0gYXMgPGxpdGVyYWw+dW5zcGVj aWZpZWQ8L2xpdGVyYWw+IHdvdWxkIGJlCisgICAgICBhcHByb3ByaWF0ZS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+ZW5jdmFsPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGtleSBt YXRlcmlhbCBvZiB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgZW5jcnlwdGVkIHdpdGgg dGhlCisgICAgICBzcGVjaWZpZWQgY29sdW1uIG1hc3RlciBrZXkgdXNpbmcgdGhlIHNwZWNp ZmllZCBhbGdvcml0aG0uICBUaGUgdmFsdWUKKyAgICAgIG11c3QgYmUgYSA8dHlwZT5ieXRl YTwvdHlwZT4tY29tcGF0aWJsZSBsaXRlcmFsLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxw YXJhPgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsxIFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazEsCisgICAg QUxHT1JJVEhNID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9 ICdceDAxMDIwMjA0Li4uJworKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBhc3NvY2lhdGVkIGNvbHVt biBtYXN0ZXIga2V5OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNt azEsCisgICAgQUxHT1JJVEhNID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIEVOQ1JZUFRF RF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKSwKKygKKyAgICBDT0xVTU5fTUFTVEVSX0tF WSA9IGNtazIsCisgICAgQUxHT1JJVEhNID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIEVO Q1JZUFRFRF9WQUxVRSA9ICdceEYxRjJGMkY0Li4uJworKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29t cGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFu ZD5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4K KyAgIHRoZSBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5 cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1jb2x1 bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmFhYTEwODhkMTkKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVy X2tleS5zZ21sCkBAIC0wLDAgKzEsMTA3IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24K Ky0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgor IDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgIDxw cmltYXJ5PkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVy bT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8 cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+Cisg PC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4g TUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGNvbHVt biBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5v cHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFj ZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgV0lUSCAoCisgICAgWyBSRUFMTSA9IDxyZXBs YWNlYWJsZT5yZWFsbTwvcmVwbGFjZWFibGU+IF0KKykgXQorPC9zeW5vcHNpcz4KKyA8L3Jl ZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3Rp dGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ PC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29s dW1uIG1hc3RlciBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtl eXMsIHdoaWNoCisgICBhcmUgdGhlIGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBj b2x1bW4gZGF0YS4gIFRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVy IGtleSBpcyBub3Qgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9m IGEKKyAgIGNvbHVtbiBtYXN0ZXIga2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxs IGFsbG93IGEgY2xpZW50IHRvIGxvY2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4 YW1wbGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4g bWFzdGVyIGtleS4gIFRoZSBuYW1lIGNhbiBiZQorICAgICAgc2NoZW1hLXF1YWxpZmllZC4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVhbG08L3JlcGxh Y2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGlzIGlzIGFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXpl IGNvbHVtbiBtYXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxvb2t1cCBieSBj bGllbnRzLiAgVGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAgIG1hc3RlciBr ZXlzIHRoYXQgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUgc3lzdGVtIGxv Y2F0aW9uLAorICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBzaG91bGQgYmUg aW4gdGhlIHNhbWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhlbiBiZSBjb25m aWd1cmVkIHRvIGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBpbiBhCisgICAg ICBjZXJ0YWluIHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcmVzcGVjdGl2 ZSBjbGllbnQgbGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5zdHJ1Y3Rpb25z LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVmYXVsdCBpcyB0 aGUgZW1wdHkgc3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3JhbWxpc3Rpbmc+ CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXlyZWFsbScpOwor PC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8 Y29tbWFuZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBp bgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3Qg dHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNv bHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1i ZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggMDJmMzFkMmQ2ZmQuLmU5YjMwMWNh MmUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTIyLDcgKzIyLDcg QEAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgWyBbIEdMT0JBTCB8 IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYg Tk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gKCBbCi0gIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgU1RPUkFHRSB7IFBMQUlOIHwgRVhURVJO QUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxUIH0gXSBbIENPTVBSRVNTSU9OIDxyZXBs YWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8 cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4u IF0gXQorICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8 L3JlcGxhY2VhYmxlPiBbIEVOQ1JZUFRFRCBXSVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRp b25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICkgXSBbIFNUT1JBR0UgeyBQTEFJTiB8IEVYVEVS TkFMIHwgRVhURU5ERUQgfCBNQUlOIHwgREVGQVVMVCB9IF0gWyBDT01QUkVTU0lPTiA8cmVw bGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUg PHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4u LiBdIF0KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJs ZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+ IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gLi4uIF0gfQogICAg IFssIC4uLiBdCkBAIC04OCw3ICs4OCw3IEBACiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhy YXNlPgogCi17IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT01QUkVT U0lPTiB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8 IElOREVYRVMgfCBTVEFUSVNUSUNTIHwgU1RPUkFHRSB8IEFMTCB9Cit7IElOQ0xVRElORyB8 IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENPTlNUUkFJTlRTIHwg REVGQVVMVFMgfCBFTkNSWVBURUQgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8IElOREVYRVMg fCBTVEFUSVNUSUNTIHwgU1RPUkFHRSB8IEFMTCB9CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFi bGU+IGlzOjwvcGhyYXNlPgogCkBAIC0zNTIsNiArMzUyLDQ3IEBAIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1lbmNyeXB0ZWQiPgor ICAgIDx0ZXJtPjxsaXRlcmFsPkVOQ1JZUFRFRCBXSVRIICggPHJlcGxhY2VhYmxlPmVuY3J5 cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICk8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBFbmFibGVzIGF1dG9tYXRpYyBjbGllbnQt c2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBmb3IgdGhlIGNvbHVtbi4KKyAgICAgIDxy ZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiBhcmUgY29tbWEt c2VwYXJhdGVkCisgICAgICA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IHNwZWNpZmlj YXRpb25zLiAgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZQorICAgICAgYXZhaWxhYmxlOgor ICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8 dGVybT48bGl0ZXJhbD5jb2x1bW5fZW5jcnlwdGlvbl9rZXk8L2xpdGVyYWw+PC90ZXJtPgor ICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVjaWZp ZXMgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0byB1c2UuICBTcGVj aWZ5aW5nCisgICAgICAgICAgdGhpcyBpcyBtYW5kYXRvcnkuICBZb3UgbXVzdCBoYXZlIDxs aXRlcmFsPlVTQUdFPC9saXRlcmFsPiBwcml2aWxlZ2UKKyAgICAgICAgICBvbiB0aGUgY29s dW1uIGVuY3J5cHRpb24ga2V5LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPmVuY3J5cHRpb25fdHlwZTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRl cmFsPnJhbmRvbWl6ZWQ8L2xpdGVyYWw+ICh0aGUgZGVmYXVsdCkgb3IgPGxpdGVyYWw+ZGV0 ZXJtaW5pc3RpYzwvbGl0ZXJhbD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgICA8dGVybT48bGl0ZXJhbD5hbGdvcml0aG08L2xpdGVyYWw+PC90ZXJtPgorICAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZW5jcnlw dGlvbiBhbGdvcml0aG0gdG8gdXNlLiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICA8bGl0 ZXJhbD5BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD4uCisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+ CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXRhYmxlLXBhcm1zLWluaGVyaXRzIj4KICAgICA8dGVybT48bGl0ZXJhbD5JTkhFUklUUyAo IDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9s aXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC03MTcsNiArNzU4LDE2IEBAIDx0 aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0 YWJsZS1wYXJtcy1saWtlLW9wdC1lbmNyeXB0ZWQiPgorICAgICAgICA8dGVybT48bGl0ZXJh bD5JTkNMVURJTkcgRU5DUllQVEVEPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgQ29sdW1uIGVuY3J5cHRpb24gc3Bl Y2lmaWNhdGlvbnMgZm9yIHRoZSBjb3BpZWQgY29sdW1uIGRlZmluaXRpb25zCisgICAgICAg ICAgd2lsbCBiZSBjb3BpZWQuICBCeSBkZWZhdWx0LCBuZXcgY29sdW1ucyB3aWxsIGJlIHVu ZW5jcnlwdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXRhYmxlLXBhcm1zLWxpa2Utb3B0LWdlbmVyYXRlZCI+CiAgICAgICAgIDx0ZXJtPjxs aXRlcmFsPklOQ0xVRElORyBHRU5FUkFURUQ8L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8 bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42YTk0 NzA2ZWY3OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAKIAog IDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLURJU0NBUkQgeyBBTEwgfCBQTEFOUyB8 IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfQorRElTQ0FSRCB7IEFMTCB8IENPTFVN TiBFTkNSWVBUSU9OIEtFWVMgfCBQTEFOUyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRF TVAgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC00Miw2ICs0Miwx NyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAKICAgPHZhcmlhYmxlbGlzdD4KIAor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xVTU4gRU5DUllQVElP TiBLRVlTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgRGlzY2FyZHMga25vd2xlZGdlIGFib3V0IHdoaWNoIGNvbHVtbiBlbmNyeXB0aW9u IGtleXMgYW5kIGNvbHVtbiBtYXN0ZXIKKyAgICAgIGtleXMgaGF2ZSBiZWVuIHNlbnQgdG8g dGhlIGNsaWVudCBpbiB0aGlzIHNlc3Npb24uICAoVGhleSB3aWxsCisgICAgICBzdWJzZXF1 ZW50bHkgYmUgcmUtc2VudCBhcyByZXF1aXJlZC4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg PHRlcm0+PGxpdGVyYWw+UExBTlM8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4K QEAgLTkzLDYgKzEwNCw3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KIERJU0NBUkQg UExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsKK0RJU0NBUkQgQ09M VU1OIEVOQ1JZUFRJT04gS0VZUzsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZjJhYzFiZWIwODQKLS0tIC9kZXYvbnVsbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAgLTAs MCArMSwxMTIgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlw dGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVu dHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0g em9uZT0ic3FsLWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+RFJP UCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlz Y2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4gZW5jcnlw dGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lz ZGl2PgorPHN5bm9wc2lzPgorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgWyBJRiBFWElT VFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FERSB8IFJFU1RS SUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5k PkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiByZW1vdmVzIGEgcHJldmlv dXNseSBkZWZpbmVkCisgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBUbyBiZSBhYmxlIHRv IGRyb3AgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIHlvdQorICAgbXVzdCBiZSBpdHMgb3du ZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4K KyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90IHRocm93IGFu IGVycm9yIGlmIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZG9lcyBub3QgZXhpc3QuCisg ICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5hbWUg KG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9u IGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NB REU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29s dW1uIGVuY3J5cHRpb24ga2V5LAorICAgICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRo YXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 ImRkbC1kZXBlbmQiLz4pLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxp dGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgY29sdW1uIGVuY3J5cHRpb24g a2V5IGlmIGFueSBvYmplY3RzIGRlcGVuZCBvbiBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUg ZGVmYXVsdC4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxp c3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxp c3Rpbmc+CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxOworPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNv bXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1h bmQ+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgor ICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29s dW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwv c2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmFlOTVlMDlkMTkKLS0tIC9kZXYvbnVsbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCww ICsxLDExMiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJf a2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBp ZD0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3Fs LWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFyeT5EUk9QIENPTFVNTiBNQVNU RVIgS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZl bnRyeXRpdGxlPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxt YW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2Ug U3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+ CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZw dXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVm bmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgQ09MVU1O IE1BU1RFUiBLRVkgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFi bGU+IFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNp c2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+ IHJlbW92ZXMgYSBwcmV2aW91c2x5IGRlZmluZWQKKyAgIGNvbHVtbiBtYXN0ZXIga2V5LiAg VG8gYmUgYWJsZSB0byBkcm9wIGEgY29sdW1uIG1hc3RlciBrZXksIHlvdQorICAgbXVzdCBi ZSBpdHMgb3duZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90 IHRocm93IGFuIGVycm9yIGlmIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBkb2VzIG5vdCBleGlz dC4KKyAgICAgICBBIG5vdGljZSBpcyBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg bmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgY29sdW1uIG1hc3Rl ciBrZXkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5DQVND QURFPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIGNv bHVtbiBtYXN0ZXIga2V5LAorICAgICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQg ZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRk bC1kZXBlbmQiLz4pLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVy YWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8 cGFyYT4KKyAgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgY29sdW1uIG1hc3RlciBrZXkgaWYg YW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcworICAgICAgIGlzIHRoZSBkZWZhdWx0 LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorICAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4K K0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY2VrMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkRST1AgQ09M VU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFu ZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1 bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA2NWIxZmU3NzExOS4u NDgwYjViZGE2NzYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTQ2LDYgKzQ2LDE2IEBACiAg ICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlv bjwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCiAgICAgWyBH UkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmlj YXRpb248L3JlcGxhY2VhYmxlPiBdCiAKK0dSQU5UIHsgVVNBR0UgfCBBTEwgWyBQUklWSUxF R0VTIF0gfQorICAgIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+Y2Vr X25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0g WyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisK K0dSQU5UIHsgVVNBR0UgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIENPTFVNTiBN QVNURVIgS0VZIDxyZXBsYWNlYWJsZT5jbWtfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0K KyAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0 aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKyAgICBb IEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KKwogR1JBTlQgeyBVU0FHRSB8IEFMTCBbIFBSSVZJ TEVHRVMgXSB9CiAgICAgT04gRE9NQUlOIDxyZXBsYWNlYWJsZT5kb21haW5fbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLl0KICAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JB TlQgT1BUSU9OIF0KQEAgLTUxOCw3ICs1MjgsNyBAQCA8dGl0bGU+Q29tcGF0aWJpbGl0eTwv dGl0bGU+CiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIFByaXZpbGVnZXMgb24gZGF0 YWJhc2VzLCB0YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2VzLCBhbmQKKyAgICBQcml2 aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGtleXMsIGxhbmd1 YWdlcywgYW5kCiAgICAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQogICAgIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4KICAgIDwvcGFy YT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKaW5kZXggYjk5NzkzZTQxNDguLjFiNDBmYzY2ZDQ3 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbApAQCAtNzQ0LDYgKzc0NCw0OCBAQCA8dGl0bGU+ T3B0aW9uczwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5 cHQtZW5jcnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVz IG9mIGFsbCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5k IHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUg dmFsdWVzIG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRo ZSBkdW1wIGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBk ZWNyeXB0ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBU aGlzIG9wdGlvbiB0dXJucyBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24gY29ubmVjdGlvbiBv cHRpb24gaW4KKyAgICAgICAgPGFwcGxpY2F0aW9uPmxpYnBxPC9hcHBsaWNhdGlvbj4gKHNl ZSA8eHJlZgorICAgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0 aW9uIi8+KS4gIENvbHVtbiBtYXN0ZXIga2V5CisgICAgICAgIGxvb2t1cCBtdXN0IGJlIGNv bmZpZ3VyZWQgYnkgdGhlIHVzZXIsIGVpdGhlciB0aHJvdWdoIGEgY29ubmVjdGlvbgorICAg ICAgICBvcHRpb24gb3IgYW4gZW52aXJvbm1lbnQgc2V0dGluZyAoc2VlIDx4cmVmCisgICAg ICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIi8+KS4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gcmVxdWlyZXMgdGhh dCA8b3B0aW9uPi0taW5zZXJ0czwvb3B0aW9uPiwKKyAgICAgICAgPG9wdGlvbj4tLWNvbHVt bi1pbnNlcnRzPC9vcHRpb24+IG9yCisgICAgICAgIDxvcHRpb24+LS1yb3dzLXBlci1pbnNl cnQ8L29wdGlvbj4gaXMgYWxzbyBzcGVjaWZpZWQuCisgICAgICAgICg8Y29tbWFuZD5DT1BZ PC9jb21tYW5kPiBkb2VzIG5vdCBzdXBwb3J0IGNvbHVtbiBkZWNyeXB0aW9uLikKKyAgICAg ICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgRm9yIHJvdXRpbmUgYmFja3Vw cywgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgYXBwcm9wcmlhdGUgYW5kIG1vc3QKKyAgICAg ICAgZWZmaWNpZW50LiAgVGhpcyBvcHRpb24gaXMgc3VpdGFibGUgaWYgdGhlIGRhdGEgaXMg bWVhbnQgdG8gYmUKKyAgICAgICAgaW5zcGVjdGVkIG9yIGV4cG9ydGVkIGZvciBvdGhlciBw dXJwb3Nlcy4gIChCdXQgdGhlbiBpdCBpcyByZWNvbW1lbmRlZAorICAgICAgICB0byBub3Qg ZG8gdGhpcyBvbiB0aGUgc2FtZSBob3N0IGFzIHRoZSBzZXJ2ZXIsIHRvIGF2b2lkIGV4cG9z aW5nCisgICAgICAgIHVuZW5jcnlwdGVkIGRhdGEgdGhhdCBpcyBtZWFudCB0byBiZSBrZXB0 IGVuY3J5cHRlZCBvbiB0aGUgc2VydmVyLikKKyAgICAgICAgTm90ZSB0aGF0IGEgZHVtcCBj cmVhdGVkIHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8gYQorICAg ICAgICBkYXRhYmFzZSB3aXRoIGNvbHVtbiBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4K KyAgICAgICA8IS0tCisgICAgICAgICAgIFhYWDogVGhlIGxhdHRlciB3b3VsZCByZXF1aXJl IGFub3RoZXIgcGdfZHVtcCBvcHRpb24gdG8gcHV0IG91dAorICAgICAgICAgICBJTlNFUlQg Li4uIFxiaW5kIC4uLiBcZyBjb21tYW5kcy4KKyAgICAgICAtLT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg ICA8dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGluZzwvb3B0aW9uPjwvdGVy bT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdf ZHVtcGFsbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwKaW5kZXgg NGQ3YzA0NjQ2ODcuLjhlODQ4YzMzN2EzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L3BnX2R1bXBhbGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dt bApAQCAtMjkzLDYgKzI5MywzMyBAQCA8dGl0bGU+T3B0aW9uczwvdGl0bGU+CiAgICAgICA8 L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnM8L29w dGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFsbCBlbmNyeXB0ZWQgY29sdW1u cyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBp biBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVzIG9mCisgICAgICAgIGVuY3J5 cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1wIGluIGNpcGhlcnRleHQgKHRo YXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0ZWQpLgorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0 IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAgICA8b3B0aW9uPi0tY29sdW1u LWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlvbj4tLXJvd3MtcGVyLWluc2Vy dDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAgICAgKDxjb21tYW5kPkNPUFk8 L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRlY3J5cHRpb24uKQorICAgICAg IDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBGb3Igcm91dGluZSBiYWNrdXBz LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0ZSBhbmQgbW9zdAorICAgICAg ICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBt ZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1 cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisgICAgICAgIHdpdGggdGhpcyBv cHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRhYmFzZSB3aXRoIGNvbHVtbgor ICAgICAgICBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+ CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8 dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGluZzwvb3B0aW9uPjwvdGVybT4K ICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1y ZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA1Mzk3NDhm ZmMyOS4uZTU2YjE5MDI0ZmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1y ZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTE0MjQs NiArMTQyNCwzNCBAQCA8dGl0bGU+TWV0YS1Db21tYW5kczwvdGl0bGU+CiAgICAgICA8L3Zh cmxpc3RlbnRyeT4KIAogCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRh LWNvbW1hbmQtZGNlayI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkY2VrWytdIFsgPGxp bmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICBMaXN0cyBj b2x1bW4gZW5jcnlwdGlvbiBrZXlzLiAgSWYgPHJlcGxhY2VhYmxlCisgICAgICAgIGNsYXNz PSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcyBzcGVjaWZpZWQsIG9ubHkg Y29sdW1uCisgICAgICAgIGVuY3J5cHRpb24ga2V5cyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUg cGF0dGVybiBhcmUgbGlzdGVkLiAgSWYKKyAgICAgICAgPGxpdGVyYWw+KzwvbGl0ZXJhbD4g aXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgZWFjaCBvYmplY3QgaXMKKyAgICAg ICAgbGlzdGVkIHdpdGggaXRzIGFzc29jaWF0ZWQgZGVzY3JpcHRpb24uCisgICAgICAgIDwv cGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisK KyAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kY21rIj4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRjbWtbK10gWyA8bGluayBsaW5rZW5kPSJhcHAt cHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48 L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIGNvbHVtbiBtYXN0ZXIga2V5 cy4gIElmIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJu PC9yZXBsYWNlYWJsZT4gaXMgc3BlY2lmaWVkLCBvbmx5IGNvbHVtbgorICAgICAgICBtYXN0 ZXIga2V5cyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVkLiAgSWYK KyAgICAgICAgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1h bmQgbmFtZSwgZWFjaCBvYmplY3QgaXMKKyAgICAgICAgbGlzdGVkIHdpdGggaXRzIGFzc29j aWF0ZWQgZGVzY3JpcHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisKICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9 ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kY29uZmlnIj4KICAgICAgICAgPHRlcm0+PGxpdGVy YWw+XGRjb25maWdbK10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGlu az4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KQEAgLTQwNTMsNiAr NDA4MSwxNyBAQCA8dGl0bGU+VmFyaWFibGVzPC90aXRsZT4KICAgICAgICAgPC9saXN0aXRl bT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJh cHAtcHNxbC12YXJpYWJsZXMtaGlkZS1jb2x1bW4tZW5jcnlwdGlvbiI+CisgICAgICAgIDx0 ZXJtPjx2YXJuYW1lPkhJREVfQ09MVU1OX0VOQ1JZUFRJT048L3Zhcm5hbWU+PC90ZXJtPgor ICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhpcyB2 YXJpYWJsZSBpcyBzZXQgdG8gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4sIGNvbHVtbiBlbmNy eXB0aW9uCisgICAgICAgICBkZXRhaWxzIGFyZSBub3QgZGlzcGxheWVkLiBUaGlzIGlzIG1h aW5seSB1c2VmdWwgZm9yIHJlZ3Jlc3Npb24KKyAgICAgICAgIHRlc3RzLgorICAgICAgICA8 L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtdmFyaWFibGVzLWhpZGUtdG9hc3Qt Y29tcHJlc3Npb24iPgogICAgICAgICA8dGVybT48dmFybmFtZT5ISURFX1RPQVNUX0NPTVBS RVNTSU9OPC92YXJuYW1lPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sCmluZGV4IGZmODVhY2U4M2ZjLi40ZTQwYmM0MTQzNCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uu c2dtbApAQCAtMzYsNiArMzYsOCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAg ICZhYm9ydDsKICAgICZhbHRlckFnZ3JlZ2F0ZTsKICAgICZhbHRlckNvbGxhdGlvbjsKKyAg ICZhbHRlckNvbHVtbkVuY3J5cHRpb25LZXk7CisgICAmYWx0ZXJDb2x1bW5NYXN0ZXJLZXk7 CiAgICAmYWx0ZXJDb252ZXJzaW9uOwogICAgJmFsdGVyRGF0YWJhc2U7CiAgICAmYWx0ZXJE ZWZhdWx0UHJpdmlsZWdlczsKQEAgLTkwLDYgKzkyLDggQEAgPHRpdGxlPlNRTCBDb21tYW5k czwvdGl0bGU+CiAgICAmY3JlYXRlQWdncmVnYXRlOwogICAgJmNyZWF0ZUNhc3Q7CiAgICAm Y3JlYXRlQ29sbGF0aW9uOworICAgJmNyZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXk7CisgICAm Y3JlYXRlQ29sdW1uTWFzdGVyS2V5OwogICAgJmNyZWF0ZUNvbnZlcnNpb247CiAgICAmY3Jl YXRlRGF0YWJhc2U7CiAgICAmY3JlYXRlRG9tYWluOwpAQCAtMTM3LDYgKzE0MSw4IEBAIDx0 aXRsZT5TUUwgQ29tbWFuZHM8L3RpdGxlPgogICAgJmRyb3BBZ2dyZWdhdGU7CiAgICAmZHJv cENhc3Q7CiAgICAmZHJvcENvbGxhdGlvbjsKKyAgICZkcm9wQ29sdW1uRW5jcnlwdGlvbktl eTsKKyAgICZkcm9wQ29sdW1uTWFzdGVyS2V5OwogICAgJmRyb3BDb252ZXJzaW9uOwogICAg JmRyb3BEYXRhYmFzZTsKICAgICZkcm9wRG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9wcmludHNpbXBsZS5jCmluZGV4IDRjNWVlZGNkYzE3Li44YTRhMThiN2ZmNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYwpAQCAtMjAsOCArMjAs MTAgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9wcmludHNpbXBsZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVk ZSAibGlicHEvcHFmb3JtYXQuaCIKICNpbmNsdWRlICJsaWJwcS9wcm90b2NvbC5oIgorI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAKIC8q CkBAIC00Nyw2ICs0OSwxMiBAQCBwcmludHNpbXBsZV9zdGFydHVwKERlc3RSZWNlaXZlciAq c2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR1cGRlc2MpCiAJCXBxX3NlbmRpbnQx NigmYnVmLCBhdHRyLT5hdHRsZW4pOwogCQlwcV9zZW5kaW50MzIoJmJ1ZiwgYXR0ci0+YXR0 dHlwbW9kKTsKIAkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBmb3JtYXQgY29kZSAqLwor CQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJ cHFfc2VuZGludDMyKCZidWYsIDApOwkvKiBDRUsgKi8KKwkJCXBxX3NlbmRpbnQzMigmYnVm LCAwKTsJLyogQ0VLIGFsZyAqLworCQkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBmbGFn cyAqLworCQl9CiAJfQogCiAJcHFfZW5kbWVzc2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vcHJpbnR0dXAuYwppbmRleCBmMmQ1Y2ExNGZlZS4uZjliNzg4ZTY0YTEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKQEAgLTE1LDEyICsxNSwyNyBA QAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9nZW5h bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9wcmludHR1cC5oIgorI2luY2x1ZGUgImFjY2Vzcy9z a2V5LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgorI2luY2x1ZGUgImxpYnBx L2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKKyNpbmNsdWRlICJt aXNjYWRtaW4uaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5oIgorI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXlhY2Nlc3MuaCIKKyNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVk ZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisj aW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAog CiBzdGF0aWMgdm9pZCBwcmludHR1cF9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50 IG9wZXJhdGlvbiwKQEAgLTE1MCw2ICsxNjUsMTY0IEBAIHByaW50dHVwX3N0YXJ0dXAoRGVz dFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCiAJ ICovCiB9CiAKKy8qCisgKiBTZW5kIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLCB1bmxlc3Mg aXQncyBhbHJlYWR5IGJlZW4gc2VudCBpbiB0aGlzIHNlc3Npb24KKyAqIGZvciB0aGlzIGtl eS4KKyAqLworTGlzdAkgICAqY21rX3NlbnQgPSBOSUw7CisKK3N0YXRpYyB2b2lkCitjbWtf Y2hhbmdlX2NiKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7 CisJbGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9IE5JTDsKK30KKworc3RhdGlj IHZvaWQKK01heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoT2lkIGNta2lkKQorewor CUhlYXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2NvbG1hc3RlcmtleSBjbWtmb3JtOworCURh dHVtCQlkYXR1bTsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJc3RhdGljIGJvb2wgcmVnaXN0 ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworCUFz c2VydChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKKworCWlmIChs aXN0X21lbWJlcl9vaWQoY21rX3NlbnQsIGNta2lkKSkKKwkJcmV0dXJuOworCisJdHVwbGUg PSBTZWFyY2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta2lkKSk7CisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOworCWNta2Zv cm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwlwcV9i ZWdpbm1lc3NhZ2UoJmJ1ZiwgJ3knKTsgLyogQ29sdW1uTWFzdGVyS2V5ICovCisJcHFfc2Vu ZGludDMyKCZidWYsIGNta2Zvcm0tPm9pZCk7CisJcHFfc2VuZHN0cmluZygmYnVmLCBOYW1l U3RyKGNta2Zvcm0tPmNta25hbWUpKTsKKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51 bGwoQ01LT0lELCB0dXBsZSwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rcmVhbG0pOworCXBx X3NlbmRzdHJpbmcoJmJ1ZiwgVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOworCXBxX2Vu ZG1lc3NhZ2UoJmJ1Zik7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJaWYgKCFy ZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2so Q01LT0lELCBjbWtfY2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQlyZWdpc3RlcmVkX2ludmFs ID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRv cE1lbW9yeUNvbnRleHQpOworCWNta19zZW50ID0gbGFwcGVuZF9vaWQoY21rX3NlbnQsIGNt a2lkKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7Cit9CisKKy8qCisg KiBTZW5kIENvbHVtbkVuY3J5cHRpb25LZXkgbWVzc2FnZSwgdW5sZXNzIGl0J3MgYWxyZWFk eSBiZWVuIHNlbnQgaW4gdGhpcworICogc2Vzc2lvbiBmb3IgdGhpcyBrZXkuCisgKi8KK0xp c3QJICAgKmNla19zZW50ID0gTklMOworCitzdGF0aWMgdm9pZAorY2VrX2NoYW5nZV9jYihE YXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQoreworCWxpc3RfZnJl ZShjZWtfc2VudCk7CisJY2VrX3NlbnQgPSBOSUw7Cit9CisKK3ZvaWQKK01heWJlU2VuZENv bHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWspCit7CisJSGVhcFR1cGxlCXR1 cGxlOworCVNjYW5LZXlEYXRhIHNrZXlbMV07CisJU3lzU2NhbkRlc2Mgc2Q7CisJUmVsYXRp b24JcmVsOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJc3RhdGljIGJvb2wgcmVnaXN0ZXJl ZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworCUFzc2Vy dChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKKworCWlmIChsaXN0 X21lbWJlcl9vaWQoY2VrX3NlbnQsIGF0dGNlaykpCisJCXJldHVybjsKKworCS8qCisJICog V2UgcmVhbGx5IG9ubHkgbmVlZCBkYXRhIGZyb20gcGdfY29sZW5ja2V5ZGF0YSwgYnV0IGJl Zm9yZSB3ZSBzY2FuCisJICogdGhhdCwgbGV0J3MgY2hlY2sgdGhhdCBhbiBlbnRyeSBleGlz dHMgaW4gcGdfY29sZW5ja2V5LCBzbyB0aGF0IGlmCisJICogdGhlcmUgYXJlIGNhdGFsb2cg aW5jb25zaXN0ZW5jaWVzLCB3ZSBjYW4gbG9jYXRlIHRoZW0gYmV0dGVyLgorCSAqLworCWlm ICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShhdHRj ZWspKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGtleSAldSIsIGF0dGNlayk7CisKKwkvKgorCSAqIE5vdyBzY2FuIHBnX2Nv bGVuY2tleWRhdGEuCisJICovCisJU2NhbktleUluaXQoJnNrZXlbMF0sCisJCQkJQW51bV9w Z19jb2xlbmNrZXlkYXRhX2NrZGNla2lkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwg Rl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKGF0dGNlaykpOworCXJlbCA9IHRhYmxl X29wZW4oQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJ c2QgPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBDb2x1bW5FbmNLZXlDZWtpZENta2lkSW5k ZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2tleSk7CisKKwl3aGlsZSAoKHR1cGxlID0gc3lzdGFi bGVfZ2V0bmV4dChzZCkpKQorCXsKKwkJRm9ybV9wZ19jb2xlbmNrZXlkYXRhIGNrZGZvcm0g PSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBHRVRTVFJVQ1QodHVwbGUpOworCQlEYXR1bQkJ ZGF0dW07CisJCWJvb2wJCWlzbnVsbDsKKwkJYnl0ZWEJICAgKmJhOworCQlTdHJpbmdJbmZv RGF0YSBidWY7CisKKwkJTWF5YmVTZW5kQ29sdW1uTWFzdGVyS2V5TWVzc2FnZShja2Rmb3Jt LT5ja2RjbWtpZCk7CisKKwkJZGF0dW0gPSBoZWFwX2dldGF0dHIodHVwbGUsIEFudW1fcGdf Y29sZW5ja2V5ZGF0YV9ja2RlbmN2YWwsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgJmlzbnVs bCk7CisJCUFzc2VydCghaXNudWxsKTsKKwkJYmEgPSBwZ19kZXRvYXN0X2RhdHVtX3BhY2tl ZCgoYnl0ZWEgKikgRGF0dW1HZXRQb2ludGVyKGRhdHVtKSk7CisKKwkJcHFfYmVnaW5tZXNz YWdlKCZidWYsICdZJyk7IC8qIENvbHVtbkVuY3J5cHRpb25LZXkgKi8KKwkJcHFfc2VuZGlu dDMyKCZidWYsIGNrZGZvcm0tPmNrZGNla2lkKTsKKwkJcHFfc2VuZGludDMyKCZidWYsIGNr ZGZvcm0tPmNrZGNta2lkKTsKKwkJcHFfc2VuZGludDMyKCZidWYsIGNrZGZvcm0tPmNrZGNt a2FsZyk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBWQVJTSVpFX0FOWV9FWEhEUihiYSkpOwor CQlwcV9zZW5kYnl0ZXMoJmJ1ZiwgVkFSREFUQV9BTlkoYmEpLCBWQVJTSVpFX0FOWV9FWEhE UihiYSkpOworCQlwcV9lbmRtZXNzYWdlKCZidWYpOworCisJCWZvdW5kID0gdHJ1ZTsKKwl9 CisKKwkvKgorCSAqIFRoaXMgaXMgYSB1c2VyLWZhY2luZyBtZXNzYWdlLCBiZWNhdXNlIHdp dGggQUxURVIgaXQgaXMgcG9zc2libGUgdG8KKwkgKiBkZWxldGUgYWxsIGRhdGEgZW50cmll cyBmb3IgYSBDRUsuCisJICovCisJaWYgKCFmb3VuZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJubyBk YXRhIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIiwgZ2V0X2Nla19uYW1lKGF0 dGNlaywgZmFsc2UpKSk7CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNkKTsKKwl0YWJsZV9jbG9z ZShyZWwsIE5vTG9jayk7CisKKwlpZiAoIXJlZ2lzdGVyZWRfaW52YWwpCisJeworCQlDYWNo ZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhDRUtEQVRBT0lELCBjZWtfY2hhbmdlX2NiLCAo RGF0dW0pIDApOworCQlyZWdpc3RlcmVkX2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250 ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNla19z ZW50ID0gbGFwcGVuZF9vaWQoY2VrX3NlbnQsIGF0dGNlayk7CisJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGNvbnRleHQpOworfQorCit2b2lkCitEaXNjYXJkQ29sdW1uRW5jcnlwdGlv bktleXModm9pZCkKK3sKKwlsaXN0X2ZyZWUoY21rX3NlbnQpOworCWNta19zZW50ID0gTklM OworCisJbGlzdF9mcmVlKGNla19zZW50KTsKKwljZWtfc2VudCA9IE5JTDsKK30KKwogLyoK ICAqIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UgLS0tIHNlbmQgYSBSb3dEZXNjcmlwdGlv biBtZXNzYWdlIHRvIHRoZSBmcm9udGVuZAogICoKQEAgLTE2Niw2ICszMzksNyBAQCBTZW5k Um93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWlu Zm8sCiAJCQkJCQkgIExpc3QgKnRhcmdldGxpc3QsIGludDE2ICpmb3JtYXRzKQogewogCWlu dAkJCW5hdHRzID0gdHlwZWluZm8tPm5hdHRzOworCXNpemVfdAkJc3o7CiAJaW50CQkJaTsK IAlMaXN0Q2VsbCAgICp0bGlzdF9pdGVtID0gbGlzdF9oZWFkKHRhcmdldGxpc3QpOwogCkBA IC0xODIsMTQgKzM1NiwxOCBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0lu Zm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJICogSGF2ZSB0byBvdmVyZXN0aW1hdGUg dGhlIHNpemUgb2YgdGhlIGNvbHVtbi1uYW1lcywgdG8gYWNjb3VudCBmb3IKIAkgKiBjaGFy YWN0ZXIgc2V0IG92ZXJoZWFkLgogCSAqLwotCWVubGFyZ2VTdHJpbmdJbmZvKGJ1ZiwgKE5B TUVEQVRBTEVOICogTUFYX0NPTlZFUlNJT05fR1JPV1RIIC8qIGF0dG5hbWUgKi8KLQkJCQkJ CQkrIHNpemVvZihPaWQpCS8qIHJlc29yaWd0YmwgKi8KLQkJCQkJCQkrIHNpemVvZihBdHRy TnVtYmVyKQkvKiByZXNvcmlnY29sICovCi0JCQkJCQkJKyBzaXplb2YoT2lkKQkvKiBhdHR0 eXBpZCAqLwotCQkJCQkJCSsgc2l6ZW9mKGludDE2KSAvKiBhdHRsZW4gKi8KLQkJCQkJCQkr IHNpemVvZihpbnQzMikgLyogYXR0eXBtb2QgKi8KLQkJCQkJCQkrIHNpemVvZihpbnQxNikg LyogZm9ybWF0ICovCi0JCQkJCQkJKSAqIG5hdHRzKTsKKwlzeiA9IChOQU1FREFUQUxFTiAq IE1BWF9DT05WRVJTSU9OX0dST1dUSAkvKiBhdHRuYW1lICovCisJCSAgKyBzaXplb2YoT2lk KQkJCS8qIHJlc29yaWd0YmwgKi8KKwkJICArIHNpemVvZihBdHRyTnVtYmVyKQkvKiByZXNv cmlnY29sICovCisJCSAgKyBzaXplb2YoT2lkKQkJCS8qIGF0dHR5cGlkICovCisJCSAgKyBz aXplb2YoaW50MTYpCQkvKiBhdHRsZW4gKi8KKwkJICArIHNpemVvZihpbnQzMikJCS8qIGF0 dHlwbW9kICovCisJCSAgKyBzaXplb2YoaW50MTYpKTsJCS8qIGZvcm1hdCAqLworCWlmIChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlzeiArPSAoc2l6ZW9m KGludDMyKQkvKiBhdHRjZWtpZCAqLworCQkJICAgKyBzaXplb2YoaW50MzIpCS8qIGF0dGVu Y2FsZyAqLworCQkJICAgKyBzaXplb2YoaW50MTYpKTsJLyogZmxhZ3MgKi8KKwllbmxhcmdl U3RyaW5nSW5mbyhidWYsIHN6ICogbmF0dHMpOwogCiAJZm9yIChpID0gMDsgaSA8IG5hdHRz OyArK2kpCiAJewpAQCAtMTk5LDYgKzM3Nyw5IEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3Nh Z2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJT2lkCQkJcmVzb3Jp Z3RibDsKIAkJQXR0ck51bWJlcglyZXNvcmlnY29sOwogCQlpbnQxNgkJZm9ybWF0OworCQlP aWQJCQlhdHRjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludDMyCQlhdHRlbmNhbGcgPSAwOwor CQlpbnQxNgkJZmxhZ3MgPSAwOwogCiAJCS8qCiAJCSAqIElmIGNvbHVtbiBpcyBhIGRvbWFp biwgc2VuZCB0aGUgYmFzZSB0eXBlIGFuZCB0eXBtb2QgaW5zdGVhZC4KQEAgLTIzMCw2ICs0 MTEsMzIgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVw bGVEZXNjIHR5cGVpbmZvLAogCQllbHNlCiAJCQlmb3JtYXQgPSAwOwogCisJCWlmIChNeVBy b2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlwdGVk KGF0dHR5cGlkKSkKKwkJeworCQkJSGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1 dGUgb3JpZ19hdHQ7CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0 SWRHZXREYXR1bShyZXNvcmlndGJsKSwgSW50MTZHZXREYXR1bShyZXNvcmlnY29sKSk7CisJ CQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCByZXNvcmln Y29sLCByZXNvcmlndGJsKTsKKwkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBH RVRTVFJVQ1QodHApOworCQkJYXR0Y2VraWQgPSBEYXR1bUdldE9iamVjdElkKFN5c0NhY2hl R2V0QXR0ck5vdE51bGwoQVRUTlVNLCB0cCwgQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y2VrKSk7 CisJCQlhdHR0eXBpZCA9IERhdHVtR2V0T2JqZWN0SWQoU3lzQ2FjaGVHZXRBdHRyTm90TnVs bChBVFROVU0sIHRwLCBBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2VydHlwaWQpKTsKKwkJCWF0 dHR5cG1vZCA9IERhdHVtR2V0SW50MzIoU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChBVFROVU0s IHRwLCBBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2VydHlwbW9kKSk7CisJCQlhdHRlbmNhbGcg PSBvcmlnX2F0dC0+YXR0dHlwbW9kOworCQkJaWYgKG9yaWdfYXR0LT5hdHR0eXBpZCA9PSBQ R19FTkNSWVBURURfREVUT0lEKQorCQkJCWZsYWdzIHw9IDB4MDAwMTsKKwkJCVJlbGVhc2VT eXNDYWNoZSh0cCk7CisKKwkJCU1heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdl KGF0dGNla2lkKTsKKworCQkJLyoKKwkJCSAqIEVuY3J5cHRlZCB0eXBlcyBhcmUgYWx3YXlz IHNlbnQgaW4gYmluYXJ5IHdoZW4gY29sdW1uCisJCQkgKiBlbmNyeXB0aW9uIGlzIGVuYWJs ZWQuCisJCQkgKi8KKwkJCWZvcm1hdCA9IDE7CisJCX0KKwogCQlwcV93cml0ZXN0cmluZyhi dWYsIE5hbWVTdHIoYXR0LT5hdHRuYW1lKSk7CiAJCXBxX3dyaXRlaW50MzIoYnVmLCByZXNv cmlndGJsKTsKIAkJcHFfd3JpdGVpbnQxNihidWYsIHJlc29yaWdjb2wpOwpAQCAtMjM3LDYg KzQ0NCwxMiBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBU dXBsZURlc2MgdHlwZWluZm8sCiAJCXBxX3dyaXRlaW50MTYoYnVmLCBhdHQtPmF0dGxlbik7 CiAJCXBxX3dyaXRlaW50MzIoYnVmLCBhdHR0eXBtb2QpOwogCQlwcV93cml0ZWludDE2KGJ1 ZiwgZm9ybWF0KTsKKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpCisJCXsKKwkJCXBxX3dyaXRlaW50MzIoYnVmLCBhdHRjZWtpZCk7CisJCQlwcV93cml0 ZWludDMyKGJ1ZiwgYXR0ZW5jYWxnKTsKKwkJCXBxX3dyaXRlaW50MTYoYnVmLCBmbGFncyk7 CisJCX0KIAl9CiAKIAlwcV9lbmRtZXNzYWdlX3JldXNlKGJ1Zik7CkBAIC0yNzAsNiArNDgz LDEzIEBAIHByaW50dHVwX3ByZXBhcmVfaW5mbyhEUl9wcmludHR1cCAqbXlTdGF0ZSwgVHVw bGVEZXNjIHR5cGVpbmZvLCBpbnQgbnVtQXR0cnMpCiAJCWludDE2CQlmb3JtYXQgPSAoZm9y bWF0cyA/IGZvcm1hdHNbaV0gOiAwKTsKIAkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1 cGxlRGVzY0F0dHIodHlwZWluZm8sIGkpOwogCisJCS8qCisJCSAqIEVuY3J5cHRlZCB0eXBl cyBhcmUgYWx3YXlzIHNlbnQgaW4gYmluYXJ5IHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMK KwkJICogZW5hYmxlZC4KKwkJICovCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlwdGVkKGF0dHItPmF0dHR5cGlkKSkKKwkJ CWZvcm1hdCA9IDE7CisKIAkJdGhpc1N0YXRlLT5mb3JtYXQgPSBmb3JtYXQ7CiAJCWlmIChm b3JtYXQgPT0gMCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUu YwppbmRleCA0MDE2NGUyZWEyYi4uYTY2NDY3NDg3MDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oYXNoL2hhc2h2YWxpZGF0ZS5jCkBAIC0zMzEsNyArMzMxLDcgQEAgY2hlY2tfaGFzaF9m dW5jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBpbnQxNiBhbXByb2NudW0sIE9pZCBhcmd0eXBl KQogCQkJCSBhcmd0eXBlID09IEJPT0xPSUQpCiAJCQkgLyogb2theSwgYWxsb3dlZCB1c2Ug b2YgaGFzaGNoYXIoKSAqLyA7CiAJCWVsc2UgaWYgKChmdW5jaWQgPT0gRl9IQVNIVkFSTEVO QSB8fCBmdW5jaWQgPT0gRl9IQVNIVkFSTEVOQUVYVEVOREVEKSAmJgotCQkJCSBhcmd0eXBl ID09IEJZVEVBT0lEKQorCQkJCSAoYXJndHlwZSA9PSBCWVRFQU9JRCB8fCBhcmd0eXBlID09 IFBHX0VOQ1JZUFRFRF9ERVRPSUQpKQogCQkJIC8qIG9rYXksIGFsbG93ZWQgdXNlIG9mIGhh c2h2YXJsZW5hKCkgKi8gOwogCQllbHNlCiAJCQlyZXN1bHQgPSBmYWxzZTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290cGFyc2UueSBiL3NyYy9iYWNrZW5kL2Jv b3RzdHJhcC9ib290cGFyc2UueQppbmRleCAzYzljMWRhMDIxNi4uNDM4ZWQ2ZTFjZmUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290cGFyc2UueQorKysgYi9zcmMv YmFja2VuZC9ib290c3RyYXAvYm9vdHBhcnNlLnkKQEAgLTIyNiw2ICsyMjYsNyBAQCBCb290 X0NyZWF0ZVN0bXQ6CiAJCQkJCQkJCQkJCQkJICBCT09UU1RSQVBfU1VQRVJVU0VSSUQsCiAJ CQkJCQkJCQkJCQkJICBIRUFQX1RBQkxFX0FNX09JRCwKIAkJCQkJCQkJCQkJCQkgIHR1cGRl c2MsCisJCQkJCQkJCQkJCQkJICBOVUxMLAogCQkJCQkJCQkJCQkJCSAgTklMLAogCQkJCQkJ CQkJCQkJCSAgUkVMS0lORF9SRUxBVElPTiwKIAkJCQkJCQkJCQkJCQkgIFJFTFBFUlNJU1RF TkNFX1BFUk1BTkVOVCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hr LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDdhYmYzYzJhNzRhLi5j NGZhMWI0OGU5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC01MSw2ICs1MSw4IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3MuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVy a2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfZGVmYXVsdF9hY2wuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVpZ25f ZGF0YV93cmFwcGVyLmgiCkBAIC0yNTYsNiArMjU4LDEyIEBAIHJlc3RyaWN0X2FuZF9jaGVj a19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFs bF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCQl3aG9sZV9tYXNrID0gQUNM X0FMTF9SSUdIVFNfU0VRVUVOQ0U7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgor CQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX0NFSzsKKwkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9DTUs6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfQ01LOworCQkJ YnJlYWs7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJd2hvbGVfbWFzayA9IEFDTF9B TExfUklHSFRTX0RBVEFCQVNFOwogCQkJYnJlYWs7CkBAIC00ODIsNiArNDkwLDE0IEBAIEV4 ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19TRVFVRU5DRTsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJp bnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXF1ZW5jZSIpOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNf Q0VLOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisJCWNhc2Ug T0JKRUNUX0NNSzoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfQ01LOwor CQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIGNvbHVtbiBtYXN0ZXIga2V5Iik7CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFU QUJBU0U6CiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX0RBVEFCQVNFOwog CQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIGRhdGFiYXNlIik7CkBAIC02MDYsNiArNjIyLDEyIEBAIEV4ZWNHcmFudFN0bXRfb2lk cyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCQlF eGVjR3JhbnRfUmVsYXRpb24oaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NF SzoKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQs IEFDTF9BTExfUklHSFRTX0NFSywgTlVMTCk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf Q01LOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgQ29sdW1uTWFzdGVyS2V5UmVsYXRp b25JZCwgQUNMX0FMTF9SSUdIVFNfQ01LLCBOVUxMKTsKKwkJCWJyZWFrOwogCQljYXNlIE9C SkVDVF9EQVRBQkFTRToKIAkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIERhdGFiYXNlUmVs YXRpb25JZCwgQUNMX0FMTF9SSUdIVFNfREFUQUJBU0UsIE5VTEwpOwogCQkJYnJlYWs7CkBA IC02ODUsNiArNzA3LDI2IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJb2JqZWN0cyA9IGxhcHBl bmRfb2lkKG9iamVjdHMsIHJlbE9pZCk7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfQ0VLOgorCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlMaXN0CSAg ICpjZWtuYW1lID0gKExpc3QgKikgbGZpcnN0KGNlbGwpOworCQkJCU9pZAkJCW9pZDsKKwor CQkJCW9pZCA9IGdldF9jZWtfb2lkKGNla25hbWUsIGZhbHNlKTsKKwkJCQlvYmplY3RzID0g bGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9DTUs6CisJCQlmb3JlYWNoKGNlbGwsIG9iam5hbWVzKQorCQkJeworCQkJCUxpc3QJ ICAgKmNta25hbWUgPSAoTGlzdCAqKSBsZmlyc3QoY2VsbCk7CisJCQkJT2lkCQkJb2lkOwor CisJCQkJb2lkID0gZ2V0X2Nta19vaWQoY21rbmFtZSwgZmFsc2UpOworCQkJCW9iamVjdHMg PSBsYXBwZW5kX29pZChvYmplY3RzLCBvaWQpOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2Ug T0JKRUNUX0RBVEFCQVNFOgogCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKIAkJCXsKQEAg LTI3MDIsNiArMjc0NCwxMiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBP YmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJ CW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGFnZ3JlZ2F0ZSAl cyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJCW1zZyA9 IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9u IGtleSAlcyIpOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJ CW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBtYXN0 ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9O OgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29s bGF0aW9uICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4MDcsNiArMjg1NSw3IEBAIGFjbGNo ZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJ Y2FzZSBPQkpFQ1RfQU1QUk9DOgogCQkJCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCQkJ CWNhc2UgT0JKRUNUX0NBU1Q6CisJCQkJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCQkJCWNh c2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2Fz ZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTI4MzcsNiArMjg4NiwxMiBAQCBhY2xjaGVj a19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNh c2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBi ZSBvd25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9C SkVDVF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Yg Y29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBP QkpFQ1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9m IGNvbHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpF Q1RfQ09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVy IG9mIGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTQ3LDYgKzMwMDIsNyBA QCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRF OgogCQkJCQljYXNlIE9CSkVDVF9DQVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgog CQkJCQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJ CQkJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CkBAIC0zMDI4LDYgKzMwODQsMTAgQEAg cGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvYmplY3Rfb2lkLCBBdHRyTnVt YmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2Ug T0JKRUNUX1NFUVVFTkNFOgogCQkJcmV0dXJuIHBnX2NsYXNzX2FjbG1hc2sob2JqZWN0X29p ZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9DRUs6CisJCQlyZXR1cm4g b2JqZWN0X2FjbG1hc2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9s ZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlyZXR1cm4gb2JqZWN0 X2FjbG1hc2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlk LCBtYXNrLCBob3cpOwogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCXJldHVybiBvYmpl Y3RfYWNsbWFzayhEYXRhYmFzZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFz aywgaG93KTsKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jCmluZGV4IDZlOGY2YTU3MDUxLi5lZDJhMDFhMDhkYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9kZXBlbmRlbmN5LmMKQEAgLTMwLDcgKzMwLDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5j a2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1h c3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0 YWJhc2UuaCIKQEAgLTE0NDQsNiArMTQ0Nyw5IEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBpbnQgZmxhZ3MpCiAKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoK IAkJY2FzZSBDb2xsYXRpb25SZWxhdGlvbklkOgorCQljYXNlIENvbHVtbkVuY0tleVJlbGF0 aW9uSWQ6CisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCWNhc2UgQ29s dW1uTWFzdGVyS2V5UmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoK IAkJY2FzZSBMYW5ndWFnZVJlbGF0aW9uSWQ6CiAJCWNhc2UgT3BlcmF0b3JDbGFzc1JlbGF0 aW9uSWQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IGNjMzE5MDkwMTJkLi5iYzY4ZmM5YmYzZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9oZWFwLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX3RhYmxl LmgiCkBAIC00NTMsNyArNDU0LDcgQEAgaGVhcF9jcmVhdGUoY29uc3QgY2hhciAqcmVsbmFt ZSwKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIHZvaWQKLUNo ZWNrQXR0cmlidXRlTmFtZXNUeXBlcyhUdXBsZURlc2MgdHVwZGVzYywgY2hhciByZWxraW5k LAorQ2hlY2tBdHRyaWJ1dGVOYW1lc1R5cGVzKFR1cGxlRGVzYyB0dXBkZXNjLCBjb25zdCBG b3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZSB0dXBkZXNjX2V4dHJhW10sIGNoYXIgcmVsa2lu ZCwKIAkJCQkJCSBpbnQgZmxhZ3MpCiB7CiAJaW50CQkJaTsKQEAgLTUxMiw3ICs1MTMsMTQg QEAgQ2hlY2tBdHRyaWJ1dGVOYW1lc1R5cGVzKFR1cGxlRGVzYyB0dXBkZXNjLCBjaGFyIHJl bGtpbmQsCiAJCQkJCQkgICBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHR0eXBpZCwK IAkJCQkJCSAgIFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGNvbGxhdGlvbiwKIAkJ CQkJCSAgIE5JTCwgLyogYXNzdW1lIHdlJ3JlIGNyZWF0aW5nIGEgbmV3IHJvd3R5cGUgKi8K LQkJCQkJCSAgIGZsYWdzKTsKKwkJCQkJCSAgIGZsYWdzIHwKKworCQkvKgorCQkgKiBBbGxv dyBlbmNyeXB0ZWQgdHlwZXMgaWYgQ0VLIGhhcyBiZWVuIHByb3ZpZGVkLCB3aGljaCBtZWFu cyB0aGlzCisJCSAqIHR5cGUgaGFzIGJlZW4gaW50ZXJuYWxseSBnZW5lcmF0ZWQuICBXZSBk b24ndCB3YW50IHRvIGFsbG93CisJCSAqIGV4cGxpY2l0bHkgdXNpbmcgdGhlc2UgdHlwZXMu CisJCSAqLworCQkJCQkJICAgKHR1cGRlc2NfZXh0cmEgJiYgIXR1cGRlc2NfZXh0cmFbaV0u YXR0Y2VrLmlzbnVsbCA/IENIS0FUWVBFX0VOQ1JZUFRFRCA6IDApKTsKIAl9CiB9CiAKQEAg LTY1Nyw2ICs2NjUsMjEgQEAgQ2hlY2tBdHRyaWJ1dGVUeXBlKGNvbnN0IGNoYXIgKmF0dG5h bWUsCiAJCQkJCQkgICBmbGFncyk7CiAJfQogCisJLyoKKwkgKiBFbmNyeXB0ZWQgdHlwZXMg YXJlIG5vdCBhbGxvd2VkIGV4cGxpY3RseSBhcyBjb2x1bW4gdHlwZXMuICBNb3N0CisJICog Y2FsbGVycyBydW4gdGhpcyBjaGVjayBiZWZvcmUgdHJhbnNmb3JtaW5nIHRoZSBjb2x1bW4g ZGVmaW5pdGlvbiB0byB1c2UKKwkgKiB0aGUgZW5jcnlwdGVkIHR5cGVzLiAgU29tZSBjYWxs ZXJzIGNhbGwgaXQgYWdhaW4gYWZ0ZXI7IHRob3NlIHNob3VsZAorCSAqIHNldCB0aGUgQ0hL QVRZUEVfRU5DUllQVEVEIHRvIGxldCB0aGlzIHBhc3MuCisJICovCisJaWYgKHR5cGVfaXNf ZW5jcnlwdGVkKGF0dHR5cGlkKSAmJiAhKGZsYWdzICYgQ0hLQVRZUEVfRU5DUllQVEVEKSkK Kwl7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RB QkxFX0RFRklOSVRJT04pLAorCQkJCSBlcnJiYWNrdHJhY2UoKSwKKwkJCQkgZXJybXNnKCJj b2x1bW4gXCIlc1wiIGhhcyBpbnRlcm5hbCB0eXBlICVzIiwKKwkJCQkJCWF0dG5hbWUsIGZv cm1hdF90eXBlX2JlKGF0dHR5cGlkKSkpKTsKKwl9CisKIAkvKgogCSAqIFRoaXMgbWlnaHQg bm90IGJlIHN0cmljdGx5IGludmFsaWQgcGVyIFNRTCBzdGFuZGFyZCwgYnV0IGl0IGlzIHBy ZXR0eQogCSAqIHVzZWxlc3MsIGFuZCBpdCBjYW5ub3QgYmUgZHVtcGVkLCBzbyB3ZSBtdXN0 IGRpc2FsbG93IGl0LgpAQCAtNzYzLDExICs3ODYsMjMgQEAgSW5zZXJ0UGdBdHRyaWJ1dGVU dXBsZXMoUmVsYXRpb24gcGdfYXR0cmlidXRlX3JlbCwKIAogCQkJc2xvdFtzbG90Q291bnRd LT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dG9wdGlvbnMgLSAxXSA9IGF0dHJz X2V4dHJhLT5hdHRvcHRpb25zLnZhbHVlOwogCQkJc2xvdFtzbG90Q291bnRdLT50dHNfaXNu dWxsW0FudW1fcGdfYXR0cmlidXRlX2F0dG9wdGlvbnMgLSAxXSA9IGF0dHJzX2V4dHJhLT5h dHRvcHRpb25zLmlzbnVsbDsKKworCQkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0Fu dW1fcGdfYXR0cmlidXRlX2F0dGNlayAtIDFdID0gYXR0cnNfZXh0cmEtPmF0dGNlay52YWx1 ZTsKKwkJCXNsb3Rbc2xvdENvdW50XS0+dHRzX2lzbnVsbFtBbnVtX3BnX2F0dHJpYnV0ZV9h dHRjZWsgLSAxXSA9IGF0dHJzX2V4dHJhLT5hdHRjZWsuaXNudWxsOworCisJCQlzbG90W3Ns b3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0dXNlcnR5cGlkIC0g MV0gPSBhdHRyc19leHRyYS0+YXR0dXNlcnR5cGlkLnZhbHVlOworCQkJc2xvdFtzbG90Q291 bnRdLT50dHNfaXNudWxsW0FudW1fcGdfYXR0cmlidXRlX2F0dHVzZXJ0eXBpZCAtIDFdID0g YXR0cnNfZXh0cmEtPmF0dHVzZXJ0eXBpZC5pc251bGw7CisKKwkJCXNsb3Rbc2xvdENvdW50 XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2VydHlwbW9kIC0gMV0gPSBh dHRyc19leHRyYS0+YXR0dXNlcnR5cG1vZC52YWx1ZTsKKwkJCXNsb3Rbc2xvdENvdW50XS0+ dHRzX2lzbnVsbFtBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2VydHlwbW9kIC0gMV0gPSBhdHRy c19leHRyYS0+YXR0dXNlcnR5cG1vZC5pc251bGw7CiAJCX0KIAkJZWxzZQogCQl7CiAJCQlz bG90W3Nsb3RDb3VudF0tPnR0c19pc251bGxbQW51bV9wZ19hdHRyaWJ1dGVfYXR0c3RhdHRh cmdldCAtIDFdID0gdHJ1ZTsKIAkJCXNsb3Rbc2xvdENvdW50XS0+dHRzX2lzbnVsbFtBbnVt X3BnX2F0dHJpYnV0ZV9hdHRvcHRpb25zIC0gMV0gPSB0cnVlOworCQkJc2xvdFtzbG90Q291 bnRdLT50dHNfaXNudWxsW0FudW1fcGdfYXR0cmlidXRlX2F0dGNlayAtIDFdID0gdHJ1ZTsK KwkJCXNsb3Rbc2xvdENvdW50XS0+dHRzX2lzbnVsbFtBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1 c2VydHlwaWQgLSAxXSA9IHRydWU7CisJCQlzbG90W3Nsb3RDb3VudF0tPnR0c19pc251bGxb QW51bV9wZ19hdHRyaWJ1dGVfYXR0dXNlcnR5cG1vZCAtIDFdID0gdHJ1ZTsKIAkJfQogCiAJ CS8qCkBAIC04MTksNiArODU0LDcgQEAgSW5zZXJ0UGdBdHRyaWJ1dGVUdXBsZXMoUmVsYXRp b24gcGdfYXR0cmlidXRlX3JlbCwKIHN0YXRpYyB2b2lkCiBBZGROZXdBdHRyaWJ1dGVUdXBs ZXMoT2lkIG5ld19yZWxfb2lkLAogCQkJCQkgIFR1cGxlRGVzYyB0dXBkZXNjLAorCQkJCQkg IGNvbnN0IEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlIHR1cGRlc2NfZXh0cmFbXSwKIAkJ CQkJICBjaGFyIHJlbGtpbmQpCiB7CiAJUmVsYXRpb24JcmVsOwpAQCAtODM0LDcgKzg3MCw3 IEBAIEFkZE5ld0F0dHJpYnV0ZVR1cGxlcyhPaWQgbmV3X3JlbF9vaWQsCiAKIAlpbmRzdGF0 ZSA9IENhdGFsb2dPcGVuSW5kZXhlcyhyZWwpOwogCi0JSW5zZXJ0UGdBdHRyaWJ1dGVUdXBs ZXMocmVsLCB0dXBkZXNjLCBuZXdfcmVsX29pZCwgTlVMTCwgaW5kc3RhdGUpOworCUluc2Vy dFBnQXR0cmlidXRlVHVwbGVzKHJlbCwgdHVwZGVzYywgbmV3X3JlbF9vaWQsIHR1cGRlc2Nf ZXh0cmEsIGluZHN0YXRlKTsKIAogCS8qIGFkZCBkZXBlbmRlbmNpZXMgb24gdGhlaXIgZGF0 YXR5cGVzIGFuZCBjb2xsYXRpb25zICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBuYXR0czsg aSsrKQpAQCAtODUzLDYgKzg4OSwyMCBAQCBBZGROZXdBdHRyaWJ1dGVUdXBsZXMoT2lkIG5l d19yZWxfb2lkLAogCQkJCQkJCSB0dXBkZXNjLT5hdHRyc1tpXS5hdHRjb2xsYXRpb24pOwog CQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZ X05PUk1BTCk7CiAJCX0KKworCQlpZiAodHVwZGVzY19leHRyYSAmJiAhdHVwZGVzY19leHRy YVtpXS5hdHRjZWsuaXNudWxsKQorCQl7CisJCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5j ZWQsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQsCisJCQkJCQkJIERhdHVtR2V0T2JqZWN0SWQo dHVwZGVzY19leHRyYVtpXS5hdHRjZWsudmFsdWUpKTsKKwkJCXJlY29yZERlcGVuZGVuY3lP bigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCQl9CisKKwkJ aWYgKHR1cGRlc2NfZXh0cmEgJiYgIXR1cGRlc2NfZXh0cmFbaV0uYXR0dXNlcnR5cGlkLmlz bnVsbCkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBUeXBlUmVsYXRp b25JZCwKKwkJCQkJCQkgRGF0dW1HZXRPYmplY3RJZCh0dXBkZXNjX2V4dHJhW2ldLmF0dHVz ZXJ0eXBpZC52YWx1ZSkpOworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZl cmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCX0KIAl9CiAKIAkvKgpAQCAtMTExMCw2 ICsxMTYwLDcgQEAgaGVhcF9jcmVhdGVfd2l0aF9jYXRhbG9nKGNvbnN0IGNoYXIgKnJlbG5h bWUsCiAJCQkJCQkgT2lkIG93bmVyaWQsCiAJCQkJCQkgT2lkIGFjY2Vzc210ZCwKIAkJCQkJ CSBUdXBsZURlc2MgdHVwZGVzYywKKwkJCQkJCSBjb25zdCBGb3JtRXh0cmFEYXRhX3BnX2F0 dHJpYnV0ZSB0dXBkZXNjX2V4dHJhW10sCiAJCQkJCQkgTGlzdCAqY29va2VkX2NvbnN0cmFp bnRzLAogCQkJCQkJIGNoYXIgcmVsa2luZCwKIAkJCQkJCSBjaGFyIHJlbHBlcnNpc3RlbmNl LApAQCAtMTE0Nyw3ICsxMTk4LDcgQEAgaGVhcF9jcmVhdGVfd2l0aF9jYXRhbG9nKGNvbnN0 IGNoYXIgKnJlbG5hbWUsCiAJICogYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgaXMgb24sIGFs bG93IEFOWUFSUkFZIHRvIGJlIHVzZWQ7IHRoaXMgaXMgYQogCSAqIGhhY2sgdG8gYWxsb3cg Y3JlYXRpbmcgcGdfc3RhdGlzdGljIGFuZCBjbG9uaW5nIGl0IGR1cmluZyBWQUNVVU0gRlVM TC4KIAkgKi8KLQlDaGVja0F0dHJpYnV0ZU5hbWVzVHlwZXModHVwZGVzYywgcmVsa2luZCwK KwlDaGVja0F0dHJpYnV0ZU5hbWVzVHlwZXModHVwZGVzYywgdHVwZGVzY19leHRyYSwgcmVs a2luZCwKIAkJCQkJCQkgYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgPyBDSEtBVFlQRV9BTllB UlJBWSA6IDApOwogCiAJLyoKQEAgLTE0MTQsNyArMTQ2NSw3IEBAIGhlYXBfY3JlYXRlX3dp dGhfY2F0YWxvZyhjb25zdCBjaGFyICpyZWxuYW1lLAogCS8qCiAJICogbm93IGFkZCB0dXBs ZXMgdG8gcGdfYXR0cmlidXRlIGZvciB0aGUgYXR0cmlidXRlcyBpbiBvdXIgbmV3IHJlbGF0 aW9uLgogCSAqLwotCUFkZE5ld0F0dHJpYnV0ZVR1cGxlcyhyZWxpZCwgbmV3X3JlbF9kZXNj LT5yZF9hdHQsIHJlbGtpbmQpOworCUFkZE5ld0F0dHJpYnV0ZVR1cGxlcyhyZWxpZCwgbmV3 X3JlbF9kZXNjLT5yZF9hdHQsIHR1cGRlc2NfZXh0cmEsIHJlbGtpbmQpOwogCiAJLyoKIAkg KiBNYWtlIGEgZGVwZW5kZW5jeSBsaW5rIHRvIGZvcmNlIHRoZSByZWxhdGlvbiB0byBiZSBk ZWxldGVkIGlmIGl0cwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDliN2VmNzFkNmZlLi45YTAz MzI4ZTVkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtNTI5LDYgKzUyOSwxMCBAQCBBcHBl bmRBdHRyaWJ1dGVUdXBsZXMoUmVsYXRpb24gaW5kZXhSZWxhdGlvbiwgY29uc3QgRGF0dW0g KmF0dG9wdHMsIGNvbnN0IE51bGxhYgogCQkJCWF0dHJzX2V4dHJhW2ldLmF0dHN0YXR0YXJn ZXQgPSBzdGF0dGFyZ2V0c1tpXTsKIAkJCWVsc2UKIAkJCQlhdHRyc19leHRyYVtpXS5hdHRz dGF0dGFyZ2V0LmlzbnVsbCA9IHRydWU7CisKKwkJCWF0dHJzX2V4dHJhW2ldLmF0dGNlay5p c251bGwgPSB0cnVlOworCQkJYXR0cnNfZXh0cmFbaV0uYXR0dXNlcnR5cGlkLmlzbnVsbCA9 IHRydWU7CisJCQlhdHRyc19leHRyYVtpXS5hdHR1c2VydHlwbW9kLmlzbnVsbCA9IHRydWU7 CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IDQ1NDhhOTE3MjM0 Li44MTAxOGY3NGY3YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0yNyw2ICsy Nyw4IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19kYXRhYmFzZS5oIgpAQCAtMjI5OCw2ICsyMzAwLDI1NCBAQCBPcGZhbWlseUlzVmlzaWJs ZUV4dChPaWQgb3BmaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZpc2libGU7CiB9 CiAKKy8qCisgKiBnZXRfY2VrX29pZCAtIGZpbmQgYSBDRUsgYnkgcG9zc2libHkgcXVhbGlm aWVkIG5hbWUKKyAqLworT2lkCitnZXRfY2VrX29pZChMaXN0ICpuYW1lcywgYm9vbCBtaXNz aW5nX29rKQoreworCWNoYXIJICAgKnNjaGVtYW5hbWU7CisJY2hhcgkgICAqY2VrbmFtZTsK KwlPaWQJCQluYW1lc3BhY2VJZDsKKwlPaWQJCQljZWtvaWQgPSBJbnZhbGlkT2lkOworCUxp c3RDZWxsICAgKmw7CisKKwkvKiBkZWNvbnN0cnVjdCB0aGUgbmFtZSBsaXN0ICovCisJRGVj b25zdHJ1Y3RRdWFsaWZpZWROYW1lKG5hbWVzLCAmc2NoZW1hbmFtZSwgJmNla25hbWUpOwor CisJaWYgKHNjaGVtYW5hbWUpCisJeworCQkvKiB1c2UgZXhhY3Qgc2NoZW1hIGdpdmVuICov CisJCW5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2Uoc2NoZW1hbmFtZSwg bWlzc2luZ19vayk7CisJCWlmIChtaXNzaW5nX29rICYmICFPaWRJc1ZhbGlkKG5hbWVzcGFj ZUlkKSkKKwkJCWNla29pZCA9IEludmFsaWRPaWQ7CisJCWVsc2UKKwkJCWNla29pZCA9IEdl dFN5c0NhY2hlT2lkMihDRUtOQU1FTlNQLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJCQkJ CQkJCQkgUG9pbnRlckdldERhdHVtKGNla25hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0 RGF0dW0obmFtZXNwYWNlSWQpKTsKKwl9CisJZWxzZQorCXsKKwkJLyogc2VhcmNoIGZvciBp dCBpbiBzZWFyY2ggcGF0aCAqLworCQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJ Zm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQluYW1lc3BhY2VJZCA9IGxm aXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSBteVRlbXBOYW1lc3BhY2Up CisJCQkJY29udGludWU7CQkvKiBkbyBub3QgbG9vayBpbiB0ZW1wIG5hbWVzcGFjZSAqLwor CisJCQljZWtvaWQgPSBHZXRTeXNDYWNoZU9pZDIoQ0VLTkFNRU5TUCwgQW51bV9wZ19jb2xl bmNrZXlfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShjZWtuYW1lKSwKKwkJCQkJ CQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCQlpZiAoT2lkSXNWYWxp ZChjZWtvaWQpKQorCQkJCXJldHVybiBjZWtvaWQ7CisJCX0KKwl9CisKKwkvKiBOb3QgZm91 bmQgaW4gcGF0aCAqLworCWlmICghT2lkSXNWYWxpZChjZWtvaWQpICYmICFtaXNzaW5nX29r KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09C SkVDVCksCisJCQkJIGVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwlyZXR1 cm4gY2Vrb2lkOworfQorCisvKgorICogQ0VLSXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdo ZXRoZXIgYSBDRUsgKGlkZW50aWZpZWQgYnkgT0lEKSBpcyB2aXNpYmxlIGluIHRoZQorICoJ CWN1cnJlbnQgc2VhcmNoIHBhdGguICBWaXNpYmxlIG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBi eSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIENFSyBuYW1lIi4KKyAqLwor Ym9vbAorQ0VLSXNWaXNpYmxlKE9pZCBjZWtpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZv cm1fcGdfY29sZW5ja2V5IGZvcm07CisJT2lkCQkJbmFtZXNwYWNlOworCWJvb2wJCXZpc2li bGU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLT0lELCBPYmplY3RJZEdldERhdHVt KGNla2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUiLCBj ZWtpZCk7CisJZm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCk7CisK KwlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkvKgorCSAqIFF1aWNrIGNoZWNrOiBp ZiBpdCBhaW4ndCBpbiB0aGUgcGF0aCBhdCBhbGwsIGl0IGFpbid0IHZpc2libGUuIEl0ZW1z IGluCisJICogdGhlIHN5c3RlbSBuYW1lc3BhY2UgYXJlIHN1cmVseSBpbiB0aGUgcGF0aCBh bmQgc28gd2UgbmVlZG4ndCBldmVuIGRvCisJICogbGlzdF9tZW1iZXJfb2lkKCkgZm9yIHRo ZW0uCisJICovCisJbmFtZXNwYWNlID0gZm9ybS0+Y2VrbmFtZXNwYWNlOworCWlmIChuYW1l c3BhY2UgIT0gUEdfQ0FUQUxPR19OQU1FU1BBQ0UgJiYKKwkJIWxpc3RfbWVtYmVyX29pZChh Y3RpdmVTZWFyY2hQYXRoLCBuYW1lc3BhY2UpKQorCQl2aXNpYmxlID0gZmFsc2U7CisJZWxz ZQorCXsKKwkJLyoKKwkJICogSWYgaXQgaXMgaW4gdGhlIHBhdGgsIGl0IG1pZ2h0IHN0aWxs IG5vdCBiZSB2aXNpYmxlOyBpdCBjb3VsZCBiZQorCQkgKiBoaWRkZW4gYnkgYW5vdGhlciBw YXJzZXIgb2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkgKiB3 ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgQ0VLcy4KKwkJICovCisJ CWNoYXIJICAgKm5hbWUgPSBOYW1lU3RyKGZvcm0tPmNla25hbWUpOworCQlMaXN0Q2VsbCAg ICpsOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQ YXRoKQorCQl7CisJCQlPaWQJCQluYW1lc3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJ CWlmIChuYW1lc3BhY2VJZCA9PSBteVRlbXBOYW1lc3BhY2UpCisJCQkJY29udGludWU7CQkv KiBkbyBub3QgbG9vayBpbiB0ZW1wIG5hbWVzcGFjZSAqLworCisJCQlpZiAobmFtZXNwYWNl SWQgPT0gbmFtZXNwYWNlKQorCQkJeworCQkJCS8qIEZvdW5kIGl0IGZpcnN0IGluIHBhdGgg Ki8KKwkJCQl2aXNpYmxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChTZWFy Y2hTeXNDYWNoZUV4aXN0czIoQ0VLTkFNRU5TUCwKKwkJCQkJCQkJCSAgUG9pbnRlckdldERh dHVtKG5hbWUpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSkp CisJCQl7CisJCQkJLyogRm91bmQgc29tZXRoaW5nIGVsc2UgZmlyc3QgaW4gcGF0aCAqLwor CQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisK KwlyZXR1cm4gdmlzaWJsZTsKK30KKworLyoKKyAqIGdldF9jbWtfb2lkIC0gZmluZCBhIENN SyBieSBwb3NzaWJseSBxdWFsaWZpZWQgbmFtZQorICovCitPaWQKK2dldF9jbWtfb2lkKExp c3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spCit7CisJY2hhcgkgICAqc2NoZW1hbmFtZTsK KwljaGFyCSAgICpjbWtuYW1lOworCU9pZAkJCW5hbWVzcGFjZUlkOworCU9pZAkJCWNta29p ZCA9IEludmFsaWRPaWQ7CisJTGlzdENlbGwgICAqbDsKKworCS8qIGRlY29uc3RydWN0IHRo ZSBuYW1lIGxpc3QgKi8KKwlEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUobmFtZXMsICZzY2hl bWFuYW1lLCAmY21rbmFtZSk7CisKKwlpZiAoc2NoZW1hbmFtZSkKKwl7CisJCS8qIHVzZSBl eGFjdCBzY2hlbWEgZ2l2ZW4gKi8KKwkJbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5h bWVzcGFjZShzY2hlbWFuYW1lLCBtaXNzaW5nX29rKTsKKwkJaWYgKG1pc3Npbmdfb2sgJiYg IU9pZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQkJY21rb2lkID0gSW52YWxpZE9pZDsKKwkJ ZWxzZQorCQkJY21rb2lkID0gR2V0U3lzQ2FjaGVPaWQyKENNS05BTUVOU1AsIEFudW1fcGdf Y29sbWFzdGVya2V5X29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0oY21rbmFtZSks CisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCX0KKwllbHNl CisJeworCQkvKiBzZWFyY2ggZm9yIGl0IGluIHNlYXJjaCBwYXRoICovCisJCXJlY29tcHV0 ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoKGwsIGFjdGl2ZVNlYXJjaFBhdGgpCisJ CXsKKwkJCW5hbWVzcGFjZUlkID0gbGZpcnN0X29pZChsKTsKKworCQkJaWYgKG5hbWVzcGFj ZUlkID09IG15VGVtcE5hbWVzcGFjZSkKKwkJCQljb250aW51ZTsJCS8qIGRvIG5vdCBsb29r IGluIHRlbXAgbmFtZXNwYWNlICovCisKKwkJCWNta29pZCA9IEdldFN5c0NhY2hlT2lkMihD TUtOQU1FTlNQLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsCisJCQkJCQkJCQkgUG9pbnRl ckdldERhdHVtKGNta25hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNw YWNlSWQpKTsKKwkJCWlmIChPaWRJc1ZhbGlkKGNta29pZCkpCisJCQkJcmV0dXJuIGNta29p ZDsKKwkJfQorCX0KKworCS8qIE5vdCBmb3VuZCBpbiBwYXRoICovCisJaWYgKCFPaWRJc1Zh bGlkKGNta29pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4g bWFzdGVyIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyhuYW1lcykpKSk7CisJcmV0dXJuIGNta29pZDsKK30KKworLyoKKyAqIENNS0lzVmlz aWJsZQorICoJCURldGVybWluZSB3aGV0aGVyIGEgQ01LIChpZGVudGlmaWVkIGJ5IE9JRCkg aXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiAgVmlzaWJsZSBt ZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1bnF1YWxp ZmllZCBDTUsgbmFtZSIuCisgKi8KK2Jvb2wKK0NNS0lzVmlzaWJsZShPaWQgY21raWQpCit7 CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX2NvbG1hc3RlcmtleSBmb3JtOworCU9pZAkJ CW5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUx KENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29s dW1uIG1hc3RlciBrZXkgJXUiLCBjbWtpZCk7CisJZm9ybSA9IChGb3JtX3BnX2NvbG1hc3Rl cmtleSkgR0VUU1RSVUNUKHR1cCk7CisKKwlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisK KwkvKgorCSAqIFF1aWNrIGNoZWNrOiBpZiBpdCBhaW4ndCBpbiB0aGUgcGF0aCBhdCBhbGws IGl0IGFpbid0IHZpc2libGUuIEl0ZW1zIGluCisJICogdGhlIHN5c3RlbSBuYW1lc3BhY2Ug YXJlIHN1cmVseSBpbiB0aGUgcGF0aCBhbmQgc28gd2UgbmVlZG4ndCBldmVuIGRvCisJICog bGlzdF9tZW1iZXJfb2lkKCkgZm9yIHRoZW0uCisJICovCisJbmFtZXNwYWNlID0gZm9ybS0+ Y21rbmFtZXNwYWNlOworCWlmIChuYW1lc3BhY2UgIT0gUEdfQ0FUQUxPR19OQU1FU1BBQ0Ug JiYKKwkJIWxpc3RfbWVtYmVyX29pZChhY3RpdmVTZWFyY2hQYXRoLCBuYW1lc3BhY2UpKQor CQl2aXNpYmxlID0gZmFsc2U7CisJZWxzZQorCXsKKwkJLyoKKwkJICogSWYgaXQgaXMgaW4g dGhlIHBhdGgsIGl0IG1pZ2h0IHN0aWxsIG5vdCBiZSB2aXNpYmxlOyBpdCBjb3VsZCBiZQor CQkgKiBoaWRkZW4gYnkgYW5vdGhlciBwYXJzZXIgb2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVy IGluIHRoZSBwYXRoLiBTbworCQkgKiB3ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29u ZmxpY3RpbmcgQ01Lcy4KKwkJICovCisJCWNoYXIJICAgKm5hbWUgPSBOYW1lU3RyKGZvcm0t PmNta25hbWUpOworCQlMaXN0Q2VsbCAgICpsOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJ Zm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlPaWQJCQluYW1lc3BhY2VJ ZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSBteVRlbXBOYW1l c3BhY2UpCisJCQkJY29udGludWU7CQkvKiBkbyBub3QgbG9vayBpbiB0ZW1wIG5hbWVzcGFj ZSAqLworCisJCQlpZiAobmFtZXNwYWNlSWQgPT0gbmFtZXNwYWNlKQorCQkJeworCQkJCS8q IEZvdW5kIGl0IGZpcnN0IGluIHBhdGggKi8KKwkJCQl2aXNpYmxlID0gdHJ1ZTsKKwkJCQli cmVhazsKKwkJCX0KKwkJCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoQ01LTkFNRU5TUCwK KwkJCQkJCQkJCSAgUG9pbnRlckdldERhdHVtKG5hbWUpLAorCQkJCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKG5hbWVzcGFjZUlkKSkpCisJCQl7CisJCQkJLyogRm91bmQgc29tZXRoaW5n IGVsc2UgZmlyc3QgaW4gcGF0aCAqLworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmlzaWJsZTsKK30KKwogLyoKICAq IGxvb2t1cF9jb2xsYXRpb24KICAqCQlJZiB0aGVyZSdzIGEgY29sbGF0aW9uIG9mIHRoZSBn aXZlbiBuYW1lL25hbWVzcGFjZSwgYW5kIGl0IHdvcmtzCkBAIC00OTUwLDYgKzUyMDAsMjgg QEAgcGdfb3BmYW1pbHlfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVS Tl9CT09MKHJlc3VsdCk7CiB9CiAKK0RhdHVtCitwZ19jZWtfaXNfdmlzaWJsZShQR19GVU5D VElPTl9BUkdTKQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisKKwlpZiAo IVNlYXJjaFN5c0NhY2hlRXhpc3RzMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0ob2lkKSkp CisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChDRUtJc1Zpc2libGUo b2lkKSk7Cit9CisKK0RhdHVtCitwZ19jbWtfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdT KQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisKKwlpZiAoIVNlYXJjaFN5 c0NhY2hlRXhpc3RzMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0ob2lkKSkpCisJCVBHX1JF VFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChDTUtJc1Zpc2libGUob2lkKSk7Cit9 CisKIERhdHVtCiBwZ19jb2xsYXRpb25faXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQog ewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA3YjUzNmFjNmZkZS4u ZGMzYmFhMzA0Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC0y OCw3ICsyOCwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nh c3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0 aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZl cnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCkBAIC0xODgsNiAr MTkxLDQ4IEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVy dHlbXSA9CiAJCU9CSkVDVF9DT0xMQVRJT04sCiAJCXRydWUKIAl9LAorCXsKKwkJImNvbHVt biBlbmNyeXB0aW9uIGtleSIsCisJCUNvbHVtbkVuY0tleVJlbGF0aW9uSWQsCisJCUNvbHVt bkVuY0tleU9pZEluZGV4SWQsCisJCUNFS09JRCwKKwkJQ0VLTkFNRU5TUCwKKwkJQW51bV9w Z19jb2xlbmNrZXlfb2lkLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lLAorCQlBbnVt X3BnX2NvbGVuY2tleV9jZWtuYW1lc3BhY2UsCisJCUFudW1fcGdfY29sZW5ja2V5X2Nla293 bmVyLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWthY2wsCisJCU9CSkVDVF9DRUssCisJCXRy dWUKKwl9LAorCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiwKKwkJQ29sdW1u RW5jS2V5RGF0YVJlbGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLAor CQlDRUtEQVRBT0lELAorCQktMSwKKwkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJ SW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0 ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJ eworCQkiY29sdW1uIG1hc3RlciBrZXkiLAorCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklk LAorCQlDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQlDTUtPSUQsCisJCUNNS05BTUVO U1AsCisJCUFudW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJQW51bV9wZ19jb2xtYXN0ZXJr ZXlfY21rbmFtZSwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZXNwYWNlLAorCQlB bnVtX3BnX2NvbG1hc3RlcmtleV9jbWtvd25lciwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlf Y21rYWNsLAorCQlPQkpFQ1RfQ01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25zdHJhaW50 IiwKIAkJQ29uc3RyYWludFJlbGF0aW9uSWQsCkBAIC03MjEsNiArNzY2LDE1IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9uIiwgT0JK RUNUX0NPTExBVElPTgogCX0sCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IiwgT0JK RUNUX0NFSworCX0sCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLCBPQkpF Q1RfQ0VLREFUQQorCX0sCisJeworCQkiY29sdW1uIG1hc3RlciBrZXkiLCBPQkpFQ1RfQ01L CisJfSwKIAl7CiAJCSJ0YWJsZSBjb25zdHJhaW50IiwgT0JKRUNUX1RBQkNPTlNUUkFJTlQK IAl9LApAQCAtOTkxLDYgKzEwNDUsMTYgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5 cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0g MDsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJYWRkcmVz cy5jbGFzc0lkID0gQ29sdW1uRW5jS2V5UmVsYXRpb25JZDsKKwkJCQlhZGRyZXNzLm9iamVj dElkID0gZ2V0X2Nla19vaWQoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgbWlzc2luZ19vayk7 CisJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQkJYnJlYWs7CisJCQljYXNlIE9C SkVDVF9DTUs6CisJCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29sdW1uTWFzdGVyS2V5UmVsYXRp b25JZDsKKwkJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Nta19vaWQoY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSwgbWlzc2luZ19vayk7CisJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7 CisJCQkJYnJlYWs7CiAJCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCWNhc2UgT0JKRUNU X0VYVEVOU0lPTjoKIAkJCWNhc2UgT0JKRUNUX1RBQkxFU1BBQ0U6CkBAIC0xMDcwLDYgKzEx MzQsMjEgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAq b2JqZWN0LAogCQkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCQl9CiAJCQkJYnJl YWs7CisJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQkJCXsKKwkJCQkJTGlzdAkgICAqY2Vr bmFtZSA9IGxpbml0aWFsX25vZGUoTGlzdCwgY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJ CQkJCUxpc3QJICAgKmNta25hbWUgPSBsc2Vjb25kX25vZGUoTGlzdCwgY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSk7CisJCQkJCU9pZAkJCWNla2lkOworCQkJCQlPaWQJCQljbWtpZDsKKwor CQkJCQljZWtpZCA9IGdldF9jZWtfb2lkKGNla25hbWUsIG1pc3Npbmdfb2spOworCQkJCQlj bWtpZCA9IGdldF9jbWtfb2lkKGNta25hbWUsIG1pc3Npbmdfb2spOworCisJCQkJCWFkZHJl c3MuY2xhc3NJZCA9IENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkOworCQkJCQlhZGRyZXNz Lm9iamVjdElkID0gZ2V0X2Nla2RhdGFfb2lkKGNla2lkLCBjbWtpZCwgbWlzc2luZ19vayk7 CisJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOworCQkJCX0KKwkJCQlicmVhazsKIAkJ CWNhc2UgT0JKRUNUX1RSQU5TRk9STToKIAkJCQl7CiAJCQkJCVR5cGVOYW1lICAgKnR5cGVu YW1lID0gbGluaXRpYWxfbm9kZShUeXBlTmFtZSwgY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7 CkBAIC0yMjczLDYgKzIzNTIsOCBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJ T05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKIAkJY2FzZSBPQkpFQ1Rf Q09MVU1OOgogCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CisJCWNhc2UgT0JKRUNUX0NFSzoK KwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2Ug T0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CkBAIC0y MzI5LDYgKzI0MTAsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJH UykKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9BTU9QOgogCQljYXNlIE9CSkVDVF9BTVBS T0M6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbGlz dF9tYWtlMihuYW1lLCBhcmdzKTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9GVU5DVElP TjoKQEAgLTI0NTEsNiArMjUzMyw4IEBAIGNoZWNrX29iamVjdF9vd25lcnNoaXAoT2lkIHJv bGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFkZHJlc3MsCiAJCQkJ YWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAg IHN0clZhbChvYmplY3QpKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUs6CisJCWNh c2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVD VF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9PUENMQVNTOgpAQCAtMjU0Myw2ICsyNjI3 LDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9i anR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVD VF9BTU9QOgogCQljYXNlIE9CSkVDVF9BTVBST0M6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6 CiAJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJY2Fz ZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgpAQCAtMzAwNSw2ICszMDkwLDk0IEBA IGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9v bCBtaXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgQ29sdW1uRW5jS2V5 UmVsYXRpb25JZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29s ZW5ja2V5IGZvcm07CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKworCQkJCXR1cCA9IFNlYXJj aFN5c0NhY2hlMShDRUtPSUQsCisJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0 LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsK KwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIsCisJCQkJCQkJIG9iamVj dC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQlmb3JtID0gKEZvcm1f cGdfY29sZW5ja2V5KSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCS8qIFF1YWxpZnkgdGhlIG5h bWUgaWYgbm90IHZpc2libGUgaW4gc2VhcmNoIHBhdGggKi8KKwkJCQlpZiAoQ0VLSXNWaXNp YmxlKG9iamVjdC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNl CisJCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUoZm9ybS0+Y2VrbmFtZXNwYWNl KTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygiY29sdW1uIGVuY3J5cHRp b24ga2V5ICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3Bu YW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cihmb3JtLT5jZWtuYW1lKSkpOworCQkJCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCisJCWNhc2UgQ29sdW1u RW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlG b3JtX3BnX2NvbGVuY2tleWRhdGEgY2VrZGF0YTsKKwkJCQlPYmplY3RBZGRyZXNzIGNla2Fk ZHIsIGNta2FkZHI7CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLREFUQU9JRCwg T2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQll bG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24g a2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7 CisJCQkJfQorCisJCQkJY2VrZGF0YSA9IChGb3JtX3BnX2NvbGVuY2tleWRhdGEpIEdFVFNU UlVDVCh0dXApOworCisJCQkJT2JqZWN0QWRkcmVzc1NldChjZWthZGRyLCBDb2x1bW5FbmNL ZXlSZWxhdGlvbklkLCBjZWtkYXRhLT5ja2RjZWtpZCk7CisJCQkJT2JqZWN0QWRkcmVzc1Nl dChjbWthZGRyLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjZWtkYXRhLT5ja2RjbWtp ZCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlv biBrZXkgZGF0YSBvZiAlcyBmb3IgJXMiKSwKKwkJCQkJCQkJIGdldE9iamVjdERlc2NyaXB0 aW9uKCZjZWthZGRyLCBmYWxzZSksIGdldE9iamVjdERlc2NyaXB0aW9uKCZjbWthZGRyLCBm YWxzZSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9 CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOgorCQkJeworCQkJCUhlYXBU dXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xtYXN0ZXJrZXkgZm9ybTsKKwkJCQljaGFyCSAg ICpuc3BuYW1lOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwKKwkJCQkJ CQkJCSAgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJ CQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5 cHRpb24ga2V5ICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFr OworCQkJCX0KKworCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVD VCh0dXApOworCisJCQkJLyogUXVhbGlmeSB0aGUgbmFtZSBpZiBub3QgdmlzaWJsZSBpbiBz ZWFyY2ggcGF0aCAqLworCQkJCWlmIChDTUtJc1Zpc2libGUob2JqZWN0LT5vYmplY3RJZCkp CisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdldF9u YW1lc3BhY2VfbmFtZShmb3JtLT5jbWtuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3RyaW5n SW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gbWFzdGVyIGtleSAlcyIpLAorCQkJCQkJCQkgcXVv dGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQkJCU5hbWVT dHIoZm9ybS0+Y21rbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQljYXNlIENvbnN0cmFpbnRSZWxhdGlvbklkOgogCQkJewogCQkJ CUhlYXBUdXBsZQljb25UdXA7CkBAIC00NDAwLDYgKzQ1NzMsMTggQEAgZ2V0T2JqZWN0VHlw ZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5n X29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAiY29sbGF0aW9uIik7 CiAJCQlicmVhazsKIAorCQljYXNlIENvbHVtbkVuY0tleVJlbGF0aW9uSWQ6CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiKTsK KwkJCWJyZWFrOworCisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg ZGF0YSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklk OgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAiY29sdW1uIG1hc3RlciBr ZXkiKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ29uc3RyYWludFJlbGF0aW9uSWQ6CiAJCQln ZXRDb25zdHJhaW50VHlwZURlc2NyaXB0aW9uKCZidWZmZXIsIG9iamVjdC0+b2JqZWN0SWQs CiAJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwpAQCAtNDg2Myw2ICs1MDQ4LDEwOCBAQCBnZXRP YmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQli cmVhazsKIAkJCX0KIAorCQljYXNlIENvbHVtbkVuY0tleVJlbGF0aW9uSWQ6CisJCQl7CisJ CQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX2NvbGVuY2tleSBmb3JtOworCQkJCWNo YXIJICAgKnNjaGVtYTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQsIE9i amVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9 CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJ c2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZm9ybS0+Y2VrbmFtZXNwYWNl KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkgICBx dW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsCisJCQkJCQkJCQkJCQkJCQkJICBO YW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpu YW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHBzdHJkdXAoTmFtZVN0cihmb3JtLT5jZWtuYW1l KSkpOworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCisJ CWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJSGVhcFR1cGxl CXR1cDsKKwkJCQlGb3JtX3BnX2NvbGVuY2tleWRhdGEgZm9ybTsKKworCQkJCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShDRUtEQVRBT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2Jq ZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQl7CisJCQkJ CWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSAldSIsCisJCQkJCQkJIG9iamVj dC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3Bn X2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0dXApOworCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwKKwkJCQkJCQkJICJvZiAlcyBmb3IgJXMiLAorCQkJCQkJCQkgZ2V0T2JqZWN0 SWRlbnRpdHlQYXJ0cygmKE9iamVjdEFkZHJlc3Mpe0NvbHVtbkVuY0tleVJlbGF0aW9uSWQs IGZvcm0tPmNrZGNla2lkfSwgTlVMTCwgTlVMTCwgZmFsc2UpLAorCQkJCQkJCQkgZ2V0T2Jq ZWN0SWRlbnRpdHlQYXJ0cygmKE9iamVjdEFkZHJlc3Mpe0NvbHVtbk1hc3RlcktleVJlbGF0 aW9uSWQsIGZvcm0tPmNrZGNta2lkfSwgTlVMTCwgTlVMTCwgZmFsc2UpKTsKKworCQkJCWlm IChvYmpuYW1lKQorCQkJCXsKKwkJCQkJSGVhcFR1cGxlCXR1cDI7CisJCQkJCUZvcm1fcGdf Y29sZW5ja2V5IGZvcm0yOworCQkJCQljaGFyCSAgICpzY2hlbWE7CisKKwkJCQkJdHVwMiA9 IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oZm9ybS0+Y2tkY2Vr aWQpKTsKKwkJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cDIpKQorCQkJCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAl dSIsIGZvcm0tPmNrZGNla2lkKTsKKwkJCQkJZm9ybTIgPSAoRm9ybV9wZ19jb2xlbmNrZXkp IEdFVFNUUlVDVCh0dXAyKTsKKwkJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29y X3RlbXAoZm9ybTItPmNla25hbWVzcGFjZSk7CisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtl MihzY2hlbWEsIHBzdHJkdXAoTmFtZVN0cihmb3JtMi0+Y2VrbmFtZSkpKTsKKwkJCQkJUmVs ZWFzZVN5c0NhY2hlKHR1cDIpOworCQkJCX0KKwkJCQlpZiAob2JqYXJncykKKwkJCQl7CisJ CQkJCUhlYXBUdXBsZQl0dXAyOworCQkJCQlGb3JtX3BnX2NvbG1hc3RlcmtleSBmb3JtMjsK KwkJCQkJY2hhcgkgICAqc2NoZW1hOworCisJCQkJCXR1cDIgPSBTZWFyY2hTeXNDYWNoZTEo Q01LT0lELCBPYmplY3RJZEdldERhdHVtKGZvcm0tPmNrZGNta2lkKSk7CisJCQkJCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXAyKSkKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29r dXAgZmFpbGVkIGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsIGZvcm0tPmNrZGNta2lkKTsK KwkJCQkJZm9ybTIgPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXAyKTsK KwkJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZm9ybTItPmNta25h bWVzcGFjZSk7CisJCQkJCWlmIChvYmphcmdzKQorCQkJCQkJKm9iamFyZ3MgPSBsaXN0X21h a2UyKHNjaGVtYSwgcHN0cmR1cChOYW1lU3RyKGZvcm0yLT5jbWtuYW1lKSkpOworCQkJCQlS ZWxlYXNlU3lzQ2FjaGUodHVwMik7CisJCQkJfQorCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXAp OworCQkJCWJyZWFrOworCQkJfQorCisJCWNhc2UgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25J ZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29sbWFzdGVya2V5 IGZvcm07CisJCQkJY2hhcgkgICAqc2NoZW1hOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdf b2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1u IG1hc3RlciBrZXkgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJl YWs7CisJCQkJfQorCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVD VCh0dXApOworCQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKGZvcm0t PmNta25hbWVzcGFjZSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAor CQkJCQkJCQkJICAgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLAorCQkJCQkJ CQkJCQkJCQkJCSAgTmFtZVN0cihmb3JtLT5jbWtuYW1lKSkpOworCQkJCWlmIChvYmpuYW1l KQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKE5hbWVTdHIo Zm9ybS0+Y21rbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVh azsKKwkJCX0KKwogCQljYXNlIENvbnN0cmFpbnRSZWxhdGlvbklkOgogCQkJewogCQkJCUhl YXBUdXBsZQljb25UdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3RvYXN0 aW5nLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3RvYXN0aW5nLmMKaW5kZXggNzM4YmM0NmFl ODIuLjA5ZjgxZTczOWZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3RvYXN0 aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy90b2FzdGluZy5jCkBAIC0yNTIsNiAr MjUyLDcgQEAgY3JlYXRlX3RvYXN0X3RhYmxlKFJlbGF0aW9uIHJlbCwgT2lkIHRvYXN0T2lk LCBPaWQgdG9hc3RJbmRleE9pZCwKIAkJCQkJCQkJCQkgICByZWwtPnJkX3JlbC0+cmVsb3du ZXIsCiAJCQkJCQkJCQkJICAgdGFibGVfcmVsYXRpb25fdG9hc3RfYW0ocmVsKSwKIAkJCQkJ CQkJCQkgICB0dXBkZXNjLAorCQkJCQkJCQkJCSAgIE5VTEwsCiAJCQkJCQkJCQkJICAgTklM LAogCQkJCQkJCQkJCSAgIFJFTEtJTkRfVE9BU1RWQUxVRSwKIAkJCQkJCQkJCQkgICByZWwt PnJkX3JlbC0+cmVscGVyc2lzdGVuY2UsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IGNl ZGU5MGMzYjk4Li5jZjdhNTMzZTBmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTE5 LDYgKzE5LDcgQEAgT0JKUyA9IFwKIAlhbmFseXplLm8gXAogCWFzeW5jLm8gXAogCWNsdXN0 ZXIubyBcCisJY29sZW5jY21kcy5vIFwKIAljb2xsYXRpb25jbWRzLm8gXAogCWNvbW1lbnQu byBcCiAJY29uc3RyYWludC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IDEyODAyYjlk M2ZkLi5jZmVhNTkyOTk3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCkBAIC0yMSw3ICsyMSw5 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgogI2luY2x1ZGUgImNhdGFsb2cv bmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Rh dGFiYXNlX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2V2ZW50X3RyaWdnZXIuaCIKQEAg LTExNSw2ICsxMTcsMTIgQEAgcmVwb3J0X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJ ZCwgY29uc3QgY2hhciAqbmFtZSwgT2lkIG5zcE9pZCkKIAogCXN3aXRjaCAoY2xhc3NJZCkK IAl7CisJCWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJCW1zZ2ZtdCA9IGdldHRl eHRfbm9vcCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBp biBzY2hlbWEgXCIlc1wiIik7CisJCQlicmVhazsKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gbWFzdGVyIGtl eSBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7 CiAJCWNhc2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6CiAJCQlBc3NlcnQoT2lkSXNWYWxpZChu c3BPaWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiY29udmVyc2lvbiBcIiVzXCIg YWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwpAQCAtNDAwLDYgKzQwOCw4IEBA IEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCQlyZXR1cm4gUmVuYW1lVHlw ZShzdG10KTsKIAogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CisJCWNhc2UgT0JKRUNUX0NF SzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNh c2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0VWRU5UX1RSSUdHRVI6CkBA IC01NDgsNiArNTU4LDggQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVj dFNjaGVtYVN0bXQgKnN0bXQsCiAKIAkJCS8qIGdlbmVyaWMgY29kZSBwYXRoICovCiAJCWNh c2UgT0JKRUNUX0FHR1JFR0FURToKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVD VF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVS U0lPTjoKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CkBAIC04NjEsNiArODczLDggQEAgRXhl Y0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQogCiAJCQkvKiBHZW5lcmlj IGNhc2VzICovCiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKKwkJY2FzZSBPQkpFQ1RfQ0VL OgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2Fz ZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9jbHVzdGVyLmMKaW5kZXggYzA0ODg2YzQwOTAuLjJjNmEzMWRkM2JlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY2x1c3Rlci5jCkBAIC03NDcsNiArNzQ3LDcgQEAgbWFrZV9uZXdfaGVhcChP aWQgT0lET2xkSGVhcCwgT2lkIE5ld1RhYmxlU3BhY2UsIE9pZCBOZXdBY2Nlc3NNZXRob2Qs CiAJCQkJCQkJCQkJICBPbGRIZWFwLT5yZF9yZWwtPnJlbG93bmVyLAogCQkJCQkJCQkJCSAg TmV3QWNjZXNzTWV0aG9kLAogCQkJCQkJCQkJCSAgT2xkSGVhcERlc2MsCisJCQkJCQkJCQkJ ICBOVUxMLAogCQkJCQkJCQkJCSAgTklMLAogCQkJCQkJCQkJCSAgUkVMS0lORF9SRUxBVElP TiwKIAkJCQkJCQkJCQkgIHJlbHBlcnNpc3RlbmNlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29sZW5jY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5j Y21kcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYTU5YWE0 ZTFiZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2Nt ZHMuYwpAQCAtMCwwICsxLDQ0OSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog Y29sZW5jY21kcy5jCisgKgkgIGNvbHVtbi1lbmNyeXB0aW9uLXJlbGF0ZWQgY29tbWFuZHMg c3VwcG9ydCBjb2RlCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5k cy9jb2xlbmNjbWRzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1 ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisj aW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9p bmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1l c3BhY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9jb2xlbmNjbWRzLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvZGJjb21tYW5kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgor I2luY2x1ZGUgImNvbW1vbi9jb2xlbmMuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNp bmNsdWRlICJ1dGlscy9hY2wuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKK3N0YXRpYyB2b2lkCitwYXJzZV9jZWtfYXR0 cmlidXRlcyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmRlZmluaXRpb24sIE9pZCAqY21r b2lkX3AsIGludCAqYWxnX3AsIGNoYXIgKiplbmN2YWxfcCkKK3sKKwlMaXN0Q2VsbCAgICps YzsKKwlEZWZFbGVtICAgICpjbWtFbCA9IE5VTEw7CisJRGVmRWxlbSAgICAqYWxnRWwgPSBO VUxMOworCURlZkVsZW0gICAgKmVuY3ZhbEVsID0gTlVMTDsKKwlPaWQJCQljbWtvaWQgPSBJ bnZhbGlkT2lkOworCWludAkJCWFsZyA9IDA7CisJY2hhcgkgICAqZW5jdmFsID0gTlVMTDsK KworCUFzc2VydChjbWtvaWRfcCk7CisKKwlmb3JlYWNoKGxjLCBkZWZpbml0aW9uKQorCXsK KwkJRGVmRWxlbSAgICAqZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURl ZkVsZW0gICAqKmRlZmVscDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29s dW1uX21hc3Rlcl9rZXkiKSA9PSAwKQorCQkJZGVmZWxwID0gJmNta0VsOworCQllbHNlIGlm IChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJZGVmZWxw ID0gJmFsZ0VsOworCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJlbmNyeXB0 ZWRfdmFsdWUiKSA9PSAwKQorCQkJZGVmZWxwID0gJmVuY3ZhbEVsOworCQllbHNlCisJCXsK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKKwkJCQkJIGVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IGF0dHJpYnV0ZSBcIiVz XCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJfQorCQlp ZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWws IHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAoY21rRWwpCisJewor CQlMaXN0CSAgICp2YWwgPSBkZWZHZXRRdWFsaWZpZWROYW1lKGNta0VsKTsKKworCQljbWtv aWQgPSBnZXRfY21rX29pZCh2YWwsIGZhbHNlKTsKKwl9CisJZWxzZQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNn KCJhdHRyaWJ1dGUgXCIlc1wiIG11c3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCSJjb2x1bW5f bWFzdGVyX2tleSIpKSk7CisKKwlpZiAoYWxnRWwpCisJeworCQljaGFyCSAgICp2YWwgPSBk ZWZHZXRTdHJpbmcoYWxnRWwpOworCisJCWlmICghYWxnX3ApCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2co ImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiYWxn b3JpdGhtIikpKTsKKworCQlhbGcgPSBnZXRfY21rYWxnX251bSh2YWwpOworCQlpZiAoIWFs ZykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24g YWxnb3JpdGhtOiAlcyIsIHZhbCksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGFsZ0VsLT5sb2NhdGlvbikpOworCX0KKwllbHNlCisJeworCQlpZiAoYWxnX3ApCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJ CQkJCSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJ CQkJCSJhbGdvcml0aG0iKSkpOworCX0KKworCWlmIChlbmN2YWxFbCkKKwl7CisJCWlmICgh ZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBub3Qg YmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKworCQllbmN2 YWwgPSBkZWZHZXRTdHJpbmcoZW5jdmFsRWwpOworCX0KKwllbHNlCisJeworCQlpZiAoZW5j dmFsX3ApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVj aWZpZWQiLAorCQkJCQkJCSJlbmNyeXB0ZWRfdmFsdWUiKSkpOworCX0KKworCSpjbWtvaWRf cCA9IGNta29pZDsKKwlpZiAoYWxnX3ApCisJCSphbGdfcCA9IGFsZzsKKwlpZiAoZW5jdmFs X3ApCisJCSplbmN2YWxfcCA9IGVuY3ZhbDsKK30KKworc3RhdGljIHZvaWQKK2luc2VydF9j ZWtkYXRhX3JlY29yZChPaWQgY2Vrb2lkLCBPaWQgY21rb2lkLCBpbnQgYWxnLCBjaGFyICpl bmN2YWwpCit7CisJT2lkCQkJY2VrZGF0YW9pZDsKKwlSZWxhdGlvbglyZWw7CisJRGF0dW0J CXZhbHVlc1tOYXR0c19wZ19jb2xlbmNrZXlkYXRhXSA9IHswfTsKKwlib29sCQludWxsc1tO YXR0c19wZ19jb2xlbmNrZXlkYXRhXSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCU9iamVj dEFkZHJlc3MgbXlzZWxmOworCU9iamVjdEFkZHJlc3Mgb3RoZXI7CisKKwlyZWwgPSB0YWJs ZV9vcGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsK KworCWNla2RhdGFvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5FbmNLZXlE YXRhT2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCk7CisJdmFsdWVzW0Fu dW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY2VrZGF0 YW9pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZCAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShjZWtvaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRh dGFfY2tkY21raWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lkKTsKKwl2YWx1ZXNb QW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNta2FsZyAtIDFdID0gSW50MzJHZXREYXR1bShh bGcpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkZW5jdmFsIC0gMV0gPSBE aXJlY3RGdW5jdGlvbkNhbGwxKGJ5dGVhaW4sIENTdHJpbmdHZXREYXR1bShlbmN2YWwpKTsK KworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVl cywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVl dHVwbGUodHVwKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBDb2x1bW5FbmNLZXlE YXRhUmVsYXRpb25JZCwgY2VrZGF0YW9pZCk7CisKKwkvKiBkZXBlbmRlbmN5IGNla2RhdGEg LT4gY2VrICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwgQ29sdW1uRW5jS2V5UmVsYXRp b25JZCwgY2Vrb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJm90aGVyLCBE RVBFTkRFTkNZX0FVVE8pOworCisJLyogZGVwZW5kZW5jeSBjZWtkYXRhIC0+IGNtayAqLwor CU9iamVjdEFkZHJlc3NTZXQob3RoZXIsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNt a29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZvdGhlciwgREVQRU5ERU5D WV9OT1JNQUwpOworCisJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworfQorCitPYmplY3RB ZGRyZXNzCitDcmVhdGVDRUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10 KQoreworCU9pZAkJCW5hbWVzcGFjZUlkOworCWNoYXIJICAgKmNla25hbWVzdHI7CisJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKwlSZWxhdGlvbglyZWw7CisJT2JqZWN0QWRkcmVzcyBteXNl bGY7CisJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOworCU9pZAkJCWNla29pZDsKKwlMaXN0 Q2VsbCAgICpsYzsKKwlOYW1lRGF0YQljZWtuYW1lOworCURhdHVtCQl2YWx1ZXNbTmF0dHNf cGdfY29sZW5ja2V5XSA9IHswfTsKKwlib29sCQludWxsc1tOYXR0c19wZ19jb2xlbmNrZXld ID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisKKwluYW1lc3BhY2VJZCA9IFF1YWxpZmllZE5h bWVHZXRDcmVhdGlvbk5hbWVzcGFjZShzdG10LT5kZWZuYW1lcywgJmNla25hbWVzdHIpOwor CisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKE5hbWVzcGFjZVJlbGF0aW9uSWQsIG5h bWVzcGFjZUlkLCBHZXRVc2VySWQoKSwgQUNMX0NSRUFURSk7CisJaWYgKGFjbHJlc3VsdCAh PSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfU0NI RU1BLCBnZXRfbmFtZXNwYWNlX25hbWUobmFtZXNwYWNlSWQpKTsKKworCXJlbCA9IHRhYmxl X29wZW4oQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlp ZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKENFS05BTUVOU1AsIFBvaW50ZXJHZXREYXR1bShj ZWtuYW1lc3RyKSwgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQll cnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLCBj ZWtuYW1lc3RyKSk7CisKKwljZWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1 bW5FbmNLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQpOworCisJZm9yZWFj aChsYywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCUxpc3QJICAgKmRlZmluaXRpb24gPSBs Zmlyc3Rfbm9kZShMaXN0LCBsYyk7CisJCU9pZAkJCWNta29pZCA9IDA7CisJCWludAkJCWFs ZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0 ZSwgZGVmaW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7CisKKwkJYWNscmVzdWx0 ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwg R2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tf T0spCisJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9DTUssIGdldF9jbWtf bmFtZShjbWtvaWQsIGZhbHNlKSk7CisKKwkJLyogcGdfY29sZW5ja2V5ZGF0YSAqLworCQlp bnNlcnRfY2VrZGF0YV9yZWNvcmQoY2Vrb2lkLCBjbWtvaWQsIGFsZywgZW5jdmFsKTsKKwl9 CisKKwkvKiBwZ19jb2xlbmNrZXkgKi8KKwluYW1lc3RyY3B5KCZjZWtuYW1lLCBjZWtuYW1l c3RyKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfb2lkIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5X2Nla25hbWUgLSAx XSA9IE5hbWVHZXREYXR1bSgmY2VrbmFtZSk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5 X2Nla25hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCk7CisJ dmFsdWVzW0FudW1fcGdfY29sZW5ja2V5X2Nla293bmVyIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKEdldFVzZXJJZCgpKTsKKwludWxsc1tBbnVtX3BnX2NvbGVuY2tleV9jZWthY2wgLSAx XSA9IHRydWU7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihy ZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29s dW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKworCU9iamVjdEFkZHJlc3NTZXQocmVm ZXJlbmNlZCwgTmFtZXNwYWNlUmVsYXRpb25JZCwgbmFtZXNwYWNlSWQpOworCXJlY29yZERl cGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOwor CisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vr b2lkLCBHZXRVc2VySWQoKSk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soQ29sdW1uRW5jS2V5UmVsYXRp b25JZCwgY2Vrb2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7Cit9CisKK09iamVjdEFkZHJl c3MKK0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy Q29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQpCit7CisJT2lkCQkJY2Vrb2lkOworCU9i amVjdEFkZHJlc3MgYWRkcmVzczsKKworCWNla29pZCA9IGdldF9jZWtfb2lkKHN0bXQtPmNl a25hbWUsIGZhbHNlKTsKKworCWlmICghb2JqZWN0X293bmVyY2hlY2soQ29sdW1uRW5jS2V5 UmVsYXRpb25JZCwgY2Vrb2lkLCBHZXRVc2VySWQoKSkpCisJCWFjbGNoZWNrX2Vycm9yKEFD TENIRUNLX05PVF9PV05FUiwgT0JKRUNUX0NFSywgTmFtZUxpc3RUb1N0cmluZyhzdG10LT5j ZWtuYW1lKSk7CisKKwlpZiAoc3RtdC0+aXNEcm9wKQorCXsKKwkJT2lkCQkJY21rb2lkID0g MDsKKwkJT2lkCQkJY2VrZGF0YW9pZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJcGFy c2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAmY21rb2lkLCBO VUxMLCBOVUxMKTsKKwkJY2VrZGF0YW9pZCA9IGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNt a29pZCwgZmFsc2UpOworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgQ29sdW1uRW5jS2V5RGF0 YVJlbGF0aW9uSWQsIGNla2RhdGFvaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJP UF9DQVNDQURFLCAwKTsKKwl9CisJZWxzZQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJ aW50CQkJYWxnOworCQljaGFyCSAgICplbmN2YWw7CisJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7 CisKKwkJcGFyc2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAm Y21rb2lkLCAmYWxnLCAmZW5jdmFsKTsKKworCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkLCBHZXRVc2VySWQoKSwgQUNM X1VTQUdFKTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCWFjbGNoZWNr X2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0NNSywgZ2V0X2Nta19uYW1lKGNta29pZCwgZmFs c2UpKTsKKworCQlpZiAoZ2V0X2Nla2RhdGFfb2lkKGNla29pZCwgY21rb2lkLCB0cnVlKSkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JK RUNUKSwKKwkJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVh ZHkgaGFzIGRhdGEgZm9yIG1hc3RlciBrZXkgXCIlc1wiIiwKKwkJCQkJCSAgIE5hbWVMaXN0 VG9TdHJpbmcoc3RtdC0+Y2VrbmFtZSksIGdldF9jbWtfbmFtZShjbWtvaWQsIGZhbHNlKSkp OworCQlpbnNlcnRfY2VrZGF0YV9yZWNvcmQoY2Vrb2lkLCBjbWtvaWQsIGFsZywgZW5jdmFs KTsKKwl9CisKKwlJbnZva2VPYmplY3RQb3N0QWx0ZXJIb29rKENvbHVtbkVuY0tleVJlbGF0 aW9uSWQsIGNla29pZCwgMCk7CisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBDb2x1bW5F bmNLZXlSZWxhdGlvbklkLCBjZWtvaWQpOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisKK09i amVjdEFkZHJlc3MKK0NyZWF0ZUNNSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQg KnN0bXQpCit7CisJT2lkCQkJbmFtZXNwYWNlSWQ7CisJY2hhcgkgICAqY21rbmFtZXN0cjsK KwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVJlbGF0aW9uCXJlbDsKKwlPYmplY3RBZGRyZXNz IG15c2VsZjsKKwlPYmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisJT2lkCQkJY21rb2lkOwor CUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0gICAgKnJlYWxtRWwgPSBOVUxMOworCWNoYXIJ ICAgKnJlYWxtOworCU5hbWVEYXRhCWNta25hbWU7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19w Z19jb2xtYXN0ZXJrZXldID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3Rl cmtleV0gPSB7MH07CisJSGVhcFR1cGxlCXR1cDsKKworCW5hbWVzcGFjZUlkID0gUXVhbGlm aWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPmRlZm5hbWVzLCAmY21rbmFtZXN0 cik7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soTmFtZXNwYWNlUmVsYXRpb25J ZCwgbmFtZXNwYWNlSWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVz dWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVD VF9TQ0hFTUEsIGdldF9uYW1lc3BhY2VfbmFtZShuYW1lc3BhY2VJZCkpOworCisJcmVsID0g dGFibGVfb3BlbihDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2Nr KTsKKworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoQ01LTkFNRU5TUCwgUG9pbnRlckdl dERhdHVtKGNta25hbWVzdHIpLCBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1Qp LAorCQkJCWVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3Rz IiwgY21rbmFtZXN0cikpOworCisJZm9yZWFjaChsYywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7 CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25vZGUoRGVmRWxlbSwgbGMpOworCQlE ZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgInJl YWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFsbUVsOworCQllbHNlCisJCXsKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgYXR0cmlidXRlIFwiJXNcIiBub3QgcmVj b2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCQl9CisJCWlmICgqZGVmZWxw ICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsK KwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChyZWFsbUVsKQorCQlyZWFsbSA9IGRl ZkdldFN0cmluZyhyZWFsbUVsKTsKKwllbHNlCisJCXJlYWxtID0gIiI7CisKKwljbWtvaWQg PSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBB bnVtX3BnX2NvbG1hc3RlcmtleV9vaWQpOworCW5hbWVzdHJjcHkoJmNta25hbWUsIGNta25h bWVzdHIpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0oY21rb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21r bmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZjbWtuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19j b2xtYXN0ZXJrZXlfY21rbmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKG5hbWVz cGFjZUlkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rb3duZXIgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1h c3RlcmtleV9jbWtyZWFsbSAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShyZWFsbSk7CisJ bnVsbHNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rYWNsIC0gMV0gPSB0cnVlOworCisJdHVw ID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxs cyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0 dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbk1hc3RlcktleVJlbGF0 aW9uSWQsIGNta29pZCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE5hbWVz cGFjZVJlbGF0aW9uSWQsIG5hbWVzcGFjZUlkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15 c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKworCXJlY29yZERlcGVu ZGVuY3lPbk93bmVyKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNl cklkKCkpOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCUlu dm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNt a29pZCwgMCk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCitPYmplY3RBZGRyZXNzCitBbHRl ckNvbHVtbk1hc3RlcktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyQ29sdW1uTWFzdGVy S2V5U3RtdCAqc3RtdCkKK3sKKwlPaWQJCQljbWtvaWQ7CisJUmVsYXRpb24JcmVsOworCUhl YXBUdXBsZQl0dXA7CisJSGVhcFR1cGxlCW5ld3R1cDsKKwlPYmplY3RBZGRyZXNzIGFkZHJl c3M7CisJTGlzdENlbGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9IE5VTEw7CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJvb2wJCW51 bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJYm9vbAkJcmVwbGFjZXNbTmF0 dHNfcGdfY29sbWFzdGVya2V5XSA9IHswfTsKKworCWNta29pZCA9IGdldF9jbWtfb2lkKHN0 bXQtPmNta25hbWUsIGZhbHNlKTsKKworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uTWFzdGVy S2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXND YWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta29pZCkpOworCisJaWYgKCFIZWFw VHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsIGNta29pZCk7CisKKwlpZiAoIW9iamVjdF9v d25lcmNoZWNrKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklk KCkpKQorCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVDVF9DTUss IE5hbWVMaXN0VG9TdHJpbmcoc3RtdC0+Y21rbmFtZSkpOworCisJZm9yZWFjaChsYywgc3Rt dC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25vZGUo RGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNtcChk ZWZlbC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFsbUVsOwor CQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgYXR0cmli dXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOwor CQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxl bShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChyZWFs bUVsKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKGRlZkdldFN0cmluZyhyZWFsbUVsKSk7CisJCXJlcGxh Y2VzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSB0cnVlOworCX0KKwor CW5ld3R1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwp LCB2YWx1ZXMsIG51bGxzLCByZXBsYWNlcyk7CisKKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVs LCAmdHVwLT50X3NlbGYsIG5ld3R1cCk7CisKKwlJbnZva2VPYmplY3RQb3N0QWx0ZXJIb29r KENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgMCk7CisKKwlPYmplY3RBZGRy ZXNzU2V0KGFkZHJlc3MsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCk7CisK KwloZWFwX2ZyZWV0dXBsZShuZXd0dXApOworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJ dGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBhZGRyZXNz OworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY3JlYXRlYXMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMKaW5kZXggYzVkZjk2ZTM3NGEuLjlmMTFh MjZmZjVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jcmVhdGVhcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMKQEAgLTQ1LDYgKzQ1LDcgQEAK ICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9ybHMuaCIKICNpbmNs dWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAog dHlwZWRlZiBzdHJ1Y3QKIHsKQEAgLTIxMSw2ICsyMTIsMjQgQEAgY3JlYXRlX2N0YXNfbm9k YXRhKExpc3QgKnRsaXN0LCBJbnRvQ2xhdXNlICppbnRvKQogCQkJCQkJCQlmb3JtYXRfdHlw ZV9iZShjb2wtPnR5cGVOYW1lLT50eXBlT2lkKSksCiAJCQkJCQkgZXJyaGludCgiVXNlIHRo ZSBDT0xMQVRFIGNsYXVzZSB0byBzZXQgdGhlIGNvbGxhdGlvbiBleHBsaWNpdGx5LiIpKSk7 CiAKKwkJCWlmICh0eXBlX2lzX2VuY3J5cHRlZChleHByVHlwZSgoTm9kZSAqKSB0bGUtPmV4 cHIpKSkKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHA7CisKKwkJCQlpZiAoIXRsZS0+cmVzb3Jp Z3RibCB8fCAhdGxlLT5yZXNvcmlnY29sKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQll cnJtc2coInVuZGVybHlpbmcgdGFibGUgYW5kIGNvbHVtbiBjb3VsZCBub3QgYmUgZGV0ZXJt aW5lZCBmb3IgZW5jcnlwdGVkIHRhYmxlIGNvbHVtbiIpKTsKKworCQkJCXRwID0gU2VhcmNo U3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRHZXREYXR1bSh0bGUtPnJlc29yaWd0YmwpLCBJ bnQxNkdldERhdHVtKHRsZS0+cmVzb3JpZ2NvbCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBh dHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCB0bGUtPnJlc29yaWdjb2wsIHRsZS0+cmVz b3JpZ3RibCk7CisJCQkJY29sLT50eXBlTmFtZSA9IG1ha2VUeXBlTmFtZUZyb21PaWQoRGF0 dW1HZXRPYmplY3RJZChTeXNDYWNoZUdldEF0dHJOb3ROdWxsKEFUVE5VTSwgdHAsIEFudW1f cGdfYXR0cmlidXRlX2F0dHVzZXJ0eXBpZCkpLAorCQkJCQkJCQkJCQkJCURhdHVtR2V0SW50 MzIoU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChBVFROVU0sIHRwLCBBbnVtX3BnX2F0dHJpYnV0 ZV9hdHR1c2VydHlwbW9kKSkpOworCQkJCWNvbC0+ZW5jcnlwdGlvbiA9IG1ha2VDb2x1bW5F bmNyeXB0aW9uKHRwKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCiAJCQlh dHRyTGlzdCA9IGxhcHBlbmQoYXR0ckxpc3QsIGNvbCk7CiAJCX0KIAl9CkBAIC01MjAsNiAr NTM5LDE3IEBAIGludG9yZWxfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBvcGVy YXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKIAkJCQkJCQlmb3JtYXRfdHlwZV9iZShjb2wt PnR5cGVOYW1lLT50eXBlT2lkKSksCiAJCQkJCSBlcnJoaW50KCJVc2UgdGhlIENPTExBVEUg Y2xhdXNlIHRvIHNldCB0aGUgY29sbGF0aW9uIGV4cGxpY2l0bHkuIikpKTsKIAorCQlpZiAo dHlwZV9pc19lbmNyeXB0ZWQoYXR0cmlidXRlLT5hdHR0eXBpZCkpCisJCXsKKwkJCS8qCisJ CQkgKiBXZSBkb24ndCBoYXZlIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBhdmFpbGFibGUg aGVyZSwgc28KKwkJCSAqIHByZXZlbnQgaXQgZm9yIG5vdy4KKwkJCSAqLworCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQkgZXJybXNnKCJlbmNyeXB0ZWQgY29sdW1ucyBub3QgeWV0IGltcGxlbWVudGVk IGZvciB0aGlzIGNvbW1hbmQiKSkpOworCQl9CisKIAkJYXR0ckxpc3QgPSBsYXBwZW5kKGF0 dHJMaXN0LCBjb2wpOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZGlzY2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDkyZDk4 M2FjNzQ4Li5kYTJlNTRkMzU0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZGlzY2FyZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwpAQCAtMTMs NiArMTMsNyBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFj Y2Vzcy9wcmludHR1cC5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgpAQCAt MjUsNyArMjYsNyBAQAogc3RhdGljIHZvaWQgRGlzY2FyZEFsbChib29sIGlzVG9wTGV2ZWwp OwogCiAvKgotICogRElTQ0FSRCB7IEFMTCB8IFNFUVVFTkNFUyB8IFRFTVAgfCBQTEFOUyB9 CisgKiBESVNDQVJECiAgKi8KIHZvaWQKIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpz dG10LCBib29sIGlzVG9wTGV2ZWwpCkBAIC0zNiw2ICszNywxMCBAQCBEaXNjYXJkQ29tbWFu ZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJRGlzY2FyZEFsbChp c1RvcExldmVsKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRElTQ0FSRF9DT0xVTU5fRU5DUllQ VElPTl9LRVlTOgorCQkJRGlzY2FyZENvbHVtbkVuY3J5cHRpb25LZXlzKCk7CisJCQlicmVh azsKKwogCQljYXNlIERJU0NBUkRfUExBTlM6CiAJCQlSZXNldFBsYW5DYWNoZSgpOwogCQkJ YnJlYWs7CkBAIC03NSw0ICs4MCw1IEBAIERpc2NhcmRBbGwoYm9vbCBpc1RvcExldmVsKQog CVJlc2V0UGxhbkNhY2hlKCk7CiAJUmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAlSZXNl dFNlcXVlbmNlQ2FjaGVzKCk7CisJRGlzY2FyZENvbHVtbkVuY3J5cHRpb25LZXlzKCk7CiB9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwppbmRleCA4NWVlYzdlMzk0Ny4uMDIwNWMwM2Ix MzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtMjcxLDYgKzI3MSwyMCBAQCBk b2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVj dCkKIAkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3Qp KTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUs6CisJCQlpZiAoIXNjaGVt YV9kb2VzX25vdF9leGlzdF9za2lwcGluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCAmbXNn LCAmbmFtZSkpCisJCQl7CisJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gZW5jcnlw dGlvbiBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJCW5hbWUg PSBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOworCQkJfQorCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCWlmICghc2NoZW1hX2RvZXNfbm90X2V4 aXN0X3NraXBwaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCksICZtc2csICZuYW1lKSkKKwkJ CXsKKwkJCQltc2cgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBk b2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmlu ZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIE9C SkVDVF9DT05WRVJTSU9OOgogCQkJaWYgKCFzY2hlbWFfZG9lc19ub3RfZXhpc3Rfc2tpcHBp bmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgJm1zZywgJm5hbWUpKQogCQkJewpAQCAtNDk5 LDYgKzUxMyw3IEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlw ZSwgTm9kZSAqb2JqZWN0KQogCQljYXNlIE9CSkVDVF9BTU9QOgogCQljYXNlIE9CSkVDVF9B TVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKKwkJY2FzZSBPQkpFQ1RfQ0VLREFU QToKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQlj YXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCmluZGV4IDBkMzIxNGRmOWNhLi42MDUyOTllNTY0ZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE2Myw2ICsyMTYzLDkgQEAgc3RyaW5naWZ5 X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBS T0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVD VF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVS U0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKQEAgLTIyNDYsNiArMjI0OSw5IEBAIHN0 cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVD VF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJ CWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9C SkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9tZXNvbi5idWlsZAppbmRleCA3NTQ5YmU1ZGMzYi4uMDA4ZWQ5OTlkYWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC03LDYgKzcsNyBAQCBiYWNrZW5kX3NvdXJjZXMg Kz0gZmlsZXMoCiAgICdhbmFseXplLmMnLAogICAnYXN5bmMuYycsCiAgICdjbHVzdGVyLmMn LAorICAnY29sZW5jY21kcy5jJywKICAgJ2NvbGxhdGlvbmNtZHMuYycsCiAgICdjb21tZW50 LmMnLAogICAnY29uc3RyYWludC5jJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4 IDU2MDcyNzNiZjlmLi5mZWVjYjcwNGU1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CkBAIC02Niw2ICs2Niw5IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVjdFR5 cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQljYXNlIE9CSkVDVF9BVFRS SUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2Fz ZSBPQkpFQ1RfQ0VLREFUQToKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9D T0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0RF RkFVTFQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDhhOThhMGFmNDgyLi5l ZGU5ZDMzNWJlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTM2LDYgKzM2 LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0 aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19kZXBlbmQuaCIKQEAgLTY0LDYgKzY1LDcgQEAKICNpbmNsdWRlICJjb21t YW5kcy90eXBlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3VzZXIuaCIKICNpbmNsdWRl ICJjb21tYW5kcy92YWN1dW0uaCIKKyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5o IgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgpAQCAtNjY5LDYgKzY3MSw4IEBAIHN0 YXRpYyBMaXN0ICpHZXRQYXJlbnRlZEZvcmVpZ25LZXlSZWZzKFJlbGF0aW9uIHBhcnRpdGlv bik7CiBzdGF0aWMgdm9pZCBBVERldGFjaENoZWNrTm9Gb3JlaWduS2V5UmVmcyhSZWxhdGlv biBwYXJ0aXRpb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlQ29tcHJlc3Npb24oT2lk IGF0dHR5cGlkLCBjb25zdCBjaGFyICpjb21wcmVzc2lvbik7CiBzdGF0aWMgY2hhciBHZXRB dHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqc3RvcmFnZW1vZGUp Oworc3RhdGljIHZvaWQgR2V0Q29sdW1uRW5jcnlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IGNvbnN0IExpc3QgKmNvbGRlZmVuY3J5cHRpb24sCisJCQkJCQkJCUZvcm1EYXRhX3BnX2F0 dHJpYnV0ZSAqYXR0ciwgRm9ybUV4dHJhRGF0YV9wZ19hdHRyaWJ1dGUgKmF0dHJfZXh0cmEp OwogCiBzdGF0aWMgdm9pZCBBVEV4ZWNTcGxpdFBhcnRpdGlvbihMaXN0ICoqd3F1ZXVlLCBB bHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCQkJCQkJCSBSZWxhdGlvbiByZWwsIFBhcnRpdGlv bkNtZCAqY21kLApAQCAtNzA1LDYgKzcwOSw3IEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0 bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJT2lkCQkJdGFibGVzcGFj ZUlkOwogCVJlbGF0aW9uCXJlbDsKIAlUdXBsZURlc2MJZGVzY3JpcHRvcjsKKwlGb3JtRXh0 cmFEYXRhX3BnX2F0dHJpYnV0ZSAqZGVzY19leHRyYTsKIAlMaXN0CSAgICppbmhlcml0T2lk czsKIAlMaXN0CSAgICpvbGRfY29uc3RyYWludHM7CiAJTGlzdAkgICAqb2xkX25vdG51bGxz OwpAQCAtOTM3LDcgKzk0Miw3IEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQs IGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJICogbm90IGRlZmF1bHQgdmFsdWVzLCBO T1QgTlVMTCBvciBDSEVDSyBjb25zdHJhaW50czsgd2UgaGFuZGxlIHRob3NlCiAJICogYmVs b3cuCiAJICovCi0JZGVzY3JpcHRvciA9IEJ1aWxkRGVzY0ZvclJlbGF0aW9uKHN0bXQtPnRh YmxlRWx0cyk7CisJZGVzY3JpcHRvciA9IEJ1aWxkRGVzY0ZvclJlbGF0aW9uKHN0bXQtPnRh YmxlRWx0cywgJmRlc2NfZXh0cmEpOwogCiAJLyoKIAkgKiBGaW5kIGNvbHVtbnMgd2l0aCBk ZWZhdWx0IHZhbHVlcyBhbmQgcHJlcGFyZSBmb3IgaW5zZXJ0aW9uIG9mIHRoZQpAQCAtMTAx MCw2ICsxMDE1LDcgQEAgRGVmaW5lUmVsYXRpb24oQ3JlYXRlU3RtdCAqc3RtdCwgY2hhciBy ZWxraW5kLCBPaWQgb3duZXJJZCwKIAkJCQkJCQkJCQkgIG93bmVySWQsCiAJCQkJCQkJCQkJ ICBhY2Nlc3NNZXRob2RJZCwKIAkJCQkJCQkJCQkgIGRlc2NyaXB0b3IsCisJCQkJCQkJCQkJ ICBkZXNjX2V4dHJhLAogCQkJCQkJCQkJCSAgbGlzdF9jb25jYXQoY29va2VkRGVmYXVsdHMs CiAJCQkJCQkJCQkJCQkJICBvbGRfY29uc3RyYWludHMpLAogCQkJCQkJCQkJCSAgcmVsa2lu ZCwKQEAgLTEzMTUsMTIgKzEzMjEsMTMgQEAgRGVmaW5lUmVsYXRpb24oQ3JlYXRlU3RtdCAq c3RtdCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKICAqIE5vdGU6IHRkdHlwZWlkIHdp bGwgbmVlZCB0byBiZSBmaWxsZWQgaW4gbGF0ZXIgb24uCiAgKi8KIFR1cGxlRGVzYwotQnVp bGREZXNjRm9yUmVsYXRpb24oY29uc3QgTGlzdCAqY29sdW1ucykKK0J1aWxkRGVzY0ZvclJl bGF0aW9uKGNvbnN0IExpc3QgKmNvbHVtbnMsIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRl ICoqdHVwZGVzY19leHRyYV9wKQogewogCWludAkJCW5hdHRzOwogCUF0dHJOdW1iZXIJYXR0 bnVtOwogCUxpc3RDZWxsICAgKmw7CiAJVHVwbGVEZXNjCWRlc2M7CisJRm9ybUV4dHJhRGF0 YV9wZ19hdHRyaWJ1dGUgKmRlc2NfZXh0cmE7CiAJYm9vbAkJaGFzX25vdF9udWxsOwogCWNo YXIJICAgKmF0dG5hbWU7CiAJT2lkCQkJYXR0dHlwaWQ7CkBAIC0xMzMzLDYgKzEzNDAsNyBA QCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBMaXN0ICpjb2x1bW5zKQogCSAqLwogCW5h dHRzID0gbGlzdF9sZW5ndGgoY29sdW1ucyk7CiAJZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVw bGVEZXNjKG5hdHRzKTsKKwlkZXNjX2V4dHJhID0gcGFsbG9jX2FycmF5KEZvcm1FeHRyYURh dGFfcGdfYXR0cmlidXRlLCBuYXR0cyk7CiAJaGFzX25vdF9udWxsID0gZmFsc2U7CiAKIAlh dHRudW0gPSAwOwpAQCAtMTM0MSw3ICsxMzQ5LDggQEAgQnVpbGREZXNjRm9yUmVsYXRpb24o Y29uc3QgTGlzdCAqY29sdW1ucykKIAl7CiAJCUNvbHVtbkRlZiAgKmVudHJ5ID0gbGZpcnN0 KGwpOwogCQlBY2xSZXN1bHQJYWNscmVzdWx0OwotCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQ7 CisJCUZvcm1EYXRhX3BnX2F0dHJpYnV0ZSAqYXR0OworCQlGb3JtRXh0cmFEYXRhX3BnX2F0 dHJpYnV0ZSAqYXR0X2V4dHJhOwogCiAJCS8qCiAJCSAqIGZvciBlYWNoIGVudHJ5IGluIHRo ZSBsaXN0LCBnZXQgdGhlIG5hbWUgYW5kIHR5cGUgaW5mb3JtYXRpb24gZnJvbQpAQCAtMTM3 MywxMCArMTM4MiwxNyBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBMaXN0ICpjb2x1 bW5zKQogCQlUdXBsZURlc2NJbml0RW50cnkoZGVzYywgYXR0bnVtLCBhdHRuYW1lLAogCQkJ CQkJICAgYXR0dHlwaWQsIGF0dHR5cG1vZCwgYXR0ZGltKTsKIAkJYXR0ID0gVHVwbGVEZXNj QXR0cihkZXNjLCBhdHRudW0gLSAxKTsKKwkJYXR0X2V4dHJhID0gJmRlc2NfZXh0cmFbYXR0 bnVtIC0gMV07CiAKIAkJLyogT3ZlcnJpZGUgVHVwbGVEZXNjSW5pdEVudHJ5J3Mgc2V0dGlu Z3MgYXMgcmVxdWVzdGVkICovCiAJCVR1cGxlRGVzY0luaXRFbnRyeUNvbGxhdGlvbihkZXNj LCBhdHRudW0sIGF0dGNvbGxhdGlvbik7CiAKKwkJYXR0X2V4dHJhLT5hdHRzdGF0dGFyZ2V0 LmlzbnVsbCA9IHRydWU7CisJCWF0dF9leHRyYS0+YXR0b3B0aW9ucy5pc251bGwgPSB0cnVl OworCQlhdHRfZXh0cmEtPmF0dGNlay5pc251bGwgPSB0cnVlOworCQlhdHRfZXh0cmEtPmF0 dHVzZXJ0eXBpZC5pc251bGwgPSB0cnVlOworCQlhdHRfZXh0cmEtPmF0dHVzZXJ0eXBtb2Qu aXNudWxsID0gdHJ1ZTsKKwogCQkvKiBGaWxsIGluIGFkZGl0aW9uYWwgc3R1ZmYgbm90IGhh bmRsZWQgYnkgVHVwbGVEZXNjSW5pdEVudHJ5ICovCiAJCWF0dC0+YXR0bm90bnVsbCA9IGVu dHJ5LT5pc19ub3RfbnVsbDsKIAkJaGFzX25vdF9udWxsIHw9IGVudHJ5LT5pc19ub3RfbnVs bDsKQEAgLTEzODksNiArMTQwNSwxNSBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBM aXN0ICpjb2x1bW5zKQogCQkJYXR0LT5hdHRzdG9yYWdlID0gZW50cnktPnN0b3JhZ2U7CiAJ CWVsc2UgaWYgKGVudHJ5LT5zdG9yYWdlX25hbWUpCiAJCQlhdHQtPmF0dHN0b3JhZ2UgPSBH ZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dC0+YXR0dHlwaWQsIGVudHJ5LT5zdG9yYWdlX25hbWUp OworCisJCWlmIChlbnRyeS0+ZW5jcnlwdGlvbikKKwkJeworCQkJR2V0Q29sdW1uRW5jcnlw dGlvbihOVUxMLCBlbnRyeS0+ZW5jcnlwdGlvbiwgYXR0LCBhdHRfZXh0cmEpOworCQkJQXNz ZXJ0KCFhdHRfZXh0cmEtPmF0dGNlay5pc251bGwpOworCQkJYWNscmVzdWx0ID0gb2JqZWN0 X2FjbGNoZWNrKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIERhdHVtR2V0T2JqZWN0SWQoYXR0 X2V4dHJhLT5hdHRjZWsudmFsdWUpLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdFKTsKKwkJCWlm IChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVz dWx0LCBPQkpFQ1RfQ0VLLCBnZXRfY2VrX25hbWUoRGF0dW1HZXRPYmplY3RJZChhdHRfZXh0 cmEtPmF0dGNlay52YWx1ZSksIGZhbHNlKSk7CisJCX0KIAl9CiAKIAlpZiAoaGFzX25vdF9u dWxsKQpAQCAtMTQwOSw2ICsxNDM0LDcgQEAgQnVpbGREZXNjRm9yUmVsYXRpb24oY29uc3Qg TGlzdCAqY29sdW1ucykKIAkJZGVzYy0+Y29uc3RyID0gTlVMTDsKIAl9CiAKKwkqdHVwZGVz Y19leHRyYV9wID0gZGVzY19leHRyYTsKIAlyZXR1cm4gZGVzYzsKIH0KIApAQCAtMjc0Miw2 ICsyNzY4LDE4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0 ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkgKi8KIAkJCW5ld2RlZiA9IG1h a2VDb2x1bW5EZWYoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlLT5hdHR0eXBpZCwKIAkJCQkJ CQkJICAgYXR0cmlidXRlLT5hdHR0eXBtb2QsIGF0dHJpYnV0ZS0+YXR0Y29sbGF0aW9uKTsK KwkJCWlmICh0eXBlX2lzX2VuY3J5cHRlZChhdHRyaWJ1dGUtPmF0dHR5cGlkKSkKKwkJCXsK KwkJCQlIZWFwVHVwbGUJdHA7CisKKwkJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihBVFROVU0s IE9iamVjdElkR2V0RGF0dW0oYXR0cmlidXRlLT5hdHRyZWxpZCksIEludDE2R2V0RGF0dW0o YXR0cmlidXRlLT5hdHRudW0pKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQor CQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRlICVk IG9mIHJlbGF0aW9uICV1IiwgYXR0cmlidXRlLT5hdHRudW0sIGF0dHJpYnV0ZS0+YXR0cmVs aWQpOworCQkJCW5ld2RlZi0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWVGcm9tT2lkKERhdHVt R2V0T2JqZWN0SWQoU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChBVFROVU0sIHRwLCBBbnVtX3Bn X2F0dHJpYnV0ZV9hdHR1c2VydHlwaWQpKSwKKwkJCQkJCQkJCQkJCQkgICBEYXR1bUdldElu dDMyKFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQVRUTlVNLCB0cCwgQW51bV9wZ19hdHRyaWJ1 dGVfYXR0dXNlcnR5cG1vZCkpKTsKKwkJCQluZXdkZWYtPmVuY3J5cHRpb24gPSBtYWtlQ29s dW1uRW5jcnlwdGlvbih0cCk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KIAkJ CW5ld2RlZi0+c3RvcmFnZSA9IGF0dHJpYnV0ZS0+YXR0c3RvcmFnZTsKIAkJCW5ld2RlZi0+ Z2VuZXJhdGVkID0gYXR0cmlidXRlLT5hdHRnZW5lcmF0ZWQ7CiAJCQlpZiAoQ29tcHJlc3Np b25NZXRob2RJc1ZhbGlkKGF0dHJpYnV0ZS0+YXR0Y29tcHJlc3Npb24pKQpAQCAtMzMwMCw2 ICszMzM4LDMyIEBAIE1lcmdlQ2hpbGRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGlu dCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9hdHRubywgY29uc3QKIAkJCQkJIGVycmRldGFp bCgiJXMgdmVyc3VzICVzIiwgaW5oZGVmLT5jb21wcmVzc2lvbiwgbmV3ZGVmLT5jb21wcmVz c2lvbikpKTsKIAl9CiAKKwkvKgorCSAqIENoZWNrIGVuY3J5cHRpb24gcGFyYW1ldGVyLiAg QWxsIHBhcmVudHMgYW5kIGNoaWxkcmVuIG11c3QgaGF2ZSB0aGUKKwkgKiBzYW1lIGVuY3J5 cHRpb24gc2V0dGluZ3MgZm9yIGEgY29sdW1uLgorCSAqLworCWlmICgoaW5oZGVmLT5lbmNy eXB0aW9uICYmICFuZXdkZWYtPmVuY3J5cHRpb24pIHx8ICghaW5oZGVmLT5lbmNyeXB0aW9u ICYmIG5ld2RlZi0+ZW5jcnlwdGlvbikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiY29sdW1uIFwi JXNcIiBoYXMgYW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0IiwKKwkJCQkJ CWF0dHJpYnV0ZU5hbWUpKSk7CisJZWxzZSBpZiAoaW5oZGVmLT5lbmNyeXB0aW9uICYmIG5l d2RlZi0+ZW5jcnlwdGlvbikKKwl7CisJCUZvcm1EYXRhX3BnX2F0dHJpYnV0ZSBpbmhhLAor CQkJCQluZXdhOworCQlGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZSBpbmhheCwKKwkJCQkJ bmV3YXg7CisKKwkJR2V0Q29sdW1uRW5jcnlwdGlvbihOVUxMLCBpbmhkZWYtPmVuY3J5cHRp b24sICZpbmhhLCAmaW5oYXgpOworCQlHZXRDb2x1bW5FbmNyeXB0aW9uKE5VTEwsIG5ld2Rl Zi0+ZW5jcnlwdGlvbiwgJm5ld2EsICZuZXdheCk7CisKKwkJaWYgKGluaGEuYXR0dHlwaWQg IT0gbmV3YS5hdHR0eXBpZCB8fCBpbmhhLmF0dHR5cG1vZCAhPSBuZXdhLmF0dHR5cG1vZCB8 fCBpbmhheC5hdHRjZWsudmFsdWUgIT0gbmV3YXguYXR0Y2VrLnZhbHVlKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJ CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgaGFzIGFuIGVuY3J5cHRpb24gc3BlY2lmaWNh dGlvbiBjb25mbGljdCIsCisJCQkJCQkJYXR0cmlidXRlTmFtZSkpKTsKKwl9CisKIAkvKgog CSAqIE1lcmdlIG9mIG5vdC1udWxsIGNvbnN0cmFpbnRzID0gT1IgJ2VtIHRvZ2V0aGVyCiAJ ICovCkBAIC0zMzk0LDYgKzM0NTgsMjkgQEAgTWVyZ2VJbmhlcml0ZWRBdHRyaWJ1dGUoTGlz dCAqaW5oX2NvbHVtbnMsCiAJCQkJCWF0dHJpYnV0ZU5hbWUpKSk7CiAJcHJldmRlZiA9IGxp c3RfbnRoX25vZGUoQ29sdW1uRGVmLCBpbmhfY29sdW1ucywgZXhpc3RfYXR0bm8gLSAxKTsK IAorCS8qCisJICogQ2hlY2sgZW5jcnlwdGlvbiBwYXJhbWV0ZXIuICBBbGwgcGFyZW50cyBt dXN0IGhhdmUgdGhlIHNhbWUgZW5jcnlwdGlvbgorCSAqIHNldHRpbmdzIGZvciBhIGNvbHVt bi4KKwkgKi8KKwlpZiAoKHByZXZkZWYtPmVuY3J5cHRpb24gJiYgIW5ld2RlZi0+ZW5jcnlw dGlvbikgfHwgKCFwcmV2ZGVmLT5lbmNyeXB0aW9uICYmIG5ld2RlZi0+ZW5jcnlwdGlvbikp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNN QVRDSCksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBoYXMgYW4gZW5jcnlwdGlvbiBz cGVjaWZpY2F0aW9uIGNvbmZsaWN0IiwKKwkJCQkJCWF0dHJpYnV0ZU5hbWUpKSk7CisJZWxz ZSBpZiAocHJldmRlZi0+ZW5jcnlwdGlvbiAmJiBuZXdkZWYtPmVuY3J5cHRpb24pCisJewor CQkvKgorCQkgKiBNZXJnaW5nIHRoZSBlbmNyeXB0aW9uIHByb3BlcnRpZXMgb2YgdHdvIGVu Y3J5cHRlZCBwYXJlbnQgY29sdW1ucworCQkgKiBpcyBub3QgeWV0IGltcGxlbWVudGVkLiAg UmlnaHQgbm93LCB0aGlzIHdvdWxkIGNvbmZ1c2UgdGhlIGNoZWNrcworCQkgKiBvZiB0aGUg dHlwZSBldGMuIGJlbG93ICh3ZSBtdXN0IGNoZWNrIHRoZSBwaHlzaWNhbCBhbmQgdGhlIHJl YWwKKwkJICogdHlwZXMgYWdhaW5zdCBlYWNoIG90aGVyLCByZXNwZWN0aXZlbHkpLCB3aGlj aCBtaWdodCByZXF1aXJlIGEKKwkJICogbGFyZ2VyIHJlc3RydWN0dXJpbmcuICBGb3Igbm93 LCBqdXN0IGdpdmUgdXAgaGVyZS4KKwkJICovCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIm11 bHRpcGxlIGluaGVyaXRhbmNlIG9mIGVuY3J5cHRlZCBjb2x1bW5zIGlzIG5vdCBpbXBsZW1l bnRlZCIpKSk7CisJfQorCiAJLyoKIAkgKiBNdXN0IGhhdmUgdGhlIHNhbWUgdHlwZSBhbmQg dHlwbW9kCiAJICovCkBAIC03MTEzLDYgKzcyMDAsNyBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlz dCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJQWx0 ZXJUYWJsZUNtZCAqY2hpbGRjbWQ7CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCVR1cGxl RGVzYwl0dXBkZXNjOworCUZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlICp0dXBkZXNjX2V4 dHJhOwogCiAJLyogc2luY2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUg ZHJpdmVuIHRvIHN0YWNrIG92ZXJmbG93ICovCiAJY2hlY2tfc3RhY2tfZGVwdGgoKTsKQEAg LTcyNTAsNyArNzMzOCw3IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRl cmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkvKgogCSAqIENvbnN0cnVjdCBu ZXcgYXR0cmlidXRlJ3MgcGdfYXR0cmlidXRlIGVudHJ5LgogCSAqLwotCXR1cGRlc2MgPSBC dWlsZERlc2NGb3JSZWxhdGlvbihsaXN0X21ha2UxKGNvbERlZikpOworCXR1cGRlc2MgPSBC dWlsZERlc2NGb3JSZWxhdGlvbihsaXN0X21ha2UxKGNvbERlZiksICZ0dXBkZXNjX2V4dHJh KTsKIAogCWF0dHJpYnV0ZSA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgMCk7CiAKQEAgLTcy NjAsOSArNzM0OCwxMCBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJLyogbWFrZSBzdXJlIGRhdGF0eXBl IGlzIGxlZ2FsIGZvciBhIGNvbHVtbiAqLwogCUNoZWNrQXR0cmlidXRlVHlwZShOYW1lU3Ry KGF0dHJpYnV0ZS0+YXR0bmFtZSksIGF0dHJpYnV0ZS0+YXR0dHlwaWQsIGF0dHJpYnV0ZS0+ YXR0Y29sbGF0aW9uLAogCQkJCQkgICBsaXN0X21ha2UxX29pZChyZWwtPnJkX3JlbC0+cmVs dHlwZSksCi0JCQkJCSAgIDApOworCQkJCQkgICAhdHVwZGVzY19leHRyYVswXS5hdHRjZWsu aXNudWxsID8gQ0hLQVRZUEVfRU5DUllQVEVEIDogMCk7CisKIAotCUluc2VydFBnQXR0cmli dXRlVHVwbGVzKGF0dHJkZXNjLCB0dXBkZXNjLCBteXJlbGlkLCBOVUxMLCBOVUxMKTsKKwlJ bnNlcnRQZ0F0dHJpYnV0ZVR1cGxlcyhhdHRyZGVzYywgdHVwZGVzYywgbXlyZWxpZCwgdHVw ZGVzY19leHRyYSwgTlVMTCk7CiAKIAl0YWJsZV9jbG9zZShhdHRyZGVzYywgUm93RXhjbHVz aXZlTG9jayk7CiAKQEAgLTIwODg3LDYgKzIwOTc2LDE0NCBAQCBHZXRBdHRyaWJ1dGVTdG9y YWdlKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqc3RvcmFnZW1vZGUpCiAJcmV0dXJuIGNz dG9yYWdlOwogfQogCisvKgorICogcmVzb2x2ZSBjb2x1bW4gZW5jcnlwdGlvbiBzcGVjaWZp Y2F0aW9uCisgKi8KK3N0YXRpYyB2b2lkCitHZXRDb2x1bW5FbmNyeXB0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sZGVmZW5jcnlwdGlvbiwKKwkJCQkJRm9ybURh dGFfcGdfYXR0cmlidXRlICphdHRyLCBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZSAqYXR0 cl9leHRyYSkKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlEZWZFbGVtICAgICpjZWtFbCA9IE5V TEw7CisJRGVmRWxlbSAgICAqZW5jZGV0RWwgPSBOVUxMOworCURlZkVsZW0gICAgKmFsZ0Vs ID0gTlVMTDsKKwlPaWQJCQljZWtvaWQ7CisJYm9vbAkJZW5jZGV0OworCWludAkJCWFsZzsK KworCWZvcmVhY2gobGMsIGNvbGRlZmVuY3J5cHRpb24pCisJeworCQlEZWZFbGVtICAgICpk ZWZlbCA9IGxmaXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxw OworCisJCWlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJjb2x1bW5fZW5jcnlwdGlvbl9r ZXkiKSA9PSAwKQorCQkJZGVmZWxwID0gJmNla0VsOworCQllbHNlIGlmIChzdHJjbXAoZGVm ZWwtPmRlZm5hbWUsICJlbmNyeXB0aW9uX3R5cGUiKSA9PSAwKQorCQkJZGVmZWxwID0gJmVu Y2RldEVsOworCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJhbGdvcml0aG0i KSA9PSAwKQorCQkJZGVmZWxwID0gJmFsZ0VsOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJ CQllcnJtc2coInVucmVjb2duaXplZCBjb2x1bW4gZW5jcnlwdGlvbiBwYXJhbWV0ZXI6ICVz IiwgZGVmZWwtPmRlZm5hbWUpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBk ZWZlbC0+bG9jYXRpb24pKTsKKwkJaWYgKCpkZWZlbHAgIT0gTlVMTCkKKwkJCWVycm9yQ29u ZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCQkqZGVmZWxwID0gZGVmZWw7CisJ fQorCisJaWYgKGNla0VsKQorCXsKKwkJTGlzdAkgICAqdmFsID0gZGVmR2V0UXVhbGlmaWVk TmFtZShjZWtFbCk7CisKKwkJY2Vrb2lkID0gZ2V0X2Nla19vaWQodmFsLCBmYWxzZSk7CisJ fQorCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgbXVzdCBiZSBzcGVjaWZpZWQiKSk7CisKKwlpZiAoZW5jZGV0RWwpCisJeworCQljaGFy CSAgICp2YWwgPSBzdHJWYWwobGluaXRpYWwoY2FzdE5vZGUoVHlwZU5hbWUsIGVuY2RldEVs LT5hcmcpLT5uYW1lcykpOworCisJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJtaW5pc3RpYyIp ID09IDApCisJCQllbmNkZXQgPSB0cnVlOworCQllbHNlIGlmIChzdHJjbXAodmFsLCAicmFu ZG9taXplZCIpID09IDApCisJCQllbmNkZXQgPSBmYWxzZTsKKwkJZWxzZQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKKwkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiB0eXBlOiAlcyIsIHZh bCksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVuY2RldEVsLT5sb2NhdGlv bikpOworCX0KKwllbHNlCisJCWVuY2RldCA9IGZhbHNlOworCisJaWYgKGFsZ0VsKQorCXsK KwkJY2hhcgkgICAqdmFsID0gc3RyVmFsKGFsZ0VsLT5hcmcpOworCisJCWFsZyA9IGdldF9j ZWthbGdfbnVtKHZhbCk7CisKKwkJaWYgKCFhbGcpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJt c2coInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpLAorCQkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBhbGdFbC0+bG9jYXRpb24pKTsKKwl9CisJ ZWxzZQorCQlhbGcgPSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY7CisK KwlhdHRyX2V4dHJhLT5hdHRjZWsudmFsdWUgPSBPYmplY3RJZEdldERhdHVtKGNla29pZCk7 CisJYXR0cl9leHRyYS0+YXR0dXNlcnR5cGlkLnZhbHVlID0gT2JqZWN0SWRHZXREYXR1bShh dHRyLT5hdHR0eXBpZCk7CisJYXR0cl9leHRyYS0+YXR0dXNlcnR5cG1vZC52YWx1ZSA9IElu dDMyR2V0RGF0dW0oYXR0ci0+YXR0dHlwbW9kKTsKKwlhdHRyX2V4dHJhLT5hdHRjZWsuaXNu dWxsID0gYXR0cl9leHRyYS0+YXR0dXNlcnR5cGlkLmlzbnVsbCA9IGF0dHJfZXh0cmEtPmF0 dHVzZXJ0eXBtb2QuaXNudWxsID0gZmFsc2U7CisKKwkvKiBvdmVycmlkZSBwaHlzaWNhbCB0 eXBlICovCisJaWYgKGVuY2RldCkKKwkJYXR0ci0+YXR0dHlwaWQgPSBQR19FTkNSWVBURURf REVUT0lEOworCWVsc2UKKwkJYXR0ci0+YXR0dHlwaWQgPSBQR19FTkNSWVBURURfUk5ET0lE OworCWdldF90eXBsZW5ieXZhbGFsaWduKGF0dHItPmF0dHR5cGlkLAorCQkJCQkJICZhdHRy LT5hdHRsZW4sICZhdHRyLT5hdHRieXZhbCwgJmF0dHItPmF0dGFsaWduKTsKKwlhdHRyLT5h dHRzdG9yYWdlID0gZ2V0X3R5cHN0b3JhZ2UoYXR0ci0+YXR0dHlwaWQpOworCWF0dHItPmF0 dGNvbGxhdGlvbiA9IEludmFsaWRPaWQ7CisKKwlhdHRyLT5hdHR0eXBtb2QgPSBhbGc7Cit9 CisKKy8qCisgKiBDb25zdHJ1Y3QgaW5wdXQgdG8gR2V0Q29sdW1uRW5jcnlwdGlvbigpLCBm b3Igc3ludGhlc2l6aW5nIGEgY29sdW1uCisgKiBkZWZpbml0aW9uLgorICovCitMaXN0ICoK K21ha2VDb2x1bW5FbmNyeXB0aW9uKEhlYXBUdXBsZSBhdHRydHVwKQoreworCUxpc3QJICAg KnJlc3VsdDsKKwlIZWFwVHVwbGUJY2VrdHVwOworCUZvcm1fcGdfY29sZW5ja2V5IGNla2Zv cm07CisJY2hhcgkgICAqbnNwbmFtZTsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOworCU9p ZAkJCWF0dGNlazsKKworCWF0dHIgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVChh dHRydHVwKTsKKworCWF0dGNlayA9IERhdHVtR2V0T2JqZWN0SWQoU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChBVFROVU0sIGF0dHJ0dXAsIEFudW1fcGdfYXR0cmlidXRlX2F0dGNlaykpOwor CisJY2VrdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShh dHRjZWspKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoY2VrdHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIs IGF0dGNlayk7CisKKwljZWtmb3JtID0gKEZvcm1fcGdfY29sZW5ja2V5KSBHRVRTVFJVQ1Qo Y2VrdHVwKTsKKwluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKGNla2Zvcm0tPmNla25h bWVzcGFjZSk7CisKKwlyZXN1bHQgPSBsaXN0X21ha2UzKG1ha2VEZWZFbGVtKCJjb2x1bW5f ZW5jcnlwdGlvbl9rZXkiLAorCQkJCQkJCQkJKE5vZGUgKikgbGlzdF9tYWtlMihtYWtlU3Ry aW5nKG5zcG5hbWUpLCBtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cihjZWtmb3JtLT5jZWtu YW1lKSkpKSwKKwkJCQkJCQkJCS0xKSwKKwkJCQkJCW1ha2VEZWZFbGVtKCJlbmNyeXB0aW9u X3R5cGUiLAorCQkJCQkJCQkJKE5vZGUgKikgbWFrZVR5cGVOYW1lKGF0dHItPmF0dHR5cGlk ID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQgPworCQkJCQkJCQkJCQkJCQkgICJkZXRlcm1pbmlz dGljIiA6ICJyYW5kb21pemVkIiksCisJCQkJCQkJCQktMSksCisJCQkJCQltYWtlRGVmRWxl bSgiYWxnb3JpdGhtIiwKKwkJCQkJCQkJCShOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cChn ZXRfY2VrYWxnX25hbWUoYXR0ci0+YXR0dHlwbW9kKSkpLAorCQkJCQkJCQkJLTEpKTsKKwor CVJlbGVhc2VTeXNDYWNoZShjZWt0dXApOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoK ICAqIFN0cnVjdCB3aXRoIGNvbnRleHQgb2YgbmV3IHBhcnRpdGlvbiBmb3IgaW5zZXJ0IHJv d3MgZnJvbSBzcGxpdGVkIHBhcnRpdGlvbgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUu YwppbmRleCAwMTE1MWNhMmI1YS4uMTkzNjJlMzQxNjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFy aWFibGUuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncHJlZmV0 Y2hlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29t bW9uL3N0cmluZy5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAi bWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwb3N0 bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKQEAgLTcwNiw3ICs3MDcsMTEgQEAgY2hlY2tfY2xpZW50 X2VuY29kaW5nKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJj ZSkKIAkgKi8KIAlpZiAoUHJlcGFyZUNsaWVudEVuY29kaW5nKGVuY29kaW5nKSA8IDApCiAJ ewotCQlpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCisJCWlmIChNeVByb2NQb3J0LT5jb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiQ29udmVy c2lvbiBiZXR3ZWVuICVzIGFuZCAlcyBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5j cnlwdGlvbiBpcyBlbmFibGVkLiIsCisJCQkJCQkJCWNhbm9uaWNhbF9uYW1lLAorCQkJCQkJ CQlHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpKTsKKwkJZWxzZSBpZiAoSXNUcmFuc2FjdGlv blN0YXRlKCkpCiAJCXsKIAkJCS8qIE11c3QgYmUgYSBnZW51aW5lIG5vLXN1Y2gtY29udmVy c2lvbiBwcm9ibGVtICovCiAJCQlHVUNfY2hlY2tfZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3 LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKaW5kZXggZmRhZDgzMzgzMjQuLjg2 ZjAwNmQ3YzI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK ICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgog CiBzdGF0aWMgdm9pZCBjaGVja1ZpZXdDb2x1bW5zKFR1cGxlRGVzYyBuZXdkZXNjLCBUdXBs ZURlc2Mgb2xkZGVzYyk7CiAKQEAgLTgzLDYgKzg0LDI0IEBAIERlZmluZVZpcnR1YWxSZWxh dGlvbihSYW5nZVZhciAqcmVsYXRpb24sIExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCiAJ CQllbHNlCiAJCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKGRlZi0+Y29sbE9pZCkpOwogCisJCQlp ZiAodHlwZV9pc19lbmNyeXB0ZWQoZXhwclR5cGUoKE5vZGUgKikgdGxlLT5leHByKSkpCisJ CQl7CisJCQkJSGVhcFR1cGxlCXRwOworCisJCQkJaWYgKCF0bGUtPnJlc29yaWd0YmwgfHwg IXRsZS0+cmVzb3JpZ2NvbCkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkJZXJybXNnKCJ1 bmRlcmx5aW5nIHRhYmxlIGFuZCBjb2x1bW4gY291bGQgbm90IGJlIGRldGVybWluZWQgZm9y IGVuY3J5cHRlZCB2aWV3IGNvbHVtbiIpKTsKKworCQkJCXRwID0gU2VhcmNoU3lzQ2FjaGUy KEFUVE5VTSwgT2JqZWN0SWRHZXREYXR1bSh0bGUtPnJlc29yaWd0YmwpLCBJbnQxNkdldERh dHVtKHRsZS0+cmVzb3JpZ2NvbCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0cCkp CisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBhdHRyaWJ1dGUg JWQgb2YgcmVsYXRpb24gJXUiLCB0bGUtPnJlc29yaWdjb2wsIHRsZS0+cmVzb3JpZ3RibCk7 CisJCQkJZGVmLT50eXBlTmFtZSA9IG1ha2VUeXBlTmFtZUZyb21PaWQoRGF0dW1HZXRPYmpl Y3RJZChTeXNDYWNoZUdldEF0dHJOb3ROdWxsKEFUVE5VTSwgdHAsIEFudW1fcGdfYXR0cmli dXRlX2F0dHVzZXJ0eXBpZCkpLAorCQkJCQkJCQkJCQkJCURhdHVtR2V0SW50MzIoU3lzQ2Fj aGVHZXRBdHRyTm90TnVsbChBVFROVU0sIHRwLCBBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2Vy dHlwbW9kKSkpOworCQkJCWRlZi0+ZW5jcnlwdGlvbiA9IG1ha2VDb2x1bW5FbmNyeXB0aW9u KHRwKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCiAJCQlhdHRyTGlzdCA9 IGxhcHBlbmQoYXR0ckxpc3QsIGRlZik7CiAJCX0KIAl9CkBAIC0xMDAsNiArMTE5LDcgQEAg RGVmaW5lVmlydHVhbFJlbGF0aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3Qs IGJvb2wgcmVwbGFjZSwKIAl7CiAJCVJlbGF0aW9uCXJlbDsKIAkJVHVwbGVEZXNjCWRlc2Ny aXB0b3I7CisJCUZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlICpkZXNjX2V4dHJhOwogCQlM aXN0CSAgICphdGNtZHMgPSBOSUw7CiAJCUFsdGVyVGFibGVDbWQgKmF0Y21kOwogCQlPYmpl Y3RBZGRyZXNzIGFkZHJlc3M7CkBAIC0xMjksNyArMTQ5LDcgQEAgRGVmaW5lVmlydHVhbFJl bGF0aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwK IAkJICogdmVyaWZ5IHRoYXQgdGhlIG9sZCBjb2x1bW4gbGlzdCBpcyBhbiBpbml0aWFsIHBy ZWZpeCBvZiB0aGUgbmV3CiAJCSAqIGNvbHVtbiBsaXN0LgogCQkgKi8KLQkJZGVzY3JpcHRv ciA9IEJ1aWxkRGVzY0ZvclJlbGF0aW9uKGF0dHJMaXN0KTsKKwkJZGVzY3JpcHRvciA9IEJ1 aWxkRGVzY0ZvclJlbGF0aW9uKGF0dHJMaXN0LCAmZGVzY19leHRyYSk7CiAJCWNoZWNrVmll d0NvbHVtbnMoZGVzY3JpcHRvciwgcmVsLT5yZF9hdHQpOwogCiAJCS8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCmluZGV4IGUxZGYxODk0YjY5Li4xOGI5YmZjMmRlYiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMKQEAgLTQ1MTIsNiArNDUxMiw4IEBAIHJhd19leHByZXNzaW9uX3RyZWVf d2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAogCQkJCWlmIChXQUxLKGNvbGRlZi0+dHlwZU5h bWUpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhjb2xkZWYtPmVuY3J5cHRp b24pKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhjb2xkZWYtPnJhd19kZWZh dWx0KSkKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsoY29sZGVmLT5jb2xsQ2xh dXNlKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDA1MjNmN2U4OTFlLi4yYjU1MzdkMDIwZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC0yODMsNiArMjgzLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1 cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKIAogJXR5cGUgPG5vZGU+CXN0bXQgdG9wbGV2ZWxfc3RtdCBzY2hlbWFfc3RtdCBy b3V0aW5lX2JvZHlfc3RtdAogCQlBbHRlckV2ZW50VHJpZ1N0bXQgQWx0ZXJDb2xsYXRpb25T dG10CisJCUFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgQWx0ZXJDb2x1bW5NYXN0ZXJL ZXlTdG10CiAJCUFsdGVyRGF0YWJhc2VTdG10IEFsdGVyRGF0YWJhc2VTZXRTdG10IEFsdGVy RG9tYWluU3RtdCBBbHRlckVudW1TdG10CiAJCUFsdGVyRmR3U3RtdCBBbHRlckZvcmVpZ25T ZXJ2ZXJTdG10IEFsdGVyR3JvdXBTdG10CiAJCUFsdGVyT2JqZWN0RGVwZW5kc1N0bXQgQWx0 ZXJPYmplY3RTY2hlbWFTdG10IEFsdGVyT3duZXJTdG10CkBAIC00MjQsNiArNDI1LDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogJXR5cGUgPGxpc3Q+CXBhcnNlX3RvcGxl dmVsIHN0bXRtdWx0aSByb3V0aW5lX2JvZHlfc3RtdF9saXN0CiAJCQkJT3B0VGFibGVFbGVt ZW50TGlzdCBUYWJsZUVsZW1lbnRMaXN0IE9wdEluaGVyaXQgZGVmaW5pdGlvbgorCQkJCWxp c3Rfb2ZfZGVmaW5pdGlvbnMKIAkJCQlPcHRUeXBlZFRhYmxlRWxlbWVudExpc3QgVHlwZWRU YWJsZUVsZW1lbnRMaXN0CiAJCQkJcmVsb3B0aW9ucyBvcHRfcmVsb3B0aW9ucwogCQkJCU9w dFdpdGggb3B0X2RlZmluaXRpb24gZnVuY19hcmdzIGZ1bmNfYXJnc19saXN0CkBAIC01OTks NiArNjAxLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglU YWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlCiAldHlwZSA8aXZhbD4JVGFibGVMaWtl T3B0aW9uTGlzdCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29tcHJl c3Npb24gb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1u X3N0b3JhZ2UKKyV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2VuY3J5cHRpb24KICV0eXBlIDxs aXN0PglDb2xRdWFsTGlzdAogJXR5cGUgPG5vZGU+CUNvbENvbnN0cmFpbnQgQ29sQ29uc3Ry YWludEVsZW0gQ29uc3RyYWludEF0dHIKICV0eXBlIDxpdmFsPglrZXlfbWF0Y2gKQEAgLTcy Nyw3ICs3MzAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCURFVEFDSCBESUNU SU9OQVJZIERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNUIERPIERPQ1VNRU5UX1AgRE9NQUlO X1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNP RElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVSUk9SX1AgRVNDQVBFCisJRUFDSCBFTFNF IEVNUFRZX1AgRU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVEVEIEVOQ1JZUFRJT04gRU5EX1Ag RU5VTV9QIEVSUk9SX1AgRVNDQVBFCiAJRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVESU5H IEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04KIAlFWFRFTlNJ T04gRVhURVJOQUwgRVhUUkFDVAogCkBAIC03NTIsNyArNzU1LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJ S0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAg TE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAotCU1BUFBJTkcgTUFUQ0ggTUFUQ0hF RCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1FVEhPRAorCU1B UFBJTkcgTUFTVEVSIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdF IE1FUkdFX0FDVElPTiBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxVRSBNT0RFIE1PTlRIX1Ag TU9WRQogCiAJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVTVEVEIE5F VyBORVhUIE5GQyBORkQgTkZLQyBORktEIE5PCkBAIC0xMDA1LDYgKzEwMDgsOCBAQCB0b3Bs ZXZlbF9zdG10Ogogc3RtdDoKIAkJCUFsdGVyRXZlbnRUcmlnU3RtdAogCQkJfCBBbHRlckNv bGxhdGlvblN0bXQKKwkJCXwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAorCQkJfCBB bHRlckNvbHVtbk1hc3RlcktleVN0bXQKIAkJCXwgQWx0ZXJEYXRhYmFzZVN0bXQKIAkJCXwg QWx0ZXJEYXRhYmFzZVNldFN0bXQKIAkJCXwgQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQK QEAgLTIwMzEsNyArMjAzNiw3IEBAIENoZWNrUG9pbnRTdG10OgogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICAqCi0gKiBESVNDQVJEIHsgQUxMIHwgVEVNUCB8IFBMQU5TIHwgU0VR VUVOQ0VTIH0KKyAqIERJU0NBUkQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAK QEAgLTIwNTcsNiArMjA2MiwxMyBAQCBEaXNjYXJkU3RtdDoKIAkJCQkJbi0+dGFyZ2V0ID0g RElTQ0FSRF9URU1QOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVND QVJEIENPTFVNTiBFTkNSWVBUSU9OIEtFWVMKKwkJCQl7CisJCQkJCURpc2NhcmRTdG10ICpu ID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOworCisJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRf Q09MVU1OX0VOQ1JZUFRJT05fS0VZUzsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K IAkJCXwgRElTQ0FSRCBQTEFOUwogCQkJCXsKIAkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtl Tm9kZShEaXNjYXJkU3RtdCk7CkBAIC0zODIxLDE0ICszODMzLDE1IEBAIFR5cGVkVGFibGVF bGVtZW50OgogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsgfQogCQk7CiAK LWNvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1 bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFsTGlzdAorY29s dW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX2VuY3J5cHRpb24gb3B0X2NvbHVt bl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9u cyBDb2xRdWFsTGlzdAogCQkJCXsKIAkJCQkJQ29sdW1uRGVmICpuID0gbWFrZU5vZGUoQ29s dW1uRGVmKTsKIAogCQkJCQluLT5jb2xuYW1lID0gJDE7CiAJCQkJCW4tPnR5cGVOYW1lID0g JDI7Ci0JCQkJCW4tPnN0b3JhZ2VfbmFtZSA9ICQzOwotCQkJCQluLT5jb21wcmVzc2lvbiA9 ICQ0OworCQkJCQluLT5lbmNyeXB0aW9uID0gJDM7CisJCQkJCW4tPnN0b3JhZ2VfbmFtZSA9 ICQ0OworCQkJCQluLT5jb21wcmVzc2lvbiA9ICQ1OwogCQkJCQluLT5pbmhjb3VudCA9IDA7 CiAJCQkJCW4tPmlzX2xvY2FsID0gdHJ1ZTsKIAkJCQkJbi0+aXNfbm90X251bGwgPSBmYWxz ZTsKQEAgLTM4MzcsOCArMzg1MCw4IEBAIGNvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0 X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyCiAJ CQkJCW4tPnJhd19kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29va2VkX2RlZmF1bHQgPSBO VUxMOwogCQkJCQluLT5jb2xsT2lkID0gSW52YWxpZE9pZDsKLQkJCQkJbi0+ZmR3b3B0aW9u cyA9ICQ1OwotCQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ2LCAmbi0+Y29uc3RyYWludHMsICZu LT5jb2xsQ2xhdXNlLAorCQkJCQluLT5mZHdvcHRpb25zID0gJDY7CisJCQkJCVNwbGl0Q29s UXVhbExpc3QoJDcsICZuLT5jb25zdHJhaW50cywgJm4tPmNvbGxDbGF1c2UsCiAJCQkJCQkJ CQkgeXlzY2FubmVyKTsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwpAQCAtMzg5NSw2ICszOTA4LDExIEBAIG9wdF9jb2x1bW5fY29tcHJlc3Npb246 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwogCitvcHRfY29s dW1uX2VuY3J5cHRpb246CisJCQlFTkNSWVBURUQgV0lUSCAnKCcgZGVmX2xpc3QgJyknCQkJ eyAkJCA9ICQ0OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJ OworCiBjb2x1bW5fc3RvcmFnZToKIAkJCVNUT1JBR0UgQ29sSWQJCQkJCQkJeyAkJCA9ICQy OyB9CiAJCQl8IFNUT1JBR0UgREVGQVVMVAkJCQkJCXsgJCQgPSBwc3RyZHVwKCJkZWZhdWx0 Iik7IH0KQEAgLTQxNTgsNiArNDE3Niw3IEBAIFRhYmxlTGlrZU9wdGlvbjoKIAkJCQl8IENP TVBSRVNTSU9OCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfQ09NUFJFU1NJT047IH0KIAkJ CQl8IENPTlNUUkFJTlRTCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfQ09OU1RSQUlOVFM7 IH0KIAkJCQl8IERFRkFVTFRTCQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX0RFRkFVTFRT OyB9CisJCQkJfCBFTkNSWVBURUQJCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfRU5DUllQ VEVEOyB9CiAJCQkJfCBJREVOVElUWV9QCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfSURF TlRJVFk7IH0KIAkJCQl8IEdFTkVSQVRFRAkJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9H RU5FUkFURUQ7IH0KIAkJCQl8IElOREVYRVMJCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0Vf SU5ERVhFUzsgfQpAQCAtNjQzNSw2ICs2NDU0LDMzIEBAIERlZmluZVN0bXQ6CiAJCQkJCW4t PmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQor CQkJfCBDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFueV9uYW1lIFdJVEggVkFMVUVT IGxpc3Rfb2ZfZGVmaW5pdGlvbnMKKwkJCQl7CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtl Tm9kZShEZWZpbmVTdG10KTsKKworCQkJCQluLT5raW5kID0gT0JKRUNUX0NFSzsKKwkJCQkJ bi0+ZGVmbmFtZXMgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ4OworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgYW55 X25hbWUKKwkJCQl7CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10 KTsKKworCQkJCQluLT5raW5kID0gT0JKRUNUX0NNSzsKKwkJCQkJbi0+ZGVmbmFtZXMgPSAk NTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9IE5JTDsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOwor CQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFueV9uYW1lIFdJVEggZGVm aW5pdGlvbgorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0 bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ01LOworCQkJCQluLT5kZWZuYW1lcyA9 ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gJDc7CisJCQkJCSQkID0gKE5vZGUgKikgbjsK KwkJCQl9CiAJCTsKIAogZGVmaW5pdGlvbjogJygnIGRlZl9saXN0ICcpJwkJCQkJCXsgJCQg PSAkMjsgfQpAQCAtNjQ1NCw2ICs2NTAwLDEwIEBAIGRlZl9lbGVtOglDb2xMYWJlbCAnPScg ZGVmX2FyZwogCQkJCX0KIAkJOwogCitsaXN0X29mX2RlZmluaXRpb25zOiBkZWZpbml0aW9u CQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IGxpc3Rfb2ZfZGVmaW5pdGlv bnMgJywnIGRlZmluaXRpb24JeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQk7CisKIC8q IE5vdGU6IGFueSBzaW1wbGUgaWRlbnRpZmllciB3aWxsIGJlIHJldHVybmVkIGFzIGEgdHlw ZSBuYW1lISAqLwogZGVmX2FyZzoJZnVuY190eXBlCQkJCQkJeyAkJCA9IChOb2RlICopICQx OyB9CiAJCQl8IHJlc2VydmVkX2tleXdvcmQJCQkJeyAkJCA9IChOb2RlICopIG1ha2VTdHJp bmcocHN0cmR1cCgkMSkpOyB9CkBAIC02OTkyLDYgKzcwNDIsOCBAQCBvYmplY3RfdHlwZV9h bnlfbmFtZToKIAkJCXwgSU5ERVgJCQkJCQkJCQl7ICQkID0gT0JKRUNUX0lOREVYOyB9CiAJ CQl8IEZPUkVJR04gVEFCTEUJCQkJCQkJeyAkJCA9IE9CSkVDVF9GT1JFSUdOX1RBQkxFOyB9 CiAJCQl8IENPTExBVElPTgkJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT0xMQVRJT047IH0KKwkJ CXwgQ09MVU1OIEVOQ1JZUFRJT04gS0VZCQkJCQl7ICQkID0gT0JKRUNUX0NFSzsgfQorCQkJ fCBDT0xVTU4gTUFTVEVSIEtFWQkJCQkJCXsgJCQgPSBPQkpFQ1RfQ01LOyB9CiAJCQl8IENP TlZFUlNJT05fUAkJCQkJCQl7ICQkID0gT0JKRUNUX0NPTlZFUlNJT047IH0KIAkJCXwgU1RB VElTVElDUwkJCQkJCQl7ICQkID0gT0JKRUNUX1NUQVRJU1RJQ19FWFQ7IH0KIAkJCXwgVEVY VF9QIFNFQVJDSCBQQVJTRVIJCQkJCXsgJCQgPSBPQkpFQ1RfVFNQQVJTRVI7IH0KQEAgLTc4 MDMsNiArNzg1NSwyNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7 CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlf bmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikg cGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CisKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xf VEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9DRUs7CisJCQkJCW4t Pm9ianMgPSAkNDsKKwkJCQkJJCQgPSBuOworCQkJCX0KKwkJCXwgQ09MVU1OIE1BU1RFUiBL RVkgYW55X25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFy Z2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCisJCQkJCW4tPnRhcmd0eXBl ID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfQ01LOwor CQkJCQluLT5vYmpzID0gJDQ7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IERBVEFCQVNF IG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICop IHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAtOTMzMiw2ICs5NDAyLDI2IEBAIFJl bmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5B TUUgVE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlf bmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VO b2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfQ0VLOwor CQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4Owor CQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNURVIgS0VZIGFueV9uYW1lIFJFTkFNRSBUTyBu YW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7 CisKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9 IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJCXwgQUxURVIg Q09OVkVSU0lPTl9QIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCiAJCQkJewogCQkJCQlSZW5h bWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CkBAIC0xMDAwOSw2ICsxMDA5OSwy NiBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxz ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0 ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10 KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX0NFSzsKKwkJCQkJbi0+b2JqZWN0 ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ4OworCQkJCQluLT5taXNz aW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFM VEVSIENPTFVNTiBNQVNURVIgS0VZIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsK KwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RT Y2hlbWFTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX0NNSzsKKwkJCQkJ bi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ4OworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKIAkJ CQl7CiAJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2Jq ZWN0U2NoZW1hU3RtdCk7CkBAIC0xMDM0Miw2ICsxMDQ1MiwyNCBAQCBBbHRlck93bmVyU3Rt dDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJv bGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBPV05F UiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9DRUs7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdvd25lciA9ICQ4 OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSBhbnlfbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJP d25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2Jq ZWN0VHlwZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1Owor CQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQog CQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIgVE8gUm9sZVNwZWMKIAkJ CQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQp OwpAQCAtMTE1MTIsNiArMTE2NDAsNTIgQEAgQWx0ZXJDb2xsYXRpb25TdG10OiBBTFRFUiBD T0xMQVRJT04gYW55X25hbWUgUkVGUkVTSCBWRVJTSU9OX1AKIAkJOwogCiAKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkK KyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29sdW1uRW5jcnlwdGlv bktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgQURE X1AgVkFMVUVfUCBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5cHRp b25LZXlTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCk7 CisKKwkJCQkJbi0+Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSBmYWxzZTsKKwkJ CQkJbi0+ZGVmaW5pdGlvbiA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgRFJPUCBWQUxVRV9Q IGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQg Km4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10KTsKKworCQkJCQlu LT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IHRydWU7CisJCQkJCW4tPmRlZmlu aXRpb24gPSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCisKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gTUFTVEVSIEtF WQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQWx0ZXJDb2x1bW5NYXN0ZXJL ZXlTdG10OgorCQkJQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgYW55X25hbWUgZGVmaW5pdGlv bgorCQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10KTsKKworCQkJCQluLT5jbWtuYW1lID0gJDU7CisJ CQkJCW4tPmRlZmluaXRpb24gPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K KwkJOworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlBTFRFUiBTWVNU RU0KQEAgLTE3NjM5LDYgKzE3ODEzLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBF TkFCTEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQVElP TgogCQkJfCBFTlVNX1AKIAkJCXwgRVJST1JfUAogCQkJfCBFU0NBUEUKQEAgLTE3NzA3LDYg KzE3ODgyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMT0NLRUQKIAkJCXwgTE9H R0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1BVENICiAJCQl8IE1BVENI RUQKIAkJCXwgTUFURVJJQUxJWkVECkBAIC0xODIxOCw2ICsxODM5NCw3IEBAIGJhcmVfbGFi ZWxfa2V5d29yZDoKIAkJCXwgRU5BQkxFX1AKIAkJCXwgRU5DT0RJTkcKIAkJCXwgRU5DUllQ VEVECisJCQl8IEVOQ1JZUFRJT04KIAkJCXwgRU5EX1AKIAkJCXwgRU5VTV9QCiAJCQl8IEVS Uk9SX1AKQEAgLTE4MzIyLDYgKzE4NDk5LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJ fCBMT0NLRUQKIAkJCXwgTE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8 IE1BVENICiAJCQl8IE1BVENIRUQKIAkJCXwgTUFURVJJQUxJWkVECmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9wYXJhbS5jCmluZGV4IGRiZjFhN2RmZjA4Li5hMGI2YTkwNWJkMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfcGFyYW0uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKIApAQCAtMzU3LDMgKzM1OCwxNTkgQEAgcXVlcnlfY29udGFpbnNfZXh0ZXJuX3Bh cmFtc193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1zX3dh bGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KKworLyoKKyAqIFdhbGsgYSBxdWVyeSB0 cmVlIGFuZCBmaW5kIG91dCB3aGF0IHRhYmxlcyBhbmQgY29sdW1ucyBhIHBhcmFtZXRlciBp cworICogYXNzb2NpYXRlZCB3aXRoLgorICoKKyAqIFdlIG5lZWQgdG8gZmluZCAxKSBwYXJh bWV0ZXJzIHdyaXR0ZW4gZGlyZWN0bHkgaW50byBhIHRhYmxlIGNvbHVtbiwgYW5kIDIpCisg KiBiaW5hcnkgcHJlZGljYXRlcyByZWxhdGluZyBhIHBhcmFtZXRlciB0byBhIHRhYmxlIGNv bHVtbi4KKyAqCisgKiBXZSBqdXN0IG5lZWQgdG8gZmluZCBWYXIgYW5kIFBhcmFtIG5vZGVz IGluIGFwcHJvcHJpYXRlIHBsYWNlcy4gIFdlIGRvbid0CisgKiBuZWVkIHRvIGRvIGhhcmRl ciB0aGluZ3MgbGlrZSBsb29raW5nIHRocm91Z2ggY2FzdHMsIHNpbmNlIHRoaXMgaXMgdXNl ZCBmb3IKKyAqIGNvbHVtbiBlbmNyeXB0aW9uLCBhbmQgZW5jcnlwdGVkIGNvbHVtbnMgY2Fu J3QgYmUgdXNlZnVsbHkgY2FzdCB0bworICogYW55dGhpbmcuCisgKi8KKworc3RydWN0IGZp bmRfcGFyYW1fb3JpZ3NfY29udGV4dAoreworCWNvbnN0IFF1ZXJ5ICpxdWVyeTsKKwlPaWQJ CSAgICpwYXJhbV9vcmlnX3RibHM7CisJQXR0ck51bWJlciAqcGFyYW1fb3JpZ19jb2xzOwor fTsKKworc3RhdGljIGJvb2wKK2ZpbmRfcGFyYW1fb3JpZ3Nfd2Fsa2VyKE5vZGUgKm5vZGUs IHN0cnVjdCBmaW5kX3BhcmFtX29yaWdzX2NvbnRleHQgKmNvbnRleHQpCit7CisJaWYgKG5v ZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBPcEV4cHIp IHx8IElzQShub2RlLCBEaXN0aW5jdEV4cHIpIHx8IElzQShub2RlLCBOdWxsSWZFeHByKSkK Kwl7CisJCU9wRXhwcgkgICAqb3BleHByID0gKE9wRXhwciAqKSBub2RlOworCisJCWlmIChs aXN0X2xlbmd0aChvcGV4cHItPmFyZ3MpID09IDIpCisJCXsKKwkJCU5vZGUJICAgKmxleHBy ID0gbGluaXRpYWwob3BleHByLT5hcmdzKTsKKwkJCU5vZGUJICAgKnJleHByID0gbHNlY29u ZChvcGV4cHItPmFyZ3MpOworCQkJVmFyCQkgICAqdiA9IE5VTEw7CisJCQlQYXJhbQkgICAq cCA9IE5VTEw7CisKKwkJCWlmIChJc0EobGV4cHIsIFZhcikgJiYgSXNBKHJleHByLCBQYXJh bSkpCisJCQl7CisJCQkJdiA9IGNhc3ROb2RlKFZhciwgbGV4cHIpOworCQkJCXAgPSBjYXN0 Tm9kZShQYXJhbSwgcmV4cHIpOworCQkJfQorCQkJZWxzZSBpZiAoSXNBKHJleHByLCBWYXIp ICYmIElzQShsZXhwciwgUGFyYW0pKQorCQkJeworCQkJCXYgPSBjYXN0Tm9kZShWYXIsIHJl eHByKTsKKwkJCQlwID0gY2FzdE5vZGUoUGFyYW0sIGxleHByKTsKKwkJCX0KKworCQkJaWYg KHYgJiYgcCkKKwkJCXsKKwkJCQlSYW5nZVRibEVudHJ5ICpydGU7CisKKwkJCQlydGUgPSBy dF9mZXRjaCh2LT52YXJubywgY29udGV4dC0+cXVlcnktPnJ0YWJsZSk7CisJCQkJaWYgKHJ0 ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04pCisJCQkJeworCQkJCQljb250ZXh0LT5wYXJh bV9vcmlnX3RibHNbcC0+cGFyYW1pZCAtIDFdID0gcnRlLT5yZWxpZDsKKwkJCQkJY29udGV4 dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHYtPnZhcmF0dG5vOworCQkJ CX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBUYXJnZXRF bnRyeSBpbiBhIHF1ZXJ5IHdpdGggYSByZXN1bHQgcmVsYXRpb24KKwkgKi8KKwlpZiAoSXNB KG5vZGUsIFRhcmdldEVudHJ5KSAmJiBjb250ZXh0LT5xdWVyeS0+cmVzdWx0UmVsYXRpb24g PiAwKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIG5vZGU7CisJ CVJhbmdlVGJsRW50cnkgKnJlc3J0ZTsKKworCQlyZXNydGUgPSBydF9mZXRjaChjb250ZXh0 LT5xdWVyeS0+cmVzdWx0UmVsYXRpb24sIGNvbnRleHQtPnF1ZXJ5LT5ydGFibGUpOworCQlp ZiAocmVzcnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwkJeworCQkJRXhwcgkgICAq ZXhwciA9IHRlLT5leHByOworCisJCQkvKgorCQkJICogSWYgaXQncyBhIFJlbGFiZWxUeXBl LCBsb29rIGluc2lkZS4gIChGb3IgZW5jcnlwdGVkIGNvbHVtbnMsCisJCQkgKiB0aGlzIHdv dWxkIHR5cGljYWxseSBiZSBhIHR5cG1vZCBhZGp1c3RtZW50LikKKwkJCSAqLworCQkJaWYg KElzQShleHByLCBSZWxhYmVsVHlwZSkpCisJCQkJZXhwciA9IGNhc3ROb2RlKFJlbGFiZWxU eXBlLCBleHByKS0+YXJnOworCisJCQkvKgorCQkJICogUGFyYW0gZGlyZWN0bHkgaW4gYSB0 YXJnZXQgbGlzdAorCQkJICovCisJCQlpZiAoSXNBKGV4cHIsIFBhcmFtKSkKKwkJCXsKKwkJ CQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBleHByOworCisJCQkJY29udGV4dC0+cGFyYW1f b3JpZ190YmxzW3AtPnBhcmFtaWQgLSAxXSA9IHJlc3J0ZS0+cmVsaWQ7CisJCQkJY29udGV4 dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHRlLT5yZXNubzsKKwkJCX0K KworCQkJLyoKKwkJCSAqIElmIGl0J3MgYSBWYXIsIGNoZWNrIHdoZXRoZXIgaXQgY29ycmVz cG9uZHMgdG8gYSBWQUxVRVMgbGlzdAorCQkJICogd2l0aCB0b3AtbGV2ZWwgcGFyYW1ldGVy cy4gIFRoaXMgY292ZXJzIG11bHRpLXJvdyBJTlNFUlRTLgorCQkJICovCisJCQllbHNlIGlm IChJc0EoZXhwciwgVmFyKSkKKwkJCXsKKwkJCQlWYXIJCSAgICp2ID0gKFZhciAqKSBleHBy OworCQkJCVJhbmdlVGJsRW50cnkgKnNyY3J0ZTsKKworCQkJCXNyY3J0ZSA9IHJ0X2ZldGNo KHYtPnZhcm5vLCBjb250ZXh0LT5xdWVyeS0+cnRhYmxlKTsKKwkJCQlpZiAoc3JjcnRlLT5y dGVraW5kID09IFJURV9WQUxVRVMpCisJCQkJeworCQkJCQlMaXN0Q2VsbCAgICpsYzsKKwor CQkJCQlmb3JlYWNoKGxjLCBzcmNydGUtPnZhbHVlc19saXN0cykKKwkJCQkJeworCQkJCQkJ TGlzdAkgICAqdmFsdWVzX2xpc3QgPSBsZmlyc3Rfbm9kZShMaXN0LCBsYyk7CisJCQkJCQlF eHByCSAgICp2YWx1ZSA9IGxpc3RfbnRoKHZhbHVlc19saXN0LCB2LT52YXJhdHRubyAtIDEp OworCisJCQkJCQlpZiAoSXNBKHZhbHVlLCBSZWxhYmVsVHlwZSkpCisJCQkJCQkJdmFsdWUg PSBjYXN0Tm9kZShSZWxhYmVsVHlwZSwgdmFsdWUpLT5hcmc7CisKKwkJCQkJCWlmIChJc0Eo dmFsdWUsIFBhcmFtKSkKKwkJCQkJCXsKKwkJCQkJCQlQYXJhbQkgICAqcCA9IChQYXJhbSAq KSB2YWx1ZTsKKworCQkJCQkJCWNvbnRleHQtPnBhcmFtX29yaWdfdGJsc1twLT5wYXJhbWlk IC0gMV0gPSByZXNydGUtPnJlbGlkOworCQkJCQkJCWNvbnRleHQtPnBhcmFtX29yaWdfY29s c1twLT5wYXJhbWlkIC0gMV0gPSB0ZS0+cmVzbm87CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9 CisJCQl9CisJCX0KKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmIChJc0Eobm9kZSwgUXVl cnkpKQorCXsKKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLCBm aW5kX3BhcmFtX29yaWdzX3dhbGtlciwgY29udGV4dCwgMCk7CisJfQorCisJcmV0dXJuIGV4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZmluZF9wYXJhbV9vcmlnc193YWxrZXIsIGNv bnRleHQpOworfQorCit2b2lkCitmaW5kX3BhcmFtX29yaWdzKExpc3QgKnF1ZXJ5X2xpc3Qs IE9pZCAqKnBhcmFtX29yaWdfdGJscywgQXR0ck51bWJlciAqKnBhcmFtX29yaWdfY29scykK K3sKKwlzdHJ1Y3QgZmluZF9wYXJhbV9vcmlnc19jb250ZXh0IGNvbnRleHQ7CisJTGlzdENl bGwgICAqbGM7CisKKwljb250ZXh0LnBhcmFtX29yaWdfdGJscyA9ICpwYXJhbV9vcmlnX3Ri bHM7CisJY29udGV4dC5wYXJhbV9vcmlnX2NvbHMgPSAqcGFyYW1fb3JpZ19jb2xzOworCisJ Zm9yZWFjaChsYywgcXVlcnlfbGlzdCkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IGxmaXJz dF9ub2RlKFF1ZXJ5LCBsYyk7CisKKwkJY29udGV4dC5xdWVyeSA9IHF1ZXJ5OworCQlxdWVy eV90cmVlX3dhbGtlcihxdWVyeSwgZmluZF9wYXJhbV9vcmlnc193YWxrZXIsICZjb250ZXh0 LCAwKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVs YXRpb24uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCmluZGV4IDdj YTc5M2EzNjlmLi4wZGEwN2YwZTY4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmMKQEAgLTE5NDUsNyArMTk0NSw3IEBAIGFkZFJhbmdlVGFibGVFbnRyeUZvckZ1bmN0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCSAqIGNvbGRlZmxpc3QgZG9lc24ndCByZXBy ZXNlbnQgYW55dGhpbmcgdGhhdCB3aWxsIGJlIHZpc2libGUgdG8KIAkJCSAqIG90aGVyIHNl c3Npb25zLgogCQkJICovCi0JCQlDaGVja0F0dHJpYnV0ZU5hbWVzVHlwZXModHVwZGVzYywg UkVMS0lORF9DT01QT1NJVEVfVFlQRSwKKwkJCUNoZWNrQXR0cmlidXRlTmFtZXNUeXBlcyh0 dXBkZXNjLCBOVUxMLCBSRUxLSU5EX0NPTVBPU0lURV9UWVBFLAogCQkJCQkJCQkJIENIS0FU WVBFX0FOWVJFQ09SRCk7CiAJCX0KIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGls Y21kLmMKaW5kZXggY2ViYTA2OTkwNTAuLjI2ODBkNmQwNmI2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV91dGlsY21kLmMKQEAgLTEwOTIsNiArMTA5MiwyMCBAQCB0cmFuc2Zvcm1UYWJs ZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0 YWJsZV9saWtlX2NsYQogCQlkZWYgPSBtYWtlQ29sdW1uRGVmKE5hbWVTdHIoYXR0cmlidXRl LT5hdHRuYW1lKSwgYXR0cmlidXRlLT5hdHR0eXBpZCwKIAkJCQkJCQlhdHRyaWJ1dGUtPmF0 dHR5cG1vZCwgYXR0cmlidXRlLT5hdHRjb2xsYXRpb24pOwogCisJCWlmICh0eXBlX2lzX2Vu Y3J5cHRlZChhdHRyaWJ1dGUtPmF0dHR5cGlkKSkKKwkJeworCQkJSGVhcFR1cGxlCXRwOwor CisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihBVFROVU0sIE9iamVjdElkR2V0RGF0dW0oYXR0 cmlidXRlLT5hdHRyZWxpZCksIEludDE2R2V0RGF0dW0oYXR0cmlidXRlLT5hdHRudW0pKTsK KwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIGF0dHJp YnV0ZS0+YXR0bnVtLCBhdHRyaWJ1dGUtPmF0dHJlbGlkKTsKKwkJCWRlZi0+dHlwZU5hbWUg PSBtYWtlVHlwZU5hbWVGcm9tT2lkKERhdHVtR2V0T2JqZWN0SWQoU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChBVFROVU0sIHRwLCBBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2VydHlwaWQpKSwK KwkJCQkJCQkJCQkJCURhdHVtR2V0SW50MzIoU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChBVFRO VU0sIHRwLCBBbnVtX3BnX2F0dHJpYnV0ZV9hdHR1c2VydHlwbW9kKSkpOworCQkJaWYgKHRh YmxlX2xpa2VfY2xhdXNlLT5vcHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfRU5DUllQVEVE KQorCQkJCWRlZi0+ZW5jcnlwdGlvbiA9IG1ha2VDb2x1bW5FbmNyeXB0aW9uKHRwKTsKKwkJ CVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCX0KKwogCQkvKgogCQkgKiBGb3IgY29uc3RyYWlu dHMsIE9OTFkgdGhlIG5vdC1udWxsIGNvbnN0cmFpbnQgaXMgaW5oZXJpdGVkIGJ5IHRoZQog CQkgKiBuZXcgY29sdW1uIGRlZmluaXRpb24gcGVyIFNRTDk5OyBob3dldmVyIHdlIGNhbm5v dCBkbyB0aGF0CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1 cC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9iYWNrZW5kX3N0YXJ0dXAuYwppbmRleCBlZTczZDAx ZTE2Yy4uMzMwMzE3OTViZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvYmFja2Vu ZF9zdGFydHVwLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9iYWNrZW5kX3N0YXJ0dXAuYwpA QCAtNzQzLDEyICs3NDMsMjcgQEAgUHJvY2Vzc1N0YXJ0dXBQYWNrZXQoUG9ydCAqcG9ydCwg Ym9vbCBzc2xfZG9uZSwgYm9vbCBnc3NfZG9uZSkKIAkJCQkJCQkJCXZhbHB0ciksCiAJCQkJ CQkJIGVycmhpbnQoIlZhbGlkIHZhbHVlcyBhcmU6IFwiZmFsc2VcIiwgMCwgXCJ0cnVlXCIs IDEsIFwiZGF0YWJhc2VcIi4iKSkpOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKG5hbWVw dHIsICJfcHFfLmNvbHVtbl9lbmNyeXB0aW9uIikgPT0gMCkKKwkJCXsKKwkJCQkvKgorCQkJ CSAqIFJpZ2h0IG5vdywgdGhlIG9ubHkgYWNjZXB0ZWQgdmFsdWUgaXMgIjEiLiAgVGhpcyBn aXZlcyByb29tCisJCQkJICogdG8gZXhwYW5kIHRoaXMgaW50byBhIHZlcnNpb24gbnVtYmVy LCBmb3IgZXhhbXBsZS4KKwkJCQkgKi8KKwkJCQlpZiAoc3RyY21wKHZhbHB0ciwgIjEiKSA9 PSAwKQorCQkJCQlwb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gdHJ1ZTsKKwkJ CQllbHNlCisJCQkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJIGVycm1zZygiaW52YWxpZCB2YWx1 ZSBmb3IgcGFyYW1ldGVyIFwiJXNcIjogXCIlc1wiIiwKKwkJCQkJCQkJCSJjb2x1bW5fZW5j cnlwdGlvbiIsCisJCQkJCQkJCQl2YWxwdHIpLAorCQkJCQkJCSBlcnJoaW50KCJWYWxpZCB2 YWx1ZXMgYXJlOiAxLiIpKSk7CisJCQl9CiAJCQllbHNlIGlmIChzdHJuY21wKG5hbWVwdHIs ICJfcHFfLiIsIDUpID09IDApCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBBbnkgb3B0aW9uIGJl Z2lubmluZyB3aXRoIF9wcV8uIGlzIHJlc2VydmVkIGZvciB1c2UgYXMgYQotCQkJCSAqIHBy b3RvY29sLWxldmVsIG9wdGlvbiwgYnV0IGF0IHByZXNlbnQgbm8gc3VjaCBvcHRpb25zIGFy ZQotCQkJCSAqIGRlZmluZWQuCisJCQkJICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLgogCQkJ CSAqLwogCQkJCXVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zID0KIAkJCQkJbGFwcGVu ZCh1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucywgcHN0cmR1cChuYW1lcHRyKSk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKaW5kZXggNzZmNDhiMTNkMjAuLjRiZWYyOWUwYzQ0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAibm9kZXMvcHJpbnQu aCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicGFyc2Vy L2FuYWx5emUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcGFyYW0uaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAicGdfZ2V0b3B0LmgiCiAjaW5jbHVkZSAi cGdfdHJhY2UuaCIKQEAgLTc3LDYgKzc4LDcgQEAKICNpbmNsdWRlICJ1dGlscy9tZW11dGls cy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApAQCAtMTg0NSw2 ICsxODQ3LDE2IEBAIGV4ZWNfYmluZF9tZXNzYWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2Fn ZSkKIAkJCWVsc2UKIAkJCQlwZm9ybWF0ID0gMDsJLyogZGVmYXVsdCA9IHRleHQgKi8KIAor CQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBlKSkKKwkJCXsKKwkJCQlpZiAocGZvcm1h dCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4RjA7CisJCQkJZWxzZQorCQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9O KSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgJCVkIGNvcnJlc3BvbmRzIHRvIGFuIGVu Y3J5cHRlZCBjb2x1bW4sIGJ1dCB0aGUgcGFyYW1ldGVyIHZhbHVlIHdhcyBub3QgZW5jcnlw dGVkIiwgcGFyYW1ubyArIDEpKSk7CisJCQl9CisKIAkJCWlmIChwZm9ybWF0ID09IDApCS8q IHRleHQgbW9kZSAqLwogCQkJewogCQkJCU9pZAkJCXR5cGlucHV0OwpAQCAtMjU5Nyw2ICsy NjA5LDggQEAgc3RhdGljIHZvaWQKIGV4ZWNfZGVzY3JpYmVfc3RhdGVtZW50X21lc3NhZ2Uo Y29uc3QgY2hhciAqc3RtdF9uYW1lKQogewogCUNhY2hlZFBsYW5Tb3VyY2UgKnBzcmM7CisJ T2lkCQkgICAqcGFyYW1fb3JpZ190YmxzOworCUF0dHJOdW1iZXIgKnBhcmFtX29yaWdfY29s czsKIAogCS8qCiAJICogU3RhcnQgdXAgYSB0cmFuc2FjdGlvbiBjb21tYW5kLiAoTm90ZSB0 aGF0IHRoaXMgd2lsbCBub3JtYWxseSBjaGFuZ2UKQEAgLTI2NTUsMTEgKzI2NjksNjEgQEAg ZXhlY19kZXNjcmliZV9zdGF0ZW1lbnRfbWVzc2FnZShjb25zdCBjaGFyICpzdG10X25hbWUp CiAJCQkJCQkJCQkJCQkJCSAqIG1lc3NhZ2UgdHlwZSAqLwogCXBxX3NlbmRpbnQxNigmcm93 X2Rlc2NyaXB0aW9uX2J1ZiwgcHNyYy0+bnVtX3BhcmFtcyk7CiAKKwkvKgorCSAqIElmIGNv bHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIGZpbmQgdGhlIGFzc29jaWF0ZWQgdGFibGVz IGFuZCBjb2x1bW5zCisJICogZm9yIGFueSBwYXJhbWV0ZXJzLCBzbyB0aGF0IHdlIGNhbiBk ZXRlcm1pbmUgZW5jcnlwdGlvbiBpbmZvcm1hdGlvbiBmb3IKKwkgKiB0aGVtLgorCSAqLwor CWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHBzcmMtPm51 bV9wYXJhbXMpCisJeworCQlwYXJhbV9vcmlnX3RibHMgPSBwYWxsb2MwX2FycmF5KE9pZCwg cHNyYy0+bnVtX3BhcmFtcyk7CisJCXBhcmFtX29yaWdfY29scyA9IHBhbGxvYzBfYXJyYXko QXR0ck51bWJlciwgcHNyYy0+bnVtX3BhcmFtcyk7CisKKwkJUmV2YWxpZGF0ZUNhY2hlZFF1 ZXJ5KHBzcmMsIE5VTEwpOworCQlmaW5kX3BhcmFtX29yaWdzKHBzcmMtPnF1ZXJ5X2xpc3Qs ICZwYXJhbV9vcmlnX3RibHMsICZwYXJhbV9vcmlnX2NvbHMpOworCX0KKwogCWZvciAoaW50 IGkgPSAwOyBpIDwgcHNyYy0+bnVtX3BhcmFtczsgaSsrKQogCXsKIAkJT2lkCQkJcHR5cGUg PSBwc3JjLT5wYXJhbV90eXBlc1tpXTsKKwkJT2lkCQkJcGNla2lkID0gSW52YWxpZE9pZDsK KwkJaW50CQkJcGNla2FsZyA9IDA7CisJCWludDE2CQlwZmxhZ3MgPSAwOworCisJCWlmIChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlw dGVkKHB0eXBlKSkKKwkJeworCQkJT2lkCQkJcG9yaWd0YmwgPSBwYXJhbV9vcmlnX3RibHNb aV07CisJCQlBdHRyTnVtYmVyCXBvcmlnY29sID0gcGFyYW1fb3JpZ19jb2xzW2ldOworCQkJ SGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgb3JpZ19hdHQ7CisKKwkJCWlm IChwb3JpZ3RibCA9PSBJbnZhbGlkT2lkIHx8IHBvcmlnY29sID09IEludmFsaWRBdHRyTnVt YmVyKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgJCVkIGNvcnJl c3BvbmRzIHRvIGFuIGVuY3J5cHRlZCBjb2x1bW4sIGJ1dCBhbiB1bmRlcmx5aW5nIHRhYmxl IGFuZCBjb2x1bW4gY291bGQgbm90IGJlIGRldGVybWluZWQiLCBpICsgMSkpKTsKKworCQkJ dHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHBvcmlndGJs KSwgSW50MTZHZXREYXR1bShwb3JpZ2NvbCkpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHRwKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmli dXRlICVkIG9mIHJlbGF0aW9uICV1IiwgcG9yaWdjb2wsIHBvcmlndGJsKTsKKwkJCW9yaWdf YXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHApOworCQkJcHR5cGUgPSBE YXR1bUdldE9iamVjdElkKFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQVRUTlVNLCB0cCwgQW51 bV9wZ19hdHRyaWJ1dGVfYXR0dXNlcnR5cGlkKSk7CisJCQlwY2VraWQgPSBEYXR1bUdldE9i amVjdElkKFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQVRUTlVNLCB0cCwgQW51bV9wZ19hdHRy aWJ1dGVfYXR0Y2VrKSk7CisJCQlwY2VrYWxnID0gb3JpZ19hdHQtPmF0dHR5cG1vZDsKKwkJ CVJlbGVhc2VTeXNDYWNoZSh0cCk7CisKKwkJCWlmIChwc3JjLT5wYXJhbV90eXBlc1tpXSA9 PSBQR19FTkNSWVBURURfREVUT0lEKQorCQkJCXBmbGFncyB8PSAweDAwMDE7CisKKwkJCU1h eWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKHBjZWtpZCk7CisJCX0KIAogCQlw cV9zZW5kaW50MzIoJnJvd19kZXNjcmlwdGlvbl9idWYsIChpbnQpIHB0eXBlKTsKKwkJaWYg KE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxX3Nl bmRpbnQzMigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgKGludCkgcGNla2lkKTsKKwkJCXBxX3Nl bmRpbnQzMigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgcGNla2FsZyk7CisJCQlwcV9zZW5kaW50 MTYoJnJvd19kZXNjcmlwdGlvbl9idWYsIHBmbGFncyk7CisJCX0KIAl9CiAJcHFfZW5kbWVz c2FnZV9yZXVzZSgmcm93X2Rlc2NyaXB0aW9uX2J1Zik7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5k ZXggYzZiYjNlNDVkYTQuLmRjMzU1MWZhMGI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjcs NiArMjcsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jbHVzdGVyLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvY29sZW5jY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlv bmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvY29udmVyc2lvbmNtZHMuaCIKQEAgLTEzMSw2ICsxMzIsOCBAQCBDbGFzc2lmeVV0 aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJc3dpdGNoIChub2Rl VGFnKHBhcnNldHJlZSkpCiAJewogCQljYXNlIFRfQWx0ZXJDb2xsYXRpb25TdG10OgorCQlj YXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJY2FzZSBUX0FsdGVyQ29s dW1uTWFzdGVyS2V5U3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0YWJhc2VSZWZyZXNoQ29sbFN0 bXQ6CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlU2V0U3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0 YWJhc2VTdG10OgpAQCAtMTQ1Niw2ICsxNDU5LDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCQlzdG10LT5kZWZpbml0aW9uLAog CQkJCQkJCQkJCQkJCQkJJnNlY29uZGFyeU9iamVjdCk7CiAJCQkJCQkJYnJlYWs7CisJCQkJ CQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsK KwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ0VLKHBzdGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJl YWs7CisJCQkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3Mg PT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ01LKHBzdGF0ZSwgc3RtdCk7CisJ CQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCQkJCQkJQXNz ZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKIAkJCQkJCQlhZGRyZXNzID0gRGVmaW5lQ29sbGF0 aW9uKHBzdGF0ZSwKQEAgLTE5MzIsNiArMTk0MywxNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3co UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCWFkZHJlc3MgPSBBbHRlckNvbGxhdGlvbigoQWx0 ZXJDb2xsYXRpb25TdG10ICopIHBhcnNldHJlZSk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2Ug VF9BbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRlckNv bHVtbkVuY3J5cHRpb25LZXkocHN0YXRlLCAoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3Rt dCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIFRfQWx0ZXJDb2x1bW5N YXN0ZXJLZXlTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRlckNvbHVtbk1hc3RlcktleShwc3Rh dGUsIChBbHRlckNvbHVtbk1hc3RlcktleVN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVh azsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTIyNTMs NiArMjI3MiwxMiBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2Jq dHlwZSkKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1RB QkxFOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCXRhZyA9IENNRFRBR19B TFRFUl9DT0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf Q01LOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJl YWs7CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCQl0YWcgPSBDTURUQUdfQUxURVJf Q09OVkVSU0lPTjsKIAkJCWJyZWFrOwpAQCAtMjY2OCw2ICsyNjkzLDEyIEBAIENyZWF0ZUNv bW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19F WFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOwor CQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfQ09MVU1OX0VO Q1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJ CXRhZyA9IENNRFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQlicmVhazsKIAkJ CQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTI3ODgs NiArMjgxOSwxMiBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQlj YXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MTEFU SU9OOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9IENN RFRBR19DUkVBVEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQlj YXNlIE9CSkVDVF9DTUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RF Ul9LRVk7CisJCQkJCWJyZWFrOwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJ CQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CkBA IC0yOTQ1LDYgKzI5ODIsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkK IAkJCQljYXNlIERJU0NBUkRfQUxMOgogCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9BTEw7 CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgRElTQ0FSRF9DT0xVTU5fRU5DUllQVElPTl9LRVlT OgorCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9DT0xVTU5fRU5DUllQVElPTl9LRVlTOwor CQkJCQlicmVhazsKIAkJCQljYXNlIERJU0NBUkRfUExBTlM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1BMQU5TOwogCQkJCQlicmVhazsKQEAgLTMwOTEsNiArMzEzMSwxNCBAQCBD cmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19BTFRF Ul9DT0xMQVRJT047CiAJCQlicmVhazsKIAorCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0 aW9uS2V5U3RtdDoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xVTU5fRU5DUllQVElPTl9L RVk7CisJCQlicmVhazsKKworCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10Ogor CQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJlYWs7CisK IAkJY2FzZSBUX1ByZXBhcmVTdG10OgogCQkJdGFnID0gQ01EVEFHX1BSRVBBUkU7CiAJCQli cmVhazsKQEAgLTM3MTYsNiArMzc2NCwxNCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAq cGFyc2V0cmVlKQogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKIAorCQljYXNl IFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERM OworCQkJYnJlYWs7CisKKwkJY2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoKKwkJ CWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJCS8qIGFscmVhZHktcGxhbm5l ZCBxdWVyaWVzICovCiAJCWNhc2UgVF9QbGFubmVkU3RtdDoKIAkJCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9h Y2wuYwppbmRleCBkYzEwYjRhNDgzOS4uMDdiY2RlYTc5YWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNs LmMKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVy cy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3JhcHBl ci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKQEAgLTEwNyw2 ICsxMDksMTAgQEAgc3RhdGljIEFjbE1vZGUgY29udmVydF90YWJsZV9wcml2X3N0cmluZyh0 ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3NlcXVlbmNl X3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBdHRyTnVtYmVy IGNvbnZlcnRfY29sdW1uX25hbWUoT2lkIHRhYmxlb2lkLCB0ZXh0ICpjb2x1bW4pOwogc3Rh dGljIEFjbE1vZGUgY29udmVydF9jb2x1bW5fcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBl X3RleHQpOworc3RhdGljIE9pZAljb252ZXJ0X2NvbHVtbl9lbmNyeXB0aW9uX2tleV9uYW1l KHRleHQgKmNla25hbWUpOworc3RhdGljIEFjbE1vZGUgY29udmVydF9jb2x1bW5fZW5jcnlw dGlvbl9rZXlfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOworc3RhdGljIE9p ZAljb252ZXJ0X2NvbHVtbl9tYXN0ZXJfa2V5X25hbWUodGV4dCAqY21rbmFtZSk7CitzdGF0 aWMgQWNsTW9kZSBjb252ZXJ0X2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZfc3RyaW5nKHRleHQg KnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBPaWQJY29udmVydF9kYXRhYmFzZV9uYW1lKHRl eHQgKmRhdGFiYXNlbmFtZSk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X2RhdGFiYXNlX3By aXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBPaWQJY29udmVydF9m b3JlaWduX2RhdGFfd3JhcHBlcl9uYW1lKHRleHQgKmZkd25hbWUpOwpAQCAtODA2LDYgKzgx MiwxNCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQpCiAJ CQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVyX2RlZmF1bHQgPSBB Q0xfQUxMX1JJR0hUU19TRVFVRU5DRTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUs6 CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVyX2RlZmF1bHQg PSBBQ0xfQUxMX1JJR0hUU19DRUs7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgor CQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJCQlvd25lcl9kZWZhdWx0ID0g QUNMX0FMTF9SSUdIVFNfQ01LOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNF OgogCQkJLyogZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBncmFudCBzb21lIHJpZ2h0 cyBieSBkZWZhdWx0ICovCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX0NSRUFURV9URU1QIHwg QUNMX0NPTk5FQ1Q7CkBAIC05MTcsNiArOTMxLDEyIEBAIGFjbGRlZmF1bHRfc3FsKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWNhc2UgJ3MnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9TRVFVRU5D RTsKIAkJCWJyZWFrOworCQljYXNlICdZJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfQ0VLOwor CQkJYnJlYWs7CisJCWNhc2UgJ3knOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9DTUs7CisJCQli cmVhazsKIAkJY2FzZSAnZCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX0RBVEFCQVNFOwogCQkJ YnJlYWs7CkBAIC0yOTQ4LDYgKzI5NjgsMzg0IEBAIGNvbnZlcnRfY29sdW1uX3ByaXZfc3Ry aW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KQogfQogCiAKKy8qCisgKiBoYXNfY29sdW1uX2Vu Y3J5cHRpb25fa2V5X3ByaXZpbGVnZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFt ZWQgImhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlIiBhdCB0aGUgU1FMIGxl dmVsLgorICoJCVRoZXkgdGFrZSB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgbmFtZSwKKyAqCQljZWsgT0lELCB1c2VyIG5hbWUsIHVzZXIgT0lELCBv ciBpbXBsaWNpdCB1c2VyID0gY3VycmVudF91c2VyLgorICoKKyAqCQlUaGUgcmVzdWx0IGlz IGEgYm9vbGVhbiB2YWx1ZTogdHJ1ZSBpZiB1c2VyIGhhcyB0aGUgaW5kaWNhdGVkCisgKgkJ cHJpdmlsZWdlLCBmYWxzZSBpZiBub3QuCisgKi8KKworLyoKKyAqIGhhc19jb2x1bW5fZW5j cnlwdGlvbl9rZXlfcHJpdmlsZWdlX25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmls ZWdlcyBvbiBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBnaXZlbgorICoJCW5hbWUgdXNlcm5h bWUsIHRleHQgY2VrbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFz X2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfbmFtZV9uYW1lKFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJTmFtZQkJdXNlcm5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwl0ZXh0 CSAgICpjZWtuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90 eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lk CQkJY2VraWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJ cm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCp1c2VybmFtZSkpOwor CWNla2lkID0gY29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfbmFtZShjZWtuYW1lKTsK Kwltb2RlID0gY29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdl9zdHJpbmcocHJp dl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbkVu Y0tleVJlbGF0aW9uSWQsIGNla2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdfUkVUVVJOX0JP T0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19jb2x1bW5f ZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVn ZXMgb24gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZ2l2ZW4KKyAqCQl0ZXh0IGNla25hbWUg YW5kIHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8K K0RhdHVtCitoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9uYW1lKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqY2VrbmFtZSA9IFBHX0dFVEFSR19URVhUX1BQ KDApOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7 CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCWNla2lkOworCUFjbE1vZGUJCW1vZGU7CisJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCWNla2lkID0g Y29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfbmFtZShjZWtuYW1lKTsKKwltb2RlID0g Y29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdl9zdHJpbmcocHJpdl90eXBlX3Rl eHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbkVuY0tleVJlbGF0 aW9uSWQsIGNla2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVz dWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19jb2x1bW5fZW5jcnlwdGlv bl9rZXlfcHJpdmlsZWdlX25hbWVfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24g YSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZ2l2ZW4KKyAqCQluYW1lIHVzZW5hbWUsIGNvbHVt biBlbmNyeXB0aW9uIGtleSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0K K2hhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlX25hbWVfaWQoUEdfRlVOQ1RJ T05fQVJHUykKK3sKKwlOYW1lCQl1c2VybmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCU9p ZAkJCWNla2lkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQlt b2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRf b3JfcHVibGljKE5hbWVTdHIoKnVzZXJuYW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfY29sdW1u X2VuY3J5cHRpb25fa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWlmICgh U2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShjZWtpZCkp KQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhh c19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlX2lkCisgKgkJQ2hlY2sgdXNlciBw cml2aWxlZ2VzIG9uIGEgY29sdW1uIGVuY3J5cHRpb24ga2V5IGdpdmVuCisgKgkJY29sdW1u IGVuY3J5cHRpb24ga2V5IG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRf dXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVtCitoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5 X3ByaXZpbGVnZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCWNla2lkID0gUEdf R0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19U RVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3Vs dAlhY2xyZXN1bHQ7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVy dF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOwor CisJaWYgKCFTZWFyY2hTeXNDYWNoZUV4aXN0czEoQ0VLT0lELCBPYmplY3RJZEdldERhdHVt KGNla2lkKSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2VraWQsIHJvbGVpZCwgbW9kZSk7 CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisv KgorICogaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfaWRfbmFtZQorICoJ CUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBnaXZl bgorICoJCXJvbGVpZCwgdGV4dCBjZWtuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8K K0RhdHVtCitoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9pZF9uYW1lKFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsK Kwl0ZXh0CSAgICpjZWtuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAq cHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQljZWtpZDsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwljZWtpZCA9IGNv bnZlcnRfY29sdW1uX2VuY3J5cHRpb25fa2V5X25hbWUoY2VrbmFtZSk7CisJbW9kZSA9IGNv bnZlcnRfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0 KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5FbmNLZXlSZWxhdGlv bklkLCBjZWtpZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3Vs dCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX2VuY3J5cHRpb25f a2V5X3ByaXZpbGVnZV9pZF9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIGNv bHVtbiBlbmNyeXB0aW9uIGtleSBnaXZlbgorICoJCXJvbGVpZCwgY2VrIG9pZCwgYW5kIHRl eHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9w cml2aWxlZ2VfaWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQ R19HRVRBUkdfT0lEKDApOworCU9pZAkJCWNla2lkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0 ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCW1vZGUgPSBjb252ZXJ0X2Nv bHVtbl9lbmNyeXB0aW9uX2tleV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlp ZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY2Vr aWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVjayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtpZCwgcm9sZWlkLCBtb2RlKTsKKwor CVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisg KgkJU3VwcG9ydCByb3V0aW5lcyBmb3IgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2 aWxlZ2UgZmFtaWx5LgorICovCisKKy8qCisgKiBHaXZlbiBhIENFSyBuYW1lIGV4cHJlc3Nl ZCBhcyBhIHN0cmluZywgbG9vayBpdCB1cCBhbmQgcmV0dXJuIE9pZAorICovCitzdGF0aWMg T2lkCitjb252ZXJ0X2NvbHVtbl9lbmNyeXB0aW9uX2tleV9uYW1lKHRleHQgKmNla25hbWUp Cit7CisJcmV0dXJuIGdldF9jZWtfb2lkKHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KGNla25h bWUpLCBmYWxzZSk7Cit9CisKKy8qCisgKiBjb252ZXJ0X2NvbHVtbl9lbmNyeXB0aW9uX2tl eV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJpbmcgdG8gQWNsTW9kZSB2YWx1 ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfY29sdW1uX2VuY3J5cHRpb25fa2V5 X3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KQoreworCXN0YXRpYyBjb25zdCBw cml2X21hcCBjb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdl9tYXBbXSA9IHsKKwkJeyJVU0FH RSIsIEFDTF9VU0FHRX0sCisJCXsiVVNBR0UgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JB TlRfT1BUSU9OX0ZPUihBQ0xfVVNBR0UpfSwKKwkJe05VTEwsIDB9CisJfTsKKworCXJldHVy biBjb252ZXJ0X2FueV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCwgY29sdW1uX2VuY3J5 cHRpb25fa2V5X3ByaXZfbWFwKTsKK30KKworCisvKgorICogaGFzX2NvbHVtbl9tYXN0ZXJf a2V5X3ByaXZpbGVnZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhhc19j b2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCisgKgkJVGhl eSB0YWtlIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIGNvbHVtbiBtYXN0ZXIga2V5IG5hbWUs CisgKgkJY21rIE9JRCwgdXNlciBuYW1lLCB1c2VyIE9JRCwgb3IgaW1wbGljaXQgdXNlciA9 IGN1cnJlbnRfdXNlci4KKyAqCisgKgkJVGhlIHJlc3VsdCBpcyBhIGJvb2xlYW4gdmFsdWU6 IHRydWUgaWYgdXNlciBoYXMgdGhlIGluZGljYXRlZAorICoJCXByaXZpbGVnZSwgZmFsc2Ug aWYgbm90LgorICovCisKKy8qCisgKiBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdl X25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIGNvbHVtbiBtYXN0 ZXIga2V5IGdpdmVuCisgKgkJbmFtZSB1c2VybmFtZSwgdGV4dCBjbWtuYW1lLCBhbmQgdGV4 dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlX25hbWVfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVzZXJuYW1lID0g UEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkgICAqY21rbmFtZSA9IFBHX0dFVEFSR19URVhU X1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAo Mik7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCWNta2lkOworCUFjbE1vZGUJCW1vZGU7CisJ QWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJs aWMoTmFtZVN0cigqdXNlcm5hbWUpKTsKKwljbWtpZCA9IGNvbnZlcnRfY29sdW1uX21hc3Rl cl9rZXlfbmFtZShjbWtuYW1lKTsKKwltb2RlID0gY29udmVydF9jb2x1bW5fbWFzdGVyX2tl eV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21raWQsIHJvbGVpZCwgbW9k ZSk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQor CisvKgorICogaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9uYW1lCisgKgkJQ2hl Y2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgY29sdW1uIG1hc3RlciBrZXkgZ2l2ZW4KKyAqCQl0 ZXh0IGNta25hbWUgYW5kIHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBh c3N1bWVkCisgKi8KK0RhdHVtCitoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlX25h bWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0ZXh0CSAgICpjbWtuYW1lID0gUEdfR0VUQVJH X1RFWFRfUFAoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVY VF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJY21raWQ7CisJQWNsTW9kZQkJbW9k ZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJ Y21raWQgPSBjb252ZXJ0X2NvbHVtbl9tYXN0ZXJfa2V5X25hbWUoY21rbmFtZSk7CisJbW9k ZSA9IGNvbnZlcnRfY29sdW1uX21hc3Rlcl9rZXlfcHJpdl9zdHJpbmcocHJpdl90eXBlX3Rl eHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbk1hc3RlcktleVJl bGF0aW9uSWQsIGNta2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdfUkVUVVJOX0JPT0woYWNs cmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19jb2x1bW5fbWFzdGVy X2tleV9wcml2aWxlZ2VfbmFtZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBh IGNvbHVtbiBtYXN0ZXIga2V5IGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBjb2x1bW4gbWFz dGVyIGtleSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19jb2x1 bW5fbWFzdGVyX2tleV9wcml2aWxlZ2VfbmFtZV9pZChQR19GVU5DVElPTl9BUkdTKQorewor CU5hbWUJCXVzZXJuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJT2lkCQkJY21raWQgPSBQ R19HRVRBUkdfT0lEKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJH X1RFWFRfUFAoMik7CisJT2lkCQkJcm9sZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFt ZVN0cigqdXNlcm5hbWUpKTsKKwltb2RlID0gY29udmVydF9jb2x1bW5fbWFzdGVyX2tleV9w cml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhp c3RzMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY21raWQpKSkKKwkJUEdfUkVUVVJOX05V TEwoKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLCBjbWtpZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFj bHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX21hc3Rl cl9rZXlfcHJpdmlsZWdlX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgY29s dW1uIG1hc3RlciBrZXkgZ2l2ZW4KKyAqCQljb2x1bW4gbWFzdGVyIGtleSBvaWQsIGFuZCB0 ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1 bQoraGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9pZChQR19GVU5DVElPTl9BUkdT KQoreworCU9pZAkJCWNta2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAgICpwcml2 X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlB Y2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwlyb2xlaWQgPSBHZXRV c2VySWQoKTsKKwltb2RlID0gY29udmVydF9jb2x1bW5fbWFzdGVyX2tleV9wcml2X3N0cmlu Zyhwcml2X3R5cGVfdGV4dCk7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShDTUtP SUQsIE9iamVjdElkR2V0RGF0dW0oY21raWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwor CWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklk LCBjbWtpZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9 PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJp dmlsZWdlX2lkX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBjb2x1bW4g bWFzdGVyIGtleSBnaXZlbgorICoJCXJvbGVpZCwgdGV4dCBjbWtuYW1lLCBhbmQgdGV4dCBw cml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdl X2lkX25hbWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRB UkdfT0lEKDApOworCXRleHQJICAgKmNta25hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsK Kwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9p ZAkJCWNta2lkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwor CWNta2lkID0gY29udmVydF9jb2x1bW5fbWFzdGVyX2tleV9uYW1lKGNta25hbWUpOworCW1v ZGUgPSBjb252ZXJ0X2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90 ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLCBjbWtpZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFj bHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX21hc3Rl cl9rZXlfcHJpdmlsZWdlX2lkX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEg Y29sdW1uIG1hc3RlciBrZXkgZ2l2ZW4KKyAqCQlyb2xlaWQsIGNtayBvaWQsIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxl Z2VfaWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRB UkdfT0lEKDApOworCU9pZAkJCWNta2lkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0ZXh0CSAg ICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1vZGUJCW1v ZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCW1vZGUgPSBjb252ZXJ0X2NvbHVtbl9t YXN0ZXJfa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWlmICghU2VhcmNo U3lzQ2FjaGVFeGlzdHMxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpKQorCQlQ R19SRVRVUk5fTlVMTCgpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVt bk1hc3RlcktleVJlbGF0aW9uSWQsIGNta2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdfUkVU VVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqCQlTdXBw b3J0IHJvdXRpbmVzIGZvciBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlIGZhbWls eS4KKyAqLworCisvKgorICogR2l2ZW4gYSBDTUsgbmFtZSBleHByZXNzZWQgYXMgYSBzdHJp bmcsIGxvb2sgaXQgdXAgYW5kIHJldHVybiBPaWQKKyAqLworc3RhdGljIE9pZAorY29udmVy dF9jb2x1bW5fbWFzdGVyX2tleV9uYW1lKHRleHQgKmNta25hbWUpCit7CisJcmV0dXJuIGdl dF9jbWtfb2lkKHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KGNta25hbWUpLCBmYWxzZSk7Cit9 CisKKy8qCisgKiBjb252ZXJ0X2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZfc3RyaW5nCisgKgkJ Q29udmVydCB0ZXh0IHN0cmluZyB0byBBY2xNb2RlIHZhbHVlLgorICovCitzdGF0aWMgQWNs TW9kZQorY29udmVydF9jb2x1bW5fbWFzdGVyX2tleV9wcml2X3N0cmluZyh0ZXh0ICpwcml2 X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMgY29uc3QgcHJpdl9tYXAgY29sdW1uX21hc3Rlcl9r ZXlfcHJpdl9tYXBbXSA9IHsKKwkJeyJVU0FHRSIsIEFDTF9VU0FHRX0sCisJCXsiVVNBR0Ug V0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfVVNBR0UpfSwK KwkJe05VTEwsIDB9CisJfTsKKworCXJldHVybiBjb252ZXJ0X2FueV9wcml2X3N0cmluZyhw cml2X3R5cGVfdGV4dCwgY29sdW1uX21hc3Rlcl9rZXlfcHJpdl9tYXApOworfQorCisKIC8q CiAgKiBoYXNfZGF0YWJhc2VfcHJpdmlsZWdlIHZhcmlhbnRzCiAgKgkJVGhlc2UgYXJlIGFs bCBuYW1lZCAiaGFzX2RhdGFiYXNlX3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGQxYjA5ZGVkZmQ0Li44YmU5NTBlNjExNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC02ODEsNiArNjgxLDExMyBAQCB1bmtu b3duc2VuZChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9CWVRFQV9QKHBxX2VuZHR5 cHNlbmQoJmJ1ZikpOwogfQogCisvKgorICogcGdfZW5jcnlwdGVkX2luIC0KKyAqCisgKiBJ bnB1dCBmdW5jdGlvbiBmb3IgcGdfZW5jcnlwdGVkXyogdHlwZXMuCisgKgorICogVGhlIGZv cm1hdCBhbmQgYWRkaXRpb25hbCBjaGVja3MgZW5zdXJlIHRoYXQgb25lIGNhbm5vdCBlYXNp bHkgaW5zZXJ0IGEKKyAqIHZhbHVlIGRpcmVjdGx5IGludG8gYW4gZW5jcnlwdGVkIGNvbHVt biBieSBhY2NpZGVudC4gIChUaGF0J3Mgd2h5IHdlIGRvbid0CisgKiBqdXN0IHVzZSB0aGUg Ynl0ZWEgZm9ybWF0LCBmb3IgZXhhbXBsZS4pICBCdXQgd2Ugc3RpbGwgaGF2ZSB0byBzdXBw b3J0CisgKiBkaXJlY3QgaW5zZXJ0cyBpbnRvIGVuY3J5cHRlZCBjb2x1bW5zLCBmb3IgZXhh bXBsZSBmb3IgcmVzdG9yaW5nIGJhY2t1cHMKKyAqIG1hZGUgYnkgcGdfZHVtcC4KKyAqLwor RGF0dW0KK3BnX2VuY3J5cHRlZF9pbihQR19GVU5DVElPTl9BUkdTKQoreworCWNoYXIJICAg KmlucHV0VGV4dCA9IFBHX0dFVEFSR19DU1RSSU5HKDApOworCU5vZGUJICAgKmVzY29udGV4 dCA9IGZjaW5mby0+Y29udGV4dDsKKwljaGFyCSAgICppcDsKKwlzaXplX3QJCWhleGxlbjsK KwlpbnQJCQliYzsKKwlieXRlYQkgICAqcmVzdWx0OworCisJaWYgKHN0cm5jbXAoaW5wdXRU ZXh0LCAiZW5jcnlwdGVkJCIsIDEwKSAhPSAwKQorCQllcmV0dXJuKGVzY29udGV4dCwgKERh dHVtKSAwLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCWVycm1zZygiaW52YWxpZCBpbnB1dCB2YWx1ZSBmb3IgZW5jcnlwdGVkIGNv bHVtbiB2YWx1ZTogXCIlc1wiIiwKKwkJCQkJICAgaW5wdXRUZXh0KSk7CisKKwlpcCA9IGlu cHV0VGV4dCArIDEwOworCWhleGxlbiA9IHN0cmxlbihpcCk7CisKKwkvKiBzYW5pdHkgY2hl Y2sgdG8gY2F0Y2ggb2J2aW91cyBtaXN0YWtlcyAqLworCWlmIChoZXhsZW4gLyAyIDwgMzIg fHwgKGhleGxlbiAvIDIpICUgMTYgIT0gMCkKKwkJZXJldHVybihlc2NvbnRleHQsIChEYXR1 bSkgMCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9O KSwKKwkJCQllcnJtc2coImludmFsaWQgaW5wdXQgdmFsdWUgZm9yIGVuY3J5cHRlZCBjb2x1 bW4gdmFsdWU6IFwiJXNcIiIsCisJCQkJCSAgIGlucHV0VGV4dCkpOworCisJYmMgPSBoZXhs ZW4gLyAyICsgVkFSSERSU1o7IC8qIG1heGltdW0gcG9zc2libGUgbGVuZ3RoICovCisJcmVz dWx0ID0gcGFsbG9jKGJjKTsKKwliYyA9IGhleF9kZWNvZGUoaXAsIGhleGxlbiwgVkFSREFU QShyZXN1bHQpKTsKKwlTRVRfVkFSU0laRShyZXN1bHQsIGJjICsgVkFSSERSU1opOyAvKiBh Y3R1YWwgbGVuZ3RoICovCisKKwlQR19SRVRVUk5fQllURUFfUChyZXN1bHQpOworfQorCisv KgorICogcGdfZW5jcnlwdGVkX291dCAtCisgKgorICogT3V0cHV0IGZ1bmN0aW9uIGZvciBw Z19lbmNyeXB0ZWRfKiB0eXBlcy4KKyAqCisgKiBUaGlzIG91dHB1dCBpcyBzZWVuIHdoZW4g cmVhZGluZyBhbiBlbmNyeXB0ZWQgY29sdW1uIHdpdGhvdXQgY29sdW1uCisgKiBlbmNyeXB0 aW9uIG1vZGUgZW5hYmxlZC4gIFRoZXJlZm9yZSwgdGhlIG91dHB1dCBmb3JtYXQgaXMgY2hv c2VuIHNvIHRoYXQgaXQKKyAqIGlzIGVhc2lseSByZWNvZ25pemFibGUuCisgKi8KK0RhdHVt CitwZ19lbmNyeXB0ZWRfb3V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJYnl0ZWEJICAgKnZs ZW5hID0gUEdfR0VUQVJHX0JZVEVBX1BQKDApOworCWNoYXIJICAgKnJlc3VsdDsKKwljaGFy CSAgICpycDsKKworCXJwID0gcmVzdWx0ID0gcGFsbG9jKFZBUlNJWkVfQU5ZX0VYSERSKHZs ZW5hKSAqIDIgKyAxMCArIDEpOworCW1lbWNweShycCwgImVuY3J5cHRlZCQiLCAxMCk7CisJ cnAgKz0gMTA7CisJcnAgKz0gaGV4X2VuY29kZShWQVJEQVRBX0FOWSh2bGVuYSksIFZBUlNJ WkVfQU5ZX0VYSERSKHZsZW5hKSwgcnApOworCSpycCA9ICdcMCc7CisJUEdfUkVUVVJOX0NT VFJJTkcocmVzdWx0KTsKK30KKworLyoKKyAqIHBnX2VuY3J5cHRlZF9yZWN2IC0KKyAqCisg KiBSZWNlaXZlIGZ1bmN0aW9uIGZvciBwZ19lbmNyeXB0ZWRfKiB0eXBlcy4KKyAqLworRGF0 dW0KK3BnX2VuY3J5cHRlZF9yZWN2KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJU3RyaW5nSW5m bwlidWYgPSAoU3RyaW5nSW5mbykgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJYnl0ZWEJICAg KnJlc3VsdDsKKwlpbnQJCQluYnl0ZXM7CisKKwluYnl0ZXMgPSBidWYtPmxlbiAtIGJ1Zi0+ Y3Vyc29yOworCS8qIHNhbml0eSBjaGVjayB0byBjYXRjaCBvYnZpb3VzIG1pc3Rha2VzICov CisJaWYgKG5ieXRlcyA8IDMyKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX0JJTkFSWV9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJpbnZh bGlkIGJpbmFyeSBpbnB1dCB2YWx1ZSBmb3IgZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSIpKTsK KwlyZXN1bHQgPSAoYnl0ZWEgKikgcGFsbG9jKG5ieXRlcyArIFZBUkhEUlNaKTsKKwlTRVRf VkFSU0laRShyZXN1bHQsIG5ieXRlcyArIFZBUkhEUlNaKTsKKwlwcV9jb3B5bXNnYnl0ZXMo YnVmLCBWQVJEQVRBKHJlc3VsdCksIG5ieXRlcyk7CisJUEdfUkVUVVJOX0JZVEVBX1AocmVz dWx0KTsKK30KKworLyoKKyAqIHBnX2VuY3J5cHRlZF9zZW5kIC0KKyAqCisgKiBTZW5kIGZ1 bmN0aW9uIGZvciBwZ19lbmNyeXB0ZWRfKiB0eXBlcy4KKyAqLworRGF0dW0KK3BnX2VuY3J5 cHRlZF9zZW5kKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJYnl0ZWEJICAgKnZsZW5hID0gUEdf R0VUQVJHX0JZVEVBX1BfQ09QWSgwKTsKKworCS8qIGp1c3QgcmV0dXJuIGlucHV0ICovCisJ UEdfUkVUVVJOX0JZVEVBX1AodmxlbmEpOworfQorCiAKIC8qID09PT09PT09PT0gUFVCTElD IFJPVVRJTkVTID09PT09PT09PT0gKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYwppbmRleCAyNjM2OGZmY2M5Ny4uOTI0NzQ3NWY1OGIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0yNCw3ICsyNCwxMCBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfYW1wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rl cmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfaW5kZXguaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2xhbmd1YWdlLmgi CkBAIC0yNjc4LDYgKzI2ODEsMjUgQEAgdHlwZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBpZCkK IAlyZXR1cm4gKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX01VTFRJUkFOR0UpOwog fQogCitib29sCit0eXBlX2lzX2VuY3J5cHRlZChPaWQgdHlwaWQpCit7CisJSGVhcFR1cGxl CXRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1 bSh0eXBpZCkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdf dHlwZSB0eXB0dXAgPSAoRm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOworCQlib29sCQly ZXN1bHQ7CisKKwkJcmVzdWx0ID0gKHR5cHR1cC0+dHlwY2F0ZWdvcnkgPT0gVFlQQ0FURUdP UllfRU5DUllQVEVEKTsKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3Vs dDsKKwl9CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBnZXRfdHlwZV9j YXRlZ29yeV9wcmVmZXJyZWQKICAqCkBAIC0zNjkyLDMgKzM3MTQsNjQgQEAgZ2V0X3N1YnNj cmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1 Ym5hbWU7CiB9CisKK2NoYXIgKgorZ2V0X2Nla19uYW1lKE9pZCBjZWtpZCwgYm9vbCBtaXNz aW5nX29rKQoreworCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkgICAqY2VrbmFtZTsKKworCXR1 cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY2VraWQpKTsK KworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCXsKKwkJaWYgKCFtaXNzaW5nX29r KQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNy eXB0aW9uIGtleSAldSIsIGNla2lkKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJY2VrbmFt ZSA9IHBzdHJkdXAoTmFtZVN0cigoKEZvcm1fcGdfY29sZW5ja2V5KSBHRVRTVFJVQ1QodHVw KSktPmNla25hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIGNl a25hbWU7Cit9CisKK09pZAorZ2V0X2Nla2RhdGFfb2lkKE9pZCBjZWtpZCwgT2lkIGNta2lk LCBib29sIG1pc3Npbmdfb2spCit7CisJT2lkCQkJY2VrZGF0YWlkOworCisJY2VrZGF0YWlk ID0gR2V0U3lzQ2FjaGVPaWQyKENFS0RBVEFDRUtDTUssIEFudW1fcGdfY29sZW5ja2V5ZGF0 YV9vaWQsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oY2VraWQpLAorCQkJCQkJCQlPYmpl Y3RJZEdldERhdHVtKGNta2lkKSk7CisJaWYgKCFPaWRJc1ZhbGlkKGNla2RhdGFpZCkgJiYg IW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg XCIlc1wiIGhhcyBubyBkYXRhIGZvciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQlnZXRf Y2VrX25hbWUoY2VraWQsIGZhbHNlKSwgZ2V0X2Nta19uYW1lKGNta2lkLCBmYWxzZSkpKSk7 CisKKwlyZXR1cm4gY2VrZGF0YWlkOworfQorCitjaGFyICoKK2dldF9jbWtfbmFtZShPaWQg Y21raWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHVwOworCWNoYXIJICAg KmNta25hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdl dERhdHVtKGNta2lkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwl7CisJ CWlmICghbWlzc2luZ19vaykKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsIGNta2lkKTsKKwkJcmV0dXJuIE5VTEw7CisJ fQorCisJY21rbmFtZSA9IHBzdHJkdXAoTmFtZVN0cigoKEZvcm1fcGdfY29sbWFzdGVya2V5 KSBHRVRTVFJVQ1QodHVwKSktPmNta25hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXAp OworCisJcmV0dXJuIGNta25hbWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9wbGFuY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNo ZS5jCmluZGV4IDVhZjFhMTY4ZWMyLi5lYjBjNjY0NWYwNyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMKQEAgLTEwMCw4ICsxMDAsNiBAQCBzdGF0aWMgZGxpc3RfaGVh ZCBzYXZlZF9wbGFuX2xpc3QgPSBETElTVF9TVEFUSUNfSU5JVChzYXZlZF9wbGFuX2xpc3Qp Owogc3RhdGljIGRsaXN0X2hlYWQgY2FjaGVkX2V4cHJlc3Npb25fbGlzdCA9IERMSVNUX1NU QVRJQ19JTklUKGNhY2hlZF9leHByZXNzaW9uX2xpc3QpOwogCiBzdGF0aWMgdm9pZCBSZWxl YXNlR2VuZXJpY1BsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSk7Ci1zdGF0aWMg TGlzdCAqUmV2YWxpZGF0ZUNhY2hlZFF1ZXJ5KENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3Vy Y2UsCi0JCQkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIHN0YXRpYyBi b29sIENoZWNrQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlKTsKIHN0 YXRpYyBDYWNoZWRQbGFuICpCdWlsZENhY2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxh bnNvdXJjZSwgTGlzdCAqcWxpc3QsCiAJCQkJCQkJCSAgIFBhcmFtTGlzdEluZm8gYm91bmRQ YXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKQEAgLTU3OSw3ICs1NzcsNyBA QCBSZWxlYXNlR2VuZXJpY1BsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSkKICAq IGhhZCB0byBkbyByZS1hbmFseXNpcywgYW5kIE5JTCBvdGhlcndpc2UuICAoVGhpcyBpcyBy ZXR1cm5lZCBqdXN0IHRvIHNhdmUKICAqIGEgdHJlZSBjb3B5aW5nIHN0ZXAgaW4gYSBzdWJz ZXF1ZW50IEJ1aWxkQ2FjaGVkUGxhbiBjYWxsLikKICAqLwotc3RhdGljIExpc3QgKgorTGlz dCAqCiBSZXZhbGlkYXRlQ2FjaGVkUXVlcnkoQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJj ZSwKIAkJCQkJICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudikKIHsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21i L21idXRpbHMuYwppbmRleCA2Mjc3N2IxNGM5Yi4uZThiOTI5NjgzMGQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9tYi9tYnV0aWxzLmMKQEAgLTM2LDcgKzM2LDkgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy94 YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJsaWJw cS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCisjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncnByb3Rvcy5oIgogI2luY2x1ZGUgInV0 aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidmFyYXR0LmgiCkBAIC0xMjksNiArMTMxLDEy IEBAIFByZXBhcmVDbGllbnRFbmNvZGluZyhpbnQgZW5jb2RpbmcpCiAJCWVuY29kaW5nID09 IFBHX1NRTF9BU0NJSSkKIAkJcmV0dXJuIDA7CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252 ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAo TXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOwor CiAJaWYgKElzVHJhbnNhY3Rpb25TdGF0ZSgpKQogCXsKIAkJLyoKQEAgLTIzNiw2ICsyNDQs MTIgQEAgU2V0Q2xpZW50RW5jb2RpbmcoaW50IGVuY29kaW5nKQogCQlyZXR1cm4gMDsKIAl9 CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRp b24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRp b25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOworCiAJLyoKIAkgKiBTZWFyY2ggdGhlIGNhY2hl IGZvciB0aGUgZW50cnkgcHJldmlvdXNseSBwcmVwYXJlZCBieQogCSAqIFByZXBhcmVDbGll bnRFbmNvZGluZzsgaWYgdGhlcmUgaXNuJ3Qgb25lLCB3ZSBsb3NlLiAgV2hpbGUgYXQgaXQs CkBAIC0yOTYsNyArMzEwLDkgQEAgSW5pdGlhbGl6ZUNsaWVudEVuY29kaW5nKHZvaWQpCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJt c2coImNvbnZlcnNpb24gYmV0d2VlbiAlcyBhbmQgJXMgaXMgbm90IHN1cHBvcnRlZCIsCiAJ CQkJCQlwZ19lbmMybmFtZV90YmxbcGVuZGluZ19jbGllbnRfZW5jb2RpbmddLm5hbWUsCi0J CQkJCQlHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpKSkpOworCQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZ05hbWUoKSksCisJCQkJIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9l bmFibGVkKSA/CisJCQkJIGVycmRldGFpbCgiRW5jb2RpbmcgY29udmVyc2lvbiBpcyBub3Qg cG9zc2libGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIpIDogMCkpOwog CX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMv YmluL3BnX2R1bXAvY29tbW9uLmMKaW5kZXggYzdkZDBiMTFmZDIuLjdhOTA4MmVlNmNhIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbW1vbi5jCkBAIC0xOCw3ICsxOCw5IEBACiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAog I2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3NfZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf Y29sZW5ja2V5X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXlfZC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfZXh0ZW5zaW9uX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZV9k LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvcl9kLmgiCkBAIC0yMDMsNiArMjA1 LDEyIEBAIGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIp CiAJcGdfbG9nX2luZm8oInJlYWRpbmcgdXNlci1kZWZpbmVkIGNvbGxhdGlvbnMiKTsKIAko dm9pZCkgZ2V0Q29sbGF0aW9ucyhmb3V0LCAmbnVtQ29sbGF0aW9ucyk7CiAKKwlwZ19sb2df aW5mbygicmVhZGluZyBjb2x1bW4gbWFzdGVyIGtleXMiKTsKKwlnZXRDb2x1bW5NYXN0ZXJL ZXlzKGZvdXQpOworCisJcGdfbG9nX2luZm8oInJlYWRpbmcgY29sdW1uIGVuY3J5cHRpb24g a2V5cyIpOworCWdldENvbHVtbkVuY3J5cHRpb25LZXlzKGZvdXQpOworCiAJcGdfbG9nX2lu Zm8oInJlYWRpbmcgdXNlci1kZWZpbmVkIGNvbnZlcnNpb25zIik7CiAJZ2V0Q29udmVyc2lv bnMoZm91dCwgJm51bUNvbnZlcnNpb25zKTsKIApAQCAtOTM2LDYgKzk0NCw0MiBAQCBmaW5k T3ByQnlPaWQoT2lkIG9pZCkKIAlyZXR1cm4gKE9wckluZm8gKikgZG9iajsKIH0KIAorLyoK KyAqIGZpbmRDZWtCeU9pZAorICoJICBmaW5kcyB0aGUgRHVtcGFibGVPYmplY3QgZm9yIHRo ZSBDRUsgd2l0aCB0aGUgZ2l2ZW4gb2lkCisgKgkgIHJldHVybnMgTlVMTCBpZiBub3QgZm91 bmQKKyAqLworQ2VrSW5mbyAqCitmaW5kQ2VrQnlPaWQoT2lkIG9pZCkKK3sKKwlDYXRhbG9n SWQJY2F0SWQ7CisJRHVtcGFibGVPYmplY3QgKmRvYmo7CisKKwljYXRJZC50YWJsZW9pZCA9 IENvbHVtbkVuY0tleVJlbGF0aW9uSWQ7CisJY2F0SWQub2lkID0gb2lkOworCWRvYmogPSBm aW5kT2JqZWN0QnlDYXRhbG9nSWQoY2F0SWQpOworCUFzc2VydChkb2JqID09IE5VTEwgfHwg ZG9iai0+b2JqVHlwZSA9PSBET19DRUspOworCXJldHVybiAoQ2VrSW5mbyAqKSBkb2JqOwor fQorCisvKgorICogZmluZENta0J5T2lkCisgKgkgIGZpbmRzIHRoZSBEdW1wYWJsZU9iamVj dCBmb3IgdGhlIENNSyB3aXRoIHRoZSBnaXZlbiBvaWQKKyAqCSAgcmV0dXJucyBOVUxMIGlm IG5vdCBmb3VuZAorICovCitDbWtJbmZvICoKK2ZpbmRDbWtCeU9pZChPaWQgb2lkKQorewor CUNhdGFsb2dJZAljYXRJZDsKKwlEdW1wYWJsZU9iamVjdCAqZG9iajsKKworCWNhdElkLnRh Ymxlb2lkID0gQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZDsKKwljYXRJZC5vaWQgPSBvaWQ7 CisJZG9iaiA9IGZpbmRPYmplY3RCeUNhdGFsb2dJZChjYXRJZCk7CisJQXNzZXJ0KGRvYmog PT0gTlVMTCB8fCBkb2JqLT5vYmpUeXBlID09IERPX0NNSyk7CisJcmV0dXJuIChDbWtJbmZv ICopIGRvYmo7Cit9CisKIC8qCiAgKiBmaW5kQ29sbGF0aW9uQnlPaWQKICAqCSAgZmluZHMg dGhlIER1bXBhYmxlT2JqZWN0IGZvciB0aGUgY29sbGF0aW9uIHdpdGggdGhlIGdpdmVuIG9p ZApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9w Z19kdW1wL2R1bXB1dGlscy5jCmluZGV4IDU2NDk4NTlhYTFlLi4xY2EwZDMzZmEzZCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9kdW1wdXRpbHMuYwpAQCAtNDg0LDYgKzQ4NCwxMCBAQCBkbyB7IFwKIAkJQ09OVkVS VF9QUklWKCdDJywgIkNSRUFURSIpOwogCQlDT05WRVJUX1BSSVYoJ1UnLCAiVVNBR0UiKTsK IAl9CisJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiKSA9 PSAwKQorCQlDT05WRVJUX1BSSVYoJ1UnLCAiVVNBR0UiKTsKKwllbHNlIGlmIChzdHJjbXAo dHlwZSwgIkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCkKKwkJQ09OVkVSVF9QUklWKCdVJywg IlVTQUdFIik7CiAJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJEQVRBQkFTRSIpID09IDApCiAJ ewogCQlDT05WRVJUX1BSSVYoJ0MnLCAiQ1JFQVRFIik7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5k ZXggZmJmNWYxYzUxNWUuLmY4ZDhkNWE5N2RjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC04 Niw2ICs4Niw3IEBAIHR5cGVkZWYgc3RydWN0IF9jb25uUGFyYW1zCiAJY2hhcgkgICAqcGdo b3N0OwogCWNoYXIJICAgKnVzZXJuYW1lOwogCXRyaXZhbHVlCXByb21wdFBhc3N3b3JkOwor CWludAkJCWNvbHVtbl9lbmNyeXB0aW9uOwogCS8qIElmIG5vdCBOVUxMLCB0aGlzIG92ZXJy aWRlcyB0aGUgZGJuYW1lIG9idGFpbmVkIGZyb20gY29tbWFuZCBsaW5lICovCiAJLyogKGJ1 dCAqb25seSogdGhlIERCIG5hbWUsIG5vdCBhbnl0aGluZyBlbHNlIGluIHRoZSBjb25uc3Ry aW5nKSAqLwogCWNoYXIJICAgKm92ZXJyaWRlX2RibmFtZTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYwppbmRleCA0NjVlOWNlNzc3Zi4uY2QyYzU1NDMzNmEgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTM1ODEsNiArMzU4MSw4IEBA IF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5 ICp0ZSkKIAogCS8qIG9iamVjdHMgdGhhdCBkb24ndCByZXF1aXJlIHNwZWNpYWwgZGVjb3Jh dGlvbiAqLwogCWlmIChzdHJjbXAodHlwZSwgIkNPTExBVElPTiIpID09IDAgfHwKKwkJc3Ry Y21wKHR5cGUsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiKSA9PSAwIHx8CisJCXN0cmNtcCh0 eXBlLCAiQ09MVU1OIE1BU1RFUiBLRVkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiQ09O VkVSU0lPTiIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJET01BSU4iKSA9PSAwIHx8CiAJ CXN0cmNtcCh0eXBlLCAiRk9SRUlHTiBUQUJMRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfZGIuYwppbmRleCBhMDI4NDFjNDA1MC4uNDdjZmE1YmFiMmMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2RiLmMKQEAgLTEzMyw4ICsxMzMsOCBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2 ZSAqQUhYLAogCSAqLwogCWRvCiAJewotCQljb25zdCBjaGFyICprZXl3b3Jkc1s4XTsKLQkJ Y29uc3QgY2hhciAqdmFsdWVzWzhdOworCQljb25zdCBjaGFyICprZXl3b3Jkc1s5XTsKKwkJ Y29uc3QgY2hhciAqdmFsdWVzWzldOwogCQlpbnQJCQlpID0gMDsKIAogCQkvKgpAQCAtMTU5 LDYgKzE1OSwxMSBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhYLAogCQl9CiAJCWtl eXdvcmRzW2ldID0gImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUiOwogCQl2YWx1ZXNbaSsr XSA9IHByb2duYW1lOworCQlpZiAoY3BhcmFtcy0+Y29sdW1uX2VuY3J5cHRpb24pCisJCXsK KwkJCWtleXdvcmRzW2ldID0gImNvbHVtbl9lbmNyeXB0aW9uIjsKKwkJCXZhbHVlc1tpKytd ID0gIjEiOworCQl9CiAJCWtleXdvcmRzW2ldID0gTlVMTDsKIAkJdmFsdWVzW2krK10gPSBO VUxMOwogCQlBc3NlcnQoaSA8PSBsZW5ndGhvZihrZXl3b3JkcykpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggYzUyZTk2MWIzMDkuLjFhZTkxNDE4MmYzIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0 LDYgKzU0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlcl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlX2QuaCIKKyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCiAjaW5jbHVkZSAiY29tbW9u L2Nvbm5lY3QuaCIKICNpbmNsdWRlICJjb21tb24vcmVscGF0aC5oIgogI2luY2x1ZGUgImNv bXByZXNzX2lvLmgiCkBAIC0yNDUsNiArMjQ2LDggQEAgc3RhdGljIHZvaWQgZHVtcEFjY2Vz c01ldGhvZChBcmNoaXZlICpmb3V0LCBjb25zdCBBY2Nlc3NNZXRob2RJbmZvICphbWluZm8p Owogc3RhdGljIHZvaWQgZHVtcE9wY2xhc3MoQXJjaGl2ZSAqZm91dCwgY29uc3QgT3BjbGFz c0luZm8gKm9wY2luZm8pOwogc3RhdGljIHZvaWQgZHVtcE9wZmFtaWx5KEFyY2hpdmUgKmZv dXQsIGNvbnN0IE9wZmFtaWx5SW5mbyAqb3BmaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29s bGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJbmZvICpjb2xsaW5mbyk7CitzdGF0 aWMgdm9pZCBkdW1wQ29sdW1uRW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBD ZWtJbmZvICpjZWtpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBDb2x1bW5NYXN0ZXJLZXkoQXJj aGl2ZSAqZm91dCwgY29uc3QgQ21rSW5mbyAqY2VraW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1w Q29udmVyc2lvbihBcmNoaXZlICpmb3V0LCBjb25zdCBDb252SW5mbyAqY29udmluZm8pOwog c3RhdGljIHZvaWQgZHVtcFJ1bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUnVsZUluZm8gKnJp bmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBBZ2coQXJjaGl2ZSAqZm91dCwgY29uc3QgQWdnSW5m byAqYWdnaW5mbyk7CkBAIC00MTQsNiArNDE3LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCXsiYXR0cmlidXRlLWluc2VydHMiLCBub19hcmd1bWVudCwgJmRvcHQuY29s dW1uX2luc2VydHMsIDF9LAogCQl7ImJpbmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZk b3B0LmJpbmFyeV91cGdyYWRlLCAxfSwKIAkJeyJjb2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3Vt ZW50LCAmZG9wdC5jb2x1bW5faW5zZXJ0cywgMX0sCisJCXsiZGVjcnlwdC1lbmNyeXB0ZWQt Y29sdW1ucyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5jcGFyYW1zLmNvbHVtbl9lbmNyeXB0aW9u LCAxfSwKIAkJeyJkaXNhYmxlLWRvbGxhci1xdW90aW5nIiwgbm9fYXJndW1lbnQsICZkb3B0 LmRpc2FibGVfZG9sbGFyX3F1b3RpbmcsIDF9LAogCQl7ImRpc2FibGUtdHJpZ2dlcnMiLCBu b19hcmd1bWVudCwgJmRvcHQuZGlzYWJsZV90cmlnZ2VycywgMX0sCiAJCXsiZW5hYmxlLXJv dy1zZWN1cml0eSIsIG5vX2FyZ3VtZW50LCAmZG9wdC5lbmFibGVfcm93X3NlY3VyaXR5LCAx fSwKQEAgLTc0Miw2ICs3NDYsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkg KiAtLWluc2VydHMgYXJlIGFscmVhZHkgaW1wbGllZCBhYm92ZSBpZiAtLWNvbHVtbi1pbnNl cnRzIG9yCiAJICogLS1yb3dzLXBlci1pbnNlcnQgd2VyZSBzcGVjaWZpZWQuCiAJICovCisJ aWYgKGRvcHQuY3BhcmFtcy5jb2x1bW5fZW5jcnlwdGlvbiAmJiBkb3B0LmR1bXBfaW5zZXJ0 cyA9PSAwKQorCQlwZ19mYXRhbCgib3B0aW9uIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1u cyByZXF1aXJlcyBvcHRpb24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1j b2x1bW4taW5zZXJ0cyIpOworCiAJaWYgKGRvcHQuZG9fbm90aGluZyAmJiBkb3B0LmR1bXBf aW5zZXJ0cyA9PSAwKQogCQlwZ19mYXRhbCgib3B0aW9uIC0tb24tY29uZmxpY3QtZG8tbm90 aGluZyByZXF1aXJlcyBvcHRpb24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3Ig LS1jb2x1bW4taW5zZXJ0cyIpOwogCkBAIC0xMTI4LDYgKzExMzUsNyBAQCBoZWxwKGNvbnN0 IGNoYXIgKnByb2duYW1lKQogCXByaW50ZihfKCIgIC14LCAtLW5vLXByaXZpbGVnZXMgICAg ICAgICAgZG8gbm90IGR1bXAgcHJpdmlsZWdlcyAoZ3JhbnQvcmV2b2tlKVxuIikpOwogCXBy aW50ZihfKCIgIC0tYmluYXJ5LXVwZ3JhZGUgICAgICAgICAgICAgZm9yIHVzZSBieSB1cGdy YWRlIHV0aWxpdGllcyBvbmx5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb2x1bW4taW5zZXJ0 cyAgICAgICAgICAgICBkdW1wIGRhdGEgYXMgSU5TRVJUIGNvbW1hbmRzIHdpdGggY29sdW1u IG5hbWVzXG4iKSk7CisJcHJpbnRmKF8oIiAgLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5z ICBkZWNyeXB0IGVuY3J5cHRlZCBjb2x1bW5zIGluIHRoZSBvdXRwdXRcbiIpKTsKIAlwcmlu dGYoXygiICAtLWRpc2FibGUtZG9sbGFyLXF1b3RpbmcgICAgIGRpc2FibGUgZG9sbGFyIHF1 b3RpbmcsIHVzZSBTUUwgc3RhbmRhcmQgcXVvdGluZ1xuIikpOwogCXByaW50ZihfKCIgIC0t ZGlzYWJsZS10cmlnZ2VycyAgICAgICAgICAgZGlzYWJsZSB0cmlnZ2VycyBkdXJpbmcgZGF0 YS1vbmx5IHJlc3RvcmVcbiIpKTsKIAlwcmludGYoXygiICAtLWVuYWJsZS1yb3ctc2VjdXJp dHkgICAgICAgIGVuYWJsZSByb3cgc2VjdXJpdHkgKGR1bXAgb25seSBjb250ZW50IHVzZXIg aGFzXG4iCkBAIC02MDcxLDYgKzYwNzksMTY0IEBAIGdldENvbGxhdGlvbnMoQXJjaGl2ZSAq Zm91dCwgaW50ICpudW1Db2xsYXRpb25zKQogCXJldHVybiBjb2xsaW5mbzsKIH0KIAorLyoK KyAqIGdldENvbHVtbkVuY3J5cHRpb25LZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91 dCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzCisgKi8KK3ZvaWQKK2dldENvbHVtbkVuY3J5cHRp b25LZXlzKEFyY2hpdmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1 bHQgICAqcmVzOworCWludAkJCW50dXBzOworCUNla0luZm8gICAgKmNla2luZm87CisJaW50 CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nla25hbWU7CisJaW50 CQkJaV9jZWtuYW1lc3BhY2U7CisJaW50CQkJaV9jZWtvd25lcjsKKwlpbnQJCQlpX2Nla2Fj bDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8 IDE3MDAwMCkKKwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwor CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCBjZWsudGFibGVv aWQsIGNlay5vaWQsIGNlay5jZWtuYW1lLCBjZWsuY2VrbmFtZXNwYWNlLCBjZWsuY2Vrb3du ZXIsIGNlay5jZWthY2wsIGFjbGRlZmF1bHQoJ1knLCBjZWsuY2Vrb3duZXIpIEFTIGFjbGRl ZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBwZ19jb2xlbmNrZXkgY2VrIik7CisKKwlyZXMgPSBF eGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisK KwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihy ZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlf Y2VrbmFtZSA9IFBRZm51bWJlcihyZXMsICJjZWtuYW1lIik7CisJaV9jZWtuYW1lc3BhY2Ug PSBQUWZudW1iZXIocmVzLCAiY2VrbmFtZXNwYWNlIik7CisJaV9jZWtvd25lciA9IFBRZm51 bWJlcihyZXMsICJjZWtvd25lciIpOworCWlfY2VrYWNsID0gUFFmbnVtYmVyKHJlcywgImNl a2FjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xkZWZhdWx0Iik7 CisKKwljZWtpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKENla0luZm8pKTsKKwor CWZvciAoaW50IGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVBHcmVzdWx0ICAgKnJl czI7CisJCWludAkJCW50dXBzMjsKKworCQljZWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERP X0NFSzsKKwkJY2VraW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC5v aWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJ ZCgmY2VraW5mb1tpXS5kb2JqKTsKKwkJY2VraW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfY2VrbmFtZSkpOworCQljZWtpbmZvW2ldLmRvYmou bmFtZXNwYWNlID0gZmluZE5hbWVzcGFjZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf Y2VrbmFtZXNwYWNlKSkpOworCQljZWtpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX2Nla2FjbCkpOworCQljZWtpbmZvW2ldLmRhY2wuYWNsZGVm YXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CisJ CWNla2luZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7CisJCWNla2luZm9baV0uZGFjbC5pbml0 cHJpdnMgPSBOVUxMOworCQljZWtpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdl dHZhbHVlKHJlcywgaSwgaV9jZWtvd25lcikpOworCisJCXJlc2V0UFFFeHBCdWZmZXIocXVl cnkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCSAgIlNFTEVDVCBja2Rj bWtpZCwgY2tkY21rYWxnLCBja2RlbmN2YWxcbiIKKwkJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ19jb2xlbmNrZXlkYXRhXG4iCisJCQkJCQkgICJXSEVSRSBja2RjZWtpZCA9ICV1Iiwg Y2VraW5mb1tpXS5kb2JqLmNhdElkLm9pZCk7CisJCXJlczIgPSBFeGVjdXRlU3FsUXVlcnko Zm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisJCW50dXBzMiA9IFBRbnR1 cGxlcyhyZXMyKTsKKwkJY2VraW5mb1tpXS5udW1kYXRhID0gbnR1cHMyOworCQljZWtpbmZv W2ldLmNla2Nta3MgPSBwZ19tYWxsb2Moc2l6ZW9mKENta0luZm8gKikgKiBudHVwczIpOwor CQljZWtpbmZvW2ldLmNla2Nta2FsZ3MgPSBwZ19tYWxsb2Moc2l6ZW9mKGludCkgKiBudHVw czIpOworCQljZWtpbmZvW2ldLmNla2VuY3ZhbHMgPSBwZ19tYWxsb2Moc2l6ZW9mKGNoYXIg KikgKiBudHVwczIpOworCQlmb3IgKGludCBqID0gMDsgaiA8IG50dXBzMjsgaisrKQorCQl7 CisJCQlPaWQJCQlja2RjbWtpZDsKKworCQkJY2tkY21raWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMyLCBqLCBQUWZudW1iZXIocmVzMiwgImNrZGNta2lkIikpKTsKKwkJCWNla2luZm9b aV0uY2VrY21rc1tqXSA9IGZpbmRDbWtCeU9pZChja2RjbWtpZCk7CisJCQljZWtpbmZvW2ld LmNla2Nta2FsZ3Nbal0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzMiwgaiwgUFFmbnVtYmVyKHJl czIsICJja2RjbWthbGciKSkpOworCQkJY2VraW5mb1tpXS5jZWtlbmN2YWxzW2pdID0gcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzMiwgaiwgUFFmbnVtYmVyKHJlczIsICJja2RlbmN2YWwi KSkpOworCQl9CisJCVBRY2xlYXIocmVzMik7CisKKwkJc2VsZWN0RHVtcGFibGVPYmplY3Qo JihjZWtpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGks IGlfY2VrYWNsKSkKKwkJCWNla2luZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09N UE9ORU5UX0FDTDsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVy KHF1ZXJ5KTsKK30KKworLyoKKyAqIGdldENvbHVtbk1hc3RlcktleXMKKyAqCSAgZ2V0IGlu Zm9ybWF0aW9uIGFib3V0IGNvbHVtbiBtYXN0ZXIga2V5cworICovCit2b2lkCitnZXRDb2x1 bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJ UEdyZXN1bHQgICAqcmVzOworCWludAkJCW50dXBzOworCUNta0luZm8gICAgKmNta2luZm87 CisJaW50CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nta25hbWU7 CisJaW50CQkJaV9jbWtuYW1lc3BhY2U7CisJaW50CQkJaV9jbWtvd25lcjsKKwlpbnQJCQlp X2Nta3JlYWxtOworCWludAkJCWlfY21rYWNsOworCWludAkJCWlfYWNsZGVmYXVsdDsKKwor CWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTcwMDAwKQorCQlyZXR1cm47CisKKwlxdWVy eSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwK KwkJCQkJICAiU0VMRUNUIGNtay50YWJsZW9pZCwgY21rLm9pZCwgY21rLmNta25hbWUsIGNt ay5jbWtuYW1lc3BhY2UsIGNtay5jbWtvd25lciwgY21rLmNta3JlYWxtLCBjbWsuY21rYWNs LCBhY2xkZWZhdWx0KCd5JywgY21rLmNta293bmVyKSBBUyBhY2xkZWZhdWx0XG4iCisJCQkJ CSAgIkZST00gcGdfY29sbWFzdGVya2V5IGNtayIpOworCisJcmVzID0gRXhlY3V0ZVNxbFF1 ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1cHMgPSBQ UW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFibGVv aWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX2Nta25hbWUgPSBQ UWZudW1iZXIocmVzLCAiY21rbmFtZSIpOworCWlfY21rbmFtZXNwYWNlID0gUFFmbnVtYmVy KHJlcywgImNta25hbWVzcGFjZSIpOworCWlfY21rb3duZXIgPSBQUWZudW1iZXIocmVzLCAi Y21rb3duZXIiKTsKKwlpX2Nta3JlYWxtID0gUFFmbnVtYmVyKHJlcywgImNta3JlYWxtIik7 CisJaV9jbWthY2wgPSBQUWZudW1iZXIocmVzLCAiY21rYWNsIik7CisJaV9hY2xkZWZhdWx0 ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQiKTsKKworCWNta2luZm8gPSBwZ19tYWxs b2MobnR1cHMgKiBzaXplb2YoQ21rSW5mbykpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBu dHVwczsgaSsrKQorCXsKKwkJY21raW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19DTUs7CisJ CWNta2luZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV90YWJsZW9pZCkpOworCQljbWtpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJmNta2lu Zm9baV0uZG9iaik7CisJCWNta2luZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX2Nta25hbWUpKTsKKwkJY21raW5mb1tpXS5kb2JqLm5hbWVzcGFj ZSA9IGZpbmROYW1lc3BhY2UoYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nta25hbWVz cGFjZSkpKTsKKwkJY21raW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV9jbWthY2wpKTsKKwkJY21raW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOworCQljbWtpbmZv W2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQljbWtpbmZvW2ldLmRhY2wuaW5pdHByaXZzID0g TlVMTDsKKwkJY21raW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShy ZXMsIGksIGlfY21rb3duZXIpKTsKKwkJY21raW5mb1tpXS5jbWtyZWFsbSA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV9jbWtyZWFsbSkpOworCisJCXNlbGVjdER1bXBhYmxl T2JqZWN0KCYoY21raW5mb1tpXS5kb2JqKSwgZm91dCk7CisJCWlmICghUFFnZXRpc251bGwo cmVzLCBpLCBpX2Nta2FjbCkpCisJCQljbWtpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBE VU1QX0NPTVBPTkVOVF9BQ0w7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4 cEJ1ZmZlcihxdWVyeSk7Cit9CisKIC8qCiAgKiBnZXRDb252ZXJzaW9uczoKICAqCSAgcmVh ZCBhbGwgY29udmVyc2lvbnMgaW4gdGhlIHN5c3RlbSBjYXRhbG9ncyBhbmQgcmV0dXJuIHRo ZW0gaW4gdGhlCkBAIC04NzAxLDYgKzg4NjcsOSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUg KmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3R5 cHN0b3JhZ2U7CiAJaW50CQkJaV9hdHRpZGVudGl0eTsKIAlpbnQJCQlpX2F0dGdlbmVyYXRl ZDsKKwlpbnQJCQlpX2F0dGNlazsKKwlpbnQJCQlpX2F0dGVuY2FsZzsKKwlpbnQJCQlpX2F0 dGVuY2RldDsKIAlpbnQJCQlpX2F0dGlzZHJvcHBlZDsKIAlpbnQJCQlpX2F0dGxlbjsKIAlp bnQJCQlpX2F0dGFsaWduOwpAQCAtODc2MywyOSArODkzMiwzMSBAQCBnZXRUYWJsZUF0dHJz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkg KiBjb2xsYXRpb24gaXMgZGlmZmVyZW50IGZyb20gdGhlaXIgdHlwZSdzIGRlZmF1bHQsIHdl IHVzZSBhIENBU0UgaGVyZSB0bwogCSAqIHN1cHByZXNzIHVuaW50ZXJlc3RpbmcgYXR0Y29s bGF0aW9ucyBjaGVhcGx5LgogCSAqLwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJ CQkgIlNFTEVDVFxuIgotCQkJCQkJICJhLmF0dHJlbGlkLFxuIgotCQkJCQkJICJhLmF0dG51 bSxcbiIKLQkJCQkJCSAiYS5hdHRuYW1lLFxuIgotCQkJCQkJICJhLmF0dHN0YXR0YXJnZXQs XG4iCi0JCQkJCQkgImEuYXR0c3RvcmFnZSxcbiIKLQkJCQkJCSAidC50eXBzdG9yYWdlLFxu IgotCQkJCQkJICJhLmF0dGhhc2RlZixcbiIKLQkJCQkJCSAiYS5hdHRpc2Ryb3BwZWQsXG4i Ci0JCQkJCQkgImEuYXR0bGVuLFxuIgotCQkJCQkJICJhLmF0dGFsaWduLFxuIgotCQkJCQkJ ICJhLmF0dGlzbG9jYWwsXG4iCi0JCQkJCQkgInBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodC5v aWQsIGEuYXR0dHlwbW9kKSBBUyBhdHR0eXBuYW1lLFxuIgotCQkJCQkJICJhcnJheV90b19z dHJpbmcoYS5hdHRvcHRpb25zLCAnLCAnKSBBUyBhdHRvcHRpb25zLFxuIgotCQkJCQkJICJD QVNFIFdIRU4gYS5hdHRjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgotCQkJCQkJICJU SEVOIGEuYXR0Y29sbGF0aW9uIEVMU0UgMCBFTkQgQVMgYXR0Y29sbGF0aW9uLFxuIgotCQkJ CQkJICJwZ19jYXRhbG9nLmFycmF5X3RvX3N0cmluZyhBUlJBWSgiCi0JCQkJCQkgIlNFTEVD VCBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KG9wdGlvbl9uYW1lKSB8fCAiCi0JCQkJCQkgIicg JyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAiCi0JCQkJCQkg IkZST00gcGdfY2F0YWxvZy5wZ19vcHRpb25zX3RvX3RhYmxlKGF0dGZkd29wdGlvbnMpICIK LQkJCQkJCSAiT1JERVIgQlkgb3B0aW9uX25hbWUiCi0JCQkJCQkgIiksIEUnLFxuICAgICcp IEFTIGF0dGZkd29wdGlvbnMsXG4iKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiU0VMRUNU XG4iCisJCQkJCSAgImEuYXR0cmVsaWQsXG4iCisJCQkJCSAgImEuYXR0bnVtLFxuIgorCQkJ CQkgICJhLmF0dG5hbWUsXG4iCisJCQkJCSAgImEuYXR0c3RhdHRhcmdldCxcbiIKKwkJCQkJ ICAiYS5hdHRzdG9yYWdlLFxuIgorCQkJCQkgICJ0LnR5cHN0b3JhZ2UsXG4iCisJCQkJCSAg ImEuYXR0aGFzZGVmLFxuIgorCQkJCQkgICJhLmF0dGlzZHJvcHBlZCxcbiIKKwkJCQkJICAi YS5hdHRsZW4sXG4iCisJCQkJCSAgImEuYXR0YWxpZ24sXG4iCisJCQkJCSAgImEuYXR0aXNs b2NhbCxcbiIKKwkJCQkJICAicGdfY2F0YWxvZy5mb3JtYXRfdHlwZSglcykgQVMgYXR0dHlw bmFtZSxcbiIKKwkJCQkJICAiYXJyYXlfdG9fc3RyaW5nKGEuYXR0b3B0aW9ucywgJywgJykg QVMgYXR0b3B0aW9ucyxcbiIKKwkJCQkJICAiQ0FTRSBXSEVOIGEuYXR0Y29sbGF0aW9uIDw+ IHQudHlwY29sbGF0aW9uICIKKwkJCQkJICAiVEhFTiBhLmF0dGNvbGxhdGlvbiBFTFNFIDAg RU5EIEFTIGF0dGNvbGxhdGlvbixcbiIKKwkJCQkJICAicGdfY2F0YWxvZy5hcnJheV90b19z dHJpbmcoQVJSQVkoIgorCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChv cHRpb25fbmFtZSkgfHwgIgorCQkJCQkgICInICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRl cmFsKG9wdGlvbl92YWx1ZSkgIgorCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfb3B0aW9u c190b190YWJsZShhdHRmZHdvcHRpb25zKSAiCisJCQkJCSAgIk9SREVSIEJZIG9wdGlvbl9u YW1lIgorCQkJCQkgICIpLCBFJyxcbiAgICAnKSBBUyBhdHRmZHdvcHRpb25zLFxuIiwKKwkJ CQkJICBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCA/CisJCQkJCSAgIkNBU0UgV0hF TiBhLmF0dHVzZXJ0eXBpZCBJUyBOT1QgTlVMTCBUSEVOIGEuYXR0dXNlcnR5cGlkIEVMU0Ug YS5hdHR0eXBpZCBFTkQsIENBU0UgV0hFTiBhLmF0dHVzZXJ0eXBpZCBJUyBOT1QgTlVMTCBU SEVOIGEuYXR0dXNlcnR5cG1vZCBFTFNFIGEuYXR0dHlwbW9kIEVORCIgOgorCQkJCQkgICJh LmF0dHR5cGlkLCBhLmF0dHR5cG1vZCIpOwogCiAJLyoKIAkgKiBGaW5kIG91dCBhbnkgTk9U IE5VTEwgbWFya2luZ3MgZm9yIGVhY2ggY29sdW1uLiAgSW4gMTcgYW5kIHVwIHdlIGhhdmUK QEAgLTg4MzksMTAgKzkwMTAsMjMgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAKIAlpZiAoZm91dC0+cmVtb3Rl VmVyc2lvbiA+PSAxMjAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJ ICJhLmF0dGdlbmVyYXRlZFxuIik7CisJCQkJCQkJICJhLmF0dGdlbmVyYXRlZCxcbiIpOwor CWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKKwkJCQkJCQkgIicnIEFTIGF0dGdl bmVyYXRlZCxcbiIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQor CQlhcHBlbmRQUUV4cEJ1ZmZlcihxLAorCQkJCQkJICAiYS5hdHRjZWssXG4iCisJCQkJCQkg ICJDQVNFIGEuYXR0dHlwaWQgV0hFTiAldSBUSEVOIHRydWUgV0hFTiAldSBUSEVOIGZhbHNl IEVORCBBUyBhdHRlbmNkZXQsXG4iCisJCQkJCQkgICJDQVNFIFdIRU4gYS5hdHR0eXBpZCBJ TiAoJXUsICV1KSBUSEVOIGEuYXR0dHlwbW9kIEVORCBBUyBhdHRlbmNhbGdcbiIsCisJCQkJ CQkgIFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQsCisJCQkJCQkg IFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQpOwogCWVsc2UKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIicnIEFTIGF0dGdlbmVyYXRlZFxu Iik7CisJCQkJCQkJICJOVUxMIEFTIGF0dGNlayxcbiIKKwkJCQkJCQkgIk5VTEwgQVMgYXR0 ZW5jZGV0LFxuIgorCQkJCQkJCSAiTlVMTCBBUyBhdHRlbmNhbGdcbiIpOwogCiAJLyogbmVl ZCBsZWZ0IGpvaW4gdG8gcGdfdHlwZSB0byBub3QgZmFpbCBvbiBkcm9wcGVkIGNvbHVtbnMg Li4uICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocSwKQEAgLTg4ODUsNiArOTA2OSw5IEBAIGdl dFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVt VGFibGVzKQogCWlfdHlwc3RvcmFnZSA9IFBRZm51bWJlcihyZXMsICJ0eXBzdG9yYWdlIik7 CiAJaV9hdHRpZGVudGl0eSA9IFBRZm51bWJlcihyZXMsICJhdHRpZGVudGl0eSIpOwogCWlf YXR0Z2VuZXJhdGVkID0gUFFmbnVtYmVyKHJlcywgImF0dGdlbmVyYXRlZCIpOworCWlfYXR0 Y2VrID0gUFFmbnVtYmVyKHJlcywgImF0dGNlayIpOworCWlfYXR0ZW5jZGV0ID0gUFFmbnVt YmVyKHJlcywgImF0dGVuY2RldCIpOworCWlfYXR0ZW5jYWxnID0gUFFmbnVtYmVyKHJlcywg ImF0dGVuY2FsZyIpOwogCWlfYXR0aXNkcm9wcGVkID0gUFFmbnVtYmVyKHJlcywgImF0dGlz ZHJvcHBlZCIpOwogCWlfYXR0bGVuID0gUFFmbnVtYmVyKHJlcywgImF0dGxlbiIpOwogCWlf YXR0YWxpZ24gPSBQUWZudW1iZXIocmVzLCAiYXR0YWxpZ24iKTsKQEAgLTg5NTEsNiArOTEz OCw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZv LCBpbnQgbnVtVGFibGVzKQogCQl0YmluZm8tPnR5cHN0b3JhZ2UgPSAoY2hhciAqKSBwZ19t YWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+YXR0aWRlbnRpdHkg PSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5m by0+YXR0Z2VuZXJhdGVkID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2Yo Y2hhcikpOworCQl0YmluZm8tPmF0dGNlayA9IChDZWtJbmZvICoqKSBwZ19tYWxsb2MobnVt YXR0cyAqIHNpemVvZihDZWtJbmZvICopKTsKKwkJdGJpbmZvLT5hdHRlbmNkZXQgPSAoYm9v bCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihib29sKSk7CisJCXRiaW5mby0+YXR0 ZW5jYWxnID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihpbnQpKTsKIAkJ dGJpbmZvLT5hdHRpc2Ryb3BwZWQgPSAoYm9vbCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNp emVvZihib29sKSk7CiAJCXRiaW5mby0+YXR0bGVuID0gKGludCAqKSBwZ19tYWxsb2MobnVt YXR0cyAqIHNpemVvZihpbnQpKTsKIAkJdGJpbmZvLT5hdHRhbGlnbiA9IChjaGFyICopIHBn X21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKQEAgLTg5ODcsNiArOTE3NywyMiBA QCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50 IG51bVRhYmxlcykKIAkJCXRiaW5mby0+YXR0aWRlbnRpdHlbal0gPSAqKFBRZ2V0dmFsdWUo cmVzLCByLCBpX2F0dGlkZW50aXR5KSk7CiAJCQl0YmluZm8tPmF0dGdlbmVyYXRlZFtqXSA9 ICooUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Z2VuZXJhdGVkKSk7CiAJCQl0YmluZm8tPm5l ZWRzX292ZXJyaWRlID0gdGJpbmZvLT5uZWVkc19vdmVycmlkZSB8fCAodGJpbmZvLT5hdHRp ZGVudGl0eVtqXSA9PSBBVFRSSUJVVEVfSURFTlRJVFlfQUxXQVlTKTsKKwkJCWlmICghUFFn ZXRpc251bGwocmVzLCByLCBpX2F0dGNlaykpCisJCQl7CisJCQkJT2lkCQkJYXR0Y2VraWQg PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Y2VrKSk7CisKKwkJCQl0YmluZm8t PmF0dGNla1tqXSA9IGZpbmRDZWtCeU9pZChhdHRjZWtpZCk7CisJCQl9CisJCQllbHNlCisJ CQkJdGJpbmZvLT5hdHRjZWtbal0gPSBOVUxMOworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMs IHIsIGlfYXR0ZW5jZGV0KSkKKwkJCQl0YmluZm8tPmF0dGVuY2RldFtqXSA9IChQUWdldHZh bHVlKHJlcywgciwgaV9hdHRlbmNkZXQpWzBdID09ICd0Jyk7CisJCQllbHNlCisJCQkJdGJp bmZvLT5hdHRlbmNkZXRbal0gPSAwOworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIHIsIGlf YXR0ZW5jYWxnKSkKKwkJCQl0YmluZm8tPmF0dGVuY2FsZ1tqXSA9IGF0b2koUFFnZXR2YWx1 ZShyZXMsIHIsIGlfYXR0ZW5jYWxnKSk7CisJCQllbHNlCisJCQkJdGJpbmZvLT5hdHRlbmNh bGdbal0gPSAwOwogCQkJdGJpbmZvLT5hdHRpc2Ryb3BwZWRbal0gPSAoUFFnZXR2YWx1ZShy ZXMsIHIsIGlfYXR0aXNkcm9wcGVkKVswXSA9PSAndCcpOwogCQkJdGJpbmZvLT5hdHRsZW5b al0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGxlbikpOwogCQkJdGJpbmZvLT5h dHRhbGlnbltqXSA9ICooUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0YWxpZ24pKTsKQEAgLTEw NjI1LDYgKzEwODMxLDEyIEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBE dW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19PUEZBTUlMWToKIAkJCWR1bXBPcGZh bWlseShmb3V0LCAoY29uc3QgT3BmYW1pbHlJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJ CWNhc2UgRE9fQ0VLOgorCQkJZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoZm91dCwgKGNvbnN0 IENla0luZm8gKikgZG9iaik7CisJCQlicmVhazsKKwkJY2FzZSBET19DTUs6CisJCQlkdW1w Q29sdW1uTWFzdGVyS2V5KGZvdXQsIChjb25zdCBDbWtJbmZvICopIGRvYmopOworCQkJYnJl YWs7CiAJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJZHVtcENvbGxhdGlvbihmb3V0LCAoY29u c3QgQ29sbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTE0MTAwLDYgKzE0MzEyLDE0 MSBAQCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJbmZvICpjb2xs aW5mbykKIAlmcmVlKHFjb2xsbmFtZSk7CiB9CiAKKy8qCisgKiBkdW1wQ29sdW1uRW5jcnlw dGlvbktleQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkKKyAqLworc3RhdGljIHZvaWQKK2R1bXBDb2x1bW5FbmNyeXB0aW9u S2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENla0luZm8gKmNla2luZm8pCit7CisJRHVtcE9w dGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBC dWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcWNla25hbWU7CisKKwkvKiBEbyBub3RoaW5nIGlu IGRhdGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRhdGFPbmx5KQorCQlyZXR1cm47CisK KwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVm ZmVyKCk7CisKKwlxY2VrbmFtZSA9IHBnX3N0cmR1cChmbXRJZChjZWtpbmZvLT5kb2JqLm5h bWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIENPTFVNTiBFTkNSWVBU SU9OIEtFWSAlcztcbiIsCisJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY2VraW5mbykp OworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZICVzIFdJVEggVkFMVUVTICIsCisJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUo Y2VraW5mbykpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBjZWtpbmZvLT5udW1kYXRhOyBp KyspCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIigiKTsKKworCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgImNvbHVtbl9tYXN0ZXJfa2V5ID0gJXMsICIsIGZtdFF1YWxp ZmllZER1bXBhYmxlKGNla2luZm8tPmNla2Nta3NbaV0pKTsKKwkJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICJhbGdvcml0aG0gPSAnJXMnLCAiLCBnZXRfY21rYWxnX25hbWUoY2VraW5m by0+Y2VrY21rYWxnc1tpXSkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImVuY3J5 cHRlZF92YWx1ZSA9ICIpOworCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNla2lu Zm8tPmNla2VuY3ZhbHNbaV0sIGZvdXQpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiKSIpOworCQlpZiAoaSA8IGNla2luZm8tPm51bWRhdGEgLSAxKQorCQkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIsICIpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiO1xuIik7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05F TlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIGNla2luZm8tPmRvYmouY2F0 SWQsIGNla2luZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSBj ZWtpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IGNla2luZm8tPmRv YmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVyID0gY2VraW5mby0+ cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQ09MVU1OIEVOQ1JZUFRJT04g S0VZIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJ CSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBk ZWxxLT5kYXRhKSk7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05F TlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtF WSIsIHFjZWtuYW1lLAorCQkJCQljZWtpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1l LCBjZWtpbmZvLT5yb2xuYW1lLAorCQkJCQljZWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjZWtp bmZvLT5kb2JqLmR1bXBJZCk7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9D T01QT05FTlRfU0VDTEFCRUwpCisJCWR1bXBTZWNMYWJlbChmb3V0LCAiQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIiwgcWNla25hbWUsCisJCQkJCSBjZWtpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ ZG9iai5uYW1lLCBjZWtpbmZvLT5yb2xuYW1lLAorCQkJCQkgY2VraW5mby0+ZG9iai5jYXRJ ZCwgMCwgY2VraW5mby0+ZG9iai5kdW1wSWQpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVt cCAmIERVTVBfQ09NUE9ORU5UX0FDTCkKKwkJZHVtcEFDTChmb3V0LCBjZWtpbmZvLT5kb2Jq LmR1bXBJZCwgSW52YWxpZER1bXBJZCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsCisJCQkJ cWNla25hbWUsIE5VTEwsIGNla2luZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJ CQkJTlVMTCwgY2VraW5mby0+cm9sbmFtZSwgJmNla2luZm8tPmRhY2wpOworCisJZGVzdHJv eVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJZnJl ZShxY2VrbmFtZSk7Cit9CisKKy8qCisgKiBkdW1wQ29sdW1uTWFzdGVyS2V5CisgKgkgIGR1 bXAgdGhlIGRlZmluaXRpb24gb2YgdGhlIGdpdmVuIGNvbHVtbiBtYXN0ZXIga2V5CisgKi8K K3N0YXRpYyB2b2lkCitkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0 IENta0luZm8gKmNta2luZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0 OworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAq cWNta25hbWU7CisKKwkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCisJaWYg KGRvcHQtPmRhdGFPbmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZm ZXIoKTsKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxY21rbmFtZSA9IHBn X3N0cmR1cChmbXRJZChjbWtpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVm ZmVyKGRlbHEsICJEUk9QIENPTFVNTiBNQVNURVIgS0VZICVzO1xuIiwKKwkJCQkJICBmbXRR dWFsaWZpZWREdW1wYWJsZShjbWtpbmZvKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAlcyBXSVRIICgiLAorCQkJCQkgIGZtdFF1 YWxpZmllZER1bXBhYmxlKGNta2luZm8pKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAicmVhbG0gPSAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNta2luZm8t PmNta3JlYWxtLCBmb3V0KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiKTtc biIpOworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklO SVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCBjbWtpbmZvLT5kb2JqLmNhdElkLCBjbWtp bmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY21raW5mby0+ ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSBjbWtpbmZvLT5kb2JqLm5hbWVz cGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNta2luZm8tPnJvbG5hbWUs CisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBNQVNURVIgS0VZIiwKKwkJCQkJ CQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0 bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7 CisKKwlpZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkK KwkJZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBNQVNURVIgS0VZIiwgcWNta25hbWUsCisJ CQkJCWNta2luZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIGNta2luZm8tPnJvbG5h bWUsCisJCQkJCWNta2luZm8tPmRvYmouY2F0SWQsIDAsIGNta2luZm8tPmRvYmouZHVtcElk KTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9TRUNMQUJF TCkKKwkJZHVtcFNlY0xhYmVsKGZvdXQsICJDT0xVTU4gTUFTVEVSIEtFWSIsIHFjbWtuYW1l LAorCQkJCQkgY21raW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgY21raW5mby0+ cm9sbmFtZSwKKwkJCQkJIGNta2luZm8tPmRvYmouY2F0SWQsIDAsIGNta2luZm8tPmRvYmou ZHVtcElkKTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9B Q0wpCisJCWR1bXBBQ0woZm91dCwgY21raW5mby0+ZG9iai5kdW1wSWQsIEludmFsaWREdW1w SWQsICJDT0xVTU4gTUFTVEVSIEtFWSIsCisJCQkJcWNta25hbWUsIE5VTEwsIGNta2luZm8t PmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJTlVMTCwgY21raW5mby0+cm9sbmFt ZSwgJmNta2luZm8tPmRhY2wpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRl c3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJZnJlZShxY21rbmFtZSk7Cit9CisKIC8qCiAg KiBkdW1wQ29udmVyc2lvbgogICoJICB3cml0ZSBvdXQgYSBzaW5nbGUgY29udmVyc2lvbiBk ZWZpbml0aW9uCkBAIC0xNjE5Myw2ICsxNjU0MCwyMyBAQCBkdW1wVGFibGVTY2hlbWEoQXJj aGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCQkJCQkJICB0Ymlu Zm8tPmF0dHR5cG5hbWVzW2pdKTsKIAkJCQkJfQogCisJCQkJCWlmICh0YmluZm8tPmF0dGNl a1tqXSkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBFTkNSWVBURUQg V0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gJXMsICIsCisJCQkJCQkJCQkJICBmbXRR dWFsaWZpZWREdW1wYWJsZSh0YmluZm8tPmF0dGNla1tqXSkpOworCisJCQkJCQkvKgorCQkJ CQkJICogVG8gcmVkdWNlIG91dHB1dCBzaXplLCB3ZSBkb24ndCBwcmludCB0aGUgZGVmYXVs dAorCQkJCQkJICogb2YgZW5jcnlwdGlvbl90eXBlLCBidXQgd2UgZG8gcHJpbnQgdGhlIGRl ZmF1bHQgb2YKKwkJCQkJCSAqIGFsZ29yaXRobSwgc2luY2Ugd2UgbWlnaHQgd2FudCB0byBj aGFuZ2UgdG8gYSBuZXcKKwkJCQkJCSAqIGRlZmF1bHQgYWxnb3JpdGhtIHNvbWV0aW1lIGlu IHRoZSBmdXR1cmUuCisJCQkJCQkgKi8KKwkJCQkJCWlmICh0YmluZm8tPmF0dGVuY2RldFtq XSkKKwkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiZW5jcnlwdGlvbl90eXBlID0gZGV0 ZXJtaW5pc3RpYywgIik7CisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiYWxnb3JpdGht ID0gJyVzJykiLAorCQkJCQkJCQkJCSAgZ2V0X2Nla2FsZ19uYW1lKHRiaW5mby0+YXR0ZW5j YWxnW2pdKSk7CisJCQkJCX0KKwogCQkJCQlpZiAocHJpbnRfZGVmYXVsdCkKIAkJCQkJewog CQkJCQkJaWYgKHRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID09IEFUVFJJQlVURV9HRU5FUkFU RURfU1RPUkVEKQpAQCAtMTg3MDIsNiArMTkwNjYsOCBAQCBhZGRCb3VuZGFyeURlcGVuZGVu Y2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9f QUNDRVNTX01FVEhPRDoKIAkJCWNhc2UgRE9fT1BDTEFTUzoKIAkJCWNhc2UgRE9fT1BGQU1J TFk6CisJCQljYXNlIERPX0NFSzoKKwkJCWNhc2UgRE9fQ01LOgogCQkJY2FzZSBET19DT0xM QVRJT046CiAJCQljYXNlIERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKaW5kZXggMmE3YzU4NzNhMGEuLmY0NTEyODFkYzc0IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKQEAgLTQ3LDYgKzQ3LDggQEAgdHlwZWRlZiBlbnVtCiAJRE9fQUNDRVNTX01FVEhPRCwK IAlET19PUENMQVNTLAogCURPX09QRkFNSUxZLAorCURPX0NFSywKKwlET19DTUssCiAJRE9f Q09MTEFUSU9OLAogCURPX0NPTlZFUlNJT04sCiAJRE9fVEFCTEUsCkBAIC0zMzgsNiArMzQw LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJvb2wJICAgKmF0dGlzZHJvcHBl ZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3BwZWQ7IGRvbid0IGR1bXAgaXQgKi8KIAljaGFy CSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAgICphdHRnZW5lcmF0ZWQ7CisJc3RydWN0IF9D ZWtJbmZvICoqYXR0Y2VrOworCWludAkJICAgKmF0dGVuY2FsZzsKKwlib29sCSAgICphdHRl bmNkZXQ7CiAJaW50CQkgICAqYXR0bGVuOwkJCS8qIGF0dHJpYnV0ZSBsZW5ndGgsIHVzZWQg YnkgYmluYXJ5X3VwZ3JhZGUgKi8KIAljaGFyCSAgICphdHRhbGlnbjsJCS8qIGF0dHJpYnV0 ZSBhbGlnbiwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAqLwogCWJvb2wJICAgKmF0dGlzbG9j YWw7CQkvKiB0cnVlIGlmIGF0dHIgaGFzIGxvY2FsIGRlZmluaXRpb24gKi8KQEAgLTY5OCw2 ICs3MDMsMzIgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpzcnN1 YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBDZWtJbmZvIHN0cnVjdCBpcyB1 c2VkIHRvIHJlcHJlc2VudCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgKi8KK3R5cGVkZWYg c3RydWN0IF9DZWtJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1wYWJsZUFj bCBkYWNsOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJaW50CQkJbnVtZGF0YTsKKwkvKiBU aGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVtZGF0YSBlbnRyaWVzIGVhY2g6ICovCisJ c3RydWN0IF9DbWtJbmZvICoqY2VrY21rczsKKwlpbnQJCSAgICpjZWtjbWthbGdzOworCWNo YXIJICAqKmNla2VuY3ZhbHM7Cit9IENla0luZm87CisKKy8qCisgKiBUaGUgQ21rSW5mbyBz dHJ1Y3QgaXMgdXNlZCB0byByZXByZXNlbnQgY29sdW1uIG1hc3RlciBrZXkuCisgKi8KK3R5 cGVkZWYgc3RydWN0IF9DbWtJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1w YWJsZUFjbCBkYWNsOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJY2hhcgkgICAqY21rcmVh bG07Cit9IENta0luZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAq LwpAQCAtNzE5LDYgKzc1MCw4IEBAIGV4dGVybiBUYWJsZUluZm8gKmZpbmRUYWJsZUJ5T2lk KE9pZCBvaWQpOwogZXh0ZXJuIFR5cGVJbmZvICpmaW5kVHlwZUJ5T2lkKE9pZCBvaWQpOwog ZXh0ZXJuIEZ1bmNJbmZvICpmaW5kRnVuY0J5T2lkKE9pZCBvaWQpOwogZXh0ZXJuIE9wcklu Zm8gKmZpbmRPcHJCeU9pZChPaWQgb2lkKTsKK2V4dGVybiBDZWtJbmZvICpmaW5kQ2VrQnlP aWQoT2lkIG9pZCk7CitleHRlcm4gQ21rSW5mbyAqZmluZENta0J5T2lkKE9pZCBvaWQpOwog ZXh0ZXJuIENvbGxJbmZvICpmaW5kQ29sbGF0aW9uQnlPaWQoT2lkIG9pZCk7CiBleHRlcm4g TmFtZXNwYWNlSW5mbyAqZmluZE5hbWVzcGFjZUJ5T2lkKE9pZCBvaWQpOwogZXh0ZXJuIEV4 dGVuc2lvbkluZm8gKmZpbmRFeHRlbnNpb25CeU9pZChPaWQgb2lkKTsKQEAgLTc0Nyw2ICs3 ODAsOCBAQCBleHRlcm4gQWNjZXNzTWV0aG9kSW5mbyAqZ2V0QWNjZXNzTWV0aG9kcyhBcmNo aXZlICpmb3V0LCBpbnQgKm51bUFjY2Vzc01ldGhvZHMpOwogZXh0ZXJuIE9wY2xhc3NJbmZv ICpnZXRPcGNsYXNzZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1PcGNsYXNzZXMpOwogZXh0 ZXJuIE9wZmFtaWx5SW5mbyAqZ2V0T3BmYW1pbGllcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51 bU9wZmFtaWxpZXMpOwogZXh0ZXJuIENvbGxJbmZvICpnZXRDb2xsYXRpb25zKEFyY2hpdmUg KmZvdXQsIGludCAqbnVtQ29sbGF0aW9ucyk7CitleHRlcm4gdm9pZCBnZXRDb2x1bW5FbmNy eXB0aW9uS2V5cyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdldENvbHVtbk1hc3Rl cktleXMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gQ29udkluZm8gKmdldENvbnZlcnNpb25z KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtQ29udmVyc2lvbnMpOwogZXh0ZXJuIFRhYmxlSW5m byAqZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKTsKIGV4dGVybiB2 b2lkIGdldE93bmVkU2VxcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3Nv cnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCA3MzYyZjdjOTYx YS4uMTdkN2ZkZDc0ZDUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3Nv cnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTcxLDYgKzcx LDggQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19UU1RFTVBMQVRFLAog CVBSSU9fVFNESUNULAogCVBSSU9fVFNDT05GSUcsCisJUFJJT19DTUssCisJUFJJT19DRUss CiAJUFJJT19GRFcsCiAJUFJJT19GT1JFSUdOX1NFUlZFUiwKIAlQUklPX1RBQkxFLApAQCAt MTE0LDYgKzExNiw4IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlb XSA9CiAJW0RPX0FDQ0VTU19NRVRIT0RdID0gUFJJT19BQ0NFU1NfTUVUSE9ELAogCVtET19P UENMQVNTXSA9IFBSSU9fT1BGQU1JTFksCiAJW0RPX09QRkFNSUxZXSA9IFBSSU9fT1BGQU1J TFksCisJW0RPX0NFS10gPSBQUklPX0NFSywKKwlbRE9fQ01LXSA9IFBSSU9fQ01LLAogCVtE T19DT0xMQVRJT05dID0gUFJJT19DT0xMQVRJT04sCiAJW0RPX0NPTlZFUlNJT05dID0gUFJJ T19DT05WRVJTSU9OLAogCVtET19UQUJMRV0gPSBQUklPX1RBQkxFLApAQCAtMTI5OSw2ICsx MzAzLDE2IEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwg Y2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJPUEVSQVRPUiBGQU1JTFkgJXMgIChJ RCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0 SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19DRUs6CisJCQlzbnByaW50ZihidWYs IGJ1ZnNpemUsCisJCQkJCSAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIChJRCAlZCBPSUQgJXUp IiwKKwkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47CisJ CWNhc2UgRE9fQ01LOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIkNPTFVN TiBNQVNURVIgS0VZIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVtcElkLCBvYmot PmNhdElkLm9pZCk7CisJCQlyZXR1cm47CiAJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJc25w cmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIkNPTExBVElPTiAlcyAgKElEICVkIE9JRCAl dSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKaW5kZXggNzMzMzdmMzM5MjMuLjg0ZjYyM2IyYzlj IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKQEAgLTkzLDYgKzkzLDcgQEAgc3RhdGljIGJvb2wg ZG9zeW5jID0gdHJ1ZTsKIAogc3RhdGljIGludAliaW5hcnlfdXBncmFkZSA9IDA7CiBzdGF0 aWMgaW50CWNvbHVtbl9pbnNlcnRzID0gMDsKK3N0YXRpYyBpbnQJZGVjcnlwdF9lbmNyeXB0 ZWRfY29sdW1ucyA9IDA7CiBzdGF0aWMgaW50CWRpc2FibGVfZG9sbGFyX3F1b3RpbmcgPSAw Owogc3RhdGljIGludAlkaXNhYmxlX3RyaWdnZXJzID0gMDsKIHN0YXRpYyBpbnQJaWZfZXhp c3RzID0gMDsKQEAgLTE1NCw2ICsxNTUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJCXsiYXR0cmlidXRlLWluc2VydHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNl cnRzLCAxfSwKIAkJeyJiaW5hcnktdXBncmFkZSIsIG5vX2FyZ3VtZW50LCAmYmluYXJ5X3Vw Z3JhZGUsIDF9LAogCQl7ImNvbHVtbi1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZjb2x1bW5f aW5zZXJ0cywgMX0sCisJCXsiZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIsIG5vX2FyZ3Vt ZW50LCAmZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucywgMX0sCiAJCXsiZGlzYWJsZS1kb2xs YXItcXVvdGluZyIsIG5vX2FyZ3VtZW50LCAmZGlzYWJsZV9kb2xsYXJfcXVvdGluZywgMX0s CiAJCXsiZGlzYWJsZS10cmlnZ2VycyIsIG5vX2FyZ3VtZW50LCAmZGlzYWJsZV90cmlnZ2Vy cywgMX0sCiAJCXsiZXhjbHVkZS1kYXRhYmFzZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxM LCA2fSwKQEAgLTQyOSw2ICs0MzEsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1iaW5hcnktdXBncmFk ZSIpOwogCWlmIChjb2x1bW5faW5zZXJ0cykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdk dW1wb3B0cywgIiAtLWNvbHVtbi1pbnNlcnRzIik7CisJaWYgKGRlY3J5cHRfZW5jcnlwdGVk X2NvbHVtbnMpCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1kZWNy eXB0LWVuY3J5cHRlZC1jb2x1bW5zIik7CiAJaWYgKGRpc2FibGVfZG9sbGFyX3F1b3Rpbmcp CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1kaXNhYmxlLWRvbGxh ci1xdW90aW5nIik7CiAJaWYgKGRpc2FibGVfdHJpZ2dlcnMpCkBAIC02NTQsNiArNjU4LDcg QEAgaGVscCh2b2lkKQogCXByaW50ZihfKCIgIC14LCAtLW5vLXByaXZpbGVnZXMgICAgICAg ICAgZG8gbm90IGR1bXAgcHJpdmlsZWdlcyAoZ3JhbnQvcmV2b2tlKVxuIikpOwogCXByaW50 ZihfKCIgIC0tYmluYXJ5LXVwZ3JhZGUgICAgICAgICAgICAgZm9yIHVzZSBieSB1cGdyYWRl IHV0aWxpdGllcyBvbmx5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb2x1bW4taW5zZXJ0cyAg ICAgICAgICAgICBkdW1wIGRhdGEgYXMgSU5TRVJUIGNvbW1hbmRzIHdpdGggY29sdW1uIG5h bWVzXG4iKSk7CisJcHJpbnRmKF8oIiAgLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zICBk ZWNyeXB0IGVuY3J5cHRlZCBjb2x1bW5zIGluIHRoZSBvdXRwdXRcbiIpKTsKIAlwcmludGYo XygiICAtLWRpc2FibGUtZG9sbGFyLXF1b3RpbmcgICAgIGRpc2FibGUgZG9sbGFyIHF1b3Rp bmcsIHVzZSBTUUwgc3RhbmRhcmQgcXVvdGluZ1xuIikpOwogCXByaW50ZihfKCIgIC0tZGlz YWJsZS10cmlnZ2VycyAgICAgICAgICAgZGlzYWJsZSB0cmlnZ2VycyBkdXJpbmcgZGF0YS1v bmx5IHJlc3RvcmVcbiIpKTsKIAlwcmludGYoXygiICAtLWV4Y2x1ZGUtZGF0YWJhc2U9UEFU VEVSTiAgIGV4Y2x1ZGUgZGF0YWJhc2VzIHdob3NlIG5hbWUgbWF0Y2hlcyBQQVRURVJOXG4i KSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDBjMDU3ZmVmOTQ3Li4wNGY5 NGY3MzQ4OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTgxMCw2ICs4MTAs MjkgQEAKIAkJdW5saWtlID0+IHsgbm9fb3duZXIgPT4gMSwgfSwKIAl9LAogCisJJ0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVSIFRPJyA9PiB7CisJCXJlZ2V4cCA9 PgorCQkgIHFyL15BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgZHVtcF90ZXN0LmNlazEg T1dORVIgVE8gLis7L20sCisJCWxpa2UgPT4KKwkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rl c3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJbm9fb3duZXIgPT4g MSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCA9PiAxLAorCQl9LAorCX0sCisKKwknQUxU RVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBPV05FUiBUTycgPT4geworCQlyZWdleHAgPT4g cXIvXkFMVEVSIENPTFVNTiBNQVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxIE9XTkVSIFRPIC4r Oy9tLAorCQlsaWtlID0+CisJCSAgeyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0X3NjaGVtYV9y dW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7CisJCQlleGNs dWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW5vX293bmVyID0+IDEsCisJCQlvbmx5 X2R1bXBfbWVhc3VyZW1lbnQgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0FMVEVSIEZPUkVJR04g REFUQSBXUkFQUEVSIGR1bW15IE9XTkVSIFRPJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eQUxU RVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgZHVtbXkgT1dORVIgVE8gLis7L20sCiAJCWxpa2Ug PT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCkBAIC0xNTE2LDYg KzE1MzksMzQgQEAKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEg PT4gMSwgfSwKIAl9LAogCisJJ0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1LAorCQljcmVhdGVfc3FsID0+ICdDT01N RU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBkdW1wX3Rlc3QuY2VrMQorCQkJCQkgICBJ UyBcJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5XCc7JywKKwkJcmVnZXhwID0+ CisJCSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGR1bXBfdGVzdC5j ZWsxIElTICdjb21tZW50IG9uIGNvbHVtbiBlbmNyeXB0aW9uIGtleSc7L20sCisJCWxpa2Ug PT4KKwkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25f cHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0 X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ID0+IDEsCisJCX0sCisJ fSwKKworCSdDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3Jl YXRlX29yZGVyID0+IDU1LAorCQljcmVhdGVfc3FsID0+ICdDT01NRU5UIE9OIENPTFVNTiBN QVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiBjb2x1 bW4gbWFzdGVyIGtleVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15DT01NRU5UIE9OIENP TFVNTiBNQVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxIElTICdjb21tZW50IG9uIGNvbHVtbiBt YXN0ZXIga2V5JzsvbSwKKwkJbGlrZSA9PgorCQkgIHsgJWZ1bGxfcnVucywgJWR1bXBfdGVz dF9zY2hlbWFfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4g eworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVh c3VyZW1lbnQgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NPTU1FTlQgT04gTEFSR0UgT0JKRUNU IC4uLicgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjUsCiAJCWNyZWF0ZV9zcWwgPT4gJ0RP ICQkCkBAIC0xOTkzLDYgKzIwNDQsMzIgQEAKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNl Y3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTEsCisJCWNyZWF0ZV9z cWwgPT4KKwkJICAiQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBkdW1wX3Rlc3QuY2Vr MSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBkdW1wX3Rlc3QuY21rMSwgYWxn b3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4REVB REJFRUYnKTsiLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGR1bXBfdGVzdC5jZWsxIFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tl eSA9IGR1bXBfdGVzdC5jbWsxLCBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsIGVu Y3J5cHRlZF92YWx1ZSA9IFxFCisJCQkveG0sCisJCWxpa2UgPT4KKwkJICB7ICVmdWxsX3J1 bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwK KwkJdW5saWtlID0+CisJCSAgeyBleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgb25s eV9kdW1wX21lYXN1cmVtZW50ID0+IDEsIH0sCisJfSwKKworCSdDUkVBVEUgQ09MVU1OIE1B U1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9z cWwgPT4KKwkJICAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxIFdJ VEggKHJlYWxtID0gJ215cmVhbG0nKTsiLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVB VEUgQ09MVU1OIE1BU1RFUiBLRVkgZHVtcF90ZXN0LmNtazEgV0lUSCAocmVhbG0gPSAnbXly ZWFsbScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4KKwkJICB7ICVmdWxsX3J1bnMsICVkdW1w X3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtl ID0+CisJCSAgeyBleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgb25seV9kdW1wX21l YXN1cmVtZW50ID0+IDEsIH0sCisJfSwKKwogCSdDUkVBVEUgREFUQUJBU0UgcG9zdGdyZXMn ID0+IHsKIAkJcmVnZXhwID0+IHFyL14KIAkJCVxRQ1JFQVRFIERBVEFCQVNFIHBvc3RncmVz IFdJVEggVEVNUExBVEUgPSB0ZW1wbGF0ZTAgXEUKQEAgLTQxMDEsNiArNDE3OCwzOCBAQAog CQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAogCX0sCiAKKwknR1JBTlQgVVNBR0Ug T04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDg1LAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0dSQU5UIFVTQUdFIE9OIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBkdW1wX3Rlc3QuY2VrMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlOycs CisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUdSQU5UIEFMTCBPTiBDT0xVTU4gRU5DUllQVElP TiBLRVkgZHVtcF90ZXN0LmNlazEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTtcRQorCQkJ L3htLAorCQlsaWtlID0+CisJCSAgeyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0X3NjaGVtYV9y dW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7CisJCQlleGNs dWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzID0+IDEsCisJCQlvbmx5 X2R1bXBfbWVhc3VyZW1lbnQgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0dSQU5UIFVTQUdFIE9O IENPTFVNTiBNQVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDg1LAor CQljcmVhdGVfc3FsID0+CisJCSAgJ0dSQU5UIFVTQUdFIE9OIENPTFVNTiBNQVNURVIgS0VZ IGR1bXBfdGVzdC5jbWsxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhw ID0+IHFyL14KKwkJCVxRR1JBTlQgQUxMIE9OIENPTFVNTiBNQVNURVIgS0VZIGR1bXBfdGVz dC5jbWsxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7XEUKKwkJCS94bSwKKwkJbGlrZSA9 PgorCQkgIHsgJWZ1bGxfcnVucywgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgc2VjdGlvbl9w cmVfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rf c2NoZW1hID0+IDEsCisJCQlub19wcml2cyA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVt ZW50ID0+IDEsCisJCX0sCisJfSwKKwogCSdHUkFOVCBVU0FHRSBPTiBGT1JFSUdOIERBVEEg V1JBUFBFUiBkdW1teScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gODUsCiAJCWNyZWF0ZV9z cWwgPT4gJ0dSQU5UIFVTQUdFIE9OIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15CmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQu YwppbmRleCAyODhjMWE4YzkzNS4uMTI1ZDdjZWE4YzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtODE4LDcg KzgxOCwxMSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJv b2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCXN1Y2Nlc3MgPSBkZXNj cmliZVRhYmxlc3BhY2VzKHBhdHRlcm4sIHNob3dfdmVyYm9zZSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlICdjJzoKLQkJCQlpZiAoc3RybmNtcChjbWQsICJkY29uZmlnIiwgNykgPT0gMCkK KwkJCQlpZiAoc3RybmNtcChjbWQsICJkY2VrIiwgNCkgPT0gMCkKKwkJCQkJc3VjY2VzcyA9 IGxpc3RDRUtzKHBhdHRlcm4sIHNob3dfdmVyYm9zZSk7CisJCQkJZWxzZSBpZiAoc3RybmNt cChjbWQsICJkY21rIiwgNCkgPT0gMCkKKwkJCQkJc3VjY2VzcyA9IGxpc3RDTUtzKHBhdHRl cm4sIHNob3dfdmVyYm9zZSk7CisJCQkJZWxzZSBpZiAoc3RybmNtcChjbWQsICJkY29uZmln IiwgNykgPT0gMCkKIAkJCQkJc3VjY2VzcyA9IGRlc2NyaWJlQ29uZmlndXJhdGlvblBhcmFt ZXRlcnMocGF0dGVybiwKIAkJCQkJCQkJCQkJCQkJCSAgc2hvd192ZXJib3NlLAogCQkJCQkJ CQkJCQkJCQkJICBzaG93X3N5c3RlbSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDY0MzM0OTdiY2QyLi5i ZDdhYjg2MTU1MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE1MzgsNyArMTUzOCw3IEBAIGRlc2NyaWJl T25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJYm9vbAkJcHJpbnRU YWJsZUluaXRpYWxpemVkID0gZmFsc2U7CiAJaW50CQkJaTsKIAljaGFyCSAgICp2aWV3X2Rl ZiA9IE5VTEw7Ci0JY2hhcgkgICAqaGVhZGVyc1sxMl07CisJY2hhcgkgICAqaGVhZGVyc1sx M107CiAJUFFFeHBCdWZmZXJEYXRhIHRpdGxlOwogCVBRRXhwQnVmZmVyRGF0YSB0bXBidWY7 CiAJaW50CQkJY29sczsKQEAgLTE1NTQsNiArMTU1NCw3IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJZmR3b3B0c19jb2wgPSAtMSwK IAkJCQlhdHRzdG9yYWdlX2NvbCA9IC0xLAogCQkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IC0x LAorCQkJCWF0dGNla25hbWVfY29sID0gLTEsCiAJCQkJYXR0c3RhdHRhcmdldF9jb2wgPSAt MSwKIAkJCQlhdHRkZXNjcl9jb2wgPSAtMTsKIAlpbnQJCQludW1yb3dzOwpAQCAtMTU3Niw2 ICsxNTc3LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAkJY2hhcgkgICAqcmVsYW07CiAJfQkJCXRhYmxlaW5mbzsKIAlib29sCQlzaG93 X2NvbHVtbl9kZXRhaWxzID0gZmFsc2U7CisJY29uc3QgY2hhciAqYXR0dXNlcnR5cGlkOwor CWNvbnN0IGNoYXIgKmF0dHVzZXJ0eXBtb2Q7CiAKIAlteW9wdC5kZWZhdWx0X2Zvb3RlciA9 IGZhbHNlOwogCS8qIFRoaXMgb3V0cHV0IGxvb2tzIGNvbmZ1c2luZyBpbiBleHBhbmRlZCBt b2RlLiAqLwpAQCAtMTg1Miw3ICsxODU1LDE3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxz KGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJY29scyA9IDA7CiAJcHJpbnRmUFFFeHBCdWZm ZXIoJmJ1ZiwgIlNFTEVDVCBhLmF0dG5hbWUiKTsKIAlhdHRuYW1lX2NvbCA9IGNvbHMrKzsK LQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90 eXBlKGEuYXR0dHlwaWQsIGEuYXR0dHlwbW9kKSIpOworCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE3MDAwMCkKKwl7CisJCWF0dHVzZXJ0eXBpZCA9ICJDQVNFIFdIRU4gYS5hdHR1c2VydHlw aWQgSVMgTk9UIE5VTEwgVEhFTiBhLmF0dHVzZXJ0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5E IjsKKwkJYXR0dXNlcnR5cG1vZCA9ICJDQVNFIFdIRU4gYS5hdHR1c2VydHlwaWQgSVMgTk9U IE5VTEwgVEhFTiBhLmF0dHVzZXJ0eXBtb2QgRUxTRSBhLmF0dHR5cG1vZCBFTkQiOworCX0K KwllbHNlCisJeworCQlhdHR1c2VydHlwaWQgPSAiYS5hdHR0eXBpZCI7CisJCWF0dHVzZXJ0 eXBtb2QgPSAiYS5hdHR0eXBtb2QiOworCX0KKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAi LFxuICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKCVzLCAlcykiLCBhdHR1c2VydHlwaWQsIGF0 dHVzZXJ0eXBtb2QpOwogCWF0dHR5cGVfY29sID0gY29scysrOwogCiAJaWYgKHNob3dfY29s dW1uX2RldGFpbHMpCkBAIC0xODY1LDcgKzE4NzgsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCSAiLFxuICBhLmF0dG5vdG51 bGwiKTsKIAkJYXR0cmRlZl9jb2wgPSBjb2xzKys7CiAJCWF0dG5vdG51bGxfY29sID0gY29s cysrOwotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICAoU0VMRUNUIGMuY29s bG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgdFxuIgorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuIgorCQkJCQkJCSAi ICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgdFxuIgogCQkJCQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0 dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5cGlkIEFORCBhLmF0dGNvbGxhdGlvbiA8 PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CiAJCWF0dGNvbGxfY29sID0g Y29scysrOwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxMDAwMDApCkBAIC0xOTE3LDYgKzE5 MzEsMTggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFt ZSwKIAkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IGNvbHMrKzsKIAkJfQogCisJCS8qIGVuY3J5 cHRpb24gaW5mbyAqLworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNzAwMDAgJiYKKwkJCSFw c2V0LmhpZGVfY29sdW1uX2VuY3J5cHRpb24gJiYKKwkJCSh0YWJsZWluZm8ucmVsa2luZCA9 PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkgdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lO RF9WSUVXIHx8CisJCQkgdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8 CisJCQkgdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkp CisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1QgY2Vr bmFtZSBGUk9NIHBnX2NvbGVuY2tleSBjZWsgV0hFUkUgY2VrLm9pZCA9IGEuYXR0Y2VrKSBB UyBhdHRjZWtuYW1lIik7CisJCQlhdHRjZWtuYW1lX2NvbCA9IGNvbHMrKzsKKwkJfQorCiAJ CS8qIHN0YXRzIHRhcmdldCwgaWYgcmVsZXZhbnQgdG8gcmVsa2luZCAqLwogCQlpZiAodGFi bGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAogCQkJdGFibGVpbmZvLnJl bGtpbmQgPT0gUkVMS0lORF9JTkRFWCB8fApAQCAtMjA0MCw2ICsyMDY2LDggQEAgZGVzY3Jp YmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJaGVhZGVyc1tj b2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdG9yYWdlIik7CiAJaWYgKGF0dGNvbXByZXNzaW9u X2NvbCA+PSAwKQogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNz aW9uIik7CisJaWYgKGF0dGNla25hbWVfY29sID49IDApCisJCWhlYWRlcnNbY29scysrXSA9 IGdldHRleHRfbm9vcCgiRW5jcnlwdGlvbiIpOwogCWlmIChhdHRzdGF0dGFyZ2V0X2NvbCA+ PSAwKQogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIlN0YXRzIHRhcmdldCIp OwogCWlmIChhdHRkZXNjcl9jb2wgPj0gMCkKQEAgLTIxMzIsNiArMjE2MCwxNyBAQCBkZXNj cmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCSAg ZmFsc2UsIGZhbHNlKTsKIAkJfQogCisJCS8qIENvbHVtbiBlbmNyeXB0aW9uICovCisJCWlm IChhdHRjZWtuYW1lX2NvbCA+PSAwKQorCQl7CisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywg aSwgYXR0Y2VrbmFtZV9jb2wpKQorCQkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdl dHZhbHVlKHJlcywgaSwgYXR0Y2VrbmFtZV9jb2wpLAorCQkJCQkJCQkgIGZhbHNlLCBmYWxz ZSk7CisJCQllbHNlCisJCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsICIiLAorCQkJCQkJ CQkgIGZhbHNlLCBmYWxzZSk7CisJCX0KKwogCQkvKiBTdGF0aXN0aWNzIHRhcmdldCwgaWYg dGhlIHJlbGtpbmQgc3VwcG9ydHMgdGhpcyBmZWF0dXJlICovCiAJCWlmIChhdHRzdGF0dGFy Z2V0X2NvbCA+PSAwKQogCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUo cmVzLCBpLCBhdHRzdGF0dGFyZ2V0X2NvbCksCkBAIC00NTg5LDYgKzQ2MjgsMTUyIEBAIGxp c3RDb252ZXJzaW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wg c2hvd1N5c3RlbSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIFxkY2VrCisgKgorICog TGlzdHMgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4KKyAqLworYm9vbAorbGlzdENFS3MoY29u c3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBi dWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBv cHQ7CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE3MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJi dWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9l cyBub3Qgc3VwcG9ydCBjb2x1bW4gZW5jcnlwdGlvbi4iLAorCQkJCQkgZm9ybWF0UEdWZXJz aW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYs IHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBC dWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxF Q1QgIgorCQkJCQkgICJuLm5zcG5hbWUgQVMgXCIlc1wiLCAiCisJCQkJCSAgImNla25hbWUg QVMgXCIlc1wiLCAiCisJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGNla293 bmVyKSBBUyBcIiVzXCIsICIKKwkJCQkJICAiY21rbmFtZSBBUyBcIiVzXCIiLAorCQkJCQkg IGdldHRleHRfbm9vcCgiU2NoZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiks CisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgi TWFzdGVyIGtleSIpKTsKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy KCZidWYsICIsICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAiY2VrYWNsIik7CisJCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHBnX2NhdGFsb2cub2JqX2Rlc2Ny aXB0aW9uKGNlay5vaWQsICdwZ19jb2xlbmNrZXknKSBBUyBcIiVzXCIiLAorCQkJCQkJICBn ZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKwlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5wZ19jb2xlbmNrZXkgY2VrICIK KwkJCQkJCSAiTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQg PSBjZWsuY2VrbmFtZXNwYWNlICIKKwkJCQkJCSAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbGVu Y2tleWRhdGEgY2tkIE9OIChjZWsub2lkID0gY2tkLmNrZGNla2lkKSAiCisJCQkJCQkgIkpP SU4gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkgY21rIE9OIChja2QuY2tkY21raWQgPSBj bWsub2lkKSAiKTsKKworCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0dGVybigmYnVmLCBwYXR0 ZXJuLCBmYWxzZSwgZmFsc2UsCisJCQkJCQkJCSJuLm5zcG5hbWUiLCAiY2VrbmFtZSIsIE5V TEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX2Nla19pc192aXNpYmxlKGNlay5vaWQpIiwK KwkJCQkJCQkJTlVMTCwgMykpCisJeworCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJl dHVybiBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIg QlkgMSwgMiwgNCIpOworCisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4 cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJbXlvcHQu bnVsbFByaW50ID0gTlVMTDsKKwlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgY29sdW1uIGVu Y3J5cHRpb24ga2V5cyIpOworCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCisJ cHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0Lmxv Z2ZpbGUpOworCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQorCisvKgorICog XGRjbWsKKyAqCisgKiBMaXN0cyBjb2x1bW4gbWFzdGVyIGtleXMuCisgKi8KK2Jvb2wKK2xp c3RDTUtzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1 ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0 ID0gcHNldC5wb3B0OworCisJaWYgKHBzZXQuc3ZlcnNpb24gPCAxNzAwMDApCisJeworCQlj aGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2dfZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNp b24gJXMpIGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGVuY3J5cHRpb24uIiwKKwkJCQkJIGZv cm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkg ICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJ aW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJICAiU0VMRUNUICIKKwkJCQkJICAibi5uc3BuYW1lIEFTIFwiJXNcIiwgIgorCQkJCQkg ICJjbWtuYW1lIEFTIFwiJXNcIiwgIgorCQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF91c2Vy YnlpZChjbWtvd25lcikgQVMgXCIlc1wiLCAiCisJCQkJCSAgImNta3JlYWxtIEFTIFwiJXNc IiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJSZWFsbSIpKTsKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsICIsICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAiY21rYWNsIik7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHBnX2NhdGFsb2cub2Jq X2Rlc2NyaXB0aW9uKGNtay5vaWQsICdwZ19jb2xtYXN0ZXJrZXknKSBBUyBcIiVzXCIiLAor CQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKwlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0 ZXJrZXkgY21rICIKKwkJCQkJCSAiTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNl IG4gT04gbi5vaWQgPSBjbWsuY21rbmFtZXNwYWNlICIpOworCisJaWYgKCF2YWxpZGF0ZVNR TE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJIm4u bnNwbmFtZSIsICJjbWtuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdfY21r X2lzX3Zpc2libGUoY21rLm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwl7CisJCXRlcm1Q UUV4cEJ1ZmZlcigmYnVmKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWFwcGVuZFBRRXhw QnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLCAyIik7CisKKwlyZXMgPSBQU1FMZXhlYyhi dWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCW15b3B0LnRpdGxlID0g XygiTGlzdCBvZiBjb2x1bW4gbWFzdGVyIGtleXMiKTsKKwlteW9wdC50cmFuc2xhdGVfaGVh ZGVyID0gdHJ1ZTsKKworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0 LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1 ZTsKK30KKwogLyoKICAqIFxkY29uZmlnCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCAyNzNmOTc0NTM4 ZS4uOGZiYWI1YjM2MWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCisr KyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC03OSw2ICs3OSwxMiBAQCBleHRlcm4g Ym9vbCBsaXN0RG9tYWlucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJv b2wgc2hvd1N5c3RlbSk7CiAvKiBcZGMgKi8KIGV4dGVybiBib29sIGxpc3RDb252ZXJzaW9u cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSk7 CiAKKy8qIFxkY2VrICovCitleHRlcm4gYm9vbCBsaXN0Q0VLcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpOworCisvKiBcZGNtayAqLworZXh0ZXJuIGJvb2wgbGlzdENN S3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKTsKKwogLyogXGRjb25maWcg Ki8KIGV4dGVybiBib29sIGRlc2NyaWJlQ29uZmlndXJhdGlvblBhcmFtZXRlcnMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLAogCQkJCQkJCQkJCQlib29sIHNob3dTeXN0 ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9o ZWxwLmMKaW5kZXggNGU3OWE4MTlkODcuLmY3NmIxYmI1ZDBiIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTIyOSw2ICsy MjksOCBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlIRUxQMCgi ICBcXGRBcFsrXSBbQU1QVFJOIFtPUEZQVFJOXV0gICBsaXN0IHN1cHBvcnQgZnVuY3Rpb25z IG9mIG9wZXJhdG9yIGZhbWlsaWVzXG4iKTsKIAlIRUxQMCgiICBcXGRiWytdICBbUEFUVEVS Tl0gICAgICBsaXN0IHRhYmxlc3BhY2VzXG4iKTsKIAlIRUxQMCgiICBcXGRjW1MrXSBbUEFU VEVSTl0gICAgICBsaXN0IGNvbnZlcnNpb25zXG4iKTsKKwlIRUxQMCgiICBcXGRjZWtbK10g W1BBVFRFUk5dICAgICBsaXN0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXNcbiIpOworCUhFTFAw KCIgIFxcZGNta1srXSBbUEFUVEVSTl0gICAgIGxpc3QgY29sdW1uIG1hc3RlciBrZXlzXG4i KTsKIAlIRUxQMCgiICBcXGRjb25maWdbK10gW1BBVFRFUk5dICBsaXN0IGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyc1xuIik7CiAJSEVMUDAoIiAgXFxkQ1srXSAgW1BBVFRFUk5dICAgICAg bGlzdCBjYXN0c1xuIik7CiAJSEVMUDAoIiAgXFxkZFtTXSAgW1BBVFRFUk5dICAgICAgc2hv dyBvYmplY3QgZGVzY3JpcHRpb25zIG5vdCBkaXNwbGF5ZWQgZWxzZXdoZXJlXG4iKTsKQEAg LTM5MSw2ICszOTMsOCBAQCBoZWxwVmFyaWFibGVzKHVuc2lnbmVkIHNob3J0IGludCBwYWdl cikKIAkJICAiICAgIFwidHJ1ZVwiIGlmIGxhc3QgcXVlcnkgZmFpbGVkLCBlbHNlIFwiZmFs c2VcIlxuIik7CiAJSEVMUDAoIiAgRkVUQ0hfQ09VTlRcbiIKIAkJICAiICAgIHRoZSBudW1i ZXIgb2YgcmVzdWx0IHJvd3MgdG8gZmV0Y2ggYW5kIGRpc3BsYXkgYXQgYSB0aW1lICgwID0g dW5saW1pdGVkKVxuIik7CisJSEVMUDAoIiAgSElERV9DT0xVTU5fRU5DUllQVElPTlxuIgor CQkgICIgICAgaWYgc2V0LCBjb2x1bW4gZW5jcnlwdGlvbiBkZXRhaWxzIGFyZSBub3QgZGlz cGxheWVkXG4iKTsKIAlIRUxQMCgiICBISURFX1RBQkxFQU1cbiIKIAkJICAiICAgIGlmIHNl dCwgdGFibGUgYWNjZXNzIG1ldGhvZHMgYXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAw KCIgIEhJREVfVE9BU1RfQ09NUFJFU1NJT05cbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9zZXR0aW5ncy5oIGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKaW5kZXggNTA1Zjk5ZDhl NDcuLmYyMjA3MjIwNjM1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaAor KysgYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHR5cGVk ZWYgc3RydWN0IF9wc3FsU2V0dGluZ3MKIAlib29sCQlxdWlldDsKIAlib29sCQlzaW5nbGVs aW5lOwogCWJvb2wJCXNpbmdsZXN0ZXA7CisJYm9vbAkJaGlkZV9jb2x1bW5fZW5jcnlwdGlv bjsKIAlib29sCQloaWRlX2NvbXByZXNzaW9uOwogCWJvb2wJCWhpZGVfdGFibGVhbTsKIAlp bnQJCQlmZXRjaF9jb3VudDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMg Yi9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCmluZGV4IDAzNmNhYWVjMmZmLi45MmVkMTBkZTE4 OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYworKysgYi9zcmMvYmluL3Bz cWwvc3RhcnR1cC5jCkBAIC0xMTg4LDYgKzExODgsMTMgQEAgaGlkZV9jb21wcmVzc2lvbl9o b29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIAkJCQkJCQkgJnBzZXQuaGlkZV9jb21wcmVzc2lv bik7CiB9CiAKK3N0YXRpYyBib29sCitoaWRlX2NvbHVtbl9lbmNyeXB0aW9uX2hvb2soY29u c3QgY2hhciAqbmV3dmFsKQoreworCXJldHVybiBQYXJzZVZhcmlhYmxlQm9vbChuZXd2YWws ICJISURFX0NPTFVNTl9FTkNSWVBUSU9OIiwKKwkJCQkJCQkgJnBzZXQuaGlkZV9jb2x1bW5f ZW5jcnlwdGlvbik7Cit9CisKIHN0YXRpYyBib29sCiBoaWRlX3RhYmxlYW1faG9vayhjb25z dCBjaGFyICpuZXd2YWwpCiB7CkBAIC0xMjU5LDYgKzEyNjYsOSBAQCBFc3RhYmxpc2hWYXJp YWJsZVNwYWNlKHZvaWQpCiAJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJTSE9XX0NP TlRFWFQiLAogCQkJCQkgc2hvd19jb250ZXh0X3N1YnN0aXR1dGVfaG9vaywKIAkJCQkJIHNo b3dfY29udGV4dF9ob29rKTsKKwlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywgIkhJREVf Q09MVU1OX0VOQ1JZUFRJT04iLAorCQkJCQkgYm9vbF9zdWJzdGl0dXRlX2hvb2ssCisJCQkJ CSBoaWRlX2NvbHVtbl9lbmNyeXB0aW9uX2hvb2spOwogCVNldFZhcmlhYmxlSG9va3MocHNl dC52YXJzLCAiSElERV9UT0FTVF9DT01QUkVTU0lPTiIsCiAJCQkJCSBib29sX3N1YnN0aXR1 dGVfaG9vaywKIAkJCQkJIGhpZGVfY29tcHJlc3Npb25faG9vayk7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKaW5kZXggNmZlZTMxNjBmMDIuLmQ1YjVhOWI0MzY2IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CkBAIC05MzQsNiArOTM0LDIwIEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9m b3JfbGlzdF9vZl9jb2xsYXRpb25zID0gewogCS5yZXN1bHQgPSAiYy5jb2xsbmFtZSIsCiB9 OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfY2VrcyA9 IHsKKwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX2NvbGVuY2tleSBjIiwKKwkudmlzY29u ZGl0aW9uID0gInBnX2NhdGFsb2cucGdfY2VrX2lzX3Zpc2libGUoYy5vaWQpIiwKKwkubmFt ZXNwYWNlID0gImMuY2VrbmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gImMuY2VrbmFtZSIsCit9 OworCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfY21rcyA9 IHsKKwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX2NvbG1hc3RlcmtleSBjIiwKKwkudmlz Y29uZGl0aW9uID0gInBnX2NhdGFsb2cucGdfY21rX2lzX3Zpc2libGUoYy5vaWQpIiwKKwku bmFtZXNwYWNlID0gImMuY21rbmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gImMuY21rbmFtZSIs Cit9OworCiBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3BhcnRpdGlvbl9v Zl90YWJsZSA9IHsKIAkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX2NsYXNzIGMxLCBwZ19j YXRhbG9nLnBnX2NsYXNzIGMyLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkiLAogCS5zZWxj b25kaXRpb24gPSAiYzEub2lkPWkuaW5ocGFyZW50IGFuZCBpLmluaHJlbGlkPWMyLm9pZCBh bmQgYzIucmVsaXNwYXJ0aXRpb24iLApAQCAtMTIyOCw2ICsxMjQyLDggQEAgc3RhdGljIGNv bnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJDQVNUIiwg TlVMTCwgTlVMTCwgTlVMTH0sIC8qIENhc3RzIGhhdmUgY29tcGxleCBzdHJ1Y3R1cmVzIGZv ciBuYW1lcywgc28KIAkJCQkJCQkJICogc2tpcCBpdCAqLwogCXsiQ09MTEFUSU9OIiwgTlVM TCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2NvbGxhdGlvbnN9LAorCXsiQ09MVU1OIEVO Q1JZUFRJT04gS0VZIiwgTlVMTCwgTlVMTCwgTlVMTH0sCisJeyJDT0xVTU4gTUFTVEVSIEtF WSBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAogCS8qCiAJICogQ1JFQVRFIENPTlNUUkFJ TlQgVFJJR0dFUiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgYmVjYXVzZSBpdCBpcyBkZXNpZ25l ZApAQCAtMTcxNyw3ICsxNzMzLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRl eHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcY29ubmVjdCIsICJcXGNvbm5pbmZvIiwg IlxcQyIsICJcXGNkIiwgIlxcY29weSIsCiAJCSJcXGNvcHlyaWdodCIsICJcXGNyb3NzdGFi dmlldyIsCiAJCSJcXGQiLCAiXFxkYSIsICJcXGRBIiwgIlxcZEFjIiwgIlxcZEFmIiwgIlxc ZEFvIiwgIlxcZEFwIiwKLQkJIlxcZGIiLCAiXFxkYyIsICJcXGRjb25maWciLCAiXFxkQyIs ICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAorCQkiXFxkYiIsICJcXGRjIiwgIlxcZGNlayIs ICJcXGRjbWsiLCAiXFxkY29uZmlnIiwgIlxcZEMiLCAiXFxkZCIsICJcXGRkcCIsICJcXGRE IiwKIAkJIlxcZGVzIiwgIlxcZGV0IiwgIlxcZGV1IiwgIlxcZGV3IiwgIlxcZEUiLCAiXFxk ZiIsCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxk aSIsICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIs ICJcXGRwIiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLApAQCAtMTk3NCw2ICsxOTkwLDIy IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09MTEFUSU9OIiwgTWF0Y2hBbnkp KQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRUZSRVNIIFZFUlNJT04iLCAiUkVO QU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAorCS8qIEFMVEVSL0RST1AgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8RFJPUCIsICJDT0xVTU4i LCAiRU5DUllQVElPTiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrcyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xVTU4iLCAiRU5DUllQ VElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFERCBWQUxVRSAo IiwgIkRST1AgVkFMVUUgKCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVN QSIpOworCisJLyogQUxURVIvRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSfERST1AiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiKSkKKwkJ Q09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY21rcyk7CisK KwkvKiBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVU RV9XSVRIKCIoIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CisK IAkvKiBBTFRFUiBDT05WRVJTSU9OIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIkNPTlZFUlNJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVS IFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CkBAIC0yOTQ5LDYgKzI5ODEsMjYg QEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVu ZCkKIAkJCUNPTVBMRVRFX1dJVEgoInRydWUiLCAiZmFsc2UiKTsKIAl9CiAKKwkvKiBDUkVB VEUvQUxURVIvRFJPUCBDT0xVTU4gLi4uIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURXxBTFRFUnxEUk9QIiwgIkNPTFVNTiIpKQorCQlDT01QTEVURV9XSVRIKCJFTkNSWVBU SU9OIiwgIk1BU1RFUiIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9Q IiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIpKQorCQlDT01QTEVURV9XSVRIKCJL RVkiKTsKKworCS8qIENSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlm IChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJXSVRIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55LCAiV0lU SCIpKQorCQlDT01QTEVURV9XSVRIKCJWQUxVRVMiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJD UkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRI IiwgIlZBTFVFUyIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7CisKKwkvKiBDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1O IiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIldJVEgi KTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJL RVkiLCBNYXRjaEFueSwgIldJVEgiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCiAJLyog Q1JFQVRFIERBVEFCQVNFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkRBVEFC QVNFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiIsICJURU1QTEFURSIs ICJFTkNPRElORyIsICJUQUJMRVNQQUNFIiwKQEAgLTM3MDgsNyArMzc2MCw3IEBAIHBzcWxf Y29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAKIC8q IERJU0NBUkQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJESVNDQVJEIikpCi0JCUNPTVBMRVRF X1dJVEgoIkFMTCIsICJQTEFOUyIsICJTRVFVRU5DRVMiLCAiVEVNUCIpOworCQlDT01QTEVU RV9XSVRIKCJBTEwiLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZUyIsICJQTEFOUyIsICJTRVFV RU5DRVMiLCAiVEVNUCIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikp CkBAIC0zNzIyLDYgKzM3NzQsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4 dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJIE1hdGNoZXMoIkRST1AiLCAiQUNDRVNTIiwg Ik1FVEhPRCIsIE1hdGNoQW55KSB8fAogCQkJIChNYXRjaGVzKCJEUk9QIiwgIkFHR1JFR0FU RXxGVU5DVElPTnxQUk9DRURVUkV8Uk9VVElORSIsIE1hdGNoQW55LCBNYXRjaEFueSkgJiYK IAkJCSAgZW5kc193aXRoKHByZXZfd2QsICcpJykpIHx8CisJCQkgTWF0Y2hlcygiRFJPUCIs ICJDT0xVTU4iLCAiRU5DUllQVElPTnxNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpIHx8CiAJ CQkgTWF0Y2hlcygiRFJPUCIsICJFVkVOVCIsICJUUklHR0VSIiwgTWF0Y2hBbnkpIHx8CiAJ CQkgTWF0Y2hlcygiRFJPUCIsICJGT1JFSUdOIiwgIkRBVEEiLCAiV1JBUFBFUiIsIE1hdGNo QW55KSB8fAogCQkJIE1hdGNoZXMoIkRST1AiLCAiRk9SRUlHTiIsICJUQUJMRSIsIE1hdGNo QW55KSB8fApAQCAtNDA0Myw2ICs0MDk2LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5F UyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAog CQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkJCQkJCQkiQ09MVU1O IEVOQ1JZUFRJT04gS0VZIiwKKwkJCQkJCQkJCQkJIkNPTFVNTiBNQVNURVIgS0VZIiwKIAkJ CQkJCQkJCQkJIkRBVEFCQVNFIiwKIAkJCQkJCQkJCQkJIkRPTUFJTiIsCiAJCQkJCQkJCQkJ CSJGT1JFSUdOIERBVEEgV1JBUFBFUiIsCkBAIC00MTYxLDYgKzQyMTYsMTkgQEAgcHNxbF9j b21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCUNP TVBMRVRFX1dJVEgoIkZST00iKTsKIAl9CiAKKwkvKgorCSAqIENvbXBsZXRlICJHUkFOVC9S RVZPS0UgKiBPTiBDT0xVTU4gRU5DUllQVElPTnxNQVNURVIgS0VZICoiIHdpdGgKKwkgKiBU Ty9GUk9NCisJICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1h dGNoQW55LCAiT04iLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT058TUFTVEVSIiwgIktFWSIsIE1h dGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9O IiwgIkZPUiIsIE1hdGNoQW55LCAiT04iLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT058TUFTVEVS IiwgIktFWSIsIE1hdGNoQW55KSkKKwl7CisJCWlmIChUYWlsTWF0Y2hlcygiR1JBTlQiLCBN YXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNo QW55KSkKKwkJCUNPTVBMRVRFX1dJVEgoIlRPIik7CisJCWVsc2UKKwkJCUNPTVBMRVRFX1dJ VEgoIkZST00iKTsKKwl9CisKIAkvKiBDb21wbGV0ZSAiR1JBTlQvUkVWT0tFICogT04gRk9S RUlHTiBEQVRBIFdSQVBQRVIgKiIgd2l0aCBUTy9GUk9NICovCiAJZWxzZSBpZiAoVGFpbE1h dGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIsICJEQVRB IiwgIldSQVBQRVIiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwg IkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iLCAi REFUQSIsICJXUkFQUEVSIiwgTWF0Y2hBbnkpKQpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9N YWtlZmlsZSBiL3NyYy9jb21tb24vTWFrZWZpbGUKaW5kZXggM2Q4MzI5OTQzMmIuLjQ0OGEx OWQ2ODQ1IDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL01ha2VmaWxlCisrKyBiL3NyYy9jb21t b24vTWFrZWZpbGUKQEAgLTQ5LDYgKzQ5LDcgQEAgT0JKU19DT01NT04gPSBcCiAJYmluYXJ5 aGVhcC5vIFwKIAlibGtyZWZ0YWJsZS5vIFwKIAljaGVja3N1bV9oZWxwZXIubyBcCisJY29s ZW5jLm8gXAogCWNvbXByZXNzaW9uLm8gXAogCWNvbmZpZ19pbmZvLm8gXAogCWNvbnRyb2xk YXRhX3V0aWxzLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9jb2xlbmMuYyBiL3NyYy9j b21tb24vY29sZW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmIzYmE4NDA4N2VmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbW1vbi9jb2xlbmMuYwpA QCAtMCwwICsxLDEwNyBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY29sZW5j LmMKKyAqCisgKiBTaGFyZWQgY29kZSBmb3IgY29sdW1uIGVuY3J5cHRpb24gYWxnb3JpdGht cy4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJ CSAgc3JjL2NvbW1vbi9jb2xlbmMuYworICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwor I2lmbmRlZiBGUk9OVEVORAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisjZWxzZQorI2luY2x1 ZGUgInBvc3RncmVzX2ZlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgImNvbW1vbi9jb2xlbmMu aCIKKworaW50CitnZXRfY21rYWxnX251bShjb25zdCBjaGFyICpuYW1lKQoreworCWlmIChz dHJjbXAobmFtZSwgInVuc3BlY2lmaWVkIikgPT0gMCkKKwkJcmV0dXJuIFBHX0NNS19VTlNQ RUNJRklFRDsKKwllbHNlIGlmIChzdHJjbXAobmFtZSwgIlJTQUVTX09BRVBfU0hBXzEiKSA9 PSAwKQorCQlyZXR1cm4gUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE7CisJZWxzZSBpZiAoc3Ry Y21wKG5hbWUsICJSU0FFU19PQUVQX1NIQV8yNTYiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ01L X1JTQUVTX09BRVBfU0hBXzI1NjsKKwllbHNlCisJCXJldHVybiAwOworfQorCitjb25zdCBj aGFyICoKK2dldF9jbWthbGdfbmFtZShpbnQgbnVtKQoreworCXN3aXRjaCAobnVtKQorCXsK KwkJY2FzZSBQR19DTUtfVU5TUEVDSUZJRUQ6CisJCQlyZXR1cm4gInVuc3BlY2lmaWVkIjsK KwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCXJldHVybiAiUlNBRVNfT0FF UF9TSEFfMSI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCXJldHVy biAiUlNBRVNfT0FFUF9TSEFfMjU2IjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyoK KyAqIEpTT04gV2ViIEFsZ29yaXRobXMgKEpXQSkgbmFtZXMgKFJGQyA3NTE4KQorICoKKyAq IFRoaXMgaXMgdXNlZnVsIGZvciBzb21lIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhhdCB1 c2UgdGhlc2UgbmFtZXMKKyAqIG5hdGl2ZWx5LgorICoKKyAqIFRoaXMgb25seSBzdXBwb3J0 cyBhbGdvcml0aG1zIHRoYXQgaGF2ZSBhIG1hcHBpbmcgaW4gSldBLiAgRm9yIGFueSBvdGhl cgorICogb25lcywgaXQgcmV0dXJucyBOVUxMLgorICovCitjb25zdCBjaGFyICoKK2dldF9j bWthbGdfandhX25hbWUoaW50IG51bSkKK3sKKwlzd2l0Y2ggKG51bSkKKwl7CisJCWNhc2Ug UEdfQ01LX1VOU1BFQ0lGSUVEOgorCQkJcmV0dXJuIE5VTEw7CisJCWNhc2UgUEdfQ01LX1JT QUVTX09BRVBfU0hBXzE6CisJCQlyZXR1cm4gIlJTQS1PQUVQIjsKKwkJY2FzZSBQR19DTUtf UlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJcmV0dXJuICJSU0EtT0FFUC0yNTYiOworCX0KKwor CXJldHVybiBOVUxMOworfQorCitpbnQKK2dldF9jZWthbGdfbnVtKGNvbnN0IGNoYXIgKm5h bWUpCit7CisJaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8y NTYiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFf MjU2OworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NI QV8zODQiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19T SEFfMzg0OworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMjU2X0NCQ19ITUFD X1NIQV8zODQiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1B Q19TSEFfMzg0OworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMjU2X0NCQ19I TUFDX1NIQV81MTIiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNf SE1BQ19TSEFfNTEyOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK2NvbnN0IGNoYXIgKgor Z2V0X2Nla2FsZ19uYW1lKGludCBudW0pCit7CisJc3dpdGNoIChudW0pCisJeworCQljYXNl IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCXJldHVybiAiQUVB RF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18x OTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCXJldHVybiAiQUVBRF9BRVNfMTkyX0NCQ19ITUFD X1NIQV8zODQiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4 NDoKKwkJCXJldHVybiAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQiOworCQljYXNl IFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCXJldHVybiAiQUVB RF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTIiOworCX0KKworCXJldHVybiBOVUxMOworfQpk aWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9tZXNvbi5idWlsZCBiL3NyYy9jb21tb24vbWVzb24u YnVpbGQKaW5kZXggZGU2OGU0MDhmYTMuLjllODhmMzFjMDYxIDEwMDY0NAotLS0gYS9zcmMv Y29tbW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy9jb21tb24vbWVzb24uYnVpbGQKQEAgLTYs NiArNiw3IEBAIGNvbW1vbl9zb3VyY2VzID0gZmlsZXMoCiAgICdiaW5hcnloZWFwLmMnLAog ICAnYmxrcmVmdGFibGUuYycsCiAgICdjaGVja3N1bV9oZWxwZXIuYycsCisgICdjb2xlbmMu YycsCiAgICdjb21wcmVzc2lvbi5jJywKICAgJ2NvbnRyb2xkYXRhX3V0aWxzLmMnLAogICAn ZW5jbmFtZXMuYycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCmluZGV4IGIxZmVjZjg3M2I0Li4x M2UzOGJhNWYzYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmgKQEAgLTIwLDkgKzIwLDEzIEBA IGV4dGVybiBEZXN0UmVjZWl2ZXIgKnByaW50dHVwX2NyZWF0ZV9EUihDb21tYW5kRGVzdCBk ZXN0KTsKIAogZXh0ZXJuIHZvaWQgU2V0UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKERlc3RS ZWNlaXZlciAqc2VsZiwgUG9ydGFsIHBvcnRhbCk7CiAKK2V4dGVybiB2b2lkIE1heWJlU2Vu ZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWspOworCiBleHRlcm4gdm9p ZCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLAogCQkJCQkJCQkJ ICBUdXBsZURlc2MgdHlwZWluZm8sIExpc3QgKnRhcmdldGxpc3QsIGludDE2ICpmb3JtYXRz KTsKIAorZXh0ZXJuIHZvaWQgRGlzY2FyZENvbHVtbkVuY3J5cHRpb25LZXlzKHZvaWQpOwor CiBleHRlcm4gdm9pZCBkZWJ1Z1N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3Bl cmF0aW9uLAogCQkJCQkJIFR1cGxlRGVzYyB0eXBlaW5mbyk7CiBleHRlcm4gYm9vbCBkZWJ1 Z3R1cChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi45Y2Y5M2M4NzM1ZCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSwxMCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAog CXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKIAlwZ19wdWJsaWNhdGlvbl9yZWwuaCBc CiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3N1 YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5LmggXAorCXBnX2NvbGVuY2tl eS5oIFwKKwlwZ19jb2xlbmNrZXlkYXRhLmgKIAogR0VORVJBVEVEX0hFQURFUlMgOj0gJChD QVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL2hlYXAuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCmluZGV4IDIxZTMx ZjljOTc0Li5jZmUzODM3OTljMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9o ZWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgKQEAgLTIzLDYgKzIzLDcg QEAKICNkZWZpbmUgQ0hLQVRZUEVfQU5ZQVJSQVkJCTB4MDEJLyogYWxsb3cgQU5ZQVJSQVkg Ki8KICNkZWZpbmUgQ0hLQVRZUEVfQU5ZUkVDT1JECQkweDAyCS8qIGFsbG93IFJFQ09SRCBh bmQgUkVDT1JEW10gKi8KICNkZWZpbmUgQ0hLQVRZUEVfSVNfUEFSVEtFWQkJMHgwNAkvKiBh dHRuYW1lIGlzIHBhcnQga2V5ICMgbm90IGNvbHVtbiAqLworI2RlZmluZSBDSEtBVFlQRV9F TkNSWVBURUQJCTB4MDgJLyogYWxsb3cgaW50ZXJuYWwgZW5jcnlwdGVkIHR5cGVzICovCiAK IHR5cGVkZWYgc3RydWN0IFJhd0NvbHVtbkRlZmF1bHQKIHsKQEAgLTcyLDYgKzczLDcgQEAg ZXh0ZXJuIE9pZAloZWFwX2NyZWF0ZV93aXRoX2NhdGFsb2coY29uc3QgY2hhciAqcmVsbmFt ZSwKIAkJCQkJCQkJCSBPaWQgb3duZXJpZCwKIAkJCQkJCQkJCSBPaWQgYWNjZXNzbXRkLAog CQkJCQkJCQkJIFR1cGxlRGVzYyB0dXBkZXNjLAorCQkJCQkJCQkJIGNvbnN0IEZvcm1FeHRy YURhdGFfcGdfYXR0cmlidXRlIHR1cGRlc2NfZXh0cmFbXSwKIAkJCQkJCQkJCSBMaXN0ICpj b29rZWRfY29uc3RyYWludHMsCiAJCQkJCQkJCQkgY2hhciByZWxraW5kLAogCQkJCQkJCQkJ IGNoYXIgcmVscGVyc2lzdGVuY2UsCkBAIC0xNDAsNyArMTQyLDcgQEAgZXh0ZXJuIGNvbnN0 IEZvcm1EYXRhX3BnX2F0dHJpYnV0ZSAqU3lzdGVtQXR0cmlidXRlRGVmaW5pdGlvbihBdHRy TnVtYmVyIGF0dG5vKTsKIAogZXh0ZXJuIGNvbnN0IEZvcm1EYXRhX3BnX2F0dHJpYnV0ZSAq U3lzdGVtQXR0cmlidXRlQnlOYW1lKGNvbnN0IGNoYXIgKmF0dG5hbWUpOwogCi1leHRlcm4g dm9pZCBDaGVja0F0dHJpYnV0ZU5hbWVzVHlwZXMoVHVwbGVEZXNjIHR1cGRlc2MsIGNoYXIg cmVsa2luZCwKK2V4dGVybiB2b2lkIENoZWNrQXR0cmlidXRlTmFtZXNUeXBlcyhUdXBsZURl c2MgdHVwZGVzYywgY29uc3QgRm9ybUV4dHJhRGF0YV9wZ19hdHRyaWJ1dGUgdHVwZGVzY19l eHRyYVtdLCBjaGFyIHJlbGtpbmQsCiAJCQkJCQkJCQkgaW50IGZsYWdzKTsKIAogZXh0ZXJu IHZvaWQgQ2hlY2tBdHRyaWJ1dGVUeXBlKGNvbnN0IGNoYXIgKmF0dG5hbWUsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZAppbmRleCBmNzBkMWRhYmE1Mi4uYTVhZjJhODZiZjkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjksNiArNjksOSBAQCBjYXRhbG9nX2hlYWRl cnMgPSBbCiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24u aCcsCiAgICdwZ19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfY29sbWFzdGVya2V5Lmgn LAorICAncGdfY29sZW5ja2V5LmgnLAorICAncGdfY29sZW5ja2V5ZGF0YS5oJywKIF0KIAog IyBUaGUgLmRhdCBmaWxlcyB3ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3RlZCBhbHBoYWJldGlj YWxseS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhkNDM0ZDQ4ZDU3Li41NTM3 ODBiNmZmMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xMTYsNiArMTE2LDEy IEBAIGV4dGVybiBib29sIE9wY2xhc3NJc1Zpc2libGUoT2lkIG9wY2lkKTsKIGV4dGVybiBP aWQJT3BmYW1pbHluYW1lR2V0T3BmaWQoT2lkIGFtaWQsIGNvbnN0IGNoYXIgKm9wZm5hbWUp OwogZXh0ZXJuIGJvb2wgT3BmYW1pbHlJc1Zpc2libGUoT2lkIG9wZmlkKTsKIAorZXh0ZXJu IE9pZAlnZXRfY2VrX29pZChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVy biBib29sIENFS0lzVmlzaWJsZShPaWQgY2VraWQpOworCitleHRlcm4gT2lkCWdldF9jbWtf b2lkKExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGJvb2wgQ01LSXNW aXNpYmxlKE9pZCBjbWtpZCk7CisKIGV4dGVybiBPaWQJQ29sbGF0aW9uR2V0Q29sbGlkKGNv bnN0IGNoYXIgKmNvbGxuYW1lKTsKIGV4dGVybiBib29sIENvbGxhdGlvbklzVmlzaWJsZShP aWQgY29sbGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9w LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQKaW5kZXggZDhhMDUyMTRi MTEuLmExMDA3N2QxZjEzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft b3AuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQKQEAgLTEwMjgs NiArMTAyOCwxMSBAQAogICBhbW9wcmlnaHR0eXBlID0+ICdieXRlYScsIGFtb3BzdHJhdGVn eSA9PiAnMScsIGFtb3BvcHIgPT4gJz0oYnl0ZWEsYnl0ZWEpJywKICAgYW1vcG1ldGhvZCA9 PiAnaGFzaCcgfSwKIAorIyBwZ19lbmNyeXB0ZWRfZGV0X29wcworeyBhbW9wZmFtaWx5ID0+ ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3BzJywgYW1vcGxlZnR0eXBlID0+ICdwZ19lbmNy eXB0ZWRfZGV0JywKKyAgYW1vcHJpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFt b3BzdHJhdGVneSA9PiAnMScsCisgIGFtb3BvcHIgPT4gJz0ocGdfZW5jcnlwdGVkX2RldCxw Z19lbmNyeXB0ZWRfZGV0KScsIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCisKICMgeGlkX29w cwogeyBhbW9wZmFtaWx5ID0+ICdoYXNoL3hpZF9vcHMnLCBhbW9wbGVmdHR5cGUgPT4gJ3hp ZCcsIGFtb3ByaWdodHR5cGUgPT4gJ3hpZCcsCiAgIGFtb3BzdHJhdGVneSA9PiAnMScsIGFt b3BvcHIgPT4gJz0oeGlkLHhpZCknLCBhbW9wbWV0aG9kID0+ICdoYXNoJyB9LApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hbXByb2MuZGF0CmluZGV4IDM1MjU1OGMxZjA2Li5iMDA0YmJhNzYyMCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApAQCAtNDAwLDYgKzQwMCwxMiBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2J5dGVhJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdieXRlYScsIGFtcHJvY251bSA9PiAn MicsCiAgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3BzJywKKyAgYW1wcm9jbGVmdHR5cGUg PT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLAorICBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2h2YXJsZW5hJyB9 LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLAorICBh bXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY3JpZ2h0dHlwZSA9 PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJvY251bSA9PiAnMicsIGFtcHJvYyA9PiAn aGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdoYXNoL3hpZF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAneGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd4 aWQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2hpbnQ0JyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKaW5kZXggMWM2MmI4YmZjYjUuLjNjYzMy NDUyODIwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKQEAgLTE4NCw2ICsx ODQsMTUgQEAgQ0FUQUxPRyhwZ19hdHRyaWJ1dGUsMTI0OSxBdHRyaWJ1dGVSZWxhdGlvbklk KSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dUWVBFX09JRCg3NSwKIAkvKiBDb2x1bW4tbGV2ZWwg RkRXIG9wdGlvbnMgKi8KIAl0ZXh0CQlhdHRmZHdvcHRpb25zWzFdIEJLSV9ERUZBVUxUKF9u dWxsXyk7CiAKKwkvKiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KKwlPaWQJCQlhdHRjZWsg QktJX0RFRkFVTFQoX251bGxfKSBCS0lfRk9SQ0VfTlVMTCBCS0lfTE9PS1VQX09QVChwZ19j b2xlbmNrZXkpOworCisJLyoKKwkgKiBVc2VyLXZpc2libGUgdHlwZSBhbmQgdHlwbW9kLCBj dXJyZW50bHkgdXNlZCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMuCisJICovCisJT2lkCQkJYXR0 dXNlcnR5cGlkIEJLSV9ERUZBVUxUKF9udWxsXykgQktJX0ZPUkNFX05VTEwgQktJX0xPT0tV UF9PUFQocGdfdHlwZSk7CisJaW50MzIJCWF0dHVzZXJ0eXBtb2QgQktJX0RFRkFVTFQoX251 bGxfKSBCS0lfRk9SQ0VfTlVMTDsKKwogCS8qCiAJICogTWlzc2luZyB2YWx1ZSBmb3IgYWRk ZWQgY29sdW1ucy4gVGhpcyBpcyBhIG9uZSBlbGVtZW50IGFycmF5IHdoaWNoIGxldHMKIAkg KiB1cyBzdG9yZSBhIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgdHlwZSBoZXJlLgpAQCAtMTk5 LDcgKzIwOCw3IEBAIENBVEFMT0cocGdfYXR0cmlidXRlLDEyNDksQXR0cmlidXRlUmVsYXRp b25JZCkgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzUsCiAgKiBjYW4gYWNjZXNz IHRoZSB2YXJpYWJsZS1sZW5ndGggZmllbGRzIGV4Y2VwdCBpbiBhIHJlYWwgdHVwbGUhCiAg Ki8KICNkZWZpbmUgQVRUUklCVVRFX0ZJWEVEX1BBUlRfU0laRSBcCi0JKG9mZnNldG9mKEZv cm1EYXRhX3BnX2F0dHJpYnV0ZSxhdHRjb2xsYXRpb24pICsgc2l6ZW9mKE9pZCkpCisJKG9m ZnNldG9mKEZvcm1EYXRhX3BnX2F0dHJpYnV0ZSxhdHRjb2xsYXRpb24pICsgc2l6ZW9mKGlu dDMyKSkKIAogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJCUZvcm1fcGdfYXR0cmlidXRlIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKQEAgLTIyMCw2ICsyMjks OSBAQCB0eXBlZGVmIHN0cnVjdCBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogewogCU51 bGxhYmxlRGF0dW0gYXR0c3RhdHRhcmdldDsKIAlOdWxsYWJsZURhdHVtIGF0dG9wdGlvbnM7 CisJTnVsbGFibGVEYXR1bSBhdHRjZWs7CisJTnVsbGFibGVEYXR1bSBhdHR1c2VydHlwaWQ7 CisJTnVsbGFibGVEYXR1bSBhdHR1c2VydHlwbW9kOwogfSBGb3JtRXh0cmFEYXRhX3BnX2F0 dHJpYnV0ZTsKIAogREVDTEFSRV9VTklRVUVfSU5ERVgocGdfYXR0cmlidXRlX3JlbGlkX2F0 dG5hbV9pbmRleCwgMjY1OCwgQXR0cmlidXRlUmVsaWROYW1lSW5kZXhJZCwgcGdfYXR0cmli dXRlLCBidHJlZShhdHRyZWxpZCBvaWRfb3BzLCBhdHRuYW1lIG5hbWVfb3BzKSk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYzY5ZDI0NTEwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbGVuY2tleS5oCisgKgkgIGRlZmluaXRpb24gb2Yg dGhlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY29sZW5rZXkuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBt IG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9y bWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX0NP TEVOQ0tFWV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tFWV9ICisKKyNpbmNsdWRlICJjYXRhbG9n L2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5X2QuaCIKKworLyog LS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2NvbGVuY2tleSBkZWZpbml0aW9uLiBjcHAgdHVy bnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5 CisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sZW5ja2V5LDgyMzQs Q29sdW1uRW5jS2V5UmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY2Vr bmFtZTsKKwlPaWQJCQljZWtuYW1lc3BhY2UgQktJX0RFRkFVTFQocGdfY2F0YWxvZykgQktJ X0xPT0tVUChwZ19uYW1lc3BhY2UpOworCU9pZAkJCWNla293bmVyIEJLSV9MT09LVVAocGdf YXV0aGlkKTsKKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBm aWVsZHMgc3RhcnQgaGVyZSAqLworCWFjbGl0ZW0JCWNla2FjbFsxXSBCS0lfREVGQVVMVChf bnVsbF8pOworI2VuZGlmCit9IEZvcm1EYXRhX3BnX2NvbGVuY2tleTsKKwordHlwZWRlZiBG b3JtRGF0YV9wZ19jb2xlbmNrZXkgKkZvcm1fcGdfY29sZW5ja2V5OworCitERUNMQVJFX1RP QVNUKHBnX2NvbGVuY2tleSwgODI2MywgODI2NCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVY X1BLRVkocGdfY29sZW5ja2V5X29pZF9pbmRleCwgODI0MCwgQ29sdW1uRW5jS2V5T2lkSW5k ZXhJZCwgcGdfY29sZW5ja2V5LCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklR VUVfSU5ERVgocGdfY29sZW5ja2V5X2Nla25hbWVfbnNwX2luZGV4LCA4MjQyLCBDb2x1bW5F bmNLZXlOYW1lTnNwSW5kZXhJZCwgcGdfY29sZW5ja2V5LCBidHJlZShjZWtuYW1lIG5hbWVf b3BzLCBjZWtuYW1lc3BhY2Ugb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKENFS09JRCwg cGdfY29sZW5ja2V5X29pZF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKENFS05BTUVOU1As IHBnX2NvbGVuY2tleV9jZWtuYW1lX25zcF9pbmRleCwgOCk7CisKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZTZjZTQwYWQ0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaApAQCAtMCwwICsxLDQ5IEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19jb2xlbmNrZXlkYXRhLmgKKyAqCSAg ZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiBzeXN0ZW0g Y2F0YWxvZworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVua2V5ZGF0YS5oCisgKgorICogTk9U RVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVy aXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MRU5DS0VZREFUQV9ICisjZGVmaW5lIFBHX0NPTEVO Q0tFWURBVEFfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGVuY2tleWRhdGFfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisg KgkJcGdfY29sZW5ja2V5ZGF0YSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisg KgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YQorICogLS0tLS0t LS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbGVuY2tleWRhdGEsODI1MCxDb2x1bW5F bmNLZXlEYXRhUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJT2lkCQkJY2tkY2VraWQg QktJX0xPT0tVUChwZ19jb2xlbmNrZXkpOworCU9pZAkJCWNrZGNta2lkIEJLSV9MT09LVVAo cGdfY29sbWFzdGVya2V5KTsKKwlpbnQzMgkJY2tkY21rYWxnOwkJLyogUEdfQ01LXyogdmFs dWVzICovCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmll bGRzIHN0YXJ0IGhlcmUgKi8KKwlieXRlYQkJY2tkZW5jdmFsIEJLSV9GT1JDRV9OT1RfTlVM TDsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ19jb2xlbmNrZXlkYXRhOworCit0eXBlZGVmIEZv cm1EYXRhX3BnX2NvbGVuY2tleWRhdGEgKkZvcm1fcGdfY29sZW5ja2V5ZGF0YTsKKworREVD TEFSRV9UT0FTVChwZ19jb2xlbmNrZXlkYXRhLCA4MjM3LCA4MjM4KTsKKworREVDTEFSRV9V TklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNrZXlkYXRhX29pZF9pbmRleCwgODI1MSwgQ29s dW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsIHBnX2NvbGVuY2tleWRhdGEsIGJ0cmVlKG9pZCBv aWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xlbmNrZXlkYXRhX2NrZGNl a2lkX2NrZGNta2lkX2luZGV4LCA4MjUyLCBDb2x1bW5FbmNLZXlDZWtpZENta2lkSW5kZXhJ ZCwgcGdfY29sZW5ja2V5ZGF0YSwgYnRyZWUoY2tkY2VraWQgb2lkX29wcywgY2tkY21raWQg b2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKENFS0RBVEFPSUQsIHBnX2NvbGVuY2tleWRh dGFfb2lkX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoQ0VLREFUQUNFS0NNSywgcGdfY29s ZW5ja2V5ZGF0YV9ja2RjZWtpZF9ja2RjbWtpZF9pbmRleCwgOCk7CisKKyNlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjE2Mjk3NjBhOWI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApAQCAtMCwwICsxLDUwIEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19jb2xtYXN0ZXJrZXkuaAorICoJICBk ZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIG1hc3RlciBrZXkiIHN5c3RlbSBjYXRhbG9nCisg KgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKKyAqCisgKiBOT1RFUworICoJICBU aGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVt YQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwor I2lmbmRlZiBQR19DT0xNQVNURVJLRVlfSAorI2RlZmluZSBQR19DT0xNQVNURVJLRVlfSAor CisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bG1hc3RlcmtleV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19jb2xtYXN0 ZXJrZXkgZGVmaW5pdGlvbi4gY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3Ry dWN0IEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleQorICogLS0tLS0tLS0tLS0tLS0tLQorICov CitDQVRBTE9HKHBnX2NvbG1hc3RlcmtleSw4MjMzLENvbHVtbk1hc3RlcktleVJlbGF0aW9u SWQpCit7CisJT2lkCQkJb2lkOworCU5hbWVEYXRhCWNta25hbWU7CisJT2lkCQkJY21rbmFt ZXNwYWNlIEJLSV9ERUZBVUxUKHBnX2NhdGFsb2cpIEJLSV9MT09LVVAocGdfbmFtZXNwYWNl KTsKKwlPaWQJCQljbWtvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FU QUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8K Kwl0ZXh0CQljbWtyZWFsbSBCS0lfRk9SQ0VfTk9UX05VTEw7CisJYWNsaXRlbQkJY21rYWNs WzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7CisjZW5kaWYKK30gRm9ybURhdGFfcGdfY29sbWFz dGVya2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleSAqRm9ybV9wZ19j b2xtYXN0ZXJrZXk7CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sbWFzdGVya2V5LCA4MjM1LCA4 MjM2KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xtYXN0ZXJrZXlfb2lk X2luZGV4LCA4MjM5LCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBwZ19jb2xtYXN0ZXJr ZXksIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xt YXN0ZXJrZXlfY21rbmFtZV9uc3BfaW5kZXgsIDgyNDEsIENvbHVtbk1hc3RlcktleU5hbWVO c3BJbmRleElkLCBwZ19jb2xtYXN0ZXJrZXksIGJ0cmVlKGNta25hbWUgbmFtZV9vcHMsIGNt a25hbWVzcGFjZSBvaWRfb3BzKSk7CisKK01BS0VfU1lTQ0FDSEUoQ01LT0lELCBwZ19jb2xt YXN0ZXJrZXlfb2lkX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoQ01LTkFNRU5TUCwgcGdf Y29sbWFzdGVya2V5X2Nta25hbWVfbnNwX2luZGV4LCA4KTsKKworI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19vcGNsYXNzLmRhdAppbmRleCA2YzMwNzcwZmU3Yy4uYzNjYzhmZDkxOWEg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdApAQCAtMTY2LDYgKzE2Niw4IEBA CiAgIG9wY2ludHlwZSA9PiAnYm9vbCcgfSwKIHsgb3BjbWV0aG9kID0+ICdoYXNoJywgb3Bj bmFtZSA9PiAnYnl0ZWFfb3BzJywgb3BjZmFtaWx5ID0+ICdoYXNoL2J5dGVhX29wcycsCiAg IG9wY2ludHlwZSA9PiAnYnl0ZWEnIH0sCit7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25h bWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfb3BzJywKKyAgb3BjZmFtaWx5ID0+ICdoYXNoL3Bn X2VuY3J5cHRlZF9kZXRfb3BzJywgb3BjaW50eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JyB9 LAogeyBvcGNtZXRob2QgPT4gJ2J0cmVlJywgb3BjbmFtZSA9PiAndGlkX29wcycsIG9wY2Zh bWlseSA9PiAnYnRyZWUvdGlkX29wcycsCiAgIG9wY2ludHlwZSA9PiAndGlkJyB9LAogeyBv cGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICd4aWRfb3BzJywgb3BjZmFtaWx5ID0+ ICdoYXNoL3hpZF9vcHMnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19v cGVyYXRvci5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdAppbmRl eCAwZTc1MTFkZGUxYy4uYTBiMTM1Y2YxOWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfb3BlcmF0b3IuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bl cmF0b3IuZGF0CkBAIC0zNDU4LDQgKzM0NTgsMTkgQEAKICAgb3ByY29kZSA9PiAnbXVsdGly YW5nZV9hZnRlcl9tdWx0aXJhbmdlJywgb3BycmVzdCA9PiAnbXVsdGlyYW5nZXNlbCcsCiAg IG9wcmpvaW4gPT4gJ3NjYWxhcmd0am9pbnNlbCcgfSwKIAoreyBvaWQgPT4gJzgyNDcnLCBk ZXNjciA9PiAnZXF1YWwnLAorICBvcHJuYW1lID0+ICc9Jywgb3ByY2FuaGFzaCA9PiAndCcs IG9wcmxlZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBvcHJyaWdodCA9PiAncGdfZW5j cnlwdGVkX2RldCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsCisgIG9wcmNvbSA9PiAnPShwZ19l bmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgb3BybmVnYXRlID0+ICc8Pihw Z19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgb3ByY29kZSA9PiAncGdf ZW5jcnlwdGVkX2RldF9lcScsIG9wcnJlc3QgPT4gJ2Vxc2VsJywKKyAgb3Byam9pbiA9PiAn ZXFqb2luc2VsJyB9LAoreyBvaWQgPT4gJzgyNDgnLCBkZXNjciA9PiAnbm90IGVxdWFsJywK KyAgb3BybmFtZSA9PiAnPD4nLCBvcHJsZWZ0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAg b3BycmlnaHQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBvcHJyZXN1bHQgPT4gJ2Jvb2wnLAor ICBvcHJjb20gPT4gJzw+KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAor ICBvcHJuZWdhdGUgPT4gJz0ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScs CisgIG9wcmNvZGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfbmUnLCBvcHJyZXN0ID0+ICduZXFz ZWwnLAorICBvcHJqb2luID0+ICduZXFqb2luc2VsJyB9LAorCiBdCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfb3BmYW1pbHkuZGF0CmluZGV4IGM4YWM4YzczZGVmLi45YjczMDg1OTJmZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKQEAgLTEwOCw2ICsxMDgsOCBAQAog ICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdib29sX29wcycgfSwKIHsgb2lk ID0+ICcyMjIzJywKICAgb3BmbWV0aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9PiAnYnl0ZWFf b3BzJyB9LAoreyBvaWQgPT4gJzgyNDknLAorICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZu YW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X29wcycgfSwKIHsgb2lkID0+ICcyNzg5JywKICAg b3BmbWV0aG9kID0+ICdidHJlZScsIG9wZm5hbWUgPT4gJ3RpZF9vcHMnIH0sCiB7IG9pZCA9 PiAnMjIyNScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAxNTNkODE2YTA1My4u MTlkODdjNTYxOTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjQzOSw2ICs2 NDM5LDEyIEBACiAgIHByb25hbWUgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJywgcHJv Y29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2Jv b2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19jb2xsYXRpb25f aXNfdmlzaWJsZScgfSwKK3sgb2lkID0+ICc4MjYxJywgZGVzY3IgPT4gJ2lzIGNvbHVtbiBl bmNyeXB0aW9uIGtleSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4g J3BnX2Nla19pc192aXNpYmxlJywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAn cycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJv c3JjID0+ICdwZ19jZWtfaXNfdmlzaWJsZScgfSwKK3sgb2lkID0+ICc4MjYyJywgZGVzY3Ig PT4gJ2lzIGNvbHVtbiBtYXN0ZXIga2V5IHZpc2libGUgaW4gc2VhcmNoIHBhdGg/JywKKyAg cHJvbmFtZSA9PiAncGdfY21rX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3Zv bGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX2Nta19pc192aXNpYmxlJyB9LAogCiB7IG9pZCA9PiAn Mjg1NCcsIGRlc2NyID0+ICdnZXQgT0lEIG9mIGN1cnJlbnQgc2Vzc2lvblwncyB0ZW1wIHNj aGVtYSwgaWYgYW55JywKICAgcHJvbmFtZSA9PiAncGdfbXlfdGVtcF9zY2hlbWEnLCBwcm92 b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKQEAgLTcyMjYsNiArNzIzMiw2 OCBAQAogICBwcm9uYW1lID0+ICdmbWdyX3NxbF92YWxpZGF0b3InLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ3ZvaWQnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywg cHJvc3JjID0+ICdmbWdyX3NxbF92YWxpZGF0b3InIH0sCiAKK3sgb2lkID0+ICc4MjY1JywK KyAgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBi eSB1c2VybmFtZSwgY29sdW1uIGVuY3J5cHRpb24ga2V5IG5hbWUnLAorICBwcm9uYW1lID0+ ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICduYW1lIHRl eHQgdGV4dCcsCisgIHByb3NyYyA9PiAnaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2 aWxlZ2VfbmFtZV9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNjYnLAorICBkZXNjciA9PiAndXNl ciBwcml2aWxlZ2Ugb24gY29sdW1uIGVuY3J5cHRpb24ga2V5IGJ5IHVzZXJuYW1lLCBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9lbmNy eXB0aW9uX2tleV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5 cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsCisgIHByb3Ny YyA9PiAnaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwK K3sgb2lkID0+ICc4MjY3JywKKyAgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVt biBlbmNyeXB0aW9uIGtleSBieSB1c2VyIG9pZCwgY29sdW1uIGVuY3J5cHRpb24ga2V5IG5h bWUnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVn ZScsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2Fy Z3R5cGVzID0+ICdvaWQgdGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX2Vu Y3J5cHRpb25fa2V5X3ByaXZpbGVnZV9pZF9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNjgnLAor ICBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gY29sdW1uIGVuY3J5cHRpb24ga2V5IGJ5 IHVzZXIgb2lkLCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb2lkJywKKyAgcHJvbmFtZSA9PiAn aGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAn cycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0 ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVn ZV9pZF9pZCcgfSwKK3sgb2lkID0+ICc4MjY5JywKKyAgZGVzY3IgPT4gJ2N1cnJlbnQgdXNl ciBwcml2aWxlZ2Ugb24gY29sdW1uIGVuY3J5cHRpb24ga2V5IGJ5IGNvbHVtbiBlbmNyeXB0 aW9uIGtleSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tl eV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jv b2wnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29s dW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNzAn LAorICBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgYnkgY29sdW1uIGVuY3J5cHRpb24ga2V5IG9pZCcsCisgIHByb25hbWUgPT4g J2hhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4g J3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0 JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9p ZCcgfSwKKworeyBvaWQgPT4gJzgyNzEnLAorICBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ug b24gY29sdW1uIG1hc3RlciBrZXkgYnkgdXNlcm5hbWUsIGNvbHVtbiBtYXN0ZXIga2V5IG5h bWUnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlJywg cHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlw ZXMgPT4gJ25hbWUgdGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX21hc3Rl cl9rZXlfcHJpdmlsZWdlX25hbWVfbmFtZScgfSwKK3sgb2lkID0+ICc4MjcyJywKKyAgZGVz Y3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBtYXN0ZXIga2V5IGJ5IHVzZXJuYW1l LCBjb2x1bW4gbWFzdGVyIGtleSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX21h c3Rlcl9rZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBl ID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ25hbWUgb2lkIHRleHQnLAorICBwcm9zcmMg PT4gJ2hhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwKK3sgb2lk ID0+ICc4MjczJywKKyAgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBtYXN0 ZXIga2V5IGJ5IHVzZXIgb2lkLCBjb2x1bW4gbWFzdGVyIGtleSBuYW1lJywKKyAgcHJvbmFt ZSA9PiAnaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4 dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdl X2lkX25hbWUnIH0sCit7IG9pZCA9PiAnODI3NCcsCisgIGRlc2NyID0+ICd1c2VyIHByaXZp bGVnZSBvbiBjb2x1bW4gbWFzdGVyIGtleSBieSB1c2VyIG9pZCwgY29sdW1uIG1hc3RlciBr ZXkgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVn ZScsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2Fy Z3R5cGVzID0+ICdvaWQgb2lkIHRleHQnLAorICBwcm9zcmMgPT4gJ2hhc19jb2x1bW5fbWFz dGVyX2tleV9wcml2aWxlZ2VfaWRfaWQnIH0sCit7IG9pZCA9PiAnODI3NScsCisgIGRlc2Ny ID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBtYXN0ZXIga2V5IGJ5IGNv bHVtbiBtYXN0ZXIga2V5IG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX21hc3Rl cl9rZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsCisgIHByb3NyYyA9PiAnaGFz X2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNzYn LAorICBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBjb2x1bW4gbWFzdGVy IGtleSBieSBjb2x1bW4gbWFzdGVyIGtleSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfY29s dW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9y ZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0JywKKyAgcHJvc3Jj ID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlX2lkJyB9LAorCiB7IG9pZCA9 PiAnMjI1MCcsCiAgIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBkYXRhYmFzZSBieSB1 c2VybmFtZSwgZGF0YWJhc2UgbmFtZScsCiAgIHByb25hbWUgPT4gJ2hhc19kYXRhYmFzZV9w cml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLApA QCAtMTIyMDAsNCArMTIyNjgsMzYgQEAKICAgcHJvYXJndHlwZXMgPT4gJ2ludDInLAogICBw cm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiAKK3sgb2lkID0+ICc4MjUz JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfaW4n LCBwcm9yZXR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgcHJvYXJndHlwZXMgPT4g J2NzdHJpbmcnLCBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9pbicgfSwKK3sgb2lkID0+ICc4 MjU0JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRf b3V0JywgcHJvcmV0dHlwZSA9PiAnY3N0cmluZycsCisgIHByb2FyZ3R5cGVzID0+ICdwZ19l bmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfb3V0JyB9LAoreyBvaWQg PT4gJzgyNTUnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVk X2RldF9yZWN2JywgcHJvcmV0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIHByb2Fy Z3R5cGVzID0+ICdpbnRlcm5hbCcsIHByb3NyYyA9PiAncGdfZW5jcnlwdGVkX3JlY3YnIH0s Cit7IG9pZCA9PiAnODI1NicsIGRlc2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ICdwZ19l bmNyeXB0ZWRfZGV0X3NlbmQnLCBwcm9yZXR0eXBlID0+ICdieXRlYScsCisgIHByb2FyZ3R5 cGVzID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfc2Vu ZCcgfSwKKworeyBvaWQgPT4gJzgyNTcnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9 PiAncGdfZW5jcnlwdGVkX3JuZF9pbicsIHByb3JldHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9y bmQnLAorICBwcm9hcmd0eXBlcyA9PiAnY3N0cmluZycsIHByb3NyYyA9PiAncGdfZW5jcnlw dGVkX2luJyB9LAoreyBvaWQgPT4gJzgyNTgnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFt ZSA9PiAncGdfZW5jcnlwdGVkX3JuZF9vdXQnLCBwcm9yZXR0eXBlID0+ICdjc3RyaW5nJywK KyAgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLCBwcm9zcmMgPT4gJ3BnX2Vu Y3J5cHRlZF9vdXQnIH0sCit7IG9pZCA9PiAnODI1OScsIGRlc2NyID0+ICdJL08nLAorICBw cm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfcm5kX3JlY3YnLCBwcm9yZXR0eXBlID0+ICdwZ19l bmNyeXB0ZWRfcm5kJywKKyAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsJywgcHJvc3JjID0+ ICdwZ19lbmNyeXB0ZWRfcmVjdicgfSwKK3sgb2lkID0+ICc4MjYwJywgZGVzY3IgPT4gJ0kv TycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfc2VuZCcsIHByb3JldHR5cGUg PT4gJ2J5dGVhJywKKyAgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLCBwcm9z cmMgPT4gJ3BnX2VuY3J5cHRlZF9zZW5kJyB9LAorCit7IG9pZCA9PiAnODI0NScsCisgIHBy b25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEnLCBwcm9sZWFrcHJvb2YgPT4gJ3QnLCBw cm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9k ZXQgcGdfZW5jcnlwdGVkX2RldCcsIHByb3NyYyA9PiAnYnl0ZWFlcScgfSwKK3sgb2lkID0+ ICc4MjQ2JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIHByb2xlYWtw cm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAn cGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYW5l JyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKaW5kZXggZDI5MTk0ZGEzMWYuLjVm N2Q1YTM3ZTYyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0 CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKQEAgLTY5NCw0ICs2OTQs MTcgQEAKICAgdHlwcmVjZWl2ZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9yZWN2 JywKICAgdHlwc2VuZCA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5kJywgdHlw YWxpZ24gPT4gJ2knLAogICB0eXBzdG9yYWdlID0+ICd4JywgdHlwY29sbGF0aW9uID0+ICdk ZWZhdWx0JyB9LAorCisjIE5vdGU6IHR5cHN0b3JhZ2UgJ2UnIHNpbmNlIGNvbXByZXNzaW9u IGlzIG5vdCB1c2VmdWwgZm9yIGVuY3J5cHRlZCBkYXRhCit7IG9pZCA9PiAnODI0MycsIGRl c2NyID0+ICdlbmNyeXB0ZWQgY29sdW1uIChkZXRlcm1pbmlzdGljKScsCisgIHR5cG5hbWUg PT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2Yn LAorICB0eXBjYXRlZ29yeSA9PiAnWScsIHR5cGlucHV0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0 X2luJywKKyAgdHlwb3V0cHV0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0X291dCcsIHR5cHJlY2Vp dmUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfcmVjdicsCisgIHR5cHNlbmQgPT4gJ3BnX2VuY3J5 cHRlZF9kZXRfc2VuZCcsIHR5cGFsaWduID0+ICdpJywgdHlwc3RvcmFnZSA9PiAnZScgfSwK K3sgb2lkID0+ICc4MjQ0JywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4gKHJhbmRvbWl6 ZWQpJywKKyAgdHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZCcsIHR5cGxlbiA9PiAnLTEn LCB0eXBieXZhbCA9PiAnZicsCisgIHR5cGNhdGVnb3J5ID0+ICdZJywgdHlwaW5wdXQgPT4g J3BnX2VuY3J5cHRlZF9ybmRfaW4nLAorICB0eXBvdXRwdXQgPT4gJ3BnX2VuY3J5cHRlZF9y bmRfb3V0JywgdHlwcmVjZWl2ZSA9PiAncGdfZW5jcnlwdGVkX3JuZF9yZWN2JywKKyAgdHlw c2VuZCA9PiAncGdfZW5jcnlwdGVkX3JuZF9zZW5kJywgdHlwYWxpZ24gPT4gJ2knLCB0eXBz dG9yYWdlID0+ICdlJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3R5cGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oCmluZGV4IGU5MjU5 Njk3MzIxLi41MzNiODE3ODJjNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z190eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKQEAgLTI5Nyw2 ICsyOTcsNyBAQCBNQUtFX1NZU0NBQ0hFKFRZUEVOQU1FTlNQLCBwZ190eXBlX3R5cG5hbWVf bnNwX2luZGV4LCA2NCk7CiAjZGVmaW5lICBUWVBDQVRFR09SWV9VU0VSCQknVScKICNkZWZp bmUgIFRZUENBVEVHT1JZX0JJVFNUUklORwknVicgLyogZXIgLi4uICJ2YXJiaXQiPyAqLwog I2RlZmluZSAgVFlQQ0FURUdPUllfVU5LTk9XTgknWCcKKyNkZWZpbmUgIFRZUENBVEVHT1JZ X0VOQ1JZUFRFRAknWScKICNkZWZpbmUgIFRZUENBVEVHT1JZX0lOVEVSTkFMCSdaJwogCiAj ZGVmaW5lICBUWVBBTElHTl9DSEFSCQkJJ2MnIC8qIGNoYXIgYWxpZ25tZW50IChpLmUuIHVu YWxpZ25lZCkgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2Nt ZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmI4ODFkOTY5ZDIKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKQEAgLTAsMCArMSwyNiBA QAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY29sZW5jY21kcy5oCisgKgkgIHBy b3RvdHlwZXMgZm9yIGNvbGVuY2NtZHMuYy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVu Y2NtZHMuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgQ09M RU5DQ01EU19ICisjZGVmaW5lIENPTEVOQ0NNRFNfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9v YmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKworZXh0 ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlQ0VLKFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVmaW5l U3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlckNvbHVtbkVuY3J5cHRp b25LZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10 ICpzdG10KTsKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZUNNSyhQYXJzZVN0YXRlICpw c3RhdGUsIERlZmluZVN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJD b2x1bW5NYXN0ZXJLZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckNvbHVtbk1hc3Rlcktl eVN0bXQgKnN0bXQpOworCisjZW5kaWYJCQkJCQkJLyogQ09MRU5DQ01EU19IICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaCBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3RhYmxlY21kcy5oCmluZGV4IDg1Y2JhZDNkMGMyLi41MTY5ZTAzY2VkZiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKKysrIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKQEAgLTI3LDcgKzI3LDcgQEAgc3RydWN0 IEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dDsJLyogYXZvaWQgaW5jbHVkaW5nIHRjb3AvdXRp bGl0eS5oIGhlcmUgKi8KIGV4dGVybiBPYmplY3RBZGRyZXNzIERlZmluZVJlbGF0aW9uKENy ZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCQkJCQkJCQlP YmplY3RBZGRyZXNzICp0eXBhZGRyZXNzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZyk7CiAK LWV4dGVybiBUdXBsZURlc2MgQnVpbGREZXNjRm9yUmVsYXRpb24oY29uc3QgTGlzdCAqY29s dW1ucyk7CitleHRlcm4gVHVwbGVEZXNjIEJ1aWxkRGVzY0ZvclJlbGF0aW9uKGNvbnN0IExp c3QgKmNvbHVtbnMsIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlICoqdHVwZGVzY19leHRy YV9wKTsKIAogZXh0ZXJuIHZvaWQgUmVtb3ZlUmVsYXRpb25zKERyb3BTdG10ICpkcm9wKTsK IApAQCAtMTA3LDQgKzEwNyw2IEBAIGV4dGVybiB2b2lkIFJhbmdlVmFyQ2FsbGJhY2tPd25z UmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogZXh0ZXJuIGJvb2wgUGFydENv bnN0cmFpbnRJbXBsaWVkQnlSZWxDb25zdHJhaW50KFJlbGF0aW9uIHNjYW5yZWwsCiAJCQkJ CQkJCQkJCQkgTGlzdCAqcGFydENvbnN0cmFpbnQpOwogCitleHRlcm4gTGlzdCAqbWFrZUNv bHVtbkVuY3J5cHRpb24oSGVhcFR1cGxlIGF0dHJ0dXApOworCiAjZW5kaWYJCQkJCQkJLyog VEFCTEVDTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMu aCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uODZhNTEzNDE2NGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv aW5jbHVkZS9jb21tb24vY29sZW5jLmgKQEAgLTAsMCArMSw1MSBAQAorLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgorICogY29sZW5jLmgKKyAqCisgKiBTaGFyZWQgZGVmaW5pdGlvbnMg Zm9yIGNvbHVtbiBlbmNyeXB0aW9uIGFsZ29yaXRobXMuCisgKgorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQkgIHNyYy9pbmNsdWRlL2NvbW1vbi9j b2xlbmMuaAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBDT01NT05f Q09MRU5DX0gKKyNkZWZpbmUgQ09NTU9OX0NPTEVOQ19ICisKKy8qCisgKiBDb25zdGFudHMg Zm9yIENNSyBhbmQgQ0VLIGFsZ29yaXRobXMuICBOb3RlIHRoYXQgdGhlc2UgYXJlIHBhcnQg b2YgdGhlCisgKiBwcm90b2NvbC4gIEluIGVpdGhlciBjYXNlLCBkb24ndCBhc3NpZ24gemVy bywgc28gdGhhdCB0aGF0IGNhbiBiZSB1c2VkIGFzCisgKiBhbiBpbnZhbGlkIHZhbHVlLgor ICoKKyAqIE5hbWVzIHNob3VsZCB1c2UgSUFOQS1zdHlsZSBjYXBpdGFsaXphdGlvbiBhbmQg cHVuY3R1YXRpb24gKCJMSUtFX1RISVMiKS4KKyAqCisgKiBXaGVuIG1ha2luZyBjaGFuZ2Vz LCBhbHNvIHVwZGF0ZSBwcm90b2NvbC5zZ21sLgorICovCisKKyNkZWZpbmUgUEdfQ01LX1VO U1BFQ0lGSUVECQkJCTEKKyNkZWZpbmUgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzEJCQkyCisj ZGVmaW5lIFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTYJCTMKKworLyoKKyAqIFRoZXNlIGFs Z29yaXRobXMgYXJlIHBhcnQgb2YgdGhlIFJGQyA1MTE2IHJlYWxtIG9mIEFFQUQgYWxnb3Jp dGhtcyAoZXZlbgorICogdGhvdWdoIHRoZXkgbmV2ZXIgYmVjYW1lIGFuIG9mZmljaWFsIElF VEYgc3RhbmRhcmQpLiAgU28gZm9yIHByb3ByaWV0eSwgd2UKKyAqIHVzZSAicHJpdmF0ZSB1 c2UiIG51bWJlcnMgZnJvbQorICogPGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRz L2FlYWQtcGFyYW1ldGVycy9hZWFkLXBhcmFtZXRlcnMueGh0bWw+LgorICovCisjZGVmaW5l IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NgkzMjc2OAorI2RlZmluZSBQ R19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQJMzI3NjkKKyNkZWZpbmUgUEdf Q0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0CTMyNzcwCisjZGVmaW5lIFBHX0NF S19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMgkzMjc3MQorCisvKgorICogRnVuY3Rp b25zIHRvIGNvbnZlcnQgYmV0d2VlbiBuYW1lcyBhbmQgbnVtYmVycworICovCitleHRlcm4g aW50CWdldF9jbWthbGdfbnVtKGNvbnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIGNvbnN0IGNo YXIgKmdldF9jbWthbGdfbmFtZShpbnQgbnVtKTsKK2V4dGVybiBjb25zdCBjaGFyICpnZXRf Y21rYWxnX2p3YV9uYW1lKGludCBudW0pOworZXh0ZXJuIGludAlnZXRfY2VrYWxnX251bShj b25zdCBjaGFyICpuYW1lKTsKK2V4dGVybiBjb25zdCBjaGFyICpnZXRfY2VrYWxnX25hbWUo aW50IG51bSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbGlicHEvbGli cHEtYmUuaCBiL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKaW5kZXggMDVjYjE4NzRj NTguLjBmMGJlOTkwNzk3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1i ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKQEAgLTE1MCw2ICsxNTAs NyBAQCB0eXBlZGVmIHN0cnVjdCBQb3J0CiAJICovCiAJY2hhcgkgICAqZGF0YWJhc2VfbmFt ZTsKIAljaGFyCSAgICp1c2VyX25hbWU7CisJYm9vbAkJY29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZDsKIAljaGFyCSAgICpjbWRsaW5lX29wdGlvbnM7CiAJTGlzdAkgICAqZ3VjX29wdGlv bnM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL3Byb3RvY29sLmggYi9zcmMv aW5jbHVkZS9saWJwcS9wcm90b2NvbC5oCmluZGV4IDRiOGQ0NDAzNjU2Li5hMmRiNDU0Nzc2 NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvcHJvdG9jb2wuaAorKysgYi9zcmMv aW5jbHVkZS9saWJwcS9wcm90b2NvbC5oCkBAIC01Nyw2ICs1Nyw4IEBACiAjZGVmaW5lIFBx TXNnX1BvcnRhbFN1c3BlbmRlZAkJJ3MnCiAjZGVmaW5lIFBxTXNnX1BhcmFtZXRlckRlc2Ny aXB0aW9uCSd0JwogI2RlZmluZSBQcU1zZ19OZWdvdGlhdGVQcm90b2NvbFZlcnNpb24gJ3Yn CisjZGVmaW5lIFBxTXNnX0NvbHVtbk1hc3RlcktleQkJJ3knCisjZGVmaW5lIFBxTXNnX0Nv bHVtbkVuY3J5cHRpb25LZXkJJ1knCiAKIAogLyogVGhlc2UgYXJlIHRoZSBjb2RlcyBzZW50 IGJ5IGJvdGggdGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kLiAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IGY3NjNmNzkwYjE4Li4wMTkxMzY1OWJjNiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNzI2LDYgKzcyNiw3IEBAIHR5cGVkZWYgc3RydWN0IENvbHVtbkRl ZgogCWNoYXIJICAgKmNvbG5hbWU7CQkvKiBuYW1lIG9mIGNvbHVtbiAqLwogCVR5cGVOYW1l ICAgKnR5cGVOYW1lOwkJLyogdHlwZSBvZiBjb2x1bW4gKi8KIAljaGFyCSAgICpjb21wcmVz c2lvbjsJLyogY29tcHJlc3Npb24gbWV0aG9kIGZvciBjb2x1bW4gKi8KKwlMaXN0CSAgICpl bmNyeXB0aW9uOwkJLyogZW5jcnlwdGlvbiBpbmZvIGZvciBjb2x1bW4gKi8KIAlpbnQJCQlp bmhjb3VudDsJCS8qIG51bWJlciBvZiB0aW1lcyBjb2x1bW4gaXMgaW5oZXJpdGVkICovCiAJ Ym9vbAkJaXNfbG9jYWw7CQkvKiBjb2x1bW4gaGFzIGxvY2FsIChub24taW5oZXJpdGVkKSBk ZWYnbiAqLwogCWJvb2wJCWlzX25vdF9udWxsOwkvKiBOT1QgTlVMTCBjb25zdHJhaW50IHNw ZWNpZmllZD8gKi8KQEAgLTc2MiwxMSArNzYzLDEyIEBAIHR5cGVkZWYgZW51bSBUYWJsZUxp a2VPcHRpb24KIAlDUkVBVEVfVEFCTEVfTElLRV9DT01QUkVTU0lPTiA9IDEgPDwgMSwKIAlD UkVBVEVfVEFCTEVfTElLRV9DT05TVFJBSU5UUyA9IDEgPDwgMiwKIAlDUkVBVEVfVEFCTEVf TElLRV9ERUZBVUxUUyA9IDEgPDwgMywKLQlDUkVBVEVfVEFCTEVfTElLRV9HRU5FUkFURUQg PSAxIDw8IDQsCi0JQ1JFQVRFX1RBQkxFX0xJS0VfSURFTlRJVFkgPSAxIDw8IDUsCi0JQ1JF QVRFX1RBQkxFX0xJS0VfSU5ERVhFUyA9IDEgPDwgNiwKLQlDUkVBVEVfVEFCTEVfTElLRV9T VEFUSVNUSUNTID0gMSA8PCA3LAotCUNSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0UgPSAxIDw8 IDgsCisJQ1JFQVRFX1RBQkxFX0xJS0VfRU5DUllQVEVEID0gMSA8PCA0LAorCUNSRUFURV9U QUJMRV9MSUtFX0dFTkVSQVRFRCA9IDEgPDwgNSwKKwlDUkVBVEVfVEFCTEVfTElLRV9JREVO VElUWSA9IDEgPDwgNiwKKwlDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTID0gMSA8PCA3LAor CUNSRUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1MgPSAxIDw8IDgsCisJQ1JFQVRFX1RBQkxF X0xJS0VfU1RPUkFHRSA9IDEgPDwgOSwKIAlDUkVBVEVfVEFCTEVfTElLRV9BTEwgPSBQR19J TlQzMl9NQVgKIH0gVGFibGVMaWtlT3B0aW9uOwogCkBAIC0yMjY2LDYgKzIyNjgsOSBAQCB0 eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9DQVNULAogCU9CSkVDVF9DT0xVTU4s CiAJT0JKRUNUX0NPTExBVElPTiwKKwlPQkpFQ1RfQ0VLLAorCU9CSkVDVF9DRUtEQVRBLAor CU9CSkVDVF9DTUssCiAJT0JKRUNUX0NPTlZFUlNJT04sCiAJT0JKRUNUX0RBVEFCQVNFLAog CU9CSkVDVF9ERUZBVUxULApAQCAtMjQ1Niw2ICsyNDYxLDMxIEBAIHR5cGVkZWYgc3RydWN0 IEFsdGVyQ29sbGF0aW9uU3RtdAogfSBBbHRlckNvbGxhdGlvblN0bXQ7CiAKIAorLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICogQWx0ZXIgQ29sdW1uIEVuY3J5cHRpb24gS2V5Cisg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEFsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKmNl a25hbWU7CisJYm9vbAkJaXNEcm9wOwkJCS8qIEFERCBvciBEUk9QIHRoZSBpdGVtcz8gKi8K KwlMaXN0CSAgICpkZWZpbml0aW9uOworfSBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10 OworCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEFsdGVyIENvbHVtbiBNYXN0 ZXIgS2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0 IEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkg ICAqY21rbmFtZTsKKwlMaXN0CSAgICpkZWZpbml0aW9uOworfSBBbHRlckNvbHVtbk1hc3Rl cktleVN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJQWx0ZXIgRG9t YWluCiAgKgpAQCAtMzkzNCw2ICszOTY0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ2hlY2tQb2lu dFN0bXQKIHR5cGVkZWYgZW51bSBEaXNjYXJkTW9kZQogewogCURJU0NBUkRfQUxMLAorCURJ U0NBUkRfQ09MVU1OX0VOQ1JZUFRJT05fS0VZUywKIAlESVNDQVJEX1BMQU5TLAogCURJU0NB UkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBm OWE0YWZkNDcyMy4uMDJkYzFmYzg2NTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTE1Miw2 ICsxNTIsNyBAQCBQR19LRVlXT1JEKCJlbXB0eSIsIEVNUFRZX1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuYWJsZSIsIEVOQUJMRV9QLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmNvZGluZyIsIEVO Q09ESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJl bmNyeXB0ZWQiLCBFTkNSWVBURUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK K1BHX0tFWVdPUkQoImVuY3J5cHRpb24iLCBFTkNSWVBUSU9OLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmQiLCBFTkRfUCwgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVudW0iLCBFTlVNX1AsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVycm9yIiwgRVJST1JfUCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMjY5LDYgKzI3MCw3IEBAIFBH X0tFWVdPUkQoImxvY2siLCBMT0NLX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImxvY2tlZCIsIExPQ0tFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgibG9nZ2VkIiwgTE9HR0VELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJtYXBwaW5nIiwgTUFQUElORywgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibWFzdGVyIiwgTUFT VEVSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJtYXRj aCIsIE1BVENILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJtYXRjaGVkIiwgTUFUQ0hFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgibWF0ZXJpYWxpemVkIiwgTUFURVJJQUxJWkVELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfcGFyYW0uaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oCmluZGV4IDY0 NTlkNGFiNmYzLi4wODAwOGIxOTczZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX3BhcmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgK QEAgLTIxLDUgKzIxLDYgQEAgZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFy YW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCU9pZCAqKnBhcmFtVHlw ZXMsIGludCAqbnVtUGFyYW1zKTsKIGV4dGVybiB2b2lkIGNoZWNrX3ZhcmlhYmxlX3BhcmFt ZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXVlcnkpOwogZXh0ZXJuIGJvb2wg cXVlcnlfY29udGFpbnNfZXh0ZXJuX3BhcmFtcyhRdWVyeSAqcXVlcnkpOworZXh0ZXJuIHZv aWQgZmluZF9wYXJhbV9vcmlncyhMaXN0ICpxdWVyeV9saXN0LCBPaWQgKipwYXJhbV9vcmln X3RibHMsIEF0dHJOdW1iZXIgKipwYXJhbV9vcmlnX2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJ LyogUEFSU0VfUEFSQU1fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA3ZmRjZWM2 ZGQ5My4uYTQ3MTViYWYwYTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0yOSw2ICsy OSw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUNDRVNTX01FVEhPRCwgIkFMVEVSIEFD Q0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX0FHR1JFR0FURSwgIkFMVEVSIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ0FTVCwgIkFMVEVSIENBU1QiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTExBVElPTiwgIkFMVEVSIENP TExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJf Q09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT0xVTU5fTUFT VEVSX0tFWSwgIkFMVEVSIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJBSU5ULCAiQUxURVIgQ09OU1RSQUlO VCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09OVkVS U0lPTiwgIkFMVEVSIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0FMVEVSX0RBVEFCQVNFLCAiQUxURVIgREFUQUJBU0UiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQpAQCAtODYsNiArODgsOCBAQCBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9B Q0NFU1NfTUVUSE9ELCAiQ1JFQVRFIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFs cwogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUdHUkVHQVRFLCAiQ1JFQVRFIEFHR1JFR0FU RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NBU1Qs ICJDUkVBVEUgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf Q1JFQVRFX0NPTExBVElPTiwgIkNSRUFURSBDT0xMQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xVTU5fRU5DUllQVElPTl9LRVksICJD UkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdf Q01EVEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVksICJDUkVBVEUgQ09MVU1O IE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NS RUFURV9DT05TVFJBSU5ULCAiQ1JFQVRFIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05WRVJTSU9OLCAiQ1JFQVRFIENPTlZF UlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9E QVRBQkFTRSwgIkNSRUFURSBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0x MzAsNiArMTM0LDcgQEAgUEdfQ01EVEFHKENNRFRBR19ERUNMQVJFX0NVUlNPUiwgIkRFQ0xB UkUgQ1VSU09SIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVM RVRFLCAiREVMRVRFIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQogUEdfQ01EVEFHKENNRFRBR19E SVNDQVJELCAiRElTQ0FSRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RJU0NBUkRfQUxMLCAiRElTQ0FSRCBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX0NPTFVNTl9FTkNSWVBUSU9OX0tFWVMsICJESVND QVJEIENPTFVNTiBFTkNSWVBUSU9OIEtFWVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19ESVNDQVJEX1BMQU5TLCAiRElTQ0FSRCBQTEFOUyIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTLCAiRElT Q0FSRCBTRVFVRU5DRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19ESVNDQVJEX1RFTVAsICJESVNDQVJEIFRFTVAiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpA QCAtMTM4LDYgKzE0Myw4IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9E LCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NBU1QsICJEUk9QIENBU1QiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MTEFUSU9OLCAiRFJP UCBDT0xMQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RS T1BfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVki LCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MVU1OX01B U1RFUl9LRVksICJEUk9QIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTlNUUkFJTlQsICJEUk9QIENPTlNUUkFJTlQi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OVkVSU0lP TiwgIkRST1AgQ09OVkVSU0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfRFJPUF9EQVRBQkFTRSwgIkRST1AgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVk ZS91dGlscy9hY2wuaAppbmRleCAzYTBiYWYzMDM5NS4uMTUyZDJiMGRhOTAgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Fj bC5oCkBAIC0xNTksNiArMTU5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsK ICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfQ09MVU1OCQkoQUNMX0lOU0VSVHxBQ0xfU0VMRUNU fEFDTF9VUERBVEV8QUNMX1JFRkVSRU5DRVMpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1JF TEFUSU9OCQkoQUNMX0lOU0VSVHxBQ0xfU0VMRUNUfEFDTF9VUERBVEV8QUNMX0RFTEVURXxB Q0xfVFJVTkNBVEV8QUNMX1JFRkVSRU5DRVN8QUNMX1RSSUdHRVJ8QUNMX01BSU5UQUlOKQog I2RlZmluZSBBQ0xfQUxMX1JJR0hUU19TRVFVRU5DRQkJKEFDTF9VU0FHRXxBQ0xfU0VMRUNU fEFDTF9VUERBVEUpCisjZGVmaW5lIEFDTF9BTExfUklHSFRTX0NFSwkJCShBQ0xfVVNBR0Up CisjZGVmaW5lIEFDTF9BTExfUklHSFRTX0NNSwkJCShBQ0xfVVNBR0UpCiAjZGVmaW5lIEFD TF9BTExfUklHSFRTX0RBVEFCQVNFCQkoQUNMX0NSRUFURXxBQ0xfQ1JFQVRFX1RFTVB8QUNM X0NPTk5FQ1QpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX0ZEVwkJCShBQ0xfVVNBR0UpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX0ZPUkVJR05fU0VSVkVSIChBQ0xfVVNBR0UpCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL2xzeXNjYWNoZS5oCmluZGV4IDM1YThkZWMyYjlmLi42ZTUxMjQ1NWMzNSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBleHRlcm4gYm9vbCB0eXBl X2lzX3Jvd3R5cGUoT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfZW51bShPaWQg dHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlwZV9pc19yYW5nZShPaWQgdHlwaWQpOwogZXh0ZXJu IGJvb2wgdHlwZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBpZCk7CitleHRlcm4gYm9vbCB0eXBl X2lzX2VuY3J5cHRlZChPaWQgdHlwaWQpOwogZXh0ZXJuIHZvaWQgZ2V0X3R5cGVfY2F0ZWdv cnlfcHJlZmVycmVkKE9pZCB0eXBpZCwKIAkJCQkJCQkJCQljaGFyICp0eXBjYXRlZ29yeSwK IAkJCQkJCQkJCQlib29sICp0eXBpc3ByZWZlcnJlZCk7CkBAIC0yMDMsNiArMjA0LDkgQEAg ZXh0ZXJuIE9pZAlnZXRfcHVibGljYXRpb25fb2lkKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJv b2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25hbWUoT2lk IHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2NyaXB0aW9u X29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNo YXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7 CitleHRlcm4gY2hhciAqZ2V0X2Nla19uYW1lKE9pZCBjZWtpZCwgYm9vbCBtaXNzaW5nX29r KTsKK2V4dGVybiBPaWQJZ2V0X2Nla2RhdGFfb2lkKE9pZCBjZWtpZCwgT2lkIGNta2lkLCBi b29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGNoYXIgKmdldF9jbWtfbmFtZShPaWQgY21raWQs IGJvb2wgbWlzc2luZ19vayk7CiAKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChn ZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJh eV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFy cmF5cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmggYi9z cmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAppbmRleCBhOTBkZmRmOTA2Ny4uZDNjMzc2 MTQzODkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCisrKyBi L3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCkBAIC0yMDksNiArMjA5LDkgQEAgZXh0 ZXJuIHZvaWQgQ29tcGxldGVDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3Vy Y2UsCiBleHRlcm4gdm9pZCBTYXZlQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFu c291cmNlKTsKIGV4dGVybiB2b2lkIERyb3BDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2Ug KnBsYW5zb3VyY2UpOwogCitleHRlcm4gTGlzdCAqUmV2YWxpZGF0ZUNhY2hlZFF1ZXJ5KENh Y2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCisJCQkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1l bnQgKnF1ZXJ5RW52KTsKKwogZXh0ZXJuIHZvaWQgQ2FjaGVkUGxhblNldFBhcmVudENvbnRl eHQoQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkJCQkJCSAgIE1lbW9yeUNv bnRleHQgbmV3Y29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L01ha2VmaWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggZmUyYWY1 NzVjNWQuLjU1MzkyMjJiMzhhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9N YWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAtNTIsNiAr NTIsNyBAQCBlbmRpZgogCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQogT0JKUyArPSBc CisJZmUtZW5jcnlwdC1vcGVuc3NsLm8gXAogCWZlLXNlY3VyZS1vcGVuc3NsLm8KIGVuZGlm CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0IGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKaW5kZXggOGVlMDgxMTUxMDAuLjA0YTg2 YzA5YTEyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dAor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dApAQCAtMjA0LDMgKzIwNCw3 IEBAIFBRY2FuY2VsUmVzZXQgICAgICAgICAgICAgMjAxCiBQUWNhbmNlbEZpbmlzaCAgICAg ICAgICAgIDIwMgogUFFzb2NrZXRQb2xsICAgICAgICAgICAgICAyMDMKIFBRc2V0Q2h1bmtl ZFJvd3NNb2RlICAgICAgMjA0CitQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCAgIDIwNQorUFFz ZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCAyMDYKK1BRZmlzZW5jcnlwdGVkICAgICAgICAg ICAgMjA3CitQUXBhcmFtaXNlbmNyeXB0ZWQgICAgICAgIDIwOApkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtY29ubmVjdC5jCmluZGV4IGUzNWJkYzQwMzYxLi42NDI1YzgwMDMyYyAxMDA2NDQKLS0t IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtMzU5LDYgKzM1OSwxNCBAQCBzdGF0aWMgY29u c3QgaW50ZXJuYWxQUWNvbm5pbmZvT3B0aW9uIFBRY29ubmluZm9PcHRpb25zW10gPSB7CiAJ CSJUYXJnZXQtU2Vzc2lvbi1BdHRycyIsICIiLCAxNSwgLyogc2l6ZW9mKCJwcmVmZXItc3Rh bmRieSIpID0gMTUgKi8KIAlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgdGFyZ2V0X3Nlc3Np b25fYXR0cnMpfSwKIAorCXsiY21rbG9va3VwIiwgIlBHQ01LTE9PS1VQIiwgIiIsIE5VTEws CisJCSJDTUstTG9va3VwIiwgIiIsIDY0LAorCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBj bWtsb29rdXApfSwKKworCXsiY29sdW1uX2VuY3J5cHRpb24iLCAiUEdDT0xVTU5FTkNSWVBU SU9OIiwgIjAiLCBOVUxMLAorCQkiQ29sdW1uLUVuY3J5cHRpb24iLCAiIiwgMSwKKwlvZmZz ZXRvZihzdHJ1Y3QgcGdfY29ubiwgY29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyl9LAorCiAJ eyJsb2FkX2JhbGFuY2VfaG9zdHMiLCAiUEdMT0FEQkFMQU5DRUhPU1RTIiwKIAkJRGVmYXVs dExvYWRCYWxhbmNlSG9zdHMsIE5VTEwsCiAJCSJMb2FkLUJhbGFuY2UtSG9zdHMiLCAiIiwg OCwJLyogc2l6ZW9mKCJkaXNhYmxlIikgPSA4ICovCkBAIC0xODIyLDYgKzE4MzAsMjggQEAg cHFDb25uZWN0T3B0aW9uczIoUEdjb25uICpjb25uKQogCQkJZ290byBvb21fZXJyb3I7CiAJ fQogCisJLyoKKwkgKiB2YWxpZGF0ZSBjb2x1bW5fZW5jcnlwdGlvbiBvcHRpb24KKwkgKi8K KwlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZykKKwl7CisJCWlmIChzdHJj bXAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZywgIm9uIikgPT0gMCB8fAorCQkJ c3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICJ0cnVlIikgPT0gMCB8 fAorCQkJc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICIxIikgPT0g MCkKKwkJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSB0cnVlOworCQllbHNl IGlmIChzdHJjbXAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZywgIm9mZiIpID09 IDAgfHwKKwkJCQkgc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICJm YWxzZSIpID09IDAgfHwKKwkJCQkgc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3Nl dHRpbmcsICIwIikgPT0gMCkKKwkJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQg PSBmYWxzZTsKKwkJZWxzZQorCQl7CisJCQljb25uLT5zdGF0dXMgPSBDT05ORUNUSU9OX0JB RDsKKwkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJpbnZhbGlkICVzIHZhbHVl OiBcIiVzXCIiLAorCQkJCQkJCQkJImNvbHVtbl9lbmNyeXB0aW9uIiwgY29ubi0+Y29sdW1u X2VuY3J5cHRpb25fc2V0dGluZyk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisKIAkv KgogCSAqIE9ubHkgaWYgd2UgZ2V0IHRoaXMgZmFyIGlzIGl0IGFwcHJvcHJpYXRlIHRvIHRy eSB0byBjb25uZWN0LiAoV2UgbmVlZCBhCiAJICogc3RhdGUgZmxhZywgcmF0aGVyIHRoYW4g anVzdCB0aGUgYm9vbGVhbiByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiwgaW4KQEAgLTQ2Nzks NiArNDcwOSwyMiBAQCBmcmVlUEdjb25uKFBHY29ubiAqY29ubikKIAlmcmVlKGNvbm4tPmdz c2xpYik7CiAJZnJlZShjb25uLT5nc3NkZWxlZ2F0aW9uKTsKIAlmcmVlKGNvbm4tPmNvbm5p cCk7CisJZnJlZShjb25uLT5jbWtsb29rdXApOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29u bi0+bmNta3M7IGkrKykKKwl7CisJCWZyZWUoY29ubi0+Y21rc1tpXS5jbWtuYW1lKTsKKwkJ ZnJlZShjb25uLT5jbWtzW2ldLmNta3JlYWxtKTsKKwl9CisJZnJlZShjb25uLT5jbWtzKTsK Kwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5jZWtzOyBpKyspCisJeworCQlpZiAoY29u bi0+Y2Vrc1tpXS5jZWtkYXRhKQorCQl7CisJCQlleHBsaWNpdF9iemVybyhjb25uLT5jZWtz W2ldLmNla2RhdGEsIGNvbm4tPmNla3NbaV0uY2VrZGF0YWxlbik7CisJCQlmcmVlKGNvbm4t PmNla3NbaV0uY2VrZGF0YSk7CisJCX0KKwl9CisJZnJlZShjb25uLT5jZWtzKTsKIAkvKiBO b3RlIHRoYXQgY29ubi0+UGZkZWJ1ZyBpcyBub3Qgb3VycyB0byBjbG9zZSBvciBmcmVlICov CiAJZnJlZShjb25uLT53cml0ZV9lcnJfbXNnKTsKIAlmcmVlKGNvbm4tPmluQnVmZmVyKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5j IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2MjUzNWMzODMyCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKQEAg LTAsMCArMSw4NDAgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGZlLWVuY3J5 cHQtb3BlbnNzbC5jCisgKgorICogY2xpZW50LXNpZGUgY29sdW1uIGVuY3J5cHRpb24gc3Vw cG9ydCB1c2luZyBPcGVuU1NMCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAiZmUtZW5j cnlwdC5oIgorI2luY2x1ZGUgImxpYnBxLWludC5oIgorCisjaW5jbHVkZSAiY29tbW9uL2Nv bGVuYy5oIgorI2luY2x1ZGUgInBvcnQvcGdfYnN3YXAuaCIKKworI2luY2x1ZGUgPG9wZW5z c2wvZXZwLmg+CisKKworLyoKKyAqIFdoZW4gVEVTVF9FTkNSWVBUIGlzIGRlZmluZWQsIHRo aXMgZmlsZSBidWlsZHMgYSBzdGFuZGFsb25lIHByb2dyYW0gdGhhdAorICogY2hlY2tzIGVu Y3J5cHRpb24gdGVzdCBjYXNlcyBhZ2FpbnN0IHRoZSBzcGVjaWZpY2F0aW9uIGRvY3VtZW50 LgorICoKKyAqIFdlIGhhdmUgdG8gcmVwbGFjZSBzb21lIGZ1bmN0aW9ucyB0aGF0IGFyZSBu b3QgYXZhaWxhYmxlIGluIHRoYXQKKyAqIGVudmlyb25tZW50LgorICovCisjaWZkZWYgVEVT VF9FTkNSWVBUCisKKyNkZWZpbmUgbGlicHFfZ2V0dGV4dCh4KSAoeCkKKyNkZWZpbmUgbGli cHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgLi4uKSBkbyB7IGZwcmludGYoc3RkZXJyLCBf X1ZBX0FSR1NfXyk7IGZwcmludGYoc3RkZXJyLCAiXG4iKTsgZXhpdCgxKTsgfSB3aGlsZSgw KQorI2RlZmluZSBwcVJlc3VsdEFsbG9jKHJlcywgbkJ5dGVzLCBpc0JpbmFyeSkgbWFsbG9j KG5CeXRlcykKKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLworCisKKy8qCisg KiBEZWNyeXB0IHRoZSBDRUsgZ2l2ZW4gYnkgImZyb20iIGFuZCAiZnJvbWxlbiIgKGRhdGEg dHlwaWNhbGx5IHNlbnQgZnJvbSB0aGUKKyAqIHNlcnZlcikgdXNpbmcgdGhlIENNSyBpbiBj bWtmaWxlbmFtZS4KKyAqLwordW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2Zp bGUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywK KwkJCQkJICBpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJ ICBpbnQgKnRvbGVuKQoreworCWNvbnN0IEVWUF9NRCAqbWQgPSBOVUxMOworCUVWUF9QS0VZ ICAgKmtleSA9IE5VTEw7CisJUlNBCQkgICAqcnNhID0gTlVMTDsKKwlCSU8JCSAgICpiaW8g PSBOVUxMOworCUVWUF9QS0VZX0NUWCAqY3R4ID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpv dXQgPSBOVUxMOworCXNpemVfdAkJb3V0bGVuOworCisJc3dpdGNoIChjbWthbGcpCisJewor CQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOgorCQkJbWQgPSBFVlBfc2hhMSgpOwor CQkJYnJlYWs7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCW1kID0g RVZQX3NoYTI1NigpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ01LX1VOU1BFQ0lGSUVEOgor CQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInVuc3BlY2lmaWVkIENNSyBhbGdv cml0aG0gbm90IHN1cHBvcnRlZCB3aXRoIGZpbGUgbG9va3VwIHNjaGVtZSIpOworCQkJZ290 byBmYWlsOworCQlkZWZhdWx0OgorCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg InVuc3VwcG9ydGVkIENNSyBhbGdvcml0aG0gSUQ6ICVkIiwgY21rYWxnKTsKKwkJCWdvdG8g ZmFpbDsKKwl9CisKKwliaW8gPSBCSU9fbmV3X2ZpbGUoY21rZmlsZW5hbWUsICJyIik7CisJ aWYgKCFiaW8pCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQg bm90IG9wZW4gZmlsZSBcIiVzXCI6ICVtIiwgY21rZmlsZW5hbWUpOworCQlnb3RvIGZhaWw7 CisJfQorCisJcnNhID0gUlNBX25ldygpOworCWlmICghcnNhKQorCXsKKwkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBSU0Egc3RydWN0dXJl OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3Io KSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyoKKwkgKiBOb3RlOiBXZSBtdXN0IGdvIHRo cm91Z2ggQklPIGFuZCBub3Qgc2F5IHVzZSBQRU1fcmVhZF9SU0FQcml2YXRlS2V5KCkKKwkg KiBkaXJlY3RseSBvbiBhIEZJTEUuICBPdGhlcndpc2UsIHdlIGdldCBpbnRvICJubyBPUEVO U1NMX0FwcGxpbmsiIGhlbGwKKwkgKiBvbiBXaW5kb3dzICh3aGljaCBoYXBwZW5zIHdoZW5l dmVyIHlvdSBwYXNzIGEgc3RkaW8gaGFuZGxlIGZyb20gdGhlCisJICogYXBwbGljYXRpb24g aW50byBPcGVuU1NMKS4KKwkgKi8KKwlyc2EgPSBQRU1fcmVhZF9iaW9fUlNBUHJpdmF0ZUtl eShiaW8sICZyc2EsIE5VTEwsIE5VTEwpOworCWlmICghcnNhKQorCXsKKwkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCByZWFkIFJTQSBwcml2YXRlIGtleTog JXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJZ290byBmYWlsOworCX0KKworCWtleSA9IEVWUF9QS0VZX25ldygpOworCWlmICgh a2V5KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBh bGxvY2F0ZSBwcml2YXRlIGtleSBzdHJ1Y3R1cmU6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNv bl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisK KwlpZiAoIUVWUF9QS0VZX2Fzc2lnbl9SU0Eoa2V5LCByc2EpKQorCXsKKwkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhc3NpZ24gcHJpdmF0ZSBrZXk6ICVz IiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwljdHggPSBFVlBfUEtFWV9DVFhfbmV3KGtleSwgTlVM TCk7CisJaWYgKCFjdHgpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAi Y291bGQgbm90IGFsbG9jYXRlIHB1YmxpYyBrZXkgYWxnb3JpdGhtIGNvbnRleHQ6ICVzIiwK KwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfZGVjcnlwdF9pbml0KGN0eCkgPD0g MCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJkZWNyeXB0aW9uIGlu aXRpYWxpemF0aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBf UEtFWV9DVFhfc2V0X3JzYV9wYWRkaW5nKGN0eCwgUlNBX1BLQ1MxX09BRVBfUEFERElORykg PD0gMCB8fAorCQlFVlBfUEtFWV9DVFhfc2V0X3JzYV9tZ2YxX21kKGN0eCwgbWQpIDw9IDAg fHwKKwkJRVZQX1BLRVlfQ1RYX3NldF9yc2Ffb2FlcF9tZChjdHgsIG1kKSA8PSAwKQorCXsK KwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBzZXQgUlNBIHBh cmFtZXRlcjogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0 X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCS8qIGdldCBvdXRwdXQgbGVuZ3Ro ICovCisJaWYgKEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBOVUxMLCAmb3V0bGVuLCBmcm9tLCBm cm9tbGVuKSA8PSAwKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIlJT QSBkZWNyeXB0aW9uIHNldHVwIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCW91 dCA9IG1hbGxvYyhvdXRsZW4pOworCWlmICghb3V0KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nv bm5fZXJyb3IoY29ubiwgIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwor CWlmIChFVlBfUEtFWV9kZWNyeXB0KGN0eCwgb3V0LCAmb3V0bGVuLCBmcm9tLCBmcm9tbGVu KSA8PSAwKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIlJTQSBkZWNy eXB0aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhF UlJfZ2V0X2Vycm9yKCkpKTsKKwkJZnJlZShvdXQpOworCQlvdXQgPSBOVUxMOworCQlnb3Rv IGZhaWw7CisJfQorCisJKnRvbGVuID0gb3V0bGVuOworCitmYWlsOgorCUVWUF9QS0VZX0NU WF9mcmVlKGN0eCk7CisJRVZQX1BLRVlfZnJlZShrZXkpOworCUJJT19mcmVlKGJpbyk7CisK KwlyZXR1cm4gb3V0OworfQorCisKKy8qCisgKiBUaGUgcm91dGluZXMgYmVsb3cgaW1wbGVt ZW50IHRoZSBBRUFEIGFsZ29yaXRobXMgc3BlY2lmaWVkIGluCisgKiA8aHR0cHM6Ly9kYXRh dHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWht YWMtc2hhMi0wNT4KKyAqIGZvciBlbmNyeXB0aW5nIGFuZCBkZWNyeXB0aW5nIGNvbHVtbiB2 YWx1ZXMuCisgKi8KKworI2lmZGVmIFRFU1RfRU5DUllQVAorCisvKgorICogVGVzdCBkYXRh IGZyb20KKyAqIDxodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0 LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisv KgorICogVGhlIGRpZmZlcmVudCB0ZXN0IGNhc2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVm aXhlcyBvZiBLLCBzbyBvbmUgY29uc3RhbnQKKyAqIGlzIGVub3VnaCBoZXJlLgorICovCitz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBLW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwg MHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwg MHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKwkweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0 LCAweDE1LCAweDE2LCAweDE3LCAweDE4LCAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFk LCAweDFlLCAweDFmLAorCTB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4 MjYsIDB4MjcsIDB4MjgsIDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4 MmYsCisJMHgzMCwgMHgzMSwgMHgzMiwgMHgzMywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywg MHgzOCwgMHgzOSwgMHgzYSwgMHgzYiwgMHgzYywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYz LCAweDY5LCAweDcwLCAweDY4LCAweDY1LCAweDcyLCAweDIwLCAweDczLCAweDc5LCAweDcz LCAweDc0LCAweDY1LCAweDZkLCAweDIwLAorCTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4 MjAsIDB4NmUsIDB4NmYsIDB4NzQsIDB4MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4 NjUsIDB4NzEsIDB4NzUsCisJMHg2OSwgMHg3MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg3Miwg MHg2NSwKKwkweDc0LCAweDJjLCAweDIwLCAweDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5 LCAweDc0LCAweDIwLCAweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4 NjUsIDB4MjAsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4 MjAsIDB4NjYsIDB4NjEsIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwg MHg2NCwgMHg3MywgMHgyMCwgMHg2ZiwgMHg2NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1 LCAweDIwLCAweDY1LCAweDZlLCAweDY1LCAweDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5 LCAweDc0LCAweDY4LCAweDZmLAorCTB4NzUsIDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4 NjMsIDB4NmYsIDB4NmUsIDB4NzYsIDB4NjUsIDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4 NjMsIDB4NjUsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10g PSB7CisJMHgxYSwgMHhmMywgMHg4YywgMHgyZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwg MHhkOCwgMHg2NiwgMHg5NCwgMHgwOSwgMHgyMywgMHg0MSwgMHhiYywgMHgwNCwKK307CisK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfQVtdID0geworCTB4NTQsIDB4Njgs IDB4NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAs IDB4NzAsIDB4NzIsIDB4NjksIDB4NmUsIDB4NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2 NSwgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3 MywgMHg3NCwgMHg2NSwgMHgyMCwKKwkweDRiLCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAw eDY4LCAweDZmLCAweDY2LCAweDY2LCAweDczLAorfTsKKworI2VuZGlmCQkJCQkJCS8qIFRF U1RfRU5DUllQVCAqLworCisKKy8qCisgKiBHZXQgT3BlblNTTCBjaXBoZXIgdGhhdCBjb3Jy ZXNwb25kcyB0byB0aGUgQ0VLIGFsZ29yaXRobSBudW1iZXIuCisgKi8KK3N0YXRpYyBjb25z dCBFVlBfQ0lQSEVSICoKK3BnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihpbnQgY2VrYWxn KQoreworCWNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKworCXN3aXRjaCAoY2VrYWxnKQor CXsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQlj aXBoZXIgPSBFVlBfYWVzXzEyOF9jYmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19B RUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTky X2NiYygpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1B Q19TSEFfMzg0OgorCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUx MjoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMjU2X2NiYygpOworCQkJYnJlYWs7CisJCWRlZmF1 bHQ6CisJCQljaXBoZXIgPSBOVUxMOworCX0KKworCXJldHVybiBjaXBoZXI7Cit9CisKKy8q CisgKiBHZXQgT3BlblNTTCBkaWdlc3QgKGZvciBNQUMpIHRoYXQgY29ycmVzcG9uZHMgdG8g dGhlIENFSyBhbGdvcml0aG0gbnVtYmVyLgorICovCitzdGF0aWMgY29uc3QgRVZQX01EICoK K3BnX2Nla2FsZ190b19vcGVuc3NsX21kKGludCBjZWthbGcpCit7CisJY29uc3QgRVZQX01E ICptZDsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNf MTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQltZCA9IEVWUF9zaGEyNTYoKTsKKwkJCWJyZWFr OworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJY2Fz ZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCQltZCA9IEVWUF9z aGEzODQoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hN QUNfU0hBXzUxMjoKKwkJCW1kID0gRVZQX3NoYTUxMigpOworCQkJYnJlYWs7CisJCWRlZmF1 bHQ6CisJCQltZCA9IE5VTEw7CisJfQorCisJcmV0dXJuIG1kOworfQorCisvKgorICogR2V0 IHRoZSBNQUMga2V5IGxlbmd0aCAoaW4gb2N0ZXRzKSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRo ZSBDRUsgYWxnb3JpdGhtIG51bWJlci4KKyAqCisgKiBUaGlzIGlzIE1BQ19LRVlfTEVOIGlu IHRoZSBtY2dyZXcgcGFwZXIuCisgKi8KK3N0YXRpYyBpbnQKK21kX2tleV9sZW5ndGgoY29u c3QgRVZQX01EICptZCkKK3sKKwlpZiAobWQgPT0gRVZQX3NoYTI1NigpKQorCQlyZXR1cm4g MTY7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTM4NCgpKQorCQlyZXR1cm4gMjQ7CisJZWxz ZSBpZiAobWQgPT0gRVZQX3NoYTUxMigpKQorCQlyZXR1cm4gMzI7CisJZWxzZQorCQlyZXR1 cm4gLTE7Cit9CisKKy8qCisgKiBHZXQgdGhlIEhNQUMgb3V0cHV0IGxlbmd0aCAoaW4gb2N0 ZXRzKSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBDRUsKKyAqIGFsZ29yaXRobSBudW1iZXIu CisgKi8KK3N0YXRpYyBpbnQKK21kX2hhc2hfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7 CisJaWYgKG1kID09IEVWUF9zaGEyNTYoKSkKKwkJcmV0dXJuIDMyOworCWVsc2UgaWYgKG1k ID09IEVWUF9zaGEzODQoKSkKKwkJcmV0dXJuIDQ4OworCWVsc2UgaWYgKG1kID09IEVWUF9z aGE1MTIoKSkKKwkJcmV0dXJuIDY0OworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisvKgor ICogTGVuZ3RoIG9mIGFzc29jaWF0ZWQgZGF0YSAoQSBpbiBtY2dyZXcgcGFwZXIpCisgKi8K KyNpZm5kZWYgVEVTVF9FTkNSWVBUCisjZGVmaW5lIFBHX0FEX0xFTiA0CisjZWxzZQorI2Rl ZmluZSBQR19BRF9MRU4gc2l6ZW9mKHRlc3RfQSkKKyNlbmRpZgorCisvKgorICogQ29tcHV0 ZSBtZXNzYWdlIGF1dGhlbnRpY2F0aW9uIHRhZyAoVCBpbiB0aGUgbWNncmV3IHBhcGVyKSwg ZnJvbSBNQUMga2V5CisgKiBhbmQgY2lwaGVydGV4dC4KKyAqCisgKiBSZXR1cm5zIGZhbHNl IG9uIGVycm9yLCB3aXRoIGVycm9yIG1lc3NhZ2UgaW4gZXJybXNncC4KKyAqLworc3RhdGlj IGJvb2wKK2dldF9tZXNzYWdlX2F1dGhfdGFnKGNvbnN0IEVWUF9NRCAqbWQsCisJCQkJCSBj b25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5LCBpbnQgbWFjX2tleV9sZW4sCisJCQkJCSBj b25zdCB1bnNpZ25lZCBjaGFyICplbmNyLCBpbnQgZW5jcmxlbiwKKwkJCQkJIHVuc2lnbmVk IGNoYXIgKm1kX3ZhbHVlLCBzaXplX3QgKm1kX2xlbl9wLAorCQkJCQkgY29uc3QgY2hhciAq KmVycm1zZ3ApCit7CisJc3RhdGljIGNoYXIgbXNnYnVmWzEwMjRdOworCUVWUF9NRF9DVFgg KmV2cF9tZF9jdHggPSBOVUxMOworCUVWUF9QS0VZICAgKnBrZXkgPSBOVUxMOworCXNpemVf dAkJYnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCWludDY0CQlhbDsK Kwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCWlmIChlbmNybGVuIDwgMCkKKwl7CisJCXNu cHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImVu Y3J5cHRlZCB2YWx1ZSBoYXMgaW52YWxpZCBsZW5ndGgiKSk7CisJCSplcnJtc2dwID0gbXNn YnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX21kX2N0eCA9IEVWUF9NRF9DVFhfbmV3 KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlfbmV3X3Jhd19wcml2YXRlX2tleShFVlBfUEtFWV9I TUFDLCBOVUxMLCBtYWNfa2V5LCBtYWNfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJ c25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgi Y291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiKSwKKwkJCQkgRVJSX3JlYXNv bl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVm OworCQlnb3RvIGZhaWw7CisJfQorCisJLyoKKwkgKiBCdWlsZCBpbnB1dCB0byBNQUMgY2Fs bCAoQSB8fCBTIHx8IEFMIGluIG1jZ3JldyBwYXBlcikKKwkgKi8KKwlidWZzaXplID0gUEdf QURfTEVOICsgZW5jcmxlbiArIHNpemVvZihpbnQ2NCk7CisJYnVmID0gbWFsbG9jKGJ1ZnNp emUpOworCWlmICghYnVmKQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJvdXQg b2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisJLyogQSAoYXNzb2NpYXRlZCBkYXRh KSAqLworI2lmbmRlZiBURVNUX0VOQ1JZUFQKKwlidWZbMF0gPSAnUCc7CisJYnVmWzFdID0g J0cnOworCSooaW50MTYgKikgKGJ1ZiArIDIpID0gcGdfaHRvbjE2KDEpOworI2Vsc2UKKwlt ZW1jcHkoYnVmLCB0ZXN0X0EsIHNpemVvZih0ZXN0X0EpKTsKKyNlbmRpZgorCS8qIFMgKGNp cGhlcnRleHQpICovCisJbWVtY3B5KGJ1ZiArIFBHX0FEX0xFTiwgZW5jciwgZW5jcmxlbik7 CisJLyogQUwgKG51bWJlciBvZiAqYml0cyogaW4gQSkgKi8KKwlhbCA9IHBnX2h0b242NChQ R19BRF9MRU4gKiA4KTsKKwltZW1jcHkoYnVmICsgUEdfQURfTEVOICsgZW5jcmxlbiwgJmFs LCBzaXplb2YoYWwpKTsKKworCS8qCisJICogQ2FsbCBNQUMKKwkgKi8KKwlpZiAoIUVWUF9E aWdlc3RTaWduSW5pdChldnBfbWRfY3R4LCBOVUxMLCBtZCwgTlVMTCwgcGtleSkpCisJewor CQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0 KCJkaWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29u X2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRlKGV2cF9t ZF9jdHgsIGJ1ZiwgYnVmc2l6ZSkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZiht c2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVz IiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOwor CQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0Rp Z2VzdFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgbWRfbGVuX3ApKQorCXsKKwkJ c25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgi ZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8g ZmFpbDsKKwl9CisJQXNzZXJ0KCptZF9sZW5fcCA9PSBtZF9oYXNoX2xlbmd0aChtZCkpOwor CisJLyogdHJ1bmNhdGUgb3V0cHV0IHRvIGhhbGYgdGhlIGxlbmd0aCwgcGVyIHNwZWMgKi8K KwkqbWRfbGVuX3AgLz0gMjsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCWZyZWUoYnVm KTsKKwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4 KTsKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogRGVjcnlwdCBhIGNvbHVtbiB2YWx1 ZQorICovCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfdmFsdWUoUEdyZXN1bHQgKnJlcywg Y29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqaW5w dXQsIGludCBpbnB1dGxlbiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCit7CisJc3RhdGljIGNo YXIgbXNnYnVmWzEwMjRdOworCisJY29uc3QgdW5zaWduZWQgY2hhciAqaXYgPSBOVUxMOwor CXNpemVfdAkJaXZsZW47CisKKwljb25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29uc3Qg RVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxMOwor CWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWl2X2tl eV9sZW47CisJaW50CQkJa2V5X2xlbjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5 OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hY19rZXk7CisJdW5zaWduZWQgY2hhciBtZF92 YWx1ZVtFVlBfTUFYX01EX1NJWkVdOworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3Zh bHVlKTsKKwlzaXplX3QJCWJ1ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsK Kwl1bnNpZ25lZCBjaGFyICpkZWNyOworCWludAkJCWRlY3JsZW4sCisJCQkJZGVjcmxlbjI7 CisKKwl1bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2Vr YWxnX3RvX29wZW5zc2xfY2lwaGVyKGNla2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlz bnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1 bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0gaWRlbnRpZmllcjogJWQiKSwgY2Vr YWxnKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwltZCA9 IHBnX2Nla2FsZ190b19vcGVuc3NsX21kKGNla2FsZyk7CisJaWYgKCFtZCkKKwl7CisJCXNu cHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoInVu cmVjb2duaXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX2NpcGhl cl9jdHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKworCWlmICghRVZQX0RlY3J5cHRJbml0 X2V4KGV2cF9jaXBoZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5VTEwsIE5VTEwpKQorCXsKKwkJ c25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgi ZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFz b25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1 ZjsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9DVFhf a2V5X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBpdl9rZXlfbGVu ID0gbWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tl eV9sZW4gKyBpdl9rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVu KQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFf Z2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IGhhcyB3cm9uZyBsZW5ndGggZm9yIGFs Z29yaXRobSAoaGFzOiAlenUsIHJlcXVpcmVkOiAlZCkiKSwKKwkJCQkgY2VrLT5jZWtkYXRh bGVuLCBrZXlfbGVuKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9 CisKKwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCWVuY19rZXkgPSBjZWstPmNla2RhdGEg KyBtYWNfa2V5X2xlbjsKKworCWlmICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19r ZXksIG1hY19rZXlfbGVuLAorCQkJCQkJCSAgaW5wdXQsIGlucHV0bGVuIC0gKG1kX2hhc2hf bGVuZ3RoKG1kKSAvIDIpLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9sZW4sCisJCQkJCQkJ ICBlcnJtc2dwKSkKKwl7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiB1c2UgY29uc3RhbnQt dGltZSBjb21wYXJpc29uLCBwZXIgbWNncmV3IHBhcGVyICovCisJaWYgKENSWVBUT19tZW1j bXAoaW5wdXQgKyAoaW5wdXRsZW4gLSBtZF9sZW4pLCBtZF92YWx1ZSwgbWRfbGVuKSAhPSAw KQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJNQUMgbWlzbWF0Y2giKTsKKwkJ Z290byBmYWlsOworCX0KKworCWl2bGVuID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2 cF9jaXBoZXJfY3R4KTsKKwlpdiA9IGlucHV0OworCWlucHV0ICs9IGl2bGVuOworCWlucHV0 bGVuIC09IGl2bGVuOworCWlmICghRVZQX0RlY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4 LCBOVUxMLCBOVUxMLCBlbmNfa2V5LCBpdikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNp emVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxp emF0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJ fQorCisJYnVmc2l6ZSA9IGlucHV0bGVuICsgRVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShl dnBfY2lwaGVyX2N0eCkgKyAxOworCWJ1ZiA9IHBxUmVzdWx0QWxsb2MocmVzLCBidWZzaXpl LCBmYWxzZSk7CisJaWYgKCFidWYpCisJeworCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQo Im91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwlkZWNyID0gYnVmOworCWlm ICghRVZQX0RlY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGRlY3IsICZkZWNybGVuLCBp bnB1dCwgaW5wdXRsZW4gLSBtZF9sZW4pKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXpl b2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVz IiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOwor CQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9EZWNy eXB0RmluYWxfZXgoZXZwX2NpcGhlcl9jdHgsIGRlY3IgKyBkZWNybGVuLCAmZGVjcmxlbjIp KQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFf Z2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJy b3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJ Z290byBmYWlsOworCX0KKwlkZWNybGVuICs9IGRlY3JsZW4yOworCUFzc2VydChkZWNybGVu IDwgYnVmc2l6ZSk7CisJZGVjcltkZWNybGVuXSA9ICdcMCc7CisJcmVzdWx0ID0gZGVjcjsK KworZmFpbDoKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJfY3R4KTsKKworCXJl dHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBDb21wdXRlIGEgc3ludGhldGljIGluaXRpYWxp emF0aW9uIHZlY3RvciAoU0lWKSwgZm9yIGRldGVybWluaXN0aWMKKyAqIGVuY3J5cHRpb24u CisgKgorICogUGVyIHByb3RvY29sIHNwZWNpZmljYXRpb24sIHRoZSBTSVYgaXMgY29tcHV0 ZWQgYXM6CisgKgorICogU1VCU1RSSU5HKEhNQUMoSywgUCkgRk9SIElWTEVOKQorICovCisj aWZuZGVmIFRFU1RfRU5DUllQVAorc3RhdGljIGJvb2wKK21ha2Vfc2l2KFBHY29ubiAqY29u biwKKwkJIHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZsZW4sCisJCSBjb25zdCBFVlBf TUQgKm1kLAorCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5LCBpbnQgaXZfa2V5X2xl biwKKwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBsYWludGV4dCwgaW50IHBsYWludGV4dF9s ZW4pCit7CisJRVZQX01EX0NUWCAqZXZwX21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAq cGtleSA9IE5VTEw7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVd OworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlib29sCQlyZXN1bHQg PSBmYWxzZTsKKworCWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9 IEVWUF9QS0VZX25ld19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgaXZf a2V5LCBpdl9rZXlfbGVuKTsKKwlpZiAoIXBrZXkpCisJeworCQlsaWJwcV9hcHBlbmRfY29u bl9lcnJvcihjb25uLCAiY291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiLAor CQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJ Z290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgs IE5VTEwsIG1kLCBOVUxMLCBwa2V5KSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJkaWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVS Ul9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7 CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBwbGFpbnRl eHQsIHBsYWludGV4dF9sZW4pKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29u biwgImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlm ICghRVZQX0RpZ2VzdFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgJm1kX2xlbikp CisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZGlnZXN0IHNpZ25pbmcg ZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydChtZF9sZW4gPT0gbWRfaGFz aF9sZW5ndGgobWQpKTsKKwltZW1jcHkoaXYsIG1kX3ZhbHVlLCBpdmxlbik7CisKKwlyZXN1 bHQgPSB0cnVlOworZmFpbDoKKwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhf ZnJlZShldnBfbWRfY3R4KTsKKwlyZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCQkJCQkJCS8q IFRFU1RfRU5DUllQVCAqLworCisvKgorICogRW5jcnlwdCBhIGNvbHVtbiB2YWx1ZQorICov Cit1bnNpZ25lZCBjaGFyICoKK2VuY3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQ R0NFSyAqY2VrLCBpbnQgY2VrYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50 ICpuYnl0ZXNwLCBib29sIGVuY19kZXQpCit7CisJaW50CQkJbmJ5dGVzID0gKm5ieXRlc3A7 CisJdW5zaWduZWQgY2hhciBpdltFVlBfTUFYX0lWX0xFTkdUSF07CisJc2l6ZV90CQlpdmxl bjsKKwljb25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlF VlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlf bGVuOworCWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWl2X2tleV9sZW47CisJaW50CQkJ a2V5X2xlbjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVuc2ln bmVkIGNoYXIgKm1hY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5OworCXNp emVfdAkJYnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVk IGNoYXIgKmVuY3I7CisJaW50CQkJZW5jcmxlbiwKKwkJCQllbmNybGVuMjsKKworCWNvbnN0 IGNoYXIgKmVycm1zZzsKKwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0la RV07CisJc2l6ZV90CQltZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVm MnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmMiA9IE5VTEw7CisKKwl1bnNpZ25lZCBjaGFy ICpyZXN1bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lw aGVyKGNla2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZp ZXI6ICVkIiwgY2VrYWxnKTsKKwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxn X3RvX29wZW5zc2xfbWQoY2VrYWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJbGlicHFfYXBwZW5k X2Nvbm5fZXJyb3IoY29ubiwgInVucmVjb2duaXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50 aWZpZXI6ICVkIiwgY2VrYWxnKTsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJf Y3R4ID0gRVZQX0NJUEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9l eChldnBfY2lwaGVyX2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCWxp YnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9u IGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0 X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJ UEhFUl9DVFhfa2V5X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBp dl9rZXlfbGVuID0gbWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVu ICsgZW5jX2tleV9sZW4gKyBpdl9rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAh PSBrZXlfbGVuKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVt biBlbmNyeXB0aW9uIGtleSBoYXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczog JXp1LCByZXF1aXJlZDogJWQpIiwKKwkJCQkJCQkJY2VrLT5jZWtkYXRhbGVuLCBrZXlfbGVu KTsKKwkJZ290byBmYWlsOworCX0KKworCW1hY19rZXkgPSBjZWstPmNla2RhdGE7CisJZW5j X2tleSA9IGNlay0+Y2VrZGF0YSArIG1hY19rZXlfbGVuOworCWl2X2tleSA9IGNlay0+Y2Vr ZGF0YSArIG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpdmxlbiA9IEVWUF9DSVBI RVJfQ1RYX2l2X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJQXNzZXJ0KGl2bGVuIDw9IHNp emVvZihpdikpOworCWlmIChlbmNfZGV0KQorCXsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJ CW1ha2Vfc2l2KGNvbm4sIGl2LCBpdmxlbiwgbWQsIGl2X2tleSwgaXZfa2V5X2xlbiwgdmFs dWUsIG5ieXRlcyk7CisjZWxzZQorCQkodm9pZCkgaXZfa2V5OwkJCS8qIHVudXNlZCAqLwor CQltZW1jcHkoaXYsIHRlc3RfSVYsIGl2bGVuKTsKKyNlbmRpZgorCX0KKwllbHNlCisJCXBn X3N0cm9uZ19yYW5kb20oaXYsIGl2bGVuKTsKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChl dnBfY2lwaGVyX2N0eCwgTlVMTCwgTlVMTCwgZW5jX2tleSwgaXYpKQorCXsKKwkJbGlicHFf YXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVuY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFp bGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJy b3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IGl2bGVuICsgKG5ieXRl cyArIDIgKiBFVlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9jaXBoZXJfY3R4KSAtIDEp OworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCWxpYnBxX2Fw cGVuZF9jb25uX2Vycm9yKGNvbm4sICJvdXQgb2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsK Kwl9CisJbWVtY3B5KGJ1ZiwgaXYsIGl2bGVuKTsKKwllbmNyID0gYnVmICsgaXZsZW47CisJ aWYgKCFFVlBfRW5jcnlwdFVwZGF0ZShldnBfY2lwaGVyX2N0eCwgZW5jciwgJmVuY3JsZW4s IHZhbHVlLCBuYnl0ZXMpKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg ImVuY3J5cHRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCWlmICghRVZQX0Vu Y3J5cHRGaW5hbF9leChldnBfY2lwaGVyX2N0eCwgZW5jciArIGVuY3JsZW4sICZlbmNybGVu MikpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZW5jcnlwdGlvbiBm YWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJZW5jcmxlbiArPSBlbmNybGVuMjsKKwor CWVuY3IgLT0gaXZsZW47CisJZW5jcmxlbiArPSBpdmxlbjsKKworCUFzc2VydChlbmNybGVu IDw9IGJ1ZnNpemUpOworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tl eSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBlbmNyLCBlbmNybGVuLAorCQkJCQkJCSAgbWRf dmFsdWUsICZtZF9sZW4sCisJCQkJCQkJICAmZXJybXNnKSkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsICIlc1xuIiwgZXJybXNnKTsKKwkJZ290byBm YWlsOworCX0KKworCWJ1ZjJzaXplID0gZW5jcmxlbiArIG1kX2xlbjsKKwlidWYyID0gbWFs bG9jKGJ1ZjJzaXplKTsKKwlpZiAoIWJ1ZjIpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorCW1lbWNw eShidWYyLCBlbmNyLCBlbmNybGVuKTsKKwltZW1jcHkoYnVmMiArIGVuY3JsZW4sIG1kX3Zh bHVlLCBtZF9sZW4pOworCisJcmVzdWx0ID0gYnVmMjsKKwluYnl0ZXMgPSBidWYyc2l6ZTsK KworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX0NJUEhFUl9DVFhfZnJlZShldnBfY2lwaGVy X2N0eCk7CisKKwkqbmJ5dGVzcCA9IG5ieXRlczsKKwlyZXR1cm4gcmVzdWx0OworfQorCisK Ky8qCisgKiBSdW4gdGVzdCBjYXNlcworICovCisjaWZkZWYgVEVTVF9FTkNSWVBUCisKK3N0 YXRpYyB2b2lkCitkZWJ1Z19wcmludF9oZXgoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgdW5z aWduZWQgY2hhciAqdmFsLCBpbnQgbGVuKQoreworCXByaW50ZigiJXMgPSIsIG5hbWUpOwor CWZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspCisJeworCQlpZiAoaSAlIDE2ID09IDAp CisJCQlwcmludGYoIlxuIik7CisJCWVsc2UKKwkJCXByaW50ZigiICIpOworCQlwcmludGYo IiUwMngiLCB2YWxbaV0pOworCX0KKwlwcmludGYoIlxuIik7Cit9CisKKy8qCisgKiBLIGFu ZCBQIGFyZSBmcm9tIHRoZSBtY2dyZXcgcGFwZXIsIEtfbGVuIGFuZCBQX2xlbiBhcmUgdGhl aXIgcmVzcGVjdGl2ZQorICogbGVuZ3Rocy4gIGVuY3J5cHRfdmFsdWUoKSByZXF1aXJlcyB0 aGUga2V5IGxlbmd0aCB0byBjb250YWluIHRoZSBJViBrZXksIHNvCisgKiB3ZSBwYXNzIGl0 IGhlcmUsIHRvbywgYnV0IGl0IHdpbGwgbm90IGJlIHVzZWQuCisgKi8KK3N0YXRpYyB2b2lk Cit0ZXN0X2Nhc2UoaW50IGFsZywgY29uc3QgdW5zaWduZWQgY2hhciAqSywgc2l6ZV90IEtf bGVuLCBzaXplX3QgSVZfa2V5X2xlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqUCwgc2l6ZV90 IFBfbGVuKQoreworCXVuc2lnbmVkIGNoYXIgKkM7CisJaW50CQkJbmJ5dGVzOworCVBHQ0VL CQljZWs7CisKKwluYnl0ZXMgPSBQX2xlbjsKKwljZWsuY2VrZGF0YWxlbiA9IEtfbGVuICsg SVZfa2V5X2xlbjsKKwljZWsuY2VrZGF0YSA9IG1hbGxvYyhjZWsuY2VrZGF0YWxlbik7CisJ bWVtY3B5KGNlay5jZWtkYXRhLCBLLCBLX2xlbik7CisKKwlDID0gZW5jcnlwdF92YWx1ZShO VUxMLCAmY2VrLCBhbGcsIFAsICZuYnl0ZXMsIHRydWUpOworCWRlYnVnX3ByaW50X2hleCgi QyIsIEMsIG5ieXRlcyk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Cit7CisJcHJpbnRmKCI1LjFcbiIpOworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMTI4 X0NCQ19ITUFDX1NIQV8yNTYsIEssIDMyLCAxNiwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYo IjUuMlxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hB XzM4NCwgSywgNDgsIDI0LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS4zXG4iKTsKKwl0 ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0LCBLLCA1Niwg MjQsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjRcbiIpOworCXRlc3RfY2FzZShQR19D RUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTIsIEssIDY0LCAzMiwgUCwgc2l6ZW9m KFApKTsKKworCXJldHVybiAwOworfQorCisjZW5kaWYJCQkJCQkJLyogVEVTVF9FTkNSWVBU ICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmggYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjI1MmQyNzE0MzZjCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGZlLWVuY3J5cHQuaAorICoKKyAqIGNsaWVudC1z aWRlIGNvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnQKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2lmbmRlZiBGRV9FTkNSWVBUX0gKKyNkZWZpbmUgRkVfRU5DUllQVF9ICisK KyNpbmNsdWRlICJsaWJwcS1mZS5oIgorI2luY2x1ZGUgImxpYnBxLWludC5oIgorCitleHRl cm4gdW5zaWduZWQgY2hhciAqZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwg Y29uc3QgY2hhciAqY21rZmlsZW5hbWUsIGludCBjbWthbGcsCisJCQkJCQkJCQkJCWludCBm cm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkJCQkJCQlpbnQgKnRv bGVuKTsKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmRlY3J5cHRfdmFsdWUoUEdyZXN1bHQg KnJlcywgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCisJCQkJCQkJCQljb25zdCBjaGFy ICoqZXJybXNncCk7CisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICplbmNyeXB0X3ZhbHVlKFBH Y29ubiAqY29ubiwgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNv bnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlLCBpbnQgKm5ieXRlc3AsIGJvb2wgZW5jX2RldCk7 CisKKyNlbmRpZgkJCQkJCQkvKiBGRV9FTkNSWVBUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4 ZWMuYwppbmRleCA3YmRmYzRjMjFhYS4uZmMxZDVmZTM5ZDggMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1leGVjLmMKQEAgLTI0LDYgKzI0LDggQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRp ZgogCisjaW5jbHVkZSAiY29tbW9uL2NvbGVuYy5oIgorI2luY2x1ZGUgImZlLWVuY3J5cHQu aCIKICNpbmNsdWRlICJsaWJwcS1mZS5oIgogI2luY2x1ZGUgImxpYnBxLWludC5oIgogI2lu Y2x1ZGUgIm1iL3BnX3djaGFyLmgiCkBAIC03Myw3ICs3NSw4IEBAIHN0YXRpYyBpbnQJUFFz ZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQkJCQljb25zdCBjaGFyICpjb25zdCAq cGFyYW1WYWx1ZXMsCiAJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJ Y29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCi0JCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CisJ CQkJCQkJaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKTsK IHN0YXRpYyB2b2lkIHBhcnNlSW5wdXQoUEdjb25uICpjb25uKTsKIHN0YXRpYyBQR3Jlc3Vs dCAqZ2V0Q29weVJlc3VsdChQR2Nvbm4gKmNvbm4sIEV4ZWNTdGF0dXNUeXBlIGNvcHl0eXBl KTsKIHN0YXRpYyBib29sIFBRZXhlY1N0YXJ0KFBHY29ubiAqY29ubik7CkBAIC0xMTkyLDYg KzExOTUsNDIxIEBAIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4sIGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogCX0KIH0KIAorLyoKKyAqIHBxU2F2 ZUNvbHVtbk1hc3RlcktleSAtIHNhdmUgY29sdW1uIG1hc3RlciBrZXkgc2VudCBieSBiYWNr ZW5kCisgKi8KK2ludAorcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwgaW50 IGtleWlkLCBjb25zdCBjaGFyICprZXluYW1lLAorCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJl YWxtKQoreworCWNoYXIJICAgKmtleW5hbWVfY29weTsKKwljaGFyCSAgICprZXlyZWFsbV9j b3B5OworCWJvb2wJCWZvdW5kOworCisJa2V5bmFtZV9jb3B5ID0gc3RyZHVwKGtleW5hbWUp OworCWlmICgha2V5bmFtZV9jb3B5KQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtX2NvcHkg PSBzdHJkdXAoa2V5cmVhbG0pOworCWlmICgha2V5cmVhbG1fY29weSkKKwl7CisJCWZyZWUo a2V5bmFtZV9jb3B5KTsKKwkJcmV0dXJuIEVPRjsKKwl9CisKKwlmb3VuZCA9IGZhbHNlOwor CWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCXN0cnVjdCBw Z19jbWsgKmNoZWNrY21rID0gJmNvbm4tPmNta3NbaV07CisKKwkJLyogcmVwbGFjZSBleGlz dGluZz8gKi8KKwkJaWYgKGNoZWNrY21rLT5jbWtpZCA9PSBrZXlpZCkKKwkJeworCQkJZnJl ZShjaGVja2Ntay0+Y21rbmFtZSk7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtyZWFsbSk7CisJ CQljaGVja2Ntay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJCWNoZWNrY21rLT5jbWty ZWFsbSA9IGtleXJlYWxtX2NvcHk7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJ fQorCX0KKworCS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWludAkJ CW5ld25jbWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWtzOworCQlzdHJ1Y3QgcGdfY21r ICpuZXdjbWs7CisKKwkJbmV3bmNta3MgPSBjb25uLT5uY21rcyArIDE7CisJCWlmIChuZXdu Y21rcyA8PSAwKQorCQkJcmV0dXJuIEVPRjsKKwkJbmV3Y21rcyA9IHJlYWxsb2MoY29ubi0+ Y21rcywgbmV3bmNta3MgKiBzaXplb2Yoc3RydWN0IHBnX2NtaykpOworCQlpZiAoIW5ld2Nt a3MpCisJCXsKKwkJCWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJCWZyZWUoa2V5cmVhbG1fY29w eSk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJbmV3Y21rID0gJm5ld2Nta3NbbmV3bmNt a3MgLSAxXTsKKwkJbmV3Y21rLT5jbWtpZCA9IGtleWlkOworCQluZXdjbWstPmNta25hbWUg PSBrZXluYW1lX2NvcHk7CisJCW5ld2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5Owor CisJCWNvbm4tPm5jbWtzID0gbmV3bmNta3M7CisJCWNvbm4tPmNta3MgPSBuZXdjbWtzOwor CX0KKworCXJldHVybiAwOworfQorCisvKgorICogUmVwbGFjZSBwbGFjZWhvbGRlcnMgaW4g aW5wdXQgc3RyaW5nLiAgUmV0dXJuIHZhbHVlIG1hbGxvYydlZC4KKyAqLworc3RhdGljIGNo YXIgKgorcmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKGNvbnN0IGNoYXIgKmluLCBjb25zdCBj aGFyICpjbWtuYW1lLCBjb25zdCBjaGFyICpjbWtyZWFsbSwgaW50IGNta2FsZywgY29uc3Qg Y2hhciAqdG1wZmlsZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCisJaW5pdFBRRXhw QnVmZmVyKCZidWYpOworCisJZm9yIChjb25zdCBjaGFyICpwID0gaW47ICpwOyBwKyspCisJ eworCQlpZiAocFswXSA9PSAnJScpCisJCXsKKwkJCXN3aXRjaCAocFsxXSkKKwkJCXsKKwkJ CQljYXNlICdhJzoKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqcyA9IGdldF9jbWthbGdf bmFtZShjbWthbGcpOworCisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBzID8g cyA6ICJJTlZBTElEIik7CisJCQkJCX0KKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQlj YXNlICdqJzoKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqcyA9IGdldF9jbWthbGdfandh X25hbWUoY21rYWxnKTsKKworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgcyA/ IHMgOiAiSU5WQUxJRCIpOworCQkJCQl9CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJ Y2FzZSAnayc6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta25hbWUpOwor CQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3AnOgorCQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmYnVmLCB0bXBmaWxlKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJ CQljYXNlICdyJzoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY21rcmVhbG0p OworCQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWFwcGVuZFBR RXhwQnVmZmVyQ2hhcigmYnVmLCBwWzBdKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlhcHBl bmRQUUV4cEJ1ZmZlckNoYXIoJmJ1ZiwgcFswXSk7CisJfQorCisJcmV0dXJuIGJ1Zi5kYXRh OworfQorCisjaWZuZGVmIFVTRV9TU0wKKy8qCisgKiBEdW1teSBpbXBsZW1lbnRhdGlvbiBm b3Igbm9uLVNTTCBidWlsZHMKKyAqLwordW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2Nla19m cm9tX2ZpbGUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpjbWtmaWxlbmFtZSwgaW50IGNt a2FsZywKKwkJCQkJICBpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwK KwkJCQkJICBpbnQgKnRvbGVuKQoreworCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4s ICJjb2x1bW4gZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwly ZXR1cm4gTlVMTDsKK30KKyNlbmRpZgorCisvKgorICogRGVjcnlwdCBhIENFSyB1c2luZyB0 aGUgZ2l2ZW4gQ01LLiAgVGhlIGNpcGhlcnRleHQgaXMgcGFzc2VkIGluCisgKiAiZnJvbSIg YW5kICJmcm9tbGVuIi4gIFJldHVybiB0aGUgZGVjcnlwdGVkIHZhbHVlIGluIGEgbWFsbG9j J2VkIGFyZWEsIGl0cworICogbGVuZ3RoIHZpYSAidG9sZW4iLiAgUmV0dXJuIE5VTEwgb24g ZXJyb3I7IGFkZCBlcnJvciBtZXNzYWdlcyBkaXJlY3RseSB0bworICogImNvbm4iLgorICov CitzdGF0aWMgdW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2NlayhQR2Nvbm4gKmNvbm4sIGNv bnN0IFBHQ01LICpjbWssIGludCBjbWthbGcsCisJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5z aWduZWQgY2hhciAqZnJvbSwKKwkJCWludCAqdG9sZW4pCit7CisJY2hhcgkgICAqY21rbG9v a3VwOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJdW5zaWduZWQgY2hhciAqcmVzdWx0ID0g TlVMTDsKKworCWlmICghY29ubi0+Y21rbG9va3VwIHx8ICFjb25uLT5jbWtsb29rdXBbMF0p CisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY29sdW1uIG1hc3RlciBr ZXkgbG9va3VwIGlzIG5vdCBjb25maWd1cmVkIik7CisJCXJldHVybiBOVUxMOworCX0KKwor CWNta2xvb2t1cCA9IHN0cmR1cChjb25uLT5jbWtsb29rdXAgPyBjb25uLT5jbWtsb29rdXAg OiAiIik7CisKKwlpZiAoIWNta2xvb2t1cCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJvdXQgb2YgbWVtb3J5Iik7CisJCXJldHVybiBOVUxMOworCX0KKworCS8q CisJICogQW5hbHl6ZSBzZW1pY29sb24tc2VwYXJhdGVkIGxpc3QKKwkgKi8KKwlmb3IgKGNo YXIgKnMgPSBzdHJ0b2soY21rbG9va3VwLCAiOyIpOyBzOyBzID0gc3RydG9rKE5VTEwsICI7 IikpCisJeworCQljaGFyCSAgICpzZXA7CisKKwkJLyogc3BsaXQgZm91bmQgdG9rZW4gYXQg Jz0nICovCisJCXNlcCA9IHN0cmNocihzLCAnPScpOworCQlpZiAoIXNlcCkKKwkJeworCQkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInN5bnRheCBlcnJvciBpbiBDTUsgbG9v a3VwIHNwZWNpZmljYXRpb24sIG1pc3NpbmcgXCIlY1wiOiAlcyIsICc9Jywgcyk7CisJCQli cmVhazsKKwkJfQorCisJCS8qIG1hdGNoaW5nIHJlYWxtPyAqLworCQlpZiAoc3RybmNtcChz LCAiKiIsIHNlcCAtIHMpID09IDAgfHwgc3RybmNtcChzLCBjbWstPmNta3JlYWxtLCBzZXAg LSBzKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICpzZXAyOworCisJCQlmb3VuZCA9IHRydWU7 CisKKwkJCXNlcDIgPSBzdHJjaHIoc2VwLCAnOicpOworCQkJaWYgKCFzZXAyKQorCQkJewor CQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJzeW50YXggZXJyb3IgaW4gQ01L IGxvb2t1cCBzcGVjaWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXMiLCAnOicsIHMpOwor CQkJCWdvdG8gZmFpbDsKKwkJCX0KKworCQkJaWYgKHN0cm5jbXAoc2VwICsgMSwgImZpbGUi LCBzZXAyIC0gKHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJICAgKmNta2ZpbGVu YW1lOworCisJCQkJY21rZmlsZW5hbWUgPSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2Vw MiArIDEsIGNtay0+Y21rbmFtZSwgY21rLT5jbWtyZWFsbSwgY21rYWxnLCAiSU5WQUxJRCIp OworCQkJCXJlc3VsdCA9IGRlY3J5cHRfY2VrX2Zyb21fZmlsZShjb25uLCBjbWtmaWxlbmFt ZSwgY21rYWxnLCBmcm9tbGVuLCBmcm9tLCB0b2xlbik7CisJCQkJZnJlZShjbWtmaWxlbmFt ZSk7CisJCQl9CisJCQllbHNlIGlmIChzdHJuY21wKHNlcCArIDEsICJydW4iLCBzZXAyIC0g KHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJCXRtcGZpbGVbTUFYUEdQQVRIXSA9 IHswfTsKKwkJCQlpbnQJCQlmZDsKKwkJCQljaGFyCSAgICpjb21tYW5kOworCQkJCUZJTEUJ ICAgKmZwOworCisJCQkJLyogb25seSBuZWVkcyBlbm91Z2ggcm9vbSBmb3IgQ0VLIGtleSBt YXRlcmlhbCAqLworCQkJCWNoYXIJCWJ1ZlsxMDI0XTsKKwkJCQlzaXplX3QJCW5yZWFkOwor CQkJCWludAkJCXJjOworCisjaWZuZGVmIFdJTjMyCisJCQkJeworCQkJCQljb25zdCBjaGFy ICp0bXBkaXI7CisKKwkJCQkJdG1wZGlyID0gZ2V0ZW52KCJUTVBESVIiKTsKKwkJCQkJaWYg KCF0bXBkaXIpCisJCQkJCQl0bXBkaXIgPSAiL3RtcCI7CisJCQkJCXN0cmxjcHkodG1wZmls ZSwgdG1wZGlyLCBzaXplb2YodG1wZmlsZSkpOworCQkJCQlzdHJsY2F0KHRtcGZpbGUsICIv bGlicHEtWFhYWFhYIiwgc2l6ZW9mKHRtcGZpbGUpKTsKKwkJCQkJZmQgPSBta3N0ZW1wKHRt cGZpbGUpOworCQkJCQlpZiAoZmQgPCAwKQorCQkJCQl7CisJCQkJCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJ1biBjcmVhdGUgdGVtcG9yYXJ5IGZpbGU6 ICVtIik7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKwkJCQl9CisjZWxzZQorCQkJCXsK KwkJCQkJY2hhcgkJdG1wZGlyW01BWFBHUEFUSF07CisJCQkJCWludAkJCXJldDsKKworCQkJ CQlyZXQgPSBHZXRUZW1wUGF0aChNQVhQR1BBVEgsIHRtcGRpcik7CisJCQkJCWlmIChyZXQg PT0gMCB8fCByZXQgPiBNQVhQR1BBVEgpCisJCQkJCXsKKwkJCQkJCWxpYnBxX2FwcGVuZF9j b25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgbG9jYXRlIHRlbXBvcmFyeSBkaXJlY3Rvcnk6 ICVzIiwKKwkJCQkJCQkJCQkJCSFyZXQgPyBzdHJlcnJvcihlcnJubykgOiAiIik7CisJCQkJ CQlyZXR1cm4gZmFsc2U7CisJCQkJCX0KKworCQkJCQlpZiAoR2V0VGVtcEZpbGVOYW1lKHRt cGRpciwgImxpYnBxIiwgMCwgdG1wZmlsZSkgPT0gMCkKKwkJCQkJeworCQkJCQkJbGlicHFf YXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBydW4gY3JlYXRlIHRlbXBvcmFy eSBmaWxlOiBlcnJvciBjb2RlICVsdSIsCisJCQkJCQkJCQkJCQlHZXRMYXN0RXJyb3IoKSk7 CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKworCQkJCQlmZCA9IG9wZW4odG1wZmlsZSwg T19XUk9OTFkgfCBPX1RSVU5DIHwgUEdfQklOQVJZLCAwKTsKKwkJCQkJaWYgKGZkIDwgMCkK KwkJCQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5v dCBydW4gb3BlbiB0ZW1wb3JhcnkgZmlsZTogJW0iKTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJ CQkJfQorCQkJCX0KKyNlbmRpZgorCQkJCWlmICh3cml0ZShmZCwgZnJvbSwgZnJvbWxlbikg PCBmcm9tbGVuKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg ImNvdWxkIG5vdCB3cml0ZSB0byB0ZW1wb3JhcnkgZmlsZTogJW0iKTsKKwkJCQkJY2xvc2Uo ZmQpOworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJ CQkJaWYgKGNsb3NlKGZkKSA8IDApCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAiY291bGQgbm90IGNsb3NlIHRlbXBvcmFyeSBmaWxlOiAlbSIpOworCQkJ CQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisKKwkJCQljb21t YW5kID0gcmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKHNlcDIgKyAxLCBjbWstPmNta25hbWUs IGNtay0+Y21rcmVhbG0sIGNta2FsZywgdG1wZmlsZSk7CisJCQkJZnAgPSBwb3Blbihjb21t YW5kLCBQR19CSU5BUllfUik7CisJCQkJaWYgKCFmcCkKKwkJCQl7CisJCQkJCWxpYnBxX2Fw cGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIGNvbW1hbmQgXCIlc1wiOiAl bSIsIGNvbW1hbmQpOworCQkJCQlmcmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1wZmls ZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJbnJlYWQgPSBmcmVhZChidWYsIDEs IHNpemVvZihidWYpLCBmcCk7CisJCQkJaWYgKGZlcnJvcihmcCkpCisJCQkJeworCQkJCQls aWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJlYWQgZnJvbSBjb21t YW5kOiAlbSIpOworCQkJCQlwY2xvc2UoZnApOworCQkJCQlmcmVlKGNvbW1hbmQpOworCQkJ CQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJZWxzZSBp ZiAoIWZlb2YoZnApKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29u biwgIm91dHB1dCBmcm9tIGNvbW1hbmQgdG9vIGxvbmciKTsKKwkJCQkJcGNsb3NlKGZwKTsK KwkJCQkJZnJlZShjb21tYW5kKTsKKwkJCQkJdW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3Rv IGZhaWw7CisJCQkJfQorCQkJCXJjID0gcGNsb3NlKGZwKTsKKwkJCQlpZiAocmMgIT0gMCkK KwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFhYWCB3b3VsZCBsaWtlIHRvIHVzZSB3YWl0X3Jl c3VsdF90b19zdHIocmMpIGJ1dCB0aGF0CisJCQkJCSAqIGNhbm5vdCBiZSBjYWxsZWQgZnJv bSBsaWJwcSBiZWNhdXNlIGl0IGNhbGxzIGV4aXQoKQorCQkJCQkgKi8KKwkJCQkJbGlicHFf YXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBydW4gY29tbWFuZCBcIiVzXCIi LCBjb21tYW5kKTsKKwkJCQkJZnJlZShjb21tYW5kKTsKKwkJCQkJdW5saW5rKHRtcGZpbGUp OworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJdW5s aW5rKHRtcGZpbGUpOworCisJCQkJcmVzdWx0ID0gbWFsbG9jKG5yZWFkKTsKKwkJCQlpZiAo IXJlc3VsdCkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJv dXQgb2YgbWVtb3J5Iik7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJbWVtY3B5KHJl c3VsdCwgYnVmLCBucmVhZCk7CisJCQkJKnRvbGVuID0gbnJlYWQ7CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIkNNSyBsb29rdXAg c2NoZW1lIFwiJXNcIiBub3QgcmVjb2duaXplZCIsIHNlcCArIDEpOworCQkJCWdvdG8gZmFp bDsKKwkJCX0KKwkJfQorCX0KKworCWlmICghZm91bmQpCisJeworCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAibm8gQ01LIGxvb2t1cCBmb3VuZCBmb3IgcmVhbG0gXCIlc1wi IiwgY21rLT5jbWtyZWFsbSk7CisJfQorCitmYWlsOgorCWZyZWUoY21rbG9va3VwKTsKKwly ZXR1cm4gcmVzdWx0OworfQorCisvKgorICogcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleSAt IHNhdmUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHNlbnQgYnkgYmFja2VuZAorICovCitpbnQK K3BxU2F2ZUNvbHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGlu dCBjbWtpZCwgaW50IGNta2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBs ZW4pCit7CisJUEdDTUsJICAgKmNtayA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqcGxhaW52 YWwgPSBOVUxMOworCWludAkJCXBsYWludmFsbGVuID0gMDsKKwlib29sCQlmb3VuZDsKKwor CWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWlmIChjb25u LT5jbWtzW2ldLmNta2lkID09IGNta2lkKQorCQl7CisJCQljbWsgPSAmY29ubi0+Y21rc1tp XTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFjbWspCisJCXJldHVybiBFT0Y7CisK KwlwbGFpbnZhbCA9IGRlY3J5cHRfY2VrKGNvbm4sIGNtaywgY21rYWxnLCBsZW4sIHZhbHVl LCAmcGxhaW52YWxsZW4pOworCWlmICghcGxhaW52YWwpCisJCXJldHVybiBFT0Y7CisKKwlm b3VuZCA9IGZhbHNlOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykK Kwl7CisJCXN0cnVjdCBwZ19jZWsgKmNoZWNrY2VrID0gJmNvbm4tPmNla3NbaV07CisKKwkJ LyogcmVwbGFjZSBleGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY2VrLT5jZWtpZCA9PSBrZXlp ZCkKKwkJeworCQkJZnJlZShjaGVja2Nlay0+Y2VrZGF0YSk7CisJCQljaGVja2Nlay0+Y2Vr ZGF0YSA9IHBsYWludmFsOworCQkJY2hlY2tjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxl bjsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5k IG5ldz8gKi8KKwlpZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNla3M7CisJCXN0cnVj dCBwZ19jZWsgKm5ld2Nla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2NlazsKKworCQluZXdu Y2VrcyA9IGNvbm4tPm5jZWtzICsgMTsKKwkJaWYgKG5ld25jZWtzIDw9IDApCisJCXsKKwkJ CWZyZWUocGxhaW52YWwpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCQluZXdjZWtzID0gcmVh bGxvYyhjb25uLT5jZWtzLCBuZXduY2VrcyAqIHNpemVvZihzdHJ1Y3QgcGdfY2VrKSk7CisJ CWlmICghbmV3Y2VrcykKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9G OworCQl9CisKKwkJbmV3Y2VrID0gJm5ld2Nla3NbbmV3bmNla3MgLSAxXTsKKwkJbmV3Y2Vr LT5jZWtpZCA9IGtleWlkOworCQluZXdjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJbmV3 Y2VrLT5jZWtkYXRhbGVuID0gcGxhaW52YWxsZW47CisKKwkJY29ubi0+bmNla3MgPSBuZXdu Y2VrczsKKwkJY29ubi0+Y2VrcyA9IG5ld2Nla3M7CisJfQorCisJcmV0dXJuIDA7Cit9CiAK IC8qCiAgKiBwcVJvd1Byb2Nlc3NvcgpAQCAtMTI2MywxMyArMTY4MSw1MSBAQCBwcVJvd1By b2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKQogCQkJYm9vbAkJ aXNiaW5hcnkgPSAocmVzLT5hdHREZXNjc1tpXS5mb3JtYXQgIT0gMCk7CiAJCQljaGFyCSAg ICp2YWw7CiAKLQkJCXZhbCA9IChjaGFyICopIHBxUmVzdWx0QWxsb2MocmVzLCBjbGVuICsg MSwgaXNiaW5hcnkpOwotCQkJaWYgKHZhbCA9PSBOVUxMKQorCQkJaWYgKHJlcy0+YXR0RGVz Y3NbaV0uY2VraWQpCisJCQl7CisJCQkJLyogZW5jcnlwdGVkIGNvbHVtbiAqLworI2lmZGVm IFVTRV9TU0wKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKworCQkJCWlmICghaXNiaW5h cnkpCisJCQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoImVuY3J5cHRlZCBj b2x1bW4gd2FzIG5vdCBzZW50IGluIGJpbmFyeSBmb3JtYXQiKTsKKwkJCQkJcmV0dXJuIDA7 CisJCQkJfQorCisJCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2VrczsgaisrKQor CQkJCXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0gcmVzLT5hdHREZXNjc1tp XS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQli cmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7CisJCQkJCSplcnJt c2dwID0gbGlicHFfZ2V0dGV4dCgicHJvdG9jb2wgZXJyb3I6IGNvbHVtbiBlbmNyeXB0aW9u IGtleSBhc3NvY2lhdGVkIHdpdGggZW5jcnlwdGVkIGNvbHVtbiB3YXMgbm90IHNlbnQgYnkg dGhlIHNlcnZlciIpOworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisKKwkJCQl2YWwgPSAoY2hh ciAqKSBkZWNyeXB0X3ZhbHVlKHJlcywgY2VrLCByZXMtPmF0dERlc2NzW2ldLmNla2FsZywK KwkJCQkJCQkJCQkJIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGNvbHVtbnNbaV0udmFsdWUs IGNsZW4sIGVycm1zZ3ApOworCQkJCWlmICh2YWwgPT0gTlVMTCkKKwkJCQkJcmV0dXJuIDA7 CisjZWxzZQorCQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRp b24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CiAJCQkJcmV0dXJuIDA7CisjZW5k aWYKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQl2YWwgPSAoY2hhciAqKSBwcVJlc3VsdEFs bG9jKHJlcywgY2xlbiArIDEsIGlzYmluYXJ5KTsKKwkJCQlpZiAodmFsID09IE5VTEwpCisJ CQkJCXJldHVybiAwOwogCi0JCQkvKiBjb3B5IGFuZCB6ZXJvLXRlcm1pbmF0ZSB0aGUgZGF0 YSAoZXZlbiBpZiBpdCdzIGJpbmFyeSkgKi8KLQkJCW1lbWNweSh2YWwsIGNvbHVtbnNbaV0u dmFsdWUsIGNsZW4pOwotCQkJdmFsW2NsZW5dID0gJ1wwJzsKKwkJCQkvKiBjb3B5IGFuZCB6 ZXJvLXRlcm1pbmF0ZSB0aGUgZGF0YSAoZXZlbiBpZiBpdCdzIGJpbmFyeSkgKi8KKwkJCQlt ZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuKTsKKwkJCQl2YWxbY2xlbl0gPSAn XDAnOworCQkJfQogCiAJCQl0dXBbaV0ubGVuID0gY2xlbjsKIAkJCXR1cFtpXS52YWx1ZSA9 IHZhbDsKQEAgLTE0OTgsNiArMTk1NCw4IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBHY29ubiAq Y29ubiwKIAkJCQkgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCSAgaW50IHJlc3Vs dEZvcm1hdCkKIHsKKwlQR3Jlc3VsdCAgICpwYXJhbURlc2MgPSBOVUxMOworCiAJaWYgKCFQ UXNlbmRRdWVyeVN0YXJ0KGNvbm4sIHRydWUpKQogCQlyZXR1cm4gMDsKIApAQCAtMTUxNCw2 ICsxOTcyLDM3IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBHY29ubiAqY29ubiwKIAkJcmV0dXJu IDA7CiAJfQogCisJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJewor CQlQR3Jlc3VsdCAgICpyZXM7CisJCWJvb2wJCWVycm9yOworCisJCWlmIChjb25uLT5waXBl bGluZVN0YXR1cyAhPSBQUV9QSVBFTElORV9PRkYpCisJCXsKKwkJCWxpYnBxX2FwcGVuZF9j b25uX2Vycm9yKGNvbm4sICJzeW5jaHJvbm91cyBjb21tYW5kIGV4ZWN1dGlvbiBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIHBpcGVsaW5lIG1vZGUiKTsKKwkJCXJldHVybiAwOwor CQl9CisKKwkJaWYgKCFQUXNlbmRQcmVwYXJlKGNvbm4sICIiLCBjb21tYW5kLCBuUGFyYW1z LCBwYXJhbVR5cGVzKSkKKwkJCXJldHVybiAwOworCQllcnJvciA9IGZhbHNlOworCQl3aGls ZSAoKHJlcyA9IFBRZ2V0UmVzdWx0KGNvbm4pKSAhPSBOVUxMKQorCQl7CisJCQlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCQkJCWVycm9yID0gdHJ1 ZTsKKwkJCVBRY2xlYXIocmVzKTsKKwkJfQorCQlpZiAoZXJyb3IpCisJCQlyZXR1cm4gMDsK KworCQlwYXJhbURlc2MgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCQlpZiAo UFFyZXN1bHRTdGF0dXMocGFyYW1EZXNjKSAhPSBQR1JFU19DT01NQU5EX09LKQorCQkJcmV0 dXJuIDA7CisKKwkJY29tbWFuZCA9IE5VTEw7CisJCXBhcmFtVHlwZXMgPSBOVUxMOworCX0K KwogCXJldHVybiBQUXNlbmRRdWVyeUd1dHMoY29ubiwKIAkJCQkJCSAgIGNvbW1hbmQsCiAJ CQkJCQkgICAiIiwJLyogdXNlIHVubmFtZWQgc3RhdGVtZW50ICovCkBAIC0xNTIyLDcgKzIw MTEsOCBAQCBQUXNlbmRRdWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4sCiAJCQkJCQkgICBwYXJh bVZhbHVlcywKIAkJCQkJCSAgIHBhcmFtTGVuZ3RocywKIAkJCQkJCSAgIHBhcmFtRm9ybWF0 cywKLQkJCQkJCSAgIHJlc3VsdEZvcm1hdCk7CisJCQkJCQkgICByZXN1bHRGb3JtYXQsCisJ CQkJCQkgICBwYXJhbURlc2MpOwogfQogCiAvKgpAQCAtMTYzNyw2ICsyMTI3LDI0IEBAIFBR c2VuZFF1ZXJ5UHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJCQljb25zdCBpbnQgKnBhcmFt TGVuZ3RocywKIAkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCWludCByZXN1 bHRGb3JtYXQpCit7CisJcmV0dXJuIFBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoY29u biwgc3RtdE5hbWUsIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsIHBhcmFt Rm9ybWF0cywgcmVzdWx0Rm9ybWF0LCBOVUxMKTsKK30KKworLyoKKyAqIFBRc2VuZFF1ZXJ5 UHJlcGFyZWREZXNjcmliZWQKKyAqCQlMaWtlIFBRc2VuZFF1ZXJ5UHJlcGFyZWQsIGJ1dCB3 aXRoIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcworICoJCXBhcmFtZXRlciBkZXNjcmlw dGlvbnMsIGZvciBjb2x1bW4gZW5jcnlwdGlvbi4KKyAqLworaW50CitQUXNlbmRRdWVyeVBy ZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKwkJCQkJCQkgY29uc3QgY2hhciAqc3Rt dE5hbWUsCisJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkJCSBjb25zdCBjaGFyICpjb25z dCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJ CQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCQkgaW50IHJlc3VsdEZvcm1h dCwKKwkJCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRc2VuZFF1ZXJ5 U3RhcnQoY29ubiwgdHJ1ZSkpCiAJCXJldHVybiAwOwpAQCAtMTY2Miw3ICsyMTcwLDggQEAg UFFzZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkgICBwYXJhbVZhbHVl cywKIAkJCQkJCSAgIHBhcmFtTGVuZ3RocywKIAkJCQkJCSAgIHBhcmFtRm9ybWF0cywKLQkJ CQkJCSAgIHJlc3VsdEZvcm1hdCk7CisJCQkJCQkgICByZXN1bHRGb3JtYXQsCisJCQkJCQkg ICBwYXJhbURlc2MpOwogfQogCiAvKgpAQCAtMTc2Miw3ICsyMjcxLDggQEAgUFFzZW5kUXVl cnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQljb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1 ZXMsCiAJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJY29uc3QgaW50ICpwYXJh bUZvcm1hdHMsCi0JCQkJaW50IHJlc3VsdEZvcm1hdCkKKwkJCQlpbnQgcmVzdWx0Rm9ybWF0 LAorCQkJCVBHcmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaW50CQkJaTsKIAlQR2NtZFF1ZXVl RW50cnkgKmVudHJ5OwpAQCAtMTgxMCwxMyArMjMyMCw0NyBAQCBQUXNlbmRRdWVyeUd1dHMo UEdjb25uICpjb25uLAogCQlnb3RvIHNlbmRGYWlsZWQ7CiAKIAkvKiBTZW5kIHBhcmFtZXRl ciBmb3JtYXRzICovCi0JaWYgKG5QYXJhbXMgPiAwICYmIHBhcmFtRm9ybWF0cykKKwlpZiAo blBhcmFtcyA+IDAgJiYgKHBhcmFtRm9ybWF0cyB8fCAocGFyYW1EZXNjICYmIHBhcmFtRGVz Yy0+cGFyYW1EZXNjcykpKQogCXsKIAkJaWYgKHBxUHV0SW50KG5QYXJhbXMsIDIsIGNvbm4p IDwgMCkKIAkJCWdvdG8gc2VuZEZhaWxlZDsKKwogCQlmb3IgKGkgPSAwOyBpIDwgblBhcmFt czsgaSsrKQogCQl7Ci0JCQlpZiAocHFQdXRJbnQocGFyYW1Gb3JtYXRzW2ldLCAyLCBjb25u KSA8IDApCisJCQlpbnQJCQlmb3JtYXQgPSBwYXJhbUZvcm1hdHMgPyBwYXJhbUZvcm1hdHNb aV0gOiAwOworCisJCQkvKiBDaGVjayBmb3JjZSBjb2x1bW4gZW5jcnlwdGlvbiAqLworCQkJ aWYgKGZvcm1hdCAmIDB4MTApCisJCQl7CisJCQkJaWYgKCEocGFyYW1EZXNjICYmCisJCQkJ CSAgcGFyYW1EZXNjLT5wYXJhbURlc2NzICYmCisJCQkJCSAgcGFyYW1EZXNjLT5wYXJhbURl c2NzW2ldLmNla2lkKSkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sICJwYXJhbWV0ZXIgd2l0aCBmb3JjZWQgZW5jcnlwdGlvbiBpcyBub3QgdG8gYmUgZW5j cnlwdGVkIik7CisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCQl9CisJCQl9CisJCQlmb3Jt YXQgJj0gfjB4MTA7CisKKwkJCWlmIChwYXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURl c2NzKQorCQkJeworCQkJCVBHcmVzUGFyYW1EZXNjICpwZCA9ICZwYXJhbURlc2MtPnBhcmFt RGVzY3NbaV07CisKKwkJCQlpZiAocGQtPmNla2lkKQorCQkJCXsKKwkJCQkJaWYgKGZvcm1h dCAhPSAwKQorCQkJCQl7CisJCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAi Zm9ybWF0IG11c3QgYmUgdGV4dCBmb3IgZW5jcnlwdGVkIHBhcmFtZXRlciIpOworCQkJCQkJ Z290byBzZW5kRmFpbGVkOworCQkJCQl9CisJCQkJCS8qIFNlbmQgZW5jcnlwdGVkIHZhbHVl IGluIGJpbmFyeSAqLworCQkJCQlmb3JtYXQgPSAxOworCQkJCQkvKiBBbmQgbWFyayBpdCBh cyBlbmNyeXB0ZWQgKi8KKwkJCQkJZm9ybWF0IHw9IDB4MTA7CisJCQkJfQorCQkJfQorCisJ CQlpZiAocHFQdXRJbnQoZm9ybWF0LCAyLCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5kRmFp bGVkOwogCQl9CiAJfQpAQCAtMTgzNSw4ICsyMzc5LDkgQEAgUFFzZW5kUXVlcnlHdXRzKFBH Y29ubiAqY29ubiwKIAkJaWYgKHBhcmFtVmFsdWVzICYmIHBhcmFtVmFsdWVzW2ldKQogCQl7 CiAJCQlpbnQJCQluYnl0ZXM7CisJCQljb25zdCBjaGFyICpwYXJhbVZhbHVlOwogCi0JCQlp ZiAocGFyYW1Gb3JtYXRzICYmIHBhcmFtRm9ybWF0c1tpXSAhPSAwKQorCQkJaWYgKHBhcmFt Rm9ybWF0cyAmJiAocGFyYW1Gb3JtYXRzW2ldICYgMHgwMSkgIT0gMCkKIAkJCXsKIAkJCQkv KiBiaW5hcnkgcGFyYW1ldGVyICovCiAJCQkJaWYgKHBhcmFtTGVuZ3RocykKQEAgLTE4NTIs OSArMjM5Nyw1MyBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCS8qIHRl eHQgcGFyYW1ldGVyLCBkbyBub3QgdXNlIHBhcmFtTGVuZ3RocyAqLwogCQkJCW5ieXRlcyA9 IHN0cmxlbihwYXJhbVZhbHVlc1tpXSk7CiAJCQl9Ci0JCQlpZiAocHFQdXRJbnQobmJ5dGVz LCA0LCBjb25uKSA8IDAgfHwKLQkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWVzW2ldLCBuYnl0 ZXMsIGNvbm4pIDwgMCkKKworCQkJcGFyYW1WYWx1ZSA9IHBhcmFtVmFsdWVzW2ldOworCisJ CQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjcyAmJiBwYXJhbURlc2Mt PnBhcmFtRGVzY3NbaV0uY2VraWQpCisJCQl7CisJCQkJLyogZW5jcnlwdGVkIGNvbHVtbiAq LworI2lmZGVmIFVTRV9TU0wKKwkJCQlib29sCQllbmNfZGV0ID0gKHBhcmFtRGVzYy0+cGFy YW1EZXNjc1tpXS5mbGFncyAmIDB4MDEpICE9IDA7CisJCQkJUEdDRUsJICAgKmNlayA9IE5V TEw7CisJCQkJY2hhcgkgICAqZW5jX3BhcmFtVmFsdWU7CisJCQkJaW50CQkJZW5jX25ieXRl cyA9IG5ieXRlczsKKworCQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29ubi0+bmNla3M7IGor KykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lkID09IHBhcmFtRGVzYy0+ cGFyYW1EZXNjc1tpXS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNla3Nb al07CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7 CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJwcm90b2NvbCBlcnJvcjog Y29sdW1uIGVuY3J5cHRpb24ga2V5IGFzc29jaWF0ZWQgd2l0aCBlbmNyeXB0ZWQgcGFyYW1l dGVyIHdhcyBub3Qgc2VudCBieSB0aGUgc2VydmVyIik7CisJCQkJCWdvdG8gc2VuZEZhaWxl ZDsKKwkJCQl9CisKKwkJCQllbmNfcGFyYW1WYWx1ZSA9IChjaGFyICopIGVuY3J5cHRfdmFs dWUoY29ubiwgY2VrLCBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VrYWxnLAorCQkJCQkJ CQkJCQkJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqKSBwYXJhbVZhbHVlLCAmZW5jX25ieXRl cywgZW5jX2RldCk7CisJCQkJaWYgKCFlbmNfcGFyYW1WYWx1ZSkKKwkJCQkJZ290byBzZW5k RmFpbGVkOworCisJCQkJaWYgKHBxUHV0SW50KGVuY19uYnl0ZXMsIDQsIGNvbm4pIDwgMCB8 fAorCQkJCQlwcVB1dG5jaGFyKGVuY19wYXJhbVZhbHVlLCBlbmNfbmJ5dGVzLCBjb25uKSA8 IDApCisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKworCQkJCWZyZWUoZW5jX3BhcmFtVmFsdWUp OworI2Vsc2UKKwkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY29sdW1uIGVu Y3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CiAJCQkJZ290byBzZW5k RmFpbGVkOworI2VuZGlmCisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJaWYgKHBxUHV0SW50 KG5ieXRlcywgNCwgY29ubikgPCAwIHx8CisJCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZSwg bmJ5dGVzLCBjb25uKSA8IDApCisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCX0KIAkJfQog CQllbHNlCiAJCXsKQEAgLTIzMjcsMTIgKzI5MTYsMzEgQEAgUFFleGVjUHJlcGFyZWQoUEdj b25uICpjb25uLAogCQkJICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkgICBjb25z dCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCSAgIGludCByZXN1bHRGb3JtYXQpCit7CisJcmV0 dXJuIFBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkKGNvbm4sIHN0bXROYW1lLCBuUGFyYW1zLCBw YXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIHJlc3VsdEZvcm1hdCwg TlVMTCk7Cit9CisKKy8qCisgKiBQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZAorICoJCUxpa2Ug UFFleGVjUHJlcGFyZWQsIGJ1dCB3aXRoIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyBw YXJhbWV0ZXIKKyAqCQlkZXNjcmlwdGlvbnMsIGZvciBjb2x1bW4gZW5jcnlwdGlvbi4KKyAq LworUEdyZXN1bHQgKgorUFFleGVjUHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAor CQkJCQkJY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQlpbnQgblBhcmFtcywKKwkJCQkJ CWNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCWNvbnN0IGludCAqcGFy YW1MZW5ndGhzLAorCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJCQlpbnQg cmVzdWx0Rm9ybWF0LAorCQkJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBR ZXhlY1N0YXJ0KGNvbm4pKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAoIVBRc2VuZFF1ZXJ5UHJl cGFyZWQoY29ubiwgc3RtdE5hbWUsCi0JCQkJCQkJIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBw YXJhbUxlbmd0aHMsCi0JCQkJCQkJIHBhcmFtRm9ybWF0cywgcmVzdWx0Rm9ybWF0KSkKKwlp ZiAoIVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoY29ubiwgc3RtdE5hbWUsCisJCQkJ CQkJCQkgIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCisJCQkJCQkJCQkg IHBhcmFtRm9ybWF0cywKKwkJCQkJCQkJCSAgcmVzdWx0Rm9ybWF0LCBwYXJhbURlc2MpKQog CQlyZXR1cm4gTlVMTDsKIAlyZXR1cm4gUFFleGVjRmluaXNoKGNvbm4pOwogfQpAQCAtMzcx MCw3ICs0MzE4LDE3IEBAIFBRZmZvcm1hdChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmll bGRfbnVtKQogCWlmICghY2hlY2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKIAkJ cmV0dXJuIDA7CiAJaWYgKHJlcy0+YXR0RGVzY3MpCisJeworCQkvKgorCQkgKiBBbiBlbmNy eXB0ZWQgY29sdW1uIGlzIGFsd2F5cyBwcmVzZW50ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGlu IHRleHQKKwkJICogZm9ybWF0LiAgVGhlIC5mb3JtYXQgZmllbGQgYXBwbGllcyB0byB0aGUg Y2lwaGVydGV4dCwgd2hpY2ggbWlnaHQKKwkJICogYmUgaW4gZWl0aGVyIGZvcm1hdCwgYnV0 IHRoZSBwbGFpbnRleHQgaW5zaWRlIGlzIGFsd2F5cyBpbiB0ZXh0CisJCSAqIGZvcm1hdC4K KwkJICovCisJCWlmIChyZXMtPmF0dERlc2NzW2ZpZWxkX251bV0uY2VraWQgIT0gMCkKKwkJ CXJldHVybiAwOwogCQlyZXR1cm4gcmVzLT5hdHREZXNjc1tmaWVsZF9udW1dLmZvcm1hdDsK Kwl9CiAJZWxzZQogCQlyZXR1cm4gMDsKIH0KQEAgLTM3NDgsNiArNDM2NiwxNyBAQCBQUWZt b2QoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkKIAkJcmV0dXJuIDA7CiB9 CiAKK2ludAorUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxk X251bSkKK3sKKwlpZiAoIWNoZWNrX2ZpZWxkX251bWJlcihyZXMsIGZpZWxkX251bSkpCisJ CXJldHVybiBmYWxzZTsKKwlpZiAocmVzLT5hdHREZXNjcykKKwkJcmV0dXJuIChyZXMtPmF0 dERlc2NzW2ZpZWxkX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7 Cit9CisKIGNoYXIgKgogUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcykKIHsKQEAgLTM5MzMs NiArNDU2MiwxNyBAQCBQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFy YW1fbnVtKQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAoraW50CitQUXBhcmFtaXNlbmNy eXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKK3sKKwlpZiAoIWNo ZWNrX3BhcmFtX251bWJlcihyZXMsIHBhcmFtX251bSkpCisJCXJldHVybiBmYWxzZTsKKwlp ZiAocmVzLT5wYXJhbURlc2NzKQorCQlyZXR1cm4gKHJlcy0+cGFyYW1EZXNjc1twYXJhbV9u dW1dLmNla2lkICE9IDApOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAKIC8qIFBR c2V0bm9uYmxvY2tpbmc6CiAgKglzZXRzIHRoZSBQR2Nvbm4ncyBkYXRhYmFzZSBjb25uZWN0 aW9uIG5vbi1ibG9ja2luZyBpZiB0aGUgYXJnIGlzIHRydWUKZGlmZiAtLWdpdCBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtcHJvdG9jb2wzLmMKaW5kZXggMzE3MGQ0ODRmMDIuLmM0NTM1NDZiNDZkIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwpAQCAtNDgsNiArNDgsOCBAQCBzdGF0aWMg aW50CWdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwog c3RhdGljIGludAlnZXRQYXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dM ZW5ndGgpOwogc3RhdGljIGludAlnZXRBbm90aGVyVHVwbGUoUEdjb25uICpjb25uLCBpbnQg bXNnTGVuZ3RoKTsKIHN0YXRpYyBpbnQJZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29u bik7CitzdGF0aWMgaW50CWdldENvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4pOworc3Rh dGljIGludAlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubik7CiBzdGF0aWMg aW50CWdldE5vdGlmeShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRDb3B5U3RhcnQo UEdjb25uICpjb25uLCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50CWdl dFJlYWR5Rm9yUXVlcnkoUEdjb25uICpjb25uKTsKQEAgLTMxMyw2ICszMTUsMTIgQEAgcHFQ YXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pCiAJCQkJCWlmIChwcUdldEludCgmKGNvbm4tPmJl X2tleSksIDQsIGNvbm4pKQogCQkJCQkJcmV0dXJuOwogCQkJCQlicmVhazsKKwkJCQljYXNl IFBxTXNnX0NvbHVtbk1hc3RlcktleToKKwkJCQkJZ2V0Q29sdW1uTWFzdGVyS2V5KGNvbm4p OworCQkJCQlicmVhazsKKwkJCQljYXNlIFBxTXNnX0NvbHVtbkVuY3J5cHRpb25LZXk6CisJ CQkJCWdldENvbHVtbkVuY3J5cHRpb25LZXkoY29ubik7CisJCQkJCWJyZWFrOwogCQkJCWNh c2UgUHFNc2dfUm93RGVzY3JpcHRpb246CiAJCQkJCWlmIChjb25uLT5lcnJvcl9yZXN1bHQg fHwKIAkJCQkJCShjb25uLT5yZXN1bHQgIT0gTlVMTCAmJgpAQCAtMzc0LDggKzM4MiwyMSBA QCBwcVBhcnNlSW5wdXQzKFBHY29ubiAqY29ubikKIAkJCQkJfQogCQkJCQlicmVhazsKIAkJ CQljYXNlIFBxTXNnX1BhcmFtZXRlckRlc2NyaXB0aW9uOgotCQkJCQlpZiAoZ2V0UGFyYW1E ZXNjcmlwdGlvbnMoY29ubiwgbXNnTGVuZ3RoKSkKLQkJCQkJCXJldHVybjsKKwkJCQkJaWYg KGNvbm4tPmVycm9yX3Jlc3VsdCB8fAorCQkJCQkJKGNvbm4tPnJlc3VsdCAhPSBOVUxMICYm CisJCQkJCQkgY29ubi0+cmVzdWx0LT5yZXN1bHRTdGF0dXMgPT0gUEdSRVNfRkFUQUxfRVJS T1IpKQorCQkJCQl7CisJCQkJCQkvKgorCQkJCQkJICogV2UndmUgYWxyZWFkeSBjaG9rZWQg Zm9yIHNvbWUgcmVhc29uLiAgSnVzdCBkaXNjYXJkCisJCQkJCQkgKiB0aGUgZGF0YSB0aWxs IHdlIGdldCB0byB0aGUgZW5kIG9mIHRoZSBxdWVyeS4KKwkJCQkJCSAqLworCQkJCQkJY29u bi0+aW5DdXJzb3IgKz0gbXNnTGVuZ3RoOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJewor CQkJCQkJaWYgKGdldFBhcmFtRGVzY3JpcHRpb25zKGNvbm4sIG1zZ0xlbmd0aCkpCisJCQkJ CQkJcmV0dXJuOworCQkJCQl9CiAJCQkJCWJyZWFrOwogCQkJCWNhc2UgUHFNc2dfRGF0YVJv dzoKIAkJCQkJaWYgKGNvbm4tPnJlc3VsdCAhPSBOVUxMICYmCkBAIC01NjQsNiArNTg1LDkg QEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJ aW50CQkJdHlwbGVuOwogCQlpbnQJCQlhdHR0eXBtb2Q7CiAJCWludAkJCWZvcm1hdDsKKwkJ aW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKKwkJaW50CQkJZmxhZ3M7CiAKIAkJaWYg KHBxR2V0cygmY29ubi0+d29ya0J1ZmZlciwgY29ubikgfHwKIAkJCXBxR2V0SW50KCZ0YWJs ZWlkLCA0LCBjb25uKSB8fApAQCAtNTc4LDYgKzYwMiwyMyBAQCBnZXRSb3dEZXNjcmlwdGlv bnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKQogCQkJZ290byBhZHZhbmNlX2FuZF9l cnJvcjsKIAkJfQogCisJCWlmIChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQor CQl7CisJCQlpZiAocHFHZXRJbnQoJmNla2lkLCA0LCBjb25uKSB8fAorCQkJCXBxR2V0SW50 KCZjZWthbGcsIDQsIGNvbm4pIHx8CisJCQkJcHFHZXRJbnQoJmZsYWdzLCAyLCBjb25uKSkK KwkJCXsKKwkJCQllcnJtc2cgPSBsaWJwcV9nZXR0ZXh0KCJpbnN1ZmZpY2llbnQgZGF0YSBp biBcIlRcIiBtZXNzYWdlIik7CisJCQkJZ290byBhZHZhbmNlX2FuZF9lcnJvcjsKKwkJCX0K KwkJfQorCQllbHNlCisJCXsKKwkJCWNla2lkID0gMDsKKwkJCWNla2FsZyA9IDA7CisJCQlm bGFncyA9IDA7CisJCX0KKwogCQkvKgogCQkgKiBTaW5jZSBwcUdldEludCB0cmVhdHMgMi1i eXRlIGludGVnZXJzIGFzIHVuc2lnbmVkLCB3ZSBuZWVkIHRvCiAJCSAqIGNvZXJjZSB0aGVz ZSByZXN1bHRzIHRvIHNpZ25lZCBmb3JtLgpAQCAtNTk5LDYgKzY0MCw4IEBAIGdldFJvd0Rl c2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCXJlc3VsdC0+YXR0 RGVzY3NbaV0udHlwaWQgPSB0eXBpZDsKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBsZW4g PSB0eXBsZW47CiAJCXJlc3VsdC0+YXR0RGVzY3NbaV0uYXR0dHlwbW9kID0gYXR0dHlwbW9k OworCQlyZXN1bHQtPmF0dERlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3VsdC0+YXR0 RGVzY3NbaV0uY2VrYWxnID0gY2VrYWxnOwogCiAJCWlmIChmb3JtYXQgIT0gMSkKIAkJCXJl c3VsdC0+YmluYXJ5ID0gMDsKQEAgLTcwMiwxMCArNzQ1LDMxIEBAIGdldFBhcmFtRGVzY3Jp cHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAlmb3IgKGkgPSAwOyBpIDwg bnBhcmFtczsgaSsrKQogCXsKIAkJaW50CQkJdHlwaWQ7CisJCWludAkJCWNla2lkOworCQlp bnQJCQljZWthbGc7CisJCWludAkJCWZsYWdzOwogCiAJCWlmIChwcUdldEludCgmdHlwaWQs IDQsIGNvbm4pKQogCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCWlmIChjb25uLT5jb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlpZiAocHFHZXRJbnQoJmNla2lkLCA0 LCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJCWlmIChwcUdldEludCgm Y2VrYWxnLCA0LCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJCWlmIChw cUdldEludCgmZmxhZ3MsIDIsIGNvbm4pKQorCQkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOwor CQl9CisJCWVsc2UKKwkJeworCQkJY2VraWQgPSAwOworCQkJY2VrYWxnID0gMDsKKwkJCWZs YWdzID0gMDsKKwkJfQogCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0udHlwaWQgPSB0eXBpZDsK KwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3VsdC0+cGFy YW1EZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5m bGFncyA9IGZsYWdzOwogCX0KIAogCS8qIFN1Y2Nlc3MhICovCkBAIC0xNDg2LDYgKzE1NTAs OTIgQEAgZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubikKIAlyZXR1cm4gMDsKIH0K IAorLyoKKyAqIEF0dGVtcHQgdG8gcmVhZCBhIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLgor ICogRW50cnk6ICd5JyBtZXNzYWdlIHR5cGUgYW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVl biBjb25zdW1lZC4KKyAqIEV4aXQ6IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3Vt ZWQgbWVzc2FnZS4KKyAqCQkgcmV0dXJucyBFT0YgaWYgbm90IGVub3VnaCBkYXRhLgorICov CitzdGF0aWMgaW50CitnZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKQoreworCWlu dAkJCWtleWlkOworCWNoYXIJICAgKmtleW5hbWU7CisJY2hhcgkgICAqa2V5cmVhbG07CisJ aW50CQkJcmV0OworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtl eWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IG5h bWUgKi8KKwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQly ZXR1cm4gRU9GOworCWtleW5hbWUgPSBzdHJkdXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsK KwlpZiAoIWtleW5hbWUpCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgcmVhbG0g Ki8KKwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1 cm4gRU9GOworCWtleXJlYWxtID0gc3RyZHVwKGNvbm4tPndvcmtCdWZmZXIuZGF0YSk7CisJ aWYgKCFrZXlyZWFsbSkKKwkJcmV0dXJuIEVPRjsKKwkvKiBBbmQgc2F2ZSBpdCAqLworCXJl dCA9IHBxU2F2ZUNvbHVtbk1hc3RlcktleShjb25uLCBrZXlpZCwga2V5bmFtZSwga2V5cmVh bG0pOworCWlmIChyZXQgIT0gMCkKKwkJcHFTYXZlRXJyb3JSZXN1bHQoY29ubik7CisKKwlm cmVlKGtleW5hbWUpOworCWZyZWUoa2V5cmVhbG0pOworCisJcmV0dXJuIHJldDsKK30KKwor LyoKKyAqIEF0dGVtcHQgdG8gcmVhZCBhIENvbHVtbkVuY3J5cHRpb25LZXkgbWVzc2FnZS4K KyAqIEVudHJ5OiAnWScgbWVzc2FnZSB0eXBlIGFuZCBsZW5ndGggaGF2ZSBhbHJlYWR5IGJl ZW4gY29uc3VtZWQuCisgKiBFeGl0OiByZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bGx5IGNvbnN1 bWVkIG1lc3NhZ2UuCisgKgkJIHJldHVybnMgRU9GIGlmIG5vdCBlbm91Z2ggZGF0YS4KKyAq Lworc3RhdGljIGludAorZ2V0Q29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4pCit7 CisJaW50CQkJa2V5aWQ7CisJaW50CQkJY21raWQ7CisJaW50CQkJY21rYWxnOworCWNoYXIJ ICAgKmJ1ZjsKKwlpbnQJCQl2YWxsZW47CisJaW50CQkJcmV0OworCisJLyogR2V0IHRoZSBr ZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1 cm4gRU9GOworCS8qIEdldCB0aGUgQ01LIElEICovCisJaWYgKHBxR2V0SW50KCZjbWtpZCwg NCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIENNSyBhbGdvcml0 aG0gKi8KKwlpZiAocHFHZXRJbnQoJmNta2FsZywgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJu IEVPRjsKKwkvKiBHZXQgdGhlIGtleSBkYXRhIGxlbiAqLworCWlmIChwcUdldEludCgmdmFs bGVuLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IGRh dGEgKi8KKwlidWYgPSBtYWxsb2ModmFsbGVuKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIEVP RjsKKwlpZiAocHFHZXRuY2hhcihidWYsIHZhbGxlbiwgY29ubikgIT0gMCkKKwl7CisJCWZy ZWUoYnVmKTsKKwkJcmV0dXJuIEVPRjsKKwl9CisJLyogQW5kIHNhdmUgaXQgKi8KKwlyZXQg PSBwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KGNvbm4sIGtleWlkLCBjbWtpZCwgY21rYWxn LCAodW5zaWduZWQgY2hhciAqKSBidWYsIHZhbGxlbik7CisJaWYgKHJldCAhPSAwKQorCQlw cVNhdmVFcnJvclJlc3VsdChjb25uKTsKKworCWZyZWUoYnVmKTsKKworCXJldHVybiByZXQ7 Cit9CiAKIC8qCiAgKiBBdHRlbXB0IHRvIHJlYWQgYSBOb3RpZnkgcmVzcG9uc2UgbWVzc2Fn ZS4KQEAgLTIzMDQsNiArMjQ1NCw5IEBAIGJ1aWxkX3N0YXJ0dXBfcGFja2V0KGNvbnN0IFBH Y29ubiAqY29ubiwgY2hhciAqcGFja2V0LAogCWlmIChjb25uLT5jbGllbnRfZW5jb2Rpbmdf aW5pdGlhbCAmJiBjb25uLT5jbGllbnRfZW5jb2RpbmdfaW5pdGlhbFswXSkKIAkJQUREX1NU QVJUVVBfT1BUSU9OKCJjbGllbnRfZW5jb2RpbmciLCBjb25uLT5jbGllbnRfZW5jb2Rpbmdf aW5pdGlhbCk7CiAKKwlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJ QUREX1NUQVJUVVBfT1BUSU9OKCJfcHFfLmNvbHVtbl9lbmNyeXB0aW9uIiwgIjEiKTsKKwog CS8qIEFkZCBhbnkgZW52aXJvbm1lbnQtZHJpdmVuIEdVQyBzZXR0aW5ncyBuZWVkZWQgKi8K IAlmb3IgKG5leHRfZW8gPSBvcHRpb25zOyBuZXh0X2VvLT5lbnZOYW1lOyBuZXh0X2VvKysp CiAJewpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMKaW5kZXggYzk5MzJmYzhhNmIuLjc0MGRk MTVlNWIyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMKQEAgLTQ1MCw3ICs0NTAsOCBA QCBwcVRyYWNlT3V0cHV0UyhGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1 cnNvcikKIAogLyogUGFyYW1ldGVyRGVzY3JpcHRpb24gKi8KIHN0YXRpYyB2b2lkCi1wcVRy YWNlT3V0cHV0dChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwg Ym9vbCByZWdyZXNzKQorcHFUcmFjZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVz c2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcywKKwkJCSAgIGJvb2wgY29sdW1uX2Vu Y3J5cHRpb25fZW5hYmxlZCkKIHsKIAlpbnQJCQluZmllbGRzOwogCkBAIC00NTgsMTIgKzQ1 OSwyMSBAQCBwcVRyYWNlT3V0cHV0dChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBp bnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCW5maWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50 MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbmZpZWxk czsgaSsrKQorCXsKIAkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwg cmVncmVzcyk7CisJCWlmIChjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlw cVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJCXBx VHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwkJCXBxVHJh Y2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOworCQl9CisJfQogfQogCiAvKiBS b3dEZXNjcmlwdGlvbiAqLwogc3RhdGljIHZvaWQKLXBxVHJhY2VPdXRwdXRUKEZJTEUgKmYs IGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCitwcVRy YWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwg Ym9vbCByZWdyZXNzLAorCQkJICAgYm9vbCBjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQog ewogCWludAkJCW5maWVsZHM7CiAKQEAgLTQ3OSw2ICs0ODksMTIgQEAgcHFUcmFjZU91dHB1 dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVn cmVzcykKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBx VHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFj ZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCWlmIChjb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwg Y3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBj dXJzb3IsIGZhbHNlKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJz b3IpOworCQl9CiAJfQogfQogCkBAIC01MTQsNiArNTMwLDMwIEBAIHBxVHJhY2VPdXRwdXRX KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBpbnQgbGVuZ3Ro KQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIH0KIAorLyog Q29sdW1uTWFzdGVyS2V5ICovCitzdGF0aWMgdm9pZAorcHFUcmFjZU91dHB1dHkoRklMRSAq ZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3sK KwlmcHJpbnRmKGYsICJDb2x1bW5NYXN0ZXJLZXlcdCIpOworCXBxVHJhY2VPdXRwdXRJbnQz MihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRTdHJpbmco ZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1dFN0cmluZyhmLCBt ZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKK30KKworLyogQ29sdW1uRW5jcnlwdGlvbktleSAq Lworc3RhdGljIHZvaWQKK3BxVHJhY2VPdXRwdXRZKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1l c3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCit7CisJaW50CQkJbGVuOworCisJ ZnByaW50ZihmLCAiQ29sdW1uRW5jcnlwdGlvbktleVx0Iik7CisJcHFUcmFjZU91dHB1dElu dDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFjZU91dHB1dEludDMy KGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFjZU91dHB1dEludDMyKGYs IG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOworCWxlbiA9IHBxVHJhY2VPdXRwdXRJbnQzMihm LCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwlwcVRyYWNlT3V0cHV0TmNoYXIoZiwgbGVu LCBtZXNzYWdlLCBjdXJzb3IpOworfQorCiAvKiBSZWFkeUZvclF1ZXJ5ICovCiBzdGF0aWMg dm9pZAogcHFUcmFjZU91dHB1dFooRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50 ICpjdXJzb3IpCkBAIC02NTcsMTAgKzY5NywxMiBAQCBwcVRyYWNlT3V0cHV0TWVzc2FnZShQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGJvb2wgdG9TZXJ2ZXIpCiAJCQkJ ZnByaW50Zihjb25uLT5QZmRlYnVnLCAiU3luYyIpOyAvKiBubyBtZXNzYWdlIGNvbnRlbnQg Ki8KIAkJCWJyZWFrOwogCQljYXNlIFBxTXNnX1BhcmFtZXRlckRlc2NyaXB0aW9uOgotCQkJ cHFUcmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVn cmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0dChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9n Q3Vyc29yLCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCk7CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19Sb3dEZXNjcmlwdGlvbjoKLQkJCXBx VHJhY2VPdXRwdXRUKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jl c3MpOworCQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1 cnNvciwgcmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpOwogCQkJYnJlYWs7CiAJCWNhc2UgUHFNc2dfTmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9u OgogCQkJcHFUcmFjZU91dHB1dHYoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNv cik7CkBAIC02NzUsNiArNzE3LDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJCWZwcmludGYo Y29ubi0+UGZkZWJ1ZywgIlRlcm1pbmF0ZSIpOwogCQkJLyogTm8gbWVzc2FnZSBjb250ZW50 ICovCiAJCQlicmVhazsKKwkJY2FzZSBQcU1zZ19Db2x1bW5NYXN0ZXJLZXk6CisJCQlwcVRy YWNlT3V0cHV0eShjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNz KTsKKwkJCWJyZWFrOworCQljYXNlIFBxTXNnX0NvbHVtbkVuY3J5cHRpb25LZXk6CisJCQlw cVRyYWNlT3V0cHV0WShjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdy ZXNzKTsKKwkJCWJyZWFrOwogCQljYXNlIFBxTXNnX1JlYWR5Rm9yUXVlcnk6CiAJCQlwcVRy YWNlT3V0cHV0Wihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKIAkJCWJy ZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaCBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggNzNmNmU2NWFlNTUuLjkxNzE3 YWIyM2I5IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKQEAgLTI3Niw2ICsyNzYsOCBA QCB0eXBlZGVmIHN0cnVjdCBwZ3Jlc0F0dERlc2MKIAlPaWQJCQl0eXBpZDsJCQkvKiB0eXBl IGlkICovCiAJaW50CQkJdHlwbGVuOwkJCS8qIHR5cGUgc2l6ZSAqLwogCWludAkJCWF0dHR5 cG1vZDsJCS8qIHR5cGUtc3BlY2lmaWMgbW9kaWZpZXIgaW5mbyAqLworCU9pZAkJCWNla2lk OworCWludAkJCWNla2FsZzsKIH0gUEdyZXNBdHREZXNjOwogCiAvKiAtLS0tLS0tLS0tLS0t LS0tCkBAIC00NjYsNiArNDY4LDE0IEBAIGV4dGVybiBQR3Jlc3VsdCAqUFFleGVjUHJlcGFy ZWQoUEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJ CQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRGb3Jt YXQpOworZXh0ZXJuIFBHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZChQR2Nvbm4g KmNvbm4sCisJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCQkJCSBp bnQgblBhcmFtcywKKwkJCQkJCQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVz LAorCQkJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkJCQkgY29u c3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJCQkJCQkJIGludCByZXN1bHRGb3JtYXQsCisJ CQkJCQkJCQkJIFBHcmVzdWx0ICpwYXJhbURlc2MpOwogCiAvKiBJbnRlcmZhY2UgZm9yIG11 bHRpcGxlLXJlc3VsdCBvciBhc3luY2hyb25vdXMgcXVlcmllcyAqLwogI2RlZmluZSBQUV9R VUVSWV9QQVJBTV9NQVhfTElNSVQgNjU1MzUKQEAgLTQ4OSw2ICs0OTksMTQgQEAgZXh0ZXJu IGludAlQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29uc3Qg aW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAog CQkJCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KTsKK2V4dGVybiBpbnQJUFFzZW5kUXVlcnlQcmVw YXJlZERlc2NyaWJlZChQR2Nvbm4gKmNvbm4sCisJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKnN0 bXROYW1lLAorCQkJCQkJCQkJCSBpbnQgblBhcmFtcywKKwkJCQkJCQkJCQkgY29uc3QgY2hh ciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtTGVu Z3RocywKKwkJCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJCQkJCQkJ IGludCByZXN1bHRGb3JtYXQsCisJCQkJCQkJCQkJIFBHcmVzdWx0ICpwYXJhbURlc2MpOwog ZXh0ZXJuIGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25uICpjb25uKTsKIGV4dGVybiBp bnQJUFFzZXRDaHVua2VkUm93c01vZGUoUEdjb25uICpjb25uLCBpbnQgY2h1bmtTaXplKTsK IGV4dGVybiBQR3Jlc3VsdCAqUFFnZXRSZXN1bHQoUEdjb25uICpjb25uKTsKQEAgLTU2MSw2 ICs1NzksNyBAQCBleHRlcm4gaW50CVBRZmZvcm1hdChjb25zdCBQR3Jlc3VsdCAqcmVzLCBp bnQgZmllbGRfbnVtKTsKIGV4dGVybiBPaWQJUFFmdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVz LCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFmc2l6ZShjb25zdCBQR3Jlc3VsdCAq cmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFmbW9kKGNvbnN0IFBHcmVzdWx0 ICpyZXMsIGludCBmaWVsZF9udW0pOworZXh0ZXJuIGludAlQUWZpc2VuY3J5cHRlZChjb25z dCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBjaGFyICpQUWNtZFN0 YXR1cyhQR3Jlc3VsdCAqcmVzKTsKIGV4dGVybiBjaGFyICpQUW9pZFN0YXR1cyhjb25zdCBQ R3Jlc3VsdCAqcmVzKTsJLyogb2xkIGFuZCB1Z2x5ICovCiBleHRlcm4gT2lkCVBRb2lkVmFs dWUoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8qIG5ldyBhbmQgaW1wcm92ZWQgKi8KQEAgLTU3 MCw2ICs1ODksNyBAQCBleHRlcm4gaW50CVBRZ2V0bGVuZ3RoKGNvbnN0IFBHcmVzdWx0ICpy ZXMsIGludCB0dXBfbnVtLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFnZXRpc251 bGwoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHR1cF9udW0sIGludCBmaWVsZF9udW0pOwog ZXh0ZXJuIGludAlQUW5wYXJhbXMoY29uc3QgUEdyZXN1bHQgKnJlcyk7CiBleHRlcm4gT2lk CVBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW0pOworZXh0 ZXJuIGludAlQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBh cmFtX251bSk7CiAKIC8qIERlc2NyaWJlIHByZXBhcmVkIHN0YXRlbWVudHMgYW5kIHBvcnRh bHMgKi8KIGV4dGVybiBQR3Jlc3VsdCAqUFFkZXNjcmliZVByZXBhcmVkKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqc3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCmluZGV4 IDM2OTFlNWVlOTY5Li43YjFjNzEzMzM3OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50 LmgKQEAgLTExMyw2ICsxMTMsOSBAQCB1bmlvbiBwZ3Jlc3VsdF9kYXRhCiB0eXBlZGVmIHN0 cnVjdCBwZ3Jlc1BhcmFtRGVzYwogewogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8K KwlPaWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CisJaW50CQkJZmxhZ3M7CiB9IFBHcmVz UGFyYW1EZXNjOwogCiAvKgpAQCAtMzU4LDYgKzM2MSwyNiBAQCB0eXBlZGVmIHN0cnVjdCBw Z19jb25uX2hvc3QKIAkJCQkJCQkJICogZm91bmQgaW4gcGFzc3dvcmQgZmlsZS4gKi8KIH0g cGdfY29ubl9ob3N0OwogCisvKgorICogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBkYXRh CisgKi8KKworLyogY29sdW1uIG1hc3RlciBrZXkgKi8KK3R5cGVkZWYgc3RydWN0IHBnX2Nt aworeworCU9pZAkJCWNta2lkOworCWNoYXIJICAgKmNta25hbWU7CisJY2hhcgkgICAqY21r cmVhbG07Cit9IFBHQ01LOworCisvKiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KK3R5cGVk ZWYgc3RydWN0IHBnX2NlaworeworCU9pZAkJCWNla2lkOworCXVuc2lnbmVkIGNoYXIgKmNl a2RhdGE7CQkvKiAoZGVjcnlwdGVkKSAqLworCXNpemVfdAkJY2VrZGF0YWxlbjsKK30gUEdD RUs7CisKIC8qCiAgKiBQR2Nvbm4gc3RvcmVzIGFsbCB0aGUgc3RhdGUgZGF0YSBhc3NvY2lh dGVkIHdpdGggYSBzaW5nbGUgY29ubmVjdGlvbgogICogdG8gYSBiYWNrZW5kLgpAQCAtNDE2 LDYgKzQzOSw5IEBAIHN0cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqc3NsX21heF9wcm90b2Nv bF92ZXJzaW9uOwkvKiBtYXhpbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hhcgkg ICAqdGFyZ2V0X3Nlc3Npb25fYXR0cnM7CS8qIGRlc2lyZWQgc2Vzc2lvbiBwcm9wZXJ0aWVz ICovCiAJY2hhcgkgICAqcmVxdWlyZV9hdXRoOwkvKiBuYW1lIG9mIHRoZSBleHBlY3RlZCBh dXRoIG1ldGhvZCAqLworCWNoYXIJICAgKmNta2xvb2t1cDsJCS8qIENNSyBsb29rdXAgc3Bl Y2lmaWNhdGlvbiAqLworCWNoYXIJICAgKmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmc7CS8q IGNvbHVtbl9lbmNyeXB0aW9uIGNvbm5lY3Rpb24KKwkJCQkJCQkJCQkJICogcGFyYW1ldGVy ICovCiAJY2hhcgkgICAqbG9hZF9iYWxhbmNlX2hvc3RzOyAvKiBsb2FkIGJhbGFuY2Ugb3Zl ciBob3N0cyAqLwogCiAJYm9vbAkJY2FuY2VsUmVxdWVzdDsJLyogdHJ1ZSBpZiB0aGlzIGNv bm5lY3Rpb24gaXMgdXNlZCB0byBzZW5kIGEKQEAgLTUxNyw4ICs1NDMsMTUgQEAgc3RydWN0 IHBnX2Nvbm4KIAlQR1ZlcmJvc2l0eSB2ZXJib3NpdHk7CQkvKiBlcnJvci9ub3RpY2UgbWVz c2FnZSB2ZXJib3NpdHkgKi8KIAlQR0NvbnRleHRWaXNpYmlsaXR5IHNob3dfY29udGV4dDsJ Lyogd2hldGhlciB0byBzaG93IENPTlRFWFQgZmllbGQgKi8KIAlQR2xvYmpmdW5jcyAqbG9i amZ1bmNzOwkJLyogcHJpdmF0ZSBzdGF0ZSBmb3IgbGFyZ2Utb2JqZWN0IGFjY2VzcyBmbnMg Ki8KKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkOwkvKiBwYXJzZWQgdmVyc2lv biBvZgorCQkJCQkJCQkJCQkgKiBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nICovCiAJcGdf cHJuZ19zdGF0ZSBwcm5nX3N0YXRlOwkvKiBwcm5nIHN0YXRlIGZvciBsb2FkIGJhbGFuY2lu ZyBjb25uZWN0aW9ucyAqLwogCisJLyogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBkYXRh ICovCisJaW50CQkJbmNta3M7CisJUEdDTUsJICAgKmNta3M7CisJaW50CQkJbmNla3M7CisJ UEdDRUsJICAgKmNla3M7CiAKIAkvKiBCdWZmZXIgZm9yIGRhdGEgcmVjZWl2ZWQgZnJvbSBi YWNrZW5kIGFuZCBub3QgeWV0IHByb2Nlc3NlZCAqLwogCWNoYXIJICAgKmluQnVmZmVyOwkJ LyogY3VycmVudGx5IGFsbG9jYXRlZCBidWZmZXIgKi8KQEAgLTcwOSw2ICs3NDIsMTAgQEAg ZXh0ZXJuIHZvaWQgcHFTYXZlTWVzc2FnZUZpZWxkKFBHcmVzdWx0ICpyZXMsIGNoYXIgY29k ZSwKIAkJCQkJCQkgICBjb25zdCBjaGFyICp2YWx1ZSk7CiBleHRlcm4gdm9pZCBwcVNhdmVQ YXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCQkJ CQkgIGNvbnN0IGNoYXIgKnZhbHVlKTsKK2V4dGVybiBpbnQJcHFTYXZlQ29sdW1uTWFzdGVy S2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlkLCBjb25zdCBjaGFyICprZXluYW1lLAorCQkJ CQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKTsKK2V4dGVybiBpbnQJcHFTYXZlQ29sdW1u RW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgaW50IGNta2lkLCBpbnQg Y21rYWxnLAorCQkJCQkJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50IGxl bik7CiBleHRlcm4gaW50CXBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29ubiwgY29uc3QgY2hh ciAqKmVycm1zZ3ApOwogZXh0ZXJuIHZvaWQgcHFDb21tYW5kUXVldWVBZHZhbmNlKFBHY29u biAqY29ubiwgYm9vbCBpc1JlYWR5Rm9yUXVlcnksCiAJCQkJCQkJCSAgYm9vbCBnb3RTeW5j KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggYmU2ZmFkYWVhMjMuLjYwZmJk Y2U2MDJmIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZAor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZApAQCAtMzAsNiArMzAsNyBA QCBlbmRpZgogCiBpZiBzc2wuZm91bmQoKQogICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdm ZS1zZWN1cmUtY29tbW9uLmMnKQorICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1lbmNy eXB0LW9wZW5zc2wuYycpCiAgIGxpYnBxX3NvdXJjZXMgKz0gZmlsZXMoJ2ZlLXNlY3VyZS1v cGVuc3NsLmMnKQogZW5kaWYKIApAQCAtMTE4LDYgKzExOSw3IEBAIHRlc3RzICs9IHsKICAg ICAgICd0LzAwMl9hcGkucGwnLAogICAgICAgJ3QvMDAzX2xvYWRfYmFsYW5jZV9ob3N0X2xp c3QucGwnLAogICAgICAgJ3QvMDA0X2xvYWRfYmFsYW5jZV9kbnMucGwnLAorICAgICAgJ3Qv MDEwX2VuY3J5cHQucGwnLAogICAgIF0sCiAgICAgJ2Vudic6IHsnd2l0aF9zc2wnOiBzc2xf bGlicmFyeX0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMu bWsgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKaW5kZXggNDBiNjYyZGMwOGIuLmI2 ZTk3NDNhOThhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCkBAIC0zLDYgKzMsNyBAQCBDQVRBTE9H X05BTUUgICAgID0gbGlicHEKIEdFVFRFWFRfRklMRVMgICAgPSBmZS1hdXRoLmMgXAogICAg ICAgICAgICAgICAgICAgIGZlLWF1dGgtc2NyYW0uYyBcCiAgICAgICAgICAgICAgICAgICAg ZmUtY29ubmVjdC5jIFwKKyAgICAgICAgICAgICAgICAgICBmZS1lbmNyeXB0LW9wZW5zc2wu YyBcCiAgICAgICAgICAgICAgICAgICAgZmUtZXhlYy5jIFwKICAgICAgICAgICAgICAgICAg ICBmZS1nc3NhcGktY29tbW9uLmMgXAogICAgICAgICAgICAgICAgICAgIGZlLWxvYmouYyBc CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90LzAxMF9lbmNyeXB0LnBsIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMTBfZW5jcnlwdC5wbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGI1ODhhNTI1NjMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS90LzAxMF9lbmNyeXB0LnBsCkBAIC0wLDAgKzEsNzIg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK3BsYW4gc2tpcF9hbGwgPT4gJ09w ZW5TU0wgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJworICBpZiAkRU5We3dpdGhfc3Ns fSBuZSAnb3BlbnNzbCc7CisKKyMgdGVzdCBkYXRhIGZyb20gaHR0cHM6Ly9kYXRhdHJhY2tl ci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hh Mi0wNSNzZWN0aW9uLTUKK2NvbW1hbmRfbGlrZSgKKwlbJ2xpYnBxX3Rlc3RfZW5jcnlwdCdd LAorCXFyezUuMQorQyA9CisxYSBmMyA4YyAyZCBjMiBiOSA2ZiBmZCBkOCA2NiA5NCAwOSAy MyA0MSBiYyAwNAorYzggMGUgZGYgYTMgMmQgZGYgMzkgZDUgZWYgMDAgYzAgYjQgNjggODMg NDIgNzkKK2EyIGU0IDZhIDFiIDgwIDQ5IGY3IDkyIGY3IDZiIGZlIDU0IGI5IDAzIGE5IGM5 CithOSA0YSBjOSBiNCA3YSBkMiA2NSA1YyA1ZiAxMCBmOSBhZSBmNyAxNCAyNyBlMgorZmMg NmYgOWIgM2YgMzkgOWEgMjIgMTQgODkgZjEgNjMgNjIgYzcgMDMgMjMgMzYKKzA5IGQ0IDVh IGM2IDk4IDY0IGUzIDMyIDFjIGY4IDI5IDM1IGFjIDQwIDk2IGM4Cis2ZSAxMyAzMyAxNCBj NSA0MCAxOSBlOCBjYSA3OSA4MCBkZiBhNCBiOSBjZiAxYgorMzggNGMgNDggNmYgM2EgNTQg YzUgMTAgNzggMTUgOGUgZTUgZDcgOWQgZTUgOWYKK2JkIDM0IGQ4IDQ4IGIzIGQ2IDk1IDUw IGE2IDc2IDQ2IDM0IDQ0IDI3IGFkIGU1Cis0YiA4OCA1MSBmZiBiNSA5OCBmNyBmOCAwMCA3 NCBiOSA0NyAzYyA4MiBlMiBkYgorNjUgMmMgM2YgYTMgNmIgMGEgN2MgNWIgMzIgMTkgZmEg YjMgYTMgMGIgYzEgYzQKKzUuMgorQyA9CisxYSBmMyA4YyAyZCBjMiBiOSA2ZiBmZCBkOCA2 NiA5NCAwOSAyMyA0MSBiYyAwNAorZWEgNjUgZGEgNmIgNTkgZTYgMWUgZGIgNDEgOWIgZTYg MmQgMTkgNzEgMmEgZTUKK2QzIDAzIGVlIGI1IDAwIDUyIGQwIGRmIGQ2IDY5IDdmIDc3IDIy IDRjIDhlIGRiCiswMCAwZCAyNyA5YiBkYyAxNCBjMSAwNyAyNiA1NCBiZCAzMCA5NCA0MiAz MCBjNgorNTcgYmUgZDQgY2EgMGMgOWYgNGEgODQgNjYgZjIgMmIgMjIgNmQgMTcgNDYgMjEK KzRiIGY4IGNmIGMyIDQwIDBhIGRkIDlmIDUxIDI2IGU0IDc5IDY2IDNmIGM5IDBiCiszYiBl ZCA3OCA3YSAyZiAwZiBmYyBiZiAzOSAwNCBiZSAyYSA2NCAxZCA1YyAyMQorMDUgYmYgZTUg OTEgYmEgZTIgM2IgMWQgNzQgNDkgZTUgMzIgZWUgZjYgMGEgOWEKK2M4IGJiIDZjIDZiIDAx IGQzIDVkIDQ5IDc4IDdiIGNkIDU3IGVmIDQ4IDQ5IDI3CitmMiA4MCBhZCBjOSAxYSBjMCBj NCBlNyA5YyA3YiAxMSBlZiBjNiAwMCA1NCBlMworODQgOTAgYWMgMGUgNTggOTQgOWIgZmUg NTEgODcgNWQgNzMgM2YgOTMgYWMgMjAKKzc1IDE2IDgwIDM5IGNjIGM3IDMzIGQ3Cis1LjMK K0MgPQorMWEgZjMgOGMgMmQgYzIgYjkgNmYgZmQgZDggNjYgOTQgMDkgMjMgNDEgYmMgMDQK Kzg5IDMxIDI5IGIwIGY0IGVlIDllIGIxIDhkIDc1IGVkIGE2IGYyIGFhIGE5IGYzCis2MCA3 YyA5OCBjNCBiYSAwNCA0NCBkMyA0MSA2MiAxNyAwZCA4OSA2MSA4OCA0ZQorNTggZjIgN2Qg NGEgMzUgYTUgZTMgZTMgMjMgNGEgYTkgOTQgMDQgZjMgMjcgZjUKK2MyIGQ3IDhlIDk4IDZl IDU3IDQ5IDg1IDhiIDg4IGJjIGRkIGMyIGJhIDA1IDIxCis4ZiAxOSA1MSAxMiBkNiBhZCA0 OCBmYSAzYiAxZSA4OSBhYSA3ZiAyMCBkNSA5NgorNjggMmYgMTAgYjMgNjQgOGQgM2IgYjAg YzkgODMgYzMgMTggNWYgNTkgZTMgNmQKKzI4IGY2IDQ3IGMxIGMxIDM5IDg4IGRlIDhlIGEw IGQ4IDIxIDE5IDhjIDE1IDA5Cis3NyBlMiA4YyBhNyA2OCAwOCAwYiBjNyA4YyAzNSBmYSBl ZCA2OSBkOCBjMCBiNworZDkgZjUgMDYgMjMgMjEgOTggYTQgODkgYTEgYTYgYWUgMDMgYTMg MTkgZmIgMzAKK2RkIDEzIDFkIDA1IGFiIDM0IDY3IGRkIDA1IDZmIDhlIDg4IDJiIGFkIDcw IDYzCis3ZiAxZSA5YSA1NCAxZCA5YyAyMyBlNworNS40CitDID0KKzFhIGYzIDhjIDJkIGMy IGI5IDZmIGZkIGQ4IDY2IDk0IDA5IDIzIDQxIGJjIDA0Cis0YSBmZiBhYSBhZCBiNyA4YyAz MSBjNSBkYSA0YiAxYiA1OSAwZCAxMCBmZiBiZAorM2QgZDggZDUgZDMgMDIgNDIgMzUgMjYg OTEgMmQgYTAgMzcgZWMgYmMgYzcgYmQKKzgyIDJjIDMwIDFkIGQ2IDdjIDM3IDNiIGNjIGI1 IDg0IGFkIDNlIDkyIDc5IGMyCitlNiBkMSAyYSAxMyA3NCBiNyA3ZiAwNyA3NSA1MyBkZiA4 MiA5NCAxMCA0NCA2YgorMzYgZWIgZDkgNzAgNjYgMjkgNmEgZTYgNDIgN2UgYTcgNWMgMmUg MDggNDYgYTEKKzFhIDA5IGNjIGY1IDM3IDBkIGM4IDBiIGZlIGNiIGFkIDI4IGM3IDNmIDA5 IGIzCithMyBiNyA1ZSA2NiAyYSAyNSA5NCA0MSAwYSBlNCA5NiBiMiBlMiBlNiA2MCA5ZQor MzEgZTYgZTAgMmMgYzggMzcgZjAgNTMgZDIgMWYgMzcgZmYgNGYgNTEgOTUgMGIKK2JlIDI2 IDM4IGQwIDlkIGQ3IGE0IDkzIDA5IDMwIDgwIDZkIDA3IDAzIGIxIGY2Cis0ZCBkMyBiNCBj MCA4OCBhNyBmNCA1YyAyMSA2OCAzOSA2NCA1YiAyMCAxMiBiZgorMmUgNjIgNjkgYTggYzUg NmEgODEgNmQgYmMgMWIgMjYgNzcgNjEgOTUgNWIgYzUKK30sCisJJ0FFQURfQUVTXypfQ0JD X0hNQUNfU0hBXyogdGVzdCBjYXNlcycpOworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZSBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQppbmRleCA2YmE3OGFkYjY3OC4uMTg0NjU5NGVj NTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKQEAgLTEsMiArMSwz IEBACisvbGlicHFfdGVzdF9lbmNyeXB0CiAvbGlicHFfdGVzdGNsaWVudAogL2xpYnBxX3Vy aV9yZWdyZXNzCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2Vm aWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQppbmRleCA0ZTE3ZWMx NTE0MS4uMTFiNjYzMzdiODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rl c3QvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQpA QCAtMTUsMTAgKzE1LDE3IEBAIG92ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChsaWJwcV9zcmNk aXIpICQoQ1BQRkxBR1MpCiBMREZMQUdTX0lOVEVSTkFMICs9ICQobGlicHFfcGdwb3J0KQog CiBQUk9HUyA9IGxpYnBxX3Rlc3RjbGllbnQgbGlicHFfdXJpX3JlZ3Jlc3MKK2lmZXEgKCQo d2l0aF9zc2wpLG9wZW5zc2wpCitQUk9HUyArPSBsaWJwcV90ZXN0X2VuY3J5cHQKK2VuZGlm CisKIAogYWxsOiAkKFBST0dTKQogCiAkKFBST0dTKTogJChXSU4zMlJFUykKIAorbGlicHFf dGVzdF9lbmNyeXB0OiAuLi9mZS1lbmNyeXB0LW9wZW5zc2wuYworCSQoQ0MpICQoQ1BQRkxB R1MpIC1EVEVTVF9FTkNSWVBUICQoQ0ZMQUdTKSAkXiAkKExERkxBR1MpICQoTERGTEFHU19F WCkgJChMSUJTKSAtbyAkQCQoWCkKKwogY2xlYW4gZGlzdGNsZWFuOgogCXJtIC1mICQoUFJP R1MpICoubwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9tZXNvbi5i dWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQKaW5kZXggMjFk ZDM3ZjY5YmMuLjY2Njc3MWE5OWU4IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJw cS90ZXN0L21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVz b24uYnVpbGQKQEAgLTM2LDMgKzM2LDI2IEBAIHRlc3RwcmVwX3RhcmdldHMgKz0gZXhlY3V0 YWJsZSgnbGlicHFfdGVzdGNsaWVudCcsCiAgICAgJ2luc3RhbGwnOiBmYWxzZSwKICAgfQog KQorCisKK2xpYnBxX3Rlc3RfZW5jcnlwdF9zb3VyY2VzID0gZmlsZXMoCisgICcuLi9mZS1l bmNyeXB0LW9wZW5zc2wuYycsCispCisKK2lmIGhvc3Rfc3lzdGVtID09ICd3aW5kb3dzJwor ICBsaWJwcV90ZXN0X2VuY3J5cHRfc291cmNlcyArPSByY19iaW5fZ2VuLnByb2Nlc3Mod2lu MzJ2ZXJfcmMsIGV4dHJhX2FyZ3M6IFsKKyAgICAnLS1OQU1FJywgJ2xpYnBxX3Rlc3RfZW5j cnlwdCcsCisgICAgJy0tRklMRURFU0MnLCAnbGlicHEgdGVzdCBwcm9ncmFtJyxdKQorZW5k aWYKKworaWYgc3NsLmZvdW5kKCkKKyAgZXhlY3V0YWJsZSgnbGlicHFfdGVzdF9lbmNyeXB0 JywKKyAgICBsaWJwcV90ZXN0X2VuY3J5cHRfc291cmNlcywKKyAgICBpbmNsdWRlX2RpcmVj dG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuLi8uLi8uLi9wb3J0JyksCisgICAgZGVw ZW5kZW5jaWVzOiBbZnJvbnRlbmRfY29kZSwgbGlicHEsIHNzbF0sCisgICAgY19hcmdzOiBb Jy1EVEVTVF9FTkNSWVBUJ10sCisgICAga3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzICsgewor ICAgICAgJ2luc3RhbGwnOiBmYWxzZSwKKyAgICB9CisgICkKK2VuZGlmCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9NYWtlZmlsZSBiL3NyYy90ZXN0L01ha2VmaWxlCmluZGV4IGRiZDMxOTI4 NzRkLi5jOWEzODY4MDUzMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvTWFrZWZpbGUKKysrIGIv c3JjL3Rlc3QvTWFrZWZpbGUKQEAgLTI0LDcgKzI0LDcgQEAgaWZlcSAoJCh3aXRoX2xkYXAp LHllcykKIFNVQkRJUlMgKz0gbGRhcAogZW5kaWYKIGlmZXEgKCQod2l0aF9zc2wpLG9wZW5z c2wpCi1TVUJESVJTICs9IHNzbAorU1VCRElSUyArPSBjb2x1bW5fZW5jcnlwdGlvbiBzc2wK IGVuZGlmCiAKICMgVGVzdCBzdWl0ZXMgdGhhdCBhcmUgbm90IHNhZmUgYnkgZGVmYXVsdCBi dXQgY2FuIGJlIHJ1biBpZiBzZWxlY3RlZApAQCAtMzYsNyArMzYsNyBAQCBleHBvcnQgUEdf VEVTVF9FWFRSQQogIyBjbGVhbiIgZXRjIHRvIHJlY3Vyc2UgaW50byB0aGVtLiAgKFdlIG11 c3QgZmlsdGVyIG91dCB0aG9zZSB0aGF0IHdlCiAjIGhhdmUgY29uZGl0aW9uYWxseSBpbmNs dWRlZCBpbnRvIFNVQkRJUlMgYWJvdmUsIGVsc2UgdGhlcmUgd2lsbCBiZQogIyBtYWtlIGNv bmZ1c2lvbi4pCi1BTFdBWVNfU1VCRElSUyA9ICQoZmlsdGVyLW91dCAkKFNVQkRJUlMpLGV4 YW1wbGVzIGtlcmJlcm9zIGljdSBsZGFwIHNzbCkKK0FMV0FZU19TVUJESVJTID0gJChmaWx0 ZXItb3V0ICQoU1VCRElSUyksY29sdW1uX2VuY3J5cHRpb24gZXhhbXBsZXMga2VyYmVyb3Mg aWN1IGxkYXAgc3NsKQogCiAjIFdlIHdhbnQgdG8gcmVjdXJzZSB0byBhbGwgc3ViZGlycyBm b3IgYWxsIHN0YW5kYXJkIHRhcmdldHMsIGV4Y2VwdCB0aGF0CiAjIGluc3RhbGxjaGVjayBh bmQgaW5zdGFsbCBzaG91bGQgbm90IHJlY3Vyc2UgaW50byB0aGUgc3ViZGlyZWN0b3J5ICJt b2R1bGVzIi4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRp Z25vcmUgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NTZkYmY2OWQyYQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUKQEAgLTAs MCArMSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2VuZXJhdGVkIGJ5IHRlc3Qgc3VpdGUKKy90 bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtl ZmlsZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43YjY0NzFlNDNlMAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCkBAIC0wLDAgKzEs MzEgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIE1ha2VmaWxlIGZvciBzcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbgorIworIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMgUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyMKKyMgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKKyMKKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YmRpciA9IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0 aW9uCit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWlsZGRpcikv c3JjL01ha2VmaWxlLmdsb2JhbAorCitleHBvcnQgT1BFTlNTTAorCitvdmVycmlkZSBDUFBG TEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQorTERGTEFHU19JTlRFUk5B TCArPSAtTCQodG9wX2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMgLWxwZ2ZldXRpbHMgJChsaWJw cV9wZ3BvcnQpCisKK2FsbDogdGVzdF9jbGllbnQKKworY2hlY2s6IGFsbAorCSQocHJvdmVf Y2hlY2spCisKK2luc3RhbGxjaGVjazoKKwkkKHByb3ZlX2luc3RhbGxjaGVjaykKKworY2xl YW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xlYW46CisJcm0gLWYgdGVzdF9jbGllbnQubyB0 ZXN0X2NsaWVudAorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu Ljg0Y2ZhODRlMTJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vbWVzb24uYnVpbGQKQEAgLTAsMCArMSwyMyBAQAorY29sdW1uX2VuY3J5cHRpb25f dGVzdF9jbGllbnQgPSBleGVjdXRhYmxlKCd0ZXN0X2NsaWVudCcsCisgIGZpbGVzKCd0ZXN0 X2NsaWVudC5jJyksCisgIGRlcGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGxpYnBxXSwK KyAga3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzICsgeworICAgICdpbnN0YWxsJzogZmFsc2Us CisgIH0sCispCit0ZXN0cHJlcF90YXJnZXRzICs9IGNvbHVtbl9lbmNyeXB0aW9uX3Rlc3Rf Y2xpZW50CisKK3Rlc3RzICs9IHsKKyAgJ25hbWUnOiAnY29sdW1uX2VuY3J5cHRpb24nLAor ICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3Vy cmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAndGVzdHMnOiBbCisgICAgICAn dC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwnLAorICAgICAgJ3QvMDAyX2Nta19yb3RhdGlv bi5wbCcsCisgICAgXSwKKyAgICAnZW52JzogeworICAgICAgJ09QRU5TU0wnOiBvcGVuc3Ns LnBhdGgoKSwKKyAgICB9LAorICB9LAorfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwgYi9zcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2E0Yzg2ZTUxZjYKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlv bi5wbApAQCAtMCwwICsxLDMwNyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNCwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3 YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRvcGVuc3NsID0gJEVO VntPUEVOU1NMfTsKKworbXkgJHBlcmxiaW4gPSAkXlg7CiskcGVybGJpbiA9fiBzIVxcIS8h ZyBpZiAkUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OndpbmRvd3Nfb3M7CisKKyMgQ2FuIGJl IGNoYW5nZWQgbWFudWFsbHkgZm9yIHRlc3Rpbmcgb3RoZXIgYWxnb3JpdGhtcy4gIE5vdGUg dGhhdAorIyBSU0FFU19PQUVQX1NIQV8yNTYgcmVxdWlyZXMgT3BlblNTTCAxLjEuMC4KK215 ICRjbWthbGcgPSAnUlNBRVNfT0FFUF9TSEFfMSc7CisKK215ICRub2RlID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5z dGFydDsKKworCitzdWIgY3JlYXRlX2NtaworeworCW15ICgkY21rbmFtZSkgPSBAXzsKKwlt eSAkY21rZmlsZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fS8ke2Nta25hbWV9LnBlbSI7CisJc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdnZW5wa2V5 JywgJy1hbGdvcml0aG0nLCAncnNhJywgJy1vdXQnLAorCSAgJGNta2ZpbGVuYW1lOworCSRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ ICR7Y21rbmFtZX19KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCitzdWIgY3JlYXRl X2NlaworeworCW15ICgkY2VrbmFtZSwgJGJ5dGVzLCAkY21rbmFtZSwgJGNta2ZpbGVuYW1l KSA9IEBfOworCisJbXkgJGRpZ2VzdCA9ICRjbWthbGc7CisJJGRpZ2VzdCA9fiBzLy4qKD89 U0hBKS8vOworCSRkaWdlc3QgPX4gcy9fLy9nOworCisJIyBnZW5lcmF0ZSByYW5kb20gYnl0 ZXMKKwlzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ3JhbmQnLCAnLW91dCcsCisJICAiJHtQ b3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsICRi eXRlczsKKworCSMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCisJbXkgQGNtZCA9ICgKKwkJJG9w ZW5zc2wsCisJCSdwa2V5dXRsJywKKwkJJy1lbmNyeXB0JywKKwkJJy1pbmtleScsCisJCSRj bWtmaWxlbmFtZSwKKwkJJy1wa2V5b3B0JywKKwkJJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcs CisJCSctaW4nLAorCQkiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8k e2Nla25hbWV9LmJpbiIsCisJCSctb3V0JywKKwkJIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisJaWYgKCRkaWdlc3QgbmUg J1NIQTEnKQorCXsKKwkJIyBUaGVzZSBvcHRpb25zIHJlcXVpcmUgT3BlblNTTCA+PTEuMS4w LCBzbyBpZiB0aGUgZGlnZXN0IGlzCisJCSMgU0hBMSwgd2hpY2ggaXMgdGhlIGRlZmF1bHQs IG9taXQgdGhlIG9wdGlvbnMuCisJCXB1c2ggQGNtZCwKKwkJICAnLXBrZXlvcHQnLCAicnNh X21nZjFfbWQ6JGRpZ2VzdCIsCisJCSAgJy1wa2V5b3B0JywgInJzYV9vYWVwX21kOiRkaWdl c3QiOworCX0KKwlzeXN0ZW1fb3JfYmFpbCBAY21kOworCisJbXkgJGNla2VuY2hleCA9IHVu cGFjaygnSConLAorCQlzbHVycF9maWxlCisJCSAgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKwkjIGNyZWF0ZSBDRUsg aW4gZGF0YWJhc2UKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJCXFxe0NSRUFU RSBDT0xVTU4gRU5DUllQVElPTiBLRVkgJHtjZWtuYW1lfSBXSVRIIFZBTFVFUyAoY29sdW1u X21hc3Rlcl9rZXkgPSAke2Nta25hbWV9LCBhbGdvcml0aG0gPSAnJHtjbWthbGd9JywgZW5j cnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30KKwkpOworCisJcmV0dXJuOwor fQorCisKK215ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CitteSAkY21r MmZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMicpOworY3JlYXRlX2NlaygnY2VrMScsIDQ4 LCAnY21rMScsICRjbWsxZmlsZW5hbWUpOworY3JlYXRlX2NlaygnY2VrMicsIDcyLCAnY21r MicsICRjbWsyZmlsZW5hbWUpOworCiskRU5We1BHQ09MVU1ORU5DUllQVElPTn0gPSAnb24n OworJEVOVntQR0NNS0xPT0tVUH0gPQorICAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRl c3Q6OlV0aWxzOjp0bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCisKKyRub2RlLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQs CisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBj ZWsxKSwKKyAgICBjIHNtYWxsaW50IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jl cycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKDEsICQxLCAkMikg XGJpbmQgJ3ZhbDEnIDExIFxnCitJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMg KDIsICQxLCAkMikgXGJpbmQgJ3ZhbDInIDIyIFxnCit9KTsKKworIyBFeHBlY3RlZCBjaXBo ZXJ0ZXh0IGxlbmd0aCBpcyAyIGJsb2NrcyBvZiBBRVMgb3V0cHV0ICgyICogMTYpIHBsdXMK KyMgaGFsZiBTSEEtMjU2IG91dHB1dCAoMTYpIGluIGhleCBlbmNvZGluZzogKDIgKiAxNiAr IDE2KSAqIDIgPSA5NgorbGlrZSgKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxKSBUTyBTVERPVVR9KSwKKwlxci8xXHRlbmNyeXB0 ZWRcJFswLTlhLWZdezk2fVx0ZW5jcnlwdGVkXCRbMC05YS1mXXs5Nn1cbjJcdGVuY3J5cHRl ZFwkWzAtOWEtZl17OTZ9XHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVk IGRhdGEgaXMgZW5jcnlwdGVkJyk7CisKK215ICRyZXN1bHQ7CisKKyRyZXN1bHQgPSAkbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxIFxn ZGVzY30pOworaXMoICRyZXN1bHQsCisJcShhfGludGVnZXIKK2J8dGV4dAorY3xzbWFsbGlu dCksCisJJ3F1ZXJ5IHJlc3VsdCBkZXNjcmlwdGlvbiBoYXMgb3JpZ2luYWwgdHlwZScpOwor CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBi LCBjIEZST00gdGJsMX0pOworaXMoICRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwy MiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQnKTsKKworeworCWxvY2FsICRFTlZ7UEdD TUtMT09LVVB9ID0gJyo9cnVuOmJyb2tlbiAlayAlcCc7CisJJHJlc3VsdCA9ICRub2RlLT5w c3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CisJaXNudCgk cmVzdWx0LCAwLCAncXVlcnkgZmFpbHMgd2l0aCBicm9rZW4gY21rbG9va3VwIHJ1biBzZXR0 aW5nJyk7Cit9CisKK3sKKwlsb2NhbCAkRU5We1RFU1RXT1JLRElSfSA9ICR7UG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja307CisJbG9jYWwgJEVOVntQR0NNS0xPT0tVUH0g PQorCSAgcXF7Kj1ydW46IiRwZXJsYmluIiAuL3Rlc3RfcnVuX2RlY3J5cHQucGwgJWsgJWEg JXB9OworCisJbXkgJHN0ZG91dDsKKwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9LAorCQlzdGRvdXQgPT4gXCRzdGRvdXQp OworCWlzKCAkc3Rkb3V0LAorCQlxKDF8dmFsMXwxMQorMnx2YWwyfDIyKSwKKwkJJ2RlY3J5 cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBjbWtsb29rdXAgcnVuJyk7Cit9CisKKworJG5vZGUt PmNvbW1hbmRfZmFpbHNfbGlrZSgKKwlbICd0ZXN0X2NsaWVudCcsICd0ZXN0MScgXSwKKwlx ci9ub3QgZW5jcnlwdGVkLywKKwkndGVzdCBjbGllbnQgZmFpbHMgYmVjYXVzZSBwYXJhbWV0 ZXJzIG5vdCBlbmNyeXB0ZWQnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCAkcmVzdWx0LAor CXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFm dGVyIHRlc3QgY2xpZW50IGluc2VydCcpOworCiskbm9kZS0+Y29tbWFuZF9vayhbICd0ZXN0 X2NsaWVudCcsICd0ZXN0MicgXSwgJ3Rlc3QgY2xpZW50IHRlc3QgMicpOworCiskcmVzdWx0 ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00g dGJsMX0pOworaXMoICRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwz fDMzKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNl cnQgMicpOworCitsaWtlKAorCSRub2RlLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsIHF7 Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxIFdIRVJFIGEgPSAzKSBUTyBTVERPVVR9KSwKKwlx ci8zXHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5j cnlwdGVkJyk7CisKKworIyBUZXN0IGNvcHkgYW5kIHJlc3RvcmUKKworbXkgJGNvcHlfb3V0 ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkgdGJsMSBUTyBTVERPVVQ7 fSk7Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtDUkVBVEUgVEFCTEUgdGJs MV9jb3B5IChMSUtFIHRibDEgSU5DTFVESU5HIEVOQ1JZUFRFRCl9KTsKKyRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwlxe0NPUFkgdGJsMV9jb3B5IEZST00gU1RESU47fSAuICJc biIgLiAkY29weV9vdXQgLiAiXFxcLlxuIik7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxX2NvcHl9KTsKK2lz KCAkcmVzdWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIKKzN8dmFsM3wzMyksCisJJ2Rl Y3J5cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIgQ09QWSBkdW1wIGFuZCByZXN0b3JlJyk7CisK KworIyBUZXN0cyB3aXRoIGJpbmFyeSBmb3JtYXQKKworIyBTdXBwbHlpbmcgYSBwYXJhbWV0 ZXIgaW4gYmluYXJ5IGZvcm1hdCB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMgdG8gYmUKKyMgZW5j cnlwdGVkIHJlc3VsdHMgaW4gYW4gZXJyb3IgZnJvbSBsaWJwcS4KKyRub2RlLT5jb21tYW5k X2ZhaWxzX2xpa2UoCisJWyAndGVzdF9jbGllbnQnLCAndGVzdDMnIF0sCisJcXIvZm9ybWF0 IG11c3QgYmUgdGV4dCBmb3IgZW5jcnlwdGVkIHBhcmFtZXRlci8sCisJJ3Rlc3QgY2xpZW50 IGZhaWxzIGJlY2F1c2UgdG8tYmUtZW5jcnlwdGVkIHBhcmFtZXRlciBpcyBpbiBiaW5hcnkg Zm9ybWF0JworKTsKKworIyBSZXF1ZXN0aW5nIGEgYmluYXJ5IHJlc3VsdCBzZXQgc3RpbGwg Y2F1c2VzIGFueSBlbmNyeXB0ZWQgY29sdW1ucyB0bworIyBiZSByZXR1cm5lZCBhcyB0ZXh0 IGZyb20gdGhlIGxpYnBxIEFQSS4KKyRub2RlLT5jb21tYW5kX2xpa2UoCisJWyAndGVzdF9j bGllbnQnLCAndGVzdDQnIF0sCisJcXIvPDAsMD49MTpcbjwwLDE+PTA6dmFsMVxuPDAsMj49 MDoxMS8sCisJJ2JpbmFyeSByZXN1bHQgc2V0IHdpdGggZW5jcnlwdGVkIGNvbHVtbnM6IGVu Y3J5cHRlZCBjb2x1bW5zIHJldHVybmVkIGFzIHRleHQnCispOworCisKKyMgVGVzdCBVUERB VEUKKworJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxeworVVBEQVRFIHRibDEg U0VUIGIgPSAkMiBXSEVSRSBhID0gJDEgXGJpbmQgJzMnICd2YWwzdXBkJyBcZworfSk7CisK KyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIs IGMgRlJPTSB0YmwxfSk7CitpcyggJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIy CiszfHZhbDN1cGR8MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHVwZGF0 ZScpOworCisKKyMgVGVzdCB2aWV3cworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHF7Q1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CisKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1VQREFURSB2MSBTRVQgYiA9ICQyIFdI RVJFIGEgPSAkMSBcYmluZCAnMycgJ3ZhbDN1cGQyJyBcZ30pOworCiskcmVzdWx0ID0KKyAg JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdjEg V0hFUkUgYSBJTiAoMSwgMyl9KTsKK2lzKCAkcmVzdWx0LAorCXEoMXx2YWwxfDExCiszfHZh bDN1cGQyfDMzKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBmcm9tIHZpZXcnKTsKKwor CisjIFRlc3QgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uCisKKyRub2RlLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMiAoCisgICAgYSBpbnQsCisg ICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlz dGljLCBjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwyIChhLCBiKSBW QUxVRVMgKCQxLCAkMiksICgkMywgJDQpLCAoJDUsICQ2KSBcYmluZCAnMScgJ3ZhbEEnICcy JyAndmFsQicgJzMnICd2YWxBJyBcZworfSk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwyfSk7CitpcyggJHJlc3Vs dCwKKwlxKDF8dmFsQQorMnx2YWxCCiszfHZhbEEpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVz dWx0IGluIHRhYmxlIGZvciBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24nKTsKKworaXMoICRu b2RlLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsIHF7U0VMRUNUIGIsIGNvdW50KCopIEZS T00gdGJsMiBHUk9VUCBCWSBiIE9SREVSIEJZIDJ9KSwKKwlxKHZhbEJ8MQordmFsQXwyKSwK KwknZ3JvdXAgYnkgZGV0ZXJtaW5pc3RpY2FsbHkgZW5jcnlwdGVkIGNvbHVtbicpOworCitp cyggJG5vZGUtPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSBGUk9NIHRi bDIgV0hFUkUgYiA9ICQxIFxiaW5kICd2YWxCJyBcZ30pLAorCXEoMiksCisJJ3NlbGVjdCBi eSBkZXRlcm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1uJyk7CisKKworIyBUZXN0IG11 bHRpcGxlIGtleXMgaW4gb25lIHRhYmxlCisKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMyAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBj IHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazIsIGFs Z29yaXRobSA9ICdBRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCcpCispOworfSk7CisK KyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDMg KGEsIGIsIGMpIFZBTFVFUyAoMSwgJDEsICQyKSBcYmluZCAndmFsQjEnICd2YWxDMScgXGcK K30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVD VCBhLCBiLCBjIEZST00gdGJsM30pOworaXMoJHJlc3VsdCwgcSgxfHZhbEIxfHZhbEMxKSwg J2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgbXVsdGlwbGUga2V5cycpOworCiskbm9kZS0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwzIChhLCBiLCBjKSBW QUxVRVMgKCQxLCAkMiwgJDMpLCAoJDQsICQ1LCAkNikgXGJpbmQgJzInICd2YWxCMicgJ3Zh bEMyJyAnMycgJ3ZhbEIzJyAndmFsQzMnIFxnCit9KTsKKworJHJlc3VsdCA9ICRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lz KCAkcmVzdWx0LAorCXEoMXx2YWxCMXx2YWxDMQorMnx2YWxCMnx2YWxDMgorM3x2YWxCM3x2 YWxDMyksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgbXVsdGlwbGUga2V5cyBhZnRlciBz ZWNvbmQgaW5zZXJ0Jyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgYi9zcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJmMmRhYzRlMTQzCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBs CkBAIC0wLDAgKzEsMTI1IEBACisjIENvcHlyaWdodCAoYykgMjAyMS0yMDI0LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRlc3QgY29sdW1uIG1hc3RlciBr ZXkgcm90YXRpb24uICBGaXJzdCwgd2UgZ2VuZXJhdGUgQ01LMSBhbmQgYSBDRUsKKyMgZW5j cnlwdGVkIHdpdGggaXQuICBUaGVuIHdlIGFkZCBhIENNSzIgYW5kIGVuY3J5cHQgdGhlIENF SyB3aXRoIGl0CisjIGFzIHdlbGwuICAoUmVjYWxsIHRoYXQgYSBDRUsgY2FuIGJlIGFzc29j aWF0ZWQgd2l0aCBtdWx0aXBsZSBDTUtzLAorIyBmb3IgdGhpcyByZWFzb24uICBUaGF0J3Mg d2h5IHBnX2NvbGVuY2tleWRhdGEgaXMgc3BsaXQgb3V0IGZyb20KKyMgcGdfY29sZW5ja2V5 LikgIFRoZW4gd2UgcmVtb3ZlIENNSzEuICBXZSB0ZXN0IHRoYXQgd2UgY2FuIGdldAorIyBk ZWNyeXB0ZWQgcXVlcnkgcmVzdWx0cyBhdCBlYWNoIHN0ZXAuCisKK3VzZSBzdHJpY3Q7Cit1 c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0 Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitteSAkb3BlbnNzbCA9 ICRFTlZ7T1BFTlNTTH07CisKK215ICRjbWthbGcgPSAnUlNBRVNfT0FFUF9TSEFfMSc7CisK K215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlJyk7Cisk bm9kZS0+aW5pdDsKKyRub2RlLT5zdGFydDsKKworCitzdWIgY3JlYXRlX2NtaworeworCW15 ICgkY21rbmFtZSkgPSBAXzsKKwlteSAkY21rZmlsZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nta25hbWV9LnBlbSI7CisJc3lzdGVtX29yX2Jh aWwgJG9wZW5zc2wsICdnZW5wa2V5JywgJy1hbGdvcml0aG0nLCAncnNhJywgJy1vdXQnLAor CSAgJGNta2ZpbGVuYW1lOworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JF QVRFIENPTFVNTiBNQVNURVIgS0VZICR7Y21rbmFtZX19KTsKKwlyZXR1cm4gJGNta2ZpbGVu YW1lOworfQorCisKK215ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CisK KyMgY3JlYXRlIENFSworbXkgKCRjZWtuYW1lLCAkYnl0ZXMpID0gKCdjZWsxJywgNDgpOwor CisjIGdlbmVyYXRlIHJhbmRvbSBieXRlcworc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdy YW5kJywgJy1vdXQnLAorICAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fS8ke2Nla25hbWV9LmJpbiIsICRieXRlczsKKworIyBlbmNyeXB0IENFSyB1c2luZyBDTUsK K3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncGtleXV0bCcsICctZW5jcnlwdCcsCisgICct aW5rZXknLCAkY21rMWZpbGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9k ZTpvYWVwJywKKyAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hl Y2t9LyR7Y2VrbmFtZX0uYmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpV dGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiOworCitteSAkY2VrZW5jaGV4 ID0gdW5wYWNrKCdIKicsCisJc2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiKTsKKworIyBjcmVhdGUgQ0VLIGlu IGRhdGFiYXNlCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXF7Q1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25hbWV9IFdJVEggVkFMVUVTIChjb2x1bW5fbWFz dGVyX2tleSA9IGNtazEsIGFsZ29yaXRobSA9ICckY21rYWxnJywgZW5jcnlwdGVkX3ZhbHVl ID0gJ1xceCR7Y2VrZW5jaGV4fScpO30KKyk7CisKKyRFTlZ7UEdDT0xVTU5FTkNSWVBUSU9O fSA9ICdvbic7CiskRU5We1BHQ01LTE9PS1VQfSA9CisgICcqPWZpbGU6JyAuICR7UG9zdGdy ZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30gLiAnLyVrLnBlbSc7CisKKyRub2RlLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAg YSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9r ZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jlcycs IHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDEsICQxKSBcYmluZCAndmFs MScgXGcKK0lOU0VSVCBJTlRPIHRibDEgKGEsIGIpIFZBTFVFUyAoMiwgJDEpIFxiaW5kICd2 YWwyJyBcZworfSk7CisKK2lzKCAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VM RUNUIGEsIGIgRlJPTSB0YmwxfSksCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRl ZCBxdWVyeSByZXN1bHQgd2l0aCBvbmUgQ01LJyk7CisKKworIyBjcmVhdGUgbmV3IENNSwor bXkgJGNtazJmaWxlbmFtZSA9IGNyZWF0ZV9jbWsoJ2NtazInKTsKKworIyBlbmNyeXB0IENF SyB1c2luZyBuZXcgQ01LCisjCisjIChIZXJlLCB3ZSBzdGlsbCBoYXZlIHRoZSBwbGFpbnRl eHQgb2YgdGhlIENFSyBhdmFpbGFibGUgZnJvbQorIyBlYXJsaWVyLiAgSW4gcmVhbGl0eSwg b25lIHdvdWxkIGRlY3J5cHQgdGhlIENFSyB3aXRoIHRoZSBmaXJzdCBDTUsKKyMgYW5kIHRo ZW4gcmUtZW5jcnlwdCBpdCB3aXRoIHRoZSBzZWNvbmQgQ01LLikKK3N5c3RlbV9vcl9iYWls ICRvcGVuc3NsLCAncGtleXV0bCcsICctZW5jcnlwdCcsCisgICctaW5rZXknLCAkY21rMmZp bGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKyAgJy1p bicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0u YmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fS8ke2Nla25hbWV9LmJpbi5lbmMiOworCiskY2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsCisJ c2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nl a25hbWV9LmJpbi5lbmMiKTsKKworIyBhZGQgbmV3IGRhdGEgcmVjb3JkIGZvciBDRUsgaW4g ZGF0YWJhc2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxcXtBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgJHtjZWtuYW1lfSBBREQgVkFMVUUgKGNvbHVtbl9tYXN0ZXJf a2V5ID0gY21rMiwgYWxnb3JpdGhtID0gJyRjbWthbGcnLCBlbmNyeXB0ZWRfdmFsdWUgPSAn XFx4JHtjZWtlbmNoZXh9Jyk7fQorKTsKKworCitpcyggJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIp LAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggdHdvIENNS3MnKTsKKworCisjIGRl bGV0ZSBDRUsgcmVjb3JkIGZvciBmaXJzdCBDTUsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwlxcXtBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgJHtjZWtuYW1lfSBEUk9Q IFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEpO30KKyk7CisKKworaXMoICRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KSwKKwlx KDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIG9ubHkg bmV3IENNSycpOworCisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv Y29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL3Rlc3RfY2xpZW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmM1ZGY4OGQ0N2QyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqIENv cHlyaWdodCAoYykgMjAyMS0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAibGli cHEtZmUuaCIKKworCisvKgorICogVGVzdCBjYWxscyB0aGF0IGRvbid0IHN1cHBvcnQgZW5j cnlwdGlvbgorICovCitzdGF0aWMgaW50Cit0ZXN0MShQR2Nvbm4gKmNvbm4pCit7CisJUEdy ZXN1bHQgICAqcmVzOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMiLCAi MzMifTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDEg KGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAorCQkJCQkzLCBOVUxMKTsKKwlpZiAo UFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50 ZihzdGRlcnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQo Y29ubiwgIiIsIDMsIHZhbHVlcywgTlVMTCwgTlVMTCwgMCk7CisJaWYgKFBRcmVzdWx0U3Rh dHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAi UFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUZXN0 IGZvcmNlZCBlbmNyeXB0aW9uCisgKi8KK3N0YXRpYyBpbnQKK3Rlc3QyKFBHY29ubiAqY29u bikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBjaGFyICp2 YWx1ZXNbXSA9IHsiMyIsICJ2YWwzIiwgIjMzIn07CisJaW50CQkJZm9ybWF0c1tdID0gezB4 MDAsIDB4MTAsIDB4MDB9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiSU5TRVJU IElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgkMSwgJDIsICQzKSIsCisJCQkJCTMsIE5V TEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJ eworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJlcGFyZSgpIGZhaWxlZDogJXNcbiIsCisJCQkJ UFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMyID0gUFFk ZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMikg IT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFkZXNjcmli ZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7 CisJCXJldHVybiAxOworCX0KKworCWlmICghKCFQUXBhcmFtaXNlbmNyeXB0ZWQocmVzMiwg MCkgJiYKKwkJICBQUXBhcmFtaXNlbmNyeXB0ZWQocmVzMiwgMSkpKQorCXsKKwkJZnByaW50 ZihzdGRlcnIsICJ3cm9uZyByZXN1bHRzIGZyb20gUFFwYXJhbWlzZW5jcnlwdGVkKClcbiIp OworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMgPSBQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZChj b25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBmb3JtYXRzLCAwLCByZXMyKTsKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50Zihz dGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1l c3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoK KyAqIFRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4geW91IHN1cHBseSBhIGJpbmFyeSBwYXJhbWV0 ZXIgdGhhdCBpcyByZXF1aXJlZCB0byBiZQorICogZW5jcnlwdGVkLgorICovCitzdGF0aWMg aW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzOworCWNvbnN0 IGNoYXIgKnZhbHVlc1tdID0geyIifTsKKwlpbnQJCQlsZW5ndGhzW10gPSB7MX07CisJaW50 CQkJZm9ybWF0c1tdID0gezF9OworCisJcmVzID0gUFFleGVjUGFyYW1zKGNvbm4sICJJTlNF UlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKDEwMCwgTlVMTCwgJDEpIiwKKwkJCQkJ ICAgMywgTlVMTCwgdmFsdWVzLCBsZW5ndGhzLCBmb3JtYXRzLCAwKTsKKwlpZiAoUFFyZXN1 bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRl cnIsICJQUWV4ZWNQYXJhbXMoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdl KGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBU ZXN0IHdoYXQgaGFwcGVucyB3aGVuIHlvdSByZXF1ZXN0IHJlc3VsdHMgaW4gYmluYXJ5IGFu ZCB0aGUgcmVzdWx0IHJvd3MKKyAqIGNvbnRhaW4gYW4gZW5jcnlwdGVkIGNvbHVtbi4KKyAq Lworc3RhdGljIGludAordGVzdDQoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJl czsKKworCXJlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAiU0VMRUNUIGEsIGIsIGMgRlJPTSB0 YmwxIFdIRVJFIGEgPSAxIiwgMCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgMSk7CisJaWYg KFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQorCXsKKwkJZnByaW50 ZihzdGRlcnIsICJQUWV4ZWNQYXJhbXMoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JN ZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJZm9yIChpbnQgcm93ID0gMDsg cm93IDwgUFFudHVwbGVzKHJlcyk7IHJvdysrKQorCQlmb3IgKGludCBjb2wgPSAwOyBjb2wg PCBQUW5maWVsZHMocmVzKTsgY29sKyspCisJCQlwcmludGYoIjwlZCwlZD49JWQ6JXNcbiIs IHJvdywgY29sLCBQUWZmb3JtYXQocmVzLCBjb2wpLCBQUWdldHZhbHVlKHJlcywgcm93LCBj b2wpKTsKKwlyZXR1cm4gMDsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKK3sKKwlQR2Nvbm4JICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKworCWNvbm4gPSBQ UWNvbm5lY3RkYigiIik7CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5FQ1RJT05fT0sp CisJeworCQlmcHJpbnRmKHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVk OiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0K KworCWlmIChhcmdjIDwgMiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVybiA4NzsKKwll bHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0ID0gdGVzdDEo Y29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09IDApCisJCXJl dCA9IHRlc3QyKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDMiKSA9 PSAwKQorCQlyZXQgPSB0ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwg InRlc3Q0IikgPT0gMCkKKwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZQorCQlyZXQgPSA4 ODsKKworCVBRZmluaXNoKGNvbm4pOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBsIGIvc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbApuZXcgZmlsZSBtb2Rl IDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uZmVmMjVkYzY3ODUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBsCkBA IC0wLDAgKzEsNjEgQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIFRlc3Qvc2FtcGxlIGNvbW1h bmQgZm9yIGxpYnBxIGNta2xvb2t1cCBydW4gc2NoZW1lCisjCisjIFRoaXMganVzdCBwbGFj ZXMgdGhlIGRhdGEgaW50byB0ZW1wb3JhcnkgZmlsZXMgYW5kIHJ1bnMgdGhlIG9wZW5zc2wK KyMgY29tbWFuZCBvbiBpdC4gIChJbiBwcmFjdGljZSwgdGhpcyBjb3VsZCBtb3JlIHNpbXBs eSBiZSB3cml0dGVuIGFzIGEKKyMgc2hlbGwgc2NyaXB0LCBidXQgdGhpcyB3YXkgaXQncyBt b3JlIHBvcnRhYmxlLikKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5n czsKKworbXkgKCRjbWtuYW1lLCAkYWxnLCAkZmlsZW5hbWUpID0gQEFSR1Y7CisKK2RpZSB1 bmxlc3MgJGFsZyA9fiAnUlNBRVNfT0FFUF9TSEEnOworCitteSAkZGlnZXN0ID0gJGFsZzsK KyRkaWdlc3QgPX4gcy8uKig/PVNIQSkvLzsKKyRkaWdlc3QgPX4gcy9fLy9nOworCitteSAk dG1wZGlyID0gJEVOVntURVNUV09SS0RJUn07CisKK215ICRvcGVuc3NsID0gJEVOVntPUEVO U1NMfTsKKworbXkgQGNtZCA9ICgKKwkkb3BlbnNzbCwgJ3BrZXl1dGwnLAorCSctZGVjcnlw dCcsICctaW5rZXknLAorCSIke3RtcGRpcn0vJHtjbWtuYW1lfS5wZW0iLCAnLXBrZXlvcHQn LAorCSdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLCAnLWluJywKKwkkZmlsZW5hbWUsICctb3V0 JywKKwkiJHt0bXBkaXJ9L291dHB1dC50bXAiKTsKKworaWYgKCRkaWdlc3QgbmUgJ1NIQTEn KQoreworCSMgVGhlc2Ugb3B0aW9ucyByZXF1aXJlIE9wZW5TU0wgPj0xLjEuMCwgc28gaWYg dGhlIGRpZ2VzdCBpcworCSMgU0hBMSwgd2hpY2ggaXMgdGhlIGRlZmF1bHQsIG9taXQgdGhl IG9wdGlvbnMuCisJcHVzaCBAY21kLAorCSAgJy1wa2V5b3B0JywgInJzYV9tZ2YxX21kOiRk aWdlc3QiLAorCSAgJy1wa2V5b3B0JywgInJzYV9vYWVwX21kOiRkaWdlc3QiOworfQorCitz eXN0ZW0oQGNtZCkgPT0gMCBvciBkaWUgInN5c3RlbSBmYWlsZWQ6ICQ/IjsKKworb3BlbiBt eSAkZmgsICc8OnJhdycsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIgb3IgZGllICQhOworbXkg JGRhdGEgPSAnJzsKKword2hpbGUgKDEpCit7CisJbXkgJHN1Y2Nlc3MgPSByZWFkICRmaCwg JGRhdGEsIDEwMCwgbGVuZ3RoKCRkYXRhKTsKKwlkaWUgJCEgaWYgbm90IGRlZmluZWQgJHN1 Y2Nlc3M7CisJbGFzdCBpZiBub3QgJHN1Y2Nlc3M7Cit9CisKK2Nsb3NlICRmaDsKKwordW5s aW5rICIke3RtcGRpcn0vb3V0cHV0LnRtcCI7CisKK2Jpbm1vZGUgU1RET1VUOworCitwcmlu dCAkZGF0YTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qv bWVzb24uYnVpbGQKaW5kZXggNzAyMjEzYmM2ZjYuLjIxM2Y3ZWRmNjZlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9tZXNvbi5idWlsZApAQCAt MTAsNiArMTAsNyBAQCBzdWJkaXIoJ3N1YnNjcmlwdGlvbicpCiBzdWJkaXIoJ21vZHVsZXMn KQogCiBpZiBzc2wuZm91bmQoKQorICBzdWJkaXIoJ2NvbHVtbl9lbmNyeXB0aW9uJykKICAg c3ViZGlyKCdzc2wnKQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYjY0YjMyNDFiOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dApAQCAtMCwwICsxLDU0MSBA QAorXHNldCBISURFX0NPTFVNTl9FTkNSWVBUSU9OIGZhbHNlCitDUkVBVEUgUk9MRSByZWdy ZXNzX2VuY191c2VyMTsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBmYWlsIFdJVEggKAor ICAgIGZvbyA9IGJhcgorKTsKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgYXR0cmlidXRl ICJmb28iIG5vdCByZWNvZ25pemVkCitMSU5FIDI6ICAgICBmb28gPSBiYXIKKyAgICAgICAg ICAgIF4KK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBmYWlsIFdJVEggKAorICAgIHJlYWxt ID0gJ3Rlc3QnLAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworRVJST1I6ICBjb25mbGljdGlu ZyBvciByZWR1bmRhbnQgb3B0aW9ucworTElORSAzOiAgICAgcmVhbG0gPSAndGVzdCcKKyAg ICAgICAgICAgIF4KK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAg IHJlYWxtID0gJ3Rlc3QnCispOworQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsx IElTICdjb2x1bW4gbWFzdGVyIGtleSc7CistLSBkdXBsaWNhdGUKK0NSRUFURSBDT0xVTU4g TUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworRVJST1I6 ICBjb2x1bW4gbWFzdGVyIGtleSAiY21rMSIgYWxyZWFkeSBleGlzdHMKK0NSRUFURSBDT0xV TU4gTUFTVEVSIEtFWSBjbWsxYSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKK0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ IGNtazJhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3R4JworKTsKK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNtazJhIChyZWFsbSA9ICd0ZXN0MicpOworLS0gZmFpbAorQUxURVIgQ09M VU1OIE1BU1RFUiBLRVkgY21rMmEgKHJlYWxtID0gJ3Rlc3QyJywgcmVhbG0gPSAndGVzdDIn KTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKK0xJTkUgMTog QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMmEgKHJlYWxtID0gJ3Rlc3QyJywgcmVhbG0g PSAndGVzLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tIGZhaWwKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazJh IChmb28gPSBiYXIpOworRVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSBhdHRyaWJ1dGUgImZv byIgbm90IHJlY29nbml6ZWQKK0xJTkUgMTogQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21r MmEgKGZvbyA9IGJhcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgV0lUSCBWQUxVRVMgKAor ICAgIGZvbyA9IGJhcgorKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5IGF0dHJp YnV0ZSAiZm9vIiBub3QgcmVjb2duaXplZAorTElORSAyOiAgICAgZm9vID0gYmFyCisgICAg ICAgICAgICBeCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgV0lUSCBWQUxV RVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBjb2x1bW5fbWFzdGVy X2tleSA9IGNtazEKKyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRp b25zCitMSU5FIDM6ICAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEKKyAgICAgICAgICAg IF4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbCBXSVRIIFZBTFVFUyAoCisg ICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1 ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAgYXR0cmlidXRlICJjb2x1bW5fbWFzdGVy X2tleSIgbXVzdCBiZSBzcGVjaWZpZWQKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg ZmFpbCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAg IGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAgYXR0cmlidXRl ICJhbGdvcml0aG0iIG11c3QgYmUgc3BlY2lmaWVkCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGZhaWwgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScKKyk7CitFUlJPUjogIGF0 dHJpYnV0ZSAiZW5jcnlwdGVkX3ZhbHVlIiBtdXN0IGJlIHNwZWNpZmllZAorQ1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ2ZvbycsICAtLSBpbnZhbGlkCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworRVJST1I6ICB1bnJlY29n bml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06IGZvbworTElORSAzOiAgICAgYWxnb3JpdGht ID0gJ2ZvbycsICAtLSBpbnZhbGlkCisgICAgICAgICAgICBeCitDUkVBVEUgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5 ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5j cnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ09NTUVOVCBPTiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5JzsKKy0tIGR1cGxp Y2F0ZQorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgK KyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVT X09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsK K0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWsxIiBhbHJlYWR5IGV4aXN0cwor QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBjb2x1 bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NI QV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CistLSBkdXBs aWNhdGUKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisg ICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNf T0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOwor RVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImNlazEiIGFscmVhZHkgaGFzIGRhdGEg Zm9yIG1hc3RlciBrZXkgImNtazFhIgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZh aWwgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFs Z29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAn XHhERUFEQkVFRicKKyk7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiZmFpbCIg ZG9lcyBub3QgZXhpc3QKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMiBXSVRI IFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLAorICAgIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFE QkVFRicKKyksCisoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyYSwKKyAgICBhbGdv cml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4 REVBREJFRUYnCispOworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0IFdJVEgg VkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGht ID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURC RUVGJworKTsKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0 ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoZm9vID0gYmFyKQorKTsKK0VSUk9S OiAgdW5yZWNvZ25pemVkIGNvbHVtbiBlbmNyeXB0aW9uIHBhcmFtZXRlcjogZm9vCitDUkVB VEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRl eHQgRU5DUllQVEVEIFdJVEggKGVuY3J5cHRpb25fdHlwZSA9IHJhbmRvbWl6ZWQpCispOwor RVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbXVzdCBiZSBzcGVjaWZpZWQKK0NSRUFU RSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4 dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCisp OworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgIm5vdGV4aXN0IiBkb2VzIG5vdCBl eGlzdAorQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQs CisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBj ZWsxLCBhbGdvcml0aG0gPSAnZm9vJykKKyk7CitFUlJPUjogIHVucmVjb2duaXplZCBlbmNy eXB0aW9uIGFsZ29yaXRobTogZm9vCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEg aW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9l bmNyeXB0aW9uX2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IHdyb25nKQorKTsKK0VS Uk9SOiAgdW5yZWNvZ25pemVkIGVuY3J5cHRpb24gdHlwZTogd3JvbmcKK0NSRUFURSBUQUJM RSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgY29sdW1uX2VuY3J5 cHRpb25fa2V5ID0gY2VrMSkKKyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJlZHVuZGFu dCBvcHRpb25zCitDUkVBVEUgVEFCTEUgdGJsXzI5ZjMgKAorICAgIGEgaW50LAorICAgIGIg dGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tl eSA9IGNlazEpCispOworXGQgdGJsXzI5ZjMKKyAgICAgICAgICAgICAgVGFibGUgInB1Ymxp Yy50YmxfMjlmMyIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAg IHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisKK1xkKyB0YmxfMjlmMwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu dGJsXzI5ZjMiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2Ny aXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAg IHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVk IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8IGNlazEgICAgICAg fCAgICAgICAgICAgICAgfCAKKworQ1JFQVRFIFRBQkxFIHRibF80NDdmICgKKyAgICBhIGlu dCwKKyAgICBiIHRleHQKKyk7CitBTFRFUiBUQUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMg dGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5j cnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYyk7CitcZCB0YmxfNDQ3ZgorICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLnRibF80NDdmIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KworXGQrIHRibF80NDdmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy50YmxfNDQ3ZiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3Rh dHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAg ICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVy bmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAgICAgICB8IAorCitDUkVBVEUgVEFCTEUgdGJs XzQ4OTcgKExJS0UgdGJsXzQ0N2YpOworQ1JFQVRFIFRBQkxFIHRibF82OTc4IChMSUtFIHRi bF80NDdmIElOQ0xVRElORyBFTkNSWVBURUQpOworXGQrIHRibF80ODk3CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfNDg5NyIK KyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwg U3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFp biAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICB8IAorCitcZCsgdGJsXzY5NzgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF82OTc4IgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRp b24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8 ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAg fCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg IHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK0NSRUFURSBW SUVXIHZpZXdfM2JjOSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzOworXGQrIHZpZXdfM2Jj OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyAicHVibGljLnZpZXdf M2JjOSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAKKyBi ICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0 ZW5kZWQgfCAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8IAorVmlldyBk ZWZpbml0aW9uOgorIFNFTEVDVCBhLAorICAgIGIsCisgICAgYworICAgRlJPTSB0YmxfMjlm MzsKKworQ1JFQVRFIFRBQkxFIHRibF8yMzg2IEFTIFNFTEVDVCAqIEZST00gdGJsXzI5ZjMg V0lUSCBOTyBEQVRBOworXGQrIHRibF8yMzg2CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfMjM4NiIKKyBDb2x1bW4gfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNy eXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAgICAgICB8IAorCitDUkVB VEUgVEFCTEUgdGJsXzI5NDEgQVMgU0VMRUNUICogRlJPTSB0YmxfMjlmMyBXSVRIIERBVEE7 CitFUlJPUjogIGVuY3J5cHRlZCBjb2x1bW5zIG5vdCB5ZXQgaW1wbGVtZW50ZWQgZm9yIHRo aXMgY29tbWFuZAorXGQrIHRibF8yOTQxCistLSB0ZXN0IHBhcnRpdGlvbiBkZWNsYXJhdGlv bnMKK0NSRUFURSBUQUJMRSB0YmxfMTNmYSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKSBQQVJUSVRJ T04gQlkgUkFOR0UgKGEpOworQ1JFQVRFIFRBQkxFIHRibF8xM2ZhXzEgUEFSVElUSU9OIE9G IHRibF8xM2ZhIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwMCk7CitcZCsgdGJsXzEzZmEK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAi cHVibGljLnRibF8xM2ZhIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAor IGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBl eHRlcm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKK1BhcnRpdGlvbiBrZXk6 IFJBTkdFIChhKQorUGFydGl0aW9uczogdGJsXzEzZmFfMSBGT1IgVkFMVUVTIEZST00gKDEp IFRPICgxMDApCisKK1xkKyB0YmxfMTNmYV8xCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF8xM2ZhXzEiCisgQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5j cnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAg ICAgICB8IAorUGFydGl0aW9uIG9mOiB0YmxfMTNmYSBGT1IgVkFMVUVTIEZST00gKDEpIFRP ICgxMDApCitQYXJ0aXRpb24gY29uc3RyYWludDogKChhIElTIE5PVCBOVUxMKSBBTkQgKGEg Pj0gMSkgQU5EIChhIDwgMTAwKSkKKworLS0gdGVzdCBpbmhlcml0YW5jZQorQ1JFQVRFIFRB QkxFIHRibF8zNmYzX2EgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7CitDUkVBVEUgVEFCTEUgdGJs XzM2ZjNfYiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1 bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19j ICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNy eXB0aW9uX2tleSA9IGNlazIpCispOworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2QgKAorICAg IGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25f a2V5ID0gY2VrMSwgZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYykKKyk7CitDUkVB VEUgVEFCTEUgdGJsXzM2ZjNfZSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0CispOworLS0g bm90IGltcGxlbWVudGVkIChidXQgY291bGQgYmUgb2spCitDUkVBVEUgVEFCTEUgdGJsXzM2 ZjNfYWIgKGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfYik7CitOT1RJ Q0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4g ImEiCitOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBv ZiBjb2x1bW4gImIiCitFUlJPUjogIG11bHRpcGxlIGluaGVyaXRhbmNlIG9mIGVuY3J5cHRl ZCBjb2x1bW5zIGlzIG5vdCBpbXBsZW1lbnRlZAorXGQrIHRibF8zNmYzX2FiCistLSBub3Qg aW1wbGVtZW50ZWQgKGJ1dCBzaG91bGQgZmFpbCkKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19h YyAoYyBpbnQpIElOSEVSSVRTICh0YmxfMzZmM19hLCB0YmxfMzZmM19jKTsKK05PVElDRTog IG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYSIK K05PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNv bHVtbiAiYiIKK0VSUk9SOiAgbXVsdGlwbGUgaW5oZXJpdGFuY2Ugb2YgZW5jcnlwdGVkIGNv bHVtbnMgaXMgbm90IGltcGxlbWVudGVkCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWQgKGMg aW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfZCk7CitOT1RJQ0U6ICBtZXJn aW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImEiCitOT1RJ Q0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4g ImIiCitFUlJPUjogIG11bHRpcGxlIGluaGVyaXRhbmNlIG9mIGVuY3J5cHRlZCBjb2x1bW5z IGlzIG5vdCBpbXBsZW1lbnRlZAorLS0gZmFpbAorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2Fl IChjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EsIHRibF8zNmYzX2UpOworTk9USUNFOiAg bWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJhIgor Tk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29s dW1uICJiIgorRVJST1I6ICBjb2x1bW4gImIiIGhhcyBhbiBlbmNyeXB0aW9uIHNwZWNpZmlj YXRpb24gY29uZmxpY3QKKy0tIG9rCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYV8xIChiIHRl eHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpLCBjIGlu dCkgSU5IRVJJVFMgKHRibF8zNmYzX2EpOworTk9USUNFOiAgbW92aW5nIGFuZCBtZXJnaW5n IGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgorREVUQUlMOiAgVXNlci1z cGVjaWZpZWQgY29sdW1uIG1vdmVkIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW5oZXJpdGVk IGNvbHVtbi4KK1xkKyB0YmxfMzZmM19hXzEKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfMzZmM19hXzEiCisgQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5j cnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAg ICAgICB8IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKK0luaGVy aXRzOiB0YmxfMzZmM19hCisKKy0tIGZhaWwKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hXzIg KGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMiks IGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSk7CitOT1RJQ0U6ICBtb3ZpbmcgYW5kIG1l cmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCitERVRBSUw6ICBV c2VyLXNwZWNpZmllZCBjb2x1bW4gbW92ZWQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBpbmhl cml0ZWQgY29sdW1uLgorRVJST1I6ICBjb2x1bW4gImIiIGhhcyBhbiBlbmNyeXB0aW9uIHNw ZWNpZmljYXRpb24gY29uZmxpY3QKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hXzIgKGIgdGV4 dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlw dGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYyksIGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNf YSk7CitOT1RJQ0U6ICBtb3ZpbmcgYW5kIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVy aXRlZCBkZWZpbml0aW9uCitERVRBSUw6ICBVc2VyLXNwZWNpZmllZCBjb2x1bW4gbW92ZWQg dG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBpbmhlcml0ZWQgY29sdW1uLgorRVJST1I6ICBjb2x1 bW4gImIiIGhhcyBhbiBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24gY29uZmxpY3QKK0NSRUFU RSBUQUJMRSB0YmxfMzZmM19hXzIgKGIgdGV4dCwgYyBpbnQpIElOSEVSSVRTICh0YmxfMzZm M19hKTsKK05PVElDRTogIG1vdmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5o ZXJpdGVkIGRlZmluaXRpb24KK0RFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNvbHVtbiBtb3Zl ZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCitFUlJPUjogIGNv bHVtbiAiYiIgaGFzIGFuIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbiBjb25mbGljdAorRFJP UCBUQUJMRSB0YmxfMzZmM19iLCB0YmxfMzZmM19jLCB0YmxfMzZmM19kLCB0YmxfMzZmM19l OworLS0gU0VUIFNDSEVNQQorQ1JFQVRFIFNDSEVNQSB0ZXN0X3NjaGVtYV9jZTsKK0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFNFVCBTQ0hFTUEgdGVzdF9zY2hlbWFfY2U7 CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFNFVCBTQ0hFTUEgdGVzdF9zY2hlbWFf Y2U7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgdGVzdF9zY2hlbWFfY2UuY2VrMSBT RVQgU0NIRU1BIHB1YmxpYzsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIHRlc3Rfc2NoZW1h X2NlLmNtazEgU0VUIFNDSEVNQSBwdWJsaWM7CitEUk9QIFNDSEVNQSB0ZXN0X3NjaGVtYV9j ZTsKKy0tIHByaXZpbGVnZXMKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nf ZW5jX3VzZXIxJzsKKy0tIGZhaWwKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MTAgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBh bGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0g J1x4REVBREJFRUYnCispOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1u IG1hc3RlciBrZXkgY21rMQorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworR1JBTlQg VVNBR0UgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBUTyByZWdyZXNzX2VuY191c2VyMTsK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsKKy0tIG9r IG5vdworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxMCBXSVRIIFZBTFVFUyAo CisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9ICdSU0FF U19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7 CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxMDsKKy0tIGZhaWwKK0NSRUFURSBU QUJMRSB0YmxfNzA0MCAoYSBpbnQsIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gY2VrMSkpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig Y29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazEKK0NSRUFURSBUQUJMRSB0YmxfNzA0MCAoYSBp bnQpOworLS0gZmFpbAorQUxURVIgVEFCTEUgdGJsXzcwNDAgQUREIENPTFVNTiBiIHRleHQg RU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpOworRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazEKK0RS T1AgVEFCTEUgdGJsXzcwNDA7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitHUkFO VCBVU0FHRSBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBUTyByZWdyZXNzX2VuY191 c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsK Ky0tIG9rIG5vdworQ1JFQVRFIFRBQkxFIHRibF83MDQwIChhIGludCwgYiB0ZXh0IEVOQ1JZ UFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSk7CitSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CistLSBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZp bGVnZQorU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlKCdyZWdy ZXNzX2VuY191c2VyMScsCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xlbmNrZXkgV0hF UkUgY2VrbmFtZT0nY2VrMScpLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1uX2VuY3J5cHRpb25f a2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZp bGVnZSgncmVncmVzc19lbmNfdXNlcjEnLCAnY2VrMScsICdVU0FHRScpOworIGhhc19jb2x1 bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlw dGlvbl9rZXlfcHJpdmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfcm9sZXMgV0hF UkUgcm9sbmFtZT0ncmVncmVzc19lbmNfdXNlcjEnKSwKKyAgICAoU0VMRUNUIG9pZCBGUk9N IHBnX2NvbGVuY2tleSBXSEVSRSBjZWtuYW1lPSdjZWsxJyksICdVU0FHRScpOworIGhhc19j b2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fZW5j cnlwdGlvbl9rZXlfcHJpdmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY29sZW5j a2V5IFdIRVJFIGNla25hbWU9J2NlazEnKSwgJ1VTQUdFJyk7CisgaGFzX2NvbHVtbl9lbmNy eXB0aW9uX2tleV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tl eV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19yb2xlcyBXSEVSRSByb2xu YW1lPSdyZWdyZXNzX2VuY191c2VyMScpLCAnY2VrMScsICdVU0FHRScpOworIGhhc19jb2x1 bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlw dGlvbl9rZXlfcHJpdmlsZWdlKCdjZWsxJywgJ1VTQUdFJyk7CisgaGFzX2NvbHVtbl9lbmNy eXB0aW9uX2tleV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tl eV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfZW5jX3VzZXIxJywgJ2NlazEnLCAnVVNBR0UnKTsKKyBo YXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKKy0tIGhhc19jb2x1bW5fbWFz dGVyX2tleV9wcml2aWxlZ2UKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlKCdyZWdyZXNzX2VuY191c2VyMScsCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xt YXN0ZXJrZXkgV0hFUkUgY21rbmFtZT0nY21rMScpLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1u X21hc3Rlcl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZp bGVnZSgncmVncmVzc19lbmNfdXNlcjEnLCAnY21rMScsICdVU0FHRScpOworIGhhc19jb2x1 bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJp dmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfcm9sZXMgV0hFUkUgcm9sbmFtZT0n cmVncmVzc19lbmNfdXNlcjEnKSwKKyAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX2NvbG1hc3Rl cmtleSBXSEVSRSBjbWtuYW1lPSdjbWsxJyksICdVU0FHRScpOworIGhhc19jb2x1bW5fbWFz dGVyX2tleV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdl KAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY29sbWFzdGVya2V5IFdIRVJFIGNta25hbWU9 J2NtazEnKSwgJ1VTQUdFJyk7CisgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VM RUNUIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQg RlJPTSBwZ19yb2xlcyBXSEVSRSByb2xuYW1lPSdyZWdyZXNzX2VuY191c2VyMScpLCAnY21r MScsICdVU0FHRScpOworIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBo YXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlKCdjbWsxJywgJ1VTQUdFJyk7CisgaGFz X2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fbWFzdGVyX2tl eV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfZW5jX3VzZXIxJywgJ2NtazEnLCAnVVNBR0UnKTsKKyBo YXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFRBQkxFIHRibF83MDQwOworUkVW T0tFIFVTQUdFIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEZST00gcmVncmVzc19l bmNfdXNlcjE7CitSRVZPS0UgVVNBR0UgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBGUk9N IHJlZ3Jlc3NfZW5jX3VzZXIxOworLS0gbm90IHVzZWZ1bCBoZXJlLCBqdXN0IGNoZWNraW5n IHRoYXQgaXQgcnVucworRElTQ0FSRCBDT0xVTU4gRU5DUllQVElPTiBLRVlTOworRFJPUCBD T0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorRVJST1I6ICBjYW5u b3QgZHJvcCBjb2x1bW4gbWFzdGVyIGtleSBjbWsxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBk ZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIG9mIGNv bHVtbiBlbmNyeXB0aW9uIGtleSBjZWsxIGZvciBjb2x1bW4gbWFzdGVyIGtleSBjbWsxIGRl cGVuZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorY29sdW1uIGVuY3J5cHRpb24ga2V5 IGRhdGEgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazQgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVyIGtleSBjbWsxCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8gY21rMzsKK0FMVEVSIENP TFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAtLSBmYWlsCitFUlJPUjog IGNvbHVtbiBtYXN0ZXIga2V5ICJjbWszIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgInB1 YmxpYyIKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAt LSBmYWlsCitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJjbWt4IiBkb2VzIG5vdCBleGlz dAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgUkVOQU1FIFRPIGNlazM7CitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMzsgIC0tIGZh aWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWszIiBhbHJlYWR5IGV4aXN0 cyBpbiBzY2hlbWEgInB1YmxpYyIKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWt4 IFJFTkFNRSBUTyBjZWt5OyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgImNla3giIGRvZXMgbm90IGV4aXN0CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdy ZWdyZXNzX2VuY191c2VyMSc7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAg LS0gZmFpbAorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBjZWszCitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBmYWlsCitFUlJPUjog IG11c3QgYmUgb3duZXIgb2YgY29sdW1uIG1hc3RlciBrZXkgY21rMworUkVTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMyBPV05FUiBU TyByZWdyZXNzX2VuY191c2VyMTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsz IE9XTkVSIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworXGRjZWsgY2VrMworICAgICAgICAgTGlz dCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIE93 bmVyICAgICAgIHwgTWFzdGVyIGtleSAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IGNlazMgfCByZWdyZXNzX2VuY191c2Vy MSB8IGNtazJhCisgcHVibGljIHwgY2VrMyB8IHJlZ3Jlc3NfZW5jX3VzZXIxIHwgY21rMwor KDIgcm93cykKKworXGRjbWsgY21rMworICAgICAgICBMaXN0IG9mIGNvbHVtbiBtYXN0ZXIg a2V5cworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBPd25lciAgICAgICB8IFJlYWxtIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIHB1YmxpYyB8IGNt azMgfCByZWdyZXNzX2VuY191c2VyMSB8IAorKDEgcm93KQorCitTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWszOyAgLS0gb2sgbm93CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAt LSBvayBub3cKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MWEpOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29s dW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNy eXB0aW9uIGtleSAiY2VrMSIgaGFzIG5vIGRhdGEgZm9yIG1hc3RlciBrZXkgImNtazFhIgor QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21h c3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkg ImZhaWwiIGRvZXMgbm90IGV4aXN0CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLCBhbGdvcml0aG0gPSAn Zm9vJyk7ICAtLSBmYWlsCitFUlJPUjogIGF0dHJpYnV0ZSAiYWxnb3JpdGhtIiBtdXN0IG5v dCBiZSBzcGVjaWZpZWQKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1Ag VkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsIGVuY3J5cHRlZF92YWx1ZSA9ICdc eERFQURCRUVGJyk7ICAtLSBmYWlsCitFUlJPUjogIGF0dHJpYnV0ZSAiZW5jcnlwdGVkX3Zh bHVlIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazQ7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsOworRVJST1I6ICBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitEUk9QIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgIm5vbmV4aXN0ZW50IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcK K0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZ IGZhaWw7CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlz dAorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CitOT1RJ Q0U6ICBjb2x1bW4gbWFzdGVyIGtleSAibm9uZXhpc3RlbnQiIGRvZXMgbm90IGV4aXN0LCBz a2lwcGluZworRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAppbmRleCBmYzQyZDQxOGJmMS4u OGRiYjRhODQ3YWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2Jq ZWN0X2FkZHJlc3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0 X2FkZHJlc3Mub3V0CkBAIC0zOCw2ICszOCw4IEBAIENSRUFURSBTRVJWRVIgImludGVnZXIi IEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3OwogQ1JFQVRFIFVTRVIgTUFQUElORyBG T1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJpbnRlZ2VyIjsKIEFMVEVSIERFRkFVTFQg UFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBJTiBTQ0hFTUEgcHVibGlj IEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVzc19hZGRyX3VzZXI7CiBBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgUkVWT0tFIERFTEVU RSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJfdXNlcjsKK0NSRUFURSBDT0xVTU4gTUFT VEVSIEtFWSBhZGRyX2NtazsKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9j ZWsgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gYWRkcl9jbWssIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5jcnlwdGVkX3ZhbHVlID0gJycpOwogLS0gdGhp cyB0cmFuc2Zvcm0gd291bGQgYmUgcXVpdGUgdW5zYWZlIHRvIGxlYXZlIGx5aW5nIGFyb3Vu ZCwKIC0tIGV4Y2VwdCB0aGF0IHRoZSBTUUwgbGFuZ3VhZ2UgcGF5cyBubyBhdHRlbnRpb24g dG8gdHJhbnNmb3JtczoKIENSRUFURSBUUkFOU0ZPUk0gRk9SIGludCBMQU5HVUFHRSBTUUwg KApAQCAtMTAxLDYgKzEwMyw3IEBAIEJFR0lOCiAgICAgICAgICgnbWF0ZXJpYWxpemVkIHZp ZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksCiAgICAgICAgICgndGFibGUgY29sdW1uJyksICgn Zm9yZWlnbiB0YWJsZSBjb2x1bW4nKSwKICAgICAgICAgKCdhZ2dyZWdhdGUnKSwgKCdmdW5j dGlvbicpLCAoJ3Byb2NlZHVyZScpLCAoJ3R5cGUnKSwgKCdjYXN0JyksCisgICAgICAgICgn Y29sdW1uIGVuY3J5cHRpb24ga2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEn KSwgKCdjb2x1bW4gbWFzdGVyIGtleScpLAogICAgICAgICAoJ3RhYmxlIGNvbnN0cmFpbnQn KSwgKCdkb21haW4gY29uc3RyYWludCcpLCAoJ2NvbnZlcnNpb24nKSwgKCdkZWZhdWx0IHZh bHVlJyksCiAgICAgICAgICgnb3BlcmF0b3InKSwgKCdvcGVyYXRvciBjbGFzcycpLCAoJ29w ZXJhdG9yIGZhbWlseScpLCAoJ3J1bGUnKSwgKCd0cmlnZ2VyJyksCiAgICAgICAgICgndGV4 dCBzZWFyY2ggcGFyc2VyJyksICgndGV4dCBzZWFyY2ggZGljdGlvbmFyeScpLApAQCAtMjAx LDYgKzIwNCwyNCBAQCBXQVJOSU5HOiAgZXJyb3IgZm9yIGNhc3Qse2FkZHJfbnNwLHp3ZWl9 LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCiBXQVJOSU5HOiAgZXJy b3IgZm9yIGNhc3Qse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0 aCBtdXN0IGJlIGV4YWN0bHkgMQogV0FSTklORzogIGVycm9yIGZvciBjYXN0LHtlaW5zLHp3 ZWksZHJlaX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKIFdBUk5J Tkc6ICBlcnJvciBmb3IgY2FzdCx7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogbmFtZSBs aXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkse2VpbnN9LHt9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVp bnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSx7ZWluc30se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMi IGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9u IGtleSx7YWRkcl9uc3AsendlaX0se306IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiYWRkcl9u c3AuendlaSIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5LHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAiYWRkcl9uc3AuendlaSIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJv ciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWksZHJlaX0se306IGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogZWlucy56d2VpLmRy ZWkKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3 ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3Qg aW1wbGVtZW50ZWQ6IGVpbnMuendlaS5kcmVpCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVt biBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5 ICJlaW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgZGF0YSx7ZWluc30se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGtleSBkYXRhLHthZGRyX25zcCx6d2VpfSx7fTogY29sdW1uIGVuY3J5cHRp b24ga2V5ICJhZGRyX25zcC56d2VpIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9y IGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7YWRkcl9uc3AsendlaX0se2ludGVn ZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90IGV4 aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtl aW5zLHp3ZWksZHJlaX0se306IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogZWlucy56d2VpLmRyZWkKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1u IGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnMsendlaSxkcmVpfSx7aW50ZWdlcn06IGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogZWlucy56d2VpLmRy ZWkKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2VpbnN9LHt9OiBj b2x1bW4gbWFzdGVyIGtleSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJv ciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG1hc3Rl ciBrZXkgImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVt biBtYXN0ZXIga2V5LHthZGRyX25zcCx6d2VpfSx7fTogY29sdW1uIG1hc3RlciBrZXkgImFk ZHJfbnNwLnp3ZWkiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVt biBtYXN0ZXIga2V5LHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IGNvbHVtbiBtYXN0ZXIg a2V5ICJhZGRyX25zcC56d2VpIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZv ciBjb2x1bW4gbWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBjcm9zcy1kYXRhYmFz ZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGVpbnMuendlaS5kcmVpCitXQVJO SU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zLHp3ZWksZHJlaX0se2lu dGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6 IGVpbnMuendlaS5kcmVpCiBXQVJOSU5HOiAgZXJyb3IgZm9yIHRhYmxlIGNvbnN0cmFpbnQs e2VpbnN9LHt9OiBtdXN0IHNwZWNpZnkgcmVsYXRpb24gYW5kIG9iamVjdCBuYW1lCiBXQVJO SU5HOiAgZXJyb3IgZm9yIHRhYmxlIGNvbnN0cmFpbnQse2VpbnN9LHtpbnRlZ2VyfTogbXVz dCBzcGVjaWZ5IHJlbGF0aW9uIGFuZCBvYmplY3QgbmFtZQogV0FSTklORzogIGVycm9yIGZv ciB0YWJsZSBjb25zdHJhaW50LHthZGRyX25zcCx6d2VpfSx7fTogcmVsYXRpb24gImFkZHJf bnNwIiBkb2VzIG5vdCBleGlzdApAQCAtNDA5LDYgKzQzMCw5IEBAIFdJVEggb2JqZWN0cyAo dHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogICAgICgndHlwZScsICd7YWRkcl9uc3Au Z2VuZW51bX0nLCAne30nKSwKICAgICAoJ2Nhc3QnLCAne2ludDh9JywgJ3tpbnQ0fScpLAog ICAgICgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAorICAgICgnY29sdW1uIGVu Y3J5cHRpb24ga2V5JywgJ3thZGRyX2Nla30nLCAne30nKSwKKyAgICAoJ2NvbHVtbiBlbmNy eXB0aW9uIGtleSBkYXRhJywgJ3thZGRyX2Nla30nLCAne2FkZHJfY21rfScpLAorICAgICgn Y29sdW1uIG1hc3RlciBrZXknLCAne2FkZHJfY21rfScsICd7fScpLAogICAgICgndGFibGUg Y29uc3RyYWludCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBhX2Noa30nLCAne30nKSwKICAg ICAoJ2RvbWFpbiBjb25zdHJhaW50JywgJ3thZGRyX25zcC5nZW5kb21haW59JywgJ3tkb21j b25zdHJ9JyksCiAgICAgKCdjb252ZXJzaW9uJywgJ3twZ19jYXRhbG9nLCBrb2k4X3JfdG9f bWljfScsICd7fScpLApAQCAtNTA1LDYgKzUyOSw5IEBAIHN1YnNjcmlwdGlvbnxOVUxMfHJl Z3Jlc3NfYWRkcl9zdWJ8cmVncmVzc19hZGRyX3N1Ynx0CiBwdWJsaWNhdGlvbnxOVUxMfGFk ZHJfcHVifGFkZHJfcHVifHQKIHB1YmxpY2F0aW9uIHJlbGF0aW9ufE5VTEx8TlVMTHxhZGRy X25zcC5nZW50YWJsZSBpbiBwdWJsaWNhdGlvbiBhZGRyX3B1Ynx0CiBwdWJsaWNhdGlvbiBu YW1lc3BhY2V8TlVMTHxOVUxMfGFkZHJfbnNwIGluIHB1YmxpY2F0aW9uIGFkZHJfcHViX3Nj aGVtYXx0Citjb2x1bW4gbWFzdGVyIGtleXxhZGRyX25zcHxhZGRyX2Nta3xhZGRyX25zcC5h ZGRyX2Nta3x0Citjb2x1bW4gZW5jcnlwdGlvbiBrZXl8YWRkcl9uc3B8YWRkcl9jZWt8YWRk cl9uc3AuYWRkcl9jZWt8dAorY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGF8TlVMTHxOVUxM fG9mIGFkZHJfbnNwLmFkZHJfY2VrIGZvciBhZGRyX25zcC5hZGRyX2Nta3x0CiAtLS0KIC0t LSBDbGVhbnVwIHJlc291cmNlcwogLS0tCkBAIC01MTcsNiArNTQ0LDggQEAgZHJvcCBjYXNj YWRlcyB0byB1c2VyIG1hcHBpbmcgZm9yIHJlZ3Jlc3NfYWRkcl91c2VyIG9uIHNlcnZlciBp bnRlZ2VyCiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBh ZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOwor RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNU RVIgS0VZIGFkZHJfY21rOwogRFJPUCBTQ0hFTUEgYWRkcl9uc3AgQ0FTQ0FERTsKIE5PVElD RTogIGRyb3AgY2FzY2FkZXMgdG8gMTQgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAgZHJvcCBj YXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5IGFkZHJfdHNfZGljdApAQCAtNTQ3 LDYgKzU3Niw5IEBAIFdJVEggb2JqZWN0cyAoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBB UyAoVkFMVUVTCiAgICAgKCdwZ190eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBl CiAgICAgKCdwZ19jYXN0Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdw Z19jb2xsYXRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgn cGdfY29sZW5ja2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlv biBrZXkKKyAgICAoJ3BnX2NvbGVuY2tleWRhdGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhCisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpy ZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25z dHJhaW50Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19j b252ZXJzaW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdw Z19hdHRyZGVmJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpA QCAtNjM0LDUgKzY2Niw4IEBAIE9SREVSIEJZIG9iamVjdHMuY2xhc3NpZCwgb2JqZWN0cy5v YmppZCwgb2JqZWN0cy5vYmpzdWJpZDsKICgiKCIicHVibGljYXRpb24gcmVsYXRpb24iIiws LCkiKXwoIigiInB1YmxpY2F0aW9uIHJlbGF0aW9uIiIsLCkiKXxOVUxMCiAoIigiInB1Ymxp Y2F0aW9uIG5hbWVzcGFjZSIiLCwsKSIpfCgiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIs LCkiKXxOVUxMCiAoIigiInBhcmFtZXRlciBBQ0wiIiwsLCkiKXwoIigiInBhcmFtZXRlciBB Q0wiIiwsKSIpfE5VTEwKKygiKCIiY29sdW1uIG1hc3RlciBrZXkiIiwsLCkiKXwoIigiImNv bHVtbiBtYXN0ZXIga2V5IiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtl eSIiLCwsKSIpfCgiKCIiY29sdW1uIGVuY3J5cHRpb24ga2V5IiIsLCkiKXxOVUxMCisoIigi ImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiIsLCwpIil8KCIoIiJjb2x1bW4gZW5jcnlw dGlvbiBrZXkgZGF0YSIiLCwpIil8TlVMTAogLS0gcmVzdG9yZSBub3JtYWwgb3V0cHV0IG1v ZGUKIFxhXHQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXgg MjE1ZWI4OTliZTMuLjYzZDMwODFlNjdlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29pZGpvaW5zLm91dApAQCAtNzQsNiArNzQsOCBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ190 eXBlIHt0eXBjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hl Y2tpbmcgcGdfYXR0cmlidXRlIHthdHRyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0dHlwaWR9ID0+IHBnX3R5cGUge29pZH0K IE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0Y29sbGF0aW9ufSA9PiBwZ19j b2xsYXRpb24ge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0Y2Vr fSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0 ZSB7YXR0dXNlcnR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBw Z19jbGFzcyB7cmVsbmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KIE5PVElDRTog IGNoZWNraW5nIHBnX2NsYXNzIHtyZWx0eXBlfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsb2Z0eXBlfSA9PiBwZ190eXBlIHtvaWR9CkBAIC0y NjYsMyArMjY4LDkgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJk YmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2Ny aXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2lu ZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+ IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nt a25hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBw Z19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTog IGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2VrbmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Ug e29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2Vrb3duZXJ9ID0+IHBn X2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tk Y2VraWR9ID0+IHBnX2NvbGVuY2tleSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29s ZW5ja2V5ZGF0YSB7Y2tkY21raWR9ID0+IHBnX2NvbG1hc3RlcmtleSB7b2lkfQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggOWQwNDdiMjFiODgu Ljk5NjYyOGI3YWFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29w cl9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQKQEAgLTE1OSw3ICsxNTksOCBAQCBPUkRFUiBCWSAxLCAyOwogIHRleHQgICAgICAg ICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nCiAgdGltZXN0YW1wIHdpdGhv dXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lCiAgdHhpZF9zbmFwc2hv dCAgICAgICAgICAgICAgIHwgcGdfc25hcHNob3QKLSg0IHJvd3MpCisgcGdfZW5jcnlwdGVk X2RldCAgICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX3JuZAorKDUgcm93cykKIAogU0VMRUNU IERJU1RJTkNUIHAxLnByb2FyZ3R5cGVzWzBdOjpyZWd0eXBlLCBwMi5wcm9hcmd0eXBlc1sw XTo6cmVndHlwZQogRlJPTSBwZ19wcm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBAIC0xNzUs MTMgKzE3NiwxNSBAQCBXSEVSRSBwMS5vaWQgIT0gcDIub2lkIEFORAogT1JERVIgQlkgMSwg MjsKICAgICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAgfCAgICAgICBwcm9hcmd0eXBlcyAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGJ5dGVhICAgICAgICAgICAgICAgICAgICAgICB8IHBnX2VuY3J5cHRl ZF9kZXQKICBiaWdpbnQgICAgICAgICAgICAgICAgICAgICAgfCB4aWQ4CiAgdGV4dCAgICAg ICAgICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyCiAgdGV4dCAgICAgICAgICAgICAgICAg ICAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcKICB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpv bmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBiaXQgICAgICAgICAgICAgICAgICAg ICAgICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNob3QgICAgICAgICAgICAgICB8IHBn X3NuYXBzaG90Ci0oNiByb3dzKQorIHBnX2VuY3J5cHRlZF9kZXQgICAgICAgICAgICB8IHBn X2VuY3J5cHRlZF9ybmQKKyg4IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0 eXBlc1sxXTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMV06OnJlZ3R5cGUKIEZST00gcGdf cHJvYyBBUyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtMTk3LDEyICsyMDAsMTMgQEAgV0hFUkUg cDEub2lkICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0 eXBlcyAgICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAg ICAgICAgICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgaW50ZWdlciAgICAg ICAgICAgICAgICAgICAgIHwgeGlkCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg dGltZXN0YW1wIHdpdGggdGltZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAg IHwgYml0IHZhcnlpbmcKICB0eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFw c2hvdAogIGFueXJhbmdlICAgICAgICAgICAgICAgICAgICB8IGFueW11bHRpcmFuZ2UKLSg1 IHJvd3MpCisoNiByb3dzKQogCiBTRUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMl06 OnJlZ3R5cGUsIHAyLnByb2FyZ3R5cGVzWzJdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMg cDEsIHBnX3Byb2MgQVMgcDIKQEAgLTg3Miw2ICs4NzYsOCBAQCB4aWQ4Z2UoeGlkOCx4aWQ4 KQogeGlkOGVxKHhpZDgseGlkOCkKIHhpZDhuZSh4aWQ4LHhpZDgpCiB4aWQ4Y21wKHhpZDgs eGlkOCkKK3BnX2VuY3J5cHRlZF9kZXRfZXEocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0 ZWRfZGV0KQorcGdfZW5jcnlwdGVkX2RldF9uZShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5 cHRlZF9kZXQpCiB1dWlkX2V4dHJhY3RfdGltZXN0YW1wKHV1aWQpCiB1dWlkX2V4dHJhY3Rf dmVyc2lvbih1dWlkKQogLS0gcmVzdG9yZSBub3JtYWwgb3V0cHV0IG1vZGUKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKaW5kZXggODhkOGY2YzMyZDYu LmZhYTVkNzllNDJkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5 cGVfc2FuaXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2Fu aXR5Lm91dApAQCAtNzUsNyArNzUsOSBAQCBPUkRFUiBCWSB0MS5vaWQ7CiAgNDYwMCB8IHBn X2JyaW5fYmxvb21fc3VtbWFyeQogIDQ2MDEgfCBwZ19icmluX21pbm1heF9tdWx0aV9zdW1t YXJ5CiAgNTAxNyB8IHBnX21jdl9saXN0Ci0oNiByb3dzKQorIDgyNDMgfCBwZ19lbmNyeXB0 ZWRfZGV0CisgODI0NCB8IHBnX2VuY3J5cHRlZF9ybmQKKyg4IHJvd3MpCiAKIC0tIE1ha2Ug c3VyZSB0eXBhcnJheSBwb2ludHMgdG8gYSAidHJ1ZSIgYXJyYXkgdHlwZSBvZiBvdXIgb3du IGJhc2UKIFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUgYXMgYmFzZXR5cGUsIHQyLnR5cG5h bWUgYXMgYXJyYXl0eXBlLApAQCAtNzE4LDYgKzcyMCw4IEBAIFNFTEVDVCBvaWQsIHR5cG5h bWUsIHR5cHR5cGUsIHR5cGVsZW0sIHR5cGFycmF5CiAgIFdIRVJFIG9pZCA8IDE2Mzg0IEFO RAogICAgIC0tIEV4Y2x1ZGUgcHNldWRvdHlwZXMgYW5kIGNvbXBvc2l0ZSB0eXBlcy4KICAg ICB0eXB0eXBlIE5PVCBJTiAoJ3AnLCAnYycpIEFORAorICAgIC0tIEV4Y2x1ZGUgZW5jcnlw dGlvbiBpbnRlcm5hbCB0eXBlcy4KKyAgICBvaWQgIT0gQUxMKEFSUkFZWydwZ19lbmNyeXB0 ZWRfZGV0JywgJ3BnX2VuY3J5cHRlZF9ybmQnXTo6cmVndHlwZVtdKSBBTkQKICAgICAtLSBU aGVzZSByZWcqIHR5cGVzIGNhbm5vdCBiZSBwZ191cGdyYWRlZCwgc28gZGlzY2FyZCB0aGVt LgogICAgIG9pZCAhPSBBTEwoQVJSQVlbJ3JlZ3Byb2MnLCAncmVncHJvY2VkdXJlJywgJ3Jl Z29wZXInLAogICAgICAgICAgICAgICAgICAgICAgJ3JlZ29wZXJhdG9yJywgJ3JlZ2NvbmZp ZycsICdyZWdkaWN0aW9uYXJ5JywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmlu ZGV4IDY3NWM1Njc2MTcxLi5lYjZhMGM2YWM0OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCkBAIC05OCw3ICs5OCw3IEBAIHRlc3Q6IHB1YmxpY2F0aW9uIHN1YnNjcmlw dGlvbgogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCiAjIHNlbGVjdF92aWV3 cyBkZXBlbmRzIG9uIGNyZWF0ZV92aWV3CiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHNlbGVjdF92 aWV3cyBwb3J0YWxzX3AyIGZvcmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBndWMgYml0 bWFwb3BzIGNvbWJvY2lkIHRzZWFyY2ggdHNkaWN0cyBmb3JlaWduX2RhdGEgd2luZG93IHht bG1hcCBmdW5jdGlvbmFsX2RlcHMgYWR2aXNvcnlfbG9jayBpbmRpcmVjdF90b2FzdCBlcXVp dmNsYXNzCit0ZXN0OiBzZWxlY3Rfdmlld3MgcG9ydGFsc19wMiBmb3JlaWduX2tleSBjbHVz dGVyIGRlcGVuZGVuY3kgZ3VjIGJpdG1hcG9wcyBjb21ib2NpZCB0c2VhcmNoIHRzZGljdHMg Zm9yZWlnbl9kYXRhIHdpbmRvdyB4bWxtYXAgZnVuY3Rpb25hbF9kZXBzIGFkdmlzb3J5X2xv Y2sgaW5kaXJlY3RfdG9hc3QgZXF1aXZjbGFzcyBjb2x1bW5fZW5jcnlwdGlvbgogCiAjIC0t LS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cyAoSlNPTiByZWxh dGVkKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYyBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKaW5kZXggOGFlZWQ5N2JlMWEu LmEzZGJhODEwOWI0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3Nf bWFpbi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKQEAgLTc2 LDcgKzc2LDcgQEAgcHNxbF9zdGFydF90ZXN0KGNvbnN0IGNoYXIgKnRlc3RuYW1lLAogCQkJ CQkgYmluZGlyID8gYmluZGlyIDogIiIsCiAJCQkJCSBiaW5kaXIgPyAiLyIgOiAiIiwKIAkJ CQkJIGRibGlzdC0+c3RyLAotCQkJCQkgIi12IEhJREVfVEFCTEVBTT1vbiAtdiBISURFX1RP QVNUX0NPTVBSRVNTSU9OPW9uIiwKKwkJCQkJICItdiBISURFX1RBQkxFQU09b24gLXYgSElE RV9UT0FTVF9DT01QUkVTU0lPTj1vbiAtdiBISURFX0NPTFVNTl9FTkNSWVBUSU9OPW9uIiwK IAkJCQkJIGluZmlsZSwKIAkJCQkJIG91dGZpbGUpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjBjNWYyYWYyZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCkBAIC0wLDAgKzEsMzcxIEBACitc c2V0IEhJREVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKKworQ1JFQVRFIFJPTEUgcmVncmVz c19lbmNfdXNlcjE7CisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBmYWlsIFdJVEggKAor ICAgIGZvbyA9IGJhcgorKTsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGZhaWwgV0lU SCAoCisgICAgcmVhbG0gPSAndGVzdCcsCisgICAgcmVhbG0gPSAndGVzdCcKKyk7CisKK0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3Qn CispOworCitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgSVMgJ2NvbHVtbiBt YXN0ZXIga2V5JzsKKworLS0gZHVwbGljYXRlCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKKworQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGNtazFhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworCitDUkVB VEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMjsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ IGNtazJhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3R4JworKTsKKworQUxURVIgQ09MVU1O IE1BU1RFUiBLRVkgY21rMmEgKHJlYWxtID0gJ3Rlc3QyJyk7CisKKy0tIGZhaWwKK0FMVEVS IENPTFVNTiBNQVNURVIgS0VZIGNtazJhIChyZWFsbSA9ICd0ZXN0MicsIHJlYWxtID0gJ3Rl c3QyJyk7CisKKy0tIGZhaWwKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIChmb28g PSBiYXIpOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgV0lUSCBWQUxV RVMgKAorICAgIGZvbyA9IGJhcgorKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBmYWlsIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisg ICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGZhaWwgV0lUSCBWQUxVRVMgKAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19P QUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisK K0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbCBXSVRIIFZBTFVFUyAoCisgICAg Y29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERF QURCRUVGJworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIFdJVEgg VkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGht ID0gJ1JTQUVTX09BRVBfU0hBXzEnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGZhaWwgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwK KyAgICBhbGdvcml0aG0gPSAnZm9vJywgIC0tIGludmFsaWQKKyAgICBlbmNyeXB0ZWRfdmFs dWUgPSAnXHhERUFEQkVFRicKKyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAg IGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUg PSAnXHhERUFEQkVFRicKKyk7CisKK0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgSVMgJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSc7CisKKy0tIGR1cGxpY2F0ZQorQ1JF QVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgKKyAgICBjb2x1 bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywK KyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisKKy0tIGR1cGxpY2F0 ZQorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBj b2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQ X1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisKK0FM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIEFERCBWQUxVRSAoCisgICAgY29sdW1u X21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFf MScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9t YXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScs CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispLAorKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworQ1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5f bWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEn LAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworQ1JFQVRFIFRB QkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChmb28gPSBiYXIpCispOworCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwg KAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEgg KGVuY3J5cHRpb25fdHlwZSA9IHJhbmRvbWl6ZWQpCispOworCitDUkVBVEUgVEFCTEUgdGJs X2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVE IFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IG5vdGV4aXN0KQorKTsKKworQ1JFQVRF IFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCBhbGdvcml0 aG0gPSAnZm9vJykKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQs CisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5 cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlvbl90eXBlID0gd3JvbmcpCispOworCitDUkVB VEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRl eHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIGNvbHVt bl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworCitDUkVBVEUgVEFCTEUgdGJsXzI5ZjMg KAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEgg KGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworCitcZCB0YmxfMjlmMworXGQr IHRibF8yOWYzCisKK0NSRUFURSBUQUJMRSB0YmxfNDQ3ZiAoCisgICAgYSBpbnQsCisgICAg YiB0ZXh0CispOworCitBTFRFUiBUQUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBF TkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlv bl90eXBlID0gZGV0ZXJtaW5pc3RpYyk7CisKK1xkIHRibF80NDdmCitcZCsgdGJsXzQ0N2YK KworQ1JFQVRFIFRBQkxFIHRibF80ODk3IChMSUtFIHRibF80NDdmKTsKK0NSRUFURSBUQUJM RSB0YmxfNjk3OCAoTElLRSB0YmxfNDQ3ZiBJTkNMVURJTkcgRU5DUllQVEVEKTsKKworXGQr IHRibF80ODk3CitcZCsgdGJsXzY5NzgKKworQ1JFQVRFIFZJRVcgdmlld18zYmM5IEFTIFNF TEVDVCAqIEZST00gdGJsXzI5ZjM7CisKK1xkKyB2aWV3XzNiYzkKKworQ1JFQVRFIFRBQkxF IHRibF8yMzg2IEFTIFNFTEVDVCAqIEZST00gdGJsXzI5ZjMgV0lUSCBOTyBEQVRBOworCitc ZCsgdGJsXzIzODYKKworQ1JFQVRFIFRBQkxFIHRibF8yOTQxIEFTIFNFTEVDVCAqIEZST00g dGJsXzI5ZjMgV0lUSCBEQVRBOworCitcZCsgdGJsXzI5NDEKKworLS0gdGVzdCBwYXJ0aXRp b24gZGVjbGFyYXRpb25zCisKK0NSRUFURSBUQUJMRSB0YmxfMTNmYSAoCisgICAgYSBpbnQs CisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBj ZWsxKQorKSBQQVJUSVRJT04gQlkgUkFOR0UgKGEpOworQ1JFQVRFIFRBQkxFIHRibF8xM2Zh XzEgUEFSVElUSU9OIE9GIHRibF8xM2ZhIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwMCk7 CisKK1xkKyB0YmxfMTNmYQorXGQrIHRibF8xM2ZhXzEKKworCistLSB0ZXN0IGluaGVyaXRh bmNlCisKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hICgKKyAgICBhIGludCwKKyAgICBiIHRl eHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOwor CitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworQ1JF QVRFIFRBQkxFIHRibF8zNmYzX2MgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBU RUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMikKKyk7CisKK0NSRUFURSBU QUJMRSB0YmxfMzZmM19kICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJ VEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IGRl dGVybWluaXN0aWMpCispOworCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfZSAoCisgICAgYSBp bnQsCisgICAgYiB0ZXh0CispOworCistLSBub3QgaW1wbGVtZW50ZWQgKGJ1dCBjb3VsZCBi ZSBvaykKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hYiAoYyBpbnQpIElOSEVSSVRTICh0Ymxf MzZmM19hLCB0YmxfMzZmM19iKTsKK1xkKyB0YmxfMzZmM19hYgorLS0gbm90IGltcGxlbWVu dGVkIChidXQgc2hvdWxkIGZhaWwpCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWMgKGMgaW50 KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfYyk7CitDUkVBVEUgVEFCTEUgdGJs XzM2ZjNfYWQgKGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfZCk7Cist LSBmYWlsCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWUgKGMgaW50KSBJTkhFUklUUyAodGJs XzM2ZjNfYSwgdGJsXzM2ZjNfZSk7CisKKy0tIG9rCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNf YV8xIChiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNl azEpLCBjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EpOworXGQrIHRibF8zNmYzX2FfMQor LS0gZmFpbAorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FfMiAoYiB0ZXh0IEVOQ1JZUFRFRCBX SVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsyKSwgYyBpbnQpIElOSEVSSVRTICh0 YmxfMzZmM19hKTsKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hXzIgKGIgdGV4dCBFTkNSWVBU RUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlvbl90eXBl ID0gZGV0ZXJtaW5pc3RpYyksIGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSk7CitDUkVB VEUgVEFCTEUgdGJsXzM2ZjNfYV8yIChiIHRleHQsIGMgaW50KSBJTkhFUklUUyAodGJsXzM2 ZjNfYSk7CisKK0RST1AgVEFCTEUgdGJsXzM2ZjNfYiwgdGJsXzM2ZjNfYywgdGJsXzM2ZjNf ZCwgdGJsXzM2ZjNfZTsKKworCistLSBTRVQgU0NIRU1BCitDUkVBVEUgU0NIRU1BIHRlc3Rf c2NoZW1hX2NlOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgU0VUIFNDSEVN QSB0ZXN0X3NjaGVtYV9jZTsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgU0VUIFND SEVNQSB0ZXN0X3NjaGVtYV9jZTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSB0ZXN0 X3NjaGVtYV9jZS5jZWsxIFNFVCBTQ0hFTUEgcHVibGljOworQUxURVIgQ09MVU1OIE1BU1RF UiBLRVkgdGVzdF9zY2hlbWFfY2UuY21rMSBTRVQgU0NIRU1BIHB1YmxpYzsKK0RST1AgU0NI RU1BIHRlc3Rfc2NoZW1hX2NlOworCisKKy0tIHByaXZpbGVnZXMKK1NFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsKKy0tIGZhaWwKK0NSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMTAgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworR1JBTlQgVVNBR0UgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBU TyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jl c3NfZW5jX3VzZXIxJzsKKy0tIG9rIG5vdworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWsxMCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAor ICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFs dWUgPSAnXHhERUFEQkVFRicKKyk7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsx MDsKKworLS0gZmFpbAorQ1JFQVRFIFRBQkxFIHRibF83MDQwIChhIGludCwgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSk7CitDUkVBVEUg VEFCTEUgdGJsXzcwNDAgKGEgaW50KTsKKy0tIGZhaWwKK0FMVEVSIFRBQkxFIHRibF83MDQw IEFERCBDT0xVTU4gYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9r ZXkgPSBjZWsxKTsKK0RST1AgVEFCTEUgdGJsXzcwNDA7CitSRVNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT047CitHUkFOVCBVU0FHRSBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBU TyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jl c3NfZW5jX3VzZXIxJzsKKy0tIG9rIG5vdworQ1JFQVRFIFRBQkxFIHRibF83MDQwIChhIGlu dCwgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsx KSk7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CisKKy0tIGhhc19jb2x1bW5fZW5j cnlwdGlvbl9rZXlfcHJpdmlsZWdlCitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tl eV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfZW5jX3VzZXIxJywKKyAgICAoU0VMRUNUIG9pZCBGUk9N IHBnX2NvbGVuY2tleSBXSEVSRSBjZWtuYW1lPSdjZWsxJyksICdVU0FHRScpOworU0VMRUNU IGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlKCdyZWdyZXNzX2VuY191c2Vy MScsICdjZWsxJywgJ1VTQUdFJyk7CitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tl eV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19yb2xlcyBXSEVSRSByb2xu YW1lPSdyZWdyZXNzX2VuY191c2VyMScpLAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY29s ZW5ja2V5IFdIRVJFIGNla25hbWU9J2NlazEnKSwgJ1VTQUdFJyk7CitTRUxFQ1QgaGFzX2Nv bHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQgRlJPTSBw Z19jb2xlbmNrZXkgV0hFUkUgY2VrbmFtZT0nY2VrMScpLCAnVVNBR0UnKTsKK1NFTEVDVCBo YXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZSgKKyAgICAoU0VMRUNUIG9pZCBG Uk9NIHBnX3JvbGVzIFdIRVJFIHJvbG5hbWU9J3JlZ3Jlc3NfZW5jX3VzZXIxJyksICdjZWsx JywgJ1VTQUdFJyk7CitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxl Z2UoJ2NlazEnLCAnVVNBR0UnKTsKK1NFTEVDVCBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5 X3ByaXZpbGVnZSgncmVncmVzc19lbmNfdXNlcjEnLCAnY2VrMScsICdVU0FHRScpOworCist LSBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlCitTRUxFQ1QgaGFzX2NvbHVtbl9t YXN0ZXJfa2V5X3ByaXZpbGVnZSgncmVncmVzc19lbmNfdXNlcjEnLAorICAgIChTRUxFQ1Qg b2lkIEZST00gcGdfY29sbWFzdGVya2V5IFdIRVJFIGNta25hbWU9J2NtazEnKSwgJ1VTQUdF Jyk7CitTRUxFQ1QgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgncmVncmVzc19l bmNfdXNlcjEnLCAnY21rMScsICdVU0FHRScpOworU0VMRUNUIGhhc19jb2x1bW5fbWFzdGVy X2tleV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19yb2xlcyBXSEVSRSBy b2xuYW1lPSdyZWdyZXNzX2VuY191c2VyMScpLAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdf Y29sbWFzdGVya2V5IFdIRVJFIGNta25hbWU9J2NtazEnKSwgJ1VTQUdFJyk7CitTRUxFQ1Qg aGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgKKyAgICAoU0VMRUNUIG9pZCBGUk9N IHBnX2NvbG1hc3RlcmtleSBXSEVSRSBjbWtuYW1lPSdjbWsxJyksICdVU0FHRScpOworU0VM RUNUIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQg RlJPTSBwZ19yb2xlcyBXSEVSRSByb2xuYW1lPSdyZWdyZXNzX2VuY191c2VyMScpLCAnY21r MScsICdVU0FHRScpOworU0VMRUNUIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2Uo J2NtazEnLCAnVVNBR0UnKTsKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlKCdyZWdyZXNzX2VuY191c2VyMScsICdjbWsxJywgJ1VTQUdFJyk7CisKK0RST1AgVEFC TEUgdGJsXzcwNDA7CitSRVZPS0UgVVNBR0UgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgRlJPTSByZWdyZXNzX2VuY191c2VyMTsKK1JFVk9LRSBVU0FHRSBPTiBDT0xVTU4gTUFT VEVSIEtFWSBjbWsxIEZST00gcmVncmVzc19lbmNfdXNlcjE7CisKKworLS0gbm90IHVzZWZ1 bCBoZXJlLCBqdXN0IGNoZWNraW5nIHRoYXQgaXQgcnVucworRElTQ0FSRCBDT0xVTU4gRU5D UllQVElPTiBLRVlTOworCisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRVNUUklD VDsgIC0tIGZhaWwKKworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8g Y21rMzsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAt LSBmYWlsCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWt4IFJFTkFNRSBUTyBjbWt5OyAg LS0gZmFpbAorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMiBSRU5BTUUgVE8g Y2VrMzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFJFTkFNRSBUTyBjZWsz OyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNla3ggUkVOQU1FIFRP IGNla3k7ICAtLSBmYWlsCisKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nf ZW5jX3VzZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAtLSBmYWls CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBmYWlsCitSRVNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT047CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWszIE9XTkVSIFRP IHJlZ3Jlc3NfZW5jX3VzZXIxOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazMg T1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitcZGNlayBjZWszCitcZGNtayBjbWszCitT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CitEUk9QIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0gb2sgbm93CitEUk9QIENPTFVNTiBNQVNU RVIgS0VZIGNtazM7ICAtLSBvayBub3cKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK KworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1u X21hc3Rlcl9rZXkgPSBjbWsxYSk7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsgIC0tIGZhaWwKK0FM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0 ZXJfa2V5ID0gZmFpbCk7ICAtLSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLCBhbGdvcml0aG0g PSAnZm9vJyk7ICAtLSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBE Uk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLCBlbmNyeXB0ZWRfdmFsdWUg PSAnXHhERUFEQkVFRicpOyAgLS0gZmFpbAorCitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWs0OworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbDsKK0RST1AgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIElGIEVYSVNUUyBub25leGlzdGVudDsKKworRFJPUCBDT0xVTU4g TUFTVEVSIEtFWSBjbWsxYTsKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgZmFpbDsKK0RST1Ag Q09MVU1OIE1BU1RFUiBLRVkgSUYgRVhJU1RTIG5vbmV4aXN0ZW50OworCitEUk9QIFJPTEUg cmVncmVzc19lbmNfdXNlcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9v YmplY3RfYWRkcmVzcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVz cy5zcWwKaW5kZXggMWE2YzYxZjQ5ZDUuLjYxODI4NjEzZDlhIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCkBAIC00MSw2ICs0MSw4IEBAIENSRUFURSBT RVJWRVIgImludGVnZXIiIEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3OwogQ1JFQVRF IFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJpbnRlZ2VyIjsK IEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBJ TiBTQ0hFTUEgcHVibGljIEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVzc19hZGRyX3Vz ZXI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3Vz ZXIgUkVWT0tFIERFTEVURSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJfdXNlcjsKK0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtazsKK0NSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgYWRkcl9jZWsgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gYWRk cl9jbWssIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5jcnlwdGVkX3ZhbHVl ID0gJycpOwogLS0gdGhpcyB0cmFuc2Zvcm0gd291bGQgYmUgcXVpdGUgdW5zYWZlIHRvIGxl YXZlIGx5aW5nIGFyb3VuZCwKIC0tIGV4Y2VwdCB0aGF0IHRoZSBTUUwgbGFuZ3VhZ2UgcGF5 cyBubyBhdHRlbnRpb24gdG8gdHJhbnNmb3JtczoKIENSRUFURSBUUkFOU0ZPUk0gRk9SIGlu dCBMQU5HVUFHRSBTUUwgKApAQCAtOTMsNiArOTUsNyBAQCBDUkVBVEUgU1RBVElTVElDUyBh ZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsK ICAgICAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVpZ24gdGFibGUnKSwKICAg ICAgICAgKCd0YWJsZSBjb2x1bW4nKSwgKCdmb3JlaWduIHRhYmxlIGNvbHVtbicpLAogICAg ICAgICAoJ2FnZ3JlZ2F0ZScpLCAoJ2Z1bmN0aW9uJyksICgncHJvY2VkdXJlJyksICgndHlw ZScpLCAoJ2Nhc3QnKSwKKyAgICAgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknKSwgKCdj b2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScpLCAoJ2NvbHVtbiBtYXN0ZXIga2V5JyksCiAg ICAgICAgICgndGFibGUgY29uc3RyYWludCcpLCAoJ2RvbWFpbiBjb25zdHJhaW50JyksICgn Y29udmVyc2lvbicpLCAoJ2RlZmF1bHQgdmFsdWUnKSwKICAgICAgICAgKCdvcGVyYXRvcicp LCAoJ29wZXJhdG9yIGNsYXNzJyksICgnb3BlcmF0b3IgZmFtaWx5JyksICgncnVsZScpLCAo J3RyaWdnZXInKSwKICAgICAgICAgKCd0ZXh0IHNlYXJjaCBwYXJzZXInKSwgKCd0ZXh0IHNl YXJjaCBkaWN0aW9uYXJ5JyksCkBAIC0xNzQsNiArMTc3LDkgQEAgQ1JFQVRFIFNUQVRJU1RJ Q1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFi bGU7CiAgICAgKCd0eXBlJywgJ3thZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogICAgICgn Y2FzdCcsICd7aW50OH0nLCAne2ludDR9JyksCiAgICAgKCdjb2xsYXRpb24nLCAne2RlZmF1 bHR9JywgJ3t9JyksCisgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJfY2Vr fScsICd7fScpLAorICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2FkZHJf Y2VrfScsICd7YWRkcl9jbWt9JyksCisgICAgKCdjb2x1bW4gbWFzdGVyIGtleScsICd7YWRk cl9jbWt9JywgJ3t9JyksCiAgICAgKCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25zcCwg Z2VudGFibGUsIGFfY2hrfScsICd7fScpLAogICAgICgnZG9tYWluIGNvbnN0cmFpbnQnLCAn e2FkZHJfbnNwLmdlbmRvbWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKICAgICAoJ2NvbnZlcnNp b24nLCAne3BnX2NhdGFsb2csIGtvaThfcl90b19taWN9JywgJ3t9JyksCkBAIC0yMjgsNiAr MjM0LDggQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBh LCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHVi OwogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX2FkZHJfc3ViOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9j ZWs7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOwogCiBEUk9QIFNDSEVNQSBh ZGRyX25zcCBDQVNDQURFOwogCkBAIC0yNDcsNiArMjU1LDkgQEAgQ1JFQVRFIFNUQVRJU1RJ Q1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFi bGU7CiAgICAgKCdwZ190eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBlCiAgICAg KCdwZ19jYXN0Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdwZ19jb2xs YXRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgncGdfY29s ZW5ja2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkK KyAgICAoJ3BnX2NvbGVuY2tleWRhdGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVt biBlbmNyeXB0aW9uIGtleSBkYXRhCisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpyZWdjbGFz cywgMCwgMCksIC0tIG5vIGNvbHVtbiBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25zdHJhaW50 Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19jb252ZXJz aW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdwZ19hdHRy ZGVmJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCmluZGV4IGU4OGQ2Y2JlNDlkLi40OThjYTY1 NGMwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbApAQCAtNTQ2LDYg KzU0Niw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90eXBlcyBBUyBTRUxFQ1QKICAgV0hF UkUgb2lkIDwgMTYzODQgQU5ECiAgICAgLS0gRXhjbHVkZSBwc2V1ZG90eXBlcyBhbmQgY29t cG9zaXRlIHR5cGVzLgogICAgIHR5cHR5cGUgTk9UIElOICgncCcsICdjJykgQU5ECisgICAg LS0gRXhjbHVkZSBlbmNyeXB0aW9uIGludGVybmFsIHR5cGVzLgorICAgIG9pZCAhPSBBTEwo QVJSQVlbJ3BnX2VuY3J5cHRlZF9kZXQnLCAncGdfZW5jcnlwdGVkX3JuZCddOjpyZWd0eXBl W10pIEFORAogICAgIC0tIFRoZXNlIHJlZyogdHlwZXMgY2Fubm90IGJlIHBnX3VwZ3JhZGVk LCBzbyBkaXNjYXJkIHRoZW0uCiAgICAgb2lkICE9IEFMTChBUlJBWVsncmVncHJvYycsICdy ZWdwcm9jZWR1cmUnLCAncmVnb3BlcicsCiAgICAgICAgICAgICAgICAgICAgICAncmVnb3Bl cmF0b3InLCAncmVnY29uZmlnJywgJ3JlZ2RpY3Rpb25hcnknLApkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdAppbmRleCBjODM0MTdjZTlkMi4uYzZlOWUwMjUwMjMgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC02NSw2ICs2NSw4IEBAIEFsbG9jU2V0RnJlZUxpc3QK IEFsbG9jYXRlRGVzYwogQWxsb2NhdGVEZXNjS2luZAogQWx0ZXJDb2xsYXRpb25TdG10CitB bHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10CitBbHRlckNvbHVtbk1hc3RlcktleVN0bXQK IEFsdGVyRGF0YWJhc2VSZWZyZXNoQ29sbFN0bXQKIEFsdGVyRGF0YWJhc2VTZXRTdG10CiBB bHRlckRhdGFiYXNlU3RtdApAQCAtMzc4LDYgKzM4MCw3IEBAIENhdENhY2hlSGVhZGVyCiBD YXRhbG9nSWQKIENhdGFsb2dJZE1hcEVudHJ5CiBDYXRhbG9nSW5kZXhTdGF0ZQorQ2VrSW5m bwogQ2hhbmdlVmFyTm9kZXNfY29udGV4dAogUmVwbGFjZVZhcm5vQ29udGV4dAogQ2hlY2tQ b2ludApAQCAtNDAzLDYgKzQwNiw3IEBAIENsdXN0ZXJJbmZvCiBDbHVzdGVyUGFyYW1zCiBD bHVzdGVyU3RtdAogQ21kVHlwZQorQ21rSW5mbwogQ29hbGVzY2VFeHByCiBDb2VyY2VQYXJh bUhvb2sKIENvZXJjZVRvRG9tYWluCkBAIC04MTMsNiArODE3LDkgQEAgRm9ybURhdGFfcGdf YXV0aGlkCiBGb3JtRGF0YV9wZ19jYXN0CiBGb3JtRGF0YV9wZ19jbGFzcwogRm9ybURhdGFf cGdfY29sbGF0aW9uCitGb3JtRGF0YV9wZ19jb2xlbmNrZXkKK0Zvcm1EYXRhX3BnX2NvbGVu Y2tleWRhdGEKK0Zvcm1EYXRhX3BnX2NvbG1hc3RlcmtleQogRm9ybURhdGFfcGdfY29uc3Ry YWludAogRm9ybURhdGFfcGdfY29udmVyc2lvbgogRm9ybURhdGFfcGdfZGF0YWJhc2UKQEAg LTE3NjUsNiArMTc3Miw4IEBAIFBHQWxpZ25lZEJsb2NrCiBQR0FsaWduZWRYTG9nQmxvY2sK IFBHQXN5bmNTdGF0dXNUeXBlCiBQR0NBTEwyCitQR0NFSworUEdDTUsKIFBHQ2hlY2tzdW1t YWJsZVBhZ2UKIFBHQ29udGV4dFZpc2liaWxpdHkKIFBHRXZlbnQKCmJhc2UtY29tbWl0OiA1 MTA1YzkwNzk2ODExZjYyNzExNTM4MTU1ZDIwN2U1MzExZWFjZjliCi0tIAoyLjQ0LjAKCg== --------------FFXbhPa1FY2yJodyKgpMO0CW--