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 1oDneS-00012g-VD for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Jul 2022 13:52:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oDneR-0005YY-EN for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Jul 2022 13:52:39 +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 1oDneP-0005YE-Ie for pgsql-hackers@lists.postgresql.org; Tue, 19 Jul 2022 13:52:39 +0000 Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oDneB-0003T4-NE for pgsql-hackers@postgresql.org; Tue, 19 Jul 2022 13:52:36 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 697EA5C00AB for ; Tue, 19 Jul 2022 09:52:22 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Tue, 19 Jul 2022 09:52:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1658238742; x=1658325142; bh=R3DnLaf/jGLdN0COMow7qpk4Ej5O uD8pFDpH+8Zm4yA=; b=OfeiEbQln7A4uloyMm4nvPYnKJOAIczKmOOH0SFRjNAi anx+vkulk6A5DxhqiRap2Ss6PB3ORddHKZtfWVIhoA/XYBTffa8CDj0qeNiInw0Z +SdXVQrEYfPTWkoEjvRHgJN2UE7imYsA2Ld5XJMAl2PFIK0enzhYvpNkdU4BtrAL /eecoeQqN6ir+fkhhoxOAFH0OSSWBLxS9UYGqDDIZsYVztbW5ExSjh7HPPb7oyhc 9rKwaxKiPbJTAV3dpyIVqb1pYwaT37D+j1r1C7/iTZscyVLLJzZHmk3m9zUpoAXg QzFjRWVXO+/vhphXemOJCCLKvPvHs39sMucYAeINLQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeltddgieelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 19 Jul 2022 09:52:20 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------Y2IcmrSrYvWHsgelFREJIEO9" Message-ID: Date: Tue, 19 Jul 2022 15:52:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> In-Reply-To: <258c5064-437e-f41e-7537-5e8c343c33cc@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. --------------Y2IcmrSrYvWHsgelFREJIEO9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 12.07.22 20:29, Peter Eisentraut wrote: > Updated patch, to resolve some merge conflicts. Rebased patch, no new functionality --------------Y2IcmrSrYvWHsgelFREJIEO9 Content-Type: text/plain; charset=UTF-8; name="v5-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v5-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSAwMTgyNDhjMzdlMGEzN2NhNzg3YmZkMDllYjNkYTk0YTdhOWRhYjJhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAxOSBKdWwgMjAyMiAxNTo0NjoxNCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjVdIFRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uCgpUaGlzIGZlYXR1 cmUgZW5hYmxlcyB0aGUge2F1dG9tYXRpYyx0cmFuc3BhcmVudH0gZW5jcnlwdGlvbiBhbmQK ZGVjcnlwdGlvbiBvZiBwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRoZSBk YXRhIGZvciB0aG9zZQpjb2x1bW5zIHRoZW4gb25seSBldmVyIGFwcGVhcnMgaW4gY2lwaGVy dGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcwpwcm90ZWN0ZWQgZnJvbSB0aGUgInByeWlu ZyBleWVzIiBvZiBEQkFzLCBzeXNhZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywKZXRjLiAgVGhl IGNhbm9uaWNhbCB1c2UgY2FzZSBmb3IgdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0 IGNhcmQKbnVtYmVycyBlbmNyeXB0ZWQsIGluIGFjY29yZGFuY2Ugd2l0aCBQQ0kgRFNTLCBh cyB3ZWxsIGFzIHNpbWlsYXIKc2l0dWF0aW9ucyBpbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5 IG51bWJlcnMgZXRjLiAgT2YgY291cnNlLCB5b3UKY2FuJ3QgZG8gYW55IGNvbXB1dGF0aW9u cyB3aXRoIGVuY3J5cHRlZCB2YWx1ZXMgb24gdGhlIHNlcnZlciwgYnV0IGZvcgp0aGVzZSB1 c2UgY2FzZXMsIHRoYXQgaXMgbm90IG5lY2Vzc2FyeS4gIFRoaXMgZmVhdHVyZSBkb2VzIHN1 cHBvcnQKZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uIGFzIGFuIGFsdGVybmF0aXZlIHRvIHRo ZSBkZWZhdWx0IHJhbmRvbWl6ZWQKZW5jcnlwdGlvbiwgc28gaW4gdGhhdCBtb2RlIHlvdSBj YW4gZG8gZXF1YWxpdHkgbG9va3VwcywgYXQgdGhlIGNvc3QKb2Ygc29tZSBzZWN1cml0eS4K ClRoaXMgZnVuY3Rpb25hbGl0eSBhbHNvIGV4aXN0cyBpbiBvdGhlciBTUUwgZGF0YWJhc2Ug cHJvZHVjdHMsIHNvIHRoZQpvdmVyYWxsIGNvbmNlcHRzIHdlcmVuJ3QgaW52ZW50ZWQgYnkg bWUgYnkgYW55IG1lYW5zLgoKQWxzbywgdGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRv IHdpdGggdGhlIG9uLWRpc2sgZW5jcnlwdGlvbgpmZWF0dXJlIGJlaW5nIGNvbnRlbXBsYXRl ZCBpbiBwYXJhbGxlbC4gIEJvdGggY2FuIGV4aXN0IGluZGVwZW5kZW50bHkuCgpZb3UgZGVj bGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3RhdGVtZW50 LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMga2V5IGNh bGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBpcyBhIGNh dGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBlbmNyeXB0 ZWQgYnkgYW4gYXNzeW1tZXRyaWMga2V5IGNhbGxlZCB0aGUgY29sdW1uCm1hc3RlciBrZXkg KENNSykuICBUaGUgQ01LIGlzIG5vdCBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGJ1dCBzb21l d2hlcmUKd2hlcmUgdGhlIGNsaWVudCBjYW4gZ2V0IHRvIGl0LCBmb3IgZXhhbXBsZSBpbiBh IGZpbGUgb3IgaW4gYSBrZXkKbWFuYWdlbWVudCBzeXN0ZW0uICBXaGVuIGEgc2VydmVyIHNl bmRzIHJvd3MgY29udGFpbmluZyBlbmNyeXB0ZWQKY29sdW1uIHZhbHVlcyB0byB0aGUgY2xp ZW50LCBpdCBmaXJzdCBzZW5kcyB0aGUgcmVxdWlyZWQgQ01LIGFuZCBDRUsKaW5mb3JtYXRp b24gKG5ldyBwcm90b2NvbCBtZXNzYWdlcyksIHdoaWNoIHRoZSBjbGllbnQgbmVlZHMgdG8g cmVjb3JkLgpUaGVuLCB0aGUgY2xpZW50IGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBh dXRvbWF0aWNhbGx5IGRlY3J5cHQgdGhlCmluY29taW5nIHJvdyBkYXRhIGFuZCBmb3J3YXJk IGl0IGluIHBsYWludGV4dCB0byB0aGUgYXBwbGljYXRpb24uCgpGb3IgdGhlIENNS3MsIGxp YnBxIGhhcyBhIG5ldyBjb25uZWN0aW9uIHBhcmFtZXRlciAiY21rbG9va3VwIiB0aGF0CnNw ZWNpZmllcyB2aWEgYSBtaW5pLWxhbmd1YWdlIHdoZXJlIHRvIGdldCB0aGUga2V5cy4gIFJp Z2h0IG5vdywgeW91CmNhbiB1c2UgImZpbGUiIHRvIHJlYWQgaXQgZnJvbSBhIGZpbGUsIG9y ICJydW4iIHRvIHJ1biBzb21lIHByb2dyYW0sCndoaWNoIGNvdWxkIGdldCBpdCBmcm9tIGEg S01TLgoKVGhlIGdlbmVyYWwgaWRlYSB3b3VsZCBiZSBmb3IgYW4gYXBwbGljYXRpb24gdG8g aGF2ZSBvbmUgQ01LIHBlciBhcmVhCm9mIHNlY3JldCBzdHVmZiwgZm9yIGV4YW1wbGUsIGZv ciBjcmVkaXQgY2FyZCBkYXRhLiAgVGhlIENNSyBjYW4gYmUKcm90YXRlZDogZWFjaCBDRUsg Y2FuIGJlIHJlcHJlc2VudGVkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBkYXRhYmFzZSwKZW5j cnlwdGVkIGJ5IGEgZGlmZmVyZW50IENNSy4gIChUaGUgQ0VLIGNhbid0IGJlIHJvdGF0ZWQg ZWFzaWx5LCBzaW5jZQp0aGF0IHdvdWxkIHJlcXVpcmUgcmVhZGluZyBvdXQgYWxsIHRoZSBk YXRhIGZyb20gYSB0YWJsZS9jb2x1bW4gYW5kCnJlZW5jcnlwdGluZyBpdC4gIFdlIGNvdWxk L3Nob3VsZCBhZGQgc29tZSBjdXN0b20gdG9vbGluZyBmb3IgdGhhdCwKYnV0IGl0IHdvdWxk bid0IGJlIGEgcm91dGluZSBvcGVyYXRpb24uKQoKU2V2ZXJhbCBlbmNyeXB0aW9uIGFsZ29y aXRobXMgYXJlIHByb3ZpZGVkLiAgVGhlIENNSyBwcm9jZXNzIHVzZXMKUEdfQ01LX1JTQUVT X09BRVBfU0hBXzEgb3IgXzI1Ni4gIFRoZSBDRUsgcHJvY2VzcyB1c2VzCkFFQURfQUVTXypf Q0JDX0hNQUNfU0hBXyogd2l0aCBzZXZlcmFsIHN0cmVuZ3Rocy4KCkluIHRoZSBzZXJ2ZXIs IHRoZSBlbmNyeXB0ZWQgZGF0dW1zIGFyZSBzdG9yZWQgaW4gdHlwZXMgY2FsbGVkCnBnX2Vu Y3J5cHRlZF9ybmQgYW5kIHBnX2VuY3J5cHRlZF9kZXQgKGZvciByYW5kb21pemVkIGFuZApk ZXRlcm1pbmlzdGljIGVuY3J5cHRpb24pLiAgVGhlc2UgYXJlIGVzc2VudGlhbGx5IGNvdXNp bnMgb2YgYnl0ZWEuCkZvciB0aGUgcmVzdCBvZiB0aGUgZGF0YWJhc2Ugc3lzdGVtIGJlbG93 IHRoZSBwcm90b2NvbCBoYW5kbGluZywgdGhlcmUKaXMgbm90aGluZyBzcGVjaWFsIGFib3V0 IHRob3NlLiAgRm9yIGV4YW1wbGUsIHBnX2VuY3J5cHRlZF9ybmQgaGFzIG5vCm9wZXJhdG9y cyBhdCBhbGwsIHBnX2VuY3J5cHRlZF9kZXQgaGFzIG9ubHkgYW4gZXF1YWxpdHkgb3BlcmF0 b3IuCnBnX2F0dHJpYnV0ZSBoYXMgYSBuZXcgY29sdW1uIGF0dHJlYWx0eXBpZCB0aGF0IHN0 b3JlcyB0aGUgb3JpZ2luYWwKdHlwZSBvZiB0aGUgZGF0YSBpbiB0aGUgY29sdW1uLiAgVGhp cyBpcyBvbmx5IHVzZWQgZm9yIHByb3ZpZGluZyBpdCB0bwpjbGllbnRzLCBzbyB0aGF0IGhp Z2hlci1sZXZlbCBjbGllbnRzIGNhbiBjb252ZXJ0IHRoZSBkZWNyeXB0ZWQgdmFsdWUKdG8g dGhlaXIgYXBwcm9wcmlhdGUgZGF0YSB0eXBlcyBpbiB0aGVpciBlbnZpcm9ubWVudHMuCgpU T0RPOiBTb21lIHByb3RvY29sIGV4dGVuc2lvbnMgYXJlIHJlcXVpcmVkLiAgVGhlc2Ugc2hv dWxkIGJlIGd1YXJkZWQKYnkgc29tZSBfcHFfLi4uIHNldHRpbmcsIGJ1dCB0aGlzIGlzIG5v dCBkb25lIGluIHRoaXMgcGF0Y2ggeWV0LiAgQXMKbWVudGlvbmVkIGFib3ZlLCBleHRyYSBt ZXNzYWdlcyBhcmUgYWRkZWQgZm9yIHNlbmRpbmcgdGhlIENNS3MgYW5kCkNFS3MuICBJbiB0 aGUgUm93RGVzY3JpcHRpb24gbWVzc2FnZSwgSSBoYXZlIGNvbW1hbmRlZXJlZCB0aGUgZm9y bWF0CmZpZWxkIHRvIGFkZCBhIGJpdCB0aGF0IGluZGljYXRlcyB0aGF0IHRoZSBmaWVsZCBp cyBlbmNyeXB0ZWQuICBUaGlzCmNvdWxkIGJlIG1hZGUgYSBzZXBhcmF0ZSBmaWVsZCwgYW5k IHRoZXJlIHNob3VsZCBwcm9iYWJseSBiZQphZGRpdGlvbmFsIGZpZWxkcyB0byBpbmRpY2F0 ZSB0aGUgYWxnb3JpdGhtIGFuZCBDRUsgbmFtZSwgYnV0IHRoaXMgd2FzCmVhc2llc3QgZm9y IG5vdy4gIFRoZSBQYXJhbWV0ZXJEZXNjcmlwdGlvbiBtZXNzYWdlIGlzIGV4dGVuZGVkIHRv CmNvbnRhaW4gZm9ybWF0IGZpZWxkcyBmb3IgZWFjaCBwYXJhbWV0ZXIsIGZvciB0aGUgc2Ft ZSBwdXJwb3NlLgpBZ2FpbiwgdGhpcyBjb3VsZCBiZSBkb25lIGRpZmZlcmVudGx5LgoKU3Bl YWtpbmcgb2YgcGFyYW1ldGVyIGRlc2NyaXB0aW9ucywgdGhlIHRyaWNraWVzdCBwYXJ0IG9m IHRoaXMgd2hvbGUKdGhpbmcgYXBwZWFycyB0byBiZSBob3cgdG8gZ2V0IHRyYW5zcGFyZW50 bHkgZW5jcnlwdGVkIGRhdGEgaW50byB0aGUKZGF0YWJhc2UgKGFzIG9wcG9zZWQgdG8gcmVh ZGluZyBpdCBvdXQpLiAgSXQgaXMgcmVxdWlyZWQgdG8gdXNlCnByb3RvY29sLWxldmVsIHBy ZXBhcmVkIHN0YXRlbWVudHMgKGkuZS4sIGV4dGVuZGVkIHF1ZXJ5KSBmb3IgdGhpcy4KVGhl IGNsaWVudCBtdXN0IGZpcnN0IHByZXBhcmUgYSBzdGF0ZW1lbnQsIHRoZW4gZGVzY3JpYmUg dGhlIHN0YXRlbWVudAp0byBnZXQgcGFyYW1ldGVyIG1ldGFkYXRhLCB3aGljaCBpbmRpY2F0 ZXMgd2hpY2ggcGFyYW1ldGVycyBhcmUgdG8gYmUKZW5jcnlwdGVkIGFuZCBob3cuICBTbyB0 aGlzIHdpbGwgcmVxdWlyZSBzb21lIGNhcmUgYnkgYXBwbGljYXRpb25zCnRoYXQgd2FudCB0 byBkbyB0aGlzLCBidXQsIHdlbGwsIHRoZXkgcHJvYmFibHkgc2hvdWxkIGJlIGNhcmVmdWwK YW55d2F5LiAgSW4gbGlicHEsIHRoZSBleGlzdGluZyBBUElzIG1ha2UgdGhpcyBkaWZmaWN1 bHQsIGJlY2F1c2UKdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MgdGhlIHJlc3VsdCBvZiBhIGRl c2NyaWJlLXN0YXRlbWVudCBjYWxsIGJhY2sKaW50byBleGVjdXRlLXN0YXRlbWVudC13aXRo LXBhcmFtZXRlcnMuICBJIGFkZGVkIG5ldyBmdW5jdGlvbnMgdGhhdCBkbwp0aGlzLCBzbyB5 b3UgdGhlbiBlc3NlbnRpYWxseSBkbwoKICAgIHJlczAgPSBQUWRlc2NyaWJlUHJlcGFyZWQo Y29ubiwgIiIpOwogICAgcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCAyLCB2YWx1 ZXMsIE5VTEwsIE5VTEwsIDAsIHJlczApOwoKKFRoZSBuYW1lIGNvdWxkIG9idmlvdXNseSBi ZSBpbXByb3ZlZC4pICBPdGhlciBjbGllbnQgQVBJcyB0aGF0IGhhdmUgYQoic3RhdGVtZW50 IGhhbmRsZSIgY29uY2VwdCBjb3VsZCBkbyB0aGlzIG1vcmUgZWxlZ2FudGx5IGFuZCBwcm9i YWJseQp3aXRob3V0IGFueSBBUEkgY2hhbmdlcy4KCkFub3RoZXIgY2hhbGxlbmdlIGlzIHRo YXQgdGhlIHBhcnNlIGFuYWx5c2lzIG11c3QgY2hlY2sgd2hpY2gKdW5kZXJseWluZyBjb2x1 bW4gYSBwYXJhbWV0ZXIgY29ycmVzcG9uZHMgdG8uICBUaGlzIGlzIHNpbWlsYXIgdG8KcmVz b3JpZ3RibCBhbmQgcmVzb3JpZ2NvbCBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLiAgVGhl IGN1cnJlbnQKaW1wbGVtZW50YXRpb24gb2YgdGhpcyB3b3JrcyBmb3IgdGhlIHRlc3QgY2Fz ZXMsIGJ1dCBJIGtub3cgaXQgaGFzCnNvbWUgcHJvYmxlbXMsIHNvIEknbGwgY29udGludWUg d29ya2luZyBpbiB0aGlzLiAgVGhpcyBmdW5jdGlvbmFsaXR5CmlzIGluIHByaW5jaXBsZSBh dmFpbGFibGUgdG8gYWxsIHByZXBhcmVkLXN0YXRlbWVudCB2YXJpYW50cywgbm90IG9ubHkK cHJvdG9jb2wtbGV2ZWwuICBTbyB5b3UgY2FuIHNlZSBpbiB0aGUgdGVzdHMgdGhhdCBJIGV4 cGFuZGVkIHRoZQpwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzIHZpZXcgdG8gc2hvdyB0aGlzIGlu Zm9ybWF0aW9uIGFzIHdlbGwsIHdoaWNoCmFsc28gcHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8g dGVzdCBhbmQgZGVidWcgdGhpcyBmdW5jdGlvbmFsaXR5CmluZGVwZW5kZW50IG9mIGNvbHVt biBlbmNyeXB0aW9uLgoKcHNxbCBkb2Vzbid0IHVzZSBwcmVwYXJlZCBzdGF0ZW1lbnRzLCBz byB3cml0aW5nIGludG8gZW5jcnlwdGVkCmNvbHVtbnMgd291bGRuJ3Qgd29yayBhdCBhbGwg dmlhIHBzcWwuICAoUmVhZGluZyB3b3JrcyBubwpwcm9ibGVtLikgIEkgYWRkZWQgYSBuZXcg cHNxbCBjb21tYW5kIFxnZW5jciB0aGF0IHlvdSBjYW4gdXNlIGxpa2UKCklOU0VSVCBJTlRP IHQxIFZBTFVFUyAoJDEsICQyKSBcZ2VuY3IgJ3ZhbDEnICd2YWwyJwoKVE9ETzogVGhpcyBw YXRjaCB2ZXJzaW9uIGhhcyBhbGwgdGhlIG5lY2Vzc2FyeSBwaWVjZXMgaW4gcGxhY2UgdG8g bWFrZQp0aGlzIHdvcmssIHNvIHlvdSBjYW4gaGF2ZSBhbiBpZGVhIGhvdyB0aGUgb3ZlcmFs bCBzeXN0ZW0gd29ya3MuICBJdApjb250YWlucyBzb21lIGRvY3VtZW50YXRpb24gYW5kIHRl c3RzIHRvIGhlbHAgaWxsdXN0cmF0ZSB0aGUKZnVuY3Rpb25hbGl0eS4gIE1pc3Npbmc6Cgot IGFkZGl0aW9uYWwgRERMIHN1cHBvcnQKLSBwcm90b2NvbCB2ZXJzaW9uaW5nCi0gZm9yd2Fy ZCBhbmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eQotIHBnX2R1bXAgc3VwcG9ydAotIHBzcWwg XGQgc3VwcG9ydAoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVz c2FnZS1pZC9mbGF0Lzg5MTU3OTI5LWMyYjYtODE3Yi02MDI1LThlNGIyZDg5ZDg4ZiU0MGVu dGVycHJpc2VkYi5jb20KLS0tCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVz X2Zkdy5vdXQgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sICAgICAg ICAgICAgICAgICAgICB8ICAxOCArCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAg ICAgICAgICAgICAgICAgfCAyNzUgKysrKysrKwogZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNn bWwgICAgICAgICAgICAgICAgICAgIHwgIDQ3ICsrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwg ICAgICAgICAgICAgICAgICAgICAgICAgfCAzMTAgKysrKysrKwogZG9jL3NyYy9zZ21sL2ds b3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDIzICsKIGRvYy9zcmMvc2dtbC9s aWJwcS5zZ21sICAgICAgICAgICAgICAgICAgICAgICB8IDI1NyArKysrKy0KIGRvYy9zcmMv c2dtbC9wcm90b2NvbC5zZ21sICAgICAgICAgICAgICAgICAgICB8IDM0NiArKysrKysrKwog ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAyICsK IC4uLi9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sICAgICB8IDE0NCAr KysrCiAuLi4vc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgICAgfCAx MDggKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAgICAg fCAgNDIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAg ICB8ICAzMyArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jICAg ICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAg ICAgICB8IDE2MiArKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAg ICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRl LmMgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAg ICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAg ICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAg ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmMgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNj bWRzLmMgICAgICAgICAgICAgfCAyNDUgKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9l dmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv cHJlcGFyZS5jICAgICAgICAgICAgICAgIHwgIDc0ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDc0ICsrCiBzcmMvYmFja2VuZC9leGVj dXRvci9zcGkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQzICstCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyAgICAgICAgICAgICAgfCAgNDMgKy0KIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAgICAgfCAgNTQgKy0KIHNyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDEwICsKIHNy Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgICAgICAgICAgICB8ICA0OCArKwog c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDI2ICst CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMx ICsKIHNyYy9iaW4vcHNxbC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz OSArLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwg IDI5ICstCiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDMgKwogc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggICAgICAgICAgICAgICAgICAgICAg IHwgICA1ICsKIHNyYy9iaW4vcHNxbC9zdGFydHVwLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAxMCArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oICAgICAgICAgICAg ICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0ICAgICAgICAg ICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0ICAgICAg ICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmggICAg ICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0ICAgICAg ICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCAg ICAgICAgICAgIHwgIDU1ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRh dGEuaCAgICAgICAgfCAgNDYgKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVy a2V5LmggICAgICAgICB8ICA0NSArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNz LmRhdCAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0 b3IuZGF0ICAgICAgICAgICB8ICAxMCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFt aWx5LmRhdCAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdCAgICAgICAgICAgICAgIHwgIDEzICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuZGF0ICAgICAgICAgICAgICAgfCAgMTIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190 eXBlLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2Nv bGVuY2NtZHMuaCAgICAgICAgICAgICB8ICAyNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2Fu YWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9wYXJhbS5oICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rj b3AvdGNvcHByb3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS91 dGlscy9wbGFuY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUv dXRpbHMvc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9leHBvcnRzLnR4dCAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jICAgICAgICAgICAgIHwgIDIwICsKIHNyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jICAgICB8IDc1OCArKysrKysrKysr KysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaCAgICAgICAgICAg ICB8ICAzMyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgICAgICAgICAgICAg ICAgfCA1OTQgKysrKysrKysrKysrKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3Rv Y29sMy5jICAgICAgICAgICB8IDEyMyArKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRy YWNlLmMgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJw cS1mZS5oICAgICAgICAgICAgICAgfCAgMjIgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtaW50LmggICAgICAgICAgICAgIHwgIDM0ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25s cy5tayAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC8uZ2l0aWdub3JlICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBx L3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICB8ICAgNyArCiBzcmMvdGVzdC9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy90ZXN0L2NvbHVtbl9l bmNyeXB0aW9uLy5naXRpZ25vcmUgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbi9NYWtlZmlsZSAgICAgICAgICAgfCAgMjkgKwogLi4uL3QvMDAxX2NvbHVt bl9lbmNyeXB0aW9uLnBsICAgICAgICAgICAgICAgIHwgMTgwICsrKysrCiAuLi4vY29sdW1u X2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsICAgfCAxMTggKysrCiBzcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jICAgICAgfCAyMTAgKysrKysKIC4u Li9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBsICAgICB8ICA0MSArCiAu Li4vdHJhY2VzL2Rpc2FsbG93ZWRfaW5fcGlwZWxpbmUudHJhY2UgICAgICAgfCAgIDIgKy0K IC4uLi90cmFjZXMvbXVsdGlfcGlwZWxpbmVzLnRyYWNlICAgICAgICAgICAgICB8ICAgNCAr LQogLi4uL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9ub3N5bmMudHJhY2UgICAgICAgIHwgIDIw ICstCiAuLi4vdHJhY2VzL3BpcGVsaW5lX2Fib3J0LnRyYWNlICAgICAgICAgICAgICAgfCAg IDQgKy0KIC4uLi9saWJwcV9waXBlbGluZS90cmFjZXMvcGlwZWxpbmVfaWRsZS50cmFjZSB8 ICAxNiArLQogLi4uL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9wcmVwYXJlZC50cmFjZSAgICAg IHwgICA2ICstCiAuLi4vdHJhY2VzL3NpbXBsZV9waXBlbGluZS50cmFjZSAgICAgICAgICAg ICAgfCAgIDIgKy0KIC4uLi9saWJwcV9waXBlbGluZS90cmFjZXMvc2luZ2xlcm93LnRyYWNl ICAgICB8ICAgNiArLQogLi4uL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy90cmFuc2FjdGlvbi50 cmFjZSAgIHwgICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlv bi5vdXQgICAgfCAgMzcgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5v dXQgICAgICAgIHwgICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQgICAgICB8ICAxMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJl Lm91dCAgICAgICAgIHwgIDM4ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0ICAgICAgICAgICAgfCAgMjUgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5 cGVfc2FuaXR5Lm91dCAgICAgfCAgMjAgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jl c3NfbWFpbi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bHVtbl9lbmNyeXB0aW9uLnNxbCAgICB8ICAyOCArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9w cmVwYXJlLnNxbCAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3BzcWwuc3FsICAgICAgICAgICAgICAgICB8ICAxNyArCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC90eXBlX3Nhbml0eS5zcWwgICAgICAgICAgfCAgIDQgKy0KIDExNCBmaWxlcyBjaGFuZ2Vk LCA1MTUwIGluc2VydGlvbnMoKyksIDE0MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dt bAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9t YXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5k cy9jb2xlbmNjbWRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NvbGVuY2tleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jb2xlbmNrZXlkYXRhLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1 ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlv bi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Qv MDAyX2Nta19yb3RhdGlvbi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVt bl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBsCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlw dGlvbi5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9w b3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdy ZXNfZmR3Lm91dAppbmRleCBlYmY5ZWEzNTk4Li5kMjVmOWUyNjNkIDEwMDY0NAotLS0gYS9j b250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTk1NzUs NyArOTU3NSw3IEBAIERPICRkJAogICAgIEVORDsKICRkJDsKIEVSUk9SOiAgaW52YWxpZCBv cHRpb24gInBhc3N3b3JkIgotSElOVDogIFZhbGlkIG9wdGlvbnMgaW4gdGhpcyBjb250ZXh0 IGFyZTogc2VydmljZSwgcGFzc2ZpbGUsIGNoYW5uZWxfYmluZGluZywgY29ubmVjdF90aW1l b3V0LCBkYm5hbWUsIGhvc3QsIGhvc3RhZGRyLCBwb3J0LCBvcHRpb25zLCBhcHBsaWNhdGlv bl9uYW1lLCBrZWVwYWxpdmVzLCBrZWVwYWxpdmVzX2lkbGUsIGtlZXBhbGl2ZXNfaW50ZXJ2 YWwsIGtlZXBhbGl2ZXNfY291bnQsIHRjcF91c2VyX3RpbWVvdXQsIHNzbG1vZGUsIHNzbGNv bXByZXNzaW9uLCBzc2xjZXJ0LCBzc2xrZXksIHNzbHJvb3RjZXJ0LCBzc2xjcmwsIHNzbGNy bGRpciwgc3Nsc25pLCByZXF1aXJlcGVlciwgc3NsX21pbl9wcm90b2NvbF92ZXJzaW9uLCBz c2xfbWF4X3Byb3RvY29sX3ZlcnNpb24sIGdzc2VuY21vZGUsIGtyYnNydm5hbWUsIGdzc2xp YiwgdGFyZ2V0X3Nlc3Npb25fYXR0cnMsIHVzZV9yZW1vdGVfZXN0aW1hdGUsIGZkd19zdGFy dHVwX2Nvc3QsIGZkd190dXBsZV9jb3N0LCBleHRlbnNpb25zLCB1cGRhdGFibGUsIHRydW5j YXRhYmxlLCBmZXRjaF9zaXplLCBiYXRjaF9zaXplLCBhc3luY19jYXBhYmxlLCBwYXJhbGxl bF9jb21taXQsIGtlZXBfY29ubmVjdGlvbnMKK0hJTlQ6ICBWYWxpZCBvcHRpb25zIGluIHRo aXMgY29udGV4dCBhcmU6IHNlcnZpY2UsIHBhc3NmaWxlLCBjaGFubmVsX2JpbmRpbmcsIGNv bm5lY3RfdGltZW91dCwgZGJuYW1lLCBob3N0LCBob3N0YWRkciwgcG9ydCwgb3B0aW9ucywg YXBwbGljYXRpb25fbmFtZSwga2VlcGFsaXZlcywga2VlcGFsaXZlc19pZGxlLCBrZWVwYWxp dmVzX2ludGVydmFsLCBrZWVwYWxpdmVzX2NvdW50LCB0Y3BfdXNlcl90aW1lb3V0LCBzc2xt b2RlLCBzc2xjb21wcmVzc2lvbiwgc3NsY2VydCwgc3Nsa2V5LCBzc2xyb290Y2VydCwgc3Ns Y3JsLCBzc2xjcmxkaXIsIHNzbHNuaSwgcmVxdWlyZXBlZXIsIHNzbF9taW5fcHJvdG9jb2xf dmVyc2lvbiwgc3NsX21heF9wcm90b2NvbF92ZXJzaW9uLCBnc3NlbmNtb2RlLCBrcmJzcnZu YW1lLCBnc3NsaWIsIHRhcmdldF9zZXNzaW9uX2F0dHJzLCBjbWtsb29rdXAsIHVzZV9yZW1v dGVfZXN0aW1hdGUsIGZkd19zdGFydHVwX2Nvc3QsIGZkd190dXBsZV9jb3N0LCBleHRlbnNp b25zLCB1cGRhdGFibGUsIHRydW5jYXRhYmxlLCBmZXRjaF9zaXplLCBiYXRjaF9zaXplLCBh c3luY19jYXBhYmxlLCBwYXJhbGxlbF9jb21taXQsIGtlZXBfY29ubmVjdGlvbnMKIENPTlRF WFQ6ICBTUUwgc3RhdGVtZW50ICJBTFRFUiBTRVJWRVIgbG9vcGJhY2tfbm9wdyBPUFRJT05T IChBREQgcGFzc3dvcmQgJ2R1bW15cHcnKSIKIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMyBhdCBFWEVDVVRFCiAtLSBJZiB3ZSBhZGQgYSBwYXNzd29yZCBm b3Igb3VyIHVzZXIgbWFwcGluZyBpbnN0ZWFkLCB3ZSBzaG91bGQgZ2V0IGEgZGlmZmVyZW50 CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCBiL2RvYy9zcmMvc2dt bC9hY3Jvbnltcy5zZ21sCmluZGV4IDllZDE0OGFiODQuLmUyMWM5YmNjZTMgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9hY3Jv bnltcy5zZ21sCkBAIC01Niw2ICs1NiwxNSBAQCA8dGl0bGU+QWNyb255bXM8L3RpdGxlPgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48YWNyb255bT5DRUs8L2Fjcm9ueW0+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb2x1bW4gRW5jcnlwdGlvbiBLZXkKKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZh cmxpc3RlbnRyeT4KICAgICA8dGVybT48YWNyb255bT5DSURSPC9hY3JvbnltPjwvdGVybT4K ICAgICA8bGlzdGl0ZW0+CkBAIC02Nyw2ICs3NiwxNSBAQCA8dGl0bGU+QWNyb255bXM8L3Rp dGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48YWNyb255bT5DTUs8L2Fjcm9ueW0+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb2x1bW4gTWFzdGVyIEtleQorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8 dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3JvbnltPkNQQU48L2Fjcm9ueW0+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNjcwYTU0MDZkNi4uMTI0 ZTg0YTdjMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTEwNSw2ICsxMDUsMjEgQEAgPHRpdGxl PlN5c3RlbSBDYXRhbG9nczwvdGl0bGU+CiAgICAgICA8ZW50cnk+Y29sbGF0aW9ucyAobG9j YWxlIGluZm9ybWF0aW9uKTwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1 Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT5jb2x1bW4gZW5jcnlwdGlvbiBrZXlzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNv bGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5cHRpb24ga2V5IGRh dGE8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5Pjxs aW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij48c3RydWN0bmFtZT5wZ19j b2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+ Y29sdW1uIG1hc3RlciBrZXlzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4K ICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbnN0cmFpbnQiPjxz dHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAg ICAgICA8ZW50cnk+Y2hlY2sgY29uc3RyYWludHMsIHVuaXF1ZSBjb25zdHJhaW50cywgcHJp bWFyeSBrZXkgY29uc3RyYWludHMsIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzPC9lbnRyeT4K QEAgLTEzNjAsNiArMTM3NSw0MCBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRl PC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+YXR0Y2VrPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48 c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0Zmll bGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwgYSByZWZlcmVuY2UgdG8gdGhlIGNv bHVtbiBlbmNyeXB0aW9uIGtleSwgZWxzZSAwLgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5hdHRyZWFsdHlwaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48 c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg SWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIHRoZW4gdGhpcyBjb2x1bW4gaW5kaWNhdGVz IHRoZSB0eXBlIG9mIHRoZQorICAgICAgIGVuY3J5cHRlZCBkYXRhIHRoYXQgaXMgcmVwb3J0 ZWQgdG8gdGhlIGNsaWVudC4gIEZvciBlbmNyeXB0ZWQgY29sdW1ucywKKyAgICAgICB0aGUg ZmllbGQgPHN0cnVjdGZpZWxkPmF0dHR5cGlkPC9zdHJ1Y3RmaWVsZD4gaXMgZWl0aGVyCisg ICAgICAgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gb3IgPHR5cGU+cGdfZW5jcnlw dGVkX3JuZDwvdHlwZT4uICBJZiB0aGUKKyAgICAgICBjb2x1bW4gaXMgbm90IGVuY3J5cHRl ZCwgdGhlbiAwLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRlbmNh bGc8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQxNjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCB0aGUgaWRl bnRpZmllciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG07CisgICAgICAgc2VlIDx4cmVm IGxpbmtlbmQ9InByb3RvY29sLWNlayIvPiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+YXR0aW5oY291bnQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ0PC90eXBlPgpAQCAtMjQzNyw2ICsyNDg2LDIzMiBAQCA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAg PC9wYXJhPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sZW5ja2V5 Ij4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L3Rp dGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICAg PHByaW1hcnk+cGdfY29sZW5ja2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8 cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0 bmFtZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IHRoZSBjb2x1bW4gZW5jcnlw dGlvbiBrZXlzIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBhY3R1YWwga2V5IG1hdGVyaWFsCisg ICBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBpcyBpbiB0aGUgY2F0YWxvZyA8bGlu aworICAgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0bmFtZT5w Z19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz4uCisgIDwvcGFyYT4KKworICA8 dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1l PiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2VrbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gZW5jcnlwdGlv biBrZXkgbmFtZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtvd25l cjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8 bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlk PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIGNvbHVt biBlbmNyeXB0aW9uIGtleQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor ICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisg PHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNvbGVuY2tleWRhdGEiPgorICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRl eHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgIDxwcmltYXJ5PnBn X2NvbGVuY2tleWRhdGE8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgor ICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFt ZT4gY29udGFpbnMgdGhlIGtleQorICAgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24g a2V5cy4gIEVhY2ggY29sdW1uIGVuY3J5cHRpb24ga2V5IG9iamVjdCBjYW4KKyAgIGNvbnRh aW4gc2V2ZXJhbCB2ZXJzaW9ucyBvZiB0aGUga2V5IG1hdGVyaWFsLCBlYWNoIGVuY3J5cHRl ZCB3aXRoIGEKKyAgIGRpZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleS4gIFRoYXQgYWxsb3dz IHRoZSBncmFkdWFsIHJvdGF0aW9uIG9mIHRoZQorICAgY29sdW1uIG1hc3RlciBrZXlzLiAg VGh1cywgPGxpdGVyYWw+KGNrZGNla2lkLCBja2RjbWtpZCk8L2xpdGVyYWw+IGlzIGEKKyAg IHVuaXF1ZSBrZXkgb2YgdGhpcyB0YWJsZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VGhlIGtleSBtYXRlcmlhbCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIHNob3VsZCBuZXZl ciBiZSBkZWNyeXB0ZWQgaW5zaWRlCisgICB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuICBJdCBp cyBtZWFudCB0byBiZSBzZW50IGFzLWlzIHRvIHRoZSBjbGllbnQsIHdoZXJlCisgICBpdCBp cyBkZWNyeXB0ZWQgdXNpbmcgdGhlIGFzc29jaWF0ZWQgY29sdW1uIG1hc3RlciBrZXksIGFu ZCB0aGVuIHVzZWQgdG8KKyAgIGVuY3J5cHQgb3IgZGVjcnlwdCBjb2x1bW4gdmFsdWVzLgor ICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVu Y2tleWRhdGE8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xz PSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBE ZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjZWtpZDwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSB0aGlzIGVudHJ5IGJlbG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+Y2tkY21raWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAg KHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxz dHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoZSBjb2x1bW4gbWFzdGVyIGtleSB0aGF0IHRoZSBrZXkgbWF0ZXJpYWwgaXMg ZW5jcnlwdGVkIHdpdGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tk Y21rYWxnPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MTY8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdXNlZCBm b3IgZW5jcnlwdGluZyB0aGUga2V5IG1hdGVyaWFsOyBzZWUKKyAgICAgICA8eHJlZiBsaW5r ZW5kPSJwcm90b2NvbC1jbWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkZW5jdmFsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ Ynl0ZWE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg a2V5IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQg dXNpbmcgdGhlCisgICAgICAgcmVmZXJlbmNlZCBjb2x1bW4gbWFzdGVyIGtleQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91 cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNv bG1hc3RlcmtleSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0 cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29s bWFzdGVya2V5Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbG1hc3RlcmtleTwvcHJpbWFyeT4KKyAg PC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5w Z19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9ybWF0aW9uCisgICBh Ym91dCBjb2x1bW4gbWFzdGVyIGtleXMuICBUaGUga2V5cyB0aGVtc2VsdmVzIGFyZSBub3Qg c3RvcmVkIGluIHRoZQorICAgZGF0YWJhc2UuICBUaGUgY2F0YWxvZyBlbnRyeSBvbmx5IGNv bnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgaXMgdXNlZCBieQorICAgY2xpZW50cyB0byBsb2Nh dGUgdGhlIGtleXMsIGZvciBleGFtcGxlIGluIGEgZmlsZSBvciBpbiBhIGtleSBtYW5hZ2Vt ZW50CisgICBzeXN0ZW0uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4K KyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg Um93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21r bmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gbWFzdGVyIGtleSBuYW1lCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta293bmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21rcmVhbG08L3N0cnVjdGZpZWxkPiA8dHlw ZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQSA8 cXVvdGU+cmVhbG08L3F1b3RlPiBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2x1bW4gbWFzdGVy IGtleS4gIFRoaXMgaXMKKyAgICAgICBhIGZyZWVseSBjaG9zZW4gc3RyaW5nIHRoYXQgaXMg dXNlZCBieSBjbGllbnRzIHRvIGRldGVybWluZSBob3cgdG8gbG9vaworICAgICAgIHVwIHRo ZSBrZXkuICBBIHR5cGljYWwgY29uZmlndXJhdGlvbiB3b3VsZCBwdXQgYWxsIENNS3MgdGhh dCBhcmUgbG9va2VkCisgICAgICAgdXAgaW4gdGhlIHNhbWUgd2F5IGludG8gdGhlIHNhbWUg cmVhbG0uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9k eT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9 ImNhdGFsb2ctcGctY29uc3RyYWludCI+CiAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb25z dHJhaW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9kYXRhdHlwZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKaW5kZXggOGUz MGI4MjI3My4uY2RkMDUzMGVlYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RhdGF0eXBl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKQEAgLTUzNDIsNCArNTM0 Miw1MSBAQCA8dGl0bGU+UHNldWRvLVR5cGVzPC90aXRsZT4KIAogICA8L3NlY3QxPgogCisg IDxzZWN0MSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkIj4KKyAgIDx0aXRsZT5UeXBlcyBSZWxh dGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBBbiBlbmNyeXB0 ZWQgY29sdW1uIHZhbHVlIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0 aW9uIi8+KSBpcworICAgIGludGVybmFsbHkgc3RvcmVkIHVzaW5nIHRoZSB0eXBlcworICAg IDx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+IChmb3IgcmFuZG9taXplZCBlbmNyeXB0 aW9uKSBvcgorICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IChmb3IgZGV0ZXJt aW5pc3RpYyBlbmNyeXB0aW9uKTsgc2VlIDx4cmVmCisgICAgbGlua2VuZD0iZGF0YXR5cGUt ZW5jcnlwdGVkLXRhYmxlIi8+LiAgTW9zdCBvZiB0aGUgZGF0YWJhc2Ugc3lzdGVtIHRyZWF0 cworICAgIHRoaXMgYXMgbm9ybWFsIHR5cGVzLiAgRm9yIGV4YW1wbGUsIHRoZSB0eXBlIDx0 eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IGhhcworICAgIGFuIGVxdWFscyBvcGVyYXRv ciB0aGF0IGFsbG93cyBsb29rdXAgb2YgZW5jcnlwdGVkIHZhbHVlcy4gIFRoZSBleHRlcm5h bAorICAgIHJlcHJlc2VudGF0aW9uIG9mIHRoZXNlIHR5cGVzIGlzIHRoZSBzYW1lIGFzIHRo ZSA8dHlwZT5ieXRlYTwvdHlwZT4gdHlwZS4KKyAgICBUaHVzLCBjbGllbnRzIHRoYXQgZG9u J3Qgc3VwcG9ydCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBvciBoYXZlCisgICAg ZGlzYWJsZWQgaXQgd2lsbCBzZWUgdGhlIGVuY3J5cHRlZCB2YWx1ZXMgYXMgYnl0ZSBhcnJh eXMuICBDbGllbnRzIHRoYXQKKyAgICBzdXBwb3J0IHRyYW5zcGFyZW50IGRhdGEgZW5jcnlw dGlvbiB3aWxsIG5vdCBzZWUgdGhlc2UgdHlwZXMgaW4gcmVzdWx0CisgICAgc2V0cywgYXMg dGhlIHByb3RvY29sIGxheWVyIHdpbGwgdHJhbnNsYXRlIHRoZW0gYmFjayB0byBkZWNsYXJl ZAorICAgIHVuZGVybHlpbmcgdHlwZSBpbiB0aGUgdGFibGUgZGVmaW5pdGlvbi4KKyAgIDwv cGFyYT4KKworICAgIDx0YWJsZSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkLXRhYmxlIj4KKyAg ICAgPHRpdGxlPlR5cGVzIFJlbGF0ZWQgdG8gRW5jcnlwdGlvbjwvdGl0bGU+CisgICAgIDx0 Z3JvdXAgY29scz0iMyI+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wxIiBjb2x3aWR0 aD0iMSoiLz4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDIiIGNvbHdpZHRoPSIzKiIv PgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMyIgY29sd2lkdGg9IjIqIi8+CisgICAg ICA8dGhlYWQ+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5Pgor ICAgICAgICA8ZW50cnk+U3RvcmFnZSBTaXplPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PkRl c2NyaXB0aW9uPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGhlYWQ+CisgICAg ICA8dGJvZHk+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2VuY3J5 cHRlZF9kZXQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PjEgb3IgNCBieXRlcyBw bHVzIHRoZSBhY3R1YWwgYmluYXJ5IHN0cmluZzwvZW50cnk+CisgICAgICAgIDxlbnRyeT5l bmNyeXB0ZWQgY29sdW1uIHZhbHVlLCBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb248L2VudHJ5 PgorICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT48dHlwZT5w Z19lbmNyeXB0ZWRfcm5kPC90eXBlPjwvZW50cnk+CisgICAgICAgIDxlbnRyeT4xIG9yIDQg Ynl0ZXMgcGx1cyB0aGUgYWN0dWFsIGJpbmFyeSBzdHJpbmc8L2VudHJ5PgorICAgICAgICA8 ZW50cnk+ZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSwgcmFuZG9taXplZCBlbmNyeXB0aW9uPC9l bnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGJvZHk+CisgICAgIDwvdGdyb3VwPgor ICAgIDwvdGFibGU+CisgIDwvc2VjdDE+CiAgPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGIwMWUz YWQ1NDQuLjYwN2I0Y2Q3OTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTEyMTEsNiArMTIxMSwzMTYgQEAgPHRp dGxlPkV4Y2x1c2lvbiBDb25zdHJhaW50czwvdGl0bGU+CiAgIDwvc2VjdDI+CiAgPC9zZWN0 MT4KIAorIDxzZWN0MSBpZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIj4KKyAgPHRpdGxlPlRy YW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFdp dGggPGZpcnN0dGVybT50cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbjwvZmlyc3R0ZXJt PiwgY29sdW1ucyBjYW4gYmUKKyAgIHN0b3JlZCBlbmNyeXB0ZWQgaW4gdGhlIGRhdGFiYXNl LiAgVGhlIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gaGFwcGVucyBvbgorICAgdGhlIGNs aWVudCwgc28gdGhhdCB0aGUgcGxhaW50ZXh0IHZhbHVlIGlzIG5ldmVyIHNlZW4gaW4gdGhl IGRhdGFiYXNlCisgICBpbnN0YW5jZSBvciBvbiB0aGUgc2VydmVyIGhvc3RpbmcgdGhlIGRh dGFiYXNlLiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgbW9zdAorICAgb3BlcmF0aW9ucywgc3Vj aCBhcyBmdW5jdGlvbiBjYWxscyBvciBzb3J0aW5nLCBhcmUgbm90IHBvc3NpYmxlIG9uCisg ICBlbmNyeXB0ZWQgdmFsdWVzLgorICA8L3BhcmE+CisKKyAgPHNlY3QyPgorICAgPHRpdGxl PlVzaW5nIFRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRyYW5wYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gdXNlcyB0d28gbGV2ZWxzIG9m IGNyeXB0b2dyYXBoaWMga2V5cy4gIFRoZQorICAgYWN0dWFsIGNvbHVtbiB2YWx1ZSBpcyBl bmNyeXB0ZWQgdXNpbmcgYSBzeW1tZXRyaWMgYWxnb3JpdGhtLCBzdWNoIGFzIEFFUywKKyAg IHVzaW5nIGEgPGZpcnN0dGVybT5jb2x1bW4gZW5jcnlwdGlvbiBrZXk8L2ZpcnN0dGVybT4K KyAgICg8YWNyb255bT5DRUs8L2Fjcm9ueW0+KS4gIFRoZSBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgaXMgaW4gdHVybiBlbmNyeXB0ZWQKKyAgIHVzaW5nIGFuIGFzc3ltbWV0cmljIGFsZ29y aXRobSwgc3VjaCBhcyBSU0EsIHVzaW5nIGEgPGZpcnN0dGVybT5jb2x1bW4KKyAgIG1hc3Rl ciBrZXk8L2ZpcnN0dGVybT4gKDxhY3JvbnltPkNNSzwvYWNyb255bT4pLiAgVGhlIGVuY3J5 cHRlZCBDRUsgaXMKKyAgIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2Ugc3lzdGVtLiAgVGhlIENN SyBpcyBub3Qgc3RvcmVkIGluIHRoZSBkYXRhYmFzZQorICAgc3lzdGVtOyBpdCBpcyBzdG9y ZWQgb24gdGhlIGNsaWVudCBvciBzb21ld2hlcmUgd2hlcmUgdGhlIGNsaWVudCBjYW4gYWNj ZXNzCisgICBpdCwgc3VjaCBhcyBpbiBhIGxvY2FsIGZpbGUgb3IgaW4gYSBrZXkgbWFuYWdl bWVudCBzeXN0ZW0uICBUaGUgZGF0YWJhc2UKKyAgIHN5c3RlbSBvbmx5IHJlY29yZHMgd2hl cmUgdGhlIENNSyBpcyBzdG9yZWQgYW5kIHByb3ZpZGVzIHRoaXMgaW5mb3JtYXRpb24KKyAg IHRvIHRoZSBjbGllbnQuICBXaGVuIHJvd3MgY29udGFpbmluZyBlbmNyeXB0ZWQgY29sdW1u cyBhcmUgc2VudCB0byB0aGUKKyAgIGNsaWVudCwgdGhlIHNlcnZlciBmaXJzdCBzZW5kcyBh bnkgbmVjZXNzYXJ5IENNSyBpbmZvcm1hdGlvbiwgZm9sbG93ZWQgYnkKKyAgIGFueSByZXF1 aXJlZCBDRUsuICBUaGUgY2xpZW50IHRoZW4gbG9va3MgdXAgdGhlIENNSyBhbmQgdXNlcyB0 aGF0IHRvCisgICBkZWNyeXB0IHRoZSBDRUsuICBUaGVuIGl0IGRlY3J5cHRzIGluY29taW5n IHJvdyBkYXRhIHVzaW5nIHRoZSBDRUsgYW5kCisgICBwcm92aWRlcyB0aGUgZGVjcnlwdGVk IHJvdyBkYXRhIHRvIHRoZSBhcHBsaWNhdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgSGVyZSBpcyBhbiBleGFtcGxlIGRlY2xhcmluZyBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQ6 Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBpZCBp bnQgUFJJTUFSWSBLRVksCisgICAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICAgIC4uLgorICAg IGNyZWRpdGNhcmRfbnVtIHRleHQgPGVtcGhhc2lzPkVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKTwvZW1waGFzaXM+CispOworPC9wcm9ncmFtbGlzdGlu Zz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9y dHMgPGZpcnN0dGVybT5yYW5kb21pemVkPC9maXJzdHRlcm0+CisgICAoYWxzbyBrbm93biBh cyA8Zmlyc3R0ZXJtPnByb2JhYmlsaXN0aWM8L2ZpcnN0dGVybT4pIGFuZAorICAgPGZpcnN0 dGVybT5kZXRlcm1pbmlzdGljPC9maXJzdHRlcm0+IGVuY3J5cHRpb24uICBUaGUgYWJvdmUg ZXhhbXBsZSB1c2VzCisgICByYW5kb21pemVkIGVuY3J5cHRpb24sIHdoaWNoIGlzIHRoZSBk ZWZhdWx0LiAgUmFuZG9taXplZCBlbmNyeXB0aW9uIHVzZXMgYQorICAgcmFuZG9tIGluaXRp YWxpemF0aW9uIHZlY3RvciBmb3IgZWFjaCBlbmNyeXB0aW9uLCBzbyB0aGF0IGV2ZW4gaWYg dGhlCisgICBwbGFpbnRleHQgb2YgdHdvIHJvd3MgaXMgZXF1YWwsIHRoZSBlbmNyeXB0ZWQg dmFsdWVzIHdpbGwgYmUgZGlmZmVyZW50LgorICAgVGhpcyBwcmV2ZW50cyBzb21lb25lIHdp dGggZGlyZWN0IGFjY2VzcyB0byB0aGUgZGF0YWJhc2Ugc2VydmVyIHRvIG1ha2UKKyAgIGNv bXB1dGF0aW9ucyBzdWNoIGFzIGRpc3RpbmN0IGNvdW50cyBvbiB0aGUgZW5jcnlwdGVkIHZh bHVlcy4KKyAgIERldGVybWluaXN0aWMgZW5jcnlwdGlvbiB1c2VzIGEgZml4ZWQgaW5pdGlh bGl6YXRpb24gdmVjdG9yLiAgVGhpcyByZWR1Y2VzCisgICBzZWN1cml0eSwgYnV0IGl0IGFs bG93cyBlcXVhbGl0eSBzZWFyY2hlcyBvbiBlbmNyeXB0ZWQgdmFsdWVzLiAgVGhlCisgICBm b2xsb3dpbmcgZXhhbXBsZSBkZWNsYXJlcyBhIGNvbHVtbiB3aXRoIGRldGVybWluaXN0aWMg ZW5jcnlwdGlvbjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBlbXBsb3llZXMg KAorICAgIGlkIGludCBQUklNQVJZIEtFWSwKKyAgICBuYW1lIHRleHQgTk9UIE5VTEwsCisg ICAgLi4uCisgICAgc3NuIHRleHQgRU5DUllQVEVEIFdJVEggKAorICAgICAgICBjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCA8ZW1waGFzaXM+ZW5jcnlwdGlvbl90eXBlID0gZGV0 ZXJtaW5pc3RpYzwvZW1waGFzaXM+KQorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIE51bGwgdmFsdWVzIGFyZSBub3QgZW5jcnlwdGVkIGJ5IHRy YW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uOyBudWxsIHZhbHVlcworICAgc2VudCBieSB0 aGUgY2xpZW50IGFyZSB2aXNpYmxlIGFzIG51bGwgdmFsdWVzIGluIHRoZSBkYXRhYmFzZS4g IElmIHRoZSBmYWN0CisgICB0aGF0IGEgdmFsdWUgaXMgbnVsbCBuZWVkcyB0byBiZSBoaWRk ZW4gZnJvbSB0aGUgc2VydmVyLCB0aGlzIGluZm9ybWF0aW9uCisgICBuZWVkcyB0byBiZSBl bmNvZGVkIGludG8gYSBub25udWxsIHZhbHVlIGluIHRoZSBjbGllbnQgc29tZWhvdy4KKyAg PC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5SZWFkaW5nIGFu ZCBXcml0aW5nIEVuY3J5cHRlZCBDb2x1bW5zPC90aXRsZT4KKworICAgPHBhcmE+CisgICAg UmVhZGluZyBhbmQgd3JpdGluZyBlbmNyeXB0ZWQgY29sdW1ucyBpcyBtZWFudCB0byBiZSBo YW5kbGVkIGF1dG9tYXRpY2FsbHkKKyAgICBieSB0aGUgY2xpZW50IGxpYnJhcnkvZHJpdmVy IGFuZCBzaG91bGQgYmUgbW9zdGx5IHRyYW5zcGFyZW50IHRvIHRoZQorICAgIGFwcGxpY2F0 aW9uIGNvZGUsIGlmIGNlcnRhaW4gcHJlcmVxdWlzaXRlcyBhcmUgZnVsZmlsbGVkOgorCisg ICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIGNsaWVudCBsaWJyYXJ5IG5lZWRzIHRvIHN1cHBvcnQgdHJhbnNwYXJlbnQgY29s dW1uIGVuY3J5cHRpb24uICBOb3QKKyAgICAgICBhbGwgY2xpZW50IGxpYnJhcmllcyBkby4g IEZ1cnRoZXJtb3JlLCB0aGUgY2xpZW50IGxpYnJhcnkgbWlnaHQgcmVxdWlyZQorICAgICAg IHRoYXQgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZXhwbGljaXRseSBlbmFi bGVkIGF0IGNvbm5lY3Rpb24KKyAgICAgICB0aW1lLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9u IG9mIHRoZSBjbGllbnQgbGlicmFyeSBmb3IgZGV0YWlscy4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAg ICBDb2x1bW4gbWFzdGVyIGtleXMgYW5kIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaGF2ZSBi ZWVuIHNldCB1cCwgYW5kIHRoZQorICAgICAgIGNsaWVudCBsaWJyYXJ5IGhhcyBiZWVuIGNv bmZpZ3VyZWQgdG8gYmUgYWJsZSB0byBsb29rIHVwIGNvbHVtbiBtYXN0ZXIKKyAgICAgICBr ZXlzIGZyb20gdGhlIGtleSBzdG9yZSBvciBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAg ICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFJlYWRpbmcgZnJvbSBlbmNyeXB0ZWQgY29sdW1u cyB3aWxsIHRoZW4gd29yayBhdXRvbWF0aWNhbGx5LiAgRm9yIGV4YW1wbGUsCisgICAgdXNp bmcgdGhlIGFib3ZlIGV4YW1wbGUsCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1Qgc3NuIEZS T00gZW1wbG95ZWVzIFdIRVJFIGlkID0gNTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2ls bCByZXR1cm4gdGhlIHVuZW5jcnlwdGVkIHZhbHVlIGZvciB0aGUgPGxpdGVyYWw+c3NuPC9s aXRlcmFsPiBjb2x1bW4gaW4KKyAgICBhbnkgcm93cyBmb3VuZC4KKyAgIDwvcGFyYT4KKwor ICAgPHBhcmE+CisgICAgV3JpdGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyByZXF1aXJlcyB0 aGF0IHRoZSBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorICAgIChwcm90b2NvbC1sZXZlbCBw cmVwYXJlZCBzdGF0ZW1lbnRzKSBiZSB1c2VkLCBzbyB0aGF0IHRoZSB2YWx1ZXMgdG8gYmUK KyAgICBlbmNyeXB0ZWQgYXJlIHN1cHBsaWVkIHNlcGFyYXRlbHkgZnJvbSB0aGUgU1FMIGNv bW1hbmQuICBGb3IgZXhhbXBsZSwKKyAgICB1c2luZywgc2F5LCBwc3FsIG9yIGxpYnBxLCB0 aGUgZm9sbG93aW5nIHdvdWxkIG5vdCB3b3JrOgorPHByb2dyYW1saXN0aW5nPgorLS0gV1JP TkchCitJTlNFUlQgSU5UTyBzc24gKGlkLCBuYW1lLCBzc24pIFZBTFVFUyAoMSwgJ1NvbWVv bmUnLCAnMTIzNDUnKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhpcyB3aWxsIGxlYWsg dGhlIHVuZW5jcnlwdGVkIHZhbHVlIDxsaXRlcmFsPjEyMzQ1PC9saXRlcmFsPiB0byB0aGUK KyAgICBzZXJ2ZXIsIHRodXMgZGVmZWF0aW5nIHRoZSBwb2ludCBvZiBjb2x1bW4gZW5jcnlw dGlvbi4KKyAgICBOb3RlIHRoYXQgdXNpbmcgc2VydmVyLXNpZGUgcHJlcGFyZWQgc3RhdGVt ZW50cyB1c2luZyB0aGUgU1FMIGNvbW1hbmRzCisgICAgPGNvbW1hbmQ+UFJFUEFSRTwvY29t bWFuZD4gYW5kIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IGlzIGVxdWFsbHkKKyAgICBp bmNvcnJlY3QsIHNpbmNlIHRoYXQgd291bGQgYWxzbyBsZWFrIHRoZSBwYXJhbWV0ZXJzIHBy b3ZpZGVkIHRvCisgICAgPGNvbW1hbmQ+RVhFQ1VURTwvY29tbWFuZD4gdG8gdGhlIHNlcnZl ci4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGNvcnJlY3Qgbm90aW9uYWwg b3JkZXIgb2Ygb3BlcmF0aW9ucyBpcyBpbGx1c3RyYXRlZCBoZXJlIHVzaW5nCisgICAgbGli cHEtbGlrZSBjb2RlICh3aXRob3V0IGVycm9yIGNoZWNraW5nKToKKzxwcm9ncmFtbGlzdGlu Zz4KK1BHcmVzdWx0ICAgKnRtcHJlcywKKyAgICAgICAgICAgKnJlczsKK2NvbnN0IGNoYXIg KnZhbHVlc1tdID0geyIxIiwgIlNvbWVvbmUiLCAiMTIzNDUifTsKKworUFFwcmVwYXJlKGNv bm4sICIiLCAiSU5TRVJUIElOVE8gc3NuIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKCQxLCAk MiwgJDMpIiwgMywgTlVMTCk7CisKKy8qIFRoaXMgZmV0Y2hlcyBpbmZvcm1hdGlvbiBhYm91 dCB3aGljaCBwYXJhbWV0ZXJzIG5lZWQgdG8gYmUgZW5jcnlwdGVkLiAqLwordG1wcmVzID0g UFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKworcmVzID0gUFFleGVjUHJlcGFyZWQy KGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHRtcHJlcyk7CisK Ky8qIHByaW50IHJlc3VsdCBpbiByZXMgKi8KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgSGln aGVyLWxldmVsIGNsaWVudCBsaWJyYXJpZXMgbWlnaHQgdXNlIHRoZSBwcm90b2NvbC1sZXZl bCBwcmVwYXJlZAorICAgIHN0YXRlbWVudHMgYXV0b21hdGljYWxseSBhbmQgdGh1cyB3b24n dCByZXF1aXJlIGFueSBjb2RlIGNoYW5nZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgor ICAgIDxhcHBsaWNhdGlvbj5wc3FsPC9hcHBsaWNhdGlvbj4gcHJvdmlkZXMgdGhlIGNvbW1h bmQKKyAgICA8bGl0ZXJhbD5cZ2VuY3I8L2xpdGVyYWw+IHRvIHJ1biBwcmVwYXJlZCBzdGF0 ZW1lbnRzIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0lOU0VSVCBJTlRPIHNzbiAo aWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwgJDIsICQzKSBcZ2VuY3IgJzEnICdTb21lb25l JywgJzEyMzQ1JworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4K KworICA8c2VjdDI+CisgICA8dGl0bGU+U2V0dGluZyB1cCBUcmFuc3BhcmVudCBDb2x1bW4g RW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgc3RlcHMgdG8gc2V0IHVw IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciBhIGRhdGFiYXNlIGFyZToKKwor ICAgPG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBD cmVhdGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhlIENNSywgZm9yIGV4YW1wbGUsIHVzaW5n IGEgY3J5cHRvZ3JhcGhpYworICAgICAgbGlicmFyeSBvciB0b29sa2l0LCBvciBhIGtleSBt YW5hZ2VtZW50IHN5c3RlbS4gIFNlY3VyZSBhY2Nlc3MgdG8gdGhlCisgICAgICBrZXkgYXMg YXBwcm9wcmlhdGUsIHVzaW5nIGFjY2VzcyBjb250cm9sLCBwYXNzd29yZHMsIGV0Yy4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJhc2UgdXNpbmcgdGhl IFNRTCBjb21tYW5kIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1r ZXkiLz4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgKHVuZW5jcnlwdGVkKSBrZXkgbWF0 ZXJpYWwgZm9yIHRoZSBDRUsgaW4gYSB0ZW1wb3JhcnkKKyAgICAgIGxvY2F0aW9uLiAgKEl0 IHdpbGwgYmUgZW5jcnlwdGVkIGluIHRoZSBuZXh0IHN0ZXAuICBEZXBlbmRpbmcgb24gdGhl CisgICAgICBhdmFpbGFibGUgdG9vbHMsIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIGFuZCBzZW5z aWJsZSB0byBjb21iaW5lIHRoZXNlIHR3bworICAgICAgc3RlcHMuKQorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBFbmNyeXB0IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWwgdXNpbmcgdGhlIENNSyAo Y3JlYXRlZCBlYXJsaWVyKS4KKyAgICAgIChUaGUgdW5lbmNyeXB0ZWQgdmVyc2lvbiBvZiB0 aGUgQ0VLIGtleSBtYXRlcmlhbCBjYW4gbm93IGJlIGRpc3Bvc2VkCisgICAgICBvZi4pCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIHRo ZSBTUUwgY29tbWFuZCA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4t ZW5jcnlwdGlvbi1rZXkiLz4uICBUaGlzIGNvbW1hbmQKKyAgICAgIDxxdW90ZT51cGxvYWRz PC9xdW90ZT4gdGhlIGVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFsIGNyZWF0ZWQgaW4gdGhl CisgICAgICBwcmV2aW91cyBzdGVwIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIuICBUaGUgbG9j YWwgY29weSBvZiB0aGUgQ0VLIGtleQorICAgICAgbWF0ZXJpYWwgY2FuIHRoZW4gYmUgcmVt b3ZlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5zIHVzaW5nIHRo ZSBjcmVhdGVkIENFSy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBjbGllbnQgbGli cmFyeS9kcml2ZXIgdG8gYmUgYWJsZSB0byBsb29rIHVwIHRoZSBDTUsKKyAgICAgIGNyZWF0 ZWQgZWFybGllci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L29yZGVy ZWRsaXN0PgorCisgICBPbmNlIHRoaXMgaXMgZG9uZSwgdmFsdWVzIGNhbiBiZSB3cml0dGVu IHRvIGFuZCByZWFkIGZyb20gdGhlIGVuY3J5cHRlZAorICAgY29sdW1ucyBpbiBhIHRyYW5z cGFyZW50IHdheS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTm90ZSB0aGF0IHRoZXNl IHN0ZXBzIHNob3VsZCBub3QgYmUgcnVuIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGJ1dCBv biBzb21lCisgICBjbGllbnQgbWFjaGluZS4gIE5laXRoZXIgdGhlIENNSyBub3IgdGhlIHVu ZW5jcnlwdGVkIENFSyBzaG91bGQgZXZlciBhcHBlYXIKKyAgIG9uIHRoZSBkYXRhYmFzZSBz ZXJ2ZXIgaG9zdC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNwZWNpZmljIGRl dGFpbHMgb2YgdGhpcyBzZXR1cCBkZXBlbmQgb24gdGhlIGRlc2lyZWQgQ01LIHN0b3JhZ2UK KyAgIG1lY2hhbmlzbS9rZXkgbWFuYWdlbWVudCBzeXN0ZW0gYXMgd2VsbCBhcyB0aGUgY2xp ZW50IGxpYnJhcmllcyB0byBiZSB1c2VkLgorICAgVGhlIGZvbGxvd2luZyBleGFtcGxlIHVz ZXMgdGhlIDxjb21tYW5kPm9wZW5zc2w8L2NvbW1hbmQ+IGNvbW1hbmQtbGluZSB0b29sCisg ICB0byBzZXQgdXAgdGhlIGtleXMuCisKKyAgIDxvcmRlcmVkbGlzdD4KKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSBrZXkgbWF0ZXJpYWwgZm9yIHRo ZSBDTUsgYW5kIHdyaXRlIGl0IHRvIGEgZmlsZToKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5z c2wgZ2VucGtleSAtYWxnb3JpdGhtIHJzYSAtb3V0IGNtazEucGVtCis8L3Byb2dyYW1saXN0 aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01LIGluIHRoZSBkYXRhYmFzZToK Kzxwcm9ncmFtbGlzdGluZz4KK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBL RVkgY21rMSBXSVRIIChyZWFsbSA9ICcnKSIKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIENyZWF0ZSB0aGUgdW5lbmNyeXB0ZWQgQ0VLIGtleSBtYXRlcmlhbCBpbiBhIGZp bGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3NsIHJhbmQgLW91dCBjZWsxLmJpbiAzMgor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIChTZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wt Y2VrLXRhYmxlIi8+IGZvciByZXF1aXJlZCBrZXkgbGVuZ3Rocy4pCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtleSBtYXRlcmlhbDoKKzxwcm9ncmFtbGlzdGlu Zz4KK29wZW5zc2wgcGtleXV0bCAtZW5jcnlwdCAtaW5rZXkgY21rMS5wZW0gLXBrZXlvcHQg cnNhX3BhZGRpbmdfbW9kZTpvYWVwIC1pbiBjZWsxLmJpbiAtb3V0IGNlazEuYmluLmVuYwor cm0gY2VrMS5iaW4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVy IHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlOgorPHByb2dyYW1saXN0aW5nPgorIyBjb252ZXJ0 IGZpbGUgY29udGVudHMgdG8gaGV4IGVuY29kaW5nOyB0aGlzIGlzIGp1c3Qgb25lIHBvc3Np YmxlIHdheQorY2VrZW5jaGV4PSQocGVybCAtMG5lICdwcmludCB1bnBhY2sgIkgqIicgY2Vr MS5iaW4uZW5jKQorcHNxbCAuLi4gLWMgIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBlbmNyeXB0ZWRf dmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9JykiCitybSBjZWsxLmJpbi5lbmMKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyBhcyBz aG93biBpbiB0aGUgZXhhbXBsZXMgYWJvdmUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbmZpZ3VyZSB0 aGUgbGlicHEgZm9yIENNSyBsb29rdXAgKHNlZSBhbHNvIDx4cmVmIGxpbmtlbmQ9ImxpYnBx LWNvbm5lY3QtY21rbG9va3VwIi8+KToKKzxwcm9ncmFtbGlzdGluZz4KK1BHQ01LTE9PS1VQ PSIqPWZpbGU6JFBXRC8lay5wZW0iCitleHBvcnQgUEdDTUtMT09LVVAKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRlcmVkbGlz dD4KKyAgPC9wYXJhPgorICA8L3NlY3QyPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRk bC1zeXN0ZW0tY29sdW1ucyI+CiAgIDx0aXRsZT5TeXN0ZW0gQ29sdW1uczwvdGl0bGU+CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21s L2dsb3NzYXJ5LnNnbWwKaW5kZXggZDZkMGEzYTgxNC4uMTA1MDdlNDM5MSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTM1Myw2ICszNTMsMjkgQEAgPHRpdGxlPkdsb3NzYXJ5PC90aXRsZT4K ICAgIDwvZ2xvc3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0i Z2xvc3NhcnktY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgIDxnbG9zc3Rlcm0+Q29sdW1u IGVuY3J5cHRpb24ga2V5PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+ CisgICAgIEEgY3J5cHRvZ3JhcGhpYyBrZXkgdXNlZCB0byBlbmNyeXB0IGNvbHVtbiB2YWx1 ZXMgd2hlbiB1c2luZyB0cmFuc3BhcmVudAorICAgICBjb2x1bW4gZW5jcnlwdGlvbi4gIENv bHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UKKyAgICAg ZW5jcnlwdGVkIGJ5IGFub3RoZXIga2V5LCB0aGUgY29sdW1uIG1hc3RlciBrZXkuCisgICAg PC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCisgIDxnbG9zc2Vu dHJ5IGlkPSJnbG9zc2FyeS1jb2x1bW4tbWFzdGVyLWtleSI+CisgICA8Z2xvc3N0ZXJtPkNv bHVtbiBtYXN0ZXIga2V5PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+ CisgICAgIEEgY3J5cHRvZ3JhcGhpYyBrZXkgdXNlZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNy eXB0aW9uIGtleXMuICAoU28gdGhlCisgICAgIGNvbHVtbiBtYXN0ZXIga2V5IGlzIGEgPGZp cnN0dGVybT5rZXkgZW5jcnlwdGlvbiBrZXk8L2ZpcnN0dGVybT4uKQorICAgICBDb2x1bW4g bWFzdGVyIGtleXMgYXJlIHN0b3JlZCBvdXRzaWRlIHRoZSBkYXRhYmFzZSBzeXN0ZW0sIGZv ciBleGFtcGxlIGluCisgICAgIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICAgIDwvcGFy YT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBp ZD0iZ2xvc3NhcnktY29tbWl0Ij4KICAgIDxnbG9zc3Rlcm0+Q29tbWl0PC9nbG9zc3Rlcm0+ CiAgICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCBi L2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCmluZGV4IDc0NDU2YWE2OWQuLjMxMGFhNDllMzcg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9saWJwcS5zZ21sCkBAIC0xOTc0LDYgKzE5NzQsMTEwIEBAIDx0aXRsZT5QYXJhbWV0ZXIg S2V5IFdvcmRzPC90aXRsZT4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgog ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1j b25uZWN0LWNta2xvb2t1cCIgeHJlZmxhYmVsPSJjbWtsb29rdXAiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+Y21rbG9va3VwPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBzcGVjaWZpZXMgaG93IGxpYnBxIHNob3Vs ZCBsb29rIHVwIGNvbHVtbiBtYXN0ZXIga2V5cyAoQ01LcykgaW4KKyAgICAgICAgb3JkZXIg dG8gZGVjcnlwdCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyAoQ0VLcykuCisgICAgICAg IFRoZSB2YWx1ZSBpcyBhIGxpc3Qgb2YgPGxpdGVyYWw+a2V5PXZhbHVlPC9saXRlcmFsPiBl bnRyaWVzIHNlcGFyYXRlZAorICAgICAgICBieSBzZW1pY29sb25zLiAgRWFjaCBrZXkgaXMg dGhlIG5hbWUgb2YgYSBrZXkgcmVhbG0sIG9yCisgICAgICAgIDxsaXRlcmFsPio8L2xpdGVy YWw+IHRvIG1hdGNoIGFsbCByZWFsbXMuICBUaGUgdmFsdWUgaXMgYQorICAgICAgICA8bGl0 ZXJhbD5zY2hlbWU6ZGF0YTwvbGl0ZXJhbD4gc3BlY2lmaWNhdGlvbi4gIFRoZSBzY2hlbWUg c3BlY2lmaWVzCisgICAgICAgIHRoZSBtZXRob2QgdG8gbG9vayB1cCB0aGUga2V5LCB0aGUg cmVtYWluaW5nIGRhdGEgaXMgc3BlY2lmaWMgdG8gdGhlCisgICAgICAgIHNjaGVtZS4gIFBs YWNlaG9sZGVycyBhcmUgcmVwbGFjZWQgaW4gdGhlIHJlbWFpbmluZyBkYXRhIGFzIGZvbGxv d3M6CisKKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWE8L2xpdGVyYWw+PC90ZXJtPgorICAgICAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgQ01L IGFsZ29yaXRobSBuYW1lIChzZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY21rLXRhYmxl Ii8+KQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg ICAgIDx0ZXJtPjxsaXRlcmFsPiViPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIGVuY3J5cHRlZCBD RUsgZGF0YSBpbiBCYXNlNjQgZW5jb2RpbmcgKG9ubHkgZm9yIHRoZSA8bGl0ZXJhbD5ydW48 L2xpdGVyYWw+IHNjaGVtZSkKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lazwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRo ZSBDTUsga2V5IG5hbWUKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lcjwvbGl0ZXJhbD48L3Rlcm0+CisgICAg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBy ZWFsbSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwvdmFyaWFibGVsaXN0PgorICAg ICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBBdmFpbGFibGUgc2NoZW1l cyBhcmU6CisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmZpbGU8L2xpdGVyYWw+PC90ZXJtPgorICAg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBMb2Fk IHRoZSBrZXkgbWF0ZXJpYWwgZnJvbSBhIGZpbGUuICBUaGUgcmVtYWluaW5nIGRhdGEgaXMg dGhlIGZpbGUKKyAgICAgICAgICAgIG5hbWUuICBVc2UgdGhpcyBpZiB0aGUgQ01LcyBhcmUg a2VwdCBpbiBhIGZpbGUgb24gdGhlIGZpbGUgc3lzdGVtLgorICAgICAgICAgICA8L3BhcmE+ CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPnJ1bjwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFy YT4KKyAgICAgICAgICAgIFJ1biB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgdG8gZGVjcnlwdCB0 aGUgQ0VLLiAgVGhlIHJlbWFpbmluZyBkYXRhCisgICAgICAgICAgICBpcyBhIHNoZWxsIGNv bW1hbmQuICBVc2UgdGhpcyB3aXRoIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhhdAorICAg ICAgICAgICAgcGVyZm9ybSB0aGUgZGVjcnlwdGlvbiB0aGVtc2VsdmVzLiAgVGhlIGNvbW1h bmQgbXVzdCBwcmludCB0aGUKKyAgICAgICAgICAgIGRlY3J5cHRlZCBwbGFpbnRleHQgaW4g QmFzZTY0IGZvcm1hdCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgorICAgICAgICAgICA8L3Bh cmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5Pgor ICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFy YT4KKyAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZW1wdHkuCisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+ CitjbWtsb29rdXA9InIxPWZpbGU6L3NvbWUvd2hlcmUvc2VjcmV0cy8lay5wZW07Kj1maWxl Oi9lbHNlL3doZXJlLyVyLyVrLnBlbSIKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIFRo aXMgc3BlY2lmaWNhdGlvbiBzYXlzLCBmb3Iga2V5cyBpbiByZWFsbSA8cXVvdGU+cjE8L3F1 b3RlPiwgbG9hZAorICAgICAgICB0aGVtIGZyb20gdGhlIHNwZWNpZmllZCBmaWxlLCByZXBs YWNpbmcgPGxpdGVyYWw+JWs8L2xpdGVyYWw+IGJ5IHRoZQorICAgICAgICBrZXkgbmFtZS4g IEZvciBrZXlzIGluIG90aGVyIHJlYWxtcywgbG9hZCB0aGVtIGZyb20gdGhlIGZpbGUsCisg ICAgICAgIHJlcGxhY2luZyByZWFsbSBhbmQga2V5IG5hbWVzIGFzIHNwZWNpZmllZC4KKyAg ICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgQW4gZXhhbXBsZSBmb3Ig aW50ZXJhY3Rpbmcgd2l0aCBhIChoeXBvdGhldGljYWwpIGtleSBtYW5hZ2VtZW50CisgICAg ICAgIHN5c3RlbToKKzxwcm9ncmFtbGlzdGluZz4KK2Nta2xvb2t1cD0iKj1ydW46YWNtZWtt cyBkZWNyeXB0IC0ta2V5ICVrIC0tYWxnICVhIC0tYmxvYiAnJWInIgorPC9wcm9ncmFtbGlz dGluZz4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxp c3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KICAgPC9zZWN0Mj4K QEAgLTMwMjIsNiArMzEyNiw1NyBAQCA8dGl0bGU+TWFpbiBGdW5jdGlvbnM8L3RpdGxlPgog ICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIj4KKyAgICAgIDx0ZXJtPjxmdW5j dGlvbj5QUWV4ZWNQcmVwYXJlZDI8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFl eGVjUHJlcGFyZWQyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZW5kcyBhIHJlcXVlc3QgdG8gZXhl Y3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAgIHBhcmFtZXRl cnMsIGFuZCB3YWl0cyBmb3IgdGhlIHJlc3VsdCwgd2l0aCBzdXBwb3J0IGZvciBlbmNyeXB0 ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK1BHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZDIoUEdj b25uICpjb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzdG10 TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5QYXJhbXMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlw dGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRGb3JtYXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpwYXJhbURlc2MpOworPC9zeW5v cHNpcz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIi8+IGlzIGxpa2UgPHhyZWYKKyAgICAg ICAgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4gd2l0aCBhZGRpdGlvbmFsIHN1 cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgICBjb2x1bW5zLiAgVGhlIHBhcmFtZXRlciA8 cGFyYW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJlIGEKKyAgICAgICAgcmVz dWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQ cmVwYXJlZCIvPiBvbgorICAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0ZW1lbnQuCisg ICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgZnVuY3Rpb24g bXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNwb25kcyB0byBh bgorICAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1bW4uICBJbiB0aGF0IHNpdHVh dGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgIHN0YXRlbWVudCBuZWVkcyB0byBiZSBkZXNj cmliZWQgZmlyc3Qgc28gdGhhdCBsaWJwcSBjYW4gb2J0YWluIHRoZQorICAgICAgICBuZWNl c3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBXaGVu IHRoYXQgaXMKKyAgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZyB0 byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgYXV0b21hdGljYWxseSBlbmNyeXB0 ZWQgYXBwcm9wcmlhdGVseSBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgc2VydmVyLgorICAg ICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcGFyYW1ldGVyIDxw YXJhbWV0ZXI+cGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zPC9wYXJhbWV0ZXI+CisgICAg ICAgIHNwZWNpZmllcyB3aGV0aGVyIGVuY3J5cHRpb24gc2hvdWxkIGJlIGZvcmNlZCBmb3Ig YSBwYXJhbWV0ZXIuICBJZgorICAgICAgICBlbmNyeXB0aW9uIGlzIGZvcmNlZCBmb3IgYSBw YXJhbWV0ZXIgYnV0IGl0IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4KKyAgICAgICAgZW5j cnlwdGVkIGNvbHVtbiBvbiB0aGUgc2VydmVyLCB0aGVuIHRoZSBjYWxsIHdpbGwgZmFpbCBh bmQgdGhlCisgICAgICAgIHBhcmFtZXRlciB3aWxsIG5vdCBiZSBzZW50LiAgVGhpcyBjYW4g YmUgdXNlZCBmb3IgYWRkaXRpb25hbCBzZWN1cml0eQorICAgICAgICBhZ2FpbnN0IGEgY29t cHJpbWlzZWQgc2VydmVyLiAgKFRoZSBkcmF3YmFjayBpcyB0aGF0IGFwcGxpY2F0aW9uIGNv ZGUKKyAgICAgICAgdGhlbiBuZWVkcyB0byBiZSBrZXB0IHVwIHRvIGRhdGUgd2l0aCBrbm93 bGVkZ2UgYWJvdXQgd2hpY2ggY29sdW1ucworICAgICAgICBhcmUgZW5jcnlwdGVkIHJhdGhl ciB0aGFuIGxldHRpbmcgdGhlIHNlcnZlciBzcGVjaWZ5IHRoaXMuKSAgSWYgdGhlCisgICAg ICAgIGFycmF5IHBvaW50ZXIgaXMgbnVsbCB0aGVuIGVuY3J5cHRpb24gaXMgbm90IGZvcmNl ZCBmb3IgYW55IHBhcmFtZXRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJw cS1QUWRlc2NyaWJlUHJlcGFyZWQiPgogICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZGVzY3Jp YmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWRlc2NyaWJlUHJl cGFyZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC0zODcyLDYgKzQwMjcs MjggQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9ybWF0aW9uPC90aXRs ZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJs aXN0ZW50cnkgaWQ9ImxpYnBxLVBRZmlzZW5jcnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0 aW9uPlBRZmlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZmlz ZW5jcnlwdGVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVlIGZv ciB0aGUgZ2l2ZW4gY29sdW1uIGNhbWUgZnJvbSBhbiBlbmNyeXB0ZWQKKyAgICAgICBjb2x1 bW4uICBDb2x1bW4gbnVtYmVycyBzdGFydCBhdCAwLgorPHN5bm9wc2lzPgoraW50IFBRZmlz ZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsCisgICAgICAgICAgICAgICAgICAgaW50 IGNvbHVtbl9udW1iZXIpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAg PHBhcmE+CisgICAgICAgRW5jcnlwdGVkIGNvbHVtbiB2YWx1ZXMgYXJlIGF1dG9tYXRpY2Fs bHkgZGVjcnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uCisgICAgICAgaXMgbm90IG5lY2Vzc2Fy eSB0byBhY2Nlc3MgdGhlIGNvbHVtbiB2YWx1ZS4gIEl0IGNhbiBiZSB1c2VkIGZvciBleHRy YQorICAgICAgIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlIHdhcyBzdG9y ZWQgZW5jcnlwdGVkIHdoZW4gb25lCisgICAgICAgdGhvdWdodCBpdCBzaG91bGQgYmUuCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisK ICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWZzaXplIj4KICAgICAgPHRlcm0+PGZ1 bmN0aW9uPlBRZnNpemU8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFmc2l6ZTwv cHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQwNDcsMTIgKzQyMjQsMzcgQEAg PHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9ybWF0aW9uPC90aXRsZT4KIAog ICAgICAgPHBhcmE+CiAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWZ1bCB3aGVu IGluc3BlY3RpbmcgdGhlIHJlc3VsdCBvZgotICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBx LVBRZGVzY3JpYmVQcmVwYXJlZCIvPi4gIEZvciBvdGhlciB0eXBlcyBvZiBxdWVyaWVzIGl0 CisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+LiAg Rm9yIG90aGVyIHR5cGVzIG9mIHJlc3VsdHMgaXQKICAgICAgICB3aWxsIHJldHVybiB6ZXJv LgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFwYXJhbWlzZW5jcnlwdGVkIj4K KyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcGFyYW1pc2VuY3J5cHRlZDwvZnVuY3Rpb24+PGlu ZGV4dGVybT48cHJpbWFyeT5QUXBhcmFtaXNlbmNyeXB0ZWQ8L3ByaW1hcnk+PC9pbmRleHRl cm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJl dHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXIgaXMgZGVz dGluZWQgZm9yIGFuCisgICAgICAgZW5jcnlwdGVkIGNvbHVtbi4gIFBhcmFtZXRlciBudW1i ZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQgUFFwYXJhbWlzZW5jcnlwdGVkKGNv bnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW1iZXIpOworPC9zeW5vcHNpcz4KKyAg ICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVmFsdWVzIGZvciBwYXJhbWV0 ZXJzIGRlc3RpbmVkIGZvciBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgYXV0b21hdGljYWxseQor ICAgICAgIGVuY3J5cHRlZCwgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgbmVjZXNzYXJ5IHRv IHByZXBhcmUgdGhlIHBhcmFtZXRlcgorICAgICAgIHZhbHVlLiAgSXQgY2FuIGJlIHVzZWQg Zm9yIGV4dHJhIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlCisgICAgICAg d2lsbCBiZSBzdG9yZWQgZW5jcnlwdGVkIHdoZW4gb25lIHRob3VnaHQgaXQgc2hvdWxkIGJl LiAgKEJ1dCBzZWUgYWxzbworICAgICAgIGF0IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhl Y1ByZXBhcmVkMiIvPiBmb3IgYW5vdGhlciB3YXkgdG8gZG8gdGhhdC4pCisgICAgICAgVGhp cyBmdW5jdGlvbiBpcyBvbmx5IHVzZWZ1bCB3aGVuIGluc3BlY3RpbmcgdGhlIHJlc3VsdCBv ZiA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPi4g IEZvciBvdGhlciB0eXBlcyBvZiByZXN1bHRzIGl0CisgICAgICAgd2lsbCByZXR1cm4gZmFs c2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXByaW50Ij4KICAgICAgPHRl cm0+PGZ1bmN0aW9uPlBRcHJpbnQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFw cmludDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQ1NzgsNiArNDc4MCw3 IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAg IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UGFyYW1zIi8+LAogICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UXNlbmRRdWVyeVByZXBhcmVkMiIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2Vu ZERlc2NyaWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFz ZW5kRGVzY3JpYmVQb3J0YWwiLz4sCiAgICB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRZ2V0UmVzdWx0Ii8+IHRvIGR1cGxpY2F0ZQpAQCAtNDU4NSw2 ICs0Nzg4LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3Rp dGxlPgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUGFyYW1zIi8+LAogICAgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFwcmVwYXJlIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGli cHEtUFFleGVjUHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQ cmVwYXJlZDIiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFy ZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVBvcnRhbCIv PgogICAgcmVzcGVjdGl2ZWx5LgpAQCAtNDY5Niw2ICs0OTAwLDQ2IEBAIDx0aXRsZT5Bc3lu Y2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgPC9saXN0aXRlbT4K ICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBR c2VuZFF1ZXJ5UHJlcGFyZWQyIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZFF1ZXJ5 UHJlcGFyZWQyPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc2VuZFF1ZXJ5UHJl cGFyZWQyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBTZW5kcyBhIHJlcXVlc3QgdG8gZXhlY3V0ZSBhIHBy ZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAgcGFyYW1ldGVycywgd2l0aG91 dCB3YWl0aW5nIGZvciB0aGUgcmVzdWx0KHMpLCB3aXRoIHN1cHBvcnQgZm9yIGVuY3J5cHRl ZCBjb2x1bW5zLgorPHN5bm9wc2lzPgoraW50IFBRc2VuZFF1ZXJ5UHJlcGFyZWQyKFBHY29u biAqY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzdG10TmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKnBhcmFtVmFsdWVzLAorICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAor ICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRGb3JtYXQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7Cis8L3N5bm9wc2lzPgorICAg ICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUXNlbmRRdWVyeVByZXBhcmVkMiIvPiBpcyBsaWtlIDx4cmVmCisgICAgICAgbGlua2Vu ZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiB3aXRoIGFkZGl0aW9uYWwgc3VwcG9y dCBmb3IgZW5jcnlwdGVkCisgICAgICAgY29sdW1ucy4gIFRoZSBwYXJhbWV0ZXIgPHBhcmFt ZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBhCisgICAgICAgcmVzdWx0IHNl dCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJl cGFyZWQiLz4gb24KKyAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0ZW1lbnQuCisgICAg ICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgZnVuY3Rpb24gbXVzdCBi ZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNwb25kcyB0byBhbgorICAg ICAgIHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQgc2l0dWF0aW9uLCB0 aGUgcHJlcGFyZWQKKyAgICAgICBzdGF0ZW1lbnQgbmVlZHMgdG8gYmUgZGVzY3JpYmVkIGZp cnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUKKyAgICAgICBuZWNlc3Nhcnkga2V5 IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBXaGVuIHRoYXQgaXMK KyAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRl ZCBjb2x1bW5zIGFyZQorICAgICAgIGF1dG9tYXRpY2FsbHkgZW5jcnlwdGVkIGFwcHJvcHJp YXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZlci4KKyAgICAgICBTZWUgYWxz byB1bmRlciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZDIiLz4uCisgICAg ICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAg ICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNlbmREZXNjcmliZVByZXBhcmVkIj4KICAg ICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZERlc2NyaWJlUHJlcGFyZWQ8L2Z1bmN0aW9uPjxp bmRleHRlcm0+PHByaW1hcnk+UFFzZW5kRGVzY3JpYmVQcmVwYXJlZDwvcHJpbWFyeT48L2lu ZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQ3NDYsNiArNDk5MCw3IEBAIDx0aXRsZT5Bc3luY2hy b25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBR c2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFz ZW5kUXVlcnlQcmVwYXJlZDIiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFz ZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UXNlbmREZXNjcmliZVBvcnRhbCIvPiwgb3IKICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUXBpcGVsaW5lU3luYyIvPgpAQCAtNzc3Niw2ICs4MDIxLDE2IEBAIDx0aXRsZT5FbnZp cm9ubWVudCBWYXJpYWJsZXM8L3RpdGxlPgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRl bT4KIAorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8aW5kZXh0ZXJtPgor ICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NNS0xPT0tVUDwvZW52YXI+PC9wcmltYXJ5Pgor ICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8ZW52YXI+UEdDTUtMT09LVVA8L2VudmFyPiBi ZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAgbGlua2VuZD0ibGlicHEtY29u bmVjdC1jbWtsb29rdXAiLz4gY29ubmVjdGlvbiBwYXJhbWV0ZXIuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCBi L2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IGMwYjg5YTNjMDEuLjYwNTk1YzMz YjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0xMDUwLDYgKzEwNTAsNTIgQEAgPHRpdGxlPkV4 dGVuZGVkIFF1ZXJ5PC90aXRsZT4KICAgIDwvbm90ZT4KICAgPC9zZWN0Mj4KIAorICA8c2Vj dDI+CisgICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxlPgor CisgICA8cGFyYT4KKyAgICBXaGVuIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlz IGVuYWJsZWQsIHRoZSBtZXNzYWdlcworICAgIENvbHVtbk1hc3RlcktleSBhbmQgQ29sdW1u RW5jcnlwdGlvbktleSBjYW4gYXBwZWFyIGJlZm9yZSBSb3dEZXNjcmlwdGlvbgorICAgIGFu ZCBQYXJhbWV0ZXJEZXNjcmlwdGlvbiBtZXNzYWdlcy4gIENsaWVudHMgc2hvdWxkIGNvbGxl Y3QgdGhlIGluZm9ybWF0aW9uCisgICAgaW4gdGhlc2UgbWVzc2FnZXMgYW5kIGtlZXAgdGhl bSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uLiAgQQorICAgIHNlcnZlciBp cyBub3QgcmVxdWlyZWQgdG8gcmVzZW5kIHRoZSBrZXkgaW5mb3JtYXRpb24gZm9yIGVhY2gg c3RhdGVtZW50CisgICAgY3ljbGUgaWYgaXQgd2FzIGFscmVhZHkgc2VudCBkdXJpbmcgdGhp cyBjb25uZWN0aW9uLiAgSWYgYSBzZXJ2ZXIgcmVzZW5kcworICAgIGEga2V5IHRoYXQgdGhl IGNsaWVudCBoYXMgYWxyZWFkeSBzdG9yZWQgKHRoYXQgaXMsIGEga2V5IGhhdmluZyBhbiBJ RAorICAgIGVxdWFsIHRvIG9uZSBhbHJlYWR5IHN0b3JlZCksIHRoZSBuZXcgaW5mb3JtYXRp b24gc2hvdWxkIHJlcGxhY2UgdGhlIG9sZC4KKyAgICAoVGhpcyBjb3VsZCBoYXBwZW4sIGZv ciBleGFtcGxlLCBpZiB0aGUga2V5IHdhcyBhbHRlcmVkIGJ5IHNlcnZlci1zaWRlIERETAor ICAgIGNvbW1hbmRzLikKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQSBjbGllbnQg c3VwcG9ydGluZyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBzaG91bGQgYXV0b21h dGljYWxseQorICAgIGRlY3J5cHQgdGhlIGNvbHVtbiB2YWx1ZSBmaWVsZHMgb2YgRGF0YVJv dyBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvCisgICAgZW5jcnlwdGVkIGNvbHVtbnMsIGFu ZCBpdCBzaG91bGQgYXV0b21hdGljYWxseSBlbmNyeXB0IHRoZSBwYXJhbWV0ZXIgdmFsdWUK KyAgICBmaWVsZHMgb2YgQmluZCBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRl ZCBjb2x1bW5zLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIGNvbHVtbiBl bmNyeXB0aW9uIGlzIHVzZWQsIHRoZSBwbGFpbnRleHQgaXMgYWx3YXlzIGluIHRleHQgZm9y bWF0CisgICAgKG5vdCBiaW5hcnkgZm9ybWF0KS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgV2hlbiBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gaXMgdXNlZCwgY2xpZW50cyBu ZWVkIHRvIHRha2UgY2FyZSB0bworICAgIHJlcHJlc2VudCBwbGFpbnRleHQgdG8gYmUgZW5j cnlwdGVkIGluIGEgY29uc2lzdGVudCBmb3JtLiAgRm9yIGV4YW1wbGUsCisgICAgZW5jcnlw dGluZyBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVyYWw+MTAw PC9saXRlcmFsPiBhbmQKKyAgICBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJp bmcgPGxpdGVyYWw+KzEwMDwvbGl0ZXJhbD4gd291bGQgcmVzdWx0CisgICAgaW4gdHdvIGRp ZmZlcmVudCBjaXBoZXJ0ZXh0cywgdGh1cyBkZWZlYXRpbmcgdGhlIG1haW4gcG9pbnQgb2YK KyAgICBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24uICBUaGlzIHByb3RvY29sIHNwZWNpZmlj YXRpb24gcmVxdWlyZXMgdGhlCisgICAgcGxhaW50ZXh0IHRvIGJlIGluIDxxdW90ZT5jYW5v bmljYWw8L3F1b3RlPiBmb3JtLCB3aGljaCBpcyB0aGUgZm9ybSB0aGF0CisgICAgaXMgcHJv ZHVjZWQgYnkgdGhlIHNlcnZlciB3aGVuIGl0IG91dHB1dHMgYSBwYXJ0aWN1bGFyIHZhbHVl IGluIHRleHQKKyAgICBmb3JtYXQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRo ZSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgdXNlZCBmb3IgdHJhbnNwYXJlbnQgY29sdW1u IGVuY3J5cHRpb24gYXJlCisgICAgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9InByb3Rv Y29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uIi8+LgorICAgPC9wYXJhPgorICA8 L3NlY3QyPgorCiAgIDxzZWN0Mj4KICAgIDx0aXRsZT5GdW5jdGlvbiBDYWxsPC90aXRsZT4K IApAQCAtMzk5MSw2ICs0MDM3LDEyOCBAQCA8dGl0bGU+TWVzc2FnZSBGb3JtYXRzPC90aXRs ZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0 ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1bW5FbmNyeXB0aW9uS2V5 Ij4KKyAgICA8dGVybT5Db2x1bW5FbmNyeXB0aW9uS2V5IChCKTwvdGVybT4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgIDx0ZXJtPkJ5dGUxKCdZJyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg IDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMgaW4gYnl0ZXMs IGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+ CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9mIHRoZSBrZXku CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rl cm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBp ZGVudGlmaWVyIG9mIHRoZSBtYXN0ZXIga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGlzIGtleS4K KyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGlk ZW50aWZpZXIgb2YgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGVuY3J5cHQgdGhpcyBrZXkuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBsZW5n dGggb2YgdGhlIGZvbGxvd2luZyBrZXkgbWF0ZXJpYWwuCisgICAgICAgIDwvcGFyYT4KKyAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IFRoZSBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIHRoZSBtYXN0ZXIga2V5IHJlZmVy ZW5jZWQgYWJvdmUuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9j b2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbk1hc3RlcktleSI+CisgICAgPHRlcm0+Q29sdW1u TWFzdGVyS2V5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDx2YXJpYWJsZWxp c3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUxKCd5Jyk8L3Rl cm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElkZW50 aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gbWFzdGVyIGtleSBtZXNzYWdlLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBMZW5ndGggb2Yg bWVzc2FnZSBjb250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNlbGYuCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAg PGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBzZXNzaW9uLXNwZWNp ZmljIGlkZW50aWZpZXIgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBrZXkuCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5nPC90ZXJtPgorICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUga2V5J3MgcmVhbG0u CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0 ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1m b3JtYXRzLUNvbW1hbmRDb21wbGV0ZSI+CiAgICAgPHRlcm0+Q29tbWFuZENvbXBsZXRlIChC KTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC01MDg2LDYgKzUyNTQsMzcgQEAgPHRpdGxl Pk1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgICAgICAgIDwvcGFyYT4KICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRl ZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVyIG9mIHRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRv IGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVy IG9mIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJtPgorICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGlzIGlzIHVzZWQgYXMgYSBi aXQgZmllbGQgb2YgZmxhZ3MuICBJZiB0aGUgY29sdW1uIGlzCisgICAgICAgICBlbmNyeXB0 ZWQgYW5kIGJpdCAweDAxIGlzIHNldCwgdGhlIGNvbHVtbiB1c2VzIGRldGVybWluaXN0aWMK KyAgICAgICAgIGVuY3J5cHRpb24sIG90aGVyd2lzZSByYW5kb21pemVkIGVuY3J5cHRpb24u CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0 ZW50cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KQEAgLTU0NzQsNiArNTY3MywyNiBAQCA8dGl0bGU+TWVzc2FnZSBGb3Jt YXRzPC90aXRsZT4KICAgICAgICAgPC9wYXJhPgogICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVy bT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgdG8gYmUgZW5jcnlwdGVkLCB0aGlzIHNwZWNp ZmllcyB0aGUKKyAgICAgICAgIGlkZW50aWZpZXIgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9u IGtleSB0byB1c2UsIGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg IDxwYXJhPgorICAgICAgICAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgdG8gYmUgZW5jcnlwdGVk LCB0aGlzIHNwZWNpZmllcyB0aGUKKyAgICAgICAgIGlkZW50aWZpZXIgb2YgdGhlIGVuY3J5 cHQgYWxnb3JpdGhtLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0Pgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTcyNzgsNiArNzQ5Nywx MzMgQEAgPHRpdGxlPkxvZ2ljYWwgUmVwbGljYXRpb24gTWVzc2FnZSBGb3JtYXRzPC90aXRs ZT4KICAgPC92YXJpYWJsZWxpc3Q+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0icHJvdG9j b2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24iPgorICA8dGl0bGU+VHJhbnNwYXJl bnQgQ29sdW1uIEVuY3J5cHRpb24gQ3J5cHRvZ3JhcGh5PC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9u cyB1c2VkIGJ5IHRyYW5zcGFyZW50CisgICBjb2x1bW4gZW5jcnlwdGlvbi4gIEEgY2xpZW50 IHRoYXQgc3VwcG9ydHMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24KKyAgIG5lZWRz IHRvIGltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25zIGFzIHNwZWNpZmllZCBoZXJlIGluIG9y ZGVyIHRvIGJlIGFibGUKKyAgIHRvIGludGVyb3BlcmF0ZSB3aXRoIG90aGVyIGNsaWVudHMu CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBhbGdv cml0aG1zIGFuZCBjb2x1bW4gbWFzdGVyIGtleSBhbGdvcml0aG1zIGFyZQorICAgaWRlbnRp ZmllZCBieSBpbnRlZ2VycyBpbiB0aGUgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIHRoZSBzeXN0 ZW0gY2F0YWxvZ3MuCisgICBBZGRpdGlvbmFsIGFsZ29yaXRobXMgbWF5IGJlIGFkZGVkIHRv IHRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiB3aXRob3V0IGEKKyAgIGNoYW5nZSBpbiB0 aGUgcHJvdG9jb2wgdmVyc2lvbiBudW1iZXIuICBDbGllbnRzIHNob3VsZCBpbXBsZW1lbnQg c3VwcG9ydAorICAgZm9yIGFsbCB0aGUgYWxnb3JpdGhtcyBzcGVjaWZpZWQgaGVyZS4gIElm IGEgY2xpZW50IGVuY291bnRlcnMgYW4gYWxnb3JpdGhtCisgICBpZGVudGlmaWVyIGl0IGRv ZXMgbm90IHJlY29nbml6ZSBvciBkb2VzIG5vdCBzdXBwb3J0LCBpdCBtdXN0IHJhaXNlIGFu CisgICBlcnJvci4gIEEgc3VpdGFibGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUgcHJvdmlk ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgICB1c2VyLgorICA8L3BhcmE+CisKKyAgPHNl Y3QyIGlkPSJwcm90b2NvbC1jbWsiPgorICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5czwv dGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0 aG1zIGZvciBjb2x1bW4gbWFzdGVyIGtleXMgYXJlIGxpc3RlZCBpbgorICAgIDx4cmVmIGxp bmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxl IGlkPSJwcm90b2NvbC1jbWstdGFibGUiPgorICAgIDx0aXRsZT5Db2x1bW4gTWFzdGVyIEtl eSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5JRDwvZW50cnk+CisgICAgICAgPGVu dHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5SZWZlcmVuY2U8L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+Cisg ICAgICAgPGVudHJ5PjE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19P QUVQX1NIQV8xPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGluayB1cmw9 Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjODAxNyI+UkZDIDgw MTc8L3VsaW5rPiAoUEtDUyAjMSk8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93 PgorICAgICAgIDxlbnRyeT4yPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNB RVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGlu ayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjODAxNyI+ UkZDIDgwMTc8L3VsaW5rPiAoUEtDUyAjMSk8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg IDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorICA8L3NlY3QyPgorCisg IDxzZWN0MiBpZD0icHJvdG9jb2wtY2VrIj4KKyAgIDx0aXRsZT5Db2x1bW4gRW5jcnlwdGlv biBLZXlzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhlIGN1cnJlbnRseSBkZWZpbmVk IGFsZ29yaXRobXMgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIGxpc3RlZCBpbgor ICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNlay10YWJsZSIvPi4KKyAgIDwvcGFyYT4K KworICAgPHRhYmxlIGlkPSJwcm90b2NvbC1jZWstdGFibGUiPgorICAgIDx0aXRsZT5Db2x1 bW4gRW5jcnlwdGlvbiBLZXkgQWxnb3JpdGhtczwvdGl0bGU+CisgICAgPHRncm91cCBjb2xz PSIzIj4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+SUQ8L2Vu dHJ5PgorICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+UmVmZXJl bmNlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+S2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+ CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAgPHRib2R5PgorICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnk+MTMwPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2Mv aHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+ CisgICAgICAgPGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4K KyAgICAgICA8ZW50cnk+MTMxPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVB RF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRt bC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PjQ4PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnk+MTMyPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9k cmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAg ICAgPGVudHJ5PjU2PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnk+MTMzPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9BRVNf MjU2X0NCQ19ITUFDX1NIQV81MTI8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFm dC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAgICAg PGVudHJ5PjY0PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3Rib2R5PgorICAgIDwv dGdyb3VwPgorICAgPC90YWJsZT4KKworICAgPHBhcmE+CisgICAgVGhlIDxxdW90ZT5hc3Nv Y2lhdGVkIGRhdGE8L3F1b3RlPiBpbiB0aGVzZSBhbGdvcml0aG1zIGNvbnNpc3RzIG9mIDQK KyAgICBieXRlczogVGhlIEFTQ0lJIGxldHRlcnMgPGxpdGVyYWw+UDwvbGl0ZXJhbD4gYW5k IDxsaXRlcmFsPkc8L2xpdGVyYWw+CisgICAgKGJ5dGUgdmFsdWVzIDgwIGFuZCA3MSksIGZv bGxvd2VkIGJ5IHRoZSBhbGdvcml0aG0gSUQgYXMgYSAxNi1iaXQgdW5zaWduZWQKKyAgICBp bnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIGlzIDE2IG9j dGV0cyBmb3IgYWxsIENFSyBhbGdvcml0aG0KKyAgICB2YXJpYW50cy4gIEZvciByYW5kb21p emVkIGVuY3J5cHRpb24sIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3Igc2hvdWxkIGJlCisg ICAgKGNyeXB0b2dyYXBoaWNhbGx5IHN0cm9uZykgcmFuZG9tIGJ5dGVzLiAgRm9yIGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbiwKKyAgICB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIGlz IGNvbnN0cnVjdGVkIGFzCis8cHJvZ3JhbWxpc3Rpbmc+CitTVUJTVFJJTkcoPHJlcGxhY2Vh YmxlPkhNQUM8L3JlcGxhY2VhYmxlPig8cmVwbGFjZWFibGU+SzwvcmVwbGFjZWFibGU+LCA8 cmVwbGFjZWFibGU+UDwvcmVwbGFjZWFibGU+KSBGT1IgPHJlcGxhY2VhYmxlPklWTEVOPC9y ZXBsYWNlYWJsZT4pCis8L3Byb2dyYW1saXN0aW5nPgorICAgIHdoZXJlIDxyZXBsYWNlYWJs ZT5ITUFDPC9yZXBsYWNlYWJsZT4gaXMgdGhlIEhNQUMgZnVuY3Rpb24gYXNzb2NpYXRlZCB3 aXRoCisgICAgdGhlIGFsZ29yaXRobSwgPHJlcGxhY2VhYmxlPks8L3JlcGxhY2VhYmxlPiBp cyB0aGUgcHJlZml4IG9mIHRoZSBDRUsgb2YKKyAgICB0aGUgbGVuZ3RoIHJlcXVpcmVkIGJ5 IHRoZSBITUFDIGZ1bmN0aW9uLCBhbmQgPHJlcGxhY2VhYmxlPlA8L3JlcGxhY2VhYmxlPgor ICAgIGlzIHRoZSBwbGFpbnRleHQgdG8gYmUgZW5jcnlwdGVkLiAgKFRoaXMgaXMgdGhlIHNh bWUgcG9ydGlvbiBvZiB0aGUgQ0VLCisgICAgdGhhdCB0aGUgQUVBRF9BRVNfKl9ITUFDXyog YWxnb3JpdGhtcyB1c2UgZm9yIHRoZSBNQUMgcGFydC4pCisgICA8L3BhcmE+CisgIDwvc2Vj dDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0icHJvdG9jb2wtY2hhbmdlcyI+CiAgIDx0 aXRsZT5TdW1tYXJ5IG9mIENoYW5nZXMgc2luY2UgUHJvdG9jb2wgMi4wPC90aXRsZT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGU5MGEwZTFmODMuLjlhZTU2ZWU5NTAgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTYyLDYgKzYyLDggQEAKIDwhRU5USVRZIGNy ZWF0ZUFnZ3JlZ2F0ZSAgICBTWVNURU0gImNyZWF0ZV9hZ2dyZWdhdGUuc2dtbCI+CiA8IUVO VElUWSBjcmVhdGVDYXN0ICAgICAgICAgU1lTVEVNICJjcmVhdGVfY2FzdC5zZ21sIj4KIDwh RU5USVRZIGNyZWF0ZUNvbGxhdGlvbiAgICBTWVNURU0gImNyZWF0ZV9jb2xsYXRpb24uc2dt bCI+Cis8IUVOVElUWSBjcmVhdGVDb2x1bW5FbmNyeXB0aW9uS2V5IFNZU1RFTSAiY3JlYXRl X2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZUNvbHVtbk1h c3RlcktleSBTWVNURU0gImNyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIj4KIDwhRU5U SVRZIGNyZWF0ZUNvbnZlcnNpb24gICBTWVNURU0gImNyZWF0ZV9jb252ZXJzaW9uLnNnbWwi PgogPCFFTlRJVFkgY3JlYXRlRGF0YWJhc2UgICAgIFNZU1RFTSAiY3JlYXRlX2RhdGFiYXNl LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlRG9tYWluICAgICAgIFNZU1RFTSAiY3JlYXRlX2Rv bWFpbi5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVt bl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uZTc5NjVlYmNjYQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBAIC0wLDAgKzEsMTQ0IEBACis8 IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt Y3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwt Y3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxwcmltYXJ5PkNSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0 YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVm ZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+ CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9O IEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGNvbHVtbiBlbmNy eXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3Bz aXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBs YWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSCBWQUxVRVMgKAorICAgIENPTFVNTl9N QVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+LAorICAgIFsgQUxH T1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+LCBdCisgICAg RU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+Cisp Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVB VEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVt bgorICAgZW5jcnlwdGlvbiBrZXkuICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyB1c2Vk IGZvciBjbGllbnQtc2lkZSBlbmNyeXB0aW9uCisgICBvZiB0YWJsZSBjb2x1bW5zIHRoYXQg aGF2ZSBiZWVuIGRlZmluZWQgYXMgZW5jcnlwdGVkLiAgVGhlIGtleSBtYXRlcmlhbCBvZgor ICAgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSdz IHN5c3RlbSBjYXRhbG9ncywKKyAgIGVuY3J5cHRlZCAod3JhcHBlZCkgYnkgYSBjb2x1bW4g bWFzdGVyIGtleSAod2hpY2ggaW4gdHVybiBpcyBvbmx5CisgICBhY2Nlc3NpYmxlIHRvIHRo ZSBjbGllbnQsIG5vdCB0aGUgZGF0YWJhc2Ugc2VydmVyKS4KKyA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisg IDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmNtazwvcmVw bGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleSB0aGF0IHdhcyB1c2VkIHRvIGVu Y3J5cHQgdGhpcyBjb2x1bW4KKyAgICAgIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgZW5jcnlw dGlvbiBhbGdvcml0aG0gdGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoZSBrZXkgbWF0ZXJp YWwgb2YKKyAgICAgIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LiAgU3VwcG9ydGVkIGFs Z29yaXRobXMgYXJlOgorICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+IChk ZWZhdWx0KTwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPiAo ZGVmYXVsdCk8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvaXRlbWl6ZWRs aXN0PgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGlzIGluZm9y bWF0aW9uYWwgb25seS4gIFRoZSBzcGVjaWZpZWQgdmFsdWUgaXMgcHJvdmlkZWQgdG8gdGhl CisgICAgICBjbGllbnQsIHdoaWNoIG1heSB1c2UgaXQgZm9yIGRlY3J5cHRpbmcgdGhlIGNv bHVtbiBlbmNyeXB0aW9uIGtleSBvbiB0aGUKKyAgICAgIGNsaWVudCBzaWRlLiAgQnV0IGEg Y2xpZW50IGlzIGFsc28gZnJlZSB0byBpZ25vcmUgdGhpcyBpbmZvcm1hdGlvbiBhbmQKKyAg ICAgIGZpZ3VyZSBvdXQgaG93IHRvIGFycmFuZ2UgdGhlIGRlY3J5cHRpb24gaW4gc29tZSBv dGhlciB3YXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmVu Y3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBr ZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIGNvbHVtbiBtYXN0ZXIg a2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtLiAgVGhlIHZhbHVlCisgICAgICBt dXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+LWNvbXBhdGlibGUgbGl0ZXJhbC4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJp YWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RF Ul9LRVkgPSBjbWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJwor KTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUaGVyZSBpcyBubyA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9j b21tYW5kPiBzdGF0ZW1lbnQgaW4KKyAgIHRoZSBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxl PgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgIDwhLS0gVE9ETworICAgPG1l bWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wLWNvbHVtbi1l bmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgLS0+CisgICA8bWVtYmVyPjx4cmVmIGxp bmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9z aW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kYjMwNDNkNzE1Ci0tLSAvZGV2L251bGwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAt MCwwICsxLDEwOCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21h c3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVu dHJ5IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5kZXh0ZXJtIHpv bmU9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFyeT5DUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0 YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9yZWZlbnRy eXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNR TCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKwor IDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3Jl Zm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gbWFzdGVyIGtleTwv cmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lu b3BzaXM+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3Jl cGxhY2VhYmxlPiBXSVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxhY2VhYmxlPnJlYWxtPC9y ZXBsYWNlYWJsZT4gXQorKQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgor ICAgPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBkZWZpbmVz IGEgbmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1uIG1hc3RlciBrZXkgaXMg dXNlZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMsIHdoaWNoCisgICBhcmUg dGhlIGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1bW4gZGF0YS4gIFRoZSBr ZXkgbWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBub3Qgc3RvcmVk IGluIHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0 ZXIga2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFsbG93IGEgY2xpZW50IHRv IGxvY2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1wbGUgaW4gYSBmaWxlIG9y IGluIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJp YWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxl PjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGlz IGFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGNvbHVt biBtYXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxvb2t1cCBieSBjbGllbnRz LiAgVGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAgIG1hc3RlciBrZXlzIHRo YXQgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUgc3lzdGVtIGxvY2F0aW9u LAorICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBzaG91bGQgYmUgaW4gdGhl IHNhbWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhlbiBiZSBjb25maWd1cmVk IHRvIGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBpbiBhCisgICAgICBjZXJ0 YWluIHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcmVzcGVjdGl2ZSBjbGll bnQgbGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5zdHJ1Y3Rpb25zLgorICAg ICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVmYXVsdCBpcyB0aGUgZW1w dHkgc3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVB VEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXlyZWFsbScpOworPC9wcm9n cmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29t cGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFu ZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAg dGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0i aW5saW5lIj4KKyAgPCEtLSBUT0RPCisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1h bHRlci1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgLS0+ CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRp b24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8 L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggNmJiZjE1 ZWQxYS4uMjhiNDlkMDkzYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBA IC0yMiw3ICsyMiw3IEBACiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRF IFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQg XSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ICggWwotICB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIFNUT1JBR0UgeyBQ TEFJTiB8IEVYVEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIH0gXSBbIENPTVBSRVNTSU9OIDxy ZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFU RSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsg Li4uIF0gXQorICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFt ZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5 cGU8L3JlcGxhY2VhYmxlPiBbIEVOQ1JZUFRFRCBXSVRIICggPHJlcGxhY2VhYmxlPmVuY3J5 cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICkgXSBbIFNUT1JBR0UgeyBQTEFJTiB8IEVY VEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIH0gXSBbIENPTVBSRVNTSU9OIDxyZXBsYWNlYWJs ZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFj ZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQog ICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPgogICAg IHwgTElLRSA8cmVwbGFjZWFibGU+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT4gWyA8cmVw bGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAuLi4gXSB9CiAgICAgWywgLi4u IF0KQEAgLTM0OSw2ICszNDksNDYgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAg IDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48bGl0ZXJhbD5FTkNSWVBURUQgV0lUSCAoIDxyZXBsYWNlYWJsZT5lbmNy eXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiApPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRW5hYmxlcyB0cmFuc3BhcmVudCBjb2x1 bW4gZW5jcnlwdGlvbiBmb3IgdGhlIGNvbHVtbi4KKyAgICAgIDxyZXBsYWNlYWJsZT5lbmNy eXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiBhcmUgY29tbWEtc2VwYXJhdGVkCisgICAg ICA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IHNwZWNpZmljYXRpb25zLiAgVGhlIGZv bGxvd2luZyBvcHRpb25zIGFyZQorICAgICAgYXZhaWxhYmxlOgorICAgICAgPHZhcmlhYmxl bGlzdD4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5j b2x1bW5fZW5jcnlwdGlvbl9rZXk8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVjaWZpZXMgdGhlIG5hbWUgb2Yg dGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0byB1c2UuICBTcGVjaWZ5aW5nCisgICAgICAg ICAgdGhpcyBpcyBtYW5kYXRvcnkuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+ZW5jcnlwdGlvbl90eXBlPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgPGxp dGVyYWw+cmFuZG9taXplZDwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0KSBvciA8bGl0ZXJhbD5k ZXRlcm1pbmlzdGljPC9saXRlcmFsPgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xp c3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmFsZ29yaXRobTwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBlbmNy eXB0aW9uIGFsZ29yaXRobSB0byB1c2UuICBUaGUgZGVmYXVsdCBpcworICAgICAgICAgIDxs aXRlcmFsPkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2PC9saXRlcmFsPi4KKyAgICAg ICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJt PjxsaXRlcmFsPklOSEVSSVRTICggPHJlcGxhY2VhYmxlPnBhcmVudF90YWJsZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA2NWJiMGE2YTNmLi5lNmM5M2YxYjEzIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMjU1LDYgKzIyNTUsMjggQEAgPHRpdGxlPk1l dGEtQ29tbWFuZHM8L3RpdGxlPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKIAorICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT48bGl0ZXJhbD5cZ2VuY3I8L2xpdGVyYWw+ IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvcmVwbGFjZWFi bGU+IF0gLi4uIDwvdGVybT4KKworICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+ CisgICAgICAgICBTZW5kcyB0aGUgY3VycmVudCBxdWVyeSBidWZmZXIgdG8gdGhlIHNlcnZl ciBmb3IgZXhlY3V0aW9uLCBhcyB3aXRoCisgICAgICAgICA8bGl0ZXJhbD5cZzwvbGl0ZXJh bD4sIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzIHBhc3NlZCBmb3IgYW55CisgICAg ICAgICBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzICg8bGl0ZXJhbD4kMTwvbGl0ZXJhbD4gZXRj LikuICBUaGlzIGNvbW1hbmQKKyAgICAgICAgIGVuc3VyZXMgdGhhdCBhbnkgcGFyYW1ldGVy cyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFyZQorICAgICAgICAgc2Vu dCB0byB0aGUgc2VydmVyIGVuY3J5cHRlZC4KKyAgICAgICAgPC9wYXJhPgorCisgICAgICAg IDxwYXJhPgorICAgICAgICAgRXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK0lOU0VSVCBJ TlRPIHRibDEgVkFMVUVTICgkMSwgJDIpIFxnZW5jciAnZmlyc3QgdmFsdWUnICdzZWNvbmQg dmFsdWUnCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisKICAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxnZXRlbnYgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnBzcWxfdmFyPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmVudl92YXI8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CiAK QEAgLTM5NDUsNiArMzk2NywxNyBAQCA8dGl0bGU+VmFyaWFibGVzPC90aXRsZT4KICAgICAg ICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgICA8dGVybT48dmFybmFtZT5ISURFX0NPTFVNTl9FTkNSWVBUSU9O PC92YXJuYW1lPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIDxsaXRlcmFsPnRydWU8L2xp dGVyYWw+LCBjb2x1bW4gZW5jcnlwdGlvbgorICAgICAgICAgZGV0YWlscyBhcmUgbm90IGRp c3BsYXllZC4gVGhpcyBpcyBtYWlubHkgdXNlZnVsIGZvciByZWdyZXNzaW9uCisgICAgICAg ICB0ZXN0cy4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg PC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgIDx0ZXJt Pjx2YXJuYW1lPkhJREVfVE9BU1RfQ09NUFJFU1NJT048L3Zhcm5hbWU+PC90ZXJtPgogICAg ICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggYTNiNzQzZThjMS4uMmUz NzUwMDAzMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtOTAsNiArOTAsOCBAQCA8dGl0bGU+ U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVhdGVBZ2dyZWdhdGU7CiAgICAmY3JlYXRl Q2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247CisgICAmY3JlYXRlQ29sdW1uRW5jcnlwdGlv bktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJLZXk7CiAgICAmY3JlYXRlQ29udmVyc2lv bjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZjcmVhdGVEb21haW47CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKaW5kZXggYzk5YWU1NGNiMC4uOWQzNDc2 ODE0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBs ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYwpAQCAt NDYsNiArNDYsOCBAQCBwcmludHNpbXBsZV9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwg aW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR1cGRlc2MpCiAJCXBxX3NlbmRpbnQxNigmYnVm LCBhdHRyLT5hdHRsZW4pOwogCQlwcV9zZW5kaW50MzIoJmJ1ZiwgYXR0ci0+YXR0dHlwbW9k KTsKIAkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBmb3JtYXQgY29kZSAqLworCQlwcV9z ZW5kaW50MzIoJmJ1ZiwgMCk7CS8qIENFSyAqLworCQlwcV9zZW5kaW50MTYoJmJ1ZiwgMCk7 CS8qIENFSyBhbGcgKi8KIAl9CiAKIAlwcV9lbmRtZXNzYWdlKCZidWYpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9wcmludHR1cC5jCmluZGV4IGQyZjNiNTcyODguLjI4YjQzN2U1Yzcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKQEAgLTE1LDEzICsxNSwy NiBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9n ZW5hbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9wcmludHR1cC5oIgorI2luY2x1ZGUgImFjY2Vz cy9za2V5LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImxp YnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKICNpbmNsdWRlICJ0 Y29wL3BxdWVyeS5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCisjaW5jbHVkZSAidXRp bHMvYXJyYXlhY2Nlc3MuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1 ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgog I2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogCiBzdGF0aWMgdm9pZCBwcmludHR1cF9z dGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwKQEAgLTE1MSw2ICsx NjQsMTM1IEBAIHByaW50dHVwX3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3Bl cmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCiAJICovCiB9CiAKKy8qCisgKiBTZW5kIENv bHVtbk1hc3RlcktleSBtZXNzYWdlLCB1bmxlc3MgaXQncyBhbHJlYWR5IGJlZW4gc2VudCBp biB0aGlzIHNlc3Npb24KKyAqIGZvciB0aGlzIGtleS4KKyAqLworTGlzdAkgICAqY21rX3Nl bnQgPSBOSUw7CisKK3N0YXRpYyB2b2lkCitjbWtfY2hhbmdlX2NiKERhdHVtIGFyZywgaW50 IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7CisJbGlzdF9mcmVlKGNta19zZW50KTsK KwljbWtfc2VudCA9IE5JTDsKK30KKworc3RhdGljIHZvaWQKK01heWJlU2VuZENvbHVtbk1h c3RlcktleU1lc3NhZ2UoT2lkIGNta2lkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlGb3Jt X3BnX2NvbG1hc3RlcmtleSBjbWtmb3JtOworCURhdHVtCQlkYXR1bTsKKwlib29sCQlpc251 bGw7CisJU3RyaW5nSW5mb0RhdGEgYnVmOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52 YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlpZiAobGlzdF9t ZW1iZXJfb2lkKGNta19zZW50LCBjbWtpZCkpCisJCXJldHVybjsKKworCXR1cGxlID0gU2Vh cmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsIGNta2lkKTsKKwljbWtmb3JtID0g KEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwbGUpOworCisJcHFfYmVnaW5t ZXNzYWdlKCZidWYsICd5Jyk7IC8qIENvbHVtbk1hc3RlcktleSAqLworCXBxX3NlbmRpbnQz MigmYnVmLCBjbWtmb3JtLT5vaWQpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgTmFtZVN0cihj bWtmb3JtLT5jbWtuYW1lKSk7CisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoQ01LT0lELCB0 dXBsZSwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rcmVhbG0sICZpc251bGwpOworCUFzc2Vy dCghaXNudWxsKTsKKwlwcV9zZW5kc3RyaW5nKCZidWYsIFRleHREYXR1bUdldENTdHJpbmco ZGF0dW0pKTsKKwlwcV9lbmRtZXNzYWdlKCZidWYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1 cGxlKTsKKworCWlmICghcmVnaXN0ZXJlZF9pbnZhbCkKKwl7CisJCUNhY2hlUmVnaXN0ZXJT eXNjYWNoZUNhbGxiYWNrKENNS09JRCwgY21rX2NoYW5nZV9jYiwgKERhdHVtKSAwKTsKKwkJ cmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJb2xkY29udGV4dCA9IE1lbW9yeUNv bnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwljbWtfc2VudCA9IGxhcHBlbmRf b2lkKGNta19zZW50LCBjbWtpZCk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRl eHQpOworfQorCisvKgorICogU2VuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IG1lc3NhZ2UsIHVu bGVzcyBpdCdzIGFscmVhZHkgYmVlbiBzZW50IGluIHRoaXMKKyAqIHNlc3Npb24gZm9yIHRo aXMga2V5LgorICovCitMaXN0CSAgICpjZWtfc2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQK K2Nla19jaGFuZ2VfY2IoRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1 ZSkKK3sKKwlsaXN0X2ZyZWUoY2VrX3NlbnQpOworCWNla19zZW50ID0gTklMOworfQorCit2 b2lkCitNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKQor eworCUhlYXBUdXBsZQl0dXBsZTsKKwlTY2FuS2V5RGF0YSBza2V5WzFdOworCVN5c1NjYW5E ZXNjIHNkOworCVJlbGF0aW9uCXJlbDsKKwlib29sCQlmb3VuZCA9IGZhbHNlOworCXN0YXRp YyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNv bnRleHQ7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNla19zZW50LCBhdHRjZWspKQorCQly ZXR1cm47CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX2NvbGVuY2tl eWRhdGFfY2tkY2VraWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAor CQkJCU9iamVjdElkR2V0RGF0dW0oYXR0Y2VrKSk7CisJcmVsID0gdGFibGVfb3BlbihDb2x1 bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwlzZCA9IHN5c3Rh YmxlX2JlZ2luc2NhbihyZWwsIENvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLCB0cnVl LCBOVUxMLCAxLCBza2V5KTsKKworCXdoaWxlICgodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0 KHNkKSkpCisJeworCQlGb3JtX3BnX2NvbGVuY2tleWRhdGEgY2tkZm9ybSA9IChGb3JtX3Bn X2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0dXBsZSk7CisJCURhdHVtCQlkYXR1bTsKKwkJ Ym9vbAkJaXNudWxsOworCQlieXRlYQkgICAqYmE7CisJCVN0cmluZ0luZm9EYXRhIGJ1ZjsK KworCQlNYXliZVNlbmRDb2x1bW5NYXN0ZXJLZXlNZXNzYWdlKGNrZGZvcm0tPmNrZGNta2lk KTsKKworCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwgQW51bV9wZ19jb2xlbmNrZXlk YXRhX2NrZGVuY3ZhbCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCAmaXNudWxsKTsKKwkJQXNz ZXJ0KCFpc251bGwpOworCQliYSA9IHBnX2RldG9hc3RfZGF0dW1fcGFja2VkKChieXRlYSAq KSBEYXR1bUdldFBvaW50ZXIoZGF0dW0pKTsKKworCQlwcV9iZWdpbm1lc3NhZ2UoJmJ1Ziwg J1knKTsgLyogQ29sdW1uRW5jcnlwdGlvbktleSAqLworCQlwcV9zZW5kaW50MzIoJmJ1Ziwg Y2tkZm9ybS0+Y2tkY2VraWQpOworCQlwcV9zZW5kaW50MzIoJmJ1ZiwgY2tkZm9ybS0+Y2tk Y21raWQpOworCQlwcV9zZW5kaW50MTYoJmJ1ZiwgY2tkZm9ybS0+Y2tkY21rYWxnKTsKKwkJ cHFfc2VuZGludDMyKCZidWYsIFZBUlNJWkVfQU5ZX0VYSERSKGJhKSk7CisJCXBxX3NlbmRi eXRlcygmYnVmLCBWQVJEQVRBX0FOWShiYSksIFZBUlNJWkVfQU5ZX0VYSERSKGJhKSk7CisJ CXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwkJZm91bmQgPSB0cnVlOworCX0KKworCWlmICgh Zm91bmQpCisJCWVsb2coRVJST1IsICJsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgZGF0YSAldSIsIGF0dGNlayk7CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNkKTsK Kwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAoIXJlZ2lzdGVyZWRfaW52YWwp CisJeworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhDRUtEQVRBT0lELCBjZWtf Y2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQlyZWdpc3RlcmVkX2ludmFsID0gdHJ1ZTsKKwl9 CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRl eHQpOworCWNla19zZW50ID0gbGFwcGVuZF9vaWQoY2VrX3NlbnQsIGF0dGNlayk7CisJTWVt b3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCiAvKgogICogU2VuZFJvd0Rl c2NyaXB0aW9uTWVzc2FnZSAtLS0gc2VuZCBhIFJvd0Rlc2NyaXB0aW9uIG1lc3NhZ2UgdG8g dGhlIGZyb250ZW5kCiAgKgpAQCAtMjAwLDYgKzM0Miw4IEBAIFNlbmRSb3dEZXNjcmlwdGlv bk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJT2lkCQkJ cmVzb3JpZ3RibDsKIAkJQXR0ck51bWJlcglyZXNvcmlnY29sOwogCQlpbnQxNgkJZm9ybWF0 OworCQlPaWQJCQlhdHRjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludDE2CQlhdHRlbmNhbGcg PSAwOwogCiAJCS8qCiAJCSAqIElmIGNvbHVtbiBpcyBhIGRvbWFpbiwgc2VuZCB0aGUgYmFz ZSB0eXBlIGFuZCB0eXBtb2QgaW5zdGVhZC4KQEAgLTIzMSw2ICszNzUsMjIgQEAgU2VuZFJv d0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZv LAogCQllbHNlCiAJCQlmb3JtYXQgPSAwOwogCisJCWlmIChnZXRfdHlwdHlwZShhdHR0eXBp ZCkgPT0gVFlQVFlQRV9FTkNSWVBURUQpCisJCXsKKwkJCUhlYXBUdXBsZQl0cDsKKwkJCUZv cm1fcGdfYXR0cmlidXRlIG9yaWdfYXR0OworCisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihB VFROVU0sIE9iamVjdElkR2V0RGF0dW0ocmVzb3JpZ3RibCksIEludDE2R2V0RGF0dW0ocmVz b3JpZ2NvbCkpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRlICVkIG9mIHJlbGF0aW9u ICV1IiwgcmVzb3JpZ2NvbCwgcmVzb3JpZ3RibCk7CisJCQlvcmlnX2F0dCA9IChGb3JtX3Bn X2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCU1heWJlU2VuZENvbHVtbkVuY3J5cHRp b25LZXlNZXNzYWdlKG9yaWdfYXR0LT5hdHRjZWspOworCQkJYXR0dHlwaWQgPSBvcmlnX2F0 dC0+YXR0cmVhbHR5cGlkOworCQkJYXR0Y2VraWQgPSBvcmlnX2F0dC0+YXR0Y2VrOworCQkJ YXR0ZW5jYWxnID0gb3JpZ19hdHQtPmF0dGVuY2FsZzsKKwkJCVJlbGVhc2VTeXNDYWNoZSh0 cCk7CisJCX0KKwogCQlwcV93cml0ZXN0cmluZyhidWYsIE5hbWVTdHIoYXR0LT5hdHRuYW1l KSk7CiAJCXBxX3dyaXRlaW50MzIoYnVmLCByZXNvcmlndGJsKTsKIAkJcHFfd3JpdGVpbnQx NihidWYsIHJlc29yaWdjb2wpOwpAQCAtMjM4LDYgKzM5OCw4IEBAIFNlbmRSb3dEZXNjcmlw dGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJcHFf d3JpdGVpbnQxNihidWYsIGF0dC0+YXR0bGVuKTsKIAkJcHFfd3JpdGVpbnQzMihidWYsIGF0 dHR5cG1vZCk7CiAJCXBxX3dyaXRlaW50MTYoYnVmLCBmb3JtYXQpOworCQlwcV93cml0ZWlu dDMyKGJ1ZiwgYXR0Y2VraWQpOworCQlwcV93cml0ZWludDE2KGJ1ZiwgYXR0ZW5jYWxnKTsK IAl9CiAKIAlwcV9lbmRtZXNzYWdlX3JldXNlKGJ1Zik7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21t b24vdHVwZGVzYy5jCmluZGV4IGQ2ZmIyNjFlMjAuLmUzZWNjNjRlYTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCkBAIC00NTksNiArNDU5LDEyIEBAIGVxdWFsVHVw bGVEZXNjcyhUdXBsZURlc2MgdHVwZGVzYzEsIFR1cGxlRGVzYyB0dXBkZXNjMikKIAkJCXJl dHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5hdHRpc2xvY2FsICE9IGF0dHIyLT5hdHRpc2xv Y2FsKQogCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEtPmF0dGNlayAhPSBhdHRyMi0+ YXR0Y2VrKQorCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEtPmF0dHJlYWx0eXBpZCAh PSBhdHRyMi0+YXR0cmVhbHR5cGlkKQorCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEt PmF0dGVuY2FsZyAhPSBhdHRyMi0+YXR0ZW5jYWxnKQorCQkJcmV0dXJuIGZhbHNlOwogCQlp ZiAoYXR0cjEtPmF0dGluaGNvdW50ICE9IGF0dHIyLT5hdHRpbmhjb3VudCkKIAkJCXJldHVy biBmYWxzZTsKIAkJaWYgKGF0dHIxLT5hdHRjb2xsYXRpb24gIT0gYXR0cjItPmF0dGNvbGxh dGlvbikKQEAgLTYyOSw2ICs2MzUsOSBAQCBUdXBsZURlc2NJbml0RW50cnkoVHVwbGVEZXNj IGRlc2MsCiAJYXR0LT5hdHRnZW5lcmF0ZWQgPSAnXDAnOwogCWF0dC0+YXR0aXNkcm9wcGVk ID0gZmFsc2U7CiAJYXR0LT5hdHRpc2xvY2FsID0gdHJ1ZTsKKwlhdHQtPmF0dGNlayA9IDA7 CisJYXR0LT5hdHRyZWFsdHlwaWQgPSAwOworCWF0dC0+YXR0ZW5jYWxnID0gMDsKIAlhdHQt PmF0dGluaGNvdW50ID0gMDsKIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIGFyZSBub3Qg cHJlc2VudCBpbiB0dXBsZWRlc2NzICovCiAKQEAgLTY5MCw2ICs2OTksOSBAQCBUdXBsZURl c2NJbml0QnVpbHRpbkVudHJ5KFR1cGxlRGVzYyBkZXNjLAogCWF0dC0+YXR0Z2VuZXJhdGVk ID0gJ1wwJzsKIAlhdHQtPmF0dGlzZHJvcHBlZCA9IGZhbHNlOwogCWF0dC0+YXR0aXNsb2Nh bCA9IHRydWU7CisJYXR0LT5hdHRjZWsgPSAwOworCWF0dC0+YXR0cmVhbHR5cGlkID0gMDsK KwlhdHQtPmF0dGVuY2FsZyA9IDA7CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFy aWFibGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCmluZGV4IDEwYmYyNmNl N2MuLmNlYTkxZDRhODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hh c2h2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0 ZS5jCkBAIC0zMzEsNyArMzMxLDcgQEAgY2hlY2tfaGFzaF9mdW5jX3NpZ25hdHVyZShPaWQg ZnVuY2lkLCBpbnQxNiBhbXByb2NudW0sIE9pZCBhcmd0eXBlKQogCQkJCSBhcmd0eXBlID09 IEJPT0xPSUQpCiAJCQkgLyogb2theSwgYWxsb3dlZCB1c2Ugb2YgaGFzaGNoYXIoKSAqLyA7 CiAJCWVsc2UgaWYgKChmdW5jaWQgPT0gRl9IQVNIVkFSTEVOQSB8fCBmdW5jaWQgPT0gRl9I QVNIVkFSTEVOQUVYVEVOREVEKSAmJgotCQkJCSBhcmd0eXBlID09IEJZVEVBT0lEKQorCQkJ CSAoYXJndHlwZSA9PSBCWVRFQU9JRCB8fCBhcmd0eXBlID09IFBHX0VOQ1JZUFRFRF9ERVRP SUQpKQogCQkJIC8qIG9rYXksIGFsbG93ZWQgdXNlIG9mIGhhc2h2YXJsZW5hKCkgKi8gOwog CQllbHNlCiAJCQlyZXN1bHQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDg5 YTAyMjFlYzkuLjdlMWE5MWI5NzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv TWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyAr NzIsOCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFt ZXRlcl9hY2wuaCBwZ19wYXJ0aXRpb25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3Ry YW5zZm9ybS5oIFwKIAlwZ19zZXF1ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGlj YXRpb25fbmFtZXNwYWNlLmggXAotCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlw dGlvbi5oIHBnX3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBn X3N1YnNjcmlwdGlvbi5oIHBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVy a2V5LmggcGdfY29sZW5ja2V5LmggcGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9I RUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0 ZW1fZmtfaW5mby5oCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hr LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDE3ZmY2MTdmYmEuLjM4 ZDdlNzgxNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMzU3OSw2ICszNTc5LDggQEAg YWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAog CQkJCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToK IAkJCQkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQlj YXNlIE9CSkVDVF9DTUs6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2Ug T0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTM3 MTksNiArMzcyMSw4IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVj dFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQkJCQljYXNlIE9C SkVDVF9BVFRSSUJVVEU6CiAJCQkJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCQkJCWNhc2UgT0JK RUNUX0NFSzoKKwkJCQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJCQljYXNlIE9CSkVDVF9ERUZB VUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJCWNhc2UgT0JKRUNUX0RPTUNP TlNUUkFJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDliMDM1NzllNmUuLmU5MWIwYjgwNmQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC03NDYsNiArNzQ2LDkgQEAgSW5zZXJ0UGdBdHRyaWJ1 dGVUdXBsZXMoUmVsYXRpb24gcGdfYXR0cmlidXRlX3JlbCwKIAkJc2xvdFtzbG90Q291bnRd LT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGdlbmVyYXRlZCAtIDFdID0gQ2hh ckdldERhdHVtKGF0dHJzLT5hdHRnZW5lcmF0ZWQpOwogCQlzbG90W3Nsb3RDb3VudF0tPnR0 c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0aXNkcm9wcGVkIC0gMV0gPSBCb29sR2V0 RGF0dW0oYXR0cnMtPmF0dGlzZHJvcHBlZCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3Zh bHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2xvY2FsIC0gMV0gPSBCb29sR2V0RGF0dW0o YXR0cnMtPmF0dGlzbG9jYWwpOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51 bV9wZ19hdHRyaWJ1dGVfYXR0Y2VrIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGF0dHJzLT5h dHRjZWspOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1 dGVfYXR0cmVhbHR5cGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGF0dHJzLT5hdHRyZWFs dHlwaWQpOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1 dGVfYXR0ZW5jYWxnIC0gMV0gPSBJbnQxNkdldERhdHVtKGF0dHJzLT5hdHRlbmNhbGcpOwog CQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0aW5o Y291bnQgLSAxXSA9IEludDMyR2V0RGF0dW0oYXR0cnMtPmF0dGluaGNvdW50KTsKIAkJc2xv dFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGNvbGxhdGlv biAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0Y29sbGF0aW9uKTsKIAkJaWYg KGF0dG9wdGlvbnMgJiYgYXR0b3B0aW9uc1tuYXR0c10gIT0gKERhdHVtKSAwKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA2MDgwZmY4ZjVmLi41OThiMThmM2Nj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjMwMyw2ICsyMzAz LDggQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlvYmpu b2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9BQ0NFU1Nf TUVUSE9EOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2Fz ZSBPQkpFQ1RfREFUQUJBU0U6CiAJCWNhc2UgT0JKRUNUX0VWRU5UX1RSSUdHRVI6CiAJCWNh c2UgT0JKRUNUX0VYVEVOU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKaW5kZXggNDhmNzM0 OGY5MS4uNjlmNjE3NWM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFr ZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTE5LDYgKzE5 LDcgQEAgT0JKUyA9IFwKIAlhbmFseXplLm8gXAogCWFzeW5jLm8gXAogCWNsdXN0ZXIubyBc CisJY29sZW5jY21kcy5vIFwKIAljb2xsYXRpb25jbWRzLm8gXAogCWNvbW1lbnQubyBcCiAJ Y29uc3RyYWludC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVu Y2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMDU3MzNiZGZjCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCkBAIC0wLDAgKzEsMjQ1 IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNjbWRzLmMKKyAqCSAg Y29sdW1uLWVuY3J5cHRpb24tcmVsYXRlZCBjb21tYW5kcyBzdXBwb3J0IGNvZGUKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5U SUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYworICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKwor I2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFi bGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNsdWRlICJjYXRhbG9n L2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29s ZW5jY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRl ICJ1dGlscy9hY2wuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUg InV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKK09iamVjdEFk ZHJlc3MKK0NyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQp Cit7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlSZWxhdGlvbglyZWw7CisJUmVsYXRpb24J cmVsMjsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlPaWQJCQljZWtvaWQ7CisJTGlzdENl bGwgICAqbGM7CisJRGVmRWxlbSAgICAqY21rRWwgPSBOVUxMOworCURlZkVsZW0gICAgKmFs Z0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICplbmN2YWxFbCA9IE5VTEw7CisJT2lkCQkJY21r b2lkID0gMDsKKwlpbnQxNgkJYWxnOworCWNoYXIJICAgKmVuY3ZhbDsKKwlEYXR1bQkJdmFs dWVzW05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdf Y29sZW5ja2V5XSA9IHswfTsKKwlEYXR1bQkJdmFsdWVzMltOYXR0c19wZ19jb2xlbmNrZXlk YXRhXSA9IHswfTsKKwlib29sCQludWxsczJbTmF0dHNfcGdfY29sZW5ja2V5ZGF0YV0gPSB7 MH07CisJSGVhcFR1cGxlCXR1cDsKKworCWFjbHJlc3VsdCA9IHBnX2RhdGFiYXNlX2FjbGNo ZWNrKE15RGF0YWJhc2VJZCwgR2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChhY2xy ZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JK RUNUX0RBVEFCQVNFLAorCQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQp KTsKKworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgUm93RXhj bHVzaXZlTG9jayk7CisJcmVsMiA9IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJlbGF0 aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJY2Vrb2lkID0gR2V0U3lzQ2FjaGVPaWQx KENFS05BTUUsIEFudW1fcGdfY29sZW5ja2V5X29pZCwKKwkJCQkJCQkgQ1N0cmluZ0dldERh dHVtKHN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSk7CisJaWYgKE9pZElzVmFsaWQo Y2Vrb2lkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJ Q0FURV9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVz XCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJc3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5hbWVz KSkpKSk7CisKKwlmb3JlYWNoKGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsKKwkJRGVmRWxl bSAgICAqZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURlZkVsZW0gICAq KmRlZmVscDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29sdW1uX21hc3Rl cl9rZXkiKSA9PSAwKQorCQkJZGVmZWxwID0gJmNta0VsOworCQllbHNlIGlmIChzdHJjbXAo ZGVmZWwtPmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJZGVmZWxwID0gJmFsZ0Vs OworCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJlbmNyeXB0ZWRfdmFsdWUi KSA9PSAwKQorCQkJZGVmZWxwID0gJmVuY3ZhbEVsOworCQllbHNlCisJCXsKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJ IGVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJl Y29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJfQorCQlpZiAoKmRlZmVs cCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7 CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAoY21rRWwpCisJeworCQljaGFyCSAg ICp2YWwgPSBkZWZHZXRTdHJpbmcoY21rRWwpOworCisJCWNta29pZCA9IEdldFN5c0NhY2hl T2lkMShDTUtOQU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsIFBvaW50ZXJHZXREYXR1 bSh2YWwpKTsKKwkJaWYgKCFjbWtvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygiY29sdW1uIG1h c3RlciBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgdmFsKSk7CisJfQorCWVsc2UKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJ CQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIsCisJCQkJ CQkiY29sdW1uX21hc3Rlcl9rZXkiKSkpOworCisJaWYgKGFsZ0VsKQorCXsKKwkJY2hhcgkg ICAqdmFsID0gZGVmR2V0U3RyaW5nKGFsZ0VsKTsKKworCQlpZiAoc3RyY21wKHZhbCwgIlJT QUVTX09BRVBfU0hBXzEiKSA9PSAwKQorCQkJYWxnID0gUEdfQ01LX1JTQUVTX09BRVBfU0hB XzE7CisJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2 IikgPT0gMCkKKwkJCWFsZyA9IFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY7CisJCWVsc2UK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxn b3JpdGhtOiAlcyIsIHZhbCkpOworCX0KKwllbHNlCisJCWFsZyA9IFBHX0NNS19SU0FFU19P QUVQX1NIQV8xOworCisJaWYgKGVuY3ZhbEVsKQorCQllbmN2YWwgPSBkZWZHZXRTdHJpbmco ZW5jdmFsRWwpOworCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0 IGJlIHNwZWNpZmllZCIsCisJCQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKworCS8qIHBn X2NvbGVuY2tleSAqLworCWNla29pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVt bkVuY0tleU9pZEluZGV4SWQsIEFudW1fcGdfY29sZW5ja2V5X29pZCk7CisJdmFsdWVzW0Fu dW1fcGdfY29sZW5ja2V5X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjZWtvaWQpOwor CXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lIC0gMV0gPQorCQlEaXJlY3RGdW5j dGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChzdG10LT5k ZWZuYW1lcykpKSk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5X2Nla293bmVyIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKEdldFVzZXJJZCgpKTsKKworCXR1cCA9IGhlYXBfZm9ybV90 dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dU dXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCS8qIHBn X2NvbGVuY2tleWRhdGEgKi8KKwl2YWx1ZXMyW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQg LSAxXSA9CisJCU9iamVjdElkR2V0RGF0dW0oR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgQ29s dW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsIEFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQpKTsK Kwl2YWx1ZXMyW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShjZWtvaWQpOworCXZhbHVlczJbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2Nr ZGNta2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGNta29pZCk7CisJdmFsdWVzMltBbnVt X3BnX2NvbGVuY2tleWRhdGFfY2tkY21rYWxnIC0gMV0gPSBJbnQxNkdldERhdHVtKGFsZyk7 CisJdmFsdWVzMltBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkZW5jdmFsIC0gMV0gPSBEaXJl Y3RGdW5jdGlvbkNhbGwxKGJ5dGVhaW4sIENTdHJpbmdHZXREYXR1bShlbmN2YWwpKTsKKwor CXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbDIpLCB2YWx1ZXMy LCBudWxsczIpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwyLCB0dXApOworCWhlYXBfZnJl ZXR1cGxlKHR1cCk7CisKKwlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihDb2x1bW5FbmNLZXlS ZWxhdGlvbklkLCBjZWtvaWQsIEdldFVzZXJJZCgpKTsKKworCU9iamVjdEFkZHJlc3NTZXQo bXlzZWxmLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQpOworCisJdGFibGVfY2xv c2UocmVsMiwgUm93RXhjbHVzaXZlTG9jayk7CisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKENvbHVtbk1hc3Rl cktleVJlbGF0aW9uSWQsIGNla29pZCwgMCk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCitP YmplY3RBZGRyZXNzCitDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10 ICpzdG10KQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJUmVsYXRpb24JcmVsOworCU9i amVjdEFkZHJlc3MgbXlzZWxmOworCU9pZAkJCWNta29pZDsKKwlMaXN0Q2VsbCAgICpsYzsK KwlEZWZFbGVtICAgICpyZWFsbUVsID0gTlVMTDsKKwljaGFyCSAgICpyZWFsbTsKKwlEYXR1 bQkJdmFsdWVzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJYm9vbAkJbnVsbHNb TmF0dHNfcGdfY29sbWFzdGVya2V5XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCisJYWNs cmVzdWx0ID0gcGdfZGF0YWJhc2VfYWNsY2hlY2soTXlEYXRhYmFzZUlkLCBHZXRVc2VySWQo KSwgQUNMX0NSRUFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNs Y2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfREFUQUJBU0UsCisJCQkJCSAgIGdldF9k YXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpOworCisJcmVsID0gdGFibGVfb3BlbihDb2x1 bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNta29pZCA9 IEdldFN5c0NhY2hlT2lkMShDTUtOQU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsCisJ CQkJCQkJIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkp OworCWlmIChPaWRJc1ZhbGlkKGNta29pZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4g bWFzdGVyIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJc3RyVmFsKGxsYXN0 KHN0bXQtPmRlZm5hbWVzKSkpKSk7CisKKwlmb3JlYWNoKGxjLCBzdG10LT5kZWZpbml0aW9u KQorCXsKKwkJRGVmRWxlbSAgICAqZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7 CisJCURlZkVsZW0gICAqKmRlZmVscDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1l LCAicmVhbG0iKSA9PSAwKQorCQkJZGVmZWxwID0gJnJlYWxtRWw7CisJCWVsc2UKKwkJewor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkgZXJybXNnKCJjb2x1bW4gbWFzdGVyIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5v dCByZWNvZ25pemVkIiwKKwkJCQkJCQlkZWZlbC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpk ZWZlbHAgIT0gTlVMTCkKKwkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3Rh dGUpOworCQkqZGVmZWxwID0gZGVmZWw7CisJfQorCisJaWYgKHJlYWxtRWwpCisJCXJlYWxt ID0gZGVmR2V0U3RyaW5nKHJlYWxtRWwpOworCWVsc2UKKwkJcmVhbG0gPSAiIjsKKworCWNt a29pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVtbk1hc3RlcktleU9pZEluZGV4 SWQsIEFudW1fcGdfY29sbWFzdGVya2V5X29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sbWFz dGVya2V5X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpOworCXZhbHVlc1tB bnVtX3BnX2NvbG1hc3RlcmtleV9jbWtuYW1lIC0gMV0gPQorCQlEaXJlY3RGdW5jdGlvbkNh bGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChzdG10LT5kZWZuYW1l cykpKSk7CisJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta293bmVyIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKEdldFVzZXJJZCgpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0 ZXJrZXlfY21rcmVhbG0gLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVhbG0pOworCisJ dHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBu dWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBs ZSh0dXApOworCisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uTWFzdGVyS2V5UmVs YXRpb25JZCwgY21rb2lkLCBHZXRVc2VySWQoKSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15 c2VsZiwgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkKTsKKworCXRhYmxlX2Ns b3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRl SG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJcmV0dXJu IG15c2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwppbmRleCBl ZWYzZTVkNTZlLi4wYmZiMTUwZWMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCkBAIC05NTEsNiArOTUxLDggQEAgRXZlbnRUcmlnZ2VyU3VwcG9ydHNPYmplY3RU eXBlKE9iamVjdFR5cGUgb2J0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2Ug T0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2Fz ZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgpAQCAtMjA1 NSw2ICsyMDU3LDggQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToK IAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVD VF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVS U0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKQEAgLTIxMzgsNiArMjE0Miw4IEBAIHN0 cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVD VF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2Fz ZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNl IE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDU3OTgyNWMx NTkuLjBmMmVkNjdhOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBh cmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTUwLDcgKzUw LDYgQEAgc3RhdGljIHZvaWQgSW5pdFF1ZXJ5SGFzaFRhYmxlKHZvaWQpOwogc3RhdGljIFBh cmFtTGlzdEluZm8gRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJ CQkJUHJlcGFyZWRTdGF0ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCQkJCQkJCQlF U3RhdGUgKmVzdGF0ZSk7Ci1zdGF0aWMgRGF0dW0gYnVpbGRfcmVndHlwZV9hcnJheShPaWQg KnBhcmFtX3R5cGVzLCBpbnQgbnVtX3BhcmFtcyk7CiAKIC8qCiAgKiBJbXBsZW1lbnRzIHRo ZSAnUFJFUEFSRScgdXRpbGl0eSBzdGF0ZW1lbnQuCkBAIC02Miw2ICs2MSw4IEBAIFByZXBh cmVRdWVyeShQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCVJhd1N0 bXQgICAgKnJhd3N0bXQ7CiAJQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKIAlPaWQJ CSAgICphcmd0eXBlcyA9IE5VTEw7CisJT2lkCQkgICAqYXJnb3JpZ3RibHMgPSBOVUxMOwor CUF0dHJOdW1iZXIgKmFyZ29yaWdjb2xzID0gTlVMTDsKIAlpbnQJCQluYXJnczsKIAlMaXN0 CSAgICpxdWVyeV9saXN0OwogCkBAIC0xMDgsNiArMTA5LDkgQEAgUHJlcGFyZVF1ZXJ5KFBh cnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAKIAkJCWFyZ3R5cGVzW2kr K10gPSB0b2lkOwogCQl9CisKKwkJYXJnb3JpZ3RibHMgPSAoT2lkICopIHBhbGxvYzAobmFy Z3MgKiBzaXplb2YoT2lkKSk7CisJCWFyZ29yaWdjb2xzID0gKEF0dHJOdW1iZXIgKikgcGFs bG9jMChuYXJncyAqIHNpemVvZihBdHRyTnVtYmVyKSk7CiAJfQogCiAJLyoKQEAgLTExNyw3 ICsxMjEsOSBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3Rt dCAqc3RtdCwKIAkgKiBSZXdyaXRlIHRoZSBxdWVyeS4gVGhlIHJlc3VsdCBjb3VsZCBiZSAw LCAxLCBvciBtYW55IHF1ZXJpZXMuCiAJICovCiAJcXVlcnlfbGlzdCA9IHBnX2FuYWx5emVf YW5kX3Jld3JpdGVfdmFycGFyYW1zKHJhd3N0bXQsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAot CQkJCQkJCQkJCQkJICAmYXJndHlwZXMsICZuYXJncywgTlVMTCk7CisJCQkJCQkJCQkJCQkg ICZhcmd0eXBlcywgJm5hcmdzLAorCQkJCQkJCQkJCQkJICAmYXJnb3JpZ3RibHMsICZhcmdv cmlnY29scywKKwkJCQkJCQkJCQkJCSAgTlVMTCk7CiAKIAkvKiBGaW5pc2ggZmlsbGluZyBp biB0aGUgQ2FjaGVkUGxhblNvdXJjZSAqLwogCUNvbXBsZXRlQ2FjaGVkUGxhbihwbGFuc291 cmNlLApAQCAtMTI1LDYgKzEzMSw4IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpwc3Rh dGUsIFByZXBhcmVTdG10ICpzdG10LAogCQkJCQkgICBOVUxMLAogCQkJCQkgICBhcmd0eXBl cywKIAkJCQkJICAgbmFyZ3MsCisJCQkJCSAgIGFyZ29yaWd0YmxzLAorCQkJCQkgICBhcmdv cmlnY29scywKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgQ1VSU09S X09QVF9QQVJBTExFTF9PSywJLyogYWxsb3cgcGFyYWxsZWwgbW9kZSAqLwpAQCAtNjgzLDM0 ICs2OTEsNDkgQEAgcGdfcHJlcGFyZWRfc3RhdGVtZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CWhhc2hfc2VxX2luaXQoJmhhc2hfc2VxLCBwcmVwYXJlZF9xdWVyaWVzKTsKIAkJd2hpbGUg KChwcmVwX3N0bXQgPSBoYXNoX3NlcV9zZWFyY2goJmhhc2hfc2VxKSkgIT0gTlVMTCkKIAkJ eworCQkJaW50CQkJbnVtX3BhcmFtcyA9IHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX3Bh cmFtczsKIAkJCVR1cGxlRGVzYwlyZXN1bHRfZGVzYzsKLQkJCURhdHVtCQl2YWx1ZXNbOF07 Ci0JCQlib29sCQludWxsc1s4XSA9IHswfTsKKwkJCURhdHVtCSAgICp0bXBfYXJ5OworCQkJ RGF0dW0JCXZhbHVlc1sxMF07CisJCQlib29sCQludWxsc1sxMF0gPSB7MH07CiAKIAkJCXJl c3VsdF9kZXNjID0gcHJlcF9zdG10LT5wbGFuc291cmNlLT5yZXN1bHREZXNjOwogCiAJCQl2 YWx1ZXNbMF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHByZXBfc3RtdC0+c3RtdF9uYW1lKTsK IAkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocHJlcF9zdG10LT5wbGFuc291 cmNlLT5xdWVyeV9zdHJpbmcpOwogCQkJdmFsdWVzWzJdID0gVGltZXN0YW1wVHpHZXREYXR1 bShwcmVwX3N0bXQtPnByZXBhcmVfdGltZSk7Ci0JCQl2YWx1ZXNbM10gPSBidWlsZF9yZWd0 eXBlX2FycmF5KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMsCi0JCQkJCQkJ CQkJCXByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX3BhcmFtcyk7CisKKwkJCXRtcF9hcnkg PSAoRGF0dW0gKikgcGFsbG9jKG51bV9wYXJhbXMgKiBzaXplb2YoRGF0dW0pKTsKKwkJCWZv ciAoaW50IGkgPSAwOyBpIDwgbnVtX3BhcmFtczsgaSsrKQorCQkJCXRtcF9hcnlbaV0gPSBP YmplY3RJZEdldERhdHVtKHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+cGFyYW1fdHlwZXNbaV0p OworCQkJdmFsdWVzWzNdID0gUG9pbnRlckdldERhdHVtKGNvbnN0cnVjdF9hcnJheV9idWls dGluKHRtcF9hcnksIG51bV9wYXJhbXMsIFJFR1RZUEVPSUQpKTsKKworCQkJdG1wX2FyeSA9 IChEYXR1bSAqKSBwYWxsb2MobnVtX3BhcmFtcyAqIHNpemVvZihEYXR1bSkpOworCQkJZm9y IChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9i amVjdElkR2V0RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV9vcmlndGJsc1tp XSk7CisJCQl2YWx1ZXNbNF0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1 aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgUkVHQ0xBU1NPSUQpKTsKKworCQkJdG1wX2Fy eSA9IChEYXR1bSAqKSBwYWxsb2MobnVtX3BhcmFtcyAqIHNpemVvZihEYXR1bSkpOworCQkJ Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9 IEludDE2R2V0RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV9vcmlnY29sc1tp XSk7CisJCQl2YWx1ZXNbNV0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1 aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgSU5UMk9JRCkpOworCiAJCQlpZiAocmVzdWx0 X2Rlc2MpCiAJCQl7Ci0JCQkJT2lkCQkgICAqcmVzdWx0X3R5cGVzOwotCi0JCQkJcmVzdWx0 X3R5cGVzID0gKE9pZCAqKSBwYWxsb2MocmVzdWx0X2Rlc2MtPm5hdHRzICogc2l6ZW9mKE9p ZCkpOworCQkJCXRtcF9hcnkgPSAoRGF0dW0gKikgcGFsbG9jKHJlc3VsdF9kZXNjLT5uYXR0 cyAqIHNpemVvZihEYXR1bSkpOwogCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0X2Rl c2MtPm5hdHRzOyBpKyspCi0JCQkJCXJlc3VsdF90eXBlc1tpXSA9IHJlc3VsdF9kZXNjLT5h dHRyc1tpXS5hdHR0eXBpZDsKLQkJCQl2YWx1ZXNbNF0gPSBidWlsZF9yZWd0eXBlX2FycmF5 KHJlc3VsdF90eXBlcywgcmVzdWx0X2Rlc2MtPm5hdHRzKTsKKwkJCQkJdG1wX2FyeVtpXSA9 IE9iamVjdElkR2V0RGF0dW0ocmVzdWx0X2Rlc2MtPmF0dHJzW2ldLmF0dHR5cGlkKTsKKwkJ CQl2YWx1ZXNbNl0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4o dG1wX2FyeSwgcmVzdWx0X2Rlc2MtPm5hdHRzLCBSRUdUWVBFT0lEKSk7CiAJCQl9CiAJCQll bHNlCiAJCQl7CiAJCQkJLyogbm8gcmVzdWx0IGRlc2NyaXB0b3IgKGZvciBleGFtcGxlLCBE TUwgc3RhdGVtZW50KSAqLwotCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9 IHRydWU7CiAJCQl9Ci0JCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0ocHJlcF9zdG10LT5m cm9tX3NxbCk7Ci0JCQl2YWx1ZXNbNl0gPSBJbnQ2NEdldERhdHVtRmFzdChwcmVwX3N0bXQt PnBsYW5zb3VyY2UtPm51bV9nZW5lcmljX3BsYW5zKTsKLQkJCXZhbHVlc1s3XSA9IEludDY0 R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2N1c3RvbV9wbGFucyk7 CisKKwkJCXZhbHVlc1s3XSA9IEJvb2xHZXREYXR1bShwcmVwX3N0bXQtPmZyb21fc3FsKTsK KwkJCXZhbHVlc1s4XSA9IEludDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+cGxhbnNvdXJj ZS0+bnVtX2dlbmVyaWNfcGxhbnMpOworCQkJdmFsdWVzWzldID0gSW50NjRHZXREYXR1bUZh c3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fY3VzdG9tX3BsYW5zKTsKIAogCQkJdHVw bGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywK IAkJCQkJCQkJIHZhbHVlcywgbnVsbHMpOwpAQCAtNzE5LDI0ICs3NDIsMyBAQCBwZ19wcmVw YXJlZF9zdGF0ZW1lbnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJldHVybiAoRGF0dW0pIDA7 CiB9Ci0KLS8qCi0gKiBUaGlzIHV0aWxpdHkgZnVuY3Rpb24gdGFrZXMgYSBDIGFycmF5IG9m IE9pZHMsIGFuZCByZXR1cm5zIGEgRGF0dW0KLSAqIHBvaW50aW5nIHRvIGEgb25lLWRpbWVu c2lvbmFsIFBvc3RncmVzIGFycmF5IG9mIHJlZ3R5cGVzLiBBbiBlbXB0eQotICogYXJyYXkg aXMgcmV0dXJuZWQgYXMgYSB6ZXJvLWVsZW1lbnQgYXJyYXksIG5vdCBOVUxMLgotICovCi1z dGF0aWMgRGF0dW0KLWJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90eXBlcywgaW50 IG51bV9wYXJhbXMpCi17Ci0JRGF0dW0JICAgKnRtcF9hcnk7Ci0JQXJyYXlUeXBlICAqcmVz dWx0OwotCWludAkJCWk7Ci0KLQl0bXBfYXJ5ID0gKERhdHVtICopIHBhbGxvYyhudW1fcGFy YW1zICogc2l6ZW9mKERhdHVtKSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcmFtczsg aSsrKQotCQl0bXBfYXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShwYXJhbV90eXBlc1tpXSk7 Ci0KLQlyZXN1bHQgPSBjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFy YW1zLCBSRUdUWVBFT0lEKTsKLQlyZXR1cm4gUG9pbnRlckdldERhdHVtKHJlc3VsdCk7Ci19 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA3YWUxOWI5OGJiLi45Y2NkZjc2MTZj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTY2LDYgKzY2LDggQEAgU2VjTGFi ZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVD VF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FT VDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JK RUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpF Q1RfREVGQVVMVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYTJmNTc3MDI0 YS4uYmI4MTNkNGY3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTM1LDYg KzM1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19kZXBlbmQuaCIKQEAgLTkzMyw2ICs5MzQsNzYgQEAgRGVmaW5lUmVs YXRpb24oQ3JlYXRlU3RtdCAqc3RtdCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAkJ CWF0dHItPmF0dGNvbXByZXNzaW9uID0gR2V0QXR0cmlidXRlQ29tcHJlc3Npb24oYXR0ci0+ YXR0dHlwaWQsCiAJCQkJCQkJCQkJCQkJCSAgIGNvbERlZi0+Y29tcHJlc3Npb24pOwogCisJ CWlmIChjb2xEZWYtPmVuY3J5cHRpb24pCisJCXsKKwkJCUxpc3RDZWxsICAgKmxjOworCQkJ Y2hhcgkgICAqY2VrID0gTlVMTDsKKwkJCU9pZAkJCWNla29pZDsKKwkJCWJvb2wJCWVuY2Rl dCA9IGZhbHNlOworCQkJaW50CQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1B Q19TSEFfMjU2OworCisJCQlmb3JlYWNoKGxjLCBjb2xEZWYtPmVuY3J5cHRpb24pCisJCQl7 CisJCQkJRGVmRWxlbSAgICAqZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisKKwkJ CQlpZiAoc3RyY21wKGVsLT5kZWZuYW1lLCAiY29sdW1uX2VuY3J5cHRpb25fa2V5IikgPT0g MCkKKwkJCQkJY2VrID0gc3RyVmFsKGxpbml0aWFsKGNhc3ROb2RlKFR5cGVOYW1lLCBlbC0+ YXJnKS0+bmFtZXMpKTsKKwkJCQllbHNlIGlmIChzdHJjbXAoZWwtPmRlZm5hbWUsICJlbmNy eXB0aW9uX3R5cGUiKSA9PSAwKQorCQkJCXsKKwkJCQkJY2hhcgkgICAqdmFsID0gc3RyVmFs KGxpbml0aWFsKGNhc3ROb2RlKFR5cGVOYW1lLCBlbC0+YXJnKS0+bmFtZXMpKTsKKworCQkJ CQlpZiAoc3RyY21wKHZhbCwgImRldGVybWluaXN0aWMiKSA9PSAwKQorCQkJCQkJZW5jZGV0 ID0gdHJ1ZTsKKwkJCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgInJhbmRvbWl6ZWQiKSA9PSAw KQorCQkJCQkJZW5jZGV0ID0gZmFsc2U7CisJCQkJCWVsc2UKKwkJCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CisJCQkJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gdHlwZTogJXMiLCB2 YWwpKTsKKwkJCQl9CisJCQkJZWxzZSBpZiAoc3RyY21wKGVsLT5kZWZuYW1lLCAiYWxnb3Jp dGhtIikgPT0gMCkKKwkJCQl7CisJCQkJCWNoYXIJICAgKnZhbCA9IHN0clZhbChlbC0+YXJn KTsKKworCQkJCQlpZiAoc3RyY21wKHZhbCwgIkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFf MjU2IikgPT0gMCkKKwkJCQkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNf U0hBXzI1NjsKKwkJCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIkFFQURfQUVTXzE5Ml9DQkNf SE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJCQkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xOTJf Q0JDX0hNQUNfU0hBXzM4NDsKKwkJCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIkFFQURfQUVT XzI1Nl9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJCQkJCWFsZyA9IFBHX0NFS19BRUFE X0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDsKKwkJCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwg IkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyIikgPT0gMCkKKwkJCQkJCWFsZyA9IFBH X0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjsKKwkJCQkJZWxzZQorCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKKwkJCQkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBh bGdvcml0aG06ICVzIiwgdmFsKSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAorCQkJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGNvbHVtbiBlbmNyeXB0aW9uIHBhcmFt ZXRlcjogJXMiLCBlbC0+ZGVmbmFtZSkpOworCQkJfQorCisJCQlpZiAoIWNlaykKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX0RF RklOSVRJT04pLAorCQkJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbXVzdCBi ZSBzcGVjaWZpZWQiKSk7CisKKwkJCWNla29pZCA9IEdldFN5c0NhY2hlT2lkMShDRUtOQU1F LCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsIFBvaW50ZXJHZXREYXR1bShjZWspKTsKKwkJCWlm ICghY2Vrb2lkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJCQllcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjZWspKTsKKworCQkJYXR0ci0+YXR0Y2VrID0g Y2Vrb2lkOworCQkJYXR0ci0+YXR0cmVhbHR5cGlkID0gYXR0ci0+YXR0dHlwaWQ7CisJCQlp ZiAoZW5jZGV0KQorCQkJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX0RFVE9JRDsK KwkJCWVsc2UKKwkJCQlhdHRyLT5hdHR0eXBpZCA9IFBHX0VOQ1JZUFRFRF9STkRPSUQ7CisJ CQlhdHRyLT5hdHRlbmNhbGcgPSBhbGc7CisJCX0KKwogCQlpZiAoY29sRGVmLT5zdG9yYWdl X25hbWUpCiAJCQlhdHRyLT5hdHRzdG9yYWdlID0gR2V0QXR0cmlidXRlU3RvcmFnZShhdHRy LT5hdHR0eXBpZCwgY29sRGVmLT5zdG9yYWdlX25hbWUpOwogCX0KQEAgLTY4MzcsNiArNjkw OCw5IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZv ICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlhdHRyaWJ1dGUuYXR0Z2VuZXJhdGVkID0gY29sRGVm LT5nZW5lcmF0ZWQ7CiAJYXR0cmlidXRlLmF0dGlzZHJvcHBlZCA9IGZhbHNlOwogCWF0dHJp YnV0ZS5hdHRpc2xvY2FsID0gY29sRGVmLT5pc19sb2NhbDsKKwlhdHRyaWJ1dGUuYXR0Y2Vr ID0gMDsgLy8gVE9ETworCWF0dHJpYnV0ZS5hdHRyZWFsdHlwaWQgPSAwOyAvLyBUT0RPCisJ YXR0cmlidXRlLmF0dGVuY2FsZyA9IDA7IC8vIFRPRE8KIAlhdHRyaWJ1dGUuYXR0aW5oY291 bnQgPSBjb2xEZWYtPmluaGNvdW50OwogCWF0dHJpYnV0ZS5hdHRjb2xsYXRpb24gPSBjb2xs T2lkOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IDI5YmMyNjY2OWIuLmNkZTViMGUwODcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL3NwaS5jCkBAIC0yMjc5LDYgKzIyNzksOCBAQCBfU1BJX3ByZXBhcmVfcGxh bihjb25zdCBjaGFyICpzcmMsIFNQSVBsYW5QdHIgcGxhbikKIAkJCQkJCSAgIE5VTEwsCiAJ CQkJCQkgICBwbGFuLT5hcmd0eXBlcywKIAkJCQkJCSAgIHBsYW4tPm5hcmdzLAorCQkJCQkJ ICAgTlVMTCwKKwkJCQkJCSAgIE5VTEwsCiAJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cCwK IAkJCQkJCSAgIHBsYW4tPnBhcnNlclNldHVwQXJnLAogCQkJCQkJICAgcGxhbi0+Y3Vyc29y X29wdGlvbnMsCkBAIC0yNTE2LDYgKzI1MTgsOCBAQCBfU1BJX2V4ZWN1dGVfcGxhbihTUElQ bGFuUHRyIHBsYW4sIGNvbnN0IFNQSUV4ZWN1dGVPcHRpb25zICpvcHRpb25zLAogCQkJCQkJ CSAgIE5VTEwsCiAJCQkJCQkJICAgcGxhbi0+YXJndHlwZXMsCiAJCQkJCQkJICAgcGxhbi0+ bmFyZ3MsCisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBOVUxMLAogCQkJCQkJCSAgIHBs YW4tPnBhcnNlclNldHVwLAogCQkJCQkJCSAgIHBsYW4tPnBhcnNlclNldHVwQXJnLAogCQkJ CQkJCSAgIHBsYW4tPmN1cnNvcl9vcHRpb25zLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv bm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRl eCA0Y2IxNzQ0ZGE2Li44ZmJlMGY1ZjhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAt NDI4OCw2ICs0Mjg4LDggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXIoTm9kZSAqbm9k ZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKHdhbGtlcihjb2xkZWYtPmNvbXByZXNz aW9uLCBjb250ZXh0KSkKIAkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKHdhbGtlcihjb2xk ZWYtPmVuY3J5cHRpb24sIGNvbnRleHQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAo d2Fsa2VyKGNvbGRlZi0+cmF3X2RlZmF1bHQsIGNvbnRleHQpKQogCQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCQlpZiAod2Fsa2VyKGNvbGRlZi0+Y29sbENsYXVzZSwgY29udGV4dCkpCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYwppbmRleCA4ZWQyYzRiOGM3Li42ZTFiMjRiZDRiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKQEAgLTE0NSw2ICsxNDUsNyBAQCBwYXJzZV9hbmFseXplX2ZpeGVkcGFy YW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIFF1ZXJ5 ICoKIHBhcnNlX2FuYWx5emVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3Qg Y2hhciAqc291cmNlVGV4dCwKIAkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFy YW1zLAorCQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3Jp Z0NvbHMsCiAJCQkJCQlRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudikKIHsKIAlQYXJzZVN0 YXRlICpwc3RhdGUgPSBtYWtlX3BhcnNlc3RhdGUoTlVMTCk7CkBAIC0xNTUsNyArMTU2LDcg QEAgcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBj aGFyICpzb3VyY2VUZXh0LAogCiAJcHN0YXRlLT5wX3NvdXJjZXRleHQgPSBzb3VyY2VUZXh0 OwogCi0Jc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlw ZXMsIG51bVBhcmFtcyk7CisJc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhwc3Rh dGUsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywgcGFyYW1PcmlnVGJscywgcGFyYW1PcmlnQ29s cyk7CiAKIAlwc3RhdGUtPnBfcXVlcnlFbnYgPSBxdWVyeUVudjsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK aW5kZXggZGY1Y2VlYTkxMC4uMGJiZjU0ZjYyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01OTYs NiArNTk2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglU YWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlCiAldHlwZSA8aXZhbD4JVGFibGVMaWtl T3B0aW9uTGlzdCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29tcHJl c3Npb24gb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1u X3N0b3JhZ2UKKyV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2VuY3J5cHRpb24KICV0eXBlIDxs aXN0PglDb2xRdWFsTGlzdAogJXR5cGUgPG5vZGU+CUNvbENvbnN0cmFpbnQgQ29sQ29uc3Ry YWludEVsZW0gQ29uc3RyYWludEF0dHIKICV0eXBlIDxpdmFsPglrZXlfbWF0Y2gKQEAgLTc4 OSw3ICs3OTAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCURFVEFDSCBESUNU SU9OQVJZIERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNUIERPIERPQ1VNRU5UX1AgRE9NQUlO X1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNP RElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVSUk9SX1AgRVNDQVBFCisJRUFDSCBFTFNF IEVNUFRZX1AgRU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVElPTiBFTkNSWVBURUQgRU5EX1Ag RU5VTV9QIEVSUk9SX1AgRVNDQVBFCiAJRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVESU5H IEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04KIAlFWFRFTlNJ T04gRVhURVJOQUwgRVhUUkFDVAogCkBAIC04MTQsNyArODE1LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJ S0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAg TE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAotCU1BUFBJTkcgTUFUQ0ggTUFUQ0hF RCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVUSE9ECisJTUFQUElORyBNQVNURVIg TUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVUSE9ECiAJTUlO VVRFX1AgTUlOVkFMVUUgTU9ERSBNT05USF9QIE1PVkUKIAogCU5BTUVfUCBOQU1FUyBOQVRJ T05BTCBOQVRVUkFMIE5DSEFSIE5FU1RFRCBORVcgTkVYVCBORkMgTkZEIE5GS0MgTkZLRCBO TwpAQCAtMzc3OCwxNCArMzc3OSwxNSBAQCBUeXBlZFRhYmxlRWxlbWVudDoKIAkJCXwgVGFi bGVDb25zdHJhaW50CQkJCQl7ICQkID0gJDE7IH0KIAkJOwogCi1jb2x1bW5EZWY6CUNvbElk IFR5cGVuYW1lIG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNy ZWF0ZV9nZW5lcmljX29wdGlvbnMgQ29sUXVhbExpc3QKK2NvbHVtbkRlZjoJQ29sSWQgVHlw ZW5hbWUgb3B0X2NvbHVtbl9lbmNyeXB0aW9uIG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29s dW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5lcmljX29wdGlvbnMgQ29sUXVhbExpc3QKIAkJ CQl7CiAJCQkJCUNvbHVtbkRlZiAqbiA9IG1ha2VOb2RlKENvbHVtbkRlZik7CiAKIAkJCQkJ bi0+Y29sbmFtZSA9ICQxOwogCQkJCQluLT50eXBlTmFtZSA9ICQyOwotCQkJCQluLT5zdG9y YWdlX25hbWUgPSAkMzsKLQkJCQkJbi0+Y29tcHJlc3Npb24gPSAkNDsKKwkJCQkJbi0+ZW5j cnlwdGlvbiA9ICQzOworCQkJCQluLT5zdG9yYWdlX25hbWUgPSAkNDsKKwkJCQkJbi0+Y29t cHJlc3Npb24gPSAkNTsKIAkJCQkJbi0+aW5oY291bnQgPSAwOwogCQkJCQluLT5pc19sb2Nh bCA9IHRydWU7CiAJCQkJCW4tPmlzX25vdF9udWxsID0gZmFsc2U7CkBAIC0zNzk0LDggKzM3 OTYsOCBAQCBjb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1lIG9wdF9jb2x1bW5fc3RvcmFnZSBv cHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5lcgogCQkJCQluLT5yYXdfZGVmYXVs dCA9IE5VTEw7CiAJCQkJCW4tPmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29s bE9pZCA9IEludmFsaWRPaWQ7Ci0JCQkJCW4tPmZkd29wdGlvbnMgPSAkNTsKLQkJCQkJU3Bs aXRDb2xRdWFsTGlzdCgkNiwgJm4tPmNvbnN0cmFpbnRzLCAmbi0+Y29sbENsYXVzZSwKKwkJ CQkJbi0+ZmR3b3B0aW9ucyA9ICQ2OworCQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ3LCAmbi0+ Y29uc3RyYWludHMsICZuLT5jb2xsQ2xhdXNlLAogCQkJCQkJCQkJIHl5c2Nhbm5lcik7CiAJ CQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKQEAgLTM4NTIs NiArMzg1NCwxMSBAQCBvcHRfY29sdW1uX2NvbXByZXNzaW9uOgogCQkJfCAvKkVNUFRZKi8J CQkJCQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAorb3B0X2NvbHVtbl9lbmNyeXB0aW9uOgor CQkJRU5DUllQVEVEIFdJVEggJygnIGRlZl9saXN0ICcpJwkJCXsgJCQgPSAkNDsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogY29sdW1uX3N0b3Jh Z2U6CiAJCQlTVE9SQUdFIENvbElkCQkJCQkJCXsgJCQgPSAkMjsgfQogCQk7CkBAIC02MzQ1 LDYgKzYzNTIsMjQgQEAgRGVmaW5lU3RtdDoKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRy dWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IENSRUFURSBDT0xVTU4g RU5DUllQVElPTiBLRVkgYW55X25hbWUgV0lUSCBWQUxVRVMgZGVmaW5pdGlvbgorCQkJCXsK KwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4t PmtpbmQgPSBPQkpFQ1RfQ0VLOworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5k ZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFtZSBXSVRIIGRlZmluaXRpb24KKwkJCQl7 CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKworCQkJCQlu LT5raW5kID0gT0JKRUNUX0NNSzsKKwkJCQkJbi0+ZGVmbmFtZXMgPSAkNTsKKwkJCQkJbi0+ ZGVmaW5pdGlvbiA9ICQ3OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAK IGRlZmluaXRpb246ICcoJyBkZWZfbGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0KQEAgLTE3 NzgyLDYgKzE3ODA3LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBFTkFCTEVfUAog CQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQVElPTgogCQkJfCBF TlVNX1AKIAkJCXwgRVJST1JfUAogCQkJfCBFU0NBUEUKQEAgLTE3ODQ5LDYgKzE3ODc1LDcg QEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMT0NLRUQKIAkJCXwgTE9HR0VECiAJCQl8 IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1BVENICiAJCQl8IE1BVENIRUQKIAkJCXwg TUFURVJJQUxJWkVECkBAIC0xODM1Myw2ICsxODM4MCw3IEBAIGJhcmVfbGFiZWxfa2V5d29y ZDoKIAkJCXwgRU5BQkxFX1AKIAkJCXwgRU5DT0RJTkcKIAkJCXwgRU5DUllQVEVECisJCQl8 IEVOQ1JZUFRJT04KIAkJCXwgRU5EX1AKIAkJCXwgRU5VTV9QCiAJCQl8IEVSUk9SX1AKQEAg LTE4NDU2LDYgKzE4NDg0LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMT0NLRUQK IAkJCXwgTE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1BVENICiAJ CQl8IE1BVENIRUQKIAkJCXwgTUFURVJJQUxJWkVECmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9wYXJh bS5jCmluZGV4IGY2NjhhYmZjYjMuLmI0NWJmNGM0MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9wYXJhbS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9wYXJhbS5jCkBAIC00OSw2ICs0OSw4IEBAIHR5cGVkZWYgc3RydWN0IFZhclBhcmFtU3Rh dGUKIHsKIAlPaWQJCSAgKipwYXJhbVR5cGVzOwkJLyogYXJyYXkgb2YgcGFyYW1ldGVyIHR5 cGUgT0lEcyAqLwogCWludAkJICAgKm51bVBhcmFtczsJCS8qIG51bWJlciBvZiBhcnJheSBl bnRyaWVzICovCisJT2lkCQkgICoqcGFyYW1PcmlnVGJsczsJLyogdW5kZXJseWluZyB0YWJs ZXMgKDAgaWYgbm9uZSkgKi8KKwlBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29sczsgLyogdW5k ZXJseWluZyBjb2x1bW5zICgwIGlmIG5vbmUpICovCiB9IFZhclBhcmFtU3RhdGU7CiAKIHN0 YXRpYyBOb2RlICpmaXhlZF9wYXJhbXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFy YW1SZWYgKnByZWYpOwpAQCAtNTYsNiArNTgsNyBAQCBzdGF0aWMgTm9kZSAqdmFyaWFibGVf cGFyYW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKTsKIHN0 YXRpYyBOb2RlICp2YXJpYWJsZV9jb2VyY2VfcGFyYW1faG9vayhQYXJzZVN0YXRlICpwc3Rh dGUsIFBhcmFtICpwYXJhbSwKIAkJCQkJCQkJCQlPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0 YXJnZXRUeXBlTW9kLAogCQkJCQkJCQkJCWludCBsb2NhdGlvbik7CitzdGF0aWMgdm9pZCB2 YXJpYWJsZV9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFy YW0gKnBhcmFtLCBPaWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKTsKIHN0YXRpYyBi b29sIGNoZWNrX3BhcmFtZXRlcl9yZXNvbHV0aW9uX3dhbGtlcihOb2RlICpub2RlLCBQYXJz ZVN0YXRlICpwc3RhdGUpOwogc3RhdGljIGJvb2wgcXVlcnlfY29udGFpbnNfZXh0ZXJuX3Bh cmFtc193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKQEAgLTgxLDE1ICs4 NCwxOSBAQCBzZXR1cF9wYXJzZV9maXhlZF9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUgKnBzdGF0 ZSwKICAqLwogdm9pZAogc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0 YXRlICpwc3RhdGUsCi0JCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1z KQorCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJCQkJCQkJ T2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMpCiB7CiAJ VmFyUGFyYW1TdGF0ZSAqcGFyc3RhdGUgPSBwYWxsb2Moc2l6ZW9mKFZhclBhcmFtU3RhdGUp KTsKIAogCXBhcnN0YXRlLT5wYXJhbVR5cGVzID0gcGFyYW1UeXBlczsKIAlwYXJzdGF0ZS0+ bnVtUGFyYW1zID0gbnVtUGFyYW1zOworCXBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzID0gcGFy YW1PcmlnVGJsczsKKwlwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyA9IHBhcmFtT3JpZ0NvbHM7 CiAJcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlID0gKHZvaWQgKikgcGFyc3RhdGU7CiAJcHN0 YXRlLT5wX3BhcmFtcmVmX2hvb2sgPSB2YXJpYWJsZV9wYXJhbXJlZl9ob29rOwogCXBzdGF0 ZS0+cF9jb2VyY2VfcGFyYW1faG9vayA9IHZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rOwor CXBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rID0gdmFyaWFibGVfcGFyYW1fYXNz aWduX29yaWdfaG9vazsKIH0KIAogLyoKQEAgLTE0NSwxNCArMTUyLDM2IEBAIHZhcmlhYmxl X3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAl7 CiAJCS8qIE5lZWQgdG8gZW5sYXJnZSBwYXJhbSBhcnJheSAqLwogCQlpZiAoKnBhcnN0YXRl LT5wYXJhbVR5cGVzKQorCQl7CiAJCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSAoT2lkICop IHJlcGFsbG9jKCpwYXJzdGF0ZS0+cGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJCQkgcGFyYW1u byAqIHNpemVvZihPaWQpKTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJ CQkqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMgPSByZXBhbGxvYygqcGFyc3RhdGUtPnBhcmFt T3JpZ1RibHMsCisJCQkJCQkJCQkJCQkJcGFyYW1ubyAqIHNpemVvZihPaWQpKTsKKwkJCWlm IChwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ0Nv bHMgPSByZXBhbGxvYygqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJCQkJCQkJ cGFyYW1ubyAqIHNpemVvZihBdHRyTnVtYmVyKSk7CisJCX0KIAkJZWxzZQorCQl7CiAJCQkq cGFyc3RhdGUtPnBhcmFtVHlwZXMgPSAoT2lkICopIHBhbGxvYyhwYXJhbW5vICogc2l6ZW9m KE9pZCkpOworCQkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzKQorCQkJCSpwYXJzdGF0 ZS0+cGFyYW1PcmlnVGJscyA9IHBhbGxvYyhwYXJhbW5vICogc2l6ZW9mKE9pZCkpOworCQkJ aWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkJCSpwYXJzdGF0ZS0+cGFyYW1Pcmln Q29scyA9IHBhbGxvYyhwYXJhbW5vICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKKwkJfQogCQkv KiBaZXJvIG91dCB0aGUgcHJldmlvdXNseS11bnJlZmVyZW5jZWQgc2xvdHMgKi8KIAkJTWVt U2V0KCpwYXJzdGF0ZS0+cGFyYW1UeXBlcyArICpwYXJzdGF0ZS0+bnVtUGFyYW1zLAogCQkJ ICAgMCwKIAkJCSAgIChwYXJhbW5vIC0gKnBhcnN0YXRlLT5udW1QYXJhbXMpICogc2l6ZW9m KE9pZCkpOworCQlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCQlNZW1TZXQoKnBh cnN0YXRlLT5wYXJhbU9yaWdUYmxzICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCisJCQkJICAg MCwKKwkJCQkgICAocGFyYW1ubyAtICpwYXJzdGF0ZS0+bnVtUGFyYW1zKSAqIHNpemVvZihP aWQpKTsKKwkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkJTWVtU2V0KCpwYXJz dGF0ZS0+cGFyYW1PcmlnQ29scyArICpwYXJzdGF0ZS0+bnVtUGFyYW1zLAorCQkJCSAgIDAs CisJCQkJICAgKHBhcmFtbm8gLSAqcGFyc3RhdGUtPm51bVBhcmFtcykgKiBzaXplb2YoQXR0 ck51bWJlcikpOwogCQkqcGFyc3RhdGUtPm51bVBhcmFtcyA9IHBhcmFtbm87CiAJfQogCkBA IC0yNjAsNiArMjg5LDE4IEBAIHZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLAogCXJldHVybiBOVUxMOwogfQogCitzdGF0aWMg dm9pZAordmFyaWFibGVfcGFyYW1fYXNzaWduX29yaWdfaG9vayhQYXJzZVN0YXRlICpwc3Rh dGUsIFBhcmFtICpwYXJhbSwgT2lkIG9yaWd0YmwsIEF0dHJOdW1iZXIgb3JpZ2NvbCkKK3sK KwlWYXJQYXJhbVN0YXRlICpwYXJzdGF0ZSA9IChWYXJQYXJhbVN0YXRlICopIHBzdGF0ZS0+ cF9yZWZfaG9va19zdGF0ZTsKKwlpbnQJCQlwYXJhbW5vID0gcGFyYW0tPnBhcmFtaWQ7CisK KwlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCSgqcGFyc3RhdGUtPnBhcmFtT3Jp Z1RibHMpW3BhcmFtbm8gLSAxXSA9IG9yaWd0Ymw7CisJaWYgKHBhcnN0YXRlLT5wYXJhbU9y aWdDb2xzKQorCQkoKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKVtwYXJhbW5vIC0gMV0gPSBv cmlnY29sOworfQorCiAvKgogICogQ2hlY2sgZm9yIGNvbnNpc3RlbnQgYXNzaWdubWVudCBv ZiB2YXJpYWJsZSBwYXJhbWV0ZXJzIGFmdGVyIGNvbXBsZXRpb24KICAqIG9mIHBhcnNpbmcg d2l0aCBwYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jCmluZGV4IDE2YTBmZTU5ZTIuLjM1MzQ2ODNjYjAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMKQEAgLTU5NSw2ICs1OTUsMTIgQEAgdHJhbnNmb3JtQXNzaWduZWRF eHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGV4cHJMb2NhdGlvbihvcmlnX2V4cHIpKSkpOwogCX0KIAorCWlmIChJc0EoZXhwciwg UGFyYW0pKQorCXsKKwkJaWYgKHBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKQor CQkJcHN0YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2socHN0YXRlLCBjYXN0Tm9kZShQ YXJhbSwgZXhwciksIFJlbGF0aW9uR2V0UmVsaWQocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlv biksIGF0dHJubyk7CisJfQorCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IHN2X2V4cHJfa2lu ZDsKIAogCXJldHVybiBleHByOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0 Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDZmMThiNjg4NTYu LjQ5MDc4YTczM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwor KysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTc5LDYgKzc5LDcgQEAKICNp bmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5o IgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNo ZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1l c3RhbXAuaCIKIApAQCAtNjczLDYgKzY3NCw4IEBAIHBnX2FuYWx5emVfYW5kX3Jld3JpdGVf dmFycGFyYW1zKFJhd1N0bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJIGNvbnN0IGNoYXIgKnF1 ZXJ5X3N0cmluZywKIAkJCQkJCQkJIE9pZCAqKnBhcmFtVHlwZXMsCiAJCQkJCQkJCSBpbnQg Km51bVBhcmFtcywKKwkJCQkJCQkJIE9pZCAqKnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCSBB dHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scywKIAkJCQkJCQkJIFF1ZXJ5RW52aXJvbm1lbnQg KnF1ZXJ5RW52KQogewogCVF1ZXJ5CSAgICpxdWVyeTsKQEAgLTY4Nyw3ICs2OTAsNyBAQCBw Z19hbmFseXplX2FuZF9yZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRyZWUsCiAJ CVJlc2V0VXNhZ2UoKTsKIAogCXF1ZXJ5ID0gcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMocGFy c2V0cmVlLCBxdWVyeV9zdHJpbmcsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywKLQkJCQkJCQkJ CXF1ZXJ5RW52KTsKKwkJCQkJCQkJCXBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0NvbHMsIHF1 ZXJ5RW52KTsKIAogCS8qCiAJICogQ2hlY2sgYWxsIHBhcmFtZXRlciB0eXBlcyBnb3QgZGV0 ZXJtaW5lZC4KQEAgLTEzNjQsNiArMTM2Nyw4IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25z dCBjaGFyICpxdWVyeV9zdHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJYm9vbAkJ aXNfbmFtZWQ7CiAJYm9vbAkJc2F2ZV9sb2dfc3RhdGVtZW50X3N0YXRzID0gbG9nX3N0YXRl bWVudF9zdGF0czsKIAljaGFyCQltc2VjX3N0clszMl07CisJT2lkCQkgICAqcGFyYW1Pcmln VGJscyA9IHBhbGxvYyhudW1QYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJQXR0ck51bWJlciAq cGFyYW1PcmlnQ29scyA9IHBhbGxvYyhudW1QYXJhbXMgKiBzaXplb2YoQXR0ck51bWJlcikp OwogCiAJLyoKIAkgKiBSZXBvcnQgcXVlcnkgdG8gdmFyaW91cyBtb25pdG9yaW5nIGZhY2ls aXRpZXMuCkBAIC0xNDg0LDYgKzE0ODksOCBAQCBleGVjX3BhcnNlX21lc3NhZ2UoY29uc3Qg Y2hhciAqcXVlcnlfc3RyaW5nLAkvKiBzdHJpbmcgdG8gZXhlY3V0ZSAqLwogCQkJCQkJCQkJ CQkJCQkgIHF1ZXJ5X3N0cmluZywKIAkJCQkJCQkJCQkJCQkJICAmcGFyYW1UeXBlcywKIAkJ CQkJCQkJCQkJCQkJICAmbnVtUGFyYW1zLAorCQkJCQkJCQkJCQkJCQkgICZwYXJhbU9yaWdU YmxzLAorCQkJCQkJCQkJCQkJCQkgICZwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkJCQkg IE5VTEwpOwogCiAJCS8qIERvbmUgd2l0aCB0aGUgc25hcHNob3QgdXNlZCBmb3IgcGFyc2lu ZyAqLwpAQCAtMTUxNCw2ICsxNTIxLDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNvbnN0IGNo YXIgKnF1ZXJ5X3N0cmluZywJLyogc3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAkJCQkJICAgdW5u YW1lZF9zdG10X2NvbnRleHQsCiAJCQkJCSAgIHBhcmFtVHlwZXMsCiAJCQkJCSAgIG51bVBh cmFtcywKKwkJCQkJICAgcGFyYW1PcmlnVGJscywKKwkJCQkJICAgcGFyYW1PcmlnQ29scywK IAkJCQkJICAgTlVMTCwKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgQ1VSU09SX09QVF9QQVJB TExFTF9PSywJLyogYWxsb3cgcGFyYWxsZWwgbW9kZSAqLwpAQCAtMTgxMSw2ICsxODIwLDE2 IEBAIGV4ZWNfYmluZF9tZXNzYWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkKIAkJCWVs c2UKIAkJCQlwZm9ybWF0ID0gMDsJLyogZGVmYXVsdCA9IHRleHQgKi8KIAorCQkJaWYgKGdl dF90eXB0eXBlKHB0eXBlKSA9PSBUWVBUWVBFX0VOQ1JZUFRFRCkKKwkJCXsKKwkJCQlpZiAo cGZvcm1hdCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4RjA7CisJCQkJZWxzZQorCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklP TEFUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgY29ycmVzcG9uZHMgdG8gYW4g ZW5jcnlwdGVkIGNvbHVtbiwgYnV0IHRoZSBwYXJhbWV0ZXIgdmFsdWUgd2FzIG5vdCBlbmNy eXB0ZWQiKSkpOworCQkJfQorCiAJCQlpZiAocGZvcm1hdCA9PSAwKQkvKiB0ZXh0IG1vZGUg Ki8KIAkJCXsKIAkJCQlPaWQJCQl0eXBpbnB1dDsKQEAgLTI2MDcsOCArMjYyNiw0MSBAQCBl eGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNzYWdlKGNvbnN0IGNoYXIgKnN0bXRfbmFtZSkK IAlmb3IgKGludCBpID0gMDsgaSA8IHBzcmMtPm51bV9wYXJhbXM7IGkrKykKIAl7CiAJCU9p ZAkJCXB0eXBlID0gcHNyYy0+cGFyYW1fdHlwZXNbaV07CisJCU9pZAkJCXBjZWtpZCA9IElu dmFsaWRPaWQ7CisJCWludAkJCXBjZWthbGcgPSAwOworCQlpbnQxNgkJcGZsYWdzID0gMDsK KworCQlpZiAoZ2V0X3R5cHR5cGUocHR5cGUpID09IFRZUFRZUEVfRU5DUllQVEVEKQorCQl7 CisJCQlPaWQJCQlwb3JpZ3RibCA9IHBzcmMtPnBhcmFtX29yaWd0YmxzW2ldOworCQkJQXR0 ck51bWJlcglwb3JpZ2NvbCA9IHBzcmMtPnBhcmFtX29yaWdjb2xzW2ldOworCQkJSGVhcFR1 cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgb3JpZ19hdHQ7CisKKwkJCWlmIChwb3Jp Z3RibCA9PSBJbnZhbGlkT2lkIHx8IHBvcmlnY29sIDw9IDApCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJCSBlcnJtc2coInBhcmFtZXRlciAlZCBjb3JyZXNwb25kcyB0byBhbiBlbmNyeXB0ZWQg Y29sdW1uLCBidXQgYW4gdW5kZXJseWluZyB0YWJsZSBhbmQgY29sdW1uIGNvdWxkIG5vdCBi ZSBkZXRlcm1pbmVkIiwgaSkpKTsKKworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVN LCBPYmplY3RJZEdldERhdHVtKHBvcmlndGJsKSwgSW50MTZHZXREYXR1bShwb3JpZ2NvbCkp OworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRlICVkIG9mIHJlbGF0aW9uICV1IiwgcG9y aWdjb2wsIHBvcmlndGJsKTsKKwkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBH RVRTVFJVQ1QodHApOworCQkJcHR5cGUgPSBvcmlnX2F0dC0+YXR0cmVhbHR5cGlkOworCQkJ cGNla2lkID0gb3JpZ19hdHQtPmF0dGNlazsKKwkJCXBjZWthbGcgPSBvcmlnX2F0dC0+YXR0 ZW5jYWxnOworCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKworCQkJaWYgKHBzcmMtPnBhcmFt X3R5cGVzW2ldID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQpCisJCQkJcGZsYWdzIHw9IDB4MDE7 CisKKwkJCU1heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKHBjZWtpZCk7CisJ CX0KIAogCQlwcV9zZW5kaW50MzIoJnJvd19kZXNjcmlwdGlvbl9idWYsIChpbnQpIHB0eXBl KTsKKwkJcHFfc2VuZGludDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwY2VraWQp OworCQlwcV9zZW5kaW50MTYoJnJvd19kZXNjcmlwdGlvbl9idWYsIHBjZWthbGcpOworCQlw cV9zZW5kaW50MTYoJnJvd19kZXNjcmlwdGlvbl9idWYsIHBmbGFncyk7CiAJfQogCXBxX2Vu ZG1lc3NhZ2VfcmV1c2UoJnJvd19kZXNjcmlwdGlvbl9idWYpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CmluZGV4IDZiMGE4NjUyNjIuLjA4ODA3OTZjZjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0z MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJj b21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NsdXN0ZXIuaCIKKyNpbmNs dWRlICJjb21tYW5kcy9jb2xlbmNjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0 aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJj b21tYW5kcy9jb252ZXJzaW9uY21kcy5oIgpAQCAtMTQ0MSw2ICsxNDQyLDE0IEBAIFByb2Nl c3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCQlzdG10 LT5kZWZpbml0aW9uLAogCQkJCQkJCQkJCQkJCQkJJnNlY29uZGFyeU9iamVjdCk7CiAJCQkJ CQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQkJQXNzZXJ0KHN0bXQt PmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ0VLKHBzdGF0ZSwgc3Rt dCk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCQkJQXNz ZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ01LKHBz dGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIE9CSkVDVF9DT0xMQVRJ T046CiAJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKIAkJCQkJCQlhZGRyZXNz ID0gRGVmaW5lQ29sbGF0aW9uKHBzdGF0ZSwKQEAgLTI3NjAsNiArMjc2OSwxMiBAQCBDcmVh dGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9DT0xMQVRJ T046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MTEFUSU9OOwogCQkJCQlicmVhazsK KwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1O X0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJ CQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVk7CisJCQkJCWJyZWFr OwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9IENNRFRBR19D UkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Fy cmF5ZnVuY3MuYwppbmRleCBmYjE2N2YyMjZhLi42ZGQyYTNiMzgzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAgLTMzODYsNiArMzM4Niw3IEBAIGNvbnN0cnVjdF9h cnJheV9idWlsdGluKERhdHVtICplbGVtcywgaW50IG5lbGVtcywgT2lkIGVsbXR5cGUpCiAJ CQlicmVhazsKIAogCQljYXNlIE9JRE9JRDoKKwkJY2FzZSBSRUdDTEFTU09JRDoKIAkJY2Fz ZSBSRUdUWVBFT0lEOgogCQkJZWxtbGVuID0gc2l6ZW9mKE9pZCk7CiAJCQllbG1ieXZhbCA9 IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDBkNmEyOTU2 NzQuLmY2ODkzZGQ4YjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBA IC0zNDAsNiArMzQwLDggQEAgQ29tcGxldGVDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2Ug KnBsYW5zb3VyY2UsCiAJCQkJICAgTWVtb3J5Q29udGV4dCBxdWVyeXRyZWVfY29udGV4dCwK IAkJCQkgICBPaWQgKnBhcmFtX3R5cGVzLAogCQkJCSAgIGludCBudW1fcGFyYW1zLAorCQkJ CSAgIE9pZCAqcGFyYW1fb3JpZ3RibHMsCisJCQkJICAgQXR0ck51bWJlciAqcGFyYW1fb3Jp Z2NvbHMsCiAJCQkJICAgUGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwLAogCQkJCSAgIHZv aWQgKnBhcnNlclNldHVwQXJnLAogCQkJCSAgIGludCBjdXJzb3Jfb3B0aW9ucywKQEAgLTQx OSw2ICs0MjEsMTQgQEAgQ29tcGxldGVDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBs YW5zb3VyY2UsCiAJewogCQlwbGFuc291cmNlLT5wYXJhbV90eXBlcyA9IChPaWQgKikgcGFs bG9jKG51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CiAJCW1lbWNweShwbGFuc291cmNlLT5w YXJhbV90eXBlcywgcGFyYW1fdHlwZXMsIG51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CisK KwkJcGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMgPSAoT2lkICopIHBhbGxvYzAobnVtX3Bh cmFtcyAqIHNpemVvZihPaWQpKTsKKwkJaWYgKHBhcmFtX29yaWd0YmxzKQorCQkJbWVtY3B5 KHBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzLCBwYXJhbV9vcmlndGJscywgbnVtX3BhcmFt cyAqIHNpemVvZihPaWQpKTsKKworCQlwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scyA9IChB dHRyTnVtYmVyICopIHBhbGxvYzAobnVtX3BhcmFtcyAqIHNpemVvZihBdHRyTnVtYmVyKSk7 CisJCWlmIChwYXJhbV9vcmlnY29scykKKwkJCW1lbWNweShwbGFuc291cmNlLT5wYXJhbV9v cmlnY29scywgcGFyYW1fb3JpZ2NvbHMsIG51bV9wYXJhbXMgKiBzaXplb2YoQXR0ck51bWJl cikpOwogCX0KIAllbHNlCiAJCXBsYW5zb3VyY2UtPnBhcmFtX3R5cGVzID0gTlVMTDsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgYi9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jCmluZGV4IDE5MTJiMTIxNDYuLjlhMjcxOTgw ODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpAQCAtMjksNyArMjksMTAg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMjY3LDYgKzI3MCwzMyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJ MjU2CiAJfSwKKwl7CisJCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCAvKiBDRUtEQVRB T0lEICovCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLAorCQkxLAorCQl7CisJCQlB bnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQl9LAorCQk4CisJfSwKKwl7CisJCUNvbHVt bkVuY0tleVJlbGF0aW9uSWQsIC8qIENFS05BTUUgKi8KKwkJQ29sdW1uRW5jS2V5TmFtZUlu ZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5X2Nla25hbWUsCisJCX0s CisJCTgKKwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgLyogQ0VLT0lEICov CisJCUNvbHVtbkVuY0tleU9pZEluZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29s ZW5ja2V5X29pZCwKKwkJfSwKKwkJOAorCX0sCiAJe09wZXJhdG9yQ2xhc3NSZWxhdGlvbklk LAkvKiBDTEFBTU5BTUVOU1AgKi8KIAkJT3BjbGFzc0FtTmFtZU5zcEluZGV4SWQsCiAJCTMs CkBAIC0yODksNiArMzE5LDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVkZXNjIGNh Y2hlaW5mb1tdID0gewogCQl9LAogCQk4CiAJfSwKKwl7CisJCUNvbHVtbk1hc3RlcktleVJl bGF0aW9uSWQsIC8qIENNS05BTUUgKi8KKwkJQ29sdW1uTWFzdGVyS2V5TmFtZUluZGV4SWQs CisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29sbWFzdGVya2V5X2Nta25hbWUsCisJCX0sCisJ CTgKKwl9LAorCXsKKwkJQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwJLyogQ01LT0lEICov CisJCUNvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1fcGdf Y29sbWFzdGVya2V5X29pZCwKKwkJfSwKKwkJOAorCX0sCiAJe0NvbGxhdGlvblJlbGF0aW9u SWQsCQkvKiBDT0xMTkFNRUVOQ05TUCAqLwogCQlDb2xsYXRpb25OYW1lRW5jTnNwSW5kZXhJ ZCwKIAkJMywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGU0ZmRiNmI3NWIuLmE0YWI3NmM4NDcgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYwpAQCAtODA3Myw2ICs4MDczLDcgQEAgZ2V0VGFibGVBdHRycyhBcmNo aXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJaW50CQkJ aV90eXBzdG9yYWdlOwogCWludAkJCWlfYXR0aWRlbnRpdHk7CiAJaW50CQkJaV9hdHRnZW5l cmF0ZWQ7CisJaW50CQkJaV9hdHRjZWtuYW1lOwogCWludAkJCWlfYXR0aXNkcm9wcGVkOwog CWludAkJCWlfYXR0bGVuOwogCWludAkJCWlfYXR0YWxpZ247CkBAIC04MTgyLDE3ICs4MTgz LDI0IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZv LCBpbnQgbnVtVGFibGVzKQogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTIwMDAw KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiYS5hdHRnZW5lcmF0ZWRc biIpOworCQkJCQkJCSAiYS5hdHRnZW5lcmF0ZWQsXG4iKTsKIAllbHNlCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJICInJyBBUyBhdHRnZW5lcmF0ZWRcbiIpOworCQkJ CQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVkLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVy c2lvbiA+PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCisJCQkJCQkJICIo U0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBh LmF0dGNlayApIEFTIGF0dGNla25hbWVcbiIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocSwKKwkJCQkJCQkgIk5VTEwgQVMgYXR0Y2VrbmFtZVxuIik7CiAKIAkvKiBuZWVk IGxlZnQgam9pbiB0byBwZ190eXBlIHRvIG5vdCBmYWlsIG9uIGRyb3BwZWQgY29sdW1ucyAu Li4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxLAogCQkJCQkgICJGUk9NIHVubmVzdCgnJXMn OjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgogCQkJCQkgICJKT0lOIHBn X2NhdGFsb2cucGdfYXR0cmlidXRlIGEgT04gKHNyYy50YmxvaWQgPSBhLmF0dHJlbGlkKSAi CiAJCQkJCSAgIkxFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCi0JCQkJCSAgIk9O IChhLmF0dHR5cGlkID0gdC5vaWQpXG4iCisJCQkJCSAgIk9OIChDQVNFIFdIRU4gYS5hdHRy ZWFsdHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQg PSB0Lm9pZClcbiIKIAkJCQkJICAiV0hFUkUgYS5hdHRudW0gPiAwOjpwZ19jYXRhbG9nLmlu dDJcbiIKIAkJCQkJICAiT1JERVIgQlkgYS5hdHRyZWxpZCwgYS5hdHRudW0iLAogCQkJCQkg IHRibG9pZHMtPmRhdGEpOwpAQCAtODIxMSw2ICs4MjE5LDcgQEAgZ2V0VGFibGVBdHRycyhB cmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJaV90 eXBzdG9yYWdlID0gUFFmbnVtYmVyKHJlcywgInR5cHN0b3JhZ2UiKTsKIAlpX2F0dGlkZW50 aXR5ID0gUFFmbnVtYmVyKHJlcywgImF0dGlkZW50aXR5Iik7CiAJaV9hdHRnZW5lcmF0ZWQg PSBQUWZudW1iZXIocmVzLCAiYXR0Z2VuZXJhdGVkIik7CisJaV9hdHRjZWtuYW1lID0gUFFm bnVtYmVyKHJlcywgImF0dGNla25hbWUiKTsKIAlpX2F0dGlzZHJvcHBlZCA9IFBRZm51bWJl cihyZXMsICJhdHRpc2Ryb3BwZWQiKTsKIAlpX2F0dGxlbiA9IFBRZm51bWJlcihyZXMsICJh dHRsZW4iKTsKIAlpX2F0dGFsaWduID0gUFFmbnVtYmVyKHJlcywgImF0dGFsaWduIik7CkBA IC04MjcyLDYgKzgyODEsNyBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxl SW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJdGJpbmZvLT50eXBzdG9yYWdlID0g KGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwogCQl0YmluZm8t PmF0dGlkZW50aXR5ID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hh cikpOwogCQl0YmluZm8tPmF0dGdlbmVyYXRlZCA9IChjaGFyICopIHBnX21hbGxvYyhudW1h dHRzICogc2l6ZW9mKGNoYXIpKTsKKwkJdGJpbmZvLT5hdHRjZWtuYW1lID0gKGNoYXIgKiop IHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIgKikpOwogCQl0YmluZm8tPmF0dGlz ZHJvcHBlZCA9IChib29sICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGJvb2wpKTsK IAkJdGJpbmZvLT5hdHRsZW4gPSAoaW50ICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9m KGludCkpOwogCQl0YmluZm8tPmF0dGFsaWduID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0 dHMgKiBzaXplb2YoY2hhcikpOwpAQCAtODMwMCw2ICs4MzEwLDEwIEBAIGdldFRhYmxlQXR0 cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQog CQkJdGJpbmZvLT5hdHRpZGVudGl0eVtqXSA9ICooUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0 aWRlbnRpdHkpKTsKIAkJCXRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID0gKihQUWdldHZhbHVl KHJlcywgciwgaV9hdHRnZW5lcmF0ZWQpKTsKIAkJCXRiaW5mby0+bmVlZHNfb3ZlcnJpZGUg PSB0YmluZm8tPm5lZWRzX292ZXJyaWRlIHx8ICh0YmluZm8tPmF0dGlkZW50aXR5W2pdID09 IEFUVFJJQlVURV9JREVOVElUWV9BTFdBWVMpOworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMs IHIsIGlfYXR0Y2VrbmFtZSkpCisJCQkJdGJpbmZvLT5hdHRjZWtuYW1lW2pdID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGNla25hbWUpKTsKKwkJCWVsc2UKKwkJCQl0 YmluZm8tPmF0dGNla25hbWVbal0gPSBOVUxMOwogCQkJdGJpbmZvLT5hdHRpc2Ryb3BwZWRb al0gPSAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0aXNkcm9wcGVkKVswXSA9PSAndCcpOwog CQkJdGJpbmZvLT5hdHRsZW5bal0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGxl bikpOwogCQkJdGJpbmZvLT5hdHRhbGlnbltqXSA9ICooUFFnZXR2YWx1ZShyZXMsIHIsIGlf YXR0YWxpZ24pKTsKQEAgLTE1MjY3LDYgKzE1MjgxLDEyIEBAIGR1bXBUYWJsZVNjaGVtYShB cmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkJCQkgIHRi aW5mby0+YXR0dHlwbmFtZXNbal0pOwogCQkJCQl9CiAKKwkJCQkJaWYgKHRiaW5mby0+YXR0 Y2VrbmFtZVtqXSkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gJXMpIiwKKwkJCQkJCQkJCQkg IGZtdElkKHRiaW5mby0+YXR0Y2VrbmFtZVtqXSkpOworCQkJCQl9CisKIAkJCQkJaWYgKHBy aW50X2RlZmF1bHQpCiAJCQkJCXsKIAkJCQkJCWlmICh0YmluZm8tPmF0dGdlbmVyYXRlZFtq XSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDFk MjFjMjkwNmYuLjJjMTc2ZWQxM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtMzMzLDYgKzMzMyw3 IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29sCSAgICphdHRpc2Ryb3BwZWQ7 CS8qIHRydWUgaWYgYXR0ciBpcyBkcm9wcGVkOyBkb24ndCBkdW1wIGl0ICovCiAJY2hhcgkg ICAqYXR0aWRlbnRpdHk7CiAJY2hhcgkgICAqYXR0Z2VuZXJhdGVkOworCWNoYXIJICAqKmF0 dGNla25hbWU7CiAJaW50CQkgICAqYXR0bGVuOwkJCS8qIGF0dHJpYnV0ZSBsZW5ndGgsIHVz ZWQgYnkgYmluYXJ5X3VwZ3JhZGUgKi8KIAljaGFyCSAgICphdHRhbGlnbjsJCS8qIGF0dHJp YnV0ZSBhbGlnbiwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAqLwogCWJvb2wJICAgKmF0dGlz bG9jYWw7CQkvKiB0cnVlIGlmIGF0dHIgaGFzIGxvY2FsIGRlZmluaXRpb24gKi8KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5j CmluZGV4IDA5NTUxNDIyMTUuLjY2Mzc4OGVmNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtOTgsNiArOTgs NyBAQCBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IHByb2Nlc3NfY29tbWFuZF9nX29wdGlvbnMo Y2hhciAqZmlyc3Rfb3B0aW9uLAogCQkJCQkJCQkJCQkJIGJvb2wgYWN0aXZlX2JyYW5jaCwK IAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpjbWQpOwogc3RhdGljIGJhY2tzbGFzaFJlc3Vs dCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFj dGl2ZV9icmFuY2gpOworc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2Vu Y3IoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpOwogc3Rh dGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2V0ZW52KFBzcWxTY2FuU3RhdGUg c2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAogCQkJCQkJCQkJCSAgIGNvbnN0IGNo YXIgKmNtZCk7CiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9nZXhlYyhQ c3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CkBAIC0zNTAs NiArMzUxLDggQEAgZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAkJc3RhdHVzID0g ZXhlY19jb21tYW5kX2coc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCwgY21kKTsKIAllbHNl IGlmIChzdHJjbXAoY21kLCAiZ2Rlc2MiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1h bmRfZ2Rlc2Moc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCk7CisJZWxzZSBpZiAoc3RyY21w KGNtZCwgImdlbmNyIikgPT0gMCkKKwkJc3RhdHVzID0gZXhlY19jb21tYW5kX2dlbmNyKHNj YW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQsICJnZXRl bnYiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfZ2V0ZW52KHNjYW5fc3RhdGUs IGFjdGl2ZV9icmFuY2gsIGNtZCk7CiAJZWxzZSBpZiAoc3RyY21wKGNtZCwgImdleGVjIikg PT0gMCkKQEAgLTE0OTIsNiArMTQ5NSwzNCBAQCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpCiAJcmV0dXJuIHN0YXR1 czsKIH0KIAorLyoKKyAqIFxnZW5jciAtLSBzZW5kIHF1ZXJ5LCB3aXRoIHN1cHBvcnQgZm9y IHBhcmFtZXRlciBlbmNyeXB0aW9uCisgKi8KK3N0YXRpYyBiYWNrc2xhc2hSZXN1bHQKK2V4 ZWNfY29tbWFuZF9nZW5jcihQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZl X2JyYW5jaCkKK3sKKwliYWNrc2xhc2hSZXN1bHQgc3RhdHVzID0gUFNRTF9DTURfU0tJUF9M SU5FOworCWNoYXIJICAgKmFwOworCisJcHNldC5udW1fcGFyYW1zID0gMDsKKwlwc2V0LnBh cmFtcyA9IE5VTEw7CisJd2hpbGUgKChhcCA9IHBzcWxfc2Nhbl9zbGFzaF9vcHRpb24oc2Nh bl9zdGF0ZSwKKwkJCQkJCQkJCQlPVF9OT1JNQUwsIE5VTEwsIHRydWUpKSAhPSBOVUxMKQor CXsKKwkJcHNldC5udW1fcGFyYW1zKys7CisJCXBzZXQucGFyYW1zID0gcGdfcmVhbGxvYyhw c2V0LnBhcmFtcywgcHNldC5udW1fcGFyYW1zICogc2l6ZW9mKGNoYXIgKikpOworCQlwc2V0 LnBhcmFtc1twc2V0Lm51bV9wYXJhbXMgLSAxXSA9IGFwOworCX0KKworCWlmIChhY3RpdmVf YnJhbmNoKQorCXsKKwkJcHNldC5nZW5jcl9mbGFnID0gdHJ1ZTsKKwkJc3RhdHVzID0gUFNR TF9DTURfU0VORDsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCiAvKgogICogXGdldGVu diAtLSBzZXQgdmFyaWFibGUgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZQogICovCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMvYmluL3BzcWwvY29tbW9uLmMK aW5kZXggOWY5NTg2OWVjYS4uOGZlMDU1ZmZlZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tb24uYwpAQCAtMTI4NCw2ICsxMjg0 LDE0IEBAIFNlbmRRdWVyeShjb25zdCBjaGFyICpxdWVyeSkKIAkvKiByZXNldCBcZ2Rlc2Mg dHJpZ2dlciAqLwogCXBzZXQuZ2Rlc2NfZmxhZyA9IGZhbHNlOwogCisJLyogcmVzZXQgXGdl bmNyIHRyaWdnZXIgKi8KKwlwc2V0LmdlbmNyX2ZsYWcgPSBmYWxzZTsKKwlmb3IgKGludCBp ID0gMDsgaSA8IHBzZXQubnVtX3BhcmFtczsgaSsrKQorCQlwZ19mcmVlKHBzZXQucGFyYW1z W2ldKTsKKwlwZ19mcmVlKHBzZXQucGFyYW1zKTsKKwlwc2V0LnBhcmFtcyA9IE5VTEw7CisJ cHNldC5udW1fcGFyYW1zID0gMDsKKwogCS8qIHJlc2V0IFxnZXhlYyB0cmlnZ2VyICovCiAJ cHNldC5nZXhlY19mbGFnID0gZmFsc2U7CiAKQEAgLTE0NDgsNyArMTQ1NiwzNiBAQCBFeGVj UXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwgZG91YmxlICplbGFw c2VkX21zZWMsIGJvb2wgKnN2cHRfZwogCWlmICh0aW1pbmcpCiAJCUlOU1RSX1RJTUVfU0VU X0NVUlJFTlQoYmVmb3JlKTsKIAotCXN1Y2Nlc3MgPSBQUXNlbmRRdWVyeShwc2V0LmRiLCBx dWVyeSk7CisJaWYgKHBzZXQuZ2VuY3JfZmxhZykKKwl7CisJCVBHcmVzdWx0ICAgKnJlczEs CisJCQkJICAgKnJlczI7CisKKwkJcmVzMSA9IFBRcHJlcGFyZShwc2V0LmRiLCAiIiwgcXVl cnksIHBzZXQubnVtX3BhcmFtcywgTlVMTCk7CisJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMx KSAhPSBQR1JFU19DT01NQU5EX09LKQorCQl7CisJCQlwZ19sb2dfaW5mbygiJXMiLCBQUWVy cm9yTWVzc2FnZShwc2V0LmRiKSk7CisJCQlDbGVhck9yU2F2ZVJlc3VsdChyZXMxKTsKKwkJ CXJldHVybiAtMTsKKwkJfQorCQlQUWNsZWFyKHJlczEpOworCisJCXJlczIgPSBQUWRlc2Ny aWJlUHJlcGFyZWQocHNldC5kYiwgIiIpOworCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMikg IT0gUEdSRVNfQ09NTUFORF9PSykKKwkJeworCQkJcGdfbG9nX2luZm8oIiVzIiwgUFFlcnJv ck1lc3NhZ2UocHNldC5kYikpOworCQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzMik7CisJCQly ZXR1cm4gLTE7CisJCX0KKworCQlzdWNjZXNzID0gUFFzZW5kUXVlcnlQcmVwYXJlZDIocHNl dC5kYiwgIiIsIHBzZXQubnVtX3BhcmFtcywgKGNvbnN0IGNoYXIgKmNvbnN0ICopIHBzZXQu cGFyYW1zLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCByZXMyKTsKKworCQlQUWNsZWFyKHJlczIp OworCX0KKwllbHNlCisJeworCQlzdWNjZXNzID0gUFFzZW5kUXVlcnkocHNldC5kYiwgcXVl cnkpOworCX0KIAogCWlmICghc3VjY2VzcykKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDg4ZDkyYTA4 YWUuLmZlODE1NDdiMjkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisr KyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xNDk4LDcgKzE0OTgsNyBAQCBkZXNj cmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWJvb2wJCXBy aW50VGFibGVJbml0aWFsaXplZCA9IGZhbHNlOwogCWludAkJCWk7CiAJY2hhcgkgICAqdmll d19kZWYgPSBOVUxMOwotCWNoYXIJICAgKmhlYWRlcnNbMTJdOworCWNoYXIJICAgKmhlYWRl cnNbMTNdOwogCVBRRXhwQnVmZmVyRGF0YSB0aXRsZTsKIAlQUUV4cEJ1ZmZlckRhdGEgdG1w YnVmOwogCWludAkJCWNvbHM7CkBAIC0xNTE0LDYgKzE1MTQsNyBAQCBkZXNjcmliZU9uZVRh YmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCWZkd29wdHNfY29sID0g LTEsCiAJCQkJYXR0c3RvcmFnZV9jb2wgPSAtMSwKIAkJCQlhdHRjb21wcmVzc2lvbl9jb2wg PSAtMSwKKwkJCQlhdHRjZWtuYW1lX2NvbCA9IC0xLAogCQkJCWF0dHN0YXR0YXJnZXRfY29s ID0gLTEsCiAJCQkJYXR0ZGVzY3JfY29sID0gLTE7CiAJaW50CQkJbnVtcm93czsKQEAgLTE4 MTIsNyArMTgxMyw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNj aGVtYW5hbWUsCiAJY29scyA9IDA7CiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIlNFTEVD VCBhLmF0dG5hbWUiKTsKIAlhdHRuYW1lX2NvbCA9IGNvbHMrKzsKLQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKGEuYXR0dHlwaWQs IGEuYXR0dHlwbW9kKSIpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBn X2NhdGFsb2cuZm9ybWF0X3R5cGUoQ0FTRSBXSEVOIGEuYXR0cmVhbHR5cGlkIDw+IDAgVEhF TiBhLmF0dHJlYWx0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5ELCBhLmF0dHR5cG1vZCkiKTsK IAlhdHR0eXBlX2NvbCA9IGNvbHMrKzsKIAogCWlmIChzaG93X2NvbHVtbl9kZXRhaWxzKQpA QCAtMTgyNiw3ICsxODI3LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hh ciAqc2NoZW1hbmFtZSwKIAkJYXR0cmRlZl9jb2wgPSBjb2xzKys7CiAJCWF0dG5vdG51bGxf Y29sID0gY29scysrOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICAoU0VM RUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRh bG9nLnBnX3R5cGUgdFxuIgotCQkJCQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxh dGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5cGlkIEFORCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5 cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CisJCQkJCQkJICIgICBXSEVSRSBjLm9p ZCA9IGEuYXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IChDQVNFIFdIRU4gYS5hdHRyZWFsdHlw aWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQpIEFORCBh LmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CiAJ CWF0dGNvbGxfY29sID0gY29scysrOwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxMDAwMDAp CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGlkZW50aXR5Iik7 CkBAIC0xODc3LDYgKzE4NzgsMTUgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3Qg Y2hhciAqc2NoZW1hbmFtZSwKIAkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IGNvbHMrKzsKIAkJ fQogCisJCS8qIGVuY3J5cHRpb24gaW5mbyAqLworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx NjAwMDAgJiYKKwkJCSFwc2V0LmhpZGVfY29sdW1uX2VuY3J5cHRpb24gJiYKKwkJCSh0YWJs ZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OKSkKKwkJeworCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgKFNFTEVDVCBjZWtuYW1lIEZST00gcGdfY29sZW5j a2V5IGNlayBXSEVSRSBjZWsub2lkID0gYS5hdHRjZWspIEFTIGF0dGNla25hbWUiKTsKKwkJ CWF0dGNla25hbWVfY29sID0gY29scysrOworCQl9CisKIAkJLyogc3RhdHMgdGFyZ2V0LCBp ZiByZWxldmFudCB0byByZWxraW5kICovCiAJCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX1JFTEFUSU9OIHx8CiAJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lO REVYIHx8CkBAIC0yMDAwLDYgKzIwMTAsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhj b25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25v b3AoIlN0b3JhZ2UiKTsKIAlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCiAJCWhlYWRl cnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiQ29tcHJlc3Npb24iKTsKKwlpZiAoYXR0Y2Vr bmFtZV9jb2wgPj0gMCkKKwkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJFbmNy eXB0aW9uIik7CiAJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDApCiAJCWhlYWRlcnNbY29s cysrXSA9IGdldHRleHRfbm9vcCgiU3RhdHMgdGFyZ2V0Iik7CiAJaWYgKGF0dGRlc2NyX2Nv bCA+PSAwKQpAQCAtMjA5Miw2ICsyMTA0LDE3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxz KGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJICBmYWxzZSwgZmFsc2UpOwogCQl9 CiAKKwkJLyogQ29sdW1uIGVuY3J5cHRpb24gKi8KKwkJaWYgKGF0dGNla25hbWVfY29sID49 IDApCisJCXsKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBhdHRjZWtuYW1lX2NvbCkp CisJCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRj ZWtuYW1lX2NvbCksCisJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKKwkJCWVsc2UKKwkJCQlw cmludFRhYmxlQWRkQ2VsbCgmY29udCwgIiIsCisJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsK KwkJfQorCiAJCS8qIFN0YXRpc3RpY3MgdGFyZ2V0LCBpZiB0aGUgcmVsa2luZCBzdXBwb3J0 cyB0aGlzIGZlYXR1cmUgKi8KIAkJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDApCiAJCQlw cmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dHN0YXR0YXJn ZXRfY29sKSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3Bz cWwvaGVscC5jCmluZGV4IGY4Y2UxYTA3MDYuLjlmNGZjZTI2ZmQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMTk1LDYg KzE5NSw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAw KCIgIFxcZyBbKE9QVElPTlMpXSBbRklMRV0gIGV4ZWN1dGUgcXVlcnkgKGFuZCBzZW5kIHJl c3VsdCB0byBmaWxlIG9yIHxwaXBlKTtcbiIKIAkJICAiICAgICAgICAgICAgICAgICAgICAg ICAgIFxcZyB3aXRoIG5vIGFyZ3VtZW50cyBpcyBlcXVpdmFsZW50IHRvIGEgc2VtaWNvbG9u XG4iKTsKIAlIRUxQMCgiICBcXGdkZXNjICAgICAgICAgICAgICAgICBkZXNjcmliZSByZXN1 bHQgb2YgcXVlcnksIHdpdGhvdXQgZXhlY3V0aW5nIGl0XG4iKTsKKwlIRUxQMCgiICBcXGdl bmNyIFtQQVJBTV0uLi4gICAgICBleGVjdXRlIHF1ZXJ5LCB3aXRoIHN1cHBvcnQgZm9yIHBh cmFtZXRlciBlbmNyeXB0aW9uXG4iKTsKIAlIRUxQMCgiICBcXGdleGVjICAgICAgICAgICAg ICAgICBleGVjdXRlIHF1ZXJ5LCB0aGVuIGV4ZWN1dGUgZWFjaCB2YWx1ZSBpbiBpdHMgcmVz dWx0XG4iKTsKIAlIRUxQMCgiICBcXGdzZXQgW1BSRUZJWF0gICAgICAgICBleGVjdXRlIHF1 ZXJ5IGFuZCBzdG9yZSByZXN1bHQgaW4gcHNxbCB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIg IFxcZ3ggWyhPUFRJT05TKV0gW0ZJTEVdIGFzIFxcZywgYnV0IGZvcmNlcyBleHBhbmRlZCBv dXRwdXQgbW9kZVxuIik7CkBAIC00MTIsNiArNDEzLDggQEAgaGVscFZhcmlhYmxlcyh1bnNp Z25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJCSAgIiAgICB0cnVlIGlmIGxhc3QgcXVlcnkgZmFp bGVkLCBlbHNlIGZhbHNlXG4iKTsKIAlIRUxQMCgiICBGRVRDSF9DT1VOVFxuIgogCQkgICIg ICAgdGhlIG51bWJlciBvZiByZXN1bHQgcm93cyB0byBmZXRjaCBhbmQgZGlzcGxheSBhdCBh IHRpbWUgKDAgPSB1bmxpbWl0ZWQpXG4iKTsKKwlIRUxQMCgiICBISURFX0NPTFVNTl9FTkNS WVBUSU9OXG4iCisJCSAgIiAgICBpZiBzZXQsIGNvbHVtbiBlbmNyeXB0aW9uIGRldGFpbHMg YXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVEFCTEVBTVxuIgogCQkg ICIgICAgaWYgc2V0LCB0YWJsZSBhY2Nlc3MgbWV0aG9kcyBhcmUgbm90IGRpc3BsYXllZFxu Iik7CiAJSEVMUDAoIiAgSElERV9UT0FTVF9DT01QUkVTU0lPTlxuIgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaAppbmRl eCAyMzk5Y2ZmYTNmLi42MzY3MjlkZjFkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvc2V0 dGluZ3MuaAorKysgYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaApAQCAtOTUsNiArOTUsMTAg QEAgdHlwZWRlZiBzdHJ1Y3QgX3BzcWxTZXR0aW5ncwogCiAJY2hhcgkgICAqZ3NldF9wcmVm aXg7CS8qIG9uZS1zaG90IHByZWZpeCBhcmd1bWVudCBmb3IgXGdzZXQgKi8KIAlib29sCQln ZGVzY19mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0byBkZXNjcmliZSBxdWVyeSByZXN1 bHQgKi8KKwlib29sCQlnZW5jcl9mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0byBzZW5k IHF1ZXJ5IHdpdGggc3VwcG9ydAorCQkJCQkJCQkgKiBmb3IgcGFyYW1ldGVyIGVuY3J5cHRp b24gKi8KKwlpbnQJCQludW1fcGFyYW1zOwkJLyogbnVtYmVyIG9mIHF1ZXJ5IHBhcmFtZXRl cnMgKi8KKwljaGFyCSAgKipwYXJhbXM7CQkJLyogcXVlcnkgcGFyYW1ldGVycyAqLwogCWJv b2wJCWdleGVjX2ZsYWc7CQkvKiBvbmUtc2hvdCByZXF1ZXN0IHRvIGV4ZWN1dGUgcXVlcnkg cmVzdWx0ICovCiAJYm9vbAkJY3Jvc3N0YWJfZmxhZzsJLyogb25lLXNob3QgcmVxdWVzdCB0 byBjcm9zc3RhYiByZXN1bHQgKi8KIAljaGFyCSAgICpjdHZfYXJnc1s0XTsJLyogXGNyb3Nz dGFidmlldyBhcmd1bWVudHMgKi8KQEAgLTEzNCw2ICsxMzgsNyBAQCB0eXBlZGVmIHN0cnVj dCBfcHNxbFNldHRpbmdzCiAJYm9vbAkJcXVpZXQ7CiAJYm9vbAkJc2luZ2xlbGluZTsKIAli b29sCQlzaW5nbGVzdGVwOworCWJvb2wJCWhpZGVfY29sdW1uX2VuY3J5cHRpb247CiAJYm9v bAkJaGlkZV9jb21wcmVzc2lvbjsKIAlib29sCQloaWRlX3RhYmxlYW07CiAJaW50CQkJZmV0 Y2hfY291bnQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIvc3JjL2Jp bi9wc3FsL3N0YXJ0dXAuYwppbmRleCA3YzJmNTU1ZjE1Li5jOTU1MjIyYTUwIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCisrKyBiL3NyYy9iaW4vcHNxbC9zdGFydHVw LmMKQEAgLTExODgsNiArMTE4OCwxMyBAQCBoaWRlX2NvbXByZXNzaW9uX2hvb2soY29uc3Qg Y2hhciAqbmV3dmFsKQogCQkJCQkJCSAmcHNldC5oaWRlX2NvbXByZXNzaW9uKTsKIH0KIAor c3RhdGljIGJvb2wKK2hpZGVfY29sdW1uX2VuY3J5cHRpb25faG9vayhjb25zdCBjaGFyICpu ZXd2YWwpCit7CisJcmV0dXJuIFBhcnNlVmFyaWFibGVCb29sKG5ld3ZhbCwgIkhJREVfQ09M VU1OX0VOQ1JZUFRJT04iLAorCQkJCQkJCSAmcHNldC5oaWRlX2NvbHVtbl9lbmNyeXB0aW9u KTsKK30KKwogc3RhdGljIGJvb2wKIGhpZGVfdGFibGVhbV9ob29rKGNvbnN0IGNoYXIgKm5l d3ZhbCkKIHsKQEAgLTEyNTksNiArMTI2Niw5IEBAIEVzdGFibGlzaFZhcmlhYmxlU3BhY2Uo dm9pZCkKIAlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywgIlNIT1dfQ09OVEVYVCIsCiAJ CQkJCSBzaG93X2NvbnRleHRfc3Vic3RpdHV0ZV9ob29rLAogCQkJCQkgc2hvd19jb250ZXh0 X2hvb2spOworCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiSElERV9DT0xVTU5fRU5D UllQVElPTiIsCisJCQkJCSBib29sX3N1YnN0aXR1dGVfaG9vaywKKwkJCQkJIGhpZGVfY29s dW1uX2VuY3J5cHRpb25faG9vayk7CiAJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJI SURFX1RPQVNUX0NPTVBSRVNTSU9OIiwKIAkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9ob29rLAog CQkJCQkgaGlkZV9jb21wcmVzc2lvbl9ob29rKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBl NTcyZjU4NWVmLi4wMmU4YTM1MTJiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xNjkyLDcg KzE2OTIsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0 LCBpbnQgZW5kKQogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxpZiIsICJc XGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9zZSIsICJc XGV2IiwKIAkJIlxcZiIsCi0JCSJcXGciLCAiXFxnZGVzYyIsICJcXGdldGVudiIsICJcXGdl eGVjIiwgIlxcZ3NldCIsICJcXGd4IiwKKwkJIlxcZyIsICJcXGdkZXNjIiwgIlxcZ2VuY3Ii LCAiXFxnZXRlbnYiLCAiXFxnZXhlYyIsICJcXGdzZXQiLCAiXFxneCIsCiAJCSJcXGhlbHAi LCAiXFxodG1sIiwKIAkJIlxcaWYiLCAiXFxpbmNsdWRlIiwgIlxcaW5jbHVkZV9yZWxhdGl2 ZSIsICJcXGlyIiwKIAkJIlxcbGlzdCIsICJcXGxvX2ltcG9ydCIsICJcXGxvX2V4cG9ydCIs ICJcXGxvX2xpc3QiLCAiXFxsb191bmxpbmsiLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL3ByaW50dHVwLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaAppbmRl eCA5NzFhNzRjZjIyLi5kYjFmM2I4ODExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvcHJpbnR0dXAuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaApAQCAt MjAsNiArMjAsOCBAQCBleHRlcm4gRGVzdFJlY2VpdmVyICpwcmludHR1cF9jcmVhdGVfRFIo Q29tbWFuZERlc3QgZGVzdCk7CiAKIGV4dGVybiB2b2lkIFNldFJlbW90ZURlc3RSZWNlaXZl clBhcmFtcyhEZXN0UmVjZWl2ZXIgKnNlbGYsIFBvcnRhbCBwb3J0YWwpOwogCitleHRlcm4g dm9pZCBNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKTsK KwogZXh0ZXJuIHZvaWQgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1 ZiwKIAkJCQkJCQkJCSAgVHVwbGVEZXNjIHR5cGVpbmZvLCBMaXN0ICp0YXJnZXRsaXN0LCBp bnQxNiAqZm9ybWF0cyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1vcC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CmluZGV4IDYxY2Q1 OTE0MzAuLmEwYmQ3MDgxMzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1vcC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdApAQCAtMTAy OCw2ICsxMDI4LDExIEBACiAgIGFtb3ByaWdodHR5cGUgPT4gJ2J5dGVhJywgYW1vcHN0cmF0 ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAnPShieXRlYSxieXRlYSknLAogICBhbW9wbWV0aG9k ID0+ICdoYXNoJyB9LAogCisjIHBnX2VuY3J5cHRlZF9kZXRfb3BzCit7IGFtb3BmYW1pbHkg PT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBhbW9wbGVmdHR5cGUgPT4gJ3BnX2Vu Y3J5cHRlZF9kZXQnLAorICBhbW9wcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywg YW1vcHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAnPShwZ19lbmNyeXB0ZWRfZGV0LHBn X2VuY3J5cHRlZF9kZXQpJywKKyAgYW1vcG1ldGhvZCA9PiAnaGFzaCcgfSwKKwogIyB4aWRf b3BzCiB7IGFtb3BmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtb3BsZWZ0dHlwZSA9PiAn eGlkJywgYW1vcHJpZ2h0dHlwZSA9PiAneGlkJywKICAgYW1vcHN0cmF0ZWd5ID0+ICcxJywg YW1vcG9wciA9PiAnPSh4aWQseGlkKScsIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggNGNjMTI5YmViZC4uZGRkYjI3MTEzZiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApAQCAtNDAyLDYgKzQwMiwxMSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2J5dGVhJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdieXRlYScsIGFtcHJvY251bSA9PiAn MicsCiAgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J3BnX2VuY3J5cHRlZF9kZXQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2h2YXJsZW5hJyB9LAor eyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn cGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAnMicsCisgIGFtcHJvYyA9PiAnaGFz aHZhcmxlbmFleHRlbmRlZCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdoYXNoL3hpZF9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAneGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd4aWQn LCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2hpbnQ0JyB9LAogeyBhbXByb2Nm YW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKaW5kZXggMDUzMjk0Yzk5Zi4uNTUwYTUzNjQ5 YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCkBAIC0xNjQsNiArMTY0LDE1 IEBAIENBVEFMT0cocGdfYXR0cmlidXRlLDEyNDksQXR0cmlidXRlUmVsYXRpb25JZCkgQktJ X0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzUsCiAJICovCiAJYm9vbAkJYXR0aXNsb2Nh bCBCS0lfREVGQVVMVCh0KTsKIAorCS8qIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAqLworCU9p ZAkJCWF0dGNlayBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xlbmNrZXkp OworCisJLyogcmVhbCB0eXBlIGlmIGVuY3J5cHRlZCAqLworCU9pZAkJCWF0dHJlYWx0eXBp ZCBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ190eXBlKTsKKworCS8qIGVuY3J5 cHRpb24gYWxnb3JpdGhtIChQR19DRUtfKiB2YWx1ZXMpICovCisJaW50MTYJCWF0dGVuY2Fs ZyBCS0lfREVGQVVMVCgwKTsKKwogCS8qIE51bWJlciBvZiB0aW1lcyBpbmhlcml0ZWQgZnJv bSBkaXJlY3QgcGFyZW50IHJlbGF0aW9uKHMpICovCiAJaW50MzIJCWF0dGluaGNvdW50IEJL SV9ERUZBVUxUKDApOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nh c3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAppbmRleCA0NDcxZWI2 YmJlLi44NzhiMGJjYmJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nh c3QuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTU0Niw0 ICs1NDYsMTAgQEAKIHsgY2FzdHNvdXJjZSA9PiAndHN0enJhbmdlJywgY2FzdHRhcmdldCA9 PiAndHN0em11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0em11bHRpcmFuZ2UodHN0 enJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKICAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KworeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLCBjYXN0ZnVuYyA9PiAnMCcsCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKK3sgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ ICdwZ19lbmNyeXB0ZWRfcm5kJywgY2FzdGZ1bmMgPT4gJzAnLAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bGVuY2tleS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA5NWVk NzEyYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVu Y2tleS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHBnX2NvbGVuY2tleS5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gZW5jcnlw dGlvbiBrZXkiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5rZXku aAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlz IGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX0NPTEVOQ0tFWV9ICisjZGVmaW5l IFBHX0NPTEVOQ0tFWV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQor ICoJCXBnX2NvbGVuY2tleSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5CisgKiAtLS0tLS0tLS0tLS0t LS0tCisgKi8KK0NBVEFMT0cocGdfY29sZW5ja2V5LDgyMzQsQ29sdW1uRW5jS2V5UmVsYXRp b25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY2VrbmFtZTsKKwlPaWQJCQljZWtv d25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7Cit9IEZvcm1EYXRhX3BnX2NvbGVuY2tleTsK KwordHlwZWRlZiBGb3JtRGF0YV9wZ19jb2xlbmNrZXkgKkZvcm1fcGdfY29sZW5ja2V5Owor CitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2NvbGVuY2tleV9vaWRfaW5kZXgsIDgy NDAsIENvbHVtbkVuY0tleU9pZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJl ZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfY29sZW5ja2V5X2Nl a25hbWVfaW5kZXgsIDgyNDIsIENvbHVtbkVuY0tleU5hbWVJbmRleElkLCBvbiBwZ19jb2xl bmNrZXkgdXNpbmcgYnRyZWUoY2VrbmFtZSBuYW1lX29wcykpOworCisvKgorICogQ29uc3Rh bnRzIGZvciBDTUsgYW5kIENFSyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IHRoZXNlIGFyZSBw YXJ0IG9mIHRoZQorICogcHJvdG9jb2wuICBGb3IgY2xhcml0eSwgdGhlIGFzc2lnbmVkIG51 bWJlcnMgYXJlIG5vdCByZXVzZWQgYmV0d2VlbiBDTUtzCisgKiBhbmQgQ0VLcywgYnV0IHRo YXQgaXMgbm90IHRlY2huaWNhbGx5IHJlcXVpcmVkLiAgSW4gZWl0aGVyIGNhc2UsIGRvbid0 CisgKiBhc3NpZ24gemVybywgc28gdGhhdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGludmFs aWQgdmFsdWUuCisgKi8KKworI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMQkJCTEK KyNkZWZpbmUgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NgkJMgorCisjZGVmaW5lIFBHX0NF S19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NgkxMzAKKyNkZWZpbmUgUEdfQ0VLX0FF QURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0CTEzMQorI2RlZmluZSBQR19DRUtfQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV8zODQJMTMyCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18y NTZfQ0JDX0hNQUNfU0hBXzUxMgkxMzMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29sZW5ja2V5ZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLjNlNGRlYTcyMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NvbGVuY2tleWRhdGEuaApAQCAtMCwwICsxLDQ2IEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCisgKiBwZ19jb2xlbmNrZXlkYXRhLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0 aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiBzeXN0ZW0gY2F0YWxvZworICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGVua2V5ZGF0YS5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENh dGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAq CSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5k ZWYgUEdfQ09MRU5DS0VZREFUQV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tFWURBVEFfSAorCisj aW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleWRhdGFfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5 ZGF0YSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1 Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YQorICogLS0tLS0tLS0tLS0tLS0tLQorICov CitDQVRBTE9HKHBnX2NvbGVuY2tleWRhdGEsODI1MCxDb2x1bW5FbmNLZXlEYXRhUmVsYXRp b25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJT2lkCQkJY2tkY2VraWQgQktJX0xPT0tVUChwZ19j b2xlbmNrZXkpOworCU9pZAkJCWNrZGNta2lkIEJLSV9MT09LVVAocGdfY29sbWFzdGVya2V5 KTsKKwlpbnQxNgkJY2tkY21rYWxnOwkJLyogUEdfQ01LXyogdmFsdWVzICovCisjaWZkZWYg Q0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUg Ki8KKwlieXRlYQkJY2tkZW5jdmFsIEJLSV9GT1JDRV9OT1RfTlVMTDsKKyNlbmRpZgorfSBG b3JtRGF0YV9wZ19jb2xlbmNrZXlkYXRhOworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVu Y2tleWRhdGEgKkZvcm1fcGdfY29sZW5ja2V5ZGF0YTsKKworREVDTEFSRV9UT0FTVChwZ19j b2xlbmNrZXlkYXRhLCA4MjM3LCA4MjM4KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtF WShwZ19jb2xlbmNrZXlkYXRhX29pZF9pbmRleCwgODI1MSwgQ29sdW1uRW5jS2V5RGF0YU9p ZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleWRhdGEgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMp KTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX2NvbGVuY2tleWRhdGFfY2tkY2VraWRfY2tk Y21raWRfaW5kZXgsIDgyNTIsIENvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLCBvbiBw Z19jb2xlbmNrZXlkYXRhIHVzaW5nIGJ0cmVlKGNrZGNla2lkIG9pZF9vcHMsIGNrZGNta2lk IG9pZF9vcHMpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NvbG1hc3RlcmtleS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJr ZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wMzQ0Y2M0MjAx Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJr ZXkuaApAQCAtMCwwICsxLDQ1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBw Z19jb2xtYXN0ZXJrZXkuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIG1hc3Rl ciBrZXkiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5 LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhp cyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xNQVNURVJLRVlfSAorI2Rl ZmluZSBQR19DT0xNQVNURVJLRVlfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleV9kLmgiCisKKy8qIC0tLS0tLS0t LS0tLS0tLS0KKyAqCQlwZ19jb2xtYXN0ZXJrZXkgZGVmaW5pdGlvbi4gY3BwIHR1cm5zIHRo aXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleQor ICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbG1hc3RlcmtleSw4MjMz LENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCU5hbWVEYXRh CWNta25hbWU7CisJT2lkCQkJY21rb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworI2lm ZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBo ZXJlICovCisJdGV4dAkJY21rcmVhbG0gQktJX0ZPUkNFX05PVF9OVUxMOworI2VuZGlmCit9 IEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleTsKKwordHlwZWRlZiBGb3JtRGF0YV9wZ19jb2xt YXN0ZXJrZXkgKkZvcm1fcGdfY29sbWFzdGVya2V5OworCitERUNMQVJFX1RPQVNUKHBnX2Nv bG1hc3RlcmtleSwgODIzNSwgODIzNik7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVko cGdfY29sbWFzdGVya2V5X29pZF9pbmRleCwgODIzOSwgQ29sdW1uTWFzdGVyS2V5T2lkSW5k ZXhJZCwgb24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitE RUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xtYXN0ZXJrZXlfY21rbmFtZV9pbmRleCwgODI0 MSwgQ29sdW1uTWFzdGVyS2V5TmFtZUluZGV4SWQsIG9uIHBnX2NvbG1hc3RlcmtleSB1c2lu ZyBidHJlZShjbWtuYW1lIG5hbWVfb3BzKSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfb3BjbGFzcy5kYXQKaW5kZXggZGJjYWU3ZmZkZC4uMGNhNDAxZmZlNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CkBAIC0xNjYsNiArMTY2LDggQEAKICAgb3BjaW50 eXBlID0+ICdib29sJyB9LAogeyBvcGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdi eXRlYV9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywKICAgb3BjaW50eXBl ID0+ICdieXRlYScgfSwKK3sgb3BjbWV0aG9kID0+ICdoYXNoJywgb3BjbmFtZSA9PiAncGdf ZW5jcnlwdGVkX2RldF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2Rl dF9vcHMnLAorICBvcGNpbnR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnIH0sCiB7IG9wY21l dGhvZCA9PiAnYnRyZWUnLCBvcGNuYW1lID0+ICd0aWRfb3BzJywgb3BjZmFtaWx5ID0+ICdi dHJlZS90aWRfb3BzJywKICAgb3BjaW50eXBlID0+ICd0aWQnIH0sCiB7IG9wY21ldGhvZCA9 PiAnaGFzaCcsIG9wY25hbWUgPT4gJ3hpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gveGlk X29wcycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CmluZGV4IGJjNWY4MjEz ZjMuLjQ3MzdhN2Y5ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bl cmF0b3IuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CkBA IC0zNDU4LDQgKzM0NTgsMTQgQEAKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9hZnRlcl9t dWx0aXJhbmdlJywgb3BycmVzdCA9PiAnbXVsdGlyYW5nZXNlbCcsCiAgIG9wcmpvaW4gPT4g J3NjYWxhcmd0am9pbnNlbCcgfSwKIAoreyBvaWQgPT4gJzgyNDcnLCBkZXNjciA9PiAnZXF1 YWwnLAorICBvcHJuYW1lID0+ICc9Jywgb3ByY2FubWVyZ2UgPT4gJ2YnLCBvcHJjYW5oYXNo ID0+ICd0Jywgb3BybGVmdCA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIG9wcnJpZ2h0ID0+ ICdwZ19lbmNyeXB0ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywgb3ByY29tID0+ICc9 KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJuZWdhdGUgPT4g Jzw+KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLCBvcHJjb2RlID0+ICdw Z19lbmNyeXB0ZWRfZGV0X2VxJywgb3BycmVzdCA9PiAnZXFzZWwnLAorICBvcHJqb2luID0+ ICdlcWpvaW5zZWwnIH0sCit7IG9pZCA9PiAnODI0OCcsIGRlc2NyID0+ICdub3QgZXF1YWwn LAorICBvcHJuYW1lID0+ICc8PicsIG9wcmxlZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBv cHJyaWdodCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsCisg IG9wcmNvbSA9PiAnPD4ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9w cm5lZ2F0ZSA9PiAnPShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAg b3ByY29kZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIG9wcnJlc3QgPT4gJ25lcXNlbCcs IG9wcmpvaW4gPT4gJ25lcWpvaW5zZWwnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19v cGZhbWlseS5kYXQKaW5kZXggYjNiNmE3ZTYxNi4uNTM0MzU4MGIwNiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKQEAgLTEwOCw2ICsxMDgsOCBAQAogICBvcGZtZXRo b2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdib29sX29wcycgfSwKIHsgb2lkID0+ICcyMjIz JywKICAgb3BmbWV0aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9PiAnYnl0ZWFfb3BzJyB9LAor eyBvaWQgPT4gJzgyNDknLAorICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdw Z19lbmNyeXB0ZWRfZGV0X29wcycgfSwKIHsgb2lkID0+ICcyNzg5JywKICAgb3BmbWV0aG9k ID0+ICdidHJlZScsIG9wZm5hbWUgPT4gJ3RpZF9vcHMnIH0sCiB7IG9pZCA9PiAnMjIyNScs CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAyZTQxZjRkOWU4Li4yZmEyNmEyMjIy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTgwMjUsOSArODAyNSw5IEBACiAg IHByb25hbWUgPT4gJ3BnX3ByZXBhcmVkX3N0YXRlbWVudCcsIHByb3Jvd3MgPT4gJzEwMDAn LCBwcm9yZXRzZXQgPT4gJ3QnLAogICBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVs ID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKICAgcHJvYXJndHlwZXMgPT4gJycs Ci0gIHByb2FsbGFyZ3R5cGVzID0+ICd7dGV4dCx0ZXh0LHRpbWVzdGFtcHR6LF9yZWd0eXBl LF9yZWd0eXBlLGJvb2wsaW50OCxpbnQ4fScsCi0gIHByb2FyZ21vZGVzID0+ICd7byxvLG8s byxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7bmFtZSxzdGF0ZW1lbnQscHJlcGFy ZV90aW1lLHBhcmFtZXRlcl90eXBlcyxyZXN1bHRfdHlwZXMsZnJvbV9zcWwsZ2VuZXJpY19w bGFucyxjdXN0b21fcGxhbnN9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LHRleHQs dGltZXN0YW1wdHosX3JlZ3R5cGUsX3JlZ2NsYXNzLF9pbnQyLF9yZWd0eXBlLGJvb2wsaW50 OCxpbnQ4fScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sb30nLAor ICBwcm9hcmduYW1lcyA9PiAne25hbWUsc3RhdGVtZW50LHByZXBhcmVfdGltZSxwYXJhbWV0 ZXJfdHlwZXMscGFyYW1ldGVyX29yaWdfdGFibGVzLHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMs cmVzdWx0X3R5cGVzLGZyb21fc3FsLGdlbmVyaWNfcGxhbnMsY3VzdG9tX3BsYW5zfScsCiAg IHByb3NyYyA9PiAncGdfcHJlcGFyZWRfc3RhdGVtZW50JyB9LAogeyBvaWQgPT4gJzI1MTEn LCBkZXNjciA9PiAnZ2V0IHRoZSBvcGVuIGN1cnNvcnMgZm9yIHRoaXMgc2Vzc2lvbicsCiAg IHByb25hbWUgPT4gJ3BnX2N1cnNvcicsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQg PT4gJ3QnLApAQCAtMTE4ODYsNCArMTE4ODYsMTEgQEAKICAgcHJvcmV0dHlwZSA9PiAnYnl0 ZWEnLCBwcm9hcmd0eXBlcyA9PiAncGdfYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeScsCiAg IHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5kJyB9LAogCit7IG9p ZCA9PiAnODI0NScsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEnLCBwcm9s ZWFrcHJvb2YgPT4gJ3QnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMg PT4gJ3BnX2VuY3J5cHRlZF9kZXQgcGdfZW5jcnlwdGVkX2RldCcsIHByb3NyYyA9PiAnYnl0 ZWFlcScgfSwKK3sgb2lkID0+ICc4MjQ2JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVk X2RldF9uZScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAor ICBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0Jywg cHJvc3JjID0+ICdieXRlYW5lJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3R5cGUuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdApp bmRleCBkZjQ1ODc5NDYzLi5kZjFmYTNlMzkzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3R5cGUuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5k YXQKQEAgLTY5Miw0ICs2OTIsMTYgQEAKICAgdHlwcmVjZWl2ZSA9PiAnYnJpbl9taW5tYXhf bXVsdGlfc3VtbWFyeV9yZWN2JywKICAgdHlwc2VuZCA9PiAnYnJpbl9taW5tYXhfbXVsdGlf c3VtbWFyeV9zZW5kJywgdHlwYWxpZ24gPT4gJ2knLAogICB0eXBzdG9yYWdlID0+ICd4Jywg dHlwY29sbGF0aW9uID0+ICdkZWZhdWx0JyB9LAorCit7IG9pZCA9PiAnODI0MycsIGRlc2Ny ID0+ICdlbmNyeXB0ZWQgY29sdW1uIChkZXRlcm1pbmlzdGljKScsCisgIHR5cG5hbWUgPT4g J3BnX2VuY3J5cHRlZF9kZXQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0 eXB0eXBlID0+ICd5JywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0 ZWFpbicsIHR5cG91dHB1dCA9PiAnYnl0ZWFvdXQnLAorICB0eXByZWNlaXZlID0+ICdieXRl YXJlY3YnLCB0eXBzZW5kID0+ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5 cHN0b3JhZ2UgPT4gJ2UnIH0sCit7IG9pZCA9PiAnODI0NCcsIGRlc2NyID0+ICdlbmNyeXB0 ZWQgY29sdW1uIChyYW5kb21pemVkKScsCisgIHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9y bmQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICd5JywK KyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0ZWFpbicsIHR5cG91dHB1 dCA9PiAnYnl0ZWFvdXQnLAorICB0eXByZWNlaXZlID0+ICdieXRlYXJlY3YnLCB0eXBzZW5k ID0+ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4gJ2Un IH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKaW5kZXggNDhhMjU1OTEzNy4uMTFhZmY5 ZmY4MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKQEAgLTI3Nyw2ICsyNzcsNyBAQCBERUNM QVJFX1VOSVFVRV9JTkRFWChwZ190eXBlX3R5cG5hbWVfbnNwX2luZGV4LCAyNzA0LCBUeXBl TmFtZU5zcEluZGV4SWQsIG9uIHBnXwogI2RlZmluZSAgVFlQVFlQRV9NVUxUSVJBTkdFCSdt JyAvKiBtdWx0aXJhbmdlIHR5cGUgKi8KICNkZWZpbmUgIFRZUFRZUEVfUFNFVURPCQkncCcg LyogcHNldWRvLXR5cGUgKi8KICNkZWZpbmUgIFRZUFRZUEVfUkFOR0UJCSdyJyAvKiByYW5n ZSB0eXBlICovCisjZGVmaW5lICBUWVBUWVBFX0VOQ1JZUFRFRAkneScgLyogZW5jcnlwdGVk IGNvbHVtbiB2YWx1ZSAqLwogCiAjZGVmaW5lICBUWVBDQVRFR09SWV9JTlZBTElECSdcMCcJ Lyogbm90IGFuIGFsbG93ZWQgY2F0ZWdvcnkgKi8KICNkZWZpbmUgIFRZUENBVEVHT1JZX0FS UkFZCQknQScKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMu aCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi4xMDE5MTgyOTI1Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCkBAIC0wLDAgKzEsMjQgQEAKKy8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuY2NtZHMuaAorICoJICBwcm90b3R5 cGVzIGZvciBjb2xlbmNjbWRzLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRz LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIENPTEVOQ0NN RFNfSAorI2RlZmluZSBDT0xFTkNDTURTX0gKKworI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0 YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisKK2V4dGVybiBP YmplY3RBZGRyZXNzIENyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQg KnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlQ01LKFBhcnNlU3RhdGUgKnBz dGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCk7CisKKyNlbmRpZgkJCQkJCQkvKiBDT0xFTkNDTURT X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA5OGZlMWFiYWEyLi4yYTQ3ZDgx ZDkyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC02ODYsNiArNjg2LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgQ29sdW1uRGVmCiAJY2hhcgkgICAqY29sbmFtZTsJCS8qIG5hbWUgb2Yg Y29sdW1uICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0eXBlIG9mIGNvbHVtbiAq LwogCWNoYXIJICAgKmNvbXByZXNzaW9uOwkvKiBjb21wcmVzc2lvbiBtZXRob2QgZm9yIGNv bHVtbiAqLworCUxpc3QJICAgKmVuY3J5cHRpb247CQkvKiBlbmNyeXB0aW9uIGluZm8gZm9y IGNvbHVtbiAqLwogCWludAkJCWluaGNvdW50OwkJLyogbnVtYmVyIG9mIHRpbWVzIGNvbHVt biBpcyBpbmhlcml0ZWQgKi8KIAlib29sCQlpc19sb2NhbDsJCS8qIGNvbHVtbiBoYXMgbG9j YWwgKG5vbi1pbmhlcml0ZWQpIGRlZiduICovCiAJYm9vbAkJaXNfbm90X251bGw7CS8qIE5P VCBOVUxMIGNvbnN0cmFpbnQgc3BlY2lmaWVkPyAqLwpAQCAtMjE1MSw2ICsyMTUyLDggQEAg dHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfQ0FTVCwKIAlPQkpFQ1RfQ09MVU1O LAogCU9CSkVDVF9DT0xMQVRJT04sCisJT0JKRUNUX0NFSywKKwlPQkpFQ1RfQ01LLAogCU9C SkVDVF9DT05WRVJTSU9OLAogCU9CSkVDVF9EQVRBQkFTRSwKIAlPQkpFQ1RfREVGQVVMVCwK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmggYi9zcmMvaW5jbHVk ZS9wYXJzZXIvYW5hbHl6ZS5oCmluZGV4IGRjMzc5NTQ3YzcuLmMzMTBlMTI0ZjEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2FuYWx5emUuaApAQCAtMjgsNyArMjgsOSBAQCBleHRlcm4gUEdETExJTVBPUlQg cG9zdF9wYXJzZV9hbmFseXplX2hvb2tfdHlwZSBwb3N0X3BhcnNlX2FuYWx5emVfaG9vazsK IGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV9maXhlZHBhcmFtcyhSYXdTdG10ICpwYXJz ZVRyZWUsIGNvbnN0IGNoYXIgKnNvdXJjZVRleHQsCiAJCQkJCQkJCQkJY29uc3QgT2lkICpw YXJhbVR5cGVzLCBpbnQgbnVtUGFyYW1zLCBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7 CiBleHRlcm4gUXVlcnkgKnBhcnNlX2FuYWx5emVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNl VHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKLQkJCQkJCQkJCSAgT2lkICoqcGFyYW1U eXBlcywgaW50ICpudW1QYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKKwkJ CQkJCQkJCSAgT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJCQkg IE9pZCAqKnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzLAorCQkJ CQkJCQkJICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CiBleHRlcm4gUXVlcnkgKnBh cnNlX2FuYWx5emVfd2l0aGNiKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291 cmNlVGV4dCwKIAkJCQkJCQkJICAgUGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwLAogCQkJ CQkJCQkgICB2b2lkICpwYXJzZXJTZXR1cEFyZywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBh ZTM1ZjAzMjUxLi4xM2NjYWRmZDVkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0xNTIsNiAr MTUyLDcgQEAgUEdfS0VZV09SRCgiZW1wdHkiLCBFTVBUWV9QLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmFibGUiLCBFTkFCTEVfUCwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5jb2RpbmciLCBFTkNP RElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5j cnlwdGVkIiwgRU5DUllQVEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJlbmNyeXB0aW9uIiwgRU5DUllQVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5kIiwgRU5EX1AsIFJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbnVtIiwgRU5VTV9QLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlcnJvciIsIEVSUk9SX1AsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTI2OCw2ICsyNjksNyBAQCBQR19L RVlXT1JEKCJsb2NrIiwgTE9DS19QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJsb2NrZWQiLCBMT0NLRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoImxvZ2dlZCIsIExPR0dFRCwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWFwcGluZyIsIE1BUFBJTkcsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoIm1hc3RlciIsIE1BU1RF UiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWF0Y2gi LCBNQVRDSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi bWF0Y2hlZCIsIE1BVENIRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoIm1hdGVyaWFsaXplZCIsIE1BVEVSSUFMSVpFRCwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggY2Y5Yzc1 OTAyNS4uMjI1YTJhODczMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC05Myw2 ICs5Myw3IEBAIHR5cGVkZWYgTm9kZSAqKCpQYXJzZVBhcmFtUmVmSG9vaykgKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpOwogdHlwZWRlZiBOb2RlICooKkNvZXJjZVBh cmFtSG9vaykgKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLAogCQkJCQkJCQkg IE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQkJCQkJCSAgaW50 IGxvY2F0aW9uKTsKK3R5cGVkZWYgdm9pZCAoKlBhcmFtQXNzaWduT3JpZ0hvb2spIChQYXJz ZVN0YXRlICpwc3RhdGUsIFBhcmFtICpwYXJhbSwgT2lkIG9yaWd0YmwsIEF0dHJOdW1iZXIg b3JpZ2NvbCk7CiAKIAogLyoKQEAgLTIyMiw2ICsyMjMsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0 ZQogCVBvc3RQYXJzZUNvbHVtblJlZkhvb2sgcF9wb3N0X2NvbHVtbnJlZl9ob29rOwogCVBh cnNlUGFyYW1SZWZIb29rIHBfcGFyYW1yZWZfaG9vazsKIAlDb2VyY2VQYXJhbUhvb2sgcF9j b2VyY2VfcGFyYW1faG9vazsKKwlQYXJhbUFzc2lnbk9yaWdIb29rIHBfcGFyYW1fYXNzaWdu X29yaWdfaG9vazsKIAl2b2lkCSAgICpwX3JlZl9ob29rX3N0YXRlOwkvKiBjb21tb24gcGFz c3Rocm91Z2ggbGluayBmb3IgYWJvdmUgKi8KIH07CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3Bh cmFtLmgKaW5kZXggZGYxZWU2NjBkOC4uZGEyMDJiMjhhNyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3BhcmFtLmgKQEAgLTE4LDcgKzE4LDggQEAKIGV4dGVybiB2b2lkIHNldHVwX3BhcnNl X2ZpeGVkX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBjb25z dCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMpOwogZXh0ZXJuIHZvaWQgc2V0dXBf cGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkJ CQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zKTsKKwkJCQkJCQkJCQkJT2lk ICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJCQkJCU9pZCAqKnBhcmFt T3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzKTsKIGV4dGVybiB2b2lkIGNo ZWNrX3ZhcmlhYmxlX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXVl cnkpOwogZXh0ZXJuIGJvb2wgcXVlcnlfY29udGFpbnNfZXh0ZXJuX3BhcmFtcyhRdWVyeSAq cXVlcnkpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDJiMTE2M2NlMzMuLjcwYzJj ZmQwNWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC04Niw2ICs4Niw4IEBAIFBHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX0FDQ0VTU19NRVRIT0QsICJDUkVBVEUgQUNDRVNTIE1FVEhP RCIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9BR0dSRUdB VEUsICJDUkVBVEUgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19DUkVBVEVfQ0FTVCwgIkNSRUFURSBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MTEFUSU9OLCAiQ1JFQVRFIENPTExBVElP TiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTFVN Tl9FTkNSWVBUSU9OX0tFWSwgIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xVTU5fTUFTVEVS X0tFWSwgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTlNUUkFJTlQsICJDUkVBVEUgQ09OU1RSQUlO VCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTlZF UlNJT04sICJDUkVBVEUgQ09OVkVSU0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX0RBVEFCQVNFLCAiQ1JFQVRFIERBVEFCQVNFIiwgZmFsc2Us IGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3Qu aCBiL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaAppbmRleCA3MGQ5ZGFiMjViLi4zMDM4 Y2ViNTIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKKysrIGIv c3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5oCkBAIC01Myw2ICs1Myw4IEBAIGV4dGVybiBM aXN0ICpwZ19hbmFseXplX2FuZF9yZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRy ZWUsCiAJCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAogCQkJCQkJCQkJ CQkgIE9pZCAqKnBhcmFtVHlwZXMsCiAJCQkJCQkJCQkJCSAgaW50ICpudW1QYXJhbXMsCisJ CQkJCQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywKKwkJCQkJCQkJCQkJICBBdHRyTnVt YmVyICoqcGFyYW1PcmlnQ29scywKIAkJCQkJCQkJCQkJICBRdWVyeUVudmlyb25tZW50ICpx dWVyeUVudik7CiBleHRlcm4gTGlzdCAqcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV93aXRoY2Io UmF3U3RtdCAqcGFyc2V0cmVlLAogCQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmgKaW5kZXggMDQ5OTYzNWY1OS4uOWE3Y2Y3OTRj ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmgKKysrIGIvc3Jj L2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmgKQEAgLTEwMSw2ICsxMDEsMTAgQEAgdHlwZWRl ZiBzdHJ1Y3QgQ2FjaGVkUGxhblNvdXJjZQogCUNvbW1hbmRUYWcJY29tbWFuZFRhZzsJCS8q ICdudWZmIHNhaWQgKi8KIAlPaWQJCSAgICpwYXJhbV90eXBlczsJLyogYXJyYXkgb2YgcGFy YW1ldGVyIHR5cGUgT0lEcywgb3IgTlVMTCAqLwogCWludAkJCW51bV9wYXJhbXM7CQkvKiBs ZW5ndGggb2YgcGFyYW1fdHlwZXMgYXJyYXkgKi8KKwlPaWQJCSAgICpwYXJhbV9vcmlndGJs czsgLyogYXJyYXkgb2YgdW5kZXJseWluZyB0YWJsZXMgb2YgcGFyYW1ldGVycywKKwkJCQkJ CQkJICogb3IgTlVMTCAqLworCUF0dHJOdW1iZXIgKnBhcmFtX29yaWdjb2xzOyAvKiBhcnJh eSBvZiB1bmRlcmx5aW5nIGNvbHVtbnMgb2YgcGFyYW1ldGVycywKKwkJCQkJCQkJICogb3Ig TlVMTCAqLwogCVBhcnNlclNldHVwSG9vayBwYXJzZXJTZXR1cDsJLyogYWx0ZXJuYXRpdmUg cGFyYW1ldGVyIHNwZWMgbWV0aG9kICovCiAJdm9pZAkgICAqcGFyc2VyU2V0dXBBcmc7CiAJ aW50CQkJY3Vyc29yX29wdGlvbnM7IC8qIGN1cnNvciBvcHRpb25zIHVzZWQgZm9yIHBsYW5u aW5nICovCkBAIC0xOTksNiArMjAzLDggQEAgZXh0ZXJuIHZvaWQgQ29tcGxldGVDYWNoZWRQ bGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiAJCQkJCQkJICAgTWVtb3J5Q29u dGV4dCBxdWVyeXRyZWVfY29udGV4dCwKIAkJCQkJCQkgICBPaWQgKnBhcmFtX3R5cGVzLAog CQkJCQkJCSAgIGludCBudW1fcGFyYW1zLAorCQkJCQkJCSAgIE9pZCAqcGFyYW1fb3JpZ3Ri bHMsCisJCQkJCQkJICAgQXR0ck51bWJlciAqcGFyYW1fb3JpZ2NvbHMsCiAJCQkJCQkJICAg UGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwLAogCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNl dHVwQXJnLAogCQkJCQkJCSAgIGludCBjdXJzb3Jfb3B0aW9ucywKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNo ZS5oCmluZGV4IDQ0NjNlYTY2YmUuLmQwYjgxNzY2YzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL3N5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUu aApAQCAtNDQsOCArNDQsMTMgQEAgZW51bSBTeXNDYWNoZUlkZW50aWZpZXIKIAlBVVRITkFN RSwKIAlBVVRIT0lELAogCUNBU1RTT1VSQ0VUQVJHRVQsCisJQ0VLREFUQU9JRCwKKwlDRUtO QU1FLAorCUNFS09JRCwKIAlDTEFBTU5BTUVOU1AsCiAJQ0xBT0lELAorCUNNS05BTUUsCisJ Q01LT0lELAogCUNPTExOQU1FRU5DTlNQLAogCUNPTExPSUQsCiAJQ09OREVGQVVMVCwKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggYjVmZDcyYTRhYy4uNWEwNjVlYjgwYiAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvTWFrZWZpbGUKQEAgLTU0LDYgKzU0LDcgQEAgZW5kaWYKIAogaWZlcSAoJCh3 aXRoX3NzbCksb3BlbnNzbCkKIE9CSlMgKz0gXAorCWZlLWVuY3J5cHQtb3BlbnNzbC5vIFwK IAlmZS1zZWN1cmUtb3BlbnNzbC5vCiBlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9leHBvcnRzLnR4dCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMu dHh0CmluZGV4IGU4YmNjODgzNzAuLmZhYmFkMzhhYzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4 cG9ydHMudHh0CkBAIC0xODYsMyArMTg2LDcgQEAgUFFwaXBlbGluZVN0YXR1cyAgICAgICAg ICAxODMKIFBRc2V0VHJhY2VGbGFncyAgICAgICAgICAgMTg0CiBQUW1ibGVuQm91bmRlZCAg ICAgICAgICAgIDE4NQogUFFzZW5kRmx1c2hSZXF1ZXN0ICAgICAgICAxODYKK1BRZXhlY1By ZXBhcmVkMiAgICAgICAgICAgMTg3CitQUXNlbmRRdWVyeVByZXBhcmVkMiAgICAgIDE4OAor UFFmaXNlbmNyeXB0ZWQgICAgICAgICAgICAxODkKK1BRcGFyYW1pc2VuY3J5cHRlZCAgICAg ICAgMTkwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKaW5kZXggZGM0OTM4N2Q2Yy4u ZjNjMTVlY2U0ZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVj dC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtMzQ0LDYg KzM0NCwxMCBAQCBzdGF0aWMgY29uc3QgaW50ZXJuYWxQUWNvbm5pbmZvT3B0aW9uIFBRY29u bmluZm9PcHRpb25zW10gPSB7CiAJCSJUYXJnZXQtU2Vzc2lvbi1BdHRycyIsICIiLCAxNSwg Lyogc2l6ZW9mKCJwcmVmZXItc3RhbmRieSIpID0gMTUgKi8KIAlvZmZzZXRvZihzdHJ1Y3Qg cGdfY29ubiwgdGFyZ2V0X3Nlc3Npb25fYXR0cnMpfSwKIAorCXsiY21rbG9va3VwIiwgIlBH Q01LTE9PS1VQIiwgIiIsIE5VTEwsCisJCSJDTUstTG9va3VwIiwgIiIsIDY0LAorCW9mZnNl dG9mKHN0cnVjdCBwZ19jb25uLCBjbWtsb29rdXApfSwKKwogCS8qIFRlcm1pbmF0aW5nIGVu dHJ5IC0tLSBNVVNUIEJFIExBU1QgKi8KIAl7TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwKIAlO VUxMLCBOVUxMLCAwfQpAQCAtNDA5Nyw2ICs0MTAxLDIyIEBAIGZyZWVQR2Nvbm4oUEdjb25u ICpjb25uKQogCWZyZWUoY29ubi0+a3Jic3J2bmFtZSk7CiAJZnJlZShjb25uLT5nc3NsaWIp OwogCWZyZWUoY29ubi0+Y29ubmlwKTsKKwlmcmVlKGNvbm4tPmNta2xvb2t1cCk7CisJZm9y IChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJZnJlZShjb25uLT5j bWtzW2ldLmNta25hbWUpOworCQlmcmVlKGNvbm4tPmNta3NbaV0uY21rcmVhbG0pOworCX0K KwlmcmVlKGNvbm4tPmNta3MpOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7 IGkrKykKKwl7CisJCWlmIChjb25uLT5jZWtzW2ldLmNla2RhdGEpCisJCXsKKwkJCWV4cGxp Y2l0X2J6ZXJvKGNvbm4tPmNla3NbaV0uY2VrZGF0YSwgY29ubi0+Y2Vrc1tpXS5jZWtkYXRh bGVuKTsKKwkJCWZyZWUoY29ubi0+Y2Vrc1tpXS5jZWtkYXRhKTsKKwkJfQorCX0KKwlmcmVl KGNvbm4tPmNla3MpOwogCS8qIE5vdGUgdGhhdCBjb25uLT5QZmRlYnVnIGlzIG5vdCBvdXJz IHRvIGNsb3NlIG9yIGZyZWUgKi8KIAlmcmVlKGNvbm4tPndyaXRlX2Vycl9tc2cpOwogCWZy ZWUoY29ubi0+aW5CdWZmZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtZW5jcnlwdC1vcGVuc3NsLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0 LW9wZW5zc2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41MjRi YThhMGY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5j cnlwdC1vcGVuc3NsLmMKQEAgLTAsMCArMSw3NTggQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIGZlLWVuY3J5cHQtb3BlbnNzbC5jCisgKgkgIGVuY3J5cHRpb24gc3VwcG9y dCB1c2luZyBPcGVuU1NMCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUgImZlLWVu Y3J5cHQuaCIKKyNpbmNsdWRlICJsaWJwcS1pbnQuaCIKKworI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAicG9ydC9wZ19ic3dhcC5oIgorCisjaW5jbHVk ZSA8b3BlbnNzbC9ldnAuaD4KKworCisjaWZkZWYgVEVTVF9FTkNSWVBUCisKKy8qCisgKiBU ZXN0IGRhdGEgZnJvbQorICogPGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0 bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDUjc2VjdGlvbi01Pgor ICovCisKKy8qCisgKiBUaGUgZGlmZmVyZW50IHRlc3QgY2FzZXMganVzdCB1c2UgZGlmZmVy ZW50IHByZWZpeGVzIG9mIEssIHNvIG9uZSBjb25zdGFudAorICogaXMgZW5vdWdoIGhlcmUu CisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEtbXSA9IHsKKwkweDAwLCAweDAx LCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBh LCAweDBiLCAweDBjLCAweDBkLCAweDBlLCAweDBmLAorCTB4MTAsIDB4MTEsIDB4MTIsIDB4 MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MTgsIDB4MTksIDB4MWEsIDB4MWIsIDB4 MWMsIDB4MWQsIDB4MWUsIDB4MWYsCisJMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwg MHgyNSwgMHgyNiwgMHgyNywgMHgyOCwgMHgyOSwgMHgyYSwgMHgyYiwgMHgyYywgMHgyZCwg MHgyZSwgMHgyZiwKKwkweDMwLCAweDMxLCAweDMyLCAweDMzLCAweDM0LCAweDM1LCAweDM2 LCAweDM3LCAweDM4LCAweDM5LCAweDNhLCAweDNiLCAweDNjLCAweDNkLCAweDNlLCAweDNm LAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgUFtdID0geworCTB4NDEsIDB4 MjAsIDB4NjMsIDB4NjksIDB4NzAsIDB4NjgsIDB4NjUsIDB4NzIsIDB4MjAsIDB4NzMsIDB4 NzksIDB4NzMsIDB4NzQsIDB4NjUsIDB4NmQsIDB4MjAsCisJMHg2ZCwgMHg3NSwgMHg3Mywg MHg3NCwgMHgyMCwgMHg2ZSwgMHg2ZiwgMHg3NCwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwg MHg3MiwgMHg2NSwgMHg3MSwgMHg3NSwKKwkweDY5LCAweDcyLCAweDY1LCAweDY0LCAweDIw LCAweDc0LCAweDZmLCAweDIwLCAweDYyLCAweDY1LCAweDIwLCAweDczLCAweDY1LCAweDYz LCAweDcyLCAweDY1LAorCTB4NzQsIDB4MmMsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4 MjAsIDB4NjksIDB4NzQsIDB4MjAsIDB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4MjAsIDB4 NjIsCisJMHg2NSwgMHgyMCwgMHg2MSwgMHg2MiwgMHg2YywgMHg2NSwgMHgyMCwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg2NiwgMHg2MSwgMHg2YywgMHg2YywgMHgyMCwgMHg2OSwKKwkweDZl LCAweDc0LCAweDZmLCAweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDY4LCAweDYx LCAweDZlLCAweDY0LCAweDczLCAweDIwLCAweDZmLCAweDY2LAorCTB4MjAsIDB4NzQsIDB4 NjgsIDB4NjUsIDB4MjAsIDB4NjUsIDB4NmUsIDB4NjUsIDB4NmQsIDB4NzksIDB4MjAsIDB4 NzcsIDB4NjksIDB4NzQsIDB4NjgsIDB4NmYsCisJMHg3NSwgMHg3NCwgMHgyMCwgMHg2OSwg MHg2ZSwgMHg2MywgMHg2ZiwgMHg2ZSwgMHg3NiwgMHg2NSwgMHg2ZSwgMHg2OSwgMHg2NSwg MHg2ZSwgMHg2MywgMHg2NSwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRl c3RfSVZbXSA9IHsKKwkweDFhLCAweGYzLCAweDhjLCAweDJkLCAweGMyLCAweGI5LCAweDZm LCAweGZkLCAweGQ4LCAweDY2LCAweDk0LCAweDA5LCAweDIzLCAweDQxLCAweGJjLCAweDA0 LAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9BW10gPSB7CisJMHg1 NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg2ZiwgMHg2ZSwgMHg2 NCwgMHgyMCwgMHg3MCwgMHg3MiwgMHg2OSwgMHg2ZSwgMHg2MywKKwkweDY5LCAweDcwLCAw eDZjLCAweDY1LCAweDIwLCAweDZmLCAweDY2LCAweDIwLCAweDQxLCAweDc1LCAweDY3LCAw eDc1LCAweDczLCAweDc0LCAweDY1LCAweDIwLAorCTB4NGIsIDB4NjUsIDB4NzIsIDB4NjMs IDB4NmIsIDB4NjgsIDB4NmYsIDB4NjYsIDB4NjYsIDB4NzMsCit9OworCisKKyNkZWZpbmUg bGlicHFfZ2V0dGV4dCh4KSAoeCkKKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAq LworCisKK3Vuc2lnbmVkIGNoYXIgKgorZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAq Y29ubiwgRklMRSAqZnAsIGludCBjbWthbGcsCisJCQkJCSAgaW50IGZyb21sZW4sIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCSAgaW50ICp0b2xlbikKK3sKKwljb25zdCBF VlBfTUQgKm1kID0gTlVMTDsKKwlFVlBfUEtFWSAgICprZXkgPSBOVUxMOworCVJTQQkJICAg KnJzYSA9IE5VTEw7CisJRVZQX1BLRVlfQ1RYICpjdHggPSBOVUxMOworCXVuc2lnbmVkIGNo YXIgKm91dCA9IE5VTEw7CisJc2l6ZV90CQlvdXRsZW47CisKKwlzd2l0Y2ggKGNta2FsZykK Kwl7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE6CisJCQltZCA9IEVWUF9zaGEx KCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJ bWQgPSBFVlBfc2hhMjU2KCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWFwcGVuZFBR RXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJICBsaWJwcV9nZXR0ZXh0 KCJ1bnN1cHBvcnRlZCBDTUsgYWxnb3JpdGhtIElEOiAlZFxuIiksIGNta2FsZyk7CisJCQln b3RvIGZhaWw7CisJfQorCisJcnNhID0gUlNBX25ldygpOworCWlmICghcnNhKQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFf Z2V0dGV4dCgiY291bGQgbm90IGFsbG9jYXRlIFJTQSBzdHJ1Y3R1cmU6ICVzXG4iKSwKKwkJ CQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdv dG8gZmFpbDsKKwl9CisJcnNhID0gUEVNX3JlYWRfUlNBUHJpdmF0ZUtleShmcCwgJnJzYSwg TlVMTCwgTlVMTCk7CisJaWYgKCFyc2EpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29u bi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgcmVh ZCBSU0EgcHJpdmF0ZSBrZXk6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9z dHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlrZXkgPSBF VlBfUEtFWV9uZXcoKTsKKwlpZiAoIWtleSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBh bGxvY2F0ZSBwcml2YXRlIGtleSBzdHJ1Y3R1cmU6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3Jl YXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9 CisKKwlpZiAoIUVWUF9QS0VZX2Fzc2lnbl9SU0Eoa2V5LCByc2EpKQorCXsKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4 dCgiY291bGQgbm90IGFzc2lnbiBwcml2YXRlIGtleTogJXNcbiIpLAorCQkJCQkJICBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOwor CX0KKworCWN0eCA9IEVWUF9QS0VZX0NUWF9uZXcoa2V5LCBOVUxMKTsKKwlpZiAoIWN0eCkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxvY2F0ZSBwdWJsaWMga2V5IGFsZ29yaXRo bSBjb250ZXh0OiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVS Ul9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZX2Rl Y3J5cHRfaW5pdChjdHgpIDw9IDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRp YWxpemF0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBf UEtFWV9DVFhfc2V0X3JzYV9wYWRkaW5nKGN0eCwgUlNBX1BLQ1MxX09BRVBfUEFERElORykg PD0gMCB8fAorCQlFVlBfUEtFWV9DVFhfc2V0X3JzYV9tZ2YxX21kKGN0eCwgbWQpIDw9IDAg fHwKKwkJRVZQX1BLRVlfQ1RYX3NldF9yc2Ffb2FlcF9tZChjdHgsIG1kKSA8PSAwKQorCXsK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGli cHFfZ2V0dGV4dCgiY291bGQgbm90IHNldCBSU0EgcGFyYW1ldGVyOiAlc1xuIiksCisJCQkJ CQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3Rv IGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBOVUxMLCAmb3V0bGVu LCBmcm9tLCBmcm9tbGVuKSA8PSAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiUlNBIGRlY3J5cHRpb24g ZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9n ZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJb3V0ID0gbWFsbG9jKG91dGxl bik7CisJaWYgKCFvdXQpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JN ZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfZGVjcnlwdChjdHgsIG91dCwgJm91 dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoIlJTQSBkZWNyeXB0 aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhF UlJfZ2V0X2Vycm9yKCkpKTsKKwkJZnJlZShvdXQpOworCQlvdXQgPSBOVUxMOworCQlnb3Rv IGZhaWw7CisJfQorCisJKnRvbGVuID0gb3V0bGVuOworCitmYWlsOgorCUVWUF9QS0VZX0NU WF9mcmVlKGN0eCk7CisJRVZQX1BLRVlfZnJlZShrZXkpOworCisJcmV0dXJuIG91dDsKK30K Kworc3RhdGljIGNvbnN0IEVWUF9DSVBIRVIgKgorcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lw aGVyKGludCBjZWthbGcpCit7CisJY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCisJc3dp dGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNf U0hBXzI1NjoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTI4X2NiYygpOworCQkJYnJlYWs7CisJ CWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0OgorCQkJY2lwaGVy ID0gRVZQX2Flc18xOTJfY2JjKCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9D QkNfSE1BQ19TSEFfNTEyOgorCQkJY2lwaGVyID0gRVZQX2Flc18yNTZfY2JjKCk7CisJCQli cmVhazsKKwkJZGVmYXVsdDoKKwkJCWNpcGhlciA9IE5VTEw7CisJfQorCisJcmV0dXJuIGNp cGhlcjsKK30KKworc3RhdGljIGNvbnN0IEVWUF9NRCAqCitwZ19jZWthbGdfdG9fb3BlbnNz bF9tZChpbnQgY2VrYWxnKQoreworCWNvbnN0IEVWUF9NRCAqbWQ7CisKKwlzd2l0Y2ggKGNl a2FsZykKKwl7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2 OgorCQkJbWQgPSBFVlBfc2hhMjU2KCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVB RF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1 Nl9DQkNfSE1BQ19TSEFfMzg0OgorCQkJbWQgPSBFVlBfc2hhMzg0KCk7CisJCQlicmVhazsK KwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQltZCA9 IEVWUF9zaGE1MTIoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJbWQgPSBOVUxMOwor CX0KKworCXJldHVybiBtZDsKK30KKworc3RhdGljIGludAorbWRfa2V5X2xlbmd0aChjb25z dCBFVlBfTUQgKm1kKQoreworCWlmIChtZCA9PSBFVlBfc2hhMjU2KCkpCisJCXJldHVybiAx NjsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhMzg0KCkpCisJCXJldHVybiAyNDsKKwllbHNl IGlmIChtZCA9PSBFVlBfc2hhNTEyKCkpCisJCXJldHVybiAzMjsKKwllbHNlCisJCXJldHVy biAtMTsKK30KKworc3RhdGljIGludAorbWRfaGFzaF9sZW5ndGgoY29uc3QgRVZQX01EICpt ZCkKK3sKKwlpZiAobWQgPT0gRVZQX3NoYTI1NigpKQorCQlyZXR1cm4gMzI7CisJZWxzZSBp ZiAobWQgPT0gRVZQX3NoYTM4NCgpKQorCQlyZXR1cm4gNDg7CisJZWxzZSBpZiAobWQgPT0g RVZQX3NoYTUxMigpKQorCQlyZXR1cm4gNjQ7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisK KyNpZm5kZWYgVEVTVF9FTkNSWVBUCisjZGVmaW5lIFBHX0FEX0xFTiA0CisjZWxzZQorI2Rl ZmluZSBQR19BRF9MRU4gc2l6ZW9mKHRlc3RfQSkKKyNlbmRpZgorCitzdGF0aWMgYm9vbAor Z2V0X21lc3NhZ2VfYXV0aF90YWcoY29uc3QgRVZQX01EICptZCwKKwkJCQkJIGNvbnN0IHVu c2lnbmVkIGNoYXIgKm1hY19rZXksIGludCBtYWNfa2V5X2xlbiwKKwkJCQkJIGNvbnN0IHVu c2lnbmVkIGNoYXIgKmVuY3IsIGludCBlbmNybGVuLAorCQkJCQkgaW50IGNla2FsZywKKwkJ CQkJIHVuc2lnbmVkIGNoYXIgKm1kX3ZhbHVlLCBzaXplX3QgKm1kX2xlbl9wLAorCQkJCQkg Y29uc3QgY2hhciAqKmVycm1zZ3ApCit7CisJc3RhdGljIGNoYXIgbXNnYnVmWzEwMjRdOwor CUVWUF9NRF9DVFggKmV2cF9tZF9jdHggPSBOVUxMOworCUVWUF9QS0VZICAgKnBrZXkgPSBO VUxMOworCXNpemVfdAkJYnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOwor CWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJZXZwX21kX2N0eCA9IEVWUF9NRF9DVFhfbmV3 KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlfbmV3X3Jhd19wcml2YXRlX2tleShFVlBfUEtFWV9I TUFDLCBOVUxMLCBtYWNfa2V5LCBtYWNfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJ c25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgi Y291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiKSwKKwkJCQkgRVJSX3JlYXNv bl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVm OworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IFBHX0FEX0xFTiArIGVuY3JsZW4g KyBzaXplb2YoaW50NjQpOworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikK Kwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0IG91dCBtZW1vcnkiKTsKKwkJ Z290byBmYWlsOworCX0KKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJYnVmWzBdID0gJ1AnOwor CWJ1ZlsxXSA9ICdHJzsKKwkqKGludDE2ICopIChidWYgKyAyKSA9IHBnX2h0b24xNihjZWth bGcpOworI2Vsc2UKKwltZW1jcHkoYnVmLCB0ZXN0X0EsIHNpemVvZih0ZXN0X0EpKTsKKyNl bmRpZgorCW1lbWNweShidWYgKyBQR19BRF9MRU4sIGVuY3IsIGVuY3JsZW4pOworCSooaW50 NjQgKikgKGJ1ZiArIFBHX0FEX0xFTiArIGVuY3JsZW4pID0gcGdfaHRvbjY0KFBHX0FEX0xF TiAqIDgpOworCisJaWYgKCFFVlBfRGlnZXN0U2lnbkluaXQoZXZwX21kX2N0eCwgTlVMTCwg bWQsIE5VTEwsIHBrZXkpKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVm KSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IGluaXRpYWxpemF0aW9uIGZhaWxlZDog JXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBf RGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBidWYsIGJ1ZnNpemUpKQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGln ZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwgbWRfdmFs dWUsIG1kX2xlbl9wKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1Ziks CisJCQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMiKSwKKwkJ CQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJt c2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydCgqbWRfbGVuX3AgPT0g bWRfaGFzaF9sZW5ndGgobWQpKTsKKworCS8qIHRydW5jYXRlIG91dHB1dCB0byBoYWxmIHRo ZSBsZW5ndGgsIHBlciBzcGVjICovCisJKm1kX2xlbl9wIC89IDI7CisKKwlyZXN1bHQgPSB0 cnVlOworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX1BLRVlfZnJlZShwa2V5KTsKKwlFVlBf TURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7CisJcmV0dXJuIHJlc3VsdDsKK30KKwordW5zaWdu ZWQgY2hhciAqCitkZWNyeXB0X3ZhbHVlKFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpj ZWssIGludCBjZWthbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBpbnQgaW5wdXRs ZW4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKQoreworCXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0 XTsKKworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKml2ID0gTlVMTDsKKwlzaXplX3QJCWl2bGVu OworCisJY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJ RVZQX0NJUEhFUl9DVFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5 X2xlbjsKKwlpbnQJCQltYWNfa2V5X2xlbjsKKwlpbnQJCQlrZXlfbGVuOworCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmVuY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqbWFjX2tleTsK Kwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07CisJc2l6ZV90CQlt ZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmc2l6ZTsKKwl1bnNpZ25l ZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKmRlY3I7CisJaW50CQkJZGVj cmxlbiwKKwkJCQlkZWNybGVuMjsKKworCXVuc2lnbmVkIGNoYXIgKnJlc3VsdCA9IE5VTEw7 CisKKwljaXBoZXIgPSBwZ19jZWthbGdfdG9fb3BlbnNzbF9jaXBoZXIoY2VrYWxnKTsKKwlp ZiAoIWNpcGhlcikKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJ CQkJIGxpYnBxX2dldHRleHQoInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobSBp ZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290 byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoY2VrYWxnKTsK KwlpZiAoIW1kKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJ CQkgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGRpZ2VzdCBhbGdvcml0aG0gaWRlbnRp ZmllcjogJWQiKSwgY2VrYWxnKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlldnBfY2lwaGVyX2N0eCA9IEVWUF9DSVBIRVJfQ1RYX25ldygpOworCisJ aWYgKCFFVlBfRGVjcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIGNpcGhlciwgTlVMTCwg TlVMTCwgTlVMTCkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAor CQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDog JXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZW5jX2tleV9s ZW4gPSBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwltYWNf a2V5X2xlbiA9IG1kX2tleV9sZW5ndGgobWQpOworCWtleV9sZW4gPSBtYWNfa2V5X2xlbiAr IGVuY19rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVuKQorCXsK KwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4 dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IGhhcyB3cm9uZyBsZW5ndGggZm9yIGFsZ29yaXRo bSAoaGFzOiAlenUsIHJlcXVpcmVkOiAlZCkiKSwKKwkJCQkgY2VrLT5jZWtkYXRhbGVuLCBr ZXlfbGVuKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwll bmNfa2V5ID0gY2VrLT5jZWtkYXRhICsgbWFjX2tleV9sZW47CisJbWFjX2tleSA9IGNlay0+ Y2VrZGF0YTsKKworCWlmICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19rZXksIG1h Y19rZXlfbGVuLAorCQkJCQkJCSAgaW5wdXQsIGlucHV0bGVuIC0gKG1kX2hhc2hfbGVuZ3Ro KG1kKSAvIDIpLAorCQkJCQkJCSAgY2VrYWxnLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9s ZW4sCisJCQkJCQkJICBlcnJtc2dwKSkKKwl7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAo bWVtY21wKGlucHV0ICsgKGlucHV0bGVuIC0gbWRfbGVuKSwgbWRfdmFsdWUsIG1kX2xlbikg IT0gMCkKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiTUFDIG1pc21hdGNoIik7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0 aChldnBfY2lwaGVyX2N0eCk7CisJaXYgPSBpbnB1dDsKKwlpbnB1dCArPSBpdmxlbjsKKwlp bnB1dGxlbiAtPSBpdmxlbjsKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChldnBfY2lwaGVy X2N0eCwgTlVMTCwgTlVMTCwgZW5jX2tleSwgaXYpKQorCXsKKwkJc25wcmludGYobXNnYnVm LCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBpbml0 aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWls OworCX0KKworCWJ1ZnNpemUgPSBpbnB1dGxlbiArIEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3Np emUoZXZwX2NpcGhlcl9jdHgpICsgMTsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJYnVmID0g cHFSZXN1bHRBbGxvYyhyZXMsIGJ1ZnNpemUsIGZhbHNlKTsKKyNlbHNlCisJYnVmID0gbWFs bG9jKGJ1ZnNpemUpOworI2VuZGlmCisJaWYgKCFidWYpCisJeworCQkqZXJybXNncCA9IGxp YnBxX2dldHRleHQoIm91dCBvdXQgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisJZGVj ciA9IGJ1ZjsKKwlpZiAoIUVWUF9EZWNyeXB0VXBkYXRlKGV2cF9jaXBoZXJfY3R4LCBkZWNy LCAmZGVjcmxlbiwgaW5wdXQsIGlucHV0bGVuIC0gbWRfbGVuKSkKKwl7CisJCXNucHJpbnRm KG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRp b24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0 X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisJ aWYgKCFFVlBfRGVjcnlwdEZpbmFsX2V4KGV2cF9jaXBoZXJfY3R4LCBkZWNyICsgZGVjcmxl biwgJmRlY3JsZW4yKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1Ziks CisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBF UlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3Ag PSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisJZGVjcmxlbiArPSBkZWNybGVuMjsKKwlB c3NlcnQoZGVjcmxlbiA8IGJ1ZnNpemUpOworCWRlY3JbZGVjcmxlbl0gPSAnXDAnOworCXJl c3VsdCA9IGRlY3I7CisKK2ZhaWw6CisJRVZQX0NJUEhFUl9DVFhfZnJlZShldnBfY2lwaGVy X2N0eCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisjaWZuZGVmIFRFU1RfRU5DUllQVAor c3RhdGljIGJvb2wKK21ha2Vfc2l2KFBHY29ubiAqY29ubiwKKwkJIHVuc2lnbmVkIGNoYXIg Kml2LCBzaXplX3QgaXZsZW4sCisJCSBjb25zdCBFVlBfTUQgKm1kLAorCQkgY29uc3QgdW5z aWduZWQgY2hhciAqaXZfa2V5LCBpbnQgaXZfa2V5X2xlbiwKKwkJIGNvbnN0IHVuc2lnbmVk IGNoYXIgKnBsYWludGV4dCwgaW50IHBsYWludGV4dF9sZW4pCit7CisJRVZQX01EX0NUWCAq ZXZwX21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAqcGtleSA9IE5VTEw7CisJdW5zaWdu ZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVdOworCXNpemVfdAkJbWRfbGVuID0g c2l6ZW9mKG1kX3ZhbHVlKTsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCWV2cF9tZF9j dHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9IEVWUF9QS0VZX25ld19yYXdfcHJp dmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgaXZfa2V5LCBpdl9rZXlfbGVuKTsKKwlp ZiAoIXBrZXkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdl LAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUga2V5IGZvciBI TUFDOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnbklu aXQoZXZwX21kX2N0eCwgTlVMTCwgbWQsIE5VTEwsIHBrZXkpKQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgi ZGlnZXN0IGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVh c29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0K KworCWlmICghRVZQX0RpZ2VzdFNpZ25VcGRhdGUoZXZwX21kX2N0eCwgcGxhaW50ZXh0LCBw bGFpbnRleHRfbGVuKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1l c3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDog JXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9y KCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25GaW5hbChl dnBfbWRfY3R4LCBtZF92YWx1ZSwgJm1kX2xlbikpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qg c2lnbmluZyBmYWlsZWQ6ICVzIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydChtZF9sZW4g PT0gbWRfaGFzaF9sZW5ndGgobWQpKTsKKwltZW1jcHkoaXYsIG1kX3ZhbHVlLCBpdmxlbik7 CisKKwlyZXN1bHQgPSB0cnVlOworZmFpbDoKKwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVW UF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsKKwlyZXR1cm4gcmVzdWx0OworfQorI2VuZGlm CQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLworCit1bnNpZ25lZCBjaGFyICoKK2VuY3J5cHRf dmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLCBjb25z dCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0ZXNwLCBib29sIGVuY19kZXQpCit7 CisJaW50CQkJbmJ5dGVzID0gKm5ieXRlc3A7CisJdW5zaWduZWQgY2hhciBpdltFVlBfTUFY X0lWX0xFTkdUSF07CisJc2l6ZV90CQlpdmxlbjsKKwljb25zdCBFVlBfQ0lQSEVSICpjaXBo ZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhlcl9j dHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19rZXlfbGVuOwor CWludAkJCWtleV9sZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwljb25z dCB1bnNpZ25lZCBjaGFyICptYWNfa2V5OworCXNpemVfdAkJYnVmc2l6ZTsKKwl1bnNpZ25l ZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKmVuY3I7CisJaW50CQkJZW5j cmxlbiwKKwkJCQllbmNybGVuMjsKKworCWNvbnN0IGNoYXIgKmVycm1zZzsKKwl1bnNpZ25l ZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07CisJc2l6ZV90CQltZF9sZW4gPSBz aXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmMnNpemU7CisJdW5zaWduZWQgY2hhciAq YnVmMiA9IE5VTEw7CisKKwl1bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY2lw aGVyID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVyKGNla2FsZyk7CisJaWYgKCFjaXBo ZXIpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0g aWRlbnRpZmllcjogJWRcbiIpLCBjZWthbGcpOworCQlnb3RvIGZhaWw7CisJfQorCisJbWQg PSBwZ19jZWthbGdfdG9fb3BlbnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJeworCQlh cHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9n ZXR0ZXh0KCJ1bnJlY29nbml6ZWQgZGlnZXN0IGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZFxu IiksIGNla2FsZyk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlldnBfY2lwaGVyX2N0eCA9IEVW UF9DSVBIRVJfQ1RYX25ldygpOworCisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2Np cGhlcl9jdHgsIGNpcGhlciwgTlVMTCwgTlVMTCwgTlVMTCkpCisJeworCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJl bmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOwor CX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChldnBfY2lw aGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBtZF9rZXlfbGVuZ3RoKG1kKTsKKwlrZXlfbGVu ID0gbWFjX2tleV9sZW4gKyBlbmNfa2V5X2xlbjsKKworCWlmIChjZWstPmNla2RhdGFsZW4g IT0ga2V5X2xlbikKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIGtleSBoYXMg d3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1LCByZXF1aXJlZDogJWQpXG4i KSwKKwkJCQkJCSAgY2VrLT5jZWtkYXRhbGVuLCBrZXlfbGVuKTsKKwkJZ290byBmYWlsOwor CX0KKworCWVuY19rZXkgPSBjZWstPmNla2RhdGEgKyBtYWNfa2V5X2xlbjsKKwltYWNfa2V5 ID0gY2VrLT5jZWtkYXRhOworCisJaXZsZW4gPSBFVlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgo ZXZwX2NpcGhlcl9jdHgpOworCUFzc2VydChpdmxlbiA8PSBzaXplb2YoaXYpKTsKKwlpZiAo ZW5jX2RldCkKKwl7CisjaWZuZGVmIFRFU1RfRU5DUllQVAorCQltYWtlX3Npdihjb25uLCBp diwgaXZsZW4sIG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xlbiwgdmFsdWUsIG5ieXRlcyk7Cisj ZWxzZQorCQltZW1jcHkoaXYsIHRlc3RfSVYsIGl2bGVuKTsKKyNlbmRpZgorCX0KKwllbHNl CisJCXBnX3N0cm9uZ19yYW5kb20oaXYsIGl2bGVuKTsKKwlpZiAoIUVWUF9FbmNyeXB0SW5p dF9leChldnBfY2lwaGVyX2N0eCwgTlVMTCwgTlVMTCwgZW5jX2tleSwgaXYpKQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFf Z2V0dGV4dCgiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJ CQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdv dG8gZmFpbDsKKwl9CisKKwlidWZzaXplID0gaXZsZW4gKyAobmJ5dGVzICsgMiAqIEVWUF9D SVBIRVJfQ1RYX2Jsb2NrX3NpemUoZXZwX2NpcGhlcl9jdHgpIC0gMSk7CisJYnVmID0gbWFs bG9jKGJ1ZnNpemUpOworCWlmICghYnVmKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNv bm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9y eVxuIikpOworCQlnb3RvIGZhaWw7CisJfQorCW1lbWNweShidWYsIGl2LCBpdmxlbik7CisJ ZW5jciA9IGJ1ZiArIGl2bGVuOworCWlmICghRVZQX0VuY3J5cHRVcGRhdGUoZXZwX2NpcGhl cl9jdHgsIGVuY3IsICZlbmNybGVuLCB2YWx1ZSwgbmJ5dGVzKSkKKwl7CisJCWFwcGVuZFBR RXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQo ImVuY3J5cHRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCWlmICghRVZQ X0VuY3J5cHRGaW5hbF9leChldnBfY2lwaGVyX2N0eCwgZW5jciArIGVuY3JsZW4sICZlbmNy bGVuMikpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAor CQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJ CQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKwllbmNybGVuICs9IGVuY3JsZW4yOworCisJZW5jciAtPSBpdmxlbjsK KwllbmNybGVuICs9IGl2bGVuOworCisJQXNzZXJ0KGVuY3JsZW4gPD0gYnVmc2l6ZSk7CisK KwlpZiAoIWdldF9tZXNzYWdlX2F1dGhfdGFnKG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xlbiwK KwkJCQkJCQkgIGVuY3IsIGVuY3JsZW4sCisJCQkJCQkJICBjZWthbGcsCisJCQkJCQkJICBt ZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgICZlcnJtc2cpKQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgIiVzXG4iLCBlcnJtc2cpOworCQlnb3Rv IGZhaWw7CisJfQorCisJYnVmMnNpemUgPSBlbmNybGVuICsgbWRfbGVuOworCWJ1ZjIgPSBt YWxsb2MoYnVmMnNpemUpOworCWlmICghYnVmMikKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy KCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoIm91dCBvZiBt ZW1vcnlcbiIpKTsKKwkJZ290byBmYWlsOworCX0KKwltZW1jcHkoYnVmMiwgZW5jciwgZW5j cmxlbik7CisJbWVtY3B5KGJ1ZjIgKyBlbmNybGVuLCBtZF92YWx1ZSwgbWRfbGVuKTsKKwor CXJlc3VsdCA9IGJ1ZjI7CisJbmJ5dGVzID0gYnVmMnNpemU7CisKK2ZhaWw6CisJZnJlZShi dWYpOworCUVWUF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2NpcGhlcl9jdHgpOworCisJKm5ieXRl c3AgPSBuYnl0ZXM7CisJcmV0dXJuIHJlc3VsdDsKK30KKworCisvKgorICogUnVuIHRlc3Qg Y2FzZXMKKyAqLworI2lmZGVmIFRFU1RfRU5DUllQVAorCitzdGF0aWMgdm9pZAorZGVidWdf cHJpbnRfaGV4KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbCwg aW50IGxlbikKK3sKKwlwcmludGYoIiVzID0iLCBuYW1lKTsKKwlmb3IgKGludCBpID0gMDsg aSA8IGxlbjsgaSsrKQorCXsKKwkJaWYgKGkgJSAxNiA9PSAwKQorCQkJcHJpbnRmKCJcbiIp OworCQllbHNlCisJCQlwcmludGYoIiAiKTsKKwkJcHJpbnRmKCIlMDJ4IiwgdmFsW2ldKTsK Kwl9CisJcHJpbnRmKCJcbiIpOworfQorCitzdGF0aWMgdm9pZAordGVzdF9jYXNlKGludCBh bGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkssIHNpemVfdCBLX2xlbiwgY29uc3QgdW5zaWdu ZWQgY2hhciAqUCwgc2l6ZV90IFBfbGVuKQoreworCXVuc2lnbmVkIGNoYXIgKkM7CisJaW50 CQkJbmJ5dGVzOworCVBHQ0VLCQljZWs7CisKKwluYnl0ZXMgPSBQX2xlbjsKKwljZWsuY2Vr ZGF0YSA9IHVuY29uc3RpZnkodW5zaWduZWQgY2hhciAqLCBLKTsKKwljZWsuY2VrZGF0YWxl biA9IEtfbGVuOworCisJQyA9IGVuY3J5cHRfdmFsdWUoTlVMTCwgJmNlaywgYWxnLCBQLCAm bmJ5dGVzLCB0cnVlKTsKKwlkZWJ1Z19wcmludF9oZXgoIkMiLCBDLCBuYnl0ZXMpOworfQor CitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXByaW50ZigiNS4xXG4i KTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2LCBL LCAzMiwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuMlxuIik7CisJdGVzdF9jYXNlKFBH X0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCwgSywgNDgsIFAsIHNpemVvZihQ KSk7CisJcHJpbnRmKCI1LjNcbiIpOworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMjU2 X0NCQ19ITUFDX1NIQV8zODQsIEssIDU2LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS40 XG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEy LCBLLCA2NCwgUCwgc2l6ZW9mKFApKTsKKworCXJldHVybiAwOworfQorCisjZW5kaWYJCQkJ CQkJLyogVEVTVF9FTkNSWVBUICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1lbmNyeXB0LmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYjAwOTNkYzUyNwotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaApAQCAtMCww ICsxLDMzIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LmgK KyAqCisgKiBlbmNyeXB0aW9uIHN1cHBvcnQKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0 eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKworI2lmbmRlZiBGRV9FTkNSWVBUX0gKKyNkZWZpbmUgRkVfRU5DUllQVF9ICisKKyNp bmNsdWRlICJsaWJwcS1mZS5oIgorI2luY2x1ZGUgImxpYnBxLWludC5oIgorCitleHRlcm4g dW5zaWduZWQgY2hhciAqZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwgRklM RSAqZnAsIGludCBjbWthbGcsCisJCQkJCQkJCQkJCWludCBmcm9tbGVuLCBjb25zdCB1bnNp Z25lZCBjaGFyICpmcm9tLAorCQkJCQkJCQkJCQlpbnQgKnRvbGVuKTsKKworZXh0ZXJuIHVu c2lnbmVkIGNoYXIgKmRlY3J5cHRfdmFsdWUoUEdyZXN1bHQgKnJlcywgY29uc3QgUEdDRUsg KmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0 LCBpbnQgaW5wdXRsZW4sCisJCQkJCQkJCQljb25zdCBjaGFyICoqZXJybXNncCk7CisKK2V4 dGVybiB1bnNpZ25lZCBjaGFyICplbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29ubiwgY29uc3Qg UEdDRUsgKmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVuc2lnbmVkIGNoYXIg KnZhbHVlLCBpbnQgKm5ieXRlc3AsIGJvb2wgZW5jX2RldCk7CisKKyNlbmRpZgkJCQkJCQkv KiBGRV9FTkNSWVBUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LWV4ZWMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwppbmRleCBhMzZmNWVi MzEwLi40Y2IyY2E1YTc5IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1l eGVjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBAIC0yNCw2ICsy NCw5IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAorI2luY2x1ZGUgImNhdGFs b2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY29tbW9uL2Jhc2U2NC5oIgorI2luY2x1 ZGUgImZlLWVuY3J5cHQuaCIKICNpbmNsdWRlICJsaWJwcS1mZS5oIgogI2luY2x1ZGUgImxp YnBxLWludC5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCkBAIC03Miw3ICs3NSw5IEBA IHN0YXRpYyBpbnQJUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQkJCQljb25z dCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCiAJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxl bmd0aHMsCiAJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCi0JCQkJCQkJaW50IHJl c3VsdEZvcm1hdCk7CisJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlw dGlvbnMsCisJCQkJCQkJaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQlQR3Jlc3VsdCAqcGFy YW1EZXNjKTsKIHN0YXRpYyB2b2lkIHBhcnNlSW5wdXQoUEdjb25uICpjb25uKTsKIHN0YXRp YyBQR3Jlc3VsdCAqZ2V0Q29weVJlc3VsdChQR2Nvbm4gKmNvbm4sIEV4ZWNTdGF0dXNUeXBl IGNvcHl0eXBlKTsKIHN0YXRpYyBib29sIFBRZXhlY1N0YXJ0KFBHY29ubiAqY29ubik7CkBA IC0xMTg1LDYgKzExOTAsMzgxIEBAIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNv bm4sIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogCX0KIH0KIAoraW50 CitwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGNvbnN0 IGNoYXIgKmtleW5hbWUsCisJCQkJCSAgY29uc3QgY2hhciAqa2V5cmVhbG0pCit7CisJY2hh cgkgICAqa2V5bmFtZV9jb3B5OworCWNoYXIJICAgKmtleXJlYWxtX2NvcHk7CisJYm9vbAkJ Zm91bmQ7CisKKwlrZXluYW1lX2NvcHkgPSBzdHJkdXAoa2V5bmFtZSk7CisJaWYgKCFrZXlu YW1lX2NvcHkpCisJCXJldHVybiBFT0Y7CisJa2V5cmVhbG1fY29weSA9IHN0cmR1cChrZXly ZWFsbSk7CisJaWYgKCFrZXlyZWFsbV9jb3B5KQorCXsKKwkJZnJlZShrZXluYW1lX2NvcHkp OworCQlyZXR1cm4gRU9GOworCX0KKworCWZvdW5kID0gZmFsc2U7CisJZm9yIChpbnQgaSA9 IDA7IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJc3RydWN0IHBnX2NtayAqY2hlY2tj bWsgPSAmY29ubi0+Y21rc1tpXTsKKworCQkvKiByZXBsYWNlIGV4aXN0aW5nPyAqLworCQlp ZiAoY2hlY2tjbWstPmNta2lkID09IGtleWlkKQorCQl7CisJCQlmcmVlKGNoZWNrY21rLT5j bWtuYW1lKTsKKwkJCWZyZWUoY2hlY2tjbWstPmNta3JlYWxtKTsKKwkJCWNoZWNrY21rLT5j bWtuYW1lID0ga2V5bmFtZV9jb3B5OworCQkJY2hlY2tjbWstPmNta3JlYWxtID0ga2V5cmVh bG1fY29weTsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyog YXBwZW5kIG5ldz8gKi8KKwlpZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNta3M7CisJ CXN0cnVjdCBwZ19jbWsgKm5ld2Nta3M7CisJCXN0cnVjdCBwZ19jbWsgKm5ld2NtazsKKwor CQluZXduY21rcyA9IGNvbm4tPm5jbWtzICsgMTsKKwkJaWYgKG5ld25jbWtzIDw9IDApCisJ CQlyZXR1cm4gRU9GOworCQluZXdjbWtzID0gcmVhbGxvYyhjb25uLT5jbWtzLCBuZXduY21r cyAqIHNpemVvZihzdHJ1Y3QgcGdfY21rKSk7CisJCWlmICghbmV3Y21rcykKKwkJeworCQkJ ZnJlZShrZXluYW1lX2NvcHkpOworCQkJZnJlZShrZXlyZWFsbV9jb3B5KTsKKwkJCXJldHVy biBFT0Y7CisJCX0KKworCQluZXdjbWsgPSAmbmV3Y21rc1tuZXduY21rcyAtIDFdOworCQlu ZXdjbWstPmNta2lkID0ga2V5aWQ7CisJCW5ld2Ntay0+Y21rbmFtZSA9IGtleW5hbWVfY29w eTsKKwkJbmV3Y21rLT5jbWtyZWFsbSA9IGtleXJlYWxtX2NvcHk7CisKKwkJY29ubi0+bmNt a3MgPSBuZXduY21rczsKKwkJY29ubi0+Y21rcyA9IG5ld2Nta3M7CisJfQorCisJcmV0dXJu IDA7Cit9CisKKy8qCisgKiBSZXBsYWNlIHBsYWNlaG9sZGVycyBpbiBpbnB1dCBzdHJpbmcu ICBSZXR1cm4gdmFsdWUgbWFsbG9jJ2VkLgorICovCitzdGF0aWMgY2hhciAqCityZXBsYWNl X2Nta19wbGFjZWhvbGRlcnMoY29uc3QgY2hhciAqaW4sIGNvbnN0IGNoYXIgKmNta25hbWUs IGNvbnN0IGNoYXIgKmNta3JlYWxtLCBpbnQgY21rYWxnLCBjb25zdCBjaGFyICpiNjRkYXRh KQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7 CisKKwlmb3IgKGNvbnN0IGNoYXIgKnAgPSBpbjsgKnA7IHArKykKKwl7CisJCWlmIChwWzBd ID09ICclJykKKwkJeworCQkJc3dpdGNoIChwWzFdKQorCQkJeworCQkJCWNhc2UgJ2EnOgor CQkJCQl7CisJCQkJCQljb25zdCBjaGFyICpzOworCisJCQkJCQlzd2l0Y2ggKGNta2FsZykK KwkJCQkJCXsKKwkJCQkJCQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOgorCQkJCQkJ CQlzID0gIlJTQUVTX09BRVBfU0hBXzEiOworCQkJCQkJCQlicmVhazsKKwkJCQkJCQljYXNl IFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY6CisJCQkJCQkJCXMgPSAiUlNBRVNfT0FFUF9T SEFfMjU2IjsKKwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJZGVmYXVsdDoKKwkJCQkJCQkJcyA9 ICJJTlZBTElEIjsKKwkJCQkJCX0KKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs IHMpOworCQkJCQl9CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnYic6CisJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGI2NGRhdGEpOworCQkJCQlwKys7CisJ CQkJCWJyZWFrOworCQkJCWNhc2UgJ2snOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLCBjbWtuYW1lKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdyJzoK KwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY21rcmVhbG0pOworCQkJCQlwKys7 CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hh cigmYnVmLCBwWzBdKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZl ckNoYXIoJmJ1ZiwgcFswXSk7CisJfQorCisJcmV0dXJuIGJ1Zi5kYXRhOworfQorCisjaWZu ZGVmIFVTRV9TU0wKKy8qCisgKiBEdW1teSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9uLVNTTCBi dWlsZHMKKyAqLwordW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdj b25uICpjb25uLCBGSUxFICpmcCwgaW50IGNta2FsZywKKwkJCQkJICBpbnQgZnJvbWxlbiwg Y29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJICBpbnQgKnRvbGVuKQoreworCWFw cGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCSAgbGlicHFfZ2V0 dGV4dCgiY29sdW1uIGVuY3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkXG4i KSk7CisJcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYKKworLyoKKyAqIERlY3J5cHQgYSBDRUsg dXNpbmcgdGhlIGdpdmVuIENNSy4gIFRoZSBjaXBoZXJ0ZXh0IGlzIHBhc3NlZCBpbgorICog ImZyb20iIGFuZCAiZnJvbWxlbiIuICBSZXR1cm4gdGhlIGRlY3J5cHRlZCB2YWx1ZSBpbiBh IG1hbGxvYydlZCBhcmVhLCBpdHMKKyAqIGxlbmd0aCB2aWEgInRvbGVuIi4gIFJldHVybiBO VUxMIG9uIGVycm9yOyBhZGQgZXJyb3IgbWVzc2FnZXMgZGlyZWN0bHkgdG8KKyAqICJjb25u Ii4KKyAqLworc3RhdGljIHVuc2lnbmVkIGNoYXIgKgorZGVjcnlwdF9jZWsoUEdjb25uICpj b25uLCBjb25zdCBQR0NNSyAqY21rLCBpbnQgY21rYWxnLAorCQkJaW50IGZyb21sZW4sIGNv bnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQlpbnQgKnRvbGVuKQoreworCWNoYXIJICAg KmNta2xvb2t1cDsKKwlib29sCQlmb3VuZCA9IGZhbHNlOworCXVuc2lnbmVkIGNoYXIgKnJl c3VsdCA9IE5VTEw7CisKKwljbWtsb29rdXAgPSBzdHJkdXAoY29ubi0+Y21rbG9va3VwID8g Y29ubi0+Y21rbG9va3VwIDogIiIpOworCisJaWYgKCFjbWtsb29rdXApCisJeworCQlhcHBl bmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLCBsaWJwcV9nZXR0ZXh0KCJvdXQg b2YgbWVtb3J5XG4iKSk7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qCisJICogQW5hbHl6 ZSBzZW1pY29sb24tc2VwYXJhdGVkIGxpc3QKKwkgKi8KKwlmb3IgKGNoYXIgKnMgPSBzdHJ0 b2soY21rbG9va3VwLCAiOyIpOyBzOyBzID0gc3RydG9rKE5VTEwsICI7IikpCisJeworCQlj aGFyCSAgICpzZXA7CisKKwkJLyogc3BsaXQgZm91bmQgdG9rZW4gYXQgJz0nICovCisJCXNl cCA9IHN0cmNocihzLCAnPScpOworCQlpZiAoIXNlcCkKKwkJeworCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkgIGxpYnBxX2dldHRleHQoInN5 bnRheCBlcnJvciBpbiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24sIG1pc3NpbmcgXCIlY1wi OiAlc1xuIiksICc9Jywgcyk7CisJCQlicmVhazsKKwkJfQorCisJCS8qIG1hdGNoaW5nIHJl YWxtPyAqLworCQlpZiAoc3RybmNtcChzLCAiKiIsIHNlcCAtIHMpID09IDAgfHwgc3RybmNt cChzLCBjbWstPmNta3JlYWxtLCBzZXAgLSBzKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICpz ZXAyOworCisJCQlmb3VuZCA9IHRydWU7CisKKwkJCXNlcDIgPSBzdHJjaHIoc2VwLCAnOicp OworCQkJaWYgKCFzZXAyKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCisJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgic3ludGF4IGVycm9yIGlu IENNSyBsb29rdXAgc3BlY2lmaWNhdGlvbiwgbWlzc2luZyBcIiVjXCI6ICVzXG4iKSwgJzon LCBzKTsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CisKKwkJCWlmIChzdHJuY21wKHNlcCArIDEs ICJmaWxlIiwgc2VwMiAtIChzZXAgKyAxKSkgPT0gMCkKKwkJCXsKKwkJCQljaGFyCSAgICpj bWtmaWxlbmFtZTsKKwkJCQlGSUxFCSAgICpmcDsKKworCQkJCWNta2ZpbGVuYW1lID0gcmVw bGFjZV9jbWtfcGxhY2Vob2xkZXJzKHNlcDIgKyAxLCBjbWstPmNta25hbWUsIGNtay0+Y21r cmVhbG0sIGNta2FsZywgIklOVkFMSUQiKTsKKwkJCQlmcCA9IGZvcGVuKGNta2ZpbGVuYW1l LCAicmIiKTsKKwkJCQlpZiAoZnApCisJCQkJeworCQkJCQlyZXN1bHQgPSBkZWNyeXB0X2Nl a19mcm9tX2ZpbGUoY29ubiwgZnAsIGNta2FsZywgZnJvbWxlbiwgZnJvbSwgdG9sZW4pOwor CQkJCQlmY2xvc2UoZnApOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJICBsaWJwcV9nZXR0 ZXh0KCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJW1cbiIpLCBjbWtmaWxlbmFtZSk7 CisJCQkJCWZyZWUoY21rZmlsZW5hbWUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJ CWZyZWUoY21rZmlsZW5hbWUpOworCQkJfQorCQkJZWxzZSBpZiAoc3RybmNtcChzZXAgKyAx LCAicnVuIiwgc2VwMiAtIChzZXAgKyAxKSkgPT0gMCkKKwkJCXsKKwkJCQlpbnQJCQllbmNs ZW47CisJCQkJY2hhcgkgICAqZW5jOworCQkJCWNoYXIJICAgKmNvbW1hbmQ7CisJCQkJRklM RQkgICAqZnA7CisJCQkJY2hhcgkJYnVmWzQwOTZdOworCisJCQkJZW5jbGVuID0gcGdfYjY0 X2VuY19sZW4oZnJvbWxlbik7CisJCQkJZW5jID0gbWFsbG9jKGVuY2xlbiArIDEpOworCQkJ CWlmICghZW5jKQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9y TWVzc2FnZSwgbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQkJCQlnb3Rv IGZhaWw7CisJCQkJfQorCQkJCWVuY2xlbiA9IHBnX2I2NF9lbmNvZGUoKGNvbnN0IGNoYXIg KikgZnJvbSwgZnJvbWxlbiwgZW5jLCBlbmNsZW4pOworCQkJCWlmIChlbmNsZW4gPCAwKQor CQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgbGli cHFfZ2V0dGV4dCgiYmFzZTY0IGVuY29kaW5nIGZhaWxlZFxuIikpOworCQkJCQlmcmVlKGVu Yyk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJY29tbWFuZCA9IHJlcGxhY2VfY21r X3BsYWNlaG9sZGVycyhzZXAyICsgMSwgY21rLT5jbWtuYW1lLCBjbWstPmNta3JlYWxtLCBj bWthbGcsIGVuYyk7CisJCQkJZnJlZShlbmMpOworCQkJCWZwID0gcG9wZW4oY29tbWFuZCwg InIiKTsKKwkJCQlmcmVlKGNvbW1hbmQpOworCQkJCWlmICghZnApCisJCQkJeworCQkJCQlh cHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJICBsaWJw cV9nZXR0ZXh0KCJjb3VsZCBub3QgcnVuIGNvbW1hbmQgXCIlc1wiOiAlbVxuIiksIGNvbW1h bmQpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWlmIChmZ2V0cyhidWYsIHNpemVv ZihidWYpLCBmcCkpCisJCQkJeworCQkJCQlpbnQJCQlsaW5lbGVuOworCQkJCQlpbnQJCQlk ZWNsZW47CisJCQkJCWNoYXIJICAgKmRlYzsKKworCQkJCQlsaW5lbGVuID0gc3RybGVuKGJ1 Zik7CisJCQkJCWlmIChidWZbbGluZWxlbiAtIDFdID09ICdcbicpCisJCQkJCXsKKwkJCQkJ CWJ1ZltsaW5lbGVuIC0gMV0gPSAnXDAnOworCQkJCQkJbGluZWxlbi0tOworCQkJCQl9CisJ CQkJCWRlY2xlbiA9IHBnX2I2NF9kZWNfbGVuKGxpbmVsZW4pOworCQkJCQlkZWMgPSBtYWxs b2MoZGVjbGVuKTsKKwkJCQkJaWYgKCFkZWMpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFBRRXhw QnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1v cnlcbiIpKTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJCQkJfQorCQkJCQlkZWNsZW4gPSBwZ19i NjRfZGVjb2RlKGJ1ZiwgbGluZWxlbiwgZGVjLCBkZWNsZW4pOworCQkJCQlpZiAoZGVjbGVu IDwgMCkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVz c2FnZSwKKwkJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImJhc2U2NCBkZWNvZGluZyBmYWls ZWRcbiIpKTsKKwkJCQkJCWZyZWUoZGVjKTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJCQkJfQor CQkJCQlyZXN1bHQgPSAodW5zaWduZWQgY2hhciAqKSBkZWM7CisJCQkJCSp0b2xlbiA9IGRl Y2xlbjsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQg bm90IHJlYWQgZnJvbSBjb21tYW5kOiAlbVxuIikpOworCQkJCQlwY2xvc2UoZnApOworCQkJ CQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCXBjbG9zZShmcCk7CisJCQl9CisJCQllbHNlCisJ CQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJDTUsgbG9va3VwIHNjaGVtZSBcIiVzXCIgbm90IHJlY29n bml6ZWRcbiIpLCBzZXAgKyAxKTsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CisJCX0KKwl9CisK KwlpZiAoIWZvdW5kKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVz c2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgibm8gQ01LIGxvb2t1cCBmb3VuZCBmb3Ig cmVhbG0gXCIlc1wiXG4iKSwgY21rLT5jbWtyZWFsbSk7CisJfQorCitmYWlsOgorCWZyZWUo Y21rbG9va3VwKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCitpbnQKK3BxU2F2ZUNvbHVtbkVu Y3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50IGNt a2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4pCit7CisJUEdDTUsJ ICAgKmNtayA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqcGxhaW52YWwgPSBOVUxMOworCWlu dAkJCXBsYWludmFsbGVuID0gMDsKKwlib29sCQlmb3VuZDsKKworCWZvciAoaW50IGkgPSAw OyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWlmIChjb25uLT5jbWtzW2ldLmNta2lk ID09IGNta2lkKQorCQl7CisJCQljbWsgPSAmY29ubi0+Y21rc1tpXTsKKwkJCWJyZWFrOwor CQl9CisJfQorCisJaWYgKCFjbWspCisJCXJldHVybiBFT0Y7CisKKwlwbGFpbnZhbCA9IGRl Y3J5cHRfY2VrKGNvbm4sIGNtaywgY21rYWxnLCBsZW4sIHZhbHVlLCAmcGxhaW52YWxsZW4p OworCWlmICghcGxhaW52YWwpCisJCXJldHVybiBFT0Y7CisKKwlmb3VuZCA9IGZhbHNlOwor CWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJCXN0cnVjdCBw Z19jZWsgKmNoZWNrY2VrID0gJmNvbm4tPmNla3NbaV07CisKKwkJLyogcmVwbGFjZSBleGlz dGluZz8gKi8KKwkJaWYgKGNoZWNrY2VrLT5jZWtpZCA9PSBrZXlpZCkKKwkJeworCQkJZnJl ZShjaGVja2Nlay0+Y2VrZGF0YSk7CisJCQljaGVja2Nlay0+Y2VrZGF0YSA9IHBsYWludmFs OworCQkJY2hlY2tjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsKKwkJCWZvdW5kID0g dHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlpZiAo IWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2Nl a3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2NlazsKKworCQluZXduY2VrcyA9IGNvbm4tPm5j ZWtzICsgMTsKKwkJaWYgKG5ld25jZWtzIDw9IDApCisJCXsKKwkJCWZyZWUocGxhaW52YWwp OworCQkJcmV0dXJuIEVPRjsKKwkJfQorCQluZXdjZWtzID0gcmVhbGxvYyhjb25uLT5jZWtz LCBuZXduY2VrcyAqIHNpemVvZihzdHJ1Y3QgcGdfY2VrKSk7CisJCWlmICghbmV3Y2VrcykK KwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJbmV3 Y2VrID0gJm5ld2Nla3NbbmV3bmNla3MgLSAxXTsKKwkJbmV3Y2VrLT5jZWtpZCA9IGtleWlk OworCQluZXdjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJbmV3Y2VrLT5jZWtkYXRhbGVu ID0gcGxhaW52YWxsZW47CisKKwkJY29ubi0+bmNla3MgPSBuZXduY2VrczsKKwkJY29ubi0+ Y2VrcyA9IG5ld2Nla3M7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBwcVJvd1By b2Nlc3NvcgpAQCAtMTI1MCw5ICsxNjMwLDU4IEBAIHBxUm93UHJvY2Vzc29yKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCX0KIAkJZWxzZQogCQl7Ci0JCQlib29s CQlpc2JpbmFyeSA9IChyZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKKwkJCWJvb2wJ CWlzYmluYXJ5ID0gKChyZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAmIDB4MEYpICE9IDApOwog CQkJY2hhcgkgICAqdmFsOwogCisJCQlpZiAocmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJ CXsKKyNpZmRlZiBVU0VfU1NMCisJCQkJUEdDRUsJICAgKmNlayA9IE5VTEw7CisKKwkJCQlm b3IgKGludCBqID0gMDsgaiA8IGNvbm4tPm5jZWtzOyBqKyspCisJCQkJeworCQkJCQlpZiAo Y29ubi0+Y2Vrc1tqXS5jZWtpZCA9PSByZXMtPmF0dERlc2NzW2ldLmNla2lkKQorCQkJCQl7 CisJCQkJCQljZWsgPSAmY29ubi0+Y2Vrc1tqXTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJ CQkJfQorCQkJCWlmICghY2VrKQorCQkJCXsKKwkJCQkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0 ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbm90IGZvdW5kIik7CisJCQkJCWdvdG8gZmFp bDsKKwkJCQl9CisKKwkJCQlpZiAoaXNiaW5hcnkpCisJCQkJeworCQkJCQl2YWwgPSAoY2hh ciAqKSBkZWNyeXB0X3ZhbHVlKHJlcywgY2VrLCByZXMtPmF0dERlc2NzW2ldLmNla2FsZywK KwkJCQkJCQkJCQkJCSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBjb2x1bW5zW2ldLnZhbHVl LCBjbGVuLCBlcnJtc2dwKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJdW5zaWdu ZWQgY2hhciAqYnVmOworCQkJCQl1bnNpZ25lZCBjaGFyICplbmNjb2x2YWw7CisJCQkJCXNp emVfdAkJZW5jY29sdmFsbGVuOworCisJCQkJCWJ1ZiA9IG1hbGxvYyhjbGVuICsgMSk7CisJ CQkJCW1lbWNweShidWYsIGNvbHVtbnNbaV0udmFsdWUsIGNsZW4pOworCQkJCQlidWZbY2xl bl0gPSAnXDAnOworCQkJCQllbmNjb2x2YWwgPSBQUXVuZXNjYXBlQnl0ZWEoYnVmLCAmZW5j Y29sdmFsbGVuKTsKKwkJCQkJdmFsID0gKGNoYXIgKikgZGVjcnlwdF92YWx1ZShyZXMsIGNl aywgcmVzLT5hdHREZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCQkgZW5jY29sdmFsLCBl bmNjb2x2YWxsZW4sIGVycm1zZ3ApOworCQkJCQlmcmVlKGVuY2NvbHZhbCk7CisJCQkJCWZy ZWUoYnVmKTsKKwkJCQl9CisKKwkJCQlpZiAodmFsID09IE5VTEwpCisJCQkJCWdvdG8gZmFp bDsKKyNlbHNlCisJCQkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlw dGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwkJCQlnb3RvIGZhaWw7Cisj ZW5kaWYKKwkJCX0KKwkJCWVsc2UKKwkJCXsKIAkJCXZhbCA9IChjaGFyICopIHBxUmVzdWx0 QWxsb2MocmVzLCBjbGVuICsgMSwgaXNiaW5hcnkpOwogCQkJaWYgKHZhbCA9PSBOVUxMKQog CQkJCWdvdG8gZmFpbDsKQEAgLTEyNjAsNiArMTY4OSw3IEBAIHBxUm93UHJvY2Vzc29yKFBH Y29ubiAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQkvKiBjb3B5IGFuZCB6ZXJv LXRlcm1pbmF0ZSB0aGUgZGF0YSAoZXZlbiBpZiBpdCdzIGJpbmFyeSkgKi8KIAkJCW1lbWNw eSh2YWwsIGNvbHVtbnNbaV0udmFsdWUsIGNsZW4pOwogCQkJdmFsW2NsZW5dID0gJ1wwJzsK KwkJCX0KIAogCQkJdHVwW2ldLmxlbiA9IGNsZW47CiAJCQl0dXBbaV0udmFsdWUgPSB2YWw7 CkBAIC0xNTg3LDcgKzIwMTcsOSBAQCBQUXNlbmRRdWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4s CiAJCQkJCQkgICBwYXJhbVZhbHVlcywKIAkJCQkJCSAgIHBhcmFtTGVuZ3RocywKIAkJCQkJ CSAgIHBhcmFtRm9ybWF0cywKLQkJCQkJCSAgIHJlc3VsdEZvcm1hdCk7CisJCQkJCQkgICBO VUxMLAorCQkJCQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgTlVMTCk7CiB9CiAKIC8q CkBAIC0xNzA1LDYgKzIxMzcsMjAgQEAgUFFzZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNv bm4sCiAJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQljb25zdCBpbnQgKnBh cmFtRm9ybWF0cywKIAkJCQkJaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFzZW5k UXVlcnlQcmVwYXJlZDIoY29ubiwgc3RtdE5hbWUsIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBw YXJhbUxlbmd0aHMsIHBhcmFtRm9ybWF0cywgTlVMTCwgcmVzdWx0Rm9ybWF0LCBOVUxMKTsK K30KKworaW50CitQUXNlbmRRdWVyeVByZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJCSBj b25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkgY29uc3Qg Y2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0 aHMsCisJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJIGNvbnN0IGludCAq cGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwK KwkJCQkJIFBHcmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaWYgKCFQUXNlbmRRdWVyeVN0YXJ0 KGNvbm4sIHRydWUpKQogCQlyZXR1cm4gMDsKQEAgLTE3MzIsNyArMjE3OCw5IEBAIFBRc2Vu ZFF1ZXJ5UHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMsCiAJ CQkJCQkgICBwYXJhbUxlbmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJCQkg ICByZXN1bHRGb3JtYXQpOworCQkJCQkJICAgcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25z LAorCQkJCQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgcGFyYW1EZXNjKTsKIH0KIAog LyoKQEAgLTE4MzMsNyArMjI4MSw5IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4s CiAJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAogCQkJCWNvbnN0IGludCAq cGFyYW1MZW5ndGhzLAogCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAotCQkJCWludCBy ZXN1bHRGb3JtYXQpCisJCQkJY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlv bnMsCisJCQkJaW50IHJlc3VsdEZvcm1hdCwKKwkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKQog ewogCWludAkJCWk7CiAJUEdjbWRRdWV1ZUVudHJ5ICplbnRyeTsKQEAgLTE4ODAsMTQgKzIz MzAsNTMgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJcHFQdXRzKHN0bXRO YW1lLCBjb25uKSA8IDApCiAJCWdvdG8gc2VuZEZhaWxlZDsKIAorCS8qIENoZWNrIGZvcmNl IGNvbHVtbiBlbmNyeXB0aW9uICovCisJaWYgKG5QYXJhbXMgPiAwICYmIHBhcmFtRm9yY2VD b2x1bW5FbmNyeXB0aW9ucykKKwl7CisJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1zOyBpKysp CisJCXsKKwkJCWlmIChwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnNbaV0pCisJCQl7CisJ CQkJaWYgKCEocGFyYW1EZXNjICYmCisJCQkJCSAgcGFyYW1EZXNjLT5wYXJhbURlc2NzICYm CisJCQkJCSAgcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2lkKSkKKwkJCQl7CisJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkJ IGxpYnBxX2dldHRleHQoInBhcmFtZXRlciB3aXRoIGZvcmNlZCBlbmNyeXB0aW9uIGlzIG5v dCB0byBiZSBlbmNyeXB0ZWRcbiIpKTsKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCX0K KwkJCX0KKwkJfQorCX0KKwogCS8qIFNlbmQgcGFyYW1ldGVyIGZvcm1hdHMgKi8KLQlpZiAo blBhcmFtcyA+IDAgJiYgcGFyYW1Gb3JtYXRzKQorCWlmIChuUGFyYW1zID4gMCAmJiAocGFy YW1Gb3JtYXRzIHx8IChwYXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzKSkpCiAJ ewogCQlpZiAocHFQdXRJbnQoblBhcmFtcywgMiwgY29ubikgPCAwKQogCQkJZ290byBzZW5k RmFpbGVkOworCiAJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1zOyBpKyspCiAJCXsKLQkJCWlm IChwcVB1dEludChwYXJhbUZvcm1hdHNbaV0sIDIsIGNvbm4pIDwgMCkKKwkJCWludAkJCWZv cm1hdCA9IHBhcmFtRm9ybWF0cyA/IHBhcmFtRm9ybWF0c1tpXSA6IDA7CisKKwkJCWlmIChw YXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzKQorCQkJeworCQkJCVBHcmVzUGFy YW1EZXNjICpwZCA9ICZwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV07CisKKwkJCQlpZiAocGQt PmNla2lkKQorCQkJCXsKKwkJCQkJaWYgKGZvcm1hdCAhPSAwKQorCQkJCQl7CisJCQkJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJCQkg bGlicHFfZ2V0dGV4dCgiZm9ybWF0IG11c3QgYmUgdGV4dCBmb3IgZW5jcnlwdGVkIHBhcmFt ZXRlclxuIikpOworCQkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCQl9CisJCQkJCWZvcm1h dCA9IDE7CisJCQkJCWZvcm1hdCB8PSAweDEwOworCQkJCX0KKwkJCX0KKworCQkJaWYgKHBx UHV0SW50KGZvcm1hdCwgMiwgY29ubikgPCAwKQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKIAkJ fQogCX0KQEAgLTE5MDYsNiArMjM5NSw3IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNv bm4sCiAJCWlmIChwYXJhbVZhbHVlcyAmJiBwYXJhbVZhbHVlc1tpXSkKIAkJewogCQkJaW50 CQkJbmJ5dGVzOworCQkJY29uc3QgY2hhciAqcGFyYW1WYWx1ZTsKIAogCQkJaWYgKHBhcmFt Rm9ybWF0cyAmJiBwYXJhbUZvcm1hdHNbaV0gIT0gMCkKIAkJCXsKQEAgLTE5MjQsOSArMjQx NCw1NCBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCS8qIHRleHQgcGFy YW1ldGVyLCBkbyBub3QgdXNlIHBhcmFtTGVuZ3RocyAqLwogCQkJCW5ieXRlcyA9IHN0cmxl bihwYXJhbVZhbHVlc1tpXSk7CiAJCQl9CisKKwkJCXBhcmFtVmFsdWUgPSBwYXJhbVZhbHVl c1tpXTsKKworCQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MgJiYg cGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2lkKQorCQkJeworI2lmZGVmIFVTRV9TU0wK KwkJCQlib29sCQllbmNfZGV0ID0gKHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5mbGFncyAm IDB4MDEpICE9IDA7CisJCQkJUEdDRUsJICAgKmNlayA9IE5VTEw7CisJCQkJY2hhcgkgICAq ZW5jX3BhcmFtVmFsdWU7CisJCQkJaW50CQkJZW5jX25ieXRlcyA9IG5ieXRlczsKKworCQkJ CWZvciAoaW50IGogPSAwOyBqIDwgY29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlm IChjb25uLT5jZWtzW2pdLmNla2lkID09IHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWtp ZCkKKwkJCQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQlicmVhazsK KwkJCQkJfQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhw QnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQo ImNvbHVtbiBlbmNyeXB0aW9uIGtleSBub3QgZm91bmRcbiIpKTsKKwkJCQkJZ290byBzZW5k RmFpbGVkOworCQkJCX0KKworCQkJCWVuY19wYXJhbVZhbHVlID0gKGNoYXIgKikgZW5jcnlw dF92YWx1ZShjb25uLCBjZWssIHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWthbGcsCisJ CQkJCQkJCQkJCQkJCShjb25zdCB1bnNpZ25lZCBjaGFyICopIHBhcmFtVmFsdWUsICZlbmNf bmJ5dGVzLCBlbmNfZGV0KTsKKwkJCQlpZiAoIWVuY19wYXJhbVZhbHVlKQorCQkJCQlnb3Rv IHNlbmRGYWlsZWQ7CisKKwkJCQlpZiAocHFQdXRJbnQoZW5jX25ieXRlcywgNCwgY29ubikg PCAwIHx8CisJCQkJCXBxUHV0bmNoYXIoZW5jX3BhcmFtVmFsdWUsIGVuY19uYnl0ZXMsIGNv bm4pIDwgMCkKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCisJCQkJZnJlZShlbmNfcGFyYW1W YWx1ZSk7CisjZWxzZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCisJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24gbm90IHN1 cHBvcnRlZCBieSB0aGlzIGJ1aWxkXG4iKSk7CisJCQkJZ290byBzZW5kRmFpbGVkOworI2Vu ZGlmCisJCQl9CisJCQllbHNlCisJCQl7CiAJCQlpZiAocHFQdXRJbnQobmJ5dGVzLCA0LCBj b25uKSA8IDAgfHwKLQkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWVzW2ldLCBuYnl0ZXMsIGNv bm4pIDwgMCkKKwkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWUsIG5ieXRlcywgY29ubikgPCAw KQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCX0KIAkJfQogCQllbHNlCiAJCXsKQEAgLTIz ODAsMTIgKzI5MTUsMjcgQEAgUFFleGVjUHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJICAg Y29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0 cywKIAkJCSAgIGludCByZXN1bHRGb3JtYXQpCit7CisJcmV0dXJuIFBRZXhlY1ByZXBhcmVk Mihjb25uLCBzdG10TmFtZSwgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3Rocywg cGFyYW1Gb3JtYXRzLCBOVUxMLCByZXN1bHRGb3JtYXQsIE5VTEwpOworfQorCitQR3Jlc3Vs dCAqCitQUWV4ZWNQcmVwYXJlZDIoUEdjb25uICpjb25uLAorCQkJCWNvbnN0IGNoYXIgKnN0 bXROYW1lLAorCQkJCWludCBuUGFyYW1zLAorCQkJCWNvbnN0IGNoYXIgKmNvbnN0ICpwYXJh bVZhbHVlcywKKwkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQljb25zdCBpbnQg KnBhcmFtRm9ybWF0cywKKwkJCQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0 aW9ucywKKwkJCQlpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCVBHcmVzdWx0ICpwYXJhbURlc2Mp CiB7CiAJaWYgKCFQUWV4ZWNTdGFydChjb25uKSkKIAkJcmV0dXJuIE5VTEw7Ci0JaWYgKCFQ UXNlbmRRdWVyeVByZXBhcmVkKGNvbm4sIHN0bXROYW1lLAotCQkJCQkJCSBuUGFyYW1zLCBw YXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLAotCQkJCQkJCSBwYXJhbUZvcm1hdHMsIHJlc3Vs dEZvcm1hdCkpCisJaWYgKCFQUXNlbmRRdWVyeVByZXBhcmVkMihjb25uLCBzdG10TmFtZSwK KwkJCQkJCQkgIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCisJCQkJCQkJ ICBwYXJhbUZvcm1hdHMsIHBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJCQkJCQkg IHJlc3VsdEZvcm1hdCwgcGFyYW1EZXNjKSkKIAkJcmV0dXJuIE5VTEw7CiAJcmV0dXJuIFBR ZXhlY0ZpbmlzaChjb25uKTsKIH0KQEAgLTM2ODMsNiArNDIzMywxNyBAQCBQUWZtb2QoY29u c3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkKIAkJcmV0dXJuIDA7CiB9CiAKK2lu dAorUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkK K3sKKwlpZiAoIWNoZWNrX2ZpZWxkX251bWJlcihyZXMsIGZpZWxkX251bSkpCisJCXJldHVy biBmYWxzZTsKKwlpZiAocmVzLT5hdHREZXNjcykKKwkJcmV0dXJuIChyZXMtPmF0dERlc2Nz W2ZpZWxkX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisK IGNoYXIgKgogUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcykKIHsKQEAgLTM4NjgsNiArNDQy OSwxNyBAQCBQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVt KQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAoraW50CitQUXBhcmFtaXNlbmNyeXB0ZWQo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKK3sKKwlpZiAoIWNoZWNrX3Bh cmFtX251bWJlcihyZXMsIHBhcmFtX251bSkpCisJCXJldHVybiBmYWxzZTsKKwlpZiAocmVz LT5wYXJhbURlc2NzKQorCQlyZXR1cm4gKHJlcy0+cGFyYW1EZXNjc1twYXJhbV9udW1dLmNl a2lkICE9IDApOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAKIC8qIFBRc2V0bm9u YmxvY2tpbmc6CiAgKglzZXRzIHRoZSBQR2Nvbm4ncyBkYXRhYmFzZSBjb25uZWN0aW9uIG5v bi1ibG9ja2luZyBpZiB0aGUgYXJnIGlzIHRydWUKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJv dG9jb2wzLmMKaW5kZXggZjI2N2RmZDMzYy4uMTllYzU3Mjc2NCAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtcHJvdG9jb2wzLmMKQEAgLTQ1LDYgKzQ1LDggQEAgc3RhdGljIGludAlnZXRS b3dEZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBp bnQJZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsK IHN0YXRpYyBpbnQJZ2V0QW5vdGhlclR1cGxlKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0 aCk7CiBzdGF0aWMgaW50CWdldFBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4pOworc3Rh dGljIGludAlnZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKTsKK3N0YXRpYyBpbnQJ Z2V0Q29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRO b3RpZnkoUEdjb25uICpjb25uKTsKIHN0YXRpYyBpbnQJZ2V0Q29weVN0YXJ0KFBHY29ubiAq Y29ubiwgRXhlY1N0YXR1c1R5cGUgY29weXR5cGUpOwogc3RhdGljIGludAlnZXRSZWFkeUZv clF1ZXJ5KFBHY29ubiAqY29ubik7CkBAIC0zMTksNiArMzIxLDIyIEBAIHBxUGFyc2VJbnB1 dDMoUEdjb25uICpjb25uKQogCQkJCQlpZiAocHFHZXRJbnQoJihjb25uLT5iZV9rZXkpLCA0 LCBjb25uKSkKIAkJCQkJCXJldHVybjsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSAneSc6CQkv KiBDb2x1bW4gTWFzdGVyIEtleSAqLworCQkJCQlpZiAoZ2V0Q29sdW1uTWFzdGVyS2V5KGNv bm4pKQorCQkJCQl7CisJCQkJCQkvLyBUT0RPOiByZXZpZXcgZXJyb3IgaGFuZGxpbmcgaGVy ZQorCQkJCQkJcHFTYXZlRXJyb3JSZXN1bHQoY29ubik7CisJCQkJCQlwcUludGVybmFsTm90 aWNlKCZjb25uLT5ub3RpY2VIb29rcywgIiVzIiwgY29ubi0+ZXJyb3JNZXNzYWdlLmRhdGEp OworCQkJCQl9CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1knOgkJLyogQ29sdW1uIEVuY3J5 cHRpb24gS2V5ICovCisJCQkJCWlmIChnZXRDb2x1bW5FbmNyeXB0aW9uS2V5KGNvbm4pKQor CQkJCQl7CisJCQkJCQkvLyBUT0RPOiByZXZpZXcgZXJyb3IgaGFuZGxpbmcgaGVyZQorCQkJ CQkJcHFTYXZlRXJyb3JSZXN1bHQoY29ubik7CisJCQkJCQlwcUludGVybmFsTm90aWNlKCZj b25uLT5ub3RpY2VIb29rcywgIiVzIiwgY29ubi0+ZXJyb3JNZXNzYWdlLmRhdGEpOworCQkJ CQl9CisJCQkJCWJyZWFrOwogCQkJCWNhc2UgJ1QnOgkJLyogUm93IERlc2NyaXB0aW9uICov CiAJCQkJCWlmIChjb25uLT5lcnJvcl9yZXN1bHQgfHwKIAkJCQkJCShjb25uLT5yZXN1bHQg IT0gTlVMTCAmJgpAQCAtNTc2LDYgKzU5NCw4IEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nv bm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCWludAkJCXR5cGxlbjsKIAkJaW50CQkJYXR0 dHlwbW9kOwogCQlpbnQJCQlmb3JtYXQ7CisJCWludAkJCWNla2lkOworCQlpbnQJCQljZWth bGc7CiAKIAkJaWYgKHBxR2V0cygmY29ubi0+d29ya0J1ZmZlciwgY29ubikgfHwKIAkJCXBx R2V0SW50KCZ0YWJsZWlkLCA0LCBjb25uKSB8fApAQCAtNTgzLDcgKzYwMyw5IEBAIGdldFJv d0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCQlwcUdldElu dCgmdHlwaWQsIDQsIGNvbm4pIHx8CiAJCQlwcUdldEludCgmdHlwbGVuLCAyLCBjb25uKSB8 fAogCQkJcHFHZXRJbnQoJmF0dHR5cG1vZCwgNCwgY29ubikgfHwKLQkJCXBxR2V0SW50KCZm b3JtYXQsIDIsIGNvbm4pKQorCQkJcHFHZXRJbnQoJmZvcm1hdCwgMiwgY29ubikgfHwKKwkJ CXBxR2V0SW50KCZjZWtpZCwgNCwgY29ubikgfHwKKwkJCXBxR2V0SW50KCZjZWthbGcsIDIs IGNvbm4pKQogCQl7CiAJCQkvKiBXZSBzaG91bGQgbm90IHJ1biBvdXQgb2YgZGF0YSBoZXJl LCBzbyBjb21wbGFpbiAqLwogCQkJZXJybXNnID0gbGlicHFfZ2V0dGV4dCgiaW5zdWZmaWNp ZW50IGRhdGEgaW4gXCJUXCIgbWVzc2FnZSIpOwpAQCAtNjExLDggKzYzMywxMCBAQCBnZXRS b3dEZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKQogCQlyZXN1bHQt PmF0dERlc2NzW2ldLnR5cGlkID0gdHlwaWQ7CiAJCXJlc3VsdC0+YXR0RGVzY3NbaV0udHlw bGVuID0gdHlwbGVuOwogCQlyZXN1bHQtPmF0dERlc2NzW2ldLmF0dHR5cG1vZCA9IGF0dHR5 cG1vZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWtpZCA9IGNla2lkOworCQlyZXN1bHQt PmF0dERlc2NzW2ldLmNla2FsZyA9IGNla2FsZzsKIAotCQlpZiAoZm9ybWF0ICE9IDEpCisJ CWlmICgoZm9ybWF0ICYgMHgwRikgIT0gMSkKIAkJCXJlc3VsdC0+YmluYXJ5ID0gMDsKIAl9 CiAKQEAgLTcxNCwxMCArNzM4LDIyIEBAIGdldFBhcmFtRGVzY3JpcHRpb25zKFBHY29ubiAq Y29ubiwgaW50IG1zZ0xlbmd0aCkKIAlmb3IgKGkgPSAwOyBpIDwgbnBhcmFtczsgaSsrKQog CXsKIAkJaW50CQkJdHlwaWQ7CisJCWludAkJCWNla2lkOworCQlpbnQJCQljZWthbGc7CisJ CWludAkJCWZsYWdzOwogCiAJCWlmIChwcUdldEludCgmdHlwaWQsIDQsIGNvbm4pKQogCQkJ Z290byBub3RfZW5vdWdoX2RhdGE7CiAJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS50eXBpZCA9 IHR5cGlkOworCQlpZiAocHFHZXRJbnQoJmNla2lkLCA0LCBjb25uKSkKKwkJCWdvdG8gbm90 X2Vub3VnaF9kYXRhOworCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0uY2VraWQgPSBjZWtpZDsK KwkJaWYgKHBxR2V0SW50KCZjZWthbGcsIDIsIGNvbm4pKQorCQkJZ290byBub3RfZW5vdWdo X2RhdGE7CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7CisJCWlm IChwcUdldEludCgmZmxhZ3MsIDIsIGNvbm4pKQorCQkJZ290byBub3RfZW5vdWdoX2RhdGE7 CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5mbGFncyA9IGZsYWdzOwogCX0KIAogCS8qIFN1 Y2Nlc3MhICovCkBAIC0xNDQzLDYgKzE0NzksODkgQEAgZ2V0UGFyYW1ldGVyU3RhdHVzKFBH Y29ubiAqY29ubikKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIEF0dGVtcHQgdG8gcmVhZCBh IENvbHVtbk1hc3RlcktleSBtZXNzYWdlLgorICogRW50cnk6ICd5JyBtZXNzYWdlIHR5cGUg YW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVlbiBjb25zdW1lZC4KKyAqIEV4aXQ6IHJldHVy bnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3VtZWQgbWVzc2FnZS4KKyAqCQkgcmV0dXJucyBF T0YgaWYgbm90IGVub3VnaCBkYXRhLgorICovCitzdGF0aWMgaW50CitnZXRDb2x1bW5NYXN0 ZXJLZXkoUEdjb25uICpjb25uKQoreworCWludAkJCWtleWlkOworCWNoYXIJICAgKmtleW5h bWU7CisJY2hhcgkgICAqa2V5cmVhbG07CisJaW50CQkJcmV0OworCisJLyogR2V0IHRoZSBr ZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1 cm4gRU9GOworCS8qIEdldCB0aGUga2V5IG5hbWUgKi8KKwlpZiAocHFHZXRzKCZjb25uLT53 b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCWtleW5hbWUgPSBzdHJk dXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleW5hbWUpCisJCXJldHVybiBF T0Y7CisJLyogR2V0IHRoZSBrZXkgcmVhbG0gKi8KKwlpZiAocHFHZXRzKCZjb25uLT53b3Jr QnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtID0gc3RyZHVw KGNvbm4tPndvcmtCdWZmZXIuZGF0YSk7CisJaWYgKCFrZXlyZWFsbSkKKwkJcmV0dXJuIEVP RjsKKwkvKiBBbmQgc2F2ZSBpdCAqLworCXJldCA9IHBxU2F2ZUNvbHVtbk1hc3RlcktleShj b25uLCBrZXlpZCwga2V5bmFtZSwga2V5cmVhbG0pOworCisJZnJlZShrZXluYW1lKTsKKwlm cmVlKGtleXJlYWxtKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBBdHRlbXB0IHRv IHJlYWQgYSBDb2x1bW5FbmNyeXB0aW9uS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ1knIG1l c3NhZ2UgdHlwZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICog RXhpdDogcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJ CSByZXR1cm5zIEVPRiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dl dENvbHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uKQoreworCWludAkJCWtleWlkOwor CWludAkJCWNta2lkOworCWludAkJCWNta2FsZzsKKwljaGFyCSAgICpidWY7CisJaW50CQkJ dmFsbGVuOworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlk LCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUgQ01LIElEICov CisJaWYgKHBxR2V0SW50KCZjbWtpZCwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsK KwkvKiBHZXQgdGhlIENNSyBhbGdvcml0aG0gKi8KKwlpZiAocHFHZXRJbnQoJmNta2FsZywg MiwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIGtleSBkYXRhIGxl biAqLworCWlmIChwcUdldEludCgmdmFsbGVuLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4g RU9GOworCS8qIEdldCB0aGUga2V5IGRhdGEgKi8KKwlidWYgPSBtYWxsb2ModmFsbGVuKTsK KwlpZiAoIWJ1ZikKKwkJcmV0dXJuIEVPRjsKKwlpZiAocHFHZXRuY2hhcihidWYsIHZhbGxl biwgY29ubikgIT0gMCkKKwl7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJuIEVPRjsKKwl9CisJ LyogQW5kIHNhdmUgaXQgKi8KKwlpZiAocHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShjb25u LCBrZXlpZCwgY21raWQsIGNta2FsZywgKHVuc2lnbmVkIGNoYXIgKikgYnVmLCB2YWxsZW4p ICE9IDApCisJeworCQlmcmVlKGJ1Zik7CisJCXJldHVybiBFT0Y7CisJfQorCWZyZWUoYnVm KTsKKwlyZXR1cm4gMDsKK30KIAogLyoKICAqIEF0dGVtcHQgdG8gcmVhZCBhIE5vdGlmeSBy ZXNwb25zZSBtZXNzYWdlLgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt dHJhY2UuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMKaW5kZXggNWQ2OGNm MmViMy4uZTA4Y2JjZmYzMyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt dHJhY2UuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCkBAIC00NTgs NyArNDU4LDEyIEBAIHBxVHJhY2VPdXRwdXR0KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3Nh Z2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCiAJbmZpZWxkcyA9IHBxVHJhY2VPdXRw dXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOwogCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBu ZmllbGRzOyBpKyspCisJeworCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vy c29yLCByZWdyZXNzKTsKIAkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNv ciwgcmVncmVzcyk7CisJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3Ip OworCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwl9CiB9CiAK IC8qIFJvd0Rlc2NyaXB0aW9uICovCkBAIC00NzksNiArNDg0LDggQEAgcHFUcmFjZU91dHB1 dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVn cmVzcykKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBx VHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFj ZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCXBxVHJhY2VPdXRwdXRJbnQz MihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCQlwcVRyYWNlT3V0cHV0SW50MTYo ZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2xpYnBxLWZlLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5o CmluZGV4IDc5ODY0NDVmMWEuLjQyZmJlMGNkNDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2xpYnBxLWZlLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt ZmUuaApAQCAtMjY3LDYgKzI2Nyw4IEBAIHR5cGVkZWYgc3RydWN0IHBncmVzQXR0RGVzYwog CU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8KIAlpbnQJCQl0eXBsZW47CQkJLyogdHlw ZSBzaXplICovCiAJaW50CQkJYXR0dHlwbW9kOwkJLyogdHlwZS1zcGVjaWZpYyBtb2RpZmll ciBpbmZvICovCisJT2lkCQkJY2VraWQ7CisJaW50CQkJY2VrYWxnOwogfSBQR3Jlc0F0dERl c2M7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTQzOCw2ICs0NDAsMTUgQEAgZXh0ZXJu IFBHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJCWNvbnN0 IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywK IAkJCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CitleHRlcm4gUEdyZXN1bHQgKlBRZXhlY1By ZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJCQkJCSBjb25zdCBjaGFyICpzdG10TmFtZSwK KwkJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBh cmFtVmFsdWVzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJ CSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1G b3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJ CQkJCQkJIFBHcmVzdWx0ICpwYXJhbURlc2MpOwogCiAvKiBJbnRlcmZhY2UgZm9yIG11bHRp cGxlLXJlc3VsdCBvciBhc3luY2hyb25vdXMgcXVlcmllcyAqLwogI2RlZmluZSBQUV9RVUVS WV9QQVJBTV9NQVhfTElNSVQgNjU1MzUKQEAgLTQ2MSw2ICs0NzIsMTUgQEAgZXh0ZXJuIGlu dAlQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29uc3QgaW50 ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJ CQkJCQlpbnQgcmVzdWx0Rm9ybWF0KTsKK2V4dGVybiBpbnQJUFFzZW5kUXVlcnlQcmVwYXJl ZDIoUEdjb25uICpjb25uLAorCQkJCQkJCQkgY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJ CQkJCSBpbnQgblBhcmFtcywKKwkJCQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZh bHVlcywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkgY29u c3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9yY2VD b2x1bW5FbmNyeXB0aW9ucywKKwkJCQkJCQkJIGludCByZXN1bHRGb3JtYXQsCisJCQkJCQkJ CSBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKIGV4dGVybiBpbnQJUFFzZXRTaW5nbGVSb3dNb2Rl KFBHY29ubiAqY29ubik7CiBleHRlcm4gUEdyZXN1bHQgKlBRZ2V0UmVzdWx0KFBHY29ubiAq Y29ubik7CiAKQEAgLTUzMSw2ICs1NTEsNyBAQCBleHRlcm4gaW50CVBRZmZvcm1hdChjb25z dCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBPaWQJUFFmdHlwZShj b25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFmc2l6 ZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFm bW9kKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pOworZXh0ZXJuIGludAlQ UWZpc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4 dGVybiBjaGFyICpQUWNtZFN0YXR1cyhQR3Jlc3VsdCAqcmVzKTsKIGV4dGVybiBjaGFyICpQ UW9pZFN0YXR1cyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsJLyogb2xkIGFuZCB1Z2x5ICovCiBl eHRlcm4gT2lkCVBRb2lkVmFsdWUoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8qIG5ldyBhbmQg aW1wcm92ZWQgKi8KQEAgLTU0MCw2ICs1NjEsNyBAQCBleHRlcm4gaW50CVBRZ2V0bGVuZ3Ro KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCB0dXBfbnVtLCBpbnQgZmllbGRfbnVtKTsKIGV4 dGVybiBpbnQJUFFnZXRpc251bGwoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHR1cF9udW0s IGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUW5wYXJhbXMoY29uc3QgUEdyZXN1bHQg KnJlcyk7CiBleHRlcm4gT2lkCVBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGlu dCBwYXJhbV9udW0pOworZXh0ZXJuIGludAlQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdy ZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSk7CiAKIC8qIERlc2NyaWJlIHByZXBhcmVkIHN0 YXRlbWVudHMgYW5kIHBvcnRhbHMgKi8KIGV4dGVybiBQR3Jlc3VsdCAqUFFkZXNjcmliZVBy ZXBhcmVkKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3RtdCk7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2xpYnBxLWludC5oCmluZGV4IDUxYWI1MWY5ZjkuLmVkODAzYjFmODggMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2xpYnBxLWludC5oCkBAIC0xMTEsNiArMTExLDkgQEAgdW5pb24gcGdyZXN1bHRf ZGF0YQogdHlwZWRlZiBzdHJ1Y3QgcGdyZXNQYXJhbURlc2MKIHsKIAlPaWQJCQl0eXBpZDsJ CQkvKiB0eXBlIGlkICovCisJT2lkCQkJY2VraWQ7CisJaW50CQkJY2VrYWxnOworCWludAkJ CWZsYWdzOwogfSBQR3Jlc1BhcmFtRGVzYzsKIAogLyoKQEAgLTM0Miw2ICszNDUsMjYgQEAg dHlwZWRlZiBzdHJ1Y3QgcGdfY29ubl9ob3N0CiAJCQkJCQkJCSAqIGZvdW5kIGluIHBhc3N3 b3JkIGZpbGUuICovCiB9IHBnX2Nvbm5faG9zdDsKIAorLyoKKyAqIENvbHVtbiBlbmNyeXB0 aW9uIHN1cHBvcnQgZGF0YQorICovCisKKy8qIGNvbHVtbiBtYXN0ZXIga2V5ICovCit0eXBl ZGVmIHN0cnVjdCBwZ19jbWsKK3sKKwlPaWQJCQljbWtpZDsKKwljaGFyCSAgICpjbWtuYW1l OworCWNoYXIJICAgKmNta3JlYWxtOworfSBQR0NNSzsKKworLyogY29sdW1uIGVuY3J5cHRp b24ga2V5ICovCit0eXBlZGVmIHN0cnVjdCBwZ19jZWsKK3sKKwlPaWQJCQljZWtpZDsKKwl1 bnNpZ25lZCBjaGFyICpjZWtkYXRhOwkJLyogKGRlY3J5cHRlZCkgKi8KKwlzaXplX3QJCWNl a2RhdGFsZW47Cit9IFBHQ0VLOworCiAvKgogICogUEdjb25uIHN0b3JlcyBhbGwgdGhlIHN0 YXRlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIGNvbm5lY3Rpb24KICAqIHRvIGEg YmFja2VuZC4KQEAgLTM5NSw2ICs0MTgsNyBAQCBzdHJ1Y3QgcGdfY29ubgogCWNoYXIJICAg KnNzbF9taW5fcHJvdG9jb2xfdmVyc2lvbjsJLyogbWluaW11bSBUTFMgcHJvdG9jb2wgdmVy c2lvbiAqLwogCWNoYXIJICAgKnNzbF9tYXhfcHJvdG9jb2xfdmVyc2lvbjsJLyogbWF4aW11 bSBUTFMgcHJvdG9jb2wgdmVyc2lvbiAqLwogCWNoYXIJICAgKnRhcmdldF9zZXNzaW9uX2F0 dHJzOwkvKiBkZXNpcmVkIHNlc3Npb24gcHJvcGVydGllcyAqLworCWNoYXIJICAgKmNta2xv b2t1cDsJCS8qIENNSyBsb29rdXAgc3BlY2lmaWNhdGlvbiAqLwogCiAJLyogT3B0aW9uYWwg ZmlsZSB0byB3cml0ZSB0cmFjZSBpbmZvIHRvICovCiAJRklMRQkgICAqUGZkZWJ1ZzsKQEAg LTQ3Nyw2ICs1MDEsMTIgQEAgc3RydWN0IHBnX2Nvbm4KIAlQR0NvbnRleHRWaXNpYmlsaXR5 IHNob3dfY29udGV4dDsJLyogd2hldGhlciB0byBzaG93IENPTlRFWFQgZmllbGQgKi8KIAlQ R2xvYmpmdW5jcyAqbG9iamZ1bmNzOwkJLyogcHJpdmF0ZSBzdGF0ZSBmb3IgbGFyZ2Utb2Jq ZWN0IGFjY2VzcyBmbnMgKi8KIAorCS8qIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnQgZGF0 YSAqLworCWludAkJCW5jbWtzOworCVBHQ01LCSAgICpjbWtzOworCWludAkJCW5jZWtzOwor CVBHQ0VLCSAgICpjZWtzOworCiAJLyogQnVmZmVyIGZvciBkYXRhIHJlY2VpdmVkIGZyb20g YmFja2VuZCBhbmQgbm90IHlldCBwcm9jZXNzZWQgKi8KIAljaGFyCSAgICppbkJ1ZmZlcjsJ CS8qIGN1cnJlbnRseSBhbGxvY2F0ZWQgYnVmZmVyICovCiAJaW50CQkJaW5CdWZTaXplOwkJ LyogYWxsb2NhdGVkIHNpemUgb2YgYnVmZmVyICovCkBAIC02NzIsNiArNzAyLDEwIEBAIGV4 dGVybiB2b2lkIHBxU2F2ZU1lc3NhZ2VGaWVsZChQR3Jlc3VsdCAqcmVzLCBjaGFyIGNvZGUs CiAJCQkJCQkJICAgY29uc3QgY2hhciAqdmFsdWUpOwogZXh0ZXJuIHZvaWQgcHFTYXZlUGFy YW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJCQkJ ICBjb25zdCBjaGFyICp2YWx1ZSk7CitleHRlcm4gaW50CXBxU2F2ZUNvbHVtbk1hc3Rlcktl eShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgY29uc3QgY2hhciAqa2V5bmFtZSwKKwkJCQkJ CQkJICBjb25zdCBjaGFyICprZXlyZWFsbSk7CitleHRlcm4gaW50CXBxU2F2ZUNvbHVtbkVu Y3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50IGNt a2FsZywKKwkJCQkJCQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4p OwogZXh0ZXJuIGludAlwcVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KiplcnJtc2dwKTsKIGV4dGVybiB2b2lkIHBxQ29tbWFuZFF1ZXVlQWR2YW5jZShQR2Nvbm4g KmNvbm4pOwogZXh0ZXJuIGludAlQUXNlbmRRdWVyeUNvbnRpbnVlKFBHY29ubiAqY29ubiwg Y29uc3QgY2hhciAqcXVlcnkpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv bmxzLm1rIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCmluZGV4IDkyNTZiNDI2YzEu LmM0NWZlODZkMWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKQEAgLTEsNSArMSw1IEBACiAjIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawogQ0FUQUxPR19OQU1FICAgICA9IGxpYnBxCi1H RVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBmZS1jb25uZWN0 LmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2JqLmMgZmUtbWlzYy5jIGZl LXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21tb24uYyBmZS1zZWN1cmUt Z3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4uLy4uL3BvcnQvdGhyZWFk LmMKK0dFVFRFWFRfRklMRVMgICAgPSBmZS1hdXRoLmMgZmUtYXV0aC1zY3JhbS5jIGZlLWNv bm5lY3QuYyBmZS1lbmNyeXB0LW9wZW5zc2wuYyBmZS1leGVjLmMgZmUtZ3NzYXBpLWNvbW1v bi5jIGZlLWxvYmouYyBmZS1taXNjLmMgZmUtcHJvdG9jb2wzLmMgZmUtc2VjdXJlLmMgZmUt c2VjdXJlLWNvbW1vbi5jIGZlLXNlY3VyZS1nc3NhcGkuYyBmZS1zZWN1cmUtb3BlbnNzbC5j IHdpbjMyLmMgLi4vLi4vcG9ydC90aHJlYWQuYwogR0VUVEVYVF9UUklHR0VSUyA9IGxpYnBx X2dldHRleHQgcHFJbnRlcm5hbE5vdGljZToyCiBHRVRURVhUX0ZMQUdTICAgID0gbGlicHFf Z2V0dGV4dDoxOnBhc3MtYy1mb3JtYXQgcHFJbnRlcm5hbE5vdGljZToyOmMtZm9ybWF0CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKaW5kZXggNmJhNzhhZGI2Ny4uMTg0 NjU5NGVjNSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdu b3JlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQpAQCAtMSwy ICsxLDMgQEAKKy9saWJwcV90ZXN0X2VuY3J5cHQKIC9saWJwcV90ZXN0Y2xpZW50CiAvbGli cHFfdXJpX3JlZ3Jlc3MKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3Qv TWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlCmluZGV4IDc1 YWMwOGY5NDMuLmIxZWJhYjkwZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L3Rlc3QvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmls ZQpAQCAtMTUsMTAgKzE1LDE3IEBAIG92ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChsaWJwcV9z cmNkaXIpICQoQ1BQRkxBR1MpCiBMREZMQUdTX0lOVEVSTkFMICs9ICQobGlicHFfcGdwb3J0 KQogCiBQUk9HUyA9IGxpYnBxX3Rlc3RjbGllbnQgbGlicHFfdXJpX3JlZ3Jlc3MKK2lmZXEg KCQod2l0aF9zc2wpLG9wZW5zc2wpCitQUk9HUyArPSBsaWJwcV90ZXN0X2VuY3J5cHQKK2Vu ZGlmCisKIAogYWxsOiAkKFBST0dTKQogCiAkKFBST0dTKTogJChXSU4zMlJFUykKIAorbGli cHFfdGVzdF9lbmNyeXB0OiAuLi9mZS1lbmNyeXB0LW9wZW5zc2wuYworCSQoQ0MpICQoQ1BQ RkxBR1MpIC1EVEVTVF9FTkNSWVBUICQoQ0ZMQUdTKSAkXiAkKExERkxBR1MpICQoTERGTEFH U19FWCkgJChMSUJTKSAtbyAkQCQoWCkKKwogY2xlYW4gZGlzdGNsZWFuIG1haW50YWluZXIt Y2xlYW46CiAJcm0gLWYgJChQUk9HUykgKi5vCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9NYWtl ZmlsZSBiL3NyYy90ZXN0L01ha2VmaWxlCmluZGV4IDY5ZWYwNzRkNzUuLjIzMDBiZTgzMzIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L01ha2VmaWxl CkBAIC0zMiw2ICszMiw3IEBAIFNVQkRJUlMgKz0gbGRhcAogZW5kaWYKIGVuZGlmCiBpZmVx ICgkKHdpdGhfc3NsKSxvcGVuc3NsKQorU1VCRElSUyArPSBjb2x1bW5fZW5jcnlwdGlvbgog aWZuZXEgKCwkKGZpbHRlciBzc2wsJChQR19URVNUX0VYVFJBKSkpCiBTVUJESVJTICs9IHNz bAogZW5kaWYKQEAgLTQxLDcgKzQyLDcgQEAgZW5kaWYKICMgY2xlYW4iIGV0YyB0byByZWN1 cnNlIGludG8gdGhlbS4gIChXZSBtdXN0IGZpbHRlciBvdXQgdGhvc2UgdGhhdCB3ZQogIyBo YXZlIGNvbmRpdGlvbmFsbHkgaW5jbHVkZWQgaW50byBTVUJESVJTIGFib3ZlLCBlbHNlIHRo ZXJlIHdpbGwgYmUKICMgbWFrZSBjb25mdXNpb24uKQotQUxXQVlTX1NVQkRJUlMgPSAkKGZp bHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBzc2wpCitB TFdBWVNfU1VCRElSUyA9ICQoZmlsdGVyLW91dCAkKFNVQkRJUlMpLGV4YW1wbGVzIGtlcmJl cm9zIGljdSBsZGFwIHNzbCBjb2x1bW5fZW5jcnlwdGlvbikKIAogIyBXZSB3YW50IHRvIHJl Y3Vyc2UgdG8gYWxsIHN1YmRpcnMgZm9yIGFsbCBzdGFuZGFyZCB0YXJnZXRzLCBleGNlcHQg dGhhdAogIyBpbnN0YWxsY2hlY2sgYW5kIGluc3RhbGwgc2hvdWxkIG5vdCByZWN1cnNlIGlu dG8gdGhlIHN1YmRpcmVjdG9yeSAibW9kdWxlcyIuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9j b2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40 NTZkYmY2OWQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDMgQEAKKy90ZXN0X2NsaWVudAorIyBHZW5lcmF0 ZWQgYnkgdGVzdCBzdWl0ZQorL3RtcF9jaGVjay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24v TWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2FjYTg0 YjE3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01h a2VmaWxlCkBAIC0wLDAgKzEsMjkgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIE1h a2VmaWxlIGZvciBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbgorIworIyBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyMKKyMgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vTWFrZWZpbGUKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YmRpciA9IHNyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uCit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgoraW5jbHVk ZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAorCitvdmVycmlkZSBDUFBG TEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQorTERGTEFHU19JTlRFUk5B TCArPSAtTCQodG9wX2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMgLWxwZ2ZldXRpbHMgJChsaWJw cV9wZ3BvcnQpCisKK2FsbDogdGVzdF9jbGllbnQKKworY2hlY2s6IGFsbAorCSQocHJvdmVf Y2hlY2spCisKK2luc3RhbGxjaGVjazoKKwkkKHByb3ZlX2luc3RhbGxjaGVjaykKKworY2xl YW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xlYW46CisJcm0gLWYgdGVzdF9jbGllbnQubyB0 ZXN0X2NsaWVudAorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsIGIvc3JjL3Rlc3Qv Y29sdW1uX2VuY3J5cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYTBkMzE5MjgwMAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0 aW9uLnBsCkBAIC0wLDAgKzEsMTgwIEBACisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNl IHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdy ZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG5vZGUgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0OworJG5v ZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBf OworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdn ZW5wa2V5JywgJy1hbGdvcml0aG0nLCAncnNhJywgJy1vdXQnLCAkY21rZmlsZW5hbWU7CisJ JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIE1BU1RFUiBL RVkgJHtjbWtuYW1lfSBXSVRIIChyZWFsbSA9ICcnKX0pOworCXJldHVybiAkY21rZmlsZW5h bWU7Cit9CisKK3N1YiBjcmVhdGVfY2VrCit7CisJbXkgKCRjZWtuYW1lLCAkYnl0ZXMsICRj bWtuYW1lLCAkY21rZmlsZW5hbWUpID0gQF87CisKKwkjIGdlbmVyYXRlIHJhbmRvbSBieXRl cworCXN5c3RlbV9vcl9iYWlsICdvcGVuc3NsJywgJ3JhbmQnLCAnLW91dCcsICIke1Bvc3Rn cmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwgJGJ5dGVz OworCisJIyBlbmNyeXB0IENFSyB1c2luZyBDTUsKKwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNz bCcsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKwkgICctaW5rZXknLCAkY21rZmlsZW5hbWUs CisJICAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKwkgICctaW4nLCAi JHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIs CisJICAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7 Y2VrbmFtZX0uYmluLmVuYyI7CisKKwlteSAkY2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNs dXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtu YW1lfS5iaW4uZW5jIik7CisKKwkjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKwkkbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg JHtjZWtuYW1lfSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSAke2Nta25hbWV9 LCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9Jyk7fSk7CisKKwlyZXR1cm47 Cit9CisKKworbXkgJGNtazFmaWxlbmFtZSA9IGNyZWF0ZV9jbWsoJ2NtazEnKTsKK215ICRj bWsyZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsyJyk7CitjcmVhdGVfY2VrKCdjZWsxJywg MzIsICdjbWsxJywgJGNtazFmaWxlbmFtZSk7CitjcmVhdGVfY2VrKCdjZWsyJywgNDgsICdj bWsyJywgJGNtazJmaWxlbmFtZSk7CisKKyRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAnKj1maWxl OicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9IC4gJy8lay5wZW0n OworCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUg dGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworQ1JFQVRFIFRBQkxFIHRibDIgKAorICAgIGEgaW50LAorICAgIGIg dGV4dCBFTkNSWVBURUQgV0lUSCAoZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYywg Y29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0YmwzICgKKyAgICBhIGludCwK KyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNl azEpLAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5 ID0gY2VrMiwgYWxnb3JpdGhtID0gJ0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0JykK Kyk7Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElO VE8gdGJsMSAoYSwgYikgVkFMVUVTICgxLCAkMSkgXGdlbmNyICd2YWwxJworSU5TRVJUIElO VE8gdGJsMSAoYSwgYikgVkFMVUVTICgyLCAkMSkgXGdlbmNyICd2YWwyJworfSk7CisKKyMg RXhwZWN0ZWQgY2lwaGVydGV4dCBsZW5ndGggaXMgMiBibG9ja3Mgb2YgQUVTIG91dHB1dCAo MiAqIDE2KSBwbHVzCisjIGhhbGYgU0hBLTI1NiBvdXRwdXQgKDE2KSBpbiBoZXggZW5jb2Rp bmc6ICgyICogMTYgKyAxNikgKiAyID0gOTYKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxe0NPUFkgKFNFTEVDVCAqIEZST00gdGJsMSkgVE8gU1RET1VUfSksCisJcXIv MVx0XFxcXHhbMC05YS1mXXs5Nn1cbjJcdFxcXFx4WzAtOWEtZl17OTZ9LywKKwknaW5zZXJ0 ZWQgZGF0YSBpcyBlbmNyeXB0ZWQnKTsKKworbXkgJHJlc3VsdDsKKworJHJlc3VsdCA9ICRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDEgXGdk ZXNjfSk7CitpcygkcmVzdWx0LAorCXEoYXxpbnRlZ2VyCitifHRleHQpLAorCSdxdWVyeSBy ZXN1bHQgZGVzY3JpcHRpb24gaGFzIG9yaWdpbmFsIHR5cGUnKTsKKworJHJlc3VsdCA9ICRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KTsK K2lzKCRyZXN1bHQsCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSBy ZXN1bHQnKTsKKworeworCWxvY2FsICRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAnKj1ydW46YnJv a2VuICVrICIlYiInOworCSRyZXN1bHQgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxe1NF TEVDVCBhLCBiIEZST00gdGJsMX0pOworCWlzbnQoJHJlc3VsdCwgMCwgJ3F1ZXJ5IGZhaWxz IHdpdGggYnJva2VuIGNta2xvb2t1cCBydW4gc2V0dGluZycpOworfQorCit7CisJbG9jYWwg JEVOVnsnUEdDTUtMT09LVVAnfSA9ICIqPXJ1bjpwZXJsIC4vdGVzdF9ydW5fZGVjcnlwdC5w bCAnJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfScgJWsgJWEgJyViJyI7 CisKKwkkcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBh LCBiIEZST00gdGJsMX0pOworCWlzKCRyZXN1bHQsCisJCXEoMXx2YWwxCisyfHZhbDIpLAor CQknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIGNta2xvb2t1cCBydW4nKTsKK30KKwor JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMyAoYSwg YiwgYykgVkFMVUVTICgxLCAkMSwgJDIpIFxnZW5jciAndmFsQjEnICd2YWxDMScKK30pOwor CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBi LCBjIEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsQjF8dmFsQzEpLAorCSdk ZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMnKTsKKworCiskbm9kZS0+Y29t bWFuZF9mYWlsc19saWtlKFsndGVzdF9jbGllbnQnLCAndGVzdDEnXSwgcXIvbm90IGVuY3J5 cHRlZC8sICd0ZXN0IGNsaWVudCBmYWlscyBiZWNhdXNlIHBhcmFtZXRlcnMgbm90IGVuY3J5 cHRlZCcpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NF TEVDVCBhLCBiIEZST00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMQorMnx2YWwy KSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQn KTsKKworJG5vZGUtPmNvbW1hbmRfb2soWyd0ZXN0X2NsaWVudCcsICd0ZXN0MiddLCAndGVz dCBjbGllbnQgdGVzdCAyJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2 YWwxCisyfHZhbDIKKzN8dmFsMyksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIg dGVzdCBjbGllbnQgaW5zZXJ0IDInKTsKKworbGlrZSgkbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxIFdIRVJFIGEgPSAzKSBUTyBTVERP VVR9KSwKKwlxci8zXHRcXFxceFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMg ZW5jcnlwdGVkJyk7CisKKyRub2RlLT5jb21tYW5kX29rKFsndGVzdF9jbGllbnQnLCAndGVz dDMnXSwgJ3Rlc3QgY2xpZW50IHRlc3QgMycpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pOworaXMoJHJlc3Vs dCwKKwlxKDF8dmFsMQorMnx2YWwyCiszfHZhbDN1cGQpLAorCSdkZWNyeXB0ZWQgcXVlcnkg cmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50IGluc2VydCAzJyk7CisKKyRub2RlLT5jb21tYW5k X29rKFsndGVzdF9jbGllbnQnLCAndGVzdDQnXSwgJ3Rlc3QgY2xpZW50IHRlc3QgNCcpOwor CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBi IEZST00gdGJsMn0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsQQorMnx2YWxCCiszfHZhbEEp LAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50IGluc2VydCA0 Jyk7CisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYiwgY291 bnQoKikgRlJPTSB0YmwyIEdST1VQIEJZIGIgT1JERVIgQlkgMn0pLAorCXEodmFsQnwxCit2 YWxBfDIpLAorCSdncm91cCBieSBkZXRlcm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1u Jyk7CisKKyRub2RlLT5jb21tYW5kX29rKFsndGVzdF9jbGllbnQnLCAndGVzdDUnXSwgJ3Rl c3QgY2xpZW50IHRlc3QgNScpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlx KDF8dmFsQjF8dmFsQzEKKzJ8dmFsQjJ8dmFsQzIKKzN8dmFsQjN8dmFsQzMpLAorCSdkZWNy eXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMgYWZ0ZXIgdGVzdCBjbGllbnQgaW5z ZXJ0IDUnKTsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgYi9zcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uY2Y2MTE0ZGI0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbApAQCAtMCwwICsx LDExOCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IGNvbHVtbiBtYXN0ZXIga2V5IHJvdGF0aW9u LiAgRmlyc3QsIHdlIGdlbmVyYXRlIENNSzEgYW5kIGEgQ0VLCisjIGVuY3J5cHRlZCB3aXRo IGl0LiAgVGhlbiB3ZSBhZGQgYSBDTUsyIGFuZCBlbmNyeXB0IHRoZSBDRUsgd2l0aCBpdAor IyBhcyB3ZWxsLiAgKFJlY2FsbCB0aGF0IGEgQ0VLIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGgg bXVsdGlwbGUgQ01LcywKKyMgZm9yIHRoaXMgcmVhc29uLiAgVGhhdCdzIHdoeSBwZ19jb2xl bmNrZXlkYXRhIGlzIHNwbGl0IG91dCBmcm9tCisjIHBnX2NvbGVuY2tleS4pICBUaGVuIHdl IHJlbW92ZSBDTUsxLiAgV2UgdGVzdCB0aGF0IHdlIGNhbiBnZXQKKyMgZGVjcnlwdGVkIHF1 ZXJ5IHJlc3VsdHMgYXQgZWFjaCBzdGVwLgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdz OwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVz dDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpU ZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0 OworCisKK3N1YiBjcmVhdGVfY21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRj bWtmaWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7 Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdnZW5wa2V5Jywg Jy1hbGdvcml0aG0nLCAncnNhJywgJy1vdXQnLCAkY21rZmlsZW5hbWU7CisJJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgJHtjbWtu YW1lfSBXSVRIIChyZWFsbSA9ICcnKX0pOworCXJldHVybiAkY21rZmlsZW5hbWU7Cit9CisK KworbXkgJGNtazFmaWxlbmFtZSA9IGNyZWF0ZV9jbWsoJ2NtazEnKTsKKworIyBjcmVhdGUg Q0VLCitteSAoJGNla25hbWUsICRieXRlcykgPSAoJ2NlazEnLCAxNisxNik7CisKKyMgZ2Vu ZXJhdGUgcmFuZG9tIGJ5dGVzCitzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdyYW5kJywg Jy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25h bWV9LmJpbiIsICRieXRlczsKKworIyBlbmNyeXB0IENFSyB1c2luZyBDTUsKK3N5c3RlbV9v cl9iYWlsICdvcGVuc3NsJywgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5Jywg JGNtazFmaWxlbmFtZSwKKyAgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcs CisgICctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nl a25hbWV9LmJpbiIsCisgICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRt cF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIjsKKworbXkgJGNla2VuY2hleCA9IHVucGFj aygnSConLCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hl Y2t9LyR7Y2VrbmFtZX0uYmluLmVuYyIpOworCisjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UK KyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWSAke2Nla25hbWV9IFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNt azEsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKworJEVOVnsn UEdDTUtMT09LVVAnfSA9ICcqPWZpbGU6JyAuICR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6 OnRtcF9jaGVja30gLiAnLyVrLnBlbSc7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOwor Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChh LCBiKSBWQUxVRVMgKDEsICQxKSBcZ2VuY3IgJ3ZhbDEnCitJTlNFUlQgSU5UTyB0YmwxIChh LCBiKSBWQUxVRVMgKDIsICQxKSBcZ2VuY3IgJ3ZhbDInCit9KTsKKworaXMoJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2 YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggb25lIENNSycp OworCisKKyMgY3JlYXRlIG5ldyBDTUsKK215ICRjbWsyZmlsZW5hbWUgPSBjcmVhdGVfY21r KCdjbWsyJyk7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgbmV3IENNSworIworIyAoSGVyZSwg d2Ugc3RpbGwgaGF2ZSB0aGUgcGxhaW50ZXh0IG9mIHRoZSBDRUsgYXZhaWxhYmxlIGZyb20K KyMgZWFybGllci4gIEluIHJlYWxpdHksIG9uZSB3b3VsZCBkZWNyeXB0IHRoZSBDRUsgd2l0 aCB0aGUgZmlyc3QgQ01LCisjIGFuZCB0aGVuIHJlLWVuY3J5cHQgaXQgd2l0aCB0aGUgc2Vj b25kIENNSy4pCitzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNy eXB0JywKKyAgJy1pbmtleScsICRjbWsyZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2Ff cGFkZGluZ19tb2RlOm9hZXAnLAorICAnLWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKKyRj ZWtlbmNoZXggPSB1bnBhY2soJ0gqJywgc2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0 OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiKTsKKworIyBhZGQgbmV3 IGRhdGEgcmVjb3JkIGZvciBDRUsgaW4gZGF0YWJhc2UKKyMgVE9ETzogVGhlcmUgc2hvdWxk IGJlIHNvbWUgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNvbW1hbmQgdG8gZG8gdGhp cy4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitJTlNFUlQgSU5UTyBwZ19j b2xlbmNrZXlkYXRhIChvaWQsIGNrZGNla2lkLCBja2RjbWtpZCwgY2tkY21rYWxnLCBja2Rl bmN2YWwpIFZBTFVFUyAoCisgICAgcGdfbmV4dG9pZCgncGdfY2F0YWxvZy5wZ19jb2xlbmNr ZXlkYXRhJywgJ29pZCcsICdwZ19jYXRhbG9nLnBnX2NvbGVuY2tleWRhdGFfb2lkX2luZGV4 JyksCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xlbmNrZXkgV0hFUkUgY2VrbmFtZSA9 ICcke2Nla25hbWV9JyksCisgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jb2xtYXN0ZXJrZXkg V0hFUkUgY21rbmFtZSA9ICdjbWsyJyksCisgICAgMSwKKyAgICAnXFx4JHtjZWtlbmNoZXh9 JworKTsKK30pOworCisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxF Q1QgYSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCB3aXRoIHR3byBDTUtzJyk7CisKKworIyBkZWxldGUgQ0VLIHJlY29y ZCBmb3IgZmlyc3QgQ01LCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworREVM RVRFIEZST00gcGdfY29sZW5ja2V5ZGF0YSBXSEVSRSBja2RjbWtpZCA9IChTRUxFQ1Qgb2lk IEZST00gcGdfY29sbWFzdGVya2V5IFdIRVJFIGNta25hbWUgPSAnY21rMScpOworfSk7CisK KworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00g dGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0 IHdpdGggb25seSBuZXcgQ01LJyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jIGIvc3JjL3Rlc3Qv Y29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5hZGQ5ZmU0MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpAQCAtMCwwICsxLDIxMCBAQAor LyoKKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5j bHVkZSAibGlicHEtZmUuaCIKKworCitzdGF0aWMgaW50Cit0ZXN0MShQR2Nvbm4gKmNvbm4p Cit7CisJUEdyZXN1bHQgICAqcmVzOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwg InZhbDMifTsKKworCXJlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAiSU5TRVJUIElOVE8gdGJs MSAoYSwgYikgVkFMVUVTICgkMSwgJDIpIiwKKwkJCQkJICAgMiwgTlVMTCwgdmFsdWVzLCBO VUxMLCBOVUxMLCAwKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01N QU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQYXJhbXMoKSBmYWlsZWQ6 ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3QyKFBHY29ubiAqY29ubikKK3sK KwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBjaGFyICp2YWx1ZXNb XSA9IHsiMyIsICJ2YWwzIn07CisJaW50CQkJZm9yY2VzW10gPSB7ZmFsc2UsIHRydWV9Owor CisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYikg VkFMVUVTICgkMSwgJDIpIiwKKwkJCQkJMiwgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVz KHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFw cmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJ CXJldHVybiAxOworCX0KKworCXJlczIgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIp OworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsK KwkJZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4i LAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYg KCEoIVBRcGFyYW1pc2VuY3J5cHRlZChyZXMyLCAwKSAmJgorCQkgIFBRcGFyYW1pc2VuY3J5 cHRlZChyZXMyLCAxKSkpCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIndyb25nIHJlc3VsdHMg ZnJvbSBQUXBhcmFtaXNlbmNyeXB0ZWQoKVxuIik7CisJCXJldHVybiAxOworCX0KKworCXJl cyA9IFBRZXhlY1ByZXBhcmVkMihjb25uLCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBm b3JjZXMsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NP TU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFp bGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOwor CX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4p Cit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFs dWVzW10gPSB7IjMiLCAidmFsM3VwZCJ9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIi LCAiVVBEQVRFIHRibDEgU0VUIGIgPSAkMiBXSEVSRSBhID0gJDEiLAorCQkJCQkyLCBOVUxM KTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsK KwkJZnByaW50ZihzdGRlcnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBR ZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzMiA9IFBRZGVz Y3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9 IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVzY3JpYmVQ cmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOwor CQlyZXR1cm4gMTsKKwl9CisKKwlyZXMgPSBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgIiIsIDIs IHZhbHVlcywgTlVMTCwgTlVMTCwgTlVMTCwgMCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3Rh dHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAi UFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQK K3Rlc3Q0KFBHY29ubiAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVz MjsKKwljb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMSIsICJ2YWxBIiwgIjIiLCAidmFsQiIs ICIzIiwgInZhbEEifTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJ TlRPIHRibDIgKGEsIGIpIFZBTFVFUyAoJDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIiwK KwkJCQkJNiwgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09N TUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAl c1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKwor CXJlczIgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0 YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIs ICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQy KGNvbm4sICIiLCA2LCB2YWx1ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCWlm IChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJp bnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQor CitzdGF0aWMgaW50Cit0ZXN0NShQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVz LAorCQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7CisJCSIyIiwgInZh bEIyIiwgInZhbEMyIiwKKwkJIjMiLCAidmFsQjMiLCAidmFsQzMiCisJfTsKKworCXJlcyA9 IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVF UyAoJDEsICQyLCAkMyksICgkNCwgJDUsICQ2KSIsCisJCQkJCTYsIE5VTEwpOworCWlmIChQ UXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRm KHN0ZGVyciwgIlBRcHJlcGFyZSgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3Nh Z2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMyID0gUFFkZXNjcmliZVByZXBh cmVkKGNvbm4sICIiKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMikgIT0gUEdSRVNfQ09N TUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFkZXNjcmliZVByZXBhcmVkKCkg ZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAx OworCX0KKworCXJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25uLCAiIiwgNiwgdmFsdWVzLCBO VUxMLCBOVUxMLCBOVUxMLCAwLCByZXMyKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAh PSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVw YXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQly ZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50CittYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKK3sKKwlQR2Nvbm4JICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKwor CWNvbm4gPSBQUWNvbm5lY3RkYigiIik7CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5F Q1RJT05fT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJh c2UgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVy biAxOworCX0KKworCWlmIChhcmdjIDwgMiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVy biA4NzsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0 ID0gdGVzdDEoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09 IDApCisJCXJldCA9IHRlc3QyKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAi dGVzdDMiKSA9PSAwKQorCQlyZXQgPSB0ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAo YXJndlsxXSwgInRlc3Q0IikgPT0gMCkKKwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZSBp ZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0NSIpID09IDApCisJCXJldCA9IHRlc3Q1KGNvbm4p OworCWVsc2UKKwkJcmV0ID0gODg7CisKKwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0 OworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5f ZGVjcnlwdC5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5 cHQucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uOTY2NDM0OWYx NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf cnVuX2RlY3J5cHQucGwKQEAgLTAsMCArMSw0MSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMg VGVzdC9zYW1wbGUgY29tbWFuZCBmb3IgbGlicHEgY21rbG9va3VwIHJ1biBzY2hlbWUKKyMK KyMgVGhpcyBqdXN0IHBsYWNlcyB0aGUgZGF0YSBpbnRvIHRlbXBvcmFyeSBmaWxlcyBhbmQg cnVucyB0aGUgb3BlbnNzbAorIyBjb21tYW5kIG9uIGl0LiAgKEluIHByYWN0aWNlLCB0aGlz IGNvdWxkIG1vcmUgc2ltcGx5IGJlIHdyaXR0ZW4gYXMgYQorIyBzaGVsbCBzY3JpcHQsIGJ1 dCB0aGlzIHdheSBpdCdzIG1vcmUgcG9ydGFibGUuKQorCisjIENvcHlyaWdodCAoYykgMjAy MS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3Ry aWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgTUlNRTo6QmFzZTY0OworCitteSAoJHRtcGRp ciwgJGNta25hbWUsICRhbGcsICRiNjRkYXRhKSA9IEBBUkdWOworCitkaWUgdW5sZXNzICRh bGcgZXEgJ1JTQUVTX09BRVBfU0hBXzEnOworCitvcGVuIG15ICRmaCwgJz46cmF3JywgIiR7 dG1wZGlyfS9pbnB1dC50bXAiIG9yIGRpZTsKK3ByaW50ICRmaCBkZWNvZGVfYmFzZTY0KCRi NjRkYXRhKTsKK2Nsb3NlICRmaDsKKworc3lzdGVtKCdvcGVuc3NsJywgJ3BrZXl1dGwnLCAn LWRlY3J5cHQnLAorCSctaW5rZXknLCAiJHt0bXBkaXJ9LyR7Y21rbmFtZX0ucGVtIiwgJy1w a2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJJy1pbicsICIke3RtcGRpcn0v aW5wdXQudG1wIiwgJy1vdXQnLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiKSA9PSAwIG9yIGRp ZTsKKworb3BlbiAkZmgsICc8OnJhdycsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIgb3IgZGll OworbXkgJGRhdGEgPSAnJzsKKword2hpbGUgKDEpIHsKKwlteSAkc3VjY2VzcyA9IHJlYWQg JGZoLCAkZGF0YSwgMTAwLCBsZW5ndGgoJGRhdGEpOworCWRpZSAkISBpZiBub3QgZGVmaW5l ZCAkc3VjY2VzczsKKwlsYXN0IGlmIG5vdCAkc3VjY2VzczsKK30KKworY2xvc2UgJGZoOwor Cit1bmxpbmsgIiR7dG1wZGlyfS9pbnB1dC50bXAiLCAiJHt0bXBkaXJ9L291dHB1dC50bXAi OworCitwcmludCBlbmNvZGVfYmFzZTY0KCRkYXRhKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL2Rpc2FsbG93ZWRfaW5fcGlwZWxpbmUu dHJhY2UgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9kaXNhbGxv d2VkX2luX3BpcGVsaW5lLnRyYWNlCmluZGV4IGRkNmRmMDNmMWUuLjVmYzljMDM0NmQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL2Rpc2Fs bG93ZWRfaW5fcGlwZWxpbmUudHJhY2UKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9w aXBlbGluZS90cmFjZXMvZGlzYWxsb3dlZF9pbl9waXBlbGluZS50cmFjZQpAQCAtMSw1ICsx LDUgQEAKIEYJMTMJUXVlcnkJICJTRUxFQ1QgMSIKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEg Ij9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEg Ij9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTExCURhdGFSb3cJIDEg MSAnMScKIEIJMTMJQ29tbWFuZENvbXBsZXRlCSAiU0VMRUNUIDEiCiBCCTUJUmVhZHlGb3JR dWVyeQkgSQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90 cmFjZXMvbXVsdGlfcGlwZWxpbmVzLnRyYWNlIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9w aXBlbGluZS90cmFjZXMvbXVsdGlfcGlwZWxpbmVzLnRyYWNlCmluZGV4IDRiOWFiMDdjYTQu LjcwMGIwYjY1MTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxp bmUvdHJhY2VzL211bHRpX3BpcGVsaW5lcy50cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1bGVz L2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9tdWx0aV9waXBlbGluZXMudHJhY2UKQEAgLTEwLDEz ICsxMCwxMyBAQCBGCTkJRXhlY3V0ZQkgIiIgMAogRgk0CVN5bmMKIEIJNAlQYXJzZUNvbXBs ZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1u PyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1u PyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzEnCiBC CTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk1CVJlYWR5Rm9yUXVlcnkJIEkK IEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0 aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0 aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRh Um93CSAxIDEgJzEnCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk1CVJl YWR5Rm9yUXVlcnkJIEkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlw ZWxpbmUvdHJhY2VzL25vc3luYy50cmFjZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlw ZWxpbmUvdHJhY2VzL25vc3luYy50cmFjZQppbmRleCBkOTlhYWM2NDlkLi43YjFkZmExYzE1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9u b3N5bmMudHJhY2UKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFj ZXMvbm9zeW5jLnRyYWNlCkBAIC00MSw1MiArNDEsNTIgQEAgRgk5CUV4ZWN1dGUJICIiIDAK IEYJNAlGbHVzaAogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJ Um93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkz NwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5O Tk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6 eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0 ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJ MzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAor QgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAw IE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6 eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21w bGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUK LUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEg MAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAt MSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5 enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRD b21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxl dGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUg LTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUz NSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4 enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1h bmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29t cGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1 MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2 NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4 eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNv bW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5k Q29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4g NjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5O TiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6 eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEz CUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlC aW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5O Tk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAg Tk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6 eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBC CTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJ NAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAw IE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5O IDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5 enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHon CiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUK IEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5O TiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBO Tk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4 enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6 eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxl dGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIg Tk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0 IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4 eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6 eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogRgk0CVRlcm1pbmF0 ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMv cGlwZWxpbmVfYWJvcnQudHJhY2UgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5l L3RyYWNlcy9waXBlbGluZV9hYm9ydC50cmFjZQppbmRleCAzZmNlNTQ4Yjk5Li42ZTQzMDlj YWRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNl cy9waXBlbGluZV9hYm9ydC50cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3Bp cGVsaW5lL3RyYWNlcy9waXBlbGluZV9hYm9ydC50cmFjZQpAQCAtNTAsMTQgKzUwLDE0IEBA IEYJNglDbG9zZQkgUCAiIgogRgk0CVN5bmMKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmlu ZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5O Tk4gNjU1MzUgLTEgMAorQgkzOQlSb3dEZXNjcmlwdGlvbgkgMSAiP2NvbHVtbj8iIE5OTk4g MCBOTk5OIDY1NTM1IC0xIDAgTk5OTiAwCiBCCTMyCURhdGFSb3cJIDEgMjIgJzAuMzMzMzMz MzMzMzMzMzMzMzMzMzMnCiBCCTMyCURhdGFSb3cJIDEgMjIgJzAuNTAwMDAwMDAwMDAwMDAw MDAwMDAnCiBCCTMyCURhdGFSb3cJIDEgMjIgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAnCiBC CU5OCUVycm9yUmVzcG9uc2UJIFMgIkVSUk9SIiBWICJFUlJPUiIgQyAiMjIwMTIiIE0gImRp dmlzaW9uIGJ5IHplcm8iIEYgIlNTU1MiIEwgIlNTU1MiIFIgIlNTU1MiIFx4MDAKIEIJNQlS ZWFkeUZvclF1ZXJ5CSBJCiBGCTQwCVF1ZXJ5CSAiU0VMRUNUIGl0ZW1ubyBGUk9NIHBxX3Bp cGVsaW5lX2RlbW8iCi1CCTMxCVJvd0Rlc2NyaXB0aW9uCSAxICJpdGVtbm8iIE5OTk4gMiBO Tk5OIDQgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAiaXRlbW5vIiBOTk5OIDIgTk5O TiA0IC0xIDAgTk5OTiAwCiBCCTExCURhdGFSb3cJIDEgMSAnMycKIEIJMTMJQ29tbWFuZENv bXBsZXRlCSAiU0VMRUNUIDEiCiBCCTUJUmVhZHlGb3JRdWVyeQkgSQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvcGlwZWxpbmVfaWRsZS50 cmFjZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3BpcGVsaW5l X2lkbGUudHJhY2UKaW5kZXggMzk1N2VlNGRmZS4uZDkzN2QxYjhmMyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvcGlwZWxpbmVfaWRsZS50 cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9waXBl bGluZV9pZGxlLnRyYWNlCkBAIC02LDcgKzYsNyBAQCBGCTYJQ2xvc2UJIFAgIiIKIEYJNAlG bHVzaAogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzMJUm93RGVz Y3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAKK0IJMzkJUm93RGVz Y3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTEx CURhdGFSb3cJIDEgMSAnMScKIEIJMTMJQ29tbWFuZENvbXBsZXRlCSAiU0VMRUNUIDEiCiBC CTQJQ2xvc2VDb21wbGV0ZQpAQCAtMjAsMTIgKzIwLDEyIEBAIEYJNglDbG9zZQkgUCAiIgog Rgk0CUZsdXNoCiBCCTQJUGFyc2VDb21wbGV0ZQogQgk0CUJpbmRDb21wbGV0ZQotQgkzMwlS b3dEZXNjcmlwdGlvbgkgMSAiP2NvbHVtbj8iIE5OTk4gMCBOTk5OIDQgLTEgMAorQgkzOQlS b3dEZXNjcmlwdGlvbgkgMSAiP2NvbHVtbj8iIE5OTk4gMCBOTk5OIDQgLTEgMCBOTk5OIDAK IEIJMTEJRGF0YVJvdwkgMSAxICcxJwogQgkxMwlDb21tYW5kQ29tcGxldGUJICJTRUxFQ1Qg MSIKIEIJNAlDbG9zZUNvbXBsZXRlCiBGCTEzCVF1ZXJ5CSAiU0VMRUNUIDIiCi1CCTMzCVJv d0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJv d0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAog QgkxMQlEYXRhUm93CSAxIDEgJzInCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAx IgogQgk1CVJlYWR5Rm9yUXVlcnkJIEkKQEAgLTM3LDcgKzM3LDcgQEAgRgk2CUNsb3NlCSBQ ICIiCiBGCTQJRmx1c2gKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1C CTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitC CTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5O Tk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzEnCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNF TEVDVCAxIgogQgk0CUNsb3NlQ29tcGxldGUKQEAgLTQ5LDcgKzQ5LDcgQEAgRgk2CUNsb3Nl CSBQICIiCiBGCTQJRmx1c2gKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRl Ci1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAw CitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAw IE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzInCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkg IlNFTEVDVCAxIgogQgk0CUNsb3NlQ29tcGxldGUKQEAgLTYxLDcgKzYxLDcgQEAgRgk2CUNs b3NlCSBQICIiCiBGCTQJRmx1c2gKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBs ZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAt MSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAt MSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzEnCiBCCTEzCUNvbW1hbmRDb21wbGV0 ZQkgIlNFTEVDVCAxIgogQgk0CUNsb3NlQ29tcGxldGUKQEAgLTczLDcgKzczLDcgQEAgRgk2 CUNsb3NlCSBQICIiCiBGCTQJRmx1c2gKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENv bXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4g NCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4g NCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzInCiBCCTEzCUNvbW1hbmRDb21w bGV0ZQkgIlNFTEVDVCAxIgogQgk0CUNsb3NlQ29tcGxldGUKQEAgLTg1LDcgKzg1LDcgQEAg Rgk2CUNsb3NlCSBQICIiCiBGCTQJRmx1c2gKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmlu ZENvbXBsZXRlCi1CCTQzCVJvd0Rlc2NyaXB0aW9uCSAxICJwZ19hZHZpc29yeV91bmxvY2si IE5OTk4gMCBOTk5OIDEgLTEgMAorQgk0OQlSb3dEZXNjcmlwdGlvbgkgMSAicGdfYWR2aXNv cnlfdW5sb2NrIiBOTk5OIDAgTk5OTiAxIC0xIDAgTk5OTiAwCiBCCU5OCU5vdGljZVJlc3Bv bnNlCSBTICJXQVJOSU5HIiBWICJXQVJOSU5HIiBDICIwMTAwMCIgTSAieW91IGRvbid0IG93 biBhIGxvY2sgb2YgdHlwZSBFeGNsdXNpdmVMb2NrIiBGICJTU1NTIiBMICJTU1NTIiBSICJT U1NTIiBceDAwCiBCCTExCURhdGFSb3cJIDEgMSAnZicKIEIJMTMJQ29tbWFuZENvbXBsZXRl CSAiU0VMRUNUIDEiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVs aW5lL3RyYWNlcy9wcmVwYXJlZC50cmFjZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlw ZWxpbmUvdHJhY2VzL3ByZXBhcmVkLnRyYWNlCmluZGV4IDFhN2RlNWMzZTYuLjhkNDViYmMw Y2UgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2Vz L3ByZXBhcmVkLnRyYWNlCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUv dHJhY2VzL3ByZXBhcmVkLnRyYWNlCkBAIC0yLDggKzIsOCBAQCBGCTY4CVBhcnNlCSAic2Vs ZWN0X29uZSIgIlNFTEVDVCAkMSwgJzQyJywgJDE6Om51bWVyaWMsIGludGVydmFsICcxIHNl YyciIDEgTk5OTgogRgkxNglEZXNjcmliZQkgUyAic2VsZWN0X29uZSIKIEYJNAlTeW5jCiBC CTQJUGFyc2VDb21wbGV0ZQotQgkxMAlQYXJhbWV0ZXJEZXNjcmlwdGlvbgkgMSBOTk5OCi1C CTExMwlSb3dEZXNjcmlwdGlvbgkgNCAiP2NvbHVtbj8iIE5OTk4gMCBOTk5OIDQgLTEgMCAi P2NvbHVtbj8iIE5OTk4gMCBOTk5OIDY1NTM1IC0xIDAgIm51bWVyaWMiIE5OTk4gMCBOTk5O IDY1NTM1IC0xIDAgImludGVydmFsIiBOTk5OIDAgTk5OTiAxNiAtMSAwCitCCTE4CVBhcmFt ZXRlckRlc2NyaXB0aW9uCSAxIE5OTk4gTk5OTiAwIDAKK0IJMTM3CVJvd0Rlc2NyaXB0aW9u CSA0ICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMCAiP2NvbHVtbj8iIE5O Tk4gMCBOTk5OIDY1NTM1IC0xIDAgTk5OTiAwICJudW1lcmljIiBOTk5OIDAgTk5OTiA2NTUz NSAtMSAwIE5OTk4gMCAiaW50ZXJ2YWwiIE5OTk4gMCBOTk5OIDE2IC0xIDAgTk5OTiAwCiBC CTUJUmVhZHlGb3JRdWVyeQkgSQogRgkxMAlRdWVyeQkgIkJFR0lOIgogQgkxMAlDb21tYW5k Q29tcGxldGUJICJCRUdJTiIKQEAgLTEzLDYgKzEzLDYgQEAgQgkxOQlDb21tYW5kQ29tcGxl dGUJICJERUNMQVJFIENVUlNPUiIKIEIJNQlSZWFkeUZvclF1ZXJ5CSBUCiBGCTE2CURlc2Ny aWJlCSBQICJjdXJzb3Jfb25lIgogRgk0CVN5bmMKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEg Ij9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEg Ij9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTUJUmVhZHlGb3JRdWVy eQkgVAogRgk0CVRlcm1pbmF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJw cV9waXBlbGluZS90cmFjZXMvc2ltcGxlX3BpcGVsaW5lLnRyYWNlIGIvc3JjL3Rlc3QvbW9k dWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvc2ltcGxlX3BpcGVsaW5lLnRyYWNlCmluZGV4 IDVjOTQ3NDliYzEuLjVmNDg0OTQyNWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMv bGlicHFfcGlwZWxpbmUvdHJhY2VzL3NpbXBsZV9waXBlbGluZS50cmFjZQorKysgYi9zcmMv dGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9zaW1wbGVfcGlwZWxpbmUudHJh Y2UKQEAgLTUsNyArNSw3IEBAIEYJOQlFeGVjdXRlCSAiIiAwCiBGCTQJU3luYwogQgk0CVBh cnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEg Ij9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEg Ij9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTExCURhdGFSb3cJIDEg MSAnMScKIEIJMTMJQ29tbWFuZENvbXBsZXRlCSAiU0VMRUNUIDEiCiBCCTUJUmVhZHlGb3JR dWVyeQkgSQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90 cmFjZXMvc2luZ2xlcm93LnRyYWNlIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGlu ZS90cmFjZXMvc2luZ2xlcm93LnRyYWNlCmluZGV4IDlkZTk5YmVmY2MuLjE5OWRmNGQ0ZjQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3Np bmdsZXJvdy50cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3Ry YWNlcy9zaW5nbGVyb3cudHJhY2UKQEAgLTEzLDE0ICsxMywxNCBAQCBGCTkJRXhlY3V0ZQkg IiIgMAogRgk0CVN5bmMKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1C CTQwCVJvd0Rlc2NyaXB0aW9uCSAxICJnZW5lcmF0ZV9zZXJpZXMiIE5OTk4gMCBOTk5OIDQg LTEgMAorQgk0NglSb3dEZXNjcmlwdGlvbgkgMSAiZ2VuZXJhdGVfc2VyaWVzIiBOTk5OIDAg Tk5OTiA0IC0xIDAgTk5OTiAwCiBCCTEyCURhdGFSb3cJIDEgMiAnNDInCiBCCTEyCURhdGFS b3cJIDEgMiAnNDMnCiBCCTEyCURhdGFSb3cJIDEgMiAnNDQnCiBCCTEzCUNvbW1hbmRDb21w bGV0ZQkgIlNFTEVDVCAzIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUK LUIJNDAJUm93RGVzY3JpcHRpb24JIDEgImdlbmVyYXRlX3NlcmllcyIgTk5OTiAwIE5OTk4g NCAtMSAwCitCCTQ2CVJvd0Rlc2NyaXB0aW9uCSAxICJnZW5lcmF0ZV9zZXJpZXMiIE5OTk4g MCBOTk5OIDQgLTEgMCBOTk5OIDAKIEIJMTIJRGF0YVJvdwkgMSAyICc0MicKIEIJMTIJRGF0 YVJvdwkgMSAyICc0MycKIEIJMTIJRGF0YVJvdwkgMSAyICc0NCcKQEAgLTI4LDcgKzI4LDcg QEAgQgkxMglEYXRhUm93CSAxIDIgJzQ1JwogQgkxMwlDb21tYW5kQ29tcGxldGUJICJTRUxF Q1QgNCIKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTQwCVJvd0Rl c2NyaXB0aW9uCSAxICJnZW5lcmF0ZV9zZXJpZXMiIE5OTk4gMCBOTk5OIDQgLTEgMAorQgk0 NglSb3dEZXNjcmlwdGlvbgkgMSAiZ2VuZXJhdGVfc2VyaWVzIiBOTk5OIDAgTk5OTiA0IC0x IDAgTk5OTiAwCiBCCTEyCURhdGFSb3cJIDEgMiAnNDInCiBCCTEyCURhdGFSb3cJIDEgMiAn NDMnCiBCCTEyCURhdGFSb3cJIDEgMiAnNDQnCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1 bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy90cmFuc2FjdGlvbi50cmFjZSBiL3NyYy90ZXN0 L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3RyYW5zYWN0aW9uLnRyYWNlCmluZGV4 IDFkY2MyMzczYzAuLmE2ODY5YzRhNWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMv bGlicHFfcGlwZWxpbmUvdHJhY2VzL3RyYW5zYWN0aW9uLnRyYWNlCisrKyBiL3NyYy90ZXN0 L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3RyYW5zYWN0aW9uLnRyYWNlCkBAIC01 NCw3ICs1NCw3IEBAIEIJMTUJQ29tbWFuZENvbXBsZXRlCSAiSU5TRVJUIDAgMSIKIEIJNQlS ZWFkeUZvclF1ZXJ5CSBJCiBCCTUJUmVhZHlGb3JRdWVyeQkgSQogRgkzNAlRdWVyeQkgIlNF TEVDVCAqIEZST00gcHFfcGlwZWxpbmVfdHN0IgotQgkyNwlSb3dEZXNjcmlwdGlvbgkgMSAi aWQiIE5OTk4gMSBOTk5OIDQgLTEgMAorQgkzMwlSb3dEZXNjcmlwdGlvbgkgMSAiaWQiIE5O Tk4gMSBOTk5OIDQgLTEgMCBOTk5OIDAKIEIJMTEJRGF0YVJvdwkgMSAxICczJwogQgkxMwlD b21tYW5kQ29tcGxldGUJICJTRUxFQ1QgMSIKIEIJNQlSZWFkeUZvclF1ZXJ5CSBJCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdmNzhkZGU2ZTEKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0 aW9uLm91dApAQCAtMCwwICsxLDM3IEBACitcc2V0IEhJREVfQ09MVU1OX0VOQ1JZUFRJT04g ZmFsc2UKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxt ID0gJ3Rlc3QnCispOworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEgg VkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGht ID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURC RUVGJworKTsKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0 ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5 ID0gbm90ZXhpc3QpCispOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgIm5vdGV4 aXN0IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFRBQkxFIHRibF8yOWYzICgKKyAgICBhIGlu dCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5j cnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK1xkIHRibF8yOWYzCisgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorCitcZCsg dGJsXzI5ZjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnRibF8yOWYzIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJn ZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCB0 ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCBj ZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK0RST1AgVEFCTEUgdGJsXzI5ZjM7ICAt LSBGSVhNRTogbmVlZHMgcGdfZHVtcCBzdXBwb3J0IGZvciBwZ191cGdyYWRlIHRlc3RzCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUu LjJhYTBlMTYzMjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0 CkBAIC03Myw2ICs3Myw4IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGJhc2V0 eXBlfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ190eXBlIHt0eXBj b2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdf YXR0cmlidXRlIHthdHRyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNoZWNr aW5nIHBnX2F0dHJpYnV0ZSB7YXR0dHlwaWR9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTog IGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0Y2VrfSA9PiBwZ19jb2xlbmNrZXkge29pZH0K K05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVhbHR5cGlkfSA9PiBwZ190 eXBlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNvbGxhdGlv bn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7 cmVsbmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5n IHBnX2NsYXNzIHtyZWx0eXBlfSA9PiBwZ190eXBlIHtvaWR9CkBAIC0yNjYsMyArMjY4LDcg QEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBwZ19k YXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJv d25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3Jp cHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElDRTog IGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9PiBw Z19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2Vrb3du ZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5 ZGF0YSB7Y2tkY2VraWR9ID0+IHBnX2NvbGVuY2tleSB7b2lkfQorTk9USUNFOiAgY2hlY2tp bmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY21raWR9ID0+IHBnX2NvbG1hc3RlcmtleSB7b2lk fQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggODZk NzU1YWE0NC4uNGEzNjYwNzRkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29w cl9zYW5pdHkub3V0CkBAIC0xNzUsMTMgKzE3NSwxNCBAQCBXSEVSRSBwMS5vaWQgIT0gcDIu b2lkIEFORAogT1JERVIgQlkgMSwgMjsKICAgICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAg fCAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGJ5dGVhICAgICAgICAgICAgICAg ICAgICAgICB8IHBnX2VuY3J5cHRlZF9kZXQKICBiaWdpbnQgICAgICAgICAgICAgICAgICAg ICAgfCB4aWQ4CiAgdGV4dCAgICAgICAgICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyCiAg dGV4dCAgICAgICAgICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcKICB0aW1l c3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBi aXQgICAgICAgICAgICAgICAgICAgICAgICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNo b3QgICAgICAgICAgICAgICB8IHBnX3NuYXBzaG90Ci0oNiByb3dzKQorKDcgcm93cykKIAog U0VMRUNUIERJU1RJTkNUIHAxLnByb2FyZ3R5cGVzWzFdOjpyZWd0eXBlLCBwMi5wcm9hcmd0 eXBlc1sxXTo6cmVndHlwZQogRlJPTSBwZ19wcm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBA IC0xOTcsMTIgKzE5OCwxMyBAQCBXSEVSRSBwMS5vaWQgIT0gcDIub2lkIEFORAogT1JERVIg QlkgMSwgMjsKICAgICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAgfCAgICAgICBwcm9hcmd0 eXBlcyAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGJ5dGVhICAgICAgICAgICAgICAgICAgICAgICB8IHBnX2Vu Y3J5cHRlZF9kZXQKICBpbnRlZ2VyICAgICAgICAgICAgICAgICAgICAgfCB4aWQKICB0aW1l c3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBi aXQgICAgICAgICAgICAgICAgICAgICAgICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNo b3QgICAgICAgICAgICAgICB8IHBnX3NuYXBzaG90CiAgYW55cmFuZ2UgICAgICAgICAgICAg ICAgICAgIHwgYW55bXVsdGlyYW5nZQotKDUgcm93cykKKyg2IHJvd3MpCiAKIFNFTEVDVCBE SVNUSU5DVCBwMS5wcm9hcmd0eXBlc1syXTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMl06 OnJlZ3R5cGUKIEZST00gcGdfcHJvYyBBUyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtODQxLDYg Kzg0Myw4IEBAIHhpZDhnZSh4aWQ4LHhpZDgpCiB4aWQ4ZXEoeGlkOCx4aWQ4KQogeGlkOG5l KHhpZDgseGlkOCkKIHhpZDhjbXAoeGlkOCx4aWQ4KQorcGdfZW5jcnlwdGVkX2RldF9lcShw Z19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpCitwZ19lbmNyeXB0ZWRfZGV0X25l KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCkKIC0tIHJlc3RvcmUgbm9ybWFs IG91dHB1dCBtb2RlCiBcYVx0CiAtLSBMaXN0IG9mIGZ1bmN0aW9ucyB1c2VkIGJ5IGxpYnBx J3MgZmUtbG9iai5jCkBAIC05ODgsNyArOTkyLDkgQEAgV0hFUkUgYy5jYXN0bWV0aG9kID0g J2InIEFORAogIHhtbCAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAg ICAgMCB8IGEKICB4bWwgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAg ICAgIDAgfCBhCiAgeG1sICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAg ICAgICAwIHwgYQotKDEwIHJvd3MpCisgYnl0ZWEgICAgICAgICAgICAgfCBwZ19lbmNyeXB0 ZWRfZGV0ICB8ICAgICAgICAwIHwgZQorIGJ5dGVhICAgICAgICAgICAgIHwgcGdfZW5jcnlw dGVkX3JuZCAgfCAgICAgICAgMCB8IGUKKygxMiByb3dzKQogCiAtLSAqKioqKioqKioqKioq KioqIHBnX2NvbnZlcnNpb24gKioqKioqKioqKioqKioqKgogLS0gTG9vayBmb3IgaWxsZWdh bCB2YWx1ZXMgaW4gcGdfY29udmVyc2lvbiBmaWVsZHMuCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wcmVwYXJlLm91dAppbmRleCA1ODE1ZTE3YjM5Li40NDgyYTY1ZDI0IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQKQEAgLTE2MiwyNiArMTYyLDI2IEBA IFBSRVBBUkUgcTcodW5rbm93bikgQVMKIC0tIERNTCBzdGF0ZW1lbnRzCiBQUkVQQVJFIHE4 IEFTCiAgICAgVVBEQVRFIHRlbmsxIFNFVCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVuaXF1ZTEg PSAkMTsKLVNFTEVDVCBuYW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0 X3R5cGVzIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50cworU0VMRUNUIG5hbWUsIHN0YXRl bWVudCwgcGFyYW1ldGVyX3R5cGVzLCBwYXJhbWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRl cl9vcmlnX2NvbHVtbnMsIHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVu dHMKICAgICBPUkRFUiBCWSBuYW1lOwotIG5hbWUgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICBwYXJhbWV0ZXJfdHlwZXMgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlw ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBxMiAgIHwgUFJFUEFS RSBxMih0ZXh0KSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICt8IHt0ZXh0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwge25hbWUsYm9vbGVhbixib29sZWFufQotICAgICAgfCAgICAgICAgIFNFTEVDVCBk YXRuYW1lLCBkYXRpc3RlbXBsYXRlLCBkYXRhbGxvd2Nvbm4gICAgICAgICAgICAgK3wgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAg ICAgIHwgICAgICAgICBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAkMTsgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCi0gcTMgICB8IFBSRVBBUkUgcTModGV4dCwgaW50LCBmbG9h dCwgYm9vbGVhbiwgc21hbGxpbnQpIEFTICAgICAgICAgICAgICArfCB7dGV4dCxpbnRlZ2Vy LCJkb3VibGUgcHJlY2lzaW9uIixib29sZWFuLHNtYWxsaW50fSB8IHtpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQot ICAgICAgfCAgICAgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgc3RyaW5nNCA9ICQx IEFORCAoZm91ciA9ICQyIE9SK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgICAgICB0ZW4gPSAkMzo6YmlnaW50 IE9SIHRydWUgPSAkNCBPUiBvZGQgPSAkNTo6aW50KSAgICAgICAgICt8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAg ICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IAotIHE1ICAgfCBQUkVQQVJFIHE1KGludCwgdGV4dCkgQVMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIsdGV4dH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KLSAgICAgIHwg ICAgICAgICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBPUiBzdHJp bmd1MSA9ICQyICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgCi0gICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHE2ICAgfCBQUkVQQVJFIHE2 IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg K3wge2ludGVnZXIsbmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixu YW1lLG5hbWUsbmFtZX0KLSAgICAgIHwgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUg dW5pcXVlMSA9ICQxIEFORCBzdHJpbmd1MSA9ICQyOyAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTcgICB8IFBSRVBBUkUg cTcodW5rbm93bikgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArfCB7cGF0aH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHt0ZXh0LHBhdGh9Ci0gICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHJvYWQgV0hFUkUg dGhlcGF0aCA9ICQxOyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHE4ICAgfCBQUkVQQVJF IHE4IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgK3wge2ludGVnZXIsbmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAKLSAgICAgIHwgICAgIFVQREFURSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVS RSB1bmlxdWUxID0gJDE7ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgbmFtZSB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXRlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgIHBhcmFtZXRlcl90eXBlcyAgICAgICAgICAgICAgICAgICB8IHBhcmFt ZXRlcl9vcmlnX3RhYmxlcyB8IHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlw ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcTIgICB8IFBSRVBBUkUgcTIo dGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr fCB7dGV4dH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHstfSAgICAgICAgICAgICAgICAgICB8IHswfSAgICAgICAgICAgICAgICAgICAgfCB7bmFt ZSxib29sZWFuLGJvb2xlYW59CisgICAgICB8ICAgICAgICAgU0VMRUNUIGRhdG5hbWUsIGRh dGlzdGVtcGxhdGUsIGRhdGFsbG93Y29ubiAgICAgICAgICAgICArfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBG Uk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAkMTsgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAor IHEzICAgfCBQUkVQQVJFIHEzKHRleHQsIGludCwgZmxvYXQsIGJvb2xlYW4sIHNtYWxsaW50 KSBBUyAgICAgICAgICAgICAgK3wge3RleHQsaW50ZWdlciwiZG91YmxlIHByZWNpc2lvbiIs Ym9vbGVhbixzbWFsbGludH0gfCB7LSwtLC0sLSwtfSAgICAgICAgICAgfCB7MCwwLDAsMCww fSAgICAgICAgICAgIHwge2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsbmFtZSxuYW1lLG5hbWV9CisgICAgICB8ICAgICAgICAgU0VMRUNUICog RlJPTSB0ZW5rMSBXSEVSRSBzdHJpbmc0ID0gJDEgQU5EIChmb3VyID0gJDIgT1IrfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwg ICAgICAgICB0ZW4gPSAkMzo6YmlnaW50IE9SIHRydWUgPSAkNCBPUiBvZGQgPSAkNTo6aW50 KSAgICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8IAorICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgCisgcTUgICB8IFBSRVBBUkUgcTUoaW50LCB0ZXh0 KSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdl cix0ZXh0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLC19ICAg ICAgICAgICAgICAgICB8IHswLDB9ICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0K KyAgICAgIHwgICAgICAgICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPSAk MSBPUiBzdHJpbmd1MSA9ICQyICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8IAorICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgcTYgICB8IFBSRVBBUkUgcTYg QVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr fCB7aW50ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHstLC19ICAgICAgICAgICAgICAgICB8IHswLDB9ICAgICAgICAgICAgICAgICAgfCB7aW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5h bWUsbmFtZX0KKyAgICAgIHwgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVl MSA9ICQxIEFORCBzdHJpbmd1MSA9ICQyOyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8IAorIHE3ICAgfCBQUkVQQVJFIHE3KHVua25vd24p IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge3BhdGh9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7LX0gICAg ICAgICAgICAgICAgICAgfCB7MH0gICAgICAgICAgICAgICAgICAgIHwge3RleHQscGF0aH0K KyAgICAgIHwgICAgIFNFTEVDVCAqIEZST00gcm9hZCBXSEVSRSB0aGVwYXRoID0gJDE7ICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8IAorIHE4ICAgfCBQUkVQQVJFIHE4IEFTICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7LSx0ZW5rMX0gICAgICAg ICAgICAgfCB7MCwxNH0gICAgICAgICAgICAgICAgIHwgCisgICAgICB8ICAgICBVUERBVEUg dGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOyAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKICg2 IHJvd3MpCiAKIC0tIHRlc3QgREVBTExPQ0FURSBBTEw7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dAppbmRleCA2MGFjYmQxMjQxLi4zMzk1NmY2OTkzIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIzNyw2ICsyMzcsMzEgQEAgU0VMRUNUIDMgQVMg eCwgJ0hlbGxvJywgNCBBUyB5LCB0cnVlIEFTICJkaXJ0eVxuYW1lIiBcZ2Rlc2MgXGcKICAz IHwgSGVsbG8gICAgfCA0IHwgdAogKDEgcm93KQogCistLSBcZ2VuY3IKKy0tIChUaGlzIGp1 c3QgdGVzdHMgdGhlIHBhcmFtZXRlciBwYXNzaW5nOyB0aGVyZSBpcyBubyBlbmNyeXB0aW9u IGhlcmUuKQorQ1JFQVRFIFRBQkxFIHRlc3RfZ2VuY3IgKGEgaW50LCBiIHRleHQpOworSU5T RVJUIElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKDEsICdvbmUnKSBcZ2VuY3IKK1NFTEVDVCAq IEZST00gdGVzdF9nZW5jciBXSEVSRSBhID0gMSBcZ2VuY3IKKyBhIHwgIGIgIAorLS0tKy0t LS0tCisgMSB8IG9uZQorKDEgcm93KQorCitJTlNFUlQgSU5UTyB0ZXN0X2dlbmNyIFZBTFVF UyAoJDEsICQyKSBcZ2VuY3IgMiAndHdvJworU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdI RVJFIGEgSU4gKCQxLCAkMikgXGdlbmNyIDIgMworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAy IHwgdHdvCisoMSByb3cpCisKKy0tIHRlc3QgcGFyc2UgZXJyb3IKK1NFTEVDVCAqIEZST00g dGVzdF9nZW5jciBXSEVSRSBhID0geCBcZ2VuY3IKK0VSUk9SOiAgY29sdW1uICJ4IiBkb2Vz IG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9 IHggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0g dGVzdCBiaW5kIGVycm9yCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9ICQx IFxnZW5jcgorRVJST1I6ICBiaW5kIG1lc3NhZ2Ugc3VwcGxpZXMgMCBwYXJhbWV0ZXJzLCBi dXQgcHJlcGFyZWQgc3RhdGVtZW50ICIiIHJlcXVpcmVzIDEKIC0tIFxnZXhlYwogY3JlYXRl IHRlbXBvcmFyeSB0YWJsZSBnZXhlY190ZXN0KGEgaW50LCBiIHRleHQsIGMgZGF0ZSwgZCBm bG9hdCk7CiBzZWxlY3QgZm9ybWF0KCdjcmVhdGUgaW5kZXggb24gZ2V4ZWNfdGVzdCglSSkn LCBhdHRuYW1lKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA3ZWMz ZDI2ODhmLi40MmUzOGQ2NmQxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dApAQCAtMTQyMywxMSArMTQyMywxMyBAQCBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzfCBTRUxF Q1QgcC5uYW1lLAogICAgIHAuc3RhdGVtZW50LAogICAgIHAucHJlcGFyZV90aW1lLAogICAg IHAucGFyYW1ldGVyX3R5cGVzLAorICAgIHAucGFyYW1ldGVyX29yaWdfdGFibGVzLAorICAg IHAucGFyYW1ldGVyX29yaWdfY29sdW1ucywKICAgICBwLnJlc3VsdF90eXBlcywKICAgICBw LmZyb21fc3FsLAogICAgIHAuZ2VuZXJpY19wbGFucywKICAgICBwLmN1c3RvbV9wbGFucwot ICAgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnQoKSBwKG5hbWUsIHN0YXRlbWVudCwgcHJl cGFyZV90aW1lLCBwYXJhbWV0ZXJfdHlwZXMsIHJlc3VsdF90eXBlcywgZnJvbV9zcWwsIGdl bmVyaWNfcGxhbnMsIGN1c3RvbV9wbGFucyk7CisgICBGUk9NIHBnX3ByZXBhcmVkX3N0YXRl bWVudCgpIHAobmFtZSwgc3RhdGVtZW50LCBwcmVwYXJlX3RpbWUsIHBhcmFtZXRlcl90eXBl cywgcGFyYW1ldGVyX29yaWdfdGFibGVzLCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zLCByZXN1 bHRfdHlwZXMsIGZyb21fc3FsLCBnZW5lcmljX3BsYW5zLCBjdXN0b21fcGxhbnMpOwogcGdf cHJlcGFyZWRfeGFjdHN8IFNFTEVDVCBwLnRyYW5zYWN0aW9uLAogICAgIHAuZ2lkLAogICAg IHAucHJlcGFyZWQsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5 cGVfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHku b3V0CmluZGV4IGQzYWMwOGM5ZWUuLmZjMGM1ODk2ZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0CkBAIC0xNyw3ICsxNyw3IEBAIFNFTEVDVCB0 MS5vaWQsIHQxLnR5cG5hbWUKIEZST00gcGdfdHlwZSBhcyB0MQogV0hFUkUgdDEudHlwbmFt ZXNwYWNlID0gMCBPUgogICAgICh0MS50eXBsZW4gPD0gMCBBTkQgdDEudHlwbGVuICE9IC0x IEFORCB0MS50eXBsZW4gIT0gLTIpIE9SCi0gICAgKHQxLnR5cHR5cGUgbm90IGluICgnYics ICdjJywgJ2QnLCAnZScsICdtJywgJ3AnLCAncicpKSBPUgorICAgICh0MS50eXB0eXBlIG5v dCBpbiAoJ2InLCAnYycsICdkJywgJ2UnLCAnbScsICdwJywgJ3InLCAneScpKSBPUgogICAg IE5PVCB0MS50eXBpc2RlZmluZWQgT1IKICAgICAodDEudHlwYWxpZ24gbm90IGluICgnYycs ICdzJywgJ2knLCAnZCcpKSBPUgogICAgICh0MS50eXBzdG9yYWdlIG5vdCBpbiAoJ3AnLCAn eCcsICdlJywgJ20nKSk7CkBAIC03NSw3ICs3NSw5IEBAIE9SREVSIEJZIHQxLm9pZDsKICA0 NjAwIHwgcGdfYnJpbl9ibG9vbV9zdW1tYXJ5CiAgNDYwMSB8IHBnX2JyaW5fbWlubWF4X211 bHRpX3N1bW1hcnkKICA1MDE3IHwgcGdfbWN2X2xpc3QKLSg2IHJvd3MpCisgODI0MyB8IHBn X2VuY3J5cHRlZF9kZXQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZAorKDggcm93cykKIAog LS0gTWFrZSBzdXJlIHR5cGFycmF5IHBvaW50cyB0byBhICJ0cnVlIiBhcnJheSB0eXBlIG9m IG91ciBvd24gYmFzZQogU0VMRUNUIHQxLm9pZCwgdDEudHlwbmFtZSBhcyBiYXNldHlwZSwg dDIudHlwbmFtZSBhcyBhcnJheXR5cGUsCkBAIC0yMTAsNyArMjEyLDggQEAgT1JERVIgQlkg MTsKICBlICAgICAgIHwgZW51bV9pbgogIG0gICAgICAgfCBtdWx0aXJhbmdlX2luCiAgciAg ICAgICB8IHJhbmdlX2luCi0oNSByb3dzKQorIHkgICAgICAgfCBieXRlYWluCisoNiByb3dz KQogCiAtLSBDaGVjayBmb3IgYm9ndXMgdHlwb3V0cHV0IHJvdXRpbmVzCiAtLSBBcyBvZiA4 LjAsIHRoaXMgY2hlY2sgZmluZHMgcmVmY3Vyc29yLCB3aGljaCBpcyBib3Jyb3dpbmcKQEAg LTI1NSw3ICsyNTgsOCBAQCBPUkRFUiBCWSAxOwogIGUgICAgICAgfCBlbnVtX291dAogIG0g ICAgICAgfCBtdWx0aXJhbmdlX291dAogIHIgICAgICAgfCByYW5nZV9vdXQKLSg0IHJvd3Mp CisgeSAgICAgICB8IGJ5dGVhb3V0CisoNSByb3dzKQogCiAtLSBEb21haW5zIHNob3VsZCBo YXZlIHNhbWUgdHlwb3V0cHV0IGFzIHRoZWlyIGJhc2UgdHlwZXMKIFNFTEVDVCB0MS5vaWQs IHQxLnR5cG5hbWUsIHQyLm9pZCwgdDIudHlwbmFtZQpAQCAtMzM1LDcgKzMzOSw4IEBAIE9S REVSIEJZIDE7CiAgZSAgICAgICB8IGVudW1fcmVjdgogIG0gICAgICAgfCBtdWx0aXJhbmdl X3JlY3YKICByICAgICAgIHwgcmFuZ2VfcmVjdgotKDUgcm93cykKKyB5ICAgICAgIHwgYnl0 ZWFyZWN2CisoNiByb3dzKQogCiAtLSBDaGVjayBmb3IgYm9ndXMgdHlwc2VuZCByb3V0aW5l cwogLS0gQXMgb2YgNy40LCB0aGlzIGNoZWNrIGZpbmRzIHJlZmN1cnNvciwgd2hpY2ggaXMg Ym9ycm93aW5nCkBAIC0zODAsNyArMzg1LDggQEAgT1JERVIgQlkgMTsKICBlICAgICAgIHwg ZW51bV9zZW5kCiAgbSAgICAgICB8IG11bHRpcmFuZ2Vfc2VuZAogIHIgICAgICAgfCByYW5n ZV9zZW5kCi0oNCByb3dzKQorIHkgICAgICAgfCBieXRlYXNlbmQKKyg1IHJvd3MpCiAKIC0t IERvbWFpbnMgc2hvdWxkIGhhdmUgc2FtZSB0eXBzZW5kIGFzIHRoZWlyIGJhc2UgdHlwZXMK IFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUsIHQyLm9pZCwgdDIudHlwbmFtZQpAQCAtNzA3 LDYgKzcxMyw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90eXBlcyBBUyBTRUxFQ1QKICAg J3R4dCc6OnRleHQsCiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4REVBREJFRUYnOjpieXRlYSwK KyAgRSdcXHhERUFEQkVFRic6OnBnX2VuY3J5cHRlZF9ybmQsCisgIEUnXFx4REVBREJFRUYn OjpwZ19lbmNyeXB0ZWRfZGV0LAogICBCJzEwMDAxJzo6Yml0LAogICBCJzEwMDAxJzo6dmFy Yml0IEFTIHZhcmJpdCwKICAgJzEyLjM0Jzo6bW9uZXksCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZQppbmRleCAxMDNlMTE0ODNkLi5mZmNhMjA2YzZmIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEyOSw2ICsxMjksOSBAQCB0ZXN0OiBwbGFuY2Fj aGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUg Y29udmVyc2lvbiB0cgogIyAtLS0tLS0tLS0tCiB0ZXN0OiBwYXJ0aXRpb25fam9pbiBwYXJ0 aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFydGl0aW9uX2Fn Z3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21wcmVzc2lvbiBt ZW1vaXplIHN0YXRzCiAKKyMgV0lQCit0ZXN0OiBjb2x1bW5fZW5jcnlwdGlvbgorCiAjIGV2 ZW50X3RyaWdnZXIgY2Fubm90IHJ1biBjb25jdXJyZW50bHkgd2l0aCBhbnkgdGVzdCB0aGF0 IHJ1bnMgRERMCiAjIG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBhbmQgc2hvdWxk IHJ1biBsYXRlIGZvciBiZXN0IGNvdmVyYWdlCiB0ZXN0OiBldmVudF90cmlnZ2VyIG9pZGpv aW5zCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jIGIv c3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYwppbmRleCBhNGIzNTRjOWU2Li44 YWQxZjQ1OGQ1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFp bi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKQEAgLTgyLDcg KzgyLDcgQEAgcHNxbF9zdGFydF90ZXN0KGNvbnN0IGNoYXIgKnRlc3RuYW1lLAogCQkJCQkg ICBiaW5kaXIgPyBiaW5kaXIgOiAiIiwKIAkJCQkJICAgYmluZGlyID8gIi8iIDogIiIsCiAJ CQkJCSAgIGRibGlzdC0+c3RyLAotCQkJCQkgICAiLXYgSElERV9UQUJMRUFNPW9uIC12IEhJ REVfVE9BU1RfQ09NUFJFU1NJT049b24iLAorCQkJCQkgICAiLXYgSElERV9UQUJMRUFNPW9u IC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24gLXYgSElERV9DT0xVTU5fRU5DUllQVElP Tj1vbiIsCiAJCQkJCSAgIGluZmlsZSwKIAkJCQkJICAgb3V0ZmlsZSk7CiAJaWYgKG9mZnNl dCA+PSBzaXplb2YocHNxbF9jbWQpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29sdW1uX2VuY3J5cHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1u X2VuY3J5cHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjBjYTFkNTYyMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j b2x1bW5fZW5jcnlwdGlvbi5zcWwKQEAgLTAsMCArMSwyOCBAQAorXHNldCBISURFX0NPTFVN Tl9FTkNSWVBUSU9OIGZhbHNlCisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJ VEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVk X3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAor ICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNv bHVtbl9lbmNyeXB0aW9uX2tleSA9IG5vdGV4aXN0KQorKTsKKworQ1JFQVRFIFRBQkxFIHRi bF8yOWYzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRF RCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworXGQgdGJsXzI5 ZjMKK1xkKyB0YmxfMjlmMworCitEUk9QIFRBQkxFIHRibF8yOWYzOyAgLS0gRklYTUU6IG5l ZWRzIHBnX2R1bXAgc3VwcG9ydCBmb3IgcGdfdXBncmFkZSB0ZXN0cwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJlcGFyZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wcmVwYXJlLnNxbAppbmRleCBjNjA5OGRjOTVjLi43ZGI3ODg3MzVjIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wcmVwYXJlLnNxbApAQCAtNzUsNyArNzUsNyBAQCBDUkVBVEUgVEVNUE9SQVJZ IFRBQkxFIHE1X3ByZXBfbm9kYXRhIEFTIEVYRUNVVEUgcTUoMjAwLCAnRFRBQUFBJykKIFBS RVBBUkUgcTggQVMKICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUg dW5pcXVlMSA9ICQxOwogCi1TRUxFQ1QgbmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJfdHlw ZXMsIHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKK1NFTEVDVCBu YW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFibGVz LCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zLCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVwYXJl ZF9zdGF0ZW1lbnRzCiAgICAgT1JERVIgQlkgbmFtZTsKIAogLS0gdGVzdCBERUFMTE9DQVRF IEFMTDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggMTE0OWM2YTgzOS4uZTg4YzcwZDMw MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKQEAgLTExOSw2ICsxMTksMjMgQEAgQ1JFQVRF IFRBQkxFIGJ1YnVidShhIGludCkgXGdkZXNjCiAtLSBhbGwgb24gb25lIGxpbmUKIFNFTEVD VCAzIEFTIHgsICdIZWxsbycsIDQgQVMgeSwgdHJ1ZSBBUyAiZGlydHlcbmFtZSIgXGdkZXNj IFxnCiAKKworLS0gXGdlbmNyCistLSAoVGhpcyBqdXN0IHRlc3RzIHRoZSBwYXJhbWV0ZXIg cGFzc2luZzsgdGhlcmUgaXMgbm8gZW5jcnlwdGlvbiBoZXJlLikKKworQ1JFQVRFIFRBQkxF IHRlc3RfZ2VuY3IgKGEgaW50LCBiIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBW QUxVRVMgKDEsICdvbmUnKSBcZ2VuY3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVS RSBhID0gMSBcZ2VuY3IKKworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKCQxLCAk MikgXGdlbmNyIDIgJ3R3bycKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhIElO ICgkMSwgJDIpIFxnZW5jciAyIDMKKworLS0gdGVzdCBwYXJzZSBlcnJvcgorU0VMRUNUICog RlJPTSB0ZXN0X2dlbmNyIFdIRVJFIGEgPSB4IFxnZW5jcgorLS0gdGVzdCBiaW5kIGVycm9y CitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9ICQxIFxnZW5jcgorCisKIC0t IFxnZXhlYwogCiBjcmVhdGUgdGVtcG9yYXJ5IHRhYmxlIGdleGVjX3Rlc3QoYSBpbnQsIGIg dGV4dCwgYyBkYXRlLCBkIGZsb2F0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3R5cGVfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5 LnNxbAppbmRleCA1ZWRjMWYxZjZlLi4zNGRkMTk0NTZkIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvdHlwZV9zYW5pdHkuc3FsCkBAIC0yMCw3ICsyMCw3IEBACiBGUk9NIHBnX3R5cGUgYXMg dDEKIFdIRVJFIHQxLnR5cG5hbWVzcGFjZSA9IDAgT1IKICAgICAodDEudHlwbGVuIDw9IDAg QU5EIHQxLnR5cGxlbiAhPSAtMSBBTkQgdDEudHlwbGVuICE9IC0yKSBPUgotICAgICh0MS50 eXB0eXBlIG5vdCBpbiAoJ2InLCAnYycsICdkJywgJ2UnLCAnbScsICdwJywgJ3InKSkgT1IK KyAgICAodDEudHlwdHlwZSBub3QgaW4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ20nLCAncCcs ICdyJywgJ3knKSkgT1IKICAgICBOT1QgdDEudHlwaXNkZWZpbmVkIE9SCiAgICAgKHQxLnR5 cGFsaWduIG5vdCBpbiAoJ2MnLCAncycsICdpJywgJ2QnKSkgT1IKICAgICAodDEudHlwc3Rv cmFnZSBub3QgaW4gKCdwJywgJ3gnLCAnZScsICdtJykpOwpAQCAtNTI5LDYgKzUyOSw4IEBA IENSRUFURSBUQUJMRSB0YWJfY29yZV90eXBlcyBBUyBTRUxFQ1QKICAgJ3R4dCc6OnRleHQs CiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4REVBREJFRUYnOjpieXRlYSwKKyAgRSdcXHhERUFE QkVFRic6OnBnX2VuY3J5cHRlZF9ybmQsCisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0 ZWRfZGV0LAogICBCJzEwMDAxJzo6Yml0LAogICBCJzEwMDAxJzo6dmFyYml0IEFTIHZhcmJp dCwKICAgJzEyLjM0Jzo6bW9uZXksCgpiYXNlLWNvbW1pdDogMTY3OWQ1N2E1NTA1MzBlYmVm NjI0NzM4Y2MxYjEyNjQ3NzE0ZmNhNgotLSAKMi4zNy4wCgo= --------------Y2IcmrSrYvWHsgelFREJIEO9--