Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pX6ax-0000zh-67 for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Feb 2023 20:29:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pX6aw-0005KR-1B for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Feb 2023 20:29:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pX6au-0005Er-2g for pgsql-hackers@lists.postgresql.org; Tue, 28 Feb 2023 20:29:05 +0000 Received: from wnew3-smtp.messagingengine.com ([64.147.123.17]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pX6aZ-0004Ki-WD for pgsql-hackers@postgresql.org; Tue, 28 Feb 2023 20:29:03 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id BBAD22B06B1B for ; Tue, 28 Feb 2023 15:28:41 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Tue, 28 Feb 2023 15:28:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1677616121; x=1677623321; bh=EWebqlvPFo530kGg9WygtpAlhDMY gKJyyGzhnWFHiz8=; b=tRC1q4DoONPKKL9x/eyhrSv513Fr99Xcn7n4WAgauqtM 5MHmU73AUjpZdJlIa3aZaf/P8FaJsK5zpLCsaltC6FjpUyYrNbyy++lNJ5XrPi3J WTp/z4ehIh5RRSyWIobaWNXnUUOByCNJPgsjdJsWIfW7IT9rBaDhrfYxSFG7KJnJ eCCrzDHVdn8/HTu8lmJbFoIRDg33zfxsp0bZJnN2aiokvJzNwCyng4eL6Fqm8OdL UTOx8bx/9rz0heWMr/vXsRkiny+FJ5b/+z8JQClXo0Nb2MeRo9WlK3ildoDECv2h Gc89LeNMTrLbUABbg6eXkRW8m0He59WL8oXrAYF8gw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudelfedgjeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 28 Feb 2023 15:28:39 -0500 (EST) Content-Type: multipart/mixed; boundary="------------o70WLJH23HHIk7c3bJ8gL1Ty" Message-ID: <47e17f03-6595-6c09-8978-7a1581cad6f2@enterprisedb.com> Date: Tue, 28 Feb 2023 21:28:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> <75f394fa-f539-1875-079c-c654deceed41@enterprisedb.com> <8bcedb49-1496-0755-bd24-1cbabf30ec84@enterprisedb.com> <1034b6f1-ccab-8a22-c843-71104ebedf01@enterprisedb.com> <40c43d0d-ae4b-fe34-2667-771b3718384e@enterprisedb.com> In-Reply-To: <40c43d0d-ae4b-fe34-2667-771b3718384e@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------o70WLJH23HHIk7c3bJ8gL1Ty Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 22.02.23 11:25, Peter Eisentraut wrote: > Other changes since v15: > > - CEKs and CMKs now have USAGE privileges.  (There are some TODO markers > where I got too bored with boilerplate.  I will fill those in, but the > idea should be clear.) New patch. The above is all filled in now. I also figured we need support in the DISCARD command to clear the session state of what keys have already been sent, for the benefit of connection poolers, so I added an option there. The only thing left on my list for this whole thing is some syntax in psql to force encryption for a parameter. But that could also be done as a separate patch. --------------o70WLJH23HHIk7c3bJ8gL1Ty Content-Type: text/plain; charset=UTF-8; name="v17-0001-Automatic-client-side-column-level-encryption.patch" Content-Disposition: attachment; filename*0="v17-0001-Automatic-client-side-column-level-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA2NWVlZjk1ZWYzYTg5MTc4Mzc4ZDM2ZmNkNjVhNjdjMGQxNTkyNjkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyOCBGZWIgMjAyMyAyMToyMzoyNSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjE3XSBBdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5 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 LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDU1ICsrCiBkb2Mvc3JjL3NnbWwvZGRsLnNn bWwgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NDQgKysrKysrKysrCiBkb2Mvc3JjL3Nn bWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKysKIGRvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAyNiArCiBkb2Mvc3Jj L3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgfCAzMjIgKysrKysrKwog ZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgNDY3ICsr KysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAg ICB8ICAgNiArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNn bWwgfCAxOTcgKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tl eS5zZ21sIHwgMTM0ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgICAgICAg ICAgICAgICAgIHwgICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sICAgICAgICAg ICAgICAgICAgICB8ICAxMCArCiAuLi4vcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9r ZXkuc2dtbCAgICAgfCAxNzMgKysrKwogLi4uL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFz dGVyX2tleS5zZ21sICAgIHwgMTA3ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFi bGUuc2dtbCAgICAgICAgICAgIHwgIDU1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQu c2dtbCAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIC4uLi9zZ21sL3JlZi9kcm9wX2NvbHVt bl9lbmNyeXB0aW9uX2tleS5zZ21sICB8IDExMiArKysKIGRvYy9zcmMvc2dtbC9yZWYvZHJv cF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICB8IDExMiArKysKIGRvYy9zcmMvc2dtbC9yZWYv Z3JhbnQuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogZG9jL3NyYy9zZ21sL3Jl Zi9wZ19kdW1wLnNnbWwgICAgICAgICAgICAgICAgIHwgIDQyICsKIGRvYy9zcmMvc2dtbC9y ZWYvcGdfZHVtcGFsbC5zZ21sICAgICAgICAgICAgICB8ICAyNyArCiBkb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgMzkgKwogZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYyAgICAgICB8ICAgOCArCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMgICAgICAgICAgfCAyMzcgKysrKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jICAgICAgICAgICB8ICAxMiArCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyAgICAgICAgfCAgIDIgKy0KIHNy Yy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgICAgIHwgIDYwICsr CiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgMTgg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAgIHwgIDQy ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAy NzIgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgICAg ICAgfCAyODggKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyAgICAgICAg ICAgICAgICAgIHwgIDE3ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYyAg ICAgICAgICAgICB8IDQzOSArKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0 ZWFzLmMgICAgICAgICAgICAgICB8ICAzMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kaXNj YXJkLmMgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ry b3BjbWRzLmMgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9l dmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv bWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAyMDQgKysrKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhcmlhYmxlLmMgICAgICAgICAgICAgICB8ICAgNyArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmlldy5jICAgICAgICAgICAgICAgICAgIHwgIDIwICsKIHNyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyMDAgKysrKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9wYXJhbS5jICAgICAgICAgICAgICB8IDE1NyArKysrCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIgKy0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICAgICAgICAgICB8ICAxOSAr LQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwgIDY0 ICsrCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAg NTYgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8 IDM5OCArKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgICAgICAg ICAgICAgICB8IDEwNyArKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j ICAgICAgICAgICB8ICA4MyArKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hl LmMgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNo ZS5jICAgICAgICAgICAgfCAgNDIgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5j ICAgICAgICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAg ICAgICAgICAgICAgICAgICAgfCAgNDQgKwogc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5j ICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAu aCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2FyY2hpdmVyLmMgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cF9kYi5jICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jICAgICAgICAgICAgICAgICAgICAgfCAzNzcgKysrKysrKy0KIHNyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAzNSArCiBzcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgMTQgKwogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBhbGwuYyAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA3MiArKwogc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmlu L3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxOTEgKysrLQogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNy Yy9iaW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBz cmMvYmluL3BzcWwvc2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsK IHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA2OSAr LQogc3JjL2NvbW1vbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9jb21tb24vY29sZW5jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEw NCArKysKIHNyYy9jb21tb24vbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaCAgICAgICAgICAgICAgICAg fCAgIDQgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmggICAgICAgICAgICAg IHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAgICAgICAg ICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgICAgICAgICAg ICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAg ICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICAg ICAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmggICAg ICAgICAgICB8ICA0NiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEu aCAgICAgICAgfCAgNDYgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXku aCAgICAgICAgIHwgIDQ3ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQg ICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRh dCAgICAgICAgICAgfCAgMTAgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5k YXQgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg ICAgICAgICAgICAgICB8IDEwMyArKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5k YXQgICAgICAgICAgICAgICB8ICAxMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUu aCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5j Y21kcy5oICAgICAgICAgICAgIHwgIDI2ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxl Y21kcy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jb21tb24vY29sZW5j LmggICAgICAgICAgICAgICAgICAgfCAgNTEgKysKIHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBx LWJlLmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgNDQgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfcGFyYW0uaCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL3V0aWxz L2FjbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvdXRp bHMvcGxhbmNhY2hlLmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3V0 aWxzL3N5c2NhY2hlLmggICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW50ZXJmYWNl cy9saWJwcS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2ludGVyZmFj ZXMvbGlicHEvZXhwb3J0cy50eHQgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyAgICAgICAgICAgICB8ICA0NiArCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYyAgICAgfCA4MzkgKysrKysrKysrKysr KysrKysrCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmggICAgICAgICAgICAg fCAgMzMgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jICAgICAgICAgICAgICAg IHwgNjcxICsrKysrKysrKysrKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2Nv bDMuYyAgICAgICAgICAgfCAxNTcgKysrLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJh Y2UuYyAgICAgICAgICAgICAgIHwgIDU1ICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJw cS1mZS5oICAgICAgICAgICAgICAgfCAgMjAgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtaW50LmggICAgICAgICAgICAgIHwgIDM2ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL21l c29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9u bHMubWsgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBx L3QvMDAzX2VuY3J5cHQucGwgICAgICAgICB8ICA3MCArKwogc3JjL2ludGVyZmFjZXMvbGli cHEvdGVzdC8uZ2l0aWdub3JlICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xp YnBxL3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS90ZXN0L21lc29uLmJ1aWxkICAgICAgICAgfCAgMjMgKwogc3JjL3Rlc3QvTWFrZWZp bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvY29s dW1uX2VuY3J5cHRpb24vTWFrZWZpbGUgICAgICAgICAgIHwgIDMxICsKIHNyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkICAgICAgICB8ICAyNCArCiAuLi4vdC8wMDFf Y29sdW1uX2VuY3J5cHRpb24ucGwgICAgICAgICAgICAgICAgfCAyNTUgKysrKysrCiAuLi4v Y29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsICAgfCAxMTIgKysrCiBz cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jICAgICAgfCAxNjEgKysr KwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwgICAgIHwgIDU4 ICsrCiBzcmMvdGVzdC9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0ICAgIHwg NDUxICsrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJl c3Mub3V0ICB8ICAzNyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5v dXQgICAgICAgIHwgICA4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQgICAgICB8ICAxMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nh bml0eS5vdXQgICAgIHwgICA2ICstCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19t YWluLmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1u X2VuY3J5cHRpb24uc3FsICAgIHwgMjk3ICsrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L29iamVjdF9hZGRyZXNzLnNxbCAgICAgICB8ICAxMyArLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvdHlwZV9zYW5pdHkuc3FsICAgICAgICAgIHwgICAyICsKIDE0NCBmaWxlcyBjaGFuZ2Vk LCAxMDM5OSBpbnNlcnRpb25zKCspLCA5MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21s CiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFz dGVyX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5z Z21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9t YXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5k cy9jb2xlbmNjbWRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvY29tbW9uL2NvbGVuYy5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXku aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5 ZGF0YS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xt YXN0ZXJrZXkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL2Nv bGVuY2NtZHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1vbi9jb2xl bmMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5 cHQtb3BlbnNzbC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtZW5jcnlwdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEv dC8wMDNfZW5jcnlwdC5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9l bmNyeXB0aW9uLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90 YXRpb24ucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi90ZXN0X2NsaWVudC5jCiBjcmVhdGUgbW9kZSAxMDA3NTUgc3JjL3Rlc3QvY29sdW1uX2Vu Y3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0CiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwgYi9kb2Mvc3JjL3NnbWwv YWNyb255bXMuc2dtbAppbmRleCAyZGY2NTU5YWNjLi4zYTVmMmMyNTRjIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYWNyb255 bXMuc2dtbApAQCAtNTYsNiArNTYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGFjcm9ueW0+Q0VLPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29sdW1uIEVuY3J5cHRpb24gS2V5OyBzZWUgPHhy ZWYgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIi8+CisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgPHRlcm0+PGFjcm9ueW0+Q0lEUjwvYWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtNjcsNiArNzYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PGFjcm9ueW0+Q01LPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgQ29sdW1uIE1hc3RlciBLZXk7IHNlZSA8eHJlZiBsaW5r ZW5kPSJkZGwtY29sdW1uLWVuY3J5cHRpb24iLz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8 dGVybT48YWNyb255bT5DUEFOPC9hY3JvbnltPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IGMxZTQwNDgwNTQuLjgwOGYyOTY2OWQgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC0xMDUsNiArMTA1LDIxIEBAIDx0aXRsZT5TeXN0ZW0gQ2F0YWxvZ3M8L3Rp dGxlPgogICAgICAgPGVudHJ5PmNvbGxhdGlvbnMgKGxvY2FsZSBpbmZvcm1hdGlvbik8L2Vu dHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8 L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5 cHRpb24ga2V5czwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0 bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAg ICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhPC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3Ru YW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBtYXN0ZXIga2V5czwv ZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsg bGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij48c3RydWN0bmFtZT5wZ19jb25zdHJh aW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5PmNoZWNrIGNv bnN0cmFpbnRzLCB1bmlxdWUgY29uc3RyYWludHMsIHByaW1hcnkga2V5IGNvbnN0cmFpbnRz LCBmb3JlaWduIGtleSBjb25zdHJhaW50czwvZW50cnk+CkBAIC0xMzYwLDYgKzEzNzUsNDQg QEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT4gQ29sdW1u czwvdGl0bGU+CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dGNlazwv c3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5j a2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIGNvbHVtbiBp cyBlbmNyeXB0ZWQsIGEgcmVmZXJlbmNlIHRvIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXks IGVsc2UgMC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0dXNlcnR5 cGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2Vz IDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5hbWU+cGdfdHlwZTwv c3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5j cnlwdGVkLCB0aGVuIHRoaXMgY29sdW1uIGluZGljYXRlcyB0aGUgdHlwZSBvZiB0aGUKKyAg ICAgICBlbmNyeXB0ZWQgZGF0YSB0aGF0IGlzIHJlcG9ydGVkIHRvIHRoZSBjbGllbnQuICBJ ZiB0aGUgY29sdW1uIGlzIG5vdAorICAgICAgIGVuY3J5cHRlZCwgdGhlbiAwLiAgRm9yIGVu Y3J5cHRlZCBjb2x1bW5zLCB0aGUgZmllbGQKKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0dHlw aWQ8L3N0cnVjdGZpZWxkPiBpcyBlaXRoZXIKKyAgICAgICA8dHlwZT5wZ19lbmNyeXB0ZWRf ZGV0PC90eXBlPiBvciA8dHlwZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBlPi4KKyAgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dHVzZXJ0eXBtb2Q8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgSWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIHRoZW4gdGhpcyBjb2x1bW4gaW5kaWNh dGVzIHRoZSB0eXBlCisgICAgICAgbW9kaWZpZXIgKGFuYWxvZ291cyB0byA8c3RydWN0Zmll bGQ+YXR0dHlwbW9kPC9zdHJ1Y3RmaWVsZD4pIHRoYXQgaXMKKyAgICAgICByZXBvcnRlZCB0 byB0aGUgY2xpZW50LiAgSWYgdGhlIGNvbHVtbiBpcyBub3QgZW5jcnlwdGVkLCB0aGVuIC0x LiAgRm9yCisgICAgICAgZW5jcnlwdGVkIGNvbHVtbnMsIHRoZSBmaWVsZCA8c3RydWN0Zmll bGQ+YXR0dHlwbW9kPC9zdHJ1Y3RmaWVsZD4pCisgICAgICAgY29udGFpbnMgdGhlIGlkZW50 aWZpZXIgb2YgdGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtOyBzZWUgPHhyZWYKKyAgICAgICBs aW5rZW5kPSJwcm90b2NvbC1jZWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+YXR0aW5oY291bnQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ0PC90eXBlPgpAQCAtMjQ2Nyw2ICsyNTIwLDI3MCBAQCA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgPC9w YXJhPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij4K KyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L3RpdGxl PgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICAgPHBy aW1hcnk+cGdfY29sZW5ja2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFt ZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXlzIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBhY3R1YWwga2V5IG1hdGVyaWFsCisgICBv ZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBpcyBpbiB0aGUgY2F0YWxvZyA8bGluawor ICAgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0bmFtZT5wZ19j b2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz4uCisgIDwvcGFyYT4KKworICA8dGFi bGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBD b2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5Pgor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+Y2VrbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gZW5jcnlwdGlvbiBr ZXkgbmFtZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtuYW1lc3Bh Y2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMg PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1lc3BhY2UiPjxzdHJ1Y3RuYW1lPnBnX25h bWVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2Yg dGhlIG5hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5 CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNla293bmVyPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtl bmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgY29sdW1uIGVuY3J5cHRp b24ga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNla2FjbDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmFjbGl0ZW1bXTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzOyBzZWUgPHhyZWYgbGlua2VuZD0i ZGRsLXByaXYiLz4gZm9yIGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0 MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+PC90aXRsZT4KKwor ICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+CisgICA8cHJp bWFyeT5wZ19jb2xlbmNrZXlkYXRhPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8 cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0 cnVjdG5hbWU+IGNvbnRhaW5zIHRoZSBrZXkKKyAgIG1hdGVyaWFsIG9mIGNvbHVtbiBlbmNy eXB0aW9uIGtleXMuICBFYWNoIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBvYmplY3QgY2FuCisg ICBjb250YWluIHNldmVyYWwgdmVyc2lvbnMgb2YgdGhlIGtleSBtYXRlcmlhbCwgZWFjaCBl bmNyeXB0ZWQgd2l0aCBhCisgICBkaWZmZXJlbnQgY29sdW1uIG1hc3RlciBrZXkuICBUaGF0 IGFsbG93cyB0aGUgZ3JhZHVhbCByb3RhdGlvbiBvZiB0aGUKKyAgIGNvbHVtbiBtYXN0ZXIg a2V5cy4gIFRodXMsIDxsaXRlcmFsPihja2RjZWtpZCwgY2tkY21raWQpPC9saXRlcmFsPiBp cyBhCisgICB1bmlxdWUga2V5IG9mIHRoaXMgdGFibGUuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBzaG91 bGQgbmV2ZXIgYmUgZGVjcnlwdGVkIGluc2lkZQorICAgdGhlIGRhdGFiYXNlIGluc3RhbmNl LiAgSXQgaXMgbWVhbnQgdG8gYmUgc2VudCBhcy1pcyB0byB0aGUgY2xpZW50LCB3aGVyZQor ICAgaXQgaXMgZGVjcnlwdGVkIHVzaW5nIHRoZSBhc3NvY2lhdGVkIGNvbHVtbiBtYXN0ZXIg a2V5LCBhbmQgdGhlbiB1c2VkIHRvCisgICBlbmNyeXB0IG9yIGRlY3J5cHQgY29sdW1uIHZh bHVlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3Jv dXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50 aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY2VraWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsg bGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tl eTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgdGhpcyBlbnRyeSBiZWxvbmdzIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmNrZGNta2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbWFzdGVy a2V5Ij48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgY29sdW1uIG1hc3RlciBrZXkgdGhhdCB0aGUga2V5IG1hdGVy aWFsIGlzIGVuY3J5cHRlZCB3aXRoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmNrZGNta2FsZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0g dXNlZCBmb3IgZW5jcnlwdGluZyB0aGUga2V5IG1hdGVyaWFsOyBzZWUKKyAgICAgICA8eHJl ZiBsaW5rZW5kPSJwcm90b2NvbC1jbWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkZW5jdmFsPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+Ynl0ZWE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNy eXB0ZWQgdXNpbmcgdGhlCisgICAgICAgcmVmZXJlbmNlZCBjb2x1bW4gbWFzdGVyIGtleQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8 L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9n LXBnLWNvbG1hc3RlcmtleSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJr ZXk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ct cGctY29sbWFzdGVya2V5Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbG1hc3RlcmtleTwvcHJpbWFy eT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0 bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9ybWF0aW9u CisgICBhYm91dCBjb2x1bW4gbWFzdGVyIGtleXMuICBUaGUga2V5cyB0aGVtc2VsdmVzIGFy ZSBub3Qgc3RvcmVkIGluIHRoZQorICAgZGF0YWJhc2UuICBUaGUgY2F0YWxvZyBlbnRyeSBv bmx5IGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgaXMgdXNlZCBieQorICAgY2xpZW50cyB0 byBsb2NhdGUgdGhlIGtleXMsIGZvciBleGFtcGxlIGluIGEgZmlsZSBvciBpbiBhIGtleSBt YW5hZ2VtZW50CisgICBzeXN0ZW0uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90 aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+Y21rbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gbWFzdGVyIGtleSBuYW1lCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta25hbWVzcGFjZTwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNl IHRoYXQgY29udGFpbnMgdGhpcyBjb2x1bW4gbWFzdGVyIGtleQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwv dHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1 dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgT3duZXIgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmNta3JlYWxtPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4 dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEEgPHF1b3Rl PnJlYWxtPC9xdW90ZT4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uIG1hc3RlciBrZXku ICBUaGlzIGlzCisgICAgICAgYSBmcmVlbHkgY2hvc2VuIHN0cmluZyB0aGF0IGlzIHVzZWQg YnkgY2xpZW50cyB0byBkZXRlcm1pbmUgaG93IHRvIGxvb2sKKyAgICAgICB1cCB0aGUga2V5 LiAgQSB0eXBpY2FsIGNvbmZpZ3VyYXRpb24gd291bGQgcHV0IGFsbCBDTUtzIHRoYXQgYXJl IGxvb2tlZAorICAgICAgIHVwIGluIHRoZSBzYW1lIHdheSBpbnRvIHRoZSBzYW1lIHJlYWxt LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWthY2w8L3N0cnVjdGZp ZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1w cml2Ii8+IGZvciBkZXRhaWxzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisK ICA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29uc3RyYWludCI+CiAgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21s CmluZGV4IDMwMzIzOTJiODAuLmYzMDI2ZmZmODMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9jaGFyc2V0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbApAQCAtMTcy MSw2ICsxNzIxLDE2IEBAIDx0aXRsZT5BdXRvbWF0aWMgQ2hhcmFjdGVyIFNldCBDb252ZXJz aW9uIEJldHdlZW4gU2VydmVyIGFuZCBDbGllbnQ8L3RpdGxlPgogICAgICBKdXN0IGFzIGZv ciB0aGUgc2VydmVyLCB1c2Ugb2YgPGxpdGVyYWw+U1FMX0FTQ0lJPC9saXRlcmFsPiBpcyB1 bndpc2UKICAgICAgdW5sZXNzIHlvdSBhcmUgd29ya2luZyB3aXRoIGFsbC1BU0NJSSBkYXRh LgogICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBXaGVuIGF1dG9tYXRpYyBjbGll bnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBpcyB1c2VkLCB0aGVuIG5vCisgICAg IGVuY29kaW5nIGNvbnZlcnNpb24gaXMgcG9zc2libGUuICAoVGhlIGVuY29kaW5nIGNvbnZl cnNpb24gaGFwcGVucyBvbiB0aGUKKyAgICAgc2VydmVyLCBhbmQgdGhlIHNlcnZlciBjYW5u b3QgbG9vayBpbnNpZGUgYW55IGVuY3J5cHRlZCBjb2x1bW4gdmFsdWVzLikKKyAgICAgSWYg YXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uIGlzIGVuYWJs ZWQgZm9yIGEKKyAgICAgc2Vzc2lvbiwgdGhlbiB0aGUgc2VydmVyIGVuZm9yY2VzIHRoYXQg dGhlIGNsaWVudCBlbmNvZGluZyBtYXRjaGVzIHRoZQorICAgICBzZXJ2ZXIgZW5jb2Rpbmcs IGFuZCBhbnkgYXR0ZW1wdHMgdG8gY2hhbmdlIHRoZSBjbGllbnQgZW5jb2Rpbmcgd2lsbCBi ZQorICAgICByZWplY3RlZCBieSB0aGUgc2VydmVyLgorICAgIDwvcGFyYT4KICAgIDwvc2Vj dDI+CiAKICAgIDxzZWN0MiBpZD0ibXVsdGlieXRlLWNvbnZlcnNpb25zLXN1cHBvcnRlZCI+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9kYXRhdHlwZS5zZ21sCmluZGV4IDQ2N2I0OWIxOTkuLjY3ZmNlMTY4NzIgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kYXRh dHlwZS5zZ21sCkBAIC01MzYwLDQgKzUzNjAsNTkgQEAgPHRpdGxlPlBzZXVkby1UeXBlczwv dGl0bGU+CiAKICAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9ImRhdGF0eXBlLWVuY3J5cHRl ZCI+CisgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBFbmNyeXB0aW9uPC90aXRsZT4KKwor ICAgPHBhcmE+CisgICAgQW4gZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSAoc2VlIDx4cmVmIGxp bmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiIvPikgaXMKKyAgICBpbnRlcm5hbGx5IHN0 b3JlZCB1c2luZyB0aGUgdHlwZXMKKyAgICA8dHlwZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBl PiAoZm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbikgb3IKKyAgICA8dHlwZT5wZ19lbmNyeXB0 ZWRfZGV0PC90eXBlPiAoZm9yIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbik7IHNlZSA8eHJl ZgorICAgIGxpbmtlbmQ9ImRhdGF0eXBlLWVuY3J5cHRlZC10YWJsZSIvPi4gIE1vc3Qgb2Yg dGhlIGRhdGFiYXNlIHN5c3RlbSB0cmVhdHMKKyAgICB0aGVzZSBhcyBub3JtYWwgdHlwZXMu ICBGb3IgZXhhbXBsZSwgdGhlIHR5cGUgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4g aGFzCisgICAgYW4gZXF1YWxzIG9wZXJhdG9yIHRoYXQgYWxsb3dzIGxvb2t1cCBvZiBlbmNy eXB0ZWQgdmFsdWVzLiAgSXQgaXMsCisgICAgaG93ZXZlciwgbm90IGFsbG93ZWQgdG8gY3Jl YXRlIGEgdGFibGUgdXNpbmcgb25lIG9mIHRoZXNlIHR5cGVzIGRpcmVjdGx5CisgICAgYXMg YSBjb2x1bW4gdHlwZS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGV4dGVy bmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZXNlIHR5cGVzIGlzIHRoZSBzdHJpbmcKKyAgICA8 bGl0ZXJhbD5lbmNyeXB0ZWQkPC9saXRlcmFsPiBmb2xsb3dlZCBieSBoZXhhZGVjaW1hbCBi eXRlIHZhbHVlcywgZm9yCisgICAgZXhhbXBsZQorICAgIDxsaXRlcmFsPmVuY3J5cHRlZCQz YWFjZDA2M2QyZDNhMWEwNDExOWRmNzY4NzRlMGI5Nzg1ZWE0NjYxNzdmMThmZTljMGExYTMx M2VhZjA5Yzk4PC9saXRlcmFsPi4KKyAgICBDbGllbnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBh dXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24KKyAgICBvciBo YXZlIGRpc2FibGVkIGl0IHdpbGwgc2VlIHRoZSBlbmNyeXB0ZWQgdmFsdWVzIGluIHRoaXMg Zm9ybWF0LiAgQ2xpZW50cworICAgIHRoYXQgc3VwcG9ydCBhdXRvbWF0aWMgY2xpZW50LXNp ZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gd2lsbCBub3Qgc2VlCisgICAgdGhlc2UgdHlw ZXMgaW4gcmVzdWx0IHNldHMsIGFzIHRoZSBwcm90b2NvbCBsYXllciB3aWxsIHRyYW5zbGF0 ZSB0aGVtIGJhY2sKKyAgICB0byB0aGUgZGVjbGFyZWQgdW5kZXJseWluZyB0eXBlIGluIHRo ZSB0YWJsZSBkZWZpbml0aW9uLgorICAgPC9wYXJhPgorCisgICAgPHRhYmxlIGlkPSJkYXRh dHlwZS1lbmNyeXB0ZWQtdGFibGUiPgorICAgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBF bmNyeXB0aW9uPC90aXRsZT4KKyAgICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICAgIDxjb2xz cGVjIGNvbG5hbWU9ImNvbDEiIGNvbHdpZHRoPSIxKiIvPgorICAgICAgPGNvbHNwZWMgY29s bmFtZT0iY29sMiIgY29sd2lkdGg9IjMqIi8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJj b2wzIiBjb2x3aWR0aD0iMioiLz4KKyAgICAgIDx0aGVhZD4KKyAgICAgICA8cm93PgorICAg ICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5TdG9yYWdlIFNpemU8 L2VudHJ5PgorICAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgIDwv cm93PgorICAgICAgPC90aGVhZD4KKyAgICAgIDx0Ym9keT4KKyAgICAgICA8cm93PgorICAg ICAgICA8ZW50cnk+PHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT48L2VudHJ5PgorICAg ICAgICA8ZW50cnk+MSBvciA0IGJ5dGVzIHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5n PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICAgPHJv dz4KKyAgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+PC9lbnRy eT4KKyAgICAgICAgPGVudHJ5PjEgb3IgNCBieXRlcyBwbHVzIHRoZSBhY3R1YWwgYmluYXJ5 IHN0cmluZzwvZW50cnk+CisgICAgICAgIDxlbnRyeT5lbmNyeXB0ZWQgY29sdW1uIHZhbHVl LCByYW5kb21pemVkIGVuY3J5cHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAg PC90Ym9keT4KKyAgICAgPC90Z3JvdXA+CisgICAgPC90YWJsZT4KKyAgPC9zZWN0MT4KICA8 L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKaW5kZXggNTE3OTEyNTUxMC4uNjU1MTRlMTE5ZiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtMTIzOCw2ICsxMjM4LDQ0MCBAQCA8dGl0bGU+RXhjbHVzaW9uIENvbnN0cmFpbnRzPC90 aXRsZT4KICAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJkZGwtY29sdW1u LWVuY3J5cHRpb24iPgorICA8dGl0bGU+QXV0b21hdGljIENsaWVudC1zaWRlIENvbHVtbi1s ZXZlbCBFbmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFdpdGggPGZpcnN0dGVy bT5hdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb248L2ZpcnN0 dGVybT4sCisgICBjb2x1bW5zIGNhbiBiZSBzdG9yZWQgZW5jcnlwdGVkIGluIHRoZSBkYXRh YmFzZS4gIFRoZSBlbmNyeXB0aW9uIGFuZAorICAgZGVjcnlwdGlvbiBoYXBwZW5zIGF1dG9t YXRpY2FsbHkgb24gdGhlIGNsaWVudCwgc28gdGhhdCB0aGUgcGxhaW50ZXh0IHZhbHVlCisg ICBpcyBuZXZlciBzZWVuIGluIHRoZSBkYXRhYmFzZSBpbnN0YW5jZSBvciBvbiB0aGUgc2Vy dmVyIGhvc3RpbmcgdGhlCisgICBkYXRhYmFzZS4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IG1v c3Qgb3BlcmF0aW9ucywgc3VjaCBhcyBmdW5jdGlvbiBjYWxscyBvcgorICAgc29ydGluZywg YXJlIG5vdCBwb3NzaWJsZSBvbiBlbmNyeXB0ZWQgdmFsdWVzLgorICA8L3BhcmE+CisKKyAg PHNlY3QyPgorICAgPHRpdGxlPlVzaW5nIEF1dG9tYXRpYyBDbGllbnQtc2lkZSBDb2x1bW4t bGV2ZWwgRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBBdXRvbWF0aWMgY2xp ZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gdXNlcyB0d28gbGV2ZWxzIG9mCisg ICBjcnlwdG9ncmFwaGljIGtleXMuICBUaGUgYWN0dWFsIGNvbHVtbiB2YWx1ZSBpcyBlbmNy eXB0ZWQgdXNpbmcgYSBzeW1tZXRyaWMKKyAgIGFsZ29yaXRobSwgc3VjaCBhcyBBRVMsIHVz aW5nIGEgPGZpcnN0dGVybT5jb2x1bW4gZW5jcnlwdGlvbgorICAga2V5PC9maXJzdHRlcm0+ ICg8YWNyb255bT5DRUs8L2Fjcm9ueW0+KS4gIFRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg aXMgaW4KKyAgIHR1cm4gZW5jcnlwdGVkIHVzaW5nIGFuIGFzeW1tZXRyaWMgYWxnb3JpdGht LCBzdWNoIGFzIFJTQSwgdXNpbmcgYQorICAgPGZpcnN0dGVybT5jb2x1bW4gbWFzdGVyIGtl eTwvZmlyc3R0ZXJtPiAoPGFjcm9ueW0+Q01LPC9hY3JvbnltPikuICBUaGUKKyAgIGVuY3J5 cHRlZCBDRUsgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSBzeXN0ZW0uICBUaGUgQ01LIGlz IG5vdCBzdG9yZWQgaW4KKyAgIHRoZSBkYXRhYmFzZSBzeXN0ZW07IGl0IGlzIHN0b3JlZCBv biB0aGUgY2xpZW50IG9yIHNvbWV3aGVyZSB3aGVyZSB0aGUKKyAgIGNsaWVudCBjYW4gYWNj ZXNzIGl0LCBzdWNoIGFzIGluIGEgbG9jYWwgZmlsZSBvciBpbiBhIGtleSBtYW5hZ2VtZW50 CisgICBzeXN0ZW0uICBUaGUgZGF0YWJhc2Ugc3lzdGVtIG9ubHkgcmVjb3JkcyB3aGVyZSB0 aGUgQ01LIGlzIHN0b3JlZCBhbmQKKyAgIHByb3ZpZGVzIHRoaXMgaW5mb3JtYXRpb24gdG8g dGhlIGNsaWVudC4gIFdoZW4gcm93cyBjb250YWluaW5nIGVuY3J5cHRlZAorICAgY29sdW1u cyBhcmUgc2VudCB0byB0aGUgY2xpZW50LCB0aGUgc2VydmVyIGZpcnN0IHNlbmRzIGFueSBu ZWNlc3NhcnkgQ01LCisgICBpbmZvcm1hdGlvbiwgZm9sbG93ZWQgYnkgYW55IHJlcXVpcmVk IENFSy4gIFRoZSBjbGllbnQgdGhlbiBsb29rcyB1cCB0aGUKKyAgIENNSyBhbmQgdXNlcyB0 aGF0IHRvIGRlY3J5cHQgdGhlIENFSy4gIFRoZW4gaXQgZGVjcnlwdHMgaW5jb21pbmcgcm93 IGRhdGEKKyAgIHVzaW5nIHRoZSBDRUsgYW5kIHByb3ZpZGVzIHRoZSBkZWNyeXB0ZWQgcm93 IGRhdGEgdG8gdGhlIGFwcGxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBI ZXJlIGlzIGFuIGV4YW1wbGUgZGVjbGFyaW5nIGEgY29sdW1uIGFzIGVuY3J5cHRlZDoKKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBjdXN0b21lcnMgKAorICAgIGlkIGludCBQ UklNQVJZIEtFWSwKKyAgICBuYW1lIHRleHQgTk9UIE5VTEwsCisgICAgLi4uCisgICAgY3Jl ZGl0Y2FyZF9udW0gdGV4dCA8ZW1waGFzaXM+RU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNy eXB0aW9uX2tleSA9IGNlazEpPC9lbXBoYXNpcz4KKyk7Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBDb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0cyA8 Zmlyc3R0ZXJtPnJhbmRvbWl6ZWQ8L2ZpcnN0dGVybT4KKyAgIChhbHNvIGtub3duIGFzIDxm aXJzdHRlcm0+cHJvYmFiaWxpc3RpYzwvZmlyc3R0ZXJtPikgYW5kCisgICA8Zmlyc3R0ZXJt PmRldGVybWluaXN0aWM8L2ZpcnN0dGVybT4gZW5jcnlwdGlvbi4gIFRoZSBhYm92ZSBleGFt cGxlIHVzZXMKKyAgIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbiwgd2hpY2ggaXMgdGhlIGRlZmF1 bHQuICBSYW5kb21pemVkIGVuY3J5cHRpb24gdXNlcyBhCisgICByYW5kb20gaW5pdGlhbGl6 YXRpb24gdmVjdG9yIGZvciBlYWNoIGVuY3J5cHRpb24sIHNvIHRoYXQgZXZlbiBpZiB0aGUK KyAgIHBsYWludGV4dCBvZiB0d28gcm93cyBpcyBlcXVhbCwgdGhlIGVuY3J5cHRlZCB2YWx1 ZXMgd2lsbCBiZSBkaWZmZXJlbnQuCisgICBUaGlzIHByZXZlbnRzIHNvbWVvbmUgd2l0aCBk aXJlY3QgYWNjZXNzIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIgZnJvbSBtYWtpbmcKKyAgIGNv bXB1dGF0aW9ucyBzdWNoIGFzIGRpc3RpbmN0IGNvdW50cyBvbiB0aGUgZW5jcnlwdGVkIHZh bHVlcy4KKyAgIERldGVybWluaXN0aWMgZW5jcnlwdGlvbiB1c2VzIGEgZml4ZWQgaW5pdGlh bGl6YXRpb24gdmVjdG9yLiAgVGhpcyByZWR1Y2VzCisgICBzZWN1cml0eSwgYnV0IGl0IGFs bG93cyBlcXVhbGl0eSBzZWFyY2hlcyBvbiBlbmNyeXB0ZWQgdmFsdWVzLiAgVGhlCisgICBm b2xsb3dpbmcgZXhhbXBsZSBkZWNsYXJlcyBhIGNvbHVtbiB3aXRoIGRldGVybWluaXN0aWMg ZW5jcnlwdGlvbjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBlbXBsb3llZXMg KAorICAgIGlkIGludCBQUklNQVJZIEtFWSwKKyAgICBuYW1lIHRleHQgTk9UIE5VTEwsCisg ICAgLi4uCisgICAgc3NuIHRleHQgRU5DUllQVEVEIFdJVEggKAorICAgICAgICBjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCA8ZW1waGFzaXM+ZW5jcnlwdGlvbl90eXBlID0gZGV0 ZXJtaW5pc3RpYzwvZW1waGFzaXM+KQorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIE51bGwgdmFsdWVzIGFyZSBub3QgZW5jcnlwdGVkIGJ5IGF1 dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwKKyAgIGVuY3J5cHRpb247IG51bGwg dmFsdWVzIHNlbnQgYnkgdGhlIGNsaWVudCBhcmUgdmlzaWJsZSBhcyBudWxsIHZhbHVlcyBp bgorICAgdGhlIGRhdGFiYXNlLiAgSWYgdGhlIGZhY3QgdGhhdCBhIHZhbHVlIGlzIG51bGwg bmVlZHMgdG8gYmUgaGlkZGVuIGZyb20gdGhlCisgICBzZXJ2ZXIsIHRoaXMgaW5mb3JtYXRp b24gbmVlZHMgdG8gYmUgZW5jb2RlZCBpbnRvIGEgbm9ubnVsbCB2YWx1ZSBpbiB0aGUKKyAg IGNsaWVudCBzb21laG93LgorICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyPgor ICAgPHRpdGxlPlJlYWRpbmcgYW5kIFdyaXRpbmcgRW5jcnlwdGVkIENvbHVtbnM8L3RpdGxl PgorCisgICA8cGFyYT4KKyAgICBSZWFkaW5nIGFuZCB3cml0aW5nIGVuY3J5cHRlZCBjb2x1 bW5zIGlzIG1lYW50IHRvIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseQorICAgIGJ5IHRoZSBj bGllbnQgbGlicmFyeS9kcml2ZXIgYW5kIHNob3VsZCBiZSBtb3N0bHkgdHJhbnNwYXJlbnQg dG8gdGhlCisgICAgYXBwbGljYXRpb24gY29kZSwgaWYgY2VydGFpbiBwcmVyZXF1aXNpdGVz IGFyZSBmdWxmaWxsZWQ6CisKKyAgICA8aXRlbWl6ZWRsaXN0PgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgY2xpZW50IGxpYnJhcnkgbmVlZHMgdG8gc3Vw cG9ydCBhdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsCisgICAgICAgZW5jcnlw dGlvbi4gIE5vdCBhbGwgY2xpZW50IGxpYnJhcmllcyBkby4gIEZ1cnRoZXJtb3JlLCB0aGUg Y2xpZW50CisgICAgICAgbGlicmFyeSBtaWdodCByZXF1aXJlIHRoYXQgYXV0b21hdGljIGNs aWVudC1zaWRlIGNvbHVtbi1sZXZlbAorICAgICAgIGVuY3J5cHRpb24gaXMgZXhwbGljaXRs eSBlbmFibGVkIGF0IGNvbm5lY3Rpb24gdGltZS4gIFNlZSB0aGUKKyAgICAgICBkb2N1bWVu dGF0aW9uIG9mIHRoZSBjbGllbnQgbGlicmFyeSBmb3IgZGV0YWlscy4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4K KyAgICAgICBDb2x1bW4gbWFzdGVyIGtleXMgYW5kIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMg aGF2ZSBiZWVuIHNldCB1cCwgYW5kIHRoZQorICAgICAgIGNsaWVudCBsaWJyYXJ5IGhhcyBi ZWVuIGNvbmZpZ3VyZWQgdG8gYmUgYWJsZSB0byBsb29rIHVwIGNvbHVtbiBtYXN0ZXIKKyAg ICAgICBrZXlzIGZyb20gdGhlIGtleSBzdG9yZSBvciBrZXkgbWFuYWdlbWVudCBzeXN0ZW0u CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+ CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFJlYWRpbmcgZnJvbSBlbmNyeXB0ZWQg Y29sdW1ucyB3aWxsIHRoZW4gd29yayBhdXRvbWF0aWNhbGx5LiAgRm9yIGV4YW1wbGUsCisg ICAgdXNpbmcgdGhlIGFib3ZlIGV4YW1wbGUsCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1Qg c3NuIEZST00gZW1wbG95ZWVzIFdIRVJFIGlkID0gNTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg ICAgd291bGQgcmV0dXJuIHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSBmb3IgdGhlIDxsaXRlcmFs PnNzbjwvbGl0ZXJhbD4gY29sdW1uCisgICAgaW4gYW55IHJvd3MgZm91bmQuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIFdyaXRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgcmVx dWlyZXMgdGhhdCB0aGUgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyAgICAocHJvdG9jb2wt bGV2ZWwgcHJlcGFyZWQgc3RhdGVtZW50cykgYmUgdXNlZCwgc28gdGhhdCB0aGUgdmFsdWVz IHRvIGJlCisgICAgZW5jcnlwdGVkIGFyZSBzdXBwbGllZCBzZXBhcmF0ZWx5IGZyb20gdGhl IFNRTCBjb21tYW5kLiAgRm9yIGV4YW1wbGUsCisgICAgdXNpbmcsIHNheSwgcHNxbCBvciBs aWJwcSwgdGhlIGZvbGxvd2luZyB3b3VsZCBub3Qgd29yazoKKzxwcm9ncmFtbGlzdGluZz4K Ky0tIFdST05HIQorSU5TRVJUIElOVE8gZW1wbG95ZWVzIChpZCwgbmFtZSwgc3NuKSBWQUxV RVMgKDEsICdTb21lb25lJywgJzEyMzQ1Jyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIFRo aXMgd291bGQgbGVhayB0aGUgdW5lbmNyeXB0ZWQgdmFsdWUgPGxpdGVyYWw+MTIzNDU8L2xp dGVyYWw+IHRvIHRoZQorICAgIHNlcnZlciwgdGh1cyBkZWZlYXRpbmcgdGhlIHBvaW50IG9m IGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uLgorICAgIChBbmQgZXZlbiBp Z25vcmluZyB0aGF0LCBpdCBjb3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBzZXJ2ZXIgZG9l cyBub3QKKyAgICBoYXZlIGFjY2VzcyB0byB0aGUga2V5cyB0byBwZXJmb3JtIHRoZSBlbmNy eXB0aW9uLikgIE5vdGUgdGhhdCB1c2luZworICAgIHNlcnZlci1zaWRlIHByZXBhcmVkIHN0 YXRlbWVudHMgdXNpbmcgdGhlIFNRTCBjb21tYW5kcworICAgIDxjb21tYW5kPlBSRVBBUkU8 L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiBpcyBlcXVhbGx5Cisg ICAgaW5jb3JyZWN0LCBzaW5jZSB0aGF0IHdvdWxkIGFsc28gbGVhayB0aGUgcGFyYW1ldGVy cyBwcm92aWRlZCB0bworICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IHRvIHRoZSBz ZXJ2ZXIuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoaXMgc2hvd3MgYSBjb3Jy ZWN0IGludm9jYXRpb24gaW4gbGlicHEgKHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcpOgorPHBy b2dyYW1saXN0aW5nPgorUEdyZXN1bHQgICAqcmVzOworY29uc3QgY2hhciAqdmFsdWVzW10g PSB7IjEiLCAiU29tZW9uZSIsICIxMjM0NSJ9OworCityZXMgPSBQUWV4ZWNQYXJhbXMoY29u biwgIklOU0VSVCBJTlRPIGVtcGxveWVlcyAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwg JDIsICQzKSIsCisgICAgICAgICAgICAgICAgICAgMywgTlVMTCwgdmFsdWVzLCBOVUxMLCBO VUxMLCAwKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgSGlnaGVyLWxldmVsIGNsaWVudCBs aWJyYXJpZXMgbWlnaHQgdXNlIHRoZSBwcm90b2NvbC1sZXZlbCBwcmVwYXJlZAorICAgIHN0 YXRlbWVudHMgYXV0b21hdGljYWxseSBhbmQgdGh1cyB3b24ndCByZXF1aXJlIGFueSBjb2Rl IGNoYW5nZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxhcHBsaWNhdGlvbj5w c3FsPC9hcHBsaWNhdGlvbj4gcHJvdmlkZXMgdGhlIGNvbW1hbmQKKyAgICA8bGl0ZXJhbD5c YmluZDwvbGl0ZXJhbD4gdG8gcnVuIHN0YXRlbWVudHMgd2l0aCBwYXJhbWV0ZXJzIGxpa2Ug dGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0lOU0VSVCBJTlRPIGVtcGxveWVlcyAoaWQsIG5h bWUsIHNzbikgVkFMVUVTICgkMSwgJDIsICQzKSBcYmluZCAnMScgJ1NvbWVvbmUnLCAnMTIz NDUnIFxnCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICBTaW1pbGFybHksIGlmIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbiBpcyB1c2VkLCBwYXJh bWV0ZXJzIG5lZWQgdG8gYmUgdXNlZAorICAgIGluIHNlYXJjaCBjb25kaXRpb25zIHVzaW5n IGVuY3J5cHRlZCBjb2x1bW5zOgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUICogRlJPTSBl bXBsb3llZXMgV0hFUkUgc3NuID0gJDEgXGJpbmQgJzEyMzQ1JyBcZworPC9wcm9ncmFtbGlz dGluZz4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+ U2V0dGluZyB1cCBBdXRvbWF0aWMgQ2xpZW50LXNpZGUgQ29sdW1uLWxldmVsIEVuY3J5cHRp b248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHN0ZXBzIHRvIHNldCB1cCBhdXRvbWF0 aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gZm9yIGEKKyAgIGRhdGFi YXNlIGFyZToKKworICAgPG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBDcmVhdGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhlIENNSywgZm9yIGV4 YW1wbGUsIHVzaW5nIGEgY3J5cHRvZ3JhcGhpYworICAgICAgbGlicmFyeSBvciB0b29sa2l0 LCBvciBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4gIFNlY3VyZSBhY2Nlc3MgdG8gdGhlCisg ICAgICBrZXkgYXMgYXBwcm9wcmlhdGUsIHVzaW5nIGFjY2VzcyBjb250cm9sLCBwYXNzd29y ZHMsIGV0Yy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJh c2UgdXNpbmcgdGhlIFNRTCBjb21tYW5kIDx4cmVmCisgICAgICBsaW5rZW5kPSJzcWwtY3Jl YXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgdGhlICh1 bmVuY3J5cHRlZCkga2V5IG1hdGVyaWFsIGZvciB0aGUgQ0VLIGluIGEgdGVtcG9yYXJ5Cisg ICAgICBsb2NhdGlvbi4gIChJdCB3aWxsIGJlIGVuY3J5cHRlZCBpbiB0aGUgbmV4dCBzdGVw LiAgRGVwZW5kaW5nIG9uIHRoZQorICAgICAgYXZhaWxhYmxlIHRvb2xzLCBpdCBtaWdodCBi ZSBwb3NzaWJsZSBhbmQgc2Vuc2libGUgdG8gY29tYmluZSB0aGVzZSB0d28KKyAgICAgIHN0 ZXBzLikKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgRW5jcnlwdCB0aGUgY3JlYXRlZCBDRUsga2V5IG1hdGVy aWFsIHVzaW5nIHRoZSBDTUsgKGNyZWF0ZWQgZWFybGllcikuCisgICAgICAoVGhlIHVuZW5j cnlwdGVkIHZlcnNpb24gb2YgdGhlIENFSyBrZXkgbWF0ZXJpYWwgY2FuIG5vdyBiZSBkaXNw b3NlZAorICAgICAgb2YuKQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ0VLIGluIHRo ZSBkYXRhYmFzZSB1c2luZyB0aGUgU1FMIGNvbW1hbmQgPHhyZWYKKyAgICAgIGxpbmtlbmQ9 InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+LiAgVGhpcyBjb21tYW5kCisg ICAgICA8cXVvdGU+dXBsb2FkczwvcXVvdGU+IHRoZSBlbmNyeXB0ZWQgQ0VLIGtleSBtYXRl cmlhbCBjcmVhdGVkIGluIHRoZQorICAgICAgcHJldmlvdXMgc3RlcCB0byB0aGUgZGF0YWJh c2Ugc2VydmVyLiAgVGhlIGxvY2FsIGNvcHkgb2YgdGhlIENFSyBrZXkKKyAgICAgIG1hdGVy aWFsIGNhbiB0aGVuIGJlIHJlbW92ZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSBlbmNyeXB0 ZWQgY29sdW1ucyB1c2luZyB0aGUgY3JlYXRlZCBDRUsuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbmZp Z3VyZSB0aGUgY2xpZW50IGxpYnJhcnkvZHJpdmVyIHRvIGJlIGFibGUgdG8gbG9vayB1cCB0 aGUgQ01LCisgICAgICBjcmVhdGVkIGVhcmxpZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC9vcmRlcmVkbGlzdD4KKworICAgT25jZSB0aGlzIGlzIGRvbmUsIHZh bHVlcyBjYW4gYmUgd3JpdHRlbiB0byBhbmQgcmVhZCBmcm9tIHRoZSBlbmNyeXB0ZWQKKyAg IGNvbHVtbnMgaW4gYSB0cmFuc3BhcmVudCB3YXkuCisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIE5vdGUgdGhhdCB0aGVzZSBzdGVwcyBzaG91bGQgbm90IGJlIHJ1biBvbiB0aGUgZGF0 YWJhc2Ugc2VydmVyLCBidXQgb24gc29tZQorICAgY2xpZW50IG1hY2hpbmUuICBOZWl0aGVy IHRoZSBDTUsgbm9yIHRoZSB1bmVuY3J5cHRlZCBDRUsgc2hvdWxkIGV2ZXIgYXBwZWFyCisg ICBvbiB0aGUgZGF0YWJhc2Ugc2VydmVyIGhvc3QuCisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIFRoZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoaXMgc2V0dXAgZGVwZW5kIG9uIHRoZSBk ZXNpcmVkIENNSyBzdG9yYWdlCisgICBtZWNoYW5pc20va2V5IG1hbmFnZW1lbnQgc3lzdGVt IGFzIHdlbGwgYXMgdGhlIGNsaWVudCBsaWJyYXJpZXMgdG8gYmUgdXNlZC4KKyAgIFRoZSBm b2xsb3dpbmcgZXhhbXBsZSB1c2VzIHRoZSA8Y29tbWFuZD5vcGVuc3NsPC9jb21tYW5kPiBj b21tYW5kLWxpbmUgdG9vbAorICAgdG8gc2V0IHVwIHRoZSBrZXlzLgorCisgICA8b3JkZXJl ZGxpc3Q+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUg a2V5IG1hdGVyaWFsIGZvciB0aGUgQ01LIGFuZCB3cml0ZSBpdCB0byBhIGZpbGU6Cis8cHJv Z3JhbWxpc3Rpbmc+CitvcGVuc3NsIGdlbnBrZXkgLWFsZ29yaXRobSByc2EgLW91dCBjbWsx LnBlbQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENN SyBpbiB0aGUgZGF0YWJhc2U6Cis8cHJvZ3JhbWxpc3Rpbmc+Citwc3FsIC4uLiAtYyAiQ1JF QVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEiCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBDcmVhdGUgdGhlIHVuZW5jcnlwdGVkIENFSyBrZXkgbWF0ZXJpYWwgaW4gYSBm aWxlOgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCByYW5kIC1vdXQgY2VrMS5iaW4gNDgK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAoU2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29s LWNlay10YWJsZSIvPiBmb3IgcmVxdWlyZWQga2V5IGxlbmd0aHMuKQorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBFbmNyeXB0IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWw6Cis8cHJvZ3JhbWxpc3Rp bmc+CitvcGVuc3NsIHBrZXl1dGwgLWVuY3J5cHQgLWlua2V5IGNtazEucGVtIC1wa2V5b3B0 IHJzYV9wYWRkaW5nX21vZGU6b2FlcCAtaW4gY2VrMS5iaW4gLW91dCBjZWsxLmJpbi5lbmMK K3JtIGNlazEuYmluCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3Rl ciB0aGUgQ0VLIGluIHRoZSBkYXRhYmFzZToKKzxwcm9ncmFtbGlzdGluZz4KKyMgY29udmVy dCBmaWxlIGNvbnRlbnRzIHRvIGhleCBlbmNvZGluZzsgdGhpcyBpcyBqdXN0IG9uZSBwb3Nz aWJsZSB3YXkKK2Nla2VuY2hleD0kKHBlcmwgLTBuZSAncHJpbnQgdW5wYWNrICJIKiInIGNl azEuYmluLmVuYykKK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgYWxnb3JpdGht ID0gJ1JTQUVTX09BRVBfU0hBXzEnLCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNo ZXh9JykiCitybSBjZWsxLmJpbi5lbmMKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyBhcyBzaG93biBpbiB0aGUgZXhhbXBsZXMg YWJvdmUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIENvbmZpZ3VyZSB0aGUgbGlicHEgZm9yIENNSyBsb29r dXAgKHNlZSBhbHNvIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIi8+ KToKKzxwcm9ncmFtbGlzdGluZz4KK1BHQ01LTE9PS1VQPSIqPWZpbGU6JFBXRC8lay5wZW0i CitleHBvcnQgUEdDTUtMT09LVVAKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4K KworICAgICA8cGFyYT4KKyAgICAgIEFkZGl0aW9uYWxseSwgbGlicHEgcmVxdWlyZXMgdGhh dCB0aGUgY29ubmVjdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBx LWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24iLz4gYmUgc2V0IGluIG9yZGVyIHRvIGFjdGl2 YXRlCisgICAgICB0aGUgYXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNy eXB0aW9uIGZ1bmN0aW9uYWxpdHkuICBUaGlzCisgICAgICBzaG91bGQgYmUgZG9uZSBpbiB0 aGUgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBhcHBsaWNhdGlvbiwgYnV0IGFuCisg ICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSAoPGVudmFyPlBHQ09MVU1ORU5DUllQVElPTjwv ZW52YXI+KSBpcyBhbHNvCisgICAgICBhdmFpbGFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC9vcmRlcmVkbGlzdD4KKyAgPC9wYXJhPgorICA8L3NlY3QyPgor CisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5HdWlkYW5jZSBvbiBVc2luZyBBdXRvbWF0aWMgQ2xp ZW50LXNpZGUgQ29sdW1uLWxldmVsIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4K KyAgICBUaGlzIHNlY3Rpb24gY29udGFpbnMgc29tZSBpbmZvcm1hdGlvbiBvbiB3aGVuIGl0 IGlzIG9yIGlzIG5vdCBhcHByb3ByaWF0ZQorICAgIHRvIHVzZSBhdXRvbWF0aWMgY2xpZW50 LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24sIGFuZCB3aGF0IHByZWNhdXRpb25zCisg ICAgbmVlZCB0byBiZSB0YWtlbiB0byBtYWludGFpbiBpdHMgc2VjdXJpdHkuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIEluIGdlbmVyYWwsIGNvbHVtbiBlbmNyeXB0aW9uIGlz IG5ldmVyIGEgcmVwbGFjZW1lbnQgZm9yIGFkZGl0aW9uYWwKKyAgICBzZWN1cml0eSBhbmQg ZW5jcnlwdGlvbiB0ZWNobmlxdWVzIHN1Y2ggYXMgdHJhbnNwb3J0IGVuY3J5cHRpb24KKyAg ICAoU1NML1RMUyksIHN0b3JhZ2UgZW5jcnlwdGlvbiwgc3Ryb25nIGFjY2VzcyBjb250cm9s LCBhbmQgcGFzc3dvcmQKKyAgICBzZWN1cml0eS4gIENvbHVtbiBlbmNyeXB0aW9uIG9ubHkg dGFyZ2V0cyBzcGVjaWZpYyB1c2UgY2FzZXMgYW5kIHNob3VsZCBiZQorICAgIHVzZWQgaW4g Y29uanVuY3Rpb24gd2l0aCBhZGRpdGlvbmFsIHNlY3VyaXR5IG1lYXN1cmVzLgorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBBIHR5cGljYWwgdXNlIGNhc2UgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGlzIHRvIGVuY3J5cHQgc3BlY2lmaWMgdmFsdWVzCisgICAgd2l0aCBhZGRp dGlvbmFsIHNlY3VyaXR5IHJlcXVpcmVtZW50cywgZm9yIGV4YW1wbGUgY3JlZGl0IGNhcmQg bnVtYmVycy4KKyAgICBUaGlzIGFsbG93cyB5b3UgdG8gc3RvcmUgdGhhdCBzZWN1cml0eS1z ZW5zaXRpdmUgZGF0YSB0b2dldGhlciB3aXRoIHRoZQorICAgIHJlc3Qgb2YgeW91ciBkYXRh ICh0aHVzIGdldHRpbmcgdmFyaW91cyBiZW5lZml0cywgc3VjaCBhcyByZWZlcmVudGlhbAor ICAgIGludGVncml0eSwgY29uc2lzdGVudCBiYWNrdXBzKSwgd2hpbGUgZ2l2aW5nIGFjY2Vz cyB0byB0aGF0IGRhdGEgb25seSB0bworICAgIHNwZWNpZmljIGNsaWVudHMgYW5kIHByZXZl bnRpbmcgYWNjaWRlbnRhbCBsZWFrYWdlIG9uIHRoZSBzZXJ2ZXIgc2lkZQorICAgIChzZXJ2 ZXIgbG9ncywgZmlsZSBzeXN0ZW0gYmFja3VwcywgZXRjLikuCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFdoZW4gdXNpbmcgcGFyYW1ldGVycyB0byBwcm92aWRlIHZhbHVlcyB0 byBpbnNlcnQgb3Igc2VhcmNoIGJ5LCBjYXJlIG11c3QKKyAgICBiZSB0YWtlbiB0aGF0IHZh bHVlcyBtZWFudCB0byBiZSBlbmNyeXB0ZWQgYXJlIG5vdCBhY2NpZGVudGFsbHkgbGVha2Vk IHRvCisgICAgdGhlIHNlcnZlci4gIFRoZSBzZXJ2ZXIgd2lsbCB0ZWxsIHRoZSBjbGllbnQg d2hpY2ggcGFyYW1ldGVycyB0byBlbmNyeXB0LAorICAgIGJhc2VkIG9uIHRoZSBzY2hlbWEg ZGVmaW5pdGlvbiBvbiB0aGUgc2VydmVyLiAgQnV0IGlmIHRoZSBxdWVyeSBvciBjbGllbnQK KyAgICBhcHBsaWNhdGlvbiBpcyBmYXVsdHksIHZhbHVlcyBtZWFudCB0byBiZSBlbmNyeXB0 ZWQgbWlnaHQgYWNjaWRlbnRhbGx5IGJlCisgICAgYXNzb2NpYXRlZCB3aXRoIHBhcmFtZXRl cnMgdGhhdCB0aGUgc2VydmVyIGRvZXMgbm90IHRoaW5rIG5lZWQgdG8gYmUKKyAgICBlbmNy eXB0ZWQuICBBZGRpdGlvbmFsIHJvYnVzdG5lc3MgY2FuIGJlIGFjaGlldmVkIGJ5IGZvcmNp bmcgZW5jcnlwdGlvbiBvZgorICAgIGNlcnRhaW4gcGFyYW1ldGVycyBpbiB0aGUgY2xpZW50 IGxpYnJhcnkgKHNlZSBpdHMgZG9jdW1lbnRhdGlvbjsgZm9yCisgICAgPGFwcGxpY2F0aW9u PmxpYnBxPC9hcHBsaWNhdGlvbj4sIHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9ImxpYnBxLWNv bm5lY3QtY29sdW1uLWVuY3J5cHRpb24iLz4pLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBDb2x1bW4gZW5jcnlwdGlvbiBjYW5ub3QgaGlkZSB0aGUgZXhpc3RlbmNlIG9yIGFi c2VuY2Ugb2YgZGF0YSwgaXQgY2FuCisgICAgb25seSBkaXNndWlzZSB0aGUgcGFydGljdWxh ciBkYXRhIHRoYXQgaXMga25vd24gdG8gZXhpc3QuICBGb3IgZXhhbXBsZSwKKyAgICBzdG9y aW5nIGEgY2xlYXJ0ZXh0IHBlcnNvbiBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQgY3JlZGl0IGNh cmQgbnVtYmVyCisgICAgaW5kaWNhdGVzIHRoYXQgdGhlIHBlcnNvbiBoYXMgYSBjcmVkaXQg Y2FyZC4gIFRoYXQgbWlnaHQgbm90IHJldmVhbCB0b28KKyAgICBtdWNoIGlmIHRoZSBkYXRh YmFzZSBpcyBmb3IgYW4gb25saW5lIHN0b3JlIGFuZCB0aGVyZSBpcyBvdGhlciBkYXRhIG5l YXJieQorICAgIHRoYXQgc2hvd3MgdGhhdCB0aGUgcGVyc29uIGhhcyByZWNlbnRseSBtYWRl IHB1cmNoYXNlcy4gIEJ1dCBpbiBhbm90aGVyCisgICAgZXhhbXBsZSwgc3RvcmluZyBhIGNs ZWFydGV4dCBwZXJzb24gbmFtZSBhbmQgYW4gZW5jcnlwdGVkIGRpYWdub3NpcyBpbiBhCisg ICAgbWVkaWNhbCBkYXRhYmFzZSBwcm9iYWJseSBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVyc29u IGhhcyBhIG1lZGljYWwgaXNzdWUuCisgICAgRGVwZW5kaW5nIG9uIHRoZSBjaXJjdW1zdGFu Y2VzLCB0aGF0IG1pZ2h0IG5vdCBieSBpdHNlbGYgYmUgc3VmZmljaWVudAorICAgIHNlY3Vy aXR5LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBFbmNyeXB0aW9uIGNhbm5vdCBj b21wbGV0ZWx5IGhpZGUgdGhlIGxlbmd0aCBvZiB2YWx1ZXMuICBUaGUgZW5jcnlwdGlvbgor ICAgIG1ldGhvZHMgd2lsbCBwYWQgdmFsdWVzIHRvIG11bHRpcGxlcyBvZiB0aGUgdW5kZXJs eWluZyBjaXBoZXIncyBibG9jayBzaXplCisgICAgKHVzdWFsbHkgMTYgYnl0ZXMpLCBzbyBz b21lIGxlbmd0aCBkaWZmZXJlbmNlcyB3aWxsIGJlIHVuaWZpZWQgdGhpcyB3YXkuCisgICAg VGhlcmUgaXMgbm8gY29uY2VybiBpZiBhbGwgdmFsdWVzIGFyZSBvZiB0aGUgc2FtZSBsZW5n dGgsIGJ1dCBpZiB0aGVyZSBhcmUKKyAgICBzaWduZmljYW50IGxlbmd0aCBkaWZmZXJlbmNl cyBiZXR3ZWVuIHZhbGlkIHZhbHVlcyBhbmQgdGhhdCBsZW5ndGgKKyAgICBpbmZvcm1hdGlv biBpcyBzZWN1cml0eS1zZW5zaXRpdmUsIHRoZW4gYXBwbGljYXRpb24tc3BlY2lmaWMgd29y a2Fyb3VuZHMKKyAgICBzdWNoIGFzIHBhZGRpbmcgd291bGQgbmVlZCB0byBiZSBhcHBsaWVk LiAgSG93IHRvIGRvIHRoYXQgc2VjdXJlbHkgaXMKKyAgICBiZXlvbmQgdGhlIHNjb3BlIG9m IHRoaXMgbWFudWFsLiAgTm90ZSB0aGF0IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGFwcGxpZWQK KyAgICB0byB0aGUgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RvcmVkIHZhbHVlLCBz byBsZW5ndGggZGlmZmVyZW5jZXMgY2FuCisgICAgYmUgbGVha2VkIGV2ZW4gZm9yIGZpeGVk LWxlbmd0aCBjb2x1bW4gdHlwZXMgKGUuZy4gIDx0eXBlPmJpZ2ludDwvdHlwZT4sCisgICAg d2hvc2UgbGFyZ2VzdCBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlzIGxvbmdlciB0aGFuIDE2 IGJ5dGVzKS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ29sdW1uIGVuY3J5cHRp b24gcHJvdmlkZXMgb25seSBwYXJ0aWFsIHByb3RlY3Rpb24gYWdhaW5zdCBhIG1hbGljaW91 cworICAgIHVzZXIgd2l0aCB3cml0ZSBhY2Nlc3MgdG8gdGhlIHRhYmxlLiAgT25jZSBlbmNy eXB0ZWQsIGFueSBtb2RpZmljYXRpb25zIHRvCisgICAgYSBzdG9yZWQgdmFsdWUgb24gdGhl IHNlcnZlciBzaWRlIHdpbGwgY2F1c2UgYSBkZWNyeXB0aW9uIGZhaWx1cmUgb24gdGhlCisg ICAgY2xpZW50LiAgSG93ZXZlciwgYSB1c2VyIHdpdGggd3JpdGUgYWNjZXNzIGNhbiBzdGls bCBmcmVlbHkgc3dhcCBlbmNyeXB0ZWQKKyAgICB2YWx1ZXMgYmV0d2VlbiByb3dzIG9yIGNv bHVtbnMgKG9yIGV2ZW4gc2VwYXJhdGUgZGF0YWJhc2UgY2x1c3RlcnMpIGFzCisgICAgbG9u ZyBhcyB0aGV5IHdlcmUgZW5jcnlwdGVkIHdpdGggdGhlIHNhbWUga2V5LiAgQXR0YWNrZXJz IGNhbiBhbHNvIHJlbW92ZQorICAgIHZhbHVlcyBieSByZXBsYWNpbmcgdGhlbSB3aXRoIG51 bGxzLCBhbmQgdXNlcnMgd2l0aCBvd25lcnNoaXAgb3ZlciB0aGUKKyAgICB0YWJsZSBzY2hl bWEgY2FuIHJlcGxhY2UgZW5jcnlwdGlvbiBrZXlzIG9yIHN0cmlwIGVuY3J5cHRpb24gZnJv bSB0aGUKKyAgICBjb2x1bW5zIGVudGlyZWx5LiAgQWxsIG9mIHRoaXMgaXMgdG8gc2F5OiBQ cm9wZXIgYWNjZXNzIGNvbnRyb2wgaXMgc3RpbGwKKyAgICBvZiB2aXRhbCBpbXBvcnRhbmNl IHdoZW4gdXNpbmcgdGhpcyBmZWF0dXJlLgorICAgPC9wYXJhPgorCisgICA8dGlwPgorICAg IDxwYXJhPgorICAgICBPbmUgbWlnaHQgYmUgaW5jbGluZWQgdG8gdGhpbmsgb2YgdGhlIGNs aWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uCisgICAgIGZlYXR1cmUgYXMgYSBt ZWNoYW5pc20gZm9yIGFwcGxpY2F0aW9uIHdyaXRlcnMgYW5kIHVzZXJzIHRvIHByb3RlY3QK KyAgICAgdGhlbXNlbHZlcyBhZ2FpbnN0IGFuIDxxdW90ZT5ldmlsIERCQTwvcXVvdGU+LCBi dXQgdGhhdCBpcyBub3QgdGhlCisgICAgIGludGVuZGVkIHB1cnBvc2UuICBSYXRoZXIsIGl0 IGlzIChhbHNvKSBhIHRvb2wgZm9yIHRoZSBEQkEgdG8gY29udHJvbAorICAgICB3aGljaCBk YXRhIHRoZXkgZG8gbm90IHdhbnQgKGluIHBsYWludGV4dCkgb24gdGhlIHNlcnZlci4KKyAg ICA8L3BhcmE+CisgICA8L3RpcD4KKworICAgPHBhcmE+CisgICAgV2hlbiB1c2luZyBhc3lt bWV0cmljIENNSyBhbGdvcml0aG1zIHRvIGVuY3J5cHQgQ0VLcywgdGhlCisgICAgPHF1b3Rl PnB1YmxpYzwvcXVvdGU+IGhhbGYgb2YgdGhlIENNSyBjYW4gYmUgdXNlZCB0byByZXBsYWNl IGV4aXN0aW5nCisgICAgY29sdW1uIGVuY3J5cHRpb24ga2V5cyB3aXRoIGtleXMgb2YgYW4g YXR0YWNrZXIncyBjaG9vc2luZywgY29tcHJvbWlzaW5nCisgICAgY29uZmlkZW50aWFsaXR5 IGFuZCBhdXRoZW50aWNpdHkgZm9yIHZhbHVlcyBlbmNyeXB0ZWQgdW5kZXIgdGhhdCBDTUsu ICBGb3IKKyAgICB0aGlzIHJlYXNvbiwgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBib3RoIHRo ZSBwcml2YXRlCisgICAgPGVtcGhhc2lzPmFuZDwvZW1waGFzaXM+IHB1YmxpYyBoYWx2ZXMg b2YgdGhlIENNSyBrZXkgcGFpciBjb25maWRlbnRpYWwuCisgICA8L3BhcmE+CisKKyAgIDxu b3RlPgorICAgIDxwYXJhPgorICAgICBTdG9yaW5nIGRhdGEgc3VjaCBjcmVkaXQgY2FyZCBk YXRhLCBtZWRpY2FsIGRhdGEsIGFuZCBzbyBvbiBpcyB1c3VhbGx5CisgICAgIHN1YmplY3Qg dG8gZ292ZXJubWVudCBvciBpbmR1c3RyeSByZWd1bGF0aW9ucy4gIFRoaXMgc2VjdGlvbiBp cyBub3QgbWVhbnQKKyAgICAgdG8gcHJvdmlkZSBjb21wbGV0ZSBpbnN0cnVjdGlvbnMgb24g aG93IHRvIGRvIHRoaXMgY29ycmVjdGx5LiAgUGxlYXNlCisgICAgIHNlZWsgYWRkaXRpb25h bCBhZHZpY2Ugd2hlbiBlbmdhZ2luZyBpbiBzdWNoIHByb2plY3RzLgorICAgIDwvcGFyYT4K KyAgIDwvbm90ZT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwt c3lzdGVtLWNvbHVtbnMiPgogICA8dGl0bGU+U3lzdGVtIENvbHVtbnM8L3RpdGxlPgogCkBA IC0xOTg2LDYgKzI0MjAsMTQgQEAgPHRpdGxlPlByaXZpbGVnZXM8L3RpdGxlPgogICAgICAg IHNlcnZlci4gIEdyYW50ZWVzIG1heSBhbHNvIGNyZWF0ZSwgYWx0ZXIsIG9yIGRyb3AgdGhl aXIgb3duIHVzZXIKICAgICAgICBtYXBwaW5ncyBhc3NvY2lhdGVkIHdpdGggdGhhdCBzZXJ2 ZXIuCiAgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgY29sdW1uIG1h c3RlciBrZXlzLCBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtl eXMKKyAgICAgICB1c2luZyB0aGUgbWFzdGVyIGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIEZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLCBhbGxvd3MgdGhl IHVzZSBvZiB0aGUga2V5IGluIHRoZSBjcmVhdGlvbgorICAgICAgIG9mIHRhYmxlIGNvbHVt bnMuCisgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CiAKQEAgLTIxNTIsNiArMjU5NCw4IEBAIDx0aXRsZT5BQ0wgUHJpdmlsZWdlIEFiYnJl dmlhdGlvbnM8L3RpdGxlPgogICAgICAgPGVudHJ5PjxsaXRlcmFsPlVTQUdFPC9saXRlcmFs PjwvZW50cnk+CiAgICAgICA8ZW50cnk+PGxpdGVyYWw+VTwvbGl0ZXJhbD48L2VudHJ5Pgog ICAgICAgPGVudHJ5PgorICAgICAgIDxsaXRlcmFsPkNPTFVNTiBFTkNSWVBUSU9OIEtFWTwv bGl0ZXJhbD4sCisgICAgICAgPGxpdGVyYWw+Q09MVU1OIE1BU1RFUiBLRVk8L2xpdGVyYWw+ LAogICAgICAgIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+ Rk9SRUlHTiBEQVRBIFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPkZPUkVJ R04gU0VSVkVSPC9saXRlcmFsPiwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IDk3YjNmMWMxYTYuLmRmYWE2ZmY2 ZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbApAQCAtMjI4NTksNiArMjI4NTksNDAgQEAgPHRpdGxlPkFjY2VzcyBQ cml2aWxlZ2UgSW5xdWlyeSBGdW5jdGlvbnM8L3RpdGxlPgogICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9 ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAg ICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmhhc19jb2x1bW5fZW5jcnlwdGlv bl9rZXlfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAg ICAgPGZ1bmN0aW9uPmhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlPC9mdW5j dGlvbj4gKAorICAgICAgICAgIDxvcHRpb25hbD4gPHBhcmFtZXRlcj51c2VyPC9wYXJhbWV0 ZXI+IDx0eXBlPm5hbWU8L3R5cGU+IG9yIDx0eXBlPm9pZDwvdHlwZT4sIDwvb3B0aW9uYWw+ CisgICAgICAgICAgPHBhcmFtZXRlcj5jZWs8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlw ZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwKKyAgICAgICAgICA8cGFyYW1ldGVyPnByaXZpbGVn ZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1 ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+ CisgICAgICAgIERvZXMgdXNlciBoYXZlIHByaXZpbGVnZSBmb3IgY29sdW1uIGVuY3J5cHRp b24ga2V5PworICAgICAgICBUaGUgb25seSBhbGxvd2FibGUgcHJpdmlsZWdlIHR5cGUgaXMg PGxpdGVyYWw+VVNBR0U8L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4 dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxl Z2U8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+ aGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZTwvZnVuY3Rpb24+ICgKKyAgICAgICAg ICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90 eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29wdGlvbmFsPgorICAgICAgICAgIDxwYXJh bWV0ZXI+Y21rPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IG9yIDx0eXBlPm9pZDwv dHlwZT4sCisgICAgICAgICAgPHBhcmFtZXRlcj5wcml2aWxlZ2U8L3BhcmFtZXRlcj4gPHR5 cGU+dGV4dDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJu dmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBEb2VzIHVz ZXIgaGF2ZSBwcml2aWxlZ2UgZm9yIGNvbHVtbiBtYXN0ZXIga2V5PworICAgICAgICBUaGUg b25seSBhbGxvd2FibGUgcHJpdmlsZWdlIHR5cGUgaXMgPGxpdGVyYWw+VVNBR0U8L2xpdGVy YWw+LgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKICAgICAgIDxy b3c+CiAgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImZ1bmNfc2lnbmF0dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KQEAgLTIzMzQ5LDYgKzIz MzgzLDMyIEBAIDx0aXRsZT5TY2hlbWEgVmlzaWJpbGl0eSBJbnF1aXJ5IEZ1bmN0aW9uczwv dGl0bGU+CiAgICAgIDwvdGhlYWQ+CiAKICAgICAgPHRib2R5PgorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19z aWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdf Y2VrX2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg ICA8ZnVuY3Rpb24+cGdfY2VrX2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+ Y2VrPC9wYXJhbWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFs dWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJh PgorICAgICAgICBJcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdmlzaWJsZSBpbiBzZWFyY2gg cGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8 cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJp bWFyeT5wZ19jbWtfaXNfdmlzaWJsZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+ CisgICAgICAgIDxmdW5jdGlvbj5wZ19jbWtfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBh cmFtZXRlcj5jbWs8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAgICAgIDxy ZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIElzIGNvbHVtbiBtYXN0ZXIga2V5IHZpc2libGUgaW4gc2Vh cmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwogICAg ICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnku c2dtbAppbmRleCA3YzAxYTU0MWZlLi44MTgwMzhkODYwIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApA QCAtMzg5LDYgKzM4OSwzMiBAQCA8dGl0bGU+R2xvc3Nhcnk8L3RpdGxlPgogICAgPC9nbG9z c2RlZj4KICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4gZW5jcnlwdGlv biBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBj cnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIHZhbHVlcyB3aGVuIHVz aW5nIGF1dG9tYXRpYworICAgICBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlv biAoPHhyZWYKKyAgICAgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIi8+KS4gIENv bHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIHN0b3JlZCBpbgorICAgICB0aGUgZGF0YWJhc2Ug ZW5jcnlwdGVkIGJ5IGFub3RoZXIga2V5LCB0aGUgPGdsb3NzdGVybQorICAgICBsaW5rZW5k PSJnbG9zc2FyeS1jb2x1bW4tbWFzdGVyLWtleSI+Y29sdW1uIG1hc3RlciBrZXk8L2dsb3Nz dGVybT4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5Pgor CisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb2x1bW4tbWFzdGVyLWtleSI+CisgICA8 Z2xvc3N0ZXJtPkNvbHVtbiBtYXN0ZXIga2V5PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+ CisgICAgPHBhcmE+CisgICAgIEEgY3J5cHRvZ3JhcGhpYyBrZXkgdXNlZCB0byBlbmNyeXB0 IDxnbG9zc3Rlcm0KKyAgICAgbGlua2VuZD0iZ2xvc3NhcnktY29sdW1uLWVuY3J5cHRpb24t a2V5Ij5jb2x1bW4gZW5jcnlwdGlvbgorICAgICBrZXlzPC9nbG9zc3Rlcm0+LiAgKFNvIHRo ZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBhIDxmaXJzdHRlcm0+a2V5CisgICAgIGVuY3J5cHRp b24ga2V5PC9maXJzdHRlcm0+LikgIENvbHVtbiBtYXN0ZXIga2V5cyBhcmUgc3RvcmVkIG91 dHNpZGUgdGhlCisgICAgIGRhdGFiYXNlIHN5c3RlbSwgZm9yIGV4YW1wbGUgaW4gYSBrZXkg bWFuYWdlbWVudCBzeXN0ZW0uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9n bG9zc2VudHJ5PgorCiAgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb21taXQiPgogICAg PGdsb3NzdGVybT5Db21taXQ8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwK aW5kZXggM2NjZDhmZjk0Mi4uMjZjYWIxMDEwNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2xpYnBxLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKQEAgLTE5NjQsNiAr MTk2NCwxNDEgQEAgPHRpdGxlPlBhcmFtZXRlciBLZXkgV29yZHM8L3RpdGxlPgogICAgICAg IDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24i IHhyZWZsYWJlbD0iY29sdW1uX2VuY3J5cHRpb24iPgorICAgICAgPHRlcm0+PGxpdGVyYWw+ Y29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgor ICAgICAgIDxwYXJhPgorICAgICAgICBJZiBzZXQgdG8gPGxpdGVyYWw+b248L2xpdGVyYWw+ LCA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgb3IKKyAgICAgICAgPGxpdGVyYWw+MTwvbGl0 ZXJhbD4sIHRoaXMgZW5hYmxlcyBhdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVs CisgICAgICAgIGVuY3J5cHRpb24gZm9yIHRoZSBjb25uZWN0aW9uLiAgSWYgZW5jcnlwdGVk IGNvbHVtbnMgYXJlIHF1ZXJpZWQgYW5kCisgICAgICAgIHRoaXMgaXMgbm90IGVuYWJsZWQs IHRoZSBlbmNyeXB0ZWQgdmFsdWVzIGFyZSByZXR1cm5lZC4gIFNlZSA8eHJlZgorICAgICAg ICBsaW5rZW5kPSJkZGwtY29sdW1uLWVuY3J5cHRpb24iLz4gZm9yIG1vcmUgaW5mb3JtYXRp b24gYWJvdXQgdGhpcworICAgICAgICBmZWF0dXJlLgorICAgICAgIDwvcGFyYT4KKyAgICAg IDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50 cnkgaWQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIiB4cmVmbGFiZWw9ImNta2xvb2t1cCI+ CisgICAgICA8dGVybT48bGl0ZXJhbD5jbWtsb29rdXA8L2xpdGVyYWw+PC90ZXJtPgorICAg ICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIHNwZWNpZmllcyBo b3cgbGlicHEgc2hvdWxkIGxvb2sgdXAgY29sdW1uIG1hc3RlciBrZXlzIChDTUtzKSBpbgor ICAgICAgICBvcmRlciB0byBkZWNyeXB0IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIChD RUtzKS4KKyAgICAgICAgVGhlIHZhbHVlIGlzIGEgbGlzdCBvZiA8bGl0ZXJhbD5rZXk9dmFs dWU8L2xpdGVyYWw+IGVudHJpZXMgc2VwYXJhdGVkCisgICAgICAgIGJ5IHNlbWljb2xvbnMu ICBFYWNoIGtleSBpcyB0aGUgbmFtZSBvZiBhIGtleSByZWFsbSwgb3IKKyAgICAgICAgPGxp dGVyYWw+KjwvbGl0ZXJhbD4gdG8gbWF0Y2ggYWxsIHJlYWxtcy4gIFRoZSB2YWx1ZSBpcyBh CisgICAgICAgIDxsaXRlcmFsPnNjaGVtZTpkYXRhPC9saXRlcmFsPiBzcGVjaWZpY2F0aW9u LiAgVGhlIHNjaGVtZSBzcGVjaWZpZXMKKyAgICAgICAgdGhlIG1ldGhvZCB0byBsb29rIHVw IHRoZSBrZXksIHRoZSByZW1haW5pbmcgZGF0YSBpcyBzcGVjaWZpYyB0byB0aGUKKyAgICAg ICAgc2NoZW1lLiAgUGxhY2Vob2xkZXJzIGFyZSByZXBsYWNlZCBpbiB0aGUgcmVtYWluaW5n IGRhdGEgYXMgZm9sbG93czoKKworICAgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lYTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAg ICAgICAgIFRoZSBDTUsgYWxnb3JpdGhtIG5hbWUgKHNlZSA8eHJlZiBsaW5rZW5kPSJwcm90 b2NvbC1jbWstdGFibGUiLz4pCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xp c3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWo8L2xpdGVyYWw+PC90ZXJtPgor ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBU aGUgQ01LIGFsZ29yaXRobSBuYW1lIGluIEpTT04gV2ViIEFsZ29yaXRobXMgZm9ybWF0IChz ZWUgPHhyZWYKKyAgICAgICAgICAgIGxpbmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPiku ICBUaGlzIGlzIHVzZWZ1bCBmb3IgaW50ZXJmYWNpbmcKKyAgICAgICAgICAgIHdpdGggc29t ZSBrZXkgbWFuYWdlbWVudCBzeXN0ZW1zIHRoYXQgdXNlIHRoZXNlIG5hbWVzLgorICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxs aXRlcmFsPiVrPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENNSyBrZXkgbmFtZQorICAgICAgICAg ICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRl cmFsPiVwPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIG5hbWUgb2YgYSB0ZW1wb3JhcnkgZmlsZSB3 aXRoIHRoZSBlbmNyeXB0ZWQgQ0VLIGRhdGEgKG9ubHkgZm9yCisgICAgICAgICAgICB0aGUg PGxpdGVyYWw+cnVuPC9saXRlcmFsPiBzY2hlbWUpCisgICAgICAgICAgIDwvcGFyYT4KKyAg ICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JXI8L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+Cisg ICAgICAgICAgICBUaGUgcmVhbG0gbmFtZQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICA8L3Zh cmlhYmxlbGlzdD4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAg QXZhaWxhYmxlIHNjaGVtZXMgYXJlOgorICAgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5maWxlPC9saXRl cmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgor ICAgICAgICAgICAgTG9hZCB0aGUga2V5IG1hdGVyaWFsIGZyb20gYSBmaWxlLiAgVGhlIHJl bWFpbmluZyBkYXRhIGlzIHRoZSBmaWxlCisgICAgICAgICAgICBuYW1lLiAgVXNlIHRoaXMg aWYgdGhlIENNS3MgYXJlIGtlcHQgaW4gYSBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS4KKyAg ICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhl IGZpbGUgc2NoZW1lIGRvZXMgbm90IHN1cHBvcnQgdGhlIENNSyBhbGdvcml0aG0KKyAgICAg ICAgICAgIDxsaXRlcmFsPnVuc3BlY2lmaWVkPC9saXRlcmFsPi4KKyAgICAgICAgICAgPC9w YXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5y dW48L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAg PHBhcmE+CisgICAgICAgICAgICBSdW4gdGhlIHNwZWNpZmllZCBjb21tYW5kIHRvIGRlY3J5 cHQgdGhlIENFSy4gIFRoZSByZW1haW5pbmcgZGF0YQorICAgICAgICAgICAgaXMgYSBzaGVs bCBjb21tYW5kLiAgVXNlIHRoaXMgd2l0aCBrZXkgbWFuYWdlbWVudCBzeXN0ZW1zIHRoYXQK KyAgICAgICAgICAgIHBlcmZvcm0gdGhlIGRlY3J5cHRpb24gdGhlbXNlbHZlcy4gIFRoZSBj b21tYW5kIG11c3QgcHJpbnQgdGhlCisgICAgICAgICAgICBkZWNyeXB0ZWQgcGxhaW50ZXh0 IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwvdmFy aWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBU aGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8 cGFyYT4KKyAgICAgICAgRXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK2Nta2xvb2t1cD0i cjE9ZmlsZTovc29tZS93aGVyZS9zZWNyZXRzLyVrLnBlbTsqPWZpbGU6L2Vsc2Uvd2hlcmUv JXIvJWsucGVtIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgVGhpcyBzcGVjaWZpY2F0 aW9uIHNheXMsIGZvciBrZXlzIGluIHJlYWxtIDxxdW90ZT5yMTwvcXVvdGU+LCBsb2FkCisg ICAgICAgIHRoZW0gZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUsIHJlcGxhY2luZyA8bGl0ZXJh bD4lazwvbGl0ZXJhbD4gYnkgdGhlCisgICAgICAgIGtleSBuYW1lLiAgRm9yIGtleXMgaW4g b3RoZXIgcmVhbG1zLCBsb2FkIHRoZW0gZnJvbSB0aGUgZmlsZSwKKyAgICAgICAgcmVwbGFj aW5nIHJlYWxtIGFuZCBrZXkgbmFtZXMgYXMgc3BlY2lmaWVkLgorICAgICAgIDwvcGFyYT4K KworICAgICAgIDxwYXJhPgorICAgICAgICBBbiBleGFtcGxlIGZvciBpbnRlcmFjdGluZyB3 aXRoIGEgKGh5cG90aGV0aWNhbCkga2V5IG1hbmFnZW1lbnQKKyAgICAgICAgc3lzdGVtOgor PHByb2dyYW1saXN0aW5nPgorY21rbG9va3VwPSIqPXJ1bjphY21la21zIGRlY3J5cHQgLS1r ZXkgJWsgLS1hbGcgJWEgLS1pbmZpbGUgJyVwJyIKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAg ICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CiAg ICAgPC92YXJpYWJsZWxpc3Q+CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CkBAIC0yODY0LDYg KzI5OTksMzIgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90aXRsZT4KICAgICAgICAgICAg IDxmaWxlbmFtZT5zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jOjpudW1lcmljX3Nl bmQoKTwvZmlsZW5hbWU+IGFuZAogICAgICAgICAgICAgPGZpbGVuYW1lPnNyYy9iYWNrZW5k L3V0aWxzL2FkdC9udW1lcmljLmM6Om51bWVyaWNfcmVjdigpPC9maWxlbmFtZT4uCiAgICAg ICAgICAgIDwvcGFyYT4KKworICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFdoZW4g Y29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIHNlY29uZC1sZWFzdC1zaWduaWZp Y2FudAorICAgICAgICAgICAgaGFsZi1ieXRlIG9mIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmll cyB3aGV0aGVyIGVuY3J5cHRpb24gc2hvdWxkIGJlCisgICAgICAgICAgICBmb3JjZWQgZm9y IGEgcGFyYW1ldGVyLiAgU2V0IHRoaXMgaGFsZi1ieXRlIHRvIG9uZSB0byBmb3JjZQorICAg ICAgICAgICAgZW5jcnlwdGlvbi4gIEZvciBleGFtcGxlLCB1c2UgdGhlIEMgY29kZSBsaXRl cmFsCisgICAgICAgICAgICA8bGl0ZXJhbD4weDEwPC9saXRlcmFsPiB0byBzcGVjaWZ5IHRl eHQgZm9ybWF0IHdpdGggZm9yY2VkCisgICAgICAgICAgICBlbmNyeXB0aW9uLiAgSWYgdGhl IGFycmF5IHBvaW50ZXIgaXMgbnVsbCB0aGVuIGVuY3J5cHRpb24gaXMgbm90CisgICAgICAg ICAgICBmb3JjZWQgZm9yIGFueSBwYXJhbWV0ZXIuCisgICAgICAgICAgIDwvcGFyYT4KKwor ICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFBhcmFtZXRlcnMgY29ycmVzcG9uZGlu ZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBtdXN0IGJlIHBhc3NlZCBpbgorICAgICAgICAgICAg dGV4dCBmb3JtYXQuICBTcGVjaWZ5aW5nIGJpbmFyeSBmb3JtYXQgZm9yIHN1Y2ggYSBwYXJh bWV0ZXIgd2lsbAorICAgICAgICAgICAgcmVzdWx0IGluIGFuIGVycm9yLgorICAgICAgICAg ICA8L3BhcmE+CisKKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBJZiBlbmNyeXB0 aW9uIGlzIGZvcmNlZCBmb3IgYSBwYXJhbWV0ZXIgYnV0IHRoZSBwYXJhbWV0ZXIgZG9lcyBu b3QKKyAgICAgICAgICAgIGNvcnJlc3BvbmQgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiBvbiB0 aGUgc2VydmVyLCB0aGVuIHRoZSBjYWxsCisgICAgICAgICAgICB3aWxsIGZhaWwgYW5kIHRo ZSBwYXJhbWV0ZXIgd2lsbCBub3QgYmUgc2VudC4gIFRoaXMgY2FuIGJlIHVzZWQKKyAgICAg ICAgICAgIGZvciBhZGRpdGlvbmFsIHNlY3VyaXR5IGFnYWluc3QgYSBjb21wcm9taXNlZCBz ZXJ2ZXIuICAoVGhlCisgICAgICAgICAgICBkcmF3YmFjayBpcyB0aGF0IGFwcGxpY2F0aW9u IGNvZGUgdGhlbiBuZWVkcyB0byBiZSBrZXB0IHVwIHRvIGRhdGUKKyAgICAgICAgICAgIHdp dGgga25vd2xlZGdlIGFib3V0IHdoaWNoIGNvbHVtbnMgYXJlIGVuY3J5cHRlZCByYXRoZXIg dGhhbgorICAgICAgICAgICAgbGV0dGluZyB0aGUgc2VydmVyIHNwZWNpZnkgdGhpcy4pCisg ICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92 YXJsaXN0ZW50cnk+CiAKQEAgLTI4NzYsNiArMzAzNywxMyBAQCA8dGl0bGU+TWFpbiBGdW5j dGlvbnM8L3RpdGxlPgogICAgICAgICAgICAgdG8gb2J0YWluIGRpZmZlcmVudCByZXN1bHQg Y29sdW1ucyBpbiBkaWZmZXJlbnQgZm9ybWF0cywKICAgICAgICAgICAgIGFsdGhvdWdoIHRo YXQgaXMgcG9zc2libGUgaW4gdGhlIHVuZGVybHlpbmcgcHJvdG9jb2wuKQogICAgICAgICAg ICA8L3BhcmE+CisKKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBJZiBjb2x1bW4g ZW5jcnlwdGlvbiBpcyB1c2VkLCB0aGVuIGVuY3J5cHRlZCBjb2x1bW5zIHdpbGwgYmUKKyAg ICAgICAgICAgIHJldHVybmVkIGluIHRleHQgZm9ybWF0IGluZGVwZW5kZW50IG9mIHRoaXMg c2V0dGluZy4gIEFwcGxpY2F0aW9ucworICAgICAgICAgICAgY2FuIGNoZWNrIHRoZSBmb3Jt YXQgb2YgZWFjaCByZXN1bHQgY29sdW1uIHdpdGggPHhyZWYKKyAgICAgICAgICAgIGxpbmtl bmQ9ImxpYnBxLVBRZmZvcm1hdCIvPiBiZWZvcmUgYWNjZXNzaW5nIGl0LgorICAgICAgICAg ICA8L3BhcmE+CiAgICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlzdGVu dHJ5PgogICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KQEAgLTMwMjgsNiArMzE5Niw0NCBAQCA8 dGl0bGU+TWFpbiBGdW5jdGlvbnM8L3RpdGxlPgogICAgICAgPC9saXN0aXRlbT4KICAgICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFleGVj UHJlcGFyZWREZXNjcmliZWQiPgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZXhlY1ByZXBh cmVkRGVzY3JpYmVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZXhlY1ByZXBh cmVkRGVzY3JpYmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZW5kcyBhIHJlcXVlc3QgdG8gZXhl Y3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAgIHBhcmFtZXRl cnMsIGFuZCB3YWl0cyBmb3IgdGhlIHJlc3VsdCwgd2l0aCBzdXBwb3J0IGZvciBlbmNyeXB0 ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK1BHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZERlc2Ny aWJlZChQR2Nvbm4gKmNvbm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqc3RtdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IG5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqIGNvbnN0ICpwYXJhbVZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0Rm9ybWF0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpwYXJhbURlc2MpOworPC9zeW5vcHNp cz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWREZXNjcmliZWQiLz4gaXMgbGlrZSA8eHJlZgor ICAgICAgICBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZCIvPiB3aXRoIGFkZGl0aW9u YWwgc3VwcG9ydCBmb3IgZW5jcnlwdGVkCisgICAgICAgIGNvbHVtbnMuICBUaGUgcGFyYW1l dGVyIDxwYXJhbWV0ZXI+cGFyYW1EZXNjPC9wYXJhbWV0ZXI+IG11c3QgYmUgYQorICAgICAg ICByZXN1bHQgc2V0IG9idGFpbmVkIGZyb20gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNj cmliZVByZXBhcmVkIi8+IG9uCisgICAgICAgIHRoZSBzYW1lIHByZXBhcmVkIHN0YXRlbWVu dC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmdW5j dGlvbiBtdXN0IGJlIHVzZWQgaWYgYSBzdGF0ZW1lbnQgcGFyYW1ldGVyIGNvcnJlc3BvbmRz IHRvIGFuCisgICAgICAgIHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQg c2l0dWF0aW9uLCB0aGUgcHJlcGFyZWQKKyAgICAgICAgc3RhdGVtZW50IG5lZWRzIHRvIGJl IGRlc2NyaWJlZCBmaXJzdCBzbyB0aGF0IGxpYnBxIGNhbiBvYnRhaW4gdGhlCisgICAgICAg IG5lY2Vzc2FyeSBrZXkgYW5kIG90aGVyIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci4g IFdoZW4gdGhhdCBpcworICAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25k aW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFyZQorICAgICAgICBhdXRvbWF0aWNhbGx5IGVu Y3J5cHRlZCBhcHByb3ByaWF0ZWx5IGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVk Ij4KICAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWRlc2NyaWJlUHJlcGFyZWQ8L2Z1bmN0aW9u PjxpbmRleHRlcm0+PHByaW1hcnk+UFFkZXNjcmliZVByZXBhcmVkPC9wcmltYXJ5PjwvaW5k ZXh0ZXJtPjwvdGVybT4KIApAQCAtMzg3OCw2ICs0MDg0LDI4IEBAIDx0aXRsZT5SZXRyaWV2 aW5nIFF1ZXJ5IFJlc3VsdCBJbmZvcm1hdGlvbjwvdGl0bGU+CiAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1Q UWZpc2VuY3J5cHRlZCI+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWZpc2VuY3J5cHRlZDwv ZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWZpc2VuY3J5cHRlZDwvcHJpbWFyeT48 L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgUmV0dXJucyB3aGV0aGVyIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGNvbHVtbiBj YW1lIGZyb20gYW4gZW5jcnlwdGVkCisgICAgICAgY29sdW1uLiAgQ29sdW1uIG51bWJlcnMg c3RhcnQgYXQgMC4KKzxzeW5vcHNpcz4KK2ludCBQUWZpc2VuY3J5cHRlZChjb25zdCBQR3Jl c3VsdCAqcmVzLAorICAgICAgICAgICAgICAgICAgIGludCBjb2x1bW5fbnVtYmVyKTsKKzwv c3lub3BzaXM+CisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIEVuY3J5 cHRlZCBjb2x1bW4gdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IGRlY3J5cHRlZCwgc28gdGhp cyBmdW5jdGlvbgorICAgICAgIGlzIG5vdCBuZWNlc3NhcnkgdG8gYWNjZXNzIHRoZSBjb2x1 bW4gdmFsdWUuICBJdCBjYW4gYmUgdXNlZCBmb3IgZXh0cmEKKyAgICAgICBzZWN1cml0eSB0 byBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZSB3YXMgc3RvcmVkIGVuY3J5cHRlZCB3aGVuIG9u ZQorICAgICAgIHRob3VnaHQgaXQgc2hvdWxkIGJlLgorICAgICAgPC9wYXJhPgorICAgICA8 L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBp ZD0ibGlicHEtUFFmc2l6ZSI+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWZzaXplPC9mdW5j dGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZnNpemU8L3ByaW1hcnk+PC9pbmRleHRlcm0+ PC90ZXJtPgogCkBAIC00MDU5LDYgKzQyODcsMzEgQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVl cnkgUmVzdWx0IEluZm9ybWF0aW9uPC90aXRsZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8 L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRcGFyYW1p c2VuY3J5cHRlZCI+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXBhcmFtaXNlbmNyeXB0ZWQ8 L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFwYXJhbWlzZW5jcnlwdGVkPC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gcGFy YW1ldGVyIGlzIGRlc3RpbmVkIGZvciBhbgorICAgICAgIGVuY3J5cHRlZCBjb2x1bW4uICBQ YXJhbWV0ZXIgbnVtYmVycyBzdGFydCBhdCAwLgorPHN5bm9wc2lzPgoraW50IFBRcGFyYW1p c2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtYmVyKTsKKzwv c3lub3BzaXM+CisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFZhbHVl cyBmb3IgcGFyYW1ldGVycyBkZXN0aW5lZCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMgYXJlIGF1 dG9tYXRpY2FsbHkKKyAgICAgICBlbmNyeXB0ZWQsIHNvIHRoaXMgZnVuY3Rpb24gaXMgbm90 IG5lY2Vzc2FyeSB0byBwcmVwYXJlIHRoZSBwYXJhbWV0ZXIKKyAgICAgICB2YWx1ZS4gIEl0 IGNhbiBiZSB1c2VkIGZvciBleHRyYSBzZWN1cml0eSB0byBjaGVjayB3aGV0aGVyIHRoZSB2 YWx1ZQorICAgICAgIHdpbGwgYmUgc3RvcmVkIGVuY3J5cHRlZCB3aGVuIG9uZSB0aG91Z2h0 IGl0IHNob3VsZCBiZS4gIChCdXQgc2VlIGFsc28KKyAgICAgICBhdCA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCIvPiBmb3IgYW5vdGhlciB3YXkgdG8g ZG8gdGhhdC4pCisgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWZ1bCB3aGVuIGlu c3BlY3RpbmcgdGhlIHJlc3VsdCBvZiA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBR ZGVzY3JpYmVQcmVwYXJlZCIvPi4gIEZvciBvdGhlciB0eXBlcyBvZiByZXN1bHRzIGl0Cisg ICAgICAgd2lsbCByZXR1cm4gZmFsc2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0 ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJw cS1QUXByaW50Ij4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcHJpbnQ8L2Z1bmN0aW9uPjxp bmRleHRlcm0+PHByaW1hcnk+UFFwcmludDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+ CiAKQEAgLTQ1ODQsNiArNDgzNyw3IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQ cm9jZXNzaW5nPC90aXRsZT4KICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5 UGFyYW1zIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIvPiwK ICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkIi8+LAog ICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiwgYW5k CiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVBvcnRhbCIvPiwKICAg IHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggPHhyZWYgbGlua2VuZD0ibGlicHEtUFFnZXRSZXN1 bHQiLz4gdG8gZHVwbGljYXRlCkBAIC00NTkxLDYgKzQ4NDUsNyBAQCA8dGl0bGU+QXN5bmNo cm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUWV4ZWNQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXByZXBh cmUiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZCIvPiwKKyAg IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkIi8+LAogICAg PHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+LCBhbmQKICAgIDx4 cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQb3J0YWwiLz4KICAgIHJlc3BlY3RpdmVs eS4KQEAgLTQ2NDcsNiArNDkwMiwxMyBAQCA8dGl0bGU+QXN5bmNocm9ub3VzIENvbW1hbmQg UHJvY2Vzc2luZzwvdGl0bGU+CiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVj UGFyYW1zIi8+LCBpdCBhbGxvd3Mgb25seSBvbmUgY29tbWFuZCBpbiB0aGUKICAgICAgICBx dWVyeSBzdHJpbmcuCiAgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIElm IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBu b3QKKyAgICAgICBhc3luY2hyb25vdXMuICBUbyBnZXQgYXN5bmNocm9ub3VzIGJlaGF2aW9y LCA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFByZXBhcmUiLz4gZm9sbG93 ZWQgYnkgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVk RGVzY3JpYmVkIi8+IHNob3VsZCBiZSBjYWxsZWQgaW5kaXZpZHVhbGx5LgorICAgICAgPC9w YXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCkBAIC00NzAx LDYgKzQ5NjMsNDUgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8 L3RpdGxlPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg PHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCI+ CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkPC9m dW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmli ZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFNlbmRzIGEgcmVxdWVzdCB0byBleGVjdXRlIGEgcHJlcGFy ZWQgc3RhdGVtZW50IHdpdGggZ2l2ZW4KKyAgICAgICBwYXJhbWV0ZXJzLCB3aXRob3V0IHdh aXRpbmcgZm9yIHRoZSByZXN1bHQocyksIHdpdGggc3VwcG9ydCBmb3IgZW5jcnlwdGVkIGNv bHVtbnMuCis8c3lub3BzaXM+CitpbnQgUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZChQ R2Nvbm4gKmNvbm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpzdG10TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBu UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq IGNvbnN0ICpwYXJhbVZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgcmVzdWx0Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7Cis8L3N5bm9wc2lzPgorICAgICAgPC9w YXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNl bmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkIi8+IGlzIGxpa2UgPHhyZWYKKyAgICAgICBsaW5r ZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkIi8+IHdpdGggYWRkaXRpb25hbCBzdXBw b3J0IGZvciBlbmNyeXB0ZWQKKyAgICAgICBjb2x1bW5zLiAgVGhlIHBhcmFtZXRlciA8cGFy YW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJlIGEKKyAgICAgICByZXN1bHQg c2V0IG9idGFpbmVkIGZyb20gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQ cmVwYXJlZCIvPiBvbgorICAgICAgIHRoZSBzYW1lIHByZXBhcmVkIHN0YXRlbWVudC4KKyAg ICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmdW5jdGlvbiBtdXN0 IGJlIHVzZWQgaWYgYSBzdGF0ZW1lbnQgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvIGFuCisg ICAgICAgdW5kZXJseWluZyBlbmNyeXB0ZWQgY29sdW1uLiAgSW4gdGhhdCBzaXR1YXRpb24s IHRoZSBwcmVwYXJlZAorICAgICAgIHN0YXRlbWVudCBuZWVkcyB0byBiZSBkZXNjcmliZWQg Zmlyc3Qgc28gdGhhdCBsaWJwcSBjYW4gb2J0YWluIHRoZQorICAgICAgIG5lY2Vzc2FyeSBr ZXkgYW5kIG90aGVyIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci4gIFdoZW4gdGhhdCBp cworICAgICAgIGRvbmUsIHRoZSBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlw dGVkIGNvbHVtbnMgYXJlCisgICAgICAgYXV0b21hdGljYWxseSBlbmNyeXB0ZWQgYXBwcm9w cmlhdGVseSBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgc2VydmVyLgorICAgICAgIFNlZSBh bHNvIHVuZGVyIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVk Ii8+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVw YXJlZCI+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXNlbmREZXNjcmliZVByZXBhcmVkPC9m dW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc2VuZERlc2NyaWJlUHJlcGFyZWQ8L3By aW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC00NzUxLDYgKzUwNTIsNyBAQCA8dGl0 bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICAgICAgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQYXJhbXMiLz4sCiAgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkIi8+LAorICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQiLz4sCiAgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiwKICAgICAgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVBvcnRhbCIvPiwgb3IKICAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXBpcGVsaW5lU3luYyIvPgpAQCAtNzc4NCw2ICs4MDg2 LDI2IEBAIDx0aXRsZT5FbnZpcm9ubWVudCBWYXJpYWJsZXM8L3RpdGxlPgogICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KIAorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NNS0xPT0tVUDwv ZW52YXI+PC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8ZW52YXI+UEdD TUtMT09LVVA8L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAg bGlua2VuZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAiLz4gY29ubmVjdGlvbiBwYXJhbWV0 ZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PGVudmFy PlBHQ09MVU1ORU5DUllQVElPTjwvZW52YXI+PC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRl cm0+CisgICAgICA8ZW52YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj4gYmVoYXZlcyB0 aGUgc2FtZSBhcyB0aGUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY29s dW1uLWVuY3J5cHRpb24iLz4gY29ubmVjdGlvbiBwYXJhbWV0ZXIuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCBi L2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IDczYjdmNDQzMmYuLmM0M2MzMDUx YzMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0xMTA5LDYgKzExMDksNzYgQEAgPHRpdGxlPlBp cGVsaW5pbmc8L3RpdGxlPgogICAgPC9wYXJhPgogICA8L3NlY3QyPgogCisgIDxzZWN0MiBp ZD0icHJvdG9jb2wtZmxvdy1jb2x1bW4tZW5jcnlwdGlvbiI+CisgICA8dGl0bGU+QXV0b21h dGljIENsaWVudC1zaWRlIENvbHVtbi1sZXZlbCBFbmNyeXB0aW9uPC90aXRsZT4KKworICAg PHBhcmE+CisgICAgQXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0 aW9uIGlzIGVuYWJsZWQgYnkgc2VuZGluZyB0aGUKKyAgICBwYXJhbWV0ZXIgPGxpdGVyYWw+ X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gd2l0aCBhIHZhbHVlIG9mCisgICAg PGxpdGVyYWw+MTwvbGl0ZXJhbD4gaW4gdGhlIFN0YXJ0dXBNZXNzYWdlLiAgVGhpcyBpcyBh IHByb3RvY29sIGV4dGVuc2lvbgorICAgIHRoYXQgZW5hYmxlcyBhIGZldyBhZGRpdGlvbmFs IHByb3RvY29sIG1lc3NhZ2VzIGFuZCBhZGRzIGFkZGl0aW9uYWwgZmllbGRzCisgICAgdG8g ZXhpc3RpbmcgcHJvdG9jb2wgbWVzc2FnZXMuICBDbGllbnQgZHJpdmVycyBzaG91bGQgb25s eSBhY3RpdmF0ZSB0aGlzCisgICAgcHJvdG9jb2wgZXh0ZW5zaW9uIHdoZW4gcmVxdWVzdGVk IGJ5IHRoZSB1c2VyLCBmb3IgZXhhbXBsZSB0aHJvdWdoIGEKKyAgICBjb25uZWN0aW9uIHBh cmFtZXRlci4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBhdXRvbWF0aWMg Y2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlCisg ICAgbWVzc2FnZXMgQ29sdW1uTWFzdGVyS2V5IGFuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IGNh biBhcHBlYXIgYmVmb3JlCisgICAgUm93RGVzY3JpcHRpb24gYW5kIFBhcmFtZXRlckRlc2Ny aXB0aW9uIG1lc3NhZ2VzLiAgQ2xpZW50cyBzaG91bGQgY29sbGVjdAorICAgIHRoZSBpbmZv cm1hdGlvbiBpbiB0aGVzZSBtZXNzYWdlcyBhbmQga2VlcCB0aGVtIGZvciB0aGUgZHVyYXRp b24gb2YgdGhlCisgICAgY29ubmVjdGlvbi4gIEEgc2VydmVyIGlzIG5vdCByZXF1aXJlZCB0 byByZXNlbmQgdGhlIGtleSBpbmZvcm1hdGlvbiBmb3IKKyAgICBlYWNoIHN0YXRlbWVudCBj eWNsZSBpZiBpdCB3YXMgYWxyZWFkeSBzZW50IGR1cmluZyB0aGlzIGNvbm5lY3Rpb24uICBJ ZiBhCisgICAgc2VydmVyIHJlc2VuZHMgYSBrZXkgdGhhdCB0aGUgY2xpZW50IGhhcyBhbHJl YWR5IHN0b3JlZCAodGhhdCBpcywgYSBrZXkKKyAgICBoYXZpbmcgYW4gSUQgZXF1YWwgdG8g b25lIGFscmVhZHkgc3RvcmVkKSwgdGhlIG5ldyBpbmZvcm1hdGlvbiBzaG91bGQKKyAgICBy ZXBsYWNlIHRoZSBvbGQuICAoVGhpcyBjb3VsZCBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiB0 aGUga2V5IHdhcyBhbHRlcmVkCisgICAgYnkgc2VydmVyLXNpZGUgRERMIGNvbW1hbmRzLikK KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQSBjbGllbnQgc3VwcG9ydGluZyBhdXRv bWF0aWMgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gc2hvdWxkIGF1dG9tYXRpY2FsbHkKKyAg ICBkZWNyeXB0IHRoZSBjb2x1bW4gdmFsdWUgZmllbGRzIG9mIERhdGFSb3cgbWVzc2FnZXMg Y29ycmVzcG9uZGluZyB0bworICAgIGVuY3J5cHRlZCBjb2x1bW5zLCBhbmQgaXQgc2hvdWxk IGF1dG9tYXRpY2FsbHkgZW5jcnlwdCB0aGUgcGFyYW1ldGVyIHZhbHVlCisgICAgZmllbGRz IG9mIEJpbmQgbWVzc2FnZXMgY29ycmVzcG9uZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucy4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBp cyB1c2VkLCBmb3JtYXQgc3BlY2lmaWNhdGlvbnMgKHRleHQvYmluYXJ5KSBpbiB0aGUKKyAg ICB2YXJpb3VzIHByb3RvY29sIG1lc3NhZ2VzIGFwcGx5IHRvIHRoZSBjaXBoZXJ0ZXh0LiAg VGhlIHBsYWludGV4dCBpbnNpZGUKKyAgICB0aGUgY2lwaGVydGV4dCBpcyBhbHdheXMgaW4g dGV4dCBmb3JtYXQsIGJ1dCB0aGlzIGlzIGludmlzaWJsZSB0byB0aGUKKyAgICBwcm90b2Nv bC4gIEV2ZW4gdGhvdWdoIHRoZSBjaXBoZXJ0ZXh0IGNvdWxkIGluIHRoZW9yeSBiZSBzZW50 IGluIGVpdGhlcgorICAgIHRleHQgb3IgYmluYXJ5IGZvcm1hdCwgdGhlIHNlcnZlciB3aWxs IGFsd2F5cyBzZW5kIGl0IGluIGJpbmFyeSBpZiB0aGUKKyAgICBjb2x1bW4tbGV2ZWwgZW5j cnlwdGlvbiBwcm90b2NvbCBvcHRpb24gaXMgZW5hYmxlZC4gIFRoYXQgd2F5LCBhIGNsaWVu dAorICAgIGxpYnJhcnkgb25seSBuZWVkcyB0byBzdXBwb3J0IGRlY3J5cHRpbmcgZGF0YSBz ZW50IGluIGJpbmFyeSBhbmQgZG9lcyBub3QKKyAgICBoYXZlIHRvIHN1cHBvcnQgZGVjb2Rp bmcgdGhlIHRleHQgZm9ybWF0IG9mIHRoZSBlbmNyeXB0aW9uLXJlbGF0ZWQgdHlwZXMKKyAg ICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRhdGF0eXBlLWVuY3J5cHRlZCIvPikuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uIGlz IHVzZWQsIGNsaWVudHMgbmVlZCB0byB0YWtlIGNhcmUgdG8KKyAgICByZXByZXNlbnQgcGxh aW50ZXh0IHRvIGJlIGVuY3J5cHRlZCBpbiBhIGNvbnNpc3RlbnQgZm9ybS4gIEZvciBleGFt cGxlLAorICAgIGVuY3J5cHRpbmcgYW4gaW50ZWdlciByZXByZXNlbnRlZCBieSB0aGUgc3Ry aW5nIDxsaXRlcmFsPjEwMDwvbGl0ZXJhbD4gYW5kCisgICAgYW4gaW50ZWdlciByZXByZXNl bnRlZCBieSB0aGUgc3RyaW5nIDxsaXRlcmFsPisxMDA8L2xpdGVyYWw+IHdvdWxkIHJlc3Vs dAorICAgIGluIHR3byBkaWZmZXJlbnQgY2lwaGVydGV4dHMsIHRodXMgZGVmZWF0aW5nIHRo ZSBtYWluIHBvaW50IG9mCisgICAgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uLiAgVGhpcyBw cm90b2NvbCBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzIHRoZQorICAgIHBsYWludGV4dCB0byBi ZSBpbiA8cXVvdGU+Y2Fub25pY2FsPC9xdW90ZT4gZm9ybSwgd2hpY2ggaXMgdGhlIGZvcm0g dGhhdAorICAgIGlzIHByb2R1Y2VkIGJ5IHRoZSBzZXJ2ZXIgd2hlbiBpdCBvdXRwdXRzIGEg cGFydGljdWxhciB2YWx1ZSBpbiB0ZXh0CisgICAgZm9ybWF0LgorICAgPC9wYXJhPgorCisg ICA8cGFyYT4KKyAgICBXaGVuIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwg ZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGUgY2xpZW50CisgICAgZW5jb2RpbmcgbXVzdCBt YXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLiAgVGhpcyBlbnN1cmVzIHRoYXQgYWxsIHZhbHVl cworICAgIGVuY3J5cHRlZCBvciBkZWNyeXB0ZWQgYnkgdGhlIGNsaWVudCBtYXRjaCB0aGUg c2VydmVyIGVuY29kaW5nLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgY3J5 cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgZm9yIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBj b2x1bW4tbGV2ZWwKKyAgICBlbmNyeXB0aW9uIGFyZSBkZXNjcmliZWQgaW4gPHhyZWYKKyAg ICBsaW5rZW5kPSJwcm90b2NvbC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iLz4uCisgICA8 L3BhcmE+CisgIDwvc2VjdDI+CisKICAgPHNlY3QyIGlkPSJwcm90b2NvbC1mbG93LWZ1bmN0 aW9uLWNhbGwiPgogICAgPHRpdGxlPkZ1bmN0aW9uIENhbGw8L3RpdGxlPgogCkBAIC0zODQx LDYgKzM5MTEsMTYgQEAgPHRpdGxlPk1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgICAgICAg ICBUaGUgcGFyYW1ldGVyIGZvcm1hdCBjb2Rlcy4gIEVhY2ggbXVzdCBwcmVzZW50bHkgYmUK ICAgICAgICAgIHplcm8gKHRleHQpIG9yIG9uZSAoYmluYXJ5KS4KICAgICAgICAgPC9wYXJh PgorCisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhlIHByb3RvY29sIGV4dGVuc2lv biA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPgorICAgICAgICAg aXMgZW5hYmxlZCAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWZsb3ctY29sdW1uLWVu Y3J5cHRpb24iLz4pLAorICAgICAgICAgdGhlbiB0aGUgc2Vjb25kLWxlYXN0LXNpZ25pZmlj YW50IGhhbGYtYnl0ZSBpcyBzZXQgdG8gb25lIGlmIHRoZQorICAgICAgICAgcGFyYW1ldGVy IHdhcyBlbmNyeXB0ZWQgYnkgdGhlIGNsaWVudC4gIChTbywgZm9yIGV4YW1wbGUsIHRvIHNl bmQgYW4KKyAgICAgICAgIGVuY3J5cHRlZCB2YWx1ZSBpbiBiaW5hcnksIHRoZSBmaWVsZCBp cyBzZXQgdG8gMHgxMSBpbiB0b3RhbC4pICBUaGlzCisgICAgICAgICBpcyB1c2VkIGJ5IHRo ZSBzZXJ2ZXIgdG8gY2hlY2sgdGhhdCBhIHBhcmFtZXRlciB0aGF0IHdhcyByZXF1aXJlZCB0 bworICAgICAgICAgYmUgZW5jcnlwdGVkIHdhcyBhY3R1YWxseSBlbmNyeXB0ZWQuCisgICAg ICAgIDwvcGFyYT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKQEAgLTQwNjEsNiArNDE0MSwxNDAgQEAgPHRpdGxlPk1lc3NhZ2UgRm9ybWF0czwvdGl0 bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29sdW1uRW5jcnlwdGlvbktl eSI+CisgICAgPHRlcm0+Q29sdW1uRW5jcnlwdGlvbktleSAoQik8L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgbWVzc2FnZSBjYW4gb25seSBhcHBl YXIgaWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbgorICAgICAgPGxpdGVyYWw+X3BxXy5jb2x1 bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMgZW5hYmxlZC4gIChTZWUgPHhyZWYKKyAgICAg IGxpbmtlbmQ9InByb3RvY29sLWZsb3ctY29sdW1uLWVuY3J5cHRpb24iLz4uKQorICAgICA8 L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgPHRlcm0+Qnl0ZTEoJ1knKTwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUgbWVzc2FnZSBhcyBhIGNvbHVt biBlbmNyeXB0aW9uIGtleSBtZXNzYWdlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBMZW5ndGggb2YgbWVzc2FnZSBjb250ZW50cyBpbiBieXRl cywgaW5jbHVkaW5nIHNlbGYuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVt PgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgIFRoZSBzZXNzaW9uLXNwZWNpZmljIGlkZW50aWZpZXIgb2YgdGhlIGtl eS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwv dGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhl IGlkZW50aWZpZXIgb2YgdGhlIG1hc3RlciBrZXkgdXNlZCB0byBlbmNyeXB0IHRoaXMga2V5 LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90 ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUg aWRlbnRpZmllciBvZiB0aGUgYWxnb3JpdGhtIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGtleS4K KyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGxl bmd0aCBvZiB0aGUgZm9sbG93aW5nIGtleSBtYXRlcmlhbC4KKyAgICAgICAgPC9wYXJhPgor ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlPHJlcGxhY2VhYmxlPm48L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAg ICAgVGhlIGtleSBtYXRlcmlhbCwgZW5jcnlwdGVkIHdpdGggdGhlIG1hc3RlciBrZXkgcmVm ZXJlbmNlZCBhYm92ZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90 b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29sdW1uTWFzdGVyS2V5Ij4KKyAgICA8dGVybT5Db2x1 bW5NYXN0ZXJLZXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBwZWFyIGlmIHRoZSBwcm90b2NvbCBleHRl bnNpb24KKyAgICAgIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+ IGlzIGVuYWJsZWQuICAoU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJwcm90b2NvbC1mbG93 LWNvbHVtbi1lbmNyeXB0aW9uIi8+LikKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJs ZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUxKCd5Jyk8 L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElk ZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gbWFzdGVyIGtleSBtZXNzYWdlLgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBMZW5ndGgg b2YgbWVzc2FnZSBjb250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNlbGYuCisgICAgICAg IDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBzZXNzaW9uLXNw ZWNpZmljIGlkZW50aWZpZXIgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBrZXkuCisgICAgICAg IDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5nPC90ZXJtPgorICAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUga2V5J3MgcmVh bG0uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2Fn ZS1mb3JtYXRzLUNvbW1hbmRDb21wbGV0ZSI+CiAgICAgPHRlcm0+Q29tbWFuZENvbXBsZXRl IChCKTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC01MTY0LDYgKzUzNzgsNDUgQEAgPHRp dGxlPk1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgICAgICAgPC9saXN0aXRlbT4KICAgICAg IDwvdmFybGlzdGVudHJ5PgogICAgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgICA8cGFyYT4K KyAgICAgIElmIHRoZSBwcm90b2NvbCBleHRlbnNpb24gPGxpdGVyYWw+X3BxXy5jb2x1bW5f ZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMKKyAgICAgIGVuYWJsZWQgKHNlZSA8eHJlZiBsaW5r ZW5kPSJwcm90b2NvbC1mbG93LWNvbHVtbi1lbmNyeXB0aW9uIi8+KSwgdGhlbgorICAgICAg dGhlcmUgaXMgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBhcmFtZXRlcjoKKyAgICAg PC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg PHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0byBiZSBlbmNyeXB0ZWQs IHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmllciBvZiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0byBi ZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmllciBv ZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBpcyB1c2VkIGFzIGEgYml0 IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIHBhcmFtZXRlciBpcyB0byBiZQorICAgICAgICAg ZW5jcnlwdGVkIGFuZCBiaXQgMHgwMDAxIGlzIHNldCwgdGhlIGNvbHVtbiB1bmRlcmx5aW5n IHRoZSBwYXJhbWV0ZXIKKyAgICAgICAgIHVzZXMgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9u LCBvdGhlcndpc2UgcmFuZG9taXplZCBlbmNyeXB0aW9uLgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8L3Zhcmlh YmxlbGlzdD4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTU1 NTIsNiArNTgwNSw1MCBAQCA8dGl0bGU+TWVzc2FnZSBGb3JtYXRzPC90aXRsZT4KICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFibGVs aXN0PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbiA8 bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcworICAgICAgZW5h YmxlZCAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWZsb3ctY29sdW1uLWVuY3J5cHRp b24iLz4pLCB0aGVuCisgICAgICB0aGVyZSBpcyBhbHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVh Y2ggZmllbGQ6CisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0PgorICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5 cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlCisgICAgICAgICBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFy YT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg IDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxp c3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNy eXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAg ZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJhPgorICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBpcyB1c2VkIGFzIGEgYml0IGZpZWxk IG9mIGZsYWdzLiAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5cHRlZCBhbmQKKyAgICAgICAgIGJp dCAweDAwMDEgaXMgc2V0LCB0aGUgZmllbGQgdXNlcyBkZXRlcm1pbmlzdGljIGVuY3J5cHRp b24sIG90aGVyd2lzZQorICAgICAgICAgcmFuZG9taXplZCBlbmNyeXB0aW9uLgorICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwhLS0KKyAgICAgICAgICAgIFRoaXMgaXMgbm90IHJlYWxs eSB1c2VmdWwgaGVyZSwgYnV0IGl0IGtlZXBzIGFsaWdubWVudCB3aXRoCisgICAgICAgICAg ICBQYXJhbWV0ZXJEZXNjcmlwdGlvbi4gIEZ1dHVyZSBmbGFncyBtaWdodCBiZSB1c2VmdWwg aW4gYm90aAorICAgICAgICAgICAgcGxhY2VzLgorICAgICAgICAtLT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0Pgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtNzM3Nyw2ICs3Njc0 LDE3NiBAQCA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBNZXNzYWdlIEZvcm1hdHM8L3Rp dGxlPgogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJwcm90 b2NvbC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iPgorICA8dGl0bGU+QXV0b21hdGljIENs aWVudC1zaWRlIENvbHVtbi1sZXZlbCBFbmNyeXB0aW9uIENyeXB0b2dyYXBoeTwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBjcnlwdG9ncmFw aGljIG9wZXJhdGlvbnMgdXNlZCBieSB0aGUgYXV0b21hdGljCisgICBjbGllbnQtc2lkZSBj b2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBmdW5jdGlvbmFsaXR5LiAgQSBjbGllbnQgdGhhdCBz dXBwb3J0cworICAgdGhpcyBmdW5jdGlvbmFsaXR5IG5lZWRzIHRvIGltcGxlbWVudCB0aGVz ZSBvcGVyYXRpb25zIGFzIHNwZWNpZmllZCBoZXJlIGluCisgICBvcmRlciB0byBiZSBhYmxl IHRvIGludGVyb3BlcmF0ZSB3aXRoIG90aGVyIGNsaWVudHMuCisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBhbGdvcml0aG1zIGFuZCBjb2x1bW4g bWFzdGVyIGtleSBhbGdvcml0aG1zIGFyZQorICAgaWRlbnRpZmllZCBieSBpbnRlZ2VycyBp biB0aGUgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIHRoZSBzeXN0ZW0gY2F0YWxvZ3MuCisgICBB ZGRpdGlvbmFsIGFsZ29yaXRobXMgbWF5IGJlIGFkZGVkIHRvIHRoaXMgcHJvdG9jb2wgc3Bl Y2lmaWNhdGlvbiB3aXRob3V0IGEKKyAgIGNoYW5nZSBpbiB0aGUgcHJvdG9jb2wgdmVyc2lv biBudW1iZXIuICBDbGllbnRzIHNob3VsZCBpbXBsZW1lbnQgc3VwcG9ydAorICAgZm9yIGFs bCB0aGUgYWxnb3JpdGhtcyBzcGVjaWZpZWQgaGVyZS4gIElmIGEgY2xpZW50IGVuY291bnRl cnMgYW4gYWxnb3JpdGhtCisgICBpZGVudGlmaWVyIGl0IGRvZXMgbm90IHJlY29nbml6ZSBv ciBkb2VzIG5vdCBzdXBwb3J0LCBpdCBtdXN0IHJhaXNlIGFuCisgICBlcnJvci4gIEEgc3Vp dGFibGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIGFwcGxpY2F0 aW9uIG9yCisgICB1c2VyLgorICA8L3BhcmE+CisKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1j bWsiPgorICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5czwvdGl0bGU+CisKKyAgIDxwYXJh PgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0aG1zIGZvciBjb2x1bW4gbWFz dGVyIGtleXMgYXJlIGxpc3RlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNt ay10YWJsZSIvPi4KKyAgIDwvcGFyYT4KKworICAgPCEtLSBzZWUgYWxzbyBzcmMvaW5jbHVk ZS9jb21tb24vY29sZW5jLmggLS0+CisKKyAgIDx0YWJsZSBpZD0icHJvdG9jb2wtY21rLXRh YmxlIj4KKyAgICA8dGl0bGU+Q29sdW1uIE1hc3RlciBLZXkgQWxnb3JpdGhtczwvdGl0bGU+ CisgICAgPHRncm91cCBjb2xzPSI0Ij4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnk+UG9zdGdyZVNRTCBJRDwvZW50cnk+CisgICAgICAgPGVudHJ5Pk5hbWU8 L2VudHJ5PgorICAgICAgIDxlbnRyeT5KV0EgKDx1bGluayB1cmw9Imh0dHBzOi8vdG9vbHMu aWV0Zi5vcmcvaHRtbC9yZmM3NTE4Ij5SRkMgNzUxODwvdWxpbms+KSBuYW1lPC9lbnRyeT4K KyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg IDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjE8 L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD51bnNwZWNpZmllZDwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgIDxlbnRyeT4obm9uZSk8L2VudHJ5PgorICAgICAgIDxlbnRyeT5p bnRlcnByZXRlZCBieSBjbGllbnQ8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93 PgorICAgICAgIDxlbnRyeT4yPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNB RVNfT0FFUF9TSEFfMTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJh bD5SU0EtT0FFUDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT5SU0FFUyBPQUVQ IHVzaW5nIGRlZmF1bHQgcGFyYW1ldGVycyAoPHVsaW5rCisgICAgICAgdXJsPSJodHRwczov L3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODAxNyI+UkZDIDgwMTc8L3VsaW5rPi9QS0NTICMx KTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjM8 L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8yNTY8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNBLU9BRVAtMjU2PC9s aXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlJTQUVTIE9BRVAgdXNpbmcgU0hBLTI1 NiBhbmQgTUdGMSB3aXRoIFNIQS0yNTYgKDx1bGluaworICAgICAgIHVybD0iaHR0cHM6Ly90 b29scy5pZXRmLm9yZy9odG1sL3JmYzgwMTciPlJGQworICAgICAgIDgwMTc8L3VsaW5rPi9Q S0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rn cm91cD4KKyAgIDwvdGFibGU+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJwcm90b2Nv bC1jZWsiPgorICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleXM8L3RpdGxlPgorCisg ICA8cGFyYT4KKyAgICBUaGUgY3VycmVudGx5IGRlZmluZWQgYWxnb3JpdGhtcyBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0i cHJvdG9jb2wtY2VrLXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8IS0tIHNlZSBhbHNv IHNyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMuaCAtLT4KKworICAgPHBhcmE+CisgICAgVGhl IGtleSBtYXRlcmlhbCBvZiBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjb25zaXN0cyBvZiB0 aHJlZSBjb21wb25lbnRzLAorICAgIGNvbmNhdGVuYXRlZCBpbiB0aGlzIG9yZGVyOiB0aGUg TUFDIGtleSwgdGhlIGVuY3J5cHRpb24ga2V5LCBhbmQgdGhlIElWCisgICAga2V5LiAgPHhy ZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+IHNob3dzIHRoZSB0b3RhbCBsZW5n dGggdGhhdCBhCisgICAga2V5IGdlbmVyYXRlZCBmb3IgZWFjaCBhbGdvcml0aG0gaXMgcmVx dWlyZWQgdG8gaGF2ZS4gIFRoZSBNQUMga2V5IGFuZCB0aGUKKyAgICBlbmNyeXB0aW9uIGtl eSBhcmUgdXNlZCBieSB0aGUgcmVmZXJlbmNlZCBlbmNyeXB0aW9uIGFsZ29yaXRobXM7IHNl ZSB0aGVyZQorICAgIGZvciBkZXRhaWxzLiAgVGhlIElWIGtleSBpcyB1c2VkIGZvciBjb21w dXRpbmcgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbgorICAgIHZlY3RvciBmb3IgZGV0ZXJt aW5pc3RpYyBlbmNyeXB0aW9uOyBpdCBpcyB1bnVzZWQgZm9yIHJhbmRvbWl6ZWQKKyAgICBl bmNyeXB0aW9uLgorICAgPC9wYXJhPgorCisgICA8IS0tIHNlZSBhbHNvIGh0dHBzOi8vZGF0 YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1o bWFjLXNoYTItMDUjc2VjdGlvbi0yLjggLS0+CisgICA8dGFibGUgaWQ9InByb3RvY29sLWNl ay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleSBBbGdvcml0aG1z PC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjciPgorICAgICA8dGhlYWQ+CisgICAgICA8 cm93PgorICAgICAgIDxlbnRyeT5Qb3N0Z3JlU1FMIElEPC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+TmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+TUFDIGtleSBsZW5ndGggKG9jdGV0cyk8L2VudHJ5PgorICAgICAgIDxl bnRyeT5FbmNyeXB0aW9uIGtleSBsZW5ndGggKG9jdGV0cyk8L2VudHJ5PgorICAgICAgIDxl bnRyeT5JViBrZXkgbGVuZ3RoIChvY3RldHMpPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VG90 YWwga2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90 aGVhZD4KKyAgICAgPHRib2R5PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzI3Njg8 L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xMjhfQ0JDX0hNQUNf U0hBXzI1NjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJo dHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFk LWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MTY8L2Vu dHJ5PgorICAgICAgIDxlbnRyeT4xNjwvZW50cnk+CisgICAgICAgPGVudHJ5PjE2PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+NDg8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93 PgorICAgICAgIDxlbnRyeT4zMjc2OTwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0PC9saXRlcmFsPjwvZW50cnk+CisgICAg ICAgPGVudHJ5Pjx1bGluayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9j L2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDUiLz48L2VudHJ5 PgorICAgICAgIDxlbnRyeT4yNDwvZW50cnk+CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4K KyAgICAgICA8ZW50cnk+MjQ8L2VudHJ5PgorICAgICAgIDxlbnRyeT43MjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjMyNzcwPC9lbnRyeT4K KyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ8 L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9k YXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2Jj LWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT4yNDwvZW50cnk+CisgICAg ICAgPGVudHJ5PjkwPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnk+MzI3NzE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FF U18yNTZfQ0JDX0hNQUNfU0hBXzUxMjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRy eT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2Ry YWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT4zMjwvZW50cnk+CisgICAgICAg PGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+OTY8L2VudHJ5PgorICAgICAgPC9y b3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorCisgICA8 cGFyYT4KKyAgICBUaGUgPHF1b3RlPmFzc29jaWF0ZWQgZGF0YTwvcXVvdGU+IGluIHRoZXNl IGFsZ29yaXRobXMgY29uc2lzdHMgb2YgNAorICAgIGJ5dGVzOiBUaGUgQVNDSUkgbGV0dGVy cyA8bGl0ZXJhbD5QPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+RzwvbGl0ZXJhbD4KKyAgICAo Ynl0ZSB2YWx1ZXMgODAgYW5kIDcxKSwgZm9sbG93ZWQgYnkgdGhlIHZlcnNpb24gbnVtYmVy IGFzIGEgMTYtYml0CisgICAgdW5zaWduZWQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3Jk ZXIuICBUaGUgdmVyc2lvbiBudW1iZXIgaXMgY3VycmVudGx5CisgICAgYWx3YXlzIDEuICAo VGhpcyBpcyBpbnRlbmRlZCB0byBhbGxvdyBmb3IgcG9zc2libGUgaW5jb21wYXRpYmxlIGNo YW5nZXMgb3IKKyAgICBleHRlbnNpb25zIGluIHRoZSBmdXR1cmUuKQorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0 b3IgaXMgMTYgb2N0ZXRzIGZvciBhbGwgQ0VLIGFsZ29yaXRobQorICAgIHZhcmlhbnRzLiAg Rm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbiwgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBz aG91bGQgYmUKKyAgICAoY3J5cHRvZ3JhcGhpY2FsbHkgc3Ryb25nKSByYW5kb20gYnl0ZXMu ICBGb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uLAorICAgIHRoZSBpbml0aWFsaXphdGlv biB2ZWN0b3IgaXMgY29uc3RydWN0ZWQgYXMKKzxwcm9ncmFtbGlzdGluZz4KK1NVQlNUUklO Ryg8cmVwbGFjZWFibGU+SE1BQzwvcmVwbGFjZWFibGU+KDxyZXBsYWNlYWJsZT5LPC9yZXBs YWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJsZT4pIEZPUiA8cmVwbGFjZWFi bGU+SVZMRU48L3JlcGxhY2VhYmxlPikKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hlcmUg PHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxhY2VhYmxlPiBpcyB0aGUgSE1BQyBmdW5jdGlvbiBh c3NvY2lhdGVkIHdpdGgKKyAgICB0aGUgYWxnb3JpdGhtLCA8cmVwbGFjZWFibGU+SzwvcmVw bGFjZWFibGU+IGlzIHRoZSBJViBrZXksIGFuZAorICAgIDxyZXBsYWNlYWJsZT5QPC9yZXBs YWNlYWJsZT4gaXMgdGhlIHBsYWludGV4dCB0byBiZSBlbmNyeXB0ZWQuCisgICA8L3BhcmE+ CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0icHJvdG9jb2wtY2hhbmdl cyI+CiAgIDx0aXRsZT5TdW1tYXJ5IG9mIENoYW5nZXMgc2luY2UgUHJvdG9jb2wgMi4wPC90 aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDU0YjVmMjJkNmUuLmE3MzBl NWQ2NTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTgsNiArOCw4IEBACiA8IUVO VElUWSBhYm9ydCAgICAgICAgICAgICAgU1lTVEVNICJhYm9ydC5zZ21sIj4KIDwhRU5USVRZ IGFsdGVyQWdncmVnYXRlICAgICBTWVNURU0gImFsdGVyX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwh RU5USVRZIGFsdGVyQ29sbGF0aW9uICAgICBTWVNURU0gImFsdGVyX2NvbGxhdGlvbi5zZ21s Ij4KKzwhRU5USVRZIGFsdGVyQ29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImFsdGVyX2Nv bHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uTWFzdGVy S2V5IFNZU1RFTSAiYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBh bHRlckNvbnZlcnNpb24gICAgU1lTVEVNICJhbHRlcl9jb252ZXJzaW9uLnNnbWwiPgogPCFF TlRJVFkgYWx0ZXJEYXRhYmFzZSAgICAgIFNZU1RFTSAiYWx0ZXJfZGF0YWJhc2Uuc2dtbCI+ CiA8IUVOVElUWSBhbHRlckRlZmF1bHRQcml2aWxlZ2VzIFNZU1RFTSAiYWx0ZXJfZGVmYXVs dF9wcml2aWxlZ2VzLnNnbWwiPgpAQCAtNjIsNiArNjQsOCBAQAogPCFFTlRJVFkgY3JlYXRl QWdncmVnYXRlICAgIFNZU1RFTSAiY3JlYXRlX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZ IGNyZWF0ZUNhc3QgICAgICAgICBTWVNURU0gImNyZWF0ZV9jYXN0LnNnbWwiPgogPCFFTlRJ VFkgY3JlYXRlQ29sbGF0aW9uICAgIFNZU1RFTSAiY3JlYXRlX2NvbGxhdGlvbi5zZ21sIj4K KzwhRU5USVRZIGNyZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJjcmVhdGVfY29s dW1uX2VuY3J5cHRpb25fa2V5LnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlQ29sdW1uTWFzdGVy S2V5IFNZU1RFTSAiY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkg Y3JlYXRlQ29udmVyc2lvbiAgIFNZU1RFTSAiY3JlYXRlX2NvbnZlcnNpb24uc2dtbCI+CiA8 IUVOVElUWSBjcmVhdGVEYXRhYmFzZSAgICAgU1lTVEVNICJjcmVhdGVfZGF0YWJhc2Uuc2dt bCI+CiA8IUVOVElUWSBjcmVhdGVEb21haW4gICAgICAgU1lTVEVNICJjcmVhdGVfZG9tYWlu LnNnbWwiPgpAQCAtMTA5LDYgKzExMyw4IEBACiA8IUVOVElUWSBkcm9wQWdncmVnYXRlICAg ICAgU1lTVEVNICJkcm9wX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BDYXN0ICAg ICAgICAgICBTWVNURU0gImRyb3BfY2FzdC5zZ21sIj4KIDwhRU5USVRZIGRyb3BDb2xsYXRp b24gICAgICBTWVNURU0gImRyb3BfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgZHJvcENv bHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5z Z21sIj4KKzwhRU5USVRZIGRyb3BDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJkcm9wX2NvbHVt bl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgZHJvcENvbnZlcnNpb24gICAgIFNZU1RF TSAiZHJvcF9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgZHJvcERhdGFiYXNlICAgICAg IFNZU1RFTSAiZHJvcF9kYXRhYmFzZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BEb21haW4gICAg ICAgICBTWVNURU0gImRyb3BfZG9tYWluLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjU1ZTFlMDBkOAotLS0gL2Rldi9udWxsCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAg LTAsMCArMSwxOTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxy ZWZlbnRyeSBpZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4 dGVybSB6b25lPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1h cnk+QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJt PgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIENPTFVNTiBFTkNSWVBU SU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+Cisg IDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRl ZmluaXRpb24gb2YgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9y ZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gQURE IFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3Jl cGxhY2VhYmxlPiwKKyAgICBbIEFMR09SSVRITSA9IDxyZXBsYWNlYWJsZT5hbGdvcml0aG08 L3JlcGxhY2VhYmxlPiwgXQorICAgIEVOQ1JZUFRFRF9WQUxVRSA9IDxyZXBsYWNlYWJsZT5l bmN2YWw8L3JlcGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIFZBTFVFICgKKyAgICBDT0xV TU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPgorKQorCitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFi bGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwg Q1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFNF VCBTQ0hFTUEgPHJlcGxhY2VhYmxlPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5v cHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGEK KyAgIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VGhlIGZpcnN0IGZvcm0gYWRkcyBuZXcgZW5jcnlwdGVkIGtleSBkYXRhIHRvIGEgY29sdW1u IGVuY3J5cHRpb24ga2V5LAorICAgd2hpY2ggbXVzdCBiZSBlbmNyeXB0ZWQgd2l0aCBhIGRp ZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleSB0aGFuIHRoZQorICAgZXhpc3Rpbmcga2V5IGRh dGEuICBUaGUgc2Vjb25kIGZvcm0gcmVtb3ZlcyBhIGtleSBkYXRhIGVudHJ5IGZvciBhIGdp dmVuCisgICBjb2x1bW4gbWFzdGVyIGtleS4gIFRvZ2V0aGVyLCB0aGVzZSBmb3JtcyBjYW4g YmUgdXNlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkKKyAgIHJvdGF0aW9uLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSB0byB1c2UgPGNvbW1hbmQ+QUxURVIgQ09MVU1OCisgICBFTkNSWVBUSU9OIEtFWTwvY29t bWFuZD4uICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYSBkaXJlY3Qg b3IKKyAgIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLCBhbmQgdGhh dCByb2xlIG11c3QgaGF2ZQorICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxl Z2Ugb24gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSdzCisgICBzY2hlbWEuICAoVGhlc2Ug cmVzdHJpY3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBk bworICAgYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5IGRyb3BwaW5nIGFuZCByZWNyZWF0 aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbgorICAga2V5LiAgSG93ZXZlciwgYSBzdXBlcnVz ZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIGVuY3J5cHRpb24ga2V5Cisg ICBhbnl3YXkuKQorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lIChvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIGFuIGV4 aXN0aW5nIGNvbHVtbiBlbmNyeXB0aW9uCisgICAgICBrZXkuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1 bW4gbWFzdGVyIGtleSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhpcyBjb2x1bW4KKyAg ICAgIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBs YWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCB3 YXMgdXNlZCB0byBlbmNyeXB0IHRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMgY29s dW1uIGVuY3J5cHRpb24ga2V5LiAgU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJzcWwtY3Jl YXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPiBmb3IgZGV0YWlscworICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwvdGVy bT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1hdGVy aWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0aGUK KyAgICAgIHNwZWNpZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lmaWVk IGFsZ29yaXRobS4gIFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVhPC90 eXBlPi1jb21wYXRpYmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgbmFt ZSBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5ldyBvd25lciBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2No ZW1hPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuZXcgc2NoZW1hIGZvciB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5Lgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8 L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcm90YXRlIHRoZSBtYXN0ZXIg a2V5cyB1c2VkIHRvIGVuY3J5cHQgYSBnaXZlbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisg ICB1c2UgYSBjb21tYW5kIHNlcXVlbmNlIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4K K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgQ09M VU1OX01BU1RFUl9LRVkgPSBjbWsyLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIw MjA0Li4uJworKTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBW QUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxCispOworPC9wcm9ncmFtbGlz dGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFs PmNlazI8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazI7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRl cmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0 eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5BTFRFUiBD T0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAgIFNR TCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5l Ij4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlw dGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRy b3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi43ZjBlNjU2ZWYwCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCkBAIC0wLDAgKzEsMTM0IEBACis8 IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKK1Bv c3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVy LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1hbHRlci1jb2x1 bW4tbWFzdGVyLWtleSI+CisgIDxwcmltYXJ5PkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9w cmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxl PkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVt Pjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVu dHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVm bmFtZT5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgY29sdW1uIG1hc3RlciBrZXk8L3JlZnB1cnBv c2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxl PiAoIFJFQUxNID0gPHJlcGxhY2VhYmxlPnJlYWxtPC9yZXBsYWNlYWJsZT4gKQorCitBTFRF UiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFJF TkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgQ09M VU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBU TyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9M RSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBDT0xVTU4gTUFTVEVS IEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcGxh Y2VhYmxlPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5 bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L2Nv bW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIG1hc3RlciBr ZXkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBmaXJzdCBmb3JtIGNoYW5nZXMg dGhlIHBhcmFtZXRlcnMgb2YgYSBjb2x1bW4gbWFzdGVyIGtleS4gIFNlZSA8eHJlZgorICAg bGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPiBmb3IgZGV0YWlscy4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgWW91IG11c3Qgb3duIHRoZSBjb2x1bW4gbWFz dGVyIGtleSB0byB1c2UgPGNvbW1hbmQ+QUxURVIgQ09MVU1OIE1BU1RFUgorICAgS0VZPC9j b21tYW5kPi4gIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBhIGRpcmVj dCBvciBpbmRpcmVjdAorICAgbWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZCB0 aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZp bGVnZSBvbiB0aGUgY29sdW1uIG1hc3RlciBrZXkncyBzY2hlbWEuCisgICAoVGhlc2UgcmVz dHJpY3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbyBh bnl0aGluZyB5b3UKKyAgIGNvdWxkbid0IGRvIGJ5IGRyb3BwaW5nIGFuZCByZWNyZWF0aW5n IHRoZSBjb2x1bW4gbWFzdGVyIGtleS4gIEhvd2V2ZXIsIGEKKyAgIHN1cGVydXNlciBjYW4g YWx0ZXIgb3duZXJzaGlwIG9mIGFueSBjb2x1bW4gbWFzdGVyIGtleSBhbnl3YXkuKQorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRl cnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1l IChvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBt YXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG5hbWUgb2YgdGhlIGNvbHVt biBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBvd25lciBvZiB0aGUg Y29sdW1uIG1hc3RlciBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBzY2hlbWEg Zm9yIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRvIHJlbmFtZSB0aGUgY29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwv bGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmNtazI8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0 aW5nPgorQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMjsKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0 aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IDxsaXRlcmFsPmNtazE8L2xpdGVy YWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29t bWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluIHRo ZQorICAgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBl PSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVt bi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY29tbWVudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXgg NWI0M2M1NmIxMy4uMWNhZjliZmE1NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j b21tZW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKQEAgLTI4 LDYgKzI4LDggQEAKICAgQ0FTVCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBlPC9yZXBsYWNl YWJsZT4gQVMgPHJlcGxhY2VhYmxlPnRhcmdldF90eXBlPC9yZXBsYWNlYWJsZT4pIHwKICAg Q09MTEFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+IHwKICAgQ09MVU1OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWxhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4uPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBDT0xVTU4gRU5DUllQVElP TiBLRVkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBs YWNlYWJsZT4gfAorICBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIENPTlNUUkFJTlQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVwbGFjZWFi bGU+IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gfAogICBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPiBPTiBET01BSU4gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmRvbWFpbl9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBDT05W RVJTSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVw bGFjZWFibGU+IHwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggYzI1YjUyZDBjYi4uZWJjYmY1ZDAw YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jb3B5LnNnbWwKQEAgLTU1NSw2ICs1NTUsMTYgQEAgPHRpdGxlPk5vdGVz PC90aXRsZT4KICAgICBudWxsIHN0cmluZ3MgdG8gbnVsbCB2YWx1ZXMgYW5kIHVucXVvdGVk IG51bGwgc3RyaW5ncyB0byBlbXB0eSBzdHJpbmdzLgogICAgPC9wYXJhPgogCisgICA8cGFy YT4KKyAgICA8Y29tbWFuZD5DT1BZPC9jb21tYW5kPiBkb2VzIG5vdCBzdXBwb3J0IGF1dG9t YXRpYyBjbGllbnQtc2lkZQorICAgIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uIG9yIGRlY3J5 cHRpb247IGl0cyBpbnB1dCBvciBvdXRwdXQgZGF0YSB3aWxsCisgICAgYWx3YXlzIGJlIHRo ZSBjaXBoZXJ0ZXh0LiAgVGhpcyBpcyB1c3VhbGx5IHN1aXRhYmxlIGZvciBiYWNrdXBzIChz ZWUgYWxzbworICAgIDx4cmVmIGxpbmtlbmQ9ImFwcC1wZ2R1bXAiLz4pLiAgSWYgYXV0b21h dGljIGNsaWVudC1zaWRlIGVuY3J5cHRpb24gb3IKKyAgICBkZWNyeXB0aW9uIGlzIHdhbnRl ZCwgPGNvbW1hbmQ+SU5TRVJUPC9jb21tYW5kPiBhbmQKKyAgICA8Y29tbWFuZD5TRUxFQ1Q8 L2NvbW1hbmQ+IG5lZWQgdG8gYmUgdXNlZCBpbnN0ZWFkIHRvIHdyaXRlIGFuZCByZWFkIHRo ZQorICAgIGRhdGEuCisgICA8L3BhcmE+CisKICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3Qx PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRp b25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlv bl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42NTUz NGZiMDNmCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29s dW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAgLTAsMCArMSwxNzMgQEAKKzwhLS0KK2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCitQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1jcmVhdGUtY29s dW1uLWVuY3J5cHRpb24ta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGUtY29s dW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+Q1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVm ZW50cnl0aXRsZT5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZlbnRyeXRpdGxl PgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExh bmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZu YW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZu YW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBuZXcgY29sdW1uIGVuY3J5cHRpb24ga2V5 PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxz eW5vcHNpcz4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5h bWU8L3JlcGxhY2VhYmxlPiBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkg PSA8cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT4sCisgICAgQUxHT1JJVEhNID0gPHJl cGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+LAorICAgIEVOQ1JZUFRFRF9WQUxV RSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPgorKQorWyAsIC4uLiBdCis8 L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVtbgor ICAgZW5jcnlwdGlvbiBrZXkuICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyB1c2VkIGZv ciBjbGllbnQtc2lkZSBlbmNyeXB0aW9uCisgICBvZiB0YWJsZSBjb2x1bW5zIHRoYXQgaGF2 ZSBiZWVuIGRlZmluZWQgYXMgZW5jcnlwdGVkLiAgVGhlIGtleSBtYXRlcmlhbCBvZgorICAg YSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSdzIHN5 c3RlbSBjYXRhbG9ncywKKyAgIGVuY3J5cHRlZCAod3JhcHBlZCkgYnkgYSBjb2x1bW4gbWFz dGVyIGtleSAod2hpY2ggaW4gdHVybiBpcyBvbmx5CisgICBhY2Nlc3NpYmxlIHRvIHRoZSBj bGllbnQsIG5vdCB0aGUgZGF0YWJhc2Ugc2VydmVyKS4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgQSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBt b3JlIHRoYW4gb25lIGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIFRvIHNwZWNpZnkgdGhhdCwg c3BlY2lmeSBtb3JlIHRoYW4gb25lIHBhcmVudGhlc2l6ZWQgZGVmaW5pdGlvbiAoc2VlCisg ICBhbHNvIHRoZSBleGFtcGxlcykuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlz dD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFRoZSBuYW1l IGNhbiBiZQorICAgICAgc2NoZW1hLXF1YWxpZmllZC4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBt YXN0ZXIga2V5IHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNvbHVtbgorICAgICAg ZW5jcnlwdGlvbiBrZXkuICBZb3UgbXVzdCBoYXZlIDxsaXRlcmFsPlVTQUdFPC9saXRlcmFs PiBwcml2aWxlZ2Ugb24gdGhlCisgICAgICBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVu Y3J5cHRpb24gYWxnb3JpdGhtIHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGUga2V5IG1h dGVyaWFsIG9mCisgICAgICB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFN1cHBvcnRl ZCBhbGdvcml0aG1zIGFyZToKKyAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJhbD51bnNwZWNpZmllZDwvbGl0ZXJhbD48L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxw YXJhPjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+PC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJh bD5SU0FFU19PQUVQX1NIQV8yNTY8L2xpdGVyYWw+PC9wYXJhPgorICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJh PgorICAgICAgVGhpcyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuICBUaGUgc3BlY2lmaWVkIHZh bHVlIGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAgY2xpZW50LCB3aGljaCBtYXkgdXNlIGl0 IGZvciBkZWNyeXB0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb24gdGhlCisgICAg ICBjbGllbnQgc2lkZS4gIEJ1dCBhIGNsaWVudCBpcyBhbHNvIGZyZWUgdG8gaWdub3JlIHRo aXMgaW5mb3JtYXRpb24gYW5kCisgICAgICBmaWd1cmUgb3V0IGhvdyB0byBhcnJhbmdlIHRo ZSBkZWNyeXB0aW9uIGluIHNvbWUgb3RoZXIgd2F5LiAgSW4gdGhhdAorICAgICAgY2FzZSwg c3BlY2lmeWluZyB0aGUgYWxnb3JpdGhtIGFzIDxsaXRlcmFsPnVuc3BlY2lmaWVkPC9saXRl cmFsPiB3b3VsZCBiZQorICAgICAgYXBwcm9wcmlhdGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2Yg dGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAgICAg c3BlY2lmaWVkIGNvbHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3Jp dGhtLiAgVGhlIHZhbHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+LWNv bXBhdGlibGUgbGl0ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZB TFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEFMR09SSVRITSA9 ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBFTkNSWVBURURfVkFMVUUgPSAnXHgwMTAyMDIw NC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgYXNzb2NpYXRlZCBjb2x1bW4gbWFzdGVyIGtl eToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEFM R09SSVRITSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBFTkNSWVBURURfVkFMVUUgPSAn XHgwMTAyMDIwNC4uLicKKyksCisoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsyLAor ICAgIEFMR09SSVRITSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBFTkNSWVBURURfVkFM VUUgPSAnXHhGMUYyRjJGNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+Q1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FM IHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUi PgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRp b24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w LWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwv c2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNmFhYTEwODhkMQotLS0gL2Rldi9udWxsCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAg LTAsMCArMSwxMDcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9t YXN0ZXJfa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZl bnRyeSBpZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6 b25lPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+Q1JFQVRF IENPTFVNTiBNQVNURVIgS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1l dGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50 cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5T UUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBuZXcgY29sdW1uIG1hc3RlciBrZXk8 L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5 bm9wc2lzPgorQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9y ZXBsYWNlYWJsZT4gWyBXSVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxhY2VhYmxlPnJlYWxt PC9yZXBsYWNlYWJsZT4gXQorKSBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBh cmE+CisgICA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IGRl ZmluZXMgYSBuZXcgY29sdW1uIG1hc3RlcgorICAga2V5LiAgQSBjb2x1bW4gbWFzdGVyIGtl eSBpcyB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIGVuY3J5cHRpb24ga2V5cywgd2hpY2gKKyAg IGFyZSB0aGUga2V5cyB0aGF0IGFjdHVhbGx5IGVuY3J5cHQgdGhlIGNvbHVtbiBkYXRhLiAg VGhlIGtleSBtYXRlcmlhbCBvZgorICAgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlzIG5vdCBz dG9yZWQgaW4gdGhlIGRhdGFiYXNlLiAgVGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1u IG1hc3RlciBrZXkgcmVjb3JkcyBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYWxsb3cgYSBjbGll bnQgdG8gbG9jYXRlCisgICB0aGUga2V5IG1hdGVyaWFsLCBmb3IgZXhhbXBsZSBpbiBhIGZp bGUgb3IgaW4gYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAg PHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiBtYXN0ZXIga2V5LiAg VGhlIG5hbWUgY2FuIGJlCisgICAgICBzY2hlbWEtcXVhbGlmaWVkLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5yZWFsbTwvcmVwbGFjZWFibGU+PC90ZXJt PgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgaXMgYW4gb3B0 aW9uYWwgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgY29sdW1uIG1hc3Rl cgorICAgICAga2V5cyBpbnRvIGdyb3VwcyBmb3IgbG9va3VwIGJ5IGNsaWVudHMuICBUaGUg aW50ZW50IGlzIHRoYXQgYWxsIGNvbHVtbgorICAgICAgbWFzdGVyIGtleXMgdGhhdCBhcmUg c3RvcmVkIGluIHRoZSBzYW1lIHN5c3RlbSAoZmlsZSBzeXN0ZW0gbG9jYXRpb24sCisgICAg ICBrZXkgbWFuYWdlbWVudCBzeXN0ZW0sIGV0Yy4pIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBy ZWFsbS4gIEEgY2xpZW50CisgICAgICB3b3VsZCB0aGVuIGJlIGNvbmZpZ3VyZWQgdG8gbG9v ayB1cCBhbGwga2V5cyBpbiBhIGdpdmVuIHJlYWxtIGluIGEKKyAgICAgIGNlcnRhaW4gd2F5 LiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSByZXNwZWN0aXZlIGNsaWVudCBsaWJy YXJ5IGZvcgorICAgICAgZnVydGhlciB1c2FnZSBpbnN0cnVjdGlvbnMuCisgICAgIDwvcGFy YT4KKworICAgICA8cGFyYT4KKyAgICAgIFRoZSBkZWZhdWx0IGlzIHRoZSBlbXB0eSBzdHJp bmcuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xV TU4gTUFTVEVSIEtFWSBjbWsxIChyZWFsbSA9ICdteXJlYWxtJyk7Cis8L3Byb2dyYW1saXN0 aW5nPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmls aXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFU RSBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FM IHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUi PgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1r ZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29s dW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1w bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdGFibGUuc2dtbAppbmRleCBhMDNkZWU0YWZlLi5kMTU0OWM3ZjQ1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAKICA8cmVmc3lub3Bz aXNkaXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1Q T1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g KCBbCi0gIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwv cmVwbGFjZWFibGU+IFsgU1RPUkFHRSB7IFBMQUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8 IE1BSU4gfCBERUZBVUxUIH0gXSBbIENPTVBSRVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVz c2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29s bGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQorICB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBb IEVOQ1JZUFRFRCBXSVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVw bGFjZWFibGU+ICkgXSBbIFNUT1JBR0UgeyBQTEFJTiB8IEVYVEVSTkFMIHwgRVhURU5ERUQg fCBNQUlOIHwgREVGQVVMVCB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJl c3Npb25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNv bGxhdGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxy ZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0Ug PHJlcGxhY2VhYmxlPnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxl Pmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gLi4uIF0gfQogICAgIFssIC4uLiBdCkBAIC04 Nyw3ICs4Nyw3IEBACiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCi17IElOQ0xV RElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENPTlNUUkFJ TlRTIHwgREVGQVVMVFMgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBTVEFU SVNUSUNTIHwgU1RPUkFHRSB8IEFMTCB9Cit7IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsg Q09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMgfCBFTkNS WVBURUQgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBTVEFUSVNUSUNTIHwg U1RPUkFHRSB8IEFMTCB9CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNl PgogCkBAIC0zNTEsNiArMzUxLDQ3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkg aWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1lbmNyeXB0ZWQiPgorICAgIDx0ZXJtPjxsaXRl cmFsPkVOQ1JZUFRFRCBXSVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwv cmVwbGFjZWFibGU+ICk8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBFbmFibGVzIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2 ZWwgZW5jcnlwdGlvbiBmb3IgdGhlIGNvbHVtbi4KKyAgICAgIDxyZXBsYWNlYWJsZT5lbmNy eXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiBhcmUgY29tbWEtc2VwYXJhdGVkCisgICAg ICA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IHNwZWNpZmljYXRpb25zLiAgVGhlIGZv bGxvd2luZyBvcHRpb25zIGFyZQorICAgICAgYXZhaWxhYmxlOgorICAgICAgPHZhcmlhYmxl bGlzdD4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5j b2x1bW5fZW5jcnlwdGlvbl9rZXk8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVjaWZpZXMgdGhlIG5hbWUgb2Yg dGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0byB1c2UuICBTcGVjaWZ5aW5nCisgICAgICAg ICAgdGhpcyBpcyBtYW5kYXRvcnkuICBZb3UgbXVzdCBoYXZlIDxsaXRlcmFsPlVTQUdFPC9s aXRlcmFsPiBwcml2aWxlZ2UKKyAgICAgICAgICBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24g a2V5LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwv dmFybGlzdGVudHJ5PgorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxs aXRlcmFsPmVuY3J5cHRpb25fdHlwZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPnJhbmRvbWl6ZWQ8 L2xpdGVyYWw+ICh0aGUgZGVmYXVsdCkgb3IgPGxpdGVyYWw+ZGV0ZXJtaW5pc3RpYzwvbGl0 ZXJhbD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48 bGl0ZXJhbD5hbGdvcml0aG08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0g dG8gdXNlLiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICA8bGl0ZXJhbD5BRUFEX0FFU18x MjhfQ0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3Zhcmlh YmxlbGlzdD4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWlu aGVyaXRzIj4KICAgICA8dGVybT48bGl0ZXJhbD5JTkhFUklUUyAoIDxyZXBsYWNlYWJsZT5w YXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4K ICAgICA8bGlzdGl0ZW0+CkBAIC03MDQsNiArNzQ1LDE2IEBAIDx0aXRsZT5QYXJhbWV0ZXJz PC90aXRsZT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtl LW9wdC1lbmNyeXB0ZWQiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgRU5D UllQVEVEPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAg PHBhcmE+CisgICAgICAgICAgQ29sdW1uIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbnMgZm9y IHRoZSBjb3BpZWQgY29sdW1uIGRlZmluaXRpb25zCisgICAgICAgICAgd2lsbCBiZSBjb3Bp ZWQuICBCeSBkZWZhdWx0LCBuZXcgY29sdW1ucyB3aWxsIGJlIHVuZW5jcnlwdGVkLgorICAg ICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1z LWxpa2Utb3B0LWdlbmVyYXRlZCI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElO RyBHRU5FUkFURUQ8L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2EuLjZhOTQ3MDZlZjcgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sCkBAIC0yMSw3ICsyMSw3IEBACiAKICA8cmVmc3lub3BzaXNkaXY+ CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1Q T1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBDT0xVTU4gRU5DUllQVElPTiBLRVlT IHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KIDwvc3lub3BzaXM+ CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtNDIsNiArNDIsMTcgQEAgPHRpdGxlPlBhcmFt ZXRlcnM8L3RpdGxlPgogCiAgIDx2YXJpYWJsZWxpc3Q+CiAKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MVU1OIEVOQ1JZUFRJT04gS0VZUzwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERpc2NhcmRzIGtu b3dsZWRnZSBhYm91dCB3aGljaCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGFuZCBjb2x1bW4g bWFzdGVyCisgICAgICBrZXlzIGhhdmUgYmVlbiBzZW50IHRvIHRoZSBjbGllbnQgaW4gdGhp cyBzZXNzaW9uLiAgKFRoZXkgd2lsbAorICAgICAgc3Vic2VxdWVudGx5IGJlIHJlLXNlbnQg YXMgcmVxdWlyZWQuKQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlBM QU5TPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC05Myw2ICsxMDQsNyBA QCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiBESVNDQVJEIFBMQU5TOwogRElTQ0FSRCBU RU1QOwogRElTQ0FSRCBTRVFVRU5DRVM7CitESVNDQVJEIENPTFVNTiBFTkNSWVBUSU9OIEtF WVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uZjJhYzFiZWIwOAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJv cF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCwwICsxLDExMiBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCitQb3N0 Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wLWNv bHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcC1jb2x1 bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5EUk9QIENPTFVNTiBFTkNSWVBUSU9O IEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAg PG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFn ZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRp dj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZm5hbWU+Cisg IDxyZWZwdXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9z ZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitE Uk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZT5u YW1lPC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4K KyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRp b248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVk8L2NvbW1hbmQ+IHJlbW92ZXMgYSBwcmV2aW91c2x5IGRlZmluZWQKKyAgIGNv bHVtbiBlbmNyeXB0aW9uIGtleS4gIFRvIGJlIGFibGUgdG8gZHJvcCBhIGNvbHVtbiBlbmNy eXB0aW9uIGtleSwgeW91CisgICBtdXN0IGJlIGl0cyBvd25lci4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4K KworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48 bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+Cisg ICAgICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGNvbHVt biBlbmNyeXB0aW9uIGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAgICBBIG5vdGljZSBpcyBp c3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+ PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbmFtZSAob3B0aW9uYWxseSBzY2hlbWEt cXVhbGlmaWVkKSBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICAgPC9wYXJh PgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIEF1dG9tYXRpY2FsbHkg ZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXks CisgICAgICAgYW5kIGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ug b2JqZWN0cworICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJl ZnVzZSB0byBkcm9wIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaWYgYW55IG9iamVjdHMg ZGVwZW5kIG9uIGl0LiAgVGhpcworICAgICAgIGlzIHRoZSBkZWZhdWx0LgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJp YWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIGNlazE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5EUk9QIENPTFVNTiBFTkNS WVBUSU9OIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5kYXJk LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNl ZSBBbHNvPC90aXRsZT4KKworICAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1 bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVm c2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1 bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmZhZTk1ZTA5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCwwICsxLDExMiBAQAorPCEtLQorZG9j L3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKK1Bvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3AtY29sdW1uLW1h c3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1r ZXkiPgorICA8cHJpbWFyeT5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9wcmltYXJ5PgorIDwv aW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkRST1AgQ09MVU1O IE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVt PgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2lu Zm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09M VU1OIE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIGNvbHVt biBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5v cHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgWyBJRiBFWElT VFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FERSB8IFJFU1RS SUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5k PkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHJlbW92ZXMgYSBwcmV2aW91c2x5 IGRlZmluZWQKKyAgIGNvbHVtbiBtYXN0ZXIga2V5LiAgVG8gYmUgYWJsZSB0byBkcm9wIGEg Y29sdW1uIG1hc3RlciBrZXksIHlvdQorICAgbXVzdCBiZSBpdHMgb3duZXIuCisgIDwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwv dGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg PHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRo ZSBjb2x1bW4gbWFzdGVyIGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAgICBBIG5vdGljZSBp cyBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRl cm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbmFtZSAob3B0aW9uYWxseSBzY2hl bWEtcXVhbGlmaWVkKSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkuCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlz dGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4K KyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgQXV0b21hdGljYWxseSBk cm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIGNvbHVtbiBtYXN0ZXIga2V5LAorICAg ICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVj dHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZ1c2Ug dG8gZHJvcCB0aGUgY29sdW1uIG1hc3RlciBrZXkgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9u IGl0LiAgVGhpcworICAgICAgIGlzIHRoZSBkZWZhdWx0LgorICAgICAgPC9wYXJhPgorICAg ICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRs ZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgQ09MVU1OIE1BU1RFUiBL RVkgY2VrMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1h bmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisK KyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5r ZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVt YmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvZ3JhbnQuc2dtbAppbmRleCAzNWJmMDMzMmM4Li5mNzEyZjhlOWU0IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9n cmFudC5zZ21sCkBAIC00Niw2ICs0NiwxNiBAQAogICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5d IFsgV0lUSCBHUkFOVCBPUFRJT04gXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQog CitHUkFOVCB7IFVTQUdFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBDT0xVTU4g RU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPmNla19uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXQorICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNp ZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQor ICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9z cGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCitHUkFOVCB7IFVTQUdFIHwgQUxMIFsg UFJJVklMRUdFUyBdIH0KKyAgICBPTiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+ Y21rX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgVE8gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFssIC4u Ll0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CisKIEdSQU5UIHsgVVNBR0UgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQogICAgIE9OIERPTUFJ TiA8cmVwbGFjZWFibGU+ZG9tYWluX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiAgICAg VE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwv cmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCkBAIC01MTMsNyAr NTIzLDcgQEAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgogICAgPC9wYXJhPgogCiAg ICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNj aGVtYXMsIGxhbmd1YWdlcywgYW5kCisgICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFzZXMsIHRh Ymxlc3BhY2VzLCBzY2hlbWFzLCBrZXlzLCBsYW5ndWFnZXMsIGFuZAogICAgIGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVycyBhcmUKICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+IGV4dGVuc2lvbnMuCiAgICA8L3BhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL3BnX2R1bXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21s CmluZGV4IDQ5ZDIxODkwNWYuLjUzNmYxMGRlZjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcGdfZHVtcC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21s CkBAIC03MTYsNiArNzE2LDQ4IEBAIDx0aXRsZT5PcHRpb25zPC90aXRsZT4KICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICA8dGVybT48b3B0aW9uPi0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1uczwvb3B0 aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg VGhpcyBvcHRpb24gY2F1c2VzIHRoZSB2YWx1ZXMgb2YgYWxsIGVuY3J5cHRlZCBjb2x1bW5z IHRvIGJlIGRlY3J5cHRlZAorICAgICAgICBhbmQgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGlu IHBsYWludGV4dC4gIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZXMgb2YKKyAgICAgICAgZW5jcnlw dGVkIGNvbHVtbnMgYXJlIHdyaXR0ZW4gdG8gdGhlIGR1bXAgaW4gY2lwaGVydGV4dCAodGhh dCBpcywgdGhleQorICAgICAgICBhcmUgbm90IGRlY3J5cHRlZCkuCisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIHR1cm5zIG9uIHRoZSBj b2x1bW4gZW5jcnlwdGlvbiBjb25uZWN0aW9uIG9wdGlvbiBpbgorICAgICAgICA8YXBwbGlj YXRpb24+bGlicHE8L2FwcGxpY2F0aW9uPiAoc2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9 ImxpYnBxLWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24iLz4pLiAgQ29sdW1uIG1hc3RlciBr ZXkKKyAgICAgICAgbG9va3VwIG11c3QgYmUgY29uZmlndXJlZCBieSB0aGUgdXNlciwgZWl0 aGVyIHRocm91Z2ggYSBjb25uZWN0aW9uCisgICAgICAgIG9wdGlvbiBvciBhbiBlbnZpcm9u bWVudCBzZXR0aW5nIChzZWUgPHhyZWYKKyAgICAgICAgbGlua2VuZD0ibGlicHEtY29ubmVj dC1jbWtsb29rdXAiLz4pLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAg ICAgICBUaGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRp b24+LAorICAgICAgICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAg ICAgICAgPG9wdGlvbj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNp ZmllZC4KKyAgICAgICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBv cnQgY29sdW1uIGRlY3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJh PgorICAgICAgICBGb3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBp cyBhcHByb3ByaWF0ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlv biBpcyBzdWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNw ZWN0ZWQgb3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAgKEJ1dCB0aGVuIGl0IGlz IHJlY29tbWVuZGVkCisgICAgICAgIHRvIG5vdCBkbyB0aGlzIG9uIHRoZSBzYW1lIGhvc3Qg YXMgdGhlIHNlcnZlciwgdG8gYXZvaWQgZXhwb3NpbmcKKyAgICAgICAgdW5lbmNyeXB0ZWQg ZGF0YSB0aGF0IGlzIG1lYW50IHRvIGJlIGtlcHQgZW5jcnlwdGVkIG9uIHRoZSBzZXJ2ZXIu KQorICAgICAgICBOb3RlIHRoYXQgYSBkdW1wIGNyZWF0ZWQgd2l0aCB0aGlzIG9wdGlvbiBj YW5ub3QgYmUgcmVzdG9yZWQgaW50byBhCisgICAgICAgIGRhdGFiYXNlIHdpdGggY29sdW1u IGVuY3J5cHRpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgIDwhLS0KKyAgICAgICAgICAg WFhYOiBUaGUgbGF0dGVyIHdvdWxkIHJlcXVpcmUgYW5vdGhlciBwZ19kdW1wIG9wdGlvbiB0 byBwdXQgb3V0CisgICAgICAgICAgIElOU0VSVCAuLi4gXGJpbmQgLi4uIFxnIGNvbW1hbmRz LgorICAgICAgIC0tPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LS1kaXNhYmxl LWRvbGxhci1xdW90aW5nPC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BnX2R1bXBhbGwuc2dtbAppbmRleCBlNjJkMDVlNWFiLi40YmY2MGM3MjlmIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbApAQCAtMjU5LDYgKzI1OSwzMyBAQCA8dGl0 bGU+T3B0aW9uczwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRl Y3J5cHQtZW5jcnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFs dWVzIG9mIGFsbCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAg YW5kIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0 aGUgdmFsdWVzIG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRv IHRoZSBkdW1wIGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5v dCBkZWNyeXB0ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICBUaGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+ LAorICAgICAgICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAg ICAgPG9wdGlvbj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmll ZC4KKyAgICAgICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQg Y29sdW1uIGRlY3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgor ICAgICAgICBGb3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBh cHByb3ByaWF0ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBp cyBzdWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0 ZWQgb3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBj cmVhdGVkCisgICAgICAgIHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGlu dG8gYSBkYXRhYmFzZSB3aXRoIGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xs YXItcXVvdGluZzwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv cHNxbC1yZWYuc2dtbAppbmRleCBkYzY1MjhkYzExLi5lNjhiODQ0MGJlIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wc3FsLXJlZi5zZ21sCkBAIC0xNDIwLDYgKzE0MjAsMzQgQEAgPHRpdGxlPk1ldGEtQ29t bWFuZHM8L3RpdGxlPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKIAorICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWRjZWsiPgorICAgICAgICA8dGVy bT48bGl0ZXJhbD5cZGNla1srXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5z Ij48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+ PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgTGlzdHMgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIElmIDxy ZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4gaXMgc3BlY2lmaWVkLCBvbmx5IGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uIGtl eXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlIGxpc3RlZC4gIElmCisgICAg ICAgIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5h bWUsIGVhY2ggb2JqZWN0IGlzCisgICAgICAgIGxpc3RlZCB3aXRoIGl0cyBhc3NvY2lhdGVk IGRlc2NyaXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAt cHNxbC1tZXRhLWNvbW1hbmQtZGNtayI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkY21r WytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAg ICBMaXN0cyBjb2x1bW4gbWFzdGVyIGtleXMuICBJZiA8cmVwbGFjZWFibGUKKyAgICAgICAg Y2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGlzIHNwZWNpZmllZCwg b25seSBjb2x1bW4KKyAgICAgICAgbWFzdGVyIGtleXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhl IHBhdHRlcm4gYXJlIGxpc3RlZC4gIElmCisgICAgICAgIDxsaXRlcmFsPis8L2xpdGVyYWw+ IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIGVhY2ggb2JqZWN0IGlzCisgICAg ICAgIGxpc3RlZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRlc2NyaXB0aW9uLgorICAgICAgICA8 L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor CiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZGNvbmZp ZyI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkY29uZmlnWytdIFsgPGxpbmsgbGlua2Vu ZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAg ICA8bGlzdGl0ZW0+CkBAIC00MDI2LDYgKzQwNTQsMTcgQEAgPHRpdGxlPlZhcmlhYmxlczwv dGl0bGU+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtdmFyaWFibGVzLWhpZGUtY29sdW1u LWVuY3J5cHRpb24iPgorICAgICAgICA8dGVybT48dmFybmFtZT5ISURFX0NPTFVNTl9FTkNS WVBUSU9OPC92YXJuYW1lPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8 cGFyYT4KKyAgICAgICAgIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIDxsaXRlcmFsPnRy dWU8L2xpdGVyYWw+LCBjb2x1bW4gZW5jcnlwdGlvbgorICAgICAgICAgZGV0YWlscyBhcmUg bm90IGRpc3BsYXllZC4gVGhpcyBpcyBtYWlubHkgdXNlZnVsIGZvciByZWdyZXNzaW9uCisg ICAgICAgICB0ZXN0cy4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1w c3FsLXZhcmlhYmxlcy1oaWRlLXRvYXN0LWNvbXByZXNzaW9uIj4KICAgICAgICAgPHRlcm0+ PHZhcm5hbWU+SElERV9UT0FTVF9DT01QUkVTU0lPTjwvdmFybmFtZT48L3Rlcm0+CiAgICAg ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBlMTFiNGI2MTMwLi5jODk4 OTk3OTE1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0zNiw2ICszNiw4IEBAIDx0aXRsZT5T UUwgQ29tbWFuZHM8L3RpdGxlPgogICAgJmFib3J0OwogICAgJmFsdGVyQWdncmVnYXRlOwog ICAgJmFsdGVyQ29sbGF0aW9uOworICAgJmFsdGVyQ29sdW1uRW5jcnlwdGlvbktleTsKKyAg ICZhbHRlckNvbHVtbk1hc3RlcktleTsKICAgICZhbHRlckNvbnZlcnNpb247CiAgICAmYWx0 ZXJEYXRhYmFzZTsKICAgICZhbHRlckRlZmF1bHRQcml2aWxlZ2VzOwpAQCAtOTAsNiArOTIs OCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVhdGVBZ2dyZWdhdGU7 CiAgICAmY3JlYXRlQ2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247CisgICAmY3JlYXRlQ29s dW1uRW5jcnlwdGlvbktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJLZXk7CiAgICAmY3Jl YXRlQ29udmVyc2lvbjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZjcmVhdGVEb21haW47 CkBAIC0xMzcsNiArMTQxLDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAm ZHJvcEFnZ3JlZ2F0ZTsKICAgICZkcm9wQ2FzdDsKICAgICZkcm9wQ29sbGF0aW9uOworICAg JmRyb3BDb2x1bW5FbmNyeXB0aW9uS2V5OworICAgJmRyb3BDb2x1bW5NYXN0ZXJLZXk7CiAg ICAmZHJvcENvbnZlcnNpb247CiAgICAmZHJvcERhdGFiYXNlOwogICAgJmRyb3BEb21haW47 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKaW5kZXggZWY4MTgy MjhhYy4uYzU4OTQ4OTNlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1v bi9wcmludHNpbXBsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRz aW1wbGUuYwpAQCAtMjAsNyArMjAsOSBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3ByaW50c2lt cGxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAibGlicHEv bGlicHEtYmUuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgorI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAKIC8qCkBAIC00Niw2 ICs0OCwxMiBAQCBwcmludHNpbXBsZV9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50 IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR1cGRlc2MpCiAJCXBxX3NlbmRpbnQxNigmYnVmLCBh dHRyLT5hdHRsZW4pOwogCQlwcV9zZW5kaW50MzIoJmJ1ZiwgYXR0ci0+YXR0dHlwbW9kKTsK IAkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBmb3JtYXQgY29kZSAqLworCQlpZiAoTXlQ cm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfc2VuZGlu dDMyKCZidWYsIDApOwkvKiBDRUsgKi8KKwkJCXBxX3NlbmRpbnQzMigmYnVmLCAwKTsJLyog Q0VLIGFsZyAqLworCQkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBmbGFncyAqLworCQl9 CiAJfQogCiAJcHFfZW5kbWVzc2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnR0dXAuYwppbmRleCA3MmZhZWI1ZGZhLi4yZDYyN2I2ZjQ3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9wcmludHR1cC5jCkBAIC0xNSwxMyArMTUsMjggQEAKICAqLwogI2lu Y2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNs dWRlICJhY2Nlc3MvcHJpbnR0dXAuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgorI2lu Y2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgor I2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQu aCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5oIgor I2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXlhY2Nlc3Mu aCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3Jv aWRzLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lz Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMv c3lzY2FjaGUuaCIKIAogCiBzdGF0aWMgdm9pZCBwcmludHR1cF9zdGFydHVwKERlc3RSZWNl aXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwKQEAgLTE1MSw2ICsxNjYsMTY2IEBAIHByaW50 dHVwX3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURl c2MgdHlwZWluZm8pCiAJICovCiB9CiAKKy8qCisgKiBTZW5kIENvbHVtbk1hc3RlcktleSBt ZXNzYWdlLCB1bmxlc3MgaXQncyBhbHJlYWR5IGJlZW4gc2VudCBpbiB0aGlzIHNlc3Npb24K KyAqIGZvciB0aGlzIGtleS4KKyAqLworTGlzdAkgICAqY21rX3NlbnQgPSBOSUw7CisKK3N0 YXRpYyB2b2lkCitjbWtfY2hhbmdlX2NiKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQz MiBoYXNodmFsdWUpCit7CisJbGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9IE5J TDsKK30KKworc3RhdGljIHZvaWQKK01heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2Uo T2lkIGNta2lkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2NvbG1hc3Rlcmtl eSBjbWtmb3JtOworCURhdHVtCQlkYXR1bTsKKwlib29sCQlpc251bGw7CisJU3RyaW5nSW5m b0RhdGEgYnVmOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsKKwlN ZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29sdW1u X2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNta19zZW50 LCBjbWtpZCkpCisJCXJldHVybjsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENNS09J RCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXBsZSkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4g bWFzdGVyIGtleSAldSIsIGNta2lkKTsKKwljbWtmb3JtID0gKEZvcm1fcGdfY29sbWFzdGVy a2V5KSBHRVRTVFJVQ1QodHVwbGUpOworCisJcHFfYmVnaW5tZXNzYWdlKCZidWYsICd5Jyk7 IC8qIENvbHVtbk1hc3RlcktleSAqLworCXBxX3NlbmRpbnQzMigmYnVmLCBjbWtmb3JtLT5v aWQpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgTmFtZVN0cihjbWtmb3JtLT5jbWtuYW1lKSk7 CisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoQ01LT0lELCB0dXBsZSwgQW51bV9wZ19jb2xt YXN0ZXJrZXlfY21rcmVhbG0sICZpc251bGwpOworCUFzc2VydCghaXNudWxsKTsKKwlwcV9z ZW5kc3RyaW5nKCZidWYsIFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlwcV9lbmRt ZXNzYWdlKCZidWYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCWlmICghcmVn aXN0ZXJlZF9pbnZhbCkKKwl7CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENN S09JRCwgY21rX2NoYW5nZV9jYiwgKERhdHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZhbCA9 IHRydWU7CisJfQorCisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BN ZW1vcnlDb250ZXh0KTsKKwljbWtfc2VudCA9IGxhcHBlbmRfb2lkKGNta19zZW50LCBjbWtp ZCk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCisvKgorICog U2VuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVhZHkg YmVlbiBzZW50IGluIHRoaXMKKyAqIHNlc3Npb24gZm9yIHRoaXMga2V5LgorICovCitMaXN0 CSAgICpjZWtfc2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQKK2Nla19jaGFuZ2VfY2IoRGF0 dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2ZyZWUo Y2VrX3NlbnQpOworCWNla19zZW50ID0gTklMOworfQorCit2b2lkCitNYXliZVNlbmRDb2x1 bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKQoreworCUhlYXBUdXBsZQl0dXBs ZTsKKwlTY2FuS2V5RGF0YSBza2V5WzFdOworCVN5c1NjYW5EZXNjIHNkOworCVJlbGF0aW9u CXJlbDsKKwlib29sCQlmb3VuZCA9IGZhbHNlOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRf aW52YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3NlcnQo TXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlzdF9t ZW1iZXJfb2lkKGNla19zZW50LCBhdHRjZWspKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFdl IHJlYWxseSBvbmx5IG5lZWQgZGF0YSBmcm9tIHBnX2NvbGVuY2tleWRhdGEsIGJ1dCBiZWZv cmUgd2Ugc2NhbgorCSAqIHRoYXQsIGxldCdzIGNoZWNrIHRoYXQgYW4gZW50cnkgZXhpc3Rz IGluIHBnX2NvbGVuY2tleSwgc28gdGhhdCBpZgorCSAqIHRoZXJlIGFyZSBjYXRhbG9nIGlu Y29uc2lzdGVuY2llcywgd2UgY2FuIGxvY2F0ZSB0aGVtIGJldHRlci4KKwkgKi8KKwlpZiAo IVNlYXJjaFN5c0NhY2hlRXhpc3RzMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oYXR0Y2Vr KSkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgJXUiLCBhdHRjZWspOworCisJLyoKKwkgKiBOb3cgc2NhbiBwZ19jb2xl bmNrZXlkYXRhLgorCSAqLworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1fcGdf Y29sZW5ja2V5ZGF0YV9ja2RjZWtpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZf T0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShhdHRjZWspKTsKKwlyZWwgPSB0YWJsZV9v cGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCXNk ID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4 SWQsIHRydWUsIE5VTEwsIDEsIHNrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5c3RhYmxl X2dldG5leHQoc2QpKSkKKwl7CisJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBja2Rmb3JtID0g KEZvcm1fcGdfY29sZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJRGF0dW0JCWRh dHVtOworCQlib29sCQlpc251bGw7CisJCWJ5dGVhCSAgICpiYTsKKwkJU3RyaW5nSW5mb0Rh dGEgYnVmOworCisJCU1heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoY2tkZm9ybS0+ Y2tkY21raWQpOworCisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVtX3BnX2Nv bGVuY2tleWRhdGFfY2tkZW5jdmFsLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwp OworCQlBc3NlcnQoIWlzbnVsbCk7CisJCWJhID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNrZWQo KGJ5dGVhICopIERhdHVtR2V0UG9pbnRlcihkYXR1bSkpOworCisJCXBxX2JlZ2lubWVzc2Fn ZSgmYnVmLCAnWScpOyAvKiBDb2x1bW5FbmNyeXB0aW9uS2V5ICovCisJCXBxX3NlbmRpbnQz MigmYnVmLCBja2Rmb3JtLT5ja2RjZWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rm b3JtLT5ja2RjbWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjbWth bGcpOworCQlwcV9zZW5kaW50MzIoJmJ1ZiwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJ cHFfc2VuZGJ5dGVzKCZidWYsIFZBUkRBVEFfQU5ZKGJhKSwgVkFSU0laRV9BTllfRVhIRFIo YmEpKTsKKwkJcHFfZW5kbWVzc2FnZSgmYnVmKTsKKworCQlmb3VuZCA9IHRydWU7CisJfQor CisJLyoKKwkgKiBUaGlzIGlzIGEgdXNlci1mYWNpbmcgbWVzc2FnZSwgYmVjYXVzZSB3aXRo IEFMVEVSIGl0IGlzIHBvc3NpYmxlIHRvCisJICogZGVsZXRlIGFsbCBkYXRhIGVudHJpZXMg Zm9yIGEgQ0VLLgorCSAqLworCWlmICghZm91bmQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1zZygibm8gZGF0 YSBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiIsIGdldF9jZWtfbmFtZShhdHRj ZWssIGZhbHNlKSkpOworCisJc3lzdGFibGVfZW5kc2NhbihzZCk7CisJdGFibGVfY2xvc2Uo cmVsLCBOb0xvY2spOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2FjaGVS ZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQ0VLREFUQU9JRCwgY2VrX2NoYW5nZV9jYiwgKERh dHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJb2xkY29udGV4 dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwljZWtfc2Vu dCA9IGxhcHBlbmRfb2lkKGNla19zZW50LCBhdHRjZWspOworCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjb250ZXh0KTsKK30KKwordm9pZAorRGlzY2FyZENvbHVtbkVuY3J5cHRpb25L ZXlzKHZvaWQpCit7CisJbGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9IE5JTDsK KworCWxpc3RfZnJlZShjZWtfc2VudCk7CisJY2VrX3NlbnQgPSBOSUw7Cit9CisKIC8qCiAg KiBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlIC0tLSBzZW5kIGEgUm93RGVzY3JpcHRpb24g bWVzc2FnZSB0byB0aGUgZnJvbnRlbmQKICAqCkBAIC0xNjcsNiArMzQyLDcgQEAgU2VuZFJv d0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZv LAogCQkJCQkJICBMaXN0ICp0YXJnZXRsaXN0LCBpbnQxNiAqZm9ybWF0cykKIHsKIAlpbnQJ CQluYXR0cyA9IHR5cGVpbmZvLT5uYXR0czsKKwlzaXplX3QJCXN6OwogCWludAkJCWk7CiAJ TGlzdENlbGwgICAqdGxpc3RfaXRlbSA9IGxpc3RfaGVhZCh0YXJnZXRsaXN0KTsKIApAQCAt MTgzLDE0ICszNTksMTggQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZv IGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCSAqIEhhdmUgdG8gb3ZlcmVzdGltYXRlIHRo ZSBzaXplIG9mIHRoZSBjb2x1bW4tbmFtZXMsIHRvIGFjY291bnQgZm9yCiAJICogY2hhcmFj dGVyIHNldCBvdmVyaGVhZC4KIAkgKi8KLQllbmxhcmdlU3RyaW5nSW5mbyhidWYsIChOQU1F REFUQUxFTiAqIE1BWF9DT05WRVJTSU9OX0dST1dUSCAvKiBhdHRuYW1lICovCi0JCQkJCQkJ KyBzaXplb2YoT2lkKQkvKiByZXNvcmlndGJsICovCi0JCQkJCQkJKyBzaXplb2YoQXR0ck51 bWJlcikJLyogcmVzb3JpZ2NvbCAqLwotCQkJCQkJCSsgc2l6ZW9mKE9pZCkJLyogYXR0dHlw aWQgKi8KLQkJCQkJCQkrIHNpemVvZihpbnQxNikgLyogYXR0bGVuICovCi0JCQkJCQkJKyBz aXplb2YoaW50MzIpIC8qIGF0dHlwbW9kICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYpIC8q IGZvcm1hdCAqLwotCQkJCQkJCSkgKiBuYXR0cyk7CisJc3ogPSAoTkFNRURBVEFMRU4gKiBN QVhfQ09OVkVSU0lPTl9HUk9XVEggLyogYXR0bmFtZSAqLworCQkgICsgc2l6ZW9mKE9pZCkJ LyogcmVzb3JpZ3RibCAqLworCQkgICsgc2l6ZW9mKEF0dHJOdW1iZXIpCS8qIHJlc29yaWdj b2wgKi8KKwkJICArIHNpemVvZihPaWQpCS8qIGF0dHR5cGlkICovCisJCSAgKyBzaXplb2Yo aW50MTYpIC8qIGF0dGxlbiAqLworCQkgICsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1vZCAq LworCQkgICsgc2l6ZW9mKGludDE2KSk7IC8qIGZvcm1hdCAqLworCWlmIChNeVByb2NQb3J0 LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlzeiArPSAoc2l6ZW9mKGludDMyKQkJ LyogYXR0Y2VraWQgKi8KKwkJCSAgICsgc2l6ZW9mKGludDMyKQkJLyogYXR0ZW5jYWxnICov CisJCQkgICArIHNpemVvZihpbnQxNikpOwkvKiBmbGFncyAqLworCWVubGFyZ2VTdHJpbmdJ bmZvKGJ1Ziwgc3ogKiBuYXR0cyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7ICsraSkK IAl7CkBAIC0yMDAsNiArMzgwLDkgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJp bmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCQlPaWQJCQlyZXNvcmlndGJsOwog CQlBdHRyTnVtYmVyCXJlc29yaWdjb2w7CiAJCWludDE2CQlmb3JtYXQ7CisJCU9pZAkJCWF0 dGNla2lkID0gSW52YWxpZE9pZDsKKwkJaW50MzIJCWF0dGVuY2FsZyA9IDA7CisJCWludDE2 CQlmbGFncyA9IDA7CiAKIAkJLyoKIAkJICogSWYgY29sdW1uIGlzIGEgZG9tYWluLCBzZW5k IHRoZSBiYXNlIHR5cGUgYW5kIHR5cG1vZCBpbnN0ZWFkLgpAQCAtMjMxLDYgKzQxNCwzMSBA QCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2Mg dHlwZWluZm8sCiAJCWVsc2UKIAkJCWZvcm1hdCA9IDA7CiAKKwkJaWYgKE15UHJvY1BvcnQt PmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgJiYgdHlwZV9pc19lbmNyeXB0ZWQoYXR0dHlw aWQpKQorCQl7CisJCQlIZWFwVHVwbGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmln X2F0dDsKKworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERh dHVtKHJlc29yaWd0YmwpLCBJbnQxNkdldERhdHVtKHJlc29yaWdjb2wpKTsKKwkJCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHJlc29yaWdjb2wsIHJl c29yaWd0YmwpOworCQkJb3JpZ19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVD VCh0cCk7CisJCQlNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShvcmlnX2F0 dC0+YXR0Y2VrKTsKKwkJCWF0dHR5cGlkID0gb3JpZ19hdHQtPmF0dHVzZXJ0eXBpZDsKKwkJ CWF0dHR5cG1vZCA9IG9yaWdfYXR0LT5hdHR1c2VydHlwbW9kOworCQkJYXR0Y2VraWQgPSBv cmlnX2F0dC0+YXR0Y2VrOworCQkJYXR0ZW5jYWxnID0gb3JpZ19hdHQtPmF0dHR5cG1vZDsK KwkJCWlmIChvcmlnX2F0dC0+YXR0dHlwaWQgPT0gUEdfRU5DUllQVEVEX0RFVE9JRCkKKwkJ CQlmbGFncyB8PSAweDAwMDE7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCisJCQkvKgor CQkJICogRW5jcnlwdGVkIHR5cGVzIGFyZSBhbHdheXMgc2VudCBpbiBiaW5hcnkgd2hlbiBj b2x1bW4KKwkJCSAqIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkJCSAqLworCQkJZm9ybWF0 ID0gMTsKKwkJfQorCiAJCXBxX3dyaXRlc3RyaW5nKGJ1ZiwgTmFtZVN0cihhdHQtPmF0dG5h bWUpKTsKIAkJcHFfd3JpdGVpbnQzMihidWYsIHJlc29yaWd0YmwpOwogCQlwcV93cml0ZWlu dDE2KGJ1ZiwgcmVzb3JpZ2NvbCk7CkBAIC0yMzgsNiArNDQ2LDEyIEBAIFNlbmRSb3dEZXNj cmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJ cHFfd3JpdGVpbnQxNihidWYsIGF0dC0+YXR0bGVuKTsKIAkJcHFfd3JpdGVpbnQzMihidWYs IGF0dHR5cG1vZCk7CiAJCXBxX3dyaXRlaW50MTYoYnVmLCBmb3JtYXQpOworCQlpZiAoTXlQ cm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfd3JpdGVp bnQzMihidWYsIGF0dGNla2lkKTsKKwkJCXBxX3dyaXRlaW50MzIoYnVmLCBhdHRlbmNhbGcp OworCQkJcHFfd3JpdGVpbnQxNihidWYsIGZsYWdzKTsKKwkJfQogCX0KIAogCXBxX2VuZG1l c3NhZ2VfcmV1c2UoYnVmKTsKQEAgLTI3MSw2ICs0ODUsMTMgQEAgcHJpbnR0dXBfcHJlcGFy ZV9pbmZvKERSX3ByaW50dHVwICpteVN0YXRlLCBUdXBsZURlc2MgdHlwZWluZm8sIGludCBu dW1BdHRycykKIAkJaW50MTYJCWZvcm1hdCA9IChmb3JtYXRzID8gZm9ybWF0c1tpXSA6IDAp OwogCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5mbywg aSk7CiAKKwkJLyoKKwkJICogRW5jcnlwdGVkIHR5cGVzIGFyZSBhbHdheXMgc2VudCBpbiBi aW5hcnkgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcworCQkgKiBlbmFibGVkLgorCQkgKi8K KwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgJiYgdHlwZV9p c19lbmNyeXB0ZWQoYXR0ci0+YXR0dHlwaWQpKQorCQkJZm9ybWF0ID0gMTsKKwogCQl0aGlz U3RhdGUtPmZvcm1hdCA9IGZvcm1hdDsKIAkJaWYgKGZvcm1hdCA9PSAwKQogCQl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCmluZGV4IDcyYTJjM2QzZGIuLmY4NmJhMjk5 YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCkBAIC00NTksNiArNDU5 LDEyIEBAIGVxdWFsVHVwbGVEZXNjcyhUdXBsZURlc2MgdHVwZGVzYzEsIFR1cGxlRGVzYyB0 dXBkZXNjMikKIAkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5hdHRpc2xvY2FsICE9 IGF0dHIyLT5hdHRpc2xvY2FsKQogCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEtPmF0 dGNlayAhPSBhdHRyMi0+YXR0Y2VrKQorCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEt PmF0dHVzZXJ0eXBpZCAhPSBhdHRyMi0+YXR0dXNlcnR5cGlkKQorCQkJcmV0dXJuIGZhbHNl OworCQlpZiAoYXR0cjEtPmF0dHVzZXJ0eXBtb2QgIT0gYXR0cjItPmF0dHVzZXJ0eXBtb2Qp CisJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0aW5oY291bnQgIT0gYXR0cjIt PmF0dGluaGNvdW50KQogCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAoYXR0cjEtPmF0dGNvbGxh dGlvbiAhPSBhdHRyMi0+YXR0Y29sbGF0aW9uKQpAQCAtNjI5LDYgKzYzNSw5IEBAIFR1cGxl RGVzY0luaXRFbnRyeShUdXBsZURlc2MgZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdc MCc7CiAJYXR0LT5hdHRpc2Ryb3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0 cnVlOworCWF0dC0+YXR0Y2VrID0gMDsKKwlhdHQtPmF0dHVzZXJ0eXBpZCA9IDA7CisJYXR0 LT5hdHR1c2VydHlwbW9kID0gLTE7CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFy aWFibGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwog CkBAIC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0aW5FbnRyeShUdXBsZURl c2MgZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJYXR0LT5hdHRpc2Ryb3Bw ZWQgPSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOworCWF0dC0+YXR0Y2VrID0g MDsKKwlhdHQtPmF0dHVzZXJ0eXBpZCA9IDA7CisJYXR0LT5hdHR1c2VydHlwbW9kID0gLTE7 CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBh cmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2h2YWxpZGF0ZS5jCmluZGV4IDI0YmFiNTg0OTkuLmNjNDgwNjk5MzIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCkBAIC0zMzEsNyArMzMxLDcg QEAgY2hlY2tfaGFzaF9mdW5jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBpbnQxNiBhbXByb2Nu dW0sIE9pZCBhcmd0eXBlKQogCQkJCSBhcmd0eXBlID09IEJPT0xPSUQpCiAJCQkgLyogb2th eSwgYWxsb3dlZCB1c2Ugb2YgaGFzaGNoYXIoKSAqLyA7CiAJCWVsc2UgaWYgKChmdW5jaWQg PT0gRl9IQVNIVkFSTEVOQSB8fCBmdW5jaWQgPT0gRl9IQVNIVkFSTEVOQUVYVEVOREVEKSAm JgotCQkJCSBhcmd0eXBlID09IEJZVEVBT0lEKQorCQkJCSAoYXJndHlwZSA9PSBCWVRFQU9J RCB8fCBhcmd0eXBlID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQpKQogCQkJIC8qIG9rYXksIGFs bG93ZWQgdXNlIG9mIGhhc2h2YXJsZW5hKCkgKi8gOwogCQllbHNlCiAJCQlyZXN1bHQgPSBm YWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMv YmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IGE2MDEwN2JmOTQuLjdiOTU3NTYzNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyArNzIsOCBAQCBDQVRBTE9HX0hFQURF UlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFtZXRlcl9hY2wuaCBwZ19wYXJ0aXRp b25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3RyYW5zZm9ybS5oIFwKIAlwZ19zZXF1 ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAot CXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1YnNjcmlwdGlv bl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1 YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5LmggcGdfY29sZW5ja2V5Lmgg cGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19I RUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0ZW1fZmtfaW5mby5oCiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCmluZGV4IGM0MjMyMzQ0YWEuLmEzNTQ3YzZjYWUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9hY2xjaGsuYwpAQCAtMzMsNyArMzMsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0 aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Rl ZmF1bHRfYWNsLmgiCkBAIC0yNDcsNiArMjQ5LDEyIEBAIHJlc3RyaWN0X2FuZF9jaGVja19n cmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFsbF9w cml2cywKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FM TF9SSUdIVFNfU0VRVUVOQ0U7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJ d2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX0NFSzsKKwkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9DTUs6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfQ01LOworCQkJYnJl YWs7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJd2hvbGVfbWFzayA9IEFDTF9BTExf UklHSFRTX0RBVEFCQVNFOwogCQkJYnJlYWs7CkBAIC00NzMsNiArNDgxLDE0IEBAIEV4ZWN1 dGVHcmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xf QUxMX1JJR0hUU19TRVFVRU5DRTsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZh bGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXF1ZW5jZSIpOwogCQkJYnJlYWs7CisJCWNh c2UgT0JKRUNUX0NFSzoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfQ0VL OworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUg JXMgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisJCWNhc2UgT0JK RUNUX0NNSzoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfQ01LOworCQkJ ZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9y IGNvbHVtbiBtYXN0ZXIga2V5Iik7CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJB U0U6CiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX0RBVEFCQVNFOwogCQkJ ZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9y IGRhdGFiYXNlIik7CkBAIC01OTcsNiArNjEzLDEyIEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJ bnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCQlFeGVj R3JhbnRfUmVsYXRpb24oaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoK KwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIEFD TF9BTExfUklHSFRTX0NFSywgTlVMTCk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01L OgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25J ZCwgQUNMX0FMTF9SSUdIVFNfQ01LLCBOVUxMKTsKKwkJCWJyZWFrOwogCQljYXNlIE9CSkVD VF9EQVRBQkFTRToKIAkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIERhdGFiYXNlUmVsYXRp b25JZCwgQUNMX0FMTF9SSUdIVFNfREFUQUJBU0UsIE5VTEwpOwogCQkJYnJlYWs7CkBAIC02 NzYsNiArNjk4LDI2IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwg TGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJb2JqZWN0cyA9IGxhcHBlbmRf b2lkKG9iamVjdHMsIHJlbE9pZCk7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlMaXN0CSAgICpj ZWtuYW1lID0gKExpc3QgKikgbGZpcnN0KGNlbGwpOworCQkJCU9pZAkJCW9pZDsKKworCQkJ CW9pZCA9IGdldF9jZWtfb2lkKGNla25hbWUsIGZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFw cGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIE9CSkVD VF9DTUs6CisJCQlmb3JlYWNoKGNlbGwsIG9iam5hbWVzKQorCQkJeworCQkJCUxpc3QJICAg KmNta25hbWUgPSAoTGlzdCAqKSBsZmlyc3QoY2VsbCk7CisJCQkJT2lkCQkJb2lkOworCisJ CQkJb2lkID0gZ2V0X2Nta19vaWQoY21rbmFtZSwgZmFsc2UpOworCQkJCW9iamVjdHMgPSBs YXBwZW5kX29pZChvYmplY3RzLCBvaWQpOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgT0JK RUNUX0RBVEFCQVNFOgogCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKIAkJCXsKQEAgLTI2 OTMsNiArMjczNSwxMiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmpl Y3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1z ZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGFnZ3JlZ2F0ZSAlcyIp OwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJCW1zZyA9IGdl dHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSAlcyIpOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJCW1z ZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgog CQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sbGF0 aW9uICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI3OTgsNiArMjg0Niw3IEBAIGFjbGNoZWNr X2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2Fz ZSBPQkpFQ1RfQU1QUk9DOgogCQkJCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCQkJCWNh c2UgT0JKRUNUX0NBU1Q6CisJCQkJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCQkJCWNhc2Ug T0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBP QkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTI4MjgsNiArMjg3NywxMiBAQCBhY2xjaGVja19l cnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2Ug T0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBv d25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVD VF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgY29s dW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpF Q1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIGNv bHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1Rf Q09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9m IGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTM4LDYgKzI5OTMsNyBAQCBh Y2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJ CQkJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgog CQkJCQljYXNlIE9CSkVDVF9DQVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgogCQkJ CQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJ CWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CkBAIC0zMDE5LDYgKzMwNzUsMTAgQEAgcGdf YWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvYmplY3Rfb2lkLCBBdHRyTnVtYmVy IGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2UgT0JK RUNUX1NFUVVFTkNFOgogCQkJcmV0dXJuIHBnX2NsYXNzX2FjbG1hc2sob2JqZWN0X29pZCwg cm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9DRUs6CisJCQlyZXR1cm4gb2Jq ZWN0X2FjbG1hc2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlk LCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlyZXR1cm4gb2JqZWN0X2Fj bG1hc2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBt YXNrLCBob3cpOwogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCXJldHVybiBvYmplY3Rf YWNsbWFzayhEYXRhYmFzZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywg aG93KTsKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCmluZGV4IGY4YTEzNmJhMGEuLmNhYjZjZmQxNDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCkBAIC0zMCw3ICszMCwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0 aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJr ZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNl LmgiCkBAIC0xNTMsNiArMTU2LDkgQEAgc3RhdGljIGNvbnN0IE9pZCBvYmplY3RfY2xhc3Nl c1tdID0gewogCVR5cGVSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfVFlQRSAqLwogCUNhc3RS ZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfQ0FTVCAqLwogCUNvbGxhdGlvblJlbGF0aW9uSWQs CQkvKiBPQ0xBU1NfQ09MTEFUSU9OICovCisJQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwJCS8q IE9DTEFTU19DRUsgKi8KKwlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwJLyogT0NMQVNT X0NFS0RBVEEgKi8KKwlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLAkvKiBPQ0xBU1NfQ01L ICovCiAJQ29uc3RyYWludFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09OU1RSQUlOVCAqLwog CUNvbnZlcnNpb25SZWxhdGlvbklkLAkJLyogT0NMQVNTX0NPTlZFUlNJT04gKi8KIAlBdHRy RGVmYXVsdFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfREVGQVVMVCAqLwpAQCAtMTQ5Myw2ICsx NDk5LDkgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBm bGFncykKIAogCQljYXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFTU19DT0xMQVRJT046 CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBP Q0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFTU19M QU5HVUFHRToKIAkJY2FzZSBPQ0xBU1NfT1BDTEFTUzoKQEAgLTI4NTksNiArMjg2OCwxNSBA QCBnZXRPYmplY3RDbGFzcyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QpCiAJCWNhc2Ug Q29sbGF0aW9uUmVsYXRpb25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09MTEFUSU9OOwogCisJ CWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1NfQ0VLOwor CisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCQlyZXR1cm4gT0NMQVNT X0NFS0RBVEE7CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOgorCQkJcmV0 dXJuIE9DTEFTU19DTUs7CisKIAkJY2FzZSBDb25zdHJhaW50UmVsYXRpb25JZDoKIAkJCXJl dHVybiBPQ0xBU1NfQ09OU1RSQUlOVDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA0ZjAwNjgy MGI4Li5kZjI4MmM3OTZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtNDIsNiArNDIsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19h bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXR0cmRlZi5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2ZvcmVpZ25fdGFibGUuaCIKQEAgLTUxMSw3ICs1MTIsMTQgQEAgQ2hlY2tBdHRyaWJ1 dGVOYW1lc1R5cGVzKFR1cGxlRGVzYyB0dXBkZXNjLCBjaGFyIHJlbGtpbmQsCiAJCQkJCQkg ICBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHR0eXBpZCwKIAkJCQkJCSAgIFR1cGxl RGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGNvbGxhdGlvbiwKIAkJCQkJCSAgIE5JTCwgLyog YXNzdW1lIHdlJ3JlIGNyZWF0aW5nIGEgbmV3IHJvd3R5cGUgKi8KLQkJCQkJCSAgIGZsYWdz KTsKKwkJCQkJCSAgIGZsYWdzIHwKKwkJCQkJCSAgIC8qCisJCQkJCQkJKiBBbGxvdyBlbmNy eXB0ZWQgdHlwZXMgaWYgQ0VLIGhhcyBiZWVuIHByb3ZpZGVkLAorCQkJCQkJCSogd2hpY2gg bWVhbnMgdGhpcyB0eXBlIGhhcyBiZWVuIGludGVybmFsbHkKKwkJCQkJCQkqIGdlbmVyYXRl ZC4gIFdlIGRvbid0IHdhbnQgdG8gYWxsb3cgZXhwbGljaXRseQorCQkJCQkJCSogdXNpbmcg dGhlc2UgdHlwZXMuCisJCQkJCQkJKi8KKwkJCQkJCSAgIChUdXBsZURlc2NBdHRyKHR1cGRl c2MsIGkpLT5hdHRjZWsgPyBDSEtBVFlQRV9FTkNSWVBURUQgOiAwKSk7CiAJfQogfQogCkBA IC02NTMsNiArNjYxLDIxIEBAIENoZWNrQXR0cmlidXRlVHlwZShjb25zdCBjaGFyICphdHRu YW1lLAogCQkJCQkJICAgZmxhZ3MpOwogCX0KIAorCS8qCisJICogRW5jcnlwdGVkIHR5cGVz IGFyZSBub3QgYWxsb3dlZCBleHBsaWN0bHkgYXMgY29sdW1uIHR5cGVzLiAgTW9zdAorCSAq IGNhbGxlcnMgcnVuIHRoaXMgY2hlY2sgYmVmb3JlIHRyYW5zZm9ybWluZyB0aGUgY29sdW1u IGRlZmluaXRpb24gdG8gdXNlCisJICogdGhlIGVuY3J5cHRlZCB0eXBlcy4gIFNvbWUgY2Fs bGVycyBjYWxsIGl0IGFnYWluIGFmdGVyOyB0aG9zZSBzaG91bGQKKwkgKiBzZXQgdGhlIENI S0FUWVBFX0VOQ1JZUFRFRCB0byBsZXQgdGhpcyBwYXNzLgorCSAqLworCWlmICh0eXBlX2lz X2VuY3J5cHRlZChhdHR0eXBpZCkgJiYgIShmbGFncyAmIENIS0FUWVBFX0VOQ1JZUFRFRCkp CisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9U QUJMRV9ERUZJTklUSU9OKSwKKwkJCQkgZXJyYmFja3RyYWNlKCksCisJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBoYXMgaW50ZXJuYWwgdHlwZSAlcyIsCisJCQkJCQlhdHRuYW1lLCBm b3JtYXRfdHlwZV9iZShhdHR0eXBpZCkpKSk7CisJfQorCiAJLyoKIAkgKiBUaGlzIG1pZ2h0 IG5vdCBiZSBzdHJpY3RseSBpbnZhbGlkIHBlciBTUUwgc3RhbmRhcmQsIGJ1dCBpdCBpcyBw cmV0dHkKIAkgKiB1c2VsZXNzLCBhbmQgaXQgY2Fubm90IGJlIGR1bXBlZCwgc28gd2UgbXVz dCBkaXNhbGxvdyBpdC4KQEAgLTc0OSw2ICs3NzIsOSBAQCBJbnNlcnRQZ0F0dHJpYnV0ZVR1 cGxlcyhSZWxhdGlvbiBwZ19hdHRyaWJ1dGVfcmVsLAogCQlzbG90W3Nsb3RDb3VudF0tPnR0 c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Z2VuZXJhdGVkIC0gMV0gPSBDaGFyR2V0 RGF0dW0oYXR0cnMtPmF0dGdlbmVyYXRlZCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3Zh bHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2Ryb3BwZWQgLSAxXSA9IEJvb2xHZXREYXR1 bShhdHRycy0+YXR0aXNkcm9wcGVkKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVz W0FudW1fcGdfYXR0cmlidXRlX2F0dGlzbG9jYWwgLSAxXSA9IEJvb2xHZXREYXR1bShhdHRy cy0+YXR0aXNsb2NhbCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3Bn X2F0dHJpYnV0ZV9hdHRjZWsgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dGNl ayk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9h dHR1c2VydHlwaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dHVzZXJ0eXBp ZCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9h dHR1c2VydHlwbW9kIC0gMV0gPSBJbnQzMkdldERhdHVtKGF0dHJzLT5hdHR1c2VydHlwbW9k KTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0 dGluaGNvdW50IC0gMV0gPSBJbnQzMkdldERhdHVtKGF0dHJzLT5hdHRpbmhjb3VudCk7CiAJ CXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRjb2xs YXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dGNvbGxhdGlvbik7CiAJ CWlmIChhdHRvcHRpb25zICYmIGF0dG9wdGlvbnNbbmF0dHNdICE9IChEYXR1bSkgMCkKQEAg LTg0MCw2ICs4NjYsMjAgQEAgQWRkTmV3QXR0cmlidXRlVHVwbGVzKE9pZCBuZXdfcmVsX29p ZCwKIAkJCQkJCQkgdHVwZGVzYy0+YXR0cnNbaV0uYXR0Y29sbGF0aW9uKTsKIAkJCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwp OwogCQl9CisKKwkJaWYgKE9pZElzVmFsaWQodHVwZGVzYy0+YXR0cnNbaV0uYXR0Y2VrKSkK KwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2x1bW5FbmNLZXlSZWxh dGlvbklkLAorCQkJCQkJCSB0dXBkZXNjLT5hdHRyc1tpXS5hdHRjZWspOworCQkJcmVjb3Jk RGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7 CisJCX0KKworCQlpZiAoT2lkSXNWYWxpZCh0dXBkZXNjLT5hdHRyc1tpXS5hdHR1c2VydHlw aWQpKQorCQl7CisJCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlv bklkLAorCQkJCQkJCSB0dXBkZXNjLT5hdHRyc1tpXS5hdHR1c2VydHlwaWQpOworCQkJcmVj b3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1B TCk7CisJCX0KIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggMTRl NTdhZGVlMi4uMDBmOTE0YmM1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0y Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhp ZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlv bi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfZGF0YWJhc2UuaCIKQEAgLTE5OTcsNiArMTk5OSwyNTQgQEAgT3BmYW1pbHlJ c1Zpc2libGUoT2lkIG9wZmlkKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogZ2V0 X2Nla19vaWQgLSBmaW5kIGEgQ0VLIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBuYW1lCisgKi8K K09pZAorZ2V0X2Nla19vaWQoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlj aGFyCSAgICpzY2hlbWFuYW1lOworCWNoYXIJICAgKmNla25hbWU7CisJT2lkCQkJbmFtZXNw YWNlSWQ7CisJT2lkCQkJY2Vrb2lkID0gSW52YWxpZE9pZDsKKwlMaXN0Q2VsbCAgICpsOwor CisJLyogZGVjb25zdHJ1Y3QgdGhlIG5hbWUgbGlzdCAqLworCURlY29uc3RydWN0UXVhbGlm aWVkTmFtZShuYW1lcywgJnNjaGVtYW5hbWUsICZjZWtuYW1lKTsKKworCWlmIChzY2hlbWFu YW1lKQorCXsKKwkJLyogdXNlIGV4YWN0IHNjaGVtYSBnaXZlbiAqLworCQluYW1lc3BhY2VJ ZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKHNjaGVtYW5hbWUsIG1pc3Npbmdfb2spOwor CQlpZiAobWlzc2luZ19vayAmJiAhT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkpCisJCQljZWtv aWQgPSBJbnZhbGlkT2lkOworCQllbHNlCisJCQljZWtvaWQgPSBHZXRTeXNDYWNoZU9pZDIo Q0VLTkFNRU5TUCwgQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJH ZXREYXR1bShjZWtuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFj ZUlkKSk7CisJfQorCWVsc2UKKwl7CisJCS8qIHNlYXJjaCBmb3IgaXQgaW4gc2VhcmNoIHBh dGggKi8KKwkJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2gobCwgYWN0 aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOwor CisJCQlpZiAobmFtZXNwYWNlSWQgPT0gbXlUZW1wTmFtZXNwYWNlKQorCQkJCWNvbnRpbnVl OwkJLyogZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKworCQkJY2Vrb2lkID0g R2V0U3lzQ2FjaGVPaWQyKENFS05BTUVOU1AsIEFudW1fcGdfY29sZW5ja2V5X29pZCwKKwkJ CQkJCQkJCSBQb2ludGVyR2V0RGF0dW0oY2VrbmFtZSksCisJCQkJCQkJCQkgT2JqZWN0SWRH ZXREYXR1bShuYW1lc3BhY2VJZCkpOworCQkJaWYgKE9pZElzVmFsaWQoY2Vrb2lkKSkKKwkJ CQlyZXR1cm4gY2Vrb2lkOworCQl9CisJfQorCisJLyogTm90IGZvdW5kIGluIHBhdGggKi8K KwlpZiAoIU9pZElzVmFsaWQoY2Vrb2lkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBl cnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAor CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJcmV0dXJuIGNla29pZDsKK30K KworLyoKKyAqIENFS0lzVmlzaWJsZQorICoJCURldGVybWluZSB3aGV0aGVyIGEgQ0VLIChp ZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJj aCBwYXRoLiAgVmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisg KgkJZm9yIHRoZSB1bnF1YWxpZmllZCBwYXJzZXIgbmFtZSIuCisgKi8KK2Jvb2wKK0NFS0lz VmlzaWJsZShPaWQgY2VraWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX2NvbGVu Y2tleSBmb3JtOworCU9pZAkJCW5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxlOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShjZWtpZCkpOwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1IiwgY2VraWQpOworCWZv cm0gPSAoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXApOworCisJcmVjb21wdXRl TmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3Qg aW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBJdGVtcyBpbgorCSAqIHRo ZSBzeXN0ZW0gbmFtZXNwYWNlIGFyZSBzdXJlbHkgaW4gdGhlIHBhdGggYW5kIHNvIHdlIG5l ZWRuJ3QgZXZlbiBkbworCSAqIGxpc3RfbWVtYmVyX29pZCgpIGZvciB0aGVtLgorCSAqLwor CW5hbWVzcGFjZSA9IGZvcm0tPmNla25hbWVzcGFjZTsKKwlpZiAobmFtZXNwYWNlICE9IFBH X0NBVEFMT0dfTkFNRVNQQUNFICYmCisJCSFsaXN0X21lbWJlcl9vaWQoYWN0aXZlU2VhcmNo UGF0aCwgbmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVsc2UKKwl7CisJCS8q CisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGlsbCBub3QgYmUgdmlz aWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgcGFyc2VyIG9mIHRo ZSBzYW1lIG5hbWUgZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBh IHNsb3cgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIENFS3MuCisJCSAqLworCQljaGFyCSAgICpu YW1lID0gTmFtZVN0cihmb3JtLT5jZWtuYW1lKTsKKwkJTGlzdENlbGwgICAqbDsKKworCQl2 aXNpYmxlID0gZmFsc2U7CisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJewor CQkJT2lkCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNw YWNlSWQgPT0gbXlUZW1wTmFtZXNwYWNlKQorCQkJCWNvbnRpbnVlOwkJLyogZG8gbm90IGxv b2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKworCQkJaWYgKG5hbWVzcGFjZUlkID09IG5hbWVz cGFjZSkKKwkJCXsKKwkJCQkvKiBGb3VuZCBpdCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlz aWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoU2VhcmNoU3lzQ2FjaGVF eGlzdHMyKENFS05BTUVOU1AsCisJCQkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bShuYW1lKSwK KwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJ CS8qIEZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8KKwkJCQlicmVhazsK KwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZp c2libGU7Cit9CisKKy8qCisgKiBnZXRfY21rX29pZCAtIGZpbmQgYSBDTUsgYnkgcG9zc2li bHkgcXVhbGlmaWVkIG5hbWUKKyAqLworT2lkCitnZXRfY21rX29pZChMaXN0ICpuYW1lcywg Ym9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJICAgKnNjaGVtYW5hbWU7CisJY2hhcgkgICAq Y21rbmFtZTsKKwlPaWQJCQluYW1lc3BhY2VJZDsKKwlPaWQJCQljbWtvaWQgPSBJbnZhbGlk T2lkOworCUxpc3RDZWxsICAgKmw7CisKKwkvKiBkZWNvbnN0cnVjdCB0aGUgbmFtZSBsaXN0 ICovCisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lKG5hbWVzLCAmc2NoZW1hbmFtZSwgJmNt a25hbWUpOworCisJaWYgKHNjaGVtYW5hbWUpCisJeworCQkvKiB1c2UgZXhhY3Qgc2NoZW1h IGdpdmVuICovCisJCW5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2Uoc2No ZW1hbmFtZSwgbWlzc2luZ19vayk7CisJCWlmIChtaXNzaW5nX29rICYmICFPaWRJc1ZhbGlk KG5hbWVzcGFjZUlkKSkKKwkJCWNta29pZCA9IEludmFsaWRPaWQ7CisJCWVsc2UKKwkJCWNt a29pZCA9IEdldFN5c0NhY2hlT2lkMihDTUtOQU1FTlNQLCBBbnVtX3BnX2NvbG1hc3Rlcmtl eV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKGNta25hbWUpLAorCQkJCQkJCQkJ IE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwl9CisJZWxzZQorCXsKKwkJLyog c2VhcmNoIGZvciBpdCBpbiBzZWFyY2ggcGF0aCAqLworCQlyZWNvbXB1dGVOYW1lc3BhY2VQ YXRoKCk7CisKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQluYW1l c3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSBteVRl bXBOYW1lc3BhY2UpCisJCQkJY29udGludWU7CQkvKiBkbyBub3QgbG9vayBpbiB0ZW1wIG5h bWVzcGFjZSAqLworCisJCQljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDIoQ01LTkFNRU5TUCwg QW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShj bWtuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJ CQlpZiAoT2lkSXNWYWxpZChjbWtvaWQpKQorCQkJCXJldHVybiBjbWtvaWQ7CisJCX0KKwl9 CisKKwkvKiBOb3QgZm91bmQgaW4gcGF0aCAqLworCWlmICghT2lkSXNWYWxpZChjbWtvaWQp ICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkg XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMp KSkpOworCXJldHVybiBjbWtvaWQ7Cit9CisKKy8qCisgKiBDTUtJc1Zpc2libGUKKyAqCQlE ZXRlcm1pbmUgd2hldGhlciBhIENNSyAoaWRlbnRpZmllZCBieSBPSUQpIGlzIHZpc2libGUg aW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4gIFZpc2libGUgbWVhbnMgIndvdWxk IGJlIGZvdW5kIGJ5IHNlYXJjaGluZworICoJCWZvciB0aGUgdW5xdWFsaWZpZWQgcGFyc2Vy IG5hbWUiLgorICovCitib29sCitDTUtJc1Zpc2libGUoT2lkIGNta2lkKQoreworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ19jb2xtYXN0ZXJrZXkgZm9ybTsKKwlPaWQJCQluYW1lc3Bh Y2U7CisJYm9vbAkJdmlzaWJsZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQs IE9iamVjdElkR2V0RGF0dW0oY21raWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0 ZXIga2V5ICV1IiwgY21raWQpOworCWZvcm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdF VFNUUlVDVCh0dXApOworCisJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkg KiBRdWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4n dCB2aXNpYmxlLiBJdGVtcyBpbgorCSAqIHRoZSBzeXN0ZW0gbmFtZXNwYWNlIGFyZSBzdXJl bHkgaW4gdGhlIHBhdGggYW5kIHNvIHdlIG5lZWRuJ3QgZXZlbiBkbworCSAqIGxpc3RfbWVt YmVyX29pZCgpIGZvciB0aGVtLgorCSAqLworCW5hbWVzcGFjZSA9IGZvcm0tPmNta25hbWVz cGFjZTsKKwlpZiAobmFtZXNwYWNlICE9IFBHX0NBVEFMT0dfTkFNRVNQQUNFICYmCisJCSFs aXN0X21lbWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwgbmFtZXNwYWNlKSkKKwkJdmlzaWJs ZSA9IGZhbHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRo LCBpdCBtaWdodCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlk ZGVuIGJ5IGFub3RoZXIgcGFyc2VyIG9mIHRoZSBzYW1lIG5hbWUgZWFybGllciBpbiB0aGUg cGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9yIGNvbmZsaWN0aW5n IENNS3MuCisJCSAqLworCQljaGFyCSAgICpuYW1lID0gTmFtZVN0cihmb3JtLT5jbWtuYW1l KTsKKwkJTGlzdENlbGwgICAqbDsKKworCQl2aXNpYmxlID0gZmFsc2U7CisJCWZvcmVhY2go bCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJT2lkCQkJbmFtZXNwYWNlSWQgPSBsZmly c3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNwYWNlSWQgPT0gbXlUZW1wTmFtZXNwYWNlKQor CQkJCWNvbnRpbnVlOwkJLyogZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKwor CQkJaWYgKG5hbWVzcGFjZUlkID09IG5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBGb3VuZCBp dCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJ CQl9CisJCQlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKENNS05BTUVOU1AsCisJCQkJCQkJ CQkgIFBvaW50ZXJHZXREYXR1bShuYW1lKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bShuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJCS8qIEZvdW5kIHNvbWV0aGluZyBlbHNlIGZp cnN0IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VT eXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZpc2libGU7Cit9CisKIC8qCiAgKiBsb29rdXBf Y29sbGF0aW9uCiAgKgkJSWYgdGhlcmUncyBhIGNvbGxhdGlvbiBvZiB0aGUgZ2l2ZW4gbmFt ZS9uYW1lc3BhY2UsIGFuZCBpdCB3b3JrcwpAQCAtNDU2Nyw2ICs0ODE3LDI4IEBAIHBnX29w ZmFtaWx5X2lzX3Zpc2libGUoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQk9PTChP cGZhbWlseUlzVmlzaWJsZShvaWQpKTsKIH0KIAorRGF0dW0KK3BnX2Nla19pc192aXNpYmxl KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgwKTsK KworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1 bShvaWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKENFS0lz VmlzaWJsZShvaWQpKTsKK30KKworRGF0dW0KK3BnX2Nta19pc192aXNpYmxlKFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKworCWlmICgh U2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShvaWQpKSkK KwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKENNS0lzVmlzaWJsZShv aWQpKTsKK30KKwogRGF0dW0KIHBnX2NvbGxhdGlvbl9pc192aXNpYmxlKFBHX0ZVTkNUSU9O X0FSR1MpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJl c3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDJmNjg4 MTY2ZTEuLjZjNGFiOWFjNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j CkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf Y29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCkBAIC0x OTEsNiArMTk0LDQ4IEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0 UHJvcGVydHlbXSA9CiAJCU9CSkVDVF9DT0xMQVRJT04sCiAJCXRydWUKIAl9LAorCXsKKwkJ ImNvbHVtbiBlbmNyeXB0aW9uIGtleSIsCisJCUNvbHVtbkVuY0tleVJlbGF0aW9uSWQsCisJ CUNvbHVtbkVuY0tleU9pZEluZGV4SWQsCisJCUNFS09JRCwKKwkJQ0VLTkFNRU5TUCwKKwkJ QW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lLAor CQlBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lc3BhY2UsCisJCUFudW1fcGdfY29sZW5ja2V5 X2Nla293bmVyLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWthY2wsCisJCU9CSkVDVF9DRUss CisJCXRydWUKKwl9LAorCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiwKKwkJ Q29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRl eElkLAorCQlDRUtEQVRBT0lELAorCQktMSwKKwkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX29p ZCwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZh bGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQor CX0sCisJeworCQkiY29sdW1uIG1hc3RlciBrZXkiLAorCQlDb2x1bW5NYXN0ZXJLZXlSZWxh dGlvbklkLAorCQlDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQlDTUtPSUQsCisJCUNN S05BTUVOU1AsCisJCUFudW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJQW51bV9wZ19jb2xt YXN0ZXJrZXlfY21rbmFtZSwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZXNwYWNl LAorCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtvd25lciwKKwkJQW51bV9wZ19jb2xtYXN0 ZXJrZXlfY21rYWNsLAorCQlPQkpFQ1RfQ01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25z dHJhaW50IiwKIAkJQ29uc3RyYWludFJlbGF0aW9uSWQsCkBAIC03MjMsNiArNzY4LDE4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9u IiwgT0JKRUNUX0NPTExBVElPTgogCX0sCisJLyogT0NMQVNTX0NFSyAqLworCXsKKwkJImNv bHVtbiBlbmNyeXB0aW9uIGtleSIsIE9CSkVDVF9DRUsKKwl9LAorCS8qIE9DTEFTU19DRUtE QVRBICovCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLCBPQkpFQ1RfQ0VL REFUQQorCX0sCisJLyogT0NMQVNTX0NNSyAqLworCXsKKwkJImNvbHVtbiBtYXN0ZXIga2V5 IiwgT0JKRUNUX0NNSworCX0sCiAJLyogT0NMQVNTX0NPTlNUUkFJTlQgKi8KIAl7CiAJCSJ0 YWJsZSBjb25zdHJhaW50IiwgT0JKRUNUX1RBQkNPTlNUUkFJTlQKQEAgLTEwMjksNiArMTA4 NiwxNiBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpv YmplY3QsCiAJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCX0KIAkJCQlicmVh azsKKwkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5F bmNLZXlSZWxhdGlvbklkOworCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY2VrX29pZChj YXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlhZGRyZXNzLm9iamVj dFN1YklkID0gMDsKKwkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQlhZGRy ZXNzLmNsYXNzSWQgPSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOworCQkJCWFkZHJlc3Mu b2JqZWN0SWQgPSBnZXRfY21rX29pZChjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5n X29rKTsKKwkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQlicmVhazsKIAkJCWNh c2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJY2FzZSBPQkpFQ1RfRVhURU5TSU9OOgogCQkJY2Fz ZSBPQkpFQ1RfVEFCTEVTUEFDRToKQEAgLTExMDgsNiArMTE3NSwyMSBAQCBnZXRfb2JqZWN0 X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCWFkZHJl c3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNU X0NFS0RBVEE6CisJCQkJeworCQkJCQlMaXN0CSAgICpjZWtuYW1lID0gbGluaXRpYWxfbm9k ZShMaXN0LCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCQkJTGlzdAkgICAqY21rbmFt ZSA9IGxzZWNvbmRfbm9kZShMaXN0LCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCQkJ T2lkCQkJY2VraWQ7CisJCQkJCU9pZAkJCWNta2lkOworCisJCQkJCWNla2lkID0gZ2V0X2Nl a19vaWQoY2VrbmFtZSwgbWlzc2luZ19vayk7CisJCQkJCWNta2lkID0gZ2V0X2Nta19vaWQo Y21rbmFtZSwgbWlzc2luZ19vayk7CisKKwkJCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29sdW1u RW5jS2V5RGF0YVJlbGF0aW9uSWQ7CisJCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY2Vr ZGF0YV9vaWQoY2VraWQsIGNta2lkLCBtaXNzaW5nX29rKTsKKwkJCQkJYWRkcmVzcy5vYmpl Y3RTdWJJZCA9IDA7CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSBPQkpFQ1RfVFJBTlNG T1JNOgogCQkJCXsKIAkJCQkJVHlwZU5hbWUgICAqdHlwZW5hbWUgPSBsaW5pdGlhbF9ub2Rl KFR5cGVOYW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKQEAgLTIzMTEsNiArMjM5Myw4 IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9C SkVDVF9GT1JFSUdOX1RBQkxFOgogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JK RUNUX0FUVFJJQlVURToKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6 CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoK IAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKQEAgLTIzNjcsNiArMjQ1MSw3IEBAIHBn X2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJYnJlYWs7CiAJCWNh c2UgT0JKRUNUX0FNT1A6CiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKKwkJY2FzZSBPQkpFQ1Rf Q0VLREFUQToKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBsaXN0X21ha2UyKG5hbWUsIGFyZ3Mp OwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgpAQCAtMjQ4OSw2ICsyNTc0 LDggQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9i anR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xD SEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgc3RyVmFsKG9iamVjdCkpOwog CQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQlj YXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNh c2UgT0JKRUNUX09QQ0xBU1M6CkBAIC0yNTc1LDYgKzI2NjIsNyBAQCBjaGVja19vYmplY3Rf b3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVz cyBhZGRyZXNzLAogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FNT1A6CiAJCWNhc2UgT0JK RUNUX0FNUFJPQzoKKwkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfREVG QVVMVDoKIAkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElP Tl9OQU1FU1BBQ0U6CkBAIC0zMDQwLDYgKzMxMjgsOTIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRp b24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJ YnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJeworCQkJCUhlYXBUdXBs ZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXkgZm9ybTsKKwkJCQljaGFyCSAgICpuc3Bu YW1lOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwKKwkJCQkJCQkJCSAg T2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQll bG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24g a2V5ICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJ CX0KKworCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXApOwor CisJCQkJLyogUXVhbGlmeSB0aGUgbmFtZSBpZiBub3QgdmlzaWJsZSBpbiBzZWFyY2ggcGF0 aCAqLworCQkJCWlmIChDRUtJc1Zpc2libGUob2JqZWN0LT5vYmplY3RJZCkpCisJCQkJCW5z cG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdldF9uYW1lc3BhY2Vf bmFtZShmb3JtLT5jZWtuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVm ZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXMiKSwKKwkJCQkJCQkJIHF1b3RlX3F1 YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQlOYW1lU3RyKGZv cm0tPmNla25hbWUpKSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7 CisJCQl9CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsKKwkJCQlIZWFwVHVwbGUJ dHVwOworCQkJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBjZWtkYXRhOworCisJCQkJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKENFS0RBVEFPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5v YmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJ CQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwKKwkJCQkJCQkgb2Jq ZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWNla2RhdGEgPSAo Rm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWFwcGVuZFN0 cmluZ0luZm8oJmJ1ZmZlciwgXygiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgb2YgJXMg Zm9yICVzIiksCisJCQkJCQkJCSBnZXRPYmplY3REZXNjcmlwdGlvbigmKE9iamVjdEFkZHJl c3Mpe0NvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla2RhdGEtPmNrZGNla2lkfSwgZmFsc2Up LAorCQkJCQkJCQkgZ2V0T2JqZWN0RGVzY3JpcHRpb24oJihPYmplY3RBZGRyZXNzKXtDb2x1 bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjZWtkYXRhLT5ja2RjbWtpZH0sIGZhbHNlKSk7CisK KwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNl IE9DTEFTU19DTUs6CisJCQl7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX2Nv bG1hc3RlcmtleSBmb3JtOworCQkJCWNoYXIJICAgKm5zcG5hbWU7CisKKwkJCQl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoQ01LT0lELAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKG9i amVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJ CQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUiLAorCQkJCQkJCSBv YmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJZm9ybSA9IChG b3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQkvKiBRdWFsaWZ5 IHRoZSBuYW1lIGlmIG5vdCB2aXNpYmxlIGluIHNlYXJjaCBwYXRoICovCisJCQkJaWYgKENN S0lzVmlzaWJsZShvYmplY3QtPm9iamVjdElkKSkKKwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJ CQkJZWxzZQorCQkJCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKGZvcm0tPmNta25h bWVzcGFjZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBt YXN0ZXIga2V5ICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihu c3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cihmb3JtLT5jbWtuYW1lKSkpOworCQkJ CVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgT0NM QVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ0NDAs NiArNDYxNCwxOCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKCZidWZmZXIsICJjb2xsYXRpb24iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NMQVNT X0NFSzoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNy eXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhIik7CisJCQlicmVhazsKKworCQljYXNlIE9DTEFTU19DTUs6CisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gbWFzdGVyIGtleSIpOworCQkJYnJl YWs7CisKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJCWdldENvbnN0cmFpbnRUeXBl RGVzY3JpcHRpb24oJmJ1ZmZlciwgb2JqZWN0LT5vYmplY3RJZCwKIAkJCQkJCQkJCQkgbWlz c2luZ19vayk7CkBAIC00OTA1LDYgKzUwOTEsMTA4IEBAIGdldE9iamVjdElkZW50aXR5UGFy dHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCWJyZWFrOwogCQkJfQogCisJ CWNhc2UgT0NMQVNTX0NFSzoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1f cGdfY29sZW5ja2V5IGZvcm07CisJCQkJY2hhcgkgICAqc2NoZW1hOworCisJCQkJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVj dElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlp ZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmpl Y3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlmb3JtID0gKEZvcm1fcGdfY29sZW5j a2V5KSBHRVRTVFJVQ1QodHVwKTsKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNlX25hbWVf b3JfdGVtcChmb3JtLT5jZWtuYW1lc3BhY2UpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKHNj aGVtYSwKKwkJCQkJCQkJCQkJCQkJCQkgIE5hbWVTdHIoZm9ybS0+Y2VrbmFtZSkpKTsKKwkJ CQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVtYSwgcHN0 cmR1cChOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsK KwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBmb3JtOwor CisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS0RBVEFPSUQsIE9iamVjdElkR2V0RGF0 dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXAp KQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwK KwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlm b3JtID0gKEZvcm1fcGdfY29sZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJYXBw ZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkgIm9mICVzIGZvciAlcyIsCisJCQkJ CQkJCSBnZXRPYmplY3RJZGVudGl0eVBhcnRzKCYoT2JqZWN0QWRkcmVzcyl7Q29sdW1uRW5j S2V5UmVsYXRpb25JZCwgZm9ybS0+Y2tkY2VraWR9LCBOVUxMLCBOVUxMLCBmYWxzZSksCisJ CQkJCQkJCSBnZXRPYmplY3RJZGVudGl0eVBhcnRzKCYoT2JqZWN0QWRkcmVzcyl7Q29sdW1u TWFzdGVyS2V5UmVsYXRpb25JZCwgZm9ybS0+Y2tkY21raWR9LCBOVUxMLCBOVUxMLCBmYWxz ZSkpOworCisJCQkJaWYgKG9iam5hbWUpCisJCQkJeworCQkJCQlIZWFwVHVwbGUJdHVwMjsK KwkJCQkJRm9ybV9wZ19jb2xlbmNrZXkgZm9ybTI7CisJCQkJCWNoYXIJICAgKnNjaGVtYTsK KworCQkJCQl0dXAyID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1 bShmb3JtLT5ja2RjZWtpZCkpOworCQkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwMikp CisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5ICV1IiwgZm9ybS0+Y2tkY2VraWQpOworCQkJCQlmb3JtMiA9IChGb3Jt X3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cDIpOworCQkJCQlzY2hlbWEgPSBnZXRfbmFt ZXNwYWNlX25hbWVfb3JfdGVtcChmb3JtMi0+Y2VrbmFtZXNwYWNlKTsKKwkJCQkJKm9iam5h bWUgPSBsaXN0X21ha2UyKHNjaGVtYSwgcHN0cmR1cChOYW1lU3RyKGZvcm0yLT5jZWtuYW1l KSkpOworCQkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwMik7CisJCQkJfQorCQkJCWlmIChvYmph cmdzKQorCQkJCXsKKwkJCQkJSGVhcFR1cGxlCXR1cDI7CisJCQkJCUZvcm1fcGdfY29sbWFz dGVya2V5IGZvcm0yOworCQkJCQljaGFyCSAgICpzY2hlbWE7CisKKwkJCQkJdHVwMiA9IFNl YXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0oZm9ybS0+Y2tkY21raWQp KTsKKwkJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cDIpKQorCQkJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgZm9y bS0+Y2tkY21raWQpOworCQkJCQlmb3JtMiA9IChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VU U1RSVUNUKHR1cDIpOworCQkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVt cChmb3JtMi0+Y21rbmFtZXNwYWNlKTsKKwkJCQkJaWYgKG9iamFyZ3MpCisJCQkJCQkqb2Jq YXJncyA9IGxpc3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKE5hbWVTdHIoZm9ybTItPmNta25h bWUpKSk7CisJCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXAyKTsKKwkJCQl9CisJCQkJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBPQ0xBU1NfQ01L OgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xtYXN0ZXJrZXkg Zm9ybTsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNo ZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlp ZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19v aykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4g bWFzdGVyIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVh azsKKwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RSVUNU KHR1cCk7CisJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZm9ybS0+ Y21rbmFtZXNwYWNlKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJ CQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsCisJCQkJCQkJ CQkJCQkJCQkJICBOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7CisJCQkJaWYgKG9iam5hbWUp CisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHBzdHJkdXAoTmFtZVN0cihm b3JtLT5jbWtuYW1lKSkpOworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFr OworCQkJfQorCiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1 cGxlCWNvblR1cDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKaW5kZXggNDhmNzM0OGY5MS4uNjlm NjE3NWM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgT0JK UyA9IFwKIAlhbmFseXplLm8gXAogCWFzeW5jLm8gXAogCWNsdXN0ZXIubyBcCisJY29sZW5j Y21kcy5vIFwKIAljb2xsYXRpb25jbWRzLm8gXAogCWNvbW1lbnQubyBcCiAJY29uc3RyYWlu dC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IGJlYTUxYjNhZjEuLjU5YzIzZTllZjgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtMjIsNyArMjIsOSBAQAogI2luY2x1ZGUgImNh dGFsb2cvaW5kZXhpbmcuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xlbmNrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19ldmVudF90cmlnZ2VyLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3JhcHBlci5oIgpAQCAtMTE4LDYg KzEyMCwxMiBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25z dCBjaGFyICpuYW1lLCBPaWQgbnNwT2lkKQogCiAJc3dpdGNoIChjbGFzc0lkKQogCXsKKwkJ Y2FzZSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29w KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVt YSBcIiVzXCIiKTsKKwkJCWJyZWFrOworCQljYXNlIENvbHVtbk1hc3RlcktleVJlbGF0aW9u SWQ6CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNc IiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CisJCQlicmVhazsKIAkJY2Fz ZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkp OwogCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb252ZXJzaW9uIFwiJXNcIiBhbHJlYWR5 IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CkBAIC0zNzksNiArMzg3LDggQEAgRXhlY1Jl bmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJCXJldHVybiBSZW5hbWVUeXBlKHN0bXQp OwogCiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQlj YXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpF Q1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjoKQEAgLTUyNyw2 ICs1MzcsOCBAQCBFeGVjQWx0ZXJPYmplY3RTY2hlbWFTdG10KEFsdGVyT2JqZWN0U2NoZW1h U3RtdCAqc3RtdCwKIAogCQkJLyogZ2VuZXJpYyBjb2RlIHBhdGggKi8KIAkJY2FzZSBPQkpF Q1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoK IAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgog CQljYXNlIE9CSkVDVF9GVU5DVElPTjoKQEAgLTY0Myw2ICs2NTUsOSBAQCBBbHRlck9iamVj dE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAkJ CWJyZWFrOwogCiAJCWNhc2UgT0NMQVNTX0NBU1Q6CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJ Y2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFT U19DT05TVFJBSU5UOgogCQljYXNlIE9DTEFTU19ERUZBVUxUOgogCQljYXNlIE9DTEFTU19M QU5HVUFHRToKQEAgLTg3Niw2ICs4OTEsOCBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJP d25lclN0bXQgKnN0bXQpCiAKIAkJCS8qIEdlbmVyaWMgY2FzZXMgKi8KIAkJY2FzZSBPQkpF Q1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoK IAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgog CQljYXNlIE9CSkVDVF9GVU5DVElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbGVuY2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zYWRhNmQ1YWViCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCkBAIC0w LDAgKzEsNDM5IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNjbWRz LmMKKyAqCSAgY29sdW1uLWVuY3J5cHRpb24tcmVsYXRlZCBjb21tYW5kcyBzdXBwb3J0IGNv ZGUKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoK KyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2Nt ZHMuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdy ZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJh Y2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29i amVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb2xtYXN0ZXJrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgor I2luY2x1ZGUgImNvbW1hbmRzL2NvbGVuY2NtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9k YmNvbW1hbmRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAi Y29tbW9uL2NvbGVuYy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInV0 aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRp bHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKKworc3RhdGljIHZvaWQKK3BhcnNlX2Nla19hdHRyaWJ1dGVzKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZGVmaW5pdGlvbiwgT2lkICpjbWtvaWRfcCwgaW50 ICphbGdfcCwgY2hhciAqKmVuY3ZhbF9wKQoreworCUxpc3RDZWxsICAgKmxjOworCURlZkVs ZW0gICAgKmNta0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICphbGdFbCA9IE5VTEw7CisJRGVm RWxlbSAgICAqZW5jdmFsRWwgPSBOVUxMOworCU9pZAkJCWNta29pZCA9IEludmFsaWRPaWQ7 CisJaW50CQkJYWxnID0gMDsKKwljaGFyCSAgICplbmN2YWwgPSBOVUxMOworCisJQXNzZXJ0 KGNta29pZF9wKTsKKworCWZvcmVhY2gobGMsIGRlZmluaXRpb24pCisJeworCQlEZWZFbGVt ICAgICpkZWZlbCA9IGxmaXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoq ZGVmZWxwOworCisJCWlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJjb2x1bW5fbWFzdGVy X2tleSIpID09IDApCisJCQlkZWZlbHAgPSAmY21rRWw7CisJCWVsc2UgaWYgKHN0cmNtcChk ZWZlbC0+ZGVmbmFtZSwgImFsZ29yaXRobSIpID09IDApCisJCQlkZWZlbHAgPSAmYWxnRWw7 CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImVuY3J5cHRlZF92YWx1ZSIp ID09IDApCisJCQlkZWZlbHAgPSAmZW5jdmFsRWw7CisJCWVsc2UKKwkJeworCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkg ZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgYXR0cmlidXRlIFwiJXNcIiBub3QgcmVj b2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCQl9CisJCWlmICgqZGVmZWxw ICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsK KwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChjbWtFbCkKKwl7CisJCUxpc3QJICAg KnZhbCA9IGRlZkdldFF1YWxpZmllZE5hbWUoY21rRWwpOworCisJCWNta29pZCA9IGdldF9j bWtfb2lkKHZhbCwgZmFsc2UpOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2coImF0dHJpYnV0 ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJImNvbHVtbl9tYXN0ZXJfa2V5 IikpKTsKKworCWlmIChhbGdFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9IGRlZkdldFN0cmlu ZyhhbGdFbCk7CisKKwkJaWYgKCFhbGdfcCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRl IFwiJXNcIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJhbGdvcml0aG0iKSkp OworCisJCWFsZyA9IGdldF9jbWthbGdfbnVtKHZhbCk7CisJCWlmICghYWxnKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKKwkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06 ICVzIiwgdmFsKSk7CisJfQorCWVsc2UKKwl7CisJCWlmIChhbGdfcCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVy cm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJImFs Z29yaXRobSIpKSk7CisJfQorCisJaWYgKGVuY3ZhbEVsKQorCXsKKwkJaWYgKCFlbmN2YWxf cCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VS Uk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IG5vdCBiZSBzcGVj aWZpZWQiLAorCQkJCQkJCSJlbmNyeXB0ZWRfdmFsdWUiKSkpOworCisJCWVuY3ZhbCA9IGRl ZkdldFN0cmluZyhlbmN2YWxFbCk7CisJfQorCWVsc2UKKwl7CisJCWlmIChlbmN2YWxfcCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIs CisJCQkJCQkJImVuY3J5cHRlZF92YWx1ZSIpKSk7CisJfQorCisJKmNta29pZF9wID0gY21r b2lkOworCWlmIChhbGdfcCkKKwkJKmFsZ19wID0gYWxnOworCWlmIChlbmN2YWxfcCkKKwkJ KmVuY3ZhbF9wID0gZW5jdmFsOworfQorCitzdGF0aWMgdm9pZAoraW5zZXJ0X2Nla2RhdGFf cmVjb3JkKE9pZCBjZWtvaWQsIE9pZCBjbWtvaWQsIGludCBhbGcsIGNoYXIgKmVuY3ZhbCkK K3sKKwlPaWQJCQljZWtkYXRhb2lkOworCVJlbGF0aW9uCXJlbDsKKwlEYXR1bQkJdmFsdWVz W05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3Bn X2NvbGVuY2tleWRhdGFdID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisJT2JqZWN0QWRkcmVz cyBteXNlbGY7CisJT2JqZWN0QWRkcmVzcyBvdGhlcjsKKworCXJlbCA9IHRhYmxlX29wZW4o Q29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJY2Vr ZGF0YW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVtbkVuY0tleURhdGFPaWRJ bmRleElkLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19j b2xlbmNrZXlkYXRhX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjZWtkYXRhb2lkKTsK Kwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNla2lkIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2Rj bWtpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpOworCXZhbHVlc1tBbnVtX3Bn X2NvbGVuY2tleWRhdGFfY2tkY21rYWxnIC0gMV0gPSBJbnQzMkdldERhdHVtKGFsZyk7CisJ dmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RlbmN2YWwgLSAxXSA9IERpcmVjdEZ1 bmN0aW9uQ2FsbDEoYnl0ZWFpbiwgQ1N0cmluZ0dldERhdHVtKGVuY3ZhbCkpOworCisJdHVw ID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxs cyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0 dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbkVuY0tleURhdGFSZWxh dGlvbklkLCBjZWtkYXRhb2lkKTsKKworCS8qIGRlcGVuZGVuY3kgY2VrZGF0YSAtPiBjZWsg Ki8KKwlPYmplY3RBZGRyZXNzU2V0KG90aGVyLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBj ZWtvaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmb3RoZXIsIERFUEVOREVO Q1lfQVVUTyk7CisKKwkvKiBkZXBlbmRlbmN5IGNla2RhdGEgLT4gY21rICovCisJT2JqZWN0 QWRkcmVzc1NldChvdGhlciwgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkKTsK KwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJm90aGVyLCBERVBFTkRFTkNZX05PUk1B TCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7Cit9CisKK09iamVjdEFkZHJlc3MK K0NyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQpCit7CisJ T2lkCQkJbmFtZXNwYWNlSWQ7CisJY2hhcgkgICAqY2VrbmFtZXN0cjsKKwlBY2xSZXN1bHQJ YWNscmVzdWx0OworCVJlbGF0aW9uCXJlbDsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlP aWQJCQljZWtvaWQ7CisJTGlzdENlbGwgICAqbGM7CisJTmFtZURhdGEJY2VrbmFtZTsKKwlE YXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJYm9vbAkJbnVsbHNb TmF0dHNfcGdfY29sZW5ja2V5XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCisJbmFtZXNw YWNlSWQgPSBRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+ZGVmbmFt ZXMsICZjZWtuYW1lc3RyKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhOYW1l c3BhY2VSZWxhdGlvbklkLCBuYW1lc3BhY2VJZCwgR2V0VXNlcklkKCksIEFDTF9DUkVBVEUp OworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFj bHJlc3VsdCwgT0JKRUNUX1NDSEVNQSwgZ2V0X25hbWVzcGFjZV9uYW1lKG5hbWVzcGFjZUlk KSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIFJvd0V4 Y2x1c2l2ZUxvY2spOworCisJaWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihDRUtOQU1FTlNQ LCBQb2ludGVyR2V0RGF0dW0oY2VrbmFtZXN0ciksIE9iamVjdElkR2V0RGF0dW0obmFtZXNw YWNlSWQpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRFVQTElD QVRFX09CSkVDVCksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wi IGFscmVhZHkgZXhpc3RzIiwgY2VrbmFtZXN0cikpOworCisJY2Vrb2lkID0gR2V0TmV3T2lk V2l0aEluZGV4KHJlbCwgQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNr ZXlfb2lkKTsKKworCWZvcmVhY2ggKGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsKKwkJTGlz dAkgICAqZGVmaW5pdGlvbiA9IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJT2lkCQkJY21r b2lkID0gMDsKKwkJaW50CQkJYWxnOworCQljaGFyCSAgICplbmN2YWw7CisKKwkJcGFyc2Vf Y2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBkZWZpbml0aW9uLCAmY21rb2lkLCAmYWxnLCAmZW5j dmFsKTsKKworCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soQ29sdW1uTWFzdGVyS2V5 UmVsYXRpb25JZCwgY21rb2lkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdFKTsKKwkJaWYgKGFj bHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwg T0JKRUNUX0NNSywgZ2V0X2Nta19uYW1lKGNta29pZCwgZmFsc2UpKTsKKworCQkvKiBwZ19j b2xlbmNrZXlkYXRhICovCisJCWluc2VydF9jZWtkYXRhX3JlY29yZChjZWtvaWQsIGNta29p ZCwgYWxnLCBlbmN2YWwpOworCX0KKworCS8qIHBnX2NvbGVuY2tleSAqLworCW5hbWVzdHJj cHkoJmNla25hbWUsIGNla25hbWVzdHIpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9v aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19j b2xlbmNrZXlfY2VrbmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZjZWtuYW1lKTsKKwl2YWx1 ZXNbQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKG5hbWVzcGFjZUlkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfY2Vrb3duZXIg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOworCW51bGxzW0FudW1fcGdf Y29sZW5ja2V5X2Nla2FjbCAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBs ZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBs ZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCU9iamVjdEFk ZHJlc3NTZXQobXlzZWxmLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQpOworCXJl Y29yZERlcGVuZGVuY3lPbk93bmVyKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla29pZCwg R2V0VXNlcklkKCkpOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsK KworCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKENvbHVtbkVuY0tleVJlbGF0aW9uSWQs IGNla29pZCwgMCk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCitPYmplY3RBZGRyZXNzCitB bHRlckNvbHVtbkVuY3J5cHRpb25LZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckNvbHVt bkVuY3J5cHRpb25LZXlTdG10ICpzdG10KQoreworCU9pZAkJCWNla29pZDsKKwlPYmplY3RB ZGRyZXNzIGFkZHJlc3M7CisKKwljZWtvaWQgPSBnZXRfY2VrX29pZChzdG10LT5jZWtuYW1l LCBmYWxzZSk7CisKKwlpZiAoIW9iamVjdF9vd25lcmNoZWNrKENvbHVtbkVuY0tleVJlbGF0 aW9uSWQsIGNla29pZCwgR2V0VXNlcklkKCkpKQorCQlhY2xjaGVja19lcnJvcihBQ0xDSEVD S19OT1RfT1dORVIsIE9CSkVDVF9DRUssIE5hbWVMaXN0VG9TdHJpbmcoc3RtdC0+Y2VrbmFt ZSkpOworCisJaWYgKHN0bXQtPmlzRHJvcCkKKwl7CisJCU9pZAkJCWNta29pZCA9IDA7CisJ CU9pZAkJCWNla2RhdGFvaWQ7CisJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCXBhcnNlX2Nl a19hdHRyaWJ1dGVzKHBzdGF0ZSwgc3RtdC0+ZGVmaW5pdGlvbiwgJmNta29pZCwgTlVMTCwg TlVMTCk7CisJCWNla2RhdGFvaWQgPSBnZXRfY2VrZGF0YV9vaWQoY2Vrb2lkLCBjbWtvaWQs IGZhbHNlKTsKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIENvbHVtbkVuY0tleURhdGFSZWxh dGlvbklkLCBjZWtkYXRhb2lkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmosIERST1BfQ0FT Q0FERSwgMCk7CisJfQorCWVsc2UKKwl7CisJCU9pZAkJCWNta29pZCA9IDA7CisJCWludAkJ CWFsZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCQlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJ CXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0ZSwgc3RtdC0+ZGVmaW5pdGlvbiwgJmNta29p ZCwgJmFsZywgJmVuY3ZhbCk7CisKKwkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENv bHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklkKCksIEFDTF9VU0FH RSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlhY2xjaGVja19lcnJv cihhY2xyZXN1bHQsIE9CSkVDVF9DTUssIGdldF9jbWtfbmFtZShjbWtvaWQsIGZhbHNlKSk7 CisKKwkJaWYgKGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNta29pZCwgdHJ1ZSkpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCks CisJCQkJCWVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBhbHJlYWR5IGhh cyBkYXRhIGZvciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQkgICBOYW1lTGlzdFRvU3Ry aW5nKHN0bXQtPmNla25hbWUpLCBnZXRfY21rX25hbWUoY21rb2lkLCBmYWxzZSkpKTsKKwkJ aW5zZXJ0X2Nla2RhdGFfcmVjb3JkKGNla29pZCwgY21rb2lkLCBhbGcsIGVuY3ZhbCk7CisJ fQorCisJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhDb2x1bW5FbmNLZXlSZWxhdGlvbklk LCBjZWtvaWQsIDApOworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgQ29sdW1uRW5jS2V5 UmVsYXRpb25JZCwgY2Vrb2lkKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCitPYmplY3RB ZGRyZXNzCitDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10 KQoreworCU9pZAkJCW5hbWVzcGFjZUlkOworCWNoYXIJICAgKmNta25hbWVzdHI7CisJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKwlSZWxhdGlvbglyZWw7CisJT2JqZWN0QWRkcmVzcyBteXNl bGY7CisJT2lkCQkJY21rb2lkOworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0gICAgKnJl YWxtRWwgPSBOVUxMOworCWNoYXIJICAgKnJlYWxtOworCU5hbWVEYXRhCWNta25hbWU7CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJvb2wJCW51 bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJSGVhcFR1cGxlCXR1cDsKKwor CW5hbWVzcGFjZUlkID0gUXVhbGlmaWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKHN0bXQt PmRlZm5hbWVzLCAmY21rbmFtZXN0cik7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soTmFtZXNwYWNlUmVsYXRpb25JZCwgbmFtZXNwYWNlSWQsIEdldFVzZXJJZCgpLCBBQ0xf Q1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19l cnJvcihhY2xyZXN1bHQsIE9CSkVDVF9TQ0hFTUEsIGdldF9uYW1lc3BhY2VfbmFtZShuYW1l c3BhY2VJZCkpOworCisJcmVsID0gdGFibGVfb3BlbihDb2x1bW5NYXN0ZXJLZXlSZWxhdGlv bklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIo Q01LTkFNRU5TUCwgUG9pbnRlckdldERhdHVtKGNta25hbWVzdHIpLCBPYmplY3RJZEdldERh dHVtKG5hbWVzcGFjZUlkKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCWVycm1zZygiY29sdW1uIG1hc3RlciBrZXkg XCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgY21rbmFtZXN0cikpOworCisJZm9yZWFjaChsYywg c3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25v ZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFsbUVs OworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgYXR0 cmlidXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUp LAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkp OworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVm RWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChy ZWFsbUVsKQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVsKTsKKwllbHNlCisJCXJl YWxtID0gIiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5N YXN0ZXJLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQpOworCW5hbWVz dHJjcHkoJmNta25hbWUsIGNta25hbWVzdHIpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3Rl cmtleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lkKTsKKwl2YWx1ZXNbQW51 bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZjbWtuYW1l KTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZXNwYWNlIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0 ZXJrZXlfY21rb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOwor CXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0gQ1N0cmluZ0dl dFRleHREYXR1bShyZWFsbSk7CisJbnVsbHNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rYWNs IC0gMV0gPSB0cnVlOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVz Y3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVw KTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIo Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkLCBHZXRVc2VySWQoKSk7CisKKwlP YmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21r b2lkKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZv a2VPYmplY3RQb3N0Q3JlYXRlSG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtv aWQsIDApOworCisJcmV0dXJuIG15c2VsZjsKK30KKworT2JqZWN0QWRkcmVzcworQWx0ZXJD b2x1bW5NYXN0ZXJLZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckNvbHVtbk1hc3Rlcktl eVN0bXQgKnN0bXQpCit7CisJT2lkCQkJY21rb2lkOworCVJlbGF0aW9uCXJlbDsKKwlIZWFw VHVwbGUJdHVwOworCUhlYXBUdXBsZQluZXd0dXA7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNz OworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0gICAgKnJlYWxtRWwgPSBOVUxMOworCURh dHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sbWFzdGVya2V5XSA9IHswfTsKKwlib29sCQludWxs c1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJvb2wJCXJlcGxhY2VzW05hdHRz X3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisKKwljbWtvaWQgPSBnZXRfY21rX29pZChzdG10 LT5jbWtuYW1lLCBmYWxzZSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbk1hc3Rlcktl eVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpKTsKKworCWlmICghSGVhcFR1 cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBm b3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLCBjbWtvaWQpOworCisJaWYgKCFvYmplY3Rfb3du ZXJjaGVjayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIEdldFVzZXJJZCgp KSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfQ01LLCBO YW1lTGlzdFRvU3RyaW5nKHN0bXQtPmNta25hbWUpKTsKKworCWZvcmVhY2gobGMsIHN0bXQt PmRlZmluaXRpb24pCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxmaXJzdF9ub2RlKERl ZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlmIChzdHJjbXAoZGVm ZWwtPmRlZm5hbWUsICJyZWFsbSIpID09IDApCisJCQlkZWZlbHAgPSAmcmVhbG1FbDsKKwkJ ZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IGF0dHJpYnV0 ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJ fQorCQlpZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0o ZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAocmVhbG1F bCkKKwl7CisJCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0g Q1N0cmluZ0dldFRleHREYXR1bShkZWZHZXRTdHJpbmcocmVhbG1FbCkpOworCQlyZXBsYWNl c1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0gdHJ1ZTsKKwl9CisKKwlu ZXd0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwg dmFsdWVzLCBudWxscywgcmVwbGFjZXMpOworCisJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwg JnR1cC0+dF9zZWxmLCBuZXd0dXApOworCisJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhD b2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJT2JqZWN0QWRkcmVz c1NldChhZGRyZXNzLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQpOworCisJ aGVhcF9mcmVldHVwbGUobmV3dHVwKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXRh YmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gYWRkcmVzczsK K30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9jcmVhdGVhcy5jCmluZGV4IGQ2YzZkNTE0ZjMuLjk2ODViNzg4 NmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvY3JlYXRlYXMuYwpAQCAtNTAsNiArNTAsNyBAQAogI2lu Y2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3Jscy5oIgogI2luY2x1ZGUg InV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiB0eXBl ZGVmIHN0cnVjdAogewpAQCAtMjA1LDYgKzIwNiwyNiBAQCBjcmVhdGVfY3Rhc19ub2RhdGEo TGlzdCAqdGxpc3QsIEludG9DbGF1c2UgKmludG8pCiAJCQkJCQkJCWZvcm1hdF90eXBlX2Jl KGNvbC0+dHlwZU5hbWUtPnR5cGVPaWQpKSwKIAkJCQkJCSBlcnJoaW50KCJVc2UgdGhlIENP TExBVEUgY2xhdXNlIHRvIHNldCB0aGUgY29sbGF0aW9uIGV4cGxpY2l0bHkuIikpKTsKIAor CQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKGV4cHJUeXBlKChOb2RlICopIHRsZS0+ZXhwcikp KQorCQkJeworCQkJCUhlYXBUdXBsZQl0cDsKKwkJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmln X2F0dDsKKworCQkJCWlmICghdGxlLT5yZXNvcmlndGJsIHx8ICF0bGUtPnJlc29yaWdjb2wp CisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf T0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCWVycm1zZygidW5kZXJseWluZyB0YWJsZSBh bmQgY29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGZvciBlbmNyeXB0ZWQgdGFibGUg Y29sdW1uIikpOworCisJCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJ ZEdldERhdHVtKHRsZS0+cmVzb3JpZ3RibCksIEludDE2R2V0RGF0dW0odGxlLT5yZXNvcmln Y29sKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAl dSIsIHRsZS0+cmVzb3JpZ2NvbCwgdGxlLT5yZXNvcmlndGJsKTsKKwkJCQlvcmlnX2F0dCA9 IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCQljb2wtPnR5cGVOYW1l ID0gbWFrZVR5cGVOYW1lRnJvbU9pZChvcmlnX2F0dC0+YXR0dXNlcnR5cGlkLAorCQkJCQkJ CQkJCQkJCW9yaWdfYXR0LT5hdHR1c2VydHlwbW9kKTsKKwkJCQljb2wtPmVuY3J5cHRpb24g PSBtYWtlQ29sdW1uRW5jcnlwdGlvbihvcmlnX2F0dCk7CisJCQkJUmVsZWFzZVN5c0NhY2hl KHRwKTsKKwkJCX0KKwogCQkJYXR0ckxpc3QgPSBsYXBwZW5kKGF0dHJMaXN0LCBjb2wpOwog CQl9CiAJfQpAQCAtNTE0LDYgKzUzNSwxNyBAQCBpbnRvcmVsX3N0YXJ0dXAoRGVzdFJlY2Vp dmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCiAJCQkJCQkJ Zm9ybWF0X3R5cGVfYmUoY29sLT50eXBlTmFtZS0+dHlwZU9pZCkpLAogCQkJCQkgZXJyaGlu dCgiVXNlIHRoZSBDT0xMQVRFIGNsYXVzZSB0byBzZXQgdGhlIGNvbGxhdGlvbiBleHBsaWNp dGx5LiIpKSk7CiAKKwkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKGF0dHJpYnV0ZS0+YXR0dHlw aWQpKQorCQl7CisJCQkvKgorCQkJICogV2UgZG9uJ3QgaGF2ZSB0aGUgcmVxdWlyZWQgaW5m b3JtYXRpb24gYXZhaWxhYmxlIGhlcmUsIHNvCisJCQkgKiBwcmV2ZW50IGl0IGZvciBub3cu CisJCQkgKi8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiZW5jcnlwdGVkIGNvbHVtbnMg bm90IHlldCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBjb21tYW5kIikpKTsKKwkJfQorCiAJCWF0 dHJMaXN0ID0gbGFwcGVuZChhdHRyTGlzdCwgY29sKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rp c2NhcmQuYwppbmRleCAyOTZkYzgyZDJlLi44NmQyMmNhMDY1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZGlzY2FyZC5jCkBAIC0xMyw2ICsxMyw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5o IgogCisjaW5jbHVkZSAiYWNjZXNzL3ByaW50dHVwLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hh Y3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2FzeW5jLmgiCkBAIC0yNSw3ICsyNiw3IEBACiBzdGF0aWMgdm9pZCBEaXNjYXJkQWxs KGJvb2wgaXNUb3BMZXZlbCk7CiAKIC8qCi0gKiBESVNDQVJEIHsgQUxMIHwgU0VRVUVOQ0VT IHwgVEVNUCB8IFBMQU5TIH0KKyAqIERJU0NBUkQKICAqLwogdm9pZAogRGlzY2FyZENvbW1h bmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKQEAgLTM2LDYgKzM3LDEw IEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwp CiAJCQlEaXNjYXJkQWxsKGlzVG9wTGV2ZWwpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBESVND QVJEX0NPTFVNTl9FTkNSWVBUSU9OX0tFWVM6CisJCQlEaXNjYXJkQ29sdW1uRW5jcnlwdGlv bktleXMoKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgRElTQ0FSRF9QTEFOUzoKIAkJCVJlc2V0 UGxhbkNhY2hlKCk7CiAJCQlicmVhazsKQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChi b29sIGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5h bWVzcGFjZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlEaXNjYXJkQ29sdW1uRW5j cnlwdGlvbktleXMoKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ry b3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDgyYmRh MTU4ODkuLmI0YzY4MTAwNWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ry b3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtMjc2 LDYgKzI3NiwyMCBAQCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5 cGUsIE5vZGUgKm9iamVjdCkKIAkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9k ZShMaXN0LCBvYmplY3QpKTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUs6 CisJCQlpZiAoIXNjaGVtYV9kb2VzX25vdF9leGlzdF9za2lwcGluZyhjYXN0Tm9kZShMaXN0 LCBvYmplY3QpLCAmbXNnLCAmbmFtZSkpCisJCQl7CisJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZyIpOworCQkJCW5hbWUgPSBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVj dCkpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCWlmICghc2No ZW1hX2RvZXNfbm90X2V4aXN0X3NraXBwaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCksICZt c2csICZuYW1lKSkKKwkJCXsKKwkJCQltc2cgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0 ZXIga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCQluYW1lID0g TmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCX0KKwkJCWJy ZWFrOwogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQkJaWYgKCFzY2hlbWFfZG9lc19u b3RfZXhpc3Rfc2tpcHBpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgJm1zZywgJm5hbWUp KQogCQkJewpAQCAtNTAzLDYgKzUxNyw3IEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9i amVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQljYXNlIE9CSkVDVF9BTU9QOgog CQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKKwkJY2Fz ZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJY2FzZSBPQkpF Q1RfREVGQUNMOgogCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGQ0YjAwZDFhODIuLjRjMTYyOGNmN2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEsOSBA QCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUpCiAJ CWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNl IE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RB VEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNl IE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0xMDI3 LDYgKzEwMzAsOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVjdENs YXNzIG9iamNsYXNzKQogCQljYXNlIE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19DQVNU OgogCQljYXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2Fz ZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19D T05TVFJBSU5UOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFTU19E RUZBVUxUOgpAQCAtMjA1Niw2ICsyMDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUo T2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JK RUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VL OgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2Ug T0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBP QkpFQ1RfREVGQVVMVDoKQEAgLTIxMzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVmcHJp dnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoK IAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNl IE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NN SzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9O OgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApp bmRleCA0MmNjZWQ5ZWJlLi40YjVhYzMwNDQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZApAQCAtNyw2ICs3LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnYW5h bHl6ZS5jJywKICAgJ2FzeW5jLmMnLAogICAnY2x1c3Rlci5jJywKKyAgJ2NvbGVuY2NtZHMu YycsCiAgICdjb2xsYXRpb25jbWRzLmMnLAogICAnY29tbWVudC5jJywKICAgJ2NvbnN0cmFp bnQuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA3ZmYxNmUzMjc2Li45M2Q2 MWM5NmFkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTY2LDYgKzY2LDkgQEAg U2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNl IE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpF Q1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgor CQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBP QkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMKaW5kZXggNjJkOTkxN2NhMy4uYzMwYjU5MjY1YiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZXBlbmQuaCIK QEAgLTYxLDYgKzYyLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdHlwZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy91c2VyLmgi CisjaW5jbHVkZSAiY29tbW9uL2NvbGVuYy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNsdWRlICJmb3JlaWdu L2ZvcmVpZ24uaCIKQEAgLTYzNyw2ICs2MzksNyBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50 ZWRGb3JlaWduS2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVRE ZXRhY2hDaGVja05vRm9yZWlnbktleVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRp YyBjaGFyIEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKE9pZCBhdHR0eXBpZCwgY2hhciAqY29t cHJlc3Npb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlw aWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2RlKTsKK3N0YXRpYyB2b2lkIEdldENvbHVtbkVu Y3J5cHRpb24oY29uc3QgTGlzdCAqY29sZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRyaWJ1 dGUgYXR0cik7CiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTM2LDYgKzkzOSwxNiBAQCBEZWZp bmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklk LAogCQkJYXR0ci0+YXR0Y29tcHJlc3Npb24gPSBHZXRBdHRyaWJ1dGVDb21wcmVzc2lvbihh dHRyLT5hdHR0eXBpZCwKIAkJCQkJCQkJCQkJCQkJICAgY29sRGVmLT5jb21wcmVzc2lvbik7 CiAKKwkJaWYgKGNvbERlZi0+ZW5jcnlwdGlvbikKKwkJeworCQkJQWNsUmVzdWx0CWFjbHJl c3VsdDsKKworCQkJR2V0Q29sdW1uRW5jcnlwdGlvbihjb2xEZWYtPmVuY3J5cHRpb24sIGF0 dHIpOworCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbkVuY0tleVJlbGF0 aW9uSWQsIGF0dHItPmF0dGNlaywgR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJCQlpZiAo YWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3Vs dCwgT0JKRUNUX0NFSywgZ2V0X2Nla19uYW1lKGF0dHItPmF0dGNlaywgZmFsc2UpKTsKKwkJ fQorCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2VfbmFtZSkKIAkJCWF0dHItPmF0dHN0b3JhZ2Ug PSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHItPmF0dHR5cGlkLCBjb2xEZWYtPnN0b3JhZ2Vf bmFtZSk7CiAJfQpAQCAtMjU2MiwxMyArMjU3NSw0MyBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlz dCAqc2NoZW1hLCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJT2lk CQkJZGVmQ29sbElkOwogCiAJCQkJLyoKLQkJCQkgKiBZZXMsIHRyeSB0byBtZXJnZSB0aGUg dHdvIGNvbHVtbiBkZWZpbml0aW9ucy4gVGhleSBtdXN0Ci0JCQkJICogaGF2ZSB0aGUgc2Ft ZSB0eXBlLCB0eXBtb2QsIGFuZCBjb2xsYXRpb24uCisJCQkJICogWWVzLCB0cnkgdG8gbWVy Z2UgdGhlIHR3byBjb2x1bW4gZGVmaW5pdGlvbnMuCiAJCQkJICovCiAJCQkJZXJlcG9ydChO T1RJQ0UsCiAJCQkJCQkoZXJybXNnKCJtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZp bml0aW9ucyBvZiBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCQkJYXR0cmlidXRlTmFtZSkpKTsK IAkJCQlkZWYgPSAoQ29sdW1uRGVmICopIGxpc3RfbnRoKGluaFNjaGVtYSwgZXhpc3RfYXR0 bm8gLSAxKTsKKworCQkJCS8qCisJCQkJICogQ2hlY2sgZW5jcnlwdGlvbiBwYXJhbWV0ZXIu ICBBbGwgcGFyZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUKKwkJCQkgKiBlbmNyeXB0aW9uIHNl dHRpbmdzIGZvciBhIGNvbHVtbi4KKwkJCQkgKi8KKwkJCQlpZiAoKGRlZi0+ZW5jcnlwdGlv biAmJiAhYXR0cmlidXRlLT5hdHRjZWspIHx8CisJCQkJCSghZGVmLT5lbmNyeXB0aW9uICYm IGF0dHJpYnV0ZS0+YXR0Y2VrKSkKKwkJCQl7CisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBoYXMgYW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZs aWN0IiwKKwkJCQkJCQkJCWF0dHJpYnV0ZU5hbWUpKSk7CisJCQkJfQorCQkJCWVsc2UgaWYg KGRlZi0+ZW5jcnlwdGlvbiAmJiBhdHRyaWJ1dGUtPmF0dGNlaykKKwkJCQl7CisJCQkJCS8q CisJCQkJCSAqIE1lcmdpbmcgdGhlIGVuY3J5cHRpb24gcHJvcGVydGllcyBvZiB0d28gZW5j cnlwdGVkCisJCQkJCSAqIHBhcmVudCBjb2x1bW5zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQu ICBSaWdodCBub3csIHRoaXMKKwkJCQkJICogd291bGQgY29uZnVzZSB0aGUgY2hlY2tzIG9m IHRoZSB0eXBlIGV0Yy4gYmVsb3cgKHdlCisJCQkJCSAqIG11c3QgY2hlY2sgdGhlIHBoeXNp Y2FsIGFuZCB0aGUgcmVhbCB0eXBlcyBhZ2FpbnN0IGVhY2gKKwkJCQkJICogb3RoZXIsIHJl c3BlY3RpdmVseSksIHdoaWNoIG1pZ2h0IHJlcXVpcmUgYSBsYXJnZXIKKwkJCQkJICogcmVz dHJ1Y3R1cmluZy4gIEZvciBub3csIGp1c3QgZ2l2ZSB1cCBoZXJlLgorCQkJCQkgKi8KKwkJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygibXVsdGlwbGUgaW5oZXJpdGFuY2Ugb2Yg ZW5jcnlwdGVkIGNvbHVtbnMgaXMgbm90IGltcGxlbWVudGVkIikpKTsKKwkJCQl9CisKKwkJ CQkvKgorCQkJCSAqIE11c3QgaGF2ZSB0aGUgc2FtZSB0eXBlLCB0eXBtb2QsIGFuZCBjb2xs YXRpb24uCisJCQkJICovCiAJCQkJdHlwZW5hbWVUeXBlSWRBbmRNb2QoTlVMTCwgZGVmLT50 eXBlTmFtZSwgJmRlZlR5cGVJZCwgJmRlZnR5cG1vZCk7CiAJCQkJaWYgKGRlZlR5cGVJZCAh PSBhdHRyaWJ1dGUtPmF0dHR5cGlkIHx8CiAJCQkJCWRlZnR5cG1vZCAhPSBhdHRyaWJ1dGUt PmF0dHR5cG1vZCkKQEAgLTI2NDEsNiArMjY4NCwxMiBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlz dCAqc2NoZW1hLCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJZGVm LT5jb2xuYW1lID0gcHN0cmR1cChhdHRyaWJ1dGVOYW1lKTsKIAkJCQlkZWYtPnR5cGVOYW1l ID0gbWFrZVR5cGVOYW1lRnJvbU9pZChhdHRyaWJ1dGUtPmF0dHR5cGlkLAogCQkJCQkJCQkJ CQkJCWF0dHJpYnV0ZS0+YXR0dHlwbW9kKTsKKwkJCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQo YXR0cmlidXRlLT5hdHR0eXBpZCkpCisJCQkJeworCQkJCQlkZWYtPnR5cGVOYW1lID0gbWFr ZVR5cGVOYW1lRnJvbU9pZChhdHRyaWJ1dGUtPmF0dHVzZXJ0eXBpZCwKKwkJCQkJCQkJCQkJ CQkJYXR0cmlidXRlLT5hdHR1c2VydHlwbW9kKTsKKwkJCQkJZGVmLT5lbmNyeXB0aW9uID0g bWFrZUNvbHVtbkVuY3J5cHRpb24oYXR0cmlidXRlKTsKKwkJCQl9CiAJCQkJZGVmLT5pbmhj b3VudCA9IDE7CiAJCQkJZGVmLT5pc19sb2NhbCA9IGZhbHNlOwogCQkJCWRlZi0+aXNfbm90 X251bGwgPSBhdHRyaWJ1dGUtPmF0dG5vdG51bGw7CkBAIC0yOTE5LDYgKzI5NjgsMzQgQEAg TWVyZ2VBdHRyaWJ1dGVzKExpc3QgKnNjaGVtYSwgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBl cnNpc3RlbmNlLAogCQkJCQkJCQkgZXJyZGV0YWlsKCIlcyB2ZXJzdXMgJXMiLCBkZWYtPmNv bXByZXNzaW9uLCBuZXdkZWYtPmNvbXByZXNzaW9uKSkpOwogCQkJCX0KIAorCQkJCS8qCisJ CQkJICogQ2hlY2sgZW5jcnlwdGlvbiBwYXJhbWV0ZXIuICBBbGwgcGFyZW50cyBhbmQgY2hp bGRyZW4gbXVzdAorCQkJCSAqIGhhdmUgdGhlIHNhbWUgZW5jcnlwdGlvbiBzZXR0aW5ncyBm b3IgYSBjb2x1bW4uCisJCQkJICovCisJCQkJaWYgKChkZWYtPmVuY3J5cHRpb24gJiYgIW5l d2RlZi0+ZW5jcnlwdGlvbikgfHwKKwkJCQkJKCFkZWYtPmVuY3J5cHRpb24gJiYgbmV3ZGVm LT5lbmNyeXB0aW9uKSkKKwkJCQl7CisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCQkJIGVycm1zZygiY29s dW1uIFwiJXNcIiBoYXMgYW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0IiwK KwkJCQkJCQkJCWF0dHJpYnV0ZU5hbWUpKSk7CisJCQkJfQorCQkJCWVsc2UgaWYgKGRlZi0+ ZW5jcnlwdGlvbiAmJiBuZXdkZWYtPmVuY3J5cHRpb24pCisJCQkJeworCQkJCQlGb3JtRGF0 YV9wZ19hdHRyaWJ1dGUgYSwgbmV3YTsKKworCQkJCQlHZXRDb2x1bW5FbmNyeXB0aW9uKGRl Zi0+ZW5jcnlwdGlvbiwgJmEpOworCQkJCQlHZXRDb2x1bW5FbmNyeXB0aW9uKG5ld2RlZi0+ ZW5jcnlwdGlvbiwgJm5ld2EpOworCisJCQkJCWlmIChhLmF0dHR5cGlkICE9IG5ld2EuYXR0 dHlwaWQgfHwKKwkJCQkJCWEuYXR0dHlwbW9kICE9IG5ld2EuYXR0dHlwbW9kIHx8CisJCQkJ CQlhLmF0dGNlayAhPSBuZXdhLmF0dGNlaykKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGhhcyBhbiBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24gY29u ZmxpY3QiLAorCQkJCQkJCQkJCWF0dHJpYnV0ZU5hbWUpKSk7CisJCQkJfQorCiAJCQkJLyog TWFyayB0aGUgY29sdW1uIGFzIGxvY2FsbHkgZGVmaW5lZCAqLwogCQkJCWRlZi0+aXNfbG9j YWwgPSB0cnVlOwogCQkJCS8qIE1lcmdlIG9mIE5PVCBOVUxMIGNvbnN0cmFpbnRzID0gT1Ig J2VtIHRvZ2V0aGVyICovCkBAIC02ODYxLDYgKzY5MzgsMTkgQEAgQVRFeGVjQWRkQ29sdW1u KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAog CWF0dHJpYnV0ZS5hdHRpc2xvY2FsID0gY29sRGVmLT5pc19sb2NhbDsKIAlhdHRyaWJ1dGUu YXR0aW5oY291bnQgPSBjb2xEZWYtPmluaGNvdW50OwogCWF0dHJpYnV0ZS5hdHRjb2xsYXRp b24gPSBjb2xsT2lkOworCWlmIChjb2xEZWYtPmVuY3J5cHRpb24pCisJeworCQlHZXRDb2x1 bW5FbmNyeXB0aW9uKGNvbERlZi0+ZW5jcnlwdGlvbiwgJmF0dHJpYnV0ZSk7CisJCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBhdHRyaWJ1 dGUuYXR0Y2VrLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdFKTsKKwkJaWYgKGFjbHJlc3VsdCAh PSBBQ0xDSEVDS19PSykKKwkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0NF SywgZ2V0X2Nla19uYW1lKGF0dHJpYnV0ZS5hdHRjZWssIGZhbHNlKSk7CisJfQorCWVsc2UK Kwl7CisJCWF0dHJpYnV0ZS5hdHRjZWsgPSAwOworCQlhdHRyaWJ1dGUuYXR0dXNlcnR5cGlk ID0gMDsKKwkJYXR0cmlidXRlLmF0dHVzZXJ0eXBtb2QgPSAtMTsKKwl9CiAKIAlSZWxlYXNl U3lzQ2FjaGUodHlwZVR1cGxlKTsKIApAQCAtMTI2OTIsNiArMTI3ODIsOSBAQCBBVEV4ZWNB bHRlckNvbHVtblR5cGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ CQljYXNlIE9DTEFTU19UWVBFOgogCQkJY2FzZSBPQ0xBU1NfQ0FTVDoKIAkJCWNhc2UgT0NM QVNTX0NPTExBVElPTjoKKwkJCWNhc2UgT0NMQVNTX0NFSzoKKwkJCWNhc2UgT0NMQVNTX0NF S0RBVEE6CisJCQljYXNlIE9DTEFTU19DTUs6CiAJCQljYXNlIE9DTEFTU19DT05WRVJTSU9O OgogCQkJY2FzZSBPQ0xBU1NfTEFOR1VBR0U6CiAJCQljYXNlIE9DTEFTU19MQVJHRU9CSkVD VDoKQEAgLTE5MjkxLDMgKzE5Mzg0LDExMCBAQCBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBh dHR0eXBpZCwgY29uc3QgY2hhciAqc3RvcmFnZW1vZGUpCiAKIAlyZXR1cm4gY3N0b3JhZ2U7 CiB9CisKKy8qCisgKiByZXNvbHZlIGNvbHVtbiBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24K KyAqLworc3RhdGljIHZvaWQKK0dldENvbHVtbkVuY3J5cHRpb24oY29uc3QgTGlzdCAqY29s ZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cikKK3sKKwlMaXN0Q2VsbCAg ICpsYzsKKwlMaXN0CSAgICpjZWsgPSBOVUxMOworCU9pZAkJCWNla29pZDsKKwlib29sCQll bmNkZXQgPSBmYWxzZTsKKwlpbnQJCQlhbGcgPSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19I TUFDX1NIQV8yNTY7CisKKwlmb3JlYWNoKGxjLCBjb2xkZWZlbmNyeXB0aW9uKQorCXsKKwkJ RGVmRWxlbSAgICAqZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisKKwkJaWYgKHN0 cmNtcChlbC0+ZGVmbmFtZSwgImNvbHVtbl9lbmNyeXB0aW9uX2tleSIpID09IDApCisJCQlj ZWsgPSBkZWZHZXRRdWFsaWZpZWROYW1lKGVsKTsKKwkJZWxzZSBpZiAoc3RyY21wKGVsLT5k ZWZuYW1lLCAiZW5jcnlwdGlvbl90eXBlIikgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqdmFs ID0gc3RyVmFsKGxpbml0aWFsKGNhc3ROb2RlKFR5cGVOYW1lLCBlbC0+YXJnKS0+bmFtZXMp KTsKKworCQkJaWYgKHN0cmNtcCh2YWwsICJkZXRlcm1pbmlzdGljIikgPT0gMCkKKwkJCQll bmNkZXQgPSB0cnVlOworCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgInJhbmRvbWl6ZWQiKSA9 PSAwKQorCQkJCWVuY2RldCA9IGZhbHNlOworCQkJZWxzZQorCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJ CQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiB0eXBlOiAlcyIsIHZhbCkpOwor CQl9CisJCWVsc2UgaWYgKHN0cmNtcChlbC0+ZGVmbmFtZSwgImFsZ29yaXRobSIpID09IDAp CisJCXsKKwkJCWNoYXIJICAgKnZhbCA9IHN0clZhbChlbC0+YXJnKTsKKworCQkJYWxnID0g Z2V0X2Nla2FsZ19udW0odmFsKTsKKworCQkJaWYgKCFhbGcpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJ CQkJCQllcnJtc2coInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2 YWwpKTsKKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJtc2coInVucmVjb2du aXplZCBjb2x1bW4gZW5jcnlwdGlvbiBwYXJhbWV0ZXI6ICVzIiwgZWwtPmRlZm5hbWUpKTsK Kwl9CisKKwlpZiAoIWNlaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5j cnlwdGlvbiBrZXkgbXVzdCBiZSBzcGVjaWZpZWQiKSk7CisKKwljZWtvaWQgPSBnZXRfY2Vr X29pZChjZWssIGZhbHNlKTsKKworCWF0dHItPmF0dGNlayA9IGNla29pZDsKKwlhdHRyLT5h dHR1c2VydHlwaWQgPSBhdHRyLT5hdHR0eXBpZDsKKwlhdHRyLT5hdHR1c2VydHlwbW9kID0g YXR0ci0+YXR0dHlwbW9kOworCisJLyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAqLworCWlm IChlbmNkZXQpCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX0RFVE9JRDsKKwll bHNlCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX1JORE9JRDsKKwlnZXRfdHlw bGVuYnl2YWxhbGlnbihhdHRyLT5hdHR0eXBpZCwKKwkJCQkJCSAmYXR0ci0+YXR0bGVuLCAm YXR0ci0+YXR0Ynl2YWwsICZhdHRyLT5hdHRhbGlnbik7CisJYXR0ci0+YXR0c3RvcmFnZSA9 IGdldF90eXBzdG9yYWdlKGF0dHItPmF0dHR5cGlkKTsKKwlhdHRyLT5hdHRjb2xsYXRpb24g PSBJbnZhbGlkT2lkOworCisJYXR0ci0+YXR0dHlwbW9kID0gYWxnOworfQorCisvKgorICog Q29uc3RydWN0IGlucHV0IHRvIEdldENvbHVtbkVuY3J5cHRpb24oKSwgZm9yIHN5bnRoZXNp emluZyBhIGNvbHVtbgorICogZGVmaW5pdGlvbi4KKyAqLworTGlzdCAqCittYWtlQ29sdW1u RW5jcnlwdGlvbihjb25zdCBGb3JtRGF0YV9wZ19hdHRyaWJ1dGUgKmF0dHIpCit7CisJTGlz dAkgICAqcmVzdWx0OworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ19jb2xlbmNrZXkgZm9y bTsKKwljaGFyCSAgICpuc3BuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09J RCwgT2JqZWN0SWRHZXREYXR1bShhdHRyLT5hdHRjZWspKTsKKwlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNv bHVtbiBlbmNyeXB0aW9uIGtleSAldSIsIGF0dHItPmF0dGNlayk7CisKKwlmb3JtID0gKEZv cm1fcGdfY29sZW5ja2V5KSBHRVRTVFJVQ1QodHVwKTsKKwluc3BuYW1lID0gZ2V0X25hbWVz cGFjZV9uYW1lKGZvcm0tPmNla25hbWVzcGFjZSk7CisKKwlyZXN1bHQgPSBsaXN0X21ha2Uz KG1ha2VEZWZFbGVtKCJjb2x1bW5fZW5jcnlwdGlvbl9rZXkiLAorCQkJCQkJCQkJKE5vZGUg KikgbGlzdF9tYWtlMihtYWtlU3RyaW5nKG5zcG5hbWUpLCBtYWtlU3RyaW5nKHBzdHJkdXAo TmFtZVN0cihmb3JtLT5jZWtuYW1lKSkpKSwKKwkJCQkJCQkJCS0xKSwKKwkJCQkJCW1ha2VE ZWZFbGVtKCJlbmNyeXB0aW9uX3R5cGUiLAorCQkJCQkJCQkJKE5vZGUgKikgbWFrZVR5cGVO YW1lKGF0dHItPmF0dHR5cGlkID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQgPworCQkJCQkJCQkJ CQkJCQkgICJkZXRlcm1pbmlzdGljIiA6ICJyYW5kb21pemVkIiksCisJCQkJCQkJCQktMSks CisJCQkJCQltYWtlRGVmRWxlbSgiYWxnb3JpdGhtIiwKKwkJCQkJCQkJCShOb2RlICopIG1h a2VTdHJpbmcocHN0cmR1cChnZXRfY2VrYWxnX25hbWUoYXR0ci0+YXR0dHlwbW9kKSkpLAor CQkJCQkJCQkJLTEpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHJl c3VsdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy92YXJpYWJsZS5jCmluZGV4IGJiMGY1ZGU0YzIuLmNl YzJkYWE5YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwpAQCAtMjUsNiArMjUsNyBA QAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncHJlZmV0Y2hlci5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgorI2luY2x1ZGUg ImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKQEAg LTcwNiw3ICs3MDcsMTEgQEAgY2hlY2tfY2xpZW50X2VuY29kaW5nKGNoYXIgKipuZXd2YWws IHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAkgKi8KIAlpZiAoUHJlcGFyZUNs aWVudEVuY29kaW5nKGVuY29kaW5nKSA8IDApCiAJewotCQlpZiAoSXNUcmFuc2FjdGlvblN0 YXRlKCkpCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQor CQkJR1VDX2NoZWNrX2VycmRldGFpbCgiQ29udmVyc2lvbiBiZXR3ZWVuICVzIGFuZCAlcyBp cyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIsCisJ CQkJCQkJCWNhbm9uaWNhbF9uYW1lLAorCQkJCQkJCQlHZXREYXRhYmFzZUVuY29kaW5nTmFt ZSgpKTsKKwkJZWxzZSBpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCiAJCXsKIAkJCS8qIE11 c3QgYmUgYSBnZW51aW5lIG5vLXN1Y2gtY29udmVyc2lvbiBwcm9ibGVtICovCiAJCQlHVUNf Y2hlY2tfZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92aWV3LmMKaW5kZXggZmY5OGM3NzNmNS4uMTcxZGNhMzgwMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zp ZXcuYwpAQCAtODgsNiArODgsMjYgQEAgRGVmaW5lVmlydHVhbFJlbGF0aW9uKFJhbmdlVmFy ICpyZWxhdGlvbiwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwKIAkJCWVsc2UKIAkJCQlB c3NlcnQoIU9pZElzVmFsaWQoZGVmLT5jb2xsT2lkKSk7CiAKKwkJCWlmICh0eXBlX2lzX2Vu Y3J5cHRlZChleHByVHlwZSgoTm9kZSAqKSB0bGUtPmV4cHIpKSkKKwkJCXsKKwkJCQlIZWFw VHVwbGUJdHA7CisJCQkJRm9ybV9wZ19hdHRyaWJ1dGUgb3JpZ19hdHQ7CisKKwkJCQlpZiAo IXRsZS0+cmVzb3JpZ3RibCB8fCAhdGxlLT5yZXNvcmlnY29sKQorCQkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9O KSwKKwkJCQkJCQllcnJtc2coInVuZGVybHlpbmcgdGFibGUgYW5kIGNvbHVtbiBjb3VsZCBu b3QgYmUgZGV0ZXJtaW5lZCBmb3IgZW5jcnlwdGVkIHZpZXcgY29sdW1uIikpOworCisJCQkJ dHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHRsZS0+cmVz b3JpZ3RibCksIEludDE2R2V0RGF0dW0odGxlLT5yZXNvcmlnY29sKSk7CisJCQkJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHRsZS0+cmVzb3JpZ2Nv bCwgdGxlLT5yZXNvcmlndGJsKTsKKwkJCQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0 ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCQlkZWYtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lRnJv bU9pZChvcmlnX2F0dC0+YXR0dXNlcnR5cGlkLAorCQkJCQkJCQkJCQkJCW9yaWdfYXR0LT5h dHR1c2VydHlwbW9kKTsKKwkJCQlkZWYtPmVuY3J5cHRpb24gPSBtYWtlQ29sdW1uRW5jcnlw dGlvbihvcmlnX2F0dCk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKwogCQkJ YXR0ckxpc3QgPSBsYXBwZW5kKGF0dHJMaXN0LCBkZWYpOwogCQl9CiAJfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYwppbmRleCBkYzg0MTVhNjkzLi5jODFiYzE1MTI4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYwpAQCAtMzk4Myw2ICszOTgzLDggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93 YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FM Syhjb2xkZWYtPmNvbXByZXNzaW9uKSkKIAkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdB TEsoY29sZGVmLT5lbmNyeXB0aW9uKSkKKwkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdB TEsoY29sZGVmLT5yYXdfZGVmYXVsdCkpCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChX QUxLKGNvbGRlZi0+Y29sbENsYXVzZSkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhMDEzODM4MmEx Li5hNjAzOTg3OGZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI4MCw2ICsyODAsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCiAldHlwZSA8bm9kZT4Jc3RtdCB0b3BsZXZlbF9z dG10IHNjaGVtYV9zdG10IHJvdXRpbmVfYm9keV9zdG10CiAJCUFsdGVyRXZlbnRUcmlnU3Rt dCBBbHRlckNvbGxhdGlvblN0bXQKKwkJQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCBB bHRlckNvbHVtbk1hc3RlcktleVN0bXQKIAkJQWx0ZXJEYXRhYmFzZVN0bXQgQWx0ZXJEYXRh YmFzZVNldFN0bXQgQWx0ZXJEb21haW5TdG10IEFsdGVyRW51bVN0bXQKIAkJQWx0ZXJGZHdT dG10IEFsdGVyRm9yZWlnblNlcnZlclN0bXQgQWx0ZXJHcm91cFN0bXQKIAkJQWx0ZXJPYmpl Y3REZXBlbmRzU3RtdCBBbHRlck9iamVjdFNjaGVtYVN0bXQgQWx0ZXJPd25lclN0bXQKQEAg LTQxOSw2ICs0MjAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo Y2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCiAldHlwZSA8 bGlzdD4JcGFyc2VfdG9wbGV2ZWwgc3RtdG11bHRpIHJvdXRpbmVfYm9keV9zdG10X2xpc3QK IAkJCQlPcHRUYWJsZUVsZW1lbnRMaXN0IFRhYmxlRWxlbWVudExpc3QgT3B0SW5oZXJpdCBk ZWZpbml0aW9uCisJCQkJbGlzdF9vZl9kZWZpbml0aW9ucwogCQkJCU9wdFR5cGVkVGFibGVF bGVtZW50TGlzdCBUeXBlZFRhYmxlRWxlbWVudExpc3QKIAkJCQlyZWxvcHRpb25zIG9wdF9y ZWxvcHRpb25zCiAJCQkJT3B0V2l0aCBvcHRfZGVmaW5pdGlvbiBmdW5jX2FyZ3MgZnVuY19h cmdzX2xpc3QKQEAgLTU5Miw2ICs1OTQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogJXR5cGUgPG5vZGU+CVRhYmxlQ29uc3RyYWludCBUYWJsZUxpa2VDbGF1c2UKICV0eXBl IDxpdmFsPglUYWJsZUxpa2VPcHRpb25MaXN0IFRhYmxlTGlrZU9wdGlvbgogJXR5cGUgPHN0 cj4JCWNvbHVtbl9jb21wcmVzc2lvbiBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNvbHVtbl9z dG9yYWdlIG9wdF9jb2x1bW5fc3RvcmFnZQorJXR5cGUgPGxpc3Q+CW9wdF9jb2x1bW5fZW5j cnlwdGlvbgogJXR5cGUgPGxpc3Q+CUNvbFF1YWxMaXN0CiAldHlwZSA8bm9kZT4JQ29sQ29u c3RyYWludCBDb2xDb25zdHJhaW50RWxlbSBDb25zdHJhaW50QXR0cgogJXR5cGUgPGl2YWw+ CWtleV9tYXRjaApAQCAtNjkwLDggKzY5Myw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAJREVUQUNIIERJQ1RJT05BUlkgRElTQUJMRV9QIERJU0NBUkQgRElTVElOQ1QgRE8g RE9DVU1FTlRfUCBET01BSU5fUAogCURPVUJMRV9QIERST1AKIAotCUVBQ0ggRUxTRSBFTkFC TEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVTQ0FQRSBFVkVOVCBFWENF UFQKLQlFWENMVURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhFQ1VURSBFWElTVFMgRVhQTEFJ TiBFWFBSRVNTSU9OCisJRUFDSCBFTFNFIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZUFRJT04g RU5DUllQVEVEIEVORF9QIEVOVU1fUCBFU0NBUEUKKwlFVkVOVCBFWENFUFQgRVhDTFVERSBF WENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExBSU4gRVhQUkVTU0lPTgog CUVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAKIAlGQUxTRV9QIEZBTUlMWSBGRVRDSCBG SUxURVIgRklOQUxJWkUgRklSU1RfUCBGTE9BVF9QIEZPTExPV0lORyBGT1IKQEAgLTcwOCwx MyArNzExLDEzIEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKIAlKT0lOCiAKLQlL RVkKKwlLRVkgS0VZUwogCiAJTEFCRUwgTEFOR1VBR0UgTEFSR0VfUCBMQVNUX1AgTEFURVJB TF9QCiAJTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVZFTCBMSUtFIExJTUlUIExJ U1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExP Q0tfUCBMT0NLRUQgTE9HR0VECiAKLQlNQVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJ WkVEIE1BWFZBTFVFIE1FUkdFIE1FVEhPRAorCU1BUFBJTkcgTUFTVEVSIE1BVENIIE1BVENI RUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FVEhPRAogCU1JTlVURV9QIE1JTlZB TFVFIE1PREUgTU9OVEhfUCBNT1ZFCiAKIAlOQU1FX1AgTkFNRVMgTkFUSU9OQUwgTkFUVVJB TCBOQ0hBUiBORVcgTkVYVCBORkMgTkZEIE5GS0MgTkZLRCBOTyBOT05FCkBAIC05NDIsNiAr OTQ1LDggQEAgdG9wbGV2ZWxfc3RtdDoKIHN0bXQ6CiAJCQlBbHRlckV2ZW50VHJpZ1N0bXQK IAkJCXwgQWx0ZXJDb2xsYXRpb25TdG10CisJCQl8IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktl eVN0bXQKKwkJCXwgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10CiAJCQl8IEFsdGVyRGF0YWJh c2VTdG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTZXRTdG10CiAJCQl8IEFsdGVyRGVmYXVsdFBy aXZpbGVnZXNTdG10CkBAIC0xOTg4LDcgKzE5OTMsNyBAQCBDaGVja1BvaW50U3RtdDoKIAog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogRElTQ0FSRCB7IEFMTCB8IFRFTVAg fCBQTEFOUyB8IFNFUVVFTkNFUyB9CisgKiBESVNDQVJECiAgKgogICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwogCkBAIC0yMDE0LDYgKzIwMTksMTMgQEAgRGlzY2FyZFN0bXQ6CiAJCQkJ CW4tPnRhcmdldCA9IERJU0NBUkRfVEVNUDsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KKwkJCXwgRElTQ0FSRCBDT0xVTU4gRU5DUllQVElPTiBLRVlTCisJCQkJeworCQkJCQlE aXNjYXJkU3RtdCAqbiA9IG1ha2VOb2RlKERpc2NhcmRTdG10KTsKKworCQkJCQluLT50YXJn ZXQgPSBESVNDQVJEX0NPTFVNTl9FTkNSWVBUSU9OX0tFWVM7CisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CiAJCQl8IERJU0NBUkQgUExBTlMKIAkJCQl7CiAJCQkJCURpc2NhcmRT dG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwpAQCAtMzcwMCwxNCArMzcxMiwxNSBA QCBUeXBlZFRhYmxlRWxlbWVudDoKIAkJCXwgVGFibGVDb25zdHJhaW50CQkJCQl7ICQkID0g JDE7IH0KIAkJOwogCi1jb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1lIG9wdF9jb2x1bW5fc3Rv cmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5lcmljX29wdGlvbnMgQ29s UXVhbExpc3QKK2NvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9lbmNyeXB0 aW9uIG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9n ZW5lcmljX29wdGlvbnMgQ29sUXVhbExpc3QKIAkJCQl7CiAJCQkJCUNvbHVtbkRlZiAqbiA9 IG1ha2VOb2RlKENvbHVtbkRlZik7CiAKIAkJCQkJbi0+Y29sbmFtZSA9ICQxOwogCQkJCQlu LT50eXBlTmFtZSA9ICQyOwotCQkJCQluLT5zdG9yYWdlX25hbWUgPSAkMzsKLQkJCQkJbi0+ Y29tcHJlc3Npb24gPSAkNDsKKwkJCQkJbi0+ZW5jcnlwdGlvbiA9ICQzOworCQkJCQluLT5z dG9yYWdlX25hbWUgPSAkNDsKKwkJCQkJbi0+Y29tcHJlc3Npb24gPSAkNTsKIAkJCQkJbi0+ aW5oY291bnQgPSAwOwogCQkJCQluLT5pc19sb2NhbCA9IHRydWU7CiAJCQkJCW4tPmlzX25v dF9udWxsID0gZmFsc2U7CkBAIC0zNzE2LDggKzM3MjksOCBAQCBjb2x1bW5EZWY6CUNvbElk IFR5cGVuYW1lIG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNy ZWF0ZV9nZW5lcgogCQkJCQluLT5yYXdfZGVmYXVsdCA9IE5VTEw7CiAJCQkJCW4tPmNvb2tl ZF9kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29sbE9pZCA9IEludmFsaWRPaWQ7Ci0JCQkJ CW4tPmZkd29wdGlvbnMgPSAkNTsKLQkJCQkJU3BsaXRDb2xRdWFsTGlzdCgkNiwgJm4tPmNv bnN0cmFpbnRzLCAmbi0+Y29sbENsYXVzZSwKKwkJCQkJbi0+ZmR3b3B0aW9ucyA9ICQ2Owor CQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ3LCAmbi0+Y29uc3RyYWludHMsICZuLT5jb2xsQ2xh dXNlLAogCQkJCQkJCQkJIHl5c2Nhbm5lcik7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKQEAgLTM3NzQsNiArMzc4NywxMSBAQCBvcHRfY29sdW1u X2NvbXByZXNzaW9uOgogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CiAJ CTsKIAorb3B0X2NvbHVtbl9lbmNyeXB0aW9uOgorCQkJRU5DUllQVEVEIFdJVEggJygnIGRl Zl9saXN0ICcpJwkJCXsgJCQgPSAkNDsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQg PSBOVUxMOyB9CisJCTsKKwogY29sdW1uX3N0b3JhZ2U6CiAJCQlTVE9SQUdFIENvbElkCQkJ CQkJCXsgJCQgPSAkMjsgfQogCQkJfCBTVE9SQUdFIERFRkFVTFQJCQkJCQl7ICQkID0gcHN0 cmR1cCgiZGVmYXVsdCIpOyB9CkBAIC00MDM0LDYgKzQwNTIsNyBAQCBUYWJsZUxpa2VPcHRp b246CiAJCQkJfCBDT01QUkVTU0lPTgkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX0NPTVBS RVNTSU9OOyB9CiAJCQkJfCBDT05TVFJBSU5UUwkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtF X0NPTlNUUkFJTlRTOyB9CiAJCQkJfCBERUZBVUxUUwkJCXsgJCQgPSBDUkVBVEVfVEFCTEVf TElLRV9ERUZBVUxUUzsgfQorCQkJCXwgRU5DUllQVEVECQkJeyAkJCA9IENSRUFURV9UQUJM RV9MSUtFX0VOQ1JZUFRFRDsgfQogCQkJCXwgSURFTlRJVFlfUAkJeyAkJCA9IENSRUFURV9U QUJMRV9MSUtFX0lERU5USVRZOyB9CiAJCQkJfCBHRU5FUkFURUQJCQl7ICQkID0gQ1JFQVRF X1RBQkxFX0xJS0VfR0VORVJBVEVEOyB9CiAJCQkJfCBJTkRFWEVTCQkJeyAkJCA9IENSRUFU RV9UQUJMRV9MSUtFX0lOREVYRVM7IH0KQEAgLTYyNzAsNiArNjI4OSwzMyBAQCBEZWZpbmVT dG10OgogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFt ZSBXSVRIIFZBTFVFUyBsaXN0X29mX2RlZmluaXRpb25zCisJCQkJeworCQkJCQlEZWZpbmVT dG10ICpuID0gbWFrZU5vZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVD VF9DRUs7CisJCQkJCW4tPmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAk ODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGFueV9uYW1lCisJCQkJeworCQkJCQlEZWZpbmVTdG10ICpuID0gbWFrZU5v ZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9DTUs7CisJCQkJCW4t PmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSBOSUw7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBhbnlf bmFtZSBXSVRIIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtl Tm9kZShEZWZpbmVTdG10KTsKKworCQkJCQluLT5raW5kID0gT0JKRUNUX0NNSzsKKwkJCQkJ bi0+ZGVmbmFtZXMgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ3OworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIGRlZmluaXRpb246ICcoJyBkZWZfbGlzdCAn KScJCQkJCQl7ICQkID0gJDI7IH0KQEAgLTYyODksNiArNjMzNSwxMCBAQCBkZWZfZWxlbToJ Q29sTGFiZWwgJz0nIGRlZl9hcmcKIAkJCQl9CiAJCTsKIAorbGlzdF9vZl9kZWZpbml0aW9u czogZGVmaW5pdGlvbgkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBsaXN0 X29mX2RlZmluaXRpb25zICcsJyBkZWZpbml0aW9uCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7 IH0KKwkJOworCiAvKiBOb3RlOiBhbnkgc2ltcGxlIGlkZW50aWZpZXIgd2lsbCBiZSByZXR1 cm5lZCBhcyBhIHR5cGUgbmFtZSEgKi8KIGRlZl9hcmc6CWZ1bmNfdHlwZQkJCQkJCXsgJCQg PSAoTm9kZSAqKSAkMTsgfQogCQkJfCByZXNlcnZlZF9rZXl3b3JkCQkJCXsgJCQgPSAoTm9k ZSAqKSBtYWtlU3RyaW5nKHBzdHJkdXAoJDEpKTsgfQpAQCAtNjgwMCw2ICs2ODUwLDggQEAg b2JqZWN0X3R5cGVfYW55X25hbWU6CiAJCQl8IElOREVYCQkJCQkJCQkJeyAkJCA9IE9CSkVD VF9JTkRFWDsgfQogCQkJfCBGT1JFSUdOIFRBQkxFCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRk9S RUlHTl9UQUJMRTsgfQogCQkJfCBDT0xMQVRJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfQ09M TEFUSU9OOyB9CisJCQl8IENPTFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVD VF9DRUs7IH0KKwkJCXwgQ09MVU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NN SzsgfQogCQkJfCBDT05WRVJTSU9OX1AJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT05WRVJTSU9O OyB9CiAJCQl8IFNUQVRJU1RJQ1MJCQkJCQkJeyAkJCA9IE9CSkVDVF9TVEFUSVNUSUNfRVhU OyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggUEFSU0VSCQkJCQl7ICQkID0gT0JKRUNUX1RTUEFS U0VSOyB9CkBAIC03NjExLDYgKzc2NjMsMjQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJ bi0+b2JqcyA9ICQyOwogCQkJCQkkJCA9IG47CiAJCQkJfQorCQkJfCBDT0xVTU4gRU5DUllQ VElPTiBLRVkgYW55X25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQ cml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCisJCQkJCW4tPnRh cmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1Rf Q0VLOworCQkJCQluLT5vYmpzID0gJDQ7CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8IENP TFVNTiBNQVNURVIgS0VZIGFueV9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQg Km4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKworCQkJ CQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0g T0JKRUNUX0NNSzsKKwkJCQkJbi0+b2JqcyA9ICQ0OworCQkJCQkkJCA9IG47CisJCQkJfQog CQkJfCBEQVRBQkFTRSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJCVByaXZUYXJnZXQgKm4gPSAo UHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKQEAgLTkxNDAsNiAr OTIxMCwyNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhf YXJndHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0 bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0g T0JKRUNUX0NFSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5l d25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChO b2RlICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFt ZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2Rl KFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfQ01LOworCQkJ CQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQogCQkJ CXsKIAkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOwpAQCAtOTgx Nyw2ICs5OTA3LDI2IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2lu Z19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJ eworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVj dFNjaGVtYVN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJ CQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJ CX0KKwkJCXwgQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgYW55X25hbWUgU0VUIFNDSEVNQSBu YW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShB bHRlck9iamVjdFNjaGVtYVN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1Rf Q01LOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1h ID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAq KSBuOworCQkJCX0KIAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIFNFVCBTQ0hF TUEgbmFtZQogCQkJCXsKIAkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5v ZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKQEAgLTEwMTQ4LDYgKzEwMjU4LDI0IEBAIEFs dGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMg T1dORVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFu eV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAq biA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0g T0JKRUNUX0NFSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5l d293bmVyID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVS IENPTFVNTiBNQVNURVIgS0VZIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJewor CQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsKKwor CQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX0NNSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5v ZGUgKikgJDU7CisJCQkJCW4tPm5ld293bmVyID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikg bjsKKwkJCQl9CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBPV05FUiBUTyBS b2xlU3BlYwogCQkJCXsKIAkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck93bmVyU3RtdCk7CkBAIC0xMTMwNCw2ICsxMTQzMiw1MiBAQCBBbHRlckNvbGxhdGlvblN0 bXQ6IEFMVEVSIENPTExBVElPTiBhbnlfbmFtZSBSRUZSRVNIIFZFUlNJT05fUAogCQk7CiAK IAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCUFMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQWx0ZXJDb2x1 bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCUFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBh bnlfbmFtZSBBRERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRp b25LZXlTdG10KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9 IGZhbHNlOworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikg bjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBE Uk9QIFZBTFVFX1AgZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5FbmNyeXB0 aW9uS2V5U3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQp OworCisJCQkJCW4tPmNla25hbWUgPSAkNTsKKwkJCQkJbi0+aXNEcm9wID0gdHJ1ZTsKKwkJ CQkJbi0+ZGVmaW5pdGlvbiA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQk7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCUFMVEVSIENPTFVN TiBNQVNURVIgS0VZCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitBbHRlckNv bHVtbk1hc3RlcktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFt ZSBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbk1hc3RlcktleVN0bXQgKm4g PSBtYWtlTm9kZShBbHRlckNvbHVtbk1hc3RlcktleVN0bXQpOworCisJCQkJCW4tPmNta25h bWUgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ2OworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQorCQk7CisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJ CUFMVEVSIFNZU1RFTQpAQCAtMTY3OTEsNiArMTY5NjUsNyBAQCB1bnJlc2VydmVkX2tleXdv cmQ6CiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRFRAorCQkJ fCBFTkNSWVBUSU9OCiAJCQl8IEVOVU1fUAogCQkJfCBFU0NBUEUKIAkJCXwgRVZFTlQKQEAg LTE2ODQwLDYgKzE3MDE1LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBJTlZPS0VS CiAJCQl8IElTT0xBVElPTgogCQkJfCBLRVkKKwkJCXwgS0VZUwogCQkJfCBMQUJFTAogCQkJ fCBMQU5HVUFHRQogCQkJfCBMQVJHRV9QCkBAIC0xNjg1NCw2ICsxNzAzMCw3IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTE9DS0VECiAJCQl8IExPR0dFRAogCQkJfCBNQVBQSU5H CisJCQl8IE1BU1RFUgogCQkJfCBNQVRDSAogCQkJfCBNQVRDSEVECiAJCQl8IE1BVEVSSUFM SVpFRApAQCAtMTczMzcsNiArMTc1MTQsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8 IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRFRAorCQkJfCBFTkNSWVBU SU9OCiAJCQl8IEVORF9QCiAJCQl8IEVOVU1fUAogCQkJfCBFU0NBUEUKQEAgLTE3NDA0LDYg KzE3NTgyLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBJU09MQVRJT04KIAkJCXwg Sk9JTgogCQkJfCBLRVkKKwkJCXwgS0VZUwogCQkJfCBMQUJFTAogCQkJfCBMQU5HVUFHRQog CQkJfCBMQVJHRV9QCkBAIC0xNzQyNSw2ICsxNzYwNCw3IEBAIGJhcmVfbGFiZWxfa2V5d29y ZDoKIAkJCXwgTE9DS0VECiAJCQl8IExPR0dFRAogCQkJfCBNQVBQSU5HCisJCQl8IE1BU1RF UgogCQkJfCBNQVRDSAogCQkJfCBNQVRDSEVECiAJCQl8IE1BVEVSSUFMSVpFRApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcGFyYW0uYwppbmRleCAyMjQwMjg0ZjIxLi5hOGExODU1YWEwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9wYXJhbS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZXRy ZWUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgogCkBAIC0zNTcsMyArMzU4LDE1OSBAQCBxdWVyeV9jb250YWluc19leHRl cm5fcGFyYW1zX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHF1ZXJ5X2NvbnRhaW5zX2V4dGVybl9wYXJh bXNfd2Fsa2VyLAogCQkJCQkJCQkgIGNvbnRleHQpOwogfQorCisvKgorICogV2FsayBhIHF1 ZXJ5IHRyZWUgYW5kIGZpbmQgb3V0IHdoYXQgdGFibGVzIGFuZCBjb2x1bW5zIGEgcGFyYW1l dGVyIGlzCisgKiBhc3NvY2lhdGVkIHdpdGguCisgKgorICogV2UgbmVlZCB0byBmaW5kIDEp IHBhcmFtZXRlcnMgd3JpdHRlbiBkaXJlY3RseSBpbnRvIGEgdGFibGUgY29sdW1uLCBhbmQg MikKKyAqIGJpbmFyeSBwcmVkaWNhdGVzIHJlbGF0aW5nIGEgcGFyYW1ldGVyIHRvIGEgdGFi bGUgY29sdW1uLgorICoKKyAqIFdlIGp1c3QgbmVlZCB0byBmaW5kIFZhciBhbmQgUGFyYW0g bm9kZXMgaW4gYXBwcm9wcmlhdGUgcGxhY2VzLiAgV2UgZG9uJ3QKKyAqIG5lZWQgdG8gZG8g aGFyZGVyIHRoaW5ncyBsaWtlIGxvb2tpbmcgdGhyb3VnaCBjYXN0cywgc2luY2UgdGhpcyBp cyB1c2VkIGZvcgorICogY29sdW1uIGVuY3J5cHRpb24sIGFuZCBlbmNyeXB0ZWQgY29sdW1u cyBjYW4ndCBiZSB1c2VmdWxseSBjYXN0IHRvCisgKiBhbnl0aGluZy4KKyAqLworCitzdHJ1 Y3QgZmluZF9wYXJhbV9vcmlnc19jb250ZXh0Cit7CisJY29uc3QgUXVlcnkgKnF1ZXJ5Owor CU9pZAkJICAgKnBhcmFtX29yaWdfdGJsczsKKwlBdHRyTnVtYmVyICpwYXJhbV9vcmlnX2Nv bHM7Cit9OworCitzdGF0aWMgYm9vbAorZmluZF9wYXJhbV9vcmlnc193YWxrZXIoTm9kZSAq bm9kZSwgc3RydWN0IGZpbmRfcGFyYW1fb3JpZ3NfY29udGV4dCAqY29udGV4dCkKK3sKKwlp ZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoSXNBKG5vZGUsIE9w RXhwcikgfHwgSXNBKG5vZGUsIERpc3RpbmN0RXhwcikgfHwgSXNBKG5vZGUsIE51bGxJZkV4 cHIpKQorCXsKKwkJT3BFeHByCSAgICpvcGV4cHIgPSAoT3BFeHByICopIG5vZGU7CisKKwkJ aWYgKGxpc3RfbGVuZ3RoKG9wZXhwci0+YXJncykgPT0gMikKKwkJeworCQkJTm9kZQkgICAq bGV4cHIgPSBsaW5pdGlhbChvcGV4cHItPmFyZ3MpOworCQkJTm9kZQkgICAqcmV4cHIgPSBs c2Vjb25kKG9wZXhwci0+YXJncyk7CisJCQlWYXIJCSAgICp2ID0gTlVMTDsKKwkJCVBhcmFt CSAgICpwID0gTlVMTDsKKworCQkJaWYgKElzQShsZXhwciwgVmFyKSAmJiBJc0EocmV4cHIs IFBhcmFtKSkKKwkJCXsKKwkJCQl2ID0gY2FzdE5vZGUoVmFyLCBsZXhwcik7CisJCQkJcCA9 IGNhc3ROb2RlKFBhcmFtLCByZXhwcik7CisJCQl9CisJCQllbHNlIGlmIChJc0EocmV4cHIs IFZhcikgJiYgSXNBKGxleHByLCBQYXJhbSkpCisJCQl7CisJCQkJdiA9IGNhc3ROb2RlKFZh ciwgcmV4cHIpOworCQkJCXAgPSBjYXN0Tm9kZShQYXJhbSwgbGV4cHIpOworCQkJfQorCisJ CQlpZiAodiAmJiBwKQorCQkJeworCQkJCVJhbmdlVGJsRW50cnkgKnJ0ZTsKKworCQkJCXJ0 ZSA9IHJ0X2ZldGNoKHYtPnZhcm5vLCBjb250ZXh0LT5xdWVyeS0+cnRhYmxlKTsKKwkJCQlp ZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwkJCQl7CisJCQkJCWNvbnRleHQt PnBhcmFtX29yaWdfdGJsc1twLT5wYXJhbWlkIC0gMV0gPSBydGUtPnJlbGlkOworCQkJCQlj b250ZXh0LT5wYXJhbV9vcmlnX2NvbHNbcC0+cGFyYW1pZCAtIDFdID0gdi0+dmFyYXR0bm87 CisJCQkJfQorCQkJfQorCQl9CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgorCSAqIFRh cmdldEVudHJ5IGluIGEgcXVlcnkgd2l0aCBhIHJlc3VsdCByZWxhdGlvbgorCSAqLworCWlm IChJc0Eobm9kZSwgVGFyZ2V0RW50cnkpICYmIGNvbnRleHQtPnF1ZXJ5LT5yZXN1bHRSZWxh dGlvbiA+IDApCisJeworCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbm9k ZTsKKwkJUmFuZ2VUYmxFbnRyeSAqcmVzcnRlOworCisJCXJlc3J0ZSA9IHJ0X2ZldGNoKGNv bnRleHQtPnF1ZXJ5LT5yZXN1bHRSZWxhdGlvbiwgY29udGV4dC0+cXVlcnktPnJ0YWJsZSk7 CisJCWlmIChyZXNydGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9OKQorCQl7CisJCQlFeHBy CSAgICpleHByID0gdGUtPmV4cHI7CisKKwkJCS8qCisJCQkgKiBJZiBpdCdzIGEgUmVsYWJl bFR5cGUsIGxvb2sgaW5zaWRlLiAgKEZvciBlbmNyeXB0ZWQgY29sdW1ucywKKwkJCSAqIHRo aXMgd291bGQgdHlwaWNhbGx5IGJlIGEgdHlwbW9kIGFkanVzdG1lbnQuKQorCQkJICovCisJ CQlpZiAoSXNBKGV4cHIsIFJlbGFiZWxUeXBlKSkKKwkJCQlleHByID0gY2FzdE5vZGUoUmVs YWJlbFR5cGUsIGV4cHIpLT5hcmc7CisKKwkJCS8qCisJCQkgKiBQYXJhbSBkaXJlY3RseSBp biBhIHRhcmdldCBsaXN0CisJCQkgKi8KKwkJCWlmIChJc0EoZXhwciwgUGFyYW0pKQorCQkJ eworCQkJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIGV4cHI7CisKKwkJCQljb250ZXh0LT5w YXJhbV9vcmlnX3RibHNbcC0+cGFyYW1pZCAtIDFdID0gcmVzcnRlLT5yZWxpZDsKKwkJCQlj b250ZXh0LT5wYXJhbV9vcmlnX2NvbHNbcC0+cGFyYW1pZCAtIDFdID0gdGUtPnJlc25vOwor CQkJfQorCisJCQkvKgorCQkJICogSWYgaXQncyBhIFZhciwgY2hlY2sgd2hldGhlciBpdCBj b3JyZXNwb25kcyB0byBhIFZBTFVFUyBsaXN0CisJCQkgKiB3aXRoIHRvcC1sZXZlbCBwYXJh bWV0ZXJzLiAgVGhpcyBjb3ZlcnMgbXVsdGktcm93IElOU0VSVFMuCisJCQkgKi8KKwkJCWVs c2UgaWYgKElzQShleHByLCBWYXIpKQorCQkJeworCQkJCVZhcgkJICAgKnYgPSAoVmFyICop IGV4cHI7CisJCQkJUmFuZ2VUYmxFbnRyeSAqc3JjcnRlOworCisJCQkJc3JjcnRlID0gcnRf ZmV0Y2godi0+dmFybm8sIGNvbnRleHQtPnF1ZXJ5LT5ydGFibGUpOworCQkJCWlmIChzcmNy dGUtPnJ0ZWtpbmQgPT0gUlRFX1ZBTFVFUykKKwkJCQl7CisJCQkJCUxpc3RDZWxsICAgKmxj OworCisJCQkJCWZvcmVhY2gobGMsIHNyY3J0ZS0+dmFsdWVzX2xpc3RzKQorCQkJCQl7CisJ CQkJCQlMaXN0CSAgICp2YWx1ZXNfbGlzdCA9IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJ CQkJCUV4cHIJICAgKnZhbHVlID0gbGlzdF9udGgodmFsdWVzX2xpc3QsIHYtPnZhcmF0dG5v IC0gMSk7CisKKwkJCQkJCWlmIChJc0EodmFsdWUsIFJlbGFiZWxUeXBlKSkKKwkJCQkJCQl2 YWx1ZSA9IGNhc3ROb2RlKFJlbGFiZWxUeXBlLCB2YWx1ZSktPmFyZzsKKworCQkJCQkJaWYg KElzQSh2YWx1ZSwgUGFyYW0pKQorCQkJCQkJeworCQkJCQkJCVBhcmFtCSAgICpwID0gKFBh cmFtICopIHZhbHVlOworCisJCQkJCQkJY29udGV4dC0+cGFyYW1fb3JpZ190YmxzW3AtPnBh cmFtaWQgLSAxXSA9IHJlc3J0ZS0+cmVsaWQ7CisJCQkJCQkJY29udGV4dC0+cGFyYW1fb3Jp Z19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHRlLT5yZXNubzsKKwkJCQkJCX0KKwkJCQkJfQor CQkJCX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gZmFsc2U7CisJfQorCisJaWYgKElzQShub2Rl LCBRdWVyeSkpCisJeworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5v ZGUsIGZpbmRfcGFyYW1fb3JpZ3Nfd2Fsa2VyLCBjb250ZXh0LCAwKTsKKwl9CisKKwlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBmaW5kX3BhcmFtX29yaWdzX3dhbGtl ciwgY29udGV4dCk7Cit9CisKK3ZvaWQKK2ZpbmRfcGFyYW1fb3JpZ3MoTGlzdCAqcXVlcnlf bGlzdCwgT2lkICoqcGFyYW1fb3JpZ190YmxzLCBBdHRyTnVtYmVyICoqcGFyYW1fb3JpZ19j b2xzKQoreworCXN0cnVjdCBmaW5kX3BhcmFtX29yaWdzX2NvbnRleHQgY29udGV4dDsKKwlM aXN0Q2VsbCAgICpsYzsKKworCWNvbnRleHQucGFyYW1fb3JpZ190YmxzID0gKnBhcmFtX29y aWdfdGJsczsKKwljb250ZXh0LnBhcmFtX29yaWdfY29scyA9ICpwYXJhbV9vcmlnX2NvbHM7 CisKKwlmb3JlYWNoKGxjLCBxdWVyeV9saXN0KQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0g bGZpcnN0X25vZGUoUXVlcnksIGxjKTsKKworCQljb250ZXh0LnF1ZXJ5ID0gcXVlcnk7CisJ CXF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBmaW5kX3BhcmFtX29yaWdzX3dhbGtlciwgJmNv bnRleHQsIDApOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4 IGY5MjE4ZjQ4YWEuLjhkOTAyMjkyY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYwpAQCAtMTAzNSw4ICsxMDM1LDE2IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShD cmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xh CiAJCSAqLwogCQlkZWYgPSBtYWtlTm9kZShDb2x1bW5EZWYpOwogCQlkZWYtPmNvbG5hbWUg PSBwc3RyZHVwKGF0dHJpYnV0ZU5hbWUpOwotCQlkZWYtPnR5cGVOYW1lID0gbWFrZVR5cGVO YW1lRnJvbU9pZChhdHRyaWJ1dGUtPmF0dHR5cGlkLAotCQkJCQkJCQkJCQlhdHRyaWJ1dGUt PmF0dHR5cG1vZCk7CisJCWlmICh0eXBlX2lzX2VuY3J5cHRlZChhdHRyaWJ1dGUtPmF0dHR5 cGlkKSkKKwkJeworCQkJZGVmLT50eXBlTmFtZSA9IG1ha2VUeXBlTmFtZUZyb21PaWQoYXR0 cmlidXRlLT5hdHR1c2VydHlwaWQsCisJCQkJCQkJCQkJCQlhdHRyaWJ1dGUtPmF0dHVzZXJ0 eXBtb2QpOworCQkJaWYgKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25zICYgQ1JFQVRFX1RB QkxFX0xJS0VfRU5DUllQVEVEKQorCQkJCWRlZi0+ZW5jcnlwdGlvbiA9IG1ha2VDb2x1bW5F bmNyeXB0aW9uKGF0dHJpYnV0ZSk7CisJCX0KKwkJZWxzZQorCQkJZGVmLT50eXBlTmFtZSA9 IG1ha2VUeXBlTmFtZUZyb21PaWQoYXR0cmlidXRlLT5hdHR0eXBpZCwKKwkJCQkJCQkJCQkJ CWF0dHJpYnV0ZS0+YXR0dHlwbW9kKTsKIAkJZGVmLT5pbmhjb3VudCA9IDA7CiAJCWRlZi0+ aXNfbG9jYWwgPSB0cnVlOwogCQlkZWYtPmlzX25vdF9udWxsID0gYXR0cmlidXRlLT5hdHRu b3RudWxsOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVy LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCAyNTUyMzI3 ZDkwLi43OWVjOWM0ZDFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bv c3RtYXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpA QCAtMjIxMCwxMiArMjIxMCwyNyBAQCBQcm9jZXNzU3RhcnR1cFBhY2tldChQb3J0ICpwb3J0 LCBib29sIHNzbF9kb25lLCBib29sIGdzc19kb25lKQogCQkJCQkJCQkJdmFscHRyKSwKIAkJ CQkJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZTogXCJmYWxzZVwiLCAwLCBcInRydWVc IiwgMSwgXCJkYXRhYmFzZVwiLiIpKSk7CiAJCQl9CisJCQllbHNlIGlmIChzdHJjbXAobmFt ZXB0ciwgIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iKSA9PSAwKQorCQkJeworCQkJCS8qCisJ CQkJICogUmlnaHQgbm93LCB0aGUgb25seSBhY2NlcHRlZCB2YWx1ZSBpcyAiMSIuICBUaGlz IGdpdmVzIHJvb20KKwkJCQkgKiB0byBleHBhbmQgdGhpcyBpbnRvIGEgdmVyc2lvbiBudW1i ZXIsIGZvciBleGFtcGxlLgorCQkJCSAqLworCQkJCWlmIChzdHJjbXAodmFscHRyLCAiMSIp ID09IDApCisJCQkJCXBvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSB0cnVlOwor CQkJCWVsc2UKKwkJCQkJZXJlcG9ydChGQVRBTCwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHZh bHVlIGZvciBwYXJhbWV0ZXIgXCIlc1wiOiBcIiVzXCIiLAorCQkJCQkJCQkJImNvbHVtbl9l bmNyeXB0aW9uIiwKKwkJCQkJCQkJCXZhbHB0ciksCisJCQkJCQkJIGVycmhpbnQoIlZhbGlk IHZhbHVlcyBhcmU6IDEuIikpKTsKKwkJCX0KIAkJCWVsc2UgaWYgKHN0cm5jbXAobmFtZXB0 ciwgIl9wcV8uIiwgNSkgPT0gMCkKIAkJCXsKIAkJCQkvKgogCQkJCSAqIEFueSBvcHRpb24g YmVnaW5uaW5nIHdpdGggX3BxXy4gaXMgcmVzZXJ2ZWQgZm9yIHVzZSBhcyBhCi0JCQkJICog cHJvdG9jb2wtbGV2ZWwgb3B0aW9uLCBidXQgYXQgcHJlc2VudCBubyBzdWNoIG9wdGlvbnMg YXJlCi0JCQkJICogZGVmaW5lZC4KKwkJCQkgKiBwcm90b2NvbC1sZXZlbCBvcHRpb24uCiAJ CQkJICovCiAJCQkJdW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMgPQogCQkJCQlsYXBw ZW5kKHVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zLCBwc3RyZHVwKG5hbWVwdHIpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5k L3Rjb3AvcG9zdGdyZXMuYwppbmRleCBjYWI3MDliMDdiLi5iNTc3NTU3Mzg0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAibm9kZXMvcHJpbnQu aCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicGFyc2Vy L2FuYWx5emUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcGFyYW0uaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAicGdfZ2V0b3B0LmgiCiAjaW5jbHVkZSAi cGdfdHJhY2UuaCIKQEAgLTcxLDYgKzcyLDcgQEAKICNpbmNsdWRlICJ1dGlscy9tZW11dGls cy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApAQCAtMTgxNSw2 ICsxODE3LDE2IEBAIGV4ZWNfYmluZF9tZXNzYWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2Fn ZSkKIAkJCWVsc2UKIAkJCQlwZm9ybWF0ID0gMDsJLyogZGVmYXVsdCA9IHRleHQgKi8KIAor CQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBlKSkKKwkJCXsKKwkJCQlpZiAocGZvcm1h dCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4RjA7CisJCQkJZWxzZQorCQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9O KSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgJCVkIGNvcnJlc3BvbmRzIHRvIGFuIGVu Y3J5cHRlZCBjb2x1bW4sIGJ1dCB0aGUgcGFyYW1ldGVyIHZhbHVlIHdhcyBub3QgZW5jcnlw dGVkIiwgcGFyYW1ubyArIDEpKSk7CisJCQl9CisKIAkJCWlmIChwZm9ybWF0ID09IDApCS8q IHRleHQgbW9kZSAqLwogCQkJewogCQkJCU9pZAkJCXR5cGlucHV0OwpAQCAtMjU2MCw2ICsy NTcyLDggQEAgc3RhdGljIHZvaWQKIGV4ZWNfZGVzY3JpYmVfc3RhdGVtZW50X21lc3NhZ2Uo Y29uc3QgY2hhciAqc3RtdF9uYW1lKQogewogCUNhY2hlZFBsYW5Tb3VyY2UgKnBzcmM7CisJ T2lkCQkgICAqcGFyYW1fb3JpZ190YmxzOworCUF0dHJOdW1iZXIgKnBhcmFtX29yaWdfY29s czsKIAogCS8qCiAJICogU3RhcnQgdXAgYSB0cmFuc2FjdGlvbiBjb21tYW5kLiAoTm90ZSB0 aGF0IHRoaXMgd2lsbCBub3JtYWxseSBjaGFuZ2UKQEAgLTI2MTgsMTEgKzI2MzIsNjEgQEAg 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 YXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHApOworCQkJcHR5cGUgPSBv cmlnX2F0dC0+YXR0dXNlcnR5cGlkOworCQkJcGNla2lkID0gb3JpZ19hdHQtPmF0dGNlazsK KwkJCXBjZWthbGcgPSBvcmlnX2F0dC0+YXR0dHlwbW9kOworCQkJUmVsZWFzZVN5c0NhY2hl KHRwKTsKKworCQkJaWYgKHBzcmMtPnBhcmFtX3R5cGVzW2ldID09IFBHX0VOQ1JZUFRFRF9E RVRPSUQpCisJCQkJcGZsYWdzIHw9IDB4MDAwMTsKKworCQkJTWF5YmVTZW5kQ29sdW1uRW5j cnlwdGlvbktleU1lc3NhZ2UocGNla2lkKTsKKwkJfQogCiAJCXBxX3NlbmRpbnQzMigmcm93 X2Rlc2NyaXB0aW9uX2J1ZiwgKGludCkgcHR5cGUpOworCQlpZiAoTXlQcm9jUG9ydC0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfc2VuZGludDMyKCZyb3dfZGVz Y3JpcHRpb25fYnVmLCAoaW50KSBwY2VraWQpOworCQkJcHFfc2VuZGludDMyKCZyb3dfZGVz Y3JpcHRpb25fYnVmLCBwY2VrYWxnKTsKKwkJCXBxX3NlbmRpbnQxNigmcm93X2Rlc2NyaXB0 aW9uX2J1ZiwgcGZsYWdzKTsKKwkJfQogCX0KIAlwcV9lbmRtZXNzYWdlX3JldXNlKCZyb3df ZGVzY3JpcHRpb25fYnVmKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCBjN2Q5ZDk2YjQ1Li4x ODBmODZjYjc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysg Yi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1 ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNp bmNsdWRlICJjb21tYW5kcy9jbHVzdGVyLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29sZW5j Y21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29udmVyc2lvbmNt ZHMuaCIKQEAgLTEzNyw2ICsxMzgsOCBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFk T25seShOb2RlICpwYXJzZXRyZWUpCiAJc3dpdGNoIChub2RlVGFnKHBhcnNldHJlZSkpCiAJ ewogCQljYXNlIFRfQWx0ZXJDb2xsYXRpb25TdG10OgorCQljYXNlIFRfQWx0ZXJDb2x1bW5F bmNyeXB0aW9uS2V5U3RtdDoKKwkJY2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoK IAkJY2FzZSBUX0FsdGVyRGF0YWJhc2VSZWZyZXNoQ29sbFN0bXQ6CiAJCWNhc2UgVF9BbHRl ckRhdGFiYXNlU2V0U3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0YWJhc2VTdG10OgpAQCAtMTQ0 MSw2ICsxNDQ0LDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJCQkJCQlzdG10LT5kZWZpbml0aW9uLAogCQkJCQkJCQkJCQkJCQkJJnNl Y29uZGFyeU9iamVjdCk7CiAJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DRUs6 CisJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0g Q3JlYXRlQ0VLKHBzdGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9C SkVDVF9DTUs6CisJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlh ZGRyZXNzID0gQ3JlYXRlQ01LKHBzdGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CiAJCQkJ CQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0g TklMKTsKIAkJCQkJCQlhZGRyZXNzID0gRGVmaW5lQ29sbGF0aW9uKHBzdGF0ZSwKQEAgLTE5 MDMsNiArMTkxNCwxNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRl LAogCQkJCWFkZHJlc3MgPSBBbHRlckNvbGxhdGlvbigoQWx0ZXJDb2xsYXRpb25TdG10ICop IHBhcnNldHJlZSk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5 cHRpb25LZXlTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXko cHN0YXRlLCAoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqKSBwYXJzZXRyZWUpOwor CQkJCWJyZWFrOworCisJCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10OgorCQkJ CWFkZHJlc3MgPSBBbHRlckNvbHVtbk1hc3RlcktleShwc3RhdGUsIChBbHRlckNvbHVtbk1h c3RlcktleVN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoK IAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCQkg KGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTIyMjUsNiArMjI0NCwxMiBAQCBBbHRl ck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpF Q1RfQ09MVU1OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1RBQkxFOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX0NFSzoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xVTU5fRU5DUllQ VElPTl9LRVk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJdGFnID0gQ01E VEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNU X0NPTlZFUlNJT046CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09OVkVSU0lPTjsKIAkJCWJy ZWFrOwpAQCAtMjY0MCw2ICsyNjY1LDEyIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFy c2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRhZyA9IENN RFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0NF SzoKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfQ09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJ CQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCXRhZyA9IENNRFRBR19EUk9Q X0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQlicmVhazsKIAkJCQlkZWZhdWx0OgogCQkJCQl0 YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTI3NjAsNiArMjc5MSwxMiBAQCBDcmVh dGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9DT0xMQVRJ T046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MTEFUSU9OOwogCQkJCQlicmVhazsK KwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1O X0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJ CQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVk7CisJCQkJCWJyZWFr OwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9IENNRFRBR19D UkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CkBAIC0yOTE3LDYgKzI5NTQsOSBA QCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIERJU0NBUkRf QUxMOgogCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9BTEw7CiAJCQkJCWJyZWFrOworCQkJ CWNhc2UgRElTQ0FSRF9DT0xVTU5fRU5DUllQVElPTl9LRVlTOgorCQkJCQl0YWcgPSBDTURU QUdfRElTQ0FSRF9DT0xVTU5fRU5DUllQVElPTl9LRVlTOworCQkJCQlicmVhazsKIAkJCQlj YXNlIERJU0NBUkRfUExBTlM6CiAJCQkJCXRhZyA9IENNRFRBR19ESVNDQVJEX1BMQU5TOwog CQkJCQlicmVhazsKQEAgLTMwNjMsNiArMzEwMywxNCBAQCBDcmVhdGVDb21tYW5kVGFnKE5v ZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xMQVRJT047CiAJCQli cmVhazsKIAorCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCXRh ZyA9IENNRFRBR19BTFRFUl9DT0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKwor CQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10OgorCQkJdGFnID0gQ01EVEFHX0FM VEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJlYWs7CisKIAkJY2FzZSBUX1ByZXBhcmVT dG10OgogCQkJdGFnID0gQ01EVEFHX1BSRVBBUkU7CiAJCQlicmVhazsKQEAgLTM2ODgsNiAr MzczNiwxNCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJbGV2 ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKIAorCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNy eXB0aW9uS2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKKwkJ Y2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERM OworCQkJYnJlYWs7CisKIAkJCS8qIGFscmVhZHktcGxhbm5lZCBxdWVyaWVzICovCiAJCWNh c2UgVF9QbGFubmVkU3RtdDoKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCA4Zjc1MjJk MTAzLi42YWViMDZmOGZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNs LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC0yMiw2ICsyMiw4IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3MuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2ZvcmVpZ25fc2VydmVyLmgiCkBAIC0xMDEsNiArMTAzLDEwIEBAIHN0YXRpYyBB Y2xNb2RlIGNvbnZlcnRfdGFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQp Owogc3RhdGljIEFjbE1vZGUgY29udmVydF9zZXF1ZW5jZV9wcml2X3N0cmluZyh0ZXh0ICpw cml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQXR0ck51bWJlciBjb252ZXJ0X2NvbHVtbl9uYW1l KE9pZCB0YWJsZW9pZCwgdGV4dCAqY29sdW1uKTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRf Y29sdW1uX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRpYyBPaWQJ Y29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfbmFtZSh0ZXh0ICpjZWtuYW1lKTsKK3N0 YXRpYyBBY2xNb2RlIGNvbnZlcnRfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZfc3RyaW5n KHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRpYyBPaWQJY29udmVydF9jb2x1bW5fbWFz dGVyX2tleV9uYW1lKHRleHQgKmNta25hbWUpOworc3RhdGljIEFjbE1vZGUgY29udmVydF9j b2x1bW5fbWFzdGVyX2tleV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBz dGF0aWMgT2lkCWNvbnZlcnRfZGF0YWJhc2VfbmFtZSh0ZXh0ICpkYXRhYmFzZW5hbWUpOwog c3RhdGljIEFjbE1vZGUgY29udmVydF9kYXRhYmFzZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2 X3R5cGVfdGV4dCk7CiBzdGF0aWMgT2lkCWNvbnZlcnRfZm9yZWlnbl9kYXRhX3dyYXBwZXJf bmFtZSh0ZXh0ICpmZHduYW1lKTsKQEAgLTgwMCw2ICs4MDYsMTQgQEAgYWNsZGVmYXVsdChP YmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFD TF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfU0VRVUVO Q0U7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJd29ybGRfZGVmYXVsdCA9 IEFDTF9OT19SSUdIVFM7CisJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfQ0VL OworCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCXdvcmxkX2RlZmF1bHQgPSBB Q0xfTk9fUklHSFRTOworCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX0NNSzsK KwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCS8qIGZvciBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eSwgZ3JhbnQgc29tZSByaWdodHMgYnkgZGVmYXVsdCAqLwogCQkJ d29ybGRfZGVmYXVsdCA9IEFDTF9DUkVBVEVfVEVNUCB8IEFDTF9DT05ORUNUOwpAQCAtOTEx LDYgKzkyNSwxMiBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElPTl9BUkdTKQogCQljYXNl ICdzJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfU0VRVUVOQ0U7CiAJCQlicmVhazsKKwkJY2Fz ZSAnWSc6CisJCQlvYmp0eXBlID0gT0JKRUNUX0NFSzsKKwkJCWJyZWFrOworCQljYXNlICd5 JzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfQ01LOworCQkJYnJlYWs7CiAJCWNhc2UgJ2QnOgog CQkJb2JqdHlwZSA9IE9CSkVDVF9EQVRBQkFTRTsKIAkJCWJyZWFrOwpAQCAtMjkxNSw2ICsy OTM1LDM4NCBAQCBjb252ZXJ0X2NvbHVtbl9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVf dGV4dCkKIH0KIAogCisvKgorICogaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxl Z2UgdmFyaWFudHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5hbWVkICJoYXNfY29sdW1uX2VuY3J5 cHRpb25fa2V5X3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KKyAqCQlUaGV5IHRha2Ug dmFyaW91cyBjb21iaW5hdGlvbnMgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5IG5hbWUsCisg KgkJY2VrIE9JRCwgdXNlciBuYW1lLCB1c2VyIE9JRCwgb3IgaW1wbGljaXQgdXNlciA9IGN1 cnJlbnRfdXNlci4KKyAqCisgKgkJVGhlIHJlc3VsdCBpcyBhIGJvb2xlYW4gdmFsdWU6IHRy dWUgaWYgdXNlciBoYXMgdGhlIGluZGljYXRlZAorICoJCXByaXZpbGVnZSwgZmFsc2UgaWYg bm90LgorICovCisKKy8qCisgKiBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVn ZV9uYW1lX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgZ2l2ZW4KKyAqCQluYW1lIHVzZXJuYW1lLCB0ZXh0IGNla25hbWUsIGFu ZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19jb2x1bW5fZW5jcnlwdGlvbl9r ZXlfcHJpdmlsZWdlX25hbWVfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVz ZXJuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkgICAqY2VrbmFtZSA9IFBHX0dF VEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJH X1RFWFRfUFAoMik7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCWNla2lkOworCUFjbE1vZGUJ CW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCXJvbGVpZCA9IGdldF9yb2xlX29p ZF9vcl9wdWJsaWMoTmFtZVN0cigqdXNlcm5hbWUpKTsKKwljZWtpZCA9IGNvbnZlcnRfY29s dW1uX2VuY3J5cHRpb25fa2V5X25hbWUoY2VrbmFtZSk7CisJbW9kZSA9IGNvbnZlcnRfY29s dW1uX2VuY3J5cHRpb25fa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtp ZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xD SEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZp bGVnZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgY29sdW1uIGVuY3J5 cHRpb24ga2V5IGdpdmVuCisgKgkJdGV4dCBjZWtuYW1lIGFuZCB0ZXh0IHByaXYgbmFtZS4K KyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1bQoraGFzX2NvbHVtbl9l bmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCXRl eHQJICAgKmNla25hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKKwl0ZXh0CSAgICpwcml2 X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlP aWQJCQljZWtpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisK Kwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwljZWtpZCA9IGNvbnZlcnRfY29sdW1uX2VuY3J5 cHRpb25fa2V5X25hbWUoY2VrbmFtZSk7CisJbW9kZSA9IGNvbnZlcnRfY29sdW1uX2VuY3J5 cHRpb25fa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtpZCwgcm9sZWlk LCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7 Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9uYW1l X2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgY29sdW1uIGVuY3J5cHRpb24g a2V5IGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb2lk LCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfY29sdW1uX2VuY3J5cHRp b25fa2V5X3ByaXZpbGVnZV9uYW1lX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJ dXNlcm5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwlPaWQJCQljZWtpZCA9IFBHX0dFVEFS R19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9Q UCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNs cmVzdWx0OworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCp1 c2VybmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2 X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3Rz MShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY2VraWQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5FbmNLZXlSZWxhdGlv bklkLCBjZWtpZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3Vs dCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX2VuY3J5cHRpb25f a2V5X3ByaXZpbGVnZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIGNvbHVt biBlbmNyeXB0aW9uIGtleSBnaXZlbgorICoJCWNvbHVtbiBlbmNyeXB0aW9uIGtleSBvaWQs IGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICov CitEYXR1bQoraGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfaWQoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlPaWQJCQljZWtpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQly b2xlaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJcm9s ZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNvbnZlcnRfY29sdW1uX2VuY3J5cHRpb25f a2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWlmICghU2VhcmNoU3lzQ2Fj aGVFeGlzdHMxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShjZWtpZCkpKQorCQlQR19SRVRV Uk5fTlVMTCgpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbkVuY0tl eVJlbGF0aW9uSWQsIGNla2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdfUkVUVVJOX0JPT0wo YWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19jb2x1bW5fZW5j cnlwdGlvbl9rZXlfcHJpdmlsZWdlX2lkX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVn ZXMgb24gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZ2l2ZW4KKyAqCQlyb2xlaWQsIHRleHQg Y2VrbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX2NvbHVtbl9l bmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfaWRfbmFtZShQR19GVU5DVElPTl9BUkdTKQorewor CU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqY2VrbmFtZSA9 IFBHX0dFVEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdf R0VUQVJHX1RFWFRfUFAoMik7CisJT2lkCQkJY2VraWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlB Y2xSZXN1bHQJYWNscmVzdWx0OworCisJY2VraWQgPSBjb252ZXJ0X2NvbHVtbl9lbmNyeXB0 aW9uX2tleV9uYW1lKGNla25hbWUpOworCW1vZGUgPSBjb252ZXJ0X2NvbHVtbl9lbmNyeXB0 aW9uX2tleV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2VraWQsIHJvbGVpZCwg bW9kZSk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOwor fQorCisvKgorICogaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfaWRfaWQK KyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg Z2l2ZW4KKyAqCQlyb2xlaWQsIGNlayBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLwor RGF0dW0KK2hhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlX2lkX2lkKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlP aWQJCQljZWtpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3Rl eHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3Vs dAlhY2xyZXN1bHQ7CisKKwltb2RlID0gY29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlf cHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJaWYgKCFTZWFyY2hTeXNDYWNoZUV4 aXN0czEoQ0VLT0lELCBPYmplY3RJZEdldERhdHVtKGNla2lkKSkpCisJCVBHX1JFVFVSTl9O VUxMKCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soQ29sdW1uRW5jS2V5UmVs YXRpb25JZCwgY2VraWQsIHJvbGVpZCwgbW9kZSk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xy ZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICoJCVN1cHBvcnQgcm91dGluZXMg Zm9yIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlIGZhbWlseS4KKyAqLwor CisvKgorICogR2l2ZW4gYSBDRUsgbmFtZSBleHByZXNzZWQgYXMgYSBzdHJpbmcsIGxvb2sg aXQgdXAgYW5kIHJldHVybiBPaWQKKyAqLworc3RhdGljIE9pZAorY29udmVydF9jb2x1bW5f ZW5jcnlwdGlvbl9rZXlfbmFtZSh0ZXh0ICpjZWtuYW1lKQoreworCXJldHVybiBnZXRfY2Vr X29pZCh0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdChjZWtuYW1lKSwgZmFsc2UpOworfQorCisv KgorICogY29udmVydF9jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdl9zdHJpbmcKKyAqCQlD b252ZXJ0IHRleHQgc3RyaW5nIHRvIEFjbE1vZGUgdmFsdWUuCisgKi8KK3N0YXRpYyBBY2xN b2RlCitjb252ZXJ0X2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2X3N0cmluZyh0ZXh0ICpw cml2X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMgY29uc3QgcHJpdl9tYXAgY29sdW1uX2VuY3J5 cHRpb25fa2V5X3ByaXZfbWFwW10gPSB7CisJCXsiVVNBR0UiLCBBQ0xfVVNBR0V9LAorCQl7 IlVTQUdFIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1VT QUdFKX0sCisJCXtOVUxMLCAwfQorCX07CisKKwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9z dHJpbmcocHJpdl90eXBlX3RleHQsIGNvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2X21hcCk7 Cit9CisKKworLyoKKyAqIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UgdmFyaWFu dHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5hbWVkICJoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJp dmlsZWdlIiBhdCB0aGUgU1FMIGxldmVsLgorICoJCVRoZXkgdGFrZSB2YXJpb3VzIGNvbWJp bmF0aW9ucyBvZiBjb2x1bW4gbWFzdGVyIGtleSBuYW1lLAorICoJCWNtayBPSUQsIHVzZXIg bmFtZSwgdXNlciBPSUQsIG9yIGltcGxpY2l0IHVzZXIgPSBjdXJyZW50X3VzZXIuCisgKgor ICoJCVRoZSByZXN1bHQgaXMgYSBib29sZWFuIHZhbHVlOiB0cnVlIGlmIHVzZXIgaGFzIHRo ZSBpbmRpY2F0ZWQKKyAqCQlwcml2aWxlZ2UsIGZhbHNlIGlmIG5vdC4KKyAqLworCisvKgor ICogaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9uYW1lX25hbWUKKyAqCQlDaGVj ayB1c2VyIHByaXZpbGVnZXMgb24gYSBjb2x1bW4gbWFzdGVyIGtleSBnaXZlbgorICoJCW5h bWUgdXNlcm5hbWUsIHRleHQgY21rbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitE YXR1bQoraGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9uYW1lX25hbWUoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlOYW1lCQl1c2VybmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOwor CXRleHQJICAgKmNta25hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpw cml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsK KwlPaWQJCQljbWtpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7 CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnVzZXJuYW1l KSk7CisJY21raWQgPSBjb252ZXJ0X2NvbHVtbl9tYXN0ZXJfa2V5X25hbWUoY21rbmFtZSk7 CisJbW9kZSA9IGNvbnZlcnRfY29sdW1uX21hc3Rlcl9rZXlfcHJpdl9zdHJpbmcocHJpdl90 eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKENvbHVtbk1hc3Rl cktleVJlbGF0aW9uSWQsIGNta2lkLCByb2xlaWQsIG1vZGUpOworCisJUEdfUkVUVVJOX0JP T0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19jb2x1bW5f bWFzdGVyX2tleV9wcml2aWxlZ2VfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIGNvbHVtbiBtYXN0ZXIga2V5IGdpdmVuCisgKgkJdGV4dCBjbWtuYW1lIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1bQor aGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJdGV4dAkgICAqY21rbmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOworCXRleHQJ ICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9s ZWlkOworCU9pZAkJCWNta2lkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJl c3VsdDsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCWNta2lkID0gY29udmVydF9jb2x1 bW5fbWFzdGVyX2tleV9uYW1lKGNta25hbWUpOworCW1vZGUgPSBjb252ZXJ0X2NvbHVtbl9t YXN0ZXJfa2V5X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtpZCwgcm9s ZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19P Syk7Cit9CisKKy8qCisgKiBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlX25hbWVf aWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBjb2x1bW4gbWFzdGVyIGtleSBn aXZlbgorICoJCW5hbWUgdXNlbmFtZSwgY29sdW1uIG1hc3RlciBrZXkgb2lkLCBhbmQgdGV4 dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlX25hbWVfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlOYW1lCQl1c2VybmFtZSA9IFBH X0dFVEFSR19OQU1FKDApOworCU9pZAkJCWNta2lkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0 ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJ CXJvbGVpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwly b2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnVzZXJuYW1lKSk7CisJ bW9kZSA9IGNvbnZlcnRfY29sdW1uX21hc3Rlcl9rZXlfcHJpdl9zdHJpbmcocHJpdl90eXBl X3RleHQpOworCisJaWYgKCFTZWFyY2hTeXNDYWNoZUV4aXN0czEoQ01LT0lELCBPYmplY3RJ ZEdldERhdHVtKGNta2lkKSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlhY2xyZXN1bHQg PSBvYmplY3RfYWNsY2hlY2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21raWQsIHJv bGVpZCwgbW9kZSk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tf T0spOworfQorCisvKgorICogaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9pZAor ICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIGNvbHVtbiBtYXN0ZXIga2V5IGdpdmVu CisgKgkJY29sdW1uIG1hc3RlciBrZXkgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKgkJ Y3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19jb2x1bW5fbWFzdGVy X2tleV9wcml2aWxlZ2VfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQljbWtpZCA9 IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRB UkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xS ZXN1bHQJYWNscmVzdWx0OworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNv bnZlcnRfY29sdW1uX21hc3Rlcl9rZXlfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOwor CisJaWYgKCFTZWFyY2hTeXNDYWNoZUV4aXN0czEoQ01LT0lELCBPYmplY3RJZEdldERhdHVt KGNta2lkKSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21raWQsIHJvbGVpZCwgbW9k ZSk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQor CisvKgorICogaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9pZF9uYW1lCisgKgkJ Q2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgY29sdW1uIG1hc3RlciBrZXkgZ2l2ZW4KKyAq CQlyb2xlaWQsIHRleHQgY21rbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1 bQoraGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9pZF9uYW1lKFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAg ICpjbWtuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90eXBl X3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQljbWtpZDsKKwlBY2xNb2Rl CQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwljbWtpZCA9IGNvbnZlcnRfY29s dW1uX21hc3Rlcl9rZXlfbmFtZShjbWtuYW1lKTsKKwltb2RlID0gY29udmVydF9jb2x1bW5f bWFzdGVyX2tleV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQg PSBvYmplY3RfYWNsY2hlY2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21raWQsIHJv bGVpZCwgbW9kZSk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tf T0spOworfQorCisvKgorICogaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZV9pZF9p ZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIGNvbHVtbiBtYXN0ZXIga2V5IGdp dmVuCisgKgkJcm9sZWlkLCBjbWsgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0Rh dHVtCitoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlX2lkX2lkKFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlPaWQJCQlj bWtpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQ R19HRVRBUkdfVEVYVF9QUCgyKTsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xy ZXN1bHQ7CisKKwltb2RlID0gY29udmVydF9jb2x1bW5fbWFzdGVyX2tleV9wcml2X3N0cmlu Zyhwcml2X3R5cGVfdGV4dCk7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShDTUtP SUQsIE9iamVjdElkR2V0RGF0dW0oY21raWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwor CWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklk LCBjbWtpZCwgcm9sZWlkLCBtb2RlKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9 PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKgkJU3VwcG9ydCByb3V0aW5lcyBmb3IgaGFz X2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSBmYW1pbHkuCisgKi8KKworLyoKKyAqIEdp dmVuIGEgQ01LIG5hbWUgZXhwcmVzc2VkIGFzIGEgc3RyaW5nLCBsb29rIGl0IHVwIGFuZCBy ZXR1cm4gT2lkCisgKi8KK3N0YXRpYyBPaWQKK2NvbnZlcnRfY29sdW1uX21hc3Rlcl9rZXlf bmFtZSh0ZXh0ICpjbWtuYW1lKQoreworCXJldHVybiBnZXRfY21rX29pZCh0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdChjbWtuYW1lKSwgZmFsc2UpOworfQorCisvKgorICogY29udmVydF9j b2x1bW5fbWFzdGVyX2tleV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJpbmcg dG8gQWNsTW9kZSB2YWx1ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfY29sdW1u X21hc3Rlcl9rZXlfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpCit7CisJc3Rh dGljIGNvbnN0IHByaXZfbWFwIGNvbHVtbl9tYXN0ZXJfa2V5X3ByaXZfbWFwW10gPSB7CisJ CXsiVVNBR0UiLCBBQ0xfVVNBR0V9LAorCQl7IlVTQUdFIFdJVEggR1JBTlQgT1BUSU9OIiwg QUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1VTQUdFKX0sCisJCXtOVUxMLCAwfQorCX07CisK KwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQsIGNvbHVt bl9tYXN0ZXJfa2V5X3ByaXZfbWFwKTsKK30KKworCiAvKgogICogaGFzX2RhdGFiYXNlX3By aXZpbGVnZSB2YXJpYW50cwogICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhhc19kYXRhYmFz ZV9wcml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEu YwppbmRleCA1Nzc4ZTNmMGVmLi5kZDIxZmNmNTllIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJs ZW5hLmMKQEAgLTY3OSw2ICs2NzksMTEzIEBAIHVua25vd25zZW5kKFBHX0ZVTkNUSU9OX0FS R1MpCiAJUEdfUkVUVVJOX0JZVEVBX1AocHFfZW5kdHlwc2VuZCgmYnVmKSk7CiB9CiAKKy8q CisgKiBwZ19lbmNyeXB0ZWRfaW4gLQorICoKKyAqIElucHV0IGZ1bmN0aW9uIGZvciBwZ19l bmNyeXB0ZWRfKiB0eXBlcy4KKyAqCisgKiBUaGUgZm9ybWF0IGFuZCBhZGRpdGlvbmFsIGNo ZWNrcyBlbnN1cmUgdGhhdCBvbmUgY2Fubm90IGVhc2lseSBpbnNlcnQgYQorICogdmFsdWUg ZGlyZWN0bHkgaW50byBhbiBlbmNyeXB0ZWQgY29sdW1uIGJ5IGFjY2lkZW50LiAgKFRoYXQn cyB3aHkgd2UgZG9uJ3QKKyAqIGp1c3QgdXNlIHRoZSBieXRlYSBmb3JtYXQsIGZvciBleGFt cGxlLikgIEJ1dCB3ZSBzdGlsbCBoYXZlIHRvIHN1cHBvcnQKKyAqIGRpcmVjdCBpbnNlcnRz IGludG8gZW5jcnlwdGVkIGNvbHVtbnMsIGZvciBleGFtcGxlIGZvciByZXN0b3JpbmcgYmFj a3VwcworICogbWFkZSBieSBwZ19kdW1wLgorICovCitEYXR1bQorcGdfZW5jcnlwdGVkX2lu KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJY2hhcgkgICAqaW5wdXRUZXh0ID0gUEdfR0VUQVJH X0NTVFJJTkcoMCk7CisJTm9kZQkgICAqZXNjb250ZXh0ID0gZmNpbmZvLT5jb250ZXh0Owor CWNoYXIJICAgKmlwOworCXNpemVfdAkJaGV4bGVuOworCWludAkJCWJjOworCWJ5dGVhCSAg ICpyZXN1bHQ7CisKKwlpZiAoc3RybmNtcChpbnB1dFRleHQsICJlbmNyeXB0ZWQkIiwgMTAp ICE9IDApCisJCWVyZXR1cm4oZXNjb250ZXh0LCAoRGF0dW0pIDAsCisJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJpbnZh bGlkIGlucHV0IHZhbHVlIGZvciBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlOiBcIiVzXCIiLAor CQkJCQkgICBpbnB1dFRleHQpKTsKKworCWlwID0gaW5wdXRUZXh0ICsgMTA7CisJaGV4bGVu ID0gc3RybGVuKGlwKTsKKworCS8qIHNhbml0eSBjaGVjayB0byBjYXRjaCBvYnZpb3VzIG1p c3Rha2VzICovCisJaWYgKGhleGxlbiAvIDIgPCAzMiB8fCAoaGV4bGVuIC8gMikgJSAxNiAh PSAwKQorCQllcmV0dXJuKGVzY29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCWVycm1zZygiaW52YWxp ZCBpbnB1dCB2YWx1ZSBmb3IgZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZTogXCIlc1wiIiwKKwkJ CQkJICAgaW5wdXRUZXh0KSk7CisKKwliYyA9IGhleGxlbiAvIDIgKyBWQVJIRFJTWjsJLyog bWF4aW11bSBwb3NzaWJsZSBsZW5ndGggKi8KKwlyZXN1bHQgPSBwYWxsb2MoYmMpOworCWJj ID0gaGV4X2RlY29kZShpcCwgaGV4bGVuLCBWQVJEQVRBKHJlc3VsdCkpOworCVNFVF9WQVJT SVpFKHJlc3VsdCwgYmMgKyBWQVJIRFJTWik7IC8qIGFjdHVhbCBsZW5ndGggKi8KKworCVBH X1JFVFVSTl9CWVRFQV9QKHJlc3VsdCk7Cit9CisKKy8qCisgKiBwZ19lbmNyeXB0ZWRfb3V0 IC0KKyAqCisgKiBPdXRwdXQgZnVuY3Rpb24gZm9yIHBnX2VuY3J5cHRlZF8qIHR5cGVzLgor ICoKKyAqIFRoaXMgb3V0cHV0IGlzIHNlZW4gd2hlbiByZWFkaW5nIGFuIGVuY3J5cHRlZCBj b2x1bW4gd2l0aG91dCBjb2x1bW4KKyAqIGVuY3J5cHRpb24gbW9kZSBlbmFibGVkLiAgVGhl cmVmb3JlLCB0aGUgb3V0cHV0IGZvcm1hdCBpcyBjaG9zZW4gc28gdGhhdCBpdAorICogaXMg ZWFzaWx5IHJlY29nbml6YWJsZS4KKyAqLworRGF0dW0KK3BnX2VuY3J5cHRlZF9vdXQoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwlieXRlYQkgICAqdmxlbmEgPSBQR19HRVRBUkdfQllURUFf UFAoMCk7CisJY2hhcgkgICAqcmVzdWx0OworCWNoYXIJICAgKnJwOworCisJcnAgPSByZXN1 bHQgPSBwYWxsb2MoVkFSU0laRV9BTllfRVhIRFIodmxlbmEpICogMiArIDEwICsgMSk7CisJ bWVtY3B5KHJwLCAiZW5jcnlwdGVkJCIsIDEwKTsKKwlycCArPSAxMDsKKwlycCArPSBoZXhf ZW5jb2RlKFZBUkRBVEFfQU5ZKHZsZW5hKSwgVkFSU0laRV9BTllfRVhIRFIodmxlbmEpLCBy cCk7CisJKnJwID0gJ1wwJzsKKwlQR19SRVRVUk5fQ1NUUklORyhyZXN1bHQpOworfQorCisv KgorICogcGdfZW5jcnlwdGVkX3JlY3YgLQorICoKKyAqIFJlY2VpdmUgZnVuY3Rpb24gZm9y IHBnX2VuY3J5cHRlZF8qIHR5cGVzLgorICovCitEYXR1bQorcGdfZW5jcnlwdGVkX3JlY3Yo UEdfRlVOQ1RJT05fQVJHUykKK3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IChTdHJpbmdJbmZvKSBQ R19HRVRBUkdfUE9JTlRFUigwKTsKKwlieXRlYQkgICAqcmVzdWx0OworCWludAkJCW5ieXRl czsKKworCW5ieXRlcyA9IGJ1Zi0+bGVuIC0gYnVmLT5jdXJzb3I7CisJLyogc2FuaXR5IGNo ZWNrIHRvIGNhdGNoIG9idmlvdXMgbWlzdGFrZXMgKi8KKwlpZiAobmJ5dGVzIDwgMzIpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JF UFJFU0VOVEFUSU9OKSwKKwkJCQllcnJtc2coImludmFsaWQgYmluYXJ5IGlucHV0IHZhbHVl IGZvciBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlIikpOworCXJlc3VsdCA9IChieXRlYSAqKSBw YWxsb2MobmJ5dGVzICsgVkFSSERSU1opOworCVNFVF9WQVJTSVpFKHJlc3VsdCwgbmJ5dGVz ICsgVkFSSERSU1opOworCXBxX2NvcHltc2dieXRlcyhidWYsIFZBUkRBVEEocmVzdWx0KSwg bmJ5dGVzKTsKKwlQR19SRVRVUk5fQllURUFfUChyZXN1bHQpOworfQorCisvKgorICogcGdf ZW5jcnlwdGVkX3NlbmQgLQorICoKKyAqIFNlbmQgZnVuY3Rpb24gZm9yIHBnX2VuY3J5cHRl ZF8qIHR5cGVzLgorICovCitEYXR1bQorcGdfZW5jcnlwdGVkX3NlbmQoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlieXRlYQkgICAqdmxlbmEgPSBQR19HRVRBUkdfQllURUFfUF9DT1BZKDAp OworCisJLyoganVzdCByZXR1cm4gaW5wdXQgKi8KKwlQR19SRVRVUk5fQllURUFfUCh2bGVu YSk7Cit9CisKIAogLyogPT09PT09PT09PSBQVUJMSUMgUk9VVElORVMgPT09PT09PT09PSAq LwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGMwNzM4MjA1MWQu LjdhZDE1OTExMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0y NCw3ICsyNCwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYW1wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYW5ndWFnZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCkBAIC0yNjU4LDYgKzI2NjEsMjUg QEAgdHlwZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBpZCkKIAlyZXR1cm4gKGdldF90eXB0eXBl KHR5cGlkKSA9PSBUWVBUWVBFX01VTFRJUkFOR0UpOwogfQogCitib29sCit0eXBlX2lzX2Vu Y3J5cHRlZChPaWQgdHlwaWQpCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAgPSBTZWFyY2hT eXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpZCkpOworCWlmIChIZWFw VHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAoRm9ybV9w Z190eXBlKSBHRVRTVFJVQ1QodHApOworCQlib29sCQlyZXN1bHQ7CisKKwkJcmVzdWx0ID0g KHR5cHR1cC0+dHlwY2F0ZWdvcnkgPT0gVFlQQ0FURUdPUllfRU5DUllQVEVEKTsKKwkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJZWxzZQorCQlyZXR1 cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBnZXRfdHlwZV9jYXRlZ29yeV9wcmVmZXJyZWQKICAq CkBAIC0zNjgzLDMgKzM3MDUsNjQgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJp ZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKK2NoYXIgKgor Z2V0X2Nla19uYW1lKE9pZCBjZWtpZCwgYm9vbCBtaXNzaW5nX29rKQoreworCUhlYXBUdXBs ZQl0dXA7CisJY2hhcgkgICAqY2VrbmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShD RUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY2VraWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIsIGNla2lk KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJY2VrbmFtZSA9IHBzdHJkdXAoTmFtZVN0cigo KEZvcm1fcGdfY29sZW5ja2V5KSBHRVRTVFJVQ1QodHVwKSktPmNla25hbWUpKTsKKworCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIGNla25hbWU7Cit9CisKK09pZAorZ2V0 X2Nla2RhdGFfb2lkKE9pZCBjZWtpZCwgT2lkIGNta2lkLCBib29sIG1pc3Npbmdfb2spCit7 CisJT2lkCQkJY2VrZGF0YWlkOworCisJY2VrZGF0YWlkID0gR2V0U3lzQ2FjaGVPaWQyKENF S0RBVEFDRUtDTUssIEFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQsCisJCQkJCQkJCU9iamVj dElkR2V0RGF0dW0oY2VraWQpLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKGNta2lkKSk7 CisJaWYgKCFPaWRJc1ZhbGlkKGNla2RhdGFpZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJ CQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGhhcyBubyBkYXRhIGZv ciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQlnZXRfY2VrX25hbWUoY2VraWQsIGZhbHNl KSwgZ2V0X2Nta19uYW1lKGNta2lkLCBmYWxzZSkpKSk7CisKKwlyZXR1cm4gY2VrZGF0YWlk OworfQorCitjaGFyICoKK2dldF9jbWtfbmFtZShPaWQgY21raWQsIGJvb2wgbWlzc2luZ19v aykKK3sKKwlIZWFwVHVwbGUJdHVwOworCWNoYXIJICAgKmNta25hbWU7CisKKwl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta2lkKSk7CisKKwlp ZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwl7CisJCWlmICghbWlzc2luZ19vaykKKwkJ CWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gbWFzdGVyIGtl eSAldSIsIGNta2lkKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJY21rbmFtZSA9IHBzdHJk dXAoTmFtZVN0cigoKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwKSktPmNt a25hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIGNta25hbWU7 Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDc3YzJiYTNmOGYu LmQ0MGFmMTNlZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5j YWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC05 Nyw4ICs5Nyw2IEBAIHN0YXRpYyBkbGlzdF9oZWFkIHNhdmVkX3BsYW5fbGlzdCA9IERMSVNU X1NUQVRJQ19JTklUKHNhdmVkX3BsYW5fbGlzdCk7CiBzdGF0aWMgZGxpc3RfaGVhZCBjYWNo ZWRfZXhwcmVzc2lvbl9saXN0ID0gRExJU1RfU1RBVElDX0lOSVQoY2FjaGVkX2V4cHJlc3Np b25fbGlzdCk7CiAKIHN0YXRpYyB2b2lkIFJlbGVhc2VHZW5lcmljUGxhbihDYWNoZWRQbGFu U291cmNlICpwbGFuc291cmNlKTsKLXN0YXRpYyBMaXN0ICpSZXZhbGlkYXRlQ2FjaGVkUXVl cnkoQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKLQkJCQkJCQkJICAgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOwogc3RhdGljIGJvb2wgQ2hlY2tDYWNoZWRQbGFuKENhY2hl ZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpOwogc3RhdGljIENhY2hlZFBsYW4gKkJ1aWxkQ2Fj aGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLCBMaXN0ICpxbGlzdCwKIAkJ CQkJCQkJICAgUGFyYW1MaXN0SW5mbyBib3VuZFBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAq cXVlcnlFbnYpOwpAQCAtNTUxLDcgKzU0OSw3IEBAIFJlbGVhc2VHZW5lcmljUGxhbihDYWNo ZWRQbGFuU291cmNlICpwbGFuc291cmNlKQogICogaGFkIHRvIGRvIHJlLWFuYWx5c2lzLCBh bmQgTklMIG90aGVyd2lzZS4gIChUaGlzIGlzIHJldHVybmVkIGp1c3QgdG8gc2F2ZQogICog YSB0cmVlIGNvcHlpbmcgc3RlcCBpbiBhIHN1YnNlcXVlbnQgQnVpbGRDYWNoZWRQbGFuIGNh bGwuKQogICovCi1zdGF0aWMgTGlzdCAqCitMaXN0ICoKIFJldmFsaWRhdGVDYWNoZWRRdWVy eShDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogCQkJCQkgIFF1ZXJ5RW52aXJvbm1l bnQgKnF1ZXJ5RW52KQogewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv c3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKaW5kZXgg OTRhYmVkZTUxMi4uZWI0MzIyNjBkYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNo ZS5jCkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1i ZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCkBA IC0yMTksNiArMjIyLDMyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVkZXNjIGNhY2hl aW5mb1tdID0gewogCQkJQW51bV9wZ19jYXN0X2Nhc3R0YXJnZXQpLAogCQkyNTYKIAl9LAor CVtDRUtEQVRBQ0VLQ01LXSA9IHsKKwkJQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsCisJ CUNvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLAorCQlLRVkoQW51bV9wZ19jb2xlbmNr ZXlkYXRhX2NrZGNla2lkLAorCQkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNta2lkKSwK KwkJOAorCX0sCisJW0NFS0RBVEFPSURdID0geworCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRp b25JZCwKKwkJQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsCisJCUtFWShBbnVtX3BnX2Nv bGVuY2tleWRhdGFfb2lkKSwKKwkJOAorCX0sCisJW0NFS05BTUVOU1BdID0geworCQlDb2x1 bW5FbmNLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5FbmNLZXlOYW1lTnNwSW5kZXhJZCwKKwkJ S0VZKEFudW1fcGdfY29sZW5ja2V5X2Nla25hbWUsCisJCQlBbnVtX3BnX2NvbGVuY2tleV9j ZWtuYW1lc3BhY2UpLAorCQk4CisJfSwKKwlbQ0VLT0lEXSA9IHsKKwkJQ29sdW1uRW5jS2V5 UmVsYXRpb25JZCwKKwkJQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwKKwkJS0VZKEFudW1fcGdf Y29sZW5ja2V5X29pZCksCisJCTgKKwl9LAogCVtDTEFBTU5BTUVOU1BdID0gewogCQlPcGVy YXRvckNsYXNzUmVsYXRpb25JZCwKIAkJT3BjbGFzc0FtTmFtZU5zcEluZGV4SWQsCkBAIC0y MzMsNiArMjYyLDE5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVkZXNjIGNhY2hlaW5m b1tdID0gewogCQlLRVkoQW51bV9wZ19vcGNsYXNzX29pZCksCiAJCTgKIAl9LAorCVtDTUtO QU1FTlNQXSA9IHsKKwkJQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwKKwkJQ29sdW1uTWFz dGVyS2V5TmFtZU5zcEluZGV4SWQsCisJCUtFWShBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtu YW1lLAorCQkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZXNwYWNlKSwKKwkJOAorCX0s CisJW0NNS09JRF0gPSB7CisJCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCisJCUNvbHVt bk1hc3RlcktleU9pZEluZGV4SWQsCisJCUtFWShBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQp LAorCQk4CisJfSwKIAlbQ09MTE5BTUVFTkNOU1BdID0gewogCQlDb2xsYXRpb25SZWxhdGlv bklkLAogCQlDb2xsYXRpb25OYW1lRW5jTnNwSW5kZXhJZCwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21iL21idXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRp bHMuYwppbmRleCAwMzM2NDcwMTFiLi40YjZiZTY4ZjI3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9tYi9tYnV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1 dGlscy5jCkBAIC0zNiw3ICszNiw5IEBACiAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgog I2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEt YmUuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRp bHMuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgpAQCAtMTMwLDYgKzEzMiwxMiBA QCBQcmVwYXJlQ2xpZW50RW5jb2RpbmcoaW50IGVuY29kaW5nKQogCQllbmNvZGluZyA9PSBQ R19TUUxfQVNDSUkpCiAJCXJldHVybiAwOwogCisJLyoKKwkgKiBDYW5ub3QgZG8gY29udmVy c2lvbiB3aGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuCisJICovCisJaWYgKE15 UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXJldHVybiAtMTsKKwog CWlmIChJc1RyYW5zYWN0aW9uU3RhdGUoKSkKIAl7CiAJCS8qCkBAIC0yMzcsNiArMjQ1LDEy IEBAIFNldENsaWVudEVuY29kaW5nKGludCBlbmNvZGluZykKIAkJcmV0dXJuIDA7CiAJfQog CisJLyoKKwkgKiBDYW5ub3QgZG8gY29udmVyc2lvbiB3aGVuIGNvbHVtbiBlbmNyeXB0aW9u IGlzIGVuYWJsZWQuCisJICovCisJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9u X2VuYWJsZWQpCisJCXJldHVybiAtMTsKKwogCS8qCiAJICogU2VhcmNoIHRoZSBjYWNoZSBm b3IgdGhlIGVudHJ5IHByZXZpb3VzbHkgcHJlcGFyZWQgYnkKIAkgKiBQcmVwYXJlQ2xpZW50 RW5jb2Rpbmc7IGlmIHRoZXJlIGlzbid0IG9uZSwgd2UgbG9zZS4gIFdoaWxlIGF0IGl0LApA QCAtMjk3LDcgKzMxMSw5IEBAIEluaXRpYWxpemVDbGllbnRFbmNvZGluZyh2b2lkKQogCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNn KCJjb252ZXJzaW9uIGJldHdlZW4gJXMgYW5kICVzIGlzIG5vdCBzdXBwb3J0ZWQiLAogCQkJ CQkJcGdfZW5jMm5hbWVfdGJsW3BlbmRpbmdfY2xpZW50X2VuY29kaW5nXS5uYW1lLAotCQkJ CQkJR2V0RGF0YWJhc2VFbmNvZGluZ05hbWUoKSkpKTsKKwkJCQkJCUdldERhdGFiYXNlRW5j b2RpbmdOYW1lKCkpLAorCQkJCSAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCkgPworCQkJCSBlcnJkZXRhaWwoIkVuY29kaW5nIGNvbnZlcnNpb24gaXMgbm90IHBv c3NpYmxlIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4iKSA6IDApKTsKIAl9 CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jp bi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IGE0M2YyZTU1NTMuLmU2NzQ2MmM4MWEgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMKQEAgLTE4LDcgKzE4LDkgQEAKICNpbmNsdWRlIDxjdHlwZS5oPgogCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jbGFzc19kLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xl bmNrZXlfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uX2QuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19leHRlbnNpb25fZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlX2QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yX2QuaCIKQEAgLTIwMSw2ICsyMDMsMTIg QEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlw Z19sb2dfaW5mbygicmVhZGluZyB1c2VyLWRlZmluZWQgY29sbGF0aW9ucyIpOwogCSh2b2lk KSBnZXRDb2xsYXRpb25zKGZvdXQsICZudW1Db2xsYXRpb25zKTsKIAorCXBnX2xvZ19pbmZv KCJyZWFkaW5nIGNvbHVtbiBtYXN0ZXIga2V5cyIpOworCWdldENvbHVtbk1hc3RlcktleXMo Zm91dCk7CisKKwlwZ19sb2dfaW5mbygicmVhZGluZyBjb2x1bW4gZW5jcnlwdGlvbiBrZXlz Iik7CisJZ2V0Q29sdW1uRW5jcnlwdGlvbktleXMoZm91dCk7CisKIAlwZ19sb2dfaW5mbygi cmVhZGluZyB1c2VyLWRlZmluZWQgY29udmVyc2lvbnMiKTsKIAlnZXRDb252ZXJzaW9ucyhm b3V0LCAmbnVtQ29udmVyc2lvbnMpOwogCkBAIC04NTksNiArODY3LDQyIEBAIGZpbmRPcHJC eU9pZChPaWQgb2lkKQogCXJldHVybiAoT3BySW5mbyAqKSBkb2JqOwogfQogCisvKgorICog ZmluZENla0J5T2lkCisgKgkgIGZpbmRzIHRoZSBEdW1wYWJsZU9iamVjdCBmb3IgdGhlIENF SyB3aXRoIHRoZSBnaXZlbiBvaWQKKyAqCSAgcmV0dXJucyBOVUxMIGlmIG5vdCBmb3VuZAor ICovCitDZWtJbmZvICoKK2ZpbmRDZWtCeU9pZChPaWQgb2lkKQoreworCUNhdGFsb2dJZAlj YXRJZDsKKwlEdW1wYWJsZU9iamVjdCAqZG9iajsKKworCWNhdElkLnRhYmxlb2lkID0gQ29s dW1uRW5jS2V5UmVsYXRpb25JZDsKKwljYXRJZC5vaWQgPSBvaWQ7CisJZG9iaiA9IGZpbmRP YmplY3RCeUNhdGFsb2dJZChjYXRJZCk7CisJQXNzZXJ0KGRvYmogPT0gTlVMTCB8fCBkb2Jq LT5vYmpUeXBlID09IERPX0NFSyk7CisJcmV0dXJuIChDZWtJbmZvICopIGRvYmo7Cit9CisK Ky8qCisgKiBmaW5kQ21rQnlPaWQKKyAqCSAgZmluZHMgdGhlIER1bXBhYmxlT2JqZWN0IGZv ciB0aGUgQ01LIHdpdGggdGhlIGdpdmVuIG9pZAorICoJICByZXR1cm5zIE5VTEwgaWYgbm90 IGZvdW5kCisgKi8KK0Nta0luZm8gKgorZmluZENta0J5T2lkKE9pZCBvaWQpCit7CisJQ2F0 YWxvZ0lkCWNhdElkOworCUR1bXBhYmxlT2JqZWN0ICpkb2JqOworCisJY2F0SWQudGFibGVv aWQgPSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOworCWNhdElkLm9pZCA9IG9pZDsKKwlk b2JqID0gZmluZE9iamVjdEJ5Q2F0YWxvZ0lkKGNhdElkKTsKKwlBc3NlcnQoZG9iaiA9PSBO VUxMIHx8IGRvYmotPm9ialR5cGUgPT0gRE9fQ01LKTsKKwlyZXR1cm4gKENta0luZm8gKikg ZG9iajsKK30KKwogLyoKICAqIGZpbmRDb2xsYXRpb25CeU9pZAogICoJICBmaW5kcyB0aGUg RHVtcGFibGVPYmplY3QgZm9yIHRoZSBjb2xsYXRpb24gd2l0aCB0aGUgZ2l2ZW4gb2lkCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1 bXAvZHVtcHV0aWxzLmMKaW5kZXggOTc1M2E2ZDg2OC4uMGE1MTc4YmNmMSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9k dW1wdXRpbHMuYwpAQCAtNDg0LDYgKzQ4NCwxMCBAQCBkbyB7IFwKIAkJQ09OVkVSVF9QUklW KCdDJywgIkNSRUFURSIpOwogCQlDT05WRVJUX1BSSVYoJ1UnLCAiVVNBR0UiKTsKIAl9CisJ ZWxzZSBpZiAoc3RyY21wKHR5cGUsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiKSA9PSAwKQor CQlDT05WRVJUX1BSSVYoJ1UnLCAiVVNBR0UiKTsKKwllbHNlIGlmIChzdHJjbXAodHlwZSwg IkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCkKKwkJQ09OVkVSVF9QUklWKCdVJywgIlVTQUdF Iik7CiAJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJEQVRBQkFTRSIpID09IDApCiAJewogCQlD T05WRVJUX1BSSVYoJ0MnLCAiQ1JFQVRFIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggYWJh NzgwZWY0Yi4uYWZiYTc5YjJlYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtODUsNiArODUs NyBAQCB0eXBlZGVmIHN0cnVjdCBfY29ublBhcmFtcwogCWNoYXIJICAgKnBnaG9zdDsKIAlj aGFyCSAgICp1c2VybmFtZTsKIAl0cml2YWx1ZQlwcm9tcHRQYXNzd29yZDsKKwlpbnQJCQlj b2x1bW5fZW5jcnlwdGlvbjsKIAkvKiBJZiBub3QgTlVMTCwgdGhpcyBvdmVycmlkZXMgdGhl IGRibmFtZSBvYnRhaW5lZCBmcm9tIGNvbW1hbmQgbGluZSAqLwogCS8qIChidXQgKm9ubHkq IHRoZSBEQiBuYW1lLCBub3QgYW55dGhpbmcgZWxzZSBpbiB0aGUgY29ubnN0cmluZykgKi8K IAljaGFyCSAgICpvdmVycmlkZV9kYm5hbWU7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMKaW5kZXggNjFlYmI4ZmU4NS4uYmMzMDM1NTBmZCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzM5Niw2ICszMzk2LDggQEAgX2dldE9iamVj dERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCiAJ Lyogb2JqZWN0cyB0aGF0IGRvbid0IHJlcXVpcmUgc3BlY2lhbCBkZWNvcmF0aW9uICovCiAJ aWYgKHN0cmNtcCh0eXBlLCAiQ09MTEFUSU9OIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwg IkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJDT0xV TU4gTUFTVEVSIEtFWSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJDT05WRVJTSU9OIikg PT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIkRPTUFJTiIpID09IDAgfHwKIAkJc3RyY21wKHR5 cGUsICJGT1JFSUdOIFRBQkxFIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cF9kYi5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCmlu ZGV4IGY3NjZiNjUwNTkuLmM5MGMyODAzZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfZGIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMK QEAgLTEzMyw4ICsxMzMsOCBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhYLAogCSAq LwogCWRvCiAJewotCQljb25zdCBjaGFyICprZXl3b3Jkc1s4XTsKLQkJY29uc3QgY2hhciAq dmFsdWVzWzhdOworCQljb25zdCBjaGFyICprZXl3b3Jkc1s5XTsKKwkJY29uc3QgY2hhciAq dmFsdWVzWzldOwogCQlpbnQJCQlpID0gMDsKIAogCQkvKgpAQCAtMTU5LDYgKzE1OSwxMSBA QCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhYLAogCQl9CiAJCWtleXdvcmRzW2ldID0g ImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUiOwogCQl2YWx1ZXNbaSsrXSA9IHByb2duYW1l OworCQlpZiAoY3BhcmFtcy0+Y29sdW1uX2VuY3J5cHRpb24pCisJCXsKKwkJCWtleXdvcmRz W2ldID0gImNvbHVtbl9lbmNyeXB0aW9uIjsKKwkJCXZhbHVlc1tpKytdID0gIjEiOworCQl9 CiAJCWtleXdvcmRzW2ldID0gTlVMTDsKIAkJdmFsdWVzW2krK10gPSBOVUxMOwogCQlBc3Nl cnQoaSA8PSBsZW5ndGhvZihrZXl3b3JkcykpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMjRiYTkz NjMzMi4uOGM2MWZjYWIxMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01NCw2ICs1NCw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RyaWdnZXJfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZV9kLmgiCisjaW5j bHVkZSAiY29tbW9uL2NvbGVuYy5oIgogI2luY2x1ZGUgImNvbW1vbi9jb25uZWN0LmgiCiAj aW5jbHVkZSAiY29tbW9uL3JlbHBhdGguaCIKICNpbmNsdWRlICJkdW1wdXRpbHMuaCIKQEAg LTIyOCw2ICsyMjksOCBAQCBzdGF0aWMgdm9pZCBkdW1wQWNjZXNzTWV0aG9kKEFyY2hpdmUg KmZvdXQsIGNvbnN0IEFjY2Vzc01ldGhvZEluZm8gKmFtaW5mbyk7CiBzdGF0aWMgdm9pZCBk dW1wT3BjbGFzcyhBcmNoaXZlICpmb3V0LCBjb25zdCBPcGNsYXNzSW5mbyAqb3BjaW5mbyk7 CiBzdGF0aWMgdm9pZCBkdW1wT3BmYW1pbHkoQXJjaGl2ZSAqZm91dCwgY29uc3QgT3BmYW1p bHlJbmZvICpvcGZpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBDb2xsYXRpb24oQXJjaGl2ZSAq Zm91dCwgY29uc3QgQ29sbEluZm8gKmNvbGxpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBDb2x1 bW5FbmNyeXB0aW9uS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENla0luZm8gKmNla2luZm8p Oworc3RhdGljIHZvaWQgZHVtcENvbHVtbk1hc3RlcktleShBcmNoaXZlICpmb3V0LCBjb25z dCBDbWtJbmZvICpjZWtpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBDb252ZXJzaW9uKEFyY2hp dmUgKmZvdXQsIGNvbnN0IENvbnZJbmZvICpjb252aW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1w UnVsZShBcmNoaXZlICpmb3V0LCBjb25zdCBSdWxlSW5mbyAqcmluZm8pOwogc3RhdGljIHZv aWQgZHVtcEFnZyhBcmNoaXZlICpmb3V0LCBjb25zdCBBZ2dJbmZvICphZ2dpbmZvKTsKQEAg LTM5Myw2ICszOTYsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJhdHRy aWJ1dGUtaW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5jb2x1bW5faW5zZXJ0cywgMX0s CiAJCXsiYmluYXJ5LXVwZ3JhZGUiLCBub19hcmd1bWVudCwgJmRvcHQuYmluYXJ5X3VwZ3Jh ZGUsIDF9LAogCQl7ImNvbHVtbi1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZkb3B0LmNvbHVt bl9pbnNlcnRzLCAxfSwKKwkJeyJkZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJn dW1lbnQsICZkb3B0LmNwYXJhbXMuY29sdW1uX2VuY3J5cHRpb24sIDF9LAogCQl7ImRpc2Fi bGUtZG9sbGFyLXF1b3RpbmciLCBub19hcmd1bWVudCwgJmRvcHQuZGlzYWJsZV9kb2xsYXJf cXVvdGluZywgMX0sCiAJCXsiZGlzYWJsZS10cmlnZ2VycyIsIG5vX2FyZ3VtZW50LCAmZG9w dC5kaXNhYmxlX3RyaWdnZXJzLCAxfSwKIAkJeyJlbmFibGUtcm93LXNlY3VyaXR5Iiwgbm9f YXJndW1lbnQsICZkb3B0LmVuYWJsZV9yb3dfc2VjdXJpdHksIDF9LApAQCAtNjg1LDYgKzY4 OSw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCSAqIC0taW5zZXJ0cyBhcmUg YWxyZWFkeSBpbXBsaWVkIGFib3ZlIGlmIC0tY29sdW1uLWluc2VydHMgb3IKIAkgKiAtLXJv d3MtcGVyLWluc2VydCB3ZXJlIHNwZWNpZmllZC4KIAkgKi8KKwlpZiAoZG9wdC5jcGFyYW1z LmNvbHVtbl9lbmNyeXB0aW9uICYmIGRvcHQuZHVtcF9pbnNlcnRzID09IDApCisJCXBnX2Zh dGFsKCJvcHRpb24gLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIHJlcXVpcmVzIG9wdGlv biAtLWluc2VydHMsIC0tcm93cy1wZXItaW5zZXJ0LCBvciAtLWNvbHVtbi1pbnNlcnRzIik7 CisKIAlpZiAoZG9wdC5kb19ub3RoaW5nICYmIGRvcHQuZHVtcF9pbnNlcnRzID09IDApCiAJ CXBnX2ZhdGFsKCJvcHRpb24gLS1vbi1jb25mbGljdC1kby1ub3RoaW5nIHJlcXVpcmVzIG9w dGlvbiAtLWluc2VydHMsIC0tcm93cy1wZXItaW5zZXJ0LCBvciAtLWNvbHVtbi1pbnNlcnRz Iik7CiAKQEAgLTEwNTYsNiArMTA2Myw3IEBAIGhlbHAoY29uc3QgY2hhciAqcHJvZ25hbWUp CiAJcHJpbnRmKF8oIiAgLXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBkbyBub3QgZHVt cCBwcml2aWxlZ2VzIChncmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1iaW5h cnktdXBncmFkZSAgICAgICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRpbGl0aWVzIG9u bHlcbiIpKTsKIAlwcmludGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAgICAgICAgIGR1 bXAgZGF0YSBhcyBJTlNFUlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNcbiIpKTsKKwlw cmludGYoXygiICAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5cHQgZW5jcnlw dGVkIGNvbHVtbnMgaW4gdGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJs ZS1kb2xsYXItcXVvdGluZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywgdXNlIFNRTCBz dGFuZGFyZCBxdW90aW5nXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLXRyaWdnZXJz ICAgICAgICAgICBkaXNhYmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkgcmVzdG9yZVxu IikpOwogCXByaW50ZihfKCIgIC0tZW5hYmxlLXJvdy1zZWN1cml0eSAgICAgICAgZW5hYmxl IHJvdyBzZWN1cml0eSAoZHVtcCBvbmx5IGNvbnRlbnQgdXNlciBoYXNcbiIKQEAgLTU1NzEs NiArNTU3OSwxNjQgQEAgZ2V0Q29sbGF0aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNv bGxhdGlvbnMpCiAJcmV0dXJuIGNvbGxpbmZvOwogfQogCisvKgorICogZ2V0Q29sdW1uRW5j cnlwdGlvbktleXMKKyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbiBlbmNyeXB0 aW9uIGtleXMKKyAqLwordm9pZAorZ2V0Q29sdW1uRW5jcnlwdGlvbktleXMoQXJjaGl2ZSAq Zm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJaW50 CQkJbnR1cHM7CisJQ2VrSW5mbwkgICAqY2VraW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOwor CWludAkJCWlfb2lkOworCWludAkJCWlfY2VrbmFtZTsKKwlpbnQJCQlpX2Nla25hbWVzcGFj ZTsKKwlpbnQJCQlpX2Nla293bmVyOworCWludAkJCWlfY2VrYWNsOworCWludAkJCWlfYWNs ZGVmYXVsdDsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTYwMDAwKQorCQlyZXR1 cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIGNlay50YWJsZW9pZCwgY2VrLm9pZCwgY2Vr LmNla25hbWUsIGNlay5jZWtuYW1lc3BhY2UsIGNlay5jZWtvd25lciwgY2VrLmNla2FjbCwg YWNsZGVmYXVsdCgnWScsIGNlay5jZWtvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJCQkg ICJGUk9NIHBnX2NvbGVuY2tleSBjZWsiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShm b3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVw bGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7 CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV9jZWtuYW1lID0gUFFmbnVt YmVyKHJlcywgImNla25hbWUiKTsKKwlpX2Nla25hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMs ICJjZWtuYW1lc3BhY2UiKTsKKwlpX2Nla293bmVyID0gUFFmbnVtYmVyKHJlcywgImNla293 bmVyIik7CisJaV9jZWthY2wgPSBQUWZudW1iZXIocmVzLCAiY2VrYWNsIik7CisJaV9hY2xk ZWZhdWx0ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQiKTsKKworCWNla2luZm8gPSBw Z19tYWxsb2MobnR1cHMgKiBzaXplb2YoQ2VrSW5mbykpOworCisJZm9yIChpbnQgaSA9IDA7 IGkgPCBudHVwczsgaSsrKQorCXsKKwkJUEdyZXN1bHQJICAgKnJlczI7CisJCWludAkJCQlu dHVwczI7CisKKwkJY2VraW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19DRUs7CisJCWNla2lu Zm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwg aV90YWJsZW9pZCkpOworCQljZWtpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBR Z2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJmNla2luZm9baV0u ZG9iaik7CisJCWNla2luZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX2Nla25hbWUpKTsKKwkJY2VraW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9IGZp bmROYW1lc3BhY2UoYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nla25hbWVzcGFjZSkp KTsKKwkJY2VraW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV9jZWthY2wpKTsKKwkJY2VraW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOworCQljZWtpbmZvW2ldLmRh Y2wucHJpdnR5cGUgPSAwOworCQljZWtpbmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsK KwkJY2VraW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGks IGlfY2Vrb3duZXIpKTsKKworCQlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJTRUxFQ1QgY2tkY21raWQsIGNrZGNta2Fs ZywgY2tkZW5jdmFsXG4iCisJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5 ZGF0YVxuIgorCQkJCQkJICAiV0hFUkUgY2tkY2VraWQgPSAldSIsIGNla2luZm9baV0uZG9i ai5jYXRJZC5vaWQpOworCQlyZXMyID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5k YXRhLCBQR1JFU19UVVBMRVNfT0spOworCQludHVwczIgPSBQUW50dXBsZXMocmVzMik7CisJ CWNla2luZm9baV0ubnVtZGF0YSA9IG50dXBzMjsKKwkJY2VraW5mb1tpXS5jZWtjbWtzID0g cGdfbWFsbG9jKHNpemVvZihDbWtJbmZvICopICogbnR1cHMyKTsKKwkJY2VraW5mb1tpXS5j ZWtjbWthbGdzID0gcGdfbWFsbG9jKHNpemVvZihpbnQpICogbnR1cHMyKTsKKwkJY2VraW5m b1tpXS5jZWtlbmN2YWxzID0gcGdfbWFsbG9jKHNpemVvZihjaGFyICopICogbnR1cHMyKTsK KwkJZm9yIChpbnQgaiA9IDA7IGogPCBudHVwczI7IGorKykKKwkJeworCQkJT2lkCQkJY2tk Y21raWQ7CisKKwkJCWNrZGNta2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzMiwgaiwgUFFm bnVtYmVyKHJlczIsICJja2RjbWtpZCIpKSk7CisJCQljZWtpbmZvW2ldLmNla2Nta3Nbal0g PSBmaW5kQ21rQnlPaWQoY2tkY21raWQpOworCQkJY2VraW5mb1tpXS5jZWtjbWthbGdzW2pd ID0gYXRvaShQUWdldHZhbHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkY21rYWxn IikpKTsKKwkJCWNla2luZm9baV0uY2VrZW5jdmFsc1tqXSA9IHBnX3N0cmR1cChQUWdldHZh bHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkZW5jdmFsIikpKTsKKwkJfQorCQlQ UWNsZWFyKHJlczIpOworCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoY2VraW5mb1tpXS5k b2JqKSwgZm91dCk7CisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX2Nla2FjbCkpCisJ CQljZWtpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CisJ fQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisK Ky8qCisgKiBnZXRDb2x1bW5NYXN0ZXJLZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91 dCBjb2x1bW4gbWFzdGVyIGtleXMKKyAqLwordm9pZAorZ2V0Q29sdW1uTWFzdGVyS2V5cyhB cmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJl czsKKwlpbnQJCQludHVwczsKKwlDbWtJbmZvCSAgICpjbWtpbmZvOworCWludAkJCWlfdGFi bGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jbWtuYW1lOworCWludAkJCWlfY21r bmFtZXNwYWNlOworCWludAkJCWlfY21rb3duZXI7CisJaW50CQkJaV9jbWtyZWFsbTsKKwlp bnQJCQlpX2Nta2FjbDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisKKwlpZiAoZm91dC0+cmVt b3RlVmVyc2lvbiA8IDE2MDAwMCkKKwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4 cEJ1ZmZlcigpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNFTEVD VCBjbWsudGFibGVvaWQsIGNtay5vaWQsIGNtay5jbWtuYW1lLCBjbWsuY21rbmFtZXNwYWNl LCBjbWsuY21rb3duZXIsIGNtay5jbWtyZWFsbSwgY21rLmNta2FjbCwgYWNsZGVmYXVsdCgn eScsIGNtay5jbWtvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJCQkgICJGUk9NIHBnX2Nv bG1hc3RlcmtleSBjbWsiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVy eS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7 CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQg PSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV9jbWtuYW1lID0gUFFmbnVtYmVyKHJlcywg ImNta25hbWUiKTsKKwlpX2Nta25hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJjbWtuYW1l c3BhY2UiKTsKKwlpX2Nta293bmVyID0gUFFmbnVtYmVyKHJlcywgImNta293bmVyIik7CisJ aV9jbWtyZWFsbSA9IFBRZm51bWJlcihyZXMsICJjbWtyZWFsbSIpOworCWlfY21rYWNsID0g UFFmbnVtYmVyKHJlcywgImNta2FjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihy ZXMsICJhY2xkZWZhdWx0Iik7CisKKwljbWtpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6 ZW9mKENta0luZm8pKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7 CisJCWNta2luZm9baV0uZG9iai5vYmpUeXBlID0gRE9fQ01LOworCQljbWtpbmZvW2ldLmRv YmouY2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVv aWQpKTsKKwkJY21raW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVl KHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZjbWtpbmZvW2ldLmRvYmopOwor CQljbWtpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwg aV9jbWtuYW1lKSk7CisJCWNta2luZm9baV0uZG9iai5uYW1lc3BhY2UgPSBmaW5kTmFtZXNw YWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9jbWtuYW1lc3BhY2UpKSk7CisJCWNt a2luZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfY21r YWNsKSk7CisJCWNta2luZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJY21raW5mb1tpXS5kYWNsLnByaXZ0 eXBlID0gMDsKKwkJY21raW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJCWNta2lu Zm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nta293 bmVyKSk7CisJCWNta2luZm9baV0uY21rcmVhbG0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfY21rcmVhbG0pKTsKKworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKGNta2lu Zm9baV0uZG9iaiksIGZvdXQpOworCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV9jbWth Y2wpKQorCQkJY21raW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRf QUNMOworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkp OworfQorCiAvKgogICogZ2V0Q29udmVyc2lvbnM6CiAgKgkgIHJlYWQgYWxsIGNvbnZlcnNp b25zIGluIHRoZSBzeXN0ZW0gY2F0YWxvZ3MgYW5kIHJldHVybiB0aGVtIGluIHRoZQpAQCAt ODE4Niw2ICs4MzUyLDkgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUlu Zm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV90eXBzdG9yYWdlOwogCWlu dAkJCWlfYXR0aWRlbnRpdHk7CiAJaW50CQkJaV9hdHRnZW5lcmF0ZWQ7CisJaW50CQkJaV9h dHRjZWs7CisJaW50CQkJaV9hdHRlbmNhbGc7CisJaW50CQkJaV9hdHRlbmNkZXQ7CiAJaW50 CQkJaV9hdHRpc2Ryb3BwZWQ7CiAJaW50CQkJaV9hdHRsZW47CiAJaW50CQkJaV9hdHRhbGln bjsKQEAgLTgyNDUsOCArODQxNCw3IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwg VGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCSAqIGNvbGxhdGlvbiBpcyBk aWZmZXJlbnQgZnJvbSB0aGVpciB0eXBlJ3MgZGVmYXVsdCwgd2UgdXNlIGEgQ0FTRSBoZXJl IHRvCiAJICogc3VwcHJlc3MgdW5pbnRlcmVzdGluZyBhdHRjb2xsYXRpb25zIGNoZWFwbHku CiAJICovCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCSAiU0VMRUNUXG4iCisJ YXBwZW5kUFFFeHBCdWZmZXIocSwgIlNFTEVDVFxuIgogCQkJCQkJICJhLmF0dHJlbGlkLFxu IgogCQkJCQkJICJhLmF0dG51bSxcbiIKIAkJCQkJCSAiYS5hdHRuYW1lLFxuIgpAQCAtODI1 OSw3ICs4NDI3LDcgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g KnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQkJCQkgImEuYXR0bGVuLFxuIgogCQkJCQkJ ICJhLmF0dGFsaWduLFxuIgogCQkJCQkJICJhLmF0dGlzbG9jYWwsXG4iCi0JCQkJCQkgInBn X2NhdGFsb2cuZm9ybWF0X3R5cGUodC5vaWQsIGEuYXR0dHlwbW9kKSBBUyBhdHR0eXBuYW1l LFxuIgorCQkJCQkJICJwZ19jYXRhbG9nLmZvcm1hdF90eXBlKCVzKSBBUyBhdHR0eXBuYW1l LFxuIgogCQkJCQkJICJhcnJheV90b19zdHJpbmcoYS5hdHRvcHRpb25zLCAnLCAnKSBBUyBh dHRvcHRpb25zLFxuIgogCQkJCQkJICJDQVNFIFdIRU4gYS5hdHRjb2xsYXRpb24gPD4gdC50 eXBjb2xsYXRpb24gIgogCQkJCQkJICJUSEVOIGEuYXR0Y29sbGF0aW9uIEVMU0UgMCBFTkQg QVMgYXR0Y29sbGF0aW9uLFxuIgpAQCAtODI2OCw3ICs4NDM2LDEwIEBAIGdldFRhYmxlQXR0 cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQog CQkJCQkJICInICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkg IgogCQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfb3B0aW9uc190b190YWJsZShhdHRmZHdv cHRpb25zKSAiCiAJCQkJCQkgIk9SREVSIEJZIG9wdGlvbl9uYW1lIgotCQkJCQkJICIpLCBF JyxcbiAgICAnKSBBUyBhdHRmZHdvcHRpb25zLFxuIik7CisJCQkJCQkgIiksIEUnLFxuICAg ICcpIEFTIGF0dGZkd29wdGlvbnMsXG4iLAorCQkJCQkJIGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTYwMDAwID8KKwkJCQkJCSAiQ0FTRSBXSEVOIGEuYXR0dXNlcnR5cGlkIDw+IDAgVEhF TiBhLmF0dHVzZXJ0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5ELCBDQVNFIFdIRU4gYS5hdHR1 c2VydHlwaWQgPD4gMCBUSEVOIGEuYXR0dXNlcnR5cG1vZCBFTFNFIGEuYXR0dHlwbW9kIEVO RCIgOgorCQkJCQkJICJhLmF0dHR5cGlkLCBhLmF0dHR5cG1vZCIpOwogCiAJaWYgKGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gMTQwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLApA QCAtODI5NCwxMCArODQ2NSwyMyBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAogCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uID49IDEyMDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkg ImEuYXR0Z2VuZXJhdGVkXG4iKTsKKwkJCQkJCQkgImEuYXR0Z2VuZXJhdGVkLFxuIik7CisJ ZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAorCQkJCQkJCSAiJycgQVMgYXR0Z2Vu ZXJhdGVkLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNjAwMDApCisJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkgICJhLmF0dGNlayxcbiIKKwkJCQkJCSAg IkNBU0UgYS5hdHR0eXBpZCBXSEVOICV1IFRIRU4gdHJ1ZSBXSEVOICV1IFRIRU4gZmFsc2Ug RU5EIEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCSAgIkNBU0UgV0hFTiBhLmF0dHR5cGlkIElO ICgldSwgJXUpIFRIRU4gYS5hdHR0eXBtb2QgRU5EIEFTIGF0dGVuY2FsZ1xuIiwKKwkJCQkJ CSAgUEdfRU5DUllQVEVEX0RFVE9JRCwgUEdfRU5DUllQVEVEX1JORE9JRCwKKwkJCQkJCSAg UEdfRU5DUllQVEVEX0RFVE9JRCwgUEdfRU5DUllQVEVEX1JORE9JRCk7CiAJZWxzZQogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVkXG4i KTsKKwkJCQkJCQkgIk5VTEwgQVMgYXR0Y2VrLFxuIgorCQkJCQkJCSAiTlVMTCBBUyBhdHRl bmNkZXQsXG4iCisJCQkJCQkJICJOVUxMIEFTIGF0dGVuY2FsZ1xuIik7CiAKIAkvKiBuZWVk IGxlZnQgam9pbiB0byBwZ190eXBlIHRvIG5vdCBmYWlsIG9uIGRyb3BwZWQgY29sdW1ucyAu Li4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxLApAQCAtODMyMiw2ICs4NTA2LDkgQEAgZ2V0 VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1U YWJsZXMpCiAJaV90eXBzdG9yYWdlID0gUFFmbnVtYmVyKHJlcywgInR5cHN0b3JhZ2UiKTsK IAlpX2F0dGlkZW50aXR5ID0gUFFmbnVtYmVyKHJlcywgImF0dGlkZW50aXR5Iik7CiAJaV9h dHRnZW5lcmF0ZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0Z2VuZXJhdGVkIik7CisJaV9hdHRj ZWsgPSBQUWZudW1iZXIocmVzLCAiYXR0Y2VrIik7CisJaV9hdHRlbmNkZXQgPSBQUWZudW1i ZXIocmVzLCAiYXR0ZW5jZGV0Iik7CisJaV9hdHRlbmNhbGcgPSBQUWZudW1iZXIocmVzLCAi YXR0ZW5jYWxnIik7CiAJaV9hdHRpc2Ryb3BwZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0aXNk cm9wcGVkIik7CiAJaV9hdHRsZW4gPSBQUWZudW1iZXIocmVzLCAiYXR0bGVuIik7CiAJaV9h dHRhbGlnbiA9IFBRZm51bWJlcihyZXMsICJhdHRhbGlnbiIpOwpAQCAtODM4Miw2ICs4NTY5 LDkgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8s IGludCBudW1UYWJsZXMpCiAJCXRiaW5mby0+dHlwc3RvcmFnZSA9IChjaGFyICopIHBnX21h bGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKIAkJdGJpbmZvLT5hdHRpZGVudGl0eSA9 IChjaGFyICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKIAkJdGJpbmZv LT5hdHRnZW5lcmF0ZWQgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihj aGFyKSk7CisJCXRiaW5mby0+YXR0Y2VrID0gKENla0luZm8gKiopIHBnX21hbGxvYyhudW1h dHRzICogc2l6ZW9mKENla0luZm8gKikpOworCQl0YmluZm8tPmF0dGVuY2RldCA9IChib29s ICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGJvb2wpKTsKKwkJdGJpbmZvLT5hdHRl bmNhbGcgPSAoaW50ICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGludCkpOwogCQl0 YmluZm8tPmF0dGlzZHJvcHBlZCA9IChib29sICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6 ZW9mKGJvb2wpKTsKIAkJdGJpbmZvLT5hdHRsZW4gPSAoaW50ICopIHBnX21hbGxvYyhudW1h dHRzICogc2l6ZW9mKGludCkpOwogCQl0YmluZm8tPmF0dGFsaWduID0gKGNoYXIgKikgcGdf bWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwpAQCAtODQwOSw2ICs4NTk5LDIyIEBA IGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQg bnVtVGFibGVzKQogCQkJdGJpbmZvLT5hdHRpZGVudGl0eVtqXSA9ICooUFFnZXR2YWx1ZShy ZXMsIHIsIGlfYXR0aWRlbnRpdHkpKTsKIAkJCXRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID0g KihQUWdldHZhbHVlKHJlcywgciwgaV9hdHRnZW5lcmF0ZWQpKTsKIAkJCXRiaW5mby0+bmVl ZHNfb3ZlcnJpZGUgPSB0YmluZm8tPm5lZWRzX292ZXJyaWRlIHx8ICh0YmluZm8tPmF0dGlk ZW50aXR5W2pdID09IEFUVFJJQlVURV9JREVOVElUWV9BTFdBWVMpOworCQkJaWYgKCFQUWdl dGlzbnVsbChyZXMsIHIsIGlfYXR0Y2VrKSkKKwkJCXsKKwkJCQlPaWQJCWF0dGNla2lkID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGNlaykpOworCisJCQkJdGJpbmZvLT5h dHRjZWtbal0gPSBmaW5kQ2VrQnlPaWQoYXR0Y2VraWQpOworCQkJfQorCQkJZWxzZQorCQkJ CXRiaW5mby0+YXR0Y2VrW2pdID0gTlVMTDsKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCBy LCBpX2F0dGVuY2RldCkpCisJCQkJdGJpbmZvLT5hdHRlbmNkZXRbal0gPSAoUFFnZXR2YWx1 ZShyZXMsIHIsIGlfYXR0ZW5jZGV0KVswXSA9PSAndCcpOworCQkJZWxzZQorCQkJCXRiaW5m by0+YXR0ZW5jZGV0W2pdID0gMDsKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCByLCBpX2F0 dGVuY2FsZykpCisJCQkJdGJpbmZvLT5hdHRlbmNhbGdbal0gPSBhdG9pKFBRZ2V0dmFsdWUo cmVzLCByLCBpX2F0dGVuY2FsZykpOworCQkJZWxzZQorCQkJCXRiaW5mby0+YXR0ZW5jYWxn W2pdID0gMDsKIAkJCXRiaW5mby0+YXR0aXNkcm9wcGVkW2pdID0gKFBRZ2V0dmFsdWUocmVz LCByLCBpX2F0dGlzZHJvcHBlZClbMF0gPT0gJ3QnKTsKIAkJCXRiaW5mby0+YXR0bGVuW2pd ID0gYXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRsZW4pKTsKIAkJCXRiaW5mby0+YXR0 YWxpZ25bal0gPSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGFsaWduKSk7CkBAIC05OTI3 LDYgKzEwMTMzLDEyIEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1w YWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19PUEZBTUlMWToKIAkJCWR1bXBPcGZhbWls eShmb3V0LCAoY29uc3QgT3BmYW1pbHlJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNh c2UgRE9fQ0VLOgorCQkJZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoZm91dCwgKGNvbnN0IENl a0luZm8gKikgZG9iaik7CisJCQlicmVhazsKKwkJY2FzZSBET19DTUs6CisJCQlkdW1wQ29s dW1uTWFzdGVyS2V5KGZvdXQsIChjb25zdCBDbWtJbmZvICopIGRvYmopOworCQkJYnJlYWs7 CiAJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJZHVtcENvbGxhdGlvbihmb3V0LCAoY29uc3Qg Q29sbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTEzMzIwLDYgKzEzNTMyLDE0MSBA QCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJbmZvICpjb2xsaW5m bykKIAlmcmVlKHFjb2xsbmFtZSk7CiB9CiAKKy8qCisgKiBkdW1wQ29sdW1uRW5jcnlwdGlv bktleQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4gZW5j cnlwdGlvbiBrZXkKKyAqLworc3RhdGljIHZvaWQKK2R1bXBDb2x1bW5FbmNyeXB0aW9uS2V5 KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENla0luZm8gKmNla2luZm8pCit7CisJRHVtcE9wdGlv bnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBCdWZm ZXIgcXVlcnk7CisJY2hhcgkgICAqcWNla25hbWU7CisKKwkvKiBEbyBub3RoaW5nIGluIGRh dGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRhdGFPbmx5KQorCQlyZXR1cm47CisKKwlk ZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVy KCk7CisKKwlxY2VrbmFtZSA9IHBnX3N0cmR1cChmbXRJZChjZWtpbmZvLT5kb2JqLm5hbWUp KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIENPTFVNTiBFTkNSWVBUSU9O IEtFWSAlcztcbiIsCisJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY2VraW5mbykpOwor CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZICVzIFdJVEggVkFMVUVTICIsCisJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY2Vr aW5mbykpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBjZWtpbmZvLT5udW1kYXRhOyBpKysp CisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIigiKTsKKworCQlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgImNvbHVtbl9tYXN0ZXJfa2V5ID0gJXMsICIsIGZtdFF1YWxpZmll ZER1bXBhYmxlKGNla2luZm8tPmNla2Nta3NbaV0pKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksICJhbGdvcml0aG0gPSAnJXMnLCAiLCBnZXRfY21rYWxnX25hbWUoY2VraW5mby0+ Y2VrY21rYWxnc1tpXSkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImVuY3J5cHRl ZF92YWx1ZSA9ICIpOworCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNla2luZm8t PmNla2VuY3ZhbHNbaV0sIGZvdXQpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi KSIpOworCQlpZiAoaSA8IGNla2luZm8tPm51bWRhdGEgLSAxKQorCQkJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICIsICIpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiO1xuIik7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRf REVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIGNla2luZm8tPmRvYmouY2F0SWQs IGNla2luZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSBjZWtp bmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IGNla2luZm8tPmRvYmou bmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVyID0gY2VraW5mby0+cm9s bmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAg LmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxx LT5kYXRhKSk7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRf Q09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIs IHFjZWtuYW1lLAorCQkJCQljZWtpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBj ZWtpbmZvLT5yb2xuYW1lLAorCQkJCQljZWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjZWtpbmZv LT5kb2JqLmR1bXBJZCk7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfU0VDTEFCRUwpCisJCWR1bXBTZWNMYWJlbChmb3V0LCAiQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIiwgcWNla25hbWUsCisJCQkJCSBjZWtpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9i ai5uYW1lLCBjZWtpbmZvLT5yb2xuYW1lLAorCQkJCQkgY2VraW5mby0+ZG9iai5jYXRJZCwg MCwgY2VraW5mby0+ZG9iai5kdW1wSWQpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0FDTCkKKwkJZHVtcEFDTChmb3V0LCBjZWtpbmZvLT5kb2JqLmR1 bXBJZCwgSW52YWxpZER1bXBJZCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsCisJCQkJcWNl a25hbWUsIE5VTEwsIGNla2luZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJ Y2VraW5mby0+cm9sbmFtZSwgJmNla2luZm8tPmRhY2wpOworCisJZGVzdHJveVBRRXhwQnVm ZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJZnJlZShxY2VrbmFt ZSk7Cit9CisKKy8qCisgKiBkdW1wQ29sdW1uTWFzdGVyS2V5CisgKgkgIGR1bXAgdGhlIGRl ZmluaXRpb24gb2YgdGhlIGdpdmVuIGNvbHVtbiBtYXN0ZXIga2V5CisgKi8KK3N0YXRpYyB2 b2lkCitkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENta0luZm8g KmNta2luZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhw QnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcWNta25hbWU7 CisKKwkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRh dGFPbmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlx dWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxY21rbmFtZSA9IHBnX3N0cmR1cChm bXRJZChjbWtpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEs ICJEUk9QIENPTFVNTiBNQVNURVIgS0VZICVzO1xuIiwKKwkJCQkJICBmbXRRdWFsaWZpZWRE dW1wYWJsZShjbWtpbmZvKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFU RSBDT0xVTU4gTUFTVEVSIEtFWSAlcyBXSVRIICgiLAorCQkJCQkgIGZtdFF1YWxpZmllZER1 bXBhYmxlKGNta2luZm8pKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAicmVhbG0g PSAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNta2luZm8tPmNta3JlYWxt LCBmb3V0KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiKTtcbiIpOworCisJ aWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJ CUFyY2hpdmVFbnRyeShmb3V0LCBjbWtpbmZvLT5kb2JqLmNhdElkLCBjbWtpbmZvLT5kb2Jq LmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY21raW5mby0+ZG9iai5uYW1l LAorCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSBjbWtpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9i ai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNta2luZm8tPnJvbG5hbWUsCisJCQkJCQkJ CSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBNQVNURVIgS0VZIiwKKwkJCQkJCQkJICAuc2Vj dGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVy eS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisKKwlpZiAo Y21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENv bW1lbnQoZm91dCwgIkNPTFVNTiBNQVNURVIgS0VZIiwgcWNta25hbWUsCisJCQkJCWNta2lu Zm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIGNta2luZm8tPnJvbG5hbWUsCisJCQkJ CWNta2luZm8tPmRvYmouY2F0SWQsIDAsIGNta2luZm8tPmRvYmouZHVtcElkKTsKKworCWlm IChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9TRUNMQUJFTCkKKwkJZHVt cFNlY0xhYmVsKGZvdXQsICJDT0xVTU4gTUFTVEVSIEtFWSIsIHFjbWtuYW1lLAorCQkJCQkg Y21raW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgY21raW5mby0+cm9sbmFtZSwK KwkJCQkJIGNta2luZm8tPmRvYmouY2F0SWQsIDAsIGNta2luZm8tPmRvYmouZHVtcElkKTsK KworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9BQ0wpCisJCWR1 bXBBQ0woZm91dCwgY21raW5mby0+ZG9iai5kdW1wSWQsIEludmFsaWREdW1wSWQsICJDT0xV TU4gTUFTVEVSIEtFWSIsCisJCQkJcWNta25hbWUsIE5VTEwsIGNta2luZm8tPmRvYmoubmFt ZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJY21raW5mby0+cm9sbmFtZSwgJmNta2luZm8tPmRh Y2wpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZl cihxdWVyeSk7CisJZnJlZShxY21rbmFtZSk7Cit9CisKIC8qCiAgKiBkdW1wQ29udmVyc2lv bgogICoJICB3cml0ZSBvdXQgYSBzaW5nbGUgY29udmVyc2lvbiBkZWZpbml0aW9uCkBAIC0x NTQwMyw2ICsxNTc1MCwyMiBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29u c3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCQkJCQkJICB0YmluZm8tPmF0dHR5cG5hbWVz W2pdKTsKIAkJCQkJfQogCisJCQkJCWlmICh0YmluZm8tPmF0dGNla1tqXSkKKwkJCQkJewor CQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gJXMsICIsCisJCQkJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJs ZSh0YmluZm8tPmF0dGNla1tqXSkpOworCQkJCQkJLyoKKwkJCQkJCSAqIFRvIHJlZHVjZSBv dXRwdXQgc2l6ZSwgd2UgZG9uJ3QgcHJpbnQgdGhlIGRlZmF1bHQKKwkJCQkJCSAqIG9mIGVu Y3J5cHRpb25fdHlwZSwgYnV0IHdlIGRvIHByaW50IHRoZSBkZWZhdWx0IG9mCisJCQkJCQkg KiBhbGdvcml0aG0sIHNpbmNlIHdlIG1pZ2h0IHdhbnQgdG8gY2hhbmdlIHRvIGEgbmV3CisJ CQkJCQkgKiBkZWZhdWx0IGFsZ29yaXRobSBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgorCQkJ CQkJICovCisJCQkJCQlpZiAodGJpbmZvLT5hdHRlbmNkZXRbal0pCisJCQkJCQkJYXBwZW5k UFFFeHBCdWZmZXIocSwgImVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMsICIpOwor CQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgImFsZ29yaXRobSA9ICclcycpIiwKKwkJCQkJ CQkJCQkgIGdldF9jZWthbGdfbmFtZSh0YmluZm8tPmF0dGVuY2FsZ1tqXSkpOworCQkJCQl9 CisKIAkJCQkJaWYgKHByaW50X2RlZmF1bHQpCiAJCQkJCXsKIAkJCQkJCWlmICh0YmluZm8t PmF0dGdlbmVyYXRlZFtqXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKQEAgLTE3 OTcxLDYgKzE4MzM0LDggQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmpl Y3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERPX0FDQ0VTU19NRVRIT0Q6CiAJ CQljYXNlIERPX09QQ0xBU1M6CiAJCQljYXNlIERPX09QRkFNSUxZOgorCQkJY2FzZSBET19D RUs6CisJCQljYXNlIERPX0NNSzoKIAkJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJY2FzZSBE T19DT05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJMRToKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGNk Y2EwYjk5M2QuLmQ0YTJlNTk1ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNDcsNiArNDcsOCBA QCB0eXBlZGVmIGVudW0KIAlET19BQ0NFU1NfTUVUSE9ELAogCURPX09QQ0xBU1MsCiAJRE9f T1BGQU1JTFksCisJRE9fQ0VLLAorCURPX0NNSywKIAlET19DT0xMQVRJT04sCiAJRE9fQ09O VkVSU0lPTiwKIAlET19UQUJMRSwKQEAgLTMzMiw2ICszMzQsOSBAQCB0eXBlZGVmIHN0cnVj dCBfdGFibGVJbmZvCiAJYm9vbAkgICAqYXR0aXNkcm9wcGVkOwkvKiB0cnVlIGlmIGF0dHIg aXMgZHJvcHBlZDsgZG9uJ3QgZHVtcCBpdCAqLwogCWNoYXIJICAgKmF0dGlkZW50aXR5Owog CWNoYXIJICAgKmF0dGdlbmVyYXRlZDsKKwlzdHJ1Y3QgX0Nla0luZm8gKiphdHRjZWs7CisJ aW50CQkgICAqYXR0ZW5jYWxnOworCWJvb2wJICAgKmF0dGVuY2RldDsKIAlpbnQJCSAgICph dHRsZW47CQkJLyogYXR0cmlidXRlIGxlbmd0aCwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAq LwogCWNoYXIJICAgKmF0dGFsaWduOwkJLyogYXR0cmlidXRlIGFsaWduLCB1c2VkIGJ5IGJp bmFyeV91cGdyYWRlICovCiAJYm9vbAkgICAqYXR0aXNsb2NhbDsJCS8qIHRydWUgaWYgYXR0 ciBoYXMgbG9jYWwgZGVmaW5pdGlvbiAqLwpAQCAtNjYzLDYgKzY2OCwzMiBAQCB0eXBlZGVm IHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWNoYXIJICAgKnN1YnB1YmxpY2F0aW9uczsK IH0gU3Vic2NyaXB0aW9uSW5mbzsKIAorLyoKKyAqIFRoZSBDZWtJbmZvIHN0cnVjdCBpcyB1 c2VkIHRvIHJlcHJlc2VudCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgKi8KK3R5cGVkZWYg c3RydWN0IF9DZWtJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1wYWJsZUFj bAlkYWNsOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJaW50CQkJbnVtZGF0YTsKKwkvKiBU aGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVtZGF0YSBlbnRyaWVzIGVhY2g6ICovCisJ c3RydWN0IF9DbWtJbmZvICoqY2VrY21rczsKKwlpbnQJCSAgICpjZWtjbWthbGdzOworCWNo YXIJICAqKmNla2VuY3ZhbHM7Cit9IENla0luZm87CisKKy8qCisgKiBUaGUgQ21rSW5mbyBz dHJ1Y3QgaXMgdXNlZCB0byByZXByZXNlbnQgY29sdW1uIG1hc3RlciBrZXkuCisgKi8KK3R5 cGVkZWYgc3RydWN0IF9DbWtJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1w YWJsZUFjbAlkYWNsOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJY2hhcgkgICAqY21rcmVh bG07Cit9IENta0luZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAq LwpAQCAtNjgzLDYgKzcxNCw4IEBAIGV4dGVybiBUYWJsZUluZm8gKmZpbmRUYWJsZUJ5T2lk KE9pZCBvaWQpOwogZXh0ZXJuIFR5cGVJbmZvICpmaW5kVHlwZUJ5T2lkKE9pZCBvaWQpOwog ZXh0ZXJuIEZ1bmNJbmZvICpmaW5kRnVuY0J5T2lkKE9pZCBvaWQpOwogZXh0ZXJuIE9wcklu Zm8gKmZpbmRPcHJCeU9pZChPaWQgb2lkKTsKK2V4dGVybiBDZWtJbmZvICpmaW5kQ2VrQnlP aWQoT2lkIG9pZCk7CitleHRlcm4gQ21rSW5mbyAqZmluZENta0J5T2lkKE9pZCBvaWQpOwog ZXh0ZXJuIENvbGxJbmZvICpmaW5kQ29sbGF0aW9uQnlPaWQoT2lkIG9pZCk7CiBleHRlcm4g TmFtZXNwYWNlSW5mbyAqZmluZE5hbWVzcGFjZUJ5T2lkKE9pZCBvaWQpOwogZXh0ZXJuIEV4 dGVuc2lvbkluZm8gKmZpbmRFeHRlbnNpb25CeU9pZChPaWQgb2lkKTsKQEAgLTcxMCw2ICs3 NDMsOCBAQCBleHRlcm4gQWNjZXNzTWV0aG9kSW5mbyAqZ2V0QWNjZXNzTWV0aG9kcyhBcmNo aXZlICpmb3V0LCBpbnQgKm51bUFjY2Vzc01ldGhvZHMpOwogZXh0ZXJuIE9wY2xhc3NJbmZv ICpnZXRPcGNsYXNzZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1PcGNsYXNzZXMpOwogZXh0 ZXJuIE9wZmFtaWx5SW5mbyAqZ2V0T3BmYW1pbGllcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51 bU9wZmFtaWxpZXMpOwogZXh0ZXJuIENvbGxJbmZvICpnZXRDb2xsYXRpb25zKEFyY2hpdmUg KmZvdXQsIGludCAqbnVtQ29sbGF0aW9ucyk7CitleHRlcm4gdm9pZCBnZXRDb2x1bW5FbmNy eXB0aW9uS2V5cyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdldENvbHVtbk1hc3Rl cktleXMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gQ29udkluZm8gKmdldENvbnZlcnNpb25z KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtQ29udmVyc2lvbnMpOwogZXh0ZXJuIFRhYmxlSW5m byAqZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKTsKIGV4dGVybiB2 b2lkIGdldE93bmVkU2VxcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3Nv cnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCA4MjY2YzExN2Ez Li5kM2RhY2QzOWRhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0 LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC02OSw2ICs2OSw4 IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fVFNURU1QTEFURSwKIAlQ UklPX1RTRElDVCwKIAlQUklPX1RTQ09ORklHLAorCVBSSU9fQ01LLAorCVBSSU9fQ0VLLAog CVBSSU9fRkRXLAogCVBSSU9fRk9SRUlHTl9TRVJWRVIsCiAJUFJJT19UQUJMRSwKQEAgLTEx MSw2ICsxMTMsOCBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10g PQogCVBSSU9fQUNDRVNTX01FVEhPRCwJCQkvKiBET19BQ0NFU1NfTUVUSE9EICovCiAJUFJJ T19PUEZBTUlMWSwJCQkJLyogRE9fT1BDTEFTUyAqLwogCVBSSU9fT1BGQU1JTFksCQkJCS8q IERPX09QRkFNSUxZICovCisJUFJJT19DRUssCQkJCQkvKiBET19DRUsgKi8KKwlQUklPX0NN SywJCQkJCS8qIERPX0NNSyAqLwogCVBSSU9fQ09MTEFUSU9OLAkJCQkvKiBET19DT0xMQVRJ T04gKi8KIAlQUklPX0NPTlZFUlNJT04sCQkJLyogRE9fQ09OVkVSU0lPTiAqLwogCVBSSU9f VEFCTEUsCQkJCQkvKiBET19UQUJMRSAqLwpAQCAtMTMyMiw2ICsxMzI2LDE2IEBAIGRlc2Ny aWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQg YnVmc2l6ZSkKIAkJCQkJICJPUEVSQVRPUiBGQU1JTFkgJXMgIChJRCAlZCBPSUQgJXUpIiwK IAkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJl dHVybjsKKwkJY2FzZSBET19DRUs6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJ CSAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47CisJCWNhc2UgRE9fQ01LOgor CQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIkNPTFVNTiBNQVNURVIgS0VZIChJ RCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CisJ CQlyZXR1cm47CiAJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJc25wcmludGYoYnVmLCBidWZz aXplLAogCQkJCQkgIkNPTExBVElPTiAlcyAgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wYWxsLmMKaW5kZXggY2Q0MjFjNTk0NC4uNjUzMGZiODFhMiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cGFsbC5jCkBAIC05Myw2ICs5Myw3IEBAIHN0YXRpYyBib29sIGRvc3luYyA9IHRydWU7CiAK IHN0YXRpYyBpbnQJYmluYXJ5X3VwZ3JhZGUgPSAwOwogc3RhdGljIGludAljb2x1bW5faW5z ZXJ0cyA9IDA7CitzdGF0aWMgaW50CWRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMgPSAwOwog c3RhdGljIGludAlkaXNhYmxlX2RvbGxhcl9xdW90aW5nID0gMDsKIHN0YXRpYyBpbnQJZGlz YWJsZV90cmlnZ2VycyA9IDA7CiBzdGF0aWMgaW50CWlmX2V4aXN0cyA9IDA7CkBAIC0xNTQs NiArMTU1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQl7ImF0dHJpYnV0 ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZjb2x1bW5faW5zZXJ0cywgMX0sCiAJCXsiYmlu YXJ5LXVwZ3JhZGUiLCBub19hcmd1bWVudCwgJmJpbmFyeV91cGdyYWRlLCAxfSwKIAkJeyJj b2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1uX2luc2VydHMsIDF9LAorCQl7 ImRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMiLCBub19hcmd1bWVudCwgJmRlY3J5cHRfZW5j cnlwdGVkX2NvbHVtbnMsIDF9LAogCQl7ImRpc2FibGUtZG9sbGFyLXF1b3RpbmciLCBub19h cmd1bWVudCwgJmRpc2FibGVfZG9sbGFyX3F1b3RpbmcsIDF9LAogCQl7ImRpc2FibGUtdHJp Z2dlcnMiLCBub19hcmd1bWVudCwgJmRpc2FibGVfdHJpZ2dlcnMsIDF9LAogCQl7ImV4Y2x1 ZGUtZGF0YWJhc2UiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgNn0sCkBAIC00MjQsNiAr NDI2LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tYmluYXJ5LXVwZ3JhZGUiKTsKIAlpZiAoY29sdW1u X2luc2VydHMpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1jb2x1 bW4taW5zZXJ0cyIpOworCWlmIChkZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zKQorCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29s dW1ucyIpOwogCWlmIChkaXNhYmxlX2RvbGxhcl9xdW90aW5nKQogCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tZGlzYWJsZS1kb2xsYXItcXVvdGluZyIpOwogCWlm IChkaXNhYmxlX3RyaWdnZXJzKQpAQCAtNjQ5LDYgKzY1Myw3IEBAIGhlbHAodm9pZCkKIAlw cmludGYoXygiICAteCwgLS1uby1wcml2aWxlZ2VzICAgICAgICAgIGRvIG5vdCBkdW1wIHBy aXZpbGVnZXMgKGdyYW50L3Jldm9rZSlcbiIpKTsKIAlwcmludGYoXygiICAtLWJpbmFyeS11 cGdyYWRlICAgICAgICAgICAgIGZvciB1c2UgYnkgdXBncmFkZSB1dGlsaXRpZXMgb25seVxu IikpOwogCXByaW50ZihfKCIgIC0tY29sdW1uLWluc2VydHMgICAgICAgICAgICAgZHVtcCBk YXRhIGFzIElOU0VSVCBjb21tYW5kcyB3aXRoIGNvbHVtbiBuYW1lc1xuIikpOworCXByaW50 ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyAgZGVjcnlwdCBlbmNyeXB0ZWQg Y29sdW1ucyBpbiB0aGUgb3V0cHV0XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLWRv bGxhci1xdW90aW5nICAgICBkaXNhYmxlIGRvbGxhciBxdW90aW5nLCB1c2UgU1FMIHN0YW5k YXJkIHF1b3RpbmdcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2FibGUtdHJpZ2dlcnMgICAg ICAgICAgIGRpc2FibGUgdHJpZ2dlcnMgZHVyaW5nIGRhdGEtb25seSByZXN0b3JlXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLS1leGNsdWRlLWRhdGFiYXNlPVBBVFRFUk4gICBleGNsdWRlIGRh dGFiYXNlcyB3aG9zZSBuYW1lIG1hdGNoZXMgUEFUVEVSTlxuIikpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbAppbmRleCA3MmIxOWVlNmNkLi44MzdkNTE1NjM5IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNzE5LDYgKzcxOSwxOCBAQAogCQl1bmxpa2UgICAg PT4geyAlZHVtcF90ZXN0X3NjaGVtYV9ydW5zLCBub19vd25lciA9PiAxLCB9LAogCX0sCiAK KwknQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgT1dORVIgVE8nID0+IHsKKwkJ cmVnZXhwID0+IHFyL15BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgZHVtcF90ZXN0LmNl azEgT1dORVIgVE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1bnMsICVkdW1wX3Rl c3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+ IHsgZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIG5vX293bmVyID0+IDEsIH0sCisJ fSwKKworCSdBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPJyA9PiB7CisJ CXJlZ2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgZHVtcF90ZXN0LmNtazEg T1dORVIgVE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rf c2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsg ZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIG5vX293bmVyID0+IDEsIH0sCisJfSwK KwogCSdBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTycgPT4gewog CQlyZWdleHAgPT4gcXIvXkFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15IE9XTkVS IFRPIC4rOy9tLAogCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRh ID0+IDEsIH0sCkBAIC0xMzE5LDYgKzEzMzEsMjYgQEAKIAkJbGlrZSAgICAgID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ09NTUVOVCBP TiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBL RVkgZHVtcF90ZXN0LmNlazEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIGNvbHVtbiBlbmNy eXB0aW9uIGtleVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVN TiBFTkNSWVBUSU9OIEtFWSBkdW1wX3Rlc3QuY2VrMSBJUyAnY29tbWVudCBvbiBjb2x1bW4g ZW5jcnlwdGlvbiBrZXknOy9tLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgJWR1bXBfdGVz dF9zY2hlbWFfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4g eyBleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgfSwKKwl9LAorCisJJ0NPTU1FTlQg T04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTUs CisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBkdW1w X3Rlc3QuY21rMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXlc JzsnLAorCQlyZWdleHAgPT4KKwkJICBxci9eQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtF WSBkdW1wX3Rlc3QuY21rMSBJUyAnY29tbWVudCBvbiBjb2x1bW4gbWFzdGVyIGtleSc7L20s CisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0X3NjaGVtYV9ydW5zLCBzZWN0 aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IGV4Y2x1ZGVfZHVtcF90ZXN0 X3NjaGVtYSA9PiAxLCB9LAorCX0sCisKIAknQ09NTUVOVCBPTiBMQVJHRSBPQkpFQ1QgLi4u JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2NSwKIAkJY3JlYXRlX3NxbCAgID0+ICdETyAk JApAQCAtMTczNyw2ICsxNzY5LDI2IEBACiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0 aW9uX3ByZV9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUxLAorCQljcmVhdGVfc3Fs ICAgPT4gIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgZHVtcF90ZXN0LmNlazEgV0lU SCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gZHVtcF90ZXN0LmNtazEsIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceERFQURCRUVG Jyk7IiwKKwkJcmVnZXhwICAgICAgID0+IHFyL14KKwkJCVxRQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBkdW1wX3Rlc3QuY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9r ZXkgPSBkdW1wX3Rlc3QuY21rMSwgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLCBl bmNyeXB0ZWRfdmFsdWUgPSBcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg JWR1bXBfdGVzdF9zY2hlbWFfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCQl1 bmxpa2UgPT4geyBleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgfSwKKwl9LAorCisJ J0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9 PiA1MCwKKwkJY3JlYXRlX3NxbCAgID0+ICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgZHVt cF90ZXN0LmNtazEgV0lUSCAocmVhbG0gPSAnbXlyZWFsbScpOyIsCisJCXJlZ2V4cCAgICAg ICA9PiBxci9eCisJCQlcUUNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBkdW1wX3Rlc3QuY21r MSBXSVRIIChyZWFsbSA9ICdteXJlYWxtJyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVm dWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4g MSwgfSwKKwkJdW5saWtlID0+IHsgZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIH0s CisJfSwKKwogCSdDUkVBVEUgREFUQUJBU0UgcG9zdGdyZXMnID0+IHsKIAkJcmVnZXhwID0+ IHFyL14KIAkJCVxRQ1JFQVRFIERBVEFCQVNFIHBvc3RncmVzIFdJVEggVEVNUExBVEUgPSB0 ZW1wbGF0ZTAgXEUKQEAgLTM1NzAsNiArMzYyMiwyNiBAQAogCQl1bmxpa2UgPT4geyBub19w cml2cyA9PiAxLCB9LAogCX0sCiAKKwknR1JBTlQgVVNBR0UgT04gQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDg1LAorCQljcmVhdGVfc3Fs ICAgPT4gJ0dSQU5UIFVTQUdFIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBkdW1wX3Rlc3Qu Y2VrMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJ CQlcUUdSQU5UIEFMTCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgZHVtcF90ZXN0LmNlazEg VE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1 bGxfcnVucywgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAx LCB9LAorCQl1bmxpa2UgPT4geyBleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgbm9f cHJpdnMgPT4gMSwgfSwKKwl9LAorCisJJ0dSQU5UIFVTQUdFIE9OIENPTFVNTiBNQVNURVIg S0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDg1LAorCQljcmVhdGVfc3FsICAg PT4gJ0dSQU5UIFVTQUdFIE9OIENPTFVNTiBNQVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxIFRP IHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRR1JB TlQgQUxMIE9OIENPTFVNTiBNQVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxIFRPIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGU7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsICVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5s aWtlID0+IHsgZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIG5vX3ByaXZzID0+IDEs IH0sCisJfSwKKwogCSdHUkFOVCBVU0FHRSBPTiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1t eScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gODUsCiAJCWNyZWF0ZV9zcWwgICA9PiAnR1JB TlQgVVNBR0UgT04gRk9SRUlHTiBEQVRBIFdSQVBQRVIgZHVtbXkKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDk1 NTM5N2VlOWQuLjBkNmE0NmQyNGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5k LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtODE1LDcgKzgxNSwxMSBAQCBl eGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2Jy YW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVRhYmxlc3Bh Y2VzKHBhdHRlcm4sIHNob3dfdmVyYm9zZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlICdjJzoK LQkJCQlpZiAoc3RybmNtcChjbWQsICJkY29uZmlnIiwgNykgPT0gMCkKKwkJCQlpZiAoc3Ry bmNtcChjbWQsICJkY2VrIiwgNCkgPT0gMCkKKwkJCQkJc3VjY2VzcyA9IGxpc3RDRUtzKHBh dHRlcm4sIHNob3dfdmVyYm9zZSk7CisJCQkJZWxzZSBpZiAoc3RybmNtcChjbWQsICJkY21r IiwgNCkgPT0gMCkKKwkJCQkJc3VjY2VzcyA9IGxpc3RDTUtzKHBhdHRlcm4sIHNob3dfdmVy Ym9zZSk7CisJCQkJZWxzZSBpZiAoc3RybmNtcChjbWQsICJkY29uZmlnIiwgNykgPT0gMCkK IAkJCQkJc3VjY2VzcyA9IGRlc2NyaWJlQ29uZmlndXJhdGlvblBhcmFtZXRlcnMocGF0dGVy biwKIAkJCQkJCQkJCQkJCQkJCSAgc2hvd192ZXJib3NlLAogCQkJCQkJCQkJCQkJCQkJICBz aG93X3N5c3RlbSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM4YTBiYjdiM2EuLjA0ZDQzN2Y4MzYgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCkBAIC0xNTMwLDcgKzE1MzAsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWls cyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWJvb2wJCXByaW50VGFibGVJbml0aWFsaXpl ZCA9IGZhbHNlOwogCWludAkJCWk7CiAJY2hhcgkgICAqdmlld19kZWYgPSBOVUxMOwotCWNo YXIJICAgKmhlYWRlcnNbMTJdOworCWNoYXIJICAgKmhlYWRlcnNbMTNdOwogCVBRRXhwQnVm ZmVyRGF0YSB0aXRsZTsKIAlQUUV4cEJ1ZmZlckRhdGEgdG1wYnVmOwogCWludAkJCWNvbHM7 CkBAIC0xNTQ2LDYgKzE1NDYsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBj aGFyICpzY2hlbWFuYW1lLAogCQkJCWZkd29wdHNfY29sID0gLTEsCiAJCQkJYXR0c3RvcmFn ZV9jb2wgPSAtMSwKIAkJCQlhdHRjb21wcmVzc2lvbl9jb2wgPSAtMSwKKwkJCQlhdHRjZWtu YW1lX2NvbCA9IC0xLAogCQkJCWF0dHN0YXR0YXJnZXRfY29sID0gLTEsCiAJCQkJYXR0ZGVz Y3JfY29sID0gLTE7CiAJaW50CQkJbnVtcm93czsKQEAgLTE1NjgsNiArMTU2OSw4IEBAIGRl c2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWNoYXIJ ICAgKnJlbGFtOwogCX0JCQl0YWJsZWluZm87CiAJYm9vbAkJc2hvd19jb2x1bW5fZGV0YWls cyA9IGZhbHNlOworCWNvbnN0IGNoYXIgKmF0dHVzZXJ0eXBpZDsKKwljb25zdCBjaGFyICph dHR1c2VydHlwbW9kOwogCiAJbXlvcHQuZGVmYXVsdF9mb290ZXIgPSBmYWxzZTsKIAkvKiBU aGlzIG91dHB1dCBsb29rcyBjb25mdXNpbmcgaW4gZXhwYW5kZWQgbW9kZS4gKi8KQEAgLTE4 NDQsNyArMTg0NywxNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpz Y2hlbWFuYW1lLAogCWNvbHMgPSAwOwogCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICJTRUxF Q1QgYS5hdHRuYW1lIik7CiAJYXR0bmFtZV9jb2wgPSBjb2xzKys7Ci0JYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZShhLmF0dHR5cGlk LCBhLmF0dHR5cG1vZCkiKTsKKwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCisJewor CQlhdHR1c2VydHlwaWQgPSAiQ0FTRSBXSEVOIGEuYXR0dXNlcnR5cGlkIDw+IDAgVEhFTiBh LmF0dHVzZXJ0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5EIjsKKwkJYXR0dXNlcnR5cG1vZCA9 ICJDQVNFIFdIRU4gYS5hdHR1c2VydHlwaWQgPD4gMCBUSEVOIGEuYXR0dXNlcnR5cG1vZCBF TFNFIGEuYXR0dHlwbW9kIEVORCI7CisJfQorCWVsc2UKKwl7CisJCWF0dHVzZXJ0eXBpZCA9 ICJhLmF0dHR5cGlkIjsKKwkJYXR0dXNlcnR5cG1vZCA9ICJhLmF0dHR5cG1vZCI7CisJfQor CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUo JXMsICVzKSIsIGF0dHVzZXJ0eXBpZCwgYXR0dXNlcnR5cG1vZCk7CiAJYXR0dHlwZV9jb2wg PSBjb2xzKys7CiAKIAlpZiAoc2hvd19jb2x1bW5fZGV0YWlscykKQEAgLTE4NTcsNyArMTg3 MCw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUs CiAJCQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOwogCQlhdHRyZGVmX2NvbCA9IGNvbHMr KzsKIAkJYXR0bm90bnVsbF9jb2wgPSBjb2xzKys7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29s bGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsICIsXG4iCisJCQkJCQkJICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBn X2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCiAJCQkJ CQkJICIgICBXSEVSRSBjLm9pZCA9IGEuYXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IGEuYXR0 dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uKSBBUyBhdHRjb2xs YXRpb24iKTsKIAkJYXR0Y29sbF9jb2wgPSBjb2xzKys7CiAJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDEwMDAwMCkKQEAgLTE5MDksNiArMTkyMywxOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJYXR0Y29tcHJlc3Npb25fY29sID0g Y29scysrOwogCQl9CiAKKwkJLyogZW5jcnlwdGlvbiBpbmZvICovCisJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE2MDAwMCAmJgorCQkJIXBzZXQuaGlkZV9jb2x1bW5fZW5jcnlwdGlvbiAm JgorCQkJKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCSB0 YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcgfHwKKwkJCSB0YWJsZWluZm8ucmVs a2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSkKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgKFNFTEVDVCBjZWtuYW1lIEZST00gcGdfY29sZW5ja2V5IGNlayBX SEVSRSBjZWsub2lkID0gYS5hdHRjZWspIEFTIGF0dGNla25hbWUiKTsKKwkJCWF0dGNla25h bWVfY29sID0gY29scysrOworCQl9CisKIAkJLyogc3RhdHMgdGFyZ2V0LCBpZiByZWxldmFu dCB0byByZWxraW5kICovCiAJCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1JF TEFUSU9OIHx8CiAJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8CkBA IC0yMDMyLDYgKzIwNTgsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFy ICpzY2hlbWFuYW1lLAogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIlN0b3Jh Z2UiKTsKIAlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCiAJCWhlYWRlcnNbY29scysr XSA9IGdldHRleHRfbm9vcCgiQ29tcHJlc3Npb24iKTsKKwlpZiAoYXR0Y2VrbmFtZV9jb2wg Pj0gMCkKKwkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJFbmNyeXB0aW9uIik7 CiAJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDApCiAJCWhlYWRlcnNbY29scysrXSA9IGdl dHRleHRfbm9vcCgiU3RhdHMgdGFyZ2V0Iik7CiAJaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQpA QCAtMjEyNCw2ICsyMTUyLDE3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJICBmYWxzZSwgZmFsc2UpOwogCQl9CiAKKwkJLyog Q29sdW1uIGVuY3J5cHRpb24gKi8KKwkJaWYgKGF0dGNla25hbWVfY29sID49IDApCisJCXsK KwkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBhdHRjZWtuYW1lX2NvbCkpCisJCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRjZWtuYW1lX2Nv bCksCisJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKKwkJCWVsc2UKKwkJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgIiIsCisJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKKwkJfQorCiAJ CS8qIFN0YXRpc3RpY3MgdGFyZ2V0LCBpZiB0aGUgcmVsa2luZCBzdXBwb3J0cyB0aGlzIGZl YXR1cmUgKi8KIAkJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDApCiAJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dHN0YXR0YXJnZXRfY29sKSwK QEAgLTQ0NzcsNiArNDUxNiwxNTIgQEAgbGlzdENvbnZlcnNpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQogCXJldHVybiB0cnVlOwog fQogCisvKgorICogXGRjZWsKKyAqCisgKiBMaXN0cyBjb2x1bW4gZW5jcnlwdGlvbiBrZXlz LgorICovCitib29sCitsaXN0Q0VLcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJv c2UpCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJp bnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKKworCWlmIChwc2V0LnN2ZXJzaW9uIDwg MTYwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJU aGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IGNvbHVtbiBlbmNyeXB0 aW9uLiIsCisJCQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVyc2lvbiwgZmFs c2UsCisJCQkJCQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJCXJldHVy biB0cnVlOworCX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBRRXhw QnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCAiCisJCQkJCSAgIm4ubnNwbmFtZSBBUyBc IiVzXCIsICIKKwkJCQkJICAiY2VrbmFtZSBBUyBcIiVzXCIsICIKKwkJCQkJICAicGdfY2F0 YWxvZy5wZ19nZXRfdXNlcmJ5aWQoY2Vrb3duZXIpIEFTIFwiJXNcIiwgIgorCQkJCQkgICJj bWtuYW1lIEFTIFwiJXNcIiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVy IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJNYXN0ZXIga2V5IikpOworCWlmICh2ZXJib3Nl KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiwgIik7CisJCXByaW50QUNMQ29s dW1uKCZidWYsICJjZWthY2wiKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJ CSAgIiwgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24oY2VrLm9pZCwgJ3BnX2NvbGVuY2tl eScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSk7 CisJfQorCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19j YXRhbG9nLnBnX2NvbGVuY2tleSBjZWsgIgorCQkJCQkJICJMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGNlay5jZWtuYW1lc3BhY2UgIgorCQkJCQkJ ICJKT0lOIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0YSBja2QgT04gKGNlay5vaWQgPSBj a2QuY2tkY2VraWQpICIKKwkJCQkJCSAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbG1hc3Rlcmtl eSBjbWsgT04gKGNrZC5ja2RjbWtpZCA9IGNtay5vaWQpICIpOworCisJaWYgKCF2YWxpZGF0 ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJ Im4ubnNwbmFtZSIsICJjZWtuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdf Y2VrX2lzX3Zpc2libGUoY2VrLm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwl7CisJCXRl cm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLCAyLCA0Iik7CisKKwlyZXMgPSBQU1FM ZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQor CQlyZXR1cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCW15b3B0LnRp dGxlID0gXygiTGlzdCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIik7CisJbXlvcHQudHJh bnNsYXRlX2hlYWRlciA9IHRydWU7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0 LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7CisJ cmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBcZGNtaworICoKKyAqIExpc3RzIGNvbHVtbiBt YXN0ZXIga2V5cy4KKyAqLworYm9vbAorbGlzdENNS3MoY29uc3QgY2hhciAqcGF0dGVybiwg Ym9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAq cmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisKKwlpZiAocHNldC5z dmVyc2lvbiA8IDE2MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xv Z19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBjb2x1 bW4gZW5jcnlwdGlvbi4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3Zl cnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkp OworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlw cmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1QgIgorCQkJCQkgICJuLm5z cG5hbWUgQVMgXCIlc1wiLCAiCisJCQkJCSAgImNta25hbWUgQVMgXCIlc1wiLCAiCisJCQkJ CSAgInBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGNta293bmVyKSBBUyBcIiVzXCIsICIK KwkJCQkJICAiY21rcmVhbG0gQVMgXCIlc1wiIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNj aGVtYSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlJlYWxtIikpOworCWlmICh2 ZXJib3NlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiwgIik7CisJCXByaW50 QUNMQ29sdW1uKCZidWYsICJjbWthY2wiKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwK KwkJCQkJCSAgIiwgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24oY21rLm9pZCwgJ3BnX2Nv bG1hc3RlcmtleScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVzY3Jp cHRpb24iKSk7CisJfQorCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkgIlxu RlJPTSBwZ19jYXRhbG9nLnBnX2NvbG1hc3RlcmtleSBjbWsgIgorCQkJCQkJICJMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGNtay5jbWtuYW1lc3Bh Y2UgIik7CisKKwlpZiAoIXZhbGlkYXRlU1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwg ZmFsc2UsIGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgImNta25hbWUiLCBOVUxMLAor CQkJCQkJCQkicGdfY2F0YWxvZy5wZ19jbWtfaXNfdmlzaWJsZShjbWsub2lkKSIsCisJCQkJ CQkJCU5VTEwsIDMpKQorCXsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQlyZXR1cm4g ZmFsc2U7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEs IDIiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIo JmJ1Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0Lm51bGxQcmlu dCA9IE5VTEw7CisJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGNvbHVtbiBtYXN0ZXIga2V5 cyIpOworCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCisJcHJpbnRRdWVyeShy ZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJ UFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQorCiAvKgogICogXGRjb25maWcKICAq CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5oCmluZGV4IDU1NGZlODY3MjUuLjFjZjhmNzIxNzYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBA IC03Niw2ICs3NiwxMiBAQCBleHRlcm4gYm9vbCBsaXN0RG9tYWlucyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSk7CiAvKiBcZGMgKi8KIGV4 dGVybiBib29sIGxpc3RDb252ZXJzaW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZl cmJvc2UsIGJvb2wgc2hvd1N5c3RlbSk7CiAKKy8qIFxkY2VrICovCitleHRlcm4gYm9vbCBs aXN0Q0VLcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOworCisvKiBcZGNt ayAqLworZXh0ZXJuIGJvb2wgbGlzdENNS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKTsKKwogLyogXGRjb25maWcgKi8KIGV4dGVybiBib29sIGRlc2NyaWJlQ29uZmln dXJhdGlvblBhcmFtZXRlcnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLAog CQkJCQkJCQkJCQlib29sIHNob3dTeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggZTQ1YzRhYWNhNS4uMTcyOTk2 Njk1OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYworKysgYi9zcmMvYmluL3Bz cWwvaGVscC5jCkBAIC0yNTIsNiArMjUyLDggQEAgc2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9y dCBpbnQgcGFnZXIpCiAJSEVMUDAoIiAgXFxkQXBbK10gW0FNUFRSTiBbT1BGUFRSTl1dICAg bGlzdCBzdXBwb3J0IGZ1bmN0aW9ucyBvZiBvcGVyYXRvciBmYW1pbGllc1xuIik7CiAJSEVM UDAoIiAgXFxkYlsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCB0YWJsZXNwYWNlc1xuIik7CiAJ SEVMUDAoIiAgXFxkY1tTK10gW1BBVFRFUk5dICAgICAgbGlzdCBjb252ZXJzaW9uc1xuIik7 CisJSEVMUDAoIiAgXFxkY2VrWytdIFtQQVRURVJOXSAgICAgbGlzdCBjb2x1bW4gZW5jcnlw dGlvbiBrZXlzXG4iKTsKKwlIRUxQMCgiICBcXGRjbWtbK10gW1BBVFRFUk5dICAgICBsaXN0 IGNvbHVtbiBtYXN0ZXIga2V5c1xuIik7CiAJSEVMUDAoIiAgXFxkY29uZmlnWytdIFtQQVRU RVJOXSAgbGlzdCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnNcbiIpOwogCUhFTFAwKCIgIFxc ZENbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgY2FzdHNcbiIpOwogCUhFTFAwKCIgIFxcZGRb U10gIFtQQVRURVJOXSAgICAgIHNob3cgb2JqZWN0IGRlc2NyaXB0aW9ucyBub3QgZGlzcGxh eWVkIGVsc2V3aGVyZVxuIik7CkBAIC00MTMsNiArNDE1LDggQEAgaGVscFZhcmlhYmxlcyh1 bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJCSAgIiAgICB0cnVlIGlmIGxhc3QgcXVlcnkg ZmFpbGVkLCBlbHNlIGZhbHNlXG4iKTsKIAlIRUxQMCgiICBGRVRDSF9DT1VOVFxuIgogCQkg ICIgICAgdGhlIG51bWJlciBvZiByZXN1bHQgcm93cyB0byBmZXRjaCBhbmQgZGlzcGxheSBh dCBhIHRpbWUgKDAgPSB1bmxpbWl0ZWQpXG4iKTsKKwlIRUxQMCgiICBISURFX0NPTFVNTl9F TkNSWVBUSU9OXG4iCisJCSAgIiAgICBpZiBzZXQsIGNvbHVtbiBlbmNyeXB0aW9uIGRldGFp bHMgYXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVEFCTEVBTVxuIgog CQkgICIgICAgaWYgc2V0LCB0YWJsZSBhY2Nlc3MgbWV0aG9kcyBhcmUgbm90IGRpc3BsYXll ZFxuIik7CiAJSEVMUDAoIiAgSElERV9UT0FTVF9DT01QUkVTU0lPTlxuIgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaApp bmRleCA3M2Q0YjM5M2JjLi4wMTBiYzVhNmQ1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv c2V0dGluZ3MuaAorKysgYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaApAQCAtMTM3LDYgKzEz Nyw3IEBAIHR5cGVkZWYgc3RydWN0IF9wc3FsU2V0dGluZ3MKIAlib29sCQlxdWlldDsKIAli b29sCQlzaW5nbGVsaW5lOwogCWJvb2wJCXNpbmdsZXN0ZXA7CisJYm9vbAkJaGlkZV9jb2x1 bW5fZW5jcnlwdGlvbjsKIAlib29sCQloaWRlX2NvbXByZXNzaW9uOwogCWJvb2wJCWhpZGVf dGFibGVhbTsKIAlpbnQJCQlmZXRjaF9jb3VudDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9zdGFydHVwLmMgYi9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCmluZGV4IDVhMjhiNmY3MTMu LjY3MzY1MDVjM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKKysrIGIv c3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwpAQCAtMTE4OCw2ICsxMTg4LDEzIEBAIGhpZGVfY29t cHJlc3Npb25faG9vayhjb25zdCBjaGFyICpuZXd2YWwpCiAJCQkJCQkJICZwc2V0LmhpZGVf Y29tcHJlc3Npb24pOwogfQogCitzdGF0aWMgYm9vbAoraGlkZV9jb2x1bW5fZW5jcnlwdGlv bl9ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKK3sKKwlyZXR1cm4gUGFyc2VWYXJpYWJsZUJv b2wobmV3dmFsLCAiSElERV9DT0xVTU5fRU5DUllQVElPTiIsCisJCQkJCQkJICZwc2V0Lmhp ZGVfY29sdW1uX2VuY3J5cHRpb24pOworfQorCiBzdGF0aWMgYm9vbAogaGlkZV90YWJsZWFt X2hvb2soY29uc3QgY2hhciAqbmV3dmFsKQogewpAQCAtMTI1OSw2ICsxMjY2LDkgQEAgRXN0 YWJsaXNoVmFyaWFibGVTcGFjZSh2b2lkKQogCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJz LCAiU0hPV19DT05URVhUIiwKIAkJCQkJIHNob3dfY29udGV4dF9zdWJzdGl0dXRlX2hvb2ss CiAJCQkJCSBzaG93X2NvbnRleHRfaG9vayk7CisJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZh cnMsICJISURFX0NPTFVNTl9FTkNSWVBUSU9OIiwKKwkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9o b29rLAorCQkJCQkgaGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKTsKIAlTZXRWYXJpYWJs ZUhvb2tzKHBzZXQudmFycywgIkhJREVfVE9BU1RfQ09NUFJFU1NJT04iLAogCQkJCQkgYm9v bF9zdWJzdGl0dXRlX2hvb2ssCiAJCQkJCSBoaWRlX2NvbXByZXNzaW9uX2hvb2spOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jCmluZGV4IDVlMTg4MmVhZWEuLjA2NDI0NDlmYTAgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKQEAgLTkzMyw2ICs5MzMsMjAgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5 IFF1ZXJ5X2Zvcl9saXN0X29mX2NvbGxhdGlvbnMgPSB7CiAJLnJlc3VsdCA9ICJjLmNvbGxu YW1lIiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9v Zl9jZWtzID0geworCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfY29sZW5ja2V5IGMiLAor CS52aXNjb25kaXRpb24gPSAicGdfY2F0YWxvZy5wZ19jZWtfaXNfdmlzaWJsZShjLm9pZCki LAorCS5uYW1lc3BhY2UgPSAiYy5jZWtuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAiYy5jZWtu YW1lIiwKK307CisKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9v Zl9jbWtzID0geworCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfY29sbWFzdGVya2V5IGMi LAorCS52aXNjb25kaXRpb24gPSAicGdfY2F0YWxvZy5wZ19jbWtfaXNfdmlzaWJsZShjLm9p ZCkiLAorCS5uYW1lc3BhY2UgPSAiYy5jbWtuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAiYy5j bWtuYW1lIiwKK307CisKIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfcGFy dGl0aW9uX29mX3RhYmxlID0gewogCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfY2xhc3Mg YzEsIHBnX2NhdGFsb2cucGdfY2xhc3MgYzIsIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMgaSIs CiAJLnNlbGNvbmRpdGlvbiA9ICJjMS5vaWQ9aS5pbmhwYXJlbnQgYW5kIGkuaW5ocmVsaWQ9 YzIub2lkIGFuZCBjMi5yZWxpc3BhcnRpdGlvbiIsCkBAIC0xMjIzLDYgKzEyMzcsOCBAQCBz dGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7 IkNBU1QiLCBOVUxMLCBOVUxMLCBOVUxMfSwgLyogQ2FzdHMgaGF2ZSBjb21wbGV4IHN0cnVj dHVyZXMgZm9yIG5hbWVzLCBzbwogCQkJCQkJCQkgKiBza2lwIGl0ICovCiAJeyJDT0xMQVRJ T04iLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0aW9uc30sCisJeyJD T0xVTU4gRU5DUllQVElPTiBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7IkNPTFVNTiBN QVNURVIgS0VZIEtFWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCiAJLyoKIAkgKiBDUkVBVEUg Q09OU1RSQUlOVCBUUklHR0VSIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBiZWNhdXNlIGl0IGlz IGRlc2lnbmVkCkBAIC0xNzA1LDcgKzE3MjEsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3Qg Y2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxjb25uZWN0IiwgIlxcY29u bmluZm8iLCAiXFxDIiwgIlxcY2QiLCAiXFxjb3B5IiwKIAkJIlxcY29weXJpZ2h0IiwgIlxc Y3Jvc3N0YWJ2aWV3IiwKIAkJIlxcZCIsICJcXGRhIiwgIlxcZEEiLCAiXFxkQWMiLCAiXFxk QWYiLCAiXFxkQW8iLCAiXFxkQXAiLAotCQkiXFxkYiIsICJcXGRjIiwgIlxcZGNvbmZpZyIs ICJcXGRDIiwgIlxcZGQiLCAiXFxkZHAiLCAiXFxkRCIsCisJCSJcXGRiIiwgIlxcZGMiLCAi XFxkY2VrIiwgIlxcZGNtayIsICJcXGRjb25maWciLCAiXFxkQyIsICJcXGRkIiwgIlxcZGRw IiwgIlxcZEQiLAogCQkiXFxkZXMiLCAiXFxkZXQiLCAiXFxkZXUiLCAiXFxkZXciLCAiXFxk RSIsICJcXGRmIiwKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxk ZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIs ICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCkBAIC0xOTUyLDYg KzE5NjgsMjIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFy dCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xMQVRJT04iLCBN YXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFRlJFU0ggVkVSU0lP TiIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCisJLyogQUxURVIvRFJPUCBDT0xV TU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUnxEUk9QIiwg IkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9jZWtzKTsKKworCS8qIEFMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIkNPTFVNTiIs ICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQURE IFZBTFVFICgiLCAiRFJPUCBWQUxVRSAoIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJT RVQgU0NIRU1BIik7CisKKwkvKiBBTFRFUi9EUk9QIENPTFVNTiBNQVNURVIgS0VZICovCisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8RFJPUCIsICJDT0xVTU4iLCAiTUFTVEVSIiwgIktF WSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9j bWtzKTsKKworCS8qIEFMVEVSIENPTFVNTiBNQVNURVIgS0VZICovCisJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkpCisJ CUNPTVBMRVRFX1dJVEgoIigiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hF TUEiKTsKKwogCS8qIEFMVEVSIENPTlZFUlNJT04gPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiQ09OVkVSU0lPTiIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lU SCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKQEAgLTI4OTQsNiAr MjkyNiwyNiBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0 LCBpbnQgZW5kKQogCQkJQ09NUExFVEVfV0lUSCgidHJ1ZSIsICJmYWxzZSIpOwogCX0KIAor CS8qIENSRUFURS9BTFRFUi9EUk9QIENPTFVNTiAuLi4gS0VZICovCisJZWxzZSBpZiAoTWF0 Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAiQ09MVU1OIikpCisJCUNPTVBMRVRFX1dJVEgo IkVOQ1JZUFRJT04iLCAiTUFTVEVSIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFfEFM VEVSfERST1AiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT058TUFTVEVSIikpCisJCUNPTVBMRVRF X1dJVEgoIktFWSIpOworCisJLyogQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAqLwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJL RVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIldJVEgiKTsKKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hB bnksICJXSVRIIikpCisJCUNPTVBMRVRFX1dJVEgoIlZBTFVFUyIpOworCWVsc2UgaWYgKE1h dGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFu eSwgIldJVEgiLCAiVkFMVUVTIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKworCS8qIENS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lU SCgiV0lUSCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiTUFT VEVSIiwgIktFWSIsIE1hdGNoQW55LCAiV0lUSCIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7 CisKIAkvKiBDUkVBVEUgREFUQUJBU0UgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUi LCAiREFUQUJBU0UiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIiwgIlRF TVBMQVRFIiwgIkVOQ09ESU5HIiwgIlRBQkxFU1BBQ0UiLApAQCAtMzYwNSw3ICszNjU3LDcg QEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVu ZCkKIAogLyogRElTQ0FSRCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRJU0NBUkQiKSkKLQkJ Q09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIik7CisJ CUNPTVBMRVRFX1dJVEgoIkFMTCIsICJDT0xVTU4gRU5DUllQVElPTiBLRVlTIiwgIlBMQU5T IiwgIlNFUVVFTkNFUyIsICJURU1QIik7CiAKIC8qIERPICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiRE8iKSkKQEAgLTM2MTksNiArMzY3MSw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBj aGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkgTWF0Y2hlcygiRFJPUCIsICJB Q0NFU1MiLCAiTUVUSE9EIiwgTWF0Y2hBbnkpIHx8CiAJCQkgKE1hdGNoZXMoIkRST1AiLCAi QUdHUkVHQVRFfEZVTkNUSU9OfFBST0NFRFVSRXxST1VUSU5FIiwgTWF0Y2hBbnksIE1hdGNo QW55KSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwgJyknKSkgfHwKKwkJCSBNYXRjaGVz KCJEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIsICJLRVkiLCBNYXRjaEFu eSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkVWRU5UIiwgIlRSSUdHRVIiLCBNYXRjaEFu eSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkZPUkVJR04iLCAiREFUQSIsICJXUkFQUEVS IiwgTWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJGT1JFSUdOIiwgIlRBQkxF IiwgTWF0Y2hBbnkpIHx8CkBAIC0zOTMxLDYgKzM5ODQsOCBAQCBwc3FsX2NvbXBsZXRpb24o Y29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJCQkJCQkJCQkiQUxM IFJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCQkJCQkJCSJBTEwgU0VRVUVOQ0VTIElOIFND SEVNQSIsCiAJCQkJCQkJCQkJCSJBTEwgVEFCTEVTIElOIFNDSEVNQSIsCisJCQkJCQkJCQkJ CSJDT0xVTU4gRU5DUllQVElPTiBLRVkiLAorCQkJCQkJCQkJCQkiQ09MVU1OIE1BU1RFUiBL RVkiLAogCQkJCQkJCQkJCQkiREFUQUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJ CQkJCQkJCQkJIkZPUkVJR04gREFUQSBXUkFQUEVSIiwKQEAgLTQwNDYsNiArNDEwMSwxNiBA QCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5k KQogCQkJQ09NUExFVEVfV0lUSCgiRlJPTSIpOwogCX0KIAorCS8qIENvbXBsZXRlICJHUkFO VC9SRVZPS0UgKiBPTiBDT0xVTU4gRU5DUllQVElPTnxNQVNURVIgS0VZICoiIHdpdGggVE8v RlJPTSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFu eSwgIk9OIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIsICJLRVkiLCBNYXRjaEFu eSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJG T1IiLCBNYXRjaEFueSwgIk9OIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIsICJL RVkiLCBNYXRjaEFueSkpCisJeworCQlpZiAoVGFpbE1hdGNoZXMoIkdSQU5UIiwgTWF0Y2hB bnksIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkp CisJCQlDT01QTEVURV9XSVRIKCJUTyIpOworCQllbHNlCisJCQlDT01QTEVURV9XSVRIKCJG Uk9NIik7CisJfQorCiAJLyogQ29tcGxldGUgIkdSQU5UL1JFVk9LRSAqIE9OIEZPUkVJR04g REFUQSBXUkFQUEVSICoiIHdpdGggVE8vRlJPTSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iLCAiREFUQSIsICJX UkFQUEVSIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFO VCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIiwgIkRBVEEi LCAiV1JBUFBFUiIsIE1hdGNoQW55KSkKZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vTWFrZWZp bGUgYi9zcmMvY29tbW9uL01ha2VmaWxlCmluZGV4IDExMzAyOWJmN2IuLjczZGNlMTE1MGUg MTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vTWFrZWZpbGUKKysrIGIvc3JjL2NvbW1vbi9NYWtl ZmlsZQpAQCAtNDksNiArNDksNyBAQCBPQkpTX0NPTU1PTiA9IFwKIAlhcmNoaXZlLm8gXAog CWJhc2U2NC5vIFwKIAljaGVja3N1bV9oZWxwZXIubyBcCisJY29sZW5jLm8gXAogCWNvbXBy ZXNzaW9uLm8gXAogCWNvbmZpZ19pbmZvLm8gXAogCWNvbnRyb2xkYXRhX3V0aWxzLm8gXApk aWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9jb2xlbmMuYyBiL3NyYy9jb21tb24vY29sZW5jLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODZjNzM1ODc4ZQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9jb21tb24vY29sZW5jLmMKQEAgLTAsMCArMSwxMDQgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuYy5jCisgKgorICogU2hhcmVk IGNvZGUgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGFsZ29yaXRobXMuCisgKgorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQkgIHNyYy9jb21tb24vY29s ZW5jLmMKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgRlJPTlRFTkQK KyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2Vsc2UKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5o IgorI2VuZGlmCisKKyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCisKK2ludAorZ2V0X2Nt a2FsZ19udW0oY29uc3QgY2hhciAqbmFtZSkKK3sKKwlpZiAoc3RyY21wKG5hbWUsICJ1bnNw ZWNpZmllZCIpID09IDApCisJCXJldHVybiBQR19DTUtfVU5TUEVDSUZJRUQ7CisJZWxzZSBp ZiAoc3RyY21wKG5hbWUsICJSU0FFU19PQUVQX1NIQV8xIikgPT0gMCkKKwkJcmV0dXJuIFBH X0NNS19SU0FFU19PQUVQX1NIQV8xOworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiUlNBRVNf T0FFUF9TSEFfMjU2IikgPT0gMCkKKwkJcmV0dXJuIFBHX0NNS19SU0FFU19PQUVQX1NIQV8y NTY7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworY29uc3QgY2hhciAqCitnZXRfY21rYWxn X25hbWUoaW50IG51bSkKK3sKKwlzd2l0Y2ggKG51bSkKKwl7CisJCWNhc2UgUEdfQ01LX1VO U1BFQ0lGSUVEOgorCQkJcmV0dXJuICJ1bnNwZWNpZmllZCI7CisJCWNhc2UgUEdfQ01LX1JT QUVTX09BRVBfU0hBXzE6CisJCQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzEiOworCQljYXNl IFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY6CisJCQlyZXR1cm4gIlJTQUVTX09BRVBfU0hB XzI1NiI7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBKU09OIFdlYiBBbGdv cml0aG1zIChKV0EpIG5hbWVzIChSRkMgNzUxOCkKKyAqCisgKiBUaGlzIGlzIHVzZWZ1bCBm b3Igc29tZSBrZXkgbWFuYWdlbWVudCBzeXN0ZW1zIHRoYXQgdXNlIHRoZXNlIG5hbWVzCisg KiBuYXRpdmVseS4KKyAqLworY29uc3QgY2hhciAqCitnZXRfY21rYWxnX2p3YV9uYW1lKGlu dCBudW0pCit7CisJc3dpdGNoIChudW0pCisJeworCQljYXNlIFBHX0NNS19VTlNQRUNJRklF RDoKKwkJCXJldHVybiBOVUxMOworCQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOgor CQkJcmV0dXJuICJSU0EtT0FFUCI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1 NjoKKwkJCXJldHVybiAiUlNBLU9BRVAtMjU2IjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30K KworaW50CitnZXRfY2VrYWxnX251bShjb25zdCBjaGFyICpuYW1lKQoreworCWlmIChzdHJj bXAobmFtZSwgIkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2IikgPT0gMCkKKwkJcmV0 dXJuIFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjsKKwllbHNlIGlmIChz dHJjbXAobmFtZSwgIkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJ cmV0dXJuIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDsKKwllbHNlIGlm IChzdHJjbXAobmFtZSwgIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkK KwkJcmV0dXJuIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDsKKwllbHNl IGlmIChzdHJjbXAobmFtZSwgIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyIikgPT0g MCkKKwkJcmV0dXJuIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjsKKwll bHNlCisJCXJldHVybiAwOworfQorCitjb25zdCBjaGFyICoKK2dldF9jZWthbGdfbmFtZShp bnQgbnVtKQoreworCXN3aXRjaCAobnVtKQorCXsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNf MTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQlyZXR1cm4gIkFFQURfQUVTXzEyOF9DQkNfSE1B Q19TSEFfMjU2IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8z ODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJY2Fz ZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCQlyZXR1cm4gIkFF QURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNf MjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQlyZXR1cm4gIkFFQURfQUVTXzI1Nl9DQkNfSE1B Q19TSEFfNTEyIjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KZGlmZiAtLWdpdCBhL3NyYy9j b21tb24vbWVzb24uYnVpbGQgYi9zcmMvY29tbW9uL21lc29uLmJ1aWxkCmluZGV4IDQxYmQ1 OGViZGYuLjM2OTVkMzI4NWIgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vbWVzb24uYnVpbGQK KysrIGIvc3JjL2NvbW1vbi9tZXNvbi5idWlsZApAQCAtNCw2ICs0LDcgQEAgY29tbW9uX3Nv dXJjZXMgPSBmaWxlcygKICAgJ2FyY2hpdmUuYycsCiAgICdiYXNlNjQuYycsCiAgICdjaGVj a3N1bV9oZWxwZXIuYycsCisgICdjb2xlbmMuYycsCiAgICdjb21wcmVzc2lvbi5jJywKICAg J2NvbnRyb2xkYXRhX3V0aWxzLmMnLAogICAnZW5jbmFtZXMuYycsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmlu dHR1cC5oCmluZGV4IDc0N2VjYjgwMGQuLjRlMzg0YmJjZGIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmlu dHR1cC5oCkBAIC0yMCw5ICsyMCwxMyBAQCBleHRlcm4gRGVzdFJlY2VpdmVyICpwcmludHR1 cF9jcmVhdGVfRFIoQ29tbWFuZERlc3QgZGVzdCk7CiAKIGV4dGVybiB2b2lkIFNldFJlbW90 ZURlc3RSZWNlaXZlclBhcmFtcyhEZXN0UmVjZWl2ZXIgKnNlbGYsIFBvcnRhbCBwb3J0YWwp OwogCitleHRlcm4gdm9pZCBNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShP aWQgYXR0Y2VrKTsKKwogZXh0ZXJuIHZvaWQgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShT dHJpbmdJbmZvIGJ1ZiwKIAkJCQkJCQkJCSAgVHVwbGVEZXNjIHR5cGVpbmZvLCBMaXN0ICp0 YXJnZXRsaXN0LCBpbnQxNiAqZm9ybWF0cyk7CiAKK2V4dGVybiB2b2lkIERpc2NhcmRDb2x1 bW5FbmNyeXB0aW9uS2V5cyh2b2lkKTsKKwogZXh0ZXJuIHZvaWQgZGVidWdTdGFydHVwKERl c3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwKIAkJCQkJCSBUdXBsZURlc2MgdHlw ZWluZm8pOwogZXh0ZXJuIGJvb2wgZGVidWd0dXAoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERl c3RSZWNlaXZlciAqc2VsZik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2Rl cGVuZGVuY3kuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCmluZGV4IGZm ZDVlOWRjODIuLmViNTllNzNjMGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv ZGVwZW5kZW5jeS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCkBA IC05Miw2ICs5Miw5IEBAIHR5cGVkZWYgZW51bSBPYmplY3RDbGFzcwogCU9DTEFTU19UWVBF LAkJCQkvKiBwZ190eXBlICovCiAJT0NMQVNTX0NBU1QsCQkJCS8qIHBnX2Nhc3QgKi8KIAlP Q0xBU1NfQ09MTEFUSU9OLAkJCS8qIHBnX2NvbGxhdGlvbiAqLworCU9DTEFTU19DRUssCQkJ CQkvKiBwZ19jb2xlbmNrZXkgKi8KKwlPQ0xBU1NfQ0VLREFUQSwJCQkJLyogcGdfY29sZW5j a2V5ZGF0YSAqLworCU9DTEFTU19DTUssCQkJCQkvKiBwZ19jb2xtYXN0ZXJrZXkgKi8KIAlP Q0xBU1NfQ09OU1RSQUlOVCwJCQkvKiBwZ19jb25zdHJhaW50ICovCiAJT0NMQVNTX0NPTlZF UlNJT04sCQkJLyogcGdfY29udmVyc2lvbiAqLwogCU9DTEFTU19ERUZBVUxULAkJCQkvKiBw Z19hdHRyZGVmICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCmluZGV4IGQwMWFiNTA0YjYuLjc1ODY5NmI1 MzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvaGVhcC5oCkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIENIS0FU WVBFX0FOWUFSUkFZCQkweDAxCS8qIGFsbG93IEFOWUFSUkFZICovCiAjZGVmaW5lIENIS0FU WVBFX0FOWVJFQ09SRAkJMHgwMgkvKiBhbGxvdyBSRUNPUkQgYW5kIFJFQ09SRFtdICovCiAj ZGVmaW5lIENIS0FUWVBFX0lTX1BBUlRLRVkJCTB4MDQJLyogYXR0bmFtZSBpcyBwYXJ0IGtl eSAjIG5vdCBjb2x1bW4gKi8KKyNkZWZpbmUgQ0hLQVRZUEVfRU5DUllQVEVECQkweDA4CS8q IGFsbG93IGludGVybmFsIGVuY3J5cHRlZCB0eXBlcyAqLwogCiB0eXBlZGVmIHN0cnVjdCBS YXdDb2x1bW5EZWZhdWx0CiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCAzMTc5 YmUwOWQzLi45ZTJjNTI1NmY3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTY1 LDYgKzY1LDkgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfcHVibGljYXRpb25fcmVs LmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdfc3Vic2NyaXB0aW9uX3JlbC5o JywKKyAgJ3BnX2NvbG1hc3RlcmtleS5oJywKKyAgJ3BnX2NvbGVuY2tleS5oJywKKyAgJ3Bn X2NvbGVuY2tleWRhdGEuaCcsCiBdCiAKIGJraV9kYXRhID0gWwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKaW5kZXggZjY0YTBlYzI2Yi4uZDBiOWU4NDU4ZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L25hbWVzcGFjZS5oCkBAIC0xMTUsNiArMTE1LDEyIEBAIGV4dGVybiBib29sIE9wY2xhc3NJ c1Zpc2libGUoT2lkIG9wY2lkKTsKIGV4dGVybiBPaWQJT3BmYW1pbHluYW1lR2V0T3BmaWQo T2lkIGFtaWQsIGNvbnN0IGNoYXIgKm9wZm5hbWUpOwogZXh0ZXJuIGJvb2wgT3BmYW1pbHlJ c1Zpc2libGUoT2lkIG9wZmlkKTsKIAorZXh0ZXJuIE9pZAlnZXRfY2VrX29pZChMaXN0ICpu YW1lcywgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBib29sIENFS0lzVmlzaWJsZShPaWQg Y2VraWQpOworCitleHRlcm4gT2lkCWdldF9jbWtfb2lkKExpc3QgKm5hbWVzLCBib29sIG1p c3Npbmdfb2spOworZXh0ZXJuIGJvb2wgQ01LSXNWaXNpYmxlKE9pZCBjbWtpZCk7CisKIGV4 dGVybiBPaWQJQ29sbGF0aW9uR2V0Q29sbGlkKGNvbnN0IGNoYXIgKmNvbGxuYW1lKTsKIGV4 dGVybiBib29sIENvbGxhdGlvbklzVmlzaWJsZShPaWQgY29sbGlkKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1vcC5kYXQKaW5kZXggYzRkNmFkY2QzZS4uYzU4Yjc5ZTNhNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Ftb3AuZGF0CkBAIC0xMDI4LDYgKzEwMjgsMTEgQEAKICAgYW1vcHJpZ2h0 dHlwZSA9PiAnYnl0ZWEnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KGJ5 dGVhLGJ5dGVhKScsCiAgIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCiAKKyMgcGdfZW5jcnlw dGVkX2RldF9vcHMKK3sgYW1vcGZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29w cycsIGFtb3BsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtb3ByaWdodHR5 cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3By ID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBhbW9wbWV0 aG9kID0+ICdoYXNoJyB9LAorCiAjIHhpZF9vcHMKIHsgYW1vcGZhbWlseSA9PiAnaGFzaC94 aWRfb3BzJywgYW1vcGxlZnR0eXBlID0+ICd4aWQnLCBhbW9wcmlnaHR0eXBlID0+ICd4aWQn LAogICBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KHhpZCx4aWQpJywgYW1v cG1ldGhvZCA9PiAnaGFzaCcgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRl eCA1Yjk1MDEyOWRlLi4wZTllODVlYmYzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2Mu ZGF0CkBAIC00MDIsNiArNDAyLDExIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9ieXRl YV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLAogICBhbXByb2NyaWdodHR5cGUg PT4gJ2J5dGVhJywgYW1wcm9jbnVtID0+ICcyJywKICAgYW1wcm9jID0+ICdoYXNodmFybGVu YWV4dGVuZGVkJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2Rl dF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAnMScsIGFt cHJvYyA9PiAnaGFzaHZhcmxlbmEnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9wZ19l bmNyeXB0ZWRfZGV0X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0 JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgYW1wcm9jbnVt ID0+ICcyJywKKyAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3hpZCcsIGFtcHJvY251bSA9PiAnMScsIGFtcHJvYyA9 PiAnaGFzaGludDQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ3hpZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaApp bmRleCBiNTYxZTE3NzgxLi43OTEwMTc1YTZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2F0dHJpYnV0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0 cmlidXRlLmgKQEAgLTE2NCw2ICsxNjQsMTcgQEAgQ0FUQUxPRyhwZ19hdHRyaWJ1dGUsMTI0 OSxBdHRyaWJ1dGVSZWxhdGlvbklkKSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dUWVBFX09JRCg3 NSwKIAkgKi8KIAlib29sCQlhdHRpc2xvY2FsIEJLSV9ERUZBVUxUKHQpOwogCisJLyogY29s dW1uIGVuY3J5cHRpb24ga2V5ICovCisJT2lkCQkJYXR0Y2VrIEJLSV9ERUZBVUxUKDApIEJL SV9MT09LVVBfT1BUKHBnX2NvbGVuY2tleSk7CisKKwkvKgorCSAqIFVzZXItdmlzaWJsZSB0 eXBlIGFuZCB0eXBtb2QsIGN1cnJlbnRseSB1c2VkIGZvciBlbmNyeXB0ZWQgY29sdW1ucy4K KwkgKiBUaGVzZSBhcmUgb25seSBzZXQgdG8gbm9uZGVmYXVsdCB2YWx1ZXMgaWYgdGhleSBh cmUgZGlmZmVyZW50IGZyb20KKwkgKiBhdHR0eXBpZCBhbmQgYXR0eXBtb2QuCisJICovCisJ T2lkCQkJYXR0dXNlcnR5cGlkIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX3R5 cGUpOworCWludDMyCQlhdHR1c2VydHlwbW9kIEJLSV9ERUZBVUxUKC0xKTsKKwogCS8qIE51 bWJlciBvZiB0aW1lcyBpbmhlcml0ZWQgZnJvbSBkaXJlY3QgcGFyZW50IHJlbGF0aW9uKHMp ICovCiAJaW50MzIJCWF0dGluaGNvdW50IEJLSV9ERUZBVUxUKDApOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb2xlbmNrZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi5jNTdmYTE4YTI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jb2xlbmNrZXkuaApAQCAtMCwwICsxLDQ2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqCisgKiBwZ19jb2xlbmNrZXkuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29s dW1uIGVuY3J5cHRpb24ga2V5IiBzeXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NvbGVua2V5LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUg cmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4K KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xFTkNLRVlf SAorI2RlZmluZSBQR19DT0xFTkNLRVlfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2ku aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleV9kLmgiCisKKy8qIC0tLS0tLS0t LS0tLS0tLS0KKyAqCQlwZ19jb2xlbmNrZXkgZGVmaW5pdGlvbi4gY3BwIHR1cm5zIHRoaXMg aW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2NvbGVuY2tleQorICogLS0t LS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbGVuY2tleSw4MjM0LENvbHVtbkVu Y0tleVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCU5hbWVEYXRhCWNla25hbWU7CisJ T2lkCQkJY2VrbmFtZXNwYWNlIEJLSV9ERUZBVUxUKHBnX2NhdGFsb2cpIEJLSV9MT09LVVAo cGdfbmFtZXNwYWNlKTsKKwlPaWQJCQljZWtvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7 CisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0 YXJ0IGhlcmUgKi8KKwlhY2xpdGVtCQljZWthY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsK KyNlbmRpZgorfSBGb3JtRGF0YV9wZ19jb2xlbmNrZXk7CisKK3R5cGVkZWYgRm9ybURhdGFf cGdfY29sZW5ja2V5ICpGb3JtX3BnX2NvbGVuY2tleTsKKworREVDTEFSRV9UT0FTVChwZ19j b2xlbmNrZXksIDgyNjMsIDgyNjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBn X2NvbGVuY2tleV9vaWRfaW5kZXgsIDgyNDAsIENvbHVtbkVuY0tleU9pZEluZGV4SWQsIG9u IHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklR VUVfSU5ERVgocGdfY29sZW5ja2V5X2Nla25hbWVfbnNwX2luZGV4LCA4MjQyLCBDb2x1bW5F bmNLZXlOYW1lTnNwSW5kZXhJZCwgb24gcGdfY29sZW5ja2V5IHVzaW5nIGJ0cmVlKGNla25h bWUgbmFtZV9vcHMsIGNla25hbWVzcGFjZSBvaWRfb3BzKSk7CisKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5jODhlN2U2NWFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgKQEAgLTAsMCArMSw0NiBAQAorLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sZW5ja2V5ZGF0YS5oCisgKgkgIGRl ZmluaXRpb24gb2YgdGhlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIgc3lzdGVtIGNh dGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmtleWRhdGEuaAorICoKKyAqIE5PVEVT CisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2 ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisjaWZuZGVmIFBHX0NPTEVOQ0tFWURBVEFfSAorI2RlZmluZSBQR19DT0xFTkNL RVlEQVRBX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXlkYXRhX2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJ CXBnX2NvbGVuY2tleWRhdGEgZGVmaW5pdGlvbi4gY3BwIHR1cm5zIHRoaXMgaW50bworICoJ CXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2NvbGVuY2tleWRhdGEKKyAqIC0tLS0tLS0t LS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19jb2xlbmNrZXlkYXRhLDgyNTAsQ29sdW1uRW5j S2V5RGF0YVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCU9pZAkJCWNrZGNla2lkIEJL SV9MT09LVVAocGdfY29sZW5ja2V5KTsKKwlPaWQJCQlja2RjbWtpZCBCS0lfTE9PS1VQKHBn X2NvbG1hc3RlcmtleSk7CisJaW50MzIJCWNrZGNta2FsZzsJCS8qIFBHX0NNS18qIHZhbHVl cyAqLworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxk cyBzdGFydCBoZXJlICovCisJYnl0ZWEJCWNrZGVuY3ZhbCBCS0lfRk9SQ0VfTk9UX05VTEw7 CisjZW5kaWYKK30gRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YTsKKwordHlwZWRlZiBGb3Jt RGF0YV9wZ19jb2xlbmNrZXlkYXRhICpGb3JtX3BnX2NvbGVuY2tleWRhdGE7CisKK0RFQ0xB UkVfVE9BU1QocGdfY29sZW5ja2V5ZGF0YSwgODIzNywgODIzOCk7CisKK0RFQ0xBUkVfVU5J UVVFX0lOREVYX1BLRVkocGdfY29sZW5ja2V5ZGF0YV9vaWRfaW5kZXgsIDgyNTEsIENvbHVt bkVuY0tleURhdGFPaWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXlkYXRhIHVzaW5nIGJ0cmVl KG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xlbmNrZXlkYXRh X2NrZGNla2lkX2NrZGNta2lkX2luZGV4LCA4MjUyLCBDb2x1bW5FbmNLZXlDZWtpZENta2lk SW5kZXhJZCwgb24gcGdfY29sZW5ja2V5ZGF0YSB1c2luZyBidHJlZShja2RjZWtpZCBvaWRf b3BzLCBja2RjbWtpZCBvaWRfb3BzKSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29sbWFzdGVya2V5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uZDNiZmQzNjI3OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29sbWFzdGVya2V5LmgKQEAgLTAsMCArMSw0NyBAQAorLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogcGdfY29sbWFzdGVya2V5LmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUg ImNvbHVtbiBtYXN0ZXIga2V5IiBzeXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NvbG1hc3RlcmtleS5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9k dWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRp b24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MTUFT VEVSS0VZX0gKKyNkZWZpbmUgUEdfQ09MTUFTVEVSS0VZX0gKKworI2luY2x1ZGUgImNhdGFs b2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXlfZC5oIgor CisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sbWFzdGVya2V5IGRlZmluaXRpb24u IGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19j b2xtYXN0ZXJrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19jb2xt YXN0ZXJrZXksODIzMyxDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsKKwlOYW1lRGF0YQljbWtuYW1lOworCU9pZAkJCWNta25hbWVzcGFjZSBCS0lfREVGQVVM VChwZ19jYXRhbG9nKSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisJT2lkCQkJY21rb3du ZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyog dmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJdGV4dAkJY21rcmVhbG0g QktJX0ZPUkNFX05PVF9OVUxMOworCWFjbGl0ZW0JCWNta2FjbFsxXSBCS0lfREVGQVVMVChf bnVsbF8pOworI2VuZGlmCit9IEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleTsKKwordHlwZWRl ZiBGb3JtRGF0YV9wZ19jb2xtYXN0ZXJrZXkgKkZvcm1fcGdfY29sbWFzdGVya2V5OworCitE RUNMQVJFX1RPQVNUKHBnX2NvbG1hc3RlcmtleSwgODIzNSwgODIzNik7CisKK0RFQ0xBUkVf VU5JUVVFX0lOREVYX1BLRVkocGdfY29sbWFzdGVya2V5X29pZF9pbmRleCwgODIzOSwgQ29s dW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwgb24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVl KG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xtYXN0ZXJrZXlf Y21rbmFtZV9uc3BfaW5kZXgsIDgyNDEsIENvbHVtbk1hc3RlcktleU5hbWVOc3BJbmRleElk LCBvbiBwZ19jb2xtYXN0ZXJrZXkgdXNpbmcgYnRyZWUoY21rbmFtZSBuYW1lX29wcywgY21r bmFtZXNwYWNlIG9pZF9vcHMpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNs YXNzLmRhdAppbmRleCBjODY3ZDk5NTYzLi5mZjA2ZDUyZmQwIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfb3BjbGFzcy5kYXQKQEAgLTE2Niw2ICsxNjYsOCBAQAogICBvcGNpbnR5cGUgPT4g J2Jvb2wnIH0sCiB7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ2J5dGVhX29w cycsIG9wY2ZhbWlseSA9PiAnaGFzaC9ieXRlYV9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ2J5 dGVhJyB9LAoreyBvcGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdwZ19lbmNyeXB0 ZWRfZGV0X29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycs CisgIG9wY2ludHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcgfSwKIHsgb3BjbWV0aG9kID0+ ICdidHJlZScsIG9wY25hbWUgPT4gJ3RpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2J0cmVlL3Rp ZF9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ3RpZCcgfSwKIHsgb3BjbWV0aG9kID0+ICdoYXNo Jywgb3BjbmFtZSA9PiAneGlkX29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKaW5kZXggYjJjZGVhNjZjNC4uMTE0 Mjc5ZmE2NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKQEAgLTM0NTgs NCArMzQ1OCwxNCBAQAogICBvcHJjb2RlID0+ICdtdWx0aXJhbmdlX2FmdGVyX211bHRpcmFu Z2UnLCBvcHJyZXN0ID0+ICdtdWx0aXJhbmdlc2VsJywKICAgb3Byam9pbiA9PiAnc2NhbGFy Z3Rqb2luc2VsJyB9LAogCit7IG9pZCA9PiAnODI0NycsIGRlc2NyID0+ICdlcXVhbCcsCisg IG9wcm5hbWUgPT4gJz0nLCBvcHJjYW5tZXJnZSA9PiAnZicsIG9wcmNhbmhhc2ggPT4gJ3Qn LCBvcHJsZWZ0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgb3BycmlnaHQgPT4gJ3BnX2Vu Y3J5cHRlZF9kZXQnLCBvcHJyZXN1bHQgPT4gJ2Jvb2wnLCBvcHJjb20gPT4gJz0ocGdfZW5j cnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsCisgIG9wcm5lZ2F0ZSA9PiAnPD4ocGdf ZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9wcmNvZGUgPT4gJ3BnX2VuY3J5 cHRlZF9kZXRfZXEnLCBvcHJyZXN0ID0+ICdlcXNlbCcsCisgIG9wcmpvaW4gPT4gJ2Vxam9p bnNlbCcgfSwKK3sgb2lkID0+ICc4MjQ4JywgZGVzY3IgPT4gJ25vdCBlcXVhbCcsCisgIG9w cm5hbWUgPT4gJzw+Jywgb3BybGVmdCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJpZ2h0 ID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywKKyAgb3ByY29t ID0+ICc8PihwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywgb3BybmVnYXRl ID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJjb2Rl ID0+ICdwZ19lbmNyeXB0ZWRfZGV0X25lJywgb3BycmVzdCA9PiAnbmVxc2VsJywgb3Byam9p biA9PiAnbmVxam9pbnNlbCcgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19vcGZhbWlseS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5 LmRhdAppbmRleCA5MTU4N2I5OWQwLi5jMjEwNTJhM2Y3IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX29wZmFtaWx5LmRhdApAQCAtMTA4LDYgKzEwOCw4IEBACiAgIG9wZm1ldGhvZCA9PiAn aGFzaCcsIG9wZm5hbWUgPT4gJ2Jvb2xfb3BzJyB9LAogeyBvaWQgPT4gJzIyMjMnLAogICBv cGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdieXRlYV9vcHMnIH0sCit7IG9pZCA9 PiAnODI0OScsCisgIG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ3BnX2VuY3J5 cHRlZF9kZXRfb3BzJyB9LAogeyBvaWQgPT4gJzI3ODknLAogICBvcGZtZXRob2QgPT4gJ2J0 cmVlJywgb3BmbmFtZSA9PiAndGlkX29wcycgfSwKIHsgb2lkID0+ICcyMjI1JywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDUwNTU5NTYyMGUuLmI0MTAzODhhNDIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjM1NSw2ICs2MzU1LDE0IEBACiAgIHByb25h bWUgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJywgcHJvY29zdCA9PiAnMTAnLCBwcm92 b2xhdGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9 PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScgfSwKK3sg b2lkID0+ICc4MjYxJywgZGVzY3IgPT4gJ2lzIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB2aXNp YmxlIGluIHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX2Nla19pc192aXNpYmxl JywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUg PT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19jZWtf aXNfdmlzaWJsZScgfSwKK3sgb2lkID0+ICc4MjYyJywgZGVzY3IgPT4gJ2lzIGNvbHVtbiBt YXN0ZXIga2V5IHZpc2libGUgaW4gc2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdf Y21rX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywK KyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9z cmMgPT4gJ3BnX2Nta19pc192aXNpYmxlJyB9LAogCiB7IG9pZCA9PiAnMjg1NCcsIGRlc2Ny ID0+ICdnZXQgT0lEIG9mIGN1cnJlbnQgc2Vzc2lvblwncyB0ZW1wIHNjaGVtYSwgaWYgYW55 JywKICAgcHJvbmFtZSA9PiAncGdfbXlfdGVtcF9zY2hlbWEnLCBwcm92b2xhdGlsZSA9PiAn cycsIHByb3BhcmFsbGVsID0+ICdyJywKQEAgLTcxNDIsNiArNzE1MCw2OCBAQAogICBwcm9u YW1lID0+ICdmbWdyX3NxbF92YWxpZGF0b3InLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3Jl dHR5cGUgPT4gJ3ZvaWQnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJvc3JjID0+ICdm bWdyX3NxbF92YWxpZGF0b3InIH0sCiAKK3sgb2lkID0+ICc4MjY1JywKKyAgZGVzY3IgPT4g J3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBieSB1c2VybmFtZSwg Y29sdW1uIGVuY3J5cHRpb24ga2V5IG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1u X2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJv cmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICduYW1lIHRleHQgdGV4dCcsCisg IHByb3NyYyA9PiAnaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfbmFtZV9u YW1lJyB9LAoreyBvaWQgPT4gJzgyNjYnLAorICBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ug b24gY29sdW1uIGVuY3J5cHRpb24ga2V5IGJ5IHVzZXJuYW1lLCBjb2x1bW4gZW5jcnlwdGlv biBrZXkgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9w cml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wn LCBwcm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsCisgIHByb3NyYyA9PiAnaGFzX2Nv bHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwKK3sgb2lkID0+ICc4 MjY3JywKKyAgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBlbmNyeXB0aW9u IGtleSBieSB1c2VyIG9pZCwgY29sdW1uIGVuY3J5cHRpb24ga2V5IG5hbWUnLAorICBwcm9u YW1lID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZScsIHByb3ZvbGF0 aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdv aWQgdGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5 X3ByaXZpbGVnZV9pZF9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNjgnLAorICBkZXNjciA9PiAn dXNlciBwcml2aWxlZ2Ugb24gY29sdW1uIGVuY3J5cHRpb24ga2V5IGJ5IHVzZXIgb2lkLCBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9l bmNyeXB0aW9uX2tleV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3Jl dHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0JywKKyAgcHJv c3JjID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9pZF9pZCcgfSwK K3sgb2lkID0+ICc4MjY5JywKKyAgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBwcml2aWxlZ2Ug b24gY29sdW1uIGVuY3J5cHRpb24ga2V5IGJ5IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBuYW1l JywKKyAgcHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2Un LCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0 eXBlcyA9PiAndGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX2VuY3J5cHRp b25fa2V5X3ByaXZpbGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNzAnLAorICBkZXNjciA9 PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgYnkg Y29sdW1uIGVuY3J5cHRpb24ga2V5IG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19jb2x1bW5f ZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9y ZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0JywKKyAgcHJvc3Jj ID0+ICdoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZV9pZCcgfSwKKworeyBv aWQgPT4gJzgyNzEnLAorICBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gY29sdW1uIG1h c3RlciBrZXkgYnkgdXNlcm5hbWUsIGNvbHVtbiBtYXN0ZXIga2V5IG5hbWUnLAorICBwcm9u YW1lID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUg PT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ25hbWUg dGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlX25hbWVfbmFtZScgfSwKK3sgb2lkID0+ICc4MjcyJywKKyAgZGVzY3IgPT4gJ3VzZXIg cHJpdmlsZWdlIG9uIGNvbHVtbiBtYXN0ZXIga2V5IGJ5IHVzZXJuYW1lLCBjb2x1bW4gbWFz dGVyIGtleSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJp dmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywg cHJvYXJndHlwZXMgPT4gJ25hbWUgb2lkIHRleHQnLAorICBwcm9zcmMgPT4gJ2hhc19jb2x1 bW5fbWFzdGVyX2tleV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwKK3sgb2lkID0+ICc4MjczJywK KyAgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBtYXN0ZXIga2V5IGJ5IHVz ZXIgb2lkLCBjb2x1bW4gbWFzdGVyIGtleSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX2Nv bHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJv cmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCB0ZXh0JywKKyAg cHJvc3JjID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlX2lkX25hbWUnIH0s Cit7IG9pZCA9PiAnODI3NCcsCisgIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBjb2x1 bW4gbWFzdGVyIGtleSBieSB1c2VyIG9pZCwgY29sdW1uIG1hc3RlciBrZXkgb2lkJywKKyAg cHJvbmFtZSA9PiAnaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZScsIHByb3ZvbGF0 aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdv aWQgb2lkIHRleHQnLAorICBwcm9zcmMgPT4gJ2hhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2 aWxlZ2VfaWRfaWQnIH0sCit7IG9pZCA9PiAnODI3NScsCisgIGRlc2NyID0+ICdjdXJyZW50 IHVzZXIgcHJpdmlsZWdlIG9uIGNvbHVtbiBtYXN0ZXIga2V5IGJ5IGNvbHVtbiBtYXN0ZXIg a2V5IG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJv YXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsCisgIHByb3NyYyA9PiAnaGFzX2NvbHVtbl9tYXN0 ZXJfa2V5X3ByaXZpbGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzgyNzYnLAorICBkZXNjciA9 PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBjb2x1bW4gbWFzdGVyIGtleSBieSBjb2x1 bW4gbWFzdGVyIGtleSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfY29sdW1uX21hc3Rlcl9r ZXlfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdi b29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfY29s dW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlX2lkJyB9LAorCiB7IG9pZCA9PiAnMjI1MCcsCiAg IGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBkYXRhYmFzZSBieSB1c2VybmFtZSwgZGF0 YWJhc2UgbmFtZScsCiAgIHByb25hbWUgPT4gJ2hhc19kYXRhYmFzZV9wcml2aWxlZ2UnLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLApAQCAtMTE5MzksNCAr MTIwMDksMzcgQEAKICAgcHJvbmFtZSA9PiAnYW55X3ZhbHVlX3RyYW5zZm4nLCBwcm9yZXR0 eXBlID0+ICdhbnllbGVtZW50JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQgYW55 ZWxlbWVudCcsIHByb3NyYyA9PiAnYW55X3ZhbHVlX3RyYW5zZm4nIH0sCiAKK3sgb2lkID0+ ICc4MjUzJywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9k ZXRfaW4nLCBwcm9yZXR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgcHJvYXJndHlwZXMg PT4gJ2NzdHJpbmcnLAorICBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9pbicgfSwKK3sgb2lk ID0+ICc4MjU0JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRl ZF9kZXRfb3V0JywgcHJvcmV0dHlwZSA9PiAnY3N0cmluZycsIHByb2FyZ3R5cGVzID0+ICdw Z19lbmNyeXB0ZWRfZGV0JywKKyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfb3V0JyB9LAor eyBvaWQgPT4gJzgyNTUnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAncGdfZW5j cnlwdGVkX2RldF9yZWN2JywgcHJvcmV0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIHBy b2FyZ3R5cGVzID0+ICdpbnRlcm5hbCcsCisgIHByb3NyYyA9PiAncGdfZW5jcnlwdGVkX3Jl Y3YnIH0sCit7IG9pZCA9PiAnODI1NicsIGRlc2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ ICdwZ19lbmNyeXB0ZWRfZGV0X3NlbmQnLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2Fy Z3R5cGVzID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0 ZWRfc2VuZCcgfSwKKworeyBvaWQgPT4gJzgyNTcnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJv bmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZF9pbicsIHByb3JldHR5cGUgPT4gJ3BnX2VuY3J5 cHRlZF9ybmQnLCBwcm9hcmd0eXBlcyA9PiAnY3N0cmluZycsCisgIHByb3NyYyA9PiAncGdf ZW5jcnlwdGVkX2luJyB9LAoreyBvaWQgPT4gJzgyNTgnLCBkZXNjciA9PiAnSS9PJywKKyAg cHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZF9vdXQnLCBwcm9yZXR0eXBlID0+ICdjc3Ry aW5nJywgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLAorICBwcm9zcmMgPT4g J3BnX2VuY3J5cHRlZF9vdXQnIH0sCit7IG9pZCA9PiAnODI1OScsIGRlc2NyID0+ICdJL08n LAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfcm5kX3JlY3YnLCBwcm9yZXR0eXBlID0+ ICdwZ19lbmNyeXB0ZWRfcm5kJywgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsJywKKyAgcHJv c3JjID0+ICdwZ19lbmNyeXB0ZWRfcmVjdicgfSwKK3sgb2lkID0+ICc4MjYwJywgZGVzY3Ig PT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfc2VuZCcsIHByb3Jl dHR5cGUgPT4gJ2J5dGVhJywgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLAor ICBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9zZW5kJyB9LAorCit7IG9pZCA9PiAnODI0NScs CisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEnLCBwcm9sZWFrcHJvb2YgPT4g J3QnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5 cHRlZF9kZXQgcGdfZW5jcnlwdGVkX2RldCcsIHByb3NyYyA9PiAnYnl0ZWFlcScgfSwKK3sg b2lkID0+ICc4MjQ2JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIHBy b2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBl cyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdi eXRlYW5lJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdAppbmRleCA5MmJjYWYy YzczLi5iOWQzOTIwYTk3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKQEAgLTY5Miw0 ICs2OTIsMTcgQEAKICAgdHlwcmVjZWl2ZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFy eV9yZWN2JywKICAgdHlwc2VuZCA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5k JywgdHlwYWxpZ24gPT4gJ2knLAogICB0eXBzdG9yYWdlID0+ICd4JywgdHlwY29sbGF0aW9u ID0+ICdkZWZhdWx0JyB9LAorCisjIE5vdGU6IHR5cHN0b3JhZ2UgJ2UnIHNpbmNlIGNvbXBy ZXNzaW9uIGlzIG5vdCB1c2VmdWwgZm9yIGVuY3J5cHRlZCBkYXRhCit7IG9pZCA9PiAnODI0 MycsIGRlc2NyID0+ICdlbmNyeXB0ZWQgY29sdW1uIChkZXRlcm1pbmlzdGljKScsCisgIHR5 cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwg PT4gJ2YnLCB0eXB0eXBlID0+ICdiJywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1 dCA9PiAncGdfZW5jcnlwdGVkX2RldF9pbicsIHR5cG91dHB1dCA9PiAncGdfZW5jcnlwdGVk X2RldF9vdXQnLAorICB0eXByZWNlaXZlID0+ICdwZ19lbmNyeXB0ZWRfZGV0X3JlY3YnLCB0 eXBzZW5kID0+ICdwZ19lbmNyeXB0ZWRfZGV0X3NlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisg IHR5cHN0b3JhZ2UgPT4gJ2UnIH0sCit7IG9pZCA9PiAnODI0NCcsIGRlc2NyID0+ICdlbmNy eXB0ZWQgY29sdW1uIChyYW5kb21pemVkKScsCisgIHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRl ZF9ybmQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdi JywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAncGdfZW5jcnlwdGVkX3Ju ZF9pbicsIHR5cG91dHB1dCA9PiAncGdfZW5jcnlwdGVkX3JuZF9vdXQnLAorICB0eXByZWNl aXZlID0+ICdwZ19lbmNyeXB0ZWRfcm5kX3JlY3YnLCB0eXBzZW5kID0+ICdwZ19lbmNyeXB0 ZWRfcm5kX3NlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4gJ2UnIH0s CisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKaW5kZXggNTE5ZTU3MGM4Yy4uM2M3YWIyYThm ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKQEAgLTI5NCw2ICsyOTQsNyBAQCBERUNMQVJF X1VOSVFVRV9JTkRFWChwZ190eXBlX3R5cG5hbWVfbnNwX2luZGV4LCAyNzA0LCBUeXBlTmFt ZU5zcEluZGV4SWQsIG9uIHBnXwogI2RlZmluZSAgVFlQQ0FURUdPUllfVVNFUgkJJ1UnCiAj ZGVmaW5lICBUWVBDQVRFR09SWV9CSVRTVFJJTkcJJ1YnIC8qIGVyIC4uLiAidmFyYml0Ij8g Ki8KICNkZWZpbmUgIFRZUENBVEVHT1JZX1VOS05PV04JJ1gnCisjZGVmaW5lICBUWVBDQVRF R09SWV9FTkNSWVBURUQJJ1knCiAjZGVmaW5lICBUWVBDQVRFR09SWV9JTlRFUk5BTAknWicK IAogI2RlZmluZSAgVFlQQUxJR05fQ0hBUgkJCSdjJyAvKiBjaGFyIGFsaWdubWVudCAoaS5l LiB1bmFsaWduZWQpICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xl bmNjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzEyN2UwY2E1ZQotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaApAQCAtMCwwICsxLDI2 IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNjbWRzLmgKKyAqCSAg cHJvdG90eXBlcyBmb3IgY29sZW5jY21kcy5jLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5p dmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29s ZW5jY21kcy5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBD T0xFTkNDTURTX0gKKyNkZWZpbmUgQ09MRU5DQ01EU19ICisKKyNpbmNsdWRlICJjYXRhbG9n L29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgorCitl eHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVDRUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZp bmVTdG10ICpzdG10KTsKK2V4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyQ29sdW1uRW5jcnlw dGlvbktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0 bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlQ01LKFBhcnNlU3RhdGUg KnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRl ckNvbHVtbk1hc3RlcktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyQ29sdW1uTWFzdGVy S2V5U3RtdCAqc3RtdCk7CisKKyNlbmRpZgkJCQkJCQkvKiBDT0xFTkNDTURTX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKaW5kZXggZTdjMmI5MWE1OC4uMTFmODhjNTljZSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKKysrIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKQEAgLTEwNSw0ICsxMDUsNiBAQCBleHRl cm4gdm9pZCBSYW5nZVZhckNhbGxiYWNrT3duc1JlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpy ZWxhdGlvbiwKIGV4dGVybiBib29sIFBhcnRDb25zdHJhaW50SW1wbGllZEJ5UmVsQ29uc3Ry YWludChSZWxhdGlvbiBzY2FucmVsLAogCQkJCQkJCQkJCQkJIExpc3QgKnBhcnRDb25zdHJh aW50KTsKIAorZXh0ZXJuIExpc3QgKm1ha2VDb2x1bW5FbmNyeXB0aW9uKGNvbnN0IEZvcm1E YXRhX3BnX2F0dHJpYnV0ZSAqYXR0cik7CisKICNlbmRpZgkJCQkJCQkvKiBUQUJMRUNNRFNf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbW9uL2NvbGVuYy5oIGIvc3JjL2lu Y2x1ZGUvY29tbW9uL2NvbGVuYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjIxMjU4N2QyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21t b24vY29sZW5jLmgKQEAgLTAsMCArMSw1MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogY29sZW5jLmgKKyAqCisgKiBTaGFyZWQgZGVmaW5pdGlvbnMgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGFsZ29yaXRobXMuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICog SURFTlRJRklDQVRJT04KKyAqCQkgIHNyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMuaAorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBDT01NT05fQ09MRU5DX0gKKyNk ZWZpbmUgQ09NTU9OX0NPTEVOQ19ICisKKy8qCisgKiBDb25zdGFudHMgZm9yIENNSyBhbmQg Q0VLIGFsZ29yaXRobXMuICBOb3RlIHRoYXQgdGhlc2UgYXJlIHBhcnQgb2YgdGhlCisgKiBw cm90b2NvbC4gIEluIGVpdGhlciBjYXNlLCBkb24ndCBhc3NpZ24gemVybywgc28gdGhhdCB0 aGF0IGNhbiBiZSB1c2VkIGFzCisgKiBhbiBpbnZhbGlkIHZhbHVlLgorICoKKyAqIE5hbWVz IHNob3VsZCB1c2UgSUFOQS1zdHlsZSBjYXBpdGFsaXphdGlvbiBhbmQgcHVuY3R1YXRpb24g KCJMSUtFX1RISVMiKS4KKyAqCisgKiBXaGVuIG1ha2luZyBjaGFuZ2VzLCBhbHNvIHVwZGF0 ZSBwcm90b2NvbC5zZ21sLgorICovCisKKyNkZWZpbmUgUEdfQ01LX1VOU1BFQ0lGSUVECQkJ CTEKKyNkZWZpbmUgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzEJCQkyCisjZGVmaW5lIFBHX0NN S19SU0FFU19PQUVQX1NIQV8yNTYJCTMKKworLyoKKyAqIFRoZXNlIGFsZ29yaXRobXMgYXJl IHBhcnQgb2YgdGhlIFJGQyA1MTE2IHJlYWxtIG9mIEFFQUQgYWxnb3JpdGhtcyAoZXZlbgor ICogdGhvdWdoIHRoZXkgbmV2ZXIgYmVjYW1lIGFuIG9mZmljaWFsIElFVEYgc3RhbmRhcmQp LiAgU28gZm9yIHByb3ByaWV0eSwgd2UKKyAqIHVzZSAicHJpdmF0ZSB1c2UiIG51bWJlcnMg ZnJvbQorICogPGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2FlYWQtcGFyYW1l dGVycy9hZWFkLXBhcmFtZXRlcnMueGh0bWw+LgorICovCisjZGVmaW5lIFBHX0NFS19BRUFE X0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NgkzMjc2OAorI2RlZmluZSBQR19DRUtfQUVBRF9B RVNfMTkyX0NCQ19ITUFDX1NIQV8zODQJMzI3NjkKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVT XzI1Nl9DQkNfSE1BQ19TSEFfMzg0CTMyNzcwCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18y NTZfQ0JDX0hNQUNfU0hBXzUxMgkzMjc3MQorCisvKgorICogRnVuY3Rpb25zIHRvIGNvbnZl cnQgYmV0d2VlbiBuYW1lcyBhbmQgbnVtYmVycworICovCitleHRlcm4gaW50IGdldF9jbWth bGdfbnVtKGNvbnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIGNvbnN0IGNoYXIgKmdldF9jbWth bGdfbmFtZShpbnQgbnVtKTsKK2V4dGVybiBjb25zdCBjaGFyICpnZXRfY21rYWxnX2p3YV9u YW1lKGludCBudW0pOworZXh0ZXJuIGludCBnZXRfY2VrYWxnX251bShjb25zdCBjaGFyICpu YW1lKTsKK2V4dGVybiBjb25zdCBjaGFyICpnZXRfY2VrYWxnX25hbWUoaW50IG51bSk7CisK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaCBiL3Ny Yy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKaW5kZXggYWM2NDA3ZTlmNi4uMzlhMjg2ZTU4 YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaAorKysgYi9zcmMv aW5jbHVkZS9saWJwcS9saWJwcS1iZS5oCkBAIC0xNjQsNiArMTY0LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgUG9ydAogCSAqLwogCWNoYXIJICAgKmRhdGFiYXNlX25hbWU7CiAJY2hhcgkgICAq dXNlcl9uYW1lOworCWJvb2wJCWNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQ7CiAJY2hhcgkg ICAqY21kbGluZV9vcHRpb25zOwogCUxpc3QJICAgKmd1Y19vcHRpb25zOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKaW5kZXggZjdkN2YxMGY3ZC4uMTY5OWUyYTYzZiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtODgsOCArODgsNyBAQCB0eXBlZGVmIHVpbnQ2NCBBY2xN b2RlOwkJCS8qIGEgYml0bWFzayBvZiBwcml2aWxlZ2UgYml0cyAqLwogI2RlZmluZSBBQ0xf UkVGRVJFTkNFUwkoMTw8NSkKICNkZWZpbmUgQUNMX1RSSUdHRVIJCSgxPDw2KQogI2RlZmlu ZSBBQ0xfRVhFQ1VURQkJKDE8PDcpCS8qIGZvciBmdW5jdGlvbnMgKi8KLSNkZWZpbmUgQUNM X1VTQUdFCQkoMTw8OCkJLyogZm9yIGxhbmd1YWdlcywgbmFtZXNwYWNlcywgRkRXcywgYW5k Ci0JCQkJCQkJCSAqIHNlcnZlcnMgKi8KKyNkZWZpbmUgQUNMX1VTQUdFCQkoMTw8OCkJLyog Zm9yIHZhcmlvdXMgb2JqZWN0IHR5cGVzICovCiAjZGVmaW5lIEFDTF9DUkVBVEUJCSgxPDw5 KQkvKiBmb3IgbmFtZXNwYWNlcyBhbmQgZGF0YWJhc2VzICovCiAjZGVmaW5lIEFDTF9DUkVB VEVfVEVNUCAoMTw8MTApIC8qIGZvciBkYXRhYmFzZXMgKi8KICNkZWZpbmUgQUNMX0NPTk5F Q1QJCSgxPDwxMSkgLyogZm9yIGRhdGFiYXNlcyAqLwpAQCAtNzIyLDYgKzcyMSw3IEBAIHR5 cGVkZWYgc3RydWN0IENvbHVtbkRlZgogCWNoYXIJICAgKmNvbG5hbWU7CQkvKiBuYW1lIG9m IGNvbHVtbiAqLwogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdHlwZSBvZiBjb2x1bW4g Ki8KIAljaGFyCSAgICpjb21wcmVzc2lvbjsJLyogY29tcHJlc3Npb24gbWV0aG9kIGZvciBj b2x1bW4gKi8KKwlMaXN0CSAgICplbmNyeXB0aW9uOwkJLyogZW5jcnlwdGlvbiBpbmZvIGZv ciBjb2x1bW4gKi8KIAlpbnQJCQlpbmhjb3VudDsJCS8qIG51bWJlciBvZiB0aW1lcyBjb2x1 bW4gaXMgaW5oZXJpdGVkICovCiAJYm9vbAkJaXNfbG9jYWw7CQkvKiBjb2x1bW4gaGFzIGxv Y2FsIChub24taW5oZXJpdGVkKSBkZWYnbiAqLwogCWJvb2wJCWlzX25vdF9udWxsOwkvKiBO T1QgTlVMTCBjb25zdHJhaW50IHNwZWNpZmllZD8gKi8KQEAgLTc1OCwxMSArNzU4LDEyIEBA IHR5cGVkZWYgZW51bSBUYWJsZUxpa2VPcHRpb24KIAlDUkVBVEVfVEFCTEVfTElLRV9DT01Q UkVTU0lPTiA9IDEgPDwgMSwKIAlDUkVBVEVfVEFCTEVfTElLRV9DT05TVFJBSU5UUyA9IDEg PDwgMiwKIAlDUkVBVEVfVEFCTEVfTElLRV9ERUZBVUxUUyA9IDEgPDwgMywKLQlDUkVBVEVf VEFCTEVfTElLRV9HRU5FUkFURUQgPSAxIDw8IDQsCi0JQ1JFQVRFX1RBQkxFX0xJS0VfSURF TlRJVFkgPSAxIDw8IDUsCi0JQ1JFQVRFX1RBQkxFX0xJS0VfSU5ERVhFUyA9IDEgPDwgNiwK LQlDUkVBVEVfVEFCTEVfTElLRV9TVEFUSVNUSUNTID0gMSA8PCA3LAotCUNSRUFURV9UQUJM RV9MSUtFX1NUT1JBR0UgPSAxIDw8IDgsCisJQ1JFQVRFX1RBQkxFX0xJS0VfRU5DUllQVEVE ID0gMSA8PCA0LAorCUNSRUFURV9UQUJMRV9MSUtFX0dFTkVSQVRFRCA9IDEgPDwgNSwKKwlD UkVBVEVfVEFCTEVfTElLRV9JREVOVElUWSA9IDEgPDwgNiwKKwlDUkVBVEVfVEFCTEVfTElL RV9JTkRFWEVTID0gMSA8PCA3LAorCUNSRUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1MgPSAx IDw8IDgsCisJQ1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFHRSA9IDEgPDwgOSwKIAlDUkVBVEVf VEFCTEVfTElLRV9BTEwgPSBQR19JTlQzMl9NQVgKIH0gVGFibGVMaWtlT3B0aW9uOwogCkBA IC0xOTgwLDYgKzE5ODEsOSBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9D QVNULAogCU9CSkVDVF9DT0xVTU4sCiAJT0JKRUNUX0NPTExBVElPTiwKKwlPQkpFQ1RfQ0VL LAorCU9CSkVDVF9DRUtEQVRBLAorCU9CSkVDVF9DTUssCiAJT0JKRUNUX0NPTlZFUlNJT04s CiAJT0JKRUNUX0RBVEFCQVNFLAogCU9CSkVDVF9ERUZBVUxULApAQCAtMjE2Nyw2ICsyMTcx LDMxIEBAIHR5cGVkZWYgc3RydWN0IEFsdGVyQ29sbGF0aW9uU3RtdAogfSBBbHRlckNvbGxh dGlvblN0bXQ7CiAKIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQWx0ZXIgQ29s dW1uIEVuY3J5cHRpb24gS2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5 cGVkZWYgc3RydWN0IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKK3sKKwlOb2RlVGFn CQl0eXBlOworCUxpc3QJICAgKmNla25hbWU7CisJYm9vbAkJaXNEcm9wOwkJCS8qIEFERCBv ciBEUk9QIHRoZSBpdGVtcz8gKi8KKwlMaXN0CSAgICpkZWZpbml0aW9uOworfSBBbHRlckNv bHVtbkVuY3J5cHRpb25LZXlTdG10OworCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqIEFsdGVyIENvbHVtbiBNYXN0ZXIgS2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KK3R5cGVkZWYgc3RydWN0IEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdAoreworCU5v ZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqY21rbmFtZTsKKwlMaXN0CSAgICpkZWZpbml0aW9u OworfSBBbHRlckNvbHVtbk1hc3RlcktleVN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICoJQWx0ZXIgRG9tYWluCiAgKgpAQCAtMzY0MSw2ICszNjcwLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgQ2hlY2tQb2ludFN0bXQKIHR5cGVkZWYgZW51bSBEaXNjYXJkTW9kZQog ewogCURJU0NBUkRfQUxMLAorCURJU0NBUkRfQ09MVU1OX0VOQ1JZUFRJT05fS0VZUywKIAlE SVNDQVJEX1BMQU5TLAogCURJU0NBUkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCmluZGV4IGJiMzYyMTNlNmYuLmM2ZGE5MzIwNDIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTE0OSw2ICsxNDksNyBAQCBQR19LRVlXT1JEKCJlbHNlIiwgRUxTRSwg UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuYWJsZSIsIEVO QUJMRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJl bmNvZGluZyIsIEVOQ09ESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJlbmNyeXB0ZWQiLCBFTkNSWVBURUQsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImVuY3J5cHRpb24iLCBFTkNSWVBUSU9OLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmQiLCBFTkRfUCwg UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVudW0iLCBFTlVN X1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVzY2Fw ZSIsIEVTQ0FQRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMjI4LDYg KzIyOSw3IEBAIFBHX0tFWVdPUkQoImlzbnVsbCIsIElTTlVMTCwgVFlQRV9GVU5DX05BTUVf S0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJpc29sYXRpb24iLCBJU09MQVRJT04s IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImpvaW4iLCBK T0lOLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi a2V5IiwgS0VZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JE KCJrZXlzIiwgS0VZUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgibGFiZWwiLCBMQUJFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgibGFuZ3VhZ2UiLCBMQU5HVUFHRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGFyZ2UiLCBMQVJHRV9QLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0yNTAsNiArMjUyLDcgQEAgUEdfS0VZV09SRCgibG9j ayIsIExPQ0tfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgibG9ja2VkIiwgTE9DS0VELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJsb2dnZWQiLCBMT0dHRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoIm1hcHBpbmciLCBNQVBQSU5HLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJtYXN0ZXIiLCBNQVNURVIsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGNoIiwgTUFUQ0gsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGNoZWQiLCBN QVRDSEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJt YXRlcmlhbGl6ZWQiLCBNQVRFUklBTElaRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKaW5kZXggZDQ4NjVlNTBmNi4uMjZl MWNkNjE3YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKQEAgLTIxLDUgKzIxLDYg QEAgZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFy YW1zKTsKIGV4dGVybiB2b2lkIGNoZWNrX3ZhcmlhYmxlX3BhcmFtZXRlcnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBRdWVyeSAqcXVlcnkpOwogZXh0ZXJuIGJvb2wgcXVlcnlfY29udGFpbnNf ZXh0ZXJuX3BhcmFtcyhRdWVyeSAqcXVlcnkpOworZXh0ZXJuIHZvaWQgZmluZF9wYXJhbV9v cmlncyhMaXN0ICpxdWVyeV9saXN0LCBPaWQgKipwYXJhbV9vcmlnX3RibHMsIEF0dHJOdW1i ZXIgKipwYXJhbV9vcmlnX2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfUEFSQU1f SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBlNzM4YWMxYzA5Li5hNWU2MWM5ZjVi IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMjksNiArMjksOCBAQCBQR19DTURUQUco Q01EVEFHX0FMVEVSX0FDQ0VTU19NRVRIT0QsICJBTFRFUiBBQ0NFU1MgTUVUSE9EIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9BR0dSRUdBVEUsICJB TFRFUiBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0FMVEVSX0NBU1QsICJBTFRFUiBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19BTFRFUl9DT0xMQVRJT04sICJBTFRFUiBDT0xMQVRJT04iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTFVNTl9FTkNSWVBUSU9O X0tFWSwgIkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09MVU1OX01BU1RFUl9LRVksICJBTFRFUiBD T0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQUxURVJfQ09OU1RSQUlOVCwgIkFMVEVSIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTlZFUlNJT04sICJBTFRFUiBDT05W RVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9E QVRBQkFTRSwgIkFMVEVSIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTg2 LDYgKzg4LDggQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRCwgIkNS RUFURSBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHMKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX0FHR1JFR0FURSwgIkNSRUFURSBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DQVNULCAiQ1JFQVRFIENBU1QiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xMQVRJT04s ICJDUkVBVEUgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX0NPTFVNTl9NQVNURVJfS0VZLCAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09OU1RSQUlOVCwg IkNSRUFURSBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfQ09OVkVSU0lPTiwgIkNSRUFURSBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfREFUQUJBU0UsICJDUkVBVEUg REFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTMwLDYgKzEzNCw3IEBAIFBH X0NNRFRBRyhDTURUQUdfREVDTEFSRV9DVVJTT1IsICJERUNMQVJFIENVUlNPUiIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFTEVURSwgIkRFTEVURSIsIGZh bHNlLCBmYWxzZSwgdHJ1ZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRCwgIkRJU0NBUkQi LCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX0FMTCwg IkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdf RElTQ0FSRF9DT0xVTU5fRU5DUllQVElPTl9LRVlTLCAiRElTQ0FSRCBDT0xVTU4gRU5DUllQ VElPTiBLRVlTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElT Q0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQgU0VRVUVOQ0VTIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9URU1QLCAi RElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEzOCw2ICsxNDMsOCBA QCBQR19DTURUQUcoQ01EVEFHX0RST1BfQUNDRVNTX01FVEhPRCwgIkRST1AgQUNDRVNTIE1F VEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BR0dS RUdBVEUsICJEUk9QIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9DQVNULCAiRFJPUCBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTExBVElPTiwgIkRST1AgQ09MTEFUSU9OIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTFVNTl9FTkNSWVBU SU9OX0tFWSwgIkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZLCAiRFJPUCBD T0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9DT05TVFJBSU5ULCAiRFJPUCBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTlZFUlNJT04sICJEUk9QIENPTlZFUlNJ T04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfREFUQUJB U0UsICJEUk9QIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5k ZXggZjhlMTIzOGZhMi4uMGM3MzAyMjgzMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKQEAgLTE1OSw2ICsxNTks OCBAQCB0eXBlZGVmIHN0cnVjdCBBcnJheVR5cGUgQWNsOwogI2RlZmluZSBBQ0xfQUxMX1JJ R0hUU19DT0xVTU4JCShBQ0xfSU5TRVJUfEFDTF9TRUxFQ1R8QUNMX1VQREFURXxBQ0xfUkVG RVJFTkNFUykKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfUkVMQVRJT04JCShBQ0xfSU5TRVJU fEFDTF9TRUxFQ1R8QUNMX1VQREFURXxBQ0xfREVMRVRFfEFDTF9UUlVOQ0FURXxBQ0xfUkVG RVJFTkNFU3xBQ0xfVFJJR0dFUnxBQ0xfTUFJTlRBSU4pCiAjZGVmaW5lIEFDTF9BTExfUklH SFRTX1NFUVVFTkNFCQkoQUNMX1VTQUdFfEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKKyNkZWZp bmUgQUNMX0FMTF9SSUdIVFNfQ0VLCQkJKEFDTF9VU0FHRSkKKyNkZWZpbmUgQUNMX0FMTF9S SUdIVFNfQ01LCQkJKEFDTF9VU0FHRSkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfREFUQUJB U0UJCShBQ0xfQ1JFQVRFfEFDTF9DUkVBVEVfVEVNUHxBQ0xfQ09OTkVDVCkKICNkZWZpbmUg QUNMX0FMTF9SSUdIVFNfRkRXCQkJKEFDTF9VU0FHRSkKICNkZWZpbmUgQUNMX0FMTF9SSUdI VFNfRk9SRUlHTl9TRVJWRVIgKEFDTF9VU0FHRSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5k ZXggNGY1NDE4Yjk3Mi4uMWRhYzI0ZTRiNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAg LTE2Myw2ICsxNjMsNyBAQCBleHRlcm4gYm9vbCB0eXBlX2lzX3Jvd3R5cGUoT2lkIHR5cGlk KTsKIGV4dGVybiBib29sIHR5cGVfaXNfZW51bShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wg dHlwZV9pc19yYW5nZShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlwZV9pc19tdWx0aXJh bmdlKE9pZCB0eXBpZCk7CitleHRlcm4gYm9vbCB0eXBlX2lzX2VuY3J5cHRlZChPaWQgdHlw aWQpOwogZXh0ZXJuIHZvaWQgZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVycmVkKE9pZCB0eXBp ZCwKIAkJCQkJCQkJCQljaGFyICp0eXBjYXRlZ29yeSwKIAkJCQkJCQkJCQlib29sICp0eXBp c3ByZWZlcnJlZCk7CkBAIC0yMDIsNiArMjAzLDkgQEAgZXh0ZXJuIE9pZAlnZXRfcHVibGlj YXRpb25fb2lkKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRl cm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdf b2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2NyaXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJu YW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25f bmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gY2hhciAqZ2V0X2Nl a19uYW1lKE9pZCBjZWtpZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X2Nl a2RhdGFfb2lkKE9pZCBjZWtpZCwgT2lkIGNta2lkLCBib29sIG1pc3Npbmdfb2spOworZXh0 ZXJuIGNoYXIgKmdldF9jbWtfbmFtZShPaWQgY21raWQsIGJvb2wgbWlzc2luZ19vayk7CiAK ICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlk KSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3Ro IHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9wbGFu Y2FjaGUuaAppbmRleCBhNDQzMTgxZDQxLi44ZWNhY2IyOWRmIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wbGFu Y2FjaGUuaApAQCAtMjA3LDYgKzIwNyw5IEBAIGV4dGVybiB2b2lkIENvbXBsZXRlQ2FjaGVk UGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogZXh0ZXJuIHZvaWQgU2F2ZUNh Y2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSk7CiBleHRlcm4gdm9pZCBE cm9wQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlKTsKIAorZXh0ZXJu IExpc3QgKlJldmFsaWRhdGVDYWNoZWRRdWVyeShDYWNoZWRQbGFuU291cmNlICpwbGFuc291 cmNlLAorCQkJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CisKIGV4dGVy biB2b2lkIENhY2hlZFBsYW5TZXRQYXJlbnRDb250ZXh0KENhY2hlZFBsYW5Tb3VyY2UgKnBs YW5zb3VyY2UsCiAJCQkJCQkJCQkgICBNZW1vcnlDb250ZXh0IG5ld2NvbnRleHQpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvc3lzY2FjaGUuaAppbmRleCBkNWQ1MGNlYWI0Li5iZjFkNTI3YzFhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0 aWxzL3N5c2NhY2hlLmgKQEAgLTQ0LDggKzQ0LDE0IEBAIGVudW0gU3lzQ2FjaGVJZGVudGlm aWVyCiAJQVVUSE5BTUUsCiAJQVVUSE9JRCwKIAlDQVNUU09VUkNFVEFSR0VULAorCUNFS0RB VEFDRUtDTUssCisJQ0VLREFUQU9JRCwKKwlDRUtOQU1FTlNQLAorCUNFS09JRCwKIAlDTEFB TU5BTUVOU1AsCiAJQ0xBT0lELAorCUNNS05BTUVOU1AsCisJQ01LT0lELAogCUNPTExOQU1F RU5DTlNQLAogCUNPTExPSUQsCiAJQ09OREVGQVVMVCwKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL01ha2VmaWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUK aW5kZXggYzE4ZTkxNDIyOC4uMTBkZmRhODAxNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUK QEAgLTU0LDYgKzU0LDcgQEAgZW5kaWYKIAogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkK IE9CSlMgKz0gXAorCWZlLWVuY3J5cHQtb3BlbnNzbC5vIFwKIAlmZS1zZWN1cmUtb3BlbnNz bC5vCiBlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRz LnR4dCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IGU4YmNjODgz NzAuLjg4OTdhYTI0M2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9y dHMudHh0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0xODYs MyArMTg2LDcgQEAgUFFwaXBlbGluZVN0YXR1cyAgICAgICAgICAxODMKIFBRc2V0VHJhY2VG bGFncyAgICAgICAgICAgMTg0CiBQUW1ibGVuQm91bmRlZCAgICAgICAgICAgIDE4NQogUFFz ZW5kRmx1c2hSZXF1ZXN0ICAgICAgICAxODYKK1BRZXhlY1ByZXBhcmVkRGVzY3JpYmVkICAg MTg3CitQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkIDE4OAorUFFmaXNlbmNyeXB0ZWQg ICAgICAgICAgICAxODkKK1BRcGFyYW1pc2VuY3J5cHRlZCAgICAgICAgMTkwCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1jb25uZWN0LmMKaW5kZXggOGY4MGMzNWM4OS4uZGY3MDFmMmRmMyAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtMzQxLDYgKzM0MSwxNCBAQCBzdGF0 aWMgY29uc3QgaW50ZXJuYWxQUWNvbm5pbmZvT3B0aW9uIFBRY29ubmluZm9PcHRpb25zW10g PSB7CiAJCSJUYXJnZXQtU2Vzc2lvbi1BdHRycyIsICIiLCAxNSwgLyogc2l6ZW9mKCJwcmVm ZXItc3RhbmRieSIpID0gMTUgKi8KIAlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgdGFyZ2V0 X3Nlc3Npb25fYXR0cnMpfSwKIAorCXsiY21rbG9va3VwIiwgIlBHQ01LTE9PS1VQIiwgIiIs IE5VTEwsCisJCSJDTUstTG9va3VwIiwgIiIsIDY0LAorCW9mZnNldG9mKHN0cnVjdCBwZ19j b25uLCBjbWtsb29rdXApfSwKKworCXsiY29sdW1uX2VuY3J5cHRpb24iLCAiUEdDT0xVTU5F TkNSWVBUSU9OIiwgIjAiLCBOVUxMLAorCQkiQ29sdW1uLUVuY3J5cHRpb24iLCAiIiwgMSwK KwlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgY29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyl9 LAorCiAJLyogVGVybWluYXRpbmcgZW50cnkgLS0tIE1VU1QgQkUgTEFTVCAqLwogCXtOVUxM LCBOVUxMLCBOVUxMLCBOVUxMLAogCU5VTEwsIE5VTEwsIDB9CkBAIC0xNDEyLDYgKzE0MjAs MjggQEAgY29ubmVjdE9wdGlvbnMyKFBHY29ubiAqY29ubikKIAkJCWdvdG8gb29tX2Vycm9y OwogCX0KIAorCS8qCisJICogdmFsaWRhdGUgY29sdW1uX2VuY3J5cHRpb24gb3B0aW9uCisJ ICovCisJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcpCisJeworCQlpZiAo c3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICJvbiIpID09IDAgfHwK KwkJCXN0cmNtcChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nLCAidHJ1ZSIpID09 IDAgfHwKKwkJCXN0cmNtcChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nLCAiMSIp ID09IDApCisJCQljb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gdHJ1ZTsKKwkJ ZWxzZSBpZiAoc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICJvZmYi KSA9PSAwIHx8CisJCQkJIHN0cmNtcChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5n LCAiZmFsc2UiKSA9PSAwIHx8CisJCQkJIHN0cmNtcChjb25uLT5jb2x1bW5fZW5jcnlwdGlv bl9zZXR0aW5nLCAiMCIpID09IDApCisJCQljb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFi bGVkID0gZmFsc2U7CisJCWVsc2UKKwkJeworCQkJY29ubi0+c3RhdHVzID0gQ09OTkVDVElP Tl9CQUQ7CisJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiaW52YWxpZCAlcyB2 YWx1ZTogXCIlc1wiIiwKKwkJCQkJCQkJCSJjb2x1bW5fZW5jcnlwdGlvbiIsIGNvbm4tPmNv bHVtbl9lbmNyeXB0aW9uX3NldHRpbmcpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQor CiAJLyoKIAkgKiBPbmx5IGlmIHdlIGdldCB0aGlzIGZhciBpcyBpdCBhcHByb3ByaWF0ZSB0 byB0cnkgdG8gY29ubmVjdC4gKFdlIG5lZWQgYQogCSAqIHN0YXRlIGZsYWcsIHJhdGhlciB0 aGFuIGp1c3QgdGhlIGJvb2xlYW4gcmVzdWx0IG9mIHRoaXMgZnVuY3Rpb24sIGluCkBAIC00 MDU2LDYgKzQwODYsMjIgQEAgZnJlZVBHY29ubihQR2Nvbm4gKmNvbm4pCiAJZnJlZShjb25u LT5rcmJzcnZuYW1lKTsKIAlmcmVlKGNvbm4tPmdzc2xpYik7CiAJZnJlZShjb25uLT5jb25u aXApOworCWZyZWUoY29ubi0+Y21rbG9va3VwKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGNv bm4tPm5jbWtzOyBpKyspCisJeworCQlmcmVlKGNvbm4tPmNta3NbaV0uY21rbmFtZSk7CisJ CWZyZWUoY29ubi0+Y21rc1tpXS5jbWtyZWFsbSk7CisJfQorCWZyZWUoY29ubi0+Y21rcyk7 CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY2VrczsgaSsrKQorCXsKKwkJaWYgKGNv bm4tPmNla3NbaV0uY2VrZGF0YSkKKwkJeworCQkJZXhwbGljaXRfYnplcm8oY29ubi0+Y2Vr c1tpXS5jZWtkYXRhLCBjb25uLT5jZWtzW2ldLmNla2RhdGFsZW4pOworCQkJZnJlZShjb25u LT5jZWtzW2ldLmNla2RhdGEpOworCQl9CisJfQorCWZyZWUoY29ubi0+Y2Vrcyk7CiAJLyog Tm90ZSB0aGF0IGNvbm4tPlBmZGVidWcgaXMgbm90IG91cnMgdG8gY2xvc2Ugb3IgZnJlZSAq LwogCWZyZWUoY29ubi0+d3JpdGVfZXJyX21zZyk7CiAJZnJlZShjb25uLT5pbkJ1ZmZlcik7 CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wu YyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjliYWE0N2RhMTMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwpAQCAt MCwwICsxLDgzOSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZmUtZW5jcnlw dC1vcGVuc3NsLmMKKyAqCisgKiBjbGllbnQtc2lkZSBjb2x1bW4gZW5jcnlwdGlvbiBzdXBw b3J0IHVzaW5nIE9wZW5TU0wKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJmZS1lbmNy eXB0LmgiCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKKyNpbmNsdWRlICJjb21tb24vY29s ZW5jLmgiCisjaW5jbHVkZSAicG9ydC9wZ19ic3dhcC5oIgorCisjaW5jbHVkZSA8b3BlbnNz bC9ldnAuaD4KKworCisvKgorICogV2hlbiBURVNUX0VOQ1JZUFQgaXMgZGVmaW5lZCwgdGhp cyBmaWxlIGJ1aWxkcyBhIHN0YW5kYWxvbmUgcHJvZ3JhbSB0aGF0CisgKiBjaGVja3MgZW5j cnlwdGlvbiB0ZXN0IGNhc2VzIGFnYWluc3QgdGhlIHNwZWNpZmljYXRpb24gZG9jdW1lbnQu CisgKgorICogV2UgaGF2ZSB0byByZXBsYWNlIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIG5v dCBhdmFpbGFibGUgaW4gdGhhdAorICogZW52aXJvbm1lbnQuCisgKi8KKyNpZmRlZiBURVNU X0VOQ1JZUFQKKworI2RlZmluZSBsaWJwcV9nZXR0ZXh0KHgpICh4KQorI2RlZmluZSBsaWJw cV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAuLi4pIGRvIHsgZnByaW50ZihzdGRlcnIsIF9f VkFfQVJHU19fKTsgZnByaW50ZihzdGRlcnIsICJcbiIpOyBleGl0KDEpOyB9IHdoaWxlKDAp CisjZGVmaW5lIHBxUmVzdWx0QWxsb2MocmVzLCBuQnl0ZXMsIGlzQmluYXJ5KSBtYWxsb2Mo bkJ5dGVzKQorCisjZW5kaWYJCQkJCQkJLyogVEVTVF9FTkNSWVBUICovCisKKworLyoKKyAq IERlY3J5cHQgdGhlIENFSyBnaXZlbiBieSAiZnJvbSIgYW5kICJmcm9tbGVuIiAoZGF0YSB0 eXBpY2FsbHkgc2VudCBmcm9tIHRoZQorICogc2VydmVyKSB1c2luZyB0aGUgQ01LIGluIGNt a2ZpbGVuYW1lLgorICovCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfY2VrX2Zyb21fZmls ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmNta2ZpbGVuYW1lLCBpbnQgY21rYWxnLAor CQkJCQkgIGludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkg IGludCAqdG9sZW4pCit7CisJY29uc3QgRVZQX01EICptZCA9IE5VTEw7CisJRVZQX1BLRVkg ICAqa2V5ID0gTlVMTDsKKwlSU0EJCSAgICpyc2EgPSBOVUxMOworCUJJTwkJICAgKmJpbyA9 IE5VTEw7CisJRVZQX1BLRVlfQ1RYICpjdHggPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKm91 dCA9IE5VTEw7CisJc2l6ZV90CQlvdXRsZW47CisKKwlzd2l0Y2ggKGNta2FsZykKKwl7CisJ CWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE6CisJCQltZCA9IEVWUF9zaGExKCk7CisJ CQlicmVhazsKKwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJbWQgPSBF VlBfc2hhMjU2KCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DTUtfVU5TUEVDSUZJRUQ6CisJ CQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAidW5zcGVjaWZpZWQgQ01LIGFsZ29y aXRobSBub3Qgc3VwcG9ydGVkIHdpdGggZmlsZSBsb29rdXAgc2NoZW1lIik7CisJCQlnb3Rv IGZhaWw7CisJCWRlZmF1bHQ6CisJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAi dW5zdXBwb3J0ZWQgQ01LIGFsZ29yaXRobSBJRDogJWQiLCBjbWthbGcpOworCQkJZ290byBm YWlsOworCX0KKworCWJpbyA9IEJJT19uZXdfZmlsZShjbWtmaWxlbmFtZSwgInIiKTsKKwlp ZiAoIWJpbykKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBu b3Qgb3BlbiBmaWxlIFwiJXNcIjogJW0iLCBjbWtmaWxlbmFtZSk7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwlyc2EgPSBSU0FfbmV3KCk7CisJaWYgKCFyc2EpCisJeworCQlsaWJwcV9hcHBl bmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IGFsbG9jYXRlIFJTQSBzdHJ1Y3R1cmU6 ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCWdvdG8gZmFpbDsKKwl9CisJLyoKKwkgKiBOb3RlOiBXZSBtdXN0IGdvIHRocm91 Z2ggQklPIGFuZCBub3Qgc2F5IHVzZSBQRU1fcmVhZF9SU0FQcml2YXRlS2V5KCkKKwkgKiBk aXJlY3RseSBvbiBhIEZJTEUuICBPdGhlcndpc2UsIHdlIGdldCBpbnRvICJubyBPUEVOU1NM X0FwcGxpbmsiIGhlbGwKKwkgKiBvbiBXaW5kb3dzICh3aGljaCBoYXBwZW5zIHdoZW5ldmVy IHlvdSBwYXNzIGEgc3RkaW8gaGFuZGxlIGZyb20gdGhlCisJICogYXBwbGljYXRpb24gaW50 byBPcGVuU1NMKS4KKwkgKi8KKwlyc2EgPSBQRU1fcmVhZF9iaW9fUlNBUHJpdmF0ZUtleShi aW8sICZyc2EsIE5VTEwsIE5VTEwpOworCWlmICghcnNhKQorCXsKKwkJbGlicHFfYXBwZW5k X2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCByZWFkIFJTQSBwcml2YXRlIGtleTogJXMi LAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsK KwkJZ290byBmYWlsOworCX0KKworCWtleSA9IEVWUF9QS0VZX25ldygpOworCWlmICgha2V5 KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhbGxv Y2F0ZSBwcml2YXRlIGtleSBzdHJ1Y3R1cmU6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9l cnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlp ZiAoIUVWUF9QS0VZX2Fzc2lnbl9SU0Eoa2V5LCByc2EpKQorCXsKKwkJbGlicHFfYXBwZW5k X2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhc3NpZ24gcHJpdmF0ZSBrZXk6ICVzIiwK KwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwljdHggPSBFVlBfUEtFWV9DVFhfbmV3KGtleSwgTlVMTCk7 CisJaWYgKCFjdHgpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291 bGQgbm90IGFsbG9jYXRlIHB1YmxpYyBrZXkgYWxnb3JpdGhtIGNvbnRleHQ6ICVzIiwKKwkJ CQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdv dG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfZGVjcnlwdF9pbml0KGN0eCkgPD0gMCkK Kwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJkZWNyeXB0aW9uIGluaXRp YWxpemF0aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBfUEtF WV9DVFhfc2V0X3JzYV9wYWRkaW5nKGN0eCwgUlNBX1BLQ1MxX09BRVBfUEFERElORykgPD0g MCB8fAorCQlFVlBfUEtFWV9DVFhfc2V0X3JzYV9tZ2YxX21kKGN0eCwgbWQpIDw9IDAgfHwK KwkJRVZQX1BLRVlfQ1RYX3NldF9yc2Ffb2FlcF9tZChjdHgsIG1kKSA8PSAwKQorCXsKKwkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBzZXQgUlNBIHBhcmFt ZXRlcjogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vy cm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCS8qIGdldCBvdXRwdXQgbGVuZ3RoICov CisJaWYgKEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBOVUxMLCAmb3V0bGVuLCBmcm9tLCBmcm9t bGVuKSA8PSAwKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIlJTQSBk ZWNyeXB0aW9uIHNldHVwIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9y X3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCW91dCA9 IG1hbGxvYyhvdXRsZW4pOworCWlmICghb3V0KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKworCWlm IChFVlBfUEtFWV9kZWNyeXB0KGN0eCwgb3V0LCAmb3V0bGVuLCBmcm9tLCBmcm9tbGVuKSA8 PSAwKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIlJTQSBkZWNyeXB0 aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJf Z2V0X2Vycm9yKCkpKTsKKwkJZnJlZShvdXQpOworCQlvdXQgPSBOVUxMOworCQlnb3RvIGZh aWw7CisJfQorCisJKnRvbGVuID0gb3V0bGVuOworCitmYWlsOgorCUVWUF9QS0VZX0NUWF9m cmVlKGN0eCk7CisJRVZQX1BLRVlfZnJlZShrZXkpOworCUJJT19mcmVlKGJpbyk7CisKKwly ZXR1cm4gb3V0OworfQorCisKKy8qCisgKiBUaGUgcm91dGluZXMgYmVsb3cgaW1wbGVtZW50 IHRoZSBBRUFEIGFsZ29yaXRobXMgc3BlY2lmaWVkIGluCisgKiA8aHR0cHM6Ly9kYXRhdHJh Y2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMt c2hhMi0wNT4KKyAqIGZvciBlbmNyeXB0aW5nIGFuZCBkZWNyeXB0aW5nIGNvbHVtbiB2YWx1 ZXMuCisgKi8KKworI2lmZGVmIFRFU1RfRU5DUllQVAorCisvKgorICogVGVzdCBkYXRhIGZy b20KKyAqIDxodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1j Z3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisvKgor ICogVGhlIGRpZmZlcmVudCB0ZXN0IGNhc2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVmaXhl cyBvZiBLLCBzbyBvbmUgY29uc3RhbnQKKyAqIGlzIGVub3VnaCBoZXJlLgorICovCitzdGF0 aWMgY29uc3QgdW5zaWduZWQgY2hhciBLW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwgMHgw MywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgw YywgMHgwZCwgMHgwZSwgMHgwZiwKKwkweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAw eDE1LCAweDE2LCAweDE3LCAweDE4LCAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFkLCAw eDFlLCAweDFmLAorCTB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4MjYs IDB4MjcsIDB4MjgsIDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4MmYs CisJMHgzMCwgMHgzMSwgMHgzMiwgMHgzMywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywgMHgz OCwgMHgzOSwgMHgzYSwgMHgzYiwgMHgzYywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisKK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYzLCAw eDY5LCAweDcwLCAweDY4LCAweDY1LCAweDcyLCAweDIwLCAweDczLCAweDc5LCAweDczLCAw eDc0LCAweDY1LCAweDZkLCAweDIwLAorCTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4MjAs IDB4NmUsIDB4NmYsIDB4NzQsIDB4MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4NjUs IDB4NzEsIDB4NzUsCisJMHg2OSwgMHg3MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwgMHg2 ZiwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2 NSwKKwkweDc0LCAweDJjLCAweDIwLCAweDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5LCAw eDc0LCAweDIwLCAweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4NjUs IDB4MjAsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAs IDB4NjYsIDB4NjEsIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwgMHg2 ZiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwgMHg2 NCwgMHg3MywgMHgyMCwgMHg2ZiwgMHg2NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1LCAw eDIwLCAweDY1LCAweDZlLCAweDY1LCAweDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5LCAw eDc0LCAweDY4LCAweDZmLAorCTB4NzUsIDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4NjMs IDB4NmYsIDB4NmUsIDB4NzYsIDB4NjUsIDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4NjMs IDB4NjUsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10gPSB7 CisJMHgxYSwgMHhmMywgMHg4YywgMHgyZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwgMHhk OCwgMHg2NiwgMHg5NCwgMHgwOSwgMHgyMywgMHg0MSwgMHhiYywgMHgwNCwKK307CisKK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfQVtdID0geworCTB4NTQsIDB4NjgsIDB4 NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAsIDB4 NzAsIDB4NzIsIDB4NjksIDB4NmUsIDB4NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2NSwg MHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3Mywg MHg3NCwgMHg2NSwgMHgyMCwKKwkweDRiLCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAweDY4 LCAweDZmLCAweDY2LCAweDY2LCAweDczLAorfTsKKworI2VuZGlmCQkJCQkJCS8qIFRFU1Rf RU5DUllQVCAqLworCisKKy8qCisgKiBHZXQgT3BlblNTTCBjaXBoZXIgdGhhdCBjb3JyZXNw b25kcyB0byB0aGUgQ0VLIGFsZ29yaXRobSBudW1iZXIuCisgKi8KK3N0YXRpYyBjb25zdCBF VlBfQ0lQSEVSICoKK3BnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihpbnQgY2VrYWxnKQor eworCWNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsK KwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQljaXBo ZXIgPSBFVlBfYWVzXzEyOF9jYmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFE X0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTkyX2Ni YygpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19T SEFfMzg0OgorCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoK KwkJCWNpcGhlciA9IEVWUF9hZXNfMjU2X2NiYygpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQljaXBoZXIgPSBOVUxMOworCX0KKworCXJldHVybiBjaXBoZXI7Cit9CisKKy8qCisg KiBHZXQgT3BlblNTTCBkaWdlc3QgKGZvciBNQUMpIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhl IENFSyBhbGdvcml0aG0gbnVtYmVyLgorICovCitzdGF0aWMgY29uc3QgRVZQX01EICoKK3Bn X2Nla2FsZ190b19vcGVuc3NsX21kKGludCBjZWthbGcpCit7CisJY29uc3QgRVZQX01EICpt ZDsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTI4 X0NCQ19ITUFDX1NIQV8yNTY6CisJCQltZCA9IEVWUF9zaGEyNTYoKTsKKwkJCWJyZWFrOwor CQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJY2FzZSBQ R19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCQltZCA9IEVWUF9zaGEz ODQoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNf U0hBXzUxMjoKKwkJCW1kID0gRVZQX3NoYTUxMigpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQltZCA9IE5VTEw7CisJfQorCisJcmV0dXJuIG1kOworfQorCisvKgorICogR2V0IHRo ZSBNQUMga2V5IGxlbmd0aCAoaW4gb2N0ZXRzKSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBD RUsgYWxnb3JpdGhtIG51bWJlci4KKyAqCisgKiBUaGlzIGlzIE1BQ19LRVlfTEVOIGluIHRo ZSBtY2dyZXcgcGFwZXIuCisgKi8KK3N0YXRpYyBpbnQKK21kX2tleV9sZW5ndGgoY29uc3Qg RVZQX01EICptZCkKK3sKKwlpZiAobWQgPT0gRVZQX3NoYTI1NigpKQorCQlyZXR1cm4gMTY7 CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTM4NCgpKQorCQlyZXR1cm4gMjQ7CisJZWxzZSBp ZiAobWQgPT0gRVZQX3NoYTUxMigpKQorCQlyZXR1cm4gMzI7CisJZWxzZQorCQlyZXR1cm4g LTE7Cit9CisKKy8qCisgKiBHZXQgdGhlIEhNQUMgb3V0cHV0IGxlbmd0aCAoaW4gb2N0ZXRz KSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBDRUsKKyAqIGFsZ29yaXRobSBudW1iZXIuCisg Ki8KK3N0YXRpYyBpbnQKK21kX2hhc2hfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7CisJ aWYgKG1kID09IEVWUF9zaGEyNTYoKSkKKwkJcmV0dXJuIDMyOworCWVsc2UgaWYgKG1kID09 IEVWUF9zaGEzODQoKSkKKwkJcmV0dXJuIDQ4OworCWVsc2UgaWYgKG1kID09IEVWUF9zaGE1 MTIoKSkKKwkJcmV0dXJuIDY0OworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisvKgorICog TGVuZ3RoIG9mIGFzc29jaWF0ZWQgZGF0YSAoQSBpbiBtY2dyZXcgcGFwZXIpCisgKi8KKyNp Zm5kZWYgVEVTVF9FTkNSWVBUCisjZGVmaW5lIFBHX0FEX0xFTiA0CisjZWxzZQorI2RlZmlu ZSBQR19BRF9MRU4gc2l6ZW9mKHRlc3RfQSkKKyNlbmRpZgorCisvKgorICogQ29tcHV0ZSBt ZXNzYWdlIGF1dGhlbnRpY2F0aW9uIHRhZyAoVCBpbiB0aGUgbWNncmV3IHBhcGVyKSwgZnJv bSBNQUMga2V5CisgKiBhbmQgY2lwaGVydGV4dC4KKyAqCisgKiBSZXR1cm5zIGZhbHNlIG9u IGVycm9yLCB3aXRoIGVycm9yIG1lc3NhZ2UgaW4gZXJybXNncC4KKyAqLworc3RhdGljIGJv b2wKK2dldF9tZXNzYWdlX2F1dGhfdGFnKGNvbnN0IEVWUF9NRCAqbWQsCisJCQkJCSBjb25z dCB1bnNpZ25lZCBjaGFyICptYWNfa2V5LCBpbnQgbWFjX2tleV9sZW4sCisJCQkJCSBjb25z dCB1bnNpZ25lZCBjaGFyICplbmNyLCBpbnQgZW5jcmxlbiwKKwkJCQkJIHVuc2lnbmVkIGNo YXIgKm1kX3ZhbHVlLCBzaXplX3QgKm1kX2xlbl9wLAorCQkJCQkgY29uc3QgY2hhciAqKmVy cm1zZ3ApCit7CisJc3RhdGljIGNoYXIgbXNnYnVmWzEwMjRdOworCUVWUF9NRF9DVFggKmV2 cF9tZF9jdHggPSBOVUxMOworCUVWUF9QS0VZICAgKnBrZXkgPSBOVUxMOworCXNpemVfdAkJ YnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCWludDY0CQlhbDsKKwli b29sCQlyZXN1bHQgPSBmYWxzZTsKKworCWlmIChlbmNybGVuIDwgMCkKKwl7CisJCXNucHJp bnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImVuY3J5 cHRlZCB2YWx1ZSBoYXMgaW52YWxpZCBsZW5ndGgiKSk7CisJCSplcnJtc2dwID0gbXNnYnVm OworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX21kX2N0eCA9IEVWUF9NRF9DVFhfbmV3KCk7 CisKKwlwa2V5ID0gRVZQX1BLRVlfbmV3X3Jhd19wcml2YXRlX2tleShFVlBfUEtFWV9ITUFD LCBOVUxMLCBtYWNfa2V5LCBtYWNfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiY291 bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9l cnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOwor CQlnb3RvIGZhaWw7CisJfQorCisJLyoKKwkgKiBCdWlsZCBpbnB1dCB0byBNQUMgY2FsbCAo QSB8fCBTIHx8IEFMIGluIG1jZ3JldyBwYXBlcikKKwkgKi8KKwlidWZzaXplID0gUEdfQURf TEVOICsgZW5jcmxlbiArIHNpemVvZihpbnQ2NCk7CisJYnVmID0gbWFsbG9jKGJ1ZnNpemUp OworCWlmICghYnVmKQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJvdXQgb2Yg bWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisJLyogQSAoYXNzb2NpYXRlZCBkYXRhKSAq LworI2lmbmRlZiBURVNUX0VOQ1JZUFQKKwlidWZbMF0gPSAnUCc7CisJYnVmWzFdID0gJ0cn OworCSooaW50MTYgKikgKGJ1ZiArIDIpID0gcGdfaHRvbjE2KDEpOworI2Vsc2UKKwltZW1j cHkoYnVmLCB0ZXN0X0EsIHNpemVvZih0ZXN0X0EpKTsKKyNlbmRpZgorCS8qIFMgKGNpcGhl cnRleHQpICovCisJbWVtY3B5KGJ1ZiArIFBHX0FEX0xFTiwgZW5jciwgZW5jcmxlbik7CisJ LyogQUwgKG51bWJlciBvZiAqYml0cyogaW4gQSkgKi8KKwlhbCA9IHBnX2h0b242NChQR19B RF9MRU4gKiA4KTsKKwltZW1jcHkoYnVmICsgUEdfQURfTEVOICsgZW5jcmxlbiwgJmFsLCBz aXplb2YoYWwpKTsKKworCS8qCisJICogQ2FsbCBNQUMKKwkgKi8KKwlpZiAoIUVWUF9EaWdl c3RTaWduSW5pdChldnBfbWRfY3R4LCBOVUxMLCBtZCwgTlVMTCwgcGtleSkpCisJeworCQlz bnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJk aWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRlKGV2cF9tZF9j dHgsIGJ1ZiwgYnVmc2l6ZSkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2di dWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiks CisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2Vz dFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgbWRfbGVuX3ApKQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGln ZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisJQXNzZXJ0KCptZF9sZW5fcCA9PSBtZF9oYXNoX2xlbmd0aChtZCkpOworCisJ LyogdHJ1bmNhdGUgb3V0cHV0IHRvIGhhbGYgdGhlIGxlbmd0aCwgcGVyIHNwZWMgKi8KKwkq bWRfbGVuX3AgLz0gMjsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCWZyZWUoYnVmKTsK KwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsK KwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogRGVjcnlwdCBhIGNvbHVtbiB2YWx1ZQor ICovCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfdmFsdWUoUEdyZXN1bHQgKnJlcywgY29u c3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQs IGludCBpbnB1dGxlbiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCit7CisJc3RhdGljIGNoYXIg bXNnYnVmWzEwMjRdOworCisJY29uc3QgdW5zaWduZWQgY2hhciAqaXYgPSBOVUxMOworCXNp emVfdAkJaXZsZW47CisKKwljb25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29uc3QgRVZQ X01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxMOworCWlu dAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWl2X2tleV9s ZW47CisJaW50CQkJa2V5X2xlbjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5Owor CWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hY19rZXk7CisJdW5zaWduZWQgY2hhciBtZF92YWx1 ZVtFVlBfTUFYX01EX1NJWkVdOworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVl KTsKKwlzaXplX3QJCWJ1ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwl1 bnNpZ25lZCBjaGFyICpkZWNyOworCWludAkJCWRlY3JsZW4sCisJCQkJZGVjcmxlbjI7CisK Kwl1bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2VrYWxn X3RvX29wZW5zc2xfY2lwaGVyKGNla2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlzbnBy aW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJl Y29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0gaWRlbnRpZmllcjogJWQiKSwgY2VrYWxn KTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwltZCA9IHBn X2Nla2FsZ190b19vcGVuc3NsX21kKGNla2FsZyk7CisJaWYgKCFtZCkKKwl7CisJCXNucHJp bnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoInVucmVj b2duaXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7CisJ CSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX2NpcGhlcl9j dHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKworCWlmICghRVZQX0RlY3J5cHRJbml0X2V4 KGV2cF9jaXBoZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5VTEwsIE5VTEwpKQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVj cnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25f ZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsK KwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9DVFhfa2V5 X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBpdl9rZXlfbGVuID0g bWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9s ZW4gKyBpdl9rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVuKQor CXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0 dGV4dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IGhhcyB3cm9uZyBsZW5ndGggZm9yIGFsZ29y aXRobSAoaGFzOiAlenUsIHJlcXVpcmVkOiAlZCkiKSwKKwkJCQkgY2VrLT5jZWtkYXRhbGVu LCBrZXlfbGVuKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisK KwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCWVuY19rZXkgPSBjZWstPmNla2RhdGEgKyBt YWNfa2V5X2xlbjsKKworCWlmICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19rZXks IG1hY19rZXlfbGVuLAorCQkJCQkJCSAgaW5wdXQsIGlucHV0bGVuIC0gKG1kX2hhc2hfbGVu Z3RoKG1kKSAvIDIpLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9sZW4sCisJCQkJCQkJICBl cnJtc2dwKSkKKwl7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiB1c2UgY29uc3RhbnQtdGlt ZSBjb21wYXJpc29uLCBwZXIgbWNncmV3IHBhcGVyICovCisJaWYgKENSWVBUT19tZW1jbXAo aW5wdXQgKyAoaW5wdXRsZW4gLSBtZF9sZW4pLCBtZF92YWx1ZSwgbWRfbGVuKSAhPSAwKQor CXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJNQUMgbWlzbWF0Y2giKTsKKwkJZ290 byBmYWlsOworCX0KKworCWl2bGVuID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9j aXBoZXJfY3R4KTsKKwlpdiA9IGlucHV0OworCWlucHV0ICs9IGl2bGVuOworCWlucHV0bGVu IC09IGl2bGVuOworCWlmICghRVZQX0RlY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBO VUxMLCBOVUxMLCBlbmNfa2V5LCBpdikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVv Zihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0 aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dl dF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQor CisJYnVmc2l6ZSA9IGlucHV0bGVuICsgRVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShldnBf Y2lwaGVyX2N0eCkgKyAxOworCWJ1ZiA9IHBxUmVzdWx0QWxsb2MocmVzLCBidWZzaXplLCBm YWxzZSk7CisJaWYgKCFidWYpCisJeworCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoIm91 dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwlkZWNyID0gYnVmOworCWlmICgh RVZQX0RlY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGRlY3IsICZkZWNybGVuLCBpbnB1 dCwgaW5wdXRsZW4gLSBtZF9sZW4pKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2Yo bXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiks CisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9EZWNyeXB0 RmluYWxfZXgoZXZwX2NpcGhlcl9jdHgsIGRlY3IgKyBkZWNybGVuLCAmZGVjcmxlbjIpKQor CXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0 dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290 byBmYWlsOworCX0KKwlkZWNybGVuICs9IGRlY3JsZW4yOworCUFzc2VydChkZWNybGVuIDwg YnVmc2l6ZSk7CisJZGVjcltkZWNybGVuXSA9ICdcMCc7CisJcmVzdWx0ID0gZGVjcjsKKwor ZmFpbDoKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJfY3R4KTsKKworCXJldHVy biByZXN1bHQ7Cit9CisKKy8qCisgKiBDb21wdXRlIGEgc3ludGhldGljIGluaXRpYWxpemF0 aW9uIHZlY3RvciAoU0lWKSwgZm9yIGRldGVybWluaXN0aWMKKyAqIGVuY3J5cHRpb24uCisg KgorICogUGVyIHByb3RvY29sIHNwZWNpZmljYXRpb24sIHRoZSBTSVYgaXMgY29tcHV0ZWQg YXM6CisgKgorICogU1VCU1RSSU5HKEhNQUMoSywgUCkgRk9SIElWTEVOKQorICovCisjaWZu ZGVmIFRFU1RfRU5DUllQVAorc3RhdGljIGJvb2wKK21ha2Vfc2l2KFBHY29ubiAqY29ubiwK KwkJIHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZsZW4sCisJCSBjb25zdCBFVlBfTUQg Km1kLAorCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5LCBpbnQgaXZfa2V5X2xlbiwK KwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBsYWludGV4dCwgaW50IHBsYWludGV4dF9sZW4p Cit7CisJRVZQX01EX0NUWCAqZXZwX21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAqcGtl eSA9IE5VTEw7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVdOwor CXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlib29sCQlyZXN1bHQgPSBm YWxzZTsKKworCWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9IEVW UF9QS0VZX25ld19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgaXZfa2V5 LCBpdl9rZXlfbGVuKTsKKwlpZiAoIXBrZXkpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAiY291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiLAorCQkJ CQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgsIE5V TEwsIG1kLCBOVUxMLCBwa2V5KSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sICJkaWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9y ZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJ fQorCisJaWYgKCFFVlBfRGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBwbGFpbnRleHQs IHBsYWludGV4dF9sZW4pKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg ImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9y X3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICgh RVZQX0RpZ2VzdFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgJm1kX2xlbikpCisJ eworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZGlnZXN0IHNpZ25pbmcgZmFp bGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJy b3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydChtZF9sZW4gPT0gbWRfaGFzaF9s ZW5ndGgobWQpKTsKKwltZW1jcHkoaXYsIG1kX3ZhbHVlLCBpdmxlbik7CisKKwlyZXN1bHQg PSB0cnVlOworZmFpbDoKKwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJl ZShldnBfbWRfY3R4KTsKKwlyZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCQkJCQkJCS8qIFRF U1RfRU5DUllQVCAqLworCisvKgorICogRW5jcnlwdCBhIGNvbHVtbiB2YWx1ZQorICovCit1 bnNpZ25lZCBjaGFyICoKK2VuY3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NF SyAqY2VrLCBpbnQgY2VrYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpu Ynl0ZXNwLCBib29sIGVuY19kZXQpCit7CisJaW50CQkJbmJ5dGVzID0gKm5ieXRlc3A7CisJ dW5zaWduZWQgY2hhciBpdltFVlBfTUFYX0lWX0xFTkdUSF07CisJc2l6ZV90CQlpdmxlbjsK Kwljb25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBf Q0lQSEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVu OworCWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWl2X2tleV9sZW47CisJaW50CQkJa2V5 X2xlbjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVuc2lnbmVk IGNoYXIgKm1hY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5OworCXNpemVf dAkJYnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNo YXIgKmVuY3I7CisJaW50CQkJZW5jcmxlbiwKKwkJCQllbmNybGVuMjsKKworCWNvbnN0IGNo YXIgKmVycm1zZzsKKwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07 CisJc2l6ZV90CQltZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmMnNp emU7CisJdW5zaWduZWQgY2hhciAqYnVmMiA9IE5VTEw7CisKKwl1bnNpZ25lZCBjaGFyICpy ZXN1bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVy KGNla2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihjb25uLCAidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6 ICVkIiwgY2VrYWxnKTsKKwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3Rv X29wZW5zc2xfbWQoY2VrYWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nv bm5fZXJyb3IoY29ubiwgInVucmVjb2duaXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50aWZp ZXI6ICVkIiwgY2VrYWxnKTsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4 ID0gRVZQX0NJUEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChl dnBfY2lwaGVyX2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCWxpYnBx X2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZh aWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vy cm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhF Ul9DVFhfa2V5X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBpdl9r ZXlfbGVuID0gbWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsg ZW5jX2tleV9sZW4gKyBpdl9rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBr ZXlfbGVuKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVtbiBl bmNyeXB0aW9uIGtleSBoYXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1 LCByZXF1aXJlZDogJWQpIiwKKwkJCQkJCQkJY2VrLT5jZWtkYXRhbGVuLCBrZXlfbGVuKTsK KwkJZ290byBmYWlsOworCX0KKworCW1hY19rZXkgPSBjZWstPmNla2RhdGE7CisJZW5jX2tl eSA9IGNlay0+Y2VrZGF0YSArIG1hY19rZXlfbGVuOworCWl2X2tleSA9IGNlay0+Y2VrZGF0 YSArIG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJf Q1RYX2l2X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJQXNzZXJ0KGl2bGVuIDw9IHNpemVv ZihpdikpOworCWlmIChlbmNfZGV0KQorCXsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJCW1h a2Vfc2l2KGNvbm4sIGl2LCBpdmxlbiwgbWQsIGl2X2tleSwgaXZfa2V5X2xlbiwgdmFsdWUs IG5ieXRlcyk7CisjZWxzZQorCQkodm9pZCkgaXZfa2V5OwkvKiB1bnVzZWQgKi8KKwkJbWVt Y3B5KGl2LCB0ZXN0X0lWLCBpdmxlbik7CisjZW5kaWYKKwl9CisJZWxzZQorCQlwZ19zdHJv bmdfcmFuZG9tKGl2LCBpdmxlbik7CisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2Np cGhlcl9jdHgsIE5VTEwsIE5VTEwsIGVuY19rZXksIGl2KSkKKwl7CisJCWxpYnBxX2FwcGVu ZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDog JXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZnNpemUgPSBpdmxlbiArIChuYnl0ZXMgKyAy ICogRVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0eCkgLSAxKTsKKwli dWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisJaWYgKCFidWYpCisJeworCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQor CW1lbWNweShidWYsIGl2LCBpdmxlbik7CisJZW5jciA9IGJ1ZiArIGl2bGVuOworCWlmICgh RVZQX0VuY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGVuY3IsICZlbmNybGVuLCB2YWx1 ZSwgbmJ5dGVzKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNy eXB0aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhF UlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9FbmNyeXB0 RmluYWxfZXgoZXZwX2NpcGhlcl9jdHgsIGVuY3IgKyBlbmNybGVuLCAmZW5jcmxlbjIpKQor CXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVuY3J5cHRpb24gZmFpbGVk OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3Io KSkpOworCQlnb3RvIGZhaWw7CisJfQorCWVuY3JsZW4gKz0gZW5jcmxlbjI7CisKKwllbmNy IC09IGl2bGVuOworCWVuY3JsZW4gKz0gaXZsZW47CisKKwlBc3NlcnQoZW5jcmxlbiA8PSBi dWZzaXplKTsKKworCWlmICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19rZXksIG1h Y19rZXlfbGVuLAorCQkJCQkJCSAgZW5jciwgZW5jcmxlbiwKKwkJCQkJCQkgIG1kX3ZhbHVl LCAmbWRfbGVuLAorCQkJCQkJCSAgJmVycm1zZykpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLCAiJXNcbiIsIGVycm1zZyk7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwlidWYyc2l6ZSA9IGVuY3JsZW4gKyBtZF9sZW47CisJYnVmMiA9IG1hbGxvYyhi dWYyc2l6ZSk7CisJaWYgKCFidWYyKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Io Y29ubiwgIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwltZW1jcHkoYnVm MiwgZW5jciwgZW5jcmxlbik7CisJbWVtY3B5KGJ1ZjIgKyBlbmNybGVuLCBtZF92YWx1ZSwg bWRfbGVuKTsKKworCXJlc3VsdCA9IGJ1ZjI7CisJbmJ5dGVzID0gYnVmMnNpemU7CisKK2Zh aWw6CisJZnJlZShidWYpOworCUVWUF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2NpcGhlcl9jdHgp OworCisJKm5ieXRlc3AgPSBuYnl0ZXM7CisJcmV0dXJuIHJlc3VsdDsKK30KKworCisvKgor ICogUnVuIHRlc3QgY2FzZXMKKyAqLworI2lmZGVmIFRFU1RfRU5DUllQVAorCitzdGF0aWMg dm9pZAorZGVidWdfcHJpbnRfaGV4KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVk IGNoYXIgKnZhbCwgaW50IGxlbikKK3sKKwlwcmludGYoIiVzID0iLCBuYW1lKTsKKwlmb3Ig KGludCBpID0gMDsgaSA8IGxlbjsgaSsrKQorCXsKKwkJaWYgKGkgJSAxNiA9PSAwKQorCQkJ cHJpbnRmKCJcbiIpOworCQllbHNlCisJCQlwcmludGYoIiAiKTsKKwkJcHJpbnRmKCIlMDJ4 IiwgdmFsW2ldKTsKKwl9CisJcHJpbnRmKCJcbiIpOworfQorCisvKgorICogSyBhbmQgUCBh cmUgZnJvbSB0aGUgbWNncmV3IHBhcGVyLCBLX2xlbiBhbmQgUF9sZW4gYXJlIHRoZWlyIHJl c3BlY3RpdmUKKyAqIGxlbmd0aHMuICBlbmNyeXB0X3ZhbHVlKCkgcmVxdWlyZXMgdGhlIGtl eSBsZW5ndGggdG8gY29udGFpbiB0aGUgSVYga2V5LCBzbworICogd2UgcGFzcyBpdCBoZXJl LCB0b28sIGJ1dCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorICovCitzdGF0aWMgdm9pZAordGVz dF9jYXNlKGludCBhbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkssIHNpemVfdCBLX2xlbiwg c2l6ZV90IElWX2tleV9sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xl bikKK3sKKwl1bnNpZ25lZCBjaGFyICpDOworCWludAkJCW5ieXRlczsKKwlQR0NFSwkJY2Vr OworCisJbmJ5dGVzID0gUF9sZW47CisJY2VrLmNla2RhdGFsZW4gPSBLX2xlbiArIElWX2tl eV9sZW47CisJY2VrLmNla2RhdGEgPSBtYWxsb2MoY2VrLmNla2RhdGFsZW4pOworCW1lbWNw eShjZWsuY2VrZGF0YSwgSywgS19sZW4pOworCisJQyA9IGVuY3J5cHRfdmFsdWUoTlVMTCwg JmNlaywgYWxnLCBQLCAmbmJ5dGVzLCB0cnVlKTsKKwlkZWJ1Z19wcmludF9oZXgoIkMiLCBD LCBuYnl0ZXMpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorewor CXByaW50ZigiNS4xXG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNf SE1BQ19TSEFfMjU2LCBLLCAzMiwgMTYsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjJc biIpOworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQs IEssIDQ4LCAyNCwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuM1xuIik7CisJdGVzdF9j YXNlKFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NCwgSywgNTYsIDI0LCBQ LCBzaXplb2YoUCkpOworCXByaW50ZigiNS40XG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FF QURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyLCBLLCA2NCwgMzIsIFAsIHNpemVvZihQKSk7 CisKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLwpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjBiNjVmOTEzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKQEAgLTAsMCArMSwzMyBAQAorLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgorICogZmUtZW5jcnlwdC5oCisgKgorICogY2xpZW50LXNpZGUgY29s dW1uIGVuY3J5cHRpb24gc3VwcG9ydAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1lbmNyeXB0LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwor CisjaWZuZGVmIEZFX0VOQ1JZUFRfSAorI2RlZmluZSBGRV9FTkNSWVBUX0gKKworI2luY2x1 ZGUgImxpYnBxLWZlLmgiCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKK2V4dGVybiB1bnNp Z25lZCBjaGFyICpkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBjb25zdCBj aGFyICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywKKwkJCQkJCQkJCQkJaW50IGZyb21sZW4s IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCQkJCQkJCWludCAqdG9sZW4pOwor CitleHRlcm4gdW5zaWduZWQgY2hhciAqZGVjcnlwdF92YWx1ZShQR3Jlc3VsdCAqcmVzLCBj b25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLAorCQkJCQkJCQkJY29uc3QgdW5zaWduZWQg Y2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwKKwkJCQkJCQkJCWNvbnN0IGNoYXIgKiplcnJt c2dwKTsKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmVuY3J5cHRfdmFsdWUoUEdjb25uICpj b25uLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLAorCQkJCQkJCQkJY29uc3QgdW5z aWduZWQgY2hhciAqdmFsdWUsIGludCAqbmJ5dGVzcCwgYm9vbCBlbmNfZGV0KTsKKworI2Vu ZGlmCQkJCQkJCS8qIEZFX0VOQ1JZUFRfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtZXhlYy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCmlu ZGV4IGVjNjI1NTBlMzguLjEyOGY4ZTNiOTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWV4ZWMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMK QEAgLTI0LDYgKzI0LDggQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCisjaW5j bHVkZSAiY29tbW9uL2NvbGVuYy5oIgorI2luY2x1ZGUgImZlLWVuY3J5cHQuaCIKICNpbmNs dWRlICJsaWJwcS1mZS5oIgogI2luY2x1ZGUgImxpYnBxLWludC5oIgogI2luY2x1ZGUgIm1i L3BnX3djaGFyLmgiCkBAIC03Miw3ICs3NCw4IEBAIHN0YXRpYyBpbnQJUFFzZW5kUXVlcnlH dXRzKFBHY29ubiAqY29ubiwKIAkJCQkJCQljb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1 ZXMsCiAJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJY29uc3QgaW50 ICpwYXJhbUZvcm1hdHMsCi0JCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CisJCQkJCQkJaW50 IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKIHN0YXRpYyB2 b2lkIHBhcnNlSW5wdXQoUEdjb25uICpjb25uKTsKIHN0YXRpYyBQR3Jlc3VsdCAqZ2V0Q29w eVJlc3VsdChQR2Nvbm4gKmNvbm4sIEV4ZWNTdGF0dXNUeXBlIGNvcHl0eXBlKTsKIHN0YXRp YyBib29sIFBRZXhlY1N0YXJ0KFBHY29ubiAqY29ubik7CkBAIC0xMTgzLDYgKzExODYsNDIw IEBAIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogCX0KIH0KIAorLyoKKyAqIHBxU2F2ZUNvbHVtbk1h c3RlcktleSAtIHNhdmUgY29sdW1uIG1hc3RlciBrZXkgc2VudCBieSBiYWNrZW5kCisgKi8K K2ludAorcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlkLCBj b25zdCBjaGFyICprZXluYW1lLAorCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKQorewor CWNoYXIJICAgKmtleW5hbWVfY29weTsKKwljaGFyCSAgICprZXlyZWFsbV9jb3B5OworCWJv b2wJCWZvdW5kOworCisJa2V5bmFtZV9jb3B5ID0gc3RyZHVwKGtleW5hbWUpOworCWlmICgh a2V5bmFtZV9jb3B5KQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtX2NvcHkgPSBzdHJkdXAo a2V5cmVhbG0pOworCWlmICgha2V5cmVhbG1fY29weSkKKwl7CisJCWZyZWUoa2V5bmFtZV9j b3B5KTsKKwkJcmV0dXJuIEVPRjsKKwl9CisKKwlmb3VuZCA9IGZhbHNlOworCWZvciAoaW50 IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCXN0cnVjdCBwZ19jbWsgKmNo ZWNrY21rID0gJmNvbm4tPmNta3NbaV07CisKKwkJLyogcmVwbGFjZSBleGlzdGluZz8gKi8K KwkJaWYgKGNoZWNrY21rLT5jbWtpZCA9PSBrZXlpZCkKKwkJeworCQkJZnJlZShjaGVja2Nt ay0+Y21rbmFtZSk7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtyZWFsbSk7CisJCQljaGVja2Nt ay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJCWNoZWNrY21rLT5jbWtyZWFsbSA9IGtl eXJlYWxtX2NvcHk7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKwor CS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWludAkJCW5ld25jbWtz OworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWs7 CisKKwkJbmV3bmNta3MgPSBjb25uLT5uY21rcyArIDE7CisJCWlmIChuZXduY21rcyA8PSAw KQorCQkJcmV0dXJuIEVPRjsKKwkJbmV3Y21rcyA9IHJlYWxsb2MoY29ubi0+Y21rcywgbmV3 bmNta3MgKiBzaXplb2Yoc3RydWN0IHBnX2NtaykpOworCQlpZiAoIW5ld2Nta3MpCisJCXsK KwkJCWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJCWZyZWUoa2V5cmVhbG1fY29weSk7CisJCQly ZXR1cm4gRU9GOworCQl9CisKKwkJbmV3Y21rID0gJm5ld2Nta3NbbmV3bmNta3MgLSAxXTsK KwkJbmV3Y21rLT5jbWtpZCA9IGtleWlkOworCQluZXdjbWstPmNta25hbWUgPSBrZXluYW1l X2NvcHk7CisJCW5ld2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5OworCisJCWNvbm4t Pm5jbWtzID0gbmV3bmNta3M7CisJCWNvbm4tPmNta3MgPSBuZXdjbWtzOworCX0KKworCXJl dHVybiAwOworfQorCisvKgorICogUmVwbGFjZSBwbGFjZWhvbGRlcnMgaW4gaW5wdXQgc3Ry aW5nLiAgUmV0dXJuIHZhbHVlIG1hbGxvYydlZC4KKyAqLworc3RhdGljIGNoYXIgKgorcmVw bGFjZV9jbWtfcGxhY2Vob2xkZXJzKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpjbWtu YW1lLCBjb25zdCBjaGFyICpjbWtyZWFsbSwgaW50IGNta2FsZywgY29uc3QgY2hhciAqdG1w ZmlsZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCisJaW5pdFBRRXhwQnVmZmVyKCZi dWYpOworCisJZm9yIChjb25zdCBjaGFyICpwID0gaW47ICpwOyBwKyspCisJeworCQlpZiAo cFswXSA9PSAnJScpCisJCXsKKwkJCXN3aXRjaCAocFsxXSkKKwkJCXsKKwkJCQljYXNlICdh JzoKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqcyA9IGdldF9jbWthbGdfbmFtZShjbWth bGcpOworCisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBzID8gcyA6ICJJTlZB TElEIik7CisJCQkJCX0KKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdqJzoK KwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqcyA9IGdldF9jbWthbGdfandhX25hbWUoY21r YWxnKTsKKworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgcyA/IHMgOiAiSU5W QUxJRCIpOworCQkJCQl9CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnayc6 CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta25hbWUpOworCQkJCQlwKys7 CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3AnOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLCB0bXBmaWxlKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdy JzoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY21rcmVhbG0pOworCQkJCQlw Kys7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy Q2hhcigmYnVmLCBwWzBdKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1 ZmZlckNoYXIoJmJ1ZiwgcFswXSk7CisJfQorCisJcmV0dXJuIGJ1Zi5kYXRhOworfQorCisj aWZuZGVmIFVTRV9TU0wKKy8qCisgKiBEdW1teSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9uLVNT TCBidWlsZHMKKyAqLwordW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywKKwkJ CQkJICBpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJICBp bnQgKnRvbGVuKQoreworCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb2x1bW4g ZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwlyZXR1cm4gTlVM TDsKK30KKyNlbmRpZgorCisvKgorICogRGVjcnlwdCBhIENFSyB1c2luZyB0aGUgZ2l2ZW4g Q01LLiAgVGhlIGNpcGhlcnRleHQgaXMgcGFzc2VkIGluCisgKiAiZnJvbSIgYW5kICJmcm9t bGVuIi4gIFJldHVybiB0aGUgZGVjcnlwdGVkIHZhbHVlIGluIGEgbWFsbG9jJ2VkIGFyZWEs IGl0cworICogbGVuZ3RoIHZpYSAidG9sZW4iLiAgUmV0dXJuIE5VTEwgb24gZXJyb3I7IGFk ZCBlcnJvciBtZXNzYWdlcyBkaXJlY3RseSB0bworICogImNvbm4iLgorICovCitzdGF0aWMg dW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2NlayhQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ01L ICpjbWssIGludCBjbWthbGcsCisJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hh ciAqZnJvbSwKKwkJCWludCAqdG9sZW4pCit7CisJY2hhcgkgICAqY21rbG9va3VwOworCWJv b2wJCWZvdW5kID0gZmFsc2U7CisJdW5zaWduZWQgY2hhciAqcmVzdWx0ID0gTlVMTDsKKwor CWlmICghY29ubi0+Y21rbG9va3VwIHx8ICFjb25uLT5jbWtsb29rdXBbMF0pCisJeworCQls aWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY29sdW1uIG1hc3RlciBrZXkgbG9va3Vw IGlzIG5vdCBjb25maWd1cmVkIik7CisJCXJldHVybiBOVUxMOworCX0KKworCWNta2xvb2t1 cCA9IHN0cmR1cChjb25uLT5jbWtsb29rdXAgPyBjb25uLT5jbWtsb29rdXAgOiAiIik7CisK KwlpZiAoIWNta2xvb2t1cCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4s ICJvdXQgb2YgbWVtb3J5Iik7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qCisJICogQW5h bHl6ZSBzZW1pY29sb24tc2VwYXJhdGVkIGxpc3QKKwkgKi8KKwlmb3IgKGNoYXIgKnMgPSBz dHJ0b2soY21rbG9va3VwLCAiOyIpOyBzOyBzID0gc3RydG9rKE5VTEwsICI7IikpCisJewor CQljaGFyCSAgICpzZXA7CisKKwkJLyogc3BsaXQgZm91bmQgdG9rZW4gYXQgJz0nICovCisJ CXNlcCA9IHN0cmNocihzLCAnPScpOworCQlpZiAoIXNlcCkKKwkJeworCQkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgInN5bnRheCBlcnJvciBpbiBDTUsgbG9va3VwIHNwZWNp ZmljYXRpb24sIG1pc3NpbmcgXCIlY1wiOiAlcyIsICc9Jywgcyk7CisJCQlicmVhazsKKwkJ fQorCisJCS8qIG1hdGNoaW5nIHJlYWxtPyAqLworCQlpZiAoc3RybmNtcChzLCAiKiIsIHNl cCAtIHMpID09IDAgfHwgc3RybmNtcChzLCBjbWstPmNta3JlYWxtLCBzZXAgLSBzKSA9PSAw KQorCQl7CisJCQljaGFyCSAgICpzZXAyOworCisJCQlmb3VuZCA9IHRydWU7CisKKwkJCXNl cDIgPSBzdHJjaHIoc2VwLCAnOicpOworCQkJaWYgKCFzZXAyKQorCQkJeworCQkJCWxpYnBx X2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJzeW50YXggZXJyb3IgaW4gQ01LIGxvb2t1cCBz cGVjaWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXMiLCAnOicsIHMpOworCQkJCWdvdG8g ZmFpbDsKKwkJCX0KKworCQkJaWYgKHN0cm5jbXAoc2VwICsgMSwgImZpbGUiLCBzZXAyIC0g KHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJICAgKmNta2ZpbGVuYW1lOworCisJ CQkJY21rZmlsZW5hbWUgPSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2VwMiArIDEsIGNt ay0+Y21rbmFtZSwgY21rLT5jbWtyZWFsbSwgY21rYWxnLCAiSU5WQUxJRCIpOworCQkJCXJl c3VsdCA9IGRlY3J5cHRfY2VrX2Zyb21fZmlsZShjb25uLCBjbWtmaWxlbmFtZSwgY21rYWxn LCBmcm9tbGVuLCBmcm9tLCB0b2xlbik7CisJCQkJZnJlZShjbWtmaWxlbmFtZSk7CisJCQl9 CisJCQllbHNlIGlmIChzdHJuY21wKHNlcCArIDEsICJydW4iLCBzZXAyIC0gKHNlcCArIDEp KSA9PSAwKQorCQkJeworCQkJCWNoYXIJCXRtcGZpbGVbTUFYUEdQQVRIXSA9IHswfTsKKwkJ CQlpbnQJCQlmZDsKKwkJCQljaGFyCSAgICpjb21tYW5kOworCQkJCUZJTEUJICAgKmZwOwor CQkJCS8qIG9ubHkgbmVlZHMgZW5vdWdoIHJvb20gZm9yIENFSyBrZXkgbWF0ZXJpYWwgKi8K KwkJCQljaGFyCQlidWZbMTAyNF07CisJCQkJc2l6ZV90CQlucmVhZDsKKwkJCQlpbnQJCQly YzsKKworI2lmbmRlZiBXSU4zMgorCQkJCXsKKwkJCQkJY29uc3QgY2hhciAqdG1wZGlyOwor CisJCQkJCXRtcGRpciA9IGdldGVudigiVE1QRElSIik7CisJCQkJCWlmICghdG1wZGlyKQor CQkJCQkJdG1wZGlyID0gIi90bXAiOworCQkJCQlzdHJsY3B5KHRtcGZpbGUsIHRtcGRpciwg c2l6ZW9mKHRtcGZpbGUpKTsKKwkJCQkJc3RybGNhdCh0bXBmaWxlLCAiL2xpYnBxLVhYWFhY WCIsIHNpemVvZih0bXBmaWxlKSk7CisJCQkJCWZkID0gbWtzdGVtcCh0bXBmaWxlKTsKKwkJ CQkJaWYgKGZkIDwgMCkKKwkJCQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Io Y29ubiwgImNvdWxkIG5vdCBydW4gY3JlYXRlIHRlbXBvcmFyeSBmaWxlOiAlbSIpOworCQkJ CQkJZ290byBmYWlsOworCQkJCQl9CisJCQkJfQorI2Vsc2UKKwkJCQl7CisJCQkJCWNoYXIJ CXRtcGRpcltNQVhQR1BBVEhdOworCQkJCQlpbnQJCQlyZXQ7CisKKwkJCQkJcmV0ID0gR2V0 VGVtcFBhdGgoTUFYUEdQQVRILCB0bXBkaXIpOworCQkJCQlpZiAocmV0ID09IDAgfHwgcmV0 ID4gTUFYUEdQQVRIKQorCQkJCQl7CisJCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAiY291bGQgbm90IGxvY2F0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5OiAlcyIsCisJCQkJ CQkJCQkJCQkhcmV0ID8gc3RyZXJyb3IoZXJybm8pIDogIiIpOworCQkJCQkJcmV0dXJuIGZh bHNlOworCQkJCQl9CisKKwkJCQkJaWYgKEdldFRlbXBGaWxlTmFtZSh0bXBkaXIsICJsaWJw cSIsIDAsIHRtcGZpbGUpID09IDApCisJCQkJCXsKKwkJCQkJCWxpYnBxX2FwcGVuZF9jb25u X2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZTogZXJy b3IgY29kZSAlbHUiLAorCQkJCQkJCQkJCQkJR2V0TGFzdEVycm9yKCkpOworCQkJCQkJZ290 byBmYWlsOworCQkJCQl9CisKKwkJCQkJZmQgPSBvcGVuKHRtcGZpbGUsIE9fV1JPTkxZIHwg T19UUlVOQyB8IFBHX0JJTkFSWSwgMCk7CisJCQkJCWlmIChmZCA8IDApCisJCQkJCXsKKwkJ CQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIG9wZW4g dGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKwkJCQl9 CisjZW5kaWYKKwkJCQlpZiAod3JpdGUoZmQsIGZyb20sIGZyb21sZW4pIDwgZnJvbWxlbikK KwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3Qg d3JpdGUgdG8gdGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCWNsb3NlKGZkKTsKKwkJCQkJ dW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWlmIChjbG9z ZShmZCkgPCAwKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg ImNvdWxkIG5vdCBjbG9zZSB0ZW1wb3JhcnkgZmlsZTogJW0iKTsKKwkJCQkJdW5saW5rKHRt cGZpbGUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCisJCQkJY29tbWFuZCA9IHJlcGxh Y2VfY21rX3BsYWNlaG9sZGVycyhzZXAyICsgMSwgY21rLT5jbWtuYW1lLCBjbWstPmNta3Jl YWxtLCBjbWthbGcsIHRtcGZpbGUpOworCQkJCWZwID0gcG9wZW4oY29tbWFuZCwgInIiKTsK KwkJCQlpZiAoIWZwKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29u biwgImNvdWxkIG5vdCBydW4gY29tbWFuZCBcIiVzXCI6ICVtIiwgY29tbWFuZCk7CisJCQkJ CWZyZWUoY29tbWFuZCk7CisJCQkJCXVubGluayh0bXBmaWxlKTsKKwkJCQkJZ290byBmYWls OworCQkJCX0KKwkJCQlucmVhZCA9IGZyZWFkKGJ1ZiwgMSwgc2l6ZW9mKGJ1ZiksIGZwKTsK KwkJCQlpZiAoZmVycm9yKGZwKSkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJjb3VsZCBub3QgcmVhZCBmcm9tIGNvbW1hbmQ6ICVtIik7CisJCQkJCXBj bG9zZShmcCk7CisJCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJCXVubGluayh0bXBmaWxlKTsK KwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQllbHNlIGlmICghZmVvZihmcCkpCisJCQkJ eworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAib3V0cHV0IGZyb20gY29t bWFuZCB0b28gbG9uZyIpOworCQkJCQlwY2xvc2UoZnApOworCQkJCQlmcmVlKGNvbW1hbmQp OworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJ cmMgPSBwY2xvc2UoZnApOworCQkJCWlmIChyYyAhPSAwKQorCQkJCXsKKwkJCQkJLyoKKwkJ CQkJICogWFhYIHdvdWxkIGxpa2UgdG8gdXNlIHdhaXRfcmVzdWx0X3RvX3N0cihyYykgYnV0 IHRoYXQKKwkJCQkJICogY2Fubm90IGJlIGNhbGxlZCBmcm9tIGxpYnBxIGJlY2F1c2UgaXQg Y2FsbHMgZXhpdCgpCisJCQkJCSAqLworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAiY291bGQgbm90IHJ1biBjb21tYW5kIFwiJXNcIiIsIGNvbW1hbmQpOworCQkJCQlm cmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsK KwkJCQl9CisJCQkJZnJlZShjb21tYW5kKTsKKwkJCQl1bmxpbmsodG1wZmlsZSk7CisKKwkJ CQlyZXN1bHQgPSBtYWxsb2MobnJlYWQpOworCQkJCWlmICghcmVzdWx0KQorCQkJCXsKKwkJ CQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dCBvZiBtZW1vcnkiKTsKKwkJ CQkJZ290byBmYWlsOworCQkJCX0KKwkJCQltZW1jcHkocmVzdWx0LCBidWYsIG5yZWFkKTsK KwkJCQkqdG9sZW4gPSBucmVhZDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlsaWJwcV9h cHBlbmRfY29ubl9lcnJvcihjb25uLCAiQ01LIGxvb2t1cCBzY2hlbWUgXCIlc1wiIG5vdCBy ZWNvZ25pemVkIiwgc2VwICsgMSk7CisJCQkJZ290byBmYWlsOworCQkJfQorCQl9CisJfQor CisJaWYgKCFmb3VuZCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJu byBDTUsgbG9va3VwIGZvdW5kIGZvciByZWFsbSBcIiVzXCIiLCBjbWstPmNta3JlYWxtKTsK Kwl9CisKK2ZhaWw6CisJZnJlZShjbWtsb29rdXApOworCXJldHVybiByZXN1bHQ7Cit9CisK Ky8qCisgKiBwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5IC0gc2F2ZSBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgc2VudCBieSBiYWNrZW5kCisgKi8KK2ludAorcHFTYXZlQ29sdW1uRW5jcnlw dGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgaW50IGNta2lkLCBpbnQgY21rYWxn LCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50IGxlbikKK3sKKwlQR0NNSwkgICAq Y21rID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpwbGFpbnZhbCA9IE5VTEw7CisJaW50CQkJ cGxhaW52YWxsZW4gPSAwOworCWJvb2wJCWZvdW5kOworCisJZm9yIChpbnQgaSA9IDA7IGkg PCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJaWYgKGNvbm4tPmNta3NbaV0uY21raWQgPT0g Y21raWQpCisJCXsKKwkJCWNtayA9ICZjb25uLT5jbWtzW2ldOworCQkJYnJlYWs7CisJCX0K Kwl9CisKKwlpZiAoIWNtaykKKwkJcmV0dXJuIEVPRjsKKworCXBsYWludmFsID0gZGVjcnlw dF9jZWsoY29ubiwgY21rLCBjbWthbGcsIGxlbiwgdmFsdWUsICZwbGFpbnZhbGxlbik7CisJ aWYgKCFwbGFpbnZhbCkKKwkJcmV0dXJuIEVPRjsKKworCWZvdW5kID0gZmFsc2U7CisJZm9y IChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY2VrczsgaSsrKQorCXsKKwkJc3RydWN0IHBnX2Nl ayAqY2hlY2tjZWsgPSAmY29ubi0+Y2Vrc1tpXTsKKworCQkvKiByZXBsYWNlIGV4aXN0aW5n PyAqLworCQlpZiAoY2hlY2tjZWstPmNla2lkID09IGtleWlkKQorCQl7CisJCQlmcmVlKGNo ZWNrY2VrLT5jZWtkYXRhKTsKKwkJCWNoZWNrY2VrLT5jZWtkYXRhID0gcGxhaW52YWw7CisJ CQljaGVja2Nlay0+Y2VrZGF0YWxlbiA9IHBsYWludmFsbGVuOworCQkJZm91bmQgPSB0cnVl OworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBhcHBlbmQgbmV3PyAqLworCWlmICghZm91 bmQpCisJeworCQlpbnQJCQluZXduY2VrczsKKwkJc3RydWN0IHBnX2NlayAqbmV3Y2VrczsK KwkJc3RydWN0IHBnX2NlayAqbmV3Y2VrOworCisJCW5ld25jZWtzID0gY29ubi0+bmNla3Mg KyAxOworCQlpZiAobmV3bmNla3MgPD0gMCkKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJ CQlyZXR1cm4gRU9GOworCQl9CisJCW5ld2Nla3MgPSByZWFsbG9jKGNvbm4tPmNla3MsIG5l d25jZWtzICogc2l6ZW9mKHN0cnVjdCBwZ19jZWspKTsKKwkJaWYgKCFuZXdjZWtzKQorCQl7 CisJCQlmcmVlKHBsYWludmFsKTsKKwkJCXJldHVybiBFT0Y7CisJCX0KKworCQluZXdjZWsg PSAmbmV3Y2Vrc1tuZXduY2VrcyAtIDFdOworCQluZXdjZWstPmNla2lkID0ga2V5aWQ7CisJ CW5ld2Nlay0+Y2VrZGF0YSA9IHBsYWludmFsOworCQluZXdjZWstPmNla2RhdGFsZW4gPSBw bGFpbnZhbGxlbjsKKworCQljb25uLT5uY2VrcyA9IG5ld25jZWtzOworCQljb25uLT5jZWtz ID0gbmV3Y2VrczsKKwl9CisKKwlyZXR1cm4gMDsKK30KIAogLyoKICAqIHBxUm93UHJvY2Vz c29yCkBAIC0xMjUxLDEzICsxNjY4LDUxIEBAIHBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQlib29sCQlpc2JpbmFyeSA9IChyZXMtPmF0 dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKIAkJCWNoYXIJICAgKnZhbDsKIAotCQkJdmFsID0g KGNoYXIgKikgcHFSZXN1bHRBbGxvYyhyZXMsIGNsZW4gKyAxLCBpc2JpbmFyeSk7Ci0JCQlp ZiAodmFsID09IE5VTEwpCisJCQlpZiAocmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJCXsK KwkJCQkvKiBlbmNyeXB0ZWQgY29sdW1uICovCisjaWZkZWYgVVNFX1NTTAorCQkJCVBHQ0VL CSAgICpjZWsgPSBOVUxMOworCisJCQkJaWYgKCFpc2JpbmFyeSkKKwkJCQl7CisJCQkJCSpl cnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGVkIGNvbHVtbiB3YXMgbm90IHNlbnQg aW4gYmluYXJ5IGZvcm1hdCIpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCisJCQkJZm9y IChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2VrczsgaisrKQorCQkJCXsKKwkJCQkJaWYgKGNv bm4tPmNla3Nbal0uY2VraWQgPT0gcmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJCQkJewor CQkJCQkJY2VrID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJ CX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7CisJCQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4 dCgicHJvdG9jb2wgZXJyb3I6IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdp dGggZW5jcnlwdGVkIGNvbHVtbiB3YXMgbm90IHNlbnQgYnkgdGhlIHNlcnZlciIpOworCQkJ CQlnb3RvIGZhaWw7CisJCQkJfQorCisJCQkJdmFsID0gKGNoYXIgKikgZGVjcnlwdF92YWx1 ZShyZXMsIGNlaywgcmVzLT5hdHREZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCSAoY29u c3QgdW5zaWduZWQgY2hhciAqKSBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuLCBlcnJtc2dwKTsK KwkJCQlpZiAodmFsID09IE5VTEwpCisJCQkJCWdvdG8gZmFpbDsKKyNlbHNlCisJCQkJKmVy cm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVk IGJ5IHRoaXMgYnVpbGQiKTsKIAkJCQlnb3RvIGZhaWw7CisjZW5kaWYKKwkJCX0KKwkJCWVs c2UKKwkJCXsKKwkJCQl2YWwgPSAoY2hhciAqKSBwcVJlc3VsdEFsbG9jKHJlcywgY2xlbiAr IDEsIGlzYmluYXJ5KTsKKwkJCQlpZiAodmFsID09IE5VTEwpCisJCQkJCWdvdG8gZmFpbDsK IAotCQkJLyogY29weSBhbmQgemVyby10ZXJtaW5hdGUgdGhlIGRhdGEgKGV2ZW4gaWYgaXQn cyBiaW5hcnkpICovCi0JCQltZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuKTsK LQkJCXZhbFtjbGVuXSA9ICdcMCc7CisJCQkJLyogY29weSBhbmQgemVyby10ZXJtaW5hdGUg dGhlIGRhdGEgKGV2ZW4gaWYgaXQncyBiaW5hcnkpICovCisJCQkJbWVtY3B5KHZhbCwgY29s dW1uc1tpXS52YWx1ZSwgY2xlbik7CisJCQkJdmFsW2NsZW5dID0gJ1wwJzsKKwkJCX0KIAog CQkJdHVwW2ldLmxlbiA9IGNsZW47CiAJCQl0dXBbaV0udmFsdWUgPSB2YWw7CkBAIC0xNTAw LDYgKzE5NTUsOCBAQCBQUXNlbmRRdWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4sCiAJCQkJICBj b25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCQkgIGludCByZXN1bHRGb3JtYXQpCiB7CisJ UEdyZXN1bHQgICAqcGFyYW1EZXNjID0gTlVMTDsKKwogCWlmICghUFFzZW5kUXVlcnlTdGFy dChjb25uLCB0cnVlKSkKIAkJcmV0dXJuIDA7CiAKQEAgLTE1MTYsNiArMTk3MywzNyBAQCBQ UXNlbmRRdWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4sCiAJCXJldHVybiAwOwogCX0KIAorCWlm IChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCXsKKwkJUEdyZXN1bHQgICAq cmVzOworCQlib29sCQllcnJvcjsKKworCQlpZiAoY29ubi0+cGlwZWxpbmVTdGF0dXMgIT0g UFFfUElQRUxJTkVfT0ZGKQorCQl7CisJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25u LCAic3luY2hyb25vdXMgY29tbWFuZCBleGVjdXRpb24gZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBwaXBlbGluZSBtb2RlIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWlmICgh UFFzZW5kUHJlcGFyZShjb25uLCAiIiwgY29tbWFuZCwgblBhcmFtcywgcGFyYW1UeXBlcykp CisJCQlyZXR1cm4gMDsKKwkJZXJyb3IgPSBmYWxzZTsKKwkJd2hpbGUgKChyZXMgPSBQUWdl dFJlc3VsdChjb25uKSkgIT0gTlVMTCkKKwkJeworCQkJaWYgKFBRcmVzdWx0U3RhdHVzKHJl cykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJCQllcnJvciA9IHRydWU7CisJCQlQUWNsZWFy KHJlcyk7CisJCX0KKwkJaWYgKGVycm9yKQorCQkJcmV0dXJuIDA7CisKKwkJcGFyYW1EZXNj ID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwkJaWYgKFBRcmVzdWx0U3RhdHVz KHBhcmFtRGVzYykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJCXJldHVybiAwOworCisJCWNv bW1hbmQgPSBOVUxMOworCQlwYXJhbVR5cGVzID0gTlVMTDsKKwl9CisKIAlyZXR1cm4gUFFz ZW5kUXVlcnlHdXRzKGNvbm4sCiAJCQkJCQkgICBjb21tYW5kLAogCQkJCQkJICAgIiIsCS8q IHVzZSB1bm5hbWVkIHN0YXRlbWVudCAqLwpAQCAtMTUyNCw3ICsyMDEyLDggQEAgUFFzZW5k UXVlcnlQYXJhbXMoUEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMsCiAJCQkJ CQkgICBwYXJhbUxlbmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJCQkgICBy ZXN1bHRGb3JtYXQpOworCQkJCQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgcGFyYW1E ZXNjKTsKIH0KIAogLyoKQEAgLTE2MzksNiArMjEyOCwyNCBAQCBQUXNlbmRRdWVyeVByZXBh cmVkKFBHY29ubiAqY29ubiwKIAkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJ CWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQorewor CXJldHVybiBQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkKGNvbm4sIHN0bXROYW1lLCBu UGFyYW1zLCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIHJlc3Vs dEZvcm1hdCwgTlVMTCk7Cit9CisKKy8qCisgKiBQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3Jp YmVkCisgKgkJTGlrZSBQUXNlbmRRdWVyeVByZXBhcmVkLCBidXQgd2l0aCBhZGRpdGlvbmFs IGFyZ3VtZW50IHRvIHBhc3MKKyAqCQlwYXJhbWV0ZXIgZGVzY3JpcHRpb25zLCBmb3IgY29s dW1uIGVuY3J5cHRpb24uCisgKi8KK2ludAorUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJl ZChQR2Nvbm4gKmNvbm4sCisJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJ CSBpbnQgblBhcmFtcywKKwkJCQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVz LAorCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkgY29uc3QgaW50 ICpwYXJhbUZvcm1hdHMsCisJCQkJCQkJIGludCByZXN1bHRGb3JtYXQsCisJCQkJCQkJIFBH cmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaWYgKCFQUXNlbmRRdWVyeVN0YXJ0KGNvbm4sIHRy dWUpKQogCQlyZXR1cm4gMDsKQEAgLTE2NjQsNyArMjE3MSw4IEBAIFBRc2VuZFF1ZXJ5UHJl cGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMsCiAJCQkJCQkgICBw YXJhbUxlbmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJCQkgICByZXN1bHRG b3JtYXQpOworCQkJCQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgcGFyYW1EZXNjKTsK IH0KIAogLyoKQEAgLTE3NjIsNyArMjI3MCw4IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4g KmNvbm4sCiAJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAogCQkJCWNvbnN0 IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAotCQkJ CWludCByZXN1bHRGb3JtYXQpCisJCQkJaW50IHJlc3VsdEZvcm1hdCwKKwkJCQlQR3Jlc3Vs dCAqcGFyYW1EZXNjKQogewogCWludAkJCWk7CiAJUEdjbWRRdWV1ZUVudHJ5ICplbnRyeTsK QEAgLTE4MTAsMTMgKzIzMTksNDcgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwK IAkJZ290byBzZW5kRmFpbGVkOwogCiAJLyogU2VuZCBwYXJhbWV0ZXIgZm9ybWF0cyAqLwot CWlmIChuUGFyYW1zID4gMCAmJiBwYXJhbUZvcm1hdHMpCisJaWYgKG5QYXJhbXMgPiAwICYm IChwYXJhbUZvcm1hdHMgfHwgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3Mp KSkKIAl7CiAJCWlmIChwcVB1dEludChuUGFyYW1zLCAyLCBjb25uKSA8IDApCiAJCQlnb3Rv IHNlbmRGYWlsZWQ7CisKIAkJZm9yIChpID0gMDsgaSA8IG5QYXJhbXM7IGkrKykKIAkJewot CQkJaWYgKHBxUHV0SW50KHBhcmFtRm9ybWF0c1tpXSwgMiwgY29ubikgPCAwKQorCQkJaW50 CQkJZm9ybWF0ID0gcGFyYW1Gb3JtYXRzID8gcGFyYW1Gb3JtYXRzW2ldIDogMDsKKworCQkJ LyogQ2hlY2sgZm9yY2UgY29sdW1uIGVuY3J5cHRpb24gKi8KKwkJCWlmIChmb3JtYXQgJiAw eDEwKQorCQkJeworCQkJCWlmICghKHBhcmFtRGVzYyAmJgorCQkJCQkgIHBhcmFtRGVzYy0+ cGFyYW1EZXNjcyAmJgorCQkJCQkgIHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWtpZCkp CisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAicGFyYW1ldGVy IHdpdGggZm9yY2VkIGVuY3J5cHRpb24gaXMgbm90IHRvIGJlIGVuY3J5cHRlZCIpOworCQkJ CQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJfQorCQkJfQorCQkJZm9ybWF0ICY9IH4weDEwOwor CisJCQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjcykKKwkJCXsKKwkJ CQlQR3Jlc1BhcmFtRGVzYyAqcGQgPSAmcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldOworCisJ CQkJaWYgKHBkLT5jZWtpZCkKKwkJCQl7CisJCQkJCWlmIChmb3JtYXQgIT0gMCkKKwkJCQkJ eworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImZvcm1hdCBtdXN0IGJl IHRleHQgZm9yIGVuY3J5cHRlZCBwYXJhbWV0ZXIiKTsKKwkJCQkJCWdvdG8gc2VuZEZhaWxl ZDsKKwkJCQkJfQorCQkJCQkvKiBTZW5kIGVuY3J5cHRlZCB2YWx1ZSBpbiBiaW5hcnkgKi8K KwkJCQkJZm9ybWF0ID0gMTsKKwkJCQkJLyogQW5kIG1hcmsgaXQgYXMgZW5jcnlwdGVkICov CisJCQkJCWZvcm1hdCB8PSAweDEwOworCQkJCX0KKwkJCX0KKworCQkJaWYgKHBxUHV0SW50 KGZvcm1hdCwgMiwgY29ubikgPCAwKQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKIAkJfQogCX0K QEAgLTE4MzUsOCArMjM3OCw5IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJ CWlmIChwYXJhbVZhbHVlcyAmJiBwYXJhbVZhbHVlc1tpXSkKIAkJewogCQkJaW50CQkJbmJ5 dGVzOworCQkJY29uc3QgY2hhciAqcGFyYW1WYWx1ZTsKIAotCQkJaWYgKHBhcmFtRm9ybWF0 cyAmJiBwYXJhbUZvcm1hdHNbaV0gIT0gMCkKKwkJCWlmIChwYXJhbUZvcm1hdHMgJiYgKHBh cmFtRm9ybWF0c1tpXSAmIDB4MDEpICE9IDApCiAJCQl7CiAJCQkJLyogYmluYXJ5IHBhcmFt ZXRlciAqLwogCQkJCWlmIChwYXJhbUxlbmd0aHMpCkBAIC0xODUyLDkgKzIzOTYsNTMgQEAg UFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQkvKiB0ZXh0IHBhcmFtZXRlciwg ZG8gbm90IHVzZSBwYXJhbUxlbmd0aHMgKi8KIAkJCQluYnl0ZXMgPSBzdHJsZW4ocGFyYW1W YWx1ZXNbaV0pOwogCQkJfQorCisJCQlwYXJhbVZhbHVlID0gcGFyYW1WYWx1ZXNbaV07CisK KwkJCWlmIChwYXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzICYmIHBhcmFtRGVz Yy0+cGFyYW1EZXNjc1tpXS5jZWtpZCkKKwkJCXsKKwkJCQkvKiBlbmNyeXB0ZWQgY29sdW1u ICovCisjaWZkZWYgVVNFX1NTTAorCQkJCWJvb2wJCWVuY19kZXQgPSAocGFyYW1EZXNjLT5w YXJhbURlc2NzW2ldLmZsYWdzICYgMHgwMSkgIT0gMDsKKwkJCQlQR0NFSwkgICAqY2VrID0g TlVMTDsKKwkJCQljaGFyCSAgICplbmNfcGFyYW1WYWx1ZTsKKwkJCQlpbnQJCQllbmNfbmJ5 dGVzID0gbmJ5dGVzOworCisJCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2Vrczsg aisrKQorCQkJCXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0gcGFyYW1EZXNj LT5wYXJhbURlc2NzW2ldLmNla2lkKQorCQkJCQl7CisJCQkJCQljZWsgPSAmY29ubi0+Y2Vr c1tqXTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJCWlmICghY2VrKQorCQkJ CXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInByb3RvY29sIGVycm9y OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgYXNzb2NpYXRlZCB3aXRoIGVuY3J5cHRlZCBwYXJh bWV0ZXIgd2FzIG5vdCBzZW50IGJ5IHRoZSBzZXJ2ZXIiKTsKKwkJCQkJZ290byBzZW5kRmFp bGVkOworCQkJCX0KKworCQkJCWVuY19wYXJhbVZhbHVlID0gKGNoYXIgKikgZW5jcnlwdF92 YWx1ZShjb25uLCBjZWssIHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWthbGcsCisJCQkJ CQkJCQkJCQkJCShjb25zdCB1bnNpZ25lZCBjaGFyICopIHBhcmFtVmFsdWUsICZlbmNfbmJ5 dGVzLCBlbmNfZGV0KTsKKwkJCQlpZiAoIWVuY19wYXJhbVZhbHVlKQorCQkJCQlnb3RvIHNl bmRGYWlsZWQ7CisKKwkJCQlpZiAocHFQdXRJbnQoZW5jX25ieXRlcywgNCwgY29ubikgPCAw IHx8CisJCQkJCXBxUHV0bmNoYXIoZW5jX3BhcmFtVmFsdWUsIGVuY19uYnl0ZXMsIGNvbm4p IDwgMCkKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCisJCQkJZnJlZShlbmNfcGFyYW1WYWx1 ZSk7CisjZWxzZQorCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb2x1bW4g ZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwkJCQlnb3RvIHNl bmRGYWlsZWQ7CisjZW5kaWYKKwkJCX0KKwkJCWVsc2UKKwkJCXsKIAkJCWlmIChwcVB1dElu dChuYnl0ZXMsIDQsIGNvbm4pIDwgMCB8fAotCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZXNb aV0sIG5ieXRlcywgY29ubikgPCAwKQorCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZSwgbmJ5 dGVzLCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5kRmFpbGVkOworCQkJfQogCQl9CiAJCWVs c2UKIAkJewpAQCAtMjI5MCwxMiArMjg3OCwzMSBAQCBQUWV4ZWNQcmVwYXJlZChQR2Nvbm4g KmNvbm4sCiAJCQkgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCSAgIGNvbnN0IGlu dCAqcGFyYW1Gb3JtYXRzLAogCQkJICAgaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4g UFFleGVjUHJlcGFyZWREZXNjcmliZWQoY29ubiwgc3RtdE5hbWUsIG5QYXJhbXMsIHBhcmFt VmFsdWVzLCBwYXJhbUxlbmd0aHMsIHBhcmFtRm9ybWF0cywgcmVzdWx0Rm9ybWF0LCBOVUxM KTsKK30KKworLyoKKyAqIFBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkCisgKgkJTGlrZSBQUWV4 ZWNQcmVwYXJlZCwgYnV0IHdpdGggYWRkaXRpb25hbCBhcmd1bWVudCB0byBwYXNzIHBhcmFt ZXRlcgorICoJCWRlc2NyaXB0aW9ucywgZm9yIGNvbHVtbiBlbmNyeXB0aW9uLgorICovCitQ R3Jlc3VsdCAqCitQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZChQR2Nvbm4gKmNvbm4sCisJCQkJ CQljb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCWludCBuUGFyYW1zLAorCQkJCQkJY29u c3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkJY29uc3QgaW50ICpwYXJhbUxl bmd0aHMsCisJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCWludCByZXN1 bHRGb3JtYXQsCisJCQkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKQogewogCWlmICghUFFleGVj U3RhcnQoY29ubikpCiAJCXJldHVybiBOVUxMOwotCWlmICghUFFzZW5kUXVlcnlQcmVwYXJl ZChjb25uLCBzdG10TmFtZSwKLQkJCQkJCQkgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFt TGVuZ3RocywKLQkJCQkJCQkgcGFyYW1Gb3JtYXRzLCByZXN1bHRGb3JtYXQpKQorCWlmICgh UFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZChjb25uLCBzdG10TmFtZSwKKwkJCQkJCQkJ CSAgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywKKwkJCQkJCQkJCSAgcGFy YW1Gb3JtYXRzLAorCQkJCQkJCQkJICByZXN1bHRGb3JtYXQsIHBhcmFtRGVzYykpCiAJCXJl dHVybiBOVUxMOwogCXJldHVybiBQUWV4ZWNGaW5pc2goY29ubik7CiB9CkBAIC0zNTM5LDcg KzQxNDYsMTcgQEAgUFFmZm9ybWF0KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9u dW0pCiAJaWYgKCFjaGVja19maWVsZF9udW1iZXIocmVzLCBmaWVsZF9udW0pKQogCQlyZXR1 cm4gMDsKIAlpZiAocmVzLT5hdHREZXNjcykKKwl7CisJCS8qCisJCSAqIEFuIGVuY3J5cHRl ZCBjb2x1bW4gaXMgYWx3YXlzIHByZXNlbnRlZCB0byB0aGUgYXBwbGljYXRpb24gaW4gdGV4 dAorCQkgKiBmb3JtYXQuICBUaGUgLmZvcm1hdCBmaWVsZCBhcHBsaWVzIHRvIHRoZSBjaXBo ZXJ0ZXh0LCB3aGljaCBtaWdodAorCQkgKiBiZSBpbiBlaXRoZXIgZm9ybWF0LCBidXQgdGhl IHBsYWludGV4dCBpbnNpZGUgaXMgYWx3YXlzIGluIHRleHQKKwkJICogZm9ybWF0LgorCQkg Ki8KKwkJaWYgKHJlcy0+YXR0RGVzY3NbZmllbGRfbnVtXS5jZWtpZCAhPSAwKQorCQkJcmV0 dXJuIDA7CiAJCXJldHVybiByZXMtPmF0dERlc2NzW2ZpZWxkX251bV0uZm9ybWF0OworCX0K IAllbHNlCiAJCXJldHVybiAwOwogfQpAQCAtMzU3Nyw2ICs0MTk0LDE3IEBAIFBRZm1vZChj b25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKQogCQlyZXR1cm4gMDsKIH0KIAor aW50CitQUWZpc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVt KQoreworCWlmICghY2hlY2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKKwkJcmV0 dXJuIGZhbHNlOworCWlmIChyZXMtPmF0dERlc2NzKQorCQlyZXR1cm4gKHJlcy0+YXR0RGVz Y3NbZmllbGRfbnVtXS5jZWtpZCAhPSAwKTsKKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30K KwogY2hhciAqCiBQUWNtZFN0YXR1cyhQR3Jlc3VsdCAqcmVzKQogewpAQCAtMzc2Miw2ICs0 MzkwLDE3IEBAIFBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9u dW0pCiAJCXJldHVybiBJbnZhbGlkT2lkOwogfQogCitpbnQKK1BRcGFyYW1pc2VuY3J5cHRl ZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKQoreworCWlmICghY2hlY2tf cGFyYW1fbnVtYmVyKHJlcywgcGFyYW1fbnVtKSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChy ZXMtPnBhcmFtRGVzY3MpCisJCXJldHVybiAocmVzLT5wYXJhbURlc2NzW3BhcmFtX251bV0u Y2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIAogLyogUFFzZXRu b25ibG9ja2luZzoKICAqCXNldHMgdGhlIFBHY29ubidzIGRhdGFiYXNlIGNvbm5lY3Rpb24g bm9uLWJsb2NraW5nIGlmIHRoZSBhcmcgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1w cm90b2NvbDMuYwppbmRleCA4YWI2YTg4NDE2Li42MTdlNjQxY2Y2IDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1wcm90b2NvbDMuYwpAQCAtNDMsNiArNDMsOCBAQCBzdGF0aWMgaW50CWdl dFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGlj IGludAlnZXRQYXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgp Owogc3RhdGljIGludAlnZXRBbm90aGVyVHVwbGUoUEdjb25uICpjb25uLCBpbnQgbXNnTGVu Z3RoKTsKIHN0YXRpYyBpbnQJZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubik7Citz dGF0aWMgaW50CWdldENvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4pOworc3RhdGljIGlu dAlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdl dE5vdGlmeShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRDb3B5U3RhcnQoUEdjb25u ICpjb25uLCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50CWdldFJlYWR5 Rm9yUXVlcnkoUEdjb25uICpjb25uKTsKQEAgLTI5Nyw2ICsyOTksMTIgQEAgcHFQYXJzZUlu cHV0MyhQR2Nvbm4gKmNvbm4pCiAJCQkJCWlmIChwcUdldEludCgmKGNvbm4tPmJlX2tleSks IDQsIGNvbm4pKQogCQkJCQkJcmV0dXJuOwogCQkJCQlicmVhazsKKwkJCQljYXNlICd5JzoJ CS8qIENvbHVtbiBNYXN0ZXIgS2V5ICovCisJCQkJCWdldENvbHVtbk1hc3RlcktleShjb25u KTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnWSc6CQkvKiBDb2x1bW4gRW5jcnlwdGlvbiBL ZXkgKi8KKwkJCQkJZ2V0Q29sdW1uRW5jcnlwdGlvbktleShjb25uKTsKKwkJCQkJYnJlYWs7 CiAJCQkJY2FzZSAnVCc6CQkvKiBSb3cgRGVzY3JpcHRpb24gKi8KIAkJCQkJaWYgKGNvbm4t PmVycm9yX3Jlc3VsdCB8fAogCQkJCQkJKGNvbm4tPnJlc3VsdCAhPSBOVUxMICYmCkBAIC0z NTgsOCArMzY2LDIxIEBAIHBxUGFyc2VJbnB1dDMoUEdjb25uICpjb25uKQogCQkJCQl9CiAJ CQkJCWJyZWFrOwogCQkJCWNhc2UgJ3QnOgkJLyogUGFyYW1ldGVyIERlc2NyaXB0aW9uICov Ci0JCQkJCWlmIChnZXRQYXJhbURlc2NyaXB0aW9ucyhjb25uLCBtc2dMZW5ndGgpKQotCQkJ CQkJcmV0dXJuOworCQkJCQlpZiAoY29ubi0+ZXJyb3JfcmVzdWx0IHx8CisJCQkJCQkoY29u bi0+cmVzdWx0ICE9IE5VTEwgJiYKKwkJCQkJCSBjb25uLT5yZXN1bHQtPnJlc3VsdFN0YXR1 cyA9PSBQR1JFU19GQVRBTF9FUlJPUikpCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBX ZSd2ZSBhbHJlYWR5IGNob2tlZCBmb3Igc29tZSByZWFzb24uICBKdXN0IGRpc2NhcmQKKwkJ CQkJCSAqIHRoZSBkYXRhIHRpbGwgd2UgZ2V0IHRvIHRoZSBlbmQgb2YgdGhlIHF1ZXJ5Lgor CQkJCQkJICovCisJCQkJCQljb25uLT5pbkN1cnNvciArPSBtc2dMZW5ndGg7CisJCQkJCX0K KwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlpZiAoZ2V0UGFyYW1EZXNjcmlwdGlvbnMoY29u biwgbXNnTGVuZ3RoKSkKKwkJCQkJCQlyZXR1cm47CisJCQkJCX0KIAkJCQkJYnJlYWs7CiAJ CQkJY2FzZSAnRCc6CQkvKiBEYXRhIFJvdyAqLwogCQkJCQlpZiAoY29ubi0+cmVzdWx0ICE9 IE5VTEwgJiYKQEAgLTU0Nyw2ICs1NjgsOSBAQCBnZXRSb3dEZXNjcmlwdGlvbnMoUEdjb25u ICpjb25uLCBpbnQgbXNnTGVuZ3RoKQogCQlpbnQJCQl0eXBsZW47CiAJCWludAkJCWF0dHR5 cG1vZDsKIAkJaW50CQkJZm9ybWF0OworCQlpbnQJCQljZWtpZDsKKwkJaW50CQkJY2VrYWxn OworCQlpbnQJCQlmbGFnczsKIAogCQlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBj b25uKSB8fAogCQkJcHFHZXRJbnQoJnRhYmxlaWQsIDQsIGNvbm4pIHx8CkBAIC01NjEsNiAr NTg1LDIzIEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5n dGgpCiAJCQlnb3RvIGFkdmFuY2VfYW5kX2Vycm9yOwogCQl9CiAKKwkJaWYgKGNvbm4tPmNv bHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCWlmIChwcUdldEludCgmY2VraWQs IDQsIGNvbm4pIHx8CisJCQkJcHFHZXRJbnQoJmNla2FsZywgNCwgY29ubikgfHwKKwkJCQlw cUdldEludCgmZmxhZ3MsIDIsIGNvbm4pKQorCQkJeworCQkJCWVycm1zZyA9IGxpYnBxX2dl dHRleHQoImluc3VmZmljaWVudCBkYXRhIGluIFwiVFwiIG1lc3NhZ2UiKTsKKwkJCQlnb3Rv IGFkdmFuY2VfYW5kX2Vycm9yOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJY2VraWQg PSAwOworCQkJY2VrYWxnID0gMDsKKwkJCWZsYWdzID0gMDsKKwkJfQorCiAJCS8qCiAJCSAq IFNpbmNlIHBxR2V0SW50IHRyZWF0cyAyLWJ5dGUgaW50ZWdlcnMgYXMgdW5zaWduZWQsIHdl IG5lZWQgdG8KIAkJICogY29lcmNlIHRoZXNlIHJlc3VsdHMgdG8gc2lnbmVkIGZvcm0uCkBA IC01ODIsNiArNjIzLDggQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50 IG1zZ0xlbmd0aCkKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBpZCA9IHR5cGlkOwogCQly ZXN1bHQtPmF0dERlc2NzW2ldLnR5cGxlbiA9IHR5cGxlbjsKIAkJcmVzdWx0LT5hdHREZXNj c1tpXS5hdHR0eXBtb2QgPSBhdHR0eXBtb2Q7CisJCXJlc3VsdC0+YXR0RGVzY3NbaV0uY2Vr aWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7CiAK IAkJaWYgKGZvcm1hdCAhPSAxKQogCQkJcmVzdWx0LT5iaW5hcnkgPSAwOwpAQCAtNjg1LDEw ICs3MjgsMzEgQEAgZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNn TGVuZ3RoKQogCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCiAJewogCQlpbnQJCQl0 eXBpZDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKKwkJaW50CQkJZmxhZ3M7 CiAKIAkJaWYgKHBxR2V0SW50KCZ0eXBpZCwgNCwgY29ubikpCiAJCQlnb3RvIG5vdF9lbm91 Z2hfZGF0YTsKKwkJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsK KwkJCWlmIChwcUdldEludCgmY2VraWQsIDQsIGNvbm4pKQorCQkJCWdvdG8gbm90X2Vub3Vn aF9kYXRhOworCQkJaWYgKHBxR2V0SW50KCZjZWthbGcsIDQsIGNvbm4pKQorCQkJCWdvdG8g bm90X2Vub3VnaF9kYXRhOworCQkJaWYgKHBxR2V0SW50KCZmbGFncywgMiwgY29ubikpCisJ CQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCX0KKwkJZWxzZQorCQl7CisJCQljZWtpZCA9 IDA7CisJCQljZWthbGcgPSAwOworCQkJZmxhZ3MgPSAwOworCQl9CiAJCXJlc3VsdC0+cGFy YW1EZXNjc1tpXS50eXBpZCA9IHR5cGlkOworCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0uY2Vr aWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmNla2FsZyA9IGNla2FsZzsK KwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmZsYWdzID0gZmxhZ3M7CiAJfQogCiAJLyogU3Vj Y2VzcyEgKi8KQEAgLTE0NjgsNiArMTUzMiw5MiBAQCBnZXRQYXJhbWV0ZXJTdGF0dXMoUEdj b25uICpjb25uKQogCXJldHVybiAwOwogfQogCisvKgorICogQXR0ZW1wdCB0byByZWFkIGEg Q29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ3knIG1lc3NhZ2UgdHlwZSBh bmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDogcmV0dXJu cyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1cm5zIEVP RiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVtbk1hc3Rl cktleShQR2Nvbm4gKmNvbm4pCit7CisJaW50CQkJa2V5aWQ7CisJY2hhcgkgICAqa2V5bmFt ZTsKKwljaGFyCSAgICprZXlyZWFsbTsKKwlpbnQJCQlyZXQ7CisKKwkvKiBHZXQgdGhlIGtl eSBJRCAqLworCWlmIChwcUdldEludCgma2V5aWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVy biBFT0Y7CisJLyogR2V0IHRoZSBrZXkgbmFtZSAqLworCWlmIChwcUdldHMoJmNvbm4tPndv cmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5bmFtZSA9IHN0cmR1 cChjb25uLT53b3JrQnVmZmVyLmRhdGEpOworCWlmICgha2V5bmFtZSkKKwkJcmV0dXJuIEVP RjsKKwkvKiBHZXQgdGhlIGtleSByZWFsbSAqLworCWlmIChwcUdldHMoJmNvbm4tPndvcmtC dWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5cmVhbG0gPSBzdHJkdXAo Y29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleXJlYWxtKQorCQlyZXR1cm4gRU9G OworCS8qIEFuZCBzYXZlIGl0ICovCisJcmV0ID0gcHFTYXZlQ29sdW1uTWFzdGVyS2V5KGNv bm4sIGtleWlkLCBrZXluYW1lLCBrZXlyZWFsbSk7CisJaWYgKHJldCAhPSAwKQorCQlwcVNh dmVFcnJvclJlc3VsdChjb25uKTsKKworCWZyZWUoa2V5bmFtZSk7CisJZnJlZShrZXlyZWFs bSk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogQXR0ZW1wdCB0byByZWFkIGEgQ29s dW1uRW5jcnlwdGlvbktleSBtZXNzYWdlLgorICogRW50cnk6ICdZJyBtZXNzYWdlIHR5cGUg YW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVlbiBjb25zdW1lZC4KKyAqIEV4aXQ6IHJldHVy bnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3VtZWQgbWVzc2FnZS4KKyAqCQkgcmV0dXJucyBF T0YgaWYgbm90IGVub3VnaCBkYXRhLgorICovCitzdGF0aWMgaW50CitnZXRDb2x1bW5FbmNy eXB0aW9uS2V5KFBHY29ubiAqY29ubikKK3sKKwlpbnQJCQlrZXlpZDsKKwlpbnQJCQljbWtp ZDsKKwlpbnQJCQljbWthbGc7CisJY2hhcgkgICAqYnVmOworCWludAkJCXZhbGxlbjsKKwlp bnQJCQlyZXQ7CisKKwkvKiBHZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdldEludCgma2V5 aWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBDTUsgSUQg Ki8KKwlpZiAocHFHZXRJbnQoJmNta2lkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9G OworCS8qIEdldCB0aGUgQ01LIGFsZ29yaXRobSAqLworCWlmIChwcUdldEludCgmY21rYWxn LCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IGRhdGEg bGVuICovCisJaWYgKHBxR2V0SW50KCZ2YWxsZW4sIDQsIGNvbm4pICE9IDApCisJCXJldHVy biBFT0Y7CisJLyogR2V0IHRoZSBrZXkgZGF0YSAqLworCWJ1ZiA9IG1hbGxvYyh2YWxsZW4p OworCWlmICghYnVmKQorCQlyZXR1cm4gRU9GOworCWlmIChwcUdldG5jaGFyKGJ1ZiwgdmFs bGVuLCBjb25uKSAhPSAwKQorCXsKKwkJZnJlZShidWYpOworCQlyZXR1cm4gRU9GOworCX0K KwkvKiBBbmQgc2F2ZSBpdCAqLworCXJldCA9IHBxU2F2ZUNvbHVtbkVuY3J5cHRpb25LZXko Y29ubiwga2V5aWQsIGNta2lkLCBjbWthbGcsICh1bnNpZ25lZCBjaGFyICopIGJ1ZiwgdmFs bGVuKTsKKwlpZiAocmV0ICE9IDApCisJCXBxU2F2ZUVycm9yUmVzdWx0KGNvbm4pOworCisJ ZnJlZShidWYpOworCisJcmV0dXJuIHJldDsKK30KIAogLyoKICAqIEF0dGVtcHQgdG8gcmVh ZCBhIE5vdGlmeSByZXNwb25zZSBtZXNzYWdlLgpAQCAtMjI4Niw2ICsyNDM2LDkgQEAgYnVp bGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpjb25uLCBjaGFyICpwYWNrZXQsCiAJ aWYgKGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsICYmIGNvbm4tPmNsaWVudF9lbmNv ZGluZ19pbml0aWFsWzBdKQogCQlBRERfU1RBUlRVUF9PUFRJT04oImNsaWVudF9lbmNvZGlu ZyIsIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsKTsKIAorCWlmIChjb25uLT5jb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlBRERfU1RBUlRVUF9PUFRJT04oIl9wcV8uY29s dW1uX2VuY3J5cHRpb24iLCAiMSIpOworCiAJLyogQWRkIGFueSBlbnZpcm9ubWVudC1kcml2 ZW4gR1VDIHNldHRpbmdzIG5lZWRlZCAqLwogCWZvciAobmV4dF9lbyA9IG9wdGlvbnM7IG5l eHRfZW8tPmVudk5hbWU7IG5leHRfZW8rKykKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2Uu YwppbmRleCBhYmFhYjZhMDczLi43Nzc5MWU4MzQ5IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRy YWNlLmMKQEAgLTQ1MCw3ICs0NTAsOCBAQCBwcVRyYWNlT3V0cHV0UyhGSUxFICpmLCBjb25z dCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAogLyogUGFyYW1ldGVyRGVzY3JpcHRp b24gKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0dChGSUxFICpmLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQorcHFUcmFjZU91dHB1dHQo RklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVz cywKKwkJCSAgIGJvb2wgY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKIHsKIAlpbnQJCQlu ZmllbGRzOwogCkBAIC00NTgsMTIgKzQ1OSwyMSBAQCBwcVRyYWNlT3V0cHV0dChGSUxFICpm LCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCW5m aWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAogCWZv ciAoaW50IGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQorCXsKIAkJcHFUcmFjZU91dHB1dElu dDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCWlmIChjb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwg Y3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBj dXJzb3IsIGZhbHNlKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJz b3IpOworCQl9CisJfQogfQogCiAvKiBSb3dEZXNjcmlwdGlvbiAqLwogc3RhdGljIHZvaWQK LXBxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vy c29yLCBib29sIHJlZ3Jlc3MpCitwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzLAorCQkJICAgYm9vbCBjb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQogewogCWludAkJCW5maWVsZHM7CiAKQEAgLTQ3OSw2 ICs0ODksMTEgQEAgcHFUcmFjZU91dHB1dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2Fn ZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAkJcHFUcmFjZU91dHB1dEludDE2KGYs IG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBj dXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNv cik7CisJCWlmIChjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNl T3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VP dXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwkJfQogCX0KIH0KIApA QCAtNTE0LDYgKzUyOSwzMCBAQCBwcVRyYWNlT3V0cHV0VyhGSUxFICpmLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvciwgaW50IGxlbmd0aCkKIAkJcHFUcmFjZU91dHB1dElu dDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiB9CiAKKy8qIENvbHVtbk1hc3RlcktleSAqLwor c3RhdGljIHZvaWQKK3BxVHJhY2VPdXRwdXR5KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3Nh Z2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCit7CisJZnByaW50ZihmLCAiQ29sdW1u TWFzdGVyS2V5XHQiKTsKKwlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29y LCByZWdyZXNzKTsKKwlwcVRyYWNlT3V0cHV0U3RyaW5nKGYsIG1lc3NhZ2UsIGN1cnNvciwg ZmFsc2UpOworCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxz ZSk7Cit9CisKKy8qIENvbHVtbkVuY3J5cHRpb25LZXkgKi8KK3N0YXRpYyB2b2lkCitwcVRy YWNlT3V0cHV0WShGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwg Ym9vbCByZWdyZXNzKQoreworCWludAkJCWxlbjsKKworCWZwcmludGYoZiwgIkNvbHVtbkVu Y3J5cHRpb25LZXlcdCIpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJz b3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3Is IHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZh bHNlKTsKKwlsZW4gPSBwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCBm YWxzZSk7CisJcHFUcmFjZU91dHB1dE5jaGFyKGYsIGxlbiwgbWVzc2FnZSwgY3Vyc29yKTsK K30KKwogLyogUmVhZHlGb3JRdWVyeSAqLwogc3RhdGljIHZvaWQKIHBxVHJhY2VPdXRwdXRa KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yKQpAQCAtNjQ3LDEw ICs2ODYsMTIgQEAgcHFUcmFjZU91dHB1dE1lc3NhZ2UoUEdjb25uICpjb25uLCBjb25zdCBj aGFyICptZXNzYWdlLCBib29sIHRvU2VydmVyKQogCQkJCWZwcmludGYoY29ubi0+UGZkZWJ1 ZywgIlN5bmMiKTsgLyogbm8gbWVzc2FnZSBjb250ZW50ICovCiAJCQlicmVhazsKIAkJY2Fz ZSAndCc6CQkJCS8qIFBhcmFtZXRlciBEZXNjcmlwdGlvbiAqLwotCQkJcHFUcmFjZU91dHB1 dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlw cVRyYWNlT3V0cHV0dChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdy ZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CiAJCQli cmVhazsKIAkJY2FzZSAnVCc6CQkJCS8qIFJvdyBEZXNjcmlwdGlvbiAqLwotCQkJcHFUcmFj ZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7 CisJCQlwcVRyYWNlT3V0cHV0VChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29y LCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7 CiAJCQlicmVhazsKIAkJY2FzZSAndic6CQkJCS8qIE5lZ290aWF0ZSBQcm90b2NvbCBWZXJz aW9uICovCiAJCQlwcVRyYWNlT3V0cHV0dihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9n Q3Vyc29yKTsKQEAgLTY2NSw2ICs3MDYsMTIgQEAgcHFUcmFjZU91dHB1dE1lc3NhZ2UoUEdj b25uICpjb25uLCBjb25zdCBjaGFyICptZXNzYWdlLCBib29sIHRvU2VydmVyKQogCQkJZnBy aW50Zihjb25uLT5QZmRlYnVnLCAiVGVybWluYXRlIik7CiAJCQkvKiBObyBtZXNzYWdlIGNv bnRlbnQgKi8KIAkJCWJyZWFrOworCQljYXNlICd5JzoKKwkJCXBxVHJhY2VPdXRwdXR5KGNv bm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOworCQkJYnJlYWs7 CisJCWNhc2UgJ1knOgorCQkJcHFUcmFjZU91dHB1dFkoY29ubi0+UGZkZWJ1ZywgbWVzc2Fn ZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlicmVhazsKIAkJY2FzZSAnWic6CQkJCS8q IFJlYWR5IEZvciBRdWVyeSAqLwogCQkJcHFUcmFjZU91dHB1dFooY29ubi0+UGZkZWJ1Zywg bWVzc2FnZSwgJmxvZ0N1cnNvcik7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1m ZS5oCmluZGV4IGYzZDkyMjA0OTYuLmNmMzM5YTNlNTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtZmUuaApAQCAtMjY3LDYgKzI2Nyw4IEBAIHR5cGVkZWYgc3RydWN0IHBncmVzQXR0RGVz YwogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8KIAlpbnQJCQl0eXBsZW47CQkJLyog dHlwZSBzaXplICovCiAJaW50CQkJYXR0dHlwbW9kOwkJLyogdHlwZS1zcGVjaWZpYyBtb2Rp ZmllciBpbmZvICovCisJT2lkCQkJY2VraWQ7CisJaW50CQkJY2VrYWxnOwogfSBQR3Jlc0F0 dERlc2M7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTQzOCw2ICs0NDAsMTQgQEAgZXh0 ZXJuIFBHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJCWNv bnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0 cywKIAkJCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CitleHRlcm4gUEdyZXN1bHQgKlBRZXhl Y1ByZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKwkJCQkJCQkJCQkgY29uc3QgY2hh ciAqc3RtdE5hbWUsCisJCQkJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkJCQkJCSBjb25z dCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJCQkJIGNvbnN0IGludCAqcGFy YW1MZW5ndGhzLAorCQkJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJ CQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVz Yyk7CiAKIC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9yIGFzeW5jaHJvbm91 cyBxdWVyaWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9MSU1JVCA2NTUzNQpA QCAtNDYxLDYgKzQ3MSwxNCBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJlcGFyZWQoUEdj b25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQkJCQkJ Y29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRGb3JtYXQpOwor ZXh0ZXJuIGludAlQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwK KwkJCQkJCQkJCQkgY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQkJCQkJIGludCBuUGFy YW1zLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJ CQkJCQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkJCSBjb25zdCBpbnQg KnBhcmFtRm9ybWF0cywKKwkJCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJ CQkgUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiBleHRlcm4gaW50CVBRc2V0U2luZ2xlUm93TW9k ZShQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIFBHcmVzdWx0ICpQUWdldFJlc3VsdChQR2Nvbm4g KmNvbm4pOwogCkBAIC01MzEsNiArNTQ5LDcgQEAgZXh0ZXJuIGludAlQUWZmb3JtYXQoY29u c3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gT2lkCVBRZnR5cGUo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gaW50CVBRZnNp emUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gaW50CVBR Zm1vZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKK2V4dGVybiBpbnQJ UFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBl eHRlcm4gY2hhciAqUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcyk7CiBleHRlcm4gY2hhciAq UFFvaWRTdGF0dXMoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8qIG9sZCBhbmQgdWdseSAqLwog ZXh0ZXJuIE9pZAlQUW9pZFZhbHVlKGNvbnN0IFBHcmVzdWx0ICpyZXMpOwkvKiBuZXcgYW5k IGltcHJvdmVkICovCkBAIC01NDAsNiArNTU5LDcgQEAgZXh0ZXJuIGludAlQUWdldGxlbmd0 aChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxkX251bSk7CiBl eHRlcm4gaW50CVBRZ2V0aXNudWxsKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCB0dXBfbnVt LCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFucGFyYW1zKGNvbnN0IFBHcmVzdWx0 ICpyZXMpOwogZXh0ZXJuIE9pZAlQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBp bnQgcGFyYW1fbnVtKTsKK2V4dGVybiBpbnQJUFFwYXJhbWlzZW5jcnlwdGVkKGNvbnN0IFBH cmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW0pOwogCiAvKiBEZXNjcmliZSBwcmVwYXJlZCBz dGF0ZW1lbnRzIGFuZCBwb3J0YWxzICovCiBleHRlcm4gUEdyZXN1bHQgKlBRZGVzY3JpYmVQ cmVwYXJlZChQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnN0bXQpOwpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1pbnQuaAppbmRleCBkN2VjNWVkNDI5Li5jYmZhYTdmOTVmIDEwMDY0NAotLS0g YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAorKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9saWJwcS1pbnQuaApAQCAtMTEyLDYgKzExMiw5IEBAIHVuaW9uIHBncmVzdWx0 X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBncmVzUGFyYW1EZXNjCiB7CiAJT2lkCQkJdHlwaWQ7 CQkJLyogdHlwZSBpZCAqLworCU9pZAkJCWNla2lkOworCWludAkJCWNla2FsZzsKKwlpbnQJ CQlmbGFnczsKIH0gUEdyZXNQYXJhbURlc2M7CiAKIC8qCkBAIC0zNDMsNiArMzQ2LDI2IEBA IHR5cGVkZWYgc3RydWN0IHBnX2Nvbm5faG9zdAogCQkJCQkJCQkgKiBmb3VuZCBpbiBwYXNz d29yZCBmaWxlLiAqLwogfSBwZ19jb25uX2hvc3Q7CiAKKy8qCisgKiBDb2x1bW4gZW5jcnlw dGlvbiBzdXBwb3J0IGRhdGEKKyAqLworCisvKiBjb2x1bW4gbWFzdGVyIGtleSAqLwordHlw ZWRlZiBzdHJ1Y3QgcGdfY21rCit7CisJT2lkCQkJY21raWQ7CisJY2hhcgkgICAqY21rbmFt ZTsKKwljaGFyCSAgICpjbWtyZWFsbTsKK30gUEdDTUs7CisKKy8qIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY2VrCit7CisJT2lkCQkJY2VraWQ7CisJ dW5zaWduZWQgY2hhciAqY2VrZGF0YTsJCS8qIChkZWNyeXB0ZWQpICovCisJc2l6ZV90CQlj ZWtkYXRhbGVuOworfSBQR0NFSzsKKwogLyoKICAqIFBHY29ubiBzdG9yZXMgYWxsIHRoZSBz dGF0ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHNpbmdsZSBjb25uZWN0aW9uCiAgKiB0byBh IGJhY2tlbmQuCkBAIC0zOTYsNiArNDE5LDggQEAgc3RydWN0IHBnX2Nvbm4KIAljaGFyCSAg ICpzc2xfbWluX3Byb3RvY29sX3ZlcnNpb247CS8qIG1pbmltdW0gVExTIHByb3RvY29sIHZl cnNpb24gKi8KIAljaGFyCSAgICpzc2xfbWF4X3Byb3RvY29sX3ZlcnNpb247CS8qIG1heGlt dW0gVExTIHByb3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICp0YXJnZXRfc2Vzc2lvbl9h dHRyczsJLyogZGVzaXJlZCBzZXNzaW9uIHByb3BlcnRpZXMgKi8KKwljaGFyCSAgICpjbWts b29rdXA7CQkvKiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24gKi8KKwljaGFyCSAgICpjb2x1 bW5fZW5jcnlwdGlvbl9zZXR0aW5nOwkvKiBjb2x1bW5fZW5jcnlwdGlvbiBjb25uZWN0aW9u IHBhcmFtZXRlciAoMCBvciAxKSAqLwogCiAJLyogT3B0aW9uYWwgZmlsZSB0byB3cml0ZSB0 cmFjZSBpbmZvIHRvICovCiAJRklMRQkgICAqUGZkZWJ1ZzsKQEAgLTQ3Nyw2ICs1MDIsMTMg QEAgc3RydWN0IHBnX2Nvbm4KIAlQR1ZlcmJvc2l0eSB2ZXJib3NpdHk7CQkvKiBlcnJvci9u b3RpY2UgbWVzc2FnZSB2ZXJib3NpdHkgKi8KIAlQR0NvbnRleHRWaXNpYmlsaXR5IHNob3df Y29udGV4dDsJLyogd2hldGhlciB0byBzaG93IENPTlRFWFQgZmllbGQgKi8KIAlQR2xvYmpm dW5jcyAqbG9iamZ1bmNzOwkJLyogcHJpdmF0ZSBzdGF0ZSBmb3IgbGFyZ2Utb2JqZWN0IGFj Y2VzcyBmbnMgKi8KKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkOwkvKiBwYXJz ZWQgdmVyc2lvbiBvZiBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nICovCisKKwkvKiBDb2x1 bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEgKi8KKwlpbnQJCQluY21rczsKKwlQR0NNSwkg ICAqY21rczsKKwlpbnQJCQluY2VrczsKKwlQR0NFSwkgICAqY2VrczsKIAogCS8qIEJ1ZmZl ciBmb3IgZGF0YSByZWNlaXZlZCBmcm9tIGJhY2tlbmQgYW5kIG5vdCB5ZXQgcHJvY2Vzc2Vk ICovCiAJY2hhcgkgICAqaW5CdWZmZXI7CQkvKiBjdXJyZW50bHkgYWxsb2NhdGVkIGJ1ZmZl ciAqLwpAQCAtNjczLDYgKzcwNSwxMCBAQCBleHRlcm4gdm9pZCBwcVNhdmVNZXNzYWdlRmll bGQoUEdyZXN1bHQgKnJlcywgY2hhciBjb2RlLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnZh bHVlKTsKIGV4dGVybiB2b2lkIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqdmFsdWUpOworZXh0 ZXJuIGludAlwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQs IGNvbnN0IGNoYXIgKmtleW5hbWUsCisJCQkJCQkJCSAgY29uc3QgY2hhciAqa2V5cmVhbG0p OworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubiwg aW50IGtleWlkLCBpbnQgY21raWQsIGludCBjbWthbGcsCisJCQkJCQkJCQkgIGNvbnN0IHVu c2lnbmVkIGNoYXIgKnZhbHVlLCBpbnQgbGVuKTsKIGV4dGVybiBpbnQJcHFSb3dQcm9jZXNz b3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCk7CiBleHRlcm4gdm9pZCBw cUNvbW1hbmRRdWV1ZUFkdmFuY2UoUEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJUFFzZW5k UXVlcnlDb250aW51ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1ZXJ5KTsKZGlmZiAt LWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggNTczZmQ5YjZlYS4uYTZlNmIyYWRhOSAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKQEAgLTI5LDYgKzI5LDcgQEAgZW5kaWYKIAog aWYgc3NsLmZvdW5kKCkKICAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUtc2VjdXJlLWNv bW1vbi5jJykKKyAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUtZW5jcnlwdC1vcGVuc3Ns LmMnKQogICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1zZWN1cmUtb3BlbnNzbC5jJykK IGVuZGlmCiAKQEAgLTExNiw2ICsxMTcsNyBAQCB0ZXN0cyArPSB7CiAgICAgJ3Rlc3RzJzog WwogICAgICAgJ3QvMDAxX3VyaS5wbCcsCiAgICAgICAndC8wMDJfYXBpLnBsJywKKyAgICAg ICd0LzAwM19lbmNyeXB0LnBsJywKICAgICBdLAogICAgICdlbnYnOiB7J3dpdGhfc3NsJzog Z2V0X29wdGlvbignc3NsJyl9LAogICB9LApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbmxzLm1rIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCmluZGV4IDRkZjU0 NGVjZWYuLjBjMzZhYTVmMzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25s cy5taworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKQEAgLTEsNiArMSw2IEBA CiAjIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawogQ0FUQUxPR19OQU1FICAgICA9IGxp YnBxCi1HRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBmZS1j b25uZWN0LmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2JqLmMgZmUtbWlz Yy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21tb24uYyBmZS1z ZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4uLy4uL3BvcnQv dGhyZWFkLmMKK0dFVFRFWFRfRklMRVMgICAgPSBmZS1hdXRoLmMgZmUtYXV0aC1zY3JhbS5j IGZlLWNvbm5lY3QuYyBmZS1lbmNyeXB0LW9wZW5zc2wuYyBmZS1leGVjLmMgZmUtZ3NzYXBp LWNvbW1vbi5jIGZlLWxvYmouYyBmZS1taXNjLmMgZmUtcHJvdG9jb2wzLmMgZmUtc2VjdXJl LmMgZmUtc2VjdXJlLWNvbW1vbi5jIGZlLXNlY3VyZS1nc3NhcGkuYyBmZS1zZWN1cmUtb3Bl bnNzbC5jIHdpbjMyLmMgLi4vLi4vcG9ydC90aHJlYWQuYwogR0VUVEVYVF9UUklHR0VSUyA9 IGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yOjIgXAogICAgICAgICAgICAgICAgICAgIGxpYnBx X2FwcGVuZF9lcnJvcjoyIFwKICAgICAgICAgICAgICAgICAgICBsaWJwcV9nZXR0ZXh0IHBx SW50ZXJuYWxOb3RpY2U6MgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdC8w MDNfZW5jcnlwdC5wbCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDAzX2VuY3J5cHQucGwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTRhNzQ0MTAzNwotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDAzX2VuY3J5cHQucGwK QEAgLTAsMCArMSw3MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjMsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworcGxhbiBz a2lwX2FsbCA9PiAnT3BlblNTTCBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQnIGlmICRF TlZ7d2l0aF9zc2x9IG5lICdvcGVuc3NsJzsKKworIyB0ZXN0IGRhdGEgZnJvbSBodHRwczov L2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1j YmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNQorY29tbWFuZF9saWtlKFsgJ2xpYnBxX3Rlc3Rf ZW5jcnlwdCcgXSwKKwlxcns1LjEKK0MgPQorMWEgZjMgOGMgMmQgYzIgYjkgNmYgZmQgZDgg NjYgOTQgMDkgMjMgNDEgYmMgMDQKK2M4IDBlIGRmIGEzIDJkIGRmIDM5IGQ1IGVmIDAwIGMw IGI0IDY4IDgzIDQyIDc5CithMiBlNCA2YSAxYiA4MCA0OSBmNyA5MiBmNyA2YiBmZSA1NCBi OSAwMyBhOSBjOQorYTkgNGEgYzkgYjQgN2EgZDIgNjUgNWMgNWYgMTAgZjkgYWUgZjcgMTQg MjcgZTIKK2ZjIDZmIDliIDNmIDM5IDlhIDIyIDE0IDg5IGYxIDYzIDYyIGM3IDAzIDIzIDM2 CiswOSBkNCA1YSBjNiA5OCA2NCBlMyAzMiAxYyBmOCAyOSAzNSBhYyA0MCA5NiBjOAorNmUg MTMgMzMgMTQgYzUgNDAgMTkgZTggY2EgNzkgODAgZGYgYTQgYjkgY2YgMWIKKzM4IDRjIDQ4 IDZmIDNhIDU0IGM1IDEwIDc4IDE1IDhlIGU1IGQ3IDlkIGU1IDlmCitiZCAzNCBkOCA0OCBi MyBkNiA5NSA1MCBhNiA3NiA0NiAzNCA0NCAyNyBhZCBlNQorNGIgODggNTEgZmYgYjUgOTgg ZjcgZjggMDAgNzQgYjkgNDcgM2MgODIgZTIgZGIKKzY1IDJjIDNmIGEzIDZiIDBhIDdjIDVi IDMyIDE5IGZhIGIzIGEzIDBiIGMxIGM0Cis1LjIKK0MgPQorMWEgZjMgOGMgMmQgYzIgYjkg NmYgZmQgZDggNjYgOTQgMDkgMjMgNDEgYmMgMDQKK2VhIDY1IGRhIDZiIDU5IGU2IDFlIGRi IDQxIDliIGU2IDJkIDE5IDcxIDJhIGU1CitkMyAwMyBlZSBiNSAwMCA1MiBkMCBkZiBkNiA2 OSA3ZiA3NyAyMiA0YyA4ZSBkYgorMDAgMGQgMjcgOWIgZGMgMTQgYzEgMDcgMjYgNTQgYmQg MzAgOTQgNDIgMzAgYzYKKzU3IGJlIGQ0IGNhIDBjIDlmIDRhIDg0IDY2IGYyIDJiIDIyIDZk IDE3IDQ2IDIxCis0YiBmOCBjZiBjMiA0MCAwYSBkZCA5ZiA1MSAyNiBlNCA3OSA2NiAzZiBj OSAwYgorM2IgZWQgNzggN2EgMmYgMGYgZmMgYmYgMzkgMDQgYmUgMmEgNjQgMWQgNWMgMjEK KzA1IGJmIGU1IDkxIGJhIGUyIDNiIDFkIDc0IDQ5IGU1IDMyIGVlIGY2IDBhIDlhCitjOCBi YiA2YyA2YiAwMSBkMyA1ZCA0OSA3OCA3YiBjZCA1NyBlZiA0OCA0OSAyNworZjIgODAgYWQg YzkgMWEgYzAgYzQgZTcgOWMgN2IgMTEgZWYgYzYgMDAgNTQgZTMKKzg0IDkwIGFjIDBlIDU4 IDk0IDliIGZlIDUxIDg3IDVkIDczIDNmIDkzIGFjIDIwCis3NSAxNiA4MCAzOSBjYyBjNyAz MyBkNworNS4zCitDID0KKzFhIGYzIDhjIDJkIGMyIGI5IDZmIGZkIGQ4IDY2IDk0IDA5IDIz IDQxIGJjIDA0Cis4OSAzMSAyOSBiMCBmNCBlZSA5ZSBiMSA4ZCA3NSBlZCBhNiBmMiBhYSBh OSBmMworNjAgN2MgOTggYzQgYmEgMDQgNDQgZDMgNDEgNjIgMTcgMGQgODkgNjEgODggNGUK KzU4IGYyIDdkIDRhIDM1IGE1IGUzIGUzIDIzIDRhIGE5IDk0IDA0IGYzIDI3IGY1CitjMiBk NyA4ZSA5OCA2ZSA1NyA0OSA4NSA4YiA4OCBiYyBkZCBjMiBiYSAwNSAyMQorOGYgMTkgNTEg MTIgZDYgYWQgNDggZmEgM2IgMWUgODkgYWEgN2YgMjAgZDUgOTYKKzY4IDJmIDEwIGIzIDY0 IDhkIDNiIGIwIGM5IDgzIGMzIDE4IDVmIDU5IGUzIDZkCisyOCBmNiA0NyBjMSBjMSAzOSA4 OCBkZSA4ZSBhMCBkOCAyMSAxOSA4YyAxNSAwOQorNzcgZTIgOGMgYTcgNjggMDggMGIgYzcg OGMgMzUgZmEgZWQgNjkgZDggYzAgYjcKK2Q5IGY1IDA2IDIzIDIxIDk4IGE0IDg5IGExIGE2 IGFlIDAzIGEzIDE5IGZiIDMwCitkZCAxMyAxZCAwNSBhYiAzNCA2NyBkZCAwNSA2ZiA4ZSA4 OCAyYiBhZCA3MCA2MworN2YgMWUgOWEgNTQgMWQgOWMgMjMgZTcKKzUuNAorQyA9CisxYSBm MyA4YyAyZCBjMiBiOSA2ZiBmZCBkOCA2NiA5NCAwOSAyMyA0MSBiYyAwNAorNGEgZmYgYWEg YWQgYjcgOGMgMzEgYzUgZGEgNGIgMWIgNTkgMGQgMTAgZmYgYmQKKzNkIGQ4IGQ1IGQzIDAy IDQyIDM1IDI2IDkxIDJkIGEwIDM3IGVjIGJjIGM3IGJkCis4MiAyYyAzMCAxZCBkNiA3YyAz NyAzYiBjYyBiNSA4NCBhZCAzZSA5MiA3OSBjMgorZTYgZDEgMmEgMTMgNzQgYjcgN2YgMDcg NzUgNTMgZGYgODIgOTQgMTAgNDQgNmIKKzM2IGViIGQ5IDcwIDY2IDI5IDZhIGU2IDQyIDdl IGE3IDVjIDJlIDA4IDQ2IGExCisxYSAwOSBjYyBmNSAzNyAwZCBjOCAwYiBmZSBjYiBhZCAy OCBjNyAzZiAwOSBiMworYTMgYjcgNWUgNjYgMmEgMjUgOTQgNDEgMGEgZTQgOTYgYjIgZTIg ZTYgNjAgOWUKKzMxIGU2IGUwIDJjIGM4IDM3IGYwIDUzIGQyIDFmIDM3IGZmIDRmIDUxIDk1 IDBiCitiZSAyNiAzOCBkMCA5ZCBkNyBhNCA5MyAwOSAzMCA4MCA2ZCAwNyAwMyBiMSBmNgor NGQgZDMgYjQgYzAgODggYTcgZjQgNWMgMjEgNjggMzkgNjQgNWIgMjAgMTIgYmYKKzJlIDYy IDY5IGE4IGM1IDZhIDgxIDZkIGJjIDFiIDI2IDc3IDYxIDk1IDViIGM1Cit9LAorCSdBRUFE X0FFU18qX0NCQ19ITUFDX1NIQV8qIHRlc3QgY2FzZXMnKTsKKworZG9uZV90ZXN0aW5nKCk7 CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKaW5kZXggNmJhNzhhZGI2Ny4u MTg0NjU5NGVjNSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0 aWdub3JlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQpAQCAt MSwyICsxLDMgQEAKKy9saWJwcV90ZXN0X2VuY3J5cHQKIC9saWJwcV90ZXN0Y2xpZW50CiAv bGlicHFfdXJpX3JlZ3Jlc3MKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rl c3QvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlCmluZGV4 IDc1YWMwOGY5NDMuLmIxZWJhYjkwZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL3Rlc3QvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtl ZmlsZQpAQCAtMTUsMTAgKzE1LDE3IEBAIG92ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChsaWJw cV9zcmNkaXIpICQoQ1BQRkxBR1MpCiBMREZMQUdTX0lOVEVSTkFMICs9ICQobGlicHFfcGdw b3J0KQogCiBQUk9HUyA9IGxpYnBxX3Rlc3RjbGllbnQgbGlicHFfdXJpX3JlZ3Jlc3MKK2lm ZXEgKCQod2l0aF9zc2wpLG9wZW5zc2wpCitQUk9HUyArPSBsaWJwcV90ZXN0X2VuY3J5cHQK K2VuZGlmCisKIAogYWxsOiAkKFBST0dTKQogCiAkKFBST0dTKTogJChXSU4zMlJFUykKIAor bGlicHFfdGVzdF9lbmNyeXB0OiAuLi9mZS1lbmNyeXB0LW9wZW5zc2wuYworCSQoQ0MpICQo Q1BQRkxBR1MpIC1EVEVTVF9FTkNSWVBUICQoQ0ZMQUdTKSAkXiAkKExERkxBR1MpICQoTERG TEFHU19FWCkgJChMSUJTKSAtbyAkQCQoWCkKKwogY2xlYW4gZGlzdGNsZWFuIG1haW50YWlu ZXItY2xlYW46CiAJcm0gLWYgJChQUk9HUykgKi5vCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVz dC9tZXNvbi5idWlsZAppbmRleCBiMmE0YjA2ZmQyLi44N2QyODA4YjUyIDEwMDY0NAotLS0g YS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQKQEAgLTM2LDMgKzM2LDI2IEBAIGV4ZWN1 dGFibGUoJ2xpYnBxX3Rlc3RjbGllbnQnLAogICAgICdpbnN0YWxsJzogZmFsc2UsCiAgIH0K ICkKKworCitsaWJwcV90ZXN0X2VuY3J5cHRfc291cmNlcyA9IGZpbGVzKAorICAnLi4vZmUt ZW5jcnlwdC1vcGVuc3NsLmMnLAorKQorCitpZiBob3N0X3N5c3RlbSA9PSAnd2luZG93cycK KyAgbGlicHFfdGVzdF9lbmNyeXB0X3NvdXJjZXMgKz0gcmNfYmluX2dlbi5wcm9jZXNzKHdp bjMydmVyX3JjLCBleHRyYV9hcmdzOiBbCisgICAgJy0tTkFNRScsICdsaWJwcV90ZXN0X2Vu Y3J5cHQnLAorICAgICctLUZJTEVERVNDJywgJ2xpYnBxIHRlc3QgcHJvZ3JhbScsXSkKK2Vu ZGlmCisKK2lmIHNzbC5mb3VuZCgpCisgIGV4ZWN1dGFibGUoJ2xpYnBxX3Rlc3RfZW5jcnlw dCcsCisgICAgbGlicHFfdGVzdF9lbmNyeXB0X3NvdXJjZXMsCisgICAgaW5jbHVkZV9kaXJl Y3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLi4vLi4vLi4vcG9ydCcpLAorICAgIGRl cGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGxpYnBxLCBzc2xdLAorICAgIGNfYXJnczog WyctRFRFU1RfRU5DUllQVCddLAorICAgIGt3YXJnczogZGVmYXVsdF9iaW5fYXJncyArIHsK KyAgICAgICdpbnN0YWxsJzogZmFsc2UsCisgICAgfQorICApCitlbmRpZgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMvdGVzdC9NYWtlZmlsZQppbmRleCBkYmQzMTky ODc0Li5jOGJhMTcwNTAzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9NYWtlZmlsZQorKysgYi9z cmMvdGVzdC9NYWtlZmlsZQpAQCAtMjQsNyArMjQsNyBAQCBpZmVxICgkKHdpdGhfbGRhcCks eWVzKQogU1VCRElSUyArPSBsZGFwCiBlbmRpZgogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNz bCkKLVNVQkRJUlMgKz0gc3NsCitTVUJESVJTICs9IGNvbHVtbl9lbmNyeXB0aW9uIHNzbAog ZW5kaWYKIAogIyBUZXN0IHN1aXRlcyB0aGF0IGFyZSBub3Qgc2FmZSBieSBkZWZhdWx0IGJ1 dCBjYW4gYmUgcnVuIGlmIHNlbGVjdGVkCkBAIC0zNiw3ICszNiw3IEBAIGV4cG9ydCBQR19U RVNUX0VYVFJBCiAjIGNsZWFuIiBldGMgdG8gcmVjdXJzZSBpbnRvIHRoZW0uICAoV2UgbXVz dCBmaWx0ZXIgb3V0IHRob3NlIHRoYXQgd2UKICMgaGF2ZSBjb25kaXRpb25hbGx5IGluY2x1 ZGVkIGludG8gU1VCRElSUyBhYm92ZSwgZWxzZSB0aGVyZSB3aWxsIGJlCiAjIG1ha2UgY29u ZnVzaW9uLikKLUFMV0FZU19TVUJESVJTID0gJChmaWx0ZXItb3V0ICQoU1VCRElSUyksZXhh bXBsZXMga2VyYmVyb3MgaWN1IGxkYXAgc3NsKQorQUxXQVlTX1NVQkRJUlMgPSAkKGZpbHRl ci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBzc2wgY29sdW1u X2VuY3J5cHRpb24pCiAKICMgV2Ugd2FudCB0byByZWN1cnNlIHRvIGFsbCBzdWJkaXJzIGZv ciBhbGwgc3RhbmRhcmQgdGFyZ2V0cywgZXhjZXB0IHRoYXQKICMgaW5zdGFsbGNoZWNrIGFu ZCBpbnN0YWxsIHNob3VsZCBub3QgcmVjdXJzZSBpbnRvIHRoZSBzdWJkaXJlY3RvcnkgIm1v ZHVsZXMiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGln bm9yZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDU2ZGJmNjlkMgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUKQEAgLTAsMCAr MSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2VuZXJhdGVkIGJ5IHRlc3Qgc3VpdGUKKy90bXBf Y2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmls ZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ1ZWFkODc0ZTUKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQpAQCAtMCwwICsxLDMxIEBA CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZSBmb3Igc3JjL3Rlc3QvY29s dW1uX2VuY3J5cHRpb24KKyMKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisjCisjIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCisjCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorCitzdWJkaXIgPSBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbgor dG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9N YWtlZmlsZS5nbG9iYWwKKworZXhwb3J0IE9QRU5TU0wgUEVSTAorCitvdmVycmlkZSBDUFBG TEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQorTERGTEFHU19JTlRFUk5B TCArPSAtTCQodG9wX2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMgLWxwZ2ZldXRpbHMgJChsaWJw cV9wZ3BvcnQpCisKK2FsbDogdGVzdF9jbGllbnQKKworY2hlY2s6IGFsbAorCSQocHJvdmVf Y2hlY2spCisKK2luc3RhbGxjaGVjazoKKwkkKHByb3ZlX2luc3RhbGxjaGVjaykKKworY2xl YW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xlYW46CisJcm0gLWYgdGVzdF9jbGllbnQubyB0 ZXN0X2NsaWVudAorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u NDdmODhjNDFjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0 aW9uL21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsMjQgQEAKK2NvbHVtbl9lbmNyeXB0aW9uX3Rl c3RfY2xpZW50ID0gZXhlY3V0YWJsZSgndGVzdF9jbGllbnQnLAorICBmaWxlcygndGVzdF9j bGllbnQuYycpLAorICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsaWJwcV0sCisg IGt3YXJnczogZGVmYXVsdF9iaW5fYXJncyArIHsKKyAgICAnaW5zdGFsbCc6IGZhbHNlLAor ICB9LAorKQordGVzdHByZXBfdGFyZ2V0cyArPSBjb2x1bW5fZW5jcnlwdGlvbl90ZXN0X2Ns aWVudAorCit0ZXN0cyArPSB7CisgICduYW1lJzogJ2NvbHVtbl9lbmNyeXB0aW9uJywKKyAg J3NkJzogbWVzb24uY3VycmVudF9zb3VyY2VfZGlyKCksCisgICdiZCc6IG1lc29uLmN1cnJl bnRfYnVpbGRfZGlyKCksCisgICd0YXAnOiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3Qv MDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsJywKKyAgICAgICd0LzAwMl9jbWtfcm90YXRpb24u cGwnLAorICAgIF0sCisgICAgJ2Vudic6IHsKKyAgICAgICdPUEVOU1NMJzogb3BlbnNzbC5w YXRoKCksCisgICAgICAnUEVSTCc6IHBlcmwucGF0aCgpLAorICAgIH0sCisgIH0sCit9CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5j cnlwdGlvbi5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9l bmNyeXB0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM1 NmFmNzM3YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbApAQCAtMCwwICsxLDI1NSBAQAorIyBDb3B5 cmlnaHQgKGMpIDIwMjEtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1v cmU7CisKK215ICRvcGVuc3NsID0gJEVOVntPUEVOU1NMfTsKK215ICRwZXJsID0gJEVOVntQ RVJMfTsKKworIyBDYW4gYmUgY2hhbmdlZCBtYW51YWxseSBmb3IgdGVzdGluZyBvdGhlciBh bGdvcml0aG1zLiAgTm90ZSB0aGF0CisjIFJTQUVTX09BRVBfU0hBXzI1NiByZXF1aXJlcyBP cGVuU1NMIDEuMS4wLgorbXkgJGNta2FsZyA9ICdSU0FFU19PQUVQX1NIQV8xJzsKKworbXkg JG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2Rl LT5pbml0OworJG5vZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7CisJbXkgKCRj bWtuYW1lKSA9IEBfOworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3JfYmFpbCAk b3BlbnNzbCwgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScsICdyc2EnLCAnLW91dCcsICRjbWtm aWxlbmFtZTsKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xV TU4gTUFTVEVSIEtFWSAke2Nta25hbWV9fSk7CisJcmV0dXJuICRjbWtmaWxlbmFtZTsKK30K Kworc3ViIGNyZWF0ZV9jZWsKK3sKKwlteSAoJGNla25hbWUsICRieXRlcywgJGNta25hbWUs ICRjbWtmaWxlbmFtZSkgPSBAXzsKKworCW15ICRkaWdlc3QgPSAkY21rYWxnOworCSRkaWdl c3QgPX4gcy8uKig/PVNIQSkvLzsKKwkkZGlnZXN0ID1+IHMvXy8vZzsKKworCSMgZ2VuZXJh dGUgcmFuZG9tIGJ5dGVzCisJc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdyYW5kJywgJy1v dXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9 LmJpbiIsICRieXRlczsKKworCSMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCisJbXkgQGNtZCA9 ICgKKwkJJG9wZW5zc2wsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKwkJJy1pbmtleScsICRj bWtmaWxlbmFtZSwKKwkJJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJ CSctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25h bWV9LmJpbiIsCisJCSctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9j aGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIgorCSk7CisJaWYgKCRkaWdlc3QgbmUgJ1NIQTEn KQorCXsKKwkJIyBUaGVzZSBvcHRpb25zIHJlcXVpcmUgT3BlblNTTCA+PTEuMS4wLCBzbyBp ZiB0aGUgZGlnZXN0IGlzCisJCSMgU0hBMSwgd2hpY2ggaXMgdGhlIGRlZmF1bHQsIG9taXQg dGhlIG9wdGlvbnMuCisJCXB1c2ggQGNtZCwKKwkJICAnLXBrZXlvcHQnLCAicnNhX21nZjFf bWQ6JGRpZ2VzdCIsCisJCSAgJy1wa2V5b3B0JywgInJzYV9vYWVwX21kOiRkaWdlc3QiOwor CX0KKwlzeXN0ZW1fb3JfYmFpbCBAY21kOworCisJbXkgJGNla2VuY2hleCA9IHVucGFjaygn SConLCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9 LyR7Y2VrbmFtZX0uYmluLmVuYyIpOworCisJIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCisJ JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZICR7Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gJHtj bWtuYW1lfSwgYWxnb3JpdGhtID0gJyR7Y21rYWxnfScsIGVuY3J5cHRlZF92YWx1ZSA9ICdc XHgke2Nla2VuY2hleH0nKTt9KTsKKworCXJldHVybjsKK30KKworCitteSAkY21rMWZpbGVu YW1lID0gY3JlYXRlX2NtaygnY21rMScpOworbXkgJGNtazJmaWxlbmFtZSA9IGNyZWF0ZV9j bWsoJ2NtazInKTsKK2NyZWF0ZV9jZWsoJ2NlazEnLCA0OCwgJ2NtazEnLCAkY21rMWZpbGVu YW1lKTsKK2NyZWF0ZV9jZWsoJ2NlazInLCA3MiwgJ2NtazInLCAkY21rMmZpbGVuYW1lKTsK KworJEVOVntQR0NPTFVNTkVOQ1JZUFRJT059ID0gJ29uJzsKKyRFTlZ7UEdDTUtMT09LVVB9 ID0gJyo9ZmlsZTonIC4gJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfSAu ICcvJWsucGVtJzsKKworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworQ1JF QVRFIFRBQkxFIHRibDEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSksCisgICAgYyBzbWFsbGludCBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9KTsKKwor JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwg YiwgYykgVkFMVUVTICgxLCAkMSwgJDIpIFxiaW5kICd2YWwxJyAxMSBcZworSU5TRVJUIElO VE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgyLCAkMSwgJDIpIFxiaW5kICd2YWwyJyAyMiBc ZworfSk7CisKKyMgRXhwZWN0ZWQgY2lwaGVydGV4dCBsZW5ndGggaXMgMiBibG9ja3Mgb2Yg QUVTIG91dHB1dCAoMiAqIDE2KSBwbHVzCisjIGhhbGYgU0hBLTI1NiBvdXRwdXQgKDE2KSBp biBoZXggZW5jb2Rpbmc6ICgyICogMTYgKyAxNikgKiAyID0gOTYKK2xpa2UoJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkgKFNFTEVDVCAqIEZST00gdGJsMSkgVE8gU1RE T1VUfSksCisJcXIvMVx0ZW5jcnlwdGVkXCRbMC05YS1mXXs5Nn1cdGVuY3J5cHRlZFwkWzAt OWEtZl17OTZ9XG4yXHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fVx0ZW5jcnlwdGVkXCRbMC05 YS1mXXs5Nn0vLAorCSdpbnNlcnRlZCBkYXRhIGlzIGVuY3J5cHRlZCcpOworCitteSAkcmVz dWx0OworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVD VCBhLCBiLCBjIEZST00gdGJsMSBcZ2Rlc2N9KTsKK2lzKCRyZXN1bHQsCisJcShhfGludGVn ZXIKK2J8dGV4dAorY3xzbWFsbGludCksCisJJ3F1ZXJ5IHJlc3VsdCBkZXNjcmlwdGlvbiBo YXMgb3JpZ2luYWwgdHlwZScpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlx KDF8dmFsMXwxMQorMnx2YWwyfDIyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCcpOwor Cit7CisJbG9jYWwgJEVOVntQR0NNS0xPT0tVUH0gPSAnKj1ydW46YnJva2VuICVrICVwJzsK KwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBG Uk9NIHRibDF9KTsKKwlpc250KCRyZXN1bHQsIDAsICdxdWVyeSBmYWlscyB3aXRoIGJyb2tl biBjbWtsb29rdXAgcnVuIHNldHRpbmcnKTsKK30KKworeworCWxvY2FsICRFTlZ7VEVTVFdP UktESVJ9ID0gJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfTsKKwlsb2Nh bCAkRU5We1BHQ01LTE9PS1VQfSA9ICIqPXJ1bjokcGVybCAuL3Rlc3RfcnVuX2RlY3J5cHQu cGwgJWsgJWEgJXAiOworCisJbXkgJHN0ZG91dDsKKwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9LCBzdGRvdXQgPT4gXCRz dGRvdXQpOworCWlzKCRzdGRvdXQsCisJCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCQkn ZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIGNta2xvb2t1cCBydW4nKTsKK30KKworCisk bm9kZS0+Y29tbWFuZF9mYWlsc19saWtlKFsndGVzdF9jbGllbnQnLCAndGVzdDEnXSwgcXIv bm90IGVuY3J5cHRlZC8sICd0ZXN0IGNsaWVudCBmYWlscyBiZWNhdXNlIHBhcmFtZXRlcnMg bm90IGVuY3J5cHRlZCcpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8 dmFsMXwxMQorMnx2YWwyfDIyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0 ZXN0IGNsaWVudCBpbnNlcnQnKTsKKworJG5vZGUtPmNvbW1hbmRfb2soWyd0ZXN0X2NsaWVu dCcsICd0ZXN0MiddLCAndGVzdCBjbGllbnQgdGVzdCAyJyk7CisKKyRyZXN1bHQgPSAkbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7 CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIKKzN8dmFsM3wzMyksCisJ J2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0IDInKTsK KworbGlrZSgkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7Q09QWSAoU0VMRUNUICog RlJPTSB0YmwxIFdIRVJFIGEgPSAzKSBUTyBTVERPVVR9KSwKKwlxci8zXHRlbmNyeXB0ZWRc JFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlwdGVkJyk7CisKKwor IyBUZXN0cyB3aXRoIGJpbmFyeSBmb3JtYXQKKworIyBTdXBwbHlpbmcgYSBwYXJhbWV0ZXIg aW4gYmluYXJ5IGZvcm1hdCB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMgdG8gYmUKKyMgZW5jcnlw dGVkIHJlc3VsdHMgaW4gYW4gZXJyb3IgZnJvbSBsaWJwcS4KKyRub2RlLT5jb21tYW5kX2Zh aWxzX2xpa2UoWyd0ZXN0X2NsaWVudCcsICd0ZXN0MyddLAorCXFyL2Zvcm1hdCBtdXN0IGJl IHRleHQgZm9yIGVuY3J5cHRlZCBwYXJhbWV0ZXIvLAorCSd0ZXN0IGNsaWVudCBmYWlscyBi ZWNhdXNlIHRvLWJlLWVuY3J5cHRlZCBwYXJhbWV0ZXIgaXMgaW4gYmluYXJ5IGZvcm1hdCcp OworCisjIFJlcXVlc3RpbmcgYSBiaW5hcnkgcmVzdWx0IHNldCBzdGlsbCBjYXVzZXMgYW55 IGVuY3J5cHRlZCBjb2x1bW5zIHRvCisjIGJlIHJldHVybmVkIGFzIHRleHQgZnJvbSB0aGUg bGlicHEgQVBJLgorJG5vZGUtPmNvbW1hbmRfbGlrZShbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Q0 J10sCisJcXIvPDAsMD49MTpcbjwwLDE+PTA6dmFsMVxuPDAsMj49MDoxMS8sCisJJ2JpbmFy eSByZXN1bHQgc2V0IHdpdGggZW5jcnlwdGVkIGNvbHVtbnM6IGVuY3J5cHRlZCBjb2x1bW5z IHJldHVybmVkIGFzIHRleHQnKTsKKworCisjIFRlc3QgVVBEQVRFCisKKyRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXsKK1VQREFURSB0YmwxIFNFVCBiID0gJDIgV0hFUkUgYSA9 ICQxIFxiaW5kICczJyAndmFsM3VwZCcgXGcKK30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0pOworaXMo JHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIyCiszfHZhbDN1cGR8MzMpLAorCSdk ZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHVwZGF0ZScpOworCisKKyMgVGVzdCB2aWV3 cworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7Q1JFQVRFIFZJRVcgdjEgQVMg U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXtVUERBVEUgdjEgU0VUIGIgPSAkMiBXSEVSRSBhID0gJDEgXGJpbmQgJzMnICd2 YWwzdXBkMicgXGd9KTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHYxIFdIRVJFIGEgSU4gKDEsIDMpfSk7Citpcygk cmVzdWx0LAorCXEoMXx2YWwxfDExCiszfHZhbDN1cGQyfDMzKSwKKwknZGVjcnlwdGVkIHF1 ZXJ5IHJlc3VsdCBmcm9tIHZpZXcnKTsKKworCisjIFRlc3QgZGV0ZXJtaW5pc3RpYyBlbmNy eXB0aW9uCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFC TEUgdGJsMiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChlbmNy eXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljLCBjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBj ZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNF UlQgSU5UTyB0YmwyIChhLCBiKSBWQUxVRVMgKCQxLCAkMiksICgkMywgJDQpLCAoJDUsICQ2 KSBcYmluZCAnMScgJ3ZhbEEnICcyJyAndmFsQicgJzMnICd2YWxBJyBcZworfSk7CisKKyRy ZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJP TSB0YmwyfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWxBCisyfHZhbEIKKzN8dmFsQSksCisJ J2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgaW4gdGFibGUgZm9yIGRldGVybWluaXN0aWMgZW5j cnlwdGlvbicpOworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNU IGIsIGNvdW50KCopIEZST00gdGJsMiBHUk9VUCBCWSBiIE9SREVSIEJZIDJ9KSwKKwlxKHZh bEJ8MQordmFsQXwyKSwKKwknZ3JvdXAgYnkgZGV0ZXJtaW5pc3RpY2FsbHkgZW5jcnlwdGVk IGNvbHVtbicpOworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNU IGEgRlJPTSB0YmwyIFdIRVJFIGIgPSAkMSBcYmluZCAndmFsQicgXGd9KSwKKwlxKDIpLAor CSdzZWxlY3QgYnkgZGV0ZXJtaW5pc3RpY2FsbHkgZW5jcnlwdGVkIGNvbHVtbicpOworCisK KyMgVGVzdCBtdWx0aXBsZSBrZXlzIGluIG9uZSB0YWJsZQorCiskbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxeworQ1JFQVRFIFRBQkxFIHRibDMgKAorICAgIGEgaW50LAorICAg IGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSks CisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBj ZWsyLCBhbGdvcml0aG0gPSAnQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQnKQorKTsK K30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0 YmwzIChhLCBiLCBjKSBWQUxVRVMgKDEsICQxLCAkMikgXGJpbmQgJ3ZhbEIxJyAndmFsQzEn IFxnCit9KTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtT RUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbEIxfHZh bEMxKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlzJyk7CisKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDMgKGEsIGIs IGMpIFZBTFVFUyAoJDEsICQyLCAkMyksICgkNCwgJDUsICQ2KSBcYmluZCAnMicgJ3ZhbEIy JyAndmFsQzInICczJyAndmFsQjMnICd2YWxDMycgXGcKK30pOworCiskcmVzdWx0ID0gJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsM30p OworaXMoJHJlc3VsdCwKKwlxKDF8dmFsQjF8dmFsQzEKKzJ8dmFsQjJ8dmFsQzIKKzN8dmFs QjN8dmFsQzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMgYWZ0 ZXIgc2Vjb25kIGluc2VydCcpOworCisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsIGIvc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjE0ZWFmYjhlYzkKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24u cGwKQEAgLTAsMCArMSwxMTIgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjMsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCBjb2x1bW4gbWFzdGVy IGtleSByb3RhdGlvbi4gIEZpcnN0LCB3ZSBnZW5lcmF0ZSBDTUsxIGFuZCBhIENFSworIyBl bmNyeXB0ZWQgd2l0aCBpdC4gIFRoZW4gd2UgYWRkIGEgQ01LMiBhbmQgZW5jcnlwdCB0aGUg Q0VLIHdpdGggaXQKKyMgYXMgd2VsbC4gIChSZWNhbGwgdGhhdCBhIENFSyBjYW4gYmUgYXNz b2NpYXRlZCB3aXRoIG11bHRpcGxlIENNS3MsCisjIGZvciB0aGlzIHJlYXNvbi4gIFRoYXQn cyB3aHkgcGdfY29sZW5ja2V5ZGF0YSBpcyBzcGxpdCBvdXQgZnJvbQorIyBwZ19jb2xlbmNr ZXkuKSAgVGhlbiB3ZSByZW1vdmUgQ01LMS4gIFdlIHRlc3QgdGhhdCB3ZSBjYW4gZ2V0Cisj IGRlY3J5cHRlZCBxdWVyeSByZXN1bHRzIGF0IGVhY2ggc3RlcC4KKwordXNlIHN0cmljdDsK K3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRvcGVuc3Ns ID0gJEVOVntPUEVOU1NMfTsKKworbXkgJGNta2FsZyA9ICdSU0FFU19PQUVQX1NIQV8xJzsK KworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsK KyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7CisJ bXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3Jf YmFpbCAkb3BlbnNzbCwgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScsICdyc2EnLCAnLW91dCcs ICRjbWtmaWxlbmFtZTsKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFU RSBDT0xVTU4gTUFTVEVSIEtFWSAke2Nta25hbWV9fSk7CisJcmV0dXJuICRjbWtmaWxlbmFt ZTsKK30KKworCitteSAkY21rMWZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMScpOworCisj IGNyZWF0ZSBDRUsKK215ICgkY2VrbmFtZSwgJGJ5dGVzKSA9ICgnY2VrMScsIDQ4KTsKKwor IyBnZW5lcmF0ZSByYW5kb20gYnl0ZXMKK3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncmFu ZCcsICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtj ZWtuYW1lfS5iaW4iLCAkYnl0ZXM7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCitzeXN0 ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5 JywgJGNtazFmaWxlbmFtZSwKKyAgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2Fl cCcsCisgICctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8k e2Nla25hbWV9LmJpbiIsCisgICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6 OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIjsKKworbXkgJGNla2VuY2hleCA9IHVu cGFjaygnSConLCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyIpOworCisjIGNyZWF0ZSBDRUsgaW4gZGF0YWJh c2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSAke2Nla25hbWV9IFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9 IGNtazEsIGFsZ29yaXRobSA9ICckY21rYWxnJywgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7 Y2VrZW5jaGV4fScpO30pOworCiskRU5We1BHQ09MVU1ORU5DUllQVElPTn0gPSAnb24nOwor JEVOVntQR0NNS0xPT0tVUH0gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0 aWxzOjp0bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHFxeworQ1JFQVRFIFRBQkxFIHRibDEgKAorICAgIGEgaW50LAorICAgIGIgdGV4 dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9 KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJs MSAoYSwgYikgVkFMVUVTICgxLCAkMSkgXGJpbmQgJ3ZhbDEnIFxnCitJTlNFUlQgSU5UTyB0 YmwxIChhLCBiKSBWQUxVRVMgKDIsICQxKSBcYmluZCAndmFsMicgXGcKK30pOworCitpcygk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSks CisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBv bmUgQ01LJyk7CisKKworIyBjcmVhdGUgbmV3IENNSworbXkgJGNtazJmaWxlbmFtZSA9IGNy ZWF0ZV9jbWsoJ2NtazInKTsKKworIyBlbmNyeXB0IENFSyB1c2luZyBuZXcgQ01LCisjCisj IChIZXJlLCB3ZSBzdGlsbCBoYXZlIHRoZSBwbGFpbnRleHQgb2YgdGhlIENFSyBhdmFpbGFi bGUgZnJvbQorIyBlYXJsaWVyLiAgSW4gcmVhbGl0eSwgb25lIHdvdWxkIGRlY3J5cHQgdGhl IENFSyB3aXRoIHRoZSBmaXJzdCBDTUsKKyMgYW5kIHRoZW4gcmUtZW5jcnlwdCBpdCB3aXRo IHRoZSBzZWNvbmQgQ01LLikKK3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncGtleXV0bCcs ICctZW5jcnlwdCcsCisgICctaW5rZXknLCAkY21rMmZpbGVuYW1lLAorICAnLXBrZXlvcHQn LCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKyAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRl c3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwKKyAgJy1vdXQnLCAiJHtQ b3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMi OworCiskY2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKyMg YWRkIG5ldyBkYXRhIHJlY29yZCBmb3IgQ0VLIGluIGRhdGFiYXNlCiskbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHFxe0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25h bWV9IEFERCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLCBhbGdvcml0aG0gPSAn JGNta2FsZycsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKwor Citpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0 YmwxfSksCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQg d2l0aCB0d28gQ01LcycpOworCisKKyMgZGVsZXRlIENFSyByZWNvcmQgZm9yIGZpcnN0IENN SworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgJHtjZWtuYW1lfSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNt azEpO30pOworCisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1Qg YSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1 ZXJ5IHJlc3VsdCB3aXRoIG9ubHkgbmV3IENNSycpOworCisKK2RvbmVfdGVzdGluZygpOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYyBi L3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOWMyNTdhM2RkYgotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKQEAgLTAsMCAr MSwxNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMywgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUu aCIKKworI2luY2x1ZGUgImxpYnBxLWZlLmgiCisKKworLyoKKyAqIFRlc3QgY2FsbHMgdGhh dCBkb24ndCBzdXBwb3J0IGVuY3J5cHRpb24KKyAqLworc3RhdGljIGludAordGVzdDEoUEdj b25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2YWx1ZXNb XSA9IHsiMyIsICJ2YWwzIiwgIjMzIn07CisKKwlyZXMgPSBQUXByZXBhcmUoY29ubiwgIiIs ICJJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKCQxLCAkMiwgJDMpIiwKKwkJ CQkJMywgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFO RF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xu IiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJl cyA9IFBRZXhlY1ByZXBhcmVkKGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDAp OworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJewor CQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJ CQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAw OworfQorCisvKgorICogVGVzdCBmb3JjZWQgZW5jcnlwdGlvbgorICovCitzdGF0aWMgaW50 Cit0ZXN0MihQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJl czI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjMiLCAidmFsMyIsICIzMyJ9OworCWlu dAkJCWZvcm1hdHNbXSA9IHsweDAwLCAweDEwLCAweDAwfTsKKworCXJlcyA9IFBRcHJlcGFy ZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQy LCAkMykiLAorCQkJCQkzLCBOVUxMKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQ R1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUXByZXBhcmUoKSBm YWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7 CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJaWYgKFBR cmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRm KHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFl cnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoISghUFFwYXJh bWlzZW5jcnlwdGVkKHJlczIsIDApICYmCisJCSAgUFFwYXJhbWlzZW5jcnlwdGVkKHJlczIs IDEpKSkKKwl7CisJCWZwcmludGYoc3RkZXJyLCAid3JvbmcgcmVzdWx0cyBmcm9tIFBRcGFy YW1pc2VuY3J5cHRlZCgpXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVj UHJlcGFyZWREZXNjcmliZWQoY29ubiwgIiIsIDMsIHZhbHVlcywgTlVMTCwgZm9ybWF0cywg MCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9P SykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVz XG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKKy8qCisgKiBUZXN0IHdoYXQgaGFwcGVucyB3aGVuIHlvdSBzdXBw bHkgYSBiaW5hcnkgcGFyYW1ldGVyIHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUKKyAqIGVuY3J5 cHRlZC4KKyAqLworc3RhdGljIGludAordGVzdDMoUEdjb25uICpjb25uKQoreworCVBHcmVz dWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiIn07CisJaW50CQkJbGVu Z3Roc1tdID0gezF9OworCWludAkJCWZvcm1hdHNbXSA9IHsxfTsKKworCXJlcyA9IFBRZXhl Y1BhcmFtcyhjb25uLCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgxMDAs IE5VTEwsICQxKSIsCisJCQkJCSAgIDMsIE5VTEwsIHZhbHVlcywgbGVuZ3RocywgZm9ybWF0 cywgMCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykK Kwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUGFyYW1zKCkgZmFpbGVkOiAlc1xuIiwK KwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVy biAwOworfQorCisvKgorICogVGVzdCB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgcmVxdWVzdCBy ZXN1bHRzIGluIGJpbmFyeSBhbmQgdGhlIHJlc3VsdCByb3dzCisgKiBjb250YWluIGFuIGVu Y3J5cHRlZCBjb2x1bW4uCisgKi8KK3N0YXRpYyBpbnQKK3Rlc3Q0KFBHY29ubiAqY29ubikK K3sKKwlQR3Jlc3VsdCAgICpyZXM7CisKKwlyZXMgPSBQUWV4ZWNQYXJhbXMoY29ubiwgIlNF TEVDVCBhLCBiLCBjIEZST00gdGJsMSBXSEVSRSBhID0gMSIsIDAsIE5VTEwsIE5VTEwsIE5V TEwsIE5VTEwsIDEpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExF U19PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUGFyYW1zKCkgZmFpbGVkOiAl c1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKwor CWZvciAoaW50IHJvdyA9IDA7IHJvdyA8IFBRbnR1cGxlcyhyZXMpOyByb3crKykKKwkJZm9y IChpbnQgY29sID0gMDsgY29sIDwgUFFuZmllbGRzKHJlcyk7IGNvbCsrKQorCQkJcHJpbnRm KCI8JWQsJWQ+PSVkOiVzXG4iLCByb3csIGNvbCwgUFFmZm9ybWF0KHJlcywgY29sKSwgUFFn ZXR2YWx1ZShyZXMsIHJvdywgY29sKSk7CisJcmV0dXJuIDA7Cit9CisKK2ludAorbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJUEdjb25uCSAgICpjb25uOworCWludAkJCXJl dCA9IDA7CisKKwljb25uID0gUFFjb25uZWN0ZGIoIiIpOworCWlmIChQUXN0YXR1cyhjb25u KSAhPSBDT05ORUNUSU9OX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJDb25uZWN0aW9u IHRvIGRhdGFiYXNlIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikp OworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoYXJnYyA8IDIgfHwgYXJndlsxXSA9PSBOVUxM KQorCQlyZXR1cm4gODc7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MSIpID09 IDApCisJCXJldCA9IHRlc3QxKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAi dGVzdDIiKSA9PSAwKQorCQlyZXQgPSB0ZXN0Mihjb25uKTsKKwllbHNlIGlmIChzdHJjbXAo YXJndlsxXSwgInRlc3QzIikgPT0gMCkKKwkJcmV0ID0gdGVzdDMoY29ubik7CisJZWxzZSBp ZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0NCIpID09IDApCisJCXJldCA9IHRlc3Q0KGNvbm4p OworCWVsc2UKKwkJcmV0ID0gODg7CisKKwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0 OworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5f ZGVjcnlwdC5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5 cHQucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uNjY4NzFjYjQz OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf cnVuX2RlY3J5cHQucGwKQEAgLTAsMCArMSw1OCBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMg VGVzdC9zYW1wbGUgY29tbWFuZCBmb3IgbGlicHEgY21rbG9va3VwIHJ1biBzY2hlbWUKKyMK KyMgVGhpcyBqdXN0IHBsYWNlcyB0aGUgZGF0YSBpbnRvIHRlbXBvcmFyeSBmaWxlcyBhbmQg cnVucyB0aGUgb3BlbnNzbAorIyBjb21tYW5kIG9uIGl0LiAgKEluIHByYWN0aWNlLCB0aGlz IGNvdWxkIG1vcmUgc2ltcGx5IGJlIHdyaXR0ZW4gYXMgYQorIyBzaGVsbCBzY3JpcHQsIGJ1 dCB0aGlzIHdheSBpdCdzIG1vcmUgcG9ydGFibGUuKQorCisjIENvcHlyaWdodCAoYykgMjAy MS0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3Ry aWN0OwordXNlIHdhcm5pbmdzOworCitteSAoJGNta25hbWUsICRhbGcsICRmaWxlbmFtZSkg PSBAQVJHVjsKKworZGllIHVubGVzcyAkYWxnID1+ICdSU0FFU19PQUVQX1NIQSc7CisKK215 ICRkaWdlc3QgPSAkYWxnOworJGRpZ2VzdCA9fiBzLy4qKD89U0hBKS8vOworJGRpZ2VzdCA9 fiBzL18vL2c7CisKK215ICR0bXBkaXIgPSAkRU5We1RFU1RXT1JLRElSfTsKKworbXkgJG9w ZW5zc2wgPSAkRU5We09QRU5TU0x9OworCitteSBAY21kID0gKAorCSRvcGVuc3NsLCAncGtl eXV0bCcsICctZGVjcnlwdCcsCisJJy1pbmtleScsICIke3RtcGRpcn0vJHtjbWtuYW1lfS5w ZW0iLCAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKwknLWluJywgJGZp bGVuYW1lLCAnLW91dCcsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIKKyk7CisKK2lmICgkZGln ZXN0IG5lICdTSEExJykKK3sKKwkjIFRoZXNlIG9wdGlvbnMgcmVxdWlyZSBPcGVuU1NMID49 MS4xLjAsIHNvIGlmIHRoZSBkaWdlc3QgaXMKKwkjIFNIQTEsIHdoaWNoIGlzIHRoZSBkZWZh dWx0LCBvbWl0IHRoZSBvcHRpb25zLgorCXB1c2ggQGNtZCwKKwkgICctcGtleW9wdCcsICJy c2FfbWdmMV9tZDokZGlnZXN0IiwKKwkgICctcGtleW9wdCcsICJyc2Ffb2FlcF9tZDokZGln ZXN0IjsKK30KKworc3lzdGVtKEBjbWQpID09IDAgb3IgZGllICJzeXN0ZW0gZmFpbGVkOiAk PyI7CisKK29wZW4gbXkgJGZoLCAnPDpyYXcnLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiIG9y IGRpZSAkITsKK215ICRkYXRhID0gJyc7CisKK3doaWxlICgxKSB7CisJbXkgJHN1Y2Nlc3Mg PSByZWFkICRmaCwgJGRhdGEsIDEwMCwgbGVuZ3RoKCRkYXRhKTsKKwlkaWUgJCEgaWYgbm90 IGRlZmluZWQgJHN1Y2Nlc3M7CisJbGFzdCBpZiBub3QgJHN1Y2Nlc3M7Cit9CisKK2Nsb3Nl ICRmaDsKKwordW5saW5rICIke3RtcGRpcn0vb3V0cHV0LnRtcCI7CisKK2Jpbm1vZGUgU1RE T1VUOworCitwcmludCAkZGF0YTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21lc29uLmJ1aWxk IGIvc3JjL3Rlc3QvbWVzb24uYnVpbGQKaW5kZXggNWYzYzljMmJhMi4uZDU1ZGRiMWFiNyAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbWVzb24u YnVpbGQKQEAgLTksNiArOSw3IEBAIHN1YmRpcignc3Vic2NyaXB0aW9uJykKIHN1YmRpcign bW9kdWxlcycpCiAKIGlmIHNzbC5mb3VuZCgpCisgIHN1YmRpcignY29sdW1uX2VuY3J5cHRp b24nKQogICBzdWJkaXIoJ3NzbCcpCiBlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLmRmNDdlMzYyODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dApAQCAtMCwwICsx LDQ1MSBAQAorXHNldCBISURFX0NPTFVNTl9FTkNSWVBUSU9OIGZhbHNlCitDUkVBVEUgUk9M RSByZWdyZXNzX2VuY191c2VyMTsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJ VEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVS IEtFWSBjbWsxIElTICdjb2x1bW4gbWFzdGVyIGtleSc7CitDUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVkgY21rMWEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdCcKKyk7CitDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkgY21rMjsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyYSBX SVRIICgKKyAgICByZWFsbSA9ICd0ZXN0eCcKKyk7CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtF WSBjbWsyYSAocmVhbG0gPSAndGVzdDInKTsKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgZmFpbCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAor ICAgIGFsZ29yaXRobSA9ICdmb28nLCAgLS0gaW52YWxpZAorICAgIGVuY3J5cHRlZF92YWx1 ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAgdW5yZWNvZ25pemVkIGVuY3J5cHRpb24g YWxnb3JpdGhtOiBmb28KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRI IFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFE QkVFRicKKyk7CitDT01NRU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdj b2x1bW4gZW5jcnlwdGlvbiBrZXknOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFs Z29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAn XHhERUFEQkVFRicKKyk7CistLSBkdXBsaWNhdGUKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwK KyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3Zh bHVlID0gJ1x4REVBREJFRUYnCispOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg ImNlazEiIGFscmVhZHkgaGFzIGRhdGEgZm9yIG1hc3RlciBrZXkgImNtazFhIgorQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywK KyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIGNvbHVt biBlbmNyeXB0aW9uIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0NSRUFURSBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMiBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9r ZXkgPSBjbWsyLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBl bmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyksCisoCisgICAgY29sdW1uX21hc3Rl cl9rZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tl eSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVu Y3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBUQUJMRSB0YmxfZmFp bCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCispOworRVJST1I6ICBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgIm5vdGV4aXN0IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFRB QkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCBhbGdvcml0aG0g PSAnZm9vJykKKyk7CitFUlJPUjogIHVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRo bTogZm9vCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4 dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9 IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IHdyb25nKQorKTsKK0VSUk9SOiAgdW5yZWNvZ25p emVkIGVuY3J5cHRpb24gdHlwZTogd3JvbmcKK0NSRUFURSBUQUJMRSB0YmxfMjlmMyAoCisg ICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29s dW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7CitcZCB0YmxfMjlmMworICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLnRibF8yOWYzIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KworXGQrIHRibF8yOWYzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy50YmxfMjlmMyIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3Rh dHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAg ICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVy bmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAgICAgICB8IAorCitDUkVBVEUgVEFCTEUgdGJs XzQ0N2YgKAorICAgIGEgaW50LAorICAgIGIgdGV4dAorKTsKK0FMVEVSIFRBQkxFIHRibF80 NDdmIEFERCBDT0xVTU4gYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxKTsKK1xkIHRibF80NDdmCisgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudGJsXzQ0N2YiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAg ICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorCitcZCsgdGJsXzQ0N2YK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGlj LnRibF80NDdmIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAg ICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRl ZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAg IHwgICAgICAgICAgICAgIHwgCisKK0NSRUFURSBUQUJMRSB0YmxfNDg5NyAoTElLRSB0Ymxf NDQ3Zik7CitDUkVBVEUgVEFCTEUgdGJsXzY5NzggKExJS0UgdGJsXzQ0N2YgSU5DTFVESU5H IEVOQ1JZUFRFRCk7CitcZCsgdGJsXzQ4OTcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF80ODk3IgorIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5 cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK1xkKyB0 YmxfNjk3OAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGJsXzY5NzgiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdl dCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwg CisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8 IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRl eHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8IGNl azEgICAgICAgfCAgICAgICAgICAgICAgfCAKKworQ1JFQVRFIFZJRVcgdmlld18zYmM5IEFT IFNFTEVDVCAqIEZST00gdGJsXzI5ZjM7CitcZCsgdmlld18zYmM5CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBWaWV3ICJwdWJsaWMudmlld18zYmM5IgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8 IEVuY3J5cHRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAg ICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgCitWaWV3IGRlZmluaXRpb246CisgU0VM RUNUIGEsCisgICAgYiwKKyAgICBjCisgICBGUk9NIHRibF8yOWYzOworCitDUkVBVEUgVEFC TEUgdGJsXzIzODYgQVMgU0VMRUNUICogRlJPTSB0YmxfMjlmMyBXSVRIIE5PIERBVEE7Citc ZCsgdGJsXzIzODYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnRibF8yMzg2IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0 YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAg fCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZXJuYWwg fCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK0NSRUFURSBUQUJMRSB0YmxfMjk0 MSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzIFdJVEggREFUQTsKK0VSUk9SOiAgZW5jcnlw dGVkIGNvbHVtbnMgbm90IHlldCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBjb21tYW5kCitcZCsg dGJsXzI5NDEKKy0tIHRlc3QgcGFydGl0aW9uIGRlY2xhcmF0aW9ucworQ1JFQVRFIFRBQkxF IHRibF8xM2ZhICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNv bHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispIFBBUlRJVElPTiBCWSBSQU5HRSAoYSk7 CitDUkVBVEUgVEFCTEUgdGJsXzEzZmFfMSBQQVJUSVRJT04gT0YgdGJsXzEzZmEgRk9SIFZB TFVFUyBGUk9NICgxKSBUTyAoMTAwKTsKK1xkKyB0YmxfMTNmYQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJwdWJsaWMudGJsXzEzZmEi CisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8 IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBh ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxh aW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAg ICAgICB8ICAgICAgICAgICAgICB8IAorUGFydGl0aW9uIGtleTogUkFOR0UgKGEpCitQYXJ0 aXRpb25zOiB0YmxfMTNmYV8xIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwMCkKKworXGQr IHRibF8xM2ZhXzEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMudGJsXzEzZmFfMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMg dGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCitQYXJ0aXRp b24gb2Y6IHRibF8xM2ZhIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwMCkKK1BhcnRpdGlv biBjb25zdHJhaW50OiAoKGEgSVMgTk9UIE5VTEwpIEFORCAoYSA+PSAxKSBBTkQgKGEgPCAx MDApKQorCistLSB0ZXN0IGluaGVyaXRhbmNlCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYSAo CisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlw dGlvbl9rZXkgPSBjZWsxKQorKTsKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19iICgKKyAgICBh IGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tl eSA9IGNlazEpCispOworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2MgKAorICAgIGEgaW50LAor ICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2Vr MikKKyk7CitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfZCAoCisgICAgYSBpbnQsCisgICAgYiB0 ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCBlbmNy eXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljKQorKTsKK0NSRUFURSBUQUJMRSB0YmxfMzZm M19lICgKKyAgICBhIGludCwKKyAgICBiIHRleHQKKyk7CistLSBub3QgaW1wbGVtZW50ZWQg KGJ1dCBjb3VsZCBiZSBvaykKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hYiAoYyBpbnQpIElO SEVSSVRTICh0YmxfMzZmM19hLCB0YmxfMzZmM19iKTsKK05PVElDRTogIG1lcmdpbmcgbXVs dGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYSIKK05PVElDRTogIG1l cmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKK0VS Uk9SOiAgbXVsdGlwbGUgaW5oZXJpdGFuY2Ugb2YgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbm90 IGltcGxlbWVudGVkCitcZCsgdGJsXzM2ZjNfYWIKKy0tIG5vdCBpbXBsZW1lbnRlZCAoYnV0 IHNob3VsZCBmYWlsKQorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FjIChjIGludCkgSU5IRVJJ VFMgKHRibF8zNmYzX2EsIHRibF8zNmYzX2MpOworTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBs ZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJhIgorTk9USUNFOiAgbWVyZ2lu ZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgorRVJST1I6 ICBtdWx0aXBsZSBpbmhlcml0YW5jZSBvZiBlbmNyeXB0ZWQgY29sdW1ucyBpcyBub3QgaW1w bGVtZW50ZWQKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hZCAoYyBpbnQpIElOSEVSSVRTICh0 YmxfMzZmM19hLCB0YmxfMzZmM19kKTsKK05PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5o ZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYSIKK05PVElDRTogIG1lcmdpbmcgbXVs dGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKK0VSUk9SOiAgbXVs dGlwbGUgaW5oZXJpdGFuY2Ugb2YgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbm90IGltcGxlbWVu dGVkCistLSBmYWlsCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWUgKGMgaW50KSBJTkhFUklU UyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfZSk7CitOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxl IGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImEiCitOT1RJQ0U6ICBtZXJnaW5n IG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCitFUlJPUjog IGNvbHVtbiAiYiIgaGFzIGFuIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbiBjb25mbGljdAor LS0gb2sKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hXzEgKGIgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSksIGMgaW50KSBJTkhFUklUUyAodGJs XzM2ZjNfYSk7CitOT1RJQ0U6ICBtb3ZpbmcgYW5kIG1lcmdpbmcgY29sdW1uICJiIiB3aXRo IGluaGVyaXRlZCBkZWZpbml0aW9uCitERVRBSUw6ICBVc2VyLXNwZWNpZmllZCBjb2x1bW4g bW92ZWQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBpbmhlcml0ZWQgY29sdW1uLgorXGQrIHRi bF8zNmYzX2FfMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnRibF8zNmYzX2FfMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMg dGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAg IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorSW5oZXJpdHM6IHRibF8zNmYzX2EK KworLS0gZmFpbAorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FfMiAoYiB0ZXh0IEVOQ1JZUFRF RCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsyKSwgYyBpbnQpIElOSEVSSVRT ICh0YmxfMzZmM19hKTsKK05PVElDRTogIG1vdmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIi IHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KK0RFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNv bHVtbiBtb3ZlZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCitF UlJPUjogIGNvbHVtbiAiYiIgaGFzIGFuIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbiBjb25m bGljdAorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FfMiAoYiB0ZXh0IEVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCBlbmNyeXB0aW9uX3R5cGUgPSBkZXRl cm1pbmlzdGljKSwgYyBpbnQpIElOSEVSSVRTICh0YmxfMzZmM19hKTsKK05PVElDRTogIG1v dmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24K K0RFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNvbHVtbiBtb3ZlZCB0byB0aGUgcG9zaXRpb24g b2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCitFUlJPUjogIGNvbHVtbiAiYiIgaGFzIGFuIGVu Y3J5cHRpb24gc3BlY2lmaWNhdGlvbiBjb25mbGljdAorQ1JFQVRFIFRBQkxFIHRibF8zNmYz X2FfMiAoYiB0ZXh0LCBjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EpOworTk9USUNFOiAg bW92aW5nIGFuZCBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlv bgorREVUQUlMOiAgVXNlci1zcGVjaWZpZWQgY29sdW1uIG1vdmVkIHRvIHRoZSBwb3NpdGlv biBvZiB0aGUgaW5oZXJpdGVkIGNvbHVtbi4KK0VSUk9SOiAgY29sdW1uICJiIiBoYXMgYW4g ZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0CitEUk9QIFRBQkxFIHRibF8zNmYz X2IsIHRibF8zNmYzX2MsIHRibF8zNmYzX2QsIHRibF8zNmYzX2U7CistLSBTRVQgU0NIRU1B CitDUkVBVEUgU0NIRU1BIHRlc3Rfc2NoZW1hX2NlOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEgU0VUIFNDSEVNQSB0ZXN0X3NjaGVtYV9jZTsKK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNtazEgU0VUIFNDSEVNQSB0ZXN0X3NjaGVtYV9jZTsKK0FMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWSB0ZXN0X3NjaGVtYV9jZS5jZWsxIFNFVCBTQ0hFTUEgcHVibGlj OworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgdGVzdF9zY2hlbWFfY2UuY21rMSBTRVQgU0NI RU1BIHB1YmxpYzsKK0RST1AgU0NIRU1BIHRlc3Rfc2NoZW1hX2NlOworLS0gcHJpdmlsZWdl cworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19lbmNfdXNlcjEnOworLS0g ZmFpbAorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxMCBXSVRIIFZBTFVFUyAo CisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9ICdSU0FF U19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7 CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gbWFzdGVyIGtleSBjbWsx CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitHUkFOVCBVU0FHRSBPTiBDT0xVTU4g TUFTVEVSIEtFWSBjbWsxIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiAncmVncmVzc19lbmNfdXNlcjEnOworLS0gb2sgbm93CitDUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEwIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAor ICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0RST1AgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNlazEwOworLS0gZmFpbAorQ1JFQVRFIFRBQkxFIHRibF83MDQwIChh IGludCwgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBj ZWsxKSk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gZW5jcnlwdGlv biBrZXkgY2VrMQorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworR1JBTlQgVVNBR0Ug T04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgVE8gcmVncmVzc19lbmNfdXNlcjE7CitT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CistLSBvayBu b3cKK0NSRUFURSBUQUJMRSB0YmxfNzA0MCAoYSBpbnQsIGIgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkpOworUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOworLS0gaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2UKK1NF TEVDVCBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZSgncmVncmVzc19lbmNf dXNlcjEnLAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY29sZW5ja2V5IFdIRVJFIGNla25h bWU9J2NlazEnKSwgJ1VTQUdFJyk7CisgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfZW5jX3VzZXIxJywgJ2NlazEnLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1uX2VuY3J5 cHRpb25fa2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5 X3ByaXZpbGVnZSgKKyAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX3JvbGVzIFdIRVJFIHJvbG5h bWU9J3JlZ3Jlc3NfZW5jX3VzZXIxJyksCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xl bmNrZXkgV0hFUkUgY2VrbmFtZT0nY2VrMScpLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1uX2Vu Y3J5cHRpb25fa2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX2VuY3J5cHRpb25f a2V5X3ByaXZpbGVnZSgKKyAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX2NvbGVuY2tleSBXSEVS RSBjZWtuYW1lPSdjZWsxJyksICdVU0FHRScpOworIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9r ZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmls ZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfcm9sZXMgV0hFUkUgcm9sbmFtZT0ncmVn cmVzc19lbmNfdXNlcjEnKSwgJ2NlazEnLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1uX2VuY3J5 cHRpb25fa2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX2VuY3J5cHRpb25fa2V5 X3ByaXZpbGVnZSgnY2VrMScsICdVU0FHRScpOworIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9r ZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmls ZWdlKCdyZWdyZXNzX2VuY191c2VyMScsICdjZWsxJywgJ1VTQUdFJyk7CisgaGFzX2NvbHVt bl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCistLSBoYXNfY29sdW1uX21hc3Rlcl9rZXlf cHJpdmlsZWdlCitTRUxFQ1QgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgncmVn cmVzc19lbmNfdXNlcjEnLAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY29sbWFzdGVya2V5 IFdIRVJFIGNta25hbWU9J2NtazEnKSwgJ1VTQUdFJyk7CisgaGFzX2NvbHVtbl9tYXN0ZXJf a2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfZW5jX3VzZXIxJywgJ2NtazEnLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1uX21hc3Rl cl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg dAorKDEgcm93KQorCitTRUxFQ1QgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgK KyAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX3JvbGVzIFdIRVJFIHJvbG5hbWU9J3JlZ3Jlc3Nf ZW5jX3VzZXIxJyksCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xtYXN0ZXJrZXkgV0hF UkUgY21rbmFtZT0nY21rMScpLCAnVVNBR0UnKTsKKyBoYXNfY29sdW1uX21hc3Rlcl9rZXlf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgKKyAgICAo U0VMRUNUIG9pZCBGUk9NIHBnX2NvbG1hc3RlcmtleSBXSEVSRSBjbWtuYW1lPSdjbWsxJyks ICdVU0FHRScpOworIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNf Y29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdf cm9sZXMgV0hFUkUgcm9sbmFtZT0ncmVncmVzc19lbmNfdXNlcjEnKSwgJ2NtazEnLCAnVVNB R0UnKTsKKyBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX2NvbHVt bl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgnY21rMScsICdVU0FHRScpOworIGhhc19jb2x1bW5f bWFzdGVyX2tleV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmls ZWdlKCdyZWdyZXNzX2VuY191c2VyMScsICdjbWsxJywgJ1VTQUdFJyk7CisgaGFzX2NvbHVt bl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB0YmxfNzA0MDsKK1JFVk9LRSBVU0FH RSBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBGUk9NIHJlZ3Jlc3NfZW5jX3VzZXIx OworUkVWT0tFIFVTQUdFIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgRlJPTSByZWdyZXNz X2VuY191c2VyMTsKKy0tIG5vdCB1c2VmdWwgaGVyZSwganVzdCBjaGVja2luZyB0aGF0IGl0 IHJ1bnMKK0RJU0NBUkQgQ09MVU1OIEVOQ1JZUFRJT04gS0VZUzsKK0RST1AgQ09MVU1OIE1B U1RFUiBLRVkgY21rMSBSRVNUUklDVDsgIC0tIGZhaWwKK0VSUk9SOiAgY2Fubm90IGRyb3Ag Y29sdW1uIG1hc3RlciBrZXkgY21rMSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSBvZiBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgY2VrMSBmb3IgY29sdW1uIG1hc3RlciBrZXkgY21rMSBkZXBlbmRzIG9u IGNvbHVtbiBtYXN0ZXIga2V5IGNtazEKK2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIG9m IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjZWs0IGZvciBjb2x1bW4gbWFzdGVyIGtleSBjbWsx IGRlcGVuZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorSElOVDogIFVzZSBEUk9QIC4u LiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVSIENP TFVNTiBNQVNURVIgS0VZIGNtazIgUkVOQU1FIFRPIGNtazM7CitBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWszOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4g bWFzdGVyIGtleSAiY21rMyIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hICJwdWJsaWMiCitB TFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWt4IFJFTkFNRSBUTyBjbWt5OyAgLS0gZmFpbAor RVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSAiY21reCIgZG9lcyBub3QgZXhpc3QKK0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFNRSBUTyBjZWszOworQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazM7ICAtLSBmYWlsCitFUlJP UjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiY2VrMyIgYWxyZWFkeSBleGlzdHMgaW4gc2No ZW1hICJwdWJsaWMiCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUg VE8gY2VreTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWt4 IiBkb2VzIG5vdCBleGlzdAorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19l bmNfdXNlcjEnOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZhaWwK K0VSUk9SOiAgbXVzdCBiZSBvd25lciBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2VrMwor RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gZmFpbAorRVJST1I6ICBtdXN0IGJl IG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5IGNtazMKK1JFU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTjsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVncmVz c19lbmNfdXNlcjE7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05FUiBU TyByZWdyZXNzX2VuY191c2VyMTsKK1xkY2VrIGNlazMKKyAgICAgICAgIExpc3Qgb2YgY29s dW1uIGVuY3J5cHRpb24ga2V5cworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBPd25lciAgICAg ICB8IE1hc3RlciBrZXkgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBwdWJsaWMgfCBjZWszIHwgcmVncmVzc19lbmNfdXNlcjEgfCBjbWsy YQorIHB1YmxpYyB8IGNlazMgfCByZWdyZXNzX2VuY191c2VyMSB8IGNtazMKKygyIHJvd3Mp CisKK1xkY21rIGNtazMKKyAgICAgICAgTGlzdCBvZiBjb2x1bW4gbWFzdGVyIGtleXMKKyBT Y2hlbWEgfCBOYW1lIHwgICAgICAgT3duZXIgICAgICAgfCBSZWFsbSAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBwdWJsaWMgfCBjbWszIHwgcmVn cmVzc19lbmNfdXNlcjEgfCAKKygxIHJvdykKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiAncmVncmVzc19lbmNfdXNlcjEnOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MzsgIC0tIG9rIG5vdworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gb2sgbm93 CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsKK0FM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMWEpOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgImNlazEiIGhhcyBubyBkYXRhIGZvciBtYXN0ZXIga2V5ICJjbWsxYSIKK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5 ID0gZmFpbCk7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJmYWlsIiBk b2VzIG5vdCBleGlzdAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBW QUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwgYWxnb3JpdGhtID0gJ2ZvbycpOyAg LS0gZmFpbAorRVJST1I6ICBhdHRyaWJ1dGUgImFsZ29yaXRobSIgbXVzdCBub3QgYmUgc3Bl Y2lmaWVkCitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0OworRFJPUCBDT0xVTU4g RU5DUllQVElPTiBLRVkgZmFpbDsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJm YWlsIiBkb2VzIG5vdCBleGlzdAorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgSUYgRVhJ U1RTIG5vbmV4aXN0ZW50OworTk9USUNFOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJub25l eGlzdGVudCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitEUk9QIENPTFVNTiBNQVNURVIg S0VZIGNtazFhOworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBmYWlsOworRVJST1I6ICBjb2x1 bW4gbWFzdGVyIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0RST1AgQ09MVU1OIE1BU1RF UiBLRVkgSUYgRVhJU1RTIG5vbmV4aXN0ZW50OworTk9USUNFOiAgY29sdW1uIG1hc3RlciBr ZXkgIm5vbmV4aXN0ZW50IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0RST1AgUk9MRSBy ZWdyZXNzX2VuY191c2VyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb2JqZWN0X2FkZHJlc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmpl Y3RfYWRkcmVzcy5vdXQKaW5kZXggZmM0MmQ0MThiZi4uNzdmZWRjZThhYSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKQEAgLTM4LDYg KzM4LDggQEAgQ1JFQVRFIFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIg YWRkcl9mZHc7CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBT RVJWRVIgImludGVnZXIiOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJl Z3Jlc3NfYWRkcl91c2VyIElOIFNDSEVNQSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBU TyByZWdyZXNzX2FkZHJfdXNlcjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9M RSByZWdyZXNzX2FkZHJfdXNlciBSRVZPS0UgREVMRVRFIE9OIFRBQkxFUyBGUk9NIHJlZ3Jl c3NfYWRkcl91c2VyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOworQ1JF QVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlayBXSVRIIFZBTFVFUyAoY29sdW1u X21hc3Rlcl9rZXkgPSBhZGRyX2NtaywgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEn LCBlbmNyeXB0ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5zZm9ybSB3b3VsZCBiZSBx dWl0ZSB1bnNhZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0gZXhjZXB0IHRoYXQgdGhl IFNRTCBsYW5ndWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFuc2Zvcm1zOgogQ1JFQVRF IFRSQU5TRk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC0xMDcsNyArMTA5LDggQEAg QkVHSU4KICAgICAgICAgKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAoJ3RleHQgc2VhcmNo IGNvbmZpZ3VyYXRpb24nKSwKICAgICAgICAgKCdwb2xpY3knKSwgKCd1c2VyIG1hcHBpbmcn KSwgKCdkZWZhdWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogICAgICAgICAoJ29wZXJhdG9y IG9mIGFjY2VzcyBtZXRob2QnKSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3MgbWV0aG9kJyksCi0g ICAgICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRp b24nKQorICAgICAgICAoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScpLCAoJ3B1YmxpY2F0aW9u IHJlbGF0aW9uJyksCisgICAgICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5JyksICgnY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnKSwgKCdjb2x1bW4gbWFzdGVyIGtleScpCiAgICAg TE9PUAogICAgICAgICBGT1IgbmFtZXMgSU4gVkFMVUVTICgne2VpbnN9JyksICgne2FkZHJf bnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBkcmVpfScpCiAgICAgICAgIExPT1AKQEAg LTMyNyw2ICszMzAsMjQgQEAgV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxh dGlvbix7YWRkcl9uc3AsendlaX0se306IGFyZ3VtZW50IGxpc3QgbGVuZ3QKIFdBUk5JTkc6 ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2FkZHJfbnNwLHp3ZWl9LHtpbnRl Z2VyfTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90IGV4aXN0CiBXQVJOSU5H OiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtlaW5zLHp3ZWksZHJlaX0se306 IGFyZ3VtZW50IGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCiBXQVJOSU5HOiAgZXJy b3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9 OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJlaW5z Lnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5 LHtlaW5zfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlz dAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2VpbnN9LHtp bnRlZ2VyfTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlzdAor V0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2FkZHJfbnNwLHp3 ZWl9LHt9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90 IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7YWRk cl9uc3AsendlaX0se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImFkZHJfbnNw Lnp3ZWkiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNy eXB0aW9uIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGVpbnMuendlaS5kcmVpCitXQVJOSU5HOiAgZXJy b3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2Vy fTogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBlaW5z Lnp3ZWkuZHJlaQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg ZGF0YSx7ZWluc30se306IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiZWlucyIgZG9lcyBub3Qg ZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEs e2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5v dCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0 YSx7YWRkcl9uc3AsendlaX0se306IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiYWRkcl9uc3Au endlaSIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5 cHRpb24ga2V5IGRhdGEse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogY29sdW1uIGVuY3J5 cHRpb24ga2V5ICJhZGRyX25zcC56d2VpIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVy cm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWlucyx6d2VpLGRyZWl9LHt9 OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGVpbnMu endlaS5kcmVpCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBk YXRhLHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGVpbnMuendlaS5kcmVpCitXQVJOSU5HOiAgZXJy b3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zfSx7fTogY29sdW1uIG1hc3RlciBrZXkg ImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0 ZXIga2V5LHtlaW5zfSx7aW50ZWdlcn06IGNvbHVtbiBtYXN0ZXIga2V5ICJlaW5zIiBkb2Vz IG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRk cl9uc3AsendlaX0se306IGNvbHVtbiBtYXN0ZXIga2V5ICJhZGRyX25zcC56d2VpIiBkb2Vz IG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRk cl9uc3AsendlaX0se2ludGVnZXJ9OiBjb2x1bW4gbWFzdGVyIGtleSAiYWRkcl9uc3Auendl aSIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIG1hc3RlciBr ZXkse2VpbnMsendlaSxkcmVpfSx7fTogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUg bm90IGltcGxlbWVudGVkOiBlaW5zLnp3ZWkuZHJlaQorV0FSTklORzogIGVycm9yIGZvciBj b2x1bW4gbWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBlaW5zLnp3ZWkuZHJlaQog LS0gdGhlc2Ugb2JqZWN0IHR5cGVzIGNhbm5vdCBiZSBxdWFsaWZpZWQgbmFtZXMKIFNFTEVD VCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2xhbmd1YWdlJywgJ3tvbmV9JywgJ3t9Jyk7CiBF UlJPUjogIGxhbmd1YWdlICJvbmUiIGRvZXMgbm90IGV4aXN0CkBAIC00MDksNiArNDMwLDkg QEAgV0lUSCBvYmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAgICAgKCd0 eXBlJywgJ3thZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogICAgICgnY2FzdCcsICd7aW50 OH0nLCAne2ludDR9JyksCiAgICAgKCdjb2xsYXRpb24nLCAne2RlZmF1bHR9JywgJ3t9Jyks CisgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJfY2VrfScsICd7fScpLAor ICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2FkZHJfY2VrfScsICd7YWRk cl9jbWt9JyksCisgICAgKCdjb2x1bW4gbWFzdGVyIGtleScsICd7YWRkcl9jbWt9JywgJ3t9 JyksCiAgICAgKCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGFf Y2hrfScsICd7fScpLAogICAgICgnZG9tYWluIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLmdl bmRvbWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKICAgICAoJ2NvbnZlcnNpb24nLCAne3BnX2Nh dGFsb2csIGtvaThfcl90b19taWN9JywgJ3t9JyksCkBAIC01MDUsNiArNTI5LDkgQEAgc3Vi c2NyaXB0aW9ufE5VTEx8cmVncmVzc19hZGRyX3N1YnxyZWdyZXNzX2FkZHJfc3VifHQKIHB1 YmxpY2F0aW9ufE5VTEx8YWRkcl9wdWJ8YWRkcl9wdWJ8dAogcHVibGljYXRpb24gcmVsYXRp b258TlVMTHxOVUxMfGFkZHJfbnNwLmdlbnRhYmxlIGluIHB1YmxpY2F0aW9uIGFkZHJfcHVi fHQKIHB1YmxpY2F0aW9uIG5hbWVzcGFjZXxOVUxMfE5VTEx8YWRkcl9uc3AgaW4gcHVibGlj YXRpb24gYWRkcl9wdWJfc2NoZW1hfHQKK2NvbHVtbiBtYXN0ZXIga2V5fGFkZHJfbnNwfGFk ZHJfY21rfGFkZHJfbnNwLmFkZHJfY21rfHQKK2NvbHVtbiBlbmNyeXB0aW9uIGtleXxhZGRy X25zcHxhZGRyX2Nla3xhZGRyX25zcC5hZGRyX2Nla3x0Citjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgZGF0YXxOVUxMfE5VTEx8b2YgYWRkcl9uc3AuYWRkcl9jZWsgZm9yIGFkZHJfbnNwLmFk ZHJfY21rfHQKIC0tLQogLS0tIENsZWFudXAgcmVzb3VyY2VzCiAtLS0KQEAgLTUxNyw2ICs1 NDQsOCBAQCBkcm9wIGNhc2NhZGVzIHRvIHVzZXIgbWFwcGluZyBmb3IgcmVncmVzc19hZGRy X3VzZXIgb24gc2VydmVyIGludGVnZXIKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWI7CiBE Uk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTsKIERST1AgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfYWRkcl9zdWI7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlazsK K0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgYWRkcl9jbWs7CiBEUk9QIFNDSEVNQSBhZGRyX25z cCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBvYmplY3Rz CiBERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIGRpY3Rpb25hcnkgYWRk cl90c19kaWN0CkBAIC01NDcsNiArNTc2LDkgQEAgV0lUSCBvYmplY3RzIChjbGFzc2lkLCBv YmppZCwgb2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX3R5cGUnOjpyZWdjbGFzcywg MCwgMCksIC0tIG5vIHR5cGUKICAgICAoJ3BnX2Nhc3QnOjpyZWdjbGFzcywgMCwgMCksIC0t IG5vIGNhc3QKICAgICAoJ3BnX2NvbGxhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g Y29sbGF0aW9uCisgICAgKCdwZ19jb2xlbmNrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICAgICgncGdfY29sZW5ja2V5ZGF0YSc6OnJlZ2Ns YXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEKKyAgICAoJ3Bn X2NvbG1hc3RlcmtleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIG1hc3RlciBr ZXkKICAgICAoJ3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbnN0 cmFpbnQKICAgICAoJ3BnX2NvbnZlcnNpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNv bnZlcnNpb24KICAgICAoJ3BnX2F0dHJkZWYnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGRl ZmF1bHQgYXR0cmlidXRlCkBAIC02MzQsNSArNjY2LDggQEAgT1JERVIgQlkgb2JqZWN0cy5j bGFzc2lkLCBvYmplY3RzLm9iamlkLCBvYmplY3RzLm9ianN1YmlkOwogKCIoIiJwdWJsaWNh dGlvbiByZWxhdGlvbiIiLCwsKSIpfCgiKCIicHVibGljYXRpb24gcmVsYXRpb24iIiwsKSIp fE5VTEwKICgiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIsLCwpIil8KCIoIiJwdWJsaWNh dGlvbiBuYW1lc3BhY2UiIiwsKSIpfE5VTEwKICgiKCIicGFyYW1ldGVyIEFDTCIiLCwsKSIp fCgiKCIicGFyYW1ldGVyIEFDTCIiLCwpIil8TlVMTAorKCIoIiJjb2x1bW4gbWFzdGVyIGtl eSIiLCwsKSIpfCgiKCIiY29sdW1uIG1hc3RlciBrZXkiIiwsKSIpfE5VTEwKKygiKCIiY29s dW1uIGVuY3J5cHRpb24ga2V5IiIsLCwpIil8KCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXki IiwsKSIpfE5VTEwKKygiKCIiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiIiwsLCkiKXwo IigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiIsLCkiKXxOVUxMCiAtLSByZXN0b3Jl IG5vcm1hbCBvdXRwdXQgbW9kZQogXGFcdApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29p ZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJlLi4yMjZmNWU0MDRlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtNzMsNiArNzMsOCBAQCBOT1RJQ0U6 ICBjaGVja2luZyBwZ190eXBlIHt0eXBiYXNldHlwZX0gPT4gcGdfdHlwZSB7b2lkfQogTk9U SUNFOiAgY2hlY2tpbmcgcGdfdHlwZSB7dHlwY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24g e29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVsaWR9ID0+IHBn X2NsYXNzIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dHR5cGlk fSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0 dGNla30gPT4gcGdfY29sZW5ja2V5IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRy aWJ1dGUge2F0dHVzZXJ0eXBpZH0gPT4gcGdfdHlwZSB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfYXR0cmlidXRlIHthdHRjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQog Tk9USUNFOiAgY2hlY2tpbmcgcGdfY2xhc3Mge3JlbG5hbWVzcGFjZX0gPT4gcGdfbmFtZXNw YWNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsdHlwZX0gPT4gcGdf dHlwZSB7b2lkfQpAQCAtMjY2LDMgKzI2OCw5IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbiB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNo ZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQog Tk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdf c3Vic2NyaXB0aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25f cmVsIHtzcnJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdf Y29sbWFzdGVya2V5IHtjbWtuYW1lc3BhY2V9ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9U SUNFOiAgY2hlY2tpbmcgcGdfY29sbWFzdGVya2V5IHtjbWtvd25lcn0gPT4gcGdfYXV0aGlk IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xlbmNrZXkge2Nla25hbWVzcGFjZX0g PT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xlbmNrZXkg e2Nla293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2Nv bGVuY2tleWRhdGEge2NrZGNla2lkfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElDRTog IGNoZWNraW5nIHBnX2NvbGVuY2tleWRhdGEge2NrZGNta2lkfSA9PiBwZ19jb2xtYXN0ZXJr ZXkge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nh bml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0Cmlu ZGV4IDAyZjUzNDhhYjEuLmQ0OTNhYzVmN2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMTU5LDcgKzE1OSw4IEBAIE9SREVSIEJZIDEsIDI7 CiAgdGV4dCAgICAgICAgICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcKICB0 aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUK ICB0eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAotKDQgcm93cykK KyBwZ19lbmNyeXB0ZWRfZGV0ICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfcm5kCisoNSBy b3dzKQogCiBTRUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMF06OnJlZ3R5cGUsIHAy LnByb2FyZ3R5cGVzWzBdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2Mg QVMgcDIKQEAgLTE3NSwxMyArMTc2LDE1IEBAIFdIRVJFIHAxLm9pZCAhPSBwMi5vaWQgQU5E CiBPUkRFUiBCWSAxLCAyOwogICAgICAgICAgcHJvYXJndHlwZXMgICAgICAgICB8ICAgICAg IHByb2FyZ3R5cGVzICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgYnl0ZWEgICAgICAgICAgICAgICAgICAgICAg IHwgcGdfZW5jcnlwdGVkX2RldAogIGJpZ2ludCAgICAgICAgICAgICAgICAgICAgICB8IHhp ZDgKICB0ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIKICB0ZXh0ICAg ICAgICAgICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZwogIHRpbWVzdGFtcCB3 aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZQogIGJpdCAgICAg ICAgICAgICAgICAgICAgICAgICB8IGJpdCB2YXJ5aW5nCiAgdHhpZF9zbmFwc2hvdCAgICAg ICAgICAgICAgIHwgcGdfc25hcHNob3QKLSg2IHJvd3MpCisgcGdfZW5jcnlwdGVkX2RldCAg ICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX3JuZAorKDggcm93cykKIAogU0VMRUNUIERJU1RJ TkNUIHAxLnByb2FyZ3R5cGVzWzFdOjpyZWd0eXBlLCBwMi5wcm9hcmd0eXBlc1sxXTo6cmVn dHlwZQogRlJPTSBwZ19wcm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBAIC0xOTcsMTIgKzIw MCwxMyBAQCBXSEVSRSBwMS5vaWQgIT0gcDIub2lkIEFORAogT1JERVIgQlkgMSwgMjsKICAg ICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAgfCAgICAgICBwcm9hcmd0eXBlcyAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIGJ5dGVhICAgICAgICAgICAgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9kZXQK ICBpbnRlZ2VyICAgICAgICAgICAgICAgICAgICAgfCB4aWQKICB0aW1lc3RhbXAgd2l0aG91 dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBiaXQgICAgICAgICAg ICAgICAgICAgICAgICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNob3QgICAgICAgICAg ICAgICB8IHBnX3NuYXBzaG90CiAgYW55cmFuZ2UgICAgICAgICAgICAgICAgICAgIHwgYW55 bXVsdGlyYW5nZQotKDUgcm93cykKKyg2IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5w cm9hcmd0eXBlc1syXTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMl06OnJlZ3R5cGUKIEZS T00gcGdfcHJvYyBBUyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtODcyLDYgKzg3Niw4IEBAIHhp ZDhnZSh4aWQ4LHhpZDgpCiB4aWQ4ZXEoeGlkOCx4aWQ4KQogeGlkOG5lKHhpZDgseGlkOCkK IHhpZDhjbXAoeGlkOCx4aWQ4KQorcGdfZW5jcnlwdGVkX2RldF9lcShwZ19lbmNyeXB0ZWRf ZGV0LHBnX2VuY3J5cHRlZF9kZXQpCitwZ19lbmNyeXB0ZWRfZGV0X25lKHBnX2VuY3J5cHRl ZF9kZXQscGdfZW5jcnlwdGVkX2RldCkKIC0tIHJlc3RvcmUgbm9ybWFsIG91dHB1dCBtb2Rl CiBcYVx0CiAtLSBMaXN0IG9mIGZ1bmN0aW9ucyB1c2VkIGJ5IGxpYnBxJ3MgZmUtbG9iai5j CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0CmluZGV4IGE2 NDBjZmM0NzYuLjc0MjI3MjIyNWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdHlwZV9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dHlwZV9zYW5pdHkub3V0CkBAIC03NSw3ICs3NSw5IEBAIE9SREVSIEJZIHQxLm9pZDsKICA0 NjAwIHwgcGdfYnJpbl9ibG9vbV9zdW1tYXJ5CiAgNDYwMSB8IHBnX2JyaW5fbWlubWF4X211 bHRpX3N1bW1hcnkKICA1MDE3IHwgcGdfbWN2X2xpc3QKLSg2IHJvd3MpCisgODI0MyB8IHBn X2VuY3J5cHRlZF9kZXQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZAorKDggcm93cykKIAog LS0gTWFrZSBzdXJlIHR5cGFycmF5IHBvaW50cyB0byBhICJ0cnVlIiBhcnJheSB0eXBlIG9m IG91ciBvd24gYmFzZQogU0VMRUNUIHQxLm9pZCwgdDEudHlwbmFtZSBhcyBiYXNldHlwZSwg dDIudHlwbmFtZSBhcyBhcnJheXR5cGUsCkBAIC03MTYsNiArNzE4LDggQEAgU0VMRUNUIG9p ZCwgdHlwbmFtZSwgdHlwdHlwZSwgdHlwZWxlbSwgdHlwYXJyYXkKICAgV0hFUkUgb2lkIDwg MTYzODQgQU5ECiAgICAgLS0gRXhjbHVkZSBwc2V1ZG90eXBlcyBhbmQgY29tcG9zaXRlIHR5 cGVzLgogICAgIHR5cHR5cGUgTk9UIElOICgncCcsICdjJykgQU5ECisgICAgLS0gRXhjbHVk ZSBlbmNyeXB0aW9uIGludGVybmFsIHR5cGVzLgorICAgIG9pZCAhPSBBTEwoQVJSQVlbJ3Bn X2VuY3J5cHRlZF9kZXQnLCAncGdfZW5jcnlwdGVkX3JuZCddOjpyZWd0eXBlW10pIEFORAog ICAgIC0tIFRoZXNlIHJlZyogdHlwZXMgY2Fubm90IGJlIHBnX3VwZ3JhZGVkLCBzbyBkaXNj YXJkIHRoZW0uCiAgICAgb2lkICE9IEFMTChBUlJBWVsncmVncHJvYycsICdyZWdwcm9jZWR1 cmUnLCAncmVnb3BlcicsCiAgICAgICAgICAgICAgICAgICAgICAncmVnb3BlcmF0b3InLCAn cmVnY29uZmlnJywgJ3JlZ2RpY3Rpb25hcnknLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUKaW5kZXggMTVlMDE1YjNkNi4uNTc3YTZkNGIyZSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCkBAIC05OCw3ICs5OCw3IEBAIHRlc3Q6IHB1YmxpY2F0aW9uIHN1 YnNjcmlwdGlvbgogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCiAjIHNlbGVj dF92aWV3cyBkZXBlbmRzIG9uIGNyZWF0ZV92aWV3CiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHNl bGVjdF92aWV3cyBwb3J0YWxzX3AyIGZvcmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBn dWMgYml0bWFwb3BzIGNvbWJvY2lkIHRzZWFyY2ggdHNkaWN0cyBmb3JlaWduX2RhdGEgd2lu ZG93IHhtbG1hcCBmdW5jdGlvbmFsX2RlcHMgYWR2aXNvcnlfbG9jayBpbmRpcmVjdF90b2Fz dCBlcXVpdmNsYXNzCit0ZXN0OiBzZWxlY3Rfdmlld3MgcG9ydGFsc19wMiBmb3JlaWduX2tl eSBjbHVzdGVyIGRlcGVuZGVuY3kgZ3VjIGJpdG1hcG9wcyBjb21ib2NpZCB0c2VhcmNoIHRz ZGljdHMgZm9yZWlnbl9kYXRhIHdpbmRvdyB4bWxtYXAgZnVuY3Rpb25hbF9kZXBzIGFkdmlz b3J5X2xvY2sgaW5kaXJlY3RfdG9hc3QgZXF1aXZjbGFzcyBjb2x1bW5fZW5jcnlwdGlvbgog CiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cyAoSlNP TiByZWxhdGVkKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21h aW4uYyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKaW5kZXggNDI3NDI5 OTc1ZS4uNTdjN2QyYmVjMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdy ZXNzX21haW4uYworKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCkBA IC04Miw3ICs4Miw3IEBAIHBzcWxfc3RhcnRfdGVzdChjb25zdCBjaGFyICp0ZXN0bmFtZSwK IAkJCQkJICAgYmluZGlyID8gYmluZGlyIDogIiIsCiAJCQkJCSAgIGJpbmRpciA/ICIvIiA6 ICIiLAogCQkJCQkgICBkYmxpc3QtPnN0ciwKLQkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1v biAtdiBISURFX1RPQVNUX0NPTVBSRVNTSU9OPW9uIiwKKwkJCQkJICAgIi12IEhJREVfVEFC TEVBTT1vbiAtdiBISURFX1RPQVNUX0NPTVBSRVNTSU9OPW9uIC12IEhJREVfQ09MVU1OX0VO Q1JZUFRJT049b24iLAogCQkJCQkgICBpbmZpbGUsCiAJCQkJCSAgIG91dGZpbGUpOwogCWlm IChvZmZzZXQgPj0gc2l6ZW9mKHBzcWxfY21kKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2NvbHVtbl9lbmNyeXB0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi44ZDYzMjAwMTVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCkBAIC0wLDAgKzEsMjk3IEBACitcc2V0IEhJ REVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKKworQ1JFQVRFIFJPTEUgcmVncmVzc19lbmNf dXNlcjE7CisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJl YWxtID0gJ3Rlc3QnCispOworCitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEg SVMgJ2NvbHVtbiBtYXN0ZXIga2V5JzsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNt azFhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworCitDUkVBVEUgQ09MVU1OIE1B U1RFUiBLRVkgY21rMjsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIFdJVEgg KAorICAgIHJlYWxtID0gJ3Rlc3R4JworKTsKKworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMmEgKHJlYWxtID0gJ3Rlc3QyJyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgZmFpbCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAor ICAgIGFsZ29yaXRobSA9ICdmb28nLCAgLS0gaW52YWxpZAorICAgIGVuY3J5cHRlZF92YWx1 ZSA9ICdceERFQURCRUVGJworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsxIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAg YWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9 ICdceERFQURCRUVGJworKTsKKworQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5JzsKKworQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNt azFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0 ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisKKy0tIGR1cGxpY2F0ZQorQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVy X2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAg ICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBmYWlsIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkg PSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5j cnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazIgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMiwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlw dGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispLAorKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5 ID0gY21rMmEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVu Y3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9 IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5 cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworQ1JFQVRFIFRBQkxFIHRibF9mYWls ICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBub3RleGlzdCkKKyk7CisKK0NSRUFURSBUQUJM RSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgYWxnb3JpdGhtID0g J2ZvbycpCispOworCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAg IGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9u X2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IHdyb25nKQorKTsKKworQ1JFQVRFIFRB QkxFIHRibF8yOWYzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworXGQg dGJsXzI5ZjMKK1xkKyB0YmxfMjlmMworCitDUkVBVEUgVEFCTEUgdGJsXzQ0N2YgKAorICAg IGEgaW50LAorICAgIGIgdGV4dAorKTsKKworQUxURVIgVEFCTEUgdGJsXzQ0N2YgQUREIENP TFVNTiBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNl azEpOworCitcZCB0YmxfNDQ3ZgorXGQrIHRibF80NDdmCisKK0NSRUFURSBUQUJMRSB0Ymxf NDg5NyAoTElLRSB0YmxfNDQ3Zik7CitDUkVBVEUgVEFCTEUgdGJsXzY5NzggKExJS0UgdGJs XzQ0N2YgSU5DTFVESU5HIEVOQ1JZUFRFRCk7CisKK1xkKyB0YmxfNDg5NworXGQrIHRibF82 OTc4CisKK0NSRUFURSBWSUVXIHZpZXdfM2JjOSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYz OworCitcZCsgdmlld18zYmM5CisKK0NSRUFURSBUQUJMRSB0YmxfMjM4NiBBUyBTRUxFQ1Qg KiBGUk9NIHRibF8yOWYzIFdJVEggTk8gREFUQTsKKworXGQrIHRibF8yMzg2CisKK0NSRUFU RSBUQUJMRSB0YmxfMjk0MSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzIFdJVEggREFUQTsK KworXGQrIHRibF8yOTQxCisKKy0tIHRlc3QgcGFydGl0aW9uIGRlY2xhcmF0aW9ucworCitD UkVBVEUgVEFCTEUgdGJsXzEzZmEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBU RUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKykgUEFSVElUSU9OIEJZ IFJBTkdFIChhKTsKK0NSRUFURSBUQUJMRSB0YmxfMTNmYV8xIFBBUlRJVElPTiBPRiB0Ymxf MTNmYSBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMDApOworCitcZCsgdGJsXzEzZmEKK1xk KyB0YmxfMTNmYV8xCisKKworLS0gdGVzdCBpbmhlcml0YW5jZQorCitDUkVBVEUgVEFCTEUg dGJsXzM2ZjNfYSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChj b2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworQ1JFQVRFIFRBQkxFIHRibF8z NmYzX2IgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19j ICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNy eXB0aW9uX2tleSA9IGNlazIpCispOworCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfZCAoCisg ICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxLCBlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljKQorKTsKKwor Q1JFQVRFIFRBQkxFIHRibF8zNmYzX2UgKAorICAgIGEgaW50LAorICAgIGIgdGV4dAorKTsK KworLS0gbm90IGltcGxlbWVudGVkIChidXQgY291bGQgYmUgb2spCitDUkVBVEUgVEFCTEUg dGJsXzM2ZjNfYWIgKGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfYik7 CitcZCsgdGJsXzM2ZjNfYWIKKy0tIG5vdCBpbXBsZW1lbnRlZCAoYnV0IHNob3VsZCBmYWls KQorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FjIChjIGludCkgSU5IRVJJVFMgKHRibF8zNmYz X2EsIHRibF8zNmYzX2MpOworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FkIChjIGludCkgSU5I RVJJVFMgKHRibF8zNmYzX2EsIHRibF8zNmYzX2QpOworLS0gZmFpbAorQ1JFQVRFIFRBQkxF IHRibF8zNmYzX2FlIChjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EsIHRibF8zNmYzX2Up OworCistLSBvaworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FfMSAoYiB0ZXh0IEVOQ1JZUFRF RCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwgYyBpbnQpIElOSEVSSVRT ICh0YmxfMzZmM19hKTsKK1xkKyB0YmxfMzZmM19hXzEKKy0tIGZhaWwKK0NSRUFURSBUQUJM RSB0YmxfMzZmM19hXzIgKGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRp b25fa2V5ID0gY2VrMiksIGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSk7CitDUkVBVEUg VEFCTEUgdGJsXzM2ZjNfYV8yIChiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNy eXB0aW9uX2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMpLCBj IGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EpOworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2Ff MiAoYiB0ZXh0LCBjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EpOworCitEUk9QIFRBQkxF IHRibF8zNmYzX2IsIHRibF8zNmYzX2MsIHRibF8zNmYzX2QsIHRibF8zNmYzX2U7CisKKwor LS0gU0VUIFNDSEVNQQorQ1JFQVRFIFNDSEVNQSB0ZXN0X3NjaGVtYV9jZTsKK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFNFVCBTQ0hFTUEgdGVzdF9zY2hlbWFfY2U7CitB TFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFNFVCBTQ0hFTUEgdGVzdF9zY2hlbWFfY2U7 CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgdGVzdF9zY2hlbWFfY2UuY2VrMSBTRVQg U0NIRU1BIHB1YmxpYzsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIHRlc3Rfc2NoZW1hX2Nl LmNtazEgU0VUIFNDSEVNQSBwdWJsaWM7CitEUk9QIFNDSEVNQSB0ZXN0X3NjaGVtYV9jZTsK KworCistLSBwcml2aWxlZ2VzCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNz X2VuY191c2VyMSc7CistLSBmYWlsCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEwIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAg YWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9 ICdceERFQURCRUVGJworKTsKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0dSQU5U IFVTQUdFIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgVE8gcmVncmVzc19lbmNfdXNlcjE7 CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CistLSBv ayBub3cKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMTAgV0lUSCBWQUxVRVMg KAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNB RVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCisp OworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMTA7CisKKy0tIGZhaWwKK0NSRUFU RSBUQUJMRSB0YmxfNzA0MCAoYSBpbnQsIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gY2VrMSkpOworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OworR1JBTlQgVVNBR0UgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgVE8gcmVncmVz c19lbmNfdXNlcjE7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191 c2VyMSc7CistLSBvayBub3cKK0NSRUFURSBUQUJMRSB0YmxfNzA0MCAoYSBpbnQsIGIgdGV4 dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkpOworUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworCistLSBoYXNfY29sdW1uX2VuY3J5cHRpb25f a2V5X3ByaXZpbGVnZQorU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmls ZWdlKCdyZWdyZXNzX2VuY191c2VyMScsCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xl bmNrZXkgV0hFUkUgY2VrbmFtZT0nY2VrMScpLCAnVVNBR0UnKTsKK1NFTEVDVCBoYXNfY29s dW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZSgncmVncmVzc19lbmNfdXNlcjEnLCAnY2Vr MScsICdVU0FHRScpOworU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmls ZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfcm9sZXMgV0hFUkUgcm9sbmFtZT0ncmVn cmVzc19lbmNfdXNlcjEnKSwKKyAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX2NvbGVuY2tleSBX SEVSRSBjZWtuYW1lPSdjZWsxJyksICdVU0FHRScpOworU0VMRUNUIGhhc19jb2x1bW5fZW5j cnlwdGlvbl9rZXlfcHJpdmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY29sZW5j a2V5IFdIRVJFIGNla25hbWU9J2NlazEnKSwgJ1VTQUdFJyk7CitTRUxFQ1QgaGFzX2NvbHVt bl9lbmNyeXB0aW9uX2tleV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19y b2xlcyBXSEVSRSByb2xuYW1lPSdyZWdyZXNzX2VuY191c2VyMScpLCAnY2VrMScsICdVU0FH RScpOworU0VMRUNUIGhhc19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfcHJpdmlsZWdlKCdjZWsx JywgJ1VTQUdFJyk7CitTRUxFQ1QgaGFzX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfZW5jX3VzZXIxJywgJ2NlazEnLCAnVVNBR0UnKTsKKworLS0gaGFzX2Nv bHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZQorU0VMRUNUIGhhc19jb2x1bW5fbWFzdGVyX2tl eV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfZW5jX3VzZXIxJywKKyAgICAoU0VMRUNUIG9pZCBGUk9N IHBnX2NvbG1hc3RlcmtleSBXSEVSRSBjbWtuYW1lPSdjbWsxJyksICdVU0FHRScpOworU0VM RUNUIGhhc19jb2x1bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfZW5jX3VzZXIx JywgJ2NtazEnLCAnVVNBR0UnKTsKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJp dmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfcm9sZXMgV0hFUkUgcm9sbmFtZT0n cmVncmVzc19lbmNfdXNlcjEnKSwKKyAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX2NvbG1hc3Rl cmtleSBXSEVSRSBjbWtuYW1lPSdjbWsxJyksICdVU0FHRScpOworU0VMRUNUIGhhc19jb2x1 bW5fbWFzdGVyX2tleV9wcml2aWxlZ2UoCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xt YXN0ZXJrZXkgV0hFUkUgY21rbmFtZT0nY21rMScpLCAnVVNBR0UnKTsKK1NFTEVDVCBoYXNf Y29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlKAorICAgIChTRUxFQ1Qgb2lkIEZST00gcGdf cm9sZXMgV0hFUkUgcm9sbmFtZT0ncmVncmVzc19lbmNfdXNlcjEnKSwgJ2NtazEnLCAnVVNB R0UnKTsKK1NFTEVDVCBoYXNfY29sdW1uX21hc3Rlcl9rZXlfcHJpdmlsZWdlKCdjbWsxJywg J1VTQUdFJyk7CitTRUxFQ1QgaGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSgncmVn cmVzc19lbmNfdXNlcjEnLCAnY21rMScsICdVU0FHRScpOworCitEUk9QIFRBQkxFIHRibF83 MDQwOworUkVWT0tFIFVTQUdFIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEZST00g cmVncmVzc19lbmNfdXNlcjE7CitSRVZPS0UgVVNBR0UgT04gQ09MVU1OIE1BU1RFUiBLRVkg Y21rMSBGUk9NIHJlZ3Jlc3NfZW5jX3VzZXIxOworCisKKy0tIG5vdCB1c2VmdWwgaGVyZSwg anVzdCBjaGVja2luZyB0aGF0IGl0IHJ1bnMKK0RJU0NBUkQgQ09MVU1OIEVOQ1JZUFRJT04g S0VZUzsKKworCitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazEgUkVTVFJJQ1Q7ICAtLSBm YWlsCisKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazIgUkVOQU1FIFRPIGNtazM7CitB TFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWszOyAgLS0gZmFpbAor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21reCBSRU5BTUUgVE8gY21reTsgIC0tIGZhaWwK KworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgUkVOQU1FIFRPIGNlazM7CitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMzsgIC0tIGZh aWwKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWt4IFJFTkFNRSBUTyBjZWt5OyAg LS0gZmFpbAorCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2Vy MSc7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0gZmFpbAorRFJPUCBD T0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gZmFpbAorUkVTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMyBPV05FUiBUTyByZWdyZXNz X2VuY191c2VyMTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszIE9XTkVSIFRP IHJlZ3Jlc3NfZW5jX3VzZXIxOworXGRjZWsgY2VrMworXGRjbWsgY21rMworU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiAncmVncmVzc19lbmNfdXNlcjEnOworRFJPUCBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMzsgIC0tIG9rIG5vdworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBj bWszOyAgLS0gb2sgbm93CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CisKK0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJf a2V5ID0gY21rMWEpOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBW QUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7ICAtLSBmYWlsCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9 IGZhaWwpOyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJP UCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwgYWxnb3JpdGhtID0gJ2Zvbycp OyAgLS0gZmFpbAorCitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0OworRFJPUCBD T0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IElGIEVYSVNUUyBub25leGlzdGVudDsKKworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsx YTsKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgZmFpbDsKK0RST1AgQ09MVU1OIE1BU1RFUiBL RVkgSUYgRVhJU1RTIG5vbmV4aXN0ZW50OworCitEUk9QIFJPTEUgcmVncmVzc19lbmNfdXNl cjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKaW5kZXggMWE2 YzYxZjQ5ZC4uMzVhZjQzMDMyZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv b2JqZWN0X2FkZHJlc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9h ZGRyZXNzLnNxbApAQCAtNDEsNiArNDEsOCBAQCBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBG T1JFSUdOIERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9S IHJlZ3Jlc3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBS SVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBH UkFOVCBBTEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwogQUxURVIgREVGQVVM VCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJFVk9LRSBERUxFVEUg T04gVEFCTEVTIEZST00gcmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVkgYWRkcl9jbWs7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2Vr IFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGFkZHJfY21rLCBhbGdvcml0aG0g PSAnUlNBRVNfT0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9ICcnKTsKIC0tIHRoaXMg dHJhbnNmb3JtIHdvdWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBseWluZyBhcm91bmQs CiAtLSBleGNlcHQgdGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8gYXR0ZW50aW9uIHRv IHRyYW5zZm9ybXM6CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgK QEAgLTk5LDcgKzEwMSw4IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxl X3N0YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogICAgICAgICAoJ3RleHQg c2VhcmNoIHRlbXBsYXRlJyksICgndGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbicpLAogICAg ICAgICAoJ3BvbGljeScpLCAoJ3VzZXIgbWFwcGluZycpLCAoJ2RlZmF1bHQgYWNsJyksICgn dHJhbnNmb3JtJyksCiAgICAgICAgICgnb3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCcpLCAo J2Z1bmN0aW9uIG9mIGFjY2VzcyBtZXRob2QnKSwKLSAgICAgICAgKCdwdWJsaWNhdGlvbiBu YW1lc3BhY2UnKSwgKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpCisgICAgICAgICgncHVibGlj YXRpb24gbmFtZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRpb24nKSwKKyAgICAgICAg KCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknKSwgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0 YScpLCAoJ2NvbHVtbiBtYXN0ZXIga2V5JykKICAgICBMT09QCiAgICAgICAgIEZPUiBuYW1l cyBJTiBWQUxVRVMgKCd7ZWluc30nKSwgKCd7YWRkcl9uc3AsIHp3ZWl9JyksICgne2VpbnMs IHp3ZWksIGRyZWl9JykKICAgICAgICAgTE9PUApAQCAtMTc0LDYgKzE3Nyw5IEBAIENSRUFU RSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQgT04gYSwgYiBGUk9NIGFkZHJf bnNwLmdlbnRhYmxlOwogICAgICgndHlwZScsICd7YWRkcl9uc3AuZ2VuZW51bX0nLCAne30n KSwKICAgICAoJ2Nhc3QnLCAne2ludDh9JywgJ3tpbnQ0fScpLAogICAgICgnY29sbGF0aW9u JywgJ3tkZWZhdWx0fScsICd7fScpLAorICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5Jywg J3thZGRyX2Nla30nLCAne30nKSwKKyAgICAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRh JywgJ3thZGRyX2Nla30nLCAne2FkZHJfY21rfScpLAorICAgICgnY29sdW1uIG1hc3RlciBr ZXknLCAne2FkZHJfY21rfScsICd7fScpLAogICAgICgndGFibGUgY29uc3RyYWludCcsICd7 YWRkcl9uc3AsIGdlbnRhYmxlLCBhX2Noa30nLCAne30nKSwKICAgICAoJ2RvbWFpbiBjb25z dHJhaW50JywgJ3thZGRyX25zcC5nZW5kb21haW59JywgJ3tkb21jb25zdHJ9JyksCiAgICAg KCdjb252ZXJzaW9uJywgJ3twZ19jYXRhbG9nLCBrb2k4X3JfdG9fbWljfScsICd7fScpLApA QCAtMjI4LDYgKzIzNCw4IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxl X3N0YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogRFJPUCBQVUJMSUNBVElP TiBhZGRyX3B1YjsKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hOwogRFJPUCBT VUJTQ1JJUFRJT04gcmVncmVzc19hZGRyX3N1YjsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGFkZHJfY2VrOworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtazsKIAogRFJP UCBTQ0hFTUEgYWRkcl9uc3AgQ0FTQ0FERTsKIApAQCAtMjQ3LDYgKzI1NSw5IEBAIENSRUFU RSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQgT04gYSwgYiBGUk9NIGFkZHJf bnNwLmdlbnRhYmxlOwogICAgICgncGdfdHlwZSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g dHlwZQogICAgICgncGdfY2FzdCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY2FzdAogICAg ICgncGdfY29sbGF0aW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2xsYXRpb24KKyAg ICAoJ3BnX2NvbGVuY2tleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIGVuY3J5 cHRpb24ga2V5CisgICAgKCdwZ19jb2xlbmNrZXlkYXRhJzo6cmVnY2xhc3MsIDAsIDApLCAt LSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YQorICAgICgncGdfY29sbWFzdGVya2V5 Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gbWFzdGVyIGtleQogICAgICgncGdf Y29uc3RyYWludCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29uc3RyYWludAogICAgICgn cGdfY29udmVyc2lvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29udmVyc2lvbgogICAg ICgncGdfYXR0cmRlZic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gZGVmYXVsdCBhdHRyaWJ1 dGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAppbmRleCA3OWVjNDEwYTZj Li4yYmE0YzlhNTQ1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nh bml0eS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCkBA IC01NDQsNiArNTQ0LDggQEAgQ1JFQVRFIFRBQkxFIHRhYl9jb3JlX3R5cGVzIEFTIFNFTEVD VAogICBXSEVSRSBvaWQgPCAxNjM4NCBBTkQKICAgICAtLSBFeGNsdWRlIHBzZXVkb3R5cGVz IGFuZCBjb21wb3NpdGUgdHlwZXMuCiAgICAgdHlwdHlwZSBOT1QgSU4gKCdwJywgJ2MnKSBB TkQKKyAgICAtLSBFeGNsdWRlIGVuY3J5cHRpb24gaW50ZXJuYWwgdHlwZXMuCisgICAgb2lk ICE9IEFMTChBUlJBWVsncGdfZW5jcnlwdGVkX2RldCcsICdwZ19lbmNyeXB0ZWRfcm5kJ106 OnJlZ3R5cGVbXSkgQU5ECiAgICAgLS0gVGhlc2UgcmVnKiB0eXBlcyBjYW5ub3QgYmUgcGdf dXBncmFkZWQsIHNvIGRpc2NhcmQgdGhlbS4KICAgICBvaWQgIT0gQUxMKEFSUkFZWydyZWdw cm9jJywgJ3JlZ3Byb2NlZHVyZScsICdyZWdvcGVyJywKICAgICAgICAgICAgICAgICAgICAg ICdyZWdvcGVyYXRvcicsICdyZWdjb25maWcnLCAncmVnZGljdGlvbmFyeScsCgpiYXNlLWNv bW1pdDogNzFhNzU2MjZkNTI3MWYyYmNkYmRjNDNiOGMxMzA2NWM0NjM0ZmQ5ZgotLSAKMi4z OS4yCgo= --------------o70WLJH23HHIk7c3bJ8gL1Ty--