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 1oBKe9-0000rh-3n for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Jul 2022 18:30:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oBKe8-0000Ti-29 for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Jul 2022 18:30:08 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oBKe6-0000TZ-9w for pgsql-hackers@lists.postgresql.org; Tue, 12 Jul 2022 18:30:07 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oBKdu-0003mP-F9 for pgsql-hackers@postgresql.org; Tue, 12 Jul 2022 18:30:05 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 5B251320030E for ; Tue, 12 Jul 2022 14:29:50 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Tue, 12 Jul 2022 14:29:50 -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=1657650589; x=1657736989; bh=8ugtuhV9yDNncgbUrnJxJC2gTHpH jSeAbZtii0k05FQ=; b=0Denhu7vudYGqSQUcQSCqfJxLceix+MRma5DSPHzzc/W g8UhOjYulwRPZuikAa7EB/8acNqOkIisyCW1Pz70E9yxkdNIyOdXDn6kI9YdmRHQ h9c8w7yfNa8oQ84o2Zr2pDi2Ux/DnmMpshZDuYC+WUr6/iM8viHeeEY2dhZgt+WC eF8eHs6yUKE7J354PkVMtBi3ggPuZgESmWYjZ8tfuY1peaQuUPNGokVhZTlKh+E8 H6g5w9RpjWsGshszha3kJ5q6ZvLqYSZMVC08qNLbuEbHXm7QY8psVHCMdvyWKt02 ARu8OGWNq5d/MFyVL5UkaligqKHe9av9rv0mrNp1cQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudejhedguddviecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfuhffvfhgjsehmtd erredtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrg htthgvrhhnpeekteetfeehvefhvdeltdefgeeluedtkeekkeevieefueffveejueejheff jeeijeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 12 Jul 2022 14:29:48 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------gC7vd9OZoReC0MCcNI99fYm1" Message-ID: <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> Date: Tue, 12 Jul 2022 20:29:47 +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> In-Reply-To: <79f08a39-a7da-5157-cef4-378fb60c18f8@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. --------------gC7vd9OZoReC0MCcNI99fYm1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Updated patch, to resolve some merge conflicts. Also, I added some CREATE DDL commands. These aren't fully robust yet, but they do the basic job, so it makes the test cases easier to write and read, and they can be referred to in the documentation. (Note that the corresponding DROP aren't there yet.) I also expanded the documentation in the DDL chapter to give a complete recipe of how to set it up and use it. --------------gC7vd9OZoReC0MCcNI99fYm1 Content-Type: text/plain; charset=UTF-8; name="v4-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v4-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA5MmRlOTMyYzZlNDllZjI5ZjU1MDc4NzY3YWJlMmZhZTE2MjJhNzZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAxMiBKdWwgMjAyMiAyMDoyMjoyMiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjRdIFRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uCgpUaGlzIGZlYXR1 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 dGVycHJpc2VkYi5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCAgICAgICAg ICAgICAgICAgICAgfCAgMTggKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAg ICAgICAgICAgICAgIHwgMjc1ICsrKysrKysKIGRvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21s ICAgICAgICAgICAgICAgICAgICB8ICA0NyArKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMzEwICsrKysrKysKIGRvYy9zcmMvc2dtbC9nbG9z c2FyeS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAyMyArCiBkb2Mvc3JjL3NnbWwvbGli cHEuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgfCAyNTcgKysrKystCiBkb2Mvc3JjL3Nn bWwvcHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAzNDYgKysrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMiArCiAu Li4vcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCAgICAgfCAxNDQgKysr KwogLi4uL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICAgIHwgMTA4 ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwg IDQyICstCiBkb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAg fCAgMzMgKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAg IHwgICAyICsKIHNyYy90ZXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZSAgICAg ICAgIHwgICAzICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlICAgICAg ICAgICB8ICAyOSArCiAuLi4vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwgICAgICAgICAg ICAgICAgfCAxODAgKysrKysKIC4uLi9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90 YXRpb24ucGwgICB8IDExOCArKysKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf Y2xpZW50LmMgICAgICB8IDIxMCArKysrKwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf cnVuX2RlY3J5cHQucGwgICAgIHwgIDQxICsKIC4uLi90cmFjZXMvZGlzYWxsb3dlZF9pbl9w aXBlbGluZS50cmFjZSAgICAgICB8ICAgMiArLQogLi4uL3RyYWNlcy9tdWx0aV9waXBlbGlu ZXMudHJhY2UgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vbGlicHFfcGlwZWxpbmUvdHJh Y2VzL25vc3luYy50cmFjZSAgICAgICAgfCAgMjAgKy0KIC4uLi90cmFjZXMvcGlwZWxpbmVf YWJvcnQudHJhY2UgICAgICAgICAgICAgICB8ICAgNCArLQogLi4uL2xpYnBxX3BpcGVsaW5l L3RyYWNlcy9waXBlbGluZV9pZGxlLnRyYWNlIHwgIDE2ICstCiAuLi4vbGlicHFfcGlwZWxp bmUvdHJhY2VzL3ByZXBhcmVkLnRyYWNlICAgICAgfCAgIDYgKy0KIC4uLi90cmFjZXMvc2lt cGxlX3BpcGVsaW5lLnRyYWNlICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2xpYnBxX3Bp cGVsaW5lL3RyYWNlcy9zaW5nbGVyb3cudHJhY2UgICAgIHwgICA2ICstCiAuLi4vbGlicHFf cGlwZWxpbmUvdHJhY2VzL3RyYW5zYWN0aW9uLnRyYWNlICAgfCAgIDIgKy0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dCAgICB8ICAzNyArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDYgKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgIDEyICstCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0ICAgICAgICAgfCAgMzggKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAyNSArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgIDQgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0ICAgICB8ICAyMCAr LQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAz ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMgICAgICAgICAgICB8ICAg MiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsICAgIHwg IDI4ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAg IHwgIDE3ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbCAgICAgICAg ICB8ICAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmggICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgICAgICAgICAg ICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAg ICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICAg ICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgICAgICAg ICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oICAg ICAgICAgICAgfCAgNTUgKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0 YS5oICAgICAgICB8ICA0NiArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJr ZXkuaCAgICAgICAgIHwgIDQ1ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3Mu ZGF0ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRv ci5kYXQgICAgICAgICAgIHwgIDEwICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1p bHkuZGF0ICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0ICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlw ZS5kYXQgICAgICAgICAgICAgICB8ICAxMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29s ZW5jY21kcy5oICAgICAgICAgICAgIHwgIDI0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9wYXJzZXIvYW5h bHl6ZS5oICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX3BhcmFtLmggICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvdGNv cC90Y29wcHJvdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3V0 aWxzL3BsYW5jYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS91 dGlscy9zeXNjYWNoZS5oICAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAgICAgICB8IDE2MiArKysrCiBzcmMvYmFj a2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAgICAgICAgICAgfCAgMTIgKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgICAgICAgIHwgICAyICstCiBzcmMv YmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNy Yy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICAgNCArCiBz cmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAgIHwgICAyICsK IHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMgICAgICAgICAgICAgfCAyNDUg KysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAg fCAgIDYgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAgICAgICAgICAgICAg IHwgIDc0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAg ICAgIHwgIDc0ICsrCiBzcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyAgICAgICAgICAgICAg ICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAg ICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDM5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyAg ICAgICAgICAgICAgfCAgNDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YyAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAg ICAgICAgICAgICAgICAgfCAgNTQgKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAg ICAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlm dW5jcy5jICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxh bmNhY2hlLmMgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5 c2NhY2hlLmMgICAgICAgICAgICB8ICA0OCArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YyAgICAgICAgICAgICAgICAgICAgIHwgIDI2ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQu YyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMxICsKIHNyYy9iaW4vcHNxbC9jb21tb24u YyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzOSArLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmluL3BzcWwvaGVs cC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL3Nl dHRpbmdzLmggICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4vcHNxbC9z dGFydHVwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9leHBvcnRzLnR4dCAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jICAgICAgICAgICAgIHwgIDIwICsKIHNyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jICAgICB8IDc1OCArKysrKysrKysr KysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaCAgICAgICAgICAg ICB8ICAzMyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgICAgICAgICAgICAg ICAgfCA1OTQgKysrKysrKysrKysrKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3Rv Y29sMy5jICAgICAgICAgICB8IDEyMyArKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRy YWNlLmMgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJw cS1mZS5oICAgICAgICAgICAgICAgfCAgMjIgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtaW50LmggICAgICAgICAgICAgIHwgIDM0ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25s cy5tayAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC8uZ2l0aWdub3JlICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBx L3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICB8ICAgNyArCiAuLi4vcG9zdGdyZXNfZmR3L2V4 cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgIDIgKy0KIDExNCBmaWxlcyBjaGFuZ2Vk LCA1MTQ4IGluc2VydGlvbnMoKyksIDE0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dt bAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9t YXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5j cnlwdGlvbi8uZ2l0aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5w bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf Y2xpZW50LmMKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi90ZXN0X3J1bl9kZWNyeXB0LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1v cGVuc3NsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1l bmNyeXB0LmgKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCmluZGV4IDllZDE0OGFiODQuLmUyMWM5YmNjZTMg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9hY3Jvbnltcy5zZ21sCkBAIC01Niw2ICs1NiwxNSBAQCA8dGl0bGU+QWNyb255bXM8 L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48YWNyb255bT5DRUs8L2Fjcm9ueW0+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb2x1bW4gRW5jcnlwdGlvbiBL ZXkKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48YWNyb255bT5DSURSPC9hY3Jvbnlt PjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC02Nyw2ICs3NiwxNSBAQCA8dGl0bGU+QWNy b255bXM8L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48YWNyb255bT5DTUs8L2Fjcm9ueW0+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb2x1bW4gTWFzdGVy IEtleQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3JvbnltPkNQQU48L2Fjcm9u eW0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNGYzZjM3 NWE4NC4uYzVlMzBmODAyOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTEwNSw2ICsxMDUsMjEg QEAgPHRpdGxlPlN5c3RlbSBDYXRhbG9nczwvdGl0bGU+CiAgICAgICA8ZW50cnk+Y29sbGF0 aW9ucyAobG9jYWxlIGluZm9ybWF0aW9uKTwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNr ZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT5jb2x1bW4gZW5jcnlwdGlvbiBrZXlzPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLWNvbGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0 cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5cHRp b24ga2V5IGRhdGE8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij48c3RydWN0 bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAg ICA8ZW50cnk+Y29sdW1uIG1hc3RlciBrZXlzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAg ICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbnN0 cmFpbnQiPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC9saW5rPjwv ZW50cnk+CiAgICAgICA8ZW50cnk+Y2hlY2sgY29uc3RyYWludHMsIHVuaXF1ZSBjb25zdHJh aW50cywgcHJpbWFyeSBrZXkgY29uc3RyYWludHMsIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRz PC9lbnRyeT4KQEAgLTEzNjAsNiArMTM3NSw0MCBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf YXR0cmlidXRlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+YXR0Y2VrPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29s ZW5ja2V5Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwgYSByZWZlcmVuY2Ug dG8gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgZWxzZSAwLgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRyZWFsdHlwaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgSWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIHRoZW4gdGhpcyBjb2x1bW4g aW5kaWNhdGVzIHRoZSB0eXBlIG9mIHRoZQorICAgICAgIGVuY3J5cHRlZCBkYXRhIHRoYXQg aXMgcmVwb3J0ZWQgdG8gdGhlIGNsaWVudC4gIEZvciBlbmNyeXB0ZWQgY29sdW1ucywKKyAg ICAgICB0aGUgZmllbGQgPHN0cnVjdGZpZWxkPmF0dHR5cGlkPC9zdHJ1Y3RmaWVsZD4gaXMg ZWl0aGVyCisgICAgICAgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gb3IgPHR5cGU+ cGdfZW5jcnlwdGVkX3JuZDwvdHlwZT4uICBJZiB0aGUKKyAgICAgICBjb2x1bW4gaXMgbm90 IGVuY3J5cHRlZCwgdGhlbiAwLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5hdHRlbmNhbGc8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQxNjwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVk LCB0aGUgaWRlbnRpZmllciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG07CisgICAgICAg c2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNlayIvPiBmb3IgcG9zc2libGUgdmFsdWVz LgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93Pgog ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+YXR0aW5oY291bnQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgpAQCAtMjQzNyw2ICsyNDg2LDIzMiBAQCA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90 aXRsZT4KICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGct Y29sZW5ja2V5Ij4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0 bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xlbmNr ZXkiPgorICAgPHByaW1hcnk+cGdfY29sZW5ja2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVy bT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tl eTwvc3RydWN0bmFtZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IHRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXlzIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBhY3R1YWwga2V5IG1h dGVyaWFsCisgICBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBpcyBpbiB0aGUgY2F0 YWxvZyA8bGluaworICAgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3Ry dWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz4uCisgIDwvcGFy YT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9z dHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAg PHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4g VHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisg ICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2VrbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5h bWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4g ZW5jcnlwdGlvbiBrZXkgbmFtZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5jZWtvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVm ZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+ cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2Yg dGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3Nl Y3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNvbGVuY2tleWRhdGEiPgorICA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L3RpdGxlPgor CisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgIDxw cmltYXJ5PnBnX2NvbGVuY2tleWRhdGE8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisg IDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwv c3RydWN0bmFtZT4gY29udGFpbnMgdGhlIGtleQorICAgbWF0ZXJpYWwgb2YgY29sdW1uIGVu Y3J5cHRpb24ga2V5cy4gIEVhY2ggY29sdW1uIGVuY3J5cHRpb24ga2V5IG9iamVjdCBjYW4K KyAgIGNvbnRhaW4gc2V2ZXJhbCB2ZXJzaW9ucyBvZiB0aGUga2V5IG1hdGVyaWFsLCBlYWNo IGVuY3J5cHRlZCB3aXRoIGEKKyAgIGRpZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleS4gIFRo YXQgYWxsb3dzIHRoZSBncmFkdWFsIHJvdGF0aW9uIG9mIHRoZQorICAgY29sdW1uIG1hc3Rl ciBrZXlzLiAgVGh1cywgPGxpdGVyYWw+KGNrZGNla2lkLCBja2RjbWtpZCk8L2xpdGVyYWw+ IGlzIGEKKyAgIHVuaXF1ZSBrZXkgb2YgdGhpcyB0YWJsZS4KKyAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgVGhlIGtleSBtYXRlcmlhbCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIHNo b3VsZCBuZXZlciBiZSBkZWNyeXB0ZWQgaW5zaWRlCisgICB0aGUgZGF0YWJhc2UgaW5zdGFu Y2UuICBJdCBpcyBtZWFudCB0byBiZSBzZW50IGFzLWlzIHRvIHRoZSBjbGllbnQsIHdoZXJl CisgICBpdCBpcyBkZWNyeXB0ZWQgdXNpbmcgdGhlIGFzc29jaWF0ZWQgY29sdW1uIG1hc3Rl ciBrZXksIGFuZCB0aGVuIHVzZWQgdG8KKyAgIGVuY3J5cHQgb3IgZGVjcnlwdCBjb2x1bW4g dmFsdWVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRl bnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjZWtpZDwv c3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5j a2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGNvbHVtbiBlbmNy eXB0aW9uIGtleSB0aGlzIGVudHJ5IGJlbG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2tkY21raWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0 ZXJrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L2xpbms+ LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFRoZSBjb2x1bW4gbWFzdGVyIGtleSB0aGF0IHRoZSBrZXkgbWF0 ZXJpYWwgaXMgZW5jcnlwdGVkIHdpdGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+Y2tkY21rYWxnPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MTY8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0 aG0gdXNlZCBmb3IgZW5jcnlwdGluZyB0aGUga2V5IG1hdGVyaWFsOyBzZWUKKyAgICAgICA8 eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jbWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkZW5jdmFsPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Ynl0ZWE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBl bmNyeXB0ZWQgdXNpbmcgdGhlCisgICAgICAgcmVmZXJlbmNlZCBjb2x1bW4gbWFzdGVyIGtl eQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+Cisg ICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRh bG9nLXBnLWNvbG1hc3RlcmtleSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0 ZXJrZXk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFs b2ctcGctY29sbWFzdGVya2V5Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbG1hc3RlcmtleTwvcHJp bWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3Ry dWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9ybWF0 aW9uCisgICBhYm91dCBjb2x1bW4gbWFzdGVyIGtleXMuICBUaGUga2V5cyB0aGVtc2VsdmVz IGFyZSBub3Qgc3RvcmVkIGluIHRoZQorICAgZGF0YWJhc2UuICBUaGUgY2F0YWxvZyBlbnRy eSBvbmx5IGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgaXMgdXNlZCBieQorICAgY2xpZW50 cyB0byBsb2NhdGUgdGhlIGtleXMsIGZvciBleGFtcGxlIGluIGEgZmlsZSBvciBpbiBhIGtl eSBtYW5hZ2VtZW50CisgICBzeXN0ZW0uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPiBDb2x1bW5z PC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+Y21rbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gbWFzdGVyIGtleSBuYW1lCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta293bmVyPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+ PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21rcmVhbG08L3N0cnVjdGZp ZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgQSA8cXVvdGU+cmVhbG08L3F1b3RlPiBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2x1 bW4gbWFzdGVyIGtleS4gIFRoaXMgaXMKKyAgICAgICBhIGZyZWVseSBjaG9zZW4gc3RyaW5n IHRoYXQgaXMgdXNlZCBieSBjbGllbnRzIHRvIGRldGVybWluZSBob3cgdG8gbG9vaworICAg ICAgIHVwIHRoZSBrZXkuICBBIHR5cGljYWwgY29uZmlndXJhdGlvbiB3b3VsZCBwdXQgYWxs IENNS3MgdGhhdCBhcmUgbG9va2VkCisgICAgICAgdXAgaW4gdGhlIHNhbWUgd2F5IGludG8g dGhlIHNhbWUgcmVhbG0uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8 c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29uc3RyYWludCI+CiAgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwK aW5kZXggOGUzMGI4MjI3My4uY2RkMDUzMGVlYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2RhdGF0eXBlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKQEAgLTUz NDIsNCArNTM0Miw1MSBAQCA8dGl0bGU+UHNldWRvLVR5cGVzPC90aXRsZT4KIAogICA8L3Nl Y3QxPgogCisgIDxzZWN0MSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkIj4KKyAgIDx0aXRsZT5U eXBlcyBSZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBB biBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWNvbHVt bi1lbmNyeXB0aW9uIi8+KSBpcworICAgIGludGVybmFsbHkgc3RvcmVkIHVzaW5nIHRoZSB0 eXBlcworICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+IChmb3IgcmFuZG9taXpl ZCBlbmNyeXB0aW9uKSBvcgorICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IChm b3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uKTsgc2VlIDx4cmVmCisgICAgbGlua2VuZD0i ZGF0YXR5cGUtZW5jcnlwdGVkLXRhYmxlIi8+LiAgTW9zdCBvZiB0aGUgZGF0YWJhc2Ugc3lz dGVtIHRyZWF0cworICAgIHRoaXMgYXMgbm9ybWFsIHR5cGVzLiAgRm9yIGV4YW1wbGUsIHRo ZSB0eXBlIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IGhhcworICAgIGFuIGVxdWFs cyBvcGVyYXRvciB0aGF0IGFsbG93cyBsb29rdXAgb2YgZW5jcnlwdGVkIHZhbHVlcy4gIFRo ZSBleHRlcm5hbAorICAgIHJlcHJlc2VudGF0aW9uIG9mIHRoZXNlIHR5cGVzIGlzIHRoZSBz YW1lIGFzIHRoZSA8dHlwZT5ieXRlYTwvdHlwZT4gdHlwZS4KKyAgICBUaHVzLCBjbGllbnRz IHRoYXQgZG9uJ3Qgc3VwcG9ydCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBvciBo YXZlCisgICAgZGlzYWJsZWQgaXQgd2lsbCBzZWUgdGhlIGVuY3J5cHRlZCB2YWx1ZXMgYXMg Ynl0ZSBhcnJheXMuICBDbGllbnRzIHRoYXQKKyAgICBzdXBwb3J0IHRyYW5zcGFyZW50IGRh dGEgZW5jcnlwdGlvbiB3aWxsIG5vdCBzZWUgdGhlc2UgdHlwZXMgaW4gcmVzdWx0CisgICAg c2V0cywgYXMgdGhlIHByb3RvY29sIGxheWVyIHdpbGwgdHJhbnNsYXRlIHRoZW0gYmFjayB0 byBkZWNsYXJlZAorICAgIHVuZGVybHlpbmcgdHlwZSBpbiB0aGUgdGFibGUgZGVmaW5pdGlv bi4KKyAgIDwvcGFyYT4KKworICAgIDx0YWJsZSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkLXRh YmxlIj4KKyAgICAgPHRpdGxlPlR5cGVzIFJlbGF0ZWQgdG8gRW5jcnlwdGlvbjwvdGl0bGU+ CisgICAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wx IiBjb2x3aWR0aD0iMSoiLz4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDIiIGNvbHdp ZHRoPSIzKiIvPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMyIgY29sd2lkdGg9IjIq Ii8+CisgICAgICA8dGhlYWQ+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pk5hbWU8 L2VudHJ5PgorICAgICAgICA8ZW50cnk+U3RvcmFnZSBTaXplPC9lbnRyeT4KKyAgICAgICAg PGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGhl YWQ+CisgICAgICA8dGJvZHk+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5Pjx0eXBl PnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PjEgb3Ig NCBieXRlcyBwbHVzIHRoZSBhY3R1YWwgYmluYXJ5IHN0cmluZzwvZW50cnk+CisgICAgICAg IDxlbnRyeT5lbmNyeXB0ZWQgY29sdW1uIHZhbHVlLCBkZXRlcm1pbmlzdGljIGVuY3J5cHRp b248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRy eT48dHlwZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBlPjwvZW50cnk+CisgICAgICAgIDxlbnRy eT4xIG9yIDQgYnl0ZXMgcGx1cyB0aGUgYWN0dWFsIGJpbmFyeSBzdHJpbmc8L2VudHJ5Pgor ICAgICAgICA8ZW50cnk+ZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSwgcmFuZG9taXplZCBlbmNy eXB0aW9uPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGJvZHk+CisgICAgIDwv dGdyb3VwPgorICAgIDwvdGFibGU+CisgIDwvc2VjdDE+CiAgPC9jaGFwdGVyPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmlu ZGV4IGIwMWUzYWQ1NDQuLjYwN2I0Y2Q3OTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTEyMTEsNiArMTIxMSwz MTYgQEAgPHRpdGxlPkV4Y2x1c2lvbiBDb25zdHJhaW50czwvdGl0bGU+CiAgIDwvc2VjdDI+ CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIj4KKyAg PHRpdGxlPlRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFdpdGggPGZpcnN0dGVybT50cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbjwv Zmlyc3R0ZXJtPiwgY29sdW1ucyBjYW4gYmUKKyAgIHN0b3JlZCBlbmNyeXB0ZWQgaW4gdGhl IGRhdGFiYXNlLiAgVGhlIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gaGFwcGVucyBvbgor ICAgdGhlIGNsaWVudCwgc28gdGhhdCB0aGUgcGxhaW50ZXh0IHZhbHVlIGlzIG5ldmVyIHNl ZW4gaW4gdGhlIGRhdGFiYXNlCisgICBpbnN0YW5jZSBvciBvbiB0aGUgc2VydmVyIGhvc3Rp bmcgdGhlIGRhdGFiYXNlLiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgbW9zdAorICAgb3BlcmF0 aW9ucywgc3VjaCBhcyBmdW5jdGlvbiBjYWxscyBvciBzb3J0aW5nLCBhcmUgbm90IHBvc3Np YmxlIG9uCisgICBlbmNyeXB0ZWQgdmFsdWVzLgorICA8L3BhcmE+CisKKyAgPHNlY3QyPgor ICAgPHRpdGxlPlVzaW5nIFRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRyYW5wYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gdXNlcyB0d28g bGV2ZWxzIG9mIGNyeXB0b2dyYXBoaWMga2V5cy4gIFRoZQorICAgYWN0dWFsIGNvbHVtbiB2 YWx1ZSBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBzeW1tZXRyaWMgYWxnb3JpdGhtLCBzdWNoIGFz IEFFUywKKyAgIHVzaW5nIGEgPGZpcnN0dGVybT5jb2x1bW4gZW5jcnlwdGlvbiBrZXk8L2Zp cnN0dGVybT4KKyAgICg8YWNyb255bT5DRUs8L2Fjcm9ueW0+KS4gIFRoZSBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgaXMgaW4gdHVybiBlbmNyeXB0ZWQKKyAgIHVzaW5nIGFuIGFzc3ltbWV0 cmljIGFsZ29yaXRobSwgc3VjaCBhcyBSU0EsIHVzaW5nIGEgPGZpcnN0dGVybT5jb2x1bW4K KyAgIG1hc3RlciBrZXk8L2ZpcnN0dGVybT4gKDxhY3JvbnltPkNNSzwvYWNyb255bT4pLiAg VGhlIGVuY3J5cHRlZCBDRUsgaXMKKyAgIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2Ugc3lzdGVt LiAgVGhlIENNSyBpcyBub3Qgc3RvcmVkIGluIHRoZSBkYXRhYmFzZQorICAgc3lzdGVtOyBp dCBpcyBzdG9yZWQgb24gdGhlIGNsaWVudCBvciBzb21ld2hlcmUgd2hlcmUgdGhlIGNsaWVu dCBjYW4gYWNjZXNzCisgICBpdCwgc3VjaCBhcyBpbiBhIGxvY2FsIGZpbGUgb3IgaW4gYSBr ZXkgbWFuYWdlbWVudCBzeXN0ZW0uICBUaGUgZGF0YWJhc2UKKyAgIHN5c3RlbSBvbmx5IHJl Y29yZHMgd2hlcmUgdGhlIENNSyBpcyBzdG9yZWQgYW5kIHByb3ZpZGVzIHRoaXMgaW5mb3Jt YXRpb24KKyAgIHRvIHRoZSBjbGllbnQuICBXaGVuIHJvd3MgY29udGFpbmluZyBlbmNyeXB0 ZWQgY29sdW1ucyBhcmUgc2VudCB0byB0aGUKKyAgIGNsaWVudCwgdGhlIHNlcnZlciBmaXJz dCBzZW5kcyBhbnkgbmVjZXNzYXJ5IENNSyBpbmZvcm1hdGlvbiwgZm9sbG93ZWQgYnkKKyAg IGFueSByZXF1aXJlZCBDRUsuICBUaGUgY2xpZW50IHRoZW4gbG9va3MgdXAgdGhlIENNSyBh bmQgdXNlcyB0aGF0IHRvCisgICBkZWNyeXB0IHRoZSBDRUsuICBUaGVuIGl0IGRlY3J5cHRz IGluY29taW5nIHJvdyBkYXRhIHVzaW5nIHRoZSBDRUsgYW5kCisgICBwcm92aWRlcyB0aGUg ZGVjcnlwdGVkIHJvdyBkYXRhIHRvIHRoZSBhcHBsaWNhdGlvbi4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgSGVyZSBpcyBhbiBleGFtcGxlIGRlY2xhcmluZyBhIGNvbHVtbiBhcyBl bmNyeXB0ZWQ6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgK KyAgICBpZCBpbnQgUFJJTUFSWSBLRVksCisgICAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICAg IC4uLgorICAgIGNyZWRpdGNhcmRfbnVtIHRleHQgPGVtcGhhc2lzPkVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKTwvZW1waGFzaXM+CispOworPC9wcm9n cmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ29sdW1uIGVuY3J5cHRp b24gc3VwcG9ydHMgPGZpcnN0dGVybT5yYW5kb21pemVkPC9maXJzdHRlcm0+CisgICAoYWxz byBrbm93biBhcyA8Zmlyc3R0ZXJtPnByb2JhYmlsaXN0aWM8L2ZpcnN0dGVybT4pIGFuZAor ICAgPGZpcnN0dGVybT5kZXRlcm1pbmlzdGljPC9maXJzdHRlcm0+IGVuY3J5cHRpb24uICBU aGUgYWJvdmUgZXhhbXBsZSB1c2VzCisgICByYW5kb21pemVkIGVuY3J5cHRpb24sIHdoaWNo IGlzIHRoZSBkZWZhdWx0LiAgUmFuZG9taXplZCBlbmNyeXB0aW9uIHVzZXMgYQorICAgcmFu ZG9tIGluaXRpYWxpemF0aW9uIHZlY3RvciBmb3IgZWFjaCBlbmNyeXB0aW9uLCBzbyB0aGF0 IGV2ZW4gaWYgdGhlCisgICBwbGFpbnRleHQgb2YgdHdvIHJvd3MgaXMgZXF1YWwsIHRoZSBl bmNyeXB0ZWQgdmFsdWVzIHdpbGwgYmUgZGlmZmVyZW50LgorICAgVGhpcyBwcmV2ZW50cyBz b21lb25lIHdpdGggZGlyZWN0IGFjY2VzcyB0byB0aGUgZGF0YWJhc2Ugc2VydmVyIHRvIG1h a2UKKyAgIGNvbXB1dGF0aW9ucyBzdWNoIGFzIGRpc3RpbmN0IGNvdW50cyBvbiB0aGUgZW5j cnlwdGVkIHZhbHVlcy4KKyAgIERldGVybWluaXN0aWMgZW5jcnlwdGlvbiB1c2VzIGEgZml4 ZWQgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiAgVGhpcyByZWR1Y2VzCisgICBzZWN1cml0eSwg YnV0IGl0IGFsbG93cyBlcXVhbGl0eSBzZWFyY2hlcyBvbiBlbmNyeXB0ZWQgdmFsdWVzLiAg VGhlCisgICBmb2xsb3dpbmcgZXhhbXBsZSBkZWNsYXJlcyBhIGNvbHVtbiB3aXRoIGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBl bXBsb3llZXMgKAorICAgIGlkIGludCBQUklNQVJZIEtFWSwKKyAgICBuYW1lIHRleHQgTk9U IE5VTEwsCisgICAgLi4uCisgICAgc3NuIHRleHQgRU5DUllQVEVEIFdJVEggKAorICAgICAg ICBjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCA8ZW1waGFzaXM+ZW5jcnlwdGlvbl90 eXBlID0gZGV0ZXJtaW5pc3RpYzwvZW1waGFzaXM+KQorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE51bGwgdmFsdWVzIGFyZSBub3QgZW5jcnlw dGVkIGJ5IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uOyBudWxsIHZhbHVlcworICAg c2VudCBieSB0aGUgY2xpZW50IGFyZSB2aXNpYmxlIGFzIG51bGwgdmFsdWVzIGluIHRoZSBk YXRhYmFzZS4gIElmIHRoZSBmYWN0CisgICB0aGF0IGEgdmFsdWUgaXMgbnVsbCBuZWVkcyB0 byBiZSBoaWRkZW4gZnJvbSB0aGUgc2VydmVyLCB0aGlzIGluZm9ybWF0aW9uCisgICBuZWVk cyB0byBiZSBlbmNvZGVkIGludG8gYSBub25udWxsIHZhbHVlIGluIHRoZSBjbGllbnQgc29t ZWhvdy4KKyAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5S ZWFkaW5nIGFuZCBXcml0aW5nIEVuY3J5cHRlZCBDb2x1bW5zPC90aXRsZT4KKworICAgPHBh cmE+CisgICAgUmVhZGluZyBhbmQgd3JpdGluZyBlbmNyeXB0ZWQgY29sdW1ucyBpcyBtZWFu dCB0byBiZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkKKyAgICBieSB0aGUgY2xpZW50IGxpYnJh cnkvZHJpdmVyIGFuZCBzaG91bGQgYmUgbW9zdGx5IHRyYW5zcGFyZW50IHRvIHRoZQorICAg IGFwcGxpY2F0aW9uIGNvZGUsIGlmIGNlcnRhaW4gcHJlcmVxdWlzaXRlcyBhcmUgZnVsZmls bGVkOgorCisgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBh cmE+CisgICAgICAgVGhlIGNsaWVudCBsaWJyYXJ5IG5lZWRzIHRvIHN1cHBvcnQgdHJhbnNw YXJlbnQgY29sdW1uIGVuY3J5cHRpb24uICBOb3QKKyAgICAgICBhbGwgY2xpZW50IGxpYnJh cmllcyBkby4gIEZ1cnRoZXJtb3JlLCB0aGUgY2xpZW50IGxpYnJhcnkgbWlnaHQgcmVxdWly ZQorICAgICAgIHRoYXQgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZXhwbGlj aXRseSBlbmFibGVkIGF0IGNvbm5lY3Rpb24KKyAgICAgICB0aW1lLiAgU2VlIHRoZSBkb2N1 bWVudGF0aW9uIG9mIHRoZSBjbGllbnQgbGlicmFyeSBmb3IgZGV0YWlscy4KKyAgICAgIDwv cGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBDb2x1bW4gbWFzdGVyIGtleXMgYW5kIGNvbHVtbiBlbmNyeXB0aW9uIGtl eXMgaGF2ZSBiZWVuIHNldCB1cCwgYW5kIHRoZQorICAgICAgIGNsaWVudCBsaWJyYXJ5IGhh cyBiZWVuIGNvbmZpZ3VyZWQgdG8gYmUgYWJsZSB0byBsb29rIHVwIGNvbHVtbiBtYXN0ZXIK KyAgICAgICBrZXlzIGZyb20gdGhlIGtleSBzdG9yZSBvciBrZXkgbWFuYWdlbWVudCBzeXN0 ZW0uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxp c3Q+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFJlYWRpbmcgZnJvbSBlbmNyeXB0 ZWQgY29sdW1ucyB3aWxsIHRoZW4gd29yayBhdXRvbWF0aWNhbGx5LiAgRm9yIGV4YW1wbGUs CisgICAgdXNpbmcgdGhlIGFib3ZlIGV4YW1wbGUsCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxF Q1Qgc3NuIEZST00gZW1wbG95ZWVzIFdIRVJFIGlkID0gNTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgd2lsbCByZXR1cm4gdGhlIHVuZW5jcnlwdGVkIHZhbHVlIGZvciB0aGUgPGxpdGVy YWw+c3NuPC9saXRlcmFsPiBjb2x1bW4gaW4KKyAgICBhbnkgcm93cyBmb3VuZC4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgV3JpdGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBy ZXF1aXJlcyB0aGF0IHRoZSBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorICAgIChwcm90b2Nv bC1sZXZlbCBwcmVwYXJlZCBzdGF0ZW1lbnRzKSBiZSB1c2VkLCBzbyB0aGF0IHRoZSB2YWx1 ZXMgdG8gYmUKKyAgICBlbmNyeXB0ZWQgYXJlIHN1cHBsaWVkIHNlcGFyYXRlbHkgZnJvbSB0 aGUgU1FMIGNvbW1hbmQuICBGb3IgZXhhbXBsZSwKKyAgICB1c2luZywgc2F5LCBwc3FsIG9y IGxpYnBxLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5vdCB3b3JrOgorPHByb2dyYW1saXN0aW5n PgorLS0gV1JPTkchCitJTlNFUlQgSU5UTyBzc24gKGlkLCBuYW1lLCBzc24pIFZBTFVFUyAo MSwgJ1NvbWVvbmUnLCAnMTIzNDUnKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhpcyB3 aWxsIGxlYWsgdGhlIHVuZW5jcnlwdGVkIHZhbHVlIDxsaXRlcmFsPjEyMzQ1PC9saXRlcmFs PiB0byB0aGUKKyAgICBzZXJ2ZXIsIHRodXMgZGVmZWF0aW5nIHRoZSBwb2ludCBvZiBjb2x1 bW4gZW5jcnlwdGlvbi4KKyAgICBOb3RlIHRoYXQgdXNpbmcgc2VydmVyLXNpZGUgcHJlcGFy ZWQgc3RhdGVtZW50cyB1c2luZyB0aGUgU1FMIGNvbW1hbmRzCisgICAgPGNvbW1hbmQ+UFJF UEFSRTwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IGlzIGVxdWFs bHkKKyAgICBpbmNvcnJlY3QsIHNpbmNlIHRoYXQgd291bGQgYWxzbyBsZWFrIHRoZSBwYXJh bWV0ZXJzIHByb3ZpZGVkIHRvCisgICAgPGNvbW1hbmQ+RVhFQ1VURTwvY29tbWFuZD4gdG8g dGhlIHNlcnZlci4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGNvcnJlY3Qg bm90aW9uYWwgb3JkZXIgb2Ygb3BlcmF0aW9ucyBpcyBpbGx1c3RyYXRlZCBoZXJlIHVzaW5n CisgICAgbGlicHEtbGlrZSBjb2RlICh3aXRob3V0IGVycm9yIGNoZWNraW5nKToKKzxwcm9n cmFtbGlzdGluZz4KK1BHcmVzdWx0ICAgKnRtcHJlcywKKyAgICAgICAgICAgKnJlczsKK2Nv bnN0IGNoYXIgKnZhbHVlc1tdID0geyIxIiwgIlNvbWVvbmUiLCAiMTIzNDUifTsKKworUFFw cmVwYXJlKGNvbm4sICIiLCAiSU5TRVJUIElOVE8gc3NuIChpZCwgbmFtZSwgc3NuKSBWQUxV RVMgKCQxLCAkMiwgJDMpIiwgMywgTlVMTCk7CisKKy8qIFRoaXMgZmV0Y2hlcyBpbmZvcm1h dGlvbiBhYm91dCB3aGljaCBwYXJhbWV0ZXJzIG5lZWQgdG8gYmUgZW5jcnlwdGVkLiAqLwor dG1wcmVzID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKworcmVzID0gUFFleGVj UHJlcGFyZWQyKGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHRt cHJlcyk7CisKKy8qIHByaW50IHJlc3VsdCBpbiByZXMgKi8KKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgSGlnaGVyLWxldmVsIGNsaWVudCBsaWJyYXJpZXMgbWlnaHQgdXNlIHRoZSBwcm90 b2NvbC1sZXZlbCBwcmVwYXJlZAorICAgIHN0YXRlbWVudHMgYXV0b21hdGljYWxseSBhbmQg dGh1cyB3b24ndCByZXF1aXJlIGFueSBjb2RlIGNoYW5nZXMuCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIDxhcHBsaWNhdGlvbj5wc3FsPC9hcHBsaWNhdGlvbj4gcHJvdmlkZXMg dGhlIGNvbW1hbmQKKyAgICA8bGl0ZXJhbD5cZ2VuY3I8L2xpdGVyYWw+IHRvIHJ1biBwcmVw YXJlZCBzdGF0ZW1lbnRzIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0lOU0VSVCBJ TlRPIHNzbiAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwgJDIsICQzKSBcZ2VuY3IgJzEn ICdTb21lb25lJywgJzEyMzQ1JworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKyAg PC9zZWN0Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+U2V0dGluZyB1cCBUcmFuc3BhcmVu dCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgc3RlcHMg dG8gc2V0IHVwIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciBhIGRhdGFiYXNl IGFyZToKKworICAgPG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBDcmVhdGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhlIENNSywgZm9yIGV4YW1w bGUsIHVzaW5nIGEgY3J5cHRvZ3JhcGhpYworICAgICAgbGlicmFyeSBvciB0b29sa2l0LCBv ciBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4gIFNlY3VyZSBhY2Nlc3MgdG8gdGhlCisgICAg ICBrZXkgYXMgYXBwcm9wcmlhdGUsIHVzaW5nIGFjY2VzcyBjb250cm9sLCBwYXNzd29yZHMs IGV0Yy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJhc2Ug dXNpbmcgdGhlIFNRTCBjb21tYW5kIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LW1hc3Rlci1rZXkiLz4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgKHVuZW5jcnlwdGVk KSBrZXkgbWF0ZXJpYWwgZm9yIHRoZSBDRUsgaW4gYSB0ZW1wb3JhcnkKKyAgICAgIGxvY2F0 aW9uLiAgKEl0IHdpbGwgYmUgZW5jcnlwdGVkIGluIHRoZSBuZXh0IHN0ZXAuICBEZXBlbmRp bmcgb24gdGhlCisgICAgICBhdmFpbGFibGUgdG9vbHMsIGl0IG1pZ2h0IGJlIHBvc3NpYmxl IGFuZCBzZW5zaWJsZSB0byBjb21iaW5lIHRoZXNlIHR3bworICAgICAgc3RlcHMuKQorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBFbmNyeXB0IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWwgdXNpbmcg dGhlIENNSyAoY3JlYXRlZCBlYXJsaWVyKS4KKyAgICAgIChUaGUgdW5lbmNyeXB0ZWQgdmVy c2lvbiBvZiB0aGUgQ0VLIGtleSBtYXRlcmlhbCBjYW4gbm93IGJlIGRpc3Bvc2VkCisgICAg ICBvZi4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNl IHVzaW5nIHRoZSBTUUwgY29tbWFuZCA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0 ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz4uICBUaGlzIGNvbW1hbmQKKyAgICAgIDxxdW90 ZT51cGxvYWRzPC9xdW90ZT4gdGhlIGVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFsIGNyZWF0 ZWQgaW4gdGhlCisgICAgICBwcmV2aW91cyBzdGVwIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIu ICBUaGUgbG9jYWwgY29weSBvZiB0aGUgQ0VLIGtleQorICAgICAgbWF0ZXJpYWwgY2FuIHRo ZW4gYmUgcmVtb3ZlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5z IHVzaW5nIHRoZSBjcmVhdGVkIENFSy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBj bGllbnQgbGlicmFyeS9kcml2ZXIgdG8gYmUgYWJsZSB0byBsb29rIHVwIHRoZSBDTUsKKyAg ICAgIGNyZWF0ZWQgZWFybGllci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L29yZGVyZWRsaXN0PgorCisgICBPbmNlIHRoaXMgaXMgZG9uZSwgdmFsdWVzIGNhbiBi ZSB3cml0dGVuIHRvIGFuZCByZWFkIGZyb20gdGhlIGVuY3J5cHRlZAorICAgY29sdW1ucyBp biBhIHRyYW5zcGFyZW50IHdheS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTm90ZSB0 aGF0IHRoZXNlIHN0ZXBzIHNob3VsZCBub3QgYmUgcnVuIG9uIHRoZSBkYXRhYmFzZSBzZXJ2 ZXIsIGJ1dCBvbiBzb21lCisgICBjbGllbnQgbWFjaGluZS4gIE5laXRoZXIgdGhlIENNSyBu b3IgdGhlIHVuZW5jcnlwdGVkIENFSyBzaG91bGQgZXZlciBhcHBlYXIKKyAgIG9uIHRoZSBk YXRhYmFzZSBzZXJ2ZXIgaG9zdC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNw ZWNpZmljIGRldGFpbHMgb2YgdGhpcyBzZXR1cCBkZXBlbmQgb24gdGhlIGRlc2lyZWQgQ01L IHN0b3JhZ2UKKyAgIG1lY2hhbmlzbS9rZXkgbWFuYWdlbWVudCBzeXN0ZW0gYXMgd2VsbCBh cyB0aGUgY2xpZW50IGxpYnJhcmllcyB0byBiZSB1c2VkLgorICAgVGhlIGZvbGxvd2luZyBl eGFtcGxlIHVzZXMgdGhlIDxjb21tYW5kPm9wZW5zc2w8L2NvbW1hbmQ+IGNvbW1hbmQtbGlu ZSB0b29sCisgICB0byBzZXQgdXAgdGhlIGtleXMuCisKKyAgIDxvcmRlcmVkbGlzdD4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSBrZXkgbWF0ZXJp YWwgZm9yIHRoZSBDTUsgYW5kIHdyaXRlIGl0IHRvIGEgZmlsZToKKzxwcm9ncmFtbGlzdGlu Zz4KK29wZW5zc2wgZ2VucGtleSAtYWxnb3JpdGhtIHJzYSAtb3V0IGNtazEucGVtCis8L3By b2dyYW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01LIGluIHRoZSBk YXRhYmFzZToKKzxwcm9ncmFtbGlzdGluZz4KK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1O IE1BU1RFUiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICcnKSIKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgdW5lbmNyeXB0ZWQgQ0VLIGtleSBtYXRlcmlh bCBpbiBhIGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3NsIHJhbmQgLW91dCBjZWsx LmJpbiAzMgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIChTZWUgPHhyZWYgbGlua2VuZD0i cHJvdG9jb2wtY2VrLXRhYmxlIi8+IGZvciByZXF1aXJlZCBrZXkgbGVuZ3Rocy4pCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtleSBtYXRlcmlhbDoKKzxwcm9n cmFtbGlzdGluZz4KK29wZW5zc2wgcGtleXV0bCAtZW5jcnlwdCAtaW5rZXkgY21rMS5wZW0g LXBrZXlvcHQgcnNhX3BhZGRpbmdfbW9kZTpvYWVwIC1pbiBjZWsxLmJpbiAtb3V0IGNlazEu YmluLmVuYworcm0gY2VrMS5iaW4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlOgorPHByb2dyYW1saXN0aW5nPgor IyBjb252ZXJ0IGZpbGUgY29udGVudHMgdG8gaGV4IGVuY29kaW5nOyB0aGlzIGlzIGp1c3Qg b25lIHBvc3NpYmxlIHdheQorY2VrZW5jaGV4PSQocGVybCAtMG5lICdwcmludCB1bnBhY2sg IkgqIicgY2VrMS5iaW4uZW5jKQorcHNxbCAuLi4gLWMgIkNSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBl bmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9JykiCitybSBjZWsxLmJpbi5lbmMK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29s dW1ucyBhcyBzaG93biBpbiB0aGUgZXhhbXBsZXMgYWJvdmUuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENv bmZpZ3VyZSB0aGUgbGlicHEgZm9yIENNSyBsb29rdXAgKHNlZSBhbHNvIDx4cmVmIGxpbmtl bmQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIi8+KToKKzxwcm9ncmFtbGlzdGluZz4KK1BH Q01LTE9PS1VQPSIqPWZpbGU6JFBXRC8lay5wZW0iCitleHBvcnQgUEdDTUtMT09LVVAKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9v cmRlcmVkbGlzdD4KKyAgPC9wYXJhPgorICA8L3NlY3QyPgorIDwvc2VjdDE+CisKICA8c2Vj dDEgaWQ9ImRkbC1zeXN0ZW0tY29sdW1ucyI+CiAgIDx0aXRsZT5TeXN0ZW0gQ29sdW1uczwv dGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9j L3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKaW5kZXggZDZkMGEzYTgxNC4uMTA1MDdlNDM5MSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2dsb3NzYXJ5LnNnbWwKQEAgLTM1Myw2ICszNTMsMjkgQEAgPHRpdGxlPkdsb3NzYXJ5 PC90aXRsZT4KICAgIDwvZ2xvc3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3Nl bnRyeSBpZD0iZ2xvc3NhcnktY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgIDxnbG9zc3Rl cm0+Q29sdW1uIGVuY3J5cHRpb24ga2V5PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+Cisg ICAgPHBhcmE+CisgICAgIEEgY3J5cHRvZ3JhcGhpYyBrZXkgdXNlZCB0byBlbmNyeXB0IGNv bHVtbiB2YWx1ZXMgd2hlbiB1c2luZyB0cmFuc3BhcmVudAorICAgICBjb2x1bW4gZW5jcnlw dGlvbi4gIENvbHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJh c2UKKyAgICAgZW5jcnlwdGVkIGJ5IGFub3RoZXIga2V5LCB0aGUgY29sdW1uIG1hc3RlciBr ZXkuCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCisg IDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb2x1bW4tbWFzdGVyLWtleSI+CisgICA8Z2xv c3N0ZXJtPkNvbHVtbiBtYXN0ZXIga2V5PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+Cisg ICAgPHBhcmE+CisgICAgIEEgY3J5cHRvZ3JhcGhpYyBrZXkgdXNlZCB0byBlbmNyeXB0IGNv bHVtbiBlbmNyeXB0aW9uIGtleXMuICAoU28gdGhlCisgICAgIGNvbHVtbiBtYXN0ZXIga2V5 IGlzIGEgPGZpcnN0dGVybT5rZXkgZW5jcnlwdGlvbiBrZXk8L2ZpcnN0dGVybT4uKQorICAg ICBDb2x1bW4gbWFzdGVyIGtleXMgYXJlIHN0b3JlZCBvdXRzaWRlIHRoZSBkYXRhYmFzZSBz eXN0ZW0sIGZvciBleGFtcGxlIGluCisgICAgIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgor ICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xv c3NlbnRyeSBpZD0iZ2xvc3NhcnktY29tbWl0Ij4KICAgIDxnbG9zc3Rlcm0+Q29tbWl0PC9n bG9zc3Rlcm0+CiAgICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbGli cHEuc2dtbCBiL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCmluZGV4IDc0NDU2YWE2OWQuLjMx MGFhNDllMzcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9saWJwcS5zZ21sCkBAIC0xOTc0LDYgKzE5NzQsMTEwIEBAIDx0aXRsZT5Q YXJhbWV0ZXIgS2V5IFdvcmRzPC90aXRsZT4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlk PSJsaWJwcS1jb25uZWN0LWNta2xvb2t1cCIgeHJlZmxhYmVsPSJjbWtsb29rdXAiPgorICAg ICAgPHRlcm0+PGxpdGVyYWw+Y21rbG9va3VwPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBzcGVjaWZpZXMgaG93IGxp YnBxIHNob3VsZCBsb29rIHVwIGNvbHVtbiBtYXN0ZXIga2V5cyAoQ01LcykgaW4KKyAgICAg ICAgb3JkZXIgdG8gZGVjcnlwdCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyAoQ0VLcyku CisgICAgICAgIFRoZSB2YWx1ZSBpcyBhIGxpc3Qgb2YgPGxpdGVyYWw+a2V5PXZhbHVlPC9s aXRlcmFsPiBlbnRyaWVzIHNlcGFyYXRlZAorICAgICAgICBieSBzZW1pY29sb25zLiAgRWFj aCBrZXkgaXMgdGhlIG5hbWUgb2YgYSBrZXkgcmVhbG0sIG9yCisgICAgICAgIDxsaXRlcmFs Pio8L2xpdGVyYWw+IHRvIG1hdGNoIGFsbCByZWFsbXMuICBUaGUgdmFsdWUgaXMgYQorICAg ICAgICA8bGl0ZXJhbD5zY2hlbWU6ZGF0YTwvbGl0ZXJhbD4gc3BlY2lmaWNhdGlvbi4gIFRo ZSBzY2hlbWUgc3BlY2lmaWVzCisgICAgICAgIHRoZSBtZXRob2QgdG8gbG9vayB1cCB0aGUg a2V5LCB0aGUgcmVtYWluaW5nIGRhdGEgaXMgc3BlY2lmaWMgdG8gdGhlCisgICAgICAgIHNj aGVtZS4gIFBsYWNlaG9sZGVycyBhcmUgcmVwbGFjZWQgaW4gdGhlIHJlbWFpbmluZyBkYXRh IGFzIGZvbGxvd3M6CisKKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWE8L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAg ICBUaGUgQ01LIGFsZ29yaXRobSBuYW1lIChzZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wt Y21rLXRhYmxlIi8+KQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPiViPC9saXRlcmFsPjwvdGVybT4KKyAgICAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIGVu Y3J5cHRlZCBDRUsgZGF0YSBpbiBCYXNlNjQgZW5jb2RpbmcgKG9ubHkgZm9yIHRoZSA8bGl0 ZXJhbD5ydW48L2xpdGVyYWw+IHNjaGVtZSkKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lazwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAg ICAgICAgIFRoZSBDTUsga2V5IG5hbWUKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lcjwvbGl0ZXJhbD48L3Rl cm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICAgIFRoZSByZWFsbSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xp c3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwvdmFyaWFibGVs aXN0PgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBBdmFpbGFi bGUgc2NoZW1lcyBhcmU6CisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmZpbGU8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgICBMb2FkIHRoZSBrZXkgbWF0ZXJpYWwgZnJvbSBhIGZpbGUuICBUaGUgcmVtYWluaW5n IGRhdGEgaXMgdGhlIGZpbGUKKyAgICAgICAgICAgIG5hbWUuICBVc2UgdGhpcyBpZiB0aGUg Q01LcyBhcmUga2VwdCBpbiBhIGZpbGUgb24gdGhlIGZpbGUgc3lzdGVtLgorICAgICAgICAg ICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRl cmFsPnJ1bjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICAgIFJ1biB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgdG8g ZGVjcnlwdCB0aGUgQ0VLLiAgVGhlIHJlbWFpbmluZyBkYXRhCisgICAgICAgICAgICBpcyBh IHNoZWxsIGNvbW1hbmQuICBVc2UgdGhpcyB3aXRoIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMg dGhhdAorICAgICAgICAgICAgcGVyZm9ybSB0aGUgZGVjcnlwdGlvbiB0aGVtc2VsdmVzLiAg VGhlIGNvbW1hbmQgbXVzdCBwcmludCB0aGUKKyAgICAgICAgICAgIGRlY3J5cHRlZCBwbGFp bnRleHQgaW4gQmFzZTY0IGZvcm1hdCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgorICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlz dGVudHJ5PgorICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgICA8L3BhcmE+CisKKyAg ICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZW1wdHkuCisgICAg ICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEV4YW1wbGU6Cis8cHJvZ3Jh bWxpc3Rpbmc+CitjbWtsb29rdXA9InIxPWZpbGU6L3NvbWUvd2hlcmUvc2VjcmV0cy8lay5w ZW07Kj1maWxlOi9lbHNlL3doZXJlLyVyLyVrLnBlbSIKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg ICAgICAgIFRoaXMgc3BlY2lmaWNhdGlvbiBzYXlzLCBmb3Iga2V5cyBpbiByZWFsbSA8cXVv dGU+cjE8L3F1b3RlPiwgbG9hZAorICAgICAgICB0aGVtIGZyb20gdGhlIHNwZWNpZmllZCBm aWxlLCByZXBsYWNpbmcgPGxpdGVyYWw+JWs8L2xpdGVyYWw+IGJ5IHRoZQorICAgICAgICBr ZXkgbmFtZS4gIEZvciBrZXlzIGluIG90aGVyIHJlYWxtcywgbG9hZCB0aGVtIGZyb20gdGhl IGZpbGUsCisgICAgICAgIHJlcGxhY2luZyByZWFsbSBhbmQga2V5IG5hbWVzIGFzIHNwZWNp ZmllZC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgQW4gZXhh bXBsZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIChoeXBvdGhldGljYWwpIGtleSBtYW5hZ2Vt ZW50CisgICAgICAgIHN5c3RlbToKKzxwcm9ncmFtbGlzdGluZz4KK2Nta2xvb2t1cD0iKj1y dW46YWNtZWttcyBkZWNyeXB0IC0ta2V5ICVrIC0tYWxnICVhIC0tYmxvYiAnJWInIgorPC9w cm9ncmFtbGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAg ICA8L3Zhcmxpc3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KICAg PC9zZWN0Mj4KQEAgLTMwMjIsNiArMzEyNiw1NyBAQCA8dGl0bGU+TWFpbiBGdW5jdGlvbnM8 L3RpdGxlPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIj4KKyAgICAgIDx0 ZXJtPjxmdW5jdGlvbj5QUWV4ZWNQcmVwYXJlZDI8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHBy aW1hcnk+UFFleGVjUHJlcGFyZWQyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKwor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZW5kcyBhIHJlcXVl c3QgdG8gZXhlY3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAg IHBhcmFtZXRlcnMsIGFuZCB3YWl0cyBmb3IgdGhlIHJlc3VsdCwgd2l0aCBzdXBwb3J0IGZv ciBlbmNyeXB0ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK1BHcmVzdWx0ICpQUWV4ZWNQcmVw YXJlZDIoUEdjb25uICpjb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpzdG10TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5QYXJhbXMs CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1W YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1MZW5n dGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0 cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29s dW1uRW5jcnlwdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRG b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpwYXJhbURlc2Mp OworPC9zeW5vcHNpcz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIi8+IGlzIGxpa2UgPHhy ZWYKKyAgICAgICAgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4gd2l0aCBhZGRp dGlvbmFsIHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgICBjb2x1bW5zLiAgVGhlIHBh cmFtZXRlciA8cGFyYW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJlIGEKKyAg ICAgICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBR ZGVzY3JpYmVQcmVwYXJlZCIvPiBvbgorICAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0 ZW1lbnQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMg ZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNw b25kcyB0byBhbgorICAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1bW4uICBJbiB0 aGF0IHNpdHVhdGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgIHN0YXRlbWVudCBuZWVkcyB0 byBiZSBkZXNjcmliZWQgZmlyc3Qgc28gdGhhdCBsaWJwcSBjYW4gb2J0YWluIHRoZQorICAg ICAgICBuZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2 ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMgY29ycmVz cG9uZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgYXV0b21hdGljYWxs eSBlbmNyeXB0ZWQgYXBwcm9wcmlhdGVseSBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgc2Vy dmVyLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcGFy YW1ldGVyIDxwYXJhbWV0ZXI+cGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zPC9wYXJhbWV0 ZXI+CisgICAgICAgIHNwZWNpZmllcyB3aGV0aGVyIGVuY3J5cHRpb24gc2hvdWxkIGJlIGZv cmNlZCBmb3IgYSBwYXJhbWV0ZXIuICBJZgorICAgICAgICBlbmNyeXB0aW9uIGlzIGZvcmNl ZCBmb3IgYSBwYXJhbWV0ZXIgYnV0IGl0IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4KKyAg ICAgICAgZW5jcnlwdGVkIGNvbHVtbiBvbiB0aGUgc2VydmVyLCB0aGVuIHRoZSBjYWxsIHdp bGwgZmFpbCBhbmQgdGhlCisgICAgICAgIHBhcmFtZXRlciB3aWxsIG5vdCBiZSBzZW50LiAg VGhpcyBjYW4gYmUgdXNlZCBmb3IgYWRkaXRpb25hbCBzZWN1cml0eQorICAgICAgICBhZ2Fp bnN0IGEgY29tcHJpbWlzZWQgc2VydmVyLiAgKFRoZSBkcmF3YmFjayBpcyB0aGF0IGFwcGxp Y2F0aW9uIGNvZGUKKyAgICAgICAgdGhlbiBuZWVkcyB0byBiZSBrZXB0IHVwIHRvIGRhdGUg d2l0aCBrbm93bGVkZ2UgYWJvdXQgd2hpY2ggY29sdW1ucworICAgICAgICBhcmUgZW5jcnlw dGVkIHJhdGhlciB0aGFuIGxldHRpbmcgdGhlIHNlcnZlciBzcGVjaWZ5IHRoaXMuKSAgSWYg dGhlCisgICAgICAgIGFycmF5IHBvaW50ZXIgaXMgbnVsbCB0aGVuIGVuY3J5cHRpb24gaXMg bm90IGZvcmNlZCBmb3IgYW55IHBhcmFtZXRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5 IGlkPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiPgogICAgICAgPHRlcm0+PGZ1bmN0aW9u PlBRZGVzY3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWRl c2NyaWJlUHJlcGFyZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC0zODcy LDYgKzQwMjcsMjggQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9ybWF0 aW9uPC90aXRsZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZmlzZW5jcnlwdGVkIj4KKyAgICAgPHRl cm0+PGZ1bmN0aW9uPlBRZmlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmlt YXJ5PlBRZmlzZW5jcnlwdGVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAg ICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZXR1cm5zIHdoZXRoZXIgdGhl IHZhbHVlIGZvciB0aGUgZ2l2ZW4gY29sdW1uIGNhbWUgZnJvbSBhbiBlbmNyeXB0ZWQKKyAg ICAgICBjb2x1bW4uICBDb2x1bW4gbnVtYmVycyBzdGFydCBhdCAwLgorPHN5bm9wc2lzPgor aW50IFBRZmlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsCisgICAgICAgICAgICAg ICAgICAgaW50IGNvbHVtbl9udW1iZXIpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4K KworICAgICAgPHBhcmE+CisgICAgICAgRW5jcnlwdGVkIGNvbHVtbiB2YWx1ZXMgYXJlIGF1 dG9tYXRpY2FsbHkgZGVjcnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uCisgICAgICAgaXMgbm90 IG5lY2Vzc2FyeSB0byBhY2Nlc3MgdGhlIGNvbHVtbiB2YWx1ZS4gIEl0IGNhbiBiZSB1c2Vk IGZvciBleHRyYQorICAgICAgIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVl IHdhcyBzdG9yZWQgZW5jcnlwdGVkIHdoZW4gb25lCisgICAgICAgdGhvdWdodCBpdCBzaG91 bGQgYmUuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0 ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWZzaXplIj4KICAgICAg PHRlcm0+PGZ1bmN0aW9uPlBRZnNpemU8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+ UFFmc2l6ZTwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQwNDcsMTIgKzQy MjQsMzcgQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9ybWF0aW9uPC90 aXRsZT4KIAogICAgICAgPHBhcmE+CiAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVz ZWZ1bCB3aGVuIGluc3BlY3RpbmcgdGhlIHJlc3VsdCBvZgotICAgICAgIDx4cmVmIGxpbmtl bmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPi4gIEZvciBvdGhlciB0eXBlcyBvZiBx dWVyaWVzIGl0CisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBh cmVkIi8+LiAgRm9yIG90aGVyIHR5cGVzIG9mIHJlc3VsdHMgaXQKICAgICAgICB3aWxsIHJl dHVybiB6ZXJvLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFwYXJhbWlzZW5j cnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcGFyYW1pc2VuY3J5cHRlZDwvZnVu Y3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXBhcmFtaXNlbmNyeXB0ZWQ8L3ByaW1hcnk+ PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiBwYXJhbWV0 ZXIgaXMgZGVzdGluZWQgZm9yIGFuCisgICAgICAgZW5jcnlwdGVkIGNvbHVtbi4gIFBhcmFt ZXRlciBudW1iZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQgUFFwYXJhbWlzZW5j cnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW1iZXIpOworPC9zeW5v cHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVmFsdWVzIGZv ciBwYXJhbWV0ZXJzIGRlc3RpbmVkIGZvciBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgYXV0b21h dGljYWxseQorICAgICAgIGVuY3J5cHRlZCwgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgbmVj ZXNzYXJ5IHRvIHByZXBhcmUgdGhlIHBhcmFtZXRlcgorICAgICAgIHZhbHVlLiAgSXQgY2Fu IGJlIHVzZWQgZm9yIGV4dHJhIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVl CisgICAgICAgd2lsbCBiZSBzdG9yZWQgZW5jcnlwdGVkIHdoZW4gb25lIHRob3VnaHQgaXQg c2hvdWxkIGJlLiAgKEJ1dCBzZWUgYWxzbworICAgICAgIGF0IDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRZXhlY1ByZXBhcmVkMiIvPiBmb3IgYW5vdGhlciB3YXkgdG8gZG8gdGhhdC4pCisg ICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWZ1bCB3aGVuIGluc3BlY3RpbmcgdGhl IHJlc3VsdCBvZiA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVw YXJlZCIvPi4gIEZvciBvdGhlciB0eXBlcyBvZiByZXN1bHRzIGl0CisgICAgICAgd2lsbCBy ZXR1cm4gZmFsc2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXByaW50Ij4K ICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcHJpbnQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHBy aW1hcnk+UFFwcmludDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQ1Nzgs NiArNDc4MCw3IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90 aXRsZT4KICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UGFyYW1zIi8+LAog ICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIvPiwKICAgIDx4cmVmIGxp bmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkMiIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sCiAgICB3aGljaCBjYW4gYmUgdXNlZCB3 aXRoIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZ2V0UmVzdWx0Ii8+IHRvIGR1cGxpY2F0ZQpA QCAtNDU4NSw2ICs0Nzg4LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nl c3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUGFyYW1zIi8+ LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFwcmVwYXJlIi8+LAogICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUWV4ZWNQcmVwYXJlZDIiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2Ny aWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmli ZVBvcnRhbCIvPgogICAgcmVzcGVjdGl2ZWx5LgpAQCAtNDY5Niw2ICs0OTAwLDQ2IEBAIDx0 aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgPC9s aXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9 ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQyIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBR c2VuZFF1ZXJ5UHJlcGFyZWQyPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc2Vu ZFF1ZXJ5UHJlcGFyZWQyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTZW5kcyBhIHJlcXVlc3QgdG8gZXhl Y3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAgcGFyYW1ldGVy cywgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgcmVzdWx0KHMpLCB3aXRoIHN1cHBvcnQgZm9y IGVuY3J5cHRlZCBjb2x1bW5zLgorPHN5bm9wc2lzPgoraW50IFBRc2VuZFF1ZXJ5UHJlcGFy ZWQyKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpzdG10TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKnBhcmFtVmFsdWVz LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAor ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5 cHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRGb3JtYXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7Cis8L3N5bm9w c2lzPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkMiIvPiBpcyBsaWtlIDx4cmVmCisgICAg ICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiB3aXRoIGFkZGl0aW9u YWwgc3VwcG9ydCBmb3IgZW5jcnlwdGVkCisgICAgICAgY29sdW1ucy4gIFRoZSBwYXJhbWV0 ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBhCisgICAgICAg cmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERl c2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0ZW1l bnQuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgZnVuY3Rp b24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNwb25kcyB0 byBhbgorICAgICAgIHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQgc2l0 dWF0aW9uLCB0aGUgcHJlcGFyZWQKKyAgICAgICBzdGF0ZW1lbnQgbmVlZHMgdG8gYmUgZGVz Y3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUKKyAgICAgICBuZWNl c3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBXaGVu IHRoYXQgaXMKKyAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRv IGVuY3J5cHRlZCBjb2x1bW5zIGFyZQorICAgICAgIGF1dG9tYXRpY2FsbHkgZW5jcnlwdGVk IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZlci4KKyAgICAg ICBTZWUgYWxzbyB1bmRlciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZDIi Lz4uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNlbmREZXNjcmliZVByZXBh cmVkIj4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZERlc2NyaWJlUHJlcGFyZWQ8L2Z1 bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFzZW5kRGVzY3JpYmVQcmVwYXJlZDwvcHJp bWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQ3NDYsNiArNDk5MCw3IEBAIDx0aXRs ZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIvPiwKICAgICAgICA8eHJlZiBs aW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICAgICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZDIiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXNlbmREZXNjcmliZVBvcnRhbCIvPiwgb3IKICAgICAgICA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1QUXBpcGVsaW5lU3luYyIvPgpAQCAtNzc3Niw2ICs4MDIxLDE2IEBAIDx0 aXRsZT5FbnZpcm9ubWVudCBWYXJpYWJsZXM8L3RpdGxlPgogICAgICA8L3BhcmE+CiAgICAg PC9saXN0aXRlbT4KIAorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8aW5k ZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NNS0xPT0tVUDwvZW52YXI+PC9w cmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8ZW52YXI+UEdDTUtMT09LVVA8 L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAgbGlua2VuZD0i bGlicHEtY29ubmVjdC1jbWtsb29rdXAiLz4gY29ubmVjdGlvbiBwYXJhbWV0ZXIuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFy YT4KICAgICAgIDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9j b2wuc2dtbCBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IGMwYjg5YTNjMDEu LjYwNTk1YzMzYjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0xMDUwLDYgKzEwNTAsNTIgQEAg PHRpdGxlPkV4dGVuZGVkIFF1ZXJ5PC90aXRsZT4KICAgIDwvbm90ZT4KICAgPC9zZWN0Mj4K IAorICA8c2VjdDI+CisgICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248 L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBXaGVuIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNy eXB0aW9uIGlzIGVuYWJsZWQsIHRoZSBtZXNzYWdlcworICAgIENvbHVtbk1hc3RlcktleSBh bmQgQ29sdW1uRW5jcnlwdGlvbktleSBjYW4gYXBwZWFyIGJlZm9yZSBSb3dEZXNjcmlwdGlv bgorICAgIGFuZCBQYXJhbWV0ZXJEZXNjcmlwdGlvbiBtZXNzYWdlcy4gIENsaWVudHMgc2hv dWxkIGNvbGxlY3QgdGhlIGluZm9ybWF0aW9uCisgICAgaW4gdGhlc2UgbWVzc2FnZXMgYW5k IGtlZXAgdGhlbSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uLiAgQQorICAg IHNlcnZlciBpcyBub3QgcmVxdWlyZWQgdG8gcmVzZW5kIHRoZSBrZXkgaW5mb3JtYXRpb24g Zm9yIGVhY2ggc3RhdGVtZW50CisgICAgY3ljbGUgaWYgaXQgd2FzIGFscmVhZHkgc2VudCBk dXJpbmcgdGhpcyBjb25uZWN0aW9uLiAgSWYgYSBzZXJ2ZXIgcmVzZW5kcworICAgIGEga2V5 IHRoYXQgdGhlIGNsaWVudCBoYXMgYWxyZWFkeSBzdG9yZWQgKHRoYXQgaXMsIGEga2V5IGhh dmluZyBhbiBJRAorICAgIGVxdWFsIHRvIG9uZSBhbHJlYWR5IHN0b3JlZCksIHRoZSBuZXcg aW5mb3JtYXRpb24gc2hvdWxkIHJlcGxhY2UgdGhlIG9sZC4KKyAgICAoVGhpcyBjb3VsZCBo YXBwZW4sIGZvciBleGFtcGxlLCBpZiB0aGUga2V5IHdhcyBhbHRlcmVkIGJ5IHNlcnZlci1z aWRlIERETAorICAgIGNvbW1hbmRzLikKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg QSBjbGllbnQgc3VwcG9ydGluZyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBzaG91 bGQgYXV0b21hdGljYWxseQorICAgIGRlY3J5cHQgdGhlIGNvbHVtbiB2YWx1ZSBmaWVsZHMg b2YgRGF0YVJvdyBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvCisgICAgZW5jcnlwdGVkIGNv bHVtbnMsIGFuZCBpdCBzaG91bGQgYXV0b21hdGljYWxseSBlbmNyeXB0IHRoZSBwYXJhbWV0 ZXIgdmFsdWUKKyAgICBmaWVsZHMgb2YgQmluZCBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRv IGVuY3J5cHRlZCBjb2x1bW5zLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVu IGNvbHVtbiBlbmNyeXB0aW9uIGlzIHVzZWQsIHRoZSBwbGFpbnRleHQgaXMgYWx3YXlzIGlu IHRleHQgZm9ybWF0CisgICAgKG5vdCBiaW5hcnkgZm9ybWF0KS4KKyAgIDwvcGFyYT4KKwor ICAgPHBhcmE+CisgICAgV2hlbiBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gaXMgdXNlZCwg Y2xpZW50cyBuZWVkIHRvIHRha2UgY2FyZSB0bworICAgIHJlcHJlc2VudCBwbGFpbnRleHQg dG8gYmUgZW5jcnlwdGVkIGluIGEgY29uc2lzdGVudCBmb3JtLiAgRm9yIGV4YW1wbGUsCisg ICAgZW5jcnlwdGluZyBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxp dGVyYWw+MTAwPC9saXRlcmFsPiBhbmQKKyAgICBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5 IHRoZSBzdHJpbmcgPGxpdGVyYWw+KzEwMDwvbGl0ZXJhbD4gd291bGQgcmVzdWx0CisgICAg aW4gdHdvIGRpZmZlcmVudCBjaXBoZXJ0ZXh0cywgdGh1cyBkZWZlYXRpbmcgdGhlIG1haW4g cG9pbnQgb2YKKyAgICBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24uICBUaGlzIHByb3RvY29s IHNwZWNpZmljYXRpb24gcmVxdWlyZXMgdGhlCisgICAgcGxhaW50ZXh0IHRvIGJlIGluIDxx dW90ZT5jYW5vbmljYWw8L3F1b3RlPiBmb3JtLCB3aGljaCBpcyB0aGUgZm9ybSB0aGF0Cisg ICAgaXMgcHJvZHVjZWQgYnkgdGhlIHNlcnZlciB3aGVuIGl0IG91dHB1dHMgYSBwYXJ0aWN1 bGFyIHZhbHVlIGluIHRleHQKKyAgICBmb3JtYXQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJh PgorICAgIFRoZSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgdXNlZCBmb3IgdHJhbnNwYXJl bnQgY29sdW1uIGVuY3J5cHRpb24gYXJlCisgICAgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtl bmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uIi8+LgorICAgPC9w YXJhPgorICA8L3NlY3QyPgorCiAgIDxzZWN0Mj4KICAgIDx0aXRsZT5GdW5jdGlvbiBDYWxs PC90aXRsZT4KIApAQCAtMzk5MSw2ICs0MDM3LDEyOCBAQCA8dGl0bGU+TWVzc2FnZSBGb3Jt YXRzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1bW5FbmNy eXB0aW9uS2V5Ij4KKyAgICA8dGVybT5Db2x1bW5FbmNyeXB0aW9uS2V5IChCKTwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUxKCdZJyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVt PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMg YSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgIDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMg aW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9m IHRoZSBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+ SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAg ICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBtYXN0ZXIga2V5IHVzZWQgdG8gZW5jcnlwdCB0 aGlzIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5J bnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAg ICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGVuY3J5cHQgdGhp cyBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50 MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IFRoZSBsZW5ndGggb2YgdGhlIGZvbGxvd2luZyBrZXkgbWF0ZXJpYWwuCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTxyZXBsYWNlYWJsZT5uPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIHRoZSBtYXN0ZXIg a2V5IHJlZmVyZW5jZWQgYWJvdmUuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBp ZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbk1hc3RlcktleSI+CisgICAgPHRl cm0+Q29sdW1uTWFzdGVyS2V5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDx2 YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUx KCd5Jyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAg ICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gbWFzdGVyIGtleSBtZXNz YWdlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFy bGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMy PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBM ZW5ndGggb2YgbWVzc2FnZSBjb250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNlbGYuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBzZXNz aW9uLXNwZWNpZmljIGlkZW50aWZpZXIgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgor ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBrZXkuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5nPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUga2V5 J3MgcmVhbG0uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAg PC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wt bWVzc2FnZS1mb3JtYXRzLUNvbW1hbmRDb21wbGV0ZSI+CiAgICAgPHRlcm0+Q29tbWFuZENv bXBsZXRlIChCKTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC01MDg2LDYgKzUyNTQsMzcg QEAgPHRpdGxlPk1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgICAgICAgIDwvcGFyYT4KICAg ICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVt PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJl IGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVyIG9m IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAgICAg IDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+CisgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1l dGVyIGlzIHRvIGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBp ZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSwgZWxzZSB6ZXJvLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGlzIGlzIHVz ZWQgYXMgYSBiaXQgZmllbGQgb2YgZmxhZ3MuICBJZiB0aGUgY29sdW1uIGlzCisgICAgICAg ICBlbmNyeXB0ZWQgYW5kIGJpdCAweDAxIGlzIHNldCwgdGhlIGNvbHVtbiB1c2VzIGRldGVy bWluaXN0aWMKKyAgICAgICAgIGVuY3J5cHRpb24sIG90aGVyd2lzZSByYW5kb21pemVkIGVu Y3J5cHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAg PC92YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTU0NzQsNiArNTY3MywyNiBAQCA8dGl0bGU+TWVz c2FnZSBGb3JtYXRzPC90aXRsZT4KICAgICAgICAgPC9wYXJhPgogICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxw YXJhPgorICAgICAgICAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgdG8gYmUgZW5jcnlwdGVkLCB0 aGlzIHNwZWNpZmllcyB0aGUKKyAgICAgICAgIGlkZW50aWZpZXIgb2YgdGhlIGNvbHVtbiBl bmNyeXB0aW9uIGtleSB0byB1c2UsIGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJhPgorICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgdG8gYmUg ZW5jcnlwdGVkLCB0aGlzIHNwZWNpZmllcyB0aGUKKyAgICAgICAgIGlkZW50aWZpZXIgb2Yg dGhlIGVuY3J5cHQgYWxnb3JpdGhtLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFi bGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTcyNzgs NiArNzQ5NywxMzMgQEAgPHRpdGxlPkxvZ2ljYWwgUmVwbGljYXRpb24gTWVzc2FnZSBGb3Jt YXRzPC90aXRsZT4KICAgPC92YXJpYWJsZWxpc3Q+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBp ZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24iPgorICA8dGl0bGU+ VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb24gQ3J5cHRvZ3JhcGh5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNyeXB0b2dyYXBoaWMg b3BlcmF0aW9ucyB1c2VkIGJ5IHRyYW5zcGFyZW50CisgICBjb2x1bW4gZW5jcnlwdGlvbi4g IEEgY2xpZW50IHRoYXQgc3VwcG9ydHMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24K KyAgIG5lZWRzIHRvIGltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25zIGFzIHNwZWNpZmllZCBo ZXJlIGluIG9yZGVyIHRvIGJlIGFibGUKKyAgIHRvIGludGVyb3BlcmF0ZSB3aXRoIG90aGVy IGNsaWVudHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9u IGtleSBhbGdvcml0aG1zIGFuZCBjb2x1bW4gbWFzdGVyIGtleSBhbGdvcml0aG1zIGFyZQor ICAgaWRlbnRpZmllZCBieSBpbnRlZ2VycyBpbiB0aGUgcHJvdG9jb2wgbWVzc2FnZXMgYW5k IHRoZSBzeXN0ZW0gY2F0YWxvZ3MuCisgICBBZGRpdGlvbmFsIGFsZ29yaXRobXMgbWF5IGJl IGFkZGVkIHRvIHRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiB3aXRob3V0IGEKKyAgIGNo YW5nZSBpbiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBudW1iZXIuICBDbGllbnRzIHNob3VsZCBp bXBsZW1lbnQgc3VwcG9ydAorICAgZm9yIGFsbCB0aGUgYWxnb3JpdGhtcyBzcGVjaWZpZWQg aGVyZS4gIElmIGEgY2xpZW50IGVuY291bnRlcnMgYW4gYWxnb3JpdGhtCisgICBpZGVudGlm aWVyIGl0IGRvZXMgbm90IHJlY29nbml6ZSBvciBkb2VzIG5vdCBzdXBwb3J0LCBpdCBtdXN0 IHJhaXNlIGFuCisgICBlcnJvci4gIEEgc3VpdGFibGUgZXJyb3IgbWVzc2FnZSBzaG91bGQg YmUgcHJvdmlkZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgICB1c2VyLgorICA8L3BhcmE+ CisKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1jbWsiPgorICAgPHRpdGxlPkNvbHVtbiBNYXN0 ZXIgS2V5czwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5l ZCBhbGdvcml0aG1zIGZvciBjb2x1bW4gbWFzdGVyIGtleXMgYXJlIGxpc3RlZCBpbgorICAg IDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPi4KKyAgIDwvcGFyYT4KKwor ICAgPHRhYmxlIGlkPSJwcm90b2NvbC1jbWstdGFibGUiPgorICAgIDx0aXRsZT5Db2x1bW4g TWFzdGVyIEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgor ICAgICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5JRDwvZW50cnk+Cisg ICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5SZWZlcmVuY2U8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAg IDxyb3c+CisgICAgICAgPGVudHJ5PjE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJh bD5SU0FFU19PQUVQX1NIQV8xPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1 bGluayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjODAx NyI+UkZDIDgwMTc8L3VsaW5rPiAoUEtDUyAjMSk8L2VudHJ5PgorICAgICAgPC9yb3c+Cisg ICAgICA8cm93PgorICAgICAgIDxlbnRyeT4yPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxp dGVyYWw+UlNBRVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVu dHJ5Pjx1bGluayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwv cmZjODAxNyI+UkZDIDgwMTc8L3VsaW5rPiAoUEtDUyAjMSk8L2VudHJ5PgorICAgICAgPC9y b3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorICA8L3Nl Y3QyPgorCisgIDxzZWN0MiBpZD0icHJvdG9jb2wtY2VrIj4KKyAgIDx0aXRsZT5Db2x1bW4g RW5jcnlwdGlvbiBLZXlzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhlIGN1cnJlbnRs eSBkZWZpbmVkIGFsZ29yaXRobXMgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIGxp c3RlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNlay10YWJsZSIvPi4KKyAg IDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJwcm90b2NvbC1jZWstdGFibGUiPgorICAgIDx0 aXRsZT5Db2x1bW4gRW5jcnlwdGlvbiBLZXkgQWxnb3JpdGhtczwvdGl0bGU+CisgICAgPHRn cm91cCBjb2xzPSIzIj4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50 cnk+SUQ8L2VudHJ5PgorICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+UmVmZXJlbmNlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+S2V5IGxlbmd0aCAob2N0ZXRz KTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAgPHRib2R5Pgor ICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MTMwPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ PGxpdGVyYWw+QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRm Lm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIv PjwvZW50cnk+CisgICAgICAgPGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MTMxPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxp dGVyYWw+QUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y Zy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwv ZW50cnk+CisgICAgICAgPGVudHJ5PjQ4PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAg PHJvdz4KKyAgICAgICA8ZW50cnk+MTMyPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVy YWw+QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9k b2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PjU2PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnk+MTMzPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2Mv aHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+ CisgICAgICAgPGVudHJ5PjY0PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3Rib2R5 PgorICAgIDwvdGdyb3VwPgorICAgPC90YWJsZT4KKworICAgPHBhcmE+CisgICAgVGhlIDxx dW90ZT5hc3NvY2lhdGVkIGRhdGE8L3F1b3RlPiBpbiB0aGVzZSBhbGdvcml0aG1zIGNvbnNp c3RzIG9mIDQKKyAgICBieXRlczogVGhlIEFTQ0lJIGxldHRlcnMgPGxpdGVyYWw+UDwvbGl0 ZXJhbD4gYW5kIDxsaXRlcmFsPkc8L2xpdGVyYWw+CisgICAgKGJ5dGUgdmFsdWVzIDgwIGFu ZCA3MSksIGZvbGxvd2VkIGJ5IHRoZSBhbGdvcml0aG0gSUQgYXMgYSAxNi1iaXQgdW5zaWdu ZWQKKyAgICBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KKyAgIDwvcGFyYT4KKwor ICAgPHBhcmE+CisgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9y IGlzIDE2IG9jdGV0cyBmb3IgYWxsIENFSyBhbGdvcml0aG0KKyAgICB2YXJpYW50cy4gIEZv ciByYW5kb21pemVkIGVuY3J5cHRpb24sIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3Igc2hv dWxkIGJlCisgICAgKGNyeXB0b2dyYXBoaWNhbGx5IHN0cm9uZykgcmFuZG9tIGJ5dGVzLiAg Rm9yIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbiwKKyAgICB0aGUgaW5pdGlhbGl6YXRpb24g dmVjdG9yIGlzIGNvbnN0cnVjdGVkIGFzCis8cHJvZ3JhbWxpc3Rpbmc+CitTVUJTVFJJTkco PHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxhY2VhYmxlPig8cmVwbGFjZWFibGU+SzwvcmVwbGFj ZWFibGU+LCA8cmVwbGFjZWFibGU+UDwvcmVwbGFjZWFibGU+KSBGT1IgPHJlcGxhY2VhYmxl PklWTEVOPC9yZXBsYWNlYWJsZT4pCis8L3Byb2dyYW1saXN0aW5nPgorICAgIHdoZXJlIDxy ZXBsYWNlYWJsZT5ITUFDPC9yZXBsYWNlYWJsZT4gaXMgdGhlIEhNQUMgZnVuY3Rpb24gYXNz b2NpYXRlZCB3aXRoCisgICAgdGhlIGFsZ29yaXRobSwgPHJlcGxhY2VhYmxlPks8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgcHJlZml4IG9mIHRoZSBDRUsgb2YKKyAgICB0aGUgbGVuZ3RoIHJl cXVpcmVkIGJ5IHRoZSBITUFDIGZ1bmN0aW9uLCBhbmQgPHJlcGxhY2VhYmxlPlA8L3JlcGxh Y2VhYmxlPgorICAgIGlzIHRoZSBwbGFpbnRleHQgdG8gYmUgZW5jcnlwdGVkLiAgKFRoaXMg aXMgdGhlIHNhbWUgcG9ydGlvbiBvZiB0aGUgQ0VLCisgICAgdGhhdCB0aGUgQUVBRF9BRVNf Kl9ITUFDXyogYWxnb3JpdGhtcyB1c2UgZm9yIHRoZSBNQUMgcGFydC4pCisgICA8L3BhcmE+ CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0icHJvdG9jb2wtY2hhbmdl cyI+CiAgIDx0aXRsZT5TdW1tYXJ5IG9mIENoYW5nZXMgc2luY2UgUHJvdG9jb2wgMi4wPC90 aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGU5MGEwZTFmODMuLjlhZTU2 ZWU5NTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTYyLDYgKzYyLDggQEAKIDwh RU5USVRZIGNyZWF0ZUFnZ3JlZ2F0ZSAgICBTWVNURU0gImNyZWF0ZV9hZ2dyZWdhdGUuc2dt bCI+CiA8IUVOVElUWSBjcmVhdGVDYXN0ICAgICAgICAgU1lTVEVNICJjcmVhdGVfY2FzdC5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZUNvbGxhdGlvbiAgICBTWVNURU0gImNyZWF0ZV9jb2xs YXRpb24uc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVDb2x1bW5FbmNyeXB0aW9uS2V5IFNZU1RF TSAiY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGNyZWF0 ZUNvbHVtbk1hc3RlcktleSBTWVNURU0gImNyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21s Ij4KIDwhRU5USVRZIGNyZWF0ZUNvbnZlcnNpb24gICBTWVNURU0gImNyZWF0ZV9jb252ZXJz aW9uLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlRGF0YWJhc2UgICAgIFNZU1RFTSAiY3JlYXRl X2RhdGFiYXNlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlRG9tYWluICAgICAgIFNZU1RFTSAi Y3JlYXRlX2RvbWFpbi5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uZTc5NjVlYmNjYQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBAIC0wLDAgKzEs MTQ0IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlv bl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6 b25lPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxwcmltYXJ5PkNS RUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9O IEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxy ZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8 L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGNv bHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8 cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSCBWQUxVRVMgKAorICAg IENPTFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+LAor ICAgIFsgQUxHT1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+ LCBdCisgICAgRU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFj ZWFibGU+CispCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29t bWFuZD5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEg bmV3IGNvbHVtbgorICAgZW5jcnlwdGlvbiBrZXkuICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBpcyB1c2VkIGZvciBjbGllbnQtc2lkZSBlbmNyeXB0aW9uCisgICBvZiB0YWJsZSBjb2x1 bW5zIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQgYXMgZW5jcnlwdGVkLiAgVGhlIGtleSBtYXRl cmlhbCBvZgorICAgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaXMgc3RvcmVkIGluIHRoZSBk YXRhYmFzZSdzIHN5c3RlbSBjYXRhbG9ncywKKyAgIGVuY3J5cHRlZCAod3JhcHBlZCkgYnkg YSBjb2x1bW4gbWFzdGVyIGtleSAod2hpY2ggaW4gdHVybiBpcyBvbmx5CisgICBhY2Nlc3Np YmxlIHRvIHRoZSBjbGllbnQsIG5vdCB0aGUgZGF0YWJhc2Ugc2VydmVyKS4KKyA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3Rp dGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gZW5j cnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxl PmNtazwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleSB0aGF0IHdhcyB1 c2VkIHRvIGVuY3J5cHQgdGhpcyBjb2x1bW4KKyAgICAgIGVuY3J5cHRpb24ga2V5LgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxh Y2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoZSBr ZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LiAgU3Vw cG9ydGVkIGFsZ29yaXRobXMgYXJlOgorICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xp dGVyYWw+IChkZWZhdWx0KTwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgPHBhcmE+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMjU2PC9s aXRlcmFsPiAoZGVmYXVsdCk8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwv aXRlbWl6ZWRsaXN0PgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGlz IGlzIGluZm9ybWF0aW9uYWwgb25seS4gIFRoZSBzcGVjaWZpZWQgdmFsdWUgaXMgcHJvdmlk ZWQgdG8gdGhlCisgICAgICBjbGllbnQsIHdoaWNoIG1heSB1c2UgaXQgZm9yIGRlY3J5cHRp bmcgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBvbiB0aGUKKyAgICAgIGNsaWVudCBzaWRl LiAgQnV0IGEgY2xpZW50IGlzIGFsc28gZnJlZSB0byBpZ25vcmUgdGhpcyBpbmZvcm1hdGlv biBhbmQKKyAgICAgIGZpZ3VyZSBvdXQgaG93IHRvIGFycmFuZ2UgdGhlIGRlY3J5cHRpb24g aW4gc29tZSBvdGhlciB3YXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4gZW5j cnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIGNvbHVt biBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtLiAgVGhlIHZhbHVl CisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+LWNvbXBhdGlibGUgbGl0ZXJh bC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09M VU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIw MjA0Li4uJworKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4KKyAgIHRoZSBTUUwgc3RhbmRhcmQuCisg IDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgIDwhLS0gVE9E TworICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRp b24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w LWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgLS0+CisgICA8bWVtYmVy Pjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJl cj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kYjMwNDNkNzE1Ci0tLSAvZGV2 L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXku c2dtbApAQCAtMCwwICsxLDEwOCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4K KworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5k ZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFy eT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ PC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1p c2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVm bWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gbWFz dGVyIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNk aXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxl Pm5hbWU8L3JlcGxhY2VhYmxlPiBXSVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxhY2VhYmxl PnJlYWxtPC9yZXBsYWNlYWJsZT4gXQorKQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lz ZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisg IDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5k PiBkZWZpbmVzIGEgbmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1uIG1hc3Rl ciBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMsIHdoaWNo CisgICBhcmUgdGhlIGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1bW4gZGF0 YS4gIFRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBu b3Qgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNv bHVtbiBtYXN0ZXIga2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFsbG93IGEg Y2xpZW50IHRvIGxvY2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1wbGUgaW4g YSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgor CisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBs YWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFzdGVyIGtl eS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVhbG08L3Jl cGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGlzIGlzIGFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2Fu aXplIGNvbHVtbiBtYXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxvb2t1cCBi eSBjbGllbnRzLiAgVGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAgIG1hc3Rl ciBrZXlzIHRoYXQgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUgc3lzdGVt IGxvY2F0aW9uLAorICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBzaG91bGQg YmUgaW4gdGhlIHNhbWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhlbiBiZSBj b25maWd1cmVkIHRvIGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBpbiBhCisg ICAgICBjZXJ0YWluIHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcmVzcGVj dGl2ZSBjbGllbnQgbGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5zdHJ1Y3Rp b25zLgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVmYXVsdCBp cyB0aGUgZW1wdHkgc3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3JhbWxpc3Rp bmc+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXlyZWFsbScp OworPC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBu byA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVu dCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxp c3QgdHlwZT0iaW5saW5lIj4KKyAgPCEtLSBUT0RPCisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1hbHRlci1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVy PgorICAgLS0+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5k ZXggNmM5OTE4YjBhMS4uN2ExZDAzZjg2OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJs ZS5zZ21sCkBAIC0yMiw3ICsyMiw3IEBACiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lz PgogQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwg VU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ICggWwotICB7IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIENP TVBSRVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxl PiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVw bGFjZWFibGU+IFsgLi4uIF0gXQorICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIENPTVBSRVNTSU9OIDxyZXBsYWNlYWJs ZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsgRU5DUllQVEVEIFdJVEgg KCA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBsYWNlYWJsZT4gKSBdIFsg Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFi bGU+IFsgLi4uIF0gXQogICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8L3Jl cGxhY2VhYmxlPgogICAgIHwgTElLRSA8cmVwbGFjZWFibGU+c291cmNlX3RhYmxlPC9yZXBs YWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAuLi4g XSB9CiAgICAgWywgLi4uIF0KQEAgLTMyMiw2ICszMjIsNDYgQEAgPHRpdGxlPlBhcmFtZXRl cnM8L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5FTkNSWVBURUQgV0lUSCAoIDxy ZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiApPC9saXRlcmFs PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRW5hYmxlcyB0 cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmb3IgdGhlIGNvbHVtbi4KKyAgICAgIDxy ZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiBhcmUgY29tbWEt c2VwYXJhdGVkCisgICAgICA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IHNwZWNpZmlj YXRpb25zLiAgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZQorICAgICAgYXZhaWxhYmxlOgor ICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8 dGVybT48bGl0ZXJhbD5jb2x1bW5fZW5jcnlwdGlvbl9rZXk8L2xpdGVyYWw+PC90ZXJtPgor ICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVjaWZp ZXMgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0byB1c2UuICBTcGVj aWZ5aW5nCisgICAgICAgICAgdGhpcyBpcyBtYW5kYXRvcnkuCisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+ZW5jcnlwdGlvbl90eXBl PC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgPGxpdGVyYWw+cmFuZG9taXplZDwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0 KSBvciA8bGl0ZXJhbD5kZXRlcm1pbmlzdGljPC9saXRlcmFsPgorICAgICAgICAgPC9wYXJh PgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAg IDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmFsZ29yaXRobTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAg ICAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB0byB1c2UuICBUaGUgZGVmYXVsdCBp cworICAgICAgICAgIDxsaXRlcmFsPkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2PC9s aXRlcmFsPi4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPklOSEVSSVRTICggPHJlcGxhY2VhYmxlPnBhcmVu dF90YWJsZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAg IDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA2NWJiMGE2YTNmLi5l NmM5M2YxYjEzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMjU1LDYgKzIyNTUs MjggQEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3RpdGxlPgogICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKIAorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT48bGl0ZXJhbD5c Z2VuY3I8L2xpdGVyYWw+IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcmFt ZXRlcjwvcmVwbGFjZWFibGU+IF0gLi4uIDwvdGVybT4KKworICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgICBTZW5kcyB0aGUgY3VycmVudCBxdWVyeSBidWZm ZXIgdG8gdGhlIHNlcnZlciBmb3IgZXhlY3V0aW9uLCBhcyB3aXRoCisgICAgICAgICA8bGl0 ZXJhbD5cZzwvbGl0ZXJhbD4sIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzIHBhc3Nl ZCBmb3IgYW55CisgICAgICAgICBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzICg8bGl0ZXJhbD4k MTwvbGl0ZXJhbD4gZXRjLikuICBUaGlzIGNvbW1hbmQKKyAgICAgICAgIGVuc3VyZXMgdGhh dCBhbnkgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFy ZQorICAgICAgICAgc2VudCB0byB0aGUgc2VydmVyIGVuY3J5cHRlZC4KKyAgICAgICAgPC9w YXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICAgRXhhbXBsZToKKzxwcm9ncmFtbGlz dGluZz4KK0lOU0VSVCBJTlRPIHRibDEgVkFMVUVTICgkMSwgJDIpIFxnZW5jciAnZmlyc3Qg dmFsdWUnICdzZWNvbmQgdmFsdWUnCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisKICAg ICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxnZXRlbnYgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBzcWxfdmFyPC9yZXBsYWNlYWJsZT4gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVudl92YXI8L3JlcGxhY2VhYmxlPjwvbGl0 ZXJhbD48L3Rlcm0+CiAKQEAgLTM5NDUsNiArMzk2NywxNyBAQCA8dGl0bGU+VmFyaWFibGVz PC90aXRsZT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48dmFybmFtZT5ISURFX0NP TFVNTl9FTkNSWVBUSU9OPC92YXJuYW1lPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIDxs aXRlcmFsPnRydWU8L2xpdGVyYWw+LCBjb2x1bW4gZW5jcnlwdGlvbgorICAgICAgICAgZGV0 YWlscyBhcmUgbm90IGRpc3BsYXllZC4gVGhpcyBpcyBtYWlubHkgdXNlZnVsIGZvciByZWdy ZXNzaW9uCisgICAgICAgICB0ZXN0cy4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgICAgIDx0ZXJtPjx2YXJuYW1lPkhJREVfVE9BU1RfQ09NUFJFU1NJT048L3Zhcm5h bWU+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXgg YTNiNzQzZThjMS4uMmUzNzUwMDAzMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtOTAsNiAr OTAsOCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVhdGVBZ2dyZWdh dGU7CiAgICAmY3JlYXRlQ2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247CisgICAmY3JlYXRl Q29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJLZXk7CiAgICAm Y3JlYXRlQ29udmVyc2lvbjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZjcmVhdGVEb21h aW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9NYWtlZmlsZSBiL3NyYy90ZXN0L01ha2VmaWxl CmluZGV4IDY5ZWYwNzRkNzUuLjIzMDBiZTgzMzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L01h a2VmaWxlCisrKyBiL3NyYy90ZXN0L01ha2VmaWxlCkBAIC0zMiw2ICszMiw3IEBAIFNVQkRJ UlMgKz0gbGRhcAogZW5kaWYKIGVuZGlmCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQor U1VCRElSUyArPSBjb2x1bW5fZW5jcnlwdGlvbgogaWZuZXEgKCwkKGZpbHRlciBzc2wsJChQ R19URVNUX0VYVFJBKSkpCiBTVUJESVJTICs9IHNzbAogZW5kaWYKQEAgLTQxLDcgKzQyLDcg QEAgZW5kaWYKICMgY2xlYW4iIGV0YyB0byByZWN1cnNlIGludG8gdGhlbS4gIChXZSBtdXN0 IGZpbHRlciBvdXQgdGhvc2UgdGhhdCB3ZQogIyBoYXZlIGNvbmRpdGlvbmFsbHkgaW5jbHVk ZWQgaW50byBTVUJESVJTIGFib3ZlLCBlbHNlIHRoZXJlIHdpbGwgYmUKICMgbWFrZSBjb25m dXNpb24uKQotQUxXQVlTX1NVQkRJUlMgPSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFt cGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBzc2wpCitBTFdBWVNfU1VCRElSUyA9ICQoZmlsdGVy LW91dCAkKFNVQkRJUlMpLGV4YW1wbGVzIGtlcmJlcm9zIGljdSBsZGFwIHNzbCBjb2x1bW5f ZW5jcnlwdGlvbikKIAogIyBXZSB3YW50IHRvIHJlY3Vyc2UgdG8gYWxsIHN1YmRpcnMgZm9y IGFsbCBzdGFuZGFyZCB0YXJnZXRzLCBleGNlcHQgdGhhdAogIyBpbnN0YWxsY2hlY2sgYW5k IGluc3RhbGwgc2hvdWxkIG5vdCByZWN1cnNlIGludG8gdGhlIHN1YmRpcmVjdG9yeSAibW9k dWxlcyIuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdu b3JlIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NTZkYmY2OWQyCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpAQCAtMCwwICsx LDMgQEAKKy90ZXN0X2NsaWVudAorIyBHZW5lcmF0ZWQgYnkgdGVzdCBzdWl0ZQorL3RtcF9j aGVjay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxl IGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2FjYTg0YjE3YQotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCkBAIC0wLDAgKzEsMjkgQEAK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIE1ha2VmaWxlIGZvciBzcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbgorIworIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMgUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEK KyMKKyMgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKKyMKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKK3N1YmRpciA9IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uCit0 b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01h a2VmaWxlLmdsb2JhbAorCitvdmVycmlkZSBDUFBGTEFHUyA6PSAtSSQobGlicHFfc3JjZGly KSAkKENQUEZMQUdTKQorTERGTEFHU19JTlRFUk5BTCArPSAtTCQodG9wX2J1aWxkZGlyKS9z cmMvZmVfdXRpbHMgLWxwZ2ZldXRpbHMgJChsaWJwcV9wZ3BvcnQpCisKK2FsbDogdGVzdF9j bGllbnQKKworY2hlY2s6IGFsbAorCSQocHJvdmVfY2hlY2spCisKK2luc3RhbGxjaGVjazoK KwkkKHByb3ZlX2luc3RhbGxjaGVjaykKKworY2xlYW4gZGlzdGNsZWFuIG1haW50YWluZXIt Y2xlYW46CisJcm0gLWYgdGVzdF9jbGllbnQubyB0ZXN0X2NsaWVudAorCXJtIC1yZiB0bXBf Y2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2Nv bHVtbl9lbmNyeXB0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDFf Y29sdW1uX2VuY3J5cHRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uYTBkMzE5MjgwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9l bmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsCkBAIC0wLDAgKzEsMTgwIEBA CisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2Ug VGVzdDo6TW9yZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5u ZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisKK3N1YiBjcmVh dGVfY21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRjbWtmaWxlbmFtZSA9ICIk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsK KwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdnZW5wa2V5JywgJy1hbGdvcml0aG0nLCAn cnNhJywgJy1vdXQnLCAkY21rZmlsZW5hbWU7CisJJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcXtDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgJHtjbWtuYW1lfSBXSVRIIChyZWFs bSA9ICcnKX0pOworCXJldHVybiAkY21rZmlsZW5hbWU7Cit9CisKK3N1YiBjcmVhdGVfY2Vr Cit7CisJbXkgKCRjZWtuYW1lLCAkYnl0ZXMsICRjbWtuYW1lLCAkY21rZmlsZW5hbWUpID0g QF87CisKKwkjIGdlbmVyYXRlIHJhbmRvbSBieXRlcworCXN5c3RlbV9vcl9iYWlsICdvcGVu c3NsJywgJ3JhbmQnLCAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwgJGJ5dGVzOworCisJIyBlbmNyeXB0IENFSyB1c2lu ZyBDTUsKKwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNyeXB0 JywKKwkgICctaW5rZXknLCAkY21rZmlsZW5hbWUsCisJICAnLXBrZXlvcHQnLCAncnNhX3Bh ZGRpbmdfbW9kZTpvYWVwJywKKwkgICctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsCisJICAnLW91dCcsICIke1Bvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKKwlt eSAkY2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKwkjIGNy ZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFx e0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgJHtjZWtuYW1lfSBXSVRIIFZBTFVFUyAo Y29sdW1uX21hc3Rlcl9rZXkgPSAke2Nta25hbWV9LCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4 JHtjZWtlbmNoZXh9Jyk7fSk7CisKKwlyZXR1cm47Cit9CisKKworbXkgJGNtazFmaWxlbmFt ZSA9IGNyZWF0ZV9jbWsoJ2NtazEnKTsKK215ICRjbWsyZmlsZW5hbWUgPSBjcmVhdGVfY21r KCdjbWsyJyk7CitjcmVhdGVfY2VrKCdjZWsxJywgMzIsICdjbWsxJywgJGNtazFmaWxlbmFt ZSk7CitjcmVhdGVfY2VrKCdjZWsyJywgNDgsICdjbWsyJywgJGNtazJmaWxlbmFtZSk7CisK KyRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOjp0bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCisKKyRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAg YiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQor KTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworQ1JFQVRFIFRB QkxFIHRibDIgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoZW5j cnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYywgY29sdW1uX2VuY3J5cHRpb25fa2V5ID0g Y2VrMSkKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKK0NS RUFURSBUQUJMRSB0YmwzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJ VEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpLAorICAgIGMgdGV4dCBFTkNSWVBU RUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMiwgYWxnb3JpdGhtID0gJ0FF QURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0JykKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwgYikgVkFMVUVTICgx LCAkMSkgXGdlbmNyICd2YWwxJworSU5TRVJUIElOVE8gdGJsMSAoYSwgYikgVkFMVUVTICgy LCAkMSkgXGdlbmNyICd2YWwyJworfSk7CisKKyMgRXhwZWN0ZWQgY2lwaGVydGV4dCBsZW5n dGggaXMgMiBibG9ja3Mgb2YgQUVTIG91dHB1dCAoMiAqIDE2KSBwbHVzCisjIGhhbGYgU0hB LTI1NiBvdXRwdXQgKDE2KSBpbiBoZXggZW5jb2Rpbmc6ICgyICogMTYgKyAxNikgKiAyID0g OTYKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkgKFNFTEVDVCAq IEZST00gdGJsMSkgVE8gU1RET1VUfSksCisJcXIvMVx0XFxcXHhbMC05YS1mXXs5Nn1cbjJc dFxcXFx4WzAtOWEtZl17OTZ9LywKKwknaW5zZXJ0ZWQgZGF0YSBpcyBlbmNyeXB0ZWQnKTsK KworbXkgJHJlc3VsdDsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDEgXGdkZXNjfSk7CitpcygkcmVzdWx0LAorCXEo YXxpbnRlZ2VyCitifHRleHQpLAorCSdxdWVyeSByZXN1bHQgZGVzY3JpcHRpb24gaGFzIG9y aWdpbmFsIHR5cGUnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDEK KzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQnKTsKKworeworCWxvY2FsICRF TlZ7J1BHQ01LTE9PS1VQJ30gPSAnKj1ydW46YnJva2VuICVrICIlYiInOworCSRyZXN1bHQg PSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pOwor CWlzbnQoJHJlc3VsdCwgMCwgJ3F1ZXJ5IGZhaWxzIHdpdGggYnJva2VuIGNta2xvb2t1cCBy dW4gc2V0dGluZycpOworfQorCit7CisJbG9jYWwgJEVOVnsnUEdDTUtMT09LVVAnfSA9ICIq PXJ1bjpwZXJsIC4vdGVzdF9ydW5fZGVjcnlwdC5wbCAnJHtQb3N0Z3JlU1FMOjpUZXN0OjpV dGlsczo6dG1wX2NoZWNrfScgJWsgJWEgJyViJyI7CisKKwkkcmVzdWx0ID0gJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pOworCWlzKCRy ZXN1bHQsCisJCXEoMXx2YWwxCisyfHZhbDIpLAorCQknZGVjcnlwdGVkIHF1ZXJ5IHJlc3Vs dCB3aXRoIGNta2xvb2t1cCBydW4nKTsKK30KKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMyAoYSwgYiwgYykgVkFMVUVTICgxLCAkMSwgJDIp IFxnZW5jciAndmFsQjEnICd2YWxDMScKK30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsM30pOworaXMoJHJl c3VsdCwKKwlxKDF8dmFsQjF8dmFsQzEpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IG11 bHRpcGxlIGtleXMnKTsKKworCiskbm9kZS0+Y29tbWFuZF9mYWlsc19saWtlKFsndGVzdF9j bGllbnQnLCAndGVzdDEnXSwgcXIvbm90IGVuY3J5cHRlZC8sICd0ZXN0IGNsaWVudCBmYWls cyBiZWNhdXNlIHBhcmFtZXRlcnMgbm90IGVuY3J5cHRlZCcpOworCiskcmVzdWx0ID0gJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pOwor aXMoJHJlc3VsdCwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJl c3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQnKTsKKworJG5vZGUtPmNvbW1hbmRfb2so Wyd0ZXN0X2NsaWVudCcsICd0ZXN0MiddLCAndGVzdCBjbGllbnQgdGVzdCAyJyk7CisKKyRy ZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJP TSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxCisyfHZhbDIKKzN8dmFsMyksCisJ J2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0IDInKTsK KworbGlrZSgkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7Q09QWSAoU0VMRUNUICog RlJPTSB0YmwxIFdIRVJFIGEgPSAzKSBUTyBTVERPVVR9KSwKKwlxci8zXHRcXFxceFswLTlh LWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlwdGVkJyk7CisKKyRub2RlLT5j b21tYW5kX29rKFsndGVzdF9jbGllbnQnLCAndGVzdDMnXSwgJ3Rlc3QgY2xpZW50IHRlc3Qg MycpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVD VCBhLCBiIEZST00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMQorMnx2YWwyCisz fHZhbDN1cGQpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50 IGluc2VydCAzJyk7CisKKyRub2RlLT5jb21tYW5kX29rKFsndGVzdF9jbGllbnQnLCAndGVz dDQnXSwgJ3Rlc3QgY2xpZW50IHRlc3QgNCcpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMn0pOworaXMoJHJlc3Vs dCwKKwlxKDF8dmFsQQorMnx2YWxCCiszfHZhbEEpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVz dWx0IGFmdGVyIHRlc3QgY2xpZW50IGluc2VydCA0Jyk7CisKK2lzKCRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYiwgY291bnQoKikgRlJPTSB0YmwyIEdST1VQIEJZ IGIgT1JERVIgQlkgMn0pLAorCXEodmFsQnwxCit2YWxBfDIpLAorCSdncm91cCBieSBkZXRl cm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1uJyk7CisKKyRub2RlLT5jb21tYW5kX29r KFsndGVzdF9jbGllbnQnLCAndGVzdDUnXSwgJ3Rlc3QgY2xpZW50IHRlc3QgNScpOworCisk cmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBj IEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsQjF8dmFsQzEKKzJ8dmFsQjJ8 dmFsQzIKKzN8dmFsQjN8dmFsQzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRp cGxlIGtleXMgYWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0IDUnKTsKKworZG9uZV90ZXN0aW5n KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtf cm90YXRpb24ucGwgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90 YXRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uY2Y2MTE0 ZGI0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Qv MDAyX2Nta19yb3RhdGlvbi5wbApAQCAtMCwwICsxLDExOCBAQAorIyBDb3B5cmlnaHQgKGMp IDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBU ZXN0IGNvbHVtbiBtYXN0ZXIga2V5IHJvdGF0aW9uLiAgRmlyc3QsIHdlIGdlbmVyYXRlIENN SzEgYW5kIGEgQ0VLCisjIGVuY3J5cHRlZCB3aXRoIGl0LiAgVGhlbiB3ZSBhZGQgYSBDTUsy IGFuZCBlbmNyeXB0IHRoZSBDRUsgd2l0aCBpdAorIyBhcyB3ZWxsLiAgKFJlY2FsbCB0aGF0 IGEgQ0VLIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgQ01LcywKKyMgZm9yIHRo aXMgcmVhc29uLiAgVGhhdCdzIHdoeSBwZ19jb2xlbmNrZXlkYXRhIGlzIHNwbGl0IG91dCBm cm9tCisjIHBnX2NvbGVuY2tleS4pICBUaGVuIHdlIHJlbW92ZSBDTUsxLiAgV2UgdGVzdCB0 aGF0IHdlIGNhbiBnZXQKKyMgZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdHMgYXQgZWFjaCBzdGVw LgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6 OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9y ZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUn KTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7 CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1f b3JfYmFpbCAnb3BlbnNzbCcsICdnZW5wa2V5JywgJy1hbGdvcml0aG0nLCAncnNhJywgJy1v dXQnLCAkY21rZmlsZW5hbWU7CisJJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgJHtjbWtuYW1lfSBXSVRIIChyZWFsbSA9ICcnKX0p OworCXJldHVybiAkY21rZmlsZW5hbWU7Cit9CisKKworbXkgJGNtazFmaWxlbmFtZSA9IGNy ZWF0ZV9jbWsoJ2NtazEnKTsKKworIyBjcmVhdGUgQ0VLCitteSAoJGNla25hbWUsICRieXRl cykgPSAoJ2NlazEnLCAxNisxNik7CisKKyMgZ2VuZXJhdGUgcmFuZG9tIGJ5dGVzCitzeXN0 ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdyYW5kJywgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsICRieXRlczsKKworIyBl bmNyeXB0IENFSyB1c2luZyBDTUsKK3N5c3RlbV9vcl9iYWlsICdvcGVuc3NsJywgJ3BrZXl1 dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNtazFmaWxlbmFtZSwKKyAgJy1wa2V5 b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisgICctaW4nLCAiJHtQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsCisgICctb3V0Jywg IiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4u ZW5jIjsKKworbXkgJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9maWxlICIke1Bv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyIp OworCisjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25hbWV9IFdJVEgg VkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsIGVuY3J5cHRlZF92YWx1ZSA9ICdc XHgke2Nla2VuY2hleH0nKTt9KTsKKworJEVOVnsnUEdDTUtMT09LVVAnfSA9ICcqPWZpbGU6 JyAuICR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30gLiAnLyVrLnBlbSc7 CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJs MSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5j cnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDEsICQxKSBcZ2Vu Y3IgJ3ZhbDEnCitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDIsICQxKSBcZ2Vu Y3IgJ3ZhbDInCit9KTsKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NF TEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0 ZWQgcXVlcnkgcmVzdWx0IHdpdGggb25lIENNSycpOworCisKKyMgY3JlYXRlIG5ldyBDTUsK K215ICRjbWsyZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsyJyk7CisKKyMgZW5jcnlwdCBD RUsgdXNpbmcgbmV3IENNSworIworIyAoSGVyZSwgd2Ugc3RpbGwgaGF2ZSB0aGUgcGxhaW50 ZXh0IG9mIHRoZSBDRUsgYXZhaWxhYmxlIGZyb20KKyMgZWFybGllci4gIEluIHJlYWxpdHks IG9uZSB3b3VsZCBkZWNyeXB0IHRoZSBDRUsgd2l0aCB0aGUgZmlyc3QgQ01LCisjIGFuZCB0 aGVuIHJlLWVuY3J5cHQgaXQgd2l0aCB0aGUgc2Vjb25kIENNSy4pCitzeXN0ZW1fb3JfYmFp bCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKyAgJy1pbmtleScsICRjbWsy ZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAorICAn LWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1l fS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hl Y2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKKyRjZWtlbmNoZXggPSB1bnBhY2soJ0gqJywg c2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nl a25hbWV9LmJpbi5lbmMiKTsKKworIyBhZGQgbmV3IGRhdGEgcmVjb3JkIGZvciBDRUsgaW4g ZGF0YWJhc2UKKyMgVE9ETzogVGhlcmUgc2hvdWxkIGJlIHNvbWUgQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNvbW1hbmQgdG8gZG8gdGhpcy4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXF7CitJTlNFUlQgSU5UTyBwZ19jb2xlbmNrZXlkYXRhIChvaWQsIGNrZGNl a2lkLCBja2RjbWtpZCwgY2tkY21rYWxnLCBja2RlbmN2YWwpIFZBTFVFUyAoCisgICAgcGdf bmV4dG9pZCgncGdfY2F0YWxvZy5wZ19jb2xlbmNrZXlkYXRhJywgJ29pZCcsICdwZ19jYXRh bG9nLnBnX2NvbGVuY2tleWRhdGFfb2lkX2luZGV4JyksCisgICAgKFNFTEVDVCBvaWQgRlJP TSBwZ19jb2xlbmNrZXkgV0hFUkUgY2VrbmFtZSA9ICcke2Nla25hbWV9JyksCisgICAgKFNF TEVDVCBvaWQgRlJPTSBwZ19jb2xtYXN0ZXJrZXkgV0hFUkUgY21rbmFtZSA9ICdjbWsyJyks CisgICAgMSwKKyAgICAnXFx4JHtjZWtlbmNoZXh9JworKTsKK30pOworCisKK2lzKCRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KSwKKwlx KDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIHR3byBD TUtzJyk7CisKKworIyBkZWxldGUgQ0VLIHJlY29yZCBmb3IgZmlyc3QgQ01LCiskbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworREVMRVRFIEZST00gcGdfY29sZW5ja2V5ZGF0 YSBXSEVSRSBja2RjbWtpZCA9IChTRUxFQ1Qgb2lkIEZST00gcGdfY29sbWFzdGVya2V5IFdI RVJFIGNta25hbWUgPSAnY21rMScpOworfSk7CisKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZh bDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggb25seSBuZXcgQ01LJyk7CisK KworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlw dGlvbi90ZXN0X2NsaWVudC5jIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9j bGllbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hZGQ5ZmU0 MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVz dF9jbGllbnQuYwpAQCAtMCwwICsxLDIxMCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAy MS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICovCisKKyNp bmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAibGlicHEtZmUuaCIKKworCitz dGF0aWMgaW50Cit0ZXN0MShQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzOwor CWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMifTsKKworCXJlcyA9IFBRZXhl Y1BhcmFtcyhjb25uLCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYikgVkFMVUVTICgkMSwgJDIp IiwKKwkJCQkJICAgMiwgTlVMTCwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwKTsKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50Zihz dGRlcnIsICJQUWV4ZWNQYXJhbXMoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQKK3Rlc3QyKFBHY29ubiAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkg ICAqcmVzMjsKKwljb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMyIsICJ2YWwzIn07CisJaW50 CQkJZm9yY2VzW10gPSB7ZmFsc2UsIHRydWV9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4s ICIiLCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYikgVkFMVUVTICgkMSwgJDIpIiwKKwkJCQkJ MiwgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9P SykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwK KwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlczIg PSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWRl c2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKCEoIVBRcGFyYW1pc2VuY3J5cHRlZChy ZXMyLCAwKSAmJgorCQkgIFBRcGFyYW1pc2VuY3J5cHRlZChyZXMyLCAxKSkpCisJeworCQlm cHJpbnRmKHN0ZGVyciwgIndyb25nIHJlc3VsdHMgZnJvbSBQUXBhcmFtaXNlbmNyeXB0ZWQo KVxuIik7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25u LCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBmb3JjZXMsIDAsIHJlczIpOworCWlmIChQ UXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRm KHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9y TWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAor CQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjMiLCAidmFsM3VwZCJ9 OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiVVBEQVRFIHRibDEgU0VUIGIgPSAk MiBXSEVSRSBhID0gJDEiLAorCQkJCQkyLCBOVUxMKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMo cmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUXBy ZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJ cmV0dXJuIDE7CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7 CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJewor CQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIs CisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMg PSBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgIiIsIDIsIHZhbHVlcywgTlVMTCwgTlVMTCwgTlVM TCwgMCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFO RF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6 ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3Q0KFBHY29ubiAqY29ubikKK3sK KwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBjaGFyICp2YWx1ZXNb XSA9IHsiMSIsICJ2YWxBIiwgIjIiLCAidmFsQiIsICIzIiwgInZhbEEifTsKKworCXJlcyA9 IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDIgKGEsIGIpIFZBTFVFUyAo JDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIiwKKwkJCQkJNiwgTlVMTCk7CisJaWYgKFBR cmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYo c3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2Fn ZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlczIgPSBQUWRlc2NyaWJlUHJlcGFy ZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAhPSBQR1JFU19DT01N QU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBm YWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7 CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCA2LCB2YWx1ZXMsIE5V TEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9 IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBh cmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJl dHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0ZXN0NShQR2Nv bm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJY29uc3Qg Y2hhciAqdmFsdWVzW10gPSB7CisJCSIyIiwgInZhbEIyIiwgInZhbEMyIiwKKwkJIjMiLCAi dmFsQjMiLCAidmFsQzMiCisJfTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklO U0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMyksICgkNCwgJDUs ICQ2KSIsCisJCQkJCTYsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBH UkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJlcGFyZSgpIGZh aWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsK Kwl9CisKKwlyZXMyID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYo c3RkZXJyLCAiUFFkZXNjcmliZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1By ZXBhcmVkMihjb25uLCAiIiwgNiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCByZXMy KTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsK KwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJ CQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4g MDsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlQR2Nvbm4J ICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKworCWNvbm4gPSBQUWNvbm5lY3RkYigiIik7 CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5FQ1RJT05fT0spCisJeworCQlmcHJpbnRm KHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVkOiAlc1xuIiwKKwkJCQlQ UWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCWlmIChhcmdjIDwg MiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVybiA4NzsKKwllbHNlIGlmIChzdHJjbXAo YXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0ID0gdGVzdDEoY29ubik7CisJZWxzZSBp ZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09IDApCisJCXJldCA9IHRlc3QyKGNvbm4p OworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDMiKSA9PSAwKQorCQlyZXQgPSB0 ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3Q0IikgPT0gMCkK KwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0 NSIpID09IDApCisJCXJldCA9IHRlc3Q1KGNvbm4pOworCWVsc2UKKwkJcmV0ID0gODg7CisK KwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbCBiL3NyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKbmV3IGZpbGUgbW9kZSAxMDA3 NTUKaW5kZXggMDAwMDAwMDAwMC4uOTY2NDM0OWYxNAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKQEAgLTAsMCAr MSw0MSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgVGVzdC9zYW1wbGUgY29tbWFuZCBmb3Ig bGlicHEgY21rbG9va3VwIHJ1biBzY2hlbWUKKyMKKyMgVGhpcyBqdXN0IHBsYWNlcyB0aGUg ZGF0YSBpbnRvIHRlbXBvcmFyeSBmaWxlcyBhbmQgcnVucyB0aGUgb3BlbnNzbAorIyBjb21t YW5kIG9uIGl0LiAgKEluIHByYWN0aWNlLCB0aGlzIGNvdWxkIG1vcmUgc2ltcGx5IGJlIHdy aXR0ZW4gYXMgYQorIyBzaGVsbCBzY3JpcHQsIGJ1dCB0aGlzIHdheSBpdCdzIG1vcmUgcG9y dGFibGUuKQorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1 c2UgTUlNRTo6QmFzZTY0OworCitteSAoJHRtcGRpciwgJGNta25hbWUsICRhbGcsICRiNjRk YXRhKSA9IEBBUkdWOworCitkaWUgdW5sZXNzICRhbGcgZXEgJ1JTQUVTX09BRVBfU0hBXzEn OworCitvcGVuIG15ICRmaCwgJz46cmF3JywgIiR7dG1wZGlyfS9pbnB1dC50bXAiIG9yIGRp ZTsKK3ByaW50ICRmaCBkZWNvZGVfYmFzZTY0KCRiNjRkYXRhKTsKK2Nsb3NlICRmaDsKKwor c3lzdGVtKCdvcGVuc3NsJywgJ3BrZXl1dGwnLCAnLWRlY3J5cHQnLAorCSctaW5rZXknLCAi JHt0bXBkaXJ9LyR7Y21rbmFtZX0ucGVtIiwgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21v ZGU6b2FlcCcsCisJJy1pbicsICIke3RtcGRpcn0vaW5wdXQudG1wIiwgJy1vdXQnLCAiJHt0 bXBkaXJ9L291dHB1dC50bXAiKSA9PSAwIG9yIGRpZTsKKworb3BlbiAkZmgsICc8OnJhdycs ICIke3RtcGRpcn0vb3V0cHV0LnRtcCIgb3IgZGllOworbXkgJGRhdGEgPSAnJzsKKword2hp bGUgKDEpIHsKKwlteSAkc3VjY2VzcyA9IHJlYWQgJGZoLCAkZGF0YSwgMTAwLCBsZW5ndGgo JGRhdGEpOworCWRpZSAkISBpZiBub3QgZGVmaW5lZCAkc3VjY2VzczsKKwlsYXN0IGlmIG5v dCAkc3VjY2VzczsKK30KKworY2xvc2UgJGZoOworCit1bmxpbmsgIiR7dG1wZGlyfS9pbnB1 dC50bXAiLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiOworCitwcmludCBlbmNvZGVfYmFzZTY0 KCRkYXRhKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUv dHJhY2VzL2Rpc2FsbG93ZWRfaW5fcGlwZWxpbmUudHJhY2UgYi9zcmMvdGVzdC9tb2R1bGVz L2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9kaXNhbGxvd2VkX2luX3BpcGVsaW5lLnRyYWNlCmlu ZGV4IGRkNmRmMDNmMWUuLjVmYzljMDM0NmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVs ZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL2Rpc2FsbG93ZWRfaW5fcGlwZWxpbmUudHJhY2UK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvZGlzYWxsb3dl ZF9pbl9waXBlbGluZS50cmFjZQpAQCAtMSw1ICsxLDUgQEAKIEYJMTMJUXVlcnkJICJTRUxF Q1QgMSIKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0 IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0 IC0xIDAgTk5OTiAwCiBCCTExCURhdGFSb3cJIDEgMSAnMScKIEIJMTMJQ29tbWFuZENvbXBs ZXRlCSAiU0VMRUNUIDEiCiBCCTUJUmVhZHlGb3JRdWVyeQkgSQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvbXVsdGlfcGlwZWxpbmVzLnRy YWNlIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvbXVsdGlfcGlw ZWxpbmVzLnRyYWNlCmluZGV4IDRiOWFiMDdjYTQuLjcwMGIwYjY1MTkgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL211bHRpX3BpcGVsaW5l cy50cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9t dWx0aV9waXBlbGluZXMudHJhY2UKQEAgLTEwLDEzICsxMCwxMyBAQCBGCTkJRXhlY3V0ZQkg IiIgMAogRgk0CVN5bmMKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1C CTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitC CTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5O Tk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzEnCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNF TEVDVCAxIgogQgk1CVJlYWR5Rm9yUXVlcnkJIEkKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJ QmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAw IE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAw IE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzEnCiBCCTEzCUNvbW1h bmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk1CVJlYWR5Rm9yUXVlcnkJIEkKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL25vc3luYy50cmFj ZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL25vc3luYy50cmFj ZQppbmRleCBkOTlhYWM2NDlkLi43YjFkZmExYzE1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9t b2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9ub3N5bmMudHJhY2UKKysrIGIvc3JjL3Rl c3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvbm9zeW5jLnRyYWNlCkBAIC00MSw1 MiArNDEsNTIgQEAgRgk5CUV4ZWN1dGUJICIiIDAKIEYJNAlGbHVzaAogQgk0CVBhcnNlQ29t cGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVh dCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVw ZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYw ICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5 enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNl Q29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEgInJl cGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAi cmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93CSAx IDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4 enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CVBh cnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24JIDEg InJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlvbgkg MSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRhUm93 CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4 eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0 CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRpb24J IDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlwdGlv bgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlEYXRh Um93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6 eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgog Qgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3JpcHRp b24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNjcmlw dGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3MAlE YXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6 eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAx IgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVzY3Jp cHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dEZXNj cmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAogQgk3 MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5 enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVD VCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93RGVz Y3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlSb3dE ZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMAog Qgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4 enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNF TEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJUm93 RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzNwlS b3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4g MAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHp4 eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkg IlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJMzEJ Um93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkz NwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5O Tk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6 eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21wbGV0 ZQkgIlNFTEVDVCAxIgogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJ MzEJUm93RGVzY3JpcHRpb24JIDEgInJlcGVhdCIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAor QgkzNwlSb3dEZXNjcmlwdGlvbgkgMSAicmVwZWF0IiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAw IE5OTk4gMAogQgk3MAlEYXRhUm93CSAxIDYwICd4eXp4enh5enh6eHl6eHp4eXp4enh5enh6 eHl6eHp4eXp4enh5enh6eHl6eHp4eXp4enh5enh6eHl6eHonCiBCCTEzCUNvbW1hbmRDb21w bGV0ZQkgIlNFTEVDVCAxIgogRgk0CVRlcm1pbmF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv bW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvcGlwZWxpbmVfYWJvcnQudHJhY2UgYi9z cmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9waXBlbGluZV9hYm9ydC50 cmFjZQppbmRleCAzZmNlNTQ4Yjk5Li42ZTQzMDljYWRkIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9waXBlbGluZV9hYm9ydC50cmFjZQor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9waXBlbGluZV9h Ym9ydC50cmFjZQpAQCAtNTAsMTQgKzUwLDE0IEBAIEYJNglDbG9zZQkgUCAiIgogRgk0CVN5 bmMKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2Ny aXB0aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNjU1MzUgLTEgMAorQgkzOQlSb3dE ZXNjcmlwdGlvbgkgMSAiP2NvbHVtbj8iIE5OTk4gMCBOTk5OIDY1NTM1IC0xIDAgTk5OTiAw CiBCCTMyCURhdGFSb3cJIDEgMjIgJzAuMzMzMzMzMzMzMzMzMzMzMzMzMzMnCiBCCTMyCURh dGFSb3cJIDEgMjIgJzAuNTAwMDAwMDAwMDAwMDAwMDAwMDAnCiBCCTMyCURhdGFSb3cJIDEg MjIgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAnCiBCCU5OCUVycm9yUmVzcG9uc2UJIFMgIkVS Uk9SIiBWICJFUlJPUiIgQyAiMjIwMTIiIE0gImRpdmlzaW9uIGJ5IHplcm8iIEYgIlNTU1Mi IEwgIlNTU1MiIFIgIlNTU1MiIFx4MDAKIEIJNQlSZWFkeUZvclF1ZXJ5CSBJCiBGCTQwCVF1 ZXJ5CSAiU0VMRUNUIGl0ZW1ubyBGUk9NIHBxX3BpcGVsaW5lX2RlbW8iCi1CCTMxCVJvd0Rl c2NyaXB0aW9uCSAxICJpdGVtbm8iIE5OTk4gMiBOTk5OIDQgLTEgMAorQgkzNwlSb3dEZXNj cmlwdGlvbgkgMSAiaXRlbW5vIiBOTk5OIDIgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTExCURh dGFSb3cJIDEgMSAnMycKIEIJMTMJQ29tbWFuZENvbXBsZXRlCSAiU0VMRUNUIDEiCiBCCTUJ UmVhZHlGb3JRdWVyeQkgSQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9w aXBlbGluZS90cmFjZXMvcGlwZWxpbmVfaWRsZS50cmFjZSBiL3NyYy90ZXN0L21vZHVsZXMv bGlicHFfcGlwZWxpbmUvdHJhY2VzL3BpcGVsaW5lX2lkbGUudHJhY2UKaW5kZXggMzk1N2Vl NGRmZS4uZDkzN2QxYjhmMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9w aXBlbGluZS90cmFjZXMvcGlwZWxpbmVfaWRsZS50cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1 bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9waXBlbGluZV9pZGxlLnRyYWNlCkBAIC02LDcg KzYsNyBAQCBGCTYJQ2xvc2UJIFAgIiIKIEYJNAlGbHVzaAogQgk0CVBhcnNlQ29tcGxldGUK IEIJNAlCaW5kQ29tcGxldGUKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBO Tk5OIDAgTk5OTiA0IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBO Tk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTExCURhdGFSb3cJIDEgMSAnMScKIEIJMTMJ Q29tbWFuZENvbXBsZXRlCSAiU0VMRUNUIDEiCiBCCTQJQ2xvc2VDb21wbGV0ZQpAQCAtMjAs MTIgKzIwLDEyIEBAIEYJNglDbG9zZQkgUCAiIgogRgk0CUZsdXNoCiBCCTQJUGFyc2VDb21w bGV0ZQogQgk0CUJpbmRDb21wbGV0ZQotQgkzMwlSb3dEZXNjcmlwdGlvbgkgMSAiP2NvbHVt bj8iIE5OTk4gMCBOTk5OIDQgLTEgMAorQgkzOQlSb3dEZXNjcmlwdGlvbgkgMSAiP2NvbHVt bj8iIE5OTk4gMCBOTk5OIDQgLTEgMCBOTk5OIDAKIEIJMTEJRGF0YVJvdwkgMSAxICcxJwog QgkxMwlDb21tYW5kQ29tcGxldGUJICJTRUxFQ1QgMSIKIEIJNAlDbG9zZUNvbXBsZXRlCiBG CTEzCVF1ZXJ5CSAiU0VMRUNUIDIiCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1u PyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1u PyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEgJzInCiBC CTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk1CVJlYWR5Rm9yUXVlcnkJIEkK QEAgLTM3LDcgKzM3LDcgQEAgRgk2CUNsb3NlCSBQICIiCiBGCTQJRmx1c2gKIEIJNAlQYXJz ZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/ Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAxICI/ Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAxIDEg JzEnCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CUNsb3NlQ29tcGxl dGUKQEAgLTQ5LDcgKzQ5LDcgQEAgRgk2CUNsb3NlCSBQICIiCiBGCTQJRmx1c2gKIEIJNAlQ YXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9uCSAx ICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9uCSAx ICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93CSAx IDEgJzInCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CUNsb3NlQ29t cGxldGUKQEAgLTYxLDcgKzYxLDcgQEAgRgk2CUNsb3NlCSBQICIiCiBGCTQJRmx1c2gKIEIJ NAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0aW9u CSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0aW9u CSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRhUm93 CSAxIDEgJzEnCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CUNsb3Nl Q29tcGxldGUKQEAgLTczLDcgKzczLDcgQEAgRgk2CUNsb3NlCSBQICIiCiBGCTQJRmx1c2gK IEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTMzCVJvd0Rlc2NyaXB0 aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTM5CVJvd0Rlc2NyaXB0 aW9uCSAxICI/Y29sdW1uPyIgTk5OTiAwIE5OTk4gNCAtMSAwIE5OTk4gMAogQgkxMQlEYXRh Um93CSAxIDEgJzInCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAxIgogQgk0CUNs b3NlQ29tcGxldGUKQEAgLTg1LDcgKzg1LDcgQEAgRgk2CUNsb3NlCSBQICIiCiBGCTQJRmx1 c2gKIEIJNAlQYXJzZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTQzCVJvd0Rlc2Ny aXB0aW9uCSAxICJwZ19hZHZpc29yeV91bmxvY2siIE5OTk4gMCBOTk5OIDEgLTEgMAorQgk0 OQlSb3dEZXNjcmlwdGlvbgkgMSAicGdfYWR2aXNvcnlfdW5sb2NrIiBOTk5OIDAgTk5OTiAx IC0xIDAgTk5OTiAwCiBCCU5OCU5vdGljZVJlc3BvbnNlCSBTICJXQVJOSU5HIiBWICJXQVJO SU5HIiBDICIwMTAwMCIgTSAieW91IGRvbid0IG93biBhIGxvY2sgb2YgdHlwZSBFeGNsdXNp dmVMb2NrIiBGICJTU1NTIiBMICJTU1NTIiBSICJTU1NTIiBceDAwCiBCCTExCURhdGFSb3cJ IDEgMSAnZicKIEIJMTMJQ29tbWFuZENvbXBsZXRlCSAiU0VMRUNUIDEiCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9wcmVwYXJlZC50cmFj ZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3ByZXBhcmVkLnRy YWNlCmluZGV4IDFhN2RlNWMzZTYuLjhkNDViYmMwY2UgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3ByZXBhcmVkLnRyYWNlCisrKyBiL3Ny Yy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3ByZXBhcmVkLnRyYWNlCkBA IC0yLDggKzIsOCBAQCBGCTY4CVBhcnNlCSAic2VsZWN0X29uZSIgIlNFTEVDVCAkMSwgJzQy JywgJDE6Om51bWVyaWMsIGludGVydmFsICcxIHNlYyciIDEgTk5OTgogRgkxNglEZXNjcmli ZQkgUyAic2VsZWN0X29uZSIKIEYJNAlTeW5jCiBCCTQJUGFyc2VDb21wbGV0ZQotQgkxMAlQ YXJhbWV0ZXJEZXNjcmlwdGlvbgkgMSBOTk5OCi1CCTExMwlSb3dEZXNjcmlwdGlvbgkgNCAi P2NvbHVtbj8iIE5OTk4gMCBOTk5OIDQgLTEgMCAiP2NvbHVtbj8iIE5OTk4gMCBOTk5OIDY1 NTM1IC0xIDAgIm51bWVyaWMiIE5OTk4gMCBOTk5OIDY1NTM1IC0xIDAgImludGVydmFsIiBO Tk5OIDAgTk5OTiAxNiAtMSAwCitCCTE4CVBhcmFtZXRlckRlc2NyaXB0aW9uCSAxIE5OTk4g Tk5OTiAwIDAKK0IJMTM3CVJvd0Rlc2NyaXB0aW9uCSA0ICI/Y29sdW1uPyIgTk5OTiAwIE5O Tk4gNCAtMSAwIE5OTk4gMCAiP2NvbHVtbj8iIE5OTk4gMCBOTk5OIDY1NTM1IC0xIDAgTk5O TiAwICJudW1lcmljIiBOTk5OIDAgTk5OTiA2NTUzNSAtMSAwIE5OTk4gMCAiaW50ZXJ2YWwi IE5OTk4gMCBOTk5OIDE2IC0xIDAgTk5OTiAwCiBCCTUJUmVhZHlGb3JRdWVyeQkgSQogRgkx MAlRdWVyeQkgIkJFR0lOIgogQgkxMAlDb21tYW5kQ29tcGxldGUJICJCRUdJTiIKQEAgLTEz LDYgKzEzLDYgQEAgQgkxOQlDb21tYW5kQ29tcGxldGUJICJERUNMQVJFIENVUlNPUiIKIEIJ NQlSZWFkeUZvclF1ZXJ5CSBUCiBGCTE2CURlc2NyaWJlCSBQICJjdXJzb3Jfb25lIgogRgk0 CVN5bmMKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0 IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0 IC0xIDAgTk5OTiAwCiBCCTUJUmVhZHlGb3JRdWVyeQkgVAogRgk0CVRlcm1pbmF0ZQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvc2ltcGxl X3BpcGVsaW5lLnRyYWNlIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFj ZXMvc2ltcGxlX3BpcGVsaW5lLnRyYWNlCmluZGV4IDVjOTQ3NDliYzEuLjVmNDg0OTQyNWQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3Np bXBsZV9waXBlbGluZS50cmFjZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVs aW5lL3RyYWNlcy9zaW1wbGVfcGlwZWxpbmUudHJhY2UKQEAgLTUsNyArNSw3IEBAIEYJOQlF eGVjdXRlCSAiIiAwCiBGCTQJU3luYwogQgk0CVBhcnNlQ29tcGxldGUKIEIJNAlCaW5kQ29t cGxldGUKLUIJMzMJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0 IC0xIDAKK0IJMzkJUm93RGVzY3JpcHRpb24JIDEgIj9jb2x1bW4/IiBOTk5OIDAgTk5OTiA0 IC0xIDAgTk5OTiAwCiBCCTExCURhdGFSb3cJIDEgMSAnMScKIEIJMTMJQ29tbWFuZENvbXBs ZXRlCSAiU0VMRUNUIDEiCiBCCTUJUmVhZHlGb3JRdWVyeQkgSQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvc2luZ2xlcm93LnRyYWNlIGIv c3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90cmFjZXMvc2luZ2xlcm93LnRyYWNl CmluZGV4IDlkZTk5YmVmY2MuLjE5OWRmNGQ0ZjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21v ZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3NpbmdsZXJvdy50cmFjZQorKysgYi9zcmMv dGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9zaW5nbGVyb3cudHJhY2UKQEAg LTEzLDE0ICsxMywxNCBAQCBGCTkJRXhlY3V0ZQkgIiIgMAogRgk0CVN5bmMKIEIJNAlQYXJz ZUNvbXBsZXRlCiBCCTQJQmluZENvbXBsZXRlCi1CCTQwCVJvd0Rlc2NyaXB0aW9uCSAxICJn ZW5lcmF0ZV9zZXJpZXMiIE5OTk4gMCBOTk5OIDQgLTEgMAorQgk0NglSb3dEZXNjcmlwdGlv bgkgMSAiZ2VuZXJhdGVfc2VyaWVzIiBOTk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTEy CURhdGFSb3cJIDEgMiAnNDInCiBCCTEyCURhdGFSb3cJIDEgMiAnNDMnCiBCCTEyCURhdGFS b3cJIDEgMiAnNDQnCiBCCTEzCUNvbW1hbmRDb21wbGV0ZQkgIlNFTEVDVCAzIgogQgk0CVBh cnNlQ29tcGxldGUKIEIJNAlCaW5kQ29tcGxldGUKLUIJNDAJUm93RGVzY3JpcHRpb24JIDEg ImdlbmVyYXRlX3NlcmllcyIgTk5OTiAwIE5OTk4gNCAtMSAwCitCCTQ2CVJvd0Rlc2NyaXB0 aW9uCSAxICJnZW5lcmF0ZV9zZXJpZXMiIE5OTk4gMCBOTk5OIDQgLTEgMCBOTk5OIDAKIEIJ MTIJRGF0YVJvdwkgMSAyICc0MicKIEIJMTIJRGF0YVJvdwkgMSAyICc0MycKIEIJMTIJRGF0 YVJvdwkgMSAyICc0NCcKQEAgLTI4LDcgKzI4LDcgQEAgQgkxMglEYXRhUm93CSAxIDIgJzQ1 JwogQgkxMwlDb21tYW5kQ29tcGxldGUJICJTRUxFQ1QgNCIKIEIJNAlQYXJzZUNvbXBsZXRl CiBCCTQJQmluZENvbXBsZXRlCi1CCTQwCVJvd0Rlc2NyaXB0aW9uCSAxICJnZW5lcmF0ZV9z ZXJpZXMiIE5OTk4gMCBOTk5OIDQgLTEgMAorQgk0NglSb3dEZXNjcmlwdGlvbgkgMSAiZ2Vu ZXJhdGVfc2VyaWVzIiBOTk5OIDAgTk5OTiA0IC0xIDAgTk5OTiAwCiBCCTEyCURhdGFSb3cJ IDEgMiAnNDInCiBCCTEyCURhdGFSb3cJIDEgMiAnNDMnCiBCCTEyCURhdGFSb3cJIDEgMiAn NDQnCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNl cy90cmFuc2FjdGlvbi50cmFjZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUv dHJhY2VzL3RyYW5zYWN0aW9uLnRyYWNlCmluZGV4IDFkY2MyMzczYzAuLmE2ODY5YzRhNWIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL3Ry YW5zYWN0aW9uLnRyYWNlCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUv dHJhY2VzL3RyYW5zYWN0aW9uLnRyYWNlCkBAIC01NCw3ICs1NCw3IEBAIEIJMTUJQ29tbWFu ZENvbXBsZXRlCSAiSU5TRVJUIDAgMSIKIEIJNQlSZWFkeUZvclF1ZXJ5CSBJCiBCCTUJUmVh ZHlGb3JRdWVyeQkgSQogRgkzNAlRdWVyeQkgIlNFTEVDVCAqIEZST00gcHFfcGlwZWxpbmVf dHN0IgotQgkyNwlSb3dEZXNjcmlwdGlvbgkgMSAiaWQiIE5OTk4gMSBOTk5OIDQgLTEgMAor QgkzMwlSb3dEZXNjcmlwdGlvbgkgMSAiaWQiIE5OTk4gMSBOTk5OIDQgLTEgMCBOTk5OIDAK IEIJMTEJRGF0YVJvdwkgMSAxICczJwogQgkxMwlDb21tYW5kQ29tcGxldGUJICJTRUxFQ1Qg MSIKIEIJNQlSZWFkeUZvclF1ZXJ5CSBJCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjdmNzhkZGU2ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dApAQCAtMCwwICsxLDM3IEBA Citcc2V0IEhJREVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKK0NSRUFURSBDT0xVTU4gTUFT VEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworQ1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAor ICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBUQUJMRSB0 YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBU RUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCispOworRVJST1I6 ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgIm5vdGV4aXN0IiBkb2VzIG5vdCBleGlzdAorQ1JF QVRFIFRBQkxFIHRibF8yOWYzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0 ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsK K1xkIHRibF8yOWYzCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisg Q29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGEg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IHRl eHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorCitcZCsgdGJsXzI5ZjMKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF8yOWYzIgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9y YWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAg IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAg IHwgCisKK0RST1AgVEFCTEUgdGJsXzI5ZjM7ICAtLSBGSVhNRTogbmVlZHMgcGdfZHVtcCBz dXBwb3J0IGZvciBwZ191cGdyYWRlIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUuLjJhYTBlMTYzMjMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC03Myw2ICs3Myw4IEBAIE5PVElD RTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGJhc2V0eXBlfSA9PiBwZ190eXBlIHtvaWR9CiBO T1RJQ0U6ICBjaGVja2luZyBwZ190eXBlIHt0eXBjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlv biB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0cmlidXRlIHthdHRyZWxpZH0gPT4g cGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0dHlw aWR9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7 YXR0Y2VrfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0 dHJpYnV0ZSB7YXR0cmVhbHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6ICBjaGVj a2luZyBwZ19hdHRyaWJ1dGUge2F0dGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsbmFtZXNwYWNlfSA9PiBwZ19uYW1l c3BhY2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2NsYXNzIHtyZWx0eXBlfSA9PiBw Z190eXBlIHtvaWR9CkBAIC0yNjYsMyArMjY4LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdf c3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAg Y2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBw Z19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlv bl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBw Z19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTog IGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2Vrb3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQor Tk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY2VraWR9ID0+IHBnX2Nv bGVuY2tleSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tk Y21raWR9ID0+IHBnX2NvbG1hc3RlcmtleSB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggODZkNzU1YWE0NC4uNGEzNjYwNzRkYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0xNzUsMTMg KzE3NSwxNCBAQCBXSEVSRSBwMS5vaWQgIT0gcDIub2lkIEFORAogT1JERVIgQlkgMSwgMjsK ICAgICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAgfCAgICAgICBwcm9hcmd0eXBlcyAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGJ5dGVhICAgICAgICAgICAgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9k ZXQKICBiaWdpbnQgICAgICAgICAgICAgICAgICAgICAgfCB4aWQ4CiAgdGV4dCAgICAgICAg ICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyCiAgdGV4dCAgICAgICAgICAgICAgICAgICAg ICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcKICB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBiaXQgICAgICAgICAgICAgICAgICAgICAg ICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNob3QgICAgICAgICAgICAgICB8IHBnX3Nu YXBzaG90Ci0oNiByb3dzKQorKDcgcm93cykKIAogU0VMRUNUIERJU1RJTkNUIHAxLnByb2Fy Z3R5cGVzWzFdOjpyZWd0eXBlLCBwMi5wcm9hcmd0eXBlc1sxXTo6cmVndHlwZQogRlJPTSBw Z19wcm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBAIC0xOTcsMTIgKzE5OCwxMyBAQCBXSEVS RSBwMS5vaWQgIT0gcDIub2lkIEFORAogT1JERVIgQlkgMSwgMjsKICAgICAgICAgIHByb2Fy Z3R5cGVzICAgICAgICAgfCAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGJ5dGVh ICAgICAgICAgICAgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9kZXQKICBpbnRlZ2VyICAg ICAgICAgICAgICAgICAgICAgfCB4aWQKICB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBiaXQgICAgICAgICAgICAgICAgICAgICAg ICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNob3QgICAgICAgICAgICAgICB8IHBnX3Nu YXBzaG90CiAgYW55cmFuZ2UgICAgICAgICAgICAgICAgICAgIHwgYW55bXVsdGlyYW5nZQot KDUgcm93cykKKyg2IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0eXBlc1sy XTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMl06OnJlZ3R5cGUKIEZST00gcGdfcHJvYyBB UyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtODQxLDYgKzg0Myw4IEBAIHhpZDhnZSh4aWQ4LHhp ZDgpCiB4aWQ4ZXEoeGlkOCx4aWQ4KQogeGlkOG5lKHhpZDgseGlkOCkKIHhpZDhjbXAoeGlk OCx4aWQ4KQorcGdfZW5jcnlwdGVkX2RldF9lcShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5 cHRlZF9kZXQpCitwZ19lbmNyeXB0ZWRfZGV0X25lKHBnX2VuY3J5cHRlZF9kZXQscGdfZW5j cnlwdGVkX2RldCkKIC0tIHJlc3RvcmUgbm9ybWFsIG91dHB1dCBtb2RlCiBcYVx0CiAtLSBM aXN0IG9mIGZ1bmN0aW9ucyB1c2VkIGJ5IGxpYnBxJ3MgZmUtbG9iai5jCkBAIC05ODgsNyAr OTkyLDkgQEAgV0hFUkUgYy5jYXN0bWV0aG9kID0gJ2InIEFORAogIHhtbCAgICAgICAgICAg ICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgMCB8IGEKICB4bWwgICAgICAgICAg ICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICAgIDAgfCBhCiAgeG1sICAgICAgICAg ICAgICAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgICAwIHwgYQotKDEwIHJvd3MpCisg Ynl0ZWEgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0ICB8ICAgICAgICAwIHwgZQor IGJ5dGVhICAgICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX3JuZCAgfCAgICAgICAgMCB8IGUK KygxMiByb3dzKQogCiAtLSAqKioqKioqKioqKioqKioqIHBnX2NvbnZlcnNpb24gKioqKioq KioqKioqKioqKgogLS0gTG9vayBmb3IgaWxsZWdhbCB2YWx1ZXMgaW4gcGdfY29udmVyc2lv biBmaWVsZHMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBh cmUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dAppbmRleCA1 ODE1ZTE3YjM5Li40NDgyYTY1ZDI0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3ByZXBhcmUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJl cGFyZS5vdXQKQEAgLTE2MiwyNiArMTYyLDI2IEBAIFBSRVBBUkUgcTcodW5rbm93bikgQVMK IC0tIERNTCBzdGF0ZW1lbnRzCiBQUkVQQVJFIHE4IEFTCiAgICAgVVBEQVRFIHRlbmsxIFNF VCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVuaXF1ZTEgPSAkMTsKLVNFTEVDVCBuYW1lLCBzdGF0 ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0X3R5cGVzIEZST00gcGdfcHJlcGFyZWRf c3RhdGVtZW50cworU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVyX3R5cGVzLCBw YXJhbWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsIHJlc3VsdF90 eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKICAgICBPUkRFUiBCWSBuYW1lOwot IG5hbWUgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJfdHlwZXMg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZXMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSBxMiAgIHwgUFJFUEFSRSBxMih0ZXh0KSBBUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHt0ZXh0fSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwge25hbWUsYm9vbGVhbixib29s ZWFufQotICAgICAgfCAgICAgICAgIFNFTEVDVCBkYXRuYW1lLCBkYXRpc3RlbXBsYXRlLCBk YXRhbGxvd2Nvbm4gICAgICAgICAgICAgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgICAgICBGUk9NIHBnX2Rh dGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAkMTsgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTMg ICB8IFBSRVBBUkUgcTModGV4dCwgaW50LCBmbG9hdCwgYm9vbGVhbiwgc21hbGxpbnQpIEFT ICAgICAgICAgICAgICArfCB7dGV4dCxpbnRlZ2VyLCJkb3VibGUgcHJlY2lzaW9uIixib29s ZWFuLHNtYWxsaW50fSB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQotICAgICAgfCAgICAgICAgIFNFTEVDVCAq IEZST00gdGVuazEgV0hFUkUgc3RyaW5nNCA9ICQxIEFORCAoZm91ciA9ICQyIE9SK3wgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAg ICAgIHwgICAgICAgICB0ZW4gPSAkMzo6YmlnaW50IE9SIHRydWUgPSAkNCBPUiBvZGQgPSAk NTo6aW50KSAgICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHE1ICAgfCBQUkVQ QVJFIHE1KGludCwgdGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgK3wge2ludGVnZXIsdGV4dH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixuYW1lLG5hbWUsbmFtZX0KLSAgICAgIHwgICAgICAgICBTRUxFQ1QgKiBGUk9NIHRl bmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBPUiBzdHJpbmd1MSA9ICQyICt8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAg ICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IAotIHE2ICAgfCBQUkVQQVJFIHE2IEFTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KLSAgICAgIHwg ICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIEFORCBzdHJpbmd1 MSA9ICQyOyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgCi0gcTcgICB8IFBSRVBBUkUgcTcodW5rbm93bikgQVMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7cGF0aH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHt0ZXh0LHBhdGh9Ci0gICAgICB8 ICAgICBTRUxFQ1QgKiBGUk9NIHJvYWQgV0hFUkUgdGhlcGF0aCA9ICQxOyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IAotIHE4ICAgfCBQUkVQQVJFIHE4IEFTICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgIFVQREFU RSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7ICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgCisgbmFtZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlbWVudCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcl90 eXBlcyAgICAgICAgICAgICAgICAgICB8IHBhcmFtZXRlcl9vcmlnX3RhYmxlcyB8IHBhcmFt ZXRlcl9vcmlnX2NvbHVtbnMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZXMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgcTIgICB8IFBSRVBBUkUgcTIodGV4dCkgQVMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7dGV4dH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstfSAgICAgICAgICAgICAgICAgICB8 IHswfSAgICAgICAgICAgICAgICAgICAgfCB7bmFtZSxib29sZWFuLGJvb2xlYW59CisgICAg ICB8ICAgICAgICAgU0VMRUNUIGRhdG5hbWUsIGRhdGlzdGVtcGxhdGUsIGRhdGFsbG93Y29u biAgICAgICAgICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRh dG5hbWUgPSAkMTsgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHEzICAgfCBQUkVQQVJFIHEzKHRleHQs IGludCwgZmxvYXQsIGJvb2xlYW4sIHNtYWxsaW50KSBBUyAgICAgICAgICAgICAgK3wge3Rl eHQsaW50ZWdlciwiZG91YmxlIHByZWNpc2lvbiIsYm9vbGVhbixzbWFsbGludH0gfCB7LSwt LC0sLSwtfSAgICAgICAgICAgfCB7MCwwLDAsMCwwfSAgICAgICAgICAgIHwge2ludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxuYW1lLG5h bWV9CisgICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSBzdHJpbmc0 ID0gJDEgQU5EIChmb3VyID0gJDIgT1IrfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICB0ZW4gPSAkMzo6YmlnaW50 IE9SIHRydWUgPSAkNCBPUiBvZGQgPSAkNTo6aW50KSAgICAgICAgICt8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgfCAgICAgICAg IE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg CisgcTUgICB8IFBSRVBBUkUgcTUoaW50LCB0ZXh0KSBBUyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcix0ZXh0fSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHstLC19ICAgICAgICAgICAgICAgICB8IHswLDB9ICAg ICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAgIHwgICAgICAgICBTRUxFQ1Qg KiBGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBPUiBzdHJpbmd1MSA9ICQyICt8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAg fCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgcTYgICB8IFBSRVBBUkUgcTYgQVMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcixuYW1lfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLC19ICAgICAgICAgICAgICAgICB8 IHswLDB9ICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAgIHwgICAgIFNF TEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIEFORCBzdHJpbmd1MSA9ICQy OyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 IAorIHE3ICAgfCBQUkVQQVJFIHE3KHVua25vd24pIEFTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgK3wge3BhdGh9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB7LX0gICAgICAgICAgICAgICAgICAgfCB7MH0gICAg ICAgICAgICAgICAgICAgIHwge3RleHQscGF0aH0KKyAgICAgIHwgICAgIFNFTEVDVCAqIEZS T00gcm9hZCBXSEVSRSB0aGVwYXRoID0gJDE7ICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHE4ICAg fCBQUkVQQVJFIHE4IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB7LSx0ZW5rMX0gICAgICAgICAgICAgfCB7MCwxNH0gICAgICAgICAg ICAgICAgIHwgCisgICAgICB8ICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3UxID0gJDIg V0hFUkUgdW5pcXVlMSA9ICQxOyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAKICg2IHJvd3MpCiAKIC0tIHRlc3QgREVBTExP Q0FURSBBTEw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA2MGFjYmQx MjQxLi4zMzk1NmY2OTkzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAg LTIzNyw2ICsyMzcsMzEgQEAgU0VMRUNUIDMgQVMgeCwgJ0hlbGxvJywgNCBBUyB5LCB0cnVl IEFTICJkaXJ0eVxuYW1lIiBcZ2Rlc2MgXGcKICAzIHwgSGVsbG8gICAgfCA0IHwgdAogKDEg cm93KQogCistLSBcZ2VuY3IKKy0tIChUaGlzIGp1c3QgdGVzdHMgdGhlIHBhcmFtZXRlciBw YXNzaW5nOyB0aGVyZSBpcyBubyBlbmNyeXB0aW9uIGhlcmUuKQorQ1JFQVRFIFRBQkxFIHRl c3RfZ2VuY3IgKGEgaW50LCBiIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBWQUxV RVMgKDEsICdvbmUnKSBcZ2VuY3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBh ID0gMSBcZ2VuY3IKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IG9uZQorKDEgcm93KQor CitJTlNFUlQgSU5UTyB0ZXN0X2dlbmNyIFZBTFVFUyAoJDEsICQyKSBcZ2VuY3IgMiAndHdv JworU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdIRVJFIGEgSU4gKCQxLCAkMikgXGdlbmNy IDIgMworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgdHdvCisoMSByb3cpCisKKy0tIHRl c3QgcGFyc2UgZXJyb3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhID0geCBc Z2VuY3IKK0VSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxF Q1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IHggCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gdGVzdCBiaW5kIGVycm9yCitTRUxFQ1Qg KiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9ICQxIFxnZW5jcgorRVJST1I6ICBiaW5kIG1l c3NhZ2Ugc3VwcGxpZXMgMCBwYXJhbWV0ZXJzLCBidXQgcHJlcGFyZWQgc3RhdGVtZW50ICIi IHJlcXVpcmVzIDEKIC0tIFxnZXhlYwogY3JlYXRlIHRlbXBvcmFyeSB0YWJsZSBnZXhlY190 ZXN0KGEgaW50LCBiIHRleHQsIGMgZGF0ZSwgZCBmbG9hdCk7CiBzZWxlY3QgZm9ybWF0KCdj cmVhdGUgaW5kZXggb24gZ2V4ZWNfdGVzdCglSSknLCBhdHRuYW1lKQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA3ZWMzZDI2ODhmLi40MmUzOGQ2NmQxIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTQyMywxMSArMTQyMywxMyBA QCBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzfCBTRUxFQ1QgcC5uYW1lLAogICAgIHAuc3RhdGVt ZW50LAogICAgIHAucHJlcGFyZV90aW1lLAogICAgIHAucGFyYW1ldGVyX3R5cGVzLAorICAg IHAucGFyYW1ldGVyX29yaWdfdGFibGVzLAorICAgIHAucGFyYW1ldGVyX29yaWdfY29sdW1u cywKICAgICBwLnJlc3VsdF90eXBlcywKICAgICBwLmZyb21fc3FsLAogICAgIHAuZ2VuZXJp Y19wbGFucywKICAgICBwLmN1c3RvbV9wbGFucwotICAgRlJPTSBwZ19wcmVwYXJlZF9zdGF0 ZW1lbnQoKSBwKG5hbWUsIHN0YXRlbWVudCwgcHJlcGFyZV90aW1lLCBwYXJhbWV0ZXJfdHlw ZXMsIHJlc3VsdF90eXBlcywgZnJvbV9zcWwsIGdlbmVyaWNfcGxhbnMsIGN1c3RvbV9wbGFu cyk7CisgICBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudCgpIHAobmFtZSwgc3RhdGVtZW50 LCBwcmVwYXJlX3RpbWUsIHBhcmFtZXRlcl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFibGVz LCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zLCByZXN1bHRfdHlwZXMsIGZyb21fc3FsLCBnZW5l cmljX3BsYW5zLCBjdXN0b21fcGxhbnMpOwogcGdfcHJlcGFyZWRfeGFjdHN8IFNFTEVDVCBw LnRyYW5zYWN0aW9uLAogICAgIHAuZ2lkLAogICAgIHAucHJlcGFyZWQsCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0CmluZGV4IGQzYWMwOGM5ZWUuLmZj MGM1ODk2ZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9z YW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHku b3V0CkBAIC0xNyw3ICsxNyw3IEBAIFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUKIEZST00g cGdfdHlwZSBhcyB0MQogV0hFUkUgdDEudHlwbmFtZXNwYWNlID0gMCBPUgogICAgICh0MS50 eXBsZW4gPD0gMCBBTkQgdDEudHlwbGVuICE9IC0xIEFORCB0MS50eXBsZW4gIT0gLTIpIE9S Ci0gICAgKHQxLnR5cHR5cGUgbm90IGluICgnYicsICdjJywgJ2QnLCAnZScsICdtJywgJ3An LCAncicpKSBPUgorICAgICh0MS50eXB0eXBlIG5vdCBpbiAoJ2InLCAnYycsICdkJywgJ2Un LCAnbScsICdwJywgJ3InLCAneScpKSBPUgogICAgIE5PVCB0MS50eXBpc2RlZmluZWQgT1IK ICAgICAodDEudHlwYWxpZ24gbm90IGluICgnYycsICdzJywgJ2knLCAnZCcpKSBPUgogICAg ICh0MS50eXBzdG9yYWdlIG5vdCBpbiAoJ3AnLCAneCcsICdlJywgJ20nKSk7CkBAIC03NSw3 ICs3NSw5IEBAIE9SREVSIEJZIHQxLm9pZDsKICA0NjAwIHwgcGdfYnJpbl9ibG9vbV9zdW1t YXJ5CiAgNDYwMSB8IHBnX2JyaW5fbWlubWF4X211bHRpX3N1bW1hcnkKICA1MDE3IHwgcGdf bWN2X2xpc3QKLSg2IHJvd3MpCisgODI0MyB8IHBnX2VuY3J5cHRlZF9kZXQKKyA4MjQ0IHwg cGdfZW5jcnlwdGVkX3JuZAorKDggcm93cykKIAogLS0gTWFrZSBzdXJlIHR5cGFycmF5IHBv aW50cyB0byBhICJ0cnVlIiBhcnJheSB0eXBlIG9mIG91ciBvd24gYmFzZQogU0VMRUNUIHQx Lm9pZCwgdDEudHlwbmFtZSBhcyBiYXNldHlwZSwgdDIudHlwbmFtZSBhcyBhcnJheXR5cGUs CkBAIC0yMTAsNyArMjEyLDggQEAgT1JERVIgQlkgMTsKICBlICAgICAgIHwgZW51bV9pbgog IG0gICAgICAgfCBtdWx0aXJhbmdlX2luCiAgciAgICAgICB8IHJhbmdlX2luCi0oNSByb3dz KQorIHkgICAgICAgfCBieXRlYWluCisoNiByb3dzKQogCiAtLSBDaGVjayBmb3IgYm9ndXMg dHlwb3V0cHV0IHJvdXRpbmVzCiAtLSBBcyBvZiA4LjAsIHRoaXMgY2hlY2sgZmluZHMgcmVm Y3Vyc29yLCB3aGljaCBpcyBib3Jyb3dpbmcKQEAgLTI1NSw3ICsyNTgsOCBAQCBPUkRFUiBC WSAxOwogIGUgICAgICAgfCBlbnVtX291dAogIG0gICAgICAgfCBtdWx0aXJhbmdlX291dAog IHIgICAgICAgfCByYW5nZV9vdXQKLSg0IHJvd3MpCisgeSAgICAgICB8IGJ5dGVhb3V0Ciso NSByb3dzKQogCiAtLSBEb21haW5zIHNob3VsZCBoYXZlIHNhbWUgdHlwb3V0cHV0IGFzIHRo ZWlyIGJhc2UgdHlwZXMKIFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUsIHQyLm9pZCwgdDIu dHlwbmFtZQpAQCAtMzM1LDcgKzMzOSw4IEBAIE9SREVSIEJZIDE7CiAgZSAgICAgICB8IGVu dW1fcmVjdgogIG0gICAgICAgfCBtdWx0aXJhbmdlX3JlY3YKICByICAgICAgIHwgcmFuZ2Vf cmVjdgotKDUgcm93cykKKyB5ICAgICAgIHwgYnl0ZWFyZWN2CisoNiByb3dzKQogCiAtLSBD aGVjayBmb3IgYm9ndXMgdHlwc2VuZCByb3V0aW5lcwogLS0gQXMgb2YgNy40LCB0aGlzIGNo ZWNrIGZpbmRzIHJlZmN1cnNvciwgd2hpY2ggaXMgYm9ycm93aW5nCkBAIC0zODAsNyArMzg1 LDggQEAgT1JERVIgQlkgMTsKICBlICAgICAgIHwgZW51bV9zZW5kCiAgbSAgICAgICB8IG11 bHRpcmFuZ2Vfc2VuZAogIHIgICAgICAgfCByYW5nZV9zZW5kCi0oNCByb3dzKQorIHkgICAg ICAgfCBieXRlYXNlbmQKKyg1IHJvd3MpCiAKIC0tIERvbWFpbnMgc2hvdWxkIGhhdmUgc2Ft ZSB0eXBzZW5kIGFzIHRoZWlyIGJhc2UgdHlwZXMKIFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5h bWUsIHQyLm9pZCwgdDIudHlwbmFtZQpAQCAtNzA3LDYgKzcxMyw4IEBAIENSRUFURSBUQUJM RSB0YWJfY29yZV90eXBlcyBBUyBTRUxFQ1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6OmJv b2wsCiAgIEUnXFx4REVBREJFRUYnOjpieXRlYSwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2Vu Y3J5cHRlZF9ybmQsCisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfZGV0LAogICBC JzEwMDAxJzo6Yml0LAogICBCJzEwMDAxJzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEyLjM0 Jzo6bW9uZXksCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAxMDNlMTE0 ODNkLi5mZmNhMjA2YzZmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAg LTEyOSw2ICsxMjksOSBAQCB0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0 ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cgogIyAtLS0tLS0t LS0tCiB0ZXN0OiBwYXJ0aXRpb25fam9pbiBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBo YXNoX3BhcnQgaW5kZXhpbmcgcGFydGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0 dXBsZXNvcnQgZXhwbGFpbiBjb21wcmVzc2lvbiBtZW1vaXplIHN0YXRzCiAKKyMgV0lQCit0 ZXN0OiBjb2x1bW5fZW5jcnlwdGlvbgorCiAjIGV2ZW50X3RyaWdnZXIgY2Fubm90IHJ1biBj b25jdXJyZW50bHkgd2l0aCBhbnkgdGVzdCB0aGF0IHJ1bnMgRERMCiAjIG9pZGpvaW5zIGlz IHJlYWQtb25seSwgdGhvdWdoLCBhbmQgc2hvdWxkIHJ1biBsYXRlIGZvciBiZXN0IGNvdmVy YWdlCiB0ZXN0OiBldmVudF90cmlnZ2VyIG9pZGpvaW5zCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdy ZXNzX21haW4uYwppbmRleCBhNGIzNTRjOWU2Li44YWQxZjQ1OGQ1IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGdfcmVncmVzc19tYWluLmMKQEAgLTgyLDcgKzgyLDcgQEAgcHNxbF9zdGFydF90ZXN0 KGNvbnN0IGNoYXIgKnRlc3RuYW1lLAogCQkJCQkgICBiaW5kaXIgPyBiaW5kaXIgOiAiIiwK IAkJCQkJICAgYmluZGlyID8gIi8iIDogIiIsCiAJCQkJCSAgIGRibGlzdC0+c3RyLAotCQkJ CQkgICAiLXYgSElERV9UQUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24i LAorCQkJCQkgICAiLXYgSElERV9UQUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJ T049b24gLXYgSElERV9DT0xVTU5fRU5DUllQVElPTj1vbiIsCiAJCQkJCSAgIGluZmlsZSwK IAkJCQkJICAgb3V0ZmlsZSk7CiAJaWYgKG9mZnNldCA+PSBzaXplb2YocHNxbF9jbWQpKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBjYTFkNTYyMTAKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKQEAg LTAsMCArMSwyOCBAQAorXHNldCBISURFX0NPTFVNTl9FTkNSWVBUSU9OIGZhbHNlCisKK0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3Qn CispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMg KAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNB RVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCisp OworCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwK KyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IG5v dGV4aXN0KQorKTsKKworQ1JFQVRFIFRBQkxFIHRibF8yOWYzICgKKyAgICBhIGludCwKKyAg ICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxKQorKTsKKworXGQgdGJsXzI5ZjMKK1xkKyB0YmxfMjlmMworCitEUk9Q IFRBQkxFIHRibF8yOWYzOyAgLS0gRklYTUU6IG5lZWRzIHBnX2R1bXAgc3VwcG9ydCBmb3Ig cGdfdXBncmFkZSB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJl cGFyZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbAppbmRleCBjNjA5 OGRjOTVjLi43ZGI3ODg3MzVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w cmVwYXJlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbApAQCAt NzUsNyArNzUsNyBAQCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIHE1X3ByZXBfbm9kYXRhIEFT IEVYRUNVVEUgcTUoMjAwLCAnRFRBQUFBJykKIFBSRVBBUkUgcTggQVMKICAgICBVUERBVEUg dGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOwogCi1TRUxFQ1Qg bmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJfdHlwZXMsIHJlc3VsdF90eXBlcyBGUk9NIHBn X3ByZXBhcmVkX3N0YXRlbWVudHMKK1NFTEVDVCBuYW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRl cl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFibGVzLCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5z LCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCiAgICAgT1JERVIg QlkgbmFtZTsKIAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5z cWwKaW5kZXggMTE0OWM2YTgzOS4uZTg4YzcwZDMwMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5z cWwKQEAgLTExOSw2ICsxMTksMjMgQEAgQ1JFQVRFIFRBQkxFIGJ1YnVidShhIGludCkgXGdk ZXNjCiAtLSBhbGwgb24gb25lIGxpbmUKIFNFTEVDVCAzIEFTIHgsICdIZWxsbycsIDQgQVMg eSwgdHJ1ZSBBUyAiZGlydHlcbmFtZSIgXGdkZXNjIFxnCiAKKworLS0gXGdlbmNyCistLSAo VGhpcyBqdXN0IHRlc3RzIHRoZSBwYXJhbWV0ZXIgcGFzc2luZzsgdGhlcmUgaXMgbm8gZW5j cnlwdGlvbiBoZXJlLikKKworQ1JFQVRFIFRBQkxFIHRlc3RfZ2VuY3IgKGEgaW50LCBiIHRl eHQpOworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKDEsICdvbmUnKSBcZ2VuY3IK K1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhID0gMSBcZ2VuY3IKKworSU5TRVJU IElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKCQxLCAkMikgXGdlbmNyIDIgJ3R3bycKK1NFTEVD VCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhIElOICgkMSwgJDIpIFxnZW5jciAyIDMKKwor LS0gdGVzdCBwYXJzZSBlcnJvcgorU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdIRVJFIGEg PSB4IFxnZW5jcgorLS0gdGVzdCBiaW5kIGVycm9yCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2Vu Y3IgV0hFUkUgYSA9ICQxIFxnZW5jcgorCisKIC0tIFxnZXhlYwogCiBjcmVhdGUgdGVtcG9y YXJ5IHRhYmxlIGdleGVjX3Rlc3QoYSBpbnQsIGIgdGV4dCwgYyBkYXRlLCBkIGZsb2F0KTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAppbmRleCA1ZWRjMWYxZjZlLi4z NGRkMTk0NTZkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0 eS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCkBAIC0y MCw3ICsyMCw3IEBACiBGUk9NIHBnX3R5cGUgYXMgdDEKIFdIRVJFIHQxLnR5cG5hbWVzcGFj ZSA9IDAgT1IKICAgICAodDEudHlwbGVuIDw9IDAgQU5EIHQxLnR5cGxlbiAhPSAtMSBBTkQg dDEudHlwbGVuICE9IC0yKSBPUgotICAgICh0MS50eXB0eXBlIG5vdCBpbiAoJ2InLCAnYycs ICdkJywgJ2UnLCAnbScsICdwJywgJ3InKSkgT1IKKyAgICAodDEudHlwdHlwZSBub3QgaW4g KCdiJywgJ2MnLCAnZCcsICdlJywgJ20nLCAncCcsICdyJywgJ3knKSkgT1IKICAgICBOT1Qg dDEudHlwaXNkZWZpbmVkIE9SCiAgICAgKHQxLnR5cGFsaWduIG5vdCBpbiAoJ2MnLCAncycs ICdpJywgJ2QnKSkgT1IKICAgICAodDEudHlwc3RvcmFnZSBub3QgaW4gKCdwJywgJ3gnLCAn ZScsICdtJykpOwpAQCAtNTI5LDYgKzUyOSw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90 eXBlcyBBUyBTRUxFQ1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4 REVBREJFRUYnOjpieXRlYSwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2VuY3J5cHRlZF9ybmQs CisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfZGV0LAogICBCJzEwMDAxJzo6Yml0 LAogICBCJzEwMDAxJzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEyLjM0Jzo6bW9uZXksCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaCBiL3NyYy9pbmNsdWRl L2FjY2Vzcy9wcmludHR1cC5oCmluZGV4IDk3MWE3NGNmMjIuLmRiMWYzYjg4MTEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCisrKyBiL3NyYy9pbmNsdWRl L2FjY2Vzcy9wcmludHR1cC5oCkBAIC0yMCw2ICsyMCw4IEBAIGV4dGVybiBEZXN0UmVjZWl2 ZXIgKnByaW50dHVwX2NyZWF0ZV9EUihDb21tYW5kRGVzdCBkZXN0KTsKIAogZXh0ZXJuIHZv aWQgU2V0UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKERlc3RSZWNlaXZlciAqc2VsZiwgUG9y dGFsIHBvcnRhbCk7CiAKK2V4dGVybiB2b2lkIE1heWJlU2VuZENvbHVtbkVuY3J5cHRpb25L ZXlNZXNzYWdlKE9pZCBhdHRjZWspOworCiBleHRlcm4gdm9pZCBTZW5kUm93RGVzY3JpcHRp b25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLAogCQkJCQkJCQkJICBUdXBsZURlc2MgdHlwZWlu Zm8sIExpc3QgKnRhcmdldGxpc3QsIGludDE2ICpmb3JtYXRzKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYW1vcC5kYXQKaW5kZXggNjFjZDU5MTQzMC4uYTBiZDcwODEzMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2Ftb3AuZGF0CkBAIC0xMDI4LDYgKzEwMjgsMTEgQEAKICAgYW1vcHJpZ2h0dHlw ZSA9PiAnYnl0ZWEnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KGJ5dGVh LGJ5dGVhKScsCiAgIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCiAKKyMgcGdfZW5jcnlwdGVk X2RldF9vcHMKK3sgYW1vcGZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycs IGFtb3BsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtb3ByaWdodHR5cGUg PT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBhbW9wbWV0aG9k ID0+ICdoYXNoJyB9LAorCiAjIHhpZF9vcHMKIHsgYW1vcGZhbWlseSA9PiAnaGFzaC94aWRf b3BzJywgYW1vcGxlZnR0eXBlID0+ICd4aWQnLCBhbW9wcmlnaHR0eXBlID0+ICd4aWQnLAog ICBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KHhpZCx4aWQpJywgYW1vcG1l dGhvZCA9PiAnaGFzaCcgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCA0 Y2MxMjliZWJkLi5kZGRiMjcxMTNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0 CkBAIC00MDIsNiArNDAyLDExIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9ieXRlYV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2J5dGVhJywgYW1wcm9jbnVtID0+ICcyJywKICAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4 dGVuZGVkJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAnMScsIGFtcHJv YyA9PiAnaGFzaHZhcmxlbmEnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNy eXB0ZWRfZGV0X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgYW1wcm9jbnVtID0+ ICcyJywKKyAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9LAogeyBhbXByb2Nm YW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ3hpZCcsIGFtcHJvY251bSA9PiAnMScsIGFtcHJvYyA9PiAn aGFzaGludDQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ3hpZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAppbmRl eCAwNTMyOTRjOTlmLi41NTBhNTM2NDliIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2F0dHJpYnV0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmli dXRlLmgKQEAgLTE2NCw2ICsxNjQsMTUgQEAgQ0FUQUxPRyhwZ19hdHRyaWJ1dGUsMTI0OSxB dHRyaWJ1dGVSZWxhdGlvbklkKSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dUWVBFX09JRCg3NSwK IAkgKi8KIAlib29sCQlhdHRpc2xvY2FsIEJLSV9ERUZBVUxUKHQpOwogCisJLyogY29sdW1u IGVuY3J5cHRpb24ga2V5ICovCisJT2lkCQkJYXR0Y2VrIEJLSV9ERUZBVUxUKDApIEJLSV9M T09LVVBfT1BUKHBnX2NvbGVuY2tleSk7CisKKwkvKiByZWFsIHR5cGUgaWYgZW5jcnlwdGVk ICovCisJT2lkCQkJYXR0cmVhbHR5cGlkIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BU KHBnX3R5cGUpOworCisJLyogZW5jcnlwdGlvbiBhbGdvcml0aG0gKFBHX0NFS18qIHZhbHVl cykgKi8KKwlpbnQxNgkJYXR0ZW5jYWxnIEJLSV9ERUZBVUxUKDApOworCiAJLyogTnVtYmVy IG9mIHRpbWVzIGluaGVyaXRlZCBmcm9tIGRpcmVjdCBwYXJlbnQgcmVsYXRpb24ocykgKi8K IAlpbnQzMgkJYXR0aW5oY291bnQgQktJX0RFRkFVTFQoMCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2Nhc3QuZGF0CmluZGV4IDQ0NzFlYjZiYmUuLjg3OGIwYmNiYmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jYXN0LmRhdApAQCAtNTQ2LDQgKzU0NiwxMCBAQAogeyBjYXN0c291cmNlID0+ICd0 c3R6cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c3R6bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5j ID0+ICd0c3R6bXVsdGlyYW5nZSh0c3R6cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAog ICBjYXN0bWV0aG9kID0+ICdmJyB9LAorCit7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2Fz dHRhcmdldCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGNhc3RmdW5jID0+ICcwJywKKyAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAoreyBjYXN0c291cmNlID0+ ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLCBjYXN0ZnVuYyA9 PiAnMCcsCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKKwog XQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uMDk1ZWQ3MTJiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKQEAgLTAsMCArMSw1NSBAQAorLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sZW5ja2V5LmgKKyAqCSAgZGVmaW5pdGlv biBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSIgc3lzdGVtIGNhdGFsb2cKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jb2xlbmtleS5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFs b2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAg aW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYg UEdfQ09MRU5DS0VZX0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZX0gKKworI2luY2x1ZGUgImNh dGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlfZC5oIgor CisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5IGRlZmluaXRpb24uIGNw cCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19jb2xl bmNrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19jb2xlbmNrZXks ODIzNCxDb2x1bW5FbmNLZXlSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKwlOYW1lRGF0 YQljZWtuYW1lOworCU9pZAkJCWNla293bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKK30g Rm9ybURhdGFfcGdfY29sZW5ja2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVuY2tl eSAqRm9ybV9wZ19jb2xlbmNrZXk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdf Y29sZW5ja2V5X29pZF9pbmRleCwgODI0MCwgQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwgb24g cGdfY29sZW5ja2V5IHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFV RV9JTkRFWChwZ19jb2xlbmNrZXlfY2VrbmFtZV9pbmRleCwgODI0MiwgQ29sdW1uRW5jS2V5 TmFtZUluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShjZWtuYW1lIG5hbWVf b3BzKSk7CisKKy8qCisgKiBDb25zdGFudHMgZm9yIENNSyBhbmQgQ0VLIGFsZ29yaXRobXMu ICBOb3RlIHRoYXQgdGhlc2UgYXJlIHBhcnQgb2YgdGhlCisgKiBwcm90b2NvbC4gIEZvciBj bGFyaXR5LCB0aGUgYXNzaWduZWQgbnVtYmVycyBhcmUgbm90IHJldXNlZCBiZXR3ZWVuIENN S3MKKyAqIGFuZCBDRUtzLCBidXQgdGhhdCBpcyBub3QgdGVjaG5pY2FsbHkgcmVxdWlyZWQu ICBJbiBlaXRoZXIgY2FzZSwgZG9uJ3QKKyAqIGFzc2lnbiB6ZXJvLCBzbyB0aGF0IHRoYXQg Y2FuIGJlIHVzZWQgYXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAqLworCisjZGVmaW5lIFBHX0NN S19SU0FFU19PQUVQX1NIQV8xCQkJMQorI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFf MjU2CQkyCisKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2 CTEzMAorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQJMTMx CisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NAkxMzIKKyNk ZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyCTEzMworCisjZW5k aWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uM2U0ZGVhNzIxOAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oCkBAIC0wLDAgKzEs NDYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbGVuY2tleWRhdGEu aAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEi IHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIw MjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5rZXlkYXRhLmgKKyAq CisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxl IGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xFTkNLRVlEQVRBX0gKKyNkZWZpbmUg UEdfQ09MRU5DS0VZREFUQV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YV9kLmgiCisKKy8qIC0tLS0tLS0tLS0t LS0tLS0KKyAqCQlwZ19jb2xlbmNrZXlkYXRhIGRlZmluaXRpb24uIGNwcCB0dXJucyB0aGlz IGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19jb2xlbmNrZXlkYXRhCisg KiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sZW5ja2V5ZGF0YSw4MjUw LENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKwlPaWQJCQlj a2RjZWtpZCBCS0lfTE9PS1VQKHBnX2NvbGVuY2tleSk7CisJT2lkCQkJY2tkY21raWQgQktJ X0xPT0tVUChwZ19jb2xtYXN0ZXJrZXkpOworCWludDE2CQlja2RjbWthbGc7CQkvKiBQR19D TUtfKiB2YWx1ZXMgKi8KKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxl bmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCWJ5dGVhCQlja2RlbmN2YWwgQktJX0ZPUkNF X05PVF9OVUxMOworI2VuZGlmCit9IEZvcm1EYXRhX3BnX2NvbGVuY2tleWRhdGE7CisKK3R5 cGVkZWYgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YSAqRm9ybV9wZ19jb2xlbmNrZXlkYXRh OworCitERUNMQVJFX1RPQVNUKHBnX2NvbGVuY2tleWRhdGEsIDgyMzcsIDgyMzgpOworCitE RUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2NvbGVuY2tleWRhdGFfb2lkX2luZGV4LCA4 MjUxLCBDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwgb24gcGdfY29sZW5ja2V5ZGF0YSB1 c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfY29s ZW5ja2V5ZGF0YV9ja2RjZWtpZF9ja2RjbWtpZF9pbmRleCwgODI1MiwgQ29sdW1uRW5jS2V5 Q2VraWRDbWtpZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleWRhdGEgdXNpbmcgYnRyZWUoY2tk Y2VraWQgb2lkX29wcywgY2tkY21raWQgb2lkX29wcykpOworCisjZW5kaWYKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjAzNDRjYzQyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbG1hc3RlcmtleS5oCisgKgkgIGRlZmluaXRp b24gb2YgdGhlICJjb2x1bW4gbWFzdGVyIGtleSIgc3lzdGVtIGNhdGFsb2cKKyAqCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRh bG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkg IGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVm IFBHX0NPTE1BU1RFUktFWV9ICisjZGVmaW5lIFBHX0NPTE1BU1RFUktFWV9ICisKKyNpbmNs dWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVy a2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2NvbG1hc3RlcmtleSBk ZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9y bURhdGFfcGdfY29sbWFzdGVya2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFM T0cocGdfY29sbWFzdGVya2V5LDgyMzMsQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCkKK3sK KwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY21rbmFtZTsKKwlPaWQJCQljbWtvd25lciBCS0lf TE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJs ZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwl0ZXh0CQljbWtyZWFsbSBCS0lfRk9S Q0VfTk9UX05VTEw7CisjZW5kaWYKK30gRm9ybURhdGFfcGdfY29sbWFzdGVya2V5OworCit0 eXBlZGVmIEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleSAqRm9ybV9wZ19jb2xtYXN0ZXJrZXk7 CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sbWFzdGVya2V5LCA4MjM1LCA4MjM2KTsKKworREVD TEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xtYXN0ZXJrZXlfb2lkX2luZGV4LCA4MjM5 LCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBvbiBwZ19jb2xtYXN0ZXJrZXkgdXNpbmcg YnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX2NvbG1hc3Rl cmtleV9jbWtuYW1lX2luZGV4LCA4MjQxLCBDb2x1bW5NYXN0ZXJLZXlOYW1lSW5kZXhJZCwg b24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVlKGNta25hbWUgbmFtZV9vcHMpKTsKKwor I2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdAppbmRleCBkYmNhZTdmZmRk Li4wY2E0MDFmZmU0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xh c3MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQKQEAgLTE2 Niw2ICsxNjYsOCBAQAogICBvcGNpbnR5cGUgPT4gJ2Jvb2wnIH0sCiB7IG9wY21ldGhvZCA9 PiAnaGFzaCcsIG9wY25hbWUgPT4gJ2J5dGVhX29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC9i eXRlYV9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ2J5dGVhJyB9LAoreyBvcGNtZXRob2QgPT4g J2hhc2gnLCBvcGNuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X29wcycsIG9wY2ZhbWlseSA9 PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycsCisgIG9wY2ludHlwZSA9PiAncGdfZW5j cnlwdGVkX2RldCcgfSwKIHsgb3BjbWV0aG9kID0+ICdidHJlZScsIG9wY25hbWUgPT4gJ3Rp ZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2J0cmVlL3RpZF9vcHMnLAogICBvcGNpbnR5cGUgPT4g J3RpZCcgfSwKIHsgb3BjbWV0aG9kID0+ICdoYXNoJywgb3BjbmFtZSA9PiAneGlkX29wcycs IG9wY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVy YXRvci5kYXQKaW5kZXggYmM1ZjgyMTNmMy4uNDczN2E3ZjllZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19vcGVyYXRvci5kYXQKQEAgLTM0NTgsNCArMzQ1OCwxNCBAQAogICBvcHJjb2Rl ID0+ICdtdWx0aXJhbmdlX2FmdGVyX211bHRpcmFuZ2UnLCBvcHJyZXN0ID0+ICdtdWx0aXJh bmdlc2VsJywKICAgb3Byam9pbiA9PiAnc2NhbGFyZ3Rqb2luc2VsJyB9LAogCit7IG9pZCA9 PiAnODI0NycsIGRlc2NyID0+ICdlcXVhbCcsCisgIG9wcm5hbWUgPT4gJz0nLCBvcHJjYW5t ZXJnZSA9PiAnZicsIG9wcmNhbmhhc2ggPT4gJ3QnLCBvcHJsZWZ0ID0+ICdwZ19lbmNyeXB0 ZWRfZGV0JywKKyAgb3BycmlnaHQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBvcHJyZXN1bHQg PT4gJ2Jvb2wnLCBvcHJjb20gPT4gJz0ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRf ZGV0KScsCisgIG9wcm5lZ2F0ZSA9PiAnPD4ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0 ZWRfZGV0KScsIG9wcmNvZGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEnLCBvcHJyZXN0ID0+ ICdlcXNlbCcsCisgIG9wcmpvaW4gPT4gJ2Vxam9pbnNlbCcgfSwKK3sgb2lkID0+ICc4MjQ4 JywgZGVzY3IgPT4gJ25vdCBlcXVhbCcsCisgIG9wcm5hbWUgPT4gJzw+Jywgb3BybGVmdCA9 PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJpZ2h0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywg b3BycmVzdWx0ID0+ICdib29sJywKKyAgb3ByY29tID0+ICc8PihwZ19lbmNyeXB0ZWRfZGV0 LHBnX2VuY3J5cHRlZF9kZXQpJywgb3BybmVnYXRlID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQs cGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJjb2RlID0+ICdwZ19lbmNyeXB0ZWRfZGV0X25l Jywgb3BycmVzdCA9PiAnbmVxc2VsJywgb3Byam9pbiA9PiAnbmVxam9pbnNlbCcgfSwKKwog XQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdAppbmRleCBiM2I2YTdlNjE2Li41 MzQzNTgwYjA2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5 LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdApAQCAtMTA4 LDYgKzEwOCw4IEBACiAgIG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ2Jvb2xf b3BzJyB9LAogeyBvaWQgPT4gJzIyMjMnLAogICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZu YW1lID0+ICdieXRlYV9vcHMnIH0sCit7IG9pZCA9PiAnODI0OScsCisgIG9wZm1ldGhvZCA9 PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfb3BzJyB9LAogeyBvaWQg PT4gJzI3ODknLAogICBvcGZtZXRob2QgPT4gJ2J0cmVlJywgb3BmbmFtZSA9PiAndGlkX29w cycgfSwKIHsgb2lkID0+ICcyMjI1JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4 IDJlNDFmNGQ5ZTguLjJmYTI2YTIyMjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApA QCAtODAyNSw5ICs4MDI1LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfcHJlcGFyZWRfc3RhdGVt ZW50JywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCiAgIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQn LAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LHRl eHQsdGltZXN0YW1wdHosX3JlZ3R5cGUsX3JlZ3R5cGUsYm9vbCxpbnQ4LGludDh9JywKLSAg cHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4g J3tuYW1lLHN0YXRlbWVudCxwcmVwYXJlX3RpbWUscGFyYW1ldGVyX3R5cGVzLHJlc3VsdF90 eXBlcyxmcm9tX3NxbCxnZW5lcmljX3BsYW5zLGN1c3RvbV9wbGFuc30nLAorICBwcm9hbGxh cmd0eXBlcyA9PiAne3RleHQsdGV4dCx0aW1lc3RhbXB0eixfcmVndHlwZSxfcmVnY2xhc3Ms X2ludDIsX3JlZ3R5cGUsYm9vbCxpbnQ4LGludDh9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tv LG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7bmFtZSxzdGF0ZW1l bnQscHJlcGFyZV90aW1lLHBhcmFtZXRlcl90eXBlcyxwYXJhbWV0ZXJfb3JpZ190YWJsZXMs cGFyYW1ldGVyX29yaWdfY29sdW1ucyxyZXN1bHRfdHlwZXMsZnJvbV9zcWwsZ2VuZXJpY19w bGFucyxjdXN0b21fcGxhbnN9JywKICAgcHJvc3JjID0+ICdwZ19wcmVwYXJlZF9zdGF0ZW1l bnQnIH0sCiB7IG9pZCA9PiAnMjUxMScsIGRlc2NyID0+ICdnZXQgdGhlIG9wZW4gY3Vyc29y cyBmb3IgdGhpcyBzZXNzaW9uJywKICAgcHJvbmFtZSA9PiAncGdfY3Vyc29yJywgcHJvcm93 cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCkBAIC0xMTg4Niw0ICsxMTg4NiwxMSBA QAogICBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdwZ19icmluX21p bm1heF9tdWx0aV9zdW1tYXJ5JywKICAgcHJvc3JjID0+ICdicmluX21pbm1heF9tdWx0aV9z dW1tYXJ5X3NlbmQnIH0sCiAKK3sgb2lkID0+ICc4MjQ1JywKKyAgcHJvbmFtZSA9PiAncGdf ZW5jcnlwdGVkX2RldF9lcScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4g J2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0 ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYWVxJyB9LAoreyBvaWQgPT4gJzgyNDYnLAorICBw cm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X25lJywgcHJvbGVha3Byb29mID0+ICd0Jywg cHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdwZ19lbmNyeXB0ZWRf ZGV0IHBnX2VuY3J5cHRlZF9kZXQnLCBwcm9zcmMgPT4gJ2J5dGVhbmUnIH0sCisKIF0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3R5cGUuZGF0CmluZGV4IGRmNDU4Nzk0NjMuLmRmMWZhM2UzOTMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdApAQCAtNjkyLDQgKzY5MiwxNiBAQAogICB0eXBy ZWNlaXZlID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3JlY3YnLAogICB0eXBzZW5k ID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnLCB0eXBhbGlnbiA9PiAnaScs CiAgIHR5cHN0b3JhZ2UgPT4gJ3gnLCB0eXBjb2xsYXRpb24gPT4gJ2RlZmF1bHQnIH0sCisK K3sgb2lkID0+ICc4MjQzJywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4gKGRldGVybWlu aXN0aWMpJywKKyAgdHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIHR5cGxlbiA9PiAn LTEnLCB0eXBieXZhbCA9PiAnZicsIHR5cHR5cGUgPT4gJ3knLAorICB0eXBjYXRlZ29yeSA9 PiAnWScsIHR5cGlucHV0ID0+ICdieXRlYWluJywgdHlwb3V0cHV0ID0+ICdieXRlYW91dCcs CisgIHR5cHJlY2VpdmUgPT4gJ2J5dGVhcmVjdicsIHR5cHNlbmQgPT4gJ2J5dGVhc2VuZCcs IHR5cGFsaWduID0+ICdpJywKKyAgdHlwc3RvcmFnZSA9PiAnZScgfSwKK3sgb2lkID0+ICc4 MjQ0JywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4gKHJhbmRvbWl6ZWQpJywKKyAgdHlw bmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZCcsIHR5cGxlbiA9PiAnLTEnLCB0eXBieXZhbCA9 PiAnZicsIHR5cHR5cGUgPT4gJ3knLAorICB0eXBjYXRlZ29yeSA9PiAnWScsIHR5cGlucHV0 ID0+ICdieXRlYWluJywgdHlwb3V0cHV0ID0+ICdieXRlYW91dCcsCisgIHR5cHJlY2VpdmUg PT4gJ2J5dGVhcmVjdicsIHR5cHNlbmQgPT4gJ2J5dGVhc2VuZCcsIHR5cGFsaWduID0+ICdp JywKKyAgdHlwc3RvcmFnZSA9PiAnZScgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ190eXBlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaApp bmRleCA0OGEyNTU5MTM3Li4xMWFmZjlmZjgzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaApA QCAtMjc3LDYgKzI3Nyw3IEBAIERFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3R5cGVfdHlwbmFt ZV9uc3BfaW5kZXgsIDI3MDQsIFR5cGVOYW1lTnNwSW5kZXhJZCwgb24gcGdfCiAjZGVmaW5l ICBUWVBUWVBFX01VTFRJUkFOR0UJJ20nIC8qIG11bHRpcmFuZ2UgdHlwZSAqLwogI2RlZmlu ZSAgVFlQVFlQRV9QU0VVRE8JCSdwJyAvKiBwc2V1ZG8tdHlwZSAqLwogI2RlZmluZSAgVFlQ VFlQRV9SQU5HRQkJJ3InIC8qIHJhbmdlIHR5cGUgKi8KKyNkZWZpbmUgIFRZUFRZUEVfRU5D UllQVEVECSd5JyAvKiBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlICovCiAKICNkZWZpbmUgIFRZ UENBVEVHT1JZX0lOVkFMSUQJJ1wwJwkvKiBub3QgYW4gYWxsb3dlZCBjYXRlZ29yeSAqLwog I2RlZmluZSAgVFlQQ0FURUdPUllfQVJSQVkJCSdBJwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5j Y21kcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjEwMTkxODI5 MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRz LmgKQEAgLTAsMCArMSwyNCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY29s ZW5jY21kcy5oCisgKgkgIHByb3RvdHlwZXMgZm9yIGNvbGVuY2NtZHMuYy4KKyAqCisgKgor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJl Z2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNs dWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisKKyNpZm5kZWYgQ09MRU5DQ01EU19ICisjZGVmaW5lIENPTEVOQ0NNRFNfSAorCisj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3Bh cnNlX25vZGUuaCIKKworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlQ0VLKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBD cmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKKworI2Vu ZGlmCQkJCQkJCS8qIENPTEVOQ0NNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IDBiNmE3YmIzNjUuLjhiOGVkZGRhY2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK QEAgLTY5MCw2ICs2OTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb2x1bW5EZWYKIAljaGFyCSAg ICpjb2xuYW1lOwkJLyogbmFtZSBvZiBjb2x1bW4gKi8KIAlUeXBlTmFtZSAgICp0eXBlTmFt ZTsJCS8qIHR5cGUgb2YgY29sdW1uICovCiAJY2hhcgkgICAqY29tcHJlc3Npb247CS8qIGNv bXByZXNzaW9uIG1ldGhvZCBmb3IgY29sdW1uICovCisJTGlzdAkgICAqZW5jcnlwdGlvbjsJ CS8qIGVuY3J5cHRpb24gaW5mbyBmb3IgY29sdW1uICovCiAJaW50CQkJaW5oY291bnQ7CQkv KiBudW1iZXIgb2YgdGltZXMgY29sdW1uIGlzIGluaGVyaXRlZCAqLwogCWJvb2wJCWlzX2xv Y2FsOwkJLyogY29sdW1uIGhhcyBsb2NhbCAobm9uLWluaGVyaXRlZCkgZGVmJ24gKi8KIAli b29sCQlpc19ub3RfbnVsbDsJLyogTk9UIE5VTEwgY29uc3RyYWludCBzcGVjaWZpZWQ/ICov CkBAIC0yMTU0LDYgKzIxNTUsOCBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVD VF9DQVNULAogCU9CSkVDVF9DT0xVTU4sCiAJT0JKRUNUX0NPTExBVElPTiwKKwlPQkpFQ1Rf Q0VLLAorCU9CSkVDVF9DTUssCiAJT0JKRUNUX0NPTlZFUlNJT04sCiAJT0JKRUNUX0RBVEFC QVNFLAogCU9CSkVDVF9ERUZBVUxULApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L2FuYWx5emUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXggZGMzNzk1 NDdjNy4uYzMxMGUxMjRmMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5 emUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC0yOCw3ICsyOCw5 IEBAIGV4dGVybiBQR0RMTElNUE9SVCBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBv c3RfcGFyc2VfYW5hbHl6ZV9ob29rOwogZXh0ZXJuIFF1ZXJ5ICpwYXJzZV9hbmFseXplX2Zp eGVkcGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwK IAkJCQkJCQkJCQljb25zdCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMsIFF1ZXJ5 RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV92 YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAot CQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOworCQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQg Km51bVBhcmFtcywKKwkJCQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJl ciAqKnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5 RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV93aXRoY2IoUmF3U3RtdCAqcGFy c2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogCQkJCQkJCQkgICBQYXJzZXJTZXR1 cEhvb2sgcGFyc2VyU2V0dXAsCiAJCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCmluZGV4IGFlMzVmMDMyNTEuLjEzY2NhZGZkNWQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBQR19LRVlXT1JEKCJlbXB0eSIsIEVN UFRZX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVu YWJsZSIsIEVOQUJMRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJlbmNvZGluZyIsIEVOQ09ESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJlbmNyeXB0ZWQiLCBFTkNSWVBURUQsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImVuY3J5cHRpb24iLCBFTkNSWVBU SU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmQi LCBFTkRfUCwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVu dW0iLCBFTlVNX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImVycm9yIiwgRVJST1JfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpA QCAtMjY4LDYgKzI2OSw3IEBAIFBHX0tFWVdPUkQoImxvY2siLCBMT0NLX1AsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxvY2tlZCIsIExPQ0tFRCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibG9nZ2VkIiwg TE9HR0VELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJt YXBwaW5nIiwgTUFQUElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgibWFzdGVyIiwgTUFTVEVSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJtYXRjaCIsIE1BVENILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJtYXRjaGVkIiwgTUFUQ0hFRCwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWF0ZXJpYWxpemVkIiwgTUFURVJJ QUxJWkVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaAppbmRleCBjZjljNzU5MDI1Li4yMjVhMmE4NzMzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmgKQEAgLTkzLDYgKzkzLDcgQEAgdHlwZWRlZiBOb2RlICooKlBhcnNl UGFyYW1SZWZIb29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CiB0 eXBlZGVmIE5vZGUgKigqQ29lcmNlUGFyYW1Ib29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQ YXJhbSAqcGFyYW0sCiAJCQkJCQkJCSAgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0 VHlwZU1vZCwKIAkJCQkJCQkJICBpbnQgbG9jYXRpb24pOwordHlwZWRlZiB2b2lkICgqUGFy YW1Bc3NpZ25PcmlnSG9vaykgKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLCBP aWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKTsKIAogCiAvKgpAQCAtMjIyLDYgKzIy Myw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJUG9zdFBhcnNlQ29sdW1uUmVmSG9vayBwX3Bv c3RfY29sdW1ucmVmX2hvb2s7CiAJUGFyc2VQYXJhbVJlZkhvb2sgcF9wYXJhbXJlZl9ob29r OwogCUNvZXJjZVBhcmFtSG9vayBwX2NvZXJjZV9wYXJhbV9ob29rOworCVBhcmFtQXNzaWdu T3JpZ0hvb2sgcF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rOwogCXZvaWQJICAgKnBfcmVmX2hv b2tfc3RhdGU7CS8qIGNvbW1vbiBwYXNzdGhyb3VnaCBsaW5rIGZvciBhYm92ZSAqLwogfTsK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmggYi9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaAppbmRleCBkZjFlZTY2MGQ4Li5kYTIwMmIy OGE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaApAQCAtMTgsNyArMTgsOCBAQAog ZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCQkJCQkJIGNvbnN0IE9pZCAqcGFyYW1UeXBlcywgaW50IG51bVBhcmFt cyk7CiBleHRlcm4gdm9pZCBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNl U3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1Q YXJhbXMpOworCQkJCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywK KwkJCQkJCQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3Jp Z0NvbHMpOwogZXh0ZXJuIHZvaWQgY2hlY2tfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0 YXRlICpwc3RhdGUsIFF1ZXJ5ICpxdWVyeSk7CiBleHRlcm4gYm9vbCBxdWVyeV9jb250YWlu c19leHRlcm5fcGFyYW1zKFF1ZXJ5ICpxdWVyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK aW5kZXggMmIxMTYzY2UzMy4uNzBjMmNmZDA1YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK QEAgLTg2LDYgKzg2LDggQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhP RCwgIkNSRUFURSBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHMKIFBHX0NNRFRB RyhDTURUQUdfQ1JFQVRFX0FHR1JFR0FURSwgIkNSRUFURSBBR0dSRUdBVEUiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DQVNULCAiQ1JFQVRFIENB U1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xM QVRJT04sICJDUkVBVEUgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01E VEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQ1JFQVRFIENPTFVN TiBFTkNSWVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX0NPTFVNTl9NQVNURVJfS0VZLCAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09OU1RS QUlOVCwgIkNSRUFURSBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19DUkVBVEVfQ09OVkVSU0lPTiwgIkNSRUFURSBDT05WRVJTSU9OIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfREFUQUJBU0UsICJD UkVBVEUgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdGNvcC90Y29wcHJvdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5o CmluZGV4IDcwZDlkYWIyNWIuLjMwMzhjZWI1MjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3Rjb3AvdGNvcHByb3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKQEAg LTUzLDYgKzUzLDggQEAgZXh0ZXJuIExpc3QgKnBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFy cGFyYW1zKFJhd1N0bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpx dWVyeV9zdHJpbmcsCiAJCQkJCQkJCQkJCSAgT2lkICoqcGFyYW1UeXBlcywKIAkJCQkJCQkJ CQkJICBpbnQgKm51bVBhcmFtcywKKwkJCQkJCQkJCQkJICBPaWQgKipwYXJhbU9yaWdUYmxz LAorCQkJCQkJCQkJCQkgIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJ CQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBMaXN0ICpwZ19hbmFs eXplX2FuZF9yZXdyaXRlX3dpdGhjYihSYXdTdG10ICpwYXJzZXRyZWUsCiAJCQkJCQkJCQkJ ICAgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvcGxhbmNhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAppbmRl eCAwNDk5NjM1ZjU5Li45YTdjZjc5NGNlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGls cy9wbGFuY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaApAQCAt MTAxLDYgKzEwMSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBDYWNoZWRQbGFuU291cmNlCiAJQ29t bWFuZFRhZwljb21tYW5kVGFnOwkJLyogJ251ZmYgc2FpZCAqLwogCU9pZAkJICAgKnBhcmFt X3R5cGVzOwkvKiBhcnJheSBvZiBwYXJhbWV0ZXIgdHlwZSBPSURzLCBvciBOVUxMICovCiAJ aW50CQkJbnVtX3BhcmFtczsJCS8qIGxlbmd0aCBvZiBwYXJhbV90eXBlcyBhcnJheSAqLwor CU9pZAkJICAgKnBhcmFtX29yaWd0YmxzOyAvKiBhcnJheSBvZiB1bmRlcmx5aW5nIHRhYmxl cyBvZiBwYXJhbWV0ZXJzLAorCQkJCQkJCQkgKiBvciBOVUxMICovCisJQXR0ck51bWJlciAq cGFyYW1fb3JpZ2NvbHM7IC8qIGFycmF5IG9mIHVuZGVybHlpbmcgY29sdW1ucyBvZiBwYXJh bWV0ZXJzLAorCQkJCQkJCQkgKiBvciBOVUxMICovCiAJUGFyc2VyU2V0dXBIb29rIHBhcnNl clNldHVwOwkvKiBhbHRlcm5hdGl2ZSBwYXJhbWV0ZXIgc3BlYyBtZXRob2QgKi8KIAl2b2lk CSAgICpwYXJzZXJTZXR1cEFyZzsKIAlpbnQJCQljdXJzb3Jfb3B0aW9uczsgLyogY3Vyc29y IG9wdGlvbnMgdXNlZCBmb3IgcGxhbm5pbmcgKi8KQEAgLTE5OSw2ICsyMDMsOCBAQCBleHRl cm4gdm9pZCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJj ZSwKIAkJCQkJCQkgICBNZW1vcnlDb250ZXh0IHF1ZXJ5dHJlZV9jb250ZXh0LAogCQkJCQkJ CSAgIE9pZCAqcGFyYW1fdHlwZXMsCiAJCQkJCQkJICAgaW50IG51bV9wYXJhbXMsCisJCQkJ CQkJICAgT2lkICpwYXJhbV9vcmlndGJscywKKwkJCQkJCQkgICBBdHRyTnVtYmVyICpwYXJh bV9vcmlnY29scywKIAkJCQkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0dXAsCiAJ CQkJCQkJICAgdm9pZCAqcGFyc2VyU2V0dXBBcmcsCiAJCQkJCQkJICAgaW50IGN1cnNvcl9v cHRpb25zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgKaW5kZXggNDQ2M2VhNjZiZS4uZDBiODE3NjZj NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaAorKysgYi9zcmMv aW5jbHVkZS91dGlscy9zeXNjYWNoZS5oCkBAIC00NCw4ICs0NCwxMyBAQCBlbnVtIFN5c0Nh Y2hlSWRlbnRpZmllcgogCUFVVEhOQU1FLAogCUFVVEhPSUQsCiAJQ0FTVFNPVVJDRVRBUkdF VCwKKwlDRUtEQVRBT0lELAorCUNFS05BTUUsCisJQ0VLT0lELAogCUNMQUFNTkFNRU5TUCwK IAlDTEFPSUQsCisJQ01LTkFNRSwKKwlDTUtPSUQsCiAJQ09MTE5BTUVFTkNOU1AsCiAJQ09M TE9JRCwKIAlDT05ERUZBVUxULApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9wcmludHNpbXBsZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNp bXBsZS5jCmluZGV4IGM5OWFlNTRjYjAuLjlkMzQ3NjgxNGYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKQEAgLTQ2LDYgKzQ2LDggQEAgcHJpbnRzaW1w bGVfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVz YyB0dXBkZXNjKQogCQlwcV9zZW5kaW50MTYoJmJ1ZiwgYXR0ci0+YXR0bGVuKTsKIAkJcHFf c2VuZGludDMyKCZidWYsIGF0dHItPmF0dHR5cG1vZCk7CiAJCXBxX3NlbmRpbnQxNigmYnVm LCAwKTsJLyogZm9ybWF0IGNvZGUgKi8KKwkJcHFfc2VuZGludDMyKCZidWYsIDApOwkvKiBD RUsgKi8KKwkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBDRUsgYWxnICovCiAJfQogCiAJ cHFfZW5kbWVzc2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcHJpbnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAu YwppbmRleCBkMmYzYjU3Mjg4Li4yOGI0MzdlNWM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9wcmludHR1cC5jCkBAIC0xNSwxMyArMTUsMjYgQEAKICAqLwogI2luY2x1ZGUgInBv c3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nl c3MvcHJpbnR0dXAuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgorI2luY2x1ZGUgImFj Y2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUg ImxpYnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAidGNvcC9wcXVlcnkuaCIKKyNpbmNsdWRl ICJ1dGlscy9hcnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5YWNjZXNzLmgiCisjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgor I2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgi CiAjaW5jbHVkZSAidXRpbHMvbWVtZGVidWcuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGls cy5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hl LmgiCiAKIAogc3RhdGljIHZvaWQgcHJpbnR0dXBfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNl bGYsIGludCBvcGVyYXRpb24sCkBAIC0xNTEsNiArMTY0LDEzNSBAQCBwcmludHR1cF9zdGFy dHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVp bmZvKQogCSAqLwogfQogCisvKgorICogU2VuZCBDb2x1bW5NYXN0ZXJLZXkgbWVzc2FnZSwg dW5sZXNzIGl0J3MgYWxyZWFkeSBiZWVuIHNlbnQgaW4gdGhpcyBzZXNzaW9uCisgKiBmb3Ig dGhpcyBrZXkuCisgKi8KK0xpc3QJICAgKmNta19zZW50ID0gTklMOworCitzdGF0aWMgdm9p ZAorY21rX2NoYW5nZV9jYihEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZh bHVlKQoreworCWxpc3RfZnJlZShjbWtfc2VudCk7CisJY21rX3NlbnQgPSBOSUw7Cit9CisK K3N0YXRpYyB2b2lkCitNYXliZVNlbmRDb2x1bW5NYXN0ZXJLZXlNZXNzYWdlKE9pZCBjbWtp ZCkKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJRm9ybV9wZ19jb2xtYXN0ZXJrZXkgY21rZm9y bTsKKwlEYXR1bQkJZGF0dW07CisJYm9vbAkJaXNudWxsOworCVN0cmluZ0luZm9EYXRhIGJ1 ZjsKKwlzdGF0aWMgYm9vbCByZWdpc3RlcmVkX2ludmFsID0gZmFsc2U7CisJTWVtb3J5Q29u dGV4dCBvbGRjb250ZXh0OworCisJaWYgKGxpc3RfbWVtYmVyX29pZChjbWtfc2VudCwgY21r aWQpKQorCQlyZXR1cm47CisKKwl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9i amVjdElkR2V0RGF0dW0oY21raWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUp KQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3Rl ciBrZXkgJXUiLCBjbWtpZCk7CisJY21rZm9ybSA9IChGb3JtX3BnX2NvbG1hc3RlcmtleSkg R0VUU1RSVUNUKHR1cGxlKTsKKworCXBxX2JlZ2lubWVzc2FnZSgmYnVmLCAneScpOyAvKiBD b2x1bW5NYXN0ZXJLZXkgKi8KKwlwcV9zZW5kaW50MzIoJmJ1ZiwgY21rZm9ybS0+b2lkKTsK KwlwcV9zZW5kc3RyaW5nKCZidWYsIE5hbWVTdHIoY21rZm9ybS0+Y21rbmFtZSkpOworCWRh dHVtID0gU3lzQ2FjaGVHZXRBdHRyKENNS09JRCwgdHVwbGUsIEFudW1fcGdfY29sbWFzdGVy a2V5X2Nta3JlYWxtLCAmaXNudWxsKTsKKwlBc3NlcnQoIWlzbnVsbCk7CisJcHFfc2VuZHN0 cmluZygmYnVmLCBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKSk7CisJcHFfZW5kbWVzc2Fn ZSgmYnVmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlpZiAoIXJlZ2lzdGVy ZWRfaW52YWwpCisJeworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhDTUtPSUQs IGNta19jaGFuZ2VfY2IsIChEYXR1bSkgMCk7CisJCXJlZ2lzdGVyZWRfaW52YWwgPSB0cnVl OworCX0KKworCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5 Q29udGV4dCk7CisJY21rX3NlbnQgPSBsYXBwZW5kX29pZChjbWtfc2VudCwgY21raWQpOwor CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKK30KKworLyoKKyAqIFNlbmQg Q29sdW1uRW5jcnlwdGlvbktleSBtZXNzYWdlLCB1bmxlc3MgaXQncyBhbHJlYWR5IGJlZW4g c2VudCBpbiB0aGlzCisgKiBzZXNzaW9uIGZvciB0aGlzIGtleS4KKyAqLworTGlzdAkgICAq Y2VrX3NlbnQgPSBOSUw7CisKK3N0YXRpYyB2b2lkCitjZWtfY2hhbmdlX2NiKERhdHVtIGFy ZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7CisJbGlzdF9mcmVlKGNla19z ZW50KTsKKwljZWtfc2VudCA9IE5JTDsKK30KKwordm9pZAorTWF5YmVTZW5kQ29sdW1uRW5j cnlwdGlvbktleU1lc3NhZ2UoT2lkIGF0dGNlaykKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJ U2NhbktleURhdGEgc2tleVsxXTsKKwlTeXNTY2FuRGVzYyBzZDsKKwlSZWxhdGlvbglyZWw7 CisJYm9vbAkJZm91bmQgPSBmYWxzZTsKKwlzdGF0aWMgYm9vbCByZWdpc3RlcmVkX2ludmFs ID0gZmFsc2U7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJaWYgKGxpc3RfbWVt YmVyX29pZChjZWtfc2VudCwgYXR0Y2VrKSkKKwkJcmV0dXJuOworCisJU2NhbktleUluaXQo JnNrZXlbMF0sCisJCQkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNla2lkLAorCQkJCUJU RXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKGF0 dGNlaykpOworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQs IEFjY2Vzc1NoYXJlTG9jayk7CisJc2QgPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBDb2x1 bW5FbmNLZXlDZWtpZENta2lkSW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2tleSk7CisKKwl3 aGlsZSAoKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzZCkpKQorCXsKKwkJRm9ybV9wZ19j b2xlbmNrZXlkYXRhIGNrZGZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBHRVRTVFJV Q1QodHVwbGUpOworCQlEYXR1bQkJZGF0dW07CisJCWJvb2wJCWlzbnVsbDsKKwkJYnl0ZWEJ ICAgKmJhOworCQlTdHJpbmdJbmZvRGF0YSBidWY7CisKKwkJTWF5YmVTZW5kQ29sdW1uTWFz dGVyS2V5TWVzc2FnZShja2Rmb3JtLT5ja2RjbWtpZCk7CisKKwkJZGF0dW0gPSBoZWFwX2dl dGF0dHIodHVwbGUsIEFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RlbmN2YWwsIFJlbGF0aW9u R2V0RGVzY3IocmVsKSwgJmlzbnVsbCk7CisJCUFzc2VydCghaXNudWxsKTsKKwkJYmEgPSBw Z19kZXRvYXN0X2RhdHVtX3BhY2tlZCgoYnl0ZWEgKikgRGF0dW1HZXRQb2ludGVyKGRhdHVt KSk7CisKKwkJcHFfYmVnaW5tZXNzYWdlKCZidWYsICdZJyk7IC8qIENvbHVtbkVuY3J5cHRp b25LZXkgKi8KKwkJcHFfc2VuZGludDMyKCZidWYsIGNrZGZvcm0tPmNrZGNla2lkKTsKKwkJ cHFfc2VuZGludDMyKCZidWYsIGNrZGZvcm0tPmNrZGNta2lkKTsKKwkJcHFfc2VuZGludDE2 KCZidWYsIGNrZGZvcm0tPmNrZGNta2FsZyk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBWQVJT SVpFX0FOWV9FWEhEUihiYSkpOworCQlwcV9zZW5kYnl0ZXMoJmJ1ZiwgVkFSREFUQV9BTlko YmEpLCBWQVJTSVpFX0FOWV9FWEhEUihiYSkpOworCQlwcV9lbmRtZXNzYWdlKCZidWYpOwor CisJCWZvdW5kID0gdHJ1ZTsKKwl9CisKKwlpZiAoIWZvdW5kKQorCQllbG9nKEVSUk9SLCAi bG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgJXUiLCBhdHRj ZWspOworCisJc3lzdGFibGVfZW5kc2NhbihzZCk7CisJdGFibGVfY2xvc2UocmVsLCBOb0xv Y2spOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2FjaGVSZWdpc3RlclN5 c2NhY2hlQ2FsbGJhY2soQ0VLREFUQU9JRCwgY2VrX2NoYW5nZV9jYiwgKERhdHVtKSAwKTsK KwkJcmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJb2xkY29udGV4dCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwljZWtfc2VudCA9IGxhcHBl bmRfb2lkKGNla19zZW50LCBhdHRjZWspOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj b250ZXh0KTsKK30KKwogLyoKICAqIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UgLS0tIHNl bmQgYSBSb3dEZXNjcmlwdGlvbiBtZXNzYWdlIHRvIHRoZSBmcm9udGVuZAogICoKQEAgLTIw MCw2ICszNDIsOCBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVm LCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCU9pZAkJCXJlc29yaWd0Ymw7CiAJCUF0dHJOdW1i ZXIJcmVzb3JpZ2NvbDsKIAkJaW50MTYJCWZvcm1hdDsKKwkJT2lkCQkJYXR0Y2VraWQgPSBJ bnZhbGlkT2lkOworCQlpbnQxNgkJYXR0ZW5jYWxnID0gMDsKIAogCQkvKgogCQkgKiBJZiBj b2x1bW4gaXMgYSBkb21haW4sIHNlbmQgdGhlIGJhc2UgdHlwZSBhbmQgdHlwbW9kIGluc3Rl YWQuCkBAIC0yMzEsNiArMzc1LDIyIEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3Ry aW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJZWxzZQogCQkJZm9ybWF0ID0g MDsKIAorCQlpZiAoZ2V0X3R5cHR5cGUoYXR0dHlwaWQpID09IFRZUFRZUEVfRU5DUllQVEVE KQorCQl7CisJCQlIZWFwVHVwbGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0 dDsKKworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERhdHVt KHJlc29yaWd0YmwpLCBJbnQxNkdldERhdHVtKHJlc29yaWdjb2wpKTsKKwkJCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHJlc29yaWdjb2wsIHJlc29y aWd0YmwpOworCQkJb3JpZ19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0 cCk7CisJCQlNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShvcmlnX2F0dC0+ YXR0Y2VrKTsKKwkJCWF0dHR5cGlkID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJCWF0 dGNla2lkID0gb3JpZ19hdHQtPmF0dGNlazsKKwkJCWF0dGVuY2FsZyA9IG9yaWdfYXR0LT5h dHRlbmNhbGc7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQl9CisKIAkJcHFfd3JpdGVz dHJpbmcoYnVmLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpOwogCQlwcV93cml0ZWludDMyKGJ1 ZiwgcmVzb3JpZ3RibCk7CiAJCXBxX3dyaXRlaW50MTYoYnVmLCByZXNvcmlnY29sKTsKQEAg LTIzOCw2ICszOTgsOCBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8g YnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCXBxX3dyaXRlaW50MTYoYnVmLCBhdHQtPmF0 dGxlbik7CiAJCXBxX3dyaXRlaW50MzIoYnVmLCBhdHR0eXBtb2QpOwogCQlwcV93cml0ZWlu dDE2KGJ1ZiwgZm9ybWF0KTsKKwkJcHFfd3JpdGVpbnQzMihidWYsIGF0dGNla2lkKTsKKwkJ cHFfd3JpdGVpbnQxNihidWYsIGF0dGVuY2FsZyk7CiAJfQogCiAJcHFfZW5kbWVzc2FnZV9y ZXVzZShidWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBk ZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwppbmRleCBkNmZi MjYxZTIwLi5lM2VjYzY0ZWE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29t bW9uL3R1cGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2Mu YwpAQCAtNDU5LDYgKzQ1OSwxMiBAQCBlcXVhbFR1cGxlRGVzY3MoVHVwbGVEZXNjIHR1cGRl c2MxLCBUdXBsZURlc2MgdHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRy MS0+YXR0aXNsb2NhbCAhPSBhdHRyMi0+YXR0aXNsb2NhbCkKIAkJCXJldHVybiBmYWxzZTsK KwkJaWYgKGF0dHIxLT5hdHRjZWsgIT0gYXR0cjItPmF0dGNlaykKKwkJCXJldHVybiBmYWxz ZTsKKwkJaWYgKGF0dHIxLT5hdHRyZWFsdHlwaWQgIT0gYXR0cjItPmF0dHJlYWx0eXBpZCkK KwkJCXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRlbmNhbGcgIT0gYXR0cjItPmF0 dGVuY2FsZykKKwkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5hdHRpbmhjb3VudCAh PSBhdHRyMi0+YXR0aW5oY291bnQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+ YXR0Y29sbGF0aW9uICE9IGF0dHIyLT5hdHRjb2xsYXRpb24pCkBAIC02MjksNiArNjM1LDkg QEAgVHVwbGVEZXNjSW5pdEVudHJ5KFR1cGxlRGVzYyBkZXNjLAogCWF0dC0+YXR0Z2VuZXJh dGVkID0gJ1wwJzsKIAlhdHQtPmF0dGlzZHJvcHBlZCA9IGZhbHNlOwogCWF0dC0+YXR0aXNs b2NhbCA9IHRydWU7CisJYXR0LT5hdHRjZWsgPSAwOworCWF0dC0+YXR0cmVhbHR5cGlkID0g MDsKKwlhdHQtPmF0dGVuY2FsZyA9IDA7CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyog dmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAq LwogCkBAIC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0aW5FbnRyeShUdXBs ZURlc2MgZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJYXR0LT5hdHRpc2Ry b3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOworCWF0dC0+YXR0Y2Vr ID0gMDsKKwlhdHQtPmF0dHJlYWx0eXBpZCA9IDA7CisJYXR0LT5hdHRlbmNhbGcgPSAwOwog CWF0dC0+YXR0aW5oY291bnQgPSAwOwogCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgYXJl IG5vdCBwcmVzZW50IGluIHR1cGxlZGVzY3MgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFz aC9oYXNodmFsaWRhdGUuYwppbmRleCAxMGJmMjZjZTdjLi5jZWE5MWQ0YTg4IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwpAQCAtMzMxLDcgKzMzMSw3IEBA IGNoZWNrX2hhc2hfZnVuY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgaW50MTYgYW1wcm9jbnVt LCBPaWQgYXJndHlwZSkKIAkJCQkgYXJndHlwZSA9PSBCT09MT0lEKQogCQkJIC8qIG9rYXks IGFsbG93ZWQgdXNlIG9mIGhhc2hjaGFyKCkgKi8gOwogCQllbHNlIGlmICgoZnVuY2lkID09 IEZfSEFTSFZBUkxFTkEgfHwgZnVuY2lkID09IEZfSEFTSFZBUkxFTkFFWFRFTkRFRCkgJiYK LQkJCQkgYXJndHlwZSA9PSBCWVRFQU9JRCkKKwkJCQkgKGFyZ3R5cGUgPT0gQllURUFPSUQg fHwgYXJndHlwZSA9PSBQR19FTkNSWVBURURfREVUT0lEKSkKIAkJCSAvKiBva2F5LCBhbGxv d2VkIHVzZSBvZiBoYXNodmFybGVuYSgpICovIDsKIAkJZWxzZQogCQkJcmVzdWx0ID0gZmFs c2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCA4OWEwMjIxZWM5Li43ZTFhOTFiOTc0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTcyLDcgKzcyLDggQEAgQ0FUQUxPR19IRUFERVJT IDo9IFwKIAlwZ19jb2xsYXRpb24uaCBwZ19wYXJhbWV0ZXJfYWNsLmggcGdfcGFydGl0aW9u ZWRfdGFibGUuaCBcCiAJcGdfcmFuZ2UuaCBwZ190cmFuc2Zvcm0uaCBcCiAJcGdfc2VxdWVu Y2UuaCBwZ19wdWJsaWNhdGlvbi5oIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKLQlw Z19wdWJsaWNhdGlvbl9yZWwuaCBwZ19zdWJzY3JpcHRpb24uaCBwZ19zdWJzY3JpcHRpb25f cmVsLmgKKwlwZ19wdWJsaWNhdGlvbl9yZWwuaCBwZ19zdWJzY3JpcHRpb24uaCBwZ19zdWJz Y3JpcHRpb25fcmVsLmggXAorCXBnX2NvbG1hc3RlcmtleS5oIHBnX2NvbGVuY2tleS5oIHBn X2NvbGVuY2tleWRhdGEuaAogCiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVB REVSUzolLmg9JV9kLmgpIHNjaGVtYXBnLmggc3lzdGVtX2ZrX2luZm8uaAogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9hY2xjaGsuYwppbmRleCA1ZjE3MjZjMDk1Li42MWI1OGM2NGEyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv YWNsY2hrLmMKQEAgLTM2MzEsNiArMzYzMSw4IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3Vs dCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQU1QUk9D OgogCQkJCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCQkJCWNhc2UgT0JKRUNUX0NBU1Q6 CisJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJCQlj YXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJCWNh c2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CkBAIC0zNzcxLDYgKzM3NzMsOCBAQCBhY2xjaGVj a19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNh c2UgT0JKRUNUX0FNUFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQkJCQlj YXNlIE9CSkVDVF9DQVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCWNhc2UgT0JK RUNUX0NNSzoKIAkJCQkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJCQkJY2FzZSBPQkpFQ1Rf REVGQUNMOgogCQkJCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAu YwppbmRleCBlNzcwZWE2ZWI4Li45YzY1MWQ4N2I0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAt NzQ2LDYgKzc0Niw5IEBAIEluc2VydFBnQXR0cmlidXRlVHVwbGVzKFJlbGF0aW9uIHBnX2F0 dHJpYnV0ZV9yZWwsCiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0 dHJpYnV0ZV9hdHRnZW5lcmF0ZWQgLSAxXSA9IENoYXJHZXREYXR1bShhdHRycy0+YXR0Z2Vu ZXJhdGVkKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmli dXRlX2F0dGlzZHJvcHBlZCAtIDFdID0gQm9vbEdldERhdHVtKGF0dHJzLT5hdHRpc2Ryb3Bw ZWQpOwogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVf YXR0aXNsb2NhbCAtIDFdID0gQm9vbEdldERhdHVtKGF0dHJzLT5hdHRpc2xvY2FsKTsKKwkJ c2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGNlayAt IDFdID0gT2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0Y2VrKTsKKwkJc2xvdFtzbG90Q291 bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dHJlYWx0eXBpZCAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0cmVhbHR5cGlkKTsKKwkJc2xvdFtzbG90Q291 bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGVuY2FsZyAtIDFdID0gSW50 MTZHZXREYXR1bShhdHRycy0+YXR0ZW5jYWxnKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNf dmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGluaGNvdW50IC0gMV0gPSBJbnQzMkdldERh dHVtKGF0dHJzLT5hdHRpbmhjb3VudCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVl c1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0 dW0oYXR0cnMtPmF0dGNvbGxhdGlvbik7CiAJCWlmIChhdHRvcHRpb25zICYmIGF0dG9wdGlv bnNbbmF0dHNdICE9IChEYXR1bSkgMCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMKaW5kZXggMmQyMWRiNDY5MC4uNGVmZjExMWZhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKQEAgLTIzMDMsNiArMjMwMyw4IEBAIHBnX2dldF9vYmplY3RfYWRk cmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CiAJ CQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQlj YXNlIE9CSkVDVF9FVkVOVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9FWFRFTlNJT046CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4ZjczNDhmOTEuLjY5ZjYxNzVjNjAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL01ha2VmaWxlCkBAIC0xOSw2ICsxOSw3IEBAIE9CSlMgPSBcCiAJYW5hbHl6 ZS5vIFwKIAlhc3luYy5vIFwKIAljbHVzdGVyLm8gXAorCWNvbGVuY2NtZHMubyBcCiAJY29s bGF0aW9uY21kcy5vIFwKIAljb21tZW50Lm8gXAogCWNvbnN0cmFpbnQubyBcCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9jb2xlbmNjbWRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uMjA1NzMzYmRmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbGVuY2NtZHMuYwpAQCAtMCwwICsxLDI0NSBAQAorLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogY29sZW5jY21kcy5jCisgKgkgIGNvbHVtbi1lbmNyeXB0aW9uLXJlbGF0 ZWQgY29tbWFuZHMgc3VwcG9ydCBjb2RlCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFj a2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9jYXRhbG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNz LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rl cmtleS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2NvbGVuY2NtZHMuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9kYmNvbW1hbmRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCisj aW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWwuaCIKKyNpbmNsdWRl ICJ1dGlscy9zeXNjYWNoZS5oIgorCitPYmplY3RBZGRyZXNzCitDcmVhdGVDRUsoUGFyc2VT dGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KQoreworCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJUmVsYXRpb24JcmVsOworCVJlbGF0aW9uCXJlbDI7CisJT2JqZWN0QWRkcmVzcyBt eXNlbGY7CisJT2lkCQkJY2Vrb2lkOworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0gICAg KmNta0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICphbGdFbCA9IE5VTEw7CisJRGVmRWxlbSAg ICAqZW5jdmFsRWwgPSBOVUxMOworCU9pZAkJCWNta29pZCA9IDA7CisJaW50MTYJCWFsZzsK KwljaGFyCSAgICplbmN2YWw7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xlbmNrZXld ID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJRGF0 dW0JCXZhbHVlczJbTmF0dHNfcGdfY29sZW5ja2V5ZGF0YV0gPSB7MH07CisJYm9vbAkJbnVs bHMyW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisK KwlhY2xyZXN1bHQgPSBwZ19kYXRhYmFzZV9hY2xjaGVjayhNeURhdGFiYXNlSWQsIEdldFVz ZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9EQVRBQkFTRSwKKwkJCQkJICAg Z2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVu KENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXJlbDIgPSB0 YWJsZV9vcGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2Nr KTsKKworCWNla29pZCA9IEdldFN5c0NhY2hlT2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVu Y2tleV9vaWQsCisJCQkJCQkJIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ ZGVmbmFtZXMpKSkpOworCWlmIChPaWRJc1ZhbGlkKGNla29pZCkpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJy bXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJ CQkJCXN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJZm9yZWFjaChsYywg c3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25v ZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgImNvbHVtbl9tYXN0ZXJfa2V5IikgPT0gMCkKKwkJCWRlZmVs cCA9ICZjbWtFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiYWxnb3Jp dGhtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZhbGdFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRl ZmVsLT5kZWZuYW1lLCAiZW5jcnlwdGVkX3ZhbHVlIikgPT0gMCkKKwkJCWRlZmVscCA9ICZl bmN2YWxFbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0 aW9uIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwKKwkJCQkJCQlkZWZl bC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+ bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpkZWZlbHAgIT0gTlVMTCkKKwkJCWVycm9yQ29u ZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCQkqZGVmZWxwID0gZGVmZWw7CisJ fQorCisJaWYgKGNta0VsKQorCXsKKwkJY2hhcgkgICAqdmFsID0gZGVmR2V0U3RyaW5nKGNt a0VsKTsKKworCQljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfb2lkLCBQb2ludGVyR2V0RGF0dW0odmFsKSk7CisJCWlmICghY21rb2lk KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9P QkpFQ1QpLAorCQkJCQllcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIHZhbCkpOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBc IiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJImNvbHVtbl9tYXN0ZXJfa2V5Iikp KTsKKworCWlmIChhbGdFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9IGRlZkdldFN0cmluZyhh bGdFbCk7CisKKwkJaWYgKHN0cmNtcCh2YWwsICJSU0FFU19PQUVQX1NIQV8xIikgPT0gMCkK KwkJCWFsZyA9IFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOworCQllbHNlIGlmIChzdHJjbXAo dmFsLCAiUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NiIpID09IDApCisJCQlhbGcgPSBQR19D TUtfUlNBRVNfT0FFUF9TSEFfMjU2OworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJt c2coInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwl9 CisJZWxzZQorCQlhbGcgPSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKworCWlmIChlbmN2 YWxFbCkKKwkJZW5jdmFsID0gZGVmR2V0U3RyaW5nKGVuY3ZhbEVsKTsKKwllbHNlCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJ CSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJ ImVuY3J5cHRlZF92YWx1ZSIpKSk7CisKKwkvKiBwZ19jb2xlbmNrZXkgKi8KKwljZWtvaWQg PSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5FbmNLZXlPaWRJbmRleElkLCBBbnVt X3BnX2NvbGVuY2tleV9vaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9vaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNr ZXlfY2VrbmFtZSAtIDFdID0KKwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJp bmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tB bnVtX3BnX2NvbGVuY2tleV9jZWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRV c2VySWQoKSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihy ZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkvKiBwZ19jb2xlbmNrZXlkYXRhICovCisJdmFs dWVzMltBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkIC0gMV0gPQorCQlPYmplY3RJZEdldERh dHVtKEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVtbkVuY0tleURhdGFPaWRJbmRleElk LCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkKSk7CisJdmFsdWVzMltBbnVtX3BnX2NvbGVu Y2tleWRhdGFfY2tkY2VraWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2 YWx1ZXMyW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWtpZCAtIDFdID0gT2JqZWN0SWRH ZXREYXR1bShjbWtvaWQpOworCXZhbHVlczJbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNt a2FsZyAtIDFdID0gSW50MTZHZXREYXR1bShhbGcpOworCXZhbHVlczJbQW51bV9wZ19jb2xl bmNrZXlkYXRhX2NrZGVuY3ZhbCAtIDFdID0gRGlyZWN0RnVuY3Rpb25DYWxsMShieXRlYWlu LCBDU3RyaW5nR2V0RGF0dW0oZW5jdmFsKSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo UmVsYXRpb25HZXREZXNjcihyZWwyKSwgdmFsdWVzMiwgbnVsbHMyKTsKKwlDYXRhbG9nVHVw bGVJbnNlcnQocmVsMiwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJcmVjb3Jk RGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCBHZXRV c2VySWQoKSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1uRW5jS2V5UmVs YXRpb25JZCwgY2Vrb2lkKTsKKworCXRhYmxlX2Nsb3NlKHJlbDIsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VP YmplY3RQb3N0Q3JlYXRlSG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjZWtvaWQs IDApOworCisJcmV0dXJuIG15c2VsZjsKK30KKworT2JqZWN0QWRkcmVzcworQ3JlYXRlQ01L KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCkKK3sKKwlBY2xSZXN1bHQJ YWNscmVzdWx0OworCVJlbGF0aW9uCXJlbDsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlP aWQJCQljbWtvaWQ7CisJTGlzdENlbGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9 IE5VTEw7CisJY2hhcgkgICAqcmVhbG07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xt YXN0ZXJrZXldID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0g PSB7MH07CisJSGVhcFR1cGxlCXR1cDsKKworCWFjbHJlc3VsdCA9IHBnX2RhdGFiYXNlX2Fj bGNoZWNrKE15RGF0YWJhc2VJZCwgR2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChh Y2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwg T0JKRUNUX0RBVEFCQVNFLAorCQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNl SWQpKTsKKworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFN RSwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQkJCQkJCSBDU3RyaW5nR2V0RGF0dW0o c3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwlpZiAoT2lkSXNWYWxpZChjbWtv aWQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVh ZHkgZXhpc3RzIiwKKwkJCQkJCXN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSkpOwor CisJZm9yZWFjaChsYywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRl ZmVsID0gbGZpcnN0X25vZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7 CisKKwkJaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRl ZmVscCA9ICZyZWFsbUVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1u IG1hc3RlciBrZXkgYXR0cmlidXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJ ZGVmZWwtPmRlZm5hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVm ZWwtPmxvY2F0aW9uKSkpOworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJv ckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVs OworCX0KKworCWlmIChyZWFsbUVsKQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVs KTsKKwllbHNlCisJCXJlYWxtID0gIiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5k ZXgocmVsLCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3Rlcmtl eV9vaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0oY21rb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21r bmFtZSAtIDFdID0KKwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJpbmdHZXRE YXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3Bn X2NvbG1hc3RlcmtleV9jbWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRVc2Vy SWQoKSk7CisJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSBD U3RyaW5nR2V0VGV4dERhdHVtKHJlYWxtKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShS ZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUlu c2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCXJlY29yZERlcGVu ZGVuY3lPbk93bmVyKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNl cklkKCkpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbk1hc3RlcktleVJl bGF0aW9uSWQsIGNta29pZCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soQ29sdW1uTWFzdGVyS2V5UmVs YXRpb25JZCwgY21rb2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZjQ2Zjg2NDc0YS4uOTNhYzM0YzgzZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtOTUxLDYgKzk1MSw4 IEBAIEV2ZW50VHJpZ2dlclN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9idHlwZSkK IAkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCWNh c2UgT0JKRUNUX0NBU1Q6CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01L OgogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJ Y2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKQEAgLTIwNjAsNiArMjA2Miw4IEBAIHN0cmluZ2lm eV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1Q Uk9DOgogCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJ CWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9D T0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0RF RkFVTFQ6CkBAIC0yMTQzLDYgKzIxNDcsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5 cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2Ug T0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJ Y2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYwppbmRleCAyMzMzYWFlNDY3Li45NDU3ODM1MGJkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jCkBAIC01MCw3ICs1MCw2IEBAIHN0YXRpYyB2b2lkIEluaXRR dWVyeUhhc2hUYWJsZSh2b2lkKTsKIHN0YXRpYyBQYXJhbUxpc3RJbmZvIEV2YWx1YXRlUGFy YW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCVByZXBhcmVkU3RhdGVtZW50ICpw c3RtdCwgTGlzdCAqcGFyYW1zLAogCQkJCQkJCQkJRVN0YXRlICplc3RhdGUpOwotc3RhdGlj IERhdHVtIGJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90eXBlcywgaW50IG51bV9w YXJhbXMpOwogCiAvKgogICogSW1wbGVtZW50cyB0aGUgJ1BSRVBBUkUnIHV0aWxpdHkgc3Rh dGVtZW50LgpAQCAtNjIsNiArNjEsOCBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwKIAlSYXdTdG10ICAgICpyYXdzdG10OwogCUNhY2hl ZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2U7CiAJT2lkCQkgICAqYXJndHlwZXMgPSBOVUxMOwor CU9pZAkJICAgKmFyZ29yaWd0YmxzID0gTlVMTDsKKwlBdHRyTnVtYmVyICphcmdvcmlnY29s cyA9IE5VTEw7CiAJaW50CQkJbmFyZ3M7CiAJTGlzdAkgICAqcXVlcnlfbGlzdDsKIApAQCAt MTA4LDYgKzEwOSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBh cmVTdG10ICpzdG10LAogCiAJCQlhcmd0eXBlc1tpKytdID0gdG9pZDsKIAkJfQorCisJCWFy Z29yaWd0YmxzID0gKE9pZCAqKSBwYWxsb2MwKG5hcmdzICogc2l6ZW9mKE9pZCkpOworCQlh cmdvcmlnY29scyA9IChBdHRyTnVtYmVyICopIHBhbGxvYzAobmFyZ3MgKiBzaXplb2YoQXR0 ck51bWJlcikpOwogCX0KIAogCS8qCkBAIC0xMTcsNyArMTIxLDkgQEAgUHJlcGFyZVF1ZXJ5 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAJICogUmV3cml0ZSB0 aGUgcXVlcnkuIFRoZSByZXN1bHQgY291bGQgYmUgMCwgMSwgb3IgbWFueSBxdWVyaWVzLgog CSAqLwogCXF1ZXJ5X2xpc3QgPSBwZ19hbmFseXplX2FuZF9yZXdyaXRlX3ZhcnBhcmFtcyhy YXdzdG10LCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJCQkJCSAgJmFyZ3R5cGVz LCAmbmFyZ3MsIE5VTEwpOworCQkJCQkJCQkJCQkJICAmYXJndHlwZXMsICZuYXJncywKKwkJ CQkJCQkJCQkJCSAgJmFyZ29yaWd0YmxzLCAmYXJnb3JpZ2NvbHMsCisJCQkJCQkJCQkJCQkg IE5VTEwpOwogCiAJLyogRmluaXNoIGZpbGxpbmcgaW4gdGhlIENhY2hlZFBsYW5Tb3VyY2Ug Ki8KIAlDb21wbGV0ZUNhY2hlZFBsYW4ocGxhbnNvdXJjZSwKQEAgLTEyNSw2ICsxMzEsOCBA QCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwK IAkJCQkJICAgTlVMTCwKIAkJCQkJICAgYXJndHlwZXMsCiAJCQkJCSAgIG5hcmdzLAorCQkJ CQkgICBhcmdvcmlndGJscywKKwkJCQkJICAgYXJnb3JpZ2NvbHMsCiAJCQkJCSAgIE5VTEws CiAJCQkJCSAgIE5VTEwsCiAJCQkJCSAgIENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssCS8qIGFs bG93IHBhcmFsbGVsIG1vZGUgKi8KQEAgLTY4Myw5ICs2OTEsMTEgQEAgcGdfcHJlcGFyZWRf c3RhdGVtZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWhhc2hfc2VxX2luaXQoJmhhc2hfc2Vx LCBwcmVwYXJlZF9xdWVyaWVzKTsKIAkJd2hpbGUgKChwcmVwX3N0bXQgPSBoYXNoX3NlcV9z ZWFyY2goJmhhc2hfc2VxKSkgIT0gTlVMTCkKIAkJeworCQkJaW50CQkJbnVtX3BhcmFtcyA9 IHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX3BhcmFtczsKIAkJCVR1cGxlRGVzYwlyZXN1 bHRfZGVzYzsKLQkJCURhdHVtCQl2YWx1ZXNbOF07Ci0JCQlib29sCQludWxsc1s4XTsKKwkJ CURhdHVtCSAgICp0bXBfYXJ5OworCQkJRGF0dW0JCXZhbHVlc1sxMF07CisJCQlib29sCQlu dWxsc1sxMF07CiAKIAkJCXJlc3VsdF9kZXNjID0gcHJlcF9zdG10LT5wbGFuc291cmNlLT5y ZXN1bHREZXNjOwogCkBAIC02OTQsMjUgKzcwNCwzOCBAQCBwZ19wcmVwYXJlZF9zdGF0ZW1l bnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0ocHJlcF9zdG10LT5zdG10X25hbWUpOwogCQkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRl eHREYXR1bShwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CiAJCQl2YWx1 ZXNbMl0gPSBUaW1lc3RhbXBUekdldERhdHVtKHByZXBfc3RtdC0+cHJlcGFyZV90aW1lKTsK LQkJCXZhbHVlc1szXSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXkocHJlcF9zdG10LT5wbGFuc291 cmNlLT5wYXJhbV90eXBlcywKLQkJCQkJCQkJCQkJcHJlcF9zdG10LT5wbGFuc291cmNlLT5u dW1fcGFyYW1zKTsKKworCQkJdG1wX2FyeSA9IChEYXR1bSAqKSBwYWxsb2MobnVtX3BhcmFt cyAqIHNpemVvZihEYXR1bSkpOworCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1z OyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocHJlcF9zdG10LT5w bGFuc291cmNlLT5wYXJhbV90eXBlc1tpXSk7CisJCQl2YWx1ZXNbM10gPSBQb2ludGVyR2V0 RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgUkVH VFlQRU9JRCkpOworCisJCQl0bXBfYXJ5ID0gKERhdHVtICopIHBhbGxvYyhudW1fcGFyYW1z ICogc2l6ZW9mKERhdHVtKSk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJhbXM7 IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShwcmVwX3N0bXQtPnBs YW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzW2ldKTsKKwkJCXZhbHVlc1s0XSA9IFBvaW50ZXJH ZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBS RUdDTEFTU09JRCkpOworCisJCQl0bXBfYXJ5ID0gKERhdHVtICopIHBhbGxvYyhudW1fcGFy YW1zICogc2l6ZW9mKERhdHVtKSk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJh bXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gSW50MTZHZXREYXR1bShwcmVwX3N0bXQtPnBs YW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzW2ldKTsKKwkJCXZhbHVlc1s1XSA9IFBvaW50ZXJH ZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBJ TlQyT0lEKSk7CisKIAkJCWlmIChyZXN1bHRfZGVzYykKIAkJCXsKLQkJCQlPaWQJCSAgICpy ZXN1bHRfdHlwZXM7Ci0KLQkJCQlyZXN1bHRfdHlwZXMgPSAoT2lkICopIHBhbGxvYyhyZXN1 bHRfZGVzYy0+bmF0dHMgKiBzaXplb2YoT2lkKSk7CisJCQkJdG1wX2FyeSA9IChEYXR1bSAq KSBwYWxsb2MocmVzdWx0X2Rlc2MtPm5hdHRzICogc2l6ZW9mKERhdHVtKSk7CiAJCQkJZm9y IChpbnQgaSA9IDA7IGkgPCByZXN1bHRfZGVzYy0+bmF0dHM7IGkrKykKLQkJCQkJcmVzdWx0 X3R5cGVzW2ldID0gcmVzdWx0X2Rlc2MtPmF0dHJzW2ldLmF0dHR5cGlkOwotCQkJCXZhbHVl c1s0XSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXkocmVzdWx0X3R5cGVzLCByZXN1bHRfZGVzYy0+ bmF0dHMpOworCQkJCQl0bXBfYXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShyZXN1bHRfZGVz Yy0+YXR0cnNbaV0uYXR0dHlwaWQpOworCQkJCXZhbHVlc1s2XSA9IFBvaW50ZXJHZXREYXR1 bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCByZXN1bHRfZGVzYy0+bmF0dHMs IFJFR1RZUEVPSUQpKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKIAkJCQkvKiBubyByZXN1bHQg ZGVzY3JpcHRvciAoZm9yIGV4YW1wbGUsIERNTCBzdGF0ZW1lbnQpICovCi0JCQkJbnVsbHNb NF0gPSB0cnVlOworCQkJCW51bGxzWzZdID0gdHJ1ZTsKIAkJCX0KLQkJCXZhbHVlc1s1XSA9 IEJvb2xHZXREYXR1bShwcmVwX3N0bXQtPmZyb21fc3FsKTsKLQkJCXZhbHVlc1s2XSA9IElu dDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2dlbmVyaWNfcGxh bnMpOwotCQkJdmFsdWVzWzddID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFu c291cmNlLT5udW1fY3VzdG9tX3BsYW5zKTsKKworCQkJdmFsdWVzWzddID0gQm9vbEdldERh dHVtKHByZXBfc3RtdC0+ZnJvbV9zcWwpOworCQkJdmFsdWVzWzhdID0gSW50NjRHZXREYXR1 bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fZ2VuZXJpY19wbGFucyk7CisJCQl2 YWx1ZXNbOV0gPSBJbnQ2NEdldERhdHVtRmFzdChwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPm51 bV9jdXN0b21fcGxhbnMpOwogCiAJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNl dFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLAogCQkJCQkJCQkgdmFsdWVzLCBudWxscyk7CkBA IC03MjEsMjQgKzc0NCwzIEBAIHBnX3ByZXBhcmVkX3N0YXRlbWVudChQR19GVU5DVElPTl9B UkdTKQogCiAJcmV0dXJuIChEYXR1bSkgMDsKIH0KLQotLyoKLSAqIFRoaXMgdXRpbGl0eSBm dW5jdGlvbiB0YWtlcyBhIEMgYXJyYXkgb2YgT2lkcywgYW5kIHJldHVybnMgYSBEYXR1bQot ICogcG9pbnRpbmcgdG8gYSBvbmUtZGltZW5zaW9uYWwgUG9zdGdyZXMgYXJyYXkgb2YgcmVn dHlwZXMuIEFuIGVtcHR5Ci0gKiBhcnJheSBpcyByZXR1cm5lZCBhcyBhIHplcm8tZWxlbWVu dCBhcnJheSwgbm90IE5VTEwuCi0gKi8KLXN0YXRpYyBEYXR1bQotYnVpbGRfcmVndHlwZV9h cnJheShPaWQgKnBhcmFtX3R5cGVzLCBpbnQgbnVtX3BhcmFtcykKLXsKLQlEYXR1bQkgICAq dG1wX2FyeTsKLQlBcnJheVR5cGUgICpyZXN1bHQ7Ci0JaW50CQkJaTsKLQotCXRtcF9hcnkg PSAoRGF0dW0gKikgcGFsbG9jKG51bV9wYXJhbXMgKiBzaXplb2YoRGF0dW0pKTsKLQotCWZv ciAoaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCi0JCXRtcF9hcnlbaV0gPSBPYmplY3RJ ZEdldERhdHVtKHBhcmFtX3R5cGVzW2ldKTsKLQotCXJlc3VsdCA9IGNvbnN0cnVjdF9hcnJh eV9idWlsdGluKHRtcF9hcnksIG51bV9wYXJhbXMsIFJFR1RZUEVPSUQpOwotCXJldHVybiBQ b2ludGVyR2V0RGF0dW0ocmVzdWx0KTsKLX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmlu ZGV4IDdhZTE5Yjk4YmIuLjljY2RmNzYxNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwu YwpAQCAtNjYsNiArNjYsOCBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRU UklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNh c2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVD VF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwppbmRleCBlZjViMzRhMzEyLi4zYWIyNzk4YjlmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfYXR0cmRlZi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlcGVuZC5oIgpAQCAt OTMxLDYgKzkzMiw3NiBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFy IHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQlpZiAoY29sRGVmLT5jb21wcmVzc2lvbikKIAkJ CWF0dHItPmF0dGNvbXByZXNzaW9uID0gR2V0QXR0cmlidXRlQ29tcHJlc3Npb24oYXR0ci0+ YXR0dHlwaWQsCiAJCQkJCQkJCQkJCQkJCSAgIGNvbERlZi0+Y29tcHJlc3Npb24pOworCisJ 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 CQlhdHRyLT5hdHRlbmNhbGcgPSBhbGc7CisJCX0KIAl9CiAKIAkvKgpAQCAtNjgzMCw2ICs2 OTAxLDkgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCWF0dHJpYnV0ZS5hdHRnZW5lcmF0ZWQgPSBjb2xE ZWYtPmdlbmVyYXRlZDsKIAlhdHRyaWJ1dGUuYXR0aXNkcm9wcGVkID0gZmFsc2U7CiAJYXR0 cmlidXRlLmF0dGlzbG9jYWwgPSBjb2xEZWYtPmlzX2xvY2FsOworCWF0dHJpYnV0ZS5hdHRj ZWsgPSAwOyAvLyBUT0RPCisJYXR0cmlidXRlLmF0dHJlYWx0eXBpZCA9IDA7IC8vIFRPRE8K KwlhdHRyaWJ1dGUuYXR0ZW5jYWxnID0gMDsgLy8gVE9ETwogCWF0dHJpYnV0ZS5hdHRpbmhj b3VudCA9IGNvbERlZi0+aW5oY291bnQ7CiAJYXR0cmlidXRlLmF0dGNvbGxhdGlvbiA9IGNv bGxPaWQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKaW5kZXggMjliYzI2NjY5Yi4uY2RlNWIwZTA4NyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTIyNzksNiArMjI3OSw4IEBAIF9TUElfcHJlcGFyZV9w bGFuKGNvbnN0IGNoYXIgKnNyYywgU1BJUGxhblB0ciBwbGFuKQogCQkJCQkJICAgTlVMTCwK IAkJCQkJCSAgIHBsYW4tPmFyZ3R5cGVzLAogCQkJCQkJICAgcGxhbi0+bmFyZ3MsCisJCQkJ CQkgICBOVUxMLAorCQkJCQkJICAgTlVMTCwKIAkJCQkJCSAgIHBsYW4tPnBhcnNlclNldHVw LAogCQkJCQkJICAgcGxhbi0+cGFyc2VyU2V0dXBBcmcsCiAJCQkJCQkgICBwbGFuLT5jdXJz b3Jfb3B0aW9ucywKQEAgLTI1MTYsNiArMjUxOCw4IEBAIF9TUElfZXhlY3V0ZV9wbGFuKFNQ SVBsYW5QdHIgcGxhbiwgY29uc3QgU1BJRXhlY3V0ZU9wdGlvbnMgKm9wdGlvbnMsCiAJCQkJ CQkJICAgTlVMTCwKIAkJCQkJCQkgICBwbGFuLT5hcmd0eXBlcywKIAkJCQkJCQkgICBwbGFu LT5uYXJncywKKwkJCQkJCQkgICBOVUxMLAorCQkJCQkJCSAgIE5VTEwsCiAJCQkJCQkJICAg cGxhbi0+cGFyc2VyU2V0dXAsCiAJCQkJCQkJICAgcGxhbi0+cGFyc2VyU2V0dXBBcmcsCiAJ CQkJCQkJICAgcGxhbi0+Y3Vyc29yX29wdGlvbnMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmlu ZGV4IDRjYjE3NDRkYTYuLjhmYmUwZjVmOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBA IC00Mjg4LDYgKzQyODgsOCBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcihOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAod2Fsa2VyKGNvbGRlZi0+Y29tcHJl c3Npb24sIGNvbnRleHQpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAod2Fsa2VyKGNv bGRlZi0+ZW5jcnlwdGlvbiwgY29udGV4dCkpCisJCQkJCXJldHVybiB0cnVlOwogCQkJCWlm ICh3YWxrZXIoY29sZGVmLT5yYXdfZGVmYXVsdCwgY29udGV4dCkpCiAJCQkJCXJldHVybiB0 cnVlOwogCQkJCWlmICh3YWxrZXIoY29sZGVmLT5jb2xsQ2xhdXNlLCBjb250ZXh0KSkKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCmluZGV4IDhlZDJjNGI4YzcuLjZlMWIyNGJkNGIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYwpAQCAtMTQ1LDYgKzE0NSw3IEBAIHBhcnNlX2FuYWx5emVfZml4ZWRw YXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogUXVl cnkgKgogcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25z dCBjaGFyICpzb3VyY2VUZXh0LAogCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1Q YXJhbXMsCisJCQkJCQlPaWQgKipwYXJhbU9yaWdUYmxzLCBBdHRyTnVtYmVyICoqcGFyYW1P cmlnQ29scywKIAkJCQkJCVF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KQogewogCVBhcnNl U3RhdGUgKnBzdGF0ZSA9IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKQEAgLTE1NSw3ICsxNTYs NyBAQCBwYXJzZV9hbmFseXplX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZVRyZWUsIGNvbnN0 IGNoYXIgKnNvdXJjZVRleHQsCiAKIAlwc3RhdGUtPnBfc291cmNldGV4dCA9IHNvdXJjZVRl eHQ7CiAKLQlzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKHBzdGF0ZSwgcGFyYW1U eXBlcywgbnVtUGFyYW1zKTsKKwlzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKHBz dGF0ZSwgcGFyYW1UeXBlcywgbnVtUGFyYW1zLCBwYXJhbU9yaWdUYmxzLCBwYXJhbU9yaWdD b2xzKTsKIAogCXBzdGF0ZS0+cF9xdWVyeUVudiA9IHF1ZXJ5RW52OwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCAwNTIzMDEzZjUzLi42ODFlMzZhY2ZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTU5 Niw2ICs1OTYsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+ CVRhYmxlQ29uc3RyYWludCBUYWJsZUxpa2VDbGF1c2UKICV0eXBlIDxpdmFsPglUYWJsZUxp a2VPcHRpb25MaXN0IFRhYmxlTGlrZU9wdGlvbgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21w cmVzc2lvbiBvcHRfY29sdW1uX2NvbXByZXNzaW9uCisldHlwZSA8bGlzdD4Jb3B0X2NvbHVt bl9lbmNyeXB0aW9uCiAldHlwZSA8bGlzdD4JQ29sUXVhbExpc3QKICV0eXBlIDxub2RlPglD b2xDb25zdHJhaW50IENvbENvbnN0cmFpbnRFbGVtIENvbnN0cmFpbnRBdHRyCiAldHlwZSA8 aXZhbD4Ja2V5X21hdGNoCkBAIC03ODksNyArNzkwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKIAlERVRBQ0ggRElDVElPTkFSWSBESVNBQkxFX1AgRElTQ0FSRCBESVNUSU5D VCBETyBET0NVTUVOVF9QIERPTUFJTl9QCiAJRE9VQkxFX1AgRFJPUAogCi0JRUFDSCBFTFNF IEVNUFRZX1AgRU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFUlJP Ul9QIEVTQ0FQRQorCUVBQ0ggRUxTRSBFTVBUWV9QIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZ UFRJT04gRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFUlJPUl9QIEVTQ0FQRQogCUVWRU5UIEVY Q0VQVCBFWENMVURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhFQ1VURSBFWElTVFMgRVhQTEFJ TiBFWFBSRVNTSU9OCiAJRVhURU5TSU9OIEVYVEVSTkFMIEVYVFJBQ1QKIApAQCAtODE0LDcg KzgxNSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJTEVBRElORyBMRUFLUFJP T0YgTEVBU1QgTEVGVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9D QUxUSU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAK LQlNQVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1F VEhPRAorCU1BUFBJTkcgTUFTVEVSIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZB TFVFIE1FUkdFIE1FVEhPRAogCU1JTlVURV9QIE1JTlZBTFVFIE1PREUgTU9OVEhfUCBNT1ZF CiAKIAlOQU1FX1AgTkFNRVMgTkFUSU9OQUwgTkFUVVJBTCBOQ0hBUiBORVNURUQgTkVXIE5F WFQgTkZDIE5GRCBORktDIE5GS0QgTk8KQEAgLTM3NzgsMTMgKzM3NzksMTQgQEAgVHlwZWRU YWJsZUVsZW1lbnQ6CiAJCQl8IFRhYmxlQ29uc3RyYWludAkJCQkJeyAkJCA9ICQxOyB9CiAJ CTsKIAotY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX2NvbXByZXNzaW9u IGNyZWF0ZV9nZW5lcmljX29wdGlvbnMgQ29sUXVhbExpc3QKK2NvbHVtbkRlZjoJQ29sSWQg VHlwZW5hbWUgb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBvcHRfY29sdW1uX2VuY3J5cHRpb24g Y3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFsTGlzdAogCQkJCXsKIAkJCQkJQ29sdW1u RGVmICpuID0gbWFrZU5vZGUoQ29sdW1uRGVmKTsKIAogCQkJCQluLT5jb2xuYW1lID0gJDE7 CiAJCQkJCW4tPnR5cGVOYW1lID0gJDI7CiAJCQkJCW4tPmNvbXByZXNzaW9uID0gJDM7CisJ CQkJCW4tPmVuY3J5cHRpb24gPSAkNDsKIAkJCQkJbi0+aW5oY291bnQgPSAwOwogCQkJCQlu LT5pc19sb2NhbCA9IHRydWU7CiAJCQkJCW4tPmlzX25vdF9udWxsID0gZmFsc2U7CkBAIC0z NzkzLDggKzM3OTUsOCBAQCBjb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1lIG9wdF9jb2x1bW5f Y29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFsTAogCQkJCQluLT5y YXdfZGVmYXVsdCA9IE5VTEw7CiAJCQkJCW4tPmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKIAkJ CQkJbi0+Y29sbE9pZCA9IEludmFsaWRPaWQ7Ci0JCQkJCW4tPmZkd29wdGlvbnMgPSAkNDsK LQkJCQkJU3BsaXRDb2xRdWFsTGlzdCgkNSwgJm4tPmNvbnN0cmFpbnRzLCAmbi0+Y29sbENs YXVzZSwKKwkJCQkJbi0+ZmR3b3B0aW9ucyA9ICQ1OworCQkJCQlTcGxpdENvbFF1YWxMaXN0 KCQ2LCAmbi0+Y29uc3RyYWludHMsICZuLT5jb2xsQ2xhdXNlLAogCQkJCQkJCQkJIHl5c2Nh bm5lcik7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK QEAgLTM4NTEsNiArMzg1MywxMSBAQCBvcHRfY29sdW1uX2NvbXByZXNzaW9uOgogCQkJfCAv KkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAorb3B0X2NvbHVtbl9lbmNy eXB0aW9uOgorCQkJRU5DUllQVEVEIFdJVEggJygnIGRlZl9saXN0ICcpJwkJCXsgJCQgPSAk NDsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogQ29s UXVhbExpc3Q6CiAJCQlDb2xRdWFsTGlzdCBDb2xDb25zdHJhaW50CQkJCXsgJCQgPSBsYXBw ZW5kKCQxLCAkMik7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTklMOyB9CkBA IC02MzM1LDYgKzYzNDIsMjQgQEAgRGVmaW5lU3RtdDoKIAkJCQkJbi0+aWZfbm90X2V4aXN0 cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IENSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgV0lUSCBWQUxVRVMgZGVmaW5pdGlvbgor CQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJ CQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ0VLOworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJ CQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJ CQl8IENSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFtZSBXSVRIIGRlZmluaXRpb24K KwkJCQl7CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKwor CQkJCQluLT5raW5kID0gT0JKRUNUX0NNSzsKKwkJCQkJbi0+ZGVmbmFtZXMgPSAkNTsKKwkJ CQkJbi0+ZGVmaW5pdGlvbiA9ICQ3OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQog CQk7CiAKIGRlZmluaXRpb246ICcoJyBkZWZfbGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0K QEAgLTE3NzQ5LDYgKzE3Nzc0LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBFTkFC TEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQVElPTgog CQkJfCBFTlVNX1AKIAkJCXwgRVJST1JfUAogCQkJfCBFU0NBUEUKQEAgLTE3ODE2LDYgKzE3 ODQyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMT0NLRUQKIAkJCXwgTE9HR0VE CiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1BVENICiAJCQl8IE1BVENIRUQK IAkJCXwgTUFURVJJQUxJWkVECkBAIC0xODMyMCw2ICsxODM0Nyw3IEBAIGJhcmVfbGFiZWxf a2V5d29yZDoKIAkJCXwgRU5BQkxFX1AKIAkJCXwgRU5DT0RJTkcKIAkJCXwgRU5DUllQVEVE CisJCQl8IEVOQ1JZUFRJT04KIAkJCXwgRU5EX1AKIAkJCXwgRU5VTV9QCiAJCQl8IEVSUk9S X1AKQEAgLTE4NDIzLDYgKzE4NDUxLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBM T0NLRUQKIAkJCXwgTE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1B VENICiAJCQl8IE1BVENIRUQKIAkJCXwgTUFURVJJQUxJWkVECmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9wYXJhbS5jCmluZGV4IGY2NjhhYmZjYjMuLmI0NWJmNGM0MzggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9wYXJhbS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9wYXJhbS5jCkBAIC00OSw2ICs0OSw4IEBAIHR5cGVkZWYgc3RydWN0IFZhclBh cmFtU3RhdGUKIHsKIAlPaWQJCSAgKipwYXJhbVR5cGVzOwkJLyogYXJyYXkgb2YgcGFyYW1l dGVyIHR5cGUgT0lEcyAqLwogCWludAkJICAgKm51bVBhcmFtczsJCS8qIG51bWJlciBvZiBh cnJheSBlbnRyaWVzICovCisJT2lkCQkgICoqcGFyYW1PcmlnVGJsczsJLyogdW5kZXJseWlu ZyB0YWJsZXMgKDAgaWYgbm9uZSkgKi8KKwlBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29sczsg LyogdW5kZXJseWluZyBjb2x1bW5zICgwIGlmIG5vbmUpICovCiB9IFZhclBhcmFtU3RhdGU7 CiAKIHN0YXRpYyBOb2RlICpmaXhlZF9wYXJhbXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUGFyYW1SZWYgKnByZWYpOwpAQCAtNTYsNiArNTgsNyBAQCBzdGF0aWMgTm9kZSAqdmFy aWFibGVfcGFyYW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVm KTsKIHN0YXRpYyBOb2RlICp2YXJpYWJsZV9jb2VyY2VfcGFyYW1faG9vayhQYXJzZVN0YXRl ICpwc3RhdGUsIFBhcmFtICpwYXJhbSwKIAkJCQkJCQkJCQlPaWQgdGFyZ2V0VHlwZUlkLCBp bnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJCQkJCQkJCWludCBsb2NhdGlvbik7CitzdGF0aWMg dm9pZCB2YXJpYWJsZV9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUGFyYW0gKnBhcmFtLCBPaWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKTsKIHN0 YXRpYyBib29sIGNoZWNrX3BhcmFtZXRlcl9yZXNvbHV0aW9uX3dhbGtlcihOb2RlICpub2Rl LCBQYXJzZVN0YXRlICpwc3RhdGUpOwogc3RhdGljIGJvb2wgcXVlcnlfY29udGFpbnNfZXh0 ZXJuX3BhcmFtc193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKQEAgLTgx LDE1ICs4NCwxOSBAQCBzZXR1cF9wYXJzZV9maXhlZF9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUg KnBzdGF0ZSwKICAqLwogdm9pZAogc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQ YXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVt UGFyYW1zKQorCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJ CQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMp CiB7CiAJVmFyUGFyYW1TdGF0ZSAqcGFyc3RhdGUgPSBwYWxsb2Moc2l6ZW9mKFZhclBhcmFt U3RhdGUpKTsKIAogCXBhcnN0YXRlLT5wYXJhbVR5cGVzID0gcGFyYW1UeXBlczsKIAlwYXJz dGF0ZS0+bnVtUGFyYW1zID0gbnVtUGFyYW1zOworCXBhcnN0YXRlLT5wYXJhbU9yaWdUYmxz ID0gcGFyYW1PcmlnVGJsczsKKwlwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyA9IHBhcmFtT3Jp Z0NvbHM7CiAJcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlID0gKHZvaWQgKikgcGFyc3RhdGU7 CiAJcHN0YXRlLT5wX3BhcmFtcmVmX2hvb2sgPSB2YXJpYWJsZV9wYXJhbXJlZl9ob29rOwog CXBzdGF0ZS0+cF9jb2VyY2VfcGFyYW1faG9vayA9IHZhcmlhYmxlX2NvZXJjZV9wYXJhbV9o b29rOworCXBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rID0gdmFyaWFibGVfcGFy YW1fYXNzaWduX29yaWdfaG9vazsKIH0KIAogLyoKQEAgLTE0NSwxNCArMTUyLDM2IEBAIHZh cmlhYmxlX3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJl ZikKIAl7CiAJCS8qIE5lZWQgdG8gZW5sYXJnZSBwYXJhbSBhcnJheSAqLwogCQlpZiAoKnBh cnN0YXRlLT5wYXJhbVR5cGVzKQorCQl7CiAJCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSAo T2lkICopIHJlcGFsbG9jKCpwYXJzdGF0ZS0+cGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJCQkg cGFyYW1ubyAqIHNpemVvZihPaWQpKTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJs cykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMgPSByZXBhbGxvYygqcGFyc3RhdGUt PnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCQkJCQkJcGFyYW1ubyAqIHNpemVvZihPaWQpKTsK KwkJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scykKKwkJCQkqcGFyc3RhdGUtPnBhcmFt T3JpZ0NvbHMgPSByZXBhbGxvYygqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJ CQkJCQkJcGFyYW1ubyAqIHNpemVvZihBdHRyTnVtYmVyKSk7CisJCX0KIAkJZWxzZQorCQl7 CiAJCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSAoT2lkICopIHBhbGxvYyhwYXJhbW5vICog c2l6ZW9mKE9pZCkpOworCQkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzKQorCQkJCSpw YXJzdGF0ZS0+cGFyYW1PcmlnVGJscyA9IHBhbGxvYyhwYXJhbW5vICogc2l6ZW9mKE9pZCkp OworCQkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkJCSpwYXJzdGF0ZS0+cGFy YW1PcmlnQ29scyA9IHBhbGxvYyhwYXJhbW5vICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKKwkJ fQogCQkvKiBaZXJvIG91dCB0aGUgcHJldmlvdXNseS11bnJlZmVyZW5jZWQgc2xvdHMgKi8K IAkJTWVtU2V0KCpwYXJzdGF0ZS0+cGFyYW1UeXBlcyArICpwYXJzdGF0ZS0+bnVtUGFyYW1z LAogCQkJICAgMCwKIAkJCSAgIChwYXJhbW5vIC0gKnBhcnN0YXRlLT5udW1QYXJhbXMpICog c2l6ZW9mKE9pZCkpOworCQlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCQlNZW1T ZXQoKnBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCisJ CQkJICAgMCwKKwkJCQkgICAocGFyYW1ubyAtICpwYXJzdGF0ZS0+bnVtUGFyYW1zKSAqIHNp emVvZihPaWQpKTsKKwkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkJTWVtU2V0 KCpwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyArICpwYXJzdGF0ZS0+bnVtUGFyYW1zLAorCQkJ CSAgIDAsCisJCQkJICAgKHBhcmFtbm8gLSAqcGFyc3RhdGUtPm51bVBhcmFtcykgKiBzaXpl b2YoQXR0ck51bWJlcikpOwogCQkqcGFyc3RhdGUtPm51bVBhcmFtcyA9IHBhcmFtbm87CiAJ fQogCkBAIC0yNjAsNiArMjg5LDE4IEBAIHZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLAogCXJldHVybiBOVUxMOwogfQogCitz dGF0aWMgdm9pZAordmFyaWFibGVfcGFyYW1fYXNzaWduX29yaWdfaG9vayhQYXJzZVN0YXRl ICpwc3RhdGUsIFBhcmFtICpwYXJhbSwgT2lkIG9yaWd0YmwsIEF0dHJOdW1iZXIgb3JpZ2Nv bCkKK3sKKwlWYXJQYXJhbVN0YXRlICpwYXJzdGF0ZSA9IChWYXJQYXJhbVN0YXRlICopIHBz dGF0ZS0+cF9yZWZfaG9va19zdGF0ZTsKKwlpbnQJCQlwYXJhbW5vID0gcGFyYW0tPnBhcmFt aWQ7CisKKwlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCSgqcGFyc3RhdGUtPnBh cmFtT3JpZ1RibHMpW3BhcmFtbm8gLSAxXSA9IG9yaWd0Ymw7CisJaWYgKHBhcnN0YXRlLT5w YXJhbU9yaWdDb2xzKQorCQkoKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKVtwYXJhbW5vIC0g MV0gPSBvcmlnY29sOworfQorCiAvKgogICogQ2hlY2sgZm9yIGNvbnNpc3RlbnQgYXNzaWdu bWVudCBvZiB2YXJpYWJsZSBwYXJhbWV0ZXJzIGFmdGVyIGNvbXBsZXRpb24KICAqIG9mIHBh cnNpbmcgd2l0aCBwYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3RhcmdldC5jCmluZGV4IDJhMWQ0NGI4MTMuLmI5NjQwODgwNDQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTU5NSw2ICs1OTUsMTIgQEAgdHJhbnNmb3JtQXNz aWduZWRFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGV4cHJMb2NhdGlvbihvcmlnX2V4cHIpKSkpOwogCX0KIAorCWlmIChJc0Eo ZXhwciwgUGFyYW0pKQorCXsKKwkJaWYgKHBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19o b29rKQorCQkJcHN0YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2socHN0YXRlLCBjYXN0 Tm9kZShQYXJhbSwgZXhwciksIFJlbGF0aW9uR2V0UmVsaWQocHN0YXRlLT5wX3RhcmdldF9y ZWxhdGlvbiksIGF0dHJubyk7CisJfQorCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IHN2X2V4 cHJfa2luZDsKIAogCXJldHVybiBleHByOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDZmMThi Njg4NTYuLjQ5MDc4YTczM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTc5LDYgKzc5LDcg QEAKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0 YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKIApAQCAtNjczLDYgKzY3NCw4IEBAIHBnX2FuYWx5emVfYW5kX3Jl d3JpdGVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJIGNvbnN0IGNo YXIgKnF1ZXJ5X3N0cmluZywKIAkJCQkJCQkJIE9pZCAqKnBhcmFtVHlwZXMsCiAJCQkJCQkJ CSBpbnQgKm51bVBhcmFtcywKKwkJCQkJCQkJIE9pZCAqKnBhcmFtT3JpZ1RibHMsCisJCQkJ CQkJCSBBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scywKIAkJCQkJCQkJIFF1ZXJ5RW52aXJv bm1lbnQgKnF1ZXJ5RW52KQogewogCVF1ZXJ5CSAgICpxdWVyeTsKQEAgLTY4Nyw3ICs2OTAs NyBAQCBwZ19hbmFseXplX2FuZF9yZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRy ZWUsCiAJCVJlc2V0VXNhZ2UoKTsKIAogCXF1ZXJ5ID0gcGFyc2VfYW5hbHl6ZV92YXJwYXJh bXMocGFyc2V0cmVlLCBxdWVyeV9zdHJpbmcsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywKLQkJ CQkJCQkJCXF1ZXJ5RW52KTsKKwkJCQkJCQkJCXBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0Nv bHMsIHF1ZXJ5RW52KTsKIAogCS8qCiAJICogQ2hlY2sgYWxsIHBhcmFtZXRlciB0eXBlcyBn b3QgZGV0ZXJtaW5lZC4KQEAgLTEzNjQsNiArMTM2Nyw4IEBAIGV4ZWNfcGFyc2VfbWVzc2Fn ZShjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJ Ym9vbAkJaXNfbmFtZWQ7CiAJYm9vbAkJc2F2ZV9sb2dfc3RhdGVtZW50X3N0YXRzID0gbG9n X3N0YXRlbWVudF9zdGF0czsKIAljaGFyCQltc2VjX3N0clszMl07CisJT2lkCQkgICAqcGFy YW1PcmlnVGJscyA9IHBhbGxvYyhudW1QYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJQXR0ck51 bWJlciAqcGFyYW1PcmlnQ29scyA9IHBhbGxvYyhudW1QYXJhbXMgKiBzaXplb2YoQXR0ck51 bWJlcikpOwogCiAJLyoKIAkgKiBSZXBvcnQgcXVlcnkgdG8gdmFyaW91cyBtb25pdG9yaW5n IGZhY2lsaXRpZXMuCkBAIC0xNDg0LDYgKzE0ODksOCBAQCBleGVjX3BhcnNlX21lc3NhZ2Uo Y29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAkvKiBzdHJpbmcgdG8gZXhlY3V0ZSAqLwogCQkJ CQkJCQkJCQkJCQkgIHF1ZXJ5X3N0cmluZywKIAkJCQkJCQkJCQkJCQkJICAmcGFyYW1UeXBl cywKIAkJCQkJCQkJCQkJCQkJICAmbnVtUGFyYW1zLAorCQkJCQkJCQkJCQkJCQkgICZwYXJh bU9yaWdUYmxzLAorCQkJCQkJCQkJCQkJCQkgICZwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJ CQkJCQkgIE5VTEwpOwogCiAJCS8qIERvbmUgd2l0aCB0aGUgc25hcHNob3QgdXNlZCBmb3Ig cGFyc2luZyAqLwpAQCAtMTUxNCw2ICsxNTIxLDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNv bnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywJLyogc3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAkJCQkJ ICAgdW5uYW1lZF9zdG10X2NvbnRleHQsCiAJCQkJCSAgIHBhcmFtVHlwZXMsCiAJCQkJCSAg IG51bVBhcmFtcywKKwkJCQkJICAgcGFyYW1PcmlnVGJscywKKwkJCQkJICAgcGFyYW1Pcmln Q29scywKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgQ1VSU09SX09Q VF9QQVJBTExFTF9PSywJLyogYWxsb3cgcGFyYWxsZWwgbW9kZSAqLwpAQCAtMTgxMSw2ICsx ODIwLDE2IEBAIGV4ZWNfYmluZF9tZXNzYWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkK IAkJCWVsc2UKIAkJCQlwZm9ybWF0ID0gMDsJLyogZGVmYXVsdCA9IHRleHQgKi8KIAorCQkJ aWYgKGdldF90eXB0eXBlKHB0eXBlKSA9PSBUWVBUWVBFX0VOQ1JZUFRFRCkKKwkJCXsKKwkJ CQlpZiAocGZvcm1hdCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4RjA7CisJCQkJZWxz ZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9D T0xfVklPTEFUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgY29ycmVzcG9uZHMg dG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwgYnV0IHRoZSBwYXJhbWV0ZXIgdmFsdWUgd2FzIG5v dCBlbmNyeXB0ZWQiKSkpOworCQkJfQorCiAJCQlpZiAocGZvcm1hdCA9PSAwKQkvKiB0ZXh0 IG1vZGUgKi8KIAkJCXsKIAkJCQlPaWQJCQl0eXBpbnB1dDsKQEAgLTI2MDcsOCArMjYyNiw0 MSBAQCBleGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNzYWdlKGNvbnN0IGNoYXIgKnN0bXRf bmFtZSkKIAlmb3IgKGludCBpID0gMDsgaSA8IHBzcmMtPm51bV9wYXJhbXM7IGkrKykKIAl7 CiAJCU9pZAkJCXB0eXBlID0gcHNyYy0+cGFyYW1fdHlwZXNbaV07CisJCU9pZAkJCXBjZWtp ZCA9IEludmFsaWRPaWQ7CisJCWludAkJCXBjZWthbGcgPSAwOworCQlpbnQxNgkJcGZsYWdz ID0gMDsKKworCQlpZiAoZ2V0X3R5cHR5cGUocHR5cGUpID09IFRZUFRZUEVfRU5DUllQVEVE KQorCQl7CisJCQlPaWQJCQlwb3JpZ3RibCA9IHBzcmMtPnBhcmFtX29yaWd0YmxzW2ldOwor CQkJQXR0ck51bWJlcglwb3JpZ2NvbCA9IHBzcmMtPnBhcmFtX29yaWdjb2xzW2ldOworCQkJ SGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgb3JpZ19hdHQ7CisKKwkJCWlm IChwb3JpZ3RibCA9PSBJbnZhbGlkT2lkIHx8IHBvcmlnY29sIDw9IDApCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJCSBlcnJtc2coInBhcmFtZXRlciAlZCBjb3JyZXNwb25kcyB0byBhbiBlbmNy eXB0ZWQgY29sdW1uLCBidXQgYW4gdW5kZXJseWluZyB0YWJsZSBhbmQgY29sdW1uIGNvdWxk IG5vdCBiZSBkZXRlcm1pbmVkIiwgaSkpKTsKKworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIo QVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHBvcmlndGJsKSwgSW50MTZHZXREYXR1bShwb3Jp Z2NvbCkpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRlICVkIG9mIHJlbGF0aW9uICV1 IiwgcG9yaWdjb2wsIHBvcmlndGJsKTsKKwkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmli dXRlKSBHRVRTVFJVQ1QodHApOworCQkJcHR5cGUgPSBvcmlnX2F0dC0+YXR0cmVhbHR5cGlk OworCQkJcGNla2lkID0gb3JpZ19hdHQtPmF0dGNlazsKKwkJCXBjZWthbGcgPSBvcmlnX2F0 dC0+YXR0ZW5jYWxnOworCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKworCQkJaWYgKHBzcmMt PnBhcmFtX3R5cGVzW2ldID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQpCisJCQkJcGZsYWdzIHw9 IDB4MDE7CisKKwkJCU1heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKHBjZWtp ZCk7CisJCX0KIAogCQlwcV9zZW5kaW50MzIoJnJvd19kZXNjcmlwdGlvbl9idWYsIChpbnQp IHB0eXBlKTsKKwkJcHFfc2VuZGludDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBw Y2VraWQpOworCQlwcV9zZW5kaW50MTYoJnJvd19kZXNjcmlwdGlvbl9idWYsIHBjZWthbGcp OworCQlwcV9zZW5kaW50MTYoJnJvd19kZXNjcmlwdGlvbl9idWYsIHBmbGFncyk7CiAJfQog CXBxX2VuZG1lc3NhZ2VfcmV1c2UoJnJvd19kZXNjcmlwdGlvbl9idWYpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jCmluZGV4IDZiMGE4NjUyNjIuLjA4ODA3OTZjZjkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NsdXN0ZXIuaCIK KyNpbmNsdWRlICJjb21tYW5kcy9jb2xlbmNjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv Y29sbGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNs dWRlICJjb21tYW5kcy9jb252ZXJzaW9uY21kcy5oIgpAQCAtMTQ0MSw2ICsxNDQyLDE0IEBA IFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJ CQlzdG10LT5kZWZpbml0aW9uLAogCQkJCQkJCQkJCQkJCQkJJnNlY29uZGFyeU9iamVjdCk7 CiAJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQkJQXNzZXJ0 KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ0VLKHBzdGF0 ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJ CQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRl Q01LKHBzdGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIE9CSkVDVF9D T0xMQVRJT046CiAJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKIAkJCQkJCQlh ZGRyZXNzID0gRGVmaW5lQ29sbGF0aW9uKHBzdGF0ZSwKQEAgLTI3NjAsNiArMjc2OSwxMiBA QCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9D T0xMQVRJT046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MTEFUSU9OOwogCQkJCQli cmVhazsKKwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVf Q09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9D TUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVk7CisJCQkJ CWJyZWFrOwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9IENN RFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2FycmF5ZnVuY3MuYwppbmRleCBiMGMzN2VkZTg3Li41NjgzNzMxMTg4IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAgLTMzODcsNiArMzM4Nyw3IEBAIGNvbnN0 cnVjdF9hcnJheV9idWlsdGluKERhdHVtICplbGVtcywgaW50IG5lbGVtcywgT2lkIGVsbXR5 cGUpCiAJCQlicmVhazsKIAogCQljYXNlIE9JRE9JRDoKKwkJY2FzZSBSRUdDTEFTU09JRDoK IAkJY2FzZSBSRUdUWVBFT0lEOgogCQkJZWxtbGVuID0gc2l6ZW9mKE9pZCk7CiAJCQllbG1i eXZhbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFu Y2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDBk NmEyOTU2NzQuLmY2ODkzZGQ4YjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNo ZS5jCkBAIC0zNDAsNiArMzQwLDggQEAgQ29tcGxldGVDYWNoZWRQbGFuKENhY2hlZFBsYW5T b3VyY2UgKnBsYW5zb3VyY2UsCiAJCQkJICAgTWVtb3J5Q29udGV4dCBxdWVyeXRyZWVfY29u dGV4dCwKIAkJCQkgICBPaWQgKnBhcmFtX3R5cGVzLAogCQkJCSAgIGludCBudW1fcGFyYW1z LAorCQkJCSAgIE9pZCAqcGFyYW1fb3JpZ3RibHMsCisJCQkJICAgQXR0ck51bWJlciAqcGFy YW1fb3JpZ2NvbHMsCiAJCQkJICAgUGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwLAogCQkJ CSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLAogCQkJCSAgIGludCBjdXJzb3Jfb3B0aW9ucywK QEAgLTQxOSw2ICs0MjEsMTQgQEAgQ29tcGxldGVDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3Vy Y2UgKnBsYW5zb3VyY2UsCiAJewogCQlwbGFuc291cmNlLT5wYXJhbV90eXBlcyA9IChPaWQg KikgcGFsbG9jKG51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CiAJCW1lbWNweShwbGFuc291 cmNlLT5wYXJhbV90eXBlcywgcGFyYW1fdHlwZXMsIG51bV9wYXJhbXMgKiBzaXplb2YoT2lk KSk7CisKKwkJcGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMgPSAoT2lkICopIHBhbGxvYzAo bnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKwkJaWYgKHBhcmFtX29yaWd0YmxzKQorCQkJ bWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzLCBwYXJhbV9vcmlndGJscywgbnVt X3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKworCQlwbGFuc291cmNlLT5wYXJhbV9vcmlnY29s cyA9IChBdHRyTnVtYmVyICopIHBhbGxvYzAobnVtX3BhcmFtcyAqIHNpemVvZihBdHRyTnVt YmVyKSk7CisJCWlmIChwYXJhbV9vcmlnY29scykKKwkJCW1lbWNweShwbGFuc291cmNlLT5w YXJhbV9vcmlnY29scywgcGFyYW1fb3JpZ2NvbHMsIG51bV9wYXJhbXMgKiBzaXplb2YoQXR0 ck51bWJlcikpOwogCX0KIAllbHNlCiAJCXBsYW5zb3VyY2UtPnBhcmFtX3R5cGVzID0gTlVM TDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jCmluZGV4IDE5MTJiMTIxNDYuLjlh MjcxOTgwODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpAQCAtMjksNyAr MjksMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0Lmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9u LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMjY3LDYgKzI3MCwz MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJ fSwKIAkJMjU2CiAJfSwKKwl7CisJCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCAvKiBD RUtEQVRBT0lEICovCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLAorCQkxLAorCQl7 CisJCQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQl9LAorCQk4CisJfSwKKwl7CisJ CUNvbHVtbkVuY0tleVJlbGF0aW9uSWQsIC8qIENFS05BTUUgKi8KKwkJQ29sdW1uRW5jS2V5 TmFtZUluZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5X2Nla25hbWUs CisJCX0sCisJCTgKKwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgLyogQ0VL T0lEICovCisJCUNvbHVtbkVuY0tleU9pZEluZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1f cGdfY29sZW5ja2V5X29pZCwKKwkJfSwKKwkJOAorCX0sCiAJe09wZXJhdG9yQ2xhc3NSZWxh dGlvbklkLAkvKiBDTEFBTU5BTUVOU1AgKi8KIAkJT3BjbGFzc0FtTmFtZU5zcEluZGV4SWQs CiAJCTMsCkBAIC0yODksNiArMzE5LDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVk ZXNjIGNhY2hlaW5mb1tdID0gewogCQl9LAogCQk4CiAJfSwKKwl7CisJCUNvbHVtbk1hc3Rl cktleVJlbGF0aW9uSWQsIC8qIENNS05BTUUgKi8KKwkJQ29sdW1uTWFzdGVyS2V5TmFtZUlu ZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29sbWFzdGVya2V5X2Nta25hbWUsCisJ CX0sCisJCTgKKwl9LAorCXsKKwkJQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwJLyogQ01L T0lEICovCisJCUNvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsCisJCTEsCisJCXsKKwkJCUFu dW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJfSwKKwkJOAorCX0sCiAJe0NvbGxhdGlvblJl bGF0aW9uSWQsCQkvKiBDT0xMTkFNRUVOQ05TUCAqLwogCQlDb2xsYXRpb25OYW1lRW5jTnNw SW5kZXhJZCwKIAkJMywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGU0ZmRiNmI3NWIuLmE0YWI3NmM4 NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtODA3Myw2ICs4MDczLDcgQEAgZ2V0VGFibGVBdHRy cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJ aW50CQkJaV90eXBzdG9yYWdlOwogCWludAkJCWlfYXR0aWRlbnRpdHk7CiAJaW50CQkJaV9h dHRnZW5lcmF0ZWQ7CisJaW50CQkJaV9hdHRjZWtuYW1lOwogCWludAkJCWlfYXR0aXNkcm9w cGVkOwogCWludAkJCWlfYXR0bGVuOwogCWludAkJCWlfYXR0YWxpZ247CkBAIC04MTgyLDE3 ICs4MTgzLDI0IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0 YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0g MTIwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiYS5hdHRnZW5l cmF0ZWRcbiIpOworCQkJCQkJCSAiYS5hdHRnZW5lcmF0ZWQsXG4iKTsKIAllbHNlCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJICInJyBBUyBhdHRnZW5lcmF0ZWRcbiIp OworCQkJCQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVkLFxuIik7CisKKwlpZiAoZm91dC0+cmVt b3RlVmVyc2lvbiA+PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCisJCQkJ CQkJICIoU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5v aWQgPSBhLmF0dGNlayApIEFTIGF0dGNla25hbWVcbiIpOworCWVsc2UKKwkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocSwKKwkJCQkJCQkgIk5VTEwgQVMgYXR0Y2VrbmFtZVxuIik7CiAKIAkv KiBuZWVkIGxlZnQgam9pbiB0byBwZ190eXBlIHRvIG5vdCBmYWlsIG9uIGRyb3BwZWQgY29s dW1ucyAuLi4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxLAogCQkJCQkgICJGUk9NIHVubmVz dCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgogCQkJCQkgICJK T0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGEgT04gKHNyYy50YmxvaWQgPSBhLmF0dHJl bGlkKSAiCiAJCQkJCSAgIkxFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCi0JCQkJ CSAgIk9OIChhLmF0dHR5cGlkID0gdC5vaWQpXG4iCisJCQkJCSAgIk9OIChDQVNFIFdIRU4g YS5hdHRyZWFsdHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBp ZCBFTkQgPSB0Lm9pZClcbiIKIAkJCQkJICAiV0hFUkUgYS5hdHRudW0gPiAwOjpwZ19jYXRh bG9nLmludDJcbiIKIAkJCQkJICAiT1JERVIgQlkgYS5hdHRyZWxpZCwgYS5hdHRudW0iLAog CQkJCQkgIHRibG9pZHMtPmRhdGEpOwpAQCAtODIxMSw2ICs4MjE5LDcgQEAgZ2V0VGFibGVB dHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMp CiAJaV90eXBzdG9yYWdlID0gUFFmbnVtYmVyKHJlcywgInR5cHN0b3JhZ2UiKTsKIAlpX2F0 dGlkZW50aXR5ID0gUFFmbnVtYmVyKHJlcywgImF0dGlkZW50aXR5Iik7CiAJaV9hdHRnZW5l cmF0ZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0Z2VuZXJhdGVkIik7CisJaV9hdHRjZWtuYW1l ID0gUFFmbnVtYmVyKHJlcywgImF0dGNla25hbWUiKTsKIAlpX2F0dGlzZHJvcHBlZCA9IFBR Zm51bWJlcihyZXMsICJhdHRpc2Ryb3BwZWQiKTsKIAlpX2F0dGxlbiA9IFBRZm51bWJlcihy ZXMsICJhdHRsZW4iKTsKIAlpX2F0dGFsaWduID0gUFFmbnVtYmVyKHJlcywgImF0dGFsaWdu Iik7CkBAIC04MjcyLDYgKzgyODEsNyBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQs IFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJdGJpbmZvLT50eXBzdG9y YWdlID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwogCQl0 YmluZm8tPmF0dGlkZW50aXR5ID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXpl b2YoY2hhcikpOwogCQl0YmluZm8tPmF0dGdlbmVyYXRlZCA9IChjaGFyICopIHBnX21hbGxv YyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKKwkJdGJpbmZvLT5hdHRjZWtuYW1lID0gKGNo YXIgKiopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIgKikpOwogCQl0YmluZm8t PmF0dGlzZHJvcHBlZCA9IChib29sICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGJv b2wpKTsKIAkJdGJpbmZvLT5hdHRsZW4gPSAoaW50ICopIHBnX21hbGxvYyhudW1hdHRzICog c2l6ZW9mKGludCkpOwogCQl0YmluZm8tPmF0dGFsaWduID0gKGNoYXIgKikgcGdfbWFsbG9j KG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwpAQCAtODMwMCw2ICs4MzEwLDEwIEBAIGdldFRh YmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFi bGVzKQogCQkJdGJpbmZvLT5hdHRpZGVudGl0eVtqXSA9ICooUFFnZXR2YWx1ZShyZXMsIHIs IGlfYXR0aWRlbnRpdHkpKTsKIAkJCXRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID0gKihQUWdl dHZhbHVlKHJlcywgciwgaV9hdHRnZW5lcmF0ZWQpKTsKIAkJCXRiaW5mby0+bmVlZHNfb3Zl cnJpZGUgPSB0YmluZm8tPm5lZWRzX292ZXJyaWRlIHx8ICh0YmluZm8tPmF0dGlkZW50aXR5 W2pdID09IEFUVFJJQlVURV9JREVOVElUWV9BTFdBWVMpOworCQkJaWYgKCFQUWdldGlzbnVs bChyZXMsIHIsIGlfYXR0Y2VrbmFtZSkpCisJCQkJdGJpbmZvLT5hdHRjZWtuYW1lW2pdID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGNla25hbWUpKTsKKwkJCWVsc2UK KwkJCQl0YmluZm8tPmF0dGNla25hbWVbal0gPSBOVUxMOwogCQkJdGJpbmZvLT5hdHRpc2Ry b3BwZWRbal0gPSAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0aXNkcm9wcGVkKVswXSA9PSAn dCcpOwogCQkJdGJpbmZvLT5hdHRsZW5bal0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCByLCBp X2F0dGxlbikpOwogCQkJdGJpbmZvLT5hdHRhbGlnbltqXSA9ICooUFFnZXR2YWx1ZShyZXMs IHIsIGlfYXR0YWxpZ24pKTsKQEAgLTE1MjY3LDYgKzE1MjgxLDEyIEBAIGR1bXBUYWJsZVNj aGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkJ CQkgIHRiaW5mby0+YXR0dHlwbmFtZXNbal0pOwogCQkJCQl9CiAKKwkJCQkJaWYgKHRiaW5m by0+YXR0Y2VrbmFtZVtqXSkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwg IiBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gJXMpIiwKKwkJCQkJ CQkJCQkgIGZtdElkKHRiaW5mby0+YXR0Y2VrbmFtZVtqXSkpOworCQkJCQl9CisKIAkJCQkJ aWYgKHByaW50X2RlZmF1bHQpCiAJCQkJCXsKIAkJCQkJCWlmICh0YmluZm8tPmF0dGdlbmVy YXRlZFtqXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmlu ZGV4IDFkMjFjMjkwNmYuLjJjMTc2ZWQxM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtMzMzLDYg KzMzMyw3IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29sCSAgICphdHRpc2Ry b3BwZWQ7CS8qIHRydWUgaWYgYXR0ciBpcyBkcm9wcGVkOyBkb24ndCBkdW1wIGl0ICovCiAJ Y2hhcgkgICAqYXR0aWRlbnRpdHk7CiAJY2hhcgkgICAqYXR0Z2VuZXJhdGVkOworCWNoYXIJ ICAqKmF0dGNla25hbWU7CiAJaW50CQkgICAqYXR0bGVuOwkJCS8qIGF0dHJpYnV0ZSBsZW5n dGgsIHVzZWQgYnkgYmluYXJ5X3VwZ3JhZGUgKi8KIAljaGFyCSAgICphdHRhbGlnbjsJCS8q IGF0dHJpYnV0ZSBhbGlnbiwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAqLwogCWJvb2wJICAg KmF0dGlzbG9jYWw7CQkvKiB0cnVlIGlmIGF0dHIgaGFzIGxvY2FsIGRlZmluaXRpb24gKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29t bWFuZC5jCmluZGV4IDA5NTUxNDIyMTUuLjY2Mzc4OGVmNjQgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtOTgs NiArOTgsNyBAQCBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IHByb2Nlc3NfY29tbWFuZF9nX29w dGlvbnMoY2hhciAqZmlyc3Rfb3B0aW9uLAogCQkJCQkJCQkJCQkJIGJvb2wgYWN0aXZlX2Jy YW5jaCwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpjbWQpOwogc3RhdGljIGJhY2tzbGFz aFJlc3VsdCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBi b29sIGFjdGl2ZV9icmFuY2gpOworc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1h bmRfZ2VuY3IoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gp Owogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2V0ZW52KFBzcWxTY2Fu U3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAogCQkJCQkJCQkJCSAgIGNv bnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9n ZXhlYyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CkBA IC0zNTAsNiArMzUxLDggQEAgZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAkJc3Rh dHVzID0gZXhlY19jb21tYW5kX2coc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCwgY21kKTsK IAllbHNlIGlmIChzdHJjbXAoY21kLCAiZ2Rlc2MiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVj X2NvbW1hbmRfZ2Rlc2Moc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCk7CisJZWxzZSBpZiAo c3RyY21wKGNtZCwgImdlbmNyIikgPT0gMCkKKwkJc3RhdHVzID0gZXhlY19jb21tYW5kX2dl bmNyKHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQs ICJnZXRlbnYiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfZ2V0ZW52KHNjYW5f c3RhdGUsIGFjdGl2ZV9icmFuY2gsIGNtZCk7CiAJZWxzZSBpZiAoc3RyY21wKGNtZCwgImdl eGVjIikgPT0gMCkKQEAgLTE0OTIsNiArMTQ5NSwzNCBAQCBleGVjX2NvbW1hbmRfZ2Rlc2Mo UHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpCiAJcmV0dXJu IHN0YXR1czsKIH0KIAorLyoKKyAqIFxnZW5jciAtLSBzZW5kIHF1ZXJ5LCB3aXRoIHN1cHBv cnQgZm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uCisgKi8KK3N0YXRpYyBiYWNrc2xhc2hSZXN1 bHQKK2V4ZWNfY29tbWFuZF9nZW5jcihQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wg YWN0aXZlX2JyYW5jaCkKK3sKKwliYWNrc2xhc2hSZXN1bHQgc3RhdHVzID0gUFNRTF9DTURf U0tJUF9MSU5FOworCWNoYXIJICAgKmFwOworCisJcHNldC5udW1fcGFyYW1zID0gMDsKKwlw c2V0LnBhcmFtcyA9IE5VTEw7CisJd2hpbGUgKChhcCA9IHBzcWxfc2Nhbl9zbGFzaF9vcHRp b24oc2Nhbl9zdGF0ZSwKKwkJCQkJCQkJCQlPVF9OT1JNQUwsIE5VTEwsIHRydWUpKSAhPSBO VUxMKQorCXsKKwkJcHNldC5udW1fcGFyYW1zKys7CisJCXBzZXQucGFyYW1zID0gcGdfcmVh bGxvYyhwc2V0LnBhcmFtcywgcHNldC5udW1fcGFyYW1zICogc2l6ZW9mKGNoYXIgKikpOwor CQlwc2V0LnBhcmFtc1twc2V0Lm51bV9wYXJhbXMgLSAxXSA9IGFwOworCX0KKworCWlmIChh Y3RpdmVfYnJhbmNoKQorCXsKKwkJcHNldC5nZW5jcl9mbGFnID0gdHJ1ZTsKKwkJc3RhdHVz ID0gUFNRTF9DTURfU0VORDsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCiAvKgogICog XGdldGVudiAtLSBzZXQgdmFyaWFibGUgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZQogICov CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMvYmluL3BzcWwvY29t bW9uLmMKaW5kZXggOWY5NTg2OWVjYS4uOGZlMDU1ZmZlZCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tb24uYwpAQCAtMTI4NCw2 ICsxMjg0LDE0IEBAIFNlbmRRdWVyeShjb25zdCBjaGFyICpxdWVyeSkKIAkvKiByZXNldCBc Z2Rlc2MgdHJpZ2dlciAqLwogCXBzZXQuZ2Rlc2NfZmxhZyA9IGZhbHNlOwogCisJLyogcmVz ZXQgXGdlbmNyIHRyaWdnZXIgKi8KKwlwc2V0LmdlbmNyX2ZsYWcgPSBmYWxzZTsKKwlmb3Ig KGludCBpID0gMDsgaSA8IHBzZXQubnVtX3BhcmFtczsgaSsrKQorCQlwZ19mcmVlKHBzZXQu cGFyYW1zW2ldKTsKKwlwZ19mcmVlKHBzZXQucGFyYW1zKTsKKwlwc2V0LnBhcmFtcyA9IE5V TEw7CisJcHNldC5udW1fcGFyYW1zID0gMDsKKwogCS8qIHJlc2V0IFxnZXhlYyB0cmlnZ2Vy ICovCiAJcHNldC5nZXhlY19mbGFnID0gZmFsc2U7CiAKQEAgLTE0NDgsNyArMTQ1NiwzNiBA QCBFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwgZG91Ymxl ICplbGFwc2VkX21zZWMsIGJvb2wgKnN2cHRfZwogCWlmICh0aW1pbmcpCiAJCUlOU1RSX1RJ TUVfU0VUX0NVUlJFTlQoYmVmb3JlKTsKIAotCXN1Y2Nlc3MgPSBQUXNlbmRRdWVyeShwc2V0 LmRiLCBxdWVyeSk7CisJaWYgKHBzZXQuZ2VuY3JfZmxhZykKKwl7CisJCVBHcmVzdWx0ICAg KnJlczEsCisJCQkJICAgKnJlczI7CisKKwkJcmVzMSA9IFBRcHJlcGFyZShwc2V0LmRiLCAi IiwgcXVlcnksIHBzZXQubnVtX3BhcmFtcywgTlVMTCk7CisJCWlmIChQUXJlc3VsdFN0YXR1 cyhyZXMxKSAhPSBQR1JFU19DT01NQU5EX09LKQorCQl7CisJCQlwZ19sb2dfaW5mbygiJXMi LCBQUWVycm9yTWVzc2FnZShwc2V0LmRiKSk7CisJCQlDbGVhck9yU2F2ZVJlc3VsdChyZXMx KTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlQUWNsZWFyKHJlczEpOworCisJCXJlczIgPSBQ UWRlc2NyaWJlUHJlcGFyZWQocHNldC5kYiwgIiIpOworCQlpZiAoUFFyZXN1bHRTdGF0dXMo cmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJeworCQkJcGdfbG9nX2luZm8oIiVzIiwg UFFlcnJvck1lc3NhZ2UocHNldC5kYikpOworCQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzMik7 CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQlzdWNjZXNzID0gUFFzZW5kUXVlcnlQcmVwYXJl ZDIocHNldC5kYiwgIiIsIHBzZXQubnVtX3BhcmFtcywgKGNvbnN0IGNoYXIgKmNvbnN0ICop IHBzZXQucGFyYW1zLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCByZXMyKTsKKworCQlQUWNsZWFy KHJlczIpOworCX0KKwllbHNlCisJeworCQlzdWNjZXNzID0gUFFzZW5kUXVlcnkocHNldC5k YiwgcXVlcnkpOworCX0KIAogCWlmICghc3VjY2VzcykKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDg4 ZDkyYTA4YWUuLmZlODE1NDdiMjkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xNDk4LDcgKzE0OTgsNyBA QCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWJv b2wJCXByaW50VGFibGVJbml0aWFsaXplZCA9IGZhbHNlOwogCWludAkJCWk7CiAJY2hhcgkg ICAqdmlld19kZWYgPSBOVUxMOwotCWNoYXIJICAgKmhlYWRlcnNbMTJdOworCWNoYXIJICAg KmhlYWRlcnNbMTNdOwogCVBRRXhwQnVmZmVyRGF0YSB0aXRsZTsKIAlQUUV4cEJ1ZmZlckRh dGEgdG1wYnVmOwogCWludAkJCWNvbHM7CkBAIC0xNTE0LDYgKzE1MTQsNyBAQCBkZXNjcmli ZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCWZkd29wdHNf Y29sID0gLTEsCiAJCQkJYXR0c3RvcmFnZV9jb2wgPSAtMSwKIAkJCQlhdHRjb21wcmVzc2lv bl9jb2wgPSAtMSwKKwkJCQlhdHRjZWtuYW1lX2NvbCA9IC0xLAogCQkJCWF0dHN0YXR0YXJn ZXRfY29sID0gLTEsCiAJCQkJYXR0ZGVzY3JfY29sID0gLTE7CiAJaW50CQkJbnVtcm93czsK QEAgLTE4MTIsNyArMTgxMyw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJY29scyA9IDA7CiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1Ziwg IlNFTEVDVCBhLmF0dG5hbWUiKTsKIAlhdHRuYW1lX2NvbCA9IGNvbHMrKzsKLQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKGEuYXR0 dHlwaWQsIGEuYXR0dHlwbW9kKSIpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoQ0FTRSBXSEVOIGEuYXR0cmVhbHR5cGlkIDw+ IDAgVEhFTiBhLmF0dHJlYWx0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5ELCBhLmF0dHR5cG1v ZCkiKTsKIAlhdHR0eXBlX2NvbCA9IGNvbHMrKzsKIAogCWlmIChzaG93X2NvbHVtbl9kZXRh aWxzKQpAQCAtMTgyNiw3ICsxODI3LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJYXR0cmRlZl9jb2wgPSBjb2xzKys7CiAJCWF0dG5v dG51bGxfY29sID0gY29scysrOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxu ICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgdFxuIgotCQkJCQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0 dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5cGlkIEFORCBhLmF0dGNvbGxhdGlvbiA8 PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CisJCQkJCQkJICIgICBXSEVS RSBjLm9pZCA9IGEuYXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IChDQVNFIFdIRU4gYS5hdHRy ZWFsdHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQp IEFORCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9u Iik7CiAJCWF0dGNvbGxfY29sID0gY29scysrOwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx MDAwMDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGlkZW50 aXR5Iik7CkBAIC0xODc3LDYgKzE4NzgsMTUgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMo Y29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IGNvbHMr KzsKIAkJfQogCisJCS8qIGVuY3J5cHRpb24gaW5mbyAqLworCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNjAwMDAgJiYKKwkJCSFwc2V0LmhpZGVfY29sdW1uX2VuY3J5cHRpb24gJiYKKwkJ CSh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OKSkKKwkJeworCQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgKFNFTEVDVCBjZWtuYW1lIEZST00gcGdf Y29sZW5ja2V5IGNlayBXSEVSRSBjZWsub2lkID0gYS5hdHRjZWspIEFTIGF0dGNla25hbWUi KTsKKwkJCWF0dGNla25hbWVfY29sID0gY29scysrOworCQl9CisKIAkJLyogc3RhdHMgdGFy Z2V0LCBpZiByZWxldmFudCB0byByZWxraW5kICovCiAJCWlmICh0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CiAJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxL SU5EX0lOREVYIHx8CkBAIC0yMDAwLDYgKzIwMTAsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIlN0b3JhZ2UiKTsKIAlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCiAJ CWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiQ29tcHJlc3Npb24iKTsKKwlpZiAo YXR0Y2VrbmFtZV9jb2wgPj0gMCkKKwkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29w KCJFbmNyeXB0aW9uIik7CiAJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDApCiAJCWhlYWRl cnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3RhdHMgdGFyZ2V0Iik7CiAJaWYgKGF0dGRl c2NyX2NvbCA+PSAwKQpAQCAtMjA5Miw2ICsyMTA0LDE3IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJICBmYWxzZSwgZmFsc2Up OwogCQl9CiAKKwkJLyogQ29sdW1uIGVuY3J5cHRpb24gKi8KKwkJaWYgKGF0dGNla25hbWVf Y29sID49IDApCisJCXsKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBhdHRjZWtuYW1l X2NvbCkpCisJCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBp LCBhdHRjZWtuYW1lX2NvbCksCisJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKKwkJCWVsc2UK KwkJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgIiIsCisJCQkJCQkJCSAgZmFsc2UsIGZh bHNlKTsKKwkJfQorCiAJCS8qIFN0YXRpc3RpY3MgdGFyZ2V0LCBpZiB0aGUgcmVsa2luZCBz dXBwb3J0cyB0aGlzIGZlYXR1cmUgKi8KIAkJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDAp CiAJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dHN0 YXR0YXJnZXRfY29sKSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMv YmluL3BzcWwvaGVscC5jCmluZGV4IGY4Y2UxYTA3MDYuLjlmNGZjZTI2ZmQgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAt MTk1LDYgKzE5NSw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQog CUhFTFAwKCIgIFxcZyBbKE9QVElPTlMpXSBbRklMRV0gIGV4ZWN1dGUgcXVlcnkgKGFuZCBz ZW5kIHJlc3VsdCB0byBmaWxlIG9yIHxwaXBlKTtcbiIKIAkJICAiICAgICAgICAgICAgICAg ICAgICAgICAgIFxcZyB3aXRoIG5vIGFyZ3VtZW50cyBpcyBlcXVpdmFsZW50IHRvIGEgc2Vt aWNvbG9uXG4iKTsKIAlIRUxQMCgiICBcXGdkZXNjICAgICAgICAgICAgICAgICBkZXNjcmli ZSByZXN1bHQgb2YgcXVlcnksIHdpdGhvdXQgZXhlY3V0aW5nIGl0XG4iKTsKKwlIRUxQMCgi ICBcXGdlbmNyIFtQQVJBTV0uLi4gICAgICBleGVjdXRlIHF1ZXJ5LCB3aXRoIHN1cHBvcnQg Zm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uXG4iKTsKIAlIRUxQMCgiICBcXGdleGVjICAgICAg ICAgICAgICAgICBleGVjdXRlIHF1ZXJ5LCB0aGVuIGV4ZWN1dGUgZWFjaCB2YWx1ZSBpbiBp dHMgcmVzdWx0XG4iKTsKIAlIRUxQMCgiICBcXGdzZXQgW1BSRUZJWF0gICAgICAgICBleGVj dXRlIHF1ZXJ5IGFuZCBzdG9yZSByZXN1bHQgaW4gcHNxbCB2YXJpYWJsZXNcbiIpOwogCUhF TFAwKCIgIFxcZ3ggWyhPUFRJT05TKV0gW0ZJTEVdIGFzIFxcZywgYnV0IGZvcmNlcyBleHBh bmRlZCBvdXRwdXQgbW9kZVxuIik7CkBAIC00MTIsNiArNDEzLDggQEAgaGVscFZhcmlhYmxl cyh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJCSAgIiAgICB0cnVlIGlmIGxhc3QgcXVl cnkgZmFpbGVkLCBlbHNlIGZhbHNlXG4iKTsKIAlIRUxQMCgiICBGRVRDSF9DT1VOVFxuIgog CQkgICIgICAgdGhlIG51bWJlciBvZiByZXN1bHQgcm93cyB0byBmZXRjaCBhbmQgZGlzcGxh eSBhdCBhIHRpbWUgKDAgPSB1bmxpbWl0ZWQpXG4iKTsKKwlIRUxQMCgiICBISURFX0NPTFVN Tl9FTkNSWVBUSU9OXG4iCisJCSAgIiAgICBpZiBzZXQsIGNvbHVtbiBlbmNyeXB0aW9uIGRl dGFpbHMgYXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVEFCTEVBTVxu IgogCQkgICIgICAgaWYgc2V0LCB0YWJsZSBhY2Nlc3MgbWV0aG9kcyBhcmUgbm90IGRpc3Bs YXllZFxuIik7CiAJSEVMUDAoIiAgSElERV9UT0FTVF9DT01QUkVTU0lPTlxuIgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggYi9zcmMvYmluL3BzcWwvc2V0dGluZ3Mu aAppbmRleCAyMzk5Y2ZmYTNmLi42MzY3MjlkZjFkIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvc2V0dGluZ3MuaAorKysgYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaApAQCAtOTUsNiAr OTUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX3BzcWxTZXR0aW5ncwogCiAJY2hhcgkgICAqZ3Nl dF9wcmVmaXg7CS8qIG9uZS1zaG90IHByZWZpeCBhcmd1bWVudCBmb3IgXGdzZXQgKi8KIAli b29sCQlnZGVzY19mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0byBkZXNjcmliZSBxdWVy eSByZXN1bHQgKi8KKwlib29sCQlnZW5jcl9mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0 byBzZW5kIHF1ZXJ5IHdpdGggc3VwcG9ydAorCQkJCQkJCQkgKiBmb3IgcGFyYW1ldGVyIGVu Y3J5cHRpb24gKi8KKwlpbnQJCQludW1fcGFyYW1zOwkJLyogbnVtYmVyIG9mIHF1ZXJ5IHBh cmFtZXRlcnMgKi8KKwljaGFyCSAgKipwYXJhbXM7CQkJLyogcXVlcnkgcGFyYW1ldGVycyAq LwogCWJvb2wJCWdleGVjX2ZsYWc7CQkvKiBvbmUtc2hvdCByZXF1ZXN0IHRvIGV4ZWN1dGUg cXVlcnkgcmVzdWx0ICovCiAJYm9vbAkJY3Jvc3N0YWJfZmxhZzsJLyogb25lLXNob3QgcmVx dWVzdCB0byBjcm9zc3RhYiByZXN1bHQgKi8KIAljaGFyCSAgICpjdHZfYXJnc1s0XTsJLyog XGNyb3NzdGFidmlldyBhcmd1bWVudHMgKi8KQEAgLTEzNCw2ICsxMzgsNyBAQCB0eXBlZGVm IHN0cnVjdCBfcHNxbFNldHRpbmdzCiAJYm9vbAkJcXVpZXQ7CiAJYm9vbAkJc2luZ2xlbGlu ZTsKIAlib29sCQlzaW5nbGVzdGVwOworCWJvb2wJCWhpZGVfY29sdW1uX2VuY3J5cHRpb247 CiAJYm9vbAkJaGlkZV9jb21wcmVzc2lvbjsKIAlib29sCQloaWRlX3RhYmxlYW07CiAJaW50 CQkJZmV0Y2hfY291bnQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIv c3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwppbmRleCA3YzJmNTU1ZjE1Li5jOTU1MjIyYTUwIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCisrKyBiL3NyYy9iaW4vcHNxbC9z dGFydHVwLmMKQEAgLTExODgsNiArMTE4OCwxMyBAQCBoaWRlX2NvbXByZXNzaW9uX2hvb2so Y29uc3QgY2hhciAqbmV3dmFsKQogCQkJCQkJCSAmcHNldC5oaWRlX2NvbXByZXNzaW9uKTsK IH0KIAorc3RhdGljIGJvb2wKK2hpZGVfY29sdW1uX2VuY3J5cHRpb25faG9vayhjb25zdCBj aGFyICpuZXd2YWwpCit7CisJcmV0dXJuIFBhcnNlVmFyaWFibGVCb29sKG5ld3ZhbCwgIkhJ REVfQ09MVU1OX0VOQ1JZUFRJT04iLAorCQkJCQkJCSAmcHNldC5oaWRlX2NvbHVtbl9lbmNy eXB0aW9uKTsKK30KKwogc3RhdGljIGJvb2wKIGhpZGVfdGFibGVhbV9ob29rKGNvbnN0IGNo YXIgKm5ld3ZhbCkKIHsKQEAgLTEyNTksNiArMTI2Niw5IEBAIEVzdGFibGlzaFZhcmlhYmxl U3BhY2Uodm9pZCkKIAlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywgIlNIT1dfQ09OVEVY VCIsCiAJCQkJCSBzaG93X2NvbnRleHRfc3Vic3RpdHV0ZV9ob29rLAogCQkJCQkgc2hvd19j b250ZXh0X2hvb2spOworCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiSElERV9DT0xV TU5fRU5DUllQVElPTiIsCisJCQkJCSBib29sX3N1YnN0aXR1dGVfaG9vaywKKwkJCQkJIGhp ZGVfY29sdW1uX2VuY3J5cHRpb25faG9vayk7CiAJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZh cnMsICJISURFX1RPQVNUX0NPTVBSRVNTSU9OIiwKIAkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9o b29rLAogCQkJCQkgaGlkZV9jb21wcmVzc2lvbl9ob29rKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpp bmRleCBlNTcyZjU4NWVmLi4wMmU4YTM1MTJiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0x NjkyLDcgKzE2OTIsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50 IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxp ZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9z ZSIsICJcXGV2IiwKIAkJIlxcZiIsCi0JCSJcXGciLCAiXFxnZGVzYyIsICJcXGdldGVudiIs ICJcXGdleGVjIiwgIlxcZ3NldCIsICJcXGd4IiwKKwkJIlxcZyIsICJcXGdkZXNjIiwgIlxc Z2VuY3IiLCAiXFxnZXRlbnYiLCAiXFxnZXhlYyIsICJcXGdzZXQiLCAiXFxneCIsCiAJCSJc XGhlbHAiLCAiXFxodG1sIiwKIAkJIlxcaWYiLCAiXFxpbmNsdWRlIiwgIlxcaW5jbHVkZV9y ZWxhdGl2ZSIsICJcXGlyIiwKIAkJIlxcbGlzdCIsICJcXGxvX2ltcG9ydCIsICJcXGxvX2V4 cG9ydCIsICJcXGxvX2xpc3QiLCAiXFxsb191bmxpbmsiLApkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmls ZQppbmRleCBiNWZkNzJhNGFjLi41YTA2NWViODBiIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9NYWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmls ZQpAQCAtNTQsNiArNTQsNyBAQCBlbmRpZgogCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3Ns KQogT0JKUyArPSBcCisJZmUtZW5jcnlwdC1vcGVuc3NsLm8gXAogCWZlLXNlY3VyZS1vcGVu c3NsLm8KIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9y dHMudHh0IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKaW5kZXggZThiY2M4 ODM3MC4uZmFiYWQzOGFjMCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhw b3J0cy50eHQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKQEAgLTE4 NiwzICsxODYsNyBAQCBQUXBpcGVsaW5lU3RhdHVzICAgICAgICAgIDE4MwogUFFzZXRUcmFj ZUZsYWdzICAgICAgICAgICAxODQKIFBRbWJsZW5Cb3VuZGVkICAgICAgICAgICAgMTg1CiBQ UXNlbmRGbHVzaFJlcXVlc3QgICAgICAgIDE4NgorUFFleGVjUHJlcGFyZWQyICAgICAgICAg ICAxODcKK1BRc2VuZFF1ZXJ5UHJlcGFyZWQyICAgICAgMTg4CitQUWZpc2VuY3J5cHRlZCAg ICAgICAgICAgIDE4OQorUFFwYXJhbWlzZW5jcnlwdGVkICAgICAgICAxOTAKZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWNvbm5lY3QuYwppbmRleCBkYzQ5Mzg3ZDZjLi5mM2MxNWVjZTRkIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCkBAIC0zNDQsNiArMzQ0LDEwIEBAIHN0YXRp YyBjb25zdCBpbnRlcm5hbFBRY29ubmluZm9PcHRpb24gUFFjb25uaW5mb09wdGlvbnNbXSA9 IHsKIAkJIlRhcmdldC1TZXNzaW9uLUF0dHJzIiwgIiIsIDE1LCAvKiBzaXplb2YoInByZWZl ci1zdGFuZGJ5IikgPSAxNSAqLwogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCB0YXJnZXRf c2Vzc2lvbl9hdHRycyl9LAogCisJeyJjbWtsb29rdXAiLCAiUEdDTUtMT09LVVAiLCAiIiwg TlVMTCwKKwkJIkNNSy1Mb29rdXAiLCAiIiwgNjQsCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nv bm4sIGNta2xvb2t1cCl9LAorCiAJLyogVGVybWluYXRpbmcgZW50cnkgLS0tIE1VU1QgQkUg TEFTVCAqLwogCXtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLAogCU5VTEwsIE5VTEwsIDB9CkBA IC00MDk3LDYgKzQxMDEsMjIgQEAgZnJlZVBHY29ubihQR2Nvbm4gKmNvbm4pCiAJZnJlZShj b25uLT5rcmJzcnZuYW1lKTsKIAlmcmVlKGNvbm4tPmdzc2xpYik7CiAJZnJlZShjb25uLT5j b25uaXApOworCWZyZWUoY29ubi0+Y21rbG9va3VwKTsKKwlmb3IgKGludCBpID0gMDsgaSA8 IGNvbm4tPm5jbWtzOyBpKyspCisJeworCQlmcmVlKGNvbm4tPmNta3NbaV0uY21rbmFtZSk7 CisJCWZyZWUoY29ubi0+Y21rc1tpXS5jbWtyZWFsbSk7CisJfQorCWZyZWUoY29ubi0+Y21r cyk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY2VrczsgaSsrKQorCXsKKwkJaWYg KGNvbm4tPmNla3NbaV0uY2VrZGF0YSkKKwkJeworCQkJZXhwbGljaXRfYnplcm8oY29ubi0+ Y2Vrc1tpXS5jZWtkYXRhLCBjb25uLT5jZWtzW2ldLmNla2RhdGFsZW4pOworCQkJZnJlZShj b25uLT5jZWtzW2ldLmNla2RhdGEpOworCQl9CisJfQorCWZyZWUoY29ubi0+Y2Vrcyk7CiAJ LyogTm90ZSB0aGF0IGNvbm4tPlBmZGVidWcgaXMgbm90IG91cnMgdG8gY2xvc2Ugb3IgZnJl ZSAqLwogCWZyZWUoY29ubi0+d3JpdGVfZXJyX21zZyk7CiAJZnJlZShjb25uLT5pbkJ1ZmZl cik7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5z c2wuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUyNGJhOGEwZjkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwpA QCAtMCwwICsxLDc1OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZmUtZW5j cnlwdC1vcGVuc3NsLmMKKyAqCSAgZW5jcnlwdGlvbiBzdXBwb3J0IHVzaW5nIE9wZW5TU0wK KyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNy eXB0LW9wZW5zc2wuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNs dWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAiZmUtZW5jcnlwdC5oIgorI2luY2x1 ZGUgImxpYnBxLWludC5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIK KyNpbmNsdWRlICJwb3J0L3BnX2Jzd2FwLmgiCisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5o PgorCisKKyNpZmRlZiBURVNUX0VOQ1JZUFQKKworLyoKKyAqIFRlc3QgZGF0YSBmcm9tCisg KiA8aHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXct YWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSNzZWN0aW9uLTU+CisgKi8KKworLyoKKyAqIFRo ZSBkaWZmZXJlbnQgdGVzdCBjYXNlcyBqdXN0IHVzZSBkaWZmZXJlbnQgcHJlZml4ZXMgb2Yg Sywgc28gb25lIGNvbnN0YW50CisgKiBpcyBlbm91Z2ggaGVyZS4KKyAqLworc3RhdGljIGNv bnN0IHVuc2lnbmVkIGNoYXIgS1tdID0geworCTB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4 MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsIDB4 MGQsIDB4MGUsIDB4MGYsCisJMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwg MHgxNiwgMHgxNywgMHgxOCwgMHgxOSwgMHgxYSwgMHgxYiwgMHgxYywgMHgxZCwgMHgxZSwg MHgxZiwKKwkweDIwLCAweDIxLCAweDIyLCAweDIzLCAweDI0LCAweDI1LCAweDI2LCAweDI3 LCAweDI4LCAweDI5LCAweDJhLCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAorCTB4 MzAsIDB4MzEsIDB4MzIsIDB4MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsIDB4MzgsIDB4 MzksIDB4M2EsIDB4M2IsIDB4M2MsIDB4M2QsIDB4M2UsIDB4M2YsCit9OworCitzdGF0aWMg Y29uc3QgdW5zaWduZWQgY2hhciBQW10gPSB7CisJMHg0MSwgMHgyMCwgMHg2MywgMHg2OSwg MHg3MCwgMHg2OCwgMHg2NSwgMHg3MiwgMHgyMCwgMHg3MywgMHg3OSwgMHg3MywgMHg3NCwg MHg2NSwgMHg2ZCwgMHgyMCwKKwkweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDZl LCAweDZmLCAweDc0LCAweDIwLCAweDYyLCAweDY1LCAweDIwLCAweDcyLCAweDY1LCAweDcx LCAweDc1LAorCTB4NjksIDB4NzIsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4 MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsCisJ MHg3NCwgMHgyYywgMHgyMCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg2OSwgMHg3NCwg MHgyMCwgMHg2ZCwgMHg3NSwgMHg3MywgMHg3NCwgMHgyMCwgMHg2MiwKKwkweDY1LCAweDIw LCAweDYxLCAweDYyLCAweDZjLCAweDY1LCAweDIwLCAweDc0LCAweDZmLCAweDIwLCAweDY2 LCAweDYxLCAweDZjLCAweDZjLCAweDIwLCAweDY5LAorCTB4NmUsIDB4NzQsIDB4NmYsIDB4 MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjgsIDB4NjEsIDB4NmUsIDB4NjQsIDB4 NzMsIDB4MjAsIDB4NmYsIDB4NjYsCisJMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwg MHg2NSwgMHg2ZSwgMHg2NSwgMHg2ZCwgMHg3OSwgMHgyMCwgMHg3NywgMHg2OSwgMHg3NCwg MHg2OCwgMHg2ZiwKKwkweDc1LCAweDc0LCAweDIwLCAweDY5LCAweDZlLCAweDYzLCAweDZm LCAweDZlLCAweDc2LCAweDY1LCAweDZlLCAweDY5LCAweDY1LCAweDZlLCAweDYzLCAweDY1 LAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9JVltdID0geworCTB4 MWEsIDB4ZjMsIDB4OGMsIDB4MmQsIDB4YzIsIDB4YjksIDB4NmYsIDB4ZmQsIDB4ZDgsIDB4 NjYsIDB4OTQsIDB4MDksIDB4MjMsIDB4NDEsIDB4YmMsIDB4MDQsCit9OworCitzdGF0aWMg Y29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0FbXSA9IHsKKwkweDU0LCAweDY4LCAweDY1LCAw eDIwLCAweDczLCAweDY1LCAweDYzLCAweDZmLCAweDZlLCAweDY0LCAweDIwLCAweDcwLCAw eDcyLCAweDY5LCAweDZlLCAweDYzLAorCTB4NjksIDB4NzAsIDB4NmMsIDB4NjUsIDB4MjAs IDB4NmYsIDB4NjYsIDB4MjAsIDB4NDEsIDB4NzUsIDB4NjcsIDB4NzUsIDB4NzMsIDB4NzQs IDB4NjUsIDB4MjAsCisJMHg0YiwgMHg2NSwgMHg3MiwgMHg2MywgMHg2YiwgMHg2OCwgMHg2 ZiwgMHg2NiwgMHg2NiwgMHg3MywKK307CisKKworI2RlZmluZSBsaWJwcV9nZXR0ZXh0KHgp ICh4KQorCisjZW5kaWYJCQkJCQkJLyogVEVTVF9FTkNSWVBUICovCisKKwordW5zaWduZWQg Y2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBGSUxFICpmcCwg aW50IGNta2FsZywKKwkJCQkJICBpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAq ZnJvbSwKKwkJCQkJICBpbnQgKnRvbGVuKQoreworCWNvbnN0IEVWUF9NRCAqbWQgPSBOVUxM OworCUVWUF9QS0VZICAgKmtleSA9IE5VTEw7CisJUlNBCQkgICAqcnNhID0gTlVMTDsKKwlF VlBfUEtFWV9DVFggKmN0eCA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqb3V0ID0gTlVMTDsK KwlzaXplX3QJCW91dGxlbjsKKworCXN3aXRjaCAoY21rYWxnKQorCXsKKwkJY2FzZSBQR19D TUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCW1kID0gRVZQX3NoYTEoKTsKKwkJCWJyZWFrOwor CQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY6CisJCQltZCA9IEVWUF9zaGEyNTYo KTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCQkgIGxpYnBxX2dldHRleHQoInVuc3VwcG9ydGVkIENN SyBhbGdvcml0aG0gSUQ6ICVkXG4iKSwgY21rYWxnKTsKKwkJCWdvdG8gZmFpbDsKKwl9CisK Kwlyc2EgPSBSU0FfbmV3KCk7CisJaWYgKCFyc2EpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBu b3QgYWxsb2NhdGUgUlNBIHN0cnVjdHVyZTogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29u X2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwly c2EgPSBQRU1fcmVhZF9SU0FQcml2YXRlS2V5KGZwLCAmcnNhLCBOVUxMLCBOVUxMKTsKKwlp ZiAoIXJzYSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2Us CisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCByZWFkIFJTQSBwcml2YXRlIGtl eTogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vy cm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWtleSA9IEVWUF9QS0VZX25ldygpOwor CWlmICgha2V5KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IGFsbG9jYXRlIHByaXZhdGUg a2V5IHN0cnVjdHVyZTogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX1BL RVlfYXNzaWduX1JTQShrZXksIHJzYSkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29u bi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYXNz aWduIHByaXZhdGUga2V5OiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJY3R4ID0gRVZQ X1BLRVlfQ1RYX25ldyhrZXksIE5VTEwpOworCWlmICghY3R4KQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgi Y291bGQgbm90IGFsbG9jYXRlIHB1YmxpYyBrZXkgYWxnb3JpdGhtIGNvbnRleHQ6ICVzXG4i KSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfZGVjcnlwdF9pbml0KGN0eCkg PD0gMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJ CQkJCQkgIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVk OiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJy b3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZX0NUWF9zZXRfcnNh X3BhZGRpbmcoY3R4LCBSU0FfUEtDUzFfT0FFUF9QQURESU5HKSA8PSAwIHx8CisJCUVWUF9Q S0VZX0NUWF9zZXRfcnNhX21nZjFfbWQoY3R4LCBtZCkgPD0gMCB8fAorCQlFVlBfUEtFWV9D VFhfc2V0X3JzYV9vYWVwX21kKGN0eCwgbWQpIDw9IDApCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3Vs ZCBub3Qgc2V0IFJTQSBwYXJhbWV0ZXI6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9l cnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlp ZiAoRVZQX1BLRVlfZGVjcnlwdChjdHgsIE5VTEwsICZvdXRsZW4sIGZyb20sIGZyb21sZW4p IDw9IDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAor CQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJSU0EgZGVjcnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwK KwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlvdXQgPSBtYWxsb2Mob3V0bGVuKTsKKwlpZiAoIW91dCkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnlcbiIpKTsKKwkJZ290byBmYWlsOworCX0K KworCWlmIChFVlBfUEtFWV9kZWNyeXB0KGN0eCwgb3V0LCAmb3V0bGVuLCBmcm9tLCBmcm9t bGVuKSA8PSAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiUlNBIGRlY3J5cHRpb24gZmFpbGVkOiAlc1xu IiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkp OworCQlmcmVlKG91dCk7CisJCW91dCA9IE5VTEw7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkq dG9sZW4gPSBvdXRsZW47CisKK2ZhaWw6CisJRVZQX1BLRVlfQ1RYX2ZyZWUoY3R4KTsKKwlF VlBfUEtFWV9mcmVlKGtleSk7CisKKwlyZXR1cm4gb3V0OworfQorCitzdGF0aWMgY29uc3Qg RVZQX0NJUEhFUiAqCitwZ19jZWthbGdfdG9fb3BlbnNzbF9jaXBoZXIoaW50IGNla2FsZykK K3sKKwljb25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisKKwlzd2l0Y2ggKGNla2FsZykKKwl7 CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2OgorCQkJY2lw aGVyID0gRVZQX2Flc18xMjhfY2JjKCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVB RF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCQljaXBoZXIgPSBFVlBfYWVzXzE5Ml9j YmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNf U0hBXzM4NDoKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6 CisJCQljaXBoZXIgPSBFVlBfYWVzXzI1Nl9jYmMoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0 OgorCQkJY2lwaGVyID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gY2lwaGVyOworfQorCitzdGF0 aWMgY29uc3QgRVZQX01EICoKK3BnX2Nla2FsZ190b19vcGVuc3NsX21kKGludCBjZWthbGcp Cit7CisJY29uc3QgRVZQX01EICptZDsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2Fz ZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQltZCA9IEVWUF9z aGEyNTYoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hN QUNfU0hBXzM4NDoKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8z ODQ6CisJCQltZCA9IEVWUF9zaGEzODQoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19B RUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCW1kID0gRVZQX3NoYTUxMigpOwor CQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQltZCA9IE5VTEw7CisJfQorCisJcmV0dXJuIG1k OworfQorCitzdGF0aWMgaW50CittZF9rZXlfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7 CisJaWYgKG1kID09IEVWUF9zaGEyNTYoKSkKKwkJcmV0dXJuIDE2OworCWVsc2UgaWYgKG1k ID09IEVWUF9zaGEzODQoKSkKKwkJcmV0dXJuIDI0OworCWVsc2UgaWYgKG1kID09IEVWUF9z aGE1MTIoKSkKKwkJcmV0dXJuIDMyOworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCitzdGF0 aWMgaW50CittZF9oYXNoX2xlbmd0aChjb25zdCBFVlBfTUQgKm1kKQoreworCWlmIChtZCA9 PSBFVlBfc2hhMjU2KCkpCisJCXJldHVybiAzMjsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hh Mzg0KCkpCisJCXJldHVybiA0ODsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhNTEyKCkpCisJ CXJldHVybiA2NDsKKwllbHNlCisJCXJldHVybiAtMTsKK30KKworI2lmbmRlZiBURVNUX0VO Q1JZUFQKKyNkZWZpbmUgUEdfQURfTEVOIDQKKyNlbHNlCisjZGVmaW5lIFBHX0FEX0xFTiBz aXplb2YodGVzdF9BKQorI2VuZGlmCisKK3N0YXRpYyBib29sCitnZXRfbWVzc2FnZV9hdXRo X3RhZyhjb25zdCBFVlBfTUQgKm1kLAorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqbWFj X2tleSwgaW50IG1hY19rZXlfbGVuLAorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqZW5j ciwgaW50IGVuY3JsZW4sCisJCQkJCSBpbnQgY2VrYWxnLAorCQkJCQkgdW5zaWduZWQgY2hh ciAqbWRfdmFsdWUsIHNpemVfdCAqbWRfbGVuX3AsCisJCQkJCSBjb25zdCBjaGFyICoqZXJy bXNncCkKK3sKKwlzdGF0aWMgY2hhciBtc2didWZbMTAyNF07CisJRVZQX01EX0NUWCAqZXZw X21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAqcGtleSA9IE5VTEw7CisJc2l6ZV90CQli dWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJYm9vbAkJcmVzdWx0ID0g ZmFsc2U7CisKKwlldnBfbWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKworCXBrZXkgPSBF VlBfUEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5VTEwsIG1hY19r ZXksIG1hY19rZXlfbGVuKTsKKwlpZiAoIXBrZXkpCisJeworCQlzbnByaW50Zihtc2didWYs IHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2Nh dGUga2V5IGZvciBITUFDOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhF UlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwlidWZzaXplID0gUEdfQURfTEVOICsgZW5jcmxlbiArIHNpemVvZihpbnQ2NCk7 CisJYnVmID0gbWFsbG9jKGJ1ZnNpemUpOworCWlmICghYnVmKQorCXsKKwkJKmVycm1zZ3Ag PSBsaWJwcV9nZXR0ZXh0KCJvdXQgb3V0IG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQor I2lmbmRlZiBURVNUX0VOQ1JZUFQKKwlidWZbMF0gPSAnUCc7CisJYnVmWzFdID0gJ0cnOwor CSooaW50MTYgKikgKGJ1ZiArIDIpID0gcGdfaHRvbjE2KGNla2FsZyk7CisjZWxzZQorCW1l bWNweShidWYsIHRlc3RfQSwgc2l6ZW9mKHRlc3RfQSkpOworI2VuZGlmCisJbWVtY3B5KGJ1 ZiArIFBHX0FEX0xFTiwgZW5jciwgZW5jcmxlbik7CisJKihpbnQ2NCAqKSAoYnVmICsgUEdf QURfTEVOICsgZW5jcmxlbikgPSBwZ19odG9uNjQoUEdfQURfTEVOICogOCk7CisKKwlpZiAo IUVWUF9EaWdlc3RTaWduSW5pdChldnBfbWRfY3R4LCBOVUxMLCBtZCwgTlVMTCwgcGtleSkp CisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9n ZXR0ZXh0KCJkaWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBt c2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRl KGV2cF9tZF9jdHgsIGJ1ZiwgYnVmc2l6ZSkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNp emVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWls ZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3Io KSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWlmICgh RVZQX0RpZ2VzdFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgbWRfbGVuX3ApKQor CXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0 dGV4dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJ CWdvdG8gZmFpbDsKKwl9CisJQXNzZXJ0KCptZF9sZW5fcCA9PSBtZF9oYXNoX2xlbmd0aCht ZCkpOworCisJLyogdHJ1bmNhdGUgb3V0cHV0IHRvIGhhbGYgdGhlIGxlbmd0aCwgcGVyIHNw ZWMgKi8KKwkqbWRfbGVuX3AgLz0gMjsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCWZy ZWUoYnVmKTsKKwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBf bWRfY3R4KTsKKwlyZXR1cm4gcmVzdWx0OworfQorCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5 cHRfdmFsdWUoUEdyZXN1bHQgKnJlcywgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywg Y29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwgY29uc3QgY2hhciAq KmVycm1zZ3ApCit7CisJc3RhdGljIGNoYXIgbXNnYnVmWzEwMjRdOworCisJY29uc3QgdW5z aWduZWQgY2hhciAqaXYgPSBOVUxMOworCXNpemVfdAkJaXZsZW47CisKKwljb25zdCBFVlBf Q0lQSEVSICpjaXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAq ZXZwX2NpcGhlcl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1h Y19rZXlfbGVuOworCWludAkJCWtleV9sZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5j X2tleTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5OworCXVuc2lnbmVkIGNoYXIg bWRfdmFsdWVbRVZQX01BWF9NRF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZiht ZF92YWx1ZSk7CisJc2l6ZV90CQlidWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5V TEw7CisJdW5zaWduZWQgY2hhciAqZGVjcjsKKwlpbnQJCQlkZWNybGVuLAorCQkJCWRlY3Js ZW4yOworCisJdW5zaWduZWQgY2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBn X2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsK KwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4 dCgidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiks IGNla2FsZyk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJ bWQgPSBwZ19jZWthbGdfdG9fb3BlbnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJewor CQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0 KCJ1bnJlY29nbml6ZWQgZGlnZXN0IGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZCIpLCBjZWth bGcpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9j aXBoZXJfY3R4ID0gRVZQX0NJUEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9EZWNyeXB0 SW5pdF9leChldnBfY2lwaGVyX2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7 CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRl eHQoImRlY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBt c2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJf Q1RYX2tleV9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gbWRfa2V5 X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisK KwlpZiAoY2VrLT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlzbnByaW50Zihtc2di dWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlw dGlvbiBrZXkgaGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6ICV6dSwgcmVx dWlyZWQ6ICVkKSIpLAorCQkJCSBjZWstPmNla2RhdGFsZW4sIGtleV9sZW4pOworCQkqZXJy bXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXkgPSBjZWstPmNl a2RhdGEgKyBtYWNfa2V5X2xlbjsKKwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCisJaWYg KCFnZXRfbWVzc2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sCisJCQkJ CQkJICBpbnB1dCwgaW5wdXRsZW4gLSAobWRfaGFzaF9sZW5ndGgobWQpIC8gMiksCisJCQkJ CQkJICBjZWthbGcsCisJCQkJCQkJICBtZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgIGVy cm1zZ3ApKQorCXsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChtZW1jbXAoaW5wdXQgKyAo aW5wdXRsZW4gLSBtZF9sZW4pLCBtZF92YWx1ZSwgbWRfbGVuKSAhPSAwKQorCXsKKwkJKmVy cm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJNQUMgbWlzbWF0Y2giKTsKKwkJZ290byBmYWlsOwor CX0KKworCWl2bGVuID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4 KTsKKwlpdiA9IGlucHV0OworCWlucHV0ICs9IGl2bGVuOworCWlucHV0bGVuIC09IGl2bGVu OworCWlmICghRVZQX0RlY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBOVUxMLCBOVUxM LCBlbmNfa2V5LCBpdikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYp LAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxl ZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6 ZSA9IGlucHV0bGVuICsgRVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0 eCkgKyAxOworI2lmbmRlZiBURVNUX0VOQ1JZUFQKKwlidWYgPSBwcVJlc3VsdEFsbG9jKHJl cywgYnVmc2l6ZSwgZmFsc2UpOworI2Vsc2UKKwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7Cisj ZW5kaWYKKwlpZiAoIWJ1ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0 IG91dCBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwlkZWNyID0gYnVmOworCWlmICgh RVZQX0RlY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGRlY3IsICZkZWNybGVuLCBpbnB1 dCwgaW5wdXRsZW4gLSBtZF9sZW4pKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2Yo bXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiks CisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9EZWNyeXB0 RmluYWxfZXgoZXZwX2NpcGhlcl9jdHgsIGRlY3IgKyBkZWNybGVuLCAmZGVjcmxlbjIpKQor CXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0 dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290 byBmYWlsOworCX0KKwlkZWNybGVuICs9IGRlY3JsZW4yOworCUFzc2VydChkZWNybGVuIDwg YnVmc2l6ZSk7CisJZGVjcltkZWNybGVuXSA9ICdcMCc7CisJcmVzdWx0ID0gZGVjcjsKKwor ZmFpbDoKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJfY3R4KTsKKworCXJldHVy biByZXN1bHQ7Cit9CisKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCitzdGF0aWMgYm9vbAorbWFr ZV9zaXYoUEdjb25uICpjb25uLAorCQkgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdmxl biwKKwkJIGNvbnN0IEVWUF9NRCAqbWQsCisJCSBjb25zdCB1bnNpZ25lZCBjaGFyICppdl9r ZXksIGludCBpdl9rZXlfbGVuLAorCQkgY29uc3QgdW5zaWduZWQgY2hhciAqcGxhaW50ZXh0 LCBpbnQgcGxhaW50ZXh0X2xlbikKK3sKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4ID0gTlVM TDsKKwlFVlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVl W0VWUF9NQVhfTURfU0laRV07CisJc2l6ZV90CQltZF9sZW4gPSBzaXplb2YobWRfdmFsdWUp OworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJZXZwX21kX2N0eCA9IEVWUF9NRF9DVFhf bmV3KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlfbmV3X3Jhd19wcml2YXRlX2tleShFVlBfUEtF WV9ITUFDLCBOVUxMLCBpdl9rZXksIGl2X2tleV9sZW4pOworCWlmICghcGtleSkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBx X2dldHRleHQoImNvdWxkIG5vdCBhbGxvY2F0ZSBrZXkgZm9yIEhNQUM6ICVzXG4iKSwKKwkJ CQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdv dG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduSW5pdChldnBfbWRfY3R4LCBO VUxMLCBtZCwgTlVMTCwgcGtleSkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJkaWdlc3QgaW5pdGlhbGl6 YXRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfRGln ZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBwbGFpbnRleHQsIHBsYWludGV4dF9sZW4pKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAg bGlicHFfZ2V0dGV4dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlc1xuIiksCisJCQkJCQkg IEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZh aWw7CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnbkZpbmFsKGV2cF9tZF9jdHgsIG1kX3Zh bHVlLCAmbWRfbGVuKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1l c3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDog JXMiKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCWdvdG8gZmFpbDsKKwl9CisJQXNzZXJ0KG1kX2xlbiA9PSBtZF9oYXNoX2xlbmd0 aChtZCkpOworCW1lbWNweShpdiwgbWRfdmFsdWUsIGl2bGVuKTsKKworCXJlc3VsdCA9IHRy dWU7CitmYWlsOgorCUVWUF9QS0VZX2ZyZWUocGtleSk7CisJRVZQX01EX0NUWF9mcmVlKGV2 cF9tZF9jdHgpOworCXJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYJCQkJCQkJLyogVEVTVF9F TkNSWVBUICovCisKK3Vuc2lnbmVkIGNoYXIgKgorZW5jcnlwdF92YWx1ZShQR2Nvbm4gKmNv bm4sIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnZhbHVlLCBpbnQgKm5ieXRlc3AsIGJvb2wgZW5jX2RldCkKK3sKKwlpbnQJCQluYnl0ZXMg PSAqbmJ5dGVzcDsKKwl1bnNpZ25lZCBjaGFyIGl2W0VWUF9NQVhfSVZfTEVOR1RIXTsKKwlz aXplX3QJCWl2bGVuOworCWNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKwljb25zdCBFVlBf TUQgKm1kOworCUVWUF9DSVBIRVJfQ1RYICpldnBfY2lwaGVyX2N0eCA9IE5VTEw7CisJaW50 CQkJZW5jX2tleV9sZW47CisJaW50CQkJbWFjX2tleV9sZW47CisJaW50CQkJa2V5X2xlbjsK Kwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVuc2lnbmVkIGNoYXIg Km1hY19rZXk7CisJc2l6ZV90CQlidWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5V TEw7CisJdW5zaWduZWQgY2hhciAqZW5jcjsKKwlpbnQJCQllbmNybGVuLAorCQkJCWVuY3Js ZW4yOworCisJY29uc3QgY2hhciAqZXJybXNnOworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVb RVZQX01BWF9NRF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7 CisJc2l6ZV90CQlidWYyc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYyID0gTlVMTDsKKwor CXVuc2lnbmVkIGNoYXIgKnJlc3VsdCA9IE5VTEw7CisKKwljaXBoZXIgPSBwZ19jZWthbGdf dG9fb3BlbnNzbF9jaXBoZXIoY2VrYWxnKTsKKwlpZiAoIWNpcGhlcikKKwl7CisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRl eHQoInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZFxu IiksIGNla2FsZyk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwltZCA9IHBnX2Nla2FsZ190b19v cGVuc3NsX21kKGNla2FsZyk7CisJaWYgKCFtZCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy KCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoInVucmVjb2du aXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkXG4iKSwgY2VrYWxnKTsKKwkJ Z290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4ID0gRVZQX0NJUEhFUl9DVFhfbmV3 KCk7CisKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0eCwgY2lwaGVy LCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImVuY3J5cHRpb24gaW5pdGlh bGl6YXRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJZW5jX2tleV9s ZW4gPSBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwltYWNf a2V5X2xlbiA9IG1kX2tleV9sZW5ndGgobWQpOworCWtleV9sZW4gPSBtYWNfa2V5X2xlbiAr IGVuY19rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVuKQorCXsK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGli cHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IGhhcyB3cm9uZyBsZW5ndGggZm9y IGFsZ29yaXRobSAoaGFzOiAlenUsIHJlcXVpcmVkOiAlZClcbiIpLAorCQkJCQkJICBjZWst PmNla2RhdGFsZW4sIGtleV9sZW4pOworCQlnb3RvIGZhaWw7CisJfQorCisJZW5jX2tleSA9 IGNlay0+Y2VrZGF0YSArIG1hY19rZXlfbGVuOworCW1hY19rZXkgPSBjZWstPmNla2RhdGE7 CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7 CisJQXNzZXJ0KGl2bGVuIDw9IHNpemVvZihpdikpOworCWlmIChlbmNfZGV0KQorCXsKKyNp Zm5kZWYgVEVTVF9FTkNSWVBUCisJCW1ha2Vfc2l2KGNvbm4sIGl2LCBpdmxlbiwgbWQsIG1h Y19rZXksIG1hY19rZXlfbGVuLCB2YWx1ZSwgbmJ5dGVzKTsKKyNlbHNlCisJCW1lbWNweShp diwgdGVzdF9JViwgaXZsZW4pOworI2VuZGlmCisJfQorCWVsc2UKKwkJcGdfc3Ryb25nX3Jh bmRvbShpdiwgaXZsZW4pOworCWlmICghRVZQX0VuY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJf Y3R4LCBOVUxMLCBOVUxMLCBlbmNfa2V5LCBpdikpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0 aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29u X2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwor CWJ1ZnNpemUgPSBpdmxlbiArIChuYnl0ZXMgKyAyICogRVZQX0NJUEhFUl9DVFhfYmxvY2tf c2l6ZShldnBfY2lwaGVyX2N0eCkgLSAxKTsKKwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisJ aWYgKCFidWYpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdl LAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCWdvdG8g ZmFpbDsKKwl9CisJbWVtY3B5KGJ1ZiwgaXYsIGl2bGVuKTsKKwllbmNyID0gYnVmICsgaXZs ZW47CisJaWYgKCFFVlBfRW5jcnlwdFVwZGF0ZShldnBfY2lwaGVyX2N0eCwgZW5jciwgJmVu Y3JsZW4sIHZhbHVlLCBuYnl0ZXMpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGlvbiBmYWls ZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJaWYgKCFFVlBfRW5jcnlwdEZpbmFsX2V4 KGV2cF9jaXBoZXJfY3R4LCBlbmNyICsgZW5jcmxlbiwgJmVuY3JsZW4yKSkKKwl7CisJCWFw cGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dl dHRleHQoImVuY3J5cHRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25f ZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCWVu Y3JsZW4gKz0gZW5jcmxlbjI7CisKKwllbmNyIC09IGl2bGVuOworCWVuY3JsZW4gKz0gaXZs ZW47CisKKwlBc3NlcnQoZW5jcmxlbiA8PSBidWZzaXplKTsKKworCWlmICghZ2V0X21lc3Nh Z2VfYXV0aF90YWcobWQsIG1hY19rZXksIG1hY19rZXlfbGVuLAorCQkJCQkJCSAgZW5jciwg ZW5jcmxlbiwKKwkJCQkJCQkgIGNla2FsZywKKwkJCQkJCQkgIG1kX3ZhbHVlLCAmbWRfbGVu LAorCQkJCQkJCSAgJmVycm1zZykpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ ZXJyb3JNZXNzYWdlLCAiJXNcbiIsIGVycm1zZyk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwli dWYyc2l6ZSA9IGVuY3JsZW4gKyBtZF9sZW47CisJYnVmMiA9IG1hbGxvYyhidWYyc2l6ZSk7 CisJaWYgKCFidWYyKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVz c2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQln b3RvIGZhaWw7CisJfQorCW1lbWNweShidWYyLCBlbmNyLCBlbmNybGVuKTsKKwltZW1jcHko YnVmMiArIGVuY3JsZW4sIG1kX3ZhbHVlLCBtZF9sZW4pOworCisJcmVzdWx0ID0gYnVmMjsK KwluYnl0ZXMgPSBidWYyc2l6ZTsKKworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX0NJUEhF Ul9DVFhfZnJlZShldnBfY2lwaGVyX2N0eCk7CisKKwkqbmJ5dGVzcCA9IG5ieXRlczsKKwly ZXR1cm4gcmVzdWx0OworfQorCisKKy8qCisgKiBSdW4gdGVzdCBjYXNlcworICovCisjaWZk ZWYgVEVTVF9FTkNSWVBUCisKK3N0YXRpYyB2b2lkCitkZWJ1Z19wcmludF9oZXgoY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsLCBpbnQgbGVuKQoreworCXBy aW50ZigiJXMgPSIsIG5hbWUpOworCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspCisJ eworCQlpZiAoaSAlIDE2ID09IDApCisJCQlwcmludGYoIlxuIik7CisJCWVsc2UKKwkJCXBy aW50ZigiICIpOworCQlwcmludGYoIiUwMngiLCB2YWxbaV0pOworCX0KKwlwcmludGYoIlxu Iik7Cit9CisKK3N0YXRpYyB2b2lkCit0ZXN0X2Nhc2UoaW50IGFsZywgY29uc3QgdW5zaWdu ZWQgY2hhciAqSywgc2l6ZV90IEtfbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpQLCBzaXpl X3QgUF9sZW4pCit7CisJdW5zaWduZWQgY2hhciAqQzsKKwlpbnQJCQluYnl0ZXM7CisJUEdD RUsJCWNlazsKKworCW5ieXRlcyA9IFBfbGVuOworCWNlay5jZWtkYXRhID0gdW5jb25zdGlm eSh1bnNpZ25lZCBjaGFyICosIEspOworCWNlay5jZWtkYXRhbGVuID0gS19sZW47CisKKwlD ID0gZW5jcnlwdF92YWx1ZShOVUxMLCAmY2VrLCBhbGcsIFAsICZuYnl0ZXMsIHRydWUpOwor CWRlYnVnX3ByaW50X2hleCgiQyIsIEMsIG5ieXRlcyk7Cit9CisKK2ludAorbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCit7CisJcHJpbnRmKCI1LjFcbiIpOworCXRlc3RfY2FzZShQ R19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYsIEssIDMyLCBQLCBzaXplb2Yo UCkpOworCXByaW50ZigiNS4yXG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzE5 Ml9DQkNfSE1BQ19TSEFfMzg0LCBLLCA0OCwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUu M1xuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4 NCwgSywgNTYsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjRcbiIpOworCXRlc3RfY2Fz ZShQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTIsIEssIDY0LCBQLCBzaXpl b2YoUCkpOworCisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZ UFQgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaCBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi5iMDA5M2RjNTI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGZlLWVuY3J5cHQuaAorICoKKyAqIGVuY3J5cHRp b24gc3VwcG9ydAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEK KyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1l bmNyeXB0LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIEZF X0VOQ1JZUFRfSAorI2RlZmluZSBGRV9FTkNSWVBUX0gKKworI2luY2x1ZGUgImxpYnBxLWZl LmgiCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpk ZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBGSUxFICpmcCwgaW50IGNta2Fs ZywKKwkJCQkJCQkJCQkJaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20s CisJCQkJCQkJCQkJCWludCAqdG9sZW4pOworCitleHRlcm4gdW5zaWduZWQgY2hhciAqZGVj cnlwdF92YWx1ZShQR3Jlc3VsdCAqcmVzLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxn LAorCQkJCQkJCQkJY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwK KwkJCQkJCQkJCWNvbnN0IGNoYXIgKiplcnJtc2dwKTsKKworZXh0ZXJuIHVuc2lnbmVkIGNo YXIgKmVuY3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQg Y2VrYWxnLAorCQkJCQkJCQkJY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCAqbmJ5 dGVzcCwgYm9vbCBlbmNfZGV0KTsKKworI2VuZGlmCQkJCQkJCS8qIEZFX0VOQ1JZUFRfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCmluZGV4IGUyMGQ2MTc3ZmUuLmJkODA1MmQ2MWIg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYworKysgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKQEAgLTI0LDYgKzI0LDkgQEAKICNpbmNsdWRl IDx1bmlzdGQuaD4KICNlbmRpZgogCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXku aCIKKyNpbmNsdWRlICJjb21tb24vYmFzZTY0LmgiCisjaW5jbHVkZSAiZmUtZW5jcnlwdC5o IgogI2luY2x1ZGUgImxpYnBxLWZlLmgiCiAjaW5jbHVkZSAibGlicHEtaW50LmgiCiAjaW5j bHVkZSAibWIvcGdfd2NoYXIuaCIKQEAgLTcyLDcgKzc1LDkgQEAgc3RhdGljIGludAlQUXNl bmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCQkJCWNvbnN0IGNoYXIgKmNvbnN0ICpw YXJhbVZhbHVlcywKIAkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQkJCQlj b25zdCBpbnQgKnBhcmFtRm9ybWF0cywKLQkJCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KTsKKwkJ CQkJCQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJCQkJCQlp bnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCVBHcmVzdWx0ICpwYXJhbURlc2MpOwogc3RhdGlj IHZvaWQgcGFyc2VJbnB1dChQR2Nvbm4gKmNvbm4pOwogc3RhdGljIFBHcmVzdWx0ICpnZXRD b3B5UmVzdWx0KFBHY29ubiAqY29ubiwgRXhlY1N0YXR1c1R5cGUgY29weXR5cGUpOwogc3Rh dGljIGJvb2wgUFFleGVjU3RhcnQoUEdjb25uICpjb25uKTsKQEAgLTExODUsNiArMTE5MCwz ODEgQEAgcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiAJfQogfQogCitpbnQKK3BxU2F2ZUNvbHVtbk1h c3RlcktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgY29uc3QgY2hhciAqa2V5bmFtZSwK KwkJCQkJICBjb25zdCBjaGFyICprZXlyZWFsbSkKK3sKKwljaGFyCSAgICprZXluYW1lX2Nv cHk7CisJY2hhcgkgICAqa2V5cmVhbG1fY29weTsKKwlib29sCQlmb3VuZDsKKworCWtleW5h bWVfY29weSA9IHN0cmR1cChrZXluYW1lKTsKKwlpZiAoIWtleW5hbWVfY29weSkKKwkJcmV0 dXJuIEVPRjsKKwlrZXlyZWFsbV9jb3B5ID0gc3RyZHVwKGtleXJlYWxtKTsKKwlpZiAoIWtl eXJlYWxtX2NvcHkpCisJeworCQlmcmVlKGtleW5hbWVfY29weSk7CisJCXJldHVybiBFT0Y7 CisJfQorCisJZm91bmQgPSBmYWxzZTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5j bWtzOyBpKyspCisJeworCQlzdHJ1Y3QgcGdfY21rICpjaGVja2NtayA9ICZjb25uLT5jbWtz W2ldOworCisJCS8qIHJlcGxhY2UgZXhpc3Rpbmc/ICovCisJCWlmIChjaGVja2Ntay0+Y21r aWQgPT0ga2V5aWQpCisJCXsKKwkJCWZyZWUoY2hlY2tjbWstPmNta25hbWUpOworCQkJZnJl ZShjaGVja2Ntay0+Y21rcmVhbG0pOworCQkJY2hlY2tjbWstPmNta25hbWUgPSBrZXluYW1l X2NvcHk7CisJCQljaGVja2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5OworCQkJZm91 bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBhcHBlbmQgbmV3PyAqLwor CWlmICghZm91bmQpCisJeworCQlpbnQJCQluZXduY21rczsKKwkJc3RydWN0IHBnX2NtayAq bmV3Y21rczsKKwkJc3RydWN0IHBnX2NtayAqbmV3Y21rOworCisJCW5ld25jbWtzID0gY29u bi0+bmNta3MgKyAxOworCQlpZiAobmV3bmNta3MgPD0gMCkKKwkJCXJldHVybiBFT0Y7CisJ CW5ld2Nta3MgPSByZWFsbG9jKGNvbm4tPmNta3MsIG5ld25jbWtzICogc2l6ZW9mKHN0cnVj dCBwZ19jbWspKTsKKwkJaWYgKCFuZXdjbWtzKQorCQl7CisJCQlmcmVlKGtleW5hbWVfY29w eSk7CisJCQlmcmVlKGtleXJlYWxtX2NvcHkpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCisJ CW5ld2NtayA9ICZuZXdjbWtzW25ld25jbWtzIC0gMV07CisJCW5ld2Ntay0+Y21raWQgPSBr ZXlpZDsKKwkJbmV3Y21rLT5jbWtuYW1lID0ga2V5bmFtZV9jb3B5OworCQluZXdjbWstPmNt a3JlYWxtID0ga2V5cmVhbG1fY29weTsKKworCQljb25uLT5uY21rcyA9IG5ld25jbWtzOwor CQljb25uLT5jbWtzID0gbmV3Y21rczsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAq IFJlcGxhY2UgcGxhY2Vob2xkZXJzIGluIGlucHV0IHN0cmluZy4gIFJldHVybiB2YWx1ZSBt YWxsb2MnZWQuCisgKi8KK3N0YXRpYyBjaGFyICoKK3JlcGxhY2VfY21rX3BsYWNlaG9sZGVy cyhjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqY21rbmFtZSwgY29uc3QgY2hhciAqY21r cmVhbG0sIGludCBjbWthbGcsIGNvbnN0IGNoYXIgKmI2NGRhdGEpCit7CisJUFFFeHBCdWZm ZXJEYXRhIGJ1ZjsKKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCWZvciAoY29uc3Qg Y2hhciAqcCA9IGluOyAqcDsgcCsrKQorCXsKKwkJaWYgKHBbMF0gPT0gJyUnKQorCQl7CisJ CQlzd2l0Y2ggKHBbMV0pCisJCQl7CisJCQkJY2FzZSAnYSc6CisJCQkJCXsKKwkJCQkJCWNv bnN0IGNoYXIgKnM7CisKKwkJCQkJCXN3aXRjaCAoY21rYWxnKQorCQkJCQkJeworCQkJCQkJ CWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE6CisJCQkJCQkJCXMgPSAiUlNBRVNfT0FF UF9TSEFfMSI7CisJCQkJCQkJCWJyZWFrOworCQkJCQkJCWNhc2UgUEdfQ01LX1JTQUVTX09B RVBfU0hBXzI1NjoKKwkJCQkJCQkJcyA9ICJSU0FFU19PQUVQX1NIQV8yNTYiOworCQkJCQkJ CQlicmVhazsKKwkJCQkJCQlkZWZhdWx0OgorCQkJCQkJCQlzID0gIklOVkFMSUQiOworCQkJ CQkJfQorCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwgcyk7CisJCQkJCX0KKwkJ CQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdiJzoKKwkJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgYjY0ZGF0YSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJ Y2FzZSAnayc6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta25hbWUpOwor CQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3InOgorCQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmYnVmLCBjbWtyZWFsbSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJ CQkJZGVmYXVsdDoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKCZidWYsIHBbMF0pOwor CQkJfQorCQl9CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcigmYnVmLCBwWzBd KTsKKwl9CisKKwlyZXR1cm4gYnVmLmRhdGE7Cit9CisKKyNpZm5kZWYgVVNFX1NTTAorLyoK KyAqIER1bW15IGltcGxlbWVudGF0aW9uIGZvciBub24tU1NMIGJ1aWxkcworICovCit1bnNp Z25lZCBjaGFyICoKK2RlY3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIEZJTEUg KmZwLCBpbnQgY21rYWxnLAorCQkJCQkgIGludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBj aGFyICpmcm9tLAorCQkJCQkgIGludCAqdG9sZW4pCit7CisJYXBwZW5kUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5j cnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGRcbiIpKTsKKwlyZXR1cm4gTlVM TDsKK30KKyNlbmRpZgorCisvKgorICogRGVjcnlwdCBhIENFSyB1c2luZyB0aGUgZ2l2ZW4g Q01LLiAgVGhlIGNpcGhlcnRleHQgaXMgcGFzc2VkIGluCisgKiAiZnJvbSIgYW5kICJmcm9t bGVuIi4gIFJldHVybiB0aGUgZGVjcnlwdGVkIHZhbHVlIGluIGEgbWFsbG9jJ2VkIGFyZWEs IGl0cworICogbGVuZ3RoIHZpYSAidG9sZW4iLiAgUmV0dXJuIE5VTEwgb24gZXJyb3I7IGFk ZCBlcnJvciBtZXNzYWdlcyBkaXJlY3RseSB0bworICogImNvbm4iLgorICovCitzdGF0aWMg dW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2NlayhQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ01L ICpjbWssIGludCBjbWthbGcsCisJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hh ciAqZnJvbSwKKwkJCWludCAqdG9sZW4pCit7CisJY2hhcgkgICAqY21rbG9va3VwOworCWJv b2wJCWZvdW5kID0gZmFsc2U7CisJdW5zaWduZWQgY2hhciAqcmVzdWx0ID0gTlVMTDsKKwor CWNta2xvb2t1cCA9IHN0cmR1cChjb25uLT5jbWtsb29rdXAgPyBjb25uLT5jbWtsb29rdXAg OiAiIik7CisKKwlpZiAoIWNta2xvb2t1cCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnlcbiIpKTsK KwkJcmV0dXJuIE5VTEw7CisJfQorCisJLyoKKwkgKiBBbmFseXplIHNlbWljb2xvbi1zZXBh cmF0ZWQgbGlzdAorCSAqLworCWZvciAoY2hhciAqcyA9IHN0cnRvayhjbWtsb29rdXAsICI7 Iik7IHM7IHMgPSBzdHJ0b2soTlVMTCwgIjsiKSkKKwl7CisJCWNoYXIJICAgKnNlcDsKKwor CQkvKiBzcGxpdCBmb3VuZCB0b2tlbiBhdCAnPScgKi8KKwkJc2VwID0gc3RyY2hyKHMsICc9 Jyk7CisJCWlmICghc2VwKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJy b3JNZXNzYWdlLAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgic3ludGF4IGVycm9yIGluIENN SyBsb29rdXAgc3BlY2lmaWNhdGlvbiwgbWlzc2luZyBcIiVjXCI6ICVzXG4iKSwgJz0nLCBz KTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogbWF0Y2hpbmcgcmVhbG0/ICovCisJCWlmIChz dHJuY21wKHMsICIqIiwgc2VwIC0gcykgPT0gMCB8fCBzdHJuY21wKHMsIGNtay0+Y21rcmVh bG0sIHNlcCAtIHMpID09IDApCisJCXsKKwkJCWNoYXIJICAgKnNlcDI7CisKKwkJCWZvdW5k ID0gdHJ1ZTsKKworCQkJc2VwMiA9IHN0cmNocihzZXAsICc6Jyk7CisJCQlpZiAoIXNlcDIp CisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJ CQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJzeW50YXggZXJyb3IgaW4gQ01LIGxvb2t1cCBzcGVj aWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXNcbiIpLCAnOicsIHMpOworCQkJCWdvdG8g ZmFpbDsKKwkJCX0KKworCQkJaWYgKHN0cm5jbXAoc2VwICsgMSwgImZpbGUiLCBzZXAyIC0g KHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJICAgKmNta2ZpbGVuYW1lOworCQkJ CUZJTEUJICAgKmZwOworCisJCQkJY21rZmlsZW5hbWUgPSByZXBsYWNlX2Nta19wbGFjZWhv bGRlcnMoc2VwMiArIDEsIGNtay0+Y21rbmFtZSwgY21rLT5jbWtyZWFsbSwgY21rYWxnLCAi SU5WQUxJRCIpOworCQkJCWZwID0gZm9wZW4oY21rZmlsZW5hbWUsICJyYiIpOworCQkJCWlm IChmcCkKKwkJCQl7CisJCQkJCXJlc3VsdCA9IGRlY3J5cHRfY2VrX2Zyb21fZmlsZShjb25u LCBmcCwgY21rYWxnLCBmcm9tbGVuLCBmcm9tLCB0b2xlbik7CisJCQkJCWZjbG9zZShmcCk7 CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25u LT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBv cGVuIGZpbGUgXCIlc1wiOiAlbVxuIiksIGNta2ZpbGVuYW1lKTsKKwkJCQkJZnJlZShjbWtm aWxlbmFtZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJZnJlZShjbWtmaWxlbmFt ZSk7CisJCQl9CisJCQllbHNlIGlmIChzdHJuY21wKHNlcCArIDEsICJydW4iLCBzZXAyIC0g KHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWludAkJCWVuY2xlbjsKKwkJCQljaGFyCSAg ICplbmM7CisJCQkJY2hhcgkgICAqY29tbWFuZDsKKwkJCQlGSUxFCSAgICpmcDsKKwkJCQlj aGFyCQlidWZbNDA5Nl07CisKKwkJCQllbmNsZW4gPSBwZ19iNjRfZW5jX2xlbihmcm9tbGVu KTsKKwkJCQllbmMgPSBtYWxsb2MoZW5jbGVuICsgMSk7CisJCQkJaWYgKCFlbmMpCisJCQkJ eworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLCBsaWJwcV9n ZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJ CQkJZW5jbGVuID0gcGdfYjY0X2VuY29kZSgoY29uc3QgY2hhciAqKSBmcm9tLCBmcm9tbGVu LCBlbmMsIGVuY2xlbik7CisJCQkJaWYgKGVuY2xlbiA8IDApCisJCQkJeworCQkJCQlhcHBl bmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLCBsaWJwcV9nZXR0ZXh0KCJiYXNl NjQgZW5jb2RpbmcgZmFpbGVkXG4iKSk7CisJCQkJCWZyZWUoZW5jKTsKKwkJCQkJZ290byBm YWlsOworCQkJCX0KKwkJCQljb21tYW5kID0gcmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKHNl cDIgKyAxLCBjbWstPmNta25hbWUsIGNtay0+Y21rcmVhbG0sIGNta2FsZywgZW5jKTsKKwkJ CQlmcmVlKGVuYyk7CisJCQkJZnAgPSBwb3Blbihjb21tYW5kLCAiciIpOworCQkJCWZyZWUo Y29tbWFuZCk7CisJCQkJaWYgKCFmcCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy KCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxk IG5vdCBydW4gY29tbWFuZCBcIiVzXCI6ICVtXG4iKSwgY29tbWFuZCk7CisJCQkJCWdvdG8g ZmFpbDsKKwkJCQl9CisJCQkJaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZwKSkKKwkJ CQl7CisJCQkJCWludAkJCWxpbmVsZW47CisJCQkJCWludAkJCWRlY2xlbjsKKwkJCQkJY2hh cgkgICAqZGVjOworCisJCQkJCWxpbmVsZW4gPSBzdHJsZW4oYnVmKTsKKwkJCQkJaWYgKGJ1 ZltsaW5lbGVuIC0gMV0gPT0gJ1xuJykKKwkJCQkJeworCQkJCQkJYnVmW2xpbmVsZW4gLSAx XSA9ICdcMCc7CisJCQkJCQlsaW5lbGVuLS07CisJCQkJCX0KKwkJCQkJZGVjbGVuID0gcGdf YjY0X2RlY19sZW4obGluZWxlbik7CisJCQkJCWRlYyA9IG1hbGxvYyhkZWNsZW4pOworCQkJ CQlpZiAoIWRlYykKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVy cm9yTWVzc2FnZSwgbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQkJCQkJ Z290byBmYWlsOworCQkJCQl9CisJCQkJCWRlY2xlbiA9IHBnX2I2NF9kZWNvZGUoYnVmLCBs aW5lbGVuLCBkZWMsIGRlY2xlbik7CisJCQkJCWlmIChkZWNsZW4gPCAwKQorCQkJCQl7CisJ CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJ CSAgbGlicHFfZ2V0dGV4dCgiYmFzZTY0IGRlY29kaW5nIGZhaWxlZFxuIikpOworCQkJCQkJ ZnJlZShkZWMpOworCQkJCQkJZ290byBmYWlsOworCQkJCQl9CisJCQkJCXJlc3VsdCA9ICh1 bnNpZ25lZCBjaGFyICopIGRlYzsKKwkJCQkJKnRvbGVuID0gZGVjbGVuOworCQkJCX0KKwkJ CQllbHNlCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLAorCQkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgcmVhZCBmcm9tIGNv bW1hbmQ6ICVtXG4iKSk7CisJCQkJCXBjbG9zZShmcCk7CisJCQkJCWdvdG8gZmFpbDsKKwkJ CQl9CisJCQkJcGNsb3NlKGZwKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkgIGxpYnBxX2dldHRl eHQoIkNNSyBsb29rdXAgc2NoZW1lIFwiJXNcIiBub3QgcmVjb2duaXplZFxuIiksIHNlcCAr IDEpOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKwkJfQorCX0KKworCWlmICghZm91bmQpCisJ eworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBs aWJwcV9nZXR0ZXh0KCJubyBDTUsgbG9va3VwIGZvdW5kIGZvciByZWFsbSBcIiVzXCJcbiIp LCBjbWstPmNta3JlYWxtKTsKKwl9CisKK2ZhaWw6CisJZnJlZShjbWtsb29rdXApOworCXJl dHVybiByZXN1bHQ7Cit9CisKK2ludAorcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShQR2Nv bm4gKmNvbm4sIGludCBrZXlpZCwgaW50IGNta2lkLCBpbnQgY21rYWxnLCBjb25zdCB1bnNp Z25lZCBjaGFyICp2YWx1ZSwgaW50IGxlbikKK3sKKwlQR0NNSwkgICAqY21rID0gTlVMTDsK Kwl1bnNpZ25lZCBjaGFyICpwbGFpbnZhbCA9IE5VTEw7CisJaW50CQkJcGxhaW52YWxsZW4g PSAwOworCWJvb2wJCWZvdW5kOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY21r czsgaSsrKQorCXsKKwkJaWYgKGNvbm4tPmNta3NbaV0uY21raWQgPT0gY21raWQpCisJCXsK KwkJCWNtayA9ICZjb25uLT5jbWtzW2ldOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAo IWNtaykKKwkJcmV0dXJuIEVPRjsKKworCXBsYWludmFsID0gZGVjcnlwdF9jZWsoY29ubiwg Y21rLCBjbWthbGcsIGxlbiwgdmFsdWUsICZwbGFpbnZhbGxlbik7CisJaWYgKCFwbGFpbnZh bCkKKwkJcmV0dXJuIEVPRjsKKworCWZvdW5kID0gZmFsc2U7CisJZm9yIChpbnQgaSA9IDA7 IGkgPCBjb25uLT5uY2VrczsgaSsrKQorCXsKKwkJc3RydWN0IHBnX2NlayAqY2hlY2tjZWsg PSAmY29ubi0+Y2Vrc1tpXTsKKworCQkvKiByZXBsYWNlIGV4aXN0aW5nPyAqLworCQlpZiAo Y2hlY2tjZWstPmNla2lkID09IGtleWlkKQorCQl7CisJCQlmcmVlKGNoZWNrY2VrLT5jZWtk YXRhKTsKKwkJCWNoZWNrY2VrLT5jZWtkYXRhID0gcGxhaW52YWw7CisJCQljaGVja2Nlay0+ Y2VrZGF0YWxlbiA9IHBsYWludmFsbGVuOworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7 CisJCX0KKwl9CisKKwkvKiBhcHBlbmQgbmV3PyAqLworCWlmICghZm91bmQpCisJeworCQlp bnQJCQluZXduY2VrczsKKwkJc3RydWN0IHBnX2NlayAqbmV3Y2VrczsKKwkJc3RydWN0IHBn X2NlayAqbmV3Y2VrOworCisJCW5ld25jZWtzID0gY29ubi0+bmNla3MgKyAxOworCQlpZiAo bmV3bmNla3MgPD0gMCkKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9G OworCQl9CisJCW5ld2Nla3MgPSByZWFsbG9jKGNvbm4tPmNla3MsIG5ld25jZWtzICogc2l6 ZW9mKHN0cnVjdCBwZ19jZWspKTsKKwkJaWYgKCFuZXdjZWtzKQorCQl7CisJCQlmcmVlKHBs YWludmFsKTsKKwkJCXJldHVybiBFT0Y7CisJCX0KKworCQluZXdjZWsgPSAmbmV3Y2Vrc1tu ZXduY2VrcyAtIDFdOworCQluZXdjZWstPmNla2lkID0ga2V5aWQ7CisJCW5ld2Nlay0+Y2Vr ZGF0YSA9IHBsYWludmFsOworCQluZXdjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsK KworCQljb25uLT5uY2VrcyA9IG5ld25jZWtzOworCQljb25uLT5jZWtzID0gbmV3Y2VrczsK Kwl9CisKKwlyZXR1cm4gMDsKK30KIAogLyoKICAqIHBxUm93UHJvY2Vzc29yCkBAIC0xMjUw LDkgKzE2MzAsNTggQEAgcHFSb3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFy ICoqZXJybXNncCkKIAkJfQogCQllbHNlCiAJCXsKLQkJCWJvb2wJCWlzYmluYXJ5ID0gKHJl cy0+YXR0RGVzY3NbaV0uZm9ybWF0ICE9IDApOworCQkJYm9vbAkJaXNiaW5hcnkgPSAoKHJl cy0+YXR0RGVzY3NbaV0uZm9ybWF0ICYgMHgwRikgIT0gMCk7CiAJCQljaGFyCSAgICp2YWw7 CiAKKwkJCWlmIChyZXMtPmF0dERlc2NzW2ldLmNla2lkKQorCQkJeworI2lmZGVmIFVTRV9T U0wKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKworCQkJCWZvciAoaW50IGogPSAwOyBq IDwgY29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNl a2lkID09IHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQkJCXsKKwkJCQkJCWNlayA9ICZj b25uLT5jZWtzW2pdOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQkJaWYgKCFj ZWspCisJCQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNy eXB0aW9uIGtleSBub3QgZm91bmQiKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJ CWlmIChpc2JpbmFyeSkKKwkJCQl7CisJCQkJCXZhbCA9IChjaGFyICopIGRlY3J5cHRfdmFs dWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3NbaV0uY2VrYWxnLAorCQkJCQkJCQkJCQkJIChj b25zdCB1bnNpZ25lZCBjaGFyICopIGNvbHVtbnNbaV0udmFsdWUsIGNsZW4sIGVycm1zZ3Ap OworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQl1bnNpZ25lZCBjaGFyICpidWY7CisJ CQkJCXVuc2lnbmVkIGNoYXIgKmVuY2NvbHZhbDsKKwkJCQkJc2l6ZV90CQllbmNjb2x2YWxs ZW47CisKKwkJCQkJYnVmID0gbWFsbG9jKGNsZW4gKyAxKTsKKwkJCQkJbWVtY3B5KGJ1Ziwg Y29sdW1uc1tpXS52YWx1ZSwgY2xlbik7CisJCQkJCWJ1ZltjbGVuXSA9ICdcMCc7CisJCQkJ CWVuY2NvbHZhbCA9IFBRdW5lc2NhcGVCeXRlYShidWYsICZlbmNjb2x2YWxsZW4pOworCQkJ CQl2YWwgPSAoY2hhciAqKSBkZWNyeXB0X3ZhbHVlKHJlcywgY2VrLCByZXMtPmF0dERlc2Nz W2ldLmNla2FsZywKKwkJCQkJCQkJCQkJCSBlbmNjb2x2YWwsIGVuY2NvbHZhbGxlbiwgZXJy bXNncCk7CisJCQkJCWZyZWUoZW5jY29sdmFsKTsKKwkJCQkJZnJlZShidWYpOworCQkJCX0K KworCQkJCWlmICh2YWwgPT0gTlVMTCkKKwkJCQkJZ290byBmYWlsOworI2Vsc2UKKwkJCQkq ZXJybXNncCA9IGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIG5vdCBzdXBwb3J0 ZWQgYnkgdGhpcyBidWlsZCIpOworCQkJCWdvdG8gZmFpbDsKKyNlbmRpZgorCQkJfQorCQkJ ZWxzZQorCQkJewogCQkJdmFsID0gKGNoYXIgKikgcHFSZXN1bHRBbGxvYyhyZXMsIGNsZW4g KyAxLCBpc2JpbmFyeSk7CiAJCQlpZiAodmFsID09IE5VTEwpCiAJCQkJZ290byBmYWlsOwpA QCAtMTI2MCw2ICsxNjg5LDcgQEAgcHFSb3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25z dCBjaGFyICoqZXJybXNncCkKIAkJCS8qIGNvcHkgYW5kIHplcm8tdGVybWluYXRlIHRoZSBk YXRhIChldmVuIGlmIGl0J3MgYmluYXJ5KSAqLwogCQkJbWVtY3B5KHZhbCwgY29sdW1uc1tp XS52YWx1ZSwgY2xlbik7CiAJCQl2YWxbY2xlbl0gPSAnXDAnOworCQkJfQogCiAJCQl0dXBb aV0ubGVuID0gY2xlbjsKIAkJCXR1cFtpXS52YWx1ZSA9IHZhbDsKQEAgLTE1ODYsNyArMjAx Niw5IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBHY29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFt VmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRz LAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJCSAgIE5VTEwsCisJCQkJCQkgICBy ZXN1bHRGb3JtYXQsCisJCQkJCQkgICBOVUxMKTsKIH0KIAogLyoKQEAgLTE3MDQsNiArMjEz NiwyMCBAQCBQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJY29uc3Qg aW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJ CQlpbnQgcmVzdWx0Rm9ybWF0KQoreworCXJldHVybiBQUXNlbmRRdWVyeVByZXBhcmVkMihj b25uLCBzdG10TmFtZSwgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywgcGFy YW1Gb3JtYXRzLCBOVUxMLCByZXN1bHRGb3JtYXQsIE5VTEwpOworfQorCitpbnQKK1BRc2Vu ZFF1ZXJ5UHJlcGFyZWQyKFBHY29ubiAqY29ubiwKKwkJCQkJIGNvbnN0IGNoYXIgKnN0bXRO YW1lLAorCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFy YW1WYWx1ZXMsCisJCQkJCSBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJIGNvbnN0 IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1u RW5jcnlwdGlvbnMsCisJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkgUEdyZXN1bHQg KnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRc2VuZFF1ZXJ5U3RhcnQoY29ubiwgdHJ1ZSkpCiAJ CXJldHVybiAwOwpAQCAtMTczMSw3ICsyMTc3LDkgQEAgUFFzZW5kUXVlcnlQcmVwYXJlZChQ R2Nvbm4gKmNvbm4sCiAJCQkJCQkgICBwYXJhbVZhbHVlcywKIAkJCQkJCSAgIHBhcmFtTGVu Z3RocywKIAkJCQkJCSAgIHBhcmFtRm9ybWF0cywKLQkJCQkJCSAgIHJlc3VsdEZvcm1hdCk7 CisJCQkJCQkgICBwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJCQkgICByZXN1 bHRGb3JtYXQsCisJCQkJCQkgICBwYXJhbURlc2MpOwogfQogCiAvKgpAQCAtMTgzMiw3ICsy MjgwLDkgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQljb25zdCBjaGFy ICpjb25zdCAqcGFyYW1WYWx1ZXMsCiAJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJ CQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCi0JCQkJaW50IHJlc3VsdEZvcm1hdCkKKwkJ CQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJCQlpbnQgcmVz dWx0Rm9ybWF0LAorCQkJCVBHcmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaW50CQkJaTsKIAlQ R2NtZFF1ZXVlRW50cnkgKmVudHJ5OwpAQCAtMTg3OSwxNCArMjMyOSw1MyBAQCBQUXNlbmRR dWVyeUd1dHMoUEdjb25uICpjb25uLAogCQlwcVB1dHMoc3RtdE5hbWUsIGNvbm4pIDwgMCkK IAkJZ290byBzZW5kRmFpbGVkOwogCisJLyogQ2hlY2sgZm9yY2UgY29sdW1uIGVuY3J5cHRp b24gKi8KKwlpZiAoblBhcmFtcyA+IDAgJiYgcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25z KQorCXsKKwkJZm9yIChpID0gMDsgaSA8IG5QYXJhbXM7IGkrKykKKwkJeworCQkJaWYgKHBh cmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9uc1tpXSkKKwkJCXsKKwkJCQlpZiAoIShwYXJhbURl c2MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVzY3MgJiYKKwkJCQkJICBwYXJhbURl c2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpKQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJCQkgbGlicHFfZ2V0dGV4dCgi cGFyYW1ldGVyIHdpdGggZm9yY2VkIGVuY3J5cHRpb24gaXMgbm90IHRvIGJlIGVuY3J5cHRl ZFxuIikpOworCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJfQorCQkJfQorCQl9CisJfQor CiAJLyogU2VuZCBwYXJhbWV0ZXIgZm9ybWF0cyAqLwotCWlmIChuUGFyYW1zID4gMCAmJiBw YXJhbUZvcm1hdHMpCisJaWYgKG5QYXJhbXMgPiAwICYmIChwYXJhbUZvcm1hdHMgfHwgKHBh cmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MpKSkKIAl7CiAJCWlmIChwcVB1dElu dChuUGFyYW1zLCAyLCBjb25uKSA8IDApCiAJCQlnb3RvIHNlbmRGYWlsZWQ7CisKIAkJZm9y IChpID0gMDsgaSA8IG5QYXJhbXM7IGkrKykKIAkJewotCQkJaWYgKHBxUHV0SW50KHBhcmFt Rm9ybWF0c1tpXSwgMiwgY29ubikgPCAwKQorCQkJaW50CQkJZm9ybWF0ID0gcGFyYW1Gb3Jt YXRzID8gcGFyYW1Gb3JtYXRzW2ldIDogMDsKKworCQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJh bURlc2MtPnBhcmFtRGVzY3MpCisJCQl7CisJCQkJUEdyZXNQYXJhbURlc2MgKnBkID0gJnBh cmFtRGVzYy0+cGFyYW1EZXNjc1tpXTsKKworCQkJCWlmIChwZC0+Y2VraWQpCisJCQkJewor CQkJCQlpZiAoZm9ybWF0ICE9IDApCisJCQkJCXsKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkJCSBsaWJwcV9nZXR0ZXh0KCJm b3JtYXQgbXVzdCBiZSB0ZXh0IGZvciBlbmNyeXB0ZWQgcGFyYW1ldGVyXG4iKSk7CisJCQkJ CQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJCX0KKwkJCQkJZm9ybWF0ID0gMTsKKwkJCQkJZm9y bWF0IHw9IDB4MTA7CisJCQkJfQorCQkJfQorCisJCQlpZiAocHFQdXRJbnQoZm9ybWF0LCAy LCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5kRmFpbGVkOwogCQl9CiAJfQpAQCAtMTkwNSw2 ICsyMzk0LDcgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJaWYgKHBhcmFt VmFsdWVzICYmIHBhcmFtVmFsdWVzW2ldKQogCQl7CiAJCQlpbnQJCQluYnl0ZXM7CisJCQlj b25zdCBjaGFyICpwYXJhbVZhbHVlOwogCiAJCQlpZiAocGFyYW1Gb3JtYXRzICYmIHBhcmFt Rm9ybWF0c1tpXSAhPSAwKQogCQkJewpAQCAtMTkyMyw5ICsyNDEzLDU0IEBAIFBRc2VuZFF1 ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJLyogdGV4dCBwYXJhbWV0ZXIsIGRvIG5vdCB1 c2UgcGFyYW1MZW5ndGhzICovCiAJCQkJbmJ5dGVzID0gc3RybGVuKHBhcmFtVmFsdWVzW2ld KTsKIAkJCX0KKworCQkJcGFyYW1WYWx1ZSA9IHBhcmFtVmFsdWVzW2ldOworCisJCQlpZiAo cGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjcyAmJiBwYXJhbURlc2MtPnBhcmFt RGVzY3NbaV0uY2VraWQpCisJCQl7CisjaWZkZWYgVVNFX1NTTAorCQkJCWJvb2wJCWVuY19k ZXQgPSAocGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmZsYWdzICYgMHgwMSkgIT0gMDsKKwkJ CQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKwkJCQljaGFyCSAgICplbmNfcGFyYW1WYWx1ZTsK KwkJCQlpbnQJCQllbmNfbmJ5dGVzID0gbmJ5dGVzOworCisJCQkJZm9yIChpbnQgaiA9IDA7 IGogPCBjb25uLT5uY2VrczsgaisrKQorCQkJCXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0u Y2VraWQgPT0gcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2lkKQorCQkJCQl7CisJCQkJ CQljZWsgPSAmY29ubi0+Y2Vrc1tqXTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQor CQkJCWlmICghY2VrKQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVy cm9yTWVzc2FnZSwKKwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRp b24ga2V5IG5vdCBmb3VuZFxuIikpOworCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJfQor CisJCQkJZW5jX3BhcmFtVmFsdWUgPSAoY2hhciAqKSBlbmNyeXB0X3ZhbHVlKGNvbm4sIGNl aywgcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2FsZywKKwkJCQkJCQkJCQkJCQkJKGNv bnN0IHVuc2lnbmVkIGNoYXIgKikgcGFyYW1WYWx1ZSwgJmVuY19uYnl0ZXMsIGVuY19kZXQp OworCQkJCWlmICghZW5jX3BhcmFtVmFsdWUpCisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwor CQkJCWlmIChwcVB1dEludChlbmNfbmJ5dGVzLCA0LCBjb25uKSA8IDAgfHwKKwkJCQkJcHFQ dXRuY2hhcihlbmNfcGFyYW1WYWx1ZSwgZW5jX25ieXRlcywgY29ubikgPCAwKQorCQkJCQln b3RvIHNlbmRGYWlsZWQ7CisKKwkJCQlmcmVlKGVuY19wYXJhbVZhbHVlKTsKKyNlbHNlCisJ CQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJICBs aWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMg YnVpbGRcbiIpKTsKKwkJCQlnb3RvIHNlbmRGYWlsZWQ7CisjZW5kaWYKKwkJCX0KKwkJCWVs c2UKKwkJCXsKIAkJCWlmIChwcVB1dEludChuYnl0ZXMsIDQsIGNvbm4pIDwgMCB8fAotCQkJ CXBxUHV0bmNoYXIocGFyYW1WYWx1ZXNbaV0sIG5ieXRlcywgY29ubikgPCAwKQorCQkJCXBx UHV0bmNoYXIocGFyYW1WYWx1ZSwgbmJ5dGVzLCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5k RmFpbGVkOworCQkJfQogCQl9CiAJCWVsc2UKIAkJewpAQCAtMjM3OSwxMiArMjkxNCwyNyBA QCBQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkgICBjb25zdCBpbnQgKnBhcmFt TGVuZ3RocywKIAkJCSAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJICAgaW50IHJl c3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFleGVjUHJlcGFyZWQyKGNvbm4sIHN0bXROYW1l LCBuUGFyYW1zLCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIE5V TEwsIHJlc3VsdEZvcm1hdCwgTlVMTCk7Cit9CisKK1BHcmVzdWx0ICoKK1BRZXhlY1ByZXBh cmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJaW50 IG5QYXJhbXMsCisJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCWNv bnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAor CQkJCWNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCWludCBy ZXN1bHRGb3JtYXQsCisJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRZXhl Y1N0YXJ0KGNvbm4pKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAoIVBRc2VuZFF1ZXJ5UHJlcGFy ZWQoY29ubiwgc3RtdE5hbWUsCi0JCQkJCQkJIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJh bUxlbmd0aHMsCi0JCQkJCQkJIHBhcmFtRm9ybWF0cywgcmVzdWx0Rm9ybWF0KSkKKwlpZiAo IVBRc2VuZFF1ZXJ5UHJlcGFyZWQyKGNvbm4sIHN0bXROYW1lLAorCQkJCQkJCSAgblBhcmFt cywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywKKwkJCQkJCQkgIHBhcmFtRm9ybWF0cywg cGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJCSAgcmVzdWx0Rm9ybWF0LCBw YXJhbURlc2MpKQogCQlyZXR1cm4gTlVMTDsKIAlyZXR1cm4gUFFleGVjRmluaXNoKGNvbm4p OwogfQpAQCAtMzY4Miw2ICs0MjMyLDE3IEBAIFBRZm1vZChjb25zdCBQR3Jlc3VsdCAqcmVz LCBpbnQgZmllbGRfbnVtKQogCQlyZXR1cm4gMDsKIH0KIAoraW50CitQUWZpc2VuY3J5cHRl ZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKQoreworCWlmICghY2hlY2tf ZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChy ZXMtPmF0dERlc2NzKQorCQlyZXR1cm4gKHJlcy0+YXR0RGVzY3NbZmllbGRfbnVtXS5jZWtp ZCAhPSAwKTsKKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogY2hhciAqCiBQUWNtZFN0 YXR1cyhQR3Jlc3VsdCAqcmVzKQogewpAQCAtMzg2Nyw2ICs0NDI4LDE3IEBAIFBRcGFyYW10 eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW0pCiAJCXJldHVybiBJbnZh bGlkT2lkOwogfQogCitpbnQKK1BRcGFyYW1pc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAq cmVzLCBpbnQgcGFyYW1fbnVtKQoreworCWlmICghY2hlY2tfcGFyYW1fbnVtYmVyKHJlcywg cGFyYW1fbnVtKSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChyZXMtPnBhcmFtRGVzY3MpCisJ CXJldHVybiAocmVzLT5wYXJhbURlc2NzW3BhcmFtX251bV0uY2VraWQgIT0gMCk7CisJZWxz ZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIAogLyogUFFzZXRub25ibG9ja2luZzoKICAqCXNl dHMgdGhlIFBHY29ubidzIGRhdGFiYXNlIGNvbm5lY3Rpb24gbm9uLWJsb2NraW5nIGlmIHRo ZSBhcmcgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJv dG9jb2wzLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwppbmRleCBm MjY3ZGZkMzNjLi4xOWVjNTcyNzY0IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2Nv bDMuYwpAQCAtNDUsNiArNDUsOCBAQCBzdGF0aWMgaW50CWdldFJvd0Rlc2NyaXB0aW9ucyhQ R2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRQYXJhbURlc2Ny aXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRB bm90aGVyVHVwbGUoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBpbnQJ Z2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubik7CitzdGF0aWMgaW50CWdldENvbHVt bk1hc3RlcktleShQR2Nvbm4gKmNvbm4pOworc3RhdGljIGludAlnZXRDb2x1bW5FbmNyeXB0 aW9uS2V5KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdldE5vdGlmeShQR2Nvbm4gKmNv bm4pOwogc3RhdGljIGludAlnZXRDb3B5U3RhcnQoUEdjb25uICpjb25uLCBFeGVjU3RhdHVz VHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50CWdldFJlYWR5Rm9yUXVlcnkoUEdjb25uICpj b25uKTsKQEAgLTMxOSw2ICszMjEsMjIgQEAgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4p CiAJCQkJCWlmIChwcUdldEludCgmKGNvbm4tPmJlX2tleSksIDQsIGNvbm4pKQogCQkJCQkJ cmV0dXJuOwogCQkJCQlicmVhazsKKwkJCQljYXNlICd5JzoJCS8qIENvbHVtbiBNYXN0ZXIg S2V5ICovCisJCQkJCWlmIChnZXRDb2x1bW5NYXN0ZXJLZXkoY29ubikpCisJCQkJCXsKKwkJ CQkJCS8vIFRPRE86IHJldmlldyBlcnJvciBoYW5kbGluZyBoZXJlCisJCQkJCQlwcVNhdmVF cnJvclJlc3VsdChjb25uKTsKKwkJCQkJCXBxSW50ZXJuYWxOb3RpY2UoJmNvbm4tPm5vdGlj ZUhvb2tzLCAiJXMiLCBjb25uLT5lcnJvck1lc3NhZ2UuZGF0YSk7CisJCQkJCX0KKwkJCQkJ YnJlYWs7CisJCQkJY2FzZSAnWSc6CQkvKiBDb2x1bW4gRW5jcnlwdGlvbiBLZXkgKi8KKwkJ CQkJaWYgKGdldENvbHVtbkVuY3J5cHRpb25LZXkoY29ubikpCisJCQkJCXsKKwkJCQkJCS8v IFRPRE86IHJldmlldyBlcnJvciBoYW5kbGluZyBoZXJlCisJCQkJCQlwcVNhdmVFcnJvclJl c3VsdChjb25uKTsKKwkJCQkJCXBxSW50ZXJuYWxOb3RpY2UoJmNvbm4tPm5vdGljZUhvb2tz LCAiJXMiLCBjb25uLT5lcnJvck1lc3NhZ2UuZGF0YSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7 CiAJCQkJY2FzZSAnVCc6CQkvKiBSb3cgRGVzY3JpcHRpb24gKi8KIAkJCQkJaWYgKGNvbm4t PmVycm9yX3Jlc3VsdCB8fAogCQkJCQkJKGNvbm4tPnJlc3VsdCAhPSBOVUxMICYmCkBAIC01 NzYsNiArNTk0LDggQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1z Z0xlbmd0aCkKIAkJaW50CQkJdHlwbGVuOwogCQlpbnQJCQlhdHR0eXBtb2Q7CiAJCWludAkJ CWZvcm1hdDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKIAogCQlpZiAocHFH ZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSB8fAogCQkJcHFHZXRJbnQoJnRhYmxlaWQs IDQsIGNvbm4pIHx8CkBAIC01ODMsNyArNjAzLDkgQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBH Y29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJCXBxR2V0SW50KCZ0eXBpZCwgNCwgY29u bikgfHwKIAkJCXBxR2V0SW50KCZ0eXBsZW4sIDIsIGNvbm4pIHx8CiAJCQlwcUdldEludCgm YXR0dHlwbW9kLCA0LCBjb25uKSB8fAotCQkJcHFHZXRJbnQoJmZvcm1hdCwgMiwgY29ubikp CisJCQlwcUdldEludCgmZm9ybWF0LCAyLCBjb25uKSB8fAorCQkJcHFHZXRJbnQoJmNla2lk LCA0LCBjb25uKSB8fAorCQkJcHFHZXRJbnQoJmNla2FsZywgMiwgY29ubikpCiAJCXsKIAkJ CS8qIFdlIHNob3VsZCBub3QgcnVuIG91dCBvZiBkYXRhIGhlcmUsIHNvIGNvbXBsYWluICov CiAJCQllcnJtc2cgPSBsaWJwcV9nZXR0ZXh0KCJpbnN1ZmZpY2llbnQgZGF0YSBpbiBcIlRc IiBtZXNzYWdlIik7CkBAIC02MTEsOCArNjMzLDEwIEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQ R2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCXJlc3VsdC0+YXR0RGVzY3NbaV0udHlw aWQgPSB0eXBpZDsKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBsZW4gPSB0eXBsZW47CiAJ CXJlc3VsdC0+YXR0RGVzY3NbaV0uYXR0dHlwbW9kID0gYXR0dHlwbW9kOworCQlyZXN1bHQt PmF0dERlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3VsdC0+YXR0RGVzY3NbaV0uY2Vr YWxnID0gY2VrYWxnOwogCi0JCWlmIChmb3JtYXQgIT0gMSkKKwkJaWYgKChmb3JtYXQgJiAw eDBGKSAhPSAxKQogCQkJcmVzdWx0LT5iaW5hcnkgPSAwOwogCX0KIApAQCAtNzE0LDEwICs3 MzgsMjIgQEAgZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVu Z3RoKQogCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCiAJewogCQlpbnQJCQl0eXBp ZDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKKwkJaW50CQkJZmxhZ3M7CiAK IAkJaWYgKHBxR2V0SW50KCZ0eXBpZCwgNCwgY29ubikpCiAJCQlnb3RvIG5vdF9lbm91Z2hf ZGF0YTsKIAkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLnR5cGlkID0gdHlwaWQ7CisJCWlmIChw cUdldEludCgmY2VraWQsIDQsIGNvbm4pKQorCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJ CXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5jZWtpZCA9IGNla2lkOworCQlpZiAocHFHZXRJbnQo JmNla2FsZywgMiwgY29ubikpCisJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJcmVzdWx0 LT5wYXJhbURlc2NzW2ldLmNla2FsZyA9IGNla2FsZzsKKwkJaWYgKHBxR2V0SW50KCZmbGFn cywgMiwgY29ubikpCisJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJcmVzdWx0LT5wYXJh bURlc2NzW2ldLmZsYWdzID0gZmxhZ3M7CiAJfQogCiAJLyogU3VjY2VzcyEgKi8KQEAgLTE0 NDMsNiArMTQ3OSw4OSBAQCBnZXRQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uKQogCXJl dHVybiAwOwogfQogCisvKgorICogQXR0ZW1wdCB0byByZWFkIGEgQ29sdW1uTWFzdGVyS2V5 IG1lc3NhZ2UuCisgKiBFbnRyeTogJ3knIG1lc3NhZ2UgdHlwZSBhbmQgbGVuZ3RoIGhhdmUg YWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDogcmV0dXJucyAwIGlmIHN1Y2Nlc3Nm dWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1cm5zIEVPRiBpZiBub3QgZW5vdWdo IGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNv bm4pCit7CisJaW50CQkJa2V5aWQ7CisJY2hhcgkgICAqa2V5bmFtZTsKKwljaGFyCSAgICpr ZXlyZWFsbTsKKwlpbnQJCQlyZXQ7CisKKwkvKiBHZXQgdGhlIGtleSBJRCAqLworCWlmIChw cUdldEludCgma2V5aWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0 IHRoZSBrZXkgbmFtZSAqLworCWlmIChwcUdldHMoJmNvbm4tPndvcmtCdWZmZXIsIGNvbm4p ICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5bmFtZSA9IHN0cmR1cChjb25uLT53b3JrQnVm ZmVyLmRhdGEpOworCWlmICgha2V5bmFtZSkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhl IGtleSByZWFsbSAqLworCWlmIChwcUdldHMoJmNvbm4tPndvcmtCdWZmZXIsIGNvbm4pICE9 IDApCisJCXJldHVybiBFT0Y7CisJa2V5cmVhbG0gPSBzdHJkdXAoY29ubi0+d29ya0J1ZmZl ci5kYXRhKTsKKwlpZiAoIWtleXJlYWxtKQorCQlyZXR1cm4gRU9GOworCS8qIEFuZCBzYXZl IGl0ICovCisJcmV0ID0gcHFTYXZlQ29sdW1uTWFzdGVyS2V5KGNvbm4sIGtleWlkLCBrZXlu YW1lLCBrZXlyZWFsbSk7CisKKwlmcmVlKGtleW5hbWUpOworCWZyZWUoa2V5cmVhbG0pOwor CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEF0dGVtcHQgdG8gcmVhZCBhIENvbHVtbkVu Y3J5cHRpb25LZXkgbWVzc2FnZS4KKyAqIEVudHJ5OiAnWScgbWVzc2FnZSB0eXBlIGFuZCBs ZW5ndGggaGF2ZSBhbHJlYWR5IGJlZW4gY29uc3VtZWQuCisgKiBFeGl0OiByZXR1cm5zIDAg aWYgc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIG1lc3NhZ2UuCisgKgkJIHJldHVybnMgRU9GIGlm IG5vdCBlbm91Z2ggZGF0YS4KKyAqLworc3RhdGljIGludAorZ2V0Q29sdW1uRW5jcnlwdGlv bktleShQR2Nvbm4gKmNvbm4pCit7CisJaW50CQkJa2V5aWQ7CisJaW50CQkJY21raWQ7CisJ aW50CQkJY21rYWxnOworCWNoYXIJICAgKmJ1ZjsKKwlpbnQJCQl2YWxsZW47CisKKwkvKiBH ZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdldEludCgma2V5aWQsIDQsIGNvbm4pICE9IDAp CisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBDTUsgSUQgKi8KKwlpZiAocHFHZXRJbnQo JmNta2lkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUgQ01L IGFsZ29yaXRobSAqLworCWlmIChwcUdldEludCgmY21rYWxnLCAyLCBjb25uKSAhPSAwKQor CQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IGRhdGEgbGVuICovCisJaWYgKHBxR2V0 SW50KCZ2YWxsZW4sIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRo ZSBrZXkgZGF0YSAqLworCWJ1ZiA9IG1hbGxvYyh2YWxsZW4pOworCWlmICghYnVmKQorCQly ZXR1cm4gRU9GOworCWlmIChwcUdldG5jaGFyKGJ1ZiwgdmFsbGVuLCBjb25uKSAhPSAwKQor CXsKKwkJZnJlZShidWYpOworCQlyZXR1cm4gRU9GOworCX0KKwkvKiBBbmQgc2F2ZSBpdCAq LworCWlmIChwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KGNvbm4sIGtleWlkLCBjbWtpZCwg Y21rYWxnLCAodW5zaWduZWQgY2hhciAqKSBidWYsIHZhbGxlbikgIT0gMCkKKwl7CisJCWZy ZWUoYnVmKTsKKwkJcmV0dXJuIEVPRjsKKwl9CisJZnJlZShidWYpOworCXJldHVybiAwOwor fQogCiAvKgogICogQXR0ZW1wdCB0byByZWFkIGEgTm90aWZ5IHJlc3BvbnNlIG1lc3NhZ2Uu CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYwppbmRleCA1ZDY4Y2YyZWIzLi5lMDhjYmNmZjMz IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMKQEAgLTQ1OCw3ICs0NTgsMTIgQEAgcHFU cmFjZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3Is IGJvb2wgcmVncmVzcykKIAluZmllbGRzID0gcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3Nh Z2UsIGN1cnNvcik7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8IG5maWVsZHM7IGkrKykKKwl7 CisJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOwog CQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJ cHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCXBxVHJhY2VPdXRw dXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOworCX0KIH0KIAogLyogUm93RGVzY3JpcHRp b24gKi8KQEAgLTQ3OSw2ICs0ODQsOCBAQCBwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25z dCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCQlwcVRyYWNl T3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAkJcHFUcmFjZU91dHB1dEludDMy KGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOwogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwg bWVzc2FnZSwgY3Vyc29yKTsKKwkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1 cnNvciwgcmVncmVzcyk7CisJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJz b3IpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt ZmUuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggNzk4NjQ0NWYx YS4uNDJmYmUwY2Q0OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt ZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBAIC0yNjcsNiAr MjY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgcGdyZXNBdHREZXNjCiAJT2lkCQkJdHlwaWQ7CQkJ LyogdHlwZSBpZCAqLwogCWludAkJCXR5cGxlbjsJCQkvKiB0eXBlIHNpemUgKi8KIAlpbnQJ CQlhdHR0eXBtb2Q7CQkvKiB0eXBlLXNwZWNpZmljIG1vZGlmaWVyIGluZm8gKi8KKwlPaWQJ CQljZWtpZDsKKwlpbnQJCQljZWthbGc7CiB9IFBHcmVzQXR0RGVzYzsKIAogLyogLS0tLS0t LS0tLS0tLS0tLQpAQCAtNDM4LDYgKzQ0MCwxNSBAQCBleHRlcm4gUEdyZXN1bHQgKlBRZXhl Y1ByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0 aHMsCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQkJCQlpbnQgcmVz dWx0Rm9ybWF0KTsKK2V4dGVybiBQR3Jlc3VsdCAqUFFleGVjUHJlcGFyZWQyKFBHY29ubiAq Y29ubiwKKwkJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCQkgaW50IG5Q YXJhbXMsCisJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJ CQkJCSBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFy YW1Gb3JtYXRzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlw dGlvbnMsCisJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkgUEdyZXN1bHQg KnBhcmFtRGVzYyk7CiAKIC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9yIGFz eW5jaHJvbm91cyBxdWVyaWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9MSU1J VCA2NTUzNQpAQCAtNDYxLDYgKzQ3MiwxNSBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJl cGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywK IAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRG b3JtYXQpOworZXh0ZXJuIGludAlQUXNlbmRRdWVyeVByZXBhcmVkMihQR2Nvbm4gKmNvbm4s CisJCQkJCQkJCSBjb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJIGludCBuUGFyYW1z LAorCQkJCQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkJCQkg Y29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9y bWF0cywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25z LAorCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJIFBHcmVzdWx0ICpwYXJh bURlc2MpOwogZXh0ZXJuIGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25uICpjb25uKTsK IGV4dGVybiBQR3Jlc3VsdCAqUFFnZXRSZXN1bHQoUEdjb25uICpjb25uKTsKIApAQCAtNTMx LDYgKzU1MSw3IEBAIGV4dGVybiBpbnQJUFFmZm9ybWF0KGNvbnN0IFBHcmVzdWx0ICpyZXMs IGludCBmaWVsZF9udW0pOwogZXh0ZXJuIE9pZAlQUWZ0eXBlKGNvbnN0IFBHcmVzdWx0ICpy ZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWZzaXplKGNvbnN0IFBHcmVzdWx0 ICpyZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWZtb2QoY29uc3QgUEdyZXN1 bHQgKnJlcywgaW50IGZpZWxkX251bSk7CitleHRlcm4gaW50CVBRZmlzZW5jcnlwdGVkKGNv bnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGNoYXIgKlBRY21k U3RhdHVzKFBHcmVzdWx0ICpyZXMpOwogZXh0ZXJuIGNoYXIgKlBRb2lkU3RhdHVzKGNvbnN0 IFBHcmVzdWx0ICpyZXMpOwkvKiBvbGQgYW5kIHVnbHkgKi8KIGV4dGVybiBPaWQJUFFvaWRW YWx1ZShjb25zdCBQR3Jlc3VsdCAqcmVzKTsJLyogbmV3IGFuZCBpbXByb3ZlZCAqLwpAQCAt NTQwLDYgKzU2MSw3IEBAIGV4dGVybiBpbnQJUFFnZXRsZW5ndGgoY29uc3QgUEdyZXN1bHQg KnJlcywgaW50IHR1cF9udW0sIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWdldGlz bnVsbChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxkX251bSk7 CiBleHRlcm4gaW50CVBRbnBhcmFtcyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsKIGV4dGVybiBP aWQJUFFwYXJhbXR5cGUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSk7Citl eHRlcm4gaW50CVBRcGFyYW1pc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQg cGFyYW1fbnVtKTsKIAogLyogRGVzY3JpYmUgcHJlcGFyZWQgc3RhdGVtZW50cyBhbmQgcG9y dGFscyAqLwogZXh0ZXJuIFBHcmVzdWx0ICpQUWRlc2NyaWJlUHJlcGFyZWQoUEdjb25uICpj b25uLCBjb25zdCBjaGFyICpzdG10KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2xpYnBxLWludC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKaW5k ZXggNTFhYjUxZjlmOS4uZWQ4MDNiMWY4OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50 LmgKQEAgLTExMSw2ICsxMTEsOSBAQCB1bmlvbiBwZ3Jlc3VsdF9kYXRhCiB0eXBlZGVmIHN0 cnVjdCBwZ3Jlc1BhcmFtRGVzYwogewogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8K KwlPaWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CisJaW50CQkJZmxhZ3M7CiB9IFBHcmVz UGFyYW1EZXNjOwogCiAvKgpAQCAtMzQyLDYgKzM0NSwyNiBAQCB0eXBlZGVmIHN0cnVjdCBw Z19jb25uX2hvc3QKIAkJCQkJCQkJICogZm91bmQgaW4gcGFzc3dvcmQgZmlsZS4gKi8KIH0g cGdfY29ubl9ob3N0OwogCisvKgorICogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBkYXRh CisgKi8KKworLyogY29sdW1uIG1hc3RlciBrZXkgKi8KK3R5cGVkZWYgc3RydWN0IHBnX2Nt aworeworCU9pZAkJCWNta2lkOworCWNoYXIJICAgKmNta25hbWU7CisJY2hhcgkgICAqY21r cmVhbG07Cit9IFBHQ01LOworCisvKiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KK3R5cGVk ZWYgc3RydWN0IHBnX2NlaworeworCU9pZAkJCWNla2lkOworCXVuc2lnbmVkIGNoYXIgKmNl a2RhdGE7CQkvKiAoZGVjcnlwdGVkKSAqLworCXNpemVfdAkJY2VrZGF0YWxlbjsKK30gUEdD RUs7CisKIC8qCiAgKiBQR2Nvbm4gc3RvcmVzIGFsbCB0aGUgc3RhdGUgZGF0YSBhc3NvY2lh dGVkIHdpdGggYSBzaW5nbGUgY29ubmVjdGlvbgogICogdG8gYSBiYWNrZW5kLgpAQCAtMzk1 LDYgKzQxOCw3IEBAIHN0cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqc3NsX21pbl9wcm90b2Nv bF92ZXJzaW9uOwkvKiBtaW5pbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hhcgkg ICAqc3NsX21heF9wcm90b2NvbF92ZXJzaW9uOwkvKiBtYXhpbXVtIFRMUyBwcm90b2NvbCB2 ZXJzaW9uICovCiAJY2hhcgkgICAqdGFyZ2V0X3Nlc3Npb25fYXR0cnM7CS8qIGRlc2lyZWQg c2Vzc2lvbiBwcm9wZXJ0aWVzICovCisJY2hhcgkgICAqY21rbG9va3VwOwkJLyogQ01LIGxv b2t1cCBzcGVjaWZpY2F0aW9uICovCiAKIAkvKiBPcHRpb25hbCBmaWxlIHRvIHdyaXRlIHRy YWNlIGluZm8gdG8gKi8KIAlGSUxFCSAgICpQZmRlYnVnOwpAQCAtNDc3LDYgKzUwMSwxMiBA QCBzdHJ1Y3QgcGdfY29ubgogCVBHQ29udGV4dFZpc2liaWxpdHkgc2hvd19jb250ZXh0Owkv KiB3aGV0aGVyIHRvIHNob3cgQ09OVEVYVCBmaWVsZCAqLwogCVBHbG9iamZ1bmNzICpsb2Jq ZnVuY3M7CQkvKiBwcml2YXRlIHN0YXRlIGZvciBsYXJnZS1vYmplY3QgYWNjZXNzIGZucyAq LwogCisJLyogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBkYXRhICovCisJaW50CQkJbmNt a3M7CisJUEdDTUsJICAgKmNta3M7CisJaW50CQkJbmNla3M7CisJUEdDRUsJICAgKmNla3M7 CisKIAkvKiBCdWZmZXIgZm9yIGRhdGEgcmVjZWl2ZWQgZnJvbSBiYWNrZW5kIGFuZCBub3Qg eWV0IHByb2Nlc3NlZCAqLwogCWNoYXIJICAgKmluQnVmZmVyOwkJLyogY3VycmVudGx5IGFs bG9jYXRlZCBidWZmZXIgKi8KIAlpbnQJCQlpbkJ1ZlNpemU7CQkvKiBhbGxvY2F0ZWQgc2l6 ZSBvZiBidWZmZXIgKi8KQEAgLTY3Miw2ICs3MDIsMTAgQEAgZXh0ZXJuIHZvaWQgcHFTYXZl TWVzc2FnZUZpZWxkKFBHcmVzdWx0ICpyZXMsIGNoYXIgY29kZSwKIAkJCQkJCQkgICBjb25z dCBjaGFyICp2YWx1ZSk7CiBleHRlcm4gdm9pZCBwcVNhdmVQYXJhbWV0ZXJTdGF0dXMoUEdj b25uICpjb25uLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnZh bHVlKTsKK2V4dGVybiBpbnQJcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwg aW50IGtleWlkLCBjb25zdCBjaGFyICprZXluYW1lLAorCQkJCQkJCQkgIGNvbnN0IGNoYXIg KmtleXJlYWxtKTsKK2V4dGVybiBpbnQJcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShQR2Nv bm4gKmNvbm4sIGludCBrZXlpZCwgaW50IGNta2lkLCBpbnQgY21rYWxnLAorCQkJCQkJCQkJ ICBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50IGxlbik7CiBleHRlcm4gaW50CXBx Um93UHJvY2Vzc29yKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApOwogZXh0 ZXJuIHZvaWQgcHFDb21tYW5kUXVldWVBZHZhbmNlKFBHY29ubiAqY29ubik7CiBleHRlcm4g aW50CVBRc2VuZFF1ZXJ5Q29udGludWUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpxdWVy eSk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9ubHMubWsKaW5kZXggMWY2MmJhMWI1Ny4uODQ0ZTA4NWU2ZCAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL25scy5tawpAQCAtMSw2ICsxLDYgQEAKICMgc3JjL2ludGVyZmFjZXMvbGli cHEvbmxzLm1rCiBDQVRBTE9HX05BTUUgICAgID0gbGlicHEKIEFWQUlMX0xBTkdVQUdFUyAg PSBjcyBkZSBlbCBlcyBmciBoZSBpdCBqYSBrbyBwbCBwdF9CUiBydSBzdiB0ciB1ayB6aF9D TiB6aF9UVwotR0VUVEVYVF9GSUxFUyAgICA9IGZlLWF1dGguYyBmZS1hdXRoLXNjcmFtLmMg ZmUtY29ubmVjdC5jIGZlLWV4ZWMuYyBmZS1nc3NhcGktY29tbW9uLmMgZmUtbG9iai5jIGZl LW1pc2MuYyBmZS1wcm90b2NvbDMuYyBmZS1zZWN1cmUuYyBmZS1zZWN1cmUtY29tbW9uLmMg ZmUtc2VjdXJlLWdzc2FwaS5jIGZlLXNlY3VyZS1vcGVuc3NsLmMgd2luMzIuYyAuLi8uLi9w b3J0L3RocmVhZC5jCitHRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2Ny YW0uYyBmZS1jb25uZWN0LmMgZmUtZW5jcnlwdC1vcGVuc3NsLmMgZmUtZXhlYy5jIGZlLWdz c2FwaS1jb21tb24uYyBmZS1sb2JqLmMgZmUtbWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNl Y3VyZS5jIGZlLXNlY3VyZS1jb21tb24uYyBmZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJl LW9wZW5zc2wuYyB3aW4zMi5jIC4uLy4uL3BvcnQvdGhyZWFkLmMKIEdFVFRFWFRfVFJJR0dF UlMgPSBsaWJwcV9nZXR0ZXh0IHBxSW50ZXJuYWxOb3RpY2U6MgogR0VUVEVYVF9GTEFHUyAg ICA9IGxpYnBxX2dldHRleHQ6MTpwYXNzLWMtZm9ybWF0IHBxSW50ZXJuYWxOb3RpY2U6Mjpj LWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdu b3JlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlCmluZGV4IDZiYTc4 YWRiNjcuLjE4NDY1OTRlYzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rl c3QvLmdpdGlnbm9yZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25v cmUKQEAgLTEsMiArMSwzIEBACisvbGlicHFfdGVzdF9lbmNyeXB0CiAvbGlicHFfdGVzdGNs aWVudAogL2xpYnBxX3VyaV9yZWdyZXNzCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS90ZXN0L01ha2VmaWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmls ZQppbmRleCA3NWFjMDhmOTQzLi5iMWViYWI5MGQ0IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS90ZXN0L01ha2VmaWxlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rl c3QvTWFrZWZpbGUKQEAgLTE1LDEwICsxNSwxNyBAQCBvdmVycmlkZSBDUFBGTEFHUyA6PSAt SSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQogTERGTEFHU19JTlRFUk5BTCArPSAkKGxp YnBxX3BncG9ydCkKIAogUFJPR1MgPSBsaWJwcV90ZXN0Y2xpZW50IGxpYnBxX3VyaV9yZWdy ZXNzCitpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQorUFJPR1MgKz0gbGlicHFfdGVzdF9l bmNyeXB0CitlbmRpZgorCiAKIGFsbDogJChQUk9HUykKIAogJChQUk9HUyk6ICQoV0lOMzJS RVMpCiAKK2xpYnBxX3Rlc3RfZW5jcnlwdDogLi4vZmUtZW5jcnlwdC1vcGVuc3NsLmMKKwkk KENDKSAkKENQUEZMQUdTKSAtRFRFU1RfRU5DUllQVCAkKENGTEFHUykgJF4gJChMREZMQUdT KSAkKExERkxBR1NfRVgpICQoTElCUykgLW8gJEAkKFgpCisKIGNsZWFuIGRpc3RjbGVhbiBt YWludGFpbmVyLWNsZWFuOgogCXJtIC1mICQoUFJPR1MpICoubwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggNWYyZWY4OGNm My4uYTAzMDQ3ZThmYSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0 ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3Rl ZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC05NTMyLDcgKzk1MzIsNyBAQCBETyAkZCQKICAgICBF TkQ7CiAkZCQ7CiBFUlJPUjogIGludmFsaWQgb3B0aW9uICJwYXNzd29yZCIKLUhJTlQ6ICBW YWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dCBhcmU6IHNlcnZpY2UsIHBhc3NmaWxlLCBj aGFubmVsX2JpbmRpbmcsIGNvbm5lY3RfdGltZW91dCwgZGJuYW1lLCBob3N0LCBob3N0YWRk ciwgcG9ydCwgb3B0aW9ucywgYXBwbGljYXRpb25fbmFtZSwga2VlcGFsaXZlcywga2VlcGFs aXZlc19pZGxlLCBrZWVwYWxpdmVzX2ludGVydmFsLCBrZWVwYWxpdmVzX2NvdW50LCB0Y3Bf dXNlcl90aW1lb3V0LCBzc2xtb2RlLCBzc2xjb21wcmVzc2lvbiwgc3NsY2VydCwgc3Nsa2V5 LCBzc2xyb290Y2VydCwgc3NsY3JsLCBzc2xjcmxkaXIsIHNzbHNuaSwgcmVxdWlyZXBlZXIs IHNzbF9taW5fcHJvdG9jb2xfdmVyc2lvbiwgc3NsX21heF9wcm90b2NvbF92ZXJzaW9uLCBn c3NlbmNtb2RlLCBrcmJzcnZuYW1lLCBnc3NsaWIsIHRhcmdldF9zZXNzaW9uX2F0dHJzLCB1 c2VfcmVtb3RlX2VzdGltYXRlLCBmZHdfc3RhcnR1cF9jb3N0LCBmZHdfdHVwbGVfY29zdCwg ZXh0ZW5zaW9ucywgdXBkYXRhYmxlLCB0cnVuY2F0YWJsZSwgZmV0Y2hfc2l6ZSwgYmF0Y2hf c2l6ZSwgYXN5bmNfY2FwYWJsZSwgcGFyYWxsZWxfY29tbWl0LCBrZWVwX2Nvbm5lY3Rpb25z CitISU5UOiAgVmFsaWQgb3B0aW9ucyBpbiB0aGlzIGNvbnRleHQgYXJlOiBzZXJ2aWNlLCBw YXNzZmlsZSwgY2hhbm5lbF9iaW5kaW5nLCBjb25uZWN0X3RpbWVvdXQsIGRibmFtZSwgaG9z dCwgaG9zdGFkZHIsIHBvcnQsIG9wdGlvbnMsIGFwcGxpY2F0aW9uX25hbWUsIGtlZXBhbGl2 ZXMsIGtlZXBhbGl2ZXNfaWRsZSwga2VlcGFsaXZlc19pbnRlcnZhbCwga2VlcGFsaXZlc19j b3VudCwgdGNwX3VzZXJfdGltZW91dCwgc3NsbW9kZSwgc3NsY29tcHJlc3Npb24sIHNzbGNl cnQsIHNzbGtleSwgc3Nscm9vdGNlcnQsIHNzbGNybCwgc3NsY3JsZGlyLCBzc2xzbmksIHJl cXVpcmVwZWVyLCBzc2xfbWluX3Byb3RvY29sX3ZlcnNpb24sIHNzbF9tYXhfcHJvdG9jb2xf dmVyc2lvbiwgZ3NzZW5jbW9kZSwga3Jic3J2bmFtZSwgZ3NzbGliLCB0YXJnZXRfc2Vzc2lv bl9hdHRycywgY21rbG9va3VwLCB1c2VfcmVtb3RlX2VzdGltYXRlLCBmZHdfc3RhcnR1cF9j b3N0LCBmZHdfdHVwbGVfY29zdCwgZXh0ZW5zaW9ucywgdXBkYXRhYmxlLCB0cnVuY2F0YWJs ZSwgZmV0Y2hfc2l6ZSwgYmF0Y2hfc2l6ZSwgYXN5bmNfY2FwYWJsZSwgcGFyYWxsZWxfY29t bWl0LCBrZWVwX2Nvbm5lY3Rpb25zCiBDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQUxURVIg U0VSVkVSIGxvb3BiYWNrX25vcHcgT1BUSU9OUyAoQUREIHBhc3N3b3JkICdkdW1teXB3Jyki CiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDMgYXQgRVhFQ1VU RQogLS0gSWYgd2UgYWRkIGEgcGFzc3dvcmQgZm9yIG91ciB1c2VyIG1hcHBpbmcgaW5zdGVh ZCwgd2Ugc2hvdWxkIGdldCBhIGRpZmZlcmVudAoKYmFzZS1jb21taXQ6IGQzMTE3ZmMxYTNl ODc3MTdhNTdiZTAxNTM0MDhlNTM4N2UyNjVlMWIKLS0gCjIuMzcuMAoK --------------gC7vd9OZoReC0MCcNI99fYm1--