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 1pBcgJ-0005S1-My for pgsql-hackers@arkaria.postgresql.org; Sat, 31 Dec 2022 14:17:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pBcgI-0003O5-GN for pgsql-hackers@arkaria.postgresql.org; Sat, 31 Dec 2022 14:17:50 +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 1pBcgH-0003Nw-0S for pgsql-hackers@lists.postgresql.org; Sat, 31 Dec 2022 14:17:50 +0000 Received: from new1-smtp.messagingengine.com ([66.111.4.221]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pBcg4-0006bb-7v for pgsql-hackers@postgresql.org; Sat, 31 Dec 2022 14:17:48 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id C53BB5818F7 for ; Sat, 31 Dec 2022 09:17:33 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sat, 31 Dec 2022 09:17:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1672496253; x=1672503453; bh=Iex1Yz3xebRajP53xN4t1O1bzJRA YcQb/mwUxQx7iHY=; b=GC6KwJvVufv/sIRsWbJvjmoA3DvB5Gwf8DpOoWXof+FJ Dm3vQjR3+TejG/caOOAcfXcSWmYobDa07DU7s1AYviiXCI5irchCXfmUsNFW5wdQ DitmTox7HQx7TwtbkZ+2aFuYEQ9ninaFbEKCfSCM3uaSt4mK4s3ZlgcADwG74ypx PNb4O6tU2frQoNsskCIfVx7HEwW+Gkv1/5pdLKfKdOzlN7yo8Ei+3PX65SnG7wVf 4zErU4Wcq61aAw4w7z0PYjnPWwD/DVKH7fU3kQ0JUCwXs6X1FbaoeWmJXSUQ01zu tXumAhJFOopbJTmU0p0GFLOnuYGBWiHz3ivM1xLL9w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrieekgdeivdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfuhffvfhgjsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeekteetfeehvefhvdeltdefgeeluedtkeekkeevieefueffveejueejheffjeei jeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sat, 31 Dec 2022 09:17:27 -0500 (EST) Content-Type: multipart/mixed; boundary="------------zB7MHliRHOtldxpGOgi7MEqD" Message-ID: Date: Sat, 31 Dec 2022 15:17:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> <75f394fa-f539-1875-079c-c654deceed41@enterprisedb.com> <8bcedb49-1496-0755-bd24-1cbabf30ec84@enterprisedb.com> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------zB7MHliRHOtldxpGOgi7MEqD Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 21.12.22 06:46, Peter Eisentraut wrote: > And another update.  The main changes are that I added an 'unspecified' > CMK algorithm, which indicates that the external KMS knows what it is > but the database system doesn't.  This was discussed a while ago.  I > also changed some details about how the "cmklookup" works in libpq. Also > added more code comments and documentation and rearranged some code. > > According to my local todo list, this patch is now complete. Another update, with some merge conflicts resolved. I also fixed up the remaining TODO markers in the code, which had something to do with Perl and Windows. I did some more work on schema handling, e.g., CREATE TABLE / LIKE, views, partitioning etc. on top of encrypted columns, mostly tedious and repetitive, nothing interesting. I also rewrote the code that extracts the underlying tables and columns corresponding to query parameters. It's now much simpler and better encapsulated. --------------zB7MHliRHOtldxpGOgi7MEqD Content-Type: text/plain; charset=UTF-8; name="v14-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v14-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSAxZTJjYWJjMzU3Y2EyZWM5ZDUxNWRkMTJlODMzN2I2NDdiYjFiYzY1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU2F0LCAzMSBEZWMgMjAyMiAxNDo1NTo1OCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjE0XSBUcmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbgoKVGhpcyBmZWF0 dXJlIGVuYWJsZXMgdGhlIGF1dG9tYXRpYywgdHJhbnNwYXJlbnQgZW5jcnlwdGlvbiBhbmQK ZGVjcnlwdGlvbiBvZiBwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRoZSBk YXRhIGZvciB0aG9zZQpjb2x1bW5zIHRoZW4gb25seSBldmVyIGFwcGVhcnMgaW4gY2lwaGVy dGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcwpwcm90ZWN0ZWQgZnJvbSBEQkFzLCBzeXNh ZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywgZXRjLiBhcyB3ZWxsIGFzCmFjY2lkZW50YWwgbGVh a2FnZSB0byBzZXJ2ZXIgbG9ncywgZmlsZS1zeXN0ZW0gYmFja3VwcywgZXRjLiAgVGhlCmNh bm9uaWNhbCB1c2UgY2FzZSBmb3IgdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0IGNh cmQgbnVtYmVycwplbmNyeXB0ZWQsIGluIGFjY29yZGFuY2Ugd2l0aCBQQ0kgRFNTLCBhcyB3 ZWxsIGFzIHNpbWlsYXIgc2l0dWF0aW9ucwppbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5IG51 bWJlcnMgZXRjLiAgT25lIGNhbid0IGRvIGFueSBjb21wdXRhdGlvbnMKd2l0aCBlbmNyeXB0 ZWQgdmFsdWVzIG9uIHRoZSBzZXJ2ZXIsIGJ1dCBmb3IgdGhlc2UgdXNlIGNhc2VzLCB0aGF0 IGlzCm5vdCBuZWNlc3NhcnkuICBUaGlzIGZlYXR1cmUgZG9lcyBzdXBwb3J0IGRldGVybWlu aXN0aWMgZW5jcnlwdGlvbiBhcwphbiBhbHRlcm5hdGl2ZSB0byB0aGUgZGVmYXVsdCByYW5k b21pemVkIGVuY3J5cHRpb24sIHNvIGluIHRoYXQgbW9kZQpvbmUgY2FuIGRvIGVxdWFsaXR5 IGxvb2t1cHMsIGF0IHRoZSBjb3N0IG9mIHNvbWUgc2VjdXJpdHkuCgpUaGlzIGZ1bmN0aW9u YWxpdHkgYWxzbyBleGlzdHMgaW4gb3RoZXIgZGF0YWJhc2UgcHJvZHVjdHMsIGFuZCB0aGUK b3ZlcmFsbCBjb25jZXB0cyB3ZXJlIG1vc3RseSBhZG9wdGVkIGZyb20gdGhlcmUuCgooTm90 ZTogVGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYW55IG9uLWRpc2sgZW5j cnlwdGlvbgpmZWF0dXJlLiAgQm90aCBjYW4gZXhpc3QgaW5kZXBlbmRlbnRseS4pCgpZb3Ug ZGVjbGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3RhdGVt ZW50LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMga2V5 IGNhbGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBpcyBh IGNhdGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBlbmNy eXB0ZWQgYnkgYW4gYXN5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpSU0FFU19PQUVQ X1NIQV8xIG9yIF8yNTYuICBUaGUgQ0VLIHByb2Nlc3MgdXNlcwpBRUFEX0FFU18qX0NCQ19I TUFDX1NIQV8qIHdpdGggc2V2ZXJhbCBzdHJlbmd0aHMuCgpJbiB0aGUgc2VydmVyLCB0aGUg ZW5jcnlwdGVkIGRhdHVtcyBhcmUgc3RvcmVkIGluIHR5cGVzIGNhbGxlZApwZ19lbmNyeXB0 ZWRfcm5kIGFuZCBwZ19lbmNyeXB0ZWRfZGV0IChmb3IgcmFuZG9taXplZCBhbmQKZGV0ZXJt aW5pc3RpYyBlbmNyeXB0aW9uKS4gIFRoZXNlIGFyZSBlc3NlbnRpYWxseSBjb3VzaW5zIG9m IGJ5dGVhLgpGb3IgdGhlIHJlc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSBiZWxvdyB0aGUg cHJvdG9jb2wgaGFuZGxpbmcsIHRoZXJlCmlzIG5vdGhpbmcgc3BlY2lhbCBhYm91dCB0aG9z ZS4gIEZvciBleGFtcGxlLCBwZ19lbmNyeXB0ZWRfcm5kIGhhcyBubwpvcGVyYXRvcnMgYXQg YWxsLCBwZ19lbmNyeXB0ZWRfZGV0IGhhcyBvbmx5IGFuIGVxdWFsaXR5IG9wZXJhdG9yLgpw Z19hdHRyaWJ1dGUgaGFzIGEgbmV3IGNvbHVtbiBhdHRyZWFsdHlwaWQgdGhhdCBzdG9yZXMg dGhlIG9yaWdpbmFsCnR5cGUgb2YgdGhlIGRhdGEgaW4gdGhlIGNvbHVtbi4gIFRoaXMgaXMg b25seSB1c2VkIGZvciBwcm92aWRpbmcgaXQgdG8KY2xpZW50cywgc28gdGhhdCBoaWdoZXIt bGV2ZWwgY2xpZW50cyBjYW4gY29udmVydCB0aGUgZGVjcnlwdGVkIHZhbHVlCnRvIHRoZWly IGFwcHJvcHJpYXRlIGRhdGEgdHlwZXMgaW4gdGhlaXIgZW52aXJvbm1lbnRzLgoKVGhlIHBy b3RvY29sIGV4dGVuc2lvbnMgYXJlIGd1YXJkZWQgYnkgYSBuZXcgcHJvdG9jb2wgZXh0ZW5z aW9uIG9wdGlvbgoiX3BxXy5jb2x1bW5fZW5jcnlwdGlvbiIuICBJZiB0aGlzIGlzIG5vdCBz ZXQsIG5vdGhpbmcgY2hhbmdlcywgdGhlCnByb3RvY29sIHN0YXlzIHRoZSBzYW1lLCBhbmQg bm8gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIGhhcHBlbnMuCgpUbyBnZXQgdHJhbnNwYXJl bnRseSBlbmNyeXB0ZWQgZGF0YSBpbnRvIHRoZSBkYXRhYmFzZSAoYXMgb3Bwb3NlZCB0bwpy ZWFkaW5nIGl0IG91dCksIGl0IGlzIHJlcXVpcmVkIHRvIHVzZSBwcm90b2NvbC1sZXZlbCBw cmVwYXJlZApzdGF0ZW1lbnRzIChpLmUuLCBleHRlbmRlZCBxdWVyeSkuICBUaGUgY2xpZW50 IG11c3QgZmlyc3QgcHJlcGFyZSBhCnN0YXRlbWVudCwgdGhlbiBkZXNjcmliZSB0aGUgc3Rh dGVtZW50IHRvIGdldCBwYXJhbWV0ZXIgbWV0YWRhdGEsCndoaWNoIGluZGljYXRlcyB3aGlj aCBwYXJhbWV0ZXJzIGFyZSB0byBiZSBlbmNyeXB0ZWQgYW5kIGhvdy4gIGxpYnBxJ3MKUFFl eGVjUGFyYW1zKCkgZG9lcyB0aGlzIGludGVybmFsbHkuICBGb3IgdGhlIGFzeW5jaHJvbm91 cyBpbnRlcmZhY2VzLAphZGRpdGlvbmFsIGxpYnBxIGZ1bmN0aW9ucyBhcmUgYWRkZWQgdG8g YmUgYWJsZSB0byBwYXNzIHRoZSBkZXNjcmliZQpyZXN1bHQgYmFjayBpbnRvIHRoZSBzdGF0 ZW1lbnQgZXhlY3V0aW9uIGZ1bmN0aW9uLiAgKE90aGVyIGNsaWVudCBBUElzCnRoYXQgaGF2 ZSBhICJzdGF0ZW1lbnQgaGFuZGxlIiBjb25jZXB0IGNvdWxkIGRvIHRoaXMgbW9yZSBlbGVn YW50bHkKYW5kIHByb2JhYmx5IHdpdGhvdXQgYW55IEFQSSBjaGFuZ2VzLikgIHBzcWwgYWxz byBzdXBwb3J0cyB0aGlzCnRyYW5zcGFyZW50bHkgaWYgdGhlIFxiaW5kIGNvbW1hbmQgaXMg dXNlZC4KCkFub3RoZXIgY2hhbGxlbmdlIGlzIHRoYXQgdGhlIHBhcnNlIGFuYWx5c2lzIG11 c3QgY2hlY2sgd2hpY2gKdW5kZXJseWluZyBjb2x1bW4gYSBwYXJhbWV0ZXIgY29ycmVzcG9u ZHMgdG8uICBUaGlzIGlzIHNpbWlsYXIgdG8KcmVzb3JpZ3RibCBhbmQgcmVzb3JpZ2NvbCBp biB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9z dGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0Lzg5MTU3OTI5LWMyYjYtODE3Yi02MDI1LThl NGIyZDg5ZDg4ZiU0MGVudGVycHJpc2VkYi5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvYWNyb255 bXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTggKwogZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgMjc1ICsrKysrKwogZG9jL3NyYy9zZ21s L2NoYXJzZXQuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIGRvYy9zcmMvc2dt bC9kYXRhdHlwZS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICA1NSArKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzkxICsrKysrKysrCiBk b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjMgKwog ZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgICAgICAgICAgICAgICAgICAgICAgIHwgMzE0ICsr KysrKysKIGRvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sICAgICAgICAgICAgICAgICAgICB8 IDQ0MiArKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAg ICAgICAgICB8ICAgNiArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25f a2V5LnNnbWwgfCAxODYgKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFz dGVyX2tleS5zZ21sIHwgMTI0ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgICAg ICAgICAgICAgICAgICAgIHwgICA5ICsKIC4uLi9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0 aW9uX2tleS5zZ21sICAgICB8IDE2OCArKysrCiAuLi4vc2dtbC9yZWYvY3JlYXRlX2NvbHVt bl9tYXN0ZXJfa2V5LnNnbWwgICAgfCAxMDYgKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV90YWJsZS5zZ21sICAgICAgICAgICAgfCAgNTQgKy0KIC4uLi9zZ21sL3JlZi9kcm9wX2Nv bHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sICB8IDExMiArKysKIGRvYy9zcmMvc2dtbC9yZWYv ZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICB8IDExMiArKysKIGRvYy9zcmMvc2dtbC9y ZWYvcGdfZHVtcC5zZ21sICAgICAgICAgICAgICAgICB8ICAzMSArCiBkb2Mvc3JjL3NnbWwv cmVmL3BnX2R1bXBhbGwuc2dtbCAgICAgICAgICAgICAgfCAgMjcgKwogZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgIDM5ICsKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMgICAgICAgfCAgIDcgKwogc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5jICAgICAgICAgIHwgMjIxICsrKystCiBzcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAgICAgICAgICAgfCAgMTIgKwogc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgICAgICAgIHwgICAyICstCiBz cmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICAxMiAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgMTgg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAgIHwgIDQy ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgICAgICAgfCAy MTMgKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAg ICAgfCAgMTUgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jICAgICAgICAg ICAgIHwgNDI2ICsrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY3JlYXRlYXMuYyAg ICAgICAgICAgICAgIHwgIDMyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMg ICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmln Z2VyLmMgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVs LmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICAgICAgfCAxMTYgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YXJp YWJsZS5jICAgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Zp ZXcuYyAgICAgICAgICAgICAgICAgICB8ICAyMCArCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTQ5ICsrKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9wYXJhbS5jICAgICAgICAgICAgICB8IDE0NCArKysKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAgICAgIHwgIDE5ICstCiBzcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAgICAgfCAgNjQgKysKIHNyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICA1MyArKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyAgICAgICAgICAgICAgIHwgMTA2ICsrKwogc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgMTExICsrKwog c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0ICst CiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jICAgICAgICAgICAgfCAgNDAg Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jICAgICAgICAgICAgICAgIHwgIDE4 ICstCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8 ICAgMiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMgICAgICAgICAgICAgICAg fCAgIDkgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAg ICB8IDMyNiArKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAg ICAgICAgICAgfCAgMzEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAg ICAgICAgICAgIHwgIDE0ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgICAgICAg ICAgICAgICAgICB8ICAgNSArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAg ICAgICAgICAgICAgfCAgNDggKwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAg ICAgICAgICAgICAgICAgfCAxNjAgKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAg ICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcHNxbC9oZWxwLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmluL3BzcWwvc2V0dGluZ3MuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYyAgICAgICAgICAgICAgICAgICB8ICA1MSArLQogc3JjL2NvbW1vbi9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9jb21tb24vY29sZW5jLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNCArKysKIHNyYy9jb21tb24vbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9hY2Nl c3MvcHJpbnR0dXAuaCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9kZXBlbmRlbmN5LmggICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvaGVhcC5oICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hbW9wLmRhdCAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCAgICAgICAgICAgIHwgIDQwICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oICAgICAgICB8ICA0NiArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oICAgICAgICAgfCAgNDUgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdCAgICAgICAgICAgIHwgICAyICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0ICAgICAgICAgICB8ICAxMCArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCAgICAgICAgICAgfCAgIDIgKwogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDMzICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgICAgICAgICAgICAgICB8ICAxMiArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oICAgICAgICAgICAgIHwgIDI2ICsK IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oICAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmggICAgICAgICAgICAgICAgICAgfCAgNTEg KysKIHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmggICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAg NDAgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8 ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaCAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAg IHwgICA2ICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAgICAg ICB8ICAgNiArCiBzcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaCAgICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaCAgICAgICAgICAgICAg ICAgIHwgICA2ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCAgICAgICAg ICAgICAgfCAgIDQgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jICAgICAg ICAgICAgIHwgIDI1ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNz bC5jICAgICB8IDg0MiArKysrKysrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWVuY3J5cHQuaCAgICAgICAgICAgICB8ICAzMyArCiBzcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1leGVjLmMgICAgICAgICAgICAgICAgfCA2NTUgKysrKysrKysrKysrKy0KIHNyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jICAgICAgICAgICB8IDEzOSArKy0KIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMgICAgICAgICAgICAgICB8ICA1NSArLQog c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaCAgICAgICAgICAgICAgIHwgIDIwICsK IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oICAgICAgICAgICAgICB8ICAzNiAr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90LzAwM19lbmNyeXB0LnBsICAgICAgICAgfCAg NzAgKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZSAgICAgICAgICB8 ICAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlICAgICAgICAgICAg fCAgIDcgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9tZXNvbi5idWlsZCAgICAgICAg IHwgIDIzICsKIHNyYy90ZXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZSAgICAg ICAgIHwgICAzICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlICAgICAg ICAgICB8ICAzMSArCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZCAg ICAgICAgfCAgMjQgKwogLi4uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsICAgICAgICAg ICAgICAgIHwgMjU1ICsrKysrKwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19y b3RhdGlvbi5wbCAgIHwgMTEyICsrKwogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVz dF9jbGllbnQuYyAgICAgIHwgMTYxICsrKysKIC4uLi9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0 X3J1bl9kZWNyeXB0LnBsICAgICB8ICA1OCArKwogc3JjL3Rlc3QvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2Nv bHVtbl9lbmNyeXB0aW9uLm91dCAgICB8IDIzMSArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgIHwgIDQ1ICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDYgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgIDEyICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dCAgICAgfCAgIDYgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3Qv cmVncmVzcy9wZ19yZWdyZXNzX21haW4uYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwgICAgfCAxNzEgKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsICAgICAgIHwgIDE3ICstCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwgICAgICAgICAgfCAgIDIgKwog MTM0IGZpbGVzIGNoYW5nZWQsIDg1MzYgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5j cnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCiBjcmVhdGUg bW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXku c2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9y ZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L2NvbW1vbi9jb2xlbmMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY29sZW5ja2V5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2NvbGVuY2tleWRhdGEuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5j bHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5j bHVkZS9jb21tb24vY29sZW5jLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9p bnRlcmZhY2VzL2xpYnBxL3QvMDAzX2VuY3J5cHQucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNy eXB0aW9uLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vdC8wMDJfY21rX3JvdGF0aW9uLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv Y29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwogY3JlYXRlIG1vZGUgMTAwNzU1IHNy Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9u Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9l bmNyeXB0aW9uLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21s IGIvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKaW5kZXggMmRmNjU1OWFjYy4uYmQxYTAx ODVlZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKQEAgLTU2LDYgKzU2LDE1IEBAIDx0aXRsZT5BY3Jv bnltczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxhY3JvbnltPkNFSzwvYWNyb255bT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbHVtbiBFbmNyeXB0 aW9uIEtleQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3JvbnltPkNJRFI8L2Fj cm9ueW0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTY3LDYgKzc2LDE1IEBAIDx0aXRs ZT5BY3JvbnltczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxhY3JvbnltPkNNSzwvYWNyb255 bT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbHVtbiBN YXN0ZXIgS2V5CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGFjcm9ueW0+Q1BBTjwv YWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5 MzE2YjgxMWFjLi5iMmIyOTQ3MDJjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMTA1LDYgKzEw NSwyMSBAQCA8dGl0bGU+U3lzdGVtIENhdGFsb2dzPC90aXRsZT4KICAgICAgIDxlbnRyeT5j b2xsYXRpb25zIChsb2NhbGUgaW5mb3JtYXRpb24pPC9lbnRyeT4KICAgICAgPC9yb3c+CiAK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNv bGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz48 L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9uIGtleXM8L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0 YTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5jb2x1bW4gZW5j cnlwdGlvbiBrZXkgZGF0YTwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxz dHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4K KyAgICAgIDxlbnRyeT5jb2x1bW4gbWFzdGVyIGtleXM8L2VudHJ5PgorICAgICA8L3Jvdz4K KwogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGct Y29uc3RyYWludCI+PHN0cnVjdG5hbWU+cGdfY29uc3RyYWludDwvc3RydWN0bmFtZT48L2xp bms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5jaGVjayBjb25zdHJhaW50cywgdW5pcXVlIGNv bnN0cmFpbnRzLCBwcmltYXJ5IGtleSBjb25zdHJhaW50cywgZm9yZWlnbiBrZXkgY29uc3Ry YWludHM8L2VudHJ5PgpAQCAtMTM2MCw2ICsxMzc1LDQwIEBAIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgogICAgICAgPC9w YXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRjZWs8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1jb2xlbmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xp bms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCBhIHJlZmVy ZW5jZSB0byB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbHNlIDAuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dHJlYWx0eXBpZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwgdGhlbiB0aGlzIGNv bHVtbiBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlCisgICAgICAgZW5jcnlwdGVkIGRhdGEg dGhhdCBpcyByZXBvcnRlZCB0byB0aGUgY2xpZW50LiAgRm9yIGVuY3J5cHRlZCBjb2x1bW5z LAorICAgICAgIHRoZSBmaWVsZCA8c3RydWN0ZmllbGQ+YXR0dHlwaWQ8L3N0cnVjdGZpZWxk PiBpcyBlaXRoZXIKKyAgICAgICA8dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiBvciA8 dHlwZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBlPi4gIElmIHRoZQorICAgICAgIGNvbHVtbiBp cyBub3QgZW5jcnlwdGVkLCB0aGVuIDAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmF0dGVuY2FsZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5 cHRlZCwgdGhlIGlkZW50aWZpZXIgb2YgdGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtOworICAg ICAgIHNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jZWsiLz4gZm9yIHBvc3NpYmxlIHZh bHVlcy4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJv dz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmF0dGluaGNvdW50 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KQEAgLTI0NjcsNiArMjUxNiwyMzIg QEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGxhdGlvbjwvc3RydWN0bmFtZT4gQ29sdW1u czwvdGl0bGU+CiAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9n LXBnLWNvbGVuY2tleSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0 cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29s ZW5ja2V5Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbGVuY2tleTwvcHJpbWFyeT4KKyAgPC9pbmRl eHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19jb2xl bmNrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9ybWF0aW9uCisgICBhYm91dCB0aGUg Y29sdW1uIGVuY3J5cHRpb24ga2V5cyBpbiB0aGUgZGF0YWJhc2UuICBUaGUgYWN0dWFsIGtl eSBtYXRlcmlhbAorICAgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaXMgaW4gdGhl IGNhdGFsb2cgPGxpbmsKKyAgIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+ PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L2xpbms+LgorICA8 L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tl eTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgor ICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29s dW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0 aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4K KworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNla25hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQ29s dW1uIGVuY3J5cHRpb24ga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+Y2Vrb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAg KHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3Ru YW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0 cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVy IG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+Cisg PC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+PC90aXRs ZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+Cisg ICA8cHJpbWFyeT5wZ19jb2xlbmNrZXlkYXRhPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4K KworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRh dGE8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIHRoZSBrZXkKKyAgIG1hdGVyaWFsIG9mIGNvbHVt biBlbmNyeXB0aW9uIGtleXMuICBFYWNoIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBvYmplY3Qg Y2FuCisgICBjb250YWluIHNldmVyYWwgdmVyc2lvbnMgb2YgdGhlIGtleSBtYXRlcmlhbCwg ZWFjaCBlbmNyeXB0ZWQgd2l0aCBhCisgICBkaWZmZXJlbnQgY29sdW1uIG1hc3RlciBrZXku ICBUaGF0IGFsbG93cyB0aGUgZ3JhZHVhbCByb3RhdGlvbiBvZiB0aGUKKyAgIGNvbHVtbiBt YXN0ZXIga2V5cy4gIFRodXMsIDxsaXRlcmFsPihja2RjZWtpZCwgY2tkY21raWQpPC9saXRl cmFsPiBpcyBhCisgICB1bmlxdWUga2V5IG9mIHRoaXMgdGFibGUuCisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5 cyBzaG91bGQgbmV2ZXIgYmUgZGVjcnlwdGVkIGluc2lkZQorICAgdGhlIGRhdGFiYXNlIGlu c3RhbmNlLiAgSXQgaXMgbWVhbnQgdG8gYmUgc2VudCBhcy1pcyB0byB0aGUgY2xpZW50LCB3 aGVyZQorICAgaXQgaXMgZGVjcnlwdGVkIHVzaW5nIHRoZSBhc3NvY2lhdGVkIGNvbHVtbiBt YXN0ZXIga2V5LCBhbmQgdGhlbiB1c2VkIHRvCisgICBlbmNyeXB0IG9yIGRlY3J5cHQgY29s dW1uIHZhbHVlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAg IDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93 IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY2Vr aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMg PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2Nv bGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgdGhpcyBlbnRyeSBiZWxvbmdzIHRvCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmNrZGNta2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29s bWFzdGVya2V5Ij48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9s aW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBUaGUgY29sdW1uIG1hc3RlciBrZXkgdGhhdCB0aGUga2V5 IG1hdGVyaWFsIGlzIGVuY3J5cHRlZCB3aXRoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmNrZGNta2FsZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdv cml0aG0gdXNlZCBmb3IgZW5jcnlwdGluZyB0aGUga2V5IG1hdGVyaWFsOyBzZWUKKyAgICAg ICA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jbWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkZW5jdmFsPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+Ynl0ZWE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5 LCBlbmNyeXB0ZWQgdXNpbmcgdGhlCisgICAgICAgcmVmZXJlbmNlZCBjb2x1bW4gbWFzdGVy IGtleQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+ CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJj YXRhbG9nLXBnLWNvbG1hc3RlcmtleSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xt YXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNh dGFsb2ctcGctY29sbWFzdGVya2V5Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbG1hc3RlcmtleTwv cHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8 c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9y bWF0aW9uCisgICBhYm91dCBjb2x1bW4gbWFzdGVyIGtleXMuICBUaGUga2V5cyB0aGVtc2Vs dmVzIGFyZSBub3Qgc3RvcmVkIGluIHRoZQorICAgZGF0YWJhc2UuICBUaGUgY2F0YWxvZyBl bnRyeSBvbmx5IGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgaXMgdXNlZCBieQorICAgY2xp ZW50cyB0byBsb2NhdGUgdGhlIGtleXMsIGZvciBleGFtcGxlIGluIGEgZmlsZSBvciBpbiBh IGtleSBtYW5hZ2VtZW50CisgICBzeXN0ZW0uCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPiBDb2x1 bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+Y21rbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gbWFzdGVyIGtleSBuYW1l CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta293bmVyPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtl bmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBr ZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21rcmVhbG08L3N0cnVj dGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgQSA8cXVvdGU+cmVhbG08L3F1b3RlPiBhc3NvY2lhdGVkIHdpdGggdGhpcyBj b2x1bW4gbWFzdGVyIGtleS4gIFRoaXMgaXMKKyAgICAgICBhIGZyZWVseSBjaG9zZW4gc3Ry aW5nIHRoYXQgaXMgdXNlZCBieSBjbGllbnRzIHRvIGRldGVybWluZSBob3cgdG8gbG9vawor ICAgICAgIHVwIHRoZSBrZXkuICBBIHR5cGljYWwgY29uZmlndXJhdGlvbiB3b3VsZCBwdXQg YWxsIENNS3MgdGhhdCBhcmUgbG9va2VkCisgICAgICAgdXAgaW4gdGhlIHNhbWUgd2F5IGlu dG8gdGhlIHNhbWUgcmVhbG0uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisK ICA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29uc3RyYWludCI+CiAgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21s CmluZGV4IDQ0NWZkMTc1ZDguLmNlMTNhZjIyMWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9jaGFyc2V0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbApAQCAtMTcy MSw2ICsxNzIxLDE1IEBAIDx0aXRsZT5BdXRvbWF0aWMgQ2hhcmFjdGVyIFNldCBDb252ZXJz aW9uIEJldHdlZW4gU2VydmVyIGFuZCBDbGllbnQ8L3RpdGxlPgogICAgICBKdXN0IGFzIGZv ciB0aGUgc2VydmVyLCB1c2Ugb2YgPGxpdGVyYWw+U1FMX0FTQ0lJPC9saXRlcmFsPiBpcyB1 bndpc2UKICAgICAgdW5sZXNzIHlvdSBhcmUgd29ya2luZyB3aXRoIGFsbC1BU0NJSSBkYXRh LgogICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBXaGVuIHRyYW5zcGFyZW50IGNv bHVtbiBlbmNyeXB0aW9uIGlzIHVzZWQsIHRoZW4gbm8gZW5jb2RpbmcgY29udmVyc2lvbgor ICAgICBpcyBwb3NzaWJsZS4gIChUaGUgZW5jb2RpbmcgY29udmVyc2lvbiBoYXBwZW5zIG9u IHRoZSBzZXJ2ZXIsIGFuZCB0aGUKKyAgICAgc2VydmVyIGNhbm5vdCBsb29rIGluc2lkZSBh bnkgZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZXMuKSAgSWYgY29sdW1uCisgICAgIGVuY3J5cHRp b24gaXMgZW5hYmxlZCBmb3IgYSBzZXNzaW9uLCB0aGVuIHRoZSBzZXJ2ZXIgZW5mb3JjZXMg dGhhdCB0aGUKKyAgICAgY2xpZW50IGVuY29kaW5nIG1hdGNoZXMgdGhlIHNlcnZlciBlbmNv ZGluZywgYW5kIGFueSBhdHRlbXB0cyB0byBjaGFuZ2UKKyAgICAgdGhlIGNsaWVudCBlbmNv ZGluZyB3aWxsIGJlIHJlamVjdGVkIGJ5IHRoZSBzZXJ2ZXIuCisgICAgPC9wYXJhPgogICAg PC9zZWN0Mj4KIAogICAgPHNlY3QyIGlkPSJtdWx0aWJ5dGUtY29udmVyc2lvbnMtc3VwcG9y dGVkIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2RhdGF0eXBlLnNnbWwKaW5kZXggZmRmZmJhNDQ0Mi4uNTZiMmUxZDBkMSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2RhdGF0eXBlLnNnbWwKQEAgLTUzNjAsNCArNTM2MCw1OSBAQCA8dGl0bGU+UHNldWRvLVR5 cGVzPC90aXRsZT4KIAogICA8L3NlY3QxPgogCisgIDxzZWN0MSBpZD0iZGF0YXR5cGUtZW5j cnlwdGVkIj4KKyAgIDx0aXRsZT5UeXBlcyBSZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxl PgorCisgICA8cGFyYT4KKyAgICBBbiBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlIChzZWUgPHhy ZWYgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIi8+KSBpcworICAgIGludGVybmFs bHkgc3RvcmVkIHVzaW5nIHRoZSB0eXBlcworICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8 L3R5cGU+IChmb3IgcmFuZG9taXplZCBlbmNyeXB0aW9uKSBvcgorICAgIDx0eXBlPnBnX2Vu Y3J5cHRlZF9kZXQ8L3R5cGU+IChmb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uKTsgc2Vl IDx4cmVmCisgICAgbGlua2VuZD0iZGF0YXR5cGUtZW5jcnlwdGVkLXRhYmxlIi8+LiAgTW9z dCBvZiB0aGUgZGF0YWJhc2Ugc3lzdGVtIHRyZWF0cworICAgIHRoaXMgYXMgbm9ybWFsIHR5 cGVzLiAgRm9yIGV4YW1wbGUsIHRoZSB0eXBlIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5 cGU+IGhhcworICAgIGFuIGVxdWFscyBvcGVyYXRvciB0aGF0IGFsbG93cyBsb29rdXAgb2Yg ZW5jcnlwdGVkIHZhbHVlcy4gIEl0IGlzLAorICAgIGhvd2V2ZXIsIG5vdCBhbGxvd2VkIHRv IGNyZWF0ZSBhIHRhYmxlIHVzaW5nIG9uZSBvZiB0aGVzZSB0eXBlcyBkaXJlY3RseQorICAg IGFzIGEgY29sdW1uIHR5cGUuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBl eHRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGVzZSB0eXBlcyBpcyB0aGUgc3RyaW5nCisg ICAgPGxpdGVyYWw+ZW5jcnlwdGVkJDwvbGl0ZXJhbD4gZm9sbG93ZWQgYnkgaGV4YWRlY2lt YWwgYnl0ZSB2YWx1ZXMsIGZvcgorICAgIGV4YW1wbGUKKyAgICA8bGl0ZXJhbD5lbmNyeXB0 ZWQkM2FhY2QwNjNkMmQzYTFhMDQxMTlkZjc2ODc0ZTBiOTc4NWVhNDY2MTc3ZjE4ZmU5YzBh MWEzMTNlYWYwOWM5ODwvbGl0ZXJhbD4uCisgICAgQ2xpZW50cyB0aGF0IGRvbid0IHN1cHBv cnQgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gb3IgaGF2ZSBkaXNhYmxlZAorICAg IGl0IHdpbGwgc2VlIHRoZSBlbmNyeXB0ZWQgdmFsdWVzIGluIHRoaXMgZm9ybWF0LiAgQ2xp ZW50cyB0aGF0IHN1cHBvcnQKKyAgICB0cmFuc3BhcmVudCBkYXRhIGVuY3J5cHRpb24gd2ls bCBub3Qgc2VlIHRoZXNlIHR5cGVzIGluIHJlc3VsdCBzZXRzLCBhcworICAgIHRoZSBwcm90 b2NvbCBsYXllciB3aWxsIHRyYW5zbGF0ZSB0aGVtIGJhY2sgdG8gZGVjbGFyZWQgdW5kZXJs eWluZyB0eXBlIGluCisgICAgdGhlIHRhYmxlIGRlZmluaXRpb24uCisgICA8L3BhcmE+CisK KyAgICA8dGFibGUgaWQ9ImRhdGF0eXBlLWVuY3J5cHRlZC10YWJsZSI+CisgICAgIDx0aXRs ZT5UeXBlcyBSZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorICAgICA8dGdyb3VwIGNv bHM9IjMiPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMSIgY29sd2lkdGg9IjEqIi8+ CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wyIiBjb2x3aWR0aD0iMyoiLz4KKyAgICAg IDxjb2xzcGVjIGNvbG5hbWU9ImNvbDMiIGNvbHdpZHRoPSIyKiIvPgorICAgICAgPHRoZWFk PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgICAg PGVudHJ5PlN0b3JhZ2UgU2l6ZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5EZXNjcmlwdGlv bjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICA8L3RoZWFkPgorICAgICAgPHRib2R5 PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT48dHlwZT5wZ19lbmNyeXB0ZWRfZGV0 PC90eXBlPjwvZW50cnk+CisgICAgICAgIDxlbnRyeT4xIG9yIDQgYnl0ZXMgcGx1cyB0aGUg YWN0dWFsIGJpbmFyeSBzdHJpbmc8L2VudHJ5PgorICAgICAgICA8ZW50cnk+ZW5jcnlwdGVk IGNvbHVtbiB2YWx1ZSwgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uPC9lbnRyeT4KKyAgICAg ICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5cGU+cGdfZW5jcnlw dGVkX3JuZDwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBvciA0IGJ5dGVzIHBs dXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PmVu Y3J5cHRlZCBjb2x1bW4gdmFsdWUsIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbjwvZW50cnk+Cisg ICAgICAgPC9yb3c+CisgICAgICA8L3Rib2R5PgorICAgICA8L3Rncm91cD4KKyAgICA8L3Rh YmxlPgorICA8L3NlY3QxPgogIDwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA2ZTkyYmJkZGQyLi41 NWYzM2EyZjVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0xMjExLDYgKzEyMTEsMzk3IEBAIDx0aXRsZT5FeGNs dXNpb24gQ29uc3RyYWludHM8L3RpdGxlPgogICA8L3NlY3QyPgogIDwvc2VjdDE+CiAKKyA8 c2VjdDEgaWQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiI+CisgIDx0aXRsZT5UcmFuc3BhcmVu dCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBXaXRoIDxmaXJz dHRlcm0+dHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb248L2ZpcnN0dGVybT4sIGNvbHVt bnMgY2FuIGJlCisgICBzdG9yZWQgZW5jcnlwdGVkIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBl bmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIGhhcHBlbnMgb24KKyAgIHRoZSBjbGllbnQsIHNv IHRoYXQgdGhlIHBsYWludGV4dCB2YWx1ZSBpcyBuZXZlciBzZWVuIGluIHRoZSBkYXRhYmFz ZQorICAgaW5zdGFuY2Ugb3Igb24gdGhlIHNlcnZlciBob3N0aW5nIHRoZSBkYXRhYmFzZS4g IFRoZSBkcmF3YmFjayBpcyB0aGF0IG1vc3QKKyAgIG9wZXJhdGlvbnMsIHN1Y2ggYXMgZnVu Y3Rpb24gY2FsbHMgb3Igc29ydGluZywgYXJlIG5vdCBwb3NzaWJsZSBvbgorICAgZW5jcnlw dGVkIHZhbHVlcy4KKyAgPC9wYXJhPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5Vc2luZyBU cmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU cmFucGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIHVzZXMgdHdvIGxldmVscyBvZiBjcnlwdG9n cmFwaGljIGtleXMuICBUaGUKKyAgIGFjdHVhbCBjb2x1bW4gdmFsdWUgaXMgZW5jcnlwdGVk IHVzaW5nIGEgc3ltbWV0cmljIGFsZ29yaXRobSwgc3VjaCBhcyBBRVMsCisgICB1c2luZyBh IDxmaXJzdHRlcm0+Y29sdW1uIGVuY3J5cHRpb24ga2V5PC9maXJzdHRlcm0+CisgICAoPGFj cm9ueW0+Q0VLPC9hY3JvbnltPikuICBUaGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IGlzIGlu IHR1cm4gZW5jcnlwdGVkCisgICB1c2luZyBhbiBhc3ltbWV0cmljIGFsZ29yaXRobSwgc3Vj aCBhcyBSU0EsIHVzaW5nIGEgPGZpcnN0dGVybT5jb2x1bW4KKyAgIG1hc3RlciBrZXk8L2Zp cnN0dGVybT4gKDxhY3JvbnltPkNNSzwvYWNyb255bT4pLiAgVGhlIGVuY3J5cHRlZCBDRUsg aXMKKyAgIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2Ugc3lzdGVtLiAgVGhlIENNSyBpcyBub3Qg c3RvcmVkIGluIHRoZSBkYXRhYmFzZQorICAgc3lzdGVtOyBpdCBpcyBzdG9yZWQgb24gdGhl IGNsaWVudCBvciBzb21ld2hlcmUgd2hlcmUgdGhlIGNsaWVudCBjYW4gYWNjZXNzCisgICBp dCwgc3VjaCBhcyBpbiBhIGxvY2FsIGZpbGUgb3IgaW4gYSBrZXkgbWFuYWdlbWVudCBzeXN0 ZW0uICBUaGUgZGF0YWJhc2UKKyAgIHN5c3RlbSBvbmx5IHJlY29yZHMgd2hlcmUgdGhlIENN SyBpcyBzdG9yZWQgYW5kIHByb3ZpZGVzIHRoaXMgaW5mb3JtYXRpb24KKyAgIHRvIHRoZSBj bGllbnQuICBXaGVuIHJvd3MgY29udGFpbmluZyBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgc2Vu dCB0byB0aGUKKyAgIGNsaWVudCwgdGhlIHNlcnZlciBmaXJzdCBzZW5kcyBhbnkgbmVjZXNz YXJ5IENNSyBpbmZvcm1hdGlvbiwgZm9sbG93ZWQgYnkKKyAgIGFueSByZXF1aXJlZCBDRUsu ICBUaGUgY2xpZW50IHRoZW4gbG9va3MgdXAgdGhlIENNSyBhbmQgdXNlcyB0aGF0IHRvCisg ICBkZWNyeXB0IHRoZSBDRUsuICBUaGVuIGl0IGRlY3J5cHRzIGluY29taW5nIHJvdyBkYXRh IHVzaW5nIHRoZSBDRUsgYW5kCisgICBwcm92aWRlcyB0aGUgZGVjcnlwdGVkIHJvdyBkYXRh IHRvIHRoZSBhcHBsaWNhdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSGVyZSBp cyBhbiBleGFtcGxlIGRlY2xhcmluZyBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQ6Cis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBpZCBpbnQgUFJJTUFS WSBLRVksCisgICAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICAgIC4uLgorICAgIGNyZWRpdGNh cmRfbnVtIHRleHQgPGVtcGhhc2lzPkVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxKTwvZW1waGFzaXM+CispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydHMgPGZpcnN0 dGVybT5yYW5kb21pemVkPC9maXJzdHRlcm0+CisgICAoYWxzbyBrbm93biBhcyA8Zmlyc3R0 ZXJtPnByb2JhYmlsaXN0aWM8L2ZpcnN0dGVybT4pIGFuZAorICAgPGZpcnN0dGVybT5kZXRl cm1pbmlzdGljPC9maXJzdHRlcm0+IGVuY3J5cHRpb24uICBUaGUgYWJvdmUgZXhhbXBsZSB1 c2VzCisgICByYW5kb21pemVkIGVuY3J5cHRpb24sIHdoaWNoIGlzIHRoZSBkZWZhdWx0LiAg UmFuZG9taXplZCBlbmNyeXB0aW9uIHVzZXMgYQorICAgcmFuZG9tIGluaXRpYWxpemF0aW9u IHZlY3RvciBmb3IgZWFjaCBlbmNyeXB0aW9uLCBzbyB0aGF0IGV2ZW4gaWYgdGhlCisgICBw bGFpbnRleHQgb2YgdHdvIHJvd3MgaXMgZXF1YWwsIHRoZSBlbmNyeXB0ZWQgdmFsdWVzIHdp bGwgYmUgZGlmZmVyZW50LgorICAgVGhpcyBwcmV2ZW50cyBzb21lb25lIHdpdGggZGlyZWN0 IGFjY2VzcyB0byB0aGUgZGF0YWJhc2Ugc2VydmVyIHRvIG1ha2UKKyAgIGNvbXB1dGF0aW9u cyBzdWNoIGFzIGRpc3RpbmN0IGNvdW50cyBvbiB0aGUgZW5jcnlwdGVkIHZhbHVlcy4KKyAg IERldGVybWluaXN0aWMgZW5jcnlwdGlvbiB1c2VzIGEgZml4ZWQgaW5pdGlhbGl6YXRpb24g dmVjdG9yLiAgVGhpcyByZWR1Y2VzCisgICBzZWN1cml0eSwgYnV0IGl0IGFsbG93cyBlcXVh bGl0eSBzZWFyY2hlcyBvbiBlbmNyeXB0ZWQgdmFsdWVzLiAgVGhlCisgICBmb2xsb3dpbmcg ZXhhbXBsZSBkZWNsYXJlcyBhIGNvbHVtbiB3aXRoIGRldGVybWluaXN0aWMgZW5jcnlwdGlv bjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBlbXBsb3llZXMgKAorICAgIGlk IGludCBQUklNQVJZIEtFWSwKKyAgICBuYW1lIHRleHQgTk9UIE5VTEwsCisgICAgLi4uCisg ICAgc3NuIHRleHQgRU5DUllQVEVEIFdJVEggKAorICAgICAgICBjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxLCA8ZW1waGFzaXM+ZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3Rp YzwvZW1waGFzaXM+KQorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIE51bGwgdmFsdWVzIGFyZSBub3QgZW5jcnlwdGVkIGJ5IHRyYW5zcGFyZW50 IGNvbHVtbiBlbmNyeXB0aW9uOyBudWxsIHZhbHVlcworICAgc2VudCBieSB0aGUgY2xpZW50 IGFyZSB2aXNpYmxlIGFzIG51bGwgdmFsdWVzIGluIHRoZSBkYXRhYmFzZS4gIElmIHRoZSBm YWN0CisgICB0aGF0IGEgdmFsdWUgaXMgbnVsbCBuZWVkcyB0byBiZSBoaWRkZW4gZnJvbSB0 aGUgc2VydmVyLCB0aGlzIGluZm9ybWF0aW9uCisgICBuZWVkcyB0byBiZSBlbmNvZGVkIGlu dG8gYSBub25udWxsIHZhbHVlIGluIHRoZSBjbGllbnQgc29tZWhvdy4KKyAgPC9wYXJhPgor ICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5SZWFkaW5nIGFuZCBXcml0aW5n IEVuY3J5cHRlZCBDb2x1bW5zPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgUmVhZGluZyBh bmQgd3JpdGluZyBlbmNyeXB0ZWQgY29sdW1ucyBpcyBtZWFudCB0byBiZSBoYW5kbGVkIGF1 dG9tYXRpY2FsbHkKKyAgICBieSB0aGUgY2xpZW50IGxpYnJhcnkvZHJpdmVyIGFuZCBzaG91 bGQgYmUgbW9zdGx5IHRyYW5zcGFyZW50IHRvIHRoZQorICAgIGFwcGxpY2F0aW9uIGNvZGUs IGlmIGNlcnRhaW4gcHJlcmVxdWlzaXRlcyBhcmUgZnVsZmlsbGVkOgorCisgICAgPGl0ZW1p emVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGNs aWVudCBsaWJyYXJ5IG5lZWRzIHRvIHN1cHBvcnQgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5 cHRpb24uICBOb3QKKyAgICAgICBhbGwgY2xpZW50IGxpYnJhcmllcyBkby4gIEZ1cnRoZXJt b3JlLCB0aGUgY2xpZW50IGxpYnJhcnkgbWlnaHQgcmVxdWlyZQorICAgICAgIHRoYXQgdHJh bnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZXhwbGljaXRseSBlbmFibGVkIGF0IGNv bm5lY3Rpb24KKyAgICAgICB0aW1lLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBj bGllbnQgbGlicmFyeSBmb3IgZGV0YWlscy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4g bWFzdGVyIGtleXMgYW5kIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaGF2ZSBiZWVuIHNldCB1 cCwgYW5kIHRoZQorICAgICAgIGNsaWVudCBsaWJyYXJ5IGhhcyBiZWVuIGNvbmZpZ3VyZWQg dG8gYmUgYWJsZSB0byBsb29rIHVwIGNvbHVtbiBtYXN0ZXIKKyAgICAgICBrZXlzIGZyb20g dGhlIGtleSBzdG9yZSBvciBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFJlYWRpbmcgZnJvbSBlbmNyeXB0ZWQgY29sdW1ucyB3aWxsIHRo ZW4gd29yayBhdXRvbWF0aWNhbGx5LiAgRm9yIGV4YW1wbGUsCisgICAgdXNpbmcgdGhlIGFi b3ZlIGV4YW1wbGUsCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1Qgc3NuIEZST00gZW1wbG95 ZWVzIFdIRVJFIGlkID0gNTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2lsbCByZXR1cm4g dGhlIHVuZW5jcnlwdGVkIHZhbHVlIGZvciB0aGUgPGxpdGVyYWw+c3NuPC9saXRlcmFsPiBj b2x1bW4gaW4KKyAgICBhbnkgcm93cyBmb3VuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgV3JpdGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyByZXF1aXJlcyB0aGF0IHRoZSBl eHRlbmRlZCBxdWVyeSBwcm90b2NvbAorICAgIChwcm90b2NvbC1sZXZlbCBwcmVwYXJlZCBz dGF0ZW1lbnRzKSBiZSB1c2VkLCBzbyB0aGF0IHRoZSB2YWx1ZXMgdG8gYmUKKyAgICBlbmNy eXB0ZWQgYXJlIHN1cHBsaWVkIHNlcGFyYXRlbHkgZnJvbSB0aGUgU1FMIGNvbW1hbmQuICBG b3IgZXhhbXBsZSwKKyAgICB1c2luZywgc2F5LCBwc3FsIG9yIGxpYnBxLCB0aGUgZm9sbG93 aW5nIHdvdWxkIG5vdCB3b3JrOgorPHByb2dyYW1saXN0aW5nPgorLS0gV1JPTkchCitJTlNF UlQgSU5UTyBzc24gKGlkLCBuYW1lLCBzc24pIFZBTFVFUyAoMSwgJ1NvbWVvbmUnLCAnMTIz NDUnKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhpcyB3aWxsIGxlYWsgdGhlIHVuZW5j cnlwdGVkIHZhbHVlIDxsaXRlcmFsPjEyMzQ1PC9saXRlcmFsPiB0byB0aGUKKyAgICBzZXJ2 ZXIsIHRodXMgZGVmZWF0aW5nIHRoZSBwb2ludCBvZiBjb2x1bW4gZW5jcnlwdGlvbi4KKyAg ICBOb3RlIHRoYXQgdXNpbmcgc2VydmVyLXNpZGUgcHJlcGFyZWQgc3RhdGVtZW50cyB1c2lu ZyB0aGUgU1FMIGNvbW1hbmRzCisgICAgPGNvbW1hbmQ+UFJFUEFSRTwvY29tbWFuZD4gYW5k IDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IGlzIGVxdWFsbHkKKyAgICBpbmNvcnJlY3Qs IHNpbmNlIHRoYXQgd291bGQgYWxzbyBsZWFrIHRoZSBwYXJhbWV0ZXJzIHByb3ZpZGVkIHRv CisgICAgPGNvbW1hbmQ+RVhFQ1VURTwvY29tbWFuZD4gdG8gdGhlIHNlcnZlci4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgVGhpcyBzaG93cyBhIGNvcnJlY3QgaW52b2NhdGlv biBpbiBsaWJwcSAod2l0aG91dCBlcnJvciBjaGVja2luZyk6Cis8cHJvZ3JhbWxpc3Rpbmc+ CitQR3Jlc3VsdCAgICpyZXM7Citjb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMSIsICJTb21l b25lIiwgIjEyMzQ1In07CisKK3JlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAiSU5TRVJUIElO VE8gZW1wbG95ZWVzIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKCQxLCAkMiwgJDMpIiwgMywg TlVMTCwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwKTsKKworLyogcHJpbnQgcmVzdWx0IGluIHJl cyAqLworPC9wcm9ncmFtbGlzdGluZz4KKyAgICBIaWdoZXItbGV2ZWwgY2xpZW50IGxpYnJh cmllcyBtaWdodCB1c2UgdGhlIHByb3RvY29sLWxldmVsIHByZXBhcmVkCisgICAgc3RhdGVt ZW50cyBhdXRvbWF0aWNhbGx5IGFuZCB0aHVzIHdvbid0IHJlcXVpcmUgYW55IGNvZGUgY2hh bmdlcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGFwcGxpY2F0aW9uPnBzcWw8 L2FwcGxpY2F0aW9uPiBwcm92aWRlcyB0aGUgY29tbWFuZAorICAgIDxsaXRlcmFsPlxiaW5k PC9saXRlcmFsPiB0byBydW4gc3RhdGVtZW50cyB3aXRoIHBhcmFtZXRlcnMgbGlrZSB0aGlz OgorPHByb2dyYW1saXN0aW5nPgorSU5TRVJUIElOVE8gZW1wbG95ZWVzIChpZCwgbmFtZSwg c3NuKSBWQUxVRVMgKCQxLCAkMiwgJDMpIFxiaW5kICcxJyAnU29tZW9uZScsICcxMjM0NScg XGcKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFNp bWlsYXJseSwgaWYgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uIGlzIHVzZWQsIHBhcmFtZXRl cnMgbmVlZCB0byBiZSB1c2VkCisgICAgaW4gc2VhcmNoIGNvbmRpdGlvbnMgdXNpbmcgZW5j cnlwdGVkIGNvbHVtbnM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgKiBGUk9NIGVtcGxv eWVlcyBXSEVSRSBzc24gPSAkMSBcYmluZCAnMTIzNDUnIFxnCis8L3Byb2dyYW1saXN0aW5n PgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5TZXR0 aW5nIHVwIFRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRoZSBzdGVwcyB0byBzZXQgdXAgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRp b24gZm9yIGEgZGF0YWJhc2UgYXJlOgorCisgICA8b3JkZXJlZGxpc3Q+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUga2V5IG1hdGVyaWFsIGZvciB0 aGUgQ01LLCBmb3IgZXhhbXBsZSwgdXNpbmcgYSBjcnlwdG9ncmFwaGljCisgICAgICBsaWJy YXJ5IG9yIHRvb2xraXQsIG9yIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLiAgU2VjdXJlIGFj Y2VzcyB0byB0aGUKKyAgICAgIGtleSBhcyBhcHByb3ByaWF0ZSwgdXNpbmcgYWNjZXNzIGNv bnRyb2wsIHBhc3N3b3JkcywgZXRjLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01L IGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUgU1FMIGNvbW1hbmQgPHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPi4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRl IHRoZSAodW5lbmNyeXB0ZWQpIGtleSBtYXRlcmlhbCBmb3IgdGhlIENFSyBpbiBhIHRlbXBv cmFyeQorICAgICAgbG9jYXRpb24uICAoSXQgd2lsbCBiZSBlbmNyeXB0ZWQgaW4gdGhlIG5l eHQgc3RlcC4gIERlcGVuZGluZyBvbiB0aGUKKyAgICAgIGF2YWlsYWJsZSB0b29scywgaXQg bWlnaHQgYmUgcG9zc2libGUgYW5kIHNlbnNpYmxlIHRvIGNvbWJpbmUgdGhlc2UgdHdvCisg ICAgICBzdGVwcy4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtl eSBtYXRlcmlhbCB1c2luZyB0aGUgQ01LIChjcmVhdGVkIGVhcmxpZXIpLgorICAgICAgKFRo ZSB1bmVuY3J5cHRlZCB2ZXJzaW9uIG9mIHRoZSBDRUsga2V5IG1hdGVyaWFsIGNhbiBub3cg YmUgZGlzcG9zZWQKKyAgICAgIG9mLikKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENF SyBpbiB0aGUgZGF0YWJhc2UgdXNpbmcgdGhlIFNRTCBjb21tYW5kIDx4cmVmCisgICAgICBs aW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPi4gIFRoaXMgY29t bWFuZAorICAgICAgPHF1b3RlPnVwbG9hZHM8L3F1b3RlPiB0aGUgZW5jcnlwdGVkIENFSyBr ZXkgbWF0ZXJpYWwgY3JlYXRlZCBpbiB0aGUKKyAgICAgIHByZXZpb3VzIHN0ZXAgdG8gdGhl IGRhdGFiYXNlIHNlcnZlci4gIFRoZSBsb2NhbCBjb3B5IG9mIHRoZSBDRUsga2V5CisgICAg ICBtYXRlcmlhbCBjYW4gdGhlbiBiZSByZW1vdmVkLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUg ZW5jcnlwdGVkIGNvbHVtbnMgdXNpbmcgdGhlIGNyZWF0ZWQgQ0VLLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBDb25maWd1cmUgdGhlIGNsaWVudCBsaWJyYXJ5L2RyaXZlciB0byBiZSBhYmxlIHRvIGxv b2sgdXAgdGhlIENNSworICAgICAgY3JlYXRlZCBlYXJsaWVyLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvb3JkZXJlZGxpc3Q+CisKKyAgIE9uY2UgdGhpcyBpcyBk b25lLCB2YWx1ZXMgY2FuIGJlIHdyaXR0ZW4gdG8gYW5kIHJlYWQgZnJvbSB0aGUgZW5jcnlw dGVkCisgICBjb2x1bW5zIGluIGEgdHJhbnNwYXJlbnQgd2F5LgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBOb3RlIHRoYXQgdGhlc2Ugc3RlcHMgc2hvdWxkIG5vdCBiZSBydW4gb24g dGhlIGRhdGFiYXNlIHNlcnZlciwgYnV0IG9uIHNvbWUKKyAgIGNsaWVudCBtYWNoaW5lLiAg TmVpdGhlciB0aGUgQ01LIG5vciB0aGUgdW5lbmNyeXB0ZWQgQ0VLIHNob3VsZCBldmVyIGFw cGVhcgorICAgb24gdGhlIGRhdGFiYXNlIHNlcnZlciBob3N0LgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUaGUgc3BlY2lmaWMgZGV0YWlscyBvZiB0aGlzIHNldHVwIGRlcGVuZCBv biB0aGUgZGVzaXJlZCBDTUsgc3RvcmFnZQorICAgbWVjaGFuaXNtL2tleSBtYW5hZ2VtZW50 IHN5c3RlbSBhcyB3ZWxsIGFzIHRoZSBjbGllbnQgbGlicmFyaWVzIHRvIGJlIHVzZWQuCisg ICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyB0aGUgPGNvbW1hbmQ+b3BlbnNzbDwvY29t bWFuZD4gY29tbWFuZC1saW5lIHRvb2wKKyAgIHRvIHNldCB1cCB0aGUga2V5cy4KKworICAg PG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVh dGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhlIENNSyBhbmQgd3JpdGUgaXQgdG8gYSBmaWxl OgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCBnZW5wa2V5IC1hbGdvcml0aG0gcnNhIC1v dXQgY21rMS5wZW0KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVy IHRoZSBDTUsgaW4gdGhlIGRhdGFiYXNlOgorPHByb2dyYW1saXN0aW5nPgorcHNxbCAuLi4g LWMgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIgorPC9wcm9ncmFtbGlzdGluZz4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSB1bmVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFs IGluIGEgZmlsZToKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5zc2wgcmFuZCAtb3V0IGNlazEu YmluIDQ4Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgKFNlZSA8eHJlZiBsaW5rZW5kPSJw cm90b2NvbC1jZWstdGFibGUiLz4gZm9yIHJlcXVpcmVkIGtleSBsZW5ndGhzLikKKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgRW5jcnlwdCB0aGUgY3JlYXRlZCBDRUsga2V5IG1hdGVyaWFsOgorPHByb2dy YW1saXN0aW5nPgorb3BlbnNzbCBwa2V5dXRsIC1lbmNyeXB0IC1pbmtleSBjbWsxLnBlbSAt cGtleW9wdCByc2FfcGFkZGluZ19tb2RlOm9hZXAgLWluIGNlazEuYmluIC1vdXQgY2VrMS5i aW4uZW5jCitybSBjZWsxLmJpbgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVnaXN0ZXIgdGhlIENFSyBpbiB0aGUgZGF0YWJhc2U6Cis8cHJvZ3JhbWxpc3Rpbmc+Cisj IGNvbnZlcnQgZmlsZSBjb250ZW50cyB0byBoZXggZW5jb2Rpbmc7IHRoaXMgaXMganVzdCBv bmUgcG9zc2libGUgd2F5CitjZWtlbmNoZXg9JChwZXJsIC0wbmUgJ3ByaW50IHVucGFjayAi SCoiJyBjZWsxLmJpbi5lbmMpCitwc3FsIC4uLiAtYyAiQ1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsIGVu Y3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKSIKK3JtIGNlazEuYmluLmVuYwor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1 bW5zIGFzIHNob3duIGluIHRoZSBleGFtcGxlcyBhYm92ZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29u ZmlndXJlIHRoZSBsaWJwcSBmb3IgQ01LIGxvb2t1cCAoc2VlIGFsc28gPHhyZWYgbGlua2Vu ZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAiLz4pOgorPHByb2dyYW1saXN0aW5nPgorUEdD TUtMT09LVVA9Iio9ZmlsZTokUFdELyVrLnBlbSIKK2V4cG9ydCBQR0NNS0xPT0tVUAorPC9w cm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgQWRk aXRpb25hbGx5LCBsaWJwcSByZXF1aXJlcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBhcmFtZXRl ciA8eHJlZgorICAgICAgbGlua2VuZD0ibGlicHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlv biIvPiBiZSBzZXQgaW4gb3JkZXIgdG8gYWN0aXZhdGUKKyAgICAgIHRoZSB0cmFuc3BhcmVu dCBjb2x1bW4gZW5jcnlwdGlvbiBmdW5jdGlvbmFsaXR5LiAgVGhpcyBzaG91bGQgYmUgZG9u ZSBpbgorICAgICAgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBvZiB0aGUgYXBwbGljYXRp b24sIGJ1dCBhbiBlbnZpcm9ubWVudAorICAgICAgdmFyaWFibGUgKDxlbnZhcj5QR0NPTFVN TkVOQ1JZUFRJT048L2VudmFyPikgaXMgYWxzbyBhdmFpbGFibGUuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRlcmVkbGlzdD4KKyAgPC9wYXJhPgorICA8L3Nl Y3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5HdWlkYW5jZSBvbiBVc2luZyBUcmFuc3Bh cmVudCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoaXMg c2VjdGlvbiBjb250YWlucyBzb21lIGluZm9ybWF0aW9uIG9uIHdoZW4gaXQgaXMgb3IgaXMg bm90IGFwcHJvcHJpYXRlCisgICAgdG8gdXNlIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0 aW9uLCBhbmQgd2hhdCBwcmVjYXV0aW9ucyBuZWVkIHRvIGJlCisgICAgdGFrZW4gdG8gbWFp bnRhaW4gaXRzIHNlY3VyaXR5LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBn ZW5lcmFsLCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBuZXZlciBhIHJlcGxhY2VtZW50IGZvciBh ZGRpdGlvbmFsCisgICAgc2VjdXJpdHkgYW5kIGVuY3J5cHRpb24gdGVjaG5pcXVlcyBzdWNo IGFzIHRyYW5zbWlzc2lvbiBlbmNyeXB0aW9uCisgICAgKFNTTC9UTFMpLCBzdG9yYWdlIGVu Y3J5cHRpb24sIHN0cm9uZyBhY2Nlc3MgY29udHJvbCwgYW5kIHBhc3N3b3JkCisgICAgc2Vj dXJpdHkuICBDb2x1bW4gZW5jcnlwdGlvbiBvbmx5IHRhcmdldHMgc3BlY2lmaWMgdXNlIGNh c2VzIGFuZCBzaG91bGQgYmUKKyAgICB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYWRkaXRp b25hbCBzZWN1cml0eSBtZWFzdXJlcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg QSB0eXBpY2FsIHVzZSBjYXNlIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBpcyB0byBlbmNyeXB0 IHNwZWNpZmljIHZhbHVlcworICAgIHdpdGggYWRkaXRpb25hbCBzZWN1cml0eSByZXF1aXJl bWVudHMsIGZvciBleGFtcGxlIGNyZWRpdCBjYXJkIG51bWJlcnMuCisgICAgVGhpcyB3b3Vs ZCBhbGxvdyB5b3UgdG8gc3RvcmUgdGhhdCBzZWN1cml0eS1zZW5zaXRpdmUgZGF0YSB0b2dl dGhlciB3aXRoCisgICAgdGhlIHJlc3Qgb2YgeW91ciBkYXRhICh0aHVzIGdldHRpbmcgdmFy aW91cyBiZW5lZml0cywgc3VjaCBhcyByZWZlcmVudGlhbAorICAgIGludGVncml0eSwgY29u c2lzdGVudCBiYWNrdXBzKSwgd2hpbGUgZ2l2aW5nIGFjY2VzcyB0byB0aGF0IGRhdGEgb25s eSB0bworICAgIHNwZWNpZmljIGNsaWVudHMgYW5kIHByZXZlbnRpbmcgYWNjaWRlbnRhbCBs ZWFrYWdlIG9uIHRoZSBzZXJ2ZXIgc2lkZQorICAgIChzZXJ2ZXIgbG9ncywgZmlsZSBzeXN0 ZW0gYmFja3VwcywgZXRjLikuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4g dXNpbmcgcGFyYW1ldGVycyB0byBwcm92aWRlIHZhbHVlcyB0byBpbnNlcnQgb3Igc2VhcmNo IGJ5LCBjYXJlIG11c3QKKyAgICBiZSB0YWtlbiB0aGF0IHZhbHVlcyBtZWFudCB0byBiZSBl bmNyeXB0ZWQgYXJlIG5vdCBhY2NpZGVudGFsbHkgbGVha2VkIHRvCisgICAgdGhlIHNlcnZl ci4gIFRoZSBzZXJ2ZXIgd2lsbCB0ZWxsIHRoZSBjbGllbnQgd2hpY2ggcGFyYW1ldGVycyB0 byBlbmNyeXB0LAorICAgIGJhc2VkIG9uIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBvbiB0aGUg c2VydmVyLiAgQnV0IGlmIHRoZSBxdWVyeSBvciBjbGllbnQKKyAgICBhcHBsaWNhdGlvbiBp cyBmYXVsdHksIHZhbHVlcyBtZWFudCB0byBiZSBlbmNyeXB0ZWQgbWlnaHQgYWNjaWRlbnRh bGx5IGJlCisgICAgYXNzb2NpYXRlZCB3aXRoIHBhcmFtZXRlcnMgdGhhdCB0aGUgc2VydmVy IGRvZXMgbm90IHRoaW5rIG5lZWQgdG8gYmUKKyAgICBlbmNyeXB0ZWQuICBBZGRpdGlvbmFs IHJvYnVzdG5lc3MgY2FuIGJlIGFjaGlldmVkIGJ5IGZvcmNpbmcgZW5jcnlwdGlvbiBvZgor ICAgIGNlcnRhaW4gcGFyYW1ldGVycyBpbiB0aGUgY2xpZW50IGxpYnJhcnkgKHNlZSBpdHMg ZG9jdW1lbnRhdGlvbikuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIENvbHVtbiBl bmNyeXB0aW9uIGNhbm5vdCBoaWRlIHRoZSBleGlzdGVuY2Ugb3IgYWJzZW5jZSBvZiBkYXRh LCBpdCBjYW4KKyAgICBvbmx5IGRpc2d1aXNlIHRoZSBwYXJ0aWN1bGFyIGRhdGEgdGhhdCBp cyBrbm93biB0byBleGlzdC4gIEZvciBleGFtcGxlLAorICAgIHN0b3JpbmcgYSBjbGVhcnRl eHQgcGVyc29uIG5hbWUgYW5kIGFuIGVuY3J5cHRlZCBjcmVkaXQgY2FyZCBudW1iZXIKKyAg ICBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVyc29uIGhhcyBhIGNyZWRpdCBjYXJkLiAgVGhhdCBt aWdodCBub3QgcmV2ZWFsIHRvbworICAgIG11Y2ggaWYgdGhlIGRhdGFiYXNlIGlzIGZvciBh biBvbmxpbmUgc3RvcmUgYW5kIHRoZXJlIGlzIG90aGVyIGRhdGEgbmVhcmJ5CisgICAgdGhh dCBzaG93cyB0aGF0IHRoZSBwZXJzb24gaGFzIHJlY2VudGx5IG1hZGUgcHVyY2hhc2VzLiAg QnV0IGluIGFub3RoZXIKKyAgICBleGFtcGxlLCBzdG9yaW5nIGEgY2xlYXJ0ZXh0IHBlcnNv biBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQgZGlhZ25vc2lzIGluIGEKKyAgICBtZWRpY2FsIGRh dGFiYXNlIHByb2JhYmx5IGluZGljYXRlcyB0aGF0IHRoZSBwZXJzb24gaGFzIGEgbWVkaWNh bCBpc3N1ZS4KKyAgICBEZXBlbmRpbmcgb24gdGhlIGNpcmN1bXN0YW5jZXMsIHRoYXQgbWln aHQgbm90IGJ5IGl0c2VsZiBiZSBzdWZmaWNpZW50CisgICAgc2VjdXJpdHkuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIEVuY3J5cHRpb24gY2Fubm90IGNvbXBsZXRlbHkgaGlk ZSB0aGUgbGVuZ3RoIG9mIHZhbHVlcy4gIFRoZSBlbmNyeXB0aW9uCisgICAgbWV0aG9kcyB3 aWxsIHBhZCB2YWx1ZXMgdG8gbXVsdGlwbGVzIG9mIHRoZSB1bmRlcmx5aW5nIGNpcGhlcidz IGJsb2NrIHNpemUKKyAgICAodXN1YWxseSAxNiBieXRlcyksIHNvIHNvbWUgbGVuZ3RoIGRp ZmZlcmVuY2VzIHdpbGwgYmUgdW5pZmllZCB0aGlzIHdheS4KKyAgICBUaGVyZSBpcyBubyBj b25jZXJuIGlmIGFsbCB2YWx1ZXMgYXJlIG9mIHRoZSBzYW1lIGxlbmd0aCAoZS5nLiwgY3Jl ZGl0CisgICAgY2FyZCBudW1iZXJzKS4gIEJ1dCBpZiB0aGVyZSBhcmUgc2lnbmZpY2FudCBs ZW5ndGggZGlmZmVyZW5jZXMgYmV0d2VlbgorICAgIHZhbGlkIHZhbHVlcyBhbmQgdGhhdCBs ZW5ndGggaW5mb3JtYXRpb24gaXMgc2VjdXJpdHktc2Vuc2l0aXZlLCB0aGVuCisgICAgYXBw bGljYXRpb24tc3BlY2lmaWMgd29ya2Fyb3VuZHMgc3VjaCBhcyBwYWRkaW5nIHdvdWxkIG5l ZWQgdG8gYmUgYXBwbGllZC4KKyAgICBIb3cgdG8gZG8gdGhhdCBzZWN1cmVseSBpcyBiZXlv bmQgdGhlIHNjb3BlIG9mIHRoaXMgbWFudWFsLgorICAgPC9wYXJhPgorCisgICA8bm90ZT4K KyAgICA8cGFyYT4KKyAgICAgU3RvcmluZyBkYXRhIHN1Y2ggY3JlZGl0IGNhcmQgZGF0YSwg bWVkaWNhbCBkYXRhLCBhbmQgc28gb24gaXMgdXN1YWxseQorICAgICBzdWJqZWN0IHRvIGdv dmVybm1lbnQgb3IgaW5kdXN0cnkgcmVndWxhdGlvbnMuICBUaGlzIHNlY3Rpb24gaXMgbm90 IG1lYW50CisgICAgIHRvIHByb3ZpZGUgY29tcGxldGUgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0 byBkbyB0aGlzIGNvcnJlY3RseS4gIFBsZWFzZQorICAgICBzZWVrIGFkZGl0aW9uYWwgYWR2 aWNlIHdoZW4gZW5nYWdpbmcgaW4gc3VjaCBwcm9qZWN0cy4KKyAgICA8L3BhcmE+CisgICA8 L25vdGU+CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLXN5c3Rl bS1jb2x1bW5zIj4KICAgPHRpdGxlPlN5c3RlbSBDb2x1bW5zPC90aXRsZT4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nh cnkuc2dtbAppbmRleCA3YzAxYTU0MWZlLi5hOWViNDliMTVmIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dt bApAQCAtMzg5LDYgKzM4OSwyOSBAQCA8dGl0bGU+R2xvc3Nhcnk8L3RpdGxlPgogICAgPC9n bG9zc2RlZj4KICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2Fy eS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4gZW5jcnlw dGlvbiBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAg QSBjcnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIHZhbHVlcyB3aGVu IHVzaW5nIHRyYW5zcGFyZW50CisgICAgIGNvbHVtbiBlbmNyeXB0aW9uLiAgQ29sdW1uIGVu Y3J5cHRpb24ga2V5cyBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZQorICAgICBlbmNyeXB0 ZWQgYnkgYW5vdGhlciBrZXksIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICA8L3BhcmE+ CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKKyAgPGdsb3NzZW50cnkgaWQ9 Imdsb3NzYXJ5LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgIDxnbG9zc3Rlcm0+Q29sdW1uIG1h c3RlciBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAg QSBjcnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIGVuY3J5cHRpb24g a2V5cy4gIChTbyB0aGUKKyAgICAgY29sdW1uIG1hc3RlciBrZXkgaXMgYSA8Zmlyc3R0ZXJt PmtleSBlbmNyeXB0aW9uIGtleTwvZmlyc3R0ZXJtPi4pCisgICAgIENvbHVtbiBtYXN0ZXIg a2V5cyBhcmUgc3RvcmVkIG91dHNpZGUgdGhlIGRhdGFiYXNlIHN5c3RlbSwgZm9yIGV4YW1w bGUgaW4KKyAgICAgYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAgPC9wYXJhPgorICAg PC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxnbG9zc2VudHJ5IGlkPSJnbG9z c2FyeS1jb21taXQiPgogICAgPGdsb3NzdGVybT5Db21taXQ8L2dsb3NzdGVybT4KICAgIDxn bG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2xpYnBxLnNnbWwKaW5kZXggYWYyNzg2NjBlYi4uYTJkNDEzYmFmZCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBx LnNnbWwKQEAgLTE5NjQsNiArMTk2NCwxNDAgQEAgPHRpdGxlPlBhcmFtZXRlciBLZXkgV29y ZHM8L3RpdGxlPgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3Qt Y29sdW1uLWVuY3J5cHRpb24iIHhyZWZsYWJlbD0iY29sdW1uX2VuY3J5cHRpb24iPgorICAg ICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+PC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBJZiBzZXQgdG8gMSwg dGhpcyBlbmFibGVzIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciB0aGUKKyAg ICAgICAgY29ubmVjdGlvbi4gIElmIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSBxdWVyaWVkIGFu ZCB0aGlzIGlzIG5vdCBlbmFibGVkLAorICAgICAgICB0aGUgZW5jcnlwdGVkIHZhbHVlIGlz IHJldHVybmVkLiAgU2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5j cnlwdGlvbiIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzCisgICAgICAgIGZl YXR1cmUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtY29ubmVjdC1jbWts b29rdXAiIHhyZWZsYWJlbD0iY21rbG9va3VwIj4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPmNt a2xvb2t1cDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBh cmE+CisgICAgICAgIFRoaXMgc3BlY2lmaWVzIGhvdyBsaWJwcSBzaG91bGQgbG9vayB1cCBj b2x1bW4gbWFzdGVyIGtleXMgKENNS3MpIGluCisgICAgICAgIG9yZGVyIHRvIGRlY3J5cHQg dGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgKENFS3MpLgorICAgICAgICBUaGUgdmFsdWUg aXMgYSBsaXN0IG9mIDxsaXRlcmFsPmtleT12YWx1ZTwvbGl0ZXJhbD4gZW50cmllcyBzZXBh cmF0ZWQKKyAgICAgICAgYnkgc2VtaWNvbG9ucy4gIEVhY2gga2V5IGlzIHRoZSBuYW1lIG9m IGEga2V5IHJlYWxtLCBvcgorICAgICAgICA8bGl0ZXJhbD4qPC9saXRlcmFsPiB0byBtYXRj aCBhbGwgcmVhbG1zLiAgVGhlIHZhbHVlIGlzIGEKKyAgICAgICAgPGxpdGVyYWw+c2NoZW1l OmRhdGE8L2xpdGVyYWw+IHNwZWNpZmljYXRpb24uICBUaGUgc2NoZW1lIHNwZWNpZmllcwor ICAgICAgICB0aGUgbWV0aG9kIHRvIGxvb2sgdXAgdGhlIGtleSwgdGhlIHJlbWFpbmluZyBk YXRhIGlzIHNwZWNpZmljIHRvIHRoZQorICAgICAgICBzY2hlbWUuICBQbGFjZWhvbGRlcnMg YXJlIHJlcGxhY2VkIGluIHRoZSByZW1haW5pbmcgZGF0YSBhcyBmb2xsb3dzOgorCisgICAg ICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAg IDx0ZXJtPjxsaXRlcmFsPiVhPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENNSyBhbGdvcml0aG0g bmFtZSAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPikKKyAgICAg ICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48 bGl0ZXJhbD4lajwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBDTUsgYWxnb3JpdGhtIG5hbWUgaW4g SlNPTiBXZWIgQWxnb3JpdGhtcyBmb3JtYXQgKHNlZSA8eHJlZgorICAgICAgICAgICAgbGlu a2VuZD0icHJvdG9jb2wtY21rLXRhYmxlIi8+KS4gIFRoaXMgaXMgdXNlZnVsIGZvciBpbnRl cmZhY2luZworICAgICAgICAgICAgd2l0aCBzb21lIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMg dGhhdCB1c2UgdGhlc2UgbmFtZXMuCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWs8L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAg ICBUaGUgQ01LIGtleSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xp c3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JXA8L2xpdGVyYWw+PC90ZXJtPgor ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBU aGUgbmFtZSBvZiBhIHRlbXBvcmFyeSBmaWxlIHdpdGggdGhlIGVuY3J5cHRlZCBDRUsgZGF0 YSAob25seSBmb3IKKyAgICAgICAgICAgIHRoZSA8bGl0ZXJhbD5ydW48L2xpdGVyYWw+IHNj aGVtZSkKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg ICAgICA8dGVybT48bGl0ZXJhbD4lcjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSByZWFsbSBuYW1l CisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAg PC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBBdmFpbGFibGUgc2NoZW1lcyBhcmU6Cisg ICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg ICAgIDx0ZXJtPjxsaXRlcmFsPmZpbGU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBMb2FkIHRoZSBrZXkg bWF0ZXJpYWwgZnJvbSBhIGZpbGUuICBUaGUgcmVtYWluaW5nIGRhdGEgaXMgdGhlIGZpbGUK KyAgICAgICAgICAgIG5hbWUuICBVc2UgdGhpcyBpZiB0aGUgQ01LcyBhcmUga2VwdCBpbiBh IGZpbGUgb24gdGhlIGZpbGUgc3lzdGVtLgorICAgICAgICAgICA8L3BhcmE+CisKKyAgICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgZmlsZSBzY2hlbWUgZG9lcyBub3Qgc3Vw cG9ydCB0aGUgQ01LIGFsZ29yaXRobQorICAgICAgICAgICAgPGxpdGVyYWw+dW5zcGVjaWZp ZWQ8L2xpdGVyYWw+LgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPnJ1bjwvbGl0ZXJhbD48L3Rlcm0+CisgICAg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFJ1biB0 aGUgc3BlY2lmaWVkIGNvbW1hbmQgdG8gZGVjcnlwdCB0aGUgQ0VLLiAgVGhlIHJlbWFpbmlu ZyBkYXRhCisgICAgICAgICAgICBpcyBhIHNoZWxsIGNvbW1hbmQuICBVc2UgdGhpcyB3aXRo IGtleSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhhdAorICAgICAgICAgICAgcGVyZm9ybSB0aGUg ZGVjcnlwdGlvbiB0aGVtc2VsdmVzLiAgVGhlIGNvbW1hbmQgbXVzdCBwcmludCB0aGUKKyAg ICAgICAgICAgIGRlY3J5cHRlZCBwbGFpbnRleHQgb24gdGhlIHN0YW5kYXJkIG91dHB1dC4K KyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5 LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBFeGFtcGxlOgor PHByb2dyYW1saXN0aW5nPgorY21rbG9va3VwPSJyMT1maWxlOi9zb21lL3doZXJlL3NlY3Jl dHMvJWsucGVtOyo9ZmlsZTovZWxzZS93aGVyZS8lci8lay5wZW0iCis8L3Byb2dyYW1saXN0 aW5nPgorICAgICAgICBUaGlzIHNwZWNpZmljYXRpb24gc2F5cywgZm9yIGtleXMgaW4gcmVh bG0gPHF1b3RlPnIxPC9xdW90ZT4sIGxvYWQKKyAgICAgICAgdGhlbSBmcm9tIHRoZSBzcGVj aWZpZWQgZmlsZSwgcmVwbGFjaW5nIDxsaXRlcmFsPiVrPC9saXRlcmFsPiBieSB0aGUKKyAg ICAgICAga2V5IG5hbWUuICBGb3Iga2V5cyBpbiBvdGhlciByZWFsbXMsIGxvYWQgdGhlbSBm cm9tIHRoZSBmaWxlLAorICAgICAgICByZXBsYWNpbmcgcmVhbG0gYW5kIGtleSBuYW1lcyBh cyBzcGVjaWZpZWQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IEFuIGV4YW1wbGUgZm9yIGludGVyYWN0aW5nIHdpdGggYSAoaHlwb3RoZXRpY2FsKSBrZXkg bWFuYWdlbWVudAorICAgICAgICBzeXN0ZW06Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29r dXA9Iio9cnVuOmFjbWVrbXMgZGVjcnlwdCAtLWtleSAlayAtLWFsZyAlYSAtLWluZmlsZSAn JXAnIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwv cGFyYT4KICAgPC9zZWN0Mj4KQEAgLTI4NjQsNiArMjk5OCwyNSBAQCA8dGl0bGU+TWFpbiBG dW5jdGlvbnM8L3RpdGxlPgogICAgICAgICAgICAgPGZpbGVuYW1lPnNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmM6Om51bWVyaWNfc2VuZCgpPC9maWxlbmFtZT4gYW5kCiAgICAg ICAgICAgICA8ZmlsZW5hbWU+c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYzo6bnVt ZXJpY19yZWN2KCk8L2ZpbGVuYW1lPi4KICAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAg ICAgIDxwYXJhPgorICAgICAgICAgICAgV2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFi bGVkLCB0aGUgc2Vjb25kLWxlYXN0LXNpZ25pZmljYW50CisgICAgICAgICAgICBieXRlIG9m IHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGV0aGVyIGVuY3J5cHRpb24gc2hvdWxkIGJl CisgICAgICAgICAgICBmb3JjZWQgZm9yIGEgcGFyYW1ldGVyLiAgU2V0IHRoaXMgYnl0ZSB0 byBvbmUgdG8gZm9yY2UgZW5jcnlwdGlvbi4KKyAgICAgICAgICAgIEZvciBleGFtcGxlLCB1 c2UgdGhlIEMgY29kZSBsaXRlcmFsIDxsaXRlcmFsPjB4MTA8L2xpdGVyYWw+IHRvCisgICAg ICAgICAgICBzcGVjaWZ5IHRleHQgZm9ybWF0IHdpdGggZm9yY2VkIGVuY3J5cHRpb24uICBJ ZiB0aGUgYXJyYXkgcG9pbnRlcgorICAgICAgICAgICAgaXMgbnVsbCB0aGVuIGVuY3J5cHRp b24gaXMgbm90IGZvcmNlZCBmb3IgYW55IHBhcmFtZXRlci4KKyAgICAgICAgICAgPC9wYXJh PgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgSWYgZW5jcnlwdGlvbiBpcyBm b3JjZWQgZm9yIGEgcGFyYW1ldGVyIGJ1dCB0aGUgcGFyYW1ldGVyIGRvZXMgbm90CisgICAg ICAgICAgICBjb3JyZXNwb25kIHRvIGFuIGVuY3J5cHRlZCBjb2x1bW4gb24gdGhlIHNlcnZl ciwgdGhlbiB0aGUgY2FsbAorICAgICAgICAgICAgd2lsbCBmYWlsIGFuZCB0aGUgcGFyYW1l dGVyIHdpbGwgbm90IGJlIHNlbnQuICBUaGlzIGNhbiBiZSB1c2VkCisgICAgICAgICAgICBm b3IgYWRkaXRpb25hbCBzZWN1cml0eSBhZ2FpbnN0IGEgY29tcHJpbWlzZWQgc2VydmVyLiAg KFRoZQorICAgICAgICAgICAgZHJhd2JhY2sgaXMgdGhhdCBhcHBsaWNhdGlvbiBjb2RlIHRo ZW4gbmVlZHMgdG8gYmUga2VwdCB1cCB0byBkYXRlCisgICAgICAgICAgICB3aXRoIGtub3ds ZWRnZSBhYm91dCB3aGljaCBjb2x1bW5zIGFyZSBlbmNyeXB0ZWQgcmF0aGVyIHRoYW4KKyAg ICAgICAgICAgIGxldHRpbmcgdGhlIHNlcnZlciBzcGVjaWZ5IHRoaXMuKQorICAgICAgICAg ICA8L3BhcmE+CiAgICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlzdGVu dHJ5PgogCkBAIC0yODc2LDYgKzMwMjksMTMgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90 aXRsZT4KICAgICAgICAgICAgIHRvIG9idGFpbiBkaWZmZXJlbnQgcmVzdWx0IGNvbHVtbnMg aW4gZGlmZmVyZW50IGZvcm1hdHMsCiAgICAgICAgICAgICBhbHRob3VnaCB0aGF0IGlzIHBv c3NpYmxlIGluIHRoZSB1bmRlcmx5aW5nIHByb3RvY29sLikKICAgICAgICAgICAgPC9wYXJh PgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgSWYgY29sdW1uIGVuY3J5cHRp b24gaXMgdXNlZCwgdGhlbiBlbmNyeXB0ZWQgY29sdW1ucyB3aWxsIGJlCisgICAgICAgICAg ICByZXR1cm5lZCBpbiB0ZXh0IGZvcm1hdCBpbmRlcGVuZGVudCBvZiB0aGlzIHNldHRpbmcu ICBBcHBsaWNhdGlvbnMKKyAgICAgICAgICAgIGNhbiBjaGVjayB0aGUgZm9ybWF0IG9mIGVh Y2ggcmVzdWx0IGNvbHVtbiB3aXRoIDx4cmVmCisgICAgICAgICAgICBsaW5rZW5kPSJsaWJw cS1QUWZmb3JtYXQiLz4gYmVmb3JlIGFjY2Vzc2luZyBpdC4KKyAgICAgICAgICAgPC9wYXJh PgogICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAg ICAgICAgPC92YXJpYWJsZWxpc3Q+CkBAIC0zMDI4LDYgKzMxODgsNDQgQEAgPHRpdGxlPk1h aW4gRnVuY3Rpb25zPC90aXRsZT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlz dGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVk RGVzY3JpYmVkIj4KKyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWV4ZWNQcmVwYXJlZERlc2Ny aWJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWV4ZWNQcmVwYXJlZERlc2Ny aWJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAgIDxsaXN0aXRlbT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgU2VuZHMgYSByZXF1ZXN0IHRvIGV4ZWN1dGUgYSBw cmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBnaXZlbgorICAgICAgICBwYXJhbWV0ZXJzLCBhbmQg d2FpdHMgZm9yIHRoZSByZXN1bHQsIHdpdGggc3VwcG9ydCBmb3IgZW5jcnlwdGVkIGNvbHVt bnMuCis8c3lub3BzaXM+CitQR3Jlc3VsdCAqUFFleGVjUHJlcGFyZWREZXNjcmliZWQoUEdj b25uICpjb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKnN0bXROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBu UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg KiBjb25zdCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKKzwvc3lub3BzaXM+CisgICAg ICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkIi8+IGlzIGxpa2UgPHhyZWYKKyAgICAgICAg bGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4gd2l0aCBhZGRpdGlvbmFsIHN1cHBv cnQgZm9yIGVuY3J5cHRlZAorICAgICAgICBjb2x1bW5zLiAgVGhlIHBhcmFtZXRlciA8cGFy YW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJlIGEKKyAgICAgICAgcmVzdWx0 IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVw YXJlZCIvPiBvbgorICAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0ZW1lbnQuCisgICAg ICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgZnVuY3Rpb24gbXVz dCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNwb25kcyB0byBhbgor ICAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1bW4uICBJbiB0aGF0IHNpdHVhdGlv biwgdGhlIHByZXBhcmVkCisgICAgICAgIHN0YXRlbWVudCBuZWVkcyB0byBiZSBkZXNjcmli ZWQgZmlyc3Qgc28gdGhhdCBsaWJwcSBjYW4gb2J0YWluIHRoZQorICAgICAgICBuZWNlc3Nh cnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBXaGVuIHRo YXQgaXMKKyAgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZyB0byBl bmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgYXV0b21hdGljYWxseSBlbmNyeXB0ZWQg YXBwcm9wcmlhdGVseSBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgc2VydmVyLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCI+CiAgICAg ICA8dGVybT48ZnVuY3Rpb24+UFFkZXNjcmliZVByZXBhcmVkPC9mdW5jdGlvbj48aW5kZXh0 ZXJtPjxwcmltYXJ5PlBRZGVzY3JpYmVQcmVwYXJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48 L3Rlcm0+CiAKQEAgLTM4NzgsNiArNDA3NiwyOCBAQCA8dGl0bGU+UmV0cmlldmluZyBRdWVy eSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFmaXNlbmNy eXB0ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFmaXNlbmNyeXB0ZWQ8L2Z1bmN0aW9u PjxpbmRleHRlcm0+PHByaW1hcnk+UFFmaXNlbmNyeXB0ZWQ8L3ByaW1hcnk+PC9pbmRleHRl cm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJl dHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiBjb2x1bW4gY2FtZSBmcm9t IGFuIGVuY3J5cHRlZAorICAgICAgIGNvbHVtbi4gIENvbHVtbiBudW1iZXJzIHN0YXJ0IGF0 IDAuCis8c3lub3BzaXM+CitpbnQgUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJl cywKKyAgICAgICAgICAgICAgICAgICBpbnQgY29sdW1uX251bWJlcik7Cis8L3N5bm9wc2lz PgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBFbmNyeXB0ZWQgY29s dW1uIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBkZWNyeXB0ZWQsIHNvIHRoaXMgZnVuY3Rp b24KKyAgICAgICBpcyBub3QgbmVjZXNzYXJ5IHRvIGFjY2VzcyB0aGUgY29sdW1uIHZhbHVl LiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4dHJhCisgICAgICAgc2VjdXJpdHkgdG8gY2hlY2sg d2hldGhlciB0aGUgdmFsdWUgd2FzIHN0b3JlZCBlbmNyeXB0ZWQgd2hlbiBvbmUKKyAgICAg ICB0aG91Z2h0IGl0IHNob3VsZCBiZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRl bT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBx LVBRZnNpemUiPgogICAgICA8dGVybT48ZnVuY3Rpb24+UFFmc2l6ZTwvZnVuY3Rpb24+PGlu ZGV4dGVybT48cHJpbWFyeT5QUWZzaXplPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4K IApAQCAtNDA1OSw2ICs0Mjc5LDMxIEBAIDx0aXRsZT5SZXRyaWV2aW5nIFF1ZXJ5IFJlc3Vs dCBJbmZvcm1hdGlvbjwvdGl0bGU+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXBhcmFtaXNlbmNyeXB0 ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFwYXJhbWlzZW5jcnlwdGVkPC9mdW5jdGlv bj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRcGFyYW1pc2VuY3J5cHRlZDwvcHJpbWFyeT48L2lu ZGV4dGVybT48L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAg ICAgUmV0dXJucyB3aGV0aGVyIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlciBp cyBkZXN0aW5lZCBmb3IgYW4KKyAgICAgICBlbmNyeXB0ZWQgY29sdW1uLiAgUGFyYW1ldGVy IG51bWJlcnMgc3RhcnQgYXQgMC4KKzxzeW5vcHNpcz4KK2ludCBQUXBhcmFtaXNlbmNyeXB0 ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bWJlcik7Cis8L3N5bm9wc2lz PgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBWYWx1ZXMgZm9yIHBh cmFtZXRlcnMgZGVzdGluZWQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSBhdXRvbWF0aWNh bGx5CisgICAgICAgZW5jcnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBuZWNlc3Nh cnkgdG8gcHJlcGFyZSB0aGUgcGFyYW1ldGVyCisgICAgICAgdmFsdWUuICBJdCBjYW4gYmUg dXNlZCBmb3IgZXh0cmEgc2VjdXJpdHkgdG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUKKyAg ICAgICB3aWxsIGJlIHN0b3JlZCBlbmNyeXB0ZWQgd2hlbiBvbmUgdGhvdWdodCBpdCBzaG91 bGQgYmUuICAoQnV0IHNlZSBhbHNvCisgICAgICAgYXQgPHhyZWYgbGlua2VuZD0ibGlicHEt UFFleGVjUHJlcGFyZWREZXNjcmliZWQiLz4gZm9yIGFub3RoZXIgd2F5IHRvIGRvIHRoYXQu KQorICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSB1c2VmdWwgd2hlbiBpbnNwZWN0aW5n IHRoZSByZXN1bHQgb2YgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJl UHJlcGFyZWQiLz4uICBGb3Igb3RoZXIgdHlwZXMgb2YgcmVzdWx0cyBpdAorICAgICAgIHdp bGwgcmV0dXJuIGZhbHNlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAg IDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFwcmlu dCI+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXByaW50PC9mdW5jdGlvbj48aW5kZXh0ZXJt PjxwcmltYXJ5PlBRcHJpbnQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC00 NTg0LDYgKzQ4MjksNyBAQCA8dGl0bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2lu ZzwvdGl0bGU+CiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIv PiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFByZXBhcmUiLz4sCiAgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkIi8+LAorICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCIvPiwKICAgIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sCiAgICB3aGljaCBj YW4gYmUgdXNlZCB3aXRoIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZ2V0UmVzdWx0Ii8+IHRv IGR1cGxpY2F0ZQpAQCAtNDU5MSw2ICs0ODM3LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBD b21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFl eGVjUGFyYW1zIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFwcmVwYXJlIi8+LAog ICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4sCisgICA8eHJlZiBs aW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCIvPiwKICAgIDx4cmVmIGxp bmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiwgYW5kCiAgICA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1QUWRlc2NyaWJlUG9ydGFsIi8+CiAgICByZXNwZWN0aXZlbHkuCkBAIC00 NjQ3LDYgKzQ4OTQsMTMgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Np bmc8L3RpdGxlPgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1BhcmFtcyIv PiwgaXQgYWxsb3dzIG9ubHkgb25lIGNvbW1hbmQgaW4gdGhlCiAgICAgICAgcXVlcnkgc3Ry aW5nLgogICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBJZiBjb2x1bW4g ZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGVuIHRoaXMgZnVuY3Rpb24gaXMgbm90CisgICAg ICAgYXN5bmNocm9ub3VzLiAgVG8gZ2V0IGFzeW5jaHJvbm91cyBiZWhhdmlvciwgPHhyZWYK KyAgICAgICBsaW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVwYXJlIi8+IGZvbGxvd2VkIGJ5IDx4 cmVmCisgICAgICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJl ZCIvPiBzaG91bGQgYmUgY2FsbGVkIGluZGl2aWR1YWxseS4KKyAgICAgIDwvcGFyYT4KICAg ICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtNDcwMSw2ICs0OTU1 LDQ1IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4K ICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0 ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQiPgorICAgICA8 dGVybT48ZnVuY3Rpb24+UFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZDwvZnVuY3Rpb24+ PGluZGV4dGVybT48cHJpbWFyeT5QUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkPC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBTZW5kcyBhIHJlcXVlc3QgdG8gZXhlY3V0ZSBhIHByZXBhcmVkIHN0YXRl bWVudCB3aXRoIGdpdmVuCisgICAgICAgcGFyYW1ldGVycywgd2l0aG91dCB3YWl0aW5nIGZv ciB0aGUgcmVzdWx0KHMpLCB3aXRoIHN1cHBvcnQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zLgor PHN5bm9wc2lzPgoraW50IFBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpj b25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3Rt dE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAq cGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBp bnQgKnBhcmFtTGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBHcmVzdWx0ICpwYXJhbURlc2MpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKwor ICAgICAgPHBhcmE+CisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQ cmVwYXJlZERlc2NyaWJlZCIvPiBpcyBsaWtlIDx4cmVmCisgICAgICAgbGlua2VuZD0ibGli cHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiB3aXRoIGFkZGl0aW9uYWwgc3VwcG9ydCBmb3Ig ZW5jcnlwdGVkCisgICAgICAgY29sdW1ucy4gIFRoZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5w YXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBhCisgICAgICAgcmVzdWx0IHNldCBvYnRh aW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQi Lz4gb24KKyAgICAgICB0aGUgc2FtZSBwcmVwYXJlZCBzdGF0ZW1lbnQuCisgICAgICA8L3Bh cmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2Vk IGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3JyZXNwb25kcyB0byBhbgorICAgICAgIHVu ZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQgc2l0dWF0aW9uLCB0aGUgcHJl cGFyZWQKKyAgICAgICBzdGF0ZW1lbnQgbmVlZHMgdG8gYmUgZGVzY3JpYmVkIGZpcnN0IHNv IHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUKKyAgICAgICBuZWNlc3Nhcnkga2V5IGFuZCBv dGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAg ICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1 bW5zIGFyZQorICAgICAgIGF1dG9tYXRpY2FsbHkgZW5jcnlwdGVkIGFwcHJvcHJpYXRlbHkg YmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZlci4KKyAgICAgICBTZWUgYWxzbyB1bmRl ciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCIvPi4KKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiPgog ICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZW5kRGVzY3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+ PGluZGV4dGVybT48cHJpbWFyeT5QUXNlbmREZXNjcmliZVByZXBhcmVkPC9wcmltYXJ5Pjwv aW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDc1MSw2ICs1MDQ0LDcgQEAgPHRpdGxlPkFzeW5j aHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICAgIDx4cmVmIGxpbmtl bmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UGFyYW1zIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLVBRc2VuZFByZXBhcmUiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEt UFFzZW5kUXVlcnlQcmVwYXJlZCIvPiwKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sCiAgICAgICAgPHhyZWYgbGlua2Vu ZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sIG9yCiAgICAgICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFwaXBlbGluZVN5bmMiLz4KQEAgLTc3ODQsNiArODA3OCwyNiBAQCA8 dGl0bGU+RW52aXJvbm1lbnQgVmFyaWFibGVzPC90aXRsZT4KICAgICAgPC9wYXJhPgogICAg IDwvbGlzdGl0ZW0+CiAKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48ZW52YXI+UEdDTUtMT09LVVA8L2VudmFyPjwv cHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPGVudmFyPlBHQ01LTE9PS1VQ PC9lbnZhcj4gYmVoYXZlcyB0aGUgc2FtZSBhcyB0aGUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9 ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIi8+IGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NPTFVN TkVOQ1JZUFRJT048L2VudmFyPjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAg ICAgPGVudmFyPlBHQ09MVU1ORU5DUllQVElPTjwvZW52YXI+IGJlaGF2ZXMgdGhlIHNhbWUg YXMgdGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNy eXB0aW9uIi8+IGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKwogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICA8aW5kZXh0 ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcHJvdG9jb2wuc2dtbAppbmRleCAwMzMxMmUwN2UyLi4xYTliOGFiZDdmIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbApAQCAtMTEwOSw2ICsxMTA5LDc1IEBAIDx0aXRsZT5QaXBlbGluaW5n PC90aXRsZT4KICAgIDwvcGFyYT4KICAgPC9zZWN0Mj4KIAorICA8c2VjdDIgaWQ9InByb3Rv Y29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciPgorICAgPHRpdGxlPlRy YW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAg VHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCBieSBzZW5kaW5nIHRo ZSBwYXJhbWV0ZXIKKyAgICA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRl cmFsPiB3aXRoIGEgdmFsdWUgb2YKKyAgICA8bGl0ZXJhbD4xPC9saXRlcmFsPiBpbiB0aGUg U3RhcnR1cE1lc3NhZ2UuICBUaGlzIGlzIGEgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgdGhh dCBlbmFibGVzIGEgZmV3IGFkZGl0aW9uYWwgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIGFkZHMg YWRkaXRpb25hbCBmaWVsZHMKKyAgICB0byBleGlzdGluZyBwcm90b2NvbCBtZXNzYWdlcy4g IENsaWVudCBkcml2ZXJzIHNob3VsZCBvbmx5IGFjdGl2YXRlIHRoaXMKKyAgICBwcm90b2Nv bCBleHRlbnNpb24gd2hlbiByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIsIGZvciBleGFtcGxlIHRo cm91Z2ggYQorICAgIGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgPC9wYXJhPgorCisgICA8 cGFyYT4KKyAgICBXaGVuIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJs ZWQsIHRoZSBtZXNzYWdlcworICAgIENvbHVtbk1hc3RlcktleSBhbmQgQ29sdW1uRW5jcnlw dGlvbktleSBjYW4gYXBwZWFyIGJlZm9yZSBSb3dEZXNjcmlwdGlvbgorICAgIGFuZCBQYXJh bWV0ZXJEZXNjcmlwdGlvbiBtZXNzYWdlcy4gIENsaWVudHMgc2hvdWxkIGNvbGxlY3QgdGhl IGluZm9ybWF0aW9uCisgICAgaW4gdGhlc2UgbWVzc2FnZXMgYW5kIGtlZXAgdGhlbSBmb3Ig dGhlIGR1cmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uLiAgQQorICAgIHNlcnZlciBpcyBub3Qg cmVxdWlyZWQgdG8gcmVzZW5kIHRoZSBrZXkgaW5mb3JtYXRpb24gZm9yIGVhY2ggc3RhdGVt ZW50CisgICAgY3ljbGUgaWYgaXQgd2FzIGFscmVhZHkgc2VudCBkdXJpbmcgdGhpcyBjb25u ZWN0aW9uLiAgSWYgYSBzZXJ2ZXIgcmVzZW5kcworICAgIGEga2V5IHRoYXQgdGhlIGNsaWVu dCBoYXMgYWxyZWFkeSBzdG9yZWQgKHRoYXQgaXMsIGEga2V5IGhhdmluZyBhbiBJRAorICAg IGVxdWFsIHRvIG9uZSBhbHJlYWR5IHN0b3JlZCksIHRoZSBuZXcgaW5mb3JtYXRpb24gc2hv dWxkIHJlcGxhY2UgdGhlIG9sZC4KKyAgICAoVGhpcyBjb3VsZCBoYXBwZW4sIGZvciBleGFt cGxlLCBpZiB0aGUga2V5IHdhcyBhbHRlcmVkIGJ5IHNlcnZlci1zaWRlIERETAorICAgIGNv bW1hbmRzLikKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQSBjbGllbnQgc3VwcG9y dGluZyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBzaG91bGQgYXV0b21hdGljYWxs eQorICAgIGRlY3J5cHQgdGhlIGNvbHVtbiB2YWx1ZSBmaWVsZHMgb2YgRGF0YVJvdyBtZXNz YWdlcyBjb3JyZXNwb25kaW5nIHRvCisgICAgZW5jcnlwdGVkIGNvbHVtbnMsIGFuZCBpdCBz aG91bGQgYXV0b21hdGljYWxseSBlbmNyeXB0IHRoZSBwYXJhbWV0ZXIgdmFsdWUKKyAgICBm aWVsZHMgb2YgQmluZCBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1 bW5zLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIGNvbHVtbiBlbmNyeXB0 aW9uIGlzIHVzZWQsIGZvcm1hdCBzcGVjaWZpY2F0aW9ucyAodGV4dC9iaW5hcnkpIGluIHRo ZQorICAgIHZhcmlvdXMgcHJvdG9jb2wgbWVzc2FnZXMgYXBwbHkgdG8gdGhlIGNpcGhlcnRl eHQuICBUaGUgcGxhaW50ZXh0IGluc2lkZQorICAgIHRoZSBjaXBoZXJ0ZXh0IGlzIGFsd2F5 cyBpbiB0ZXh0IGZvcm1hdCwgYnV0IHRoaXMgaXMgaW52aXNpYmxlIHRvIHRoZQorICAgIHBy b3RvY29sLiAgRXZlbiB0aG91Z2ggdGhlIGNpcGhlcnRleHQgY291bGQgaW4gdGhlb3J5IGJl IHNlbnQgaW4gZWl0aGVyCisgICAgdGV4dCBvciBiaW5hcnkgZm9ybWF0LCB0aGUgc2VydmVy IHdpbGwgYWx3YXlzIHNlbmQgaXQgaW4gYmluYXJ5IGlmIHRoZQorICAgIGNvbHVtbiBlbmNy eXB0aW9uIHByb3RvY29sIG9wdGlvbiBpcyBlbmFibGVkLiAgVGhhdCB3YXksIGEgY2xpZW50 IGxpYnJhcnkKKyAgICBvbmx5IG5lZWRzIHRvIHN1cHBvcnQgZGVjcnlwdGluZyBkYXRhIHNl bnQgaW4gYmluYXJ5IGFuZCBkb2VzIG5vdCBoYXZlIHRvCisgICAgc3VwcG9ydCBkZWNvZGlu ZyB0aGUgdGV4dCBmb3JtYXQgb2YgdGhlIGVuY3J5cHRpb24tcmVsYXRlZCB0eXBlcyAoc2Vl CisgICAgPHhyZWYgbGlua2VuZD0iZGF0YXR5cGUtZW5jcnlwdGVkIi8+KS4KKyAgIDwvcGFy YT4KKworICAgPHBhcmE+CisgICAgV2hlbiBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gaXMg dXNlZCwgY2xpZW50cyBuZWVkIHRvIHRha2UgY2FyZSB0bworICAgIHJlcHJlc2VudCBwbGFp bnRleHQgdG8gYmUgZW5jcnlwdGVkIGluIGEgY29uc2lzdGVudCBmb3JtLiAgRm9yIGV4YW1w bGUsCisgICAgZW5jcnlwdGluZyBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJp bmcgPGxpdGVyYWw+MTAwPC9saXRlcmFsPiBhbmQKKyAgICBhbiBpbnRlZ2VyIHJlcHJlc2Vu dGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVyYWw+KzEwMDwvbGl0ZXJhbD4gd291bGQgcmVzdWx0 CisgICAgaW4gdHdvIGRpZmZlcmVudCBjaXBoZXJ0ZXh0cywgdGh1cyBkZWZlYXRpbmcgdGhl IG1haW4gcG9pbnQgb2YKKyAgICBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24uICBUaGlzIHBy b3RvY29sIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgdGhlCisgICAgcGxhaW50ZXh0IHRvIGJl IGluIDxxdW90ZT5jYW5vbmljYWw8L3F1b3RlPiBmb3JtLCB3aGljaCBpcyB0aGUgZm9ybSB0 aGF0CisgICAgaXMgcHJvZHVjZWQgYnkgdGhlIHNlcnZlciB3aGVuIGl0IG91dHB1dHMgYSBw YXJ0aWN1bGFyIHZhbHVlIGluIHRleHQKKyAgICBmb3JtYXQuCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFdoZW4gdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5h YmxlZCwgdGhlIGNsaWVudCBlbmNvZGluZyBtdXN0CisgICAgbWF0Y2ggdGhlIHNlcnZlciBl bmNvZGluZy4gIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCB2YWx1ZXMgZW5jcnlwdGVkIG9yCisg ICAgZGVjcnlwdGVkIGJ5IHRoZSBjbGllbnQgbWF0Y2ggdGhlIHNlcnZlciBlbmNvZGluZy4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0 aW9ucyB1c2VkIGZvciB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBhcmUKKyAgICBk ZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1u LWVuY3J5cHRpb24tY3J5cHRvIi8+LgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAgIDxz ZWN0Mj4KICAgIDx0aXRsZT5GdW5jdGlvbiBDYWxsPC90aXRsZT4KIApAQCAtNDA1Niw2ICs0 MTI1LDE0MCBAQCA8dGl0bGU+TWVzc2FnZSBGb3JtYXRzPC90aXRsZT4KICAgICA8L2xpc3Rp dGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3Rv Y29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1bW5FbmNyeXB0aW9uS2V5Ij4KKyAgICA8dGVybT5D b2x1bW5FbmNyeXB0aW9uS2V5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhpcyBtZXNzYWdlIGNhbiBvbmx5IGFwcGVhciBpZiB0aGUgcHJvdG9j b2wgZXh0ZW5zaW9uCisgICAgICA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9s aXRlcmFsPiBpcyBlbmFibGVkLiAgKFNlZSA8eHJlZgorICAgICAgbGlua2VuZD0icHJvdG9j b2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24tZmxvdyIvPi4pCisgICAgIDwvcGFy YT4KKworICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg ICA8dGVybT5CeXRlMSgnWScpPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg PHBhcmE+CisgICAgICAgICBJZGVudGlmaWVzIHRoZSBtZXNzYWdlIGFzIGEgY29sdW1uIGVu Y3J5cHRpb24ga2V5IG1lc3NhZ2UuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8 cGFyYT4KKyAgICAgICAgIExlbmd0aCBvZiBtZXNzYWdlIGNvbnRlbnRzIGluIGJ5dGVzLCBp bmNsdWRpbmcgc2VsZi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8 dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIHNlc3Npb24tc3BlY2lmaWMgaWRlbnRpZmllciBvZiB0aGUga2V5Lgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgaWRl bnRpZmllciBvZiB0aGUgbWFzdGVyIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhpcyBrZXkuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBpZGVu dGlmaWVyIG9mIHRoZSBhbGdvcml0aG0gdXNlZCB0byBlbmNyeXB0IHRoaXMga2V5LgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgbGVuZ3Ro IG9mIHRoZSBmb2xsb3dpbmcga2V5IG1hdGVyaWFsLgorICAgICAgICA8L3BhcmE+CisgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGU8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBU aGUga2V5IG1hdGVyaWFsLCBlbmNyeXB0ZWQgd2l0aCB0aGUgbWFzdGVyIGtleSByZWZlcmVu Y2VkIGFib3ZlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAg IDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29s LW1lc3NhZ2UtZm9ybWF0cy1Db2x1bW5NYXN0ZXJLZXkiPgorICAgIDx0ZXJtPkNvbHVtbk1h c3RlcktleSAoQik8L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgbWVzc2FnZSBjYW4gb25seSBhcHBlYXIgaWYgdGhlIHByb3RvY29sIGV4dGVuc2lv bgorICAgICAgPGxpdGVyYWw+X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMg ZW5hYmxlZC4gIChTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFy ZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciLz4uKQorICAgICA8L3BhcmE+CisKKyAgICAg PHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0 ZTEoJ3knKTwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgSWRlbnRpZmllcyB0aGUgbWVzc2FnZSBhcyBhIGNvbHVtbiBtYXN0ZXIga2V5IG1l c3NhZ2UuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50 MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IExlbmd0aCBvZiBtZXNzYWdlIGNvbnRlbnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4K KyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHNl c3Npb24tc3BlY2lmaWMgaWRlbnRpZmllciBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPlN0cmluZzwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGtleS4K KyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rl cm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBr ZXkncyByZWFsbS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2Nv bC1tZXNzYWdlLWZvcm1hdHMtQ29tbWFuZENvbXBsZXRlIj4KICAgICA8dGVybT5Db21tYW5k Q29tcGxldGUgKEIpPC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTUxNTIsNiArNTM1NSw0 NiBAQCA8dGl0bGU+TWVzc2FnZSBGb3JtYXRzPC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVt PgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAg IDxwYXJhPgorICAgICAgSWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFf LmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4 cmVmCisgICAgICBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlw dGlvbi1mbG93Ii8+KSwgdGhlbiB0aGVyZSBpcworICAgICAgYWxzbyB0aGUgZm9sbG93aW5n IGZvciBlYWNoIHBhcmFtZXRlcjoKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxp c3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBh cmFtZXRlciBpcyB0byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAg ICAgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxz ZSB6ZXJvLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPklu dDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAg ICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVz IHRoZQorICAgICAgICAgaWRlbnRpZmllciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0s IGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVy bT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgVGhpcyBpcyB1c2VkIGFzIGEgYml0IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIGNv bHVtbiBpcworICAgICAgICAgZW5jcnlwdGVkIGFuZCBiaXQgMHgwMSBpcyBzZXQsIHRoZSBj b2x1bW4gdXNlcyBkZXRlcm1pbmlzdGljCisgICAgICAgICBlbmNyeXB0aW9uLCBvdGhlcndp c2UgcmFuZG9taXplZCBlbmNyeXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4K ICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTU1NDAsNiArNTc4 MywzNSBAQCA8dGl0bGU+TWVzc2FnZSBGb3JtYXRzPC90aXRsZT4KICAgICAgICA8L2xpc3Rp dGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisg ICAgIDxwYXJhPgorICAgICAgSWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5f cHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcworICAgICAgZW5hYmxlZCAoc2Vl IDx4cmVmCisgICAgICBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5j cnlwdGlvbi1mbG93Ii8+KSwgdGhlbiB0aGVyZSBpcworICAgICAgYWxzbyB0aGUgZm9sbG93 aW5nIGZvciBlYWNoIGZpZWxkOgorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlz dD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoZSBmaWVs ZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQor ICAgICAgICAgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGUgZmll bGQgaXMgZW5jcnlwdGVkLCB0aGlzIHNwZWNpZmllcyB0aGUgaWRlbnRpZmllciBvZiB0aGUK KyAgICAgICAgIGVuY3J5cHQgYWxnb3JpdGhtLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFy YT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwv dmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApA QCAtNzM0Myw2ICs3NjE1LDE3NiBAQCA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBNZXNz YWdlIEZvcm1hdHM8L3RpdGxlPgogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3NlY3QxPgogCisg PHNlY3QxIGlkPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlw dG8iPgorICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb24gQ3J5cHRvZ3Jh cGh5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhl IGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB1c2VkIGJ5IHRyYW5zcGFyZW50CisgICBjb2x1 bW4gZW5jcnlwdGlvbi4gIEEgY2xpZW50IHRoYXQgc3VwcG9ydHMgdHJhbnNwYXJlbnQgY29s dW1uIGVuY3J5cHRpb24KKyAgIG5lZWRzIHRvIGltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25z IGFzIHNwZWNpZmllZCBoZXJlIGluIG9yZGVyIHRvIGJlIGFibGUKKyAgIHRvIGludGVyb3Bl cmF0ZSB3aXRoIG90aGVyIGNsaWVudHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENv bHVtbiBlbmNyeXB0aW9uIGtleSBhbGdvcml0aG1zIGFuZCBjb2x1bW4gbWFzdGVyIGtleSBh bGdvcml0aG1zIGFyZQorICAgaWRlbnRpZmllZCBieSBpbnRlZ2VycyBpbiB0aGUgcHJvdG9j b2wgbWVzc2FnZXMgYW5kIHRoZSBzeXN0ZW0gY2F0YWxvZ3MuCisgICBBZGRpdGlvbmFsIGFs Z29yaXRobXMgbWF5IGJlIGFkZGVkIHRvIHRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiB3 aXRob3V0IGEKKyAgIGNoYW5nZSBpbiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBudW1iZXIuICBD bGllbnRzIHNob3VsZCBpbXBsZW1lbnQgc3VwcG9ydAorICAgZm9yIGFsbCB0aGUgYWxnb3Jp dGhtcyBzcGVjaWZpZWQgaGVyZS4gIElmIGEgY2xpZW50IGVuY291bnRlcnMgYW4gYWxnb3Jp dGhtCisgICBpZGVudGlmaWVyIGl0IGRvZXMgbm90IHJlY29nbml6ZSBvciBkb2VzIG5vdCBz dXBwb3J0LCBpdCBtdXN0IHJhaXNlIGFuCisgICBlcnJvci4gIEEgc3VpdGFibGUgZXJyb3Ig bWVzc2FnZSBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgICB1 c2VyLgorICA8L3BhcmE+CisKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1jbWsiPgorICAgPHRp dGxlPkNvbHVtbiBNYXN0ZXIgS2V5czwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBj dXJyZW50bHkgZGVmaW5lZCBhbGdvcml0aG1zIGZvciBjb2x1bW4gbWFzdGVyIGtleXMgYXJl IGxpc3RlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPi4K KyAgIDwvcGFyYT4KKworICAgPCEtLSBzZWUgYWxzbyBzcmMvaW5jbHVkZS9jb21tb24vY29s ZW5jLmggLS0+CisKKyAgIDx0YWJsZSBpZD0icHJvdG9jb2wtY21rLXRhYmxlIj4KKyAgICA8 dGl0bGU+Q29sdW1uIE1hc3RlciBLZXkgQWxnb3JpdGhtczwvdGl0bGU+CisgICAgPHRncm91 cCBjb2xzPSI0Ij4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+ UG9zdGdyZVNRTCBJRDwvZW50cnk+CisgICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAg ICAgIDxlbnRyeT5KV0EgKDx1bGluayB1cmw9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt bC9yZmM3NTE4Ij5SRkMgNzUxODwvdWxpbms+KSBuYW1lPC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+Cisg ICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjE8L2VudHJ5PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD51bnNwZWNpZmllZDwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgIDxlbnRyeT4obm9uZSk8L2VudHJ5PgorICAgICAgIDxlbnRyeT5pbnRlcnByZXRlZCBi eSBjbGllbnQ8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxl bnRyeT4yPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFf MTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0EtT0FFUDwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT5SU0FFUyBPQUVQIHVzaW5nIGRlZmF1 bHQgcGFyYW1ldGVycyAoPHVsaW5rCisgICAgICAgdXJsPSJodHRwczovL3Rvb2xzLmlldGYu b3JnL2h0bWwvcmZjODAxNyI+UkZDIDgwMTc8L3VsaW5rPi9QS0NTICMxKTwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjM8L2VudHJ5PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNBLU9BRVAtMjU2PC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PlJTQUVTIE9BRVAgdXNpbmcgU0hBLTI1NiBhbmQgTUdGMSB3 aXRoIFNIQS0yNTYgKDx1bGluaworICAgICAgIHVybD0iaHR0cHM6Ly90b29scy5pZXRmLm9y Zy9odG1sL3JmYzgwMTciPlJGQworICAgICAgIDgwMTc8L3VsaW5rPi9QS0NTICMxKTwvZW50 cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rncm91cD4KKyAgIDwv dGFibGU+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1jZWsiPgorICAg PHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleXM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAg ICBUaGUgY3VycmVudGx5IGRlZmluZWQgYWxnb3JpdGhtcyBmb3IgY29sdW1uIGVuY3J5cHRp b24ga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2Vr LXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8IS0tIHNlZSBhbHNvIHNyYy9pbmNsdWRl L2NvbW1vbi9jb2xlbmMuaCAtLT4KKworICAgPHBhcmE+CisgICAgVGhlIGtleSBtYXRlcmlh bCBvZiBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjb25zaXN0cyBvZiB0aHJlZSBjb21wb25l bnRzLAorICAgIGNvbmNhdGVuYXRlZCBpbiB0aGlzIG9yZGVyOiB0aGUgTUFDIGtleSwgdGhl IGVuY3J5cHRpb24ga2V5LCBhbmQgdGhlIElWCisgICAga2V5LiAgPHhyZWYgbGlua2VuZD0i cHJvdG9jb2wtY2VrLXRhYmxlIi8+IHNob3dzIHRoZSB0b3RhbCBsZW5ndGggdGhhdCBhCisg ICAga2V5IGdlbmVyYXRlZCBmb3IgZWFjaCBhbGdvcml0aG0gaXMgcmVxdWlyZWQgdG8gaGF2 ZS4gIFRoZSBNQUMga2V5IGFuZCB0aGUKKyAgICBlbmNyeXB0aW9uIGtleSBhcmUgdXNlZCBi eSB0aGUgcmVmZXJlbmNlZCBlbmNyeXB0aW9uIGFsZ29yaXRobXM7IHNlZSB0aGVyZQorICAg IGZvciBkZXRhaWxzLiAgVGhlIElWIGtleSBpcyB1c2VkIGZvciBjb21wdXRpbmcgdGhlIHN0 YXRpYyBpbml0aWFsaXphdGlvbgorICAgIHZlY3RvciBmb3IgZGV0ZXJtaW5pc3RpYyBlbmNy eXB0aW9uOyBpdCBpcyB1bnVzZWQgZm9yIHJhbmRvbWl6ZWQKKyAgICBlbmNyeXB0aW9uLgor ICAgPC9wYXJhPgorCisgICA8IS0tIHNlZSBhbHNvIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0 Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDUj c2VjdGlvbi0yLjggLS0+CisgICA8dGFibGUgaWQ9InByb3RvY29sLWNlay10YWJsZSI+Cisg ICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAg ICA8dGdyb3VwIGNvbHM9IjciPgorICAgICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAg IDxlbnRyeT5Qb3N0Z3JlU1FMIElEPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50 cnk+CisgICAgICAgPGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ TUFDIGtleSBsZW5ndGggKG9jdGV0cyk8L2VudHJ5PgorICAgICAgIDxlbnRyeT5FbmNyeXB0 aW9uIGtleSBsZW5ndGggKG9jdGV0cyk8L2VudHJ5PgorICAgICAgIDxlbnRyeT5JViBrZXkg bGVuZ3RoIChvY3RldHMpPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VG90YWwga2V5IGxlbmd0 aCAob2N0ZXRzKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAg PHRib2R5PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzI3Njg8L2VudHJ5PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0 cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1h Yy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MTY8L2VudHJ5PgorICAgICAg IDxlbnRyeT4xNjwvZW50cnk+CisgICAgICAgPGVudHJ5PjE2PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+NDg8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxl bnRyeT4zMjc2OTwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPkFFQURfQUVTXzE5 Ml9DQkNfSE1BQ19TSEFfMzg0PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1 bGluayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQt bWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDUiLz48L2VudHJ5PgorICAgICAgIDxl bnRyeT4yNDwvZW50cnk+CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+MjQ8L2VudHJ5PgorICAgICAgIDxlbnRyeT43MjwvZW50cnk+CisgICAgICA8L3Jvdz4K KyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjMyNzcwPC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+PGxpdGVyYWw+QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5p ZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0w NSIvPjwvZW50cnk+CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT4yNDwvZW50cnk+CisgICAgICAgPGVudHJ5Pjkw PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzI3 NzE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hN QUNfU0hBXzUxMjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJs PSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1h ZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MzI8 L2VudHJ5PgorICAgICAgIDxlbnRyeT4zMjwvZW50cnk+CisgICAgICAgPGVudHJ5PjMyPC9l bnRyeT4KKyAgICAgICA8ZW50cnk+OTY8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwv dGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorCisgICA8cGFyYT4KKyAgICBU aGUgPHF1b3RlPmFzc29jaWF0ZWQgZGF0YTwvcXVvdGU+IGluIHRoZXNlIGFsZ29yaXRobXMg Y29uc2lzdHMgb2YgNAorICAgIGJ5dGVzOiBUaGUgQVNDSUkgbGV0dGVycyA8bGl0ZXJhbD5Q PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+RzwvbGl0ZXJhbD4KKyAgICAoYnl0ZSB2YWx1ZXMg ODAgYW5kIDcxKSwgZm9sbG93ZWQgYnkgdGhlIHZlcnNpb24gbnVtYmVyIGFzIGEgMTYtYml0 CisgICAgdW5zaWduZWQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuICBUaGUgdmVy c2lvbiBudW1iZXIgaXMgY3VycmVudGx5CisgICAgYWx3YXlzIDEuICAoVGhpcyBpcyBpbnRl bmRlZCB0byBhbGxvdyBmb3IgcG9zc2libGUgaW5jb21wYXRpYmxlIGNoYW5nZXMgb3IKKyAg ICBleHRlbnNpb25zIGluIHRoZSBmdXR1cmUuKQorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgMTYgb2N0 ZXRzIGZvciBhbGwgQ0VLIGFsZ29yaXRobQorICAgIHZhcmlhbnRzLiAgRm9yIHJhbmRvbWl6 ZWQgZW5jcnlwdGlvbiwgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBzaG91bGQgYmUKKyAg ICAoY3J5cHRvZ3JhcGhpY2FsbHkgc3Ryb25nKSByYW5kb20gYnl0ZXMuICBGb3IgZGV0ZXJt aW5pc3RpYyBlbmNyeXB0aW9uLAorICAgIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMg Y29uc3RydWN0ZWQgYXMKKzxwcm9ncmFtbGlzdGluZz4KK1NVQlNUUklORyg8cmVwbGFjZWFi bGU+SE1BQzwvcmVwbGFjZWFibGU+KDxyZXBsYWNlYWJsZT5LPC9yZXBsYWNlYWJsZT4sIDxy ZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJsZT4pIEZPUiA8cmVwbGFjZWFibGU+SVZMRU48L3Jl cGxhY2VhYmxlPikKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hlcmUgPHJlcGxhY2VhYmxl PkhNQUM8L3JlcGxhY2VhYmxlPiBpcyB0aGUgSE1BQyBmdW5jdGlvbiBhc3NvY2lhdGVkIHdp dGgKKyAgICB0aGUgYWxnb3JpdGhtLCA8cmVwbGFjZWFibGU+SzwvcmVwbGFjZWFibGU+IGlz IHRoZSBJViBrZXksIGFuZAorICAgIDxyZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJsZT4gaXMg dGhlIHBsYWludGV4dCB0byBiZSBlbmNyeXB0ZWQuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+ CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0icHJvdG9jb2wtY2hhbmdlcyI+CiAgIDx0aXRs ZT5TdW1tYXJ5IG9mIENoYW5nZXMgc2luY2UgUHJvdG9jb2wgMi4wPC90aXRsZT4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGU5MGEwZTFmODMuLjMzMWIxZjAxMGIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTgsNiArOCw4IEBACiA8IUVOVElUWSBhYm9ydCAg ICAgICAgICAgICAgU1lTVEVNICJhYm9ydC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQWdncmVn YXRlICAgICBTWVNURU0gImFsdGVyX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVy Q29sbGF0aW9uICAgICBTWVNURU0gImFsdGVyX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZ IGFsdGVyQ29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImFsdGVyX2NvbHVtbl9lbmNyeXB0 aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAi YWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBhbHRlckNvbnZlcnNp b24gICAgU1lTVEVNICJhbHRlcl9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJE YXRhYmFzZSAgICAgIFNZU1RFTSAiYWx0ZXJfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBh bHRlckRlZmF1bHRQcml2aWxlZ2VzIFNZU1RFTSAiYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2Vz LnNnbWwiPgpAQCAtNjIsNiArNjQsOCBAQAogPCFFTlRJVFkgY3JlYXRlQWdncmVnYXRlICAg IFNZU1RFTSAiY3JlYXRlX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUNhc3Qg ICAgICAgICBTWVNURU0gImNyZWF0ZV9jYXN0LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29s bGF0aW9uICAgIFNZU1RFTSAiY3JlYXRlX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGNy ZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJjcmVhdGVfY29sdW1uX2VuY3J5cHRp b25fa2V5LnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAi Y3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29udmVy c2lvbiAgIFNZU1RFTSAiY3JlYXRlX2NvbnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBjcmVh dGVEYXRhYmFzZSAgICAgU1lTVEVNICJjcmVhdGVfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElU WSBjcmVhdGVEb21haW4gICAgICAgU1lTVEVNICJjcmVhdGVfZG9tYWluLnNnbWwiPgpAQCAt MTA5LDYgKzExMyw4IEBACiA8IUVOVElUWSBkcm9wQWdncmVnYXRlICAgICAgU1lTVEVNICJk cm9wX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BDYXN0ICAgICAgICAgICBTWVNU RU0gImRyb3BfY2FzdC5zZ21sIj4KIDwhRU5USVRZIGRyb3BDb2xsYXRpb24gICAgICBTWVNU RU0gImRyb3BfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgZHJvcENvbHVtbkVuY3J5cHRp b25LZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5U SVRZIGRyb3BDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9tYXN0ZXJfa2V5 LnNnbWwiPgogPCFFTlRJVFkgZHJvcENvbnZlcnNpb24gICAgIFNZU1RFTSAiZHJvcF9jb252 ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgZHJvcERhdGFiYXNlICAgICAgIFNZU1RFTSAiZHJv cF9kYXRhYmFzZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BEb21haW4gICAgICAgICBTWVNURU0g ImRyb3BfZG9tYWluLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf Y29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNzU5N2NkODBjYQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAgLTAsMCArMSwxODYg QEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5 LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0i c3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJz cWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+QUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1l dGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVm ZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+ CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2Yg YSBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2Pgor CisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIFZBTFVFICgKKyAg ICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPiwK KyAgICBbIEFMR09SSVRITSA9IDxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxl PiwgXQorICAgIEVOQ1JZUFRFRF9WQUxVRSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxh Y2VhYmxlPgorKQorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxl Pm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tF WSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xVTU4g RU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUg VE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xF IHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KKzwvc3lub3BzaXM+CisgPC9yZWZz eW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WTwvY29tbWFuZD4gY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4gZW5j cnlwdGlvbiBrZXkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBmaXJzdCBmb3Jt IGFkZHMgbmV3IGVuY3J5cHRlZCBrZXkgZGF0YSB0byBhIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSwKKyAgIHdoaWNoIG11c3QgYmUgZW5jcnlwdGVkIHdpdGggYSBkaWZmZXJlbnQgY29sdW1u IG1hc3RlciBrZXkgdGhhbiB0aGUKKyAgIGV4aXN0aW5nIGtleSBkYXRhLiAgVGhlIHNlY29u ZCBmb3JtIHJlbW92ZXMgYSBrZXkgZGF0YSBlbnRyeSBmb3IgYSBnaXZlbgorICAgY29sdW1u IG1hc3RlciBrZXkuICBUb2dldGhlciwgdGhlc2UgZm9ybXMgY2FuIGJlIHVzZWQgZm9yIGNv bHVtbiBtYXN0ZXIga2V5CisgICByb3RhdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgWW91IG11c3Qgb3duIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlIDxjb21t YW5kPkFMVEVSIENPTFVNTgorICAgRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+LiAgVG8gYWx0 ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yCisgICBpbmRpcmVj dCBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhh dmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkncworICAgZGF0YWJhc2UuICAoVGhlc2UgcmVzdHJpY3Rpb25z IGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbworICAgYW55dGhp bmcgeW91IGNvdWxkbid0IGRvIGJ5IGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBjb2x1 bW4gZW5jcnlwdGlvbgorICAga2V5LiAgSG93ZXZlciwgYSBzdXBlcnVzZXIgY2FuIGFsdGVy IG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIGVuY3J5cHRpb24ga2V5CisgICBhbnl3YXkuKQor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFt ZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBu YW1lIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhl IGNvbHVtbiBtYXN0ZXIga2V5IHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNvbHVt bgorICAgICAgZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB0 aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhlIGtleSBtYXRlcmlhbCBvZgorICAgICAgdGhp cyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNx bC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+IGZvciBkZXRhaWxzCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+ PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkg bWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRo IHRoZQorICAgICAgc3BlY2lmaWVkIGNvbHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVj aWZpZWQgYWxnb3JpdGhtLiAgVGhlIHZhbHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0 ZWE8L3R5cGU+LWNvbXBhdGlibGUgbGl0ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5l dyBuYW1lIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGUgbmV3IG93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFi bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByb3RhdGUgdGhlIG1hc3RlciBrZXlzIHVz ZWQgdG8gZW5jcnlwdCBhIGdpdmVuIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwKKyAgIHVzZSBh IGNvbW1hbmQgc2VxdWVuY2UgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBDT0xVTU5fTUFT VEVSX0tFWSA9IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4MDEwMjAyMDQuLi4n CispOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFICgK KyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazEKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgdGhlIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSA8bGl0ZXJhbD5jZWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y2VrMjwv bGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBSRU5BTUUgVE8gY2VrMjsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBlbmNy eXB0aW9uIGtleSA8bGl0ZXJhbD5jZWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9l PC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRs ZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkFMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluIHRoZQorICAgU1FMIHN0YW5k YXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAg PG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtl eSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1 bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVm c2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1 bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLjM3MDM0N2VjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAgLTAsMCArMSwxMjQgQEAKKzwhLS0KK2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNR TCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXItY29sdW1u LW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0 ZXIta2V5Ij4KKyAgPHByaW1hcnk+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIg Q09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFu dm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVm bWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFM VEVSIENPTFVNTiBNQVNURVIgS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2Ug dGhlIGRlZmluaXRpb24gb2YgYSBjb2x1bW4gbWFzdGVyIGtleTwvcmVmcHVycG9zZT4KKyA8 L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBD T0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+ICggUkVB TE0gPSA8cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxlPiApCisKK0FMVEVSIENPTFVN TiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJl cGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VS UkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNp c2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5k PiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIga2V5Lgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgZmlyc3QgZm9ybSBjaGFuZ2VzIHRoZSBw YXJhbWV0ZXJzIG9mIGEgY29sdW1uIG1hc3RlciBrZXkuICBTZWUgPHhyZWYKKyAgIGxpbmtl bmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz4gZm9yIGRldGFpbHMuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFlvdSBtdXN0IG93biB0aGUgY29sdW1uIG1hc3RlciBr ZXkgdG8gdXNlIDxjb21tYW5kPkFMVEVSIENPTFVNTiBNQVNURVIKKyAgIEtFWTwvY29tbWFu ZD4uICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3Ig aW5kaXJlY3QKKyAgIG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLCBhbmQgdGhhdCBy b2xlIG11c3QgaGF2ZQorICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ug b24gdGhlIGNvbHVtbiBtYXN0ZXIga2V5J3MgZGF0YWJhc2UuCisgICAoVGhlc2UgcmVzdHJp Y3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbyBhbnl0 aGluZyB5b3UKKyAgIGNvdWxkbid0IGRvIGJ5IGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRo ZSBjb2x1bW4gbWFzdGVyIGtleS4gIEhvd2V2ZXIsIGEKKyAgIHN1cGVydXNlciBjYW4gYWx0 ZXIgb3duZXJzaGlwIG9mIGFueSBjb2x1bW4gbWFzdGVyIGtleSBhbnl3YXkuKQorICA8L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIChv cHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBtYXN0 ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG5hbWUgb2YgdGhlIGNvbHVtbiBt YXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBvd25lciBvZiB0aGUgY29s dW1uIG1hc3RlciBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyBy ZW5hbWUgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IDxsaXRlcmFsPmNtazE8L2xpdGVyYWw+IHRv CisgICA8bGl0ZXJhbD5jbWsyPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IENPTFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazI7Cis8L3Byb2dyYW1saXN0 aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9m IHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8bGl0ZXJhbD5jbWsxPC9saXRlcmFsPiB0bworICAg PGxpdGVyYWw+am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVN TiBNQVNURVIgS0VZIGNtazEgT1dORVIgVE8gam9lOworPC9wcm9ncmFtbGlzdGluZz48L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxp dHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+QUxURVIg Q09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAgIFNRTCBz dGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtl eSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1 bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCmluZGV4IGMyNWI1MmQwY2IuLjhjNDYx YjhmMTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCkBAIC01NTUsNiArNTU1LDE1IEBAIDx0aXRsZT5O b3RlczwvdGl0bGU+CiAgICAgbnVsbCBzdHJpbmdzIHRvIG51bGwgdmFsdWVzIGFuZCB1bnF1 b3RlZCBudWxsIHN0cmluZ3MgdG8gZW1wdHkgc3RyaW5ncy4KICAgIDwvcGFyYT4KIAorICAg PHBhcmE+CisgICAgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4gZG9lcyBub3Qgc3VwcG9ydCB0 cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBvcgorICAgIGRlY3J5cHRpb247IGl0cyBp bnB1dCBvciBvdXRwdXQgZGF0YSB3aWxsIGFsd2F5cyBiZSB0aGUgY2lwaGVydGV4dC4gIFRo aXMKKyAgICBpcyB1c3VhbGx5IHN1aXRhYmxlIGZvciBiYWNrdXBzIChzZWUgYWxzbyA8eHJl ZiBsaW5rZW5kPSJhcHAtcGdkdW1wIi8+KS4KKyAgICBJZiB0cmFuc3BhcmVudCBlbmNyeXB0 aW9uIG9yIGRlY3J5cHRpb24gaXMgd2FudGVkLAorICAgIDxjb21tYW5kPklOU0VSVDwvY29t bWFuZD4gYW5kIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4gbmVlZCB0byBiZSB1c2VkCisg ICAgaW5zdGVhZCB0byB3cml0ZSBhbmQgcmVhZCB0aGUgZGF0YS4KKyAgIDwvcGFyYT4KKwog IDwvcmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjcyZTdjZTc0ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAt MCwwICsxLDE2OCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxy ZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJp bWFyeT5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVt PgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2lu Zm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBh IG5ldyBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2 PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFdJVEggVkFMVUVT ICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2Vh YmxlPiwKKyAgICBbIEFMR09SSVRITSA9IDxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxh Y2VhYmxlPiwgXQorICAgIEVOQ1JZUFRFRF9WQUxVRSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8 L3JlcGxhY2VhYmxlPgorKQorWyAsIC4uLiBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3Bz aXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisK KyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9j b21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVtbgorICAgZW5jcnlwdGlvbiBrZXkuICBBIGNv bHVtbiBlbmNyeXB0aW9uIGtleSBpcyB1c2VkIGZvciBjbGllbnQtc2lkZSBlbmNyeXB0aW9u CisgICBvZiB0YWJsZSBjb2x1bW5zIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQgYXMgZW5jcnlw dGVkLiAgVGhlIGtleSBtYXRlcmlhbCBvZgorICAgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg aXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSdzIHN5c3RlbSBjYXRhbG9ncywKKyAgIGVuY3J5 cHRlZCAod3JhcHBlZCkgYnkgYSBjb2x1bW4gbWFzdGVyIGtleSAod2hpY2ggaW4gdHVybiBp cyBvbmx5CisgICBhY2Nlc3NpYmxlIHRvIHRoZSBjbGllbnQsIG5vdCB0aGUgZGF0YWJhc2Ug c2VydmVyKS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtb3JlIHRoYW4gb25lIGNvbHVtbiBtYXN0 ZXIKKyAgIGtleS4gIFRvIHNwZWNpZnkgdGhhdCwgc3BlY2lmeSBtb3JlIHRoYW4gb25lIHBh cmVudGhlc2l6ZWQgZGVmaW5pdGlvbiAoc2VlCisgICBhbHNvIHRoZSBleGFtcGxlcykuCisg IDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgbmV3IGNv bHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRo YXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNvbHVtbgorICAgICAgZW5jcnlwdGlvbiBr ZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmFsZ29yaXRo bTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5 cHQgdGhlIGtleSBtYXRlcmlhbCBvZgorICAgICAgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkuICBTdXBwb3J0ZWQgYWxnb3JpdGhtcyBhcmU6CisgICAgICA8aXRlbWl6ZWRsaXN0Pgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+PGxpdGVyYWw+dW5zcGVjaWZpZWQ8 L2xpdGVyYWw+PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVt PgorICAgICAgICA8cGFyYT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8xPC9saXRlcmFsPjwv cGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg PHBhcmE+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPjwvcGFyYT4KKyAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgIDwvcGFyYT4K KworICAgICA8cGFyYT4KKyAgICAgIFRoaXMgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiAgVGhl IHNwZWNpZmllZCB2YWx1ZSBpcyBwcm92aWRlZCB0byB0aGUKKyAgICAgIGNsaWVudCwgd2hp Y2ggbWF5IHVzZSBpdCBmb3IgZGVjcnlwdGluZyB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5 IG9uIHRoZQorICAgICAgY2xpZW50IHNpZGUuICBCdXQgYSBjbGllbnQgaXMgYWxzbyBmcmVl IHRvIGlnbm9yZSB0aGlzIGluZm9ybWF0aW9uIGFuZAorICAgICAgZmlndXJlIG91dCBob3cg dG8gYXJyYW5nZSB0aGUgZGVjcnlwdGlvbiBpbiBzb21lIG90aGVyIHdheS4gIEluIHRoYXQK KyAgICAgIGNhc2UsIHNwZWNpZnlpbmcgdGhlIGFsZ29yaXRobSBhcyA8bGl0ZXJhbD51bnNw ZWNpZmllZDwvbGl0ZXJhbD4gd291bGQgYmUKKyAgICAgIGFwcHJvcHJpYXRlLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxl PjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5 IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0 aCB0aGUKKyAgICAgIHNwZWNpZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3Bl Y2lmaWVkIGFsZ29yaXRobS4gIFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5 dGVhPC90eXBlPi1jb21wYXRpYmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgV0lUSCBWQUxVRVMgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMSwKKyAg ICBFTkNSWVBURURfVkFMVUUgPSAnXHgwMTAyMDIwNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0 aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBv bmUgYXNzb2NpYXRlZCBjb2x1bW4gbWFzdGVyIGtleToKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09M VU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIw MjA0Li4uJworKSwKKygKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5D UllQVEVEX1ZBTFVFID0gJ1x4RjFGMkYyRjQuLi4nCispOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21w YXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5k PkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgor ICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVt bi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVt YmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjZhMWUzYWQzNjAKLS0tIC9k ZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tl eS5zZ21sCkBAIC0wLDAgKzEsMTA2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0t PgorCis8cmVmZW50cnkgaWQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorIDxp bmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgIDxwcmlt YXJ5PkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBL RVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9y ZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4gTUFT VEVSIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGNvbHVtbiBt YXN0ZXIga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNp c2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFi bGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgV0lUSCAoCisgICAgWyBSRUFMTSA9IDxyZXBsYWNl YWJsZT5yZWFsbTwvcmVwbGFjZWFibGU+IF0KKykgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5 bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9j b21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1u IG1hc3RlciBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMs IHdoaWNoCisgICBhcmUgdGhlIGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1 bW4gZGF0YS4gIFRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtl eSBpcyBub3Qgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEK KyAgIGNvbHVtbiBtYXN0ZXIga2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFs bG93IGEgY2xpZW50IHRvIGxvY2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1w bGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3Rp dGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFz dGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVh bG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGlzIGlzIGFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRv IG9yZ2FuaXplIGNvbHVtbiBtYXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxv b2t1cCBieSBjbGllbnRzLiAgVGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAg IG1hc3RlciBrZXlzIHRoYXQgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUg c3lzdGVtIGxvY2F0aW9uLAorICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBz aG91bGQgYmUgaW4gdGhlIHNhbWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhl biBiZSBjb25maWd1cmVkIHRvIGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBp biBhCisgICAgICBjZXJ0YWluIHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUg cmVzcGVjdGl2ZSBjbGllbnQgbGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5z dHJ1Y3Rpb25zLgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVm YXVsdCBpcyB0aGUgZW1wdHkgc3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXly ZWFsbScpOworPC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVy ZSBpcyBubyA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0 YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNp bXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5 Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVu dHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggYzk4MjIzYjJhNS4u YzE2N2IxODFmZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0yMiw3 ICsyMiw3IEBACiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgWyBH TE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+ICggWwotICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIFNUT1JBR0UgeyBQTEFJTiB8 IEVYVEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIHwgREVGQVVMVCB9IF0gWyBDT01QUkVTU0lP TiA8cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENP TExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxl PiBbIC4uLiBdIF0KKyAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBFTkNSWVBURUQgV0lUSCAoIDxyZXBsYWNlYWJsZT5l bmNyeXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiApIF0gWyBTVE9SQUdFIHsgUExBSU4g fCBFWFRFUk5BTCB8IEVYVEVOREVEIHwgTUFJTiB8IERFRkFVTFQgfSBdIFsgQ09NUFJFU1NJ T04gPHJlcGxhY2VhYmxlPmNvbXByZXNzaW9uX21ldGhvZDwvcmVwbGFjZWFibGU+IF0gWyBD T0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9yZXBsYWNlYWJs ZT4gWyAuLi4gXSBdCiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVw bGFjZWFibGU+CiAgICAgfCBMSUtFIDxyZXBsYWNlYWJsZT5zb3VyY2VfdGFibGU8L3JlcGxh Y2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IC4uLiBd IH0KICAgICBbLCAuLi4gXQpAQCAtODcsNyArODcsNyBAQAogCiA8cGhyYXNlPmFuZCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiBp czo8L3BocmFzZT4KIAoteyBJTkNMVURJTkcgfCBFWENMVURJTkcgfSB7IENPTU1FTlRTIHwg Q09NUFJFU1NJT04gfCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwgR0VORVJBVEVEIHwgSURF TlRJVFkgfCBJTkRFWEVTIHwgU1RBVElTVElDUyB8IFNUT1JBR0UgfCBBTEwgfQoreyBJTkNM VURJTkcgfCBFWENMVURJTkcgfSB7IENPTU1FTlRTIHwgQ09NUFJFU1NJT04gfCBDT05TVFJB SU5UUyB8IERFRkFVTFRTIHwgRU5DUllQVEVEIHwgR0VORVJBVEVEIHwgSURFTlRJVFkgfCBJ TkRFWEVTIHwgU1RBVElTVElDUyB8IFNUT1JBR0UgfCBBTEwgfQogCiA8cGhyYXNlPmFuZCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX2JvdW5kX3NwZWM8L3Jl cGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIApAQCAtMzUxLDYgKzM1MSw0NiBAQCA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkVOQ1JZUFRFRCBX SVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICk8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBF bmFibGVzIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciB0aGUgY29sdW1uLgor ICAgICAgPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+IGFy ZSBjb21tYS1zZXBhcmF0ZWQKKyAgICAgIDxsaXRlcmFsPmtleT12YWx1ZTwvbGl0ZXJhbD4g c3BlY2lmaWNhdGlvbnMuICBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlCisgICAgICBhdmFp bGFibGU6CisgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvbHVtbl9lbmNyeXB0aW9uX2tleTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVz ZS4gIFNwZWNpZnlpbmcKKyAgICAgICAgICB0aGlzIGlzIG1hbmRhdG9yeS4KKyAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5lbmNyeXB0 aW9uX3R5cGU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICA8bGl0ZXJhbD5yYW5kb21pemVkPC9saXRlcmFsPiAodGhl IGRlZmF1bHQpIG9yIDxsaXRlcmFsPmRldGVybWluaXN0aWM8L2xpdGVyYWw+CisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+ CisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+YWxnb3Jp dGhtPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBh cmE+CisgICAgICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHRvIHVzZS4gIFRoZSBk ZWZhdWx0IGlzCisgICAgICAgICAgPGxpdGVyYWw+QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NI QV8yNTY8L2xpdGVyYWw+LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2 YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+SU5IRVJJVFMgKCA8cmVwbGFjZWFi bGU+cGFyZW50X3RhYmxlPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rl cm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtNzA0LDYgKzc0NCwxNiBAQCA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5J TkNMVURJTkcgRU5DUllQVEVEPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgQ29sdW1uIGVuY3J5cHRpb24gc3BlY2lm aWNhdGlvbnMgZm9yIHRoZSBjb3BpZWQgY29sdW1uIGRlZmluaXRpb25zCisgICAgICAgICAg d2lsbCBiZSBjb3BpZWQuICBCeSBkZWZhdWx0LCBuZXcgY29sdW1ucyB3aWxsIGJlIHVuZW5j cnlwdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg IDwvdmFybGlzdGVudHJ5PgorCiAgICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgPHRl cm0+PGxpdGVyYWw+SU5DTFVESU5HIEdFTkVSQVRFRDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAg ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1 bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi45ZDE1N2RlOWM1Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9k cm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBAIC0wLDAgKzEsMTEyIEBACis8IS0t Citkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKK1Bv c3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3At Y29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1kcm9wLWNv bHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxwcmltYXJ5PkRST1AgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZl bnRyeXRpdGxlPkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZlbnRyeXRpdGxlPgor ICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1 YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1l ZGl2PgorICA8cmVmbmFtZT5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmbmFtZT4K KyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgY29sdW1uIGVuY3J5cHRpb24ga2V5PC9yZWZwdXJw b3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4K K0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxl Pm5hbWU8L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5bm9wc2lz PgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlw dGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIENPTFVNTiBFTkNS WVBUSU9OIEtFWTwvY29tbWFuZD4gcmVtb3ZlcyBhIHByZXZpb3VzbHkgZGVmaW5lZAorICAg Y29sdW1uIGVuY3J5cHRpb24ga2V5LiAgVG8gYmUgYWJsZSB0byBkcm9wIGEgY29sdW1uIGVu Y3J5cHRpb24ga2V5LCB5b3UKKyAgIG11c3QgYmUgaXRzIG93bmVyLgorICA8L3BhcmE+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxl PgorCisgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJt PjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4K KyAgICAgIDxwYXJhPgorICAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY29s dW1uIGVuY3J5cHRpb24ga2V5IGRvZXMgbm90IGV4aXN0LgorICAgICAgIEEgbm90aWNlIGlz IGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+ CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVy bT48cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgIDxsaXN0 aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gZW5j cnlwdGlvbiBrZXkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJh bD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBh cmE+CisgICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24g dGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwKKyAgICAgICBhbmQgaW4gdHVybiBhbGwgb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmplY3RzCisgICAgICAgKHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtZGVwZW5kIi8+KS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRl bT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0 ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVt PgorICAgICAgPHBhcmE+CisgICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIGNvbHVtbiBlbmNy eXB0aW9uIGtleSBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzCisgICAgICAg aXMgdGhlIGRlZmF1bHQuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC92YXJsaXN0ZW50cnk+CisgICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorPHBy b2dyYW1saXN0aW5nPgorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMTsKKzwvcHJv Z3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5v IDxjb21tYW5kPkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBzdGF0ZW1l bnQgaW4KKyAgIHRoZSBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgICAgPHNpbXBs ZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFs dGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVy PgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzg1MDk4ZWExYwotLS0gL2Rldi9udWxs CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCkBA IC0wLDAgKzEsMTEyIEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21h c3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVu dHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6b25l PSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSI+CisgIDxwcmltYXJ5PkRST1AgQ09MVU1O IE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAg PHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50cnl0aXRsZT4K KyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5n dWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFt ZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAg PHJlZnB1cnBvc2U+cmVtb3ZlIGEgY29sdW1uIG1hc3RlciBrZXk8L3JlZnB1cnBvc2U+Cisg PC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorRFJPUCBD T0xVTU4gTUFTVEVSIEtFWSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBs YWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5 bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBDT0xVTU4gTUFTVEVSIEtFWTwvY29t bWFuZD4gcmVtb3ZlcyBhIHByZXZpb3VzbHkgZGVmaW5lZAorICAgY29sdW1uIG1hc3RlciBr ZXkuICBUbyBiZSBhYmxlIHRvIGRyb3AgYSBjb2x1bW4gbWFzdGVyIGtleSwgeW91CisgICBt dXN0IGJlIGl0cyBvd25lci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICAgPHZhcmlhYmxlbGlzdD4K KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xp dGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBE byBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGRvZXMgbm90 IGV4aXN0LgorICAgICAgIEEgbm90aWNlIGlzIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAg ICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFj ZWFibGU+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAg ICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Ag b2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29sdW1uIG1hc3RlciBrZXksCisgICAgICAg YW5kIGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cwor ICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgICA8L3Bh cmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFy bGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rl cm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJlZnVzZSB0byBk cm9wIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQu ICBUaGlzCisgICAgICAgaXMgdGhlIGRlZmF1bHQuCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisgICA8L3ZhcmlhYmxlbGlzdD4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgor CisgIDxwYXJhPgorPHByb2dyYW1saXN0aW5nPgorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBj ZWsxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlcmUgaXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4g c3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICAg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlci1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+ CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX2R1bXAuc2dtbAppbmRleCAyYzkzOGNkN2UxLi41YjNjYmY5MTljIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX2R1bXAuc2dtbApAQCAtNzE1LDYgKzcxNSwzNyBAQCA8dGl0bGU+T3B0aW9uczwvdGl0 bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5jcnlwdGVk LWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBh cmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFsbCBlbmNy eXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0ZW4gdG8g dGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVzIG9mCisg ICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1wIGluIGNp cGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0ZWQpLgor ICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBy ZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAgICA8b3B0 aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlvbj4tLXJv d3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAgICAgKDxj b21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRlY3J5cHRp b24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBGb3Igcm91 dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0ZSBhbmQg bW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJsZSBpZiB0 aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhwb3J0ZWQg Zm9yIG90aGVyIHB1cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisgICAgICAg IHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRhYmFzZSB3 aXRoIGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8IS0tCisgICAgICAgICAgIFhYWDogVGhlIGxhdHRlciB3b3VsZCByZXF1aXJlIGFub3Ro ZXIgcGdfZHVtcCBvcHRpb24gdG8gcHV0IG91dAorICAgICAgICAgICBJTlNFUlQgLi4uIFxi aW5kIC4uLiBcZyBjb21tYW5kcy4KKyAgICAgICAtLT4KKyAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVy bT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGluZzwvb3B0aW9uPjwvdGVybT4KICAg ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcGFs bC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwKaW5kZXggZTYyZDA1 ZTVhYi4uNGJmNjBjNzI5ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1w YWxsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwKQEAgLTI1 OSw2ICsyNTksMzMgQEAgPHRpdGxlPk9wdGlvbnM8L3RpdGxlPgogICAgICAgPC9saXN0aXRl bT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPjxvcHRpb24+LS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zPC9vcHRpb24+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9w dGlvbiBjYXVzZXMgdGhlIHZhbHVlcyBvZiBhbGwgZW5jcnlwdGVkIGNvbHVtbnMgdG8gYmUg ZGVjcnlwdGVkCisgICAgICAgIGFuZCB3cml0dGVuIHRvIHRoZSBvdXRwdXQgaW4gcGxhaW50 ZXh0LiAgQnkgZGVmYXVsdCwgdGhlIHZhbHVlcyBvZgorICAgICAgICBlbmNyeXB0ZWQgY29s dW1ucyBhcmUgd3JpdHRlbiB0byB0aGUgZHVtcCBpbiBjaXBoZXJ0ZXh0ICh0aGF0IGlzLCB0 aGV5CisgICAgICAgIGFyZSBub3QgZGVjcnlwdGVkKS4KKyAgICAgICA8L3BhcmE+CisKKyAg ICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gcmVxdWlyZXMgdGhhdCA8b3B0aW9u Pi0taW5zZXJ0czwvb3B0aW9uPiwKKyAgICAgICAgPG9wdGlvbj4tLWNvbHVtbi1pbnNlcnRz PC9vcHRpb24+IG9yCisgICAgICAgIDxvcHRpb24+LS1yb3dzLXBlci1pbnNlcnQ8L29wdGlv bj4gaXMgYWxzbyBzcGVjaWZpZWQuCisgICAgICAgICg8Y29tbWFuZD5DT1BZPC9jb21tYW5k PiBkb2VzIG5vdCBzdXBwb3J0IGNvbHVtbiBkZWNyeXB0aW9uLikKKyAgICAgICA8L3BhcmE+ CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgRm9yIHJvdXRpbmUgYmFja3VwcywgdGhlIGRl ZmF1bHQgYmVoYXZpb3IgaXMgYXBwcm9wcmlhdGUgYW5kIG1vc3QKKyAgICAgICAgZWZmaWNp ZW50LiAgVGhpcyBvcHRpb24gaXMgc3VpdGFibGUgaWYgdGhlIGRhdGEgaXMgbWVhbnQgdG8g YmUKKyAgICAgICAgaW5zcGVjdGVkIG9yIGV4cG9ydGVkIGZvciBvdGhlciBwdXJwb3Nlcy4g IE5vdGUgdGhhdCBhIGR1bXAgY3JlYXRlZAorICAgICAgICB3aXRoIHRoaXMgb3B0aW9uIGNh bm5vdCBiZSByZXN0b3JlZCBpbnRvIGEgZGF0YWJhc2Ugd2l0aCBjb2x1bW4KKyAgICAgICAg ZW5jcnlwdGlvbi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+PG9w dGlvbj4tLWRpc2FibGUtZG9sbGFyLXF1b3Rpbmc8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8 bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggOGE1Mjg1ZGE5YS4uNWY4 ZTQ0YjBiZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMTQyMCw2ICsxNDIwLDM0 IEBAIDx0aXRsZT5NZXRhLUNvbW1hbmRzPC90aXRsZT4KICAgICAgIDwvdmFybGlzdGVudHJ5 PgogCiAKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxk Y2VrWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xp dGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICBMaXN0cyBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLiAgSWYgPHJlcGxhY2VhYmxlCisg ICAgICAgIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcyBzcGVj aWZpZWQsIG9ubHkgY29sdW1uCisgICAgICAgIGVuY3J5cHRpb24ga2V5cyB3aG9zZSBuYW1l cyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVkLiAgSWYKKyAgICAgICAgPGxpdGVyYWw+ KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgZWFjaCBvYmpl Y3QgaXMKKyAgICAgICAgbGlzdGVkIHdpdGggaXRzIGFzc29jaWF0ZWQgZGVzY3JpcHRpb24u CisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorCisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPlxkY21rWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+ IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICBMaXN0cyBjb2x1bW4gbWFzdGVyIGtleXMuICBJZiA8cmVwbGFjZWFibGUK KyAgICAgICAgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGlzIHNw ZWNpZmllZCwgb25seSBjb2x1bW4KKyAgICAgICAgbWFzdGVyIGtleXMgd2hvc2UgbmFtZXMg bWF0Y2ggdGhlIHBhdHRlcm4gYXJlIGxpc3RlZC4gIElmCisgICAgICAgIDxsaXRlcmFsPis8 L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIGVhY2ggb2JqZWN0 IGlzCisgICAgICAgIGxpc3RlZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRlc2NyaXB0aW9uLgor ICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgICA8dGVybT48bGl0ZXJh bD5cZGNvbmZpZ1srXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5r PiBdPC9saXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgpAQCAtNDAyMiw2ICs0 MDUwLDE3IEBAIDx0aXRsZT5WYXJpYWJsZXM8L3RpdGxlPgogICAgICAgICA8L2xpc3RpdGVt PgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICAgIDx0ZXJtPjx2YXJuYW1lPkhJREVfQ09MVU1OX0VOQ1JZUFRJT048L3Zhcm5hbWU+PC90 ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYg dGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4sIGNvbHVt biBlbmNyeXB0aW9uCisgICAgICAgICBkZXRhaWxzIGFyZSBub3QgZGlzcGxheWVkLiBUaGlz IGlzIG1haW5seSB1c2VmdWwgZm9yIHJlZ3Jlc3Npb24KKyAgICAgICAgIHRlc3RzLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgPHRlcm0+PHZhcm5hbWU+SElE RV9UT0FTVF9DT01QUkVTU0lPTjwvdmFybmFtZT48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRl bT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBhM2I3NDNlOGMxLi5lMTQyNWMyMjJmIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sCkBAIC0zNiw2ICszNiw4IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8 L3RpdGxlPgogICAgJmFib3J0OwogICAgJmFsdGVyQWdncmVnYXRlOwogICAgJmFsdGVyQ29s bGF0aW9uOworICAgJmFsdGVyQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZhbHRlckNvbHVt bk1hc3RlcktleTsKICAgICZhbHRlckNvbnZlcnNpb247CiAgICAmYWx0ZXJEYXRhYmFzZTsK ICAgICZhbHRlckRlZmF1bHRQcml2aWxlZ2VzOwpAQCAtOTAsNiArOTIsOCBAQCA8dGl0bGU+ U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVhdGVBZ2dyZWdhdGU7CiAgICAmY3JlYXRl Q2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247CisgICAmY3JlYXRlQ29sdW1uRW5jcnlwdGlv bktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJLZXk7CiAgICAmY3JlYXRlQ29udmVyc2lv bjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZjcmVhdGVEb21haW47CkBAIC0xMzcsNiAr MTQxLDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAmZHJvcEFnZ3JlZ2F0 ZTsKICAgICZkcm9wQ2FzdDsKICAgICZkcm9wQ29sbGF0aW9uOworICAgJmRyb3BDb2x1bW5F bmNyeXB0aW9uS2V5OworICAgJmRyb3BDb2x1bW5NYXN0ZXJLZXk7CiAgICAmZHJvcENvbnZl cnNpb247CiAgICAmZHJvcERhdGFiYXNlOwogICAgJmRyb3BEb21haW47CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKaW5kZXggYzk5YWU1NGNiMC4uMTc0MDA5 NmEzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBs ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYwpAQCAt MjAsNyArMjAsOSBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3ByaW50c2ltcGxlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIK ICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAKIC8qCkBAIC00Niw2ICs0OCwxMSBAQCBw cmludHNpbXBsZV9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwg VHVwbGVEZXNjIHR1cGRlc2MpCiAJCXBxX3NlbmRpbnQxNigmYnVmLCBhdHRyLT5hdHRsZW4p OwogCQlwcV9zZW5kaW50MzIoJmJ1ZiwgYXR0ci0+YXR0dHlwbW9kKTsKIAkJcHFfc2VuZGlu dDE2KCZidWYsIDApOwkvKiBmb3JtYXQgY29kZSAqLworCQlpZiAoTXlQcm9jUG9ydC0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfc2VuZGludDMyKCZidWYsIDAp OwkvKiBDRUsgKi8KKwkJCXBxX3NlbmRpbnQzMigmYnVmLCAwKTsJLyogQ0VLIGFsZyAqLwor CQl9CiAJfQogCiAJcHFfZW5kbWVzc2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21t b24vcHJpbnR0dXAuYwppbmRleCBkMmYzYjU3Mjg4Li5mM2JhNjE3ZmMwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5jCkBAIC0xNSwxMyArMTUsMjggQEAKICAqLwog I2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNp bmNsdWRlICJhY2Nlc3MvcHJpbnR0dXAuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgor I2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5j a2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5o IgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3Jt YXQuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5o IgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXlhY2Nl c3MuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2Zt Z3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0 aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKIAogCiBzdGF0aWMgdm9pZCBwcmludHR1cF9zdGFydHVwKERlc3RS ZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwKQEAgLTE1MSw2ICsxNjYsMTU2IEBAIHBy aW50dHVwX3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBs ZURlc2MgdHlwZWluZm8pCiAJICovCiB9CiAKKy8qCisgKiBTZW5kIENvbHVtbk1hc3Rlcktl eSBtZXNzYWdlLCB1bmxlc3MgaXQncyBhbHJlYWR5IGJlZW4gc2VudCBpbiB0aGlzIHNlc3Np b24KKyAqIGZvciB0aGlzIGtleS4KKyAqLworTGlzdAkgICAqY21rX3NlbnQgPSBOSUw7CisK K3N0YXRpYyB2b2lkCitjbWtfY2hhbmdlX2NiKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVp bnQzMiBoYXNodmFsdWUpCit7CisJbGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9 IE5JTDsKK30KKworc3RhdGljIHZvaWQKK01heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3Nh Z2UoT2lkIGNta2lkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2NvbG1hc3Rl cmtleSBjbWtmb3JtOworCURhdHVtCQlkYXR1bTsKKwlib29sCQlpc251bGw7CisJU3RyaW5n SW5mb0RhdGEgYnVmOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsK KwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNta19z ZW50LCBjbWtpZCkpCisJCXJldHVybjsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENN S09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXBsZSkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1 bW4gbWFzdGVyIGtleSAldSIsIGNta2lkKTsKKwljbWtmb3JtID0gKEZvcm1fcGdfY29sbWFz dGVya2V5KSBHRVRTVFJVQ1QodHVwbGUpOworCisJcHFfYmVnaW5tZXNzYWdlKCZidWYsICd5 Jyk7IC8qIENvbHVtbk1hc3RlcktleSAqLworCXBxX3NlbmRpbnQzMigmYnVmLCBjbWtmb3Jt LT5vaWQpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgTmFtZVN0cihjbWtmb3JtLT5jbWtuYW1l KSk7CisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoQ01LT0lELCB0dXBsZSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfY21rcmVhbG0sICZpc251bGwpOworCUFzc2VydCghaXNudWxsKTsKKwlw cV9zZW5kc3RyaW5nKCZidWYsIFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlwcV9l bmRtZXNzYWdlKCZidWYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCWlmICgh cmVnaXN0ZXJlZF9pbnZhbCkKKwl7CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNr KENNS09JRCwgY21rX2NoYW5nZV9jYiwgKERhdHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZh bCA9IHRydWU7CisJfQorCisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhU b3BNZW1vcnlDb250ZXh0KTsKKwljbWtfc2VudCA9IGxhcHBlbmRfb2lkKGNta19zZW50LCBj bWtpZCk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCisvKgor ICogU2VuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVh ZHkgYmVlbiBzZW50IGluIHRoaXMKKyAqIHNlc3Npb24gZm9yIHRoaXMga2V5LgorICovCitM aXN0CSAgICpjZWtfc2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQKK2Nla19jaGFuZ2VfY2Io RGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2Zy ZWUoY2VrX3NlbnQpOworCWNla19zZW50ID0gTklMOworfQorCit2b2lkCitNYXliZVNlbmRD b2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKQoreworCUhlYXBUdXBsZQl0 dXBsZTsKKwlTY2FuS2V5RGF0YSBza2V5WzFdOworCVN5c1NjYW5EZXNjIHNkOworCVJlbGF0 aW9uCXJlbDsKKwlib29sCQlmb3VuZCA9IGZhbHNlOworCXN0YXRpYyBib29sIHJlZ2lzdGVy ZWRfaW52YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3Nl cnQoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlz dF9tZW1iZXJfb2lkKGNla19zZW50LCBhdHRjZWspKQorCQlyZXR1cm47CisKKwkvKgorCSAq IFdlIHJlYWxseSBvbmx5IG5lZWQgZGF0YSBmcm9tIHBnX2NvbGVuY2tleWRhdGEsIGJ1dCBi ZWZvcmUgd2Ugc2NhbgorCSAqIHRoYXQsIGxldCdzIGNoZWNrIHRoYXQgYW4gZW50cnkgZXhp c3RzIGluIHBnX2NvbGVuY2tleSwgc28gdGhhdCBpZgorCSAqIHRoZXJlIGFyZSBjYXRhbG9n IGluY29uc2lzdGVuY2llcywgd2UgY2FuIGxvY2F0ZSB0aGVtIGJldHRlci4KKwkgKi8KKwlp ZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oYXR0 Y2VrKSkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgJXUiLCBhdHRjZWspOworCisJLyoKKwkgKiBOb3cgc2NhbiBwZ19j b2xlbmNrZXlkYXRhLgorCSAqLworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1f cGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShhdHRjZWspKTsKKwlyZWwgPSB0YWJs ZV9vcGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwor CXNkID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZElu ZGV4SWQsIHRydWUsIE5VTEwsIDEsIHNrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5c3Rh YmxlX2dldG5leHQoc2QpKSkKKwl7CisJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBja2Rmb3Jt ID0gKEZvcm1fcGdfY29sZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJRGF0dW0J CWRhdHVtOworCQlib29sCQlpc251bGw7CisJCWJ5dGVhCSAgICpiYTsKKwkJU3RyaW5nSW5m b0RhdGEgYnVmOworCisJCU1heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoY2tkZm9y bS0+Y2tkY21raWQpOworCisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVtX3Bn X2NvbGVuY2tleWRhdGFfY2tkZW5jdmFsLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251 bGwpOworCQlBc3NlcnQoIWlzbnVsbCk7CisJCWJhID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNr ZWQoKGJ5dGVhICopIERhdHVtR2V0UG9pbnRlcihkYXR1bSkpOworCisJCXBxX2JlZ2lubWVz c2FnZSgmYnVmLCAnWScpOyAvKiBDb2x1bW5FbmNyeXB0aW9uS2V5ICovCisJCXBxX3NlbmRp bnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjZWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBj a2Rmb3JtLT5ja2RjbWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2Rj bWthbGcpOworCQlwcV9zZW5kaW50MzIoJmJ1ZiwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsK KwkJcHFfc2VuZGJ5dGVzKCZidWYsIFZBUkRBVEFfQU5ZKGJhKSwgVkFSU0laRV9BTllfRVhI RFIoYmEpKTsKKwkJcHFfZW5kbWVzc2FnZSgmYnVmKTsKKworCQlmb3VuZCA9IHRydWU7CisJ fQorCisJLyoKKwkgKiBUaGlzIGlzIGEgdXNlci1mYWNpbmcgbWVzc2FnZSwgYmVjYXVzZSB3 aXRoIEFMVEVSIGl0IGlzIHBvc3NpYmxlIHRvCisJICogZGVsZXRlIGFsbCBkYXRhIGVudHJp ZXMgZm9yIGEgQ0VLLgorCSAqLworCWlmICghZm91bmQpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1zZygibm8g ZGF0YSBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiIsIGdldF9jZWtfbmFtZShh dHRjZWssIGZhbHNlKSkpOworCisJc3lzdGFibGVfZW5kc2NhbihzZCk7CisJdGFibGVfY2xv c2UocmVsLCBOb0xvY2spOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2Fj aGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQ0VLREFUQU9JRCwgY2VrX2NoYW5nZV9jYiwg KERhdHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwljZWtf c2VudCA9IGxhcHBlbmRfb2lkKGNla19zZW50LCBhdHRjZWspOworCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjb250ZXh0KTsKK30KKwogLyoKICAqIFNlbmRSb3dEZXNjcmlwdGlvbk1l c3NhZ2UgLS0tIHNlbmQgYSBSb3dEZXNjcmlwdGlvbiBtZXNzYWdlIHRvIHRoZSBmcm9udGVu ZAogICoKQEAgLTE2Nyw2ICszMzIsNyBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0 cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCQkJCQkgIExpc3QgKnRhcmdl dGxpc3QsIGludDE2ICpmb3JtYXRzKQogewogCWludAkJCW5hdHRzID0gdHlwZWluZm8tPm5h dHRzOworCXNpemVfdAkJc3o7CiAJaW50CQkJaTsKIAlMaXN0Q2VsbCAgICp0bGlzdF9pdGVt ID0gbGlzdF9oZWFkKHRhcmdldGxpc3QpOwogCkBAIC0xODMsMTQgKzM0OSwxNyBAQCBTZW5k Um93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWlu Zm8sCiAJICogSGF2ZSB0byBvdmVyZXN0aW1hdGUgdGhlIHNpemUgb2YgdGhlIGNvbHVtbi1u YW1lcywgdG8gYWNjb3VudCBmb3IKIAkgKiBjaGFyYWN0ZXIgc2V0IG92ZXJoZWFkLgogCSAq LwotCWVubGFyZ2VTdHJpbmdJbmZvKGJ1ZiwgKE5BTUVEQVRBTEVOICogTUFYX0NPTlZFUlNJ T05fR1JPV1RIIC8qIGF0dG5hbWUgKi8KLQkJCQkJCQkrIHNpemVvZihPaWQpCS8qIHJlc29y aWd0YmwgKi8KLQkJCQkJCQkrIHNpemVvZihBdHRyTnVtYmVyKQkvKiByZXNvcmlnY29sICov Ci0JCQkJCQkJKyBzaXplb2YoT2lkKQkvKiBhdHR0eXBpZCAqLwotCQkJCQkJCSsgc2l6ZW9m KGludDE2KSAvKiBhdHRsZW4gKi8KLQkJCQkJCQkrIHNpemVvZihpbnQzMikgLyogYXR0eXBt b2QgKi8KLQkJCQkJCQkrIHNpemVvZihpbnQxNikgLyogZm9ybWF0ICovCi0JCQkJCQkJKSAq IG5hdHRzKTsKKwlzeiA9IChOQU1FREFUQUxFTiAqIE1BWF9DT05WRVJTSU9OX0dST1dUSCAv KiBhdHRuYW1lICovCisJCSAgKyBzaXplb2YoT2lkKQkvKiByZXNvcmlndGJsICovCisJCSAg KyBzaXplb2YoQXR0ck51bWJlcikJLyogcmVzb3JpZ2NvbCAqLworCQkgICsgc2l6ZW9mKE9p ZCkJLyogYXR0dHlwaWQgKi8KKwkJICArIHNpemVvZihpbnQxNikgLyogYXR0bGVuICovCisJ CSAgKyBzaXplb2YoaW50MzIpIC8qIGF0dHlwbW9kICovCisJCSAgKyBzaXplb2YoaW50MTYp KTsgLyogZm9ybWF0ICovCisJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2Vu YWJsZWQpCisJCXN6ICs9IChzaXplb2YoaW50MzIpCQkvKiBhdHRjZWtpZCAqLworCQkJICAg KyBzaXplb2YoaW50MzIpKTsJLyogYXR0ZW5jYWxnICovCisJZW5sYXJnZVN0cmluZ0luZm8o YnVmLCBzeiAqIG5hdHRzKTsKIAogCWZvciAoaSA9IDA7IGkgPCBuYXR0czsgKytpKQogCXsK QEAgLTIwMCw2ICszNjksOCBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0lu Zm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCU9pZAkJCXJlc29yaWd0Ymw7CiAJCUF0 dHJOdW1iZXIJcmVzb3JpZ2NvbDsKIAkJaW50MTYJCWZvcm1hdDsKKwkJT2lkCQkJYXR0Y2Vr aWQgPSBJbnZhbGlkT2lkOworCQlpbnQzMgkJYXR0ZW5jYWxnID0gMDsKIAogCQkvKgogCQkg KiBJZiBjb2x1bW4gaXMgYSBkb21haW4sIHNlbmQgdGhlIGJhc2UgdHlwZSBhbmQgdHlwbW9k IGluc3RlYWQuCkBAIC0yMzEsNiArNDAyLDI4IEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3Nh Z2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJZWxzZQogCQkJZm9y bWF0ID0gMDsKIAorCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxl ZCAmJiB0eXBlX2lzX2VuY3J5cHRlZChhdHR0eXBpZCkpCisJCXsKKwkJCUhlYXBUdXBsZQl0 cDsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIG9yaWdfYXR0OworCisJCQl0cCA9IFNlYXJjaFN5 c0NhY2hlMihBVFROVU0sIE9iamVjdElkR2V0RGF0dW0ocmVzb3JpZ3RibCksIEludDE2R2V0 RGF0dW0ocmVzb3JpZ2NvbCkpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJ CQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRlICVkIG9m IHJlbGF0aW9uICV1IiwgcmVzb3JpZ2NvbCwgcmVzb3JpZ3RibCk7CisJCQlvcmlnX2F0dCA9 IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCU1heWJlU2VuZENvbHVt bkVuY3J5cHRpb25LZXlNZXNzYWdlKG9yaWdfYXR0LT5hdHRjZWspOworCQkJYXR0dHlwaWQg PSBvcmlnX2F0dC0+YXR0cmVhbHR5cGlkOworCQkJYXR0Y2VraWQgPSBvcmlnX2F0dC0+YXR0 Y2VrOworCQkJYXR0ZW5jYWxnID0gb3JpZ19hdHQtPmF0dGVuY2FsZzsKKwkJCVJlbGVhc2VT eXNDYWNoZSh0cCk7CisKKwkJCS8qCisJCQkgKiBFbmNyeXB0ZWQgdHlwZXMgYXJlIGFsd2F5 cyBzZW50IGluIGJpbmFyeSB3aGVuIGNvbHVtbgorCQkJICogZW5jcnlwdGlvbiBpcyBlbmFi bGVkLgorCQkJICovCisJCQlmb3JtYXQgPSAxOworCQl9CisKIAkJcHFfd3JpdGVzdHJpbmco YnVmLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpOwogCQlwcV93cml0ZWludDMyKGJ1ZiwgcmVz b3JpZ3RibCk7CiAJCXBxX3dyaXRlaW50MTYoYnVmLCByZXNvcmlnY29sKTsKQEAgLTIzOCw2 ICs0MzEsMTEgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1Ziwg VHVwbGVEZXNjIHR5cGVpbmZvLAogCQlwcV93cml0ZWludDE2KGJ1ZiwgYXR0LT5hdHRsZW4p OwogCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0dHlwbW9kKTsKIAkJcHFfd3JpdGVpbnQxNihi dWYsIGZvcm1hdCk7CisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFi bGVkKQorCQl7CisJCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0Y2VraWQpOworCQkJcHFfd3Jp dGVpbnQzMihidWYsIGF0dGVuY2FsZyk7CisJCX0KIAl9CiAKIAlwcV9lbmRtZXNzYWdlX3Jl dXNlKGJ1Zik7CkBAIC0yNzEsNiArNDY5LDEzIEBAIHByaW50dHVwX3ByZXBhcmVfaW5mbyhE Ul9wcmludHR1cCAqbXlTdGF0ZSwgVHVwbGVEZXNjIHR5cGVpbmZvLCBpbnQgbnVtQXR0cnMp CiAJCWludDE2CQlmb3JtYXQgPSAoZm9ybWF0cyA/IGZvcm1hdHNbaV0gOiAwKTsKIAkJRm9y bV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWluZm8sIGkpOwogCisJ CS8qCisJCSAqIEVuY3J5cHRlZCB0eXBlcyBhcmUgYWx3YXlzIHNlbnQgaW4gYmluYXJ5IHdo ZW4gY29sdW1uIGVuY3J5cHRpb24gaXMKKwkJICogZW5hYmxlZC4KKwkJICovCisJCWlmIChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlw dGVkKGF0dHItPmF0dHR5cGlkKSkKKwkJCWZvcm1hdCA9IDE7CisKIAkJdGhpc1N0YXRlLT5m b3JtYXQgPSBmb3JtYXQ7CiAJCWlmIChmb3JtYXQgPT0gMCkKIAkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3R1cGRlc2MuYwppbmRleCA3ODU3ZjU1ZTI0Li4zMmIxMzE3ODFmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwpAQCAtNDU5LDYgKzQ1OSwxMiBAQCBl cXVhbFR1cGxlRGVzY3MoVHVwbGVEZXNjIHR1cGRlc2MxLCBUdXBsZURlc2MgdHVwZGVzYzIp CiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0aXNsb2NhbCAhPSBhdHRyMi0+ YXR0aXNsb2NhbCkKIAkJCXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRjZWsgIT0g YXR0cjItPmF0dGNlaykKKwkJCXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRyZWFs dHlwaWQgIT0gYXR0cjItPmF0dHJlYWx0eXBpZCkKKwkJCXJldHVybiBmYWxzZTsKKwkJaWYg KGF0dHIxLT5hdHRlbmNhbGcgIT0gYXR0cjItPmF0dGVuY2FsZykKKwkJCXJldHVybiBmYWxz ZTsKIAkJaWYgKGF0dHIxLT5hdHRpbmhjb3VudCAhPSBhdHRyMi0+YXR0aW5oY291bnQpCiAJ CQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0Y29sbGF0aW9uICE9IGF0dHIyLT5h dHRjb2xsYXRpb24pCkBAIC02MjksNiArNjM1LDkgQEAgVHVwbGVEZXNjSW5pdEVudHJ5KFR1 cGxlRGVzYyBkZXNjLAogCWF0dC0+YXR0Z2VuZXJhdGVkID0gJ1wwJzsKIAlhdHQtPmF0dGlz ZHJvcHBlZCA9IGZhbHNlOwogCWF0dC0+YXR0aXNsb2NhbCA9IHRydWU7CisJYXR0LT5hdHRj ZWsgPSAwOworCWF0dC0+YXR0cmVhbHR5cGlkID0gMDsKKwlhdHQtPmF0dGVuY2FsZyA9IDA7 CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBh cmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwogCkBAIC02OTAsNiArNjk5LDkgQEAg VHVwbGVEZXNjSW5pdEJ1aWx0aW5FbnRyeShUdXBsZURlc2MgZGVzYywKIAlhdHQtPmF0dGdl bmVyYXRlZCA9ICdcMCc7CiAJYXR0LT5hdHRpc2Ryb3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0 dGlzbG9jYWwgPSB0cnVlOworCWF0dC0+YXR0Y2VrID0gMDsKKwlhdHQtPmF0dHJlYWx0eXBp ZCA9IDA7CisJYXR0LT5hdHRlbmNhbGcgPSAwOwogCWF0dC0+YXR0aW5oY291bnQgPSAwOwog CS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgYXJlIG5vdCBwcmVzZW50IGluIHR1cGxlZGVz Y3MgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlk YXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwppbmRleCAx MGJmMjZjZTdjLi5jZWE5MWQ0YTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNodmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo dmFsaWRhdGUuYwpAQCAtMzMxLDcgKzMzMSw3IEBAIGNoZWNrX2hhc2hfZnVuY19zaWduYXR1 cmUoT2lkIGZ1bmNpZCwgaW50MTYgYW1wcm9jbnVtLCBPaWQgYXJndHlwZSkKIAkJCQkgYXJn dHlwZSA9PSBCT09MT0lEKQogCQkJIC8qIG9rYXksIGFsbG93ZWQgdXNlIG9mIGhhc2hjaGFy KCkgKi8gOwogCQllbHNlIGlmICgoZnVuY2lkID09IEZfSEFTSFZBUkxFTkEgfHwgZnVuY2lk ID09IEZfSEFTSFZBUkxFTkFFWFRFTkRFRCkgJiYKLQkJCQkgYXJndHlwZSA9PSBCWVRFQU9J RCkKKwkJCQkgKGFyZ3R5cGUgPT0gQllURUFPSUQgfHwgYXJndHlwZSA9PSBQR19FTkNSWVBU RURfREVUT0lEKSkKIAkJCSAvKiBva2F5LCBhbGxvd2VkIHVzZSBvZiBoYXNodmFybGVuYSgp ICovIDsKIAkJZWxzZQogCQkJcmVzdWx0ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpp bmRleCA4OWEwMjIxZWM5Li43ZTFhOTFiOTc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAg LTcyLDcgKzcyLDggQEAgQ0FUQUxPR19IRUFERVJTIDo9IFwKIAlwZ19jb2xsYXRpb24uaCBw Z19wYXJhbWV0ZXJfYWNsLmggcGdfcGFydGl0aW9uZWRfdGFibGUuaCBcCiAJcGdfcmFuZ2Uu aCBwZ190cmFuc2Zvcm0uaCBcCiAJcGdfc2VxdWVuY2UuaCBwZ19wdWJsaWNhdGlvbi5oIHBn X3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKLQlwZ19wdWJsaWNhdGlvbl9yZWwuaCBwZ19z dWJzY3JpcHRpb24uaCBwZ19zdWJzY3JpcHRpb25fcmVsLmgKKwlwZ19wdWJsaWNhdGlvbl9y ZWwuaCBwZ19zdWJzY3JpcHRpb24uaCBwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX2Nv bG1hc3RlcmtleS5oIHBnX2NvbGVuY2tleS5oIHBnX2NvbGVuY2tleWRhdGEuaAogCiBHRU5F UkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpIHNjaGVtYXBn Lmggc3lzdGVtX2ZrX2luZm8uaAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L2FjbGNoay5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBjZGZkNjM3 ODE1Li4wMGRlYTA1NTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNo ay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTMzLDcgKzMzLDkg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfY2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3MuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9u LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIgpAQCAtMjc5OCw2ICsy ODAwLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBv Ymp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FU VFJJQlVURToKIAkJCQkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VL OgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQkJCQljYXNlIE9CSkVDVF9DTUs6CiAJ CQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJ CQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTI4MjgsNiArMjgzMywxMiBAQCBh Y2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJ CQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgi bXVzdCBiZSBvd25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQlj YXNlIE9CSkVDVF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3du ZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsKKwkJCQkJ Y2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93 bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2Fz ZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJl IG93bmVyIG9mIGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTM4LDYgKzI5 NDksNyBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9i anR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRU UklCVVRFOgogCQkJCQljYXNlIE9CSkVDVF9DQVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUtE QVRBOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZB Q0w6CiAJCQkJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCmluZGV4IDMwMzk0ZGNjZjUuLjNjNjQ3NjMyNjYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvZGVwZW5kZW5jeS5jCkBAIC0zMCw3ICszMCwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xt YXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Rh dGFiYXNlLmgiCkBAIC0xNTMsNiArMTU2LDkgQEAgc3RhdGljIGNvbnN0IE9pZCBvYmplY3Rf Y2xhc3Nlc1tdID0gewogCVR5cGVSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfVFlQRSAqLwog CUNhc3RSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfQ0FTVCAqLwogCUNvbGxhdGlvblJlbGF0 aW9uSWQsCQkvKiBPQ0xBU1NfQ09MTEFUSU9OICovCisJQ29sdW1uRW5jS2V5UmVsYXRpb25J ZCwJCS8qIE9DTEFTU19DRUsgKi8KKwlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwJLyog T0NMQVNTX0NFS0RBVEEgKi8KKwlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLAkvKiBPQ0xB U1NfQ01LICovCiAJQ29uc3RyYWludFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09OU1RSQUlO VCAqLwogCUNvbnZlcnNpb25SZWxhdGlvbklkLAkJLyogT0NMQVNTX0NPTlZFUlNJT04gKi8K IAlBdHRyRGVmYXVsdFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfREVGQVVMVCAqLwpAQCAtMTQ5 Myw2ICsxNDk5LDkgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3Qs IGludCBmbGFncykKIAogCQljYXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFTU19DT0xM QVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJ Y2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9D TEFTU19MQU5HVUFHRToKIAkJY2FzZSBPQ0xBU1NfT1BDTEFTUzoKQEAgLTI4NTksNiArMjg2 OCwxNSBAQCBnZXRPYmplY3RDbGFzcyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QpCiAJ CWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09MTEFUSU9O OwogCisJCWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1Nf Q0VLOworCisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCQlyZXR1cm4g T0NMQVNTX0NFS0RBVEE7CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOgor CQkJcmV0dXJuIE9DTEFTU19DTUs7CisKIAkJY2FzZSBDb25zdHJhaW50UmVsYXRpb25JZDoK IAkJCXJldHVybiBPQ0xBU1NfQ09OU1RSQUlOVDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCBi ZGQ0MTNmMDFiLi5hYmRjYmYxM2JiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtNDIsNiArNDIs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXR0cmRlZi5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRp b24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2ZvcmVpZ25fdGFibGUuaCIKQEAgLTUxMSw3ICs1MTIsMTQgQEAgQ2hlY2tB dHRyaWJ1dGVOYW1lc1R5cGVzKFR1cGxlRGVzYyB0dXBkZXNjLCBjaGFyIHJlbGtpbmQsCiAJ CQkJCQkgICBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHR0eXBpZCwKIAkJCQkJCSAg IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGNvbGxhdGlvbiwKIAkJCQkJCSAgIE5J TCwgLyogYXNzdW1lIHdlJ3JlIGNyZWF0aW5nIGEgbmV3IHJvd3R5cGUgKi8KLQkJCQkJCSAg IGZsYWdzKTsKKwkJCQkJCSAgIGZsYWdzIHwKKwkJCQkJCSAgIC8qCisJCQkJCQkJKiBBbGxv dyBlbmNyeXB0ZWQgdHlwZXMgaWYgQ0VLIGhhcyBiZWVuIHByb3ZpZGVkLAorCQkJCQkJCSog d2hpY2ggbWVhbnMgdGhpcyB0eXBlIGhhcyBiZWVuIGludGVybmFsbHkKKwkJCQkJCQkqIGdl bmVyYXRlZC4gIFdlIGRvbid0IHdhbnQgdG8gYWxsb3cgZXhwbGljaXRseQorCQkJCQkJCSog dXNpbmcgdGhlc2UgdHlwZXMuCisJCQkJCQkJKi8KKwkJCQkJCSAgIChUdXBsZURlc2NBdHRy KHR1cGRlc2MsIGkpLT5hdHRjZWsgPyBDSEtBVFlQRV9FTkNSWVBURUQgOiAwKSk7CiAJfQog fQogCkBAIC02NTMsNiArNjYxLDIxIEBAIENoZWNrQXR0cmlidXRlVHlwZShjb25zdCBjaGFy ICphdHRuYW1lLAogCQkJCQkJICAgZmxhZ3MpOwogCX0KIAorCS8qCisJICogRW5jcnlwdGVk IHR5cGVzIGFyZSBub3QgYWxsb3dlZCBleHBsaWN0bHkgYXMgY29sdW1uIHR5cGVzLiAgTW9z dAorCSAqIGNhbGxlcnMgcnVuIHRoaXMgY2hlY2sgYmVmb3JlIHRyYW5zZm9ybWluZyB0aGUg Y29sdW1uIGRlZmluaXRpb24gdG8gdXNlCisJICogdGhlIGVuY3J5cHRlZCB0eXBlcy4gIFNv bWUgY2FsbGVycyBjYWxsIGl0IGFnYWluIGFmdGVyOyB0aG9zZSBzaG91bGQKKwkgKiBzZXQg dGhlIENIS0FUWVBFX0VOQ1JZUFRFRCB0byBsZXQgdGhpcyBwYXNzLgorCSAqLworCWlmICh0 eXBlX2lzX2VuY3J5cHRlZChhdHR0eXBpZCkgJiYgIShmbGFncyAmIENIS0FUWVBFX0VOQ1JZ UFRFRCkpCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKKwkJCQkgZXJyYmFja3RyYWNlKCksCisJCQkJIGVy cm1zZygiY29sdW1uIFwiJXNcIiBoYXMgaW50ZXJuYWwgdHlwZSAlcyIsCisJCQkJCQlhdHRu YW1lLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBpZCkpKSk7CisJfQorCiAJLyoKIAkgKiBUaGlz IG1pZ2h0IG5vdCBiZSBzdHJpY3RseSBpbnZhbGlkIHBlciBTUUwgc3RhbmRhcmQsIGJ1dCBp dCBpcyBwcmV0dHkKIAkgKiB1c2VsZXNzLCBhbmQgaXQgY2Fubm90IGJlIGR1bXBlZCwgc28g d2UgbXVzdCBkaXNhbGxvdyBpdC4KQEAgLTc0OSw2ICs3NzIsOSBAQCBJbnNlcnRQZ0F0dHJp YnV0ZVR1cGxlcyhSZWxhdGlvbiBwZ19hdHRyaWJ1dGVfcmVsLAogCQlzbG90W3Nsb3RDb3Vu dF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Z2VuZXJhdGVkIC0gMV0gPSBD aGFyR2V0RGF0dW0oYXR0cnMtPmF0dGdlbmVyYXRlZCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+ dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2Ryb3BwZWQgLSAxXSA9IEJvb2xH ZXREYXR1bShhdHRycy0+YXR0aXNkcm9wcGVkKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNf dmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGlzbG9jYWwgLSAxXSA9IEJvb2xHZXREYXR1 bShhdHRycy0+YXR0aXNsb2NhbCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tB bnVtX3BnX2F0dHJpYnV0ZV9hdHRjZWsgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMt PmF0dGNlayk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJp YnV0ZV9hdHRyZWFsdHlwaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dHJl YWx0eXBpZCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJp YnV0ZV9hdHRlbmNhbGcgLSAxXSA9IEludDMyR2V0RGF0dW0oYXR0cnMtPmF0dGVuY2FsZyk7 CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRp bmhjb3VudCAtIDFdID0gSW50MzJHZXREYXR1bShhdHRycy0+YXR0aW5oY291bnQpOwogCQlz bG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y29sbGF0 aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGF0dHJzLT5hdHRjb2xsYXRpb24pOwogCQlp ZiAoYXR0b3B0aW9ucyAmJiBhdHRvcHRpb25zW25hdHRzXSAhPSAoRGF0dW0pIDApCkBAIC04 NDAsNiArODY2LDIwIEBAIEFkZE5ld0F0dHJpYnV0ZVR1cGxlcyhPaWQgbmV3X3JlbF9vaWQs CiAJCQkJCQkJIHR1cGRlc2MtPmF0dHJzW2ldLmF0dGNvbGxhdGlvbik7CiAJCQlyZWNvcmRE ZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsK IAkJfQorCisJCWlmIChPaWRJc1ZhbGlkKHR1cGRlc2MtPmF0dHJzW2ldLmF0dGNlaykpCisJ CXsKKwkJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgQ29sdW1uRW5jS2V5UmVsYXRp b25JZCwKKwkJCQkJCQkgdHVwZGVzYy0+YXR0cnNbaV0uYXR0Y2VrKTsKKwkJCXJlY29yZERl cGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOwor CQl9CisKKwkJaWYgKE9pZElzVmFsaWQodHVwZGVzYy0+YXR0cnNbaV0uYXR0cmVhbHR5cGlk KSkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBUeXBlUmVsYXRpb25J ZCwKKwkJCQkJCQkgdHVwZGVzYy0+YXR0cnNbaV0uYXR0cmVhbHR5cGlkKTsKKwkJCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwp OworCQl9CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKaW5k ZXggYTFkZjhiMWRkYy4uNGNjZmM3MWNmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3Rh ZGRyZXNzLmMKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRo aWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rlcmtl eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2Uu aCIKQEAgLTE5MSw2ICsxOTQsNDggQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlw ZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX0NPTExBVElPTiwKIAkJdHJ1ZQogCX0s CisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IiwKKwkJQ29sdW1uRW5jS2V5UmVsYXRp b25JZCwKKwkJQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwKKwkJQ0VLT0lELAorCQlDRUtOQU1F LAorCQlBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJCUFudW1fcGdfY29sZW5ja2V5X2Nla25h bWUsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtvd25l ciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCU9CSkVDVF9DRUssCisJCXRydWUKKwl9LAor CXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiwKKwkJQ29sdW1uRW5jS2V5RGF0 YVJlbGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLAorCQlDRUtEQVRB T0lELAorCQktMSwKKwkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJSW52YWxpZEF0 dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJeworCQkiY29s dW1uIG1hc3RlciBrZXkiLAorCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLAorCQlDb2x1 bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQlDTUtPSUQsCisJCUNNS05BTUUsCisJCUFudW1f cGdfY29sbWFzdGVya2V5X29pZCwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUFudW1fcGdfY29sbWFzdGVya2V5X2Nta293bmVy LAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJT0JKRUNUX0NNSywKKwkJdHJ1ZQorCX0sCiAJ ewogCQkiY29uc3RyYWludCIsCiAJCUNvbnN0cmFpbnRSZWxhdGlvbklkLApAQCAtNzIzLDYg Kzc2OCwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsKIAkJ ImNvbGxhdGlvbiIsIE9CSkVDVF9DT0xMQVRJT04KIAl9LAorCS8qIE9DTEFTU19DRUsgKi8K Kwl7CisJCSJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiLCBPQkpFQ1RfQ0VLCisJfSwKKwkvKiBP Q0xBU1NfQ0VLREFUQSAqLworCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiwg T0JKRUNUX0NFS0RBVEEKKwl9LAorCS8qIE9DTEFTU19DTUsgKi8KKwl7CisJCSJjb2x1bW4g bWFzdGVyIGtleSIsIE9CSkVDVF9DTUsKKwl9LAogCS8qIE9DTEFTU19DT05TVFJBSU5UICov CiAJewogCQkidGFibGUgY29uc3RyYWludCIsIE9CSkVDVF9UQUJDT05TVFJBSU5UCkBAIC0x MDI5LDYgKzEwODYsOCBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBl LCBOb2RlICpvYmplY3QsCiAJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCX0K IAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWNhc2UgT0JKRUNUX0NNSzoK IAkJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJY2FzZSBPQkpFQ1RfRVhURU5TSU9OOgog CQkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKQEAgLTExMDgsNiArMTE2NywyMSBAQCBnZXRf b2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJ CWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2Ug T0JKRUNUX0NFS0RBVEE6CisJCQkJeworCQkJCQljaGFyCSAgICpjZWtuYW1lID0gc3RyVmFs KGxpbml0aWFsKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpKTsKKwkJCQkJY2hhcgkgICAqY21r bmFtZSA9IHN0clZhbChsc2Vjb25kKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpKTsKKwkJCQkJ T2lkCQkJY2VraWQ7CisJCQkJCU9pZAkJCWNta2lkOworCisJCQkJCWNla2lkID0gZ2V0X2Nl a19vaWQoY2VrbmFtZSwgbWlzc2luZ19vayk7CisJCQkJCWNta2lkID0gZ2V0X2Nta19vaWQo Y21rbmFtZSwgbWlzc2luZ19vayk7CisKKwkJCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29sdW1u RW5jS2V5RGF0YVJlbGF0aW9uSWQ7CisJCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY2Vr ZGF0YV9vaWQoY2VraWQsIGNta2lkLCBtaXNzaW5nX29rKTsKKwkJCQkJYWRkcmVzcy5vYmpl Y3RTdWJJZCA9IDA7CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSBPQkpFQ1RfVFJBTlNG T1JNOgogCQkJCXsKIAkJCQkJVHlwZU5hbWUgICAqdHlwZW5hbWUgPSBsaW5pdGlhbF9ub2Rl KFR5cGVOYW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKQEAgLTEyOTMsNiArMTM2Nywx NiBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfdW5xdWFsaWZpZWQoT2JqZWN0VHlwZSBvYmp0eXBl LAogCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9hbV9vaWQobmFtZSwgbWlzc2luZ19vayk7 CiAJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVD VF9DRUs6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOwor CQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jZWtfb2lkKG5hbWUsIG1pc3Npbmdfb2spOwor CQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf Q01LOgorCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZDsK KwkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY21rX29pZChuYW1lLCBtaXNzaW5nX29rKTsK KwkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNU X0RBVEFCQVNFOgogCQkJYWRkcmVzcy5jbGFzc0lkID0gRGF0YWJhc2VSZWxhdGlvbklkOwog CQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9kYXRhYmFzZV9vaWQobmFtZSwgbWlzc2luZ19v ayk7CkBAIC0yMjU0LDYgKzIzMzgsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVO Q1RJT05fQVJHUykKIAkgKi8KIAlzd2l0Y2ggKHR5cGUpCiAJeworCQljYXNlIE9CSkVDVF9D RUtEQVRBOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2Ug T0JKRUNUX1VTRVJfTUFQUElORzoKIAkJCWlmIChsaXN0X2xlbmd0aChuYW1lKSAhPSAxKQpA QCAtMjMyOCw2ICsyNDEzLDggQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNl IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JK RUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCWNhc2UgT0JKRUNUX0VWRU5U X1RSSUdHRVI6CiAJCWNhc2UgT0JKRUNUX0VYVEVOU0lPTjoKQEAgLTIzNTgsNiArMjQ0NSw3 IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9C SkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbGlzdF9tYWtl MihuYW1lLCBsaW5pdGlhbChhcmdzKSk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VL REFUQToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9C SkVDVF9VU0VSX01BUFBJTkc6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbGlzdF9tYWtlMihs aW5pdGlhbChuYW1lKSwgbGluaXRpYWwoYXJncykpOwpAQCAtMjQ3NSw2ICsyNTYzLDggQEAg Y2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUs IE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19O T1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZygoY2FzdE5v ZGUoT2JqZWN0V2l0aEFyZ3MsIG9iamVjdCkpLT5vYmpuYW1lKSk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0RB VEFCQVNFOgogCQljYXNlIE9CSkVDVF9FVkVOVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9F WFRFTlNJT046CkBAIC0yNTY3LDYgKzI2NTcsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlw KE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNz LAogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FNT1A6CiAJCWNhc2UgT0JKRUNUX0FNUFJP QzoKKwkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJ Y2FzZSBPQkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BB Q0U6CkBAIC0zMDMyLDYgKzMxMjMsNDggQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJ CQl9CiAKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJeworCQkJCWNoYXIJICAgKmNla25hbWUg PSBnZXRfY2VrX25hbWUob2JqZWN0LT5vYmplY3RJZCwgbWlzc2luZ19vayk7CisKKwkJCQlp ZiAoY2VrbmFtZSkKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgJXMiKSwgY2VrbmFtZSk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJ Y2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZv cm1fcGdfY29sZW5ja2V5ZGF0YSBjZWtkYXRhOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKENFS0RBVEFPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOwor CQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNz aW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNv bHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJ ZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWNla2RhdGEgPSAoRm9ybV9wZ19jb2xl bmNrZXlkYXRhKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1 ZmZlciwgXygiY29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIGRhdGEgZm9yIG1hc3RlciBrZXkg JXMiKSwKKwkJCQkJCQkJIGdldF9jZWtfbmFtZShjZWtkYXRhLT5ja2RjZWtpZCwgZmFsc2Up LAorCQkJCQkJCQkgZ2V0X2Nta19uYW1lKGNla2RhdGEtPmNrZGNta2lkLCBmYWxzZSkpOwor CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2Fz ZSBPQ0xBU1NfQ01LOgorCQkJeworCQkJCWNoYXIJICAgKmNta25hbWUgPSBnZXRfY21rX25h bWUob2JqZWN0LT5vYmplY3RJZCwgbWlzc2luZ19vayk7CisKKwkJCQlpZiAoY21rbmFtZSkK KwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gbWFzdGVyIGtleSAl cyIpLCBjbWtuYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIE9DTEFTU19DT05T VFJBSU5UOgogCQkJewogCQkJCUhlYXBUdXBsZQljb25UdXA7CkBAIC00NDMyLDYgKzQ1NjUs MTggQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9i amVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVm ZmVyLCAiY29sbGF0aW9uIik7CiAJCQlicmVhazsKIAorCQljYXNlIE9DTEFTU19DRUs6CisJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gZW5jcnlwdGlvbiBr ZXkiKTsKKwkJCWJyZWFrOworCisJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIp OworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ01LOgorCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZygmYnVmZmVyLCAiY29sdW1uIG1hc3RlciBrZXkiKTsKKwkJCWJyZWFrOworCiAJ CWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQlnZXRDb25zdHJhaW50VHlwZURlc2NyaXB0 aW9uKCZidWZmZXIsIG9iamVjdC0+b2JqZWN0SWQsCiAJCQkJCQkJCQkJIG1pc3Npbmdfb2sp OwpAQCAtNDg5Nyw2ICs1MDQyLDc0IEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgT0NM QVNTX0NFSzoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29sZW5j a2V5IGZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLT0lELCBPYmplY3RJ ZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUi LAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJ CWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXApOworCQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX2lkZW50aWZp ZXIoTmFtZVN0cihmb3JtLT5jZWtuYW1lKSkpOworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkq b2JqbmFtZSA9IGxpc3RfbWFrZTEocHN0cmR1cChOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7 CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2Fz ZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1f cGdfY29sZW5ja2V5ZGF0YSBmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENF S0RBVEFPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29r KQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGtleSBkYXRhICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJ CQkJCWJyZWFrOworCQkJCX0KKwkJCQlmb3JtID0gKEZvcm1fcGdfY29sZW5ja2V5ZGF0YSkg R0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJ CQkgIm9mICVzIGZvciAlcyIsIGdldF9jZWtfbmFtZShmb3JtLT5ja2RjZWtpZCwgZmFsc2Up LCBnZXRfY21rX25hbWUoZm9ybS0+Y2tkY21raWQsIGZhbHNlKSk7CisJCQkJaWYgKG9iam5h bWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShnZXRfY2VrX25hbWUoZm9ybS0+Y2tk Y2VraWQsIGZhbHNlKSk7CisJCQkJaWYgKG9iamFyZ3MpCisJCQkJCSpvYmphcmdzID0gbGlz dF9tYWtlMShnZXRfY21rX25hbWUoZm9ybS0+Y2tkY21raWQsIGZhbHNlKSk7CisJCQkJUmVs ZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBPQ0xBU1Nf Q01LOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xtYXN0ZXJr ZXkgZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVjdElk R2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwKKwkJ CQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlmb3Jt ID0gKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwKTsKKwkJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkgICBxdW90ZV9pZGVudGlmaWVy KE5hbWVTdHIoZm9ybS0+Y21rbmFtZSkpKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9i am5hbWUgPSBsaXN0X21ha2UxKHBzdHJkdXAoTmFtZVN0cihmb3JtLT5jbWtuYW1lKSkpOwor CQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2Ug T0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvTWFrZWZpbGUKaW5kZXggNDhmNzM0OGY5MS4uNjlmNjE3NWM2MCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgT0JKUyA9IFwKIAlhbmFseXplLm8g XAogCWFzeW5jLm8gXAogCWNsdXN0ZXIubyBcCisJY29sZW5jY21kcy5vIFwKIAljb2xsYXRp b25jbWRzLm8gXAogCWNvbW1lbnQubyBcCiAJY29uc3RyYWludC5vIFwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9h bHRlci5jCmluZGV4IDEwYjZmZTE5YTIuLmRiMWFkYTM5MDkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYwpAQCAtMjIsNyArMjIsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIK ICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19mb3JlaWduX2RhdGFfd3JhcHBlci5oIgpAQCAtODAsNiArODIsMTIgQEAgcmVwb3J0X25h bWVfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUpCiAKIAlzd2l0Y2gg KGNsYXNzSWQpCiAJeworCQljYXNlIENvbHVtbkVuY0tleVJlbGF0aW9uSWQ6CisJCQltc2dm bXQgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFk eSBleGlzdHMiKTsKKwkJCWJyZWFrOworCQljYXNlIENvbHVtbk1hc3RlcktleVJlbGF0aW9u SWQ6CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNc IiBhbHJlYWR5IGV4aXN0cyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRXZlbnRUcmlnZ2VyUmVs YXRpb25JZDoKIAkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiZXZlbnQgdHJpZ2dlciBcIiVz XCIgYWxyZWFkeSBleGlzdHMiKTsKIAkJCWJyZWFrOwpAQCAtMzc1LDYgKzM4Myw4IEBAIEV4 ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCQlyZXR1cm4gUmVuYW1lVHlwZShz dG10KTsKIAogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CisJCWNhc2UgT0JKRUNUX0NFSzoK KwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2Ug T0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0VWRU5UX1RSSUdHRVI6CkBAIC02 MzksNiArNjQ5LDkgQEAgQWx0ZXJPYmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lkLCBP aWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJCQlicmVhazsKIAogCQljYXNlIE9DTEFTU19DQVNU OgorCQljYXNlIE9DTEFTU19DRUs6CisJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCWNhc2Ug T0NMQVNTX0NNSzoKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJY2FzZSBPQ0xBU1Nf REVGQVVMVDoKIAkJY2FzZSBPQ0xBU1NfTEFOR1VBR0U6CkBAIC04NzIsNiArODg1LDggQEAg RXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQogCiAJCQkvKiBHZW5l cmljIGNhc2VzICovCiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJ Y2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uYjRhODUxMDFjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbGVuY2NtZHMuYwpAQCAtMCwwICsxLDQyNiBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogY29sZW5jY21kcy5jCisgKgkgIGNvbHVtbi1lbmNyeXB0aW9uLXJl bGF0ZWQgY29tbWFuZHMgc3VwcG9ydCBjb2RlCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMv YmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1 cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9jYXRhbG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5j bHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNj ZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1h c3RlcmtleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9jb2xlbmNjbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5k cy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgImNvbW1vbi9j b2xlbmMuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wu aCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCisKK3N0YXRpYyB2b2lkCitwYXJzZV9jZWtfYXR0cmlidXRlcyhQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKmRlZmluaXRpb24sIE9pZCAqY21rb2lkX3AsIGludCAqYWxnX3As IGNoYXIgKiplbmN2YWxfcCkKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlEZWZFbGVtICAgICpj bWtFbCA9IE5VTEw7CisJRGVmRWxlbSAgICAqYWxnRWwgPSBOVUxMOworCURlZkVsZW0gICAg KmVuY3ZhbEVsID0gTlVMTDsKKwlPaWQJCQljbWtvaWQgPSBJbnZhbGlkT2lkOworCWludAkJ CWFsZyA9IDA7CisJY2hhcgkgICAqZW5jdmFsID0gTlVMTDsKKworCUFzc2VydChjbWtvaWRf cCk7CisKKwlmb3JlYWNoKGxjLCBkZWZpbml0aW9uKQorCXsKKwkJRGVmRWxlbSAgICAqZGVm ZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURlZkVsZW0gICAqKmRlZmVscDsK KworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29sdW1uX21hc3Rlcl9rZXkiKSA9 PSAwKQorCQkJZGVmZWxwID0gJmNta0VsOworCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRl Zm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJZGVmZWxwID0gJmFsZ0VsOworCQllbHNl IGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJlbmNyeXB0ZWRfdmFsdWUiKSA9PSAwKQor CQkJZGVmZWxwID0gJmVuY3ZhbEVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygi Y29sdW1uIGVuY3J5cHRpb24ga2V5IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQi LAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBOVUxM KQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZl bHAgPSBkZWZlbDsKKwl9CisKKwlpZiAoY21rRWwpCisJeworCQljaGFyCSAgICp2YWwgPSBk ZWZHZXRTdHJpbmcoY21rRWwpOworCisJCWNta29pZCA9IEdldFN5c0NhY2hlT2lkMShDTUtO QU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsIFBvaW50ZXJHZXREYXR1bSh2YWwpKTsK KwkJaWYgKCFjbWtvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygiY29sdW1uIG1hc3RlciBrZXkg XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgdmFsKSk7CisJfQorCWVsc2UKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1z ZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIsCisJCQkJCQkiY29sdW1u X21hc3Rlcl9rZXkiKSkpOworCisJaWYgKGFsZ0VsKQorCXsKKwkJY2hhcgkgICAqdmFsID0g ZGVmR2V0U3RyaW5nKGFsZ0VsKTsKKworCQlpZiAoIWFsZ19wKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNn KCJhdHRyaWJ1dGUgXCIlc1wiIG11c3Qgbm90IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJImFs Z29yaXRobSIpKSk7CisKKwkJYWxnID0gZ2V0X2Nta2FsZ19udW0odmFsKTsKKwkJaWYgKCFh bGcpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJtc2coInVucmVjb2duaXplZCBlbmNyeXB0aW9u IGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwl9CisJZWxzZQorCXsKKwkJaWYgKGFsZ19wKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11c3QgYmUgc3BlY2lmaWVkIiwK KwkJCQkJCQkiYWxnb3JpdGhtIikpKTsKKwl9CisKKwlpZiAoZW5jdmFsRWwpCisJeworCQlp ZiAoIWVuY3ZhbF9wKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11c3Qg bm90IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJImVuY3J5cHRlZF92YWx1ZSIpKSk7CisKKwkJ ZW5jdmFsID0gZGVmR2V0U3RyaW5nKGVuY3ZhbEVsKTsKKwl9CisJZWxzZQorCXsKKwkJaWYg KGVuY3ZhbF9wKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11c3QgYmUg c3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKwl9CisKKwkqY21r b2lkX3AgPSBjbWtvaWQ7CisJaWYgKGFsZ19wKQorCQkqYWxnX3AgPSBhbGc7CisJaWYgKGVu Y3ZhbF9wKQorCQkqZW5jdmFsX3AgPSBlbmN2YWw7Cit9CisKK3N0YXRpYyB2b2lkCitpbnNl cnRfY2VrZGF0YV9yZWNvcmQoT2lkIGNla29pZCwgT2lkIGNta29pZCwgaW50IGFsZywgY2hh ciAqZW5jdmFsKQoreworCU9pZAkJCWNla2RhdGFvaWQ7CisJUmVsYXRpb24JcmVsOworCURh dHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sZW5ja2V5ZGF0YV0gPSB7MH07CisJYm9vbAkJbnVs bHNbTmF0dHNfcGdfY29sZW5ja2V5ZGF0YV0gPSB7MH07CisJSGVhcFR1cGxlCXR1cDsKKwlP YmplY3RBZGRyZXNzIG15c2VsZjsKKwlPYmplY3RBZGRyZXNzIG90aGVyOworCisJcmVsID0g dGFibGVfb3BlbihDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9j ayk7CisKKwljZWtkYXRhb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgQ29sdW1uRW5j S2V5RGF0YU9pZEluZGV4SWQsIEFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQpOworCXZhbHVl c1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGNl a2RhdGFvaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY2VraWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNr ZXlkYXRhX2NrZGNta2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGNta29pZCk7CisJdmFs dWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWthbGcgLSAxXSA9IEludDMyR2V0RGF0 dW0oYWxnKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGVuY3ZhbCAtIDFd ID0gRGlyZWN0RnVuY3Rpb25DYWxsMShieXRlYWluLCBDU3RyaW5nR2V0RGF0dW0oZW5jdmFs KSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2 YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCWhlYXBf ZnJlZXR1cGxlKHR1cCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1uRW5j S2V5RGF0YVJlbGF0aW9uSWQsIGNla2RhdGFvaWQpOworCisJLyogZGVwZW5kZW5jeSBjZWtk YXRhIC0+IGNlayAqLworCU9iamVjdEFkZHJlc3NTZXQob3RoZXIsIENvbHVtbkVuY0tleVJl bGF0aW9uSWQsIGNla29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZvdGhl ciwgREVQRU5ERU5DWV9BVVRPKTsKKworCS8qIGRlcGVuZGVuY3kgY2VrZGF0YSAtPiBjbWsg Ki8KKwlPYmplY3RBZGRyZXNzU2V0KG90aGVyLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklk LCBjbWtvaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmb3RoZXIsIERFUEVO REVOQ1lfTk9STUFMKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKK30KKworT2Jq ZWN0QWRkcmVzcworQ3JlYXRlQ0VLKFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVmaW5lU3RtdCAq c3RtdCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVJlbGF0aW9uCXJlbDsKKwlPYmpl Y3RBZGRyZXNzIG15c2VsZjsKKwlPaWQJCQljZWtvaWQ7CisJTGlzdENlbGwgICAqbGM7CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xlbmNrZXldID0gezB9OworCWJvb2wJCW51bGxz W05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJSGVhcFR1cGxlCXR1cDsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVjayhEYXRhYmFzZVJlbGF0aW9uSWQsIE15RGF0YWJhc2VJ ZCwgR2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0RBVEFCQVNFLAor CQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKKworCXJlbCA9IHRh YmxlX29wZW4oQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwljZWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ0VLTkFNRSwgQW51bV9wZ19jb2xlbmNrZXlf b2lkLAorCQkJCQkJCSBDU3RyaW5nR2V0RGF0dW0oc3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5h bWVzKSkpKTsKKwlpZiAoT2lkSXNWYWxpZChjZWtvaWQpKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJIGVycm1zZygi Y29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQlz dHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpKTsKKworCWNla29pZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIENvbHVtbkVuY0tleU9pZEluZGV4SWQsIEFudW1fcGdfY29sZW5j a2V5X29pZCk7CisKKwlmb3JlYWNoIChsYywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCUxp c3QJICAgKmRlZmluaXRpb24gPSBsZmlyc3Rfbm9kZShMaXN0LCBsYyk7CisJCU9pZAkJCWNt a29pZCA9IDA7CisJCWludAkJCWFsZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCisJCXBhcnNl X2Nla19hdHRyaWJ1dGVzKHBzdGF0ZSwgZGVmaW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVu Y3ZhbCk7CisKKwkJLyogcGdfY29sZW5ja2V5ZGF0YSAqLworCQlpbnNlcnRfY2VrZGF0YV9y ZWNvcmQoY2Vrb2lkLCBjbWtvaWQsIGFsZywgZW5jdmFsKTsKKwl9CisKKwkvKiBwZ19jb2xl bmNrZXkgKi8KKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfb2lkIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5X2Nla25hbWUg LSAxXSA9CisJCURpcmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0o c3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xl bmNrZXlfY2Vrb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOwor CisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVz LCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0 dXBsZSh0dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbkVuY0tleVJl bGF0aW9uSWQsIGNla29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uRW5j S2V5UmVsYXRpb25JZCwgY2Vrb2lkLCBHZXRVc2VySWQoKSk7CisKKwl0YWJsZV9jbG9zZShy ZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2so Q29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7 Cit9CisKK09iamVjdEFkZHJlc3MKK0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQYXJzZVN0 YXRlICpwc3RhdGUsIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQpCit7CisJ T2lkCQkJY2Vrb2lkOworCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKworCWNla29pZCA9IGdl dF9jZWtfb2lkKHN0bXQtPmNla25hbWUsIGZhbHNlKTsKKworCWlmICghb2JqZWN0X293bmVy Y2hlY2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCBHZXRVc2VySWQoKSkpCisJ CWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNUX0NFSywgc3RtdC0+ Y2VrbmFtZSk7CisKKwlpZiAoc3RtdC0+aXNEcm9wKQorCXsKKwkJT2lkCQkJY21rb2lkID0g MDsKKwkJT2lkCQkJY2VrZGF0YW9pZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJcGFy c2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAmY21rb2lkLCBO VUxMLCBOVUxMKTsKKwkJY2VrZGF0YW9pZCA9IGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNt a29pZCwgZmFsc2UpOworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgQ29sdW1uRW5jS2V5RGF0 YVJlbGF0aW9uSWQsIGNla2RhdGFvaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJP UF9DQVNDQURFLCAwKTsKKwl9CisJZWxzZQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJ aW50CQkJYWxnOworCQljaGFyCSAgICplbmN2YWw7CisKKwkJcGFyc2VfY2VrX2F0dHJpYnV0 ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAmY21rb2lkLCAmYWxnLCAmZW5jdmFsKTsK KwkJaWYgKGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNta29pZCwgdHJ1ZSkpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJ CQkJCWVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBhbHJlYWR5IGhhcyBk YXRhIGZvciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQkgICBzdG10LT5jZWtuYW1lLCBn ZXRfY21rX25hbWUoY21rb2lkLCBmYWxzZSkpKTsKKwkJaW5zZXJ0X2Nla2RhdGFfcmVjb3Jk KGNla29pZCwgY21rb2lkLCBhbGcsIGVuY3ZhbCk7CisJfQorCisJSW52b2tlT2JqZWN0UG9z dEFsdGVySG9vayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIDApOworCU9iamVj dEFkZHJlc3NTZXQoYWRkcmVzcywgQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsK KworCXJldHVybiBhZGRyZXNzOworfQorCitPYmplY3RBZGRyZXNzCitDcmVhdGVDTUsoUGFy c2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KQoreworCUFjbFJlc3VsdAlhY2xy ZXN1bHQ7CisJUmVsYXRpb24JcmVsOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9pZAkJ CWNta29pZDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlEZWZFbGVtICAgICpyZWFsbUVsID0gTlVM TDsKKwljaGFyCSAgICpyZWFsbTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbG1hc3Rl cmtleV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfY29sbWFzdGVya2V5XSA9IHsw fTsKKwlIZWFwVHVwbGUJdHVwOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKERh dGFiYXNlUmVsYXRpb25JZCwgTXlEYXRhYmFzZUlkLCBHZXRVc2VySWQoKSwgQUNMX0NSRUFU RSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3Io YWNscmVzdWx0LCBPQkpFQ1RfREFUQUJBU0UsCisJCQkJCSAgIGdldF9kYXRhYmFzZV9uYW1l KE15RGF0YWJhc2VJZCkpOworCisJcmVsID0gdGFibGVfb3BlbihDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNta29pZCA9IEdldFN5c0NhY2hl T2lkMShDTUtOQU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsCisJCQkJCQkJIENTdHJp bmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCWlmIChPaWRJ c1ZhbGlkKGNta29pZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gbWFzdGVyIGtleSBc IiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJc3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5h bWVzKSkpKSk7CisKKwlmb3JlYWNoKGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsKKwkJRGVm RWxlbSAgICAqZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURlZkVsZW0g ICAqKmRlZmVscDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAicmVhbG0iKSA9 PSAwKQorCQkJZGVmZWxwID0gJnJlYWxtRWw7CisJCWVsc2UKKwkJeworCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJy bXNnKCJjb2x1bW4gbWFzdGVyIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5vdCByZWNvZ25pemVk IiwKKwkJCQkJCQlkZWZlbC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBkZWZlbC0+bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpkZWZlbHAgIT0gTlVM TCkKKwkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCQkqZGVm ZWxwID0gZGVmZWw7CisJfQorCisJaWYgKHJlYWxtRWwpCisJCXJlYWxtID0gZGVmR2V0U3Ry aW5nKHJlYWxtRWwpOworCWVsc2UKKwkJcmVhbG0gPSAiIjsKKworCWNta29pZCA9IEdldE5l d09pZFdpdGhJbmRleChyZWwsIENvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsIEFudW1fcGdf Y29sbWFzdGVya2V5X29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5X29pZCAt IDFdID0gT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1h c3RlcmtleV9jbWtuYW1lIC0gMV0gPQorCQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwg Q1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSk7CisJdmFs dWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta293bmVyIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKEdldFVzZXJJZCgpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rcmVh bG0gLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVhbG0pOworCisJdHVwID0gaGVhcF9m b3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0 YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJ cmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21r b2lkLCBHZXRVc2VySWQoKSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1u TWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93 RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhDb2x1bW5N YXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJcmV0dXJuIG15c2VsZjsKK30K KworT2JqZWN0QWRkcmVzcworQWx0ZXJDb2x1bW5NYXN0ZXJLZXkoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlckNvbHVtbk1hc3RlcktleVN0bXQgKnN0bXQpCit7CisJT2lkCQkJY21rb2lk OworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCUhlYXBUdXBsZQluZXd0dXA7 CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0g ICAgKnJlYWxtRWwgPSBOVUxMOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sbWFzdGVy a2V5XSA9IHswfTsKKwlib29sCQludWxsc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9 OworCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisKKwlj bWtvaWQgPSBnZXRfY21rX29pZChzdG10LT5jbWtuYW1lLCBmYWxzZSk7CisKKwlyZWwgPSB0 YWJsZV9vcGVuKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2sp OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShj bWtvaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLCBjbWtv aWQpOworCisJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlv bklkLCBjbWtvaWQsIEdldFVzZXJJZCgpKSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tf Tk9UX09XTkVSLCBPQkpFQ1RfQ01LLCBzdG10LT5jbWtuYW1lKTsKKworCWZvcmVhY2gobGMs IHN0bXQtPmRlZmluaXRpb24pCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxmaXJzdF9u b2RlKERlZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlmIChzdHJj bXAoZGVmZWwtPmRlZm5hbWUsICJyZWFsbSIpID09IDApCisJCQlkZWZlbHAgPSAmcmVhbG1F bDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IGF0 dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1l KSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikp KTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0Rl ZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAo cmVhbG1FbCkKKwl7CisJCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAt IDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShkZWZHZXRTdHJpbmcocmVhbG1FbCkpOworCQly ZXBsYWNlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0gdHJ1ZTsKKwl9 CisKKwluZXd0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3Io cmVsKSwgdmFsdWVzLCBudWxscywgcmVwbGFjZXMpOworCisJQ2F0YWxvZ1R1cGxlVXBkYXRl KHJlbCwgJnR1cC0+dF9zZWxmLCBuZXd0dXApOworCisJSW52b2tlT2JqZWN0UG9zdEFsdGVy SG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJT2JqZWN0 QWRkcmVzc1NldChhZGRyZXNzLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQp OworCisJaGVhcF9mcmVldHVwbGUobmV3dHVwKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gYWRk cmVzczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9jcmVhdGVhcy5jCmluZGV4IDE1MmMyOWI1NTEuLmJm MTMwNjY0OTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY3JlYXRlYXMuYwpAQCAtNTAsNiArNTAsNyBA QAogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3Jscy5oIgogI2lu Y2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgog CiB0eXBlZGVmIHN0cnVjdAogewpAQCAtMjA1LDYgKzIwNiwyNiBAQCBjcmVhdGVfY3Rhc19u b2RhdGEoTGlzdCAqdGxpc3QsIEludG9DbGF1c2UgKmludG8pCiAJCQkJCQkJCWZvcm1hdF90 eXBlX2JlKGNvbC0+dHlwZU5hbWUtPnR5cGVPaWQpKSwKIAkJCQkJCSBlcnJoaW50KCJVc2Ug dGhlIENPTExBVEUgY2xhdXNlIHRvIHNldCB0aGUgY29sbGF0aW9uIGV4cGxpY2l0bHkuIikp KTsKIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKGV4cHJUeXBlKChOb2RlICopIHRsZS0+ ZXhwcikpKQorCQkJeworCQkJCUhlYXBUdXBsZQl0cDsKKwkJCQlGb3JtX3BnX2F0dHJpYnV0 ZSBvcmlnX2F0dDsKKworCQkJCWlmICghdGxlLT5yZXNvcmlndGJsIHx8ICF0bGUtPnJlc29y aWdjb2wpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJDT0RFX0lO VkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCWVycm1zZygidW5kZXJseWluZyB0 YWJsZSBhbmQgY29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGZvciBlbmNyeXB0ZWQg dGFibGUgY29sdW1uIikpOworCisJCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBP YmplY3RJZEdldERhdHVtKHRsZS0+cmVzb3JpZ3RibCksIEludDE2R2V0RGF0dW0odGxlLT5y ZXNvcmlnY29sKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxh dGlvbiAldSIsIHRsZS0+cmVzb3JpZ2NvbCwgdGxlLT5yZXNvcmlndGJsKTsKKwkJCQlvcmln X2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCQljb2wtPnR5 cGVOYW1lID0gbWFrZVR5cGVOYW1lRnJvbU9pZChvcmlnX2F0dC0+YXR0cmVhbHR5cGlkLAor CQkJCQkJCQkJCQkJCW9yaWdfYXR0LT5hdHR0eXBtb2QpOworCQkJCWNvbC0+ZW5jcnlwdGlv biA9IG1ha2VDb2x1bW5FbmNyeXB0aW9uKG9yaWdfYXR0KTsKKwkJCQlSZWxlYXNlU3lzQ2Fj aGUodHApOworCQkJfQorCiAJCQlhdHRyTGlzdCA9IGxhcHBlbmQoYXR0ckxpc3QsIGNvbCk7 CiAJCX0KIAl9CkBAIC01MTQsNiArNTM1LDE3IEBAIGludG9yZWxfc3RhcnR1cChEZXN0UmVj ZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKIAkJCQkJ CQlmb3JtYXRfdHlwZV9iZShjb2wtPnR5cGVOYW1lLT50eXBlT2lkKSksCiAJCQkJCSBlcnJo aW50KCJVc2UgdGhlIENPTExBVEUgY2xhdXNlIHRvIHNldCB0aGUgY29sbGF0aW9uIGV4cGxp Y2l0bHkuIikpKTsKIAorCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQoYXR0cmlidXRlLT5hdHR0 eXBpZCkpCisJCXsKKwkJCS8qCisJCQkgKiBXZSBkb24ndCBoYXZlIHRoZSByZXF1aXJlZCBp bmZvcm1hdGlvbiBhdmFpbGFibGUgaGVyZSwgc28KKwkJCSAqIHByZXZlbnQgaXQgZm9yIG5v dy4KKwkJCSAqLworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJlbmNyeXB0ZWQgY29sdW1u cyBub3QgeWV0IGltcGxlbWVudGVkIGZvciB0aGlzIGNvbW1hbmQiKSkpOworCQl9CisKIAkJ YXR0ckxpc3QgPSBsYXBwZW5kKGF0dHJMaXN0LCBjb2wpOwogCX0KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2Ryb3BjbWRzLmMKaW5kZXggZGI5MDZmNTMwZS4uY2NiMzY5YjFhZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jCkBAIC0yNzYsNiArMjc2LDE0IEBAIGRvZXNfbm90X2V4aXN0X3Nr aXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJCW5hbWUgPSBO YW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOwogCQkJfQogCQkJYnJl YWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCW1zZyA9IGdldHRleHRfbm9vcCgiY29sdW1u IGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJ CW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKKwkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6 CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKKwkJ CWJyZWFrOwogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQkJaWYgKCFzY2hlbWFfZG9l c19ub3RfZXhpc3Rfc2tpcHBpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgJm1zZywgJm5h bWUpKQogCQkJewpAQCAtNTAzLDYgKzUxMSw3IEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5n KE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQljYXNlIE9CSkVDVF9BTU9Q OgogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKKwkJ Y2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJY2FzZSBP QkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGEzYmRjNWRiMDcuLmMxMDczMmE1NmUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEs OSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUp CiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQlj YXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NF S0RBVEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQlj YXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0x MDI3LDYgKzEwMzAsOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVj dENsYXNzIG9iamNsYXNzKQogCQljYXNlIE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19D QVNUOgogCQljYXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJ Y2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFT U19DT05TVFJBSU5UOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFT U19ERUZBVUxUOgpAQCAtMjA1Niw2ICsyMDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5 cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2Ug T0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNh c2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2Fz ZSBPQkpFQ1RfREVGQVVMVDoKQEAgLTIxMzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVm cHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJP QzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQlj YXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNU X0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJT SU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZAppbmRleCA4Njc5MTFjMGQzLi44MWYxOTQyMDA0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNv bi5idWlsZApAQCAtNyw2ICs3LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAn YW5hbHl6ZS5jJywKICAgJ2FzeW5jLmMnLAogICAnY2x1c3Rlci5jJywKKyAgJ2NvbGVuY2Nt ZHMuYycsCiAgICdjb2xsYXRpb25jbWRzLmMnLAogICAnY29tbWVudC5jJywKICAgJ2NvbnN0 cmFpbnQuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA3YWUxOWI5OGJiLi4w N2FkNjQ2YTUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTY2LDYgKzY2LDkg QEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQlj YXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBP QkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DRUtEQVRB OgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2Fz ZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNGJlYTdiM2M5MC4uZjhlODE0MWU0OSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZXBlbmQu aCIKQEAgLTYxLDYgKzYyLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdHlwZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy91c2Vy LmgiCisjaW5jbHVkZSAiY29tbW9uL2NvbGVuYy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4 ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNsdWRlICJmb3Jl aWduL2ZvcmVpZ24uaCIKQEAgLTYzNyw2ICs2MzksNyBAQCBzdGF0aWMgTGlzdCAqR2V0UGFy ZW50ZWRGb3JlaWduS2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQg QVREZXRhY2hDaGVja05vRm9yZWlnbktleVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0 YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKE9pZCBhdHR0eXBpZCwgY2hhciAq Y29tcHJlc3Npb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0 dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2RlKTsKK3N0YXRpYyB2b2lkIEdldENvbHVt bkVuY3J5cHRpb24oY29uc3QgTGlzdCAqY29sZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRy aWJ1dGUgYXR0cik7CiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTM2LDYgKzkzOSw5IEBAIERl ZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVy SWQsCiAJCQlhdHRyLT5hdHRjb21wcmVzc2lvbiA9IEdldEF0dHJpYnV0ZUNvbXByZXNzaW9u KGF0dHItPmF0dHR5cGlkLAogCQkJCQkJCQkJCQkJCQkgICBjb2xEZWYtPmNvbXByZXNzaW9u KTsKIAorCQlpZiAoY29sRGVmLT5lbmNyeXB0aW9uKQorCQkJR2V0Q29sdW1uRW5jcnlwdGlv bihjb2xEZWYtPmVuY3J5cHRpb24sIGF0dHIpOworCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2Vf bmFtZSkKIAkJCWF0dHItPmF0dHN0b3JhZ2UgPSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHIt PmF0dHR5cGlkLCBjb2xEZWYtPnN0b3JhZ2VfbmFtZSk7CiAJfQpAQCAtMjYzNyw2ICsyNjQz LDEyIEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpzY2hlbWEsIExpc3QgKnN1cGVycywgY2hh ciByZWxwZXJzaXN0ZW5jZSwKIAkJCQlkZWYtPmNvbG5hbWUgPSBwc3RyZHVwKGF0dHJpYnV0 ZU5hbWUpOwogCQkJCWRlZi0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWVGcm9tT2lkKGF0dHJp YnV0ZS0+YXR0dHlwaWQsCiAJCQkJCQkJCQkJCQkJYXR0cmlidXRlLT5hdHR0eXBtb2QpOwor CQkJCWlmICh0eXBlX2lzX2VuY3J5cHRlZChhdHRyaWJ1dGUtPmF0dHR5cGlkKSkKKwkJCQl7 CisJCQkJCWRlZi0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWVGcm9tT2lkKGF0dHJpYnV0ZS0+ YXR0cmVhbHR5cGlkLAorCQkJCQkJCQkJCQkJCQlhdHRyaWJ1dGUtPmF0dHR5cG1vZCk7CisJ CQkJCWRlZi0+ZW5jcnlwdGlvbiA9IG1ha2VDb2x1bW5FbmNyeXB0aW9uKGF0dHJpYnV0ZSk7 CisJCQkJfQogCQkJCWRlZi0+aW5oY291bnQgPSAxOwogCQkJCWRlZi0+aXNfbG9jYWwgPSBm YWxzZTsKIAkJCQlkZWYtPmlzX25vdF9udWxsID0gYXR0cmlidXRlLT5hdHRub3RudWxsOwpA QCAtNjgzMCw2ICs2ODQyLDE0IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBB bHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlhdHRyaWJ1dGUuYXR0aXNs b2NhbCA9IGNvbERlZi0+aXNfbG9jYWw7CiAJYXR0cmlidXRlLmF0dGluaGNvdW50ID0gY29s RGVmLT5pbmhjb3VudDsKIAlhdHRyaWJ1dGUuYXR0Y29sbGF0aW9uID0gY29sbE9pZDsKKwlp ZiAoY29sRGVmLT5lbmNyeXB0aW9uKQorCQlHZXRDb2x1bW5FbmNyeXB0aW9uKGNvbERlZi0+ ZW5jcnlwdGlvbiwgJmF0dHJpYnV0ZSk7CisJZWxzZQorCXsKKwkJYXR0cmlidXRlLmF0dGNl ayA9IDA7CisJCWF0dHJpYnV0ZS5hdHRyZWFsdHlwaWQgPSAwOworCQlhdHRyaWJ1dGUuYXR0 ZW5jYWxnID0gMDsKKwl9CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHlwZVR1cGxlKTsKIApAQCAt MTI2NjEsNiArMTI2ODEsOSBAQCBBVEV4ZWNBbHRlckNvbHVtblR5cGUoQWx0ZXJlZFRhYmxl SW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQljYXNlIE9DTEFTU19UWVBFOgogCQkJY2Fz ZSBPQ0xBU1NfQ0FTVDoKIAkJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoKKwkJCWNhc2UgT0NM QVNTX0NFSzoKKwkJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCQljYXNlIE9DTEFTU19DTUs6 CiAJCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQkJY2FzZSBPQ0xBU1NfTEFOR1VBR0U6 CiAJCQljYXNlIE9DTEFTU19MQVJHRU9CSkVDVDoKQEAgLTE5MzAwLDMgKzE5MzIzLDk2IEBA IEdldEF0dHJpYnV0ZVN0b3JhZ2UoT2lkIGF0dHR5cGlkLCBjb25zdCBjaGFyICpzdG9yYWdl bW9kZSkKIAogCXJldHVybiBjc3RvcmFnZTsKIH0KKworLyoKKyAqIHJlc29sdmUgY29sdW1u IGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbgorICovCitzdGF0aWMgdm9pZAorR2V0Q29sdW1u RW5jcnlwdGlvbihjb25zdCBMaXN0ICpjb2xkZWZlbmNyeXB0aW9uLCBGb3JtX3BnX2F0dHJp YnV0ZSBhdHRyKQoreworCUxpc3RDZWxsICAgKmxjOworCWNoYXIJICAgKmNlayA9IE5VTEw7 CisJT2lkCQkJY2Vrb2lkOworCWJvb2wJCWVuY2RldCA9IGZhbHNlOworCWludAkJCWFsZyA9 IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjsKKworCWZvcmVhY2gobGMs IGNvbGRlZmVuY3J5cHRpb24pCisJeworCQlEZWZFbGVtICAgICplbCA9IGxmaXJzdF9ub2Rl KERlZkVsZW0sIGxjKTsKKworCQlpZiAoc3RyY21wKGVsLT5kZWZuYW1lLCAiY29sdW1uX2Vu Y3J5cHRpb25fa2V5IikgPT0gMCkKKwkJCWNlayA9IHN0clZhbChsaW5pdGlhbChjYXN0Tm9k ZShUeXBlTmFtZSwgZWwtPmFyZyktPm5hbWVzKSk7CisJCWVsc2UgaWYgKHN0cmNtcChlbC0+ ZGVmbmFtZSwgImVuY3J5cHRpb25fdHlwZSIpID09IDApCisJCXsKKwkJCWNoYXIJICAgKnZh bCA9IHN0clZhbChsaW5pdGlhbChjYXN0Tm9kZShUeXBlTmFtZSwgZWwtPmFyZyktPm5hbWVz KSk7CisKKwkJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJtaW5pc3RpYyIpID09IDApCisJCQkJ ZW5jZGV0ID0gdHJ1ZTsKKwkJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJyYW5kb21pemVkIikg PT0gMCkKKwkJCQllbmNkZXQgPSBmYWxzZTsKKwkJCWVsc2UKKwkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJ CQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gdHlwZTogJXMiLCB2YWwpKTsK KwkJfQorCQllbHNlIGlmIChzdHJjbXAoZWwtPmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAw KQorCQl7CisJCQljaGFyCSAgICp2YWwgPSBzdHJWYWwoZWwtPmFyZyk7CisKKwkJCWFsZyA9 IGdldF9jZWthbGdfbnVtKHZhbCk7CisKKwkJCWlmICghYWxnKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAor CQkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06ICVzIiwg dmFsKSk7CisJCX0KKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJZXJybXNnKCJ1bnJlY29n bml6ZWQgY29sdW1uIGVuY3J5cHRpb24gcGFyYW1ldGVyOiAlcyIsIGVsLT5kZWZuYW1lKSk7 CisJfQorCisJaWYgKCFjZWspCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfQ09MVU1OX0RFRklOSVRJT04pLAorCQkJCWVycm1zZygiY29sdW1uIGVu Y3J5cHRpb24ga2V5IG11c3QgYmUgc3BlY2lmaWVkIikpOworCisJY2Vrb2lkID0gR2V0U3lz Q2FjaGVPaWQxKENFS05BTUUsIEFudW1fcGdfY29sZW5ja2V5X29pZCwgUG9pbnRlckdldERh dHVtKGNlaykpOworCWlmICghY2Vrb2lkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coImNvbHVtbiBlbmNy eXB0aW9uIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjZWspKTsKKworCWF0dHItPmF0 dGNlayA9IGNla29pZDsKKwlhdHRyLT5hdHRyZWFsdHlwaWQgPSBhdHRyLT5hdHR0eXBpZDsK KwlhdHRyLT5hdHRlbmNhbGcgPSBhbGc7CisKKwkvKiBvdmVycmlkZSBwaHlzaWNhbCB0eXBl ICovCisJaWYgKGVuY2RldCkKKwkJYXR0ci0+YXR0dHlwaWQgPSBQR19FTkNSWVBURURfREVU T0lEOworCWVsc2UKKwkJYXR0ci0+YXR0dHlwaWQgPSBQR19FTkNSWVBURURfUk5ET0lEOwor CWdldF90eXBsZW5ieXZhbGFsaWduKGF0dHItPmF0dHR5cGlkLAorCQkJCQkJICZhdHRyLT5h dHRsZW4sICZhdHRyLT5hdHRieXZhbCwgJmF0dHItPmF0dGFsaWduKTsKKwlhdHRyLT5hdHRz dG9yYWdlID0gZ2V0X3R5cHN0b3JhZ2UoYXR0ci0+YXR0dHlwaWQpOworCWF0dHItPmF0dGNv bGxhdGlvbiA9IEludmFsaWRPaWQ7Cit9CisKKy8qCisgKiBDb25zdHJ1Y3QgaW5wdXQgdG8g R2V0Q29sdW1uRW5jcnlwdGlvbigpLCBmb3Igc3ludGhlc2l6aW5nIGEgY29sdW1uCisgKiBk ZWZpbml0aW9uLgorICovCitMaXN0ICoKK21ha2VDb2x1bW5FbmNyeXB0aW9uKGNvbnN0IEZv cm1EYXRhX3BnX2F0dHJpYnV0ZSAqYXR0cikKK3sKKwlyZXR1cm4gbGlzdF9tYWtlMyhtYWtl RGVmRWxlbSgiY29sdW1uX2VuY3J5cHRpb25fa2V5IiwKKwkJCQkJCQkJICAoTm9kZSAqKSBt YWtlVHlwZU5hbWUoZ2V0X2Nla19uYW1lKGF0dHItPmF0dGNlaywgZmFsc2UpKSwKKwkJCQkJ CQkJICAtMSksCisJCQkJCSAgbWFrZURlZkVsZW0oImVuY3J5cHRpb25fdHlwZSIsCisJCQkJ CQkJCSAgKE5vZGUgKikgbWFrZVR5cGVOYW1lKGF0dHItPmF0dHR5cGlkID09IFBHX0VOQ1JZ UFRFRF9ERVRPSUQgPworCQkJCQkJCQkJCQkJCQkiZGV0ZXJtaW5pc3RpYyIgOiAicmFuZG9t aXplZCIpLAorCQkJCQkJCQkgIC0xKSwKKwkJCQkJICBtYWtlRGVmRWxlbSgiYWxnb3JpdGht IiwKKwkJCQkJCQkJICAoTm9kZSAqKSBtYWtlU3RyaW5nKHBzdHJkdXAoZ2V0X2Nla2FsZ19u YW1lKGF0dHItPmF0dGVuY2FsZykpKSwKKwkJCQkJCQkJICAtMSkpOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhcmlhYmxlLmMKaW5kZXggMDBkOGQ1NGQ4Mi4uYzY3NDk3MjU3YiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy92YXJpYWJsZS5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiYWNjZXNz L3hsb2dwcmVmZXRjaGVyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNp bmNsdWRlICJjb21tb24vc3RyaW5nLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIK ICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgpAQCAtNzA2LDcgKzcwNywxMSBAQCBj aGVja19jbGllbnRfZW5jb2RpbmcoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNT b3VyY2Ugc291cmNlKQogCSAqLwogCWlmIChQcmVwYXJlQ2xpZW50RW5jb2RpbmcoZW5jb2Rp bmcpIDwgMCkKIAl7Ci0JCWlmIChJc1RyYW5zYWN0aW9uU3RhdGUoKSkKKwkJaWYgKE15UHJv Y1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCQlHVUNfY2hlY2tfZXJyZGV0 YWlsKCJDb252ZXJzaW9uIGJldHdlZW4gJXMgYW5kICVzIGlzIG5vdCBwb3NzaWJsZSB3aGVu IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuIiwKKwkJCQkJCQkJY2Fub25pY2FsX25h bWUsCisJCQkJCQkJCUdldERhdGFiYXNlRW5jb2RpbmdOYW1lKCkpOworCQllbHNlIGlmIChJ c1RyYW5zYWN0aW9uU3RhdGUoKSkKIAkJewogCQkJLyogTXVzdCBiZSBhIGdlbnVpbmUgbm8t c3VjaC1jb252ZXJzaW9uIHByb2JsZW0gKi8KIAkJCUdVQ19jaGVja19lcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwppbmRleCA4ZTNj MWVmYWU0Li44MTA2MzQxM2NmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 aWV3LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCkBAIC04OCw2ICs4OCwy NiBAQCBEZWZpbmVWaXJ0dWFsUmVsYXRpb24oUmFuZ2VWYXIgKnJlbGF0aW9uLCBMaXN0ICp0 bGlzdCwgYm9vbCByZXBsYWNlLAogCQkJZWxzZQogCQkJCUFzc2VydCghT2lkSXNWYWxpZChk ZWYtPmNvbGxPaWQpKTsKIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKGV4cHJUeXBlKChO b2RlICopIHRsZS0+ZXhwcikpKQorCQkJeworCQkJCUhlYXBUdXBsZQl0cDsKKwkJCQlGb3Jt X3BnX2F0dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJCWlmICghdGxlLT5yZXNvcmlndGJsIHx8 ICF0bGUtPnJlc29yaWdjb2wpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCWVycm1zZygi dW5kZXJseWluZyB0YWJsZSBhbmQgY29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGZv ciBlbmNyeXB0ZWQgdmlldyBjb2x1bW4iKSk7CisKKwkJCQl0cCA9IFNlYXJjaFN5c0NhY2hl MihBVFROVU0sIE9iamVjdElkR2V0RGF0dW0odGxlLT5yZXNvcmlndGJsKSwgSW50MTZHZXRE YXR1bSh0bGUtPnJlc29yaWdjb2wpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHAp KQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRl ICVkIG9mIHJlbGF0aW9uICV1IiwgdGxlLT5yZXNvcmlnY29sLCB0bGUtPnJlc29yaWd0Ymwp OworCQkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHApOwor CQkJCWRlZi0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWVGcm9tT2lkKG9yaWdfYXR0LT5hdHRy ZWFsdHlwaWQsCisJCQkJCQkJCQkJCQkJb3JpZ19hdHQtPmF0dHR5cG1vZCk7CisJCQkJZGVm LT5lbmNyeXB0aW9uID0gbWFrZUNvbHVtbkVuY3J5cHRpb24ob3JpZ19hdHQpOworCQkJCVJl bGVhc2VTeXNDYWNoZSh0cCk7CisJCQl9CisKIAkJCWF0dHJMaXN0ID0gbGFwcGVuZChhdHRy TGlzdCwgZGVmKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggYWY4NjIw Y2ViNy4uMTQwYTE0YjdhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTM5ODIsNiAr Mzk4Miw4IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwK IAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsoY29sZGVmLT5jb21wcmVzc2lvbikp CiAJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKGNvbGRlZi0+ZW5jcnlwdGlvbikp CisJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChXQUxLKGNvbGRlZi0+cmF3X2RlZmF1bHQp KQogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhjb2xkZWYtPmNvbGxDbGF1c2Up KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggNjNiNGJhYWVkOS4uZGY1MDY4YTBkOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC0yODAsNiArMjgwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAogJXR5cGUgPG5vZGU+CXN0bXQgdG9wbGV2ZWxfc3RtdCBzY2hlbWFfc3RtdCByb3V0aW5l X2JvZHlfc3RtdAogCQlBbHRlckV2ZW50VHJpZ1N0bXQgQWx0ZXJDb2xsYXRpb25TdG10CisJ CUFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10 CiAJCUFsdGVyRGF0YWJhc2VTdG10IEFsdGVyRGF0YWJhc2VTZXRTdG10IEFsdGVyRG9tYWlu U3RtdCBBbHRlckVudW1TdG10CiAJCUFsdGVyRmR3U3RtdCBBbHRlckZvcmVpZ25TZXJ2ZXJT dG10IEFsdGVyR3JvdXBTdG10CiAJCUFsdGVyT2JqZWN0RGVwZW5kc1N0bXQgQWx0ZXJPYmpl Y3RTY2hlbWFTdG10IEFsdGVyT3duZXJTdG10CkBAIC00MTksNiArNDIwLDcgQEAgc3RhdGlj IE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogJXR5cGUgPGxpc3Q+CXBhcnNlX3RvcGxldmVsIHN0 bXRtdWx0aSByb3V0aW5lX2JvZHlfc3RtdF9saXN0CiAJCQkJT3B0VGFibGVFbGVtZW50TGlz dCBUYWJsZUVsZW1lbnRMaXN0IE9wdEluaGVyaXQgZGVmaW5pdGlvbgorCQkJCWxpc3Rfb2Zf ZGVmaW5pdGlvbnMKIAkJCQlPcHRUeXBlZFRhYmxlRWxlbWVudExpc3QgVHlwZWRUYWJsZUVs ZW1lbnRMaXN0CiAJCQkJcmVsb3B0aW9ucyBvcHRfcmVsb3B0aW9ucwogCQkJCU9wdFdpdGgg b3B0X2RlZmluaXRpb24gZnVuY19hcmdzIGZ1bmNfYXJnc19saXN0CkBAIC01OTIsNiArNTk0 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglUYWJsZUNv bnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlCiAldHlwZSA8aXZhbD4JVGFibGVMaWtlT3B0aW9u TGlzdCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29tcHJlc3Npb24g b3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX3N0b3Jh Z2UKKyV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2VuY3J5cHRpb24KICV0eXBlIDxsaXN0PglD b2xRdWFsTGlzdAogJXR5cGUgPG5vZGU+CUNvbENvbnN0cmFpbnQgQ29sQ29uc3RyYWludEVs ZW0gQ29uc3RyYWludEF0dHIKICV0eXBlIDxpdmFsPglrZXlfbWF0Y2gKQEAgLTY5MCw4ICs2 OTMsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCURFVEFDSCBESUNUSU9OQVJZ IERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNUIERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKIAlE T1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0UgRU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVEVE IEVORF9QIEVOVU1fUCBFU0NBUEUgRVZFTlQgRVhDRVBUCi0JRVhDTFVERSBFWENMVURJTkcg RVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExBSU4gRVhQUkVTU0lPTgorCUVBQ0ggRUxT RSBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBUSU9OIEVOQ1JZUFRFRCBFTkRfUCBFTlVNX1Ag RVNDQVBFCisJRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVESU5HIEVYQ0xVU0lWRSBFWEVD VVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04KIAlFWFRFTlNJT04gRVhURVJOQUwgRVhU UkFDVAogCiAJRkFMU0VfUCBGQU1JTFkgRkVUQ0ggRklMVEVSIEZJTkFMSVpFIEZJUlNUX1Ag RkxPQVRfUCBGT0xMT1dJTkcgRk9SCkBAIC03MTQsNyArNzE3LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJ S0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAg TE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAotCU1BUFBJTkcgTUFUQ0ggTUFUQ0hF RCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVUSE9ECisJTUFQUElORyBNQVNURVIg TUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVUSE9ECiAJTUlO VVRFX1AgTUlOVkFMVUUgTU9ERSBNT05USF9QIE1PVkUKIAogCU5BTUVfUCBOQU1FUyBOQVRJ T05BTCBOQVRVUkFMIE5DSEFSIE5FVyBORVhUIE5GQyBORkQgTkZLQyBORktEIE5PIE5PTkUK QEAgLTk0Miw2ICs5NDUsOCBAQCB0b3BsZXZlbF9zdG10Ogogc3RtdDoKIAkJCUFsdGVyRXZl bnRUcmlnU3RtdAogCQkJfCBBbHRlckNvbGxhdGlvblN0bXQKKwkJCXwgQWx0ZXJDb2x1bW5F bmNyeXB0aW9uS2V5U3RtdAorCQkJfCBBbHRlckNvbHVtbk1hc3RlcktleVN0bXQKIAkJCXwg QWx0ZXJEYXRhYmFzZVN0bXQKIAkJCXwgQWx0ZXJEYXRhYmFzZVNldFN0bXQKIAkJCXwgQWx0 ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQKQEAgLTM3MDAsMTQgKzM3MDUsMTUgQEAgVHlwZWRU YWJsZUVsZW1lbnQ6CiAJCQl8IFRhYmxlQ29uc3RyYWludAkJCQkJeyAkJCA9ICQxOyB9CiAJ CTsKIAotY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX3N0b3JhZ2Ugb3B0 X2NvbHVtbl9jb21wcmVzc2lvbiBjcmVhdGVfZ2VuZXJpY19vcHRpb25zIENvbFF1YWxMaXN0 Citjb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1lIG9wdF9jb2x1bW5fZW5jcnlwdGlvbiBvcHRf Y29sdW1uX3N0b3JhZ2Ugb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjcmVhdGVfZ2VuZXJpY19v cHRpb25zIENvbFF1YWxMaXN0CiAJCQkJewogCQkJCQlDb2x1bW5EZWYgKm4gPSBtYWtlTm9k ZShDb2x1bW5EZWYpOwogCiAJCQkJCW4tPmNvbG5hbWUgPSAkMTsKIAkJCQkJbi0+dHlwZU5h bWUgPSAkMjsKLQkJCQkJbi0+c3RvcmFnZV9uYW1lID0gJDM7Ci0JCQkJCW4tPmNvbXByZXNz aW9uID0gJDQ7CisJCQkJCW4tPmVuY3J5cHRpb24gPSAkMzsKKwkJCQkJbi0+c3RvcmFnZV9u YW1lID0gJDQ7CisJCQkJCW4tPmNvbXByZXNzaW9uID0gJDU7CiAJCQkJCW4tPmluaGNvdW50 ID0gMDsKIAkJCQkJbi0+aXNfbG9jYWwgPSB0cnVlOwogCQkJCQluLT5pc19ub3RfbnVsbCA9 IGZhbHNlOwpAQCAtMzcxNiw4ICszNzIyLDggQEAgY29sdW1uRGVmOglDb2xJZCBUeXBlbmFt ZSBvcHRfY29sdW1uX3N0b3JhZ2Ugb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjcmVhdGVfZ2Vu ZXIKIAkJCQkJbi0+cmF3X2RlZmF1bHQgPSBOVUxMOwogCQkJCQluLT5jb29rZWRfZGVmYXVs dCA9IE5VTEw7CiAJCQkJCW4tPmNvbGxPaWQgPSBJbnZhbGlkT2lkOwotCQkJCQluLT5mZHdv cHRpb25zID0gJDU7Ci0JCQkJCVNwbGl0Q29sUXVhbExpc3QoJDYsICZuLT5jb25zdHJhaW50 cywgJm4tPmNvbGxDbGF1c2UsCisJCQkJCW4tPmZkd29wdGlvbnMgPSAkNjsKKwkJCQkJU3Bs aXRDb2xRdWFsTGlzdCgkNywgJm4tPmNvbnN0cmFpbnRzLCAmbi0+Y29sbENsYXVzZSwKIAkJ CQkJCQkJCSB5eXNjYW5uZXIpOwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9 IChOb2RlICopIG47CkBAIC0zNzc0LDYgKzM3ODAsMTEgQEAgb3B0X2NvbHVtbl9jb21wcmVz c2lvbjoKIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQogCQk7CiAKK29w dF9jb2x1bW5fZW5jcnlwdGlvbjoKKwkJCUVOQ1JZUFRFRCBXSVRIICcoJyBkZWZfbGlzdCAn KScJCQl7ICQkID0gJDQ7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsg fQorCQk7CisKIGNvbHVtbl9zdG9yYWdlOgogCQkJU1RPUkFHRSBDb2xJZAkJCQkJCQl7ICQk ID0gJDI7IH0KIAkJCXwgU1RPUkFHRSBERUZBVUxUCQkJCQkJeyAkJCA9IHBzdHJkdXAoImRl ZmF1bHQiKTsgfQpAQCAtNDAzNCw2ICs0MDQ1LDcgQEAgVGFibGVMaWtlT3B0aW9uOgogCQkJ CXwgQ09NUFJFU1NJT04JCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9DT01QUkVTU0lPTjsg fQogCQkJCXwgQ09OU1RSQUlOVFMJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9DT05TVFJB SU5UUzsgfQogCQkJCXwgREVGQVVMVFMJCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfREVG QVVMVFM7IH0KKwkJCQl8IEVOQ1JZUFRFRAkJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9F TkNSWVBURUQ7IH0KIAkJCQl8IElERU5USVRZX1AJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElL RV9JREVOVElUWTsgfQogCQkJCXwgR0VORVJBVEVECQkJeyAkJCA9IENSRUFURV9UQUJMRV9M SUtFX0dFTkVSQVRFRDsgfQogCQkJCXwgSU5ERVhFUwkJCXsgJCQgPSBDUkVBVEVfVEFCTEVf TElLRV9JTkRFWEVTOyB9CkBAIC02MjcwLDYgKzYyODIsMzMgQEAgRGVmaW5lU3RtdDoKIAkJ CQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IENSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgV0lUSCBW QUxVRVMgbGlzdF9vZl9kZWZpbml0aW9ucworCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9 IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ0VLOwor CQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJ CSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBDT0xVTU4gTUFTVEVSIEtF WSBhbnlfbmFtZQorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmlu ZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ01LOworCQkJCQluLT5kZWZuYW1l cyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gTklMOworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQorCQkJfCBDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgYW55X25hbWUgV0lU SCBkZWZpbml0aW9uCisJCQkJeworCQkJCQlEZWZpbmVTdG10ICpuID0gbWFrZU5vZGUoRGVm aW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPmRlZm5h bWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAkNzsKKwkJCQkJJCQgPSAoTm9kZSAq KSBuOworCQkJCX0KIAkJOwogCiBkZWZpbml0aW9uOiAnKCcgZGVmX2xpc3QgJyknCQkJCQkJ eyAkJCA9ICQyOyB9CkBAIC02Mjg5LDYgKzYzMjgsMTAgQEAgZGVmX2VsZW06CUNvbExhYmVs ICc9JyBkZWZfYXJnCiAJCQkJfQogCQk7CiAKK2xpc3Rfb2ZfZGVmaW5pdGlvbnM6IGRlZmlu aXRpb24JCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgbGlzdF9vZl9kZWZp bml0aW9ucyAnLCcgZGVmaW5pdGlvbgl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJCTsK KwogLyogTm90ZTogYW55IHNpbXBsZSBpZGVudGlmaWVyIHdpbGwgYmUgcmV0dXJuZWQgYXMg YSB0eXBlIG5hbWUhICovCiBkZWZfYXJnOglmdW5jX3R5cGUJCQkJCQl7ICQkID0gKE5vZGUg KikgJDE7IH0KIAkJCXwgcmVzZXJ2ZWRfa2V5d29yZAkJCQl7ICQkID0gKE5vZGUgKikgbWFr ZVN0cmluZyhwc3RyZHVwKCQxKSk7IH0KQEAgLTY4MjQsNiArNjg2Nyw4IEBAIG9iamVjdF90 eXBlX25hbWU6CiAKIGRyb3BfdHlwZV9uYW1lOgogCQkJQUNDRVNTIE1FVEhPRAkJCQkJCQl7 ICQkID0gT0JKRUNUX0FDQ0VTU19NRVRIT0Q7IH0KKwkJCXwgQ09MVU1OIEVOQ1JZUFRJT04g S0VZCQkJCQl7ICQkID0gT0JKRUNUX0NFSzsgfQorCQkJfCBDT0xVTU4gTUFTVEVSIEtFWQkJ CQkJCXsgJCQgPSBPQkpFQ1RfQ01LOyB9CiAJCQl8IEVWRU5UIFRSSUdHRVIJCQkJCQkJeyAk JCA9IE9CSkVDVF9FVkVOVF9UUklHR0VSOyB9CiAJCQl8IEVYVEVOU0lPTgkJCQkJCQkJeyAk JCA9IE9CSkVDVF9FWFRFTlNJT047IH0KIAkJCXwgRk9SRUlHTiBEQVRBX1AgV1JBUFBFUgkJ CQl7ICQkID0gT0JKRUNUX0ZEVzsgfQpAQCAtOTE0MCw2ICs5MTg1LDI2IEBAIFJlbmFtZVN0 bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8g bmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIFJFTkFN RSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1l U3RtdCk7CisKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9DRUs7CisJCQkJCW4tPm9i amVjdCA9IChOb2RlICopIG1ha2VTdHJpbmcoJDUpOworCQkJCQluLT5uZXduYW1lID0gJDg7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOwor CQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgbmFtZSBSRU5BTUUgVE8gbmFt ZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOwor CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfQ01LOworCQkJCQluLT5vYmplY3QgPSAo Tm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQlu LT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJ CQl8IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQogCQkJCXsK IAkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOwpAQCAtMTAxNDgs NiArMTAyMTMsMjQgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdh dGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9 ICQ2OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4g RU5DUllQVElPTiBLRVkgbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0 ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+ b2JqZWN0VHlwZSA9IE9CSkVDVF9DRUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1h a2VTdHJpbmcoJDUpOworCQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2Rl ICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBuYW1lIE9XTkVS IFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyT3duZXJTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX0NNSzsK KwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4tPm5l d293bmVyID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVS IENPTlZFUlNJT05fUCBhbnlfbmFtZSBPV05FUiBUTyBSb2xlU3BlYwogCQkJCXsKIAkJCQkJ QWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CkBAIC0xMTMw NCw2ICsxMTM4Nyw1MiBAQCBBbHRlckNvbGxhdGlvblN0bXQ6IEFMVEVSIENPTExBVElPTiBh bnlfbmFtZSBSRUZSRVNIIFZFUlNJT05fUAogCQk7CiAKIAorLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisgKgorICoJCUFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWQorICoKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKworQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoK KwkJCUFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIEFERF9QIFZBTFVFX1AgZGVm aW5pdGlvbgorCQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqbiA9 IG1ha2VOb2RlKEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQpOworCisJCQkJCW4tPmNl a25hbWUgPSAkNTsKKwkJCQkJbi0+aXNEcm9wID0gZmFsc2U7CisJCQkJCW4tPmRlZmluaXRp b24gPSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUgRFJPUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7 CisJCQkJCUFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ckNvbHVtbkVuY3J5cHRpb25LZXlTdG10KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJ CQkJCW4tPmlzRHJvcCA9IHRydWU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAkODsKKwkJCQkJ JCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCisKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWQorICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10OgorCQkJQUxURVIg Q09MVU1OIE1BU1RFUiBLRVkgbmFtZSBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNv bHVtbk1hc3RlcktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbk1hc3RlcktleVN0 bXQpOworCisJCQkJCW4tPmNta25hbWUgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ2 OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKKwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCiAgKgogICoJCUFMVEVSIFNZU1RFTQpAQCAtMTY3OTEsNiArMTY5MjAs NyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5H CiAJCQl8IEVOQ1JZUFRFRAorCQkJfCBFTkNSWVBUSU9OCiAJCQl8IEVOVU1fUAogCQkJfCBF U0NBUEUKIAkJCXwgRVZFTlQKQEAgLTE2ODU0LDYgKzE2OTg0LDcgQEAgdW5yZXNlcnZlZF9r ZXl3b3JkOgogCQkJfCBMT0NLRUQKIAkJCXwgTE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwg TUFTVEVSCiAJCQl8IE1BVENICiAJCQl8IE1BVENIRUQKIAkJCXwgTUFURVJJQUxJWkVECkBA IC0xNzMzNyw2ICsxNzQ2OCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgRU5BQkxF X1AKIAkJCXwgRU5DT0RJTkcKIAkJCXwgRU5DUllQVEVECisJCQl8IEVOQ1JZUFRJT04KIAkJ CXwgRU5EX1AKIAkJCXwgRU5VTV9QCiAJCQl8IEVTQ0FQRQpAQCAtMTc0MjUsNiArMTc1NTcs NyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExPQ0tFRAogCQkJfCBMT0dHRUQKIAkJ CXwgTUFQUElORworCQkJfCBNQVNURVIKIAkJCXwgTUFUQ0gKIAkJCXwgTUFUQ0hFRAogCQkJ fCBNQVRFUklBTElaRUQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9w YXJhbS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMKaW5kZXggZTgwODc2 YWEyNS4uZjFiZmQ1NjM0ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3BhcmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMKQEAgLTI5 LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJu b2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcGFyYW0uaCIKKyNp bmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMu aCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKIApAQCAtMzU3LDMgKzM1OCwxNDYg QEAgcXVlcnlfY29udGFpbnNfZXh0ZXJuX3BhcmFtc193YWxrZXIoTm9kZSAqbm9kZSwgdm9p ZCAqY29udGV4dCkKIAlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBxdWVy eV9jb250YWluc19leHRlcm5fcGFyYW1zX3dhbGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsK IH0KKworLyoKKyAqIFdhbGsgYSBxdWVyeSB0cmVlIGFuZCBmaW5kIG91dCB3aGF0IHRhYmxl cyBhbmQgY29sdW1ucyBhIHBhcmFtZXRlciBpcworICogYXNzb2NpYXRlZCB3aXRoLgorICoK KyAqIFdlIG5lZWQgdG8gZmluZCAxKSBwYXJhbWV0ZXJzIHdyaXR0ZW4gZGlyZWN0bHkgaW50 byBhIHRhYmxlIGNvbHVtbiwgYW5kIDIpCisgKiBiaW5hcnkgcHJlZGljYXRlcyByZWxhdGlu ZyBhIHBhcmFtZXRlciB0byBhIHRhYmxlIGNvbHVtbi4KKyAqCisgKiBXZSBqdXN0IG5lZWQg dG8gZmluZCBWYXIgYW5kIFBhcmFtIG5vZGVzIGluIGFwcHJvcHJpYXRlIHBsYWNlcy4gIFdl IGRvbid0CisgKiBuZWVkIHRvIGRvIGhhcmRlciB0aGluZ3MgbGlrZSBsb29raW5nIHRocm91 Z2ggY2FzdHMsIHNpbmNlIHRoaXMgaXMgdXNlZCBmb3IKKyAqIGNvbHVtbiBlbmNyeXB0aW9u LCBhbmQgZW5jcnlwdGVkIGNvbHVtbnMgY2FuJ3QgYmUgdXNlZnVsbHkgY2FzdCB0bworICog YW55dGhpbmcuCisgKi8KKworc3RydWN0IGZpbmRfcGFyYW1fb3JpZ3NfY29udGV4dAorewor CWNvbnN0IFF1ZXJ5ICpxdWVyeTsKKwlPaWQJCSAgICpwYXJhbV9vcmlnX3RibHM7CisJQXR0 ck51bWJlciAqcGFyYW1fb3JpZ19jb2xzOworfTsKKworc3RhdGljIGJvb2wKK2ZpbmRfcGFy YW1fb3JpZ3Nfd2Fsa2VyKE5vZGUgKm5vZGUsIHN0cnVjdCBmaW5kX3BhcmFtX29yaWdzX2Nv bnRleHQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNl OworCisJaWYgKElzQShub2RlLCBPcEV4cHIpIHx8IElzQShub2RlLCBEaXN0aW5jdEV4cHIp IHx8IElzQShub2RlLCBOdWxsSWZFeHByKSkKKwl7CisJCU9wRXhwcgkgICAqb3BleHByID0g KE9wRXhwciAqKSBub2RlOworCisJCWlmIChsaXN0X2xlbmd0aChvcGV4cHItPmFyZ3MpID09 IDIpCisJCXsKKwkJCU5vZGUJICAgKmxleHByID0gbGluaXRpYWwob3BleHByLT5hcmdzKTsK KwkJCU5vZGUJICAgKnJleHByID0gbHNlY29uZChvcGV4cHItPmFyZ3MpOworCQkJVmFyCQkg ICAqdiA9IE5VTEw7CisJCQlQYXJhbQkgICAqcCA9IE5VTEw7CisKKwkJCWlmIChJc0EobGV4 cHIsIFZhcikgJiYgSXNBKHJleHByLCBQYXJhbSkpCisJCQl7CisJCQkJdiA9IGNhc3ROb2Rl KFZhciwgbGV4cHIpOworCQkJCXAgPSBjYXN0Tm9kZShQYXJhbSwgcmV4cHIpOworCQkJfQor CQkJZWxzZSBpZiAoSXNBKHJleHByLCBWYXIpICYmIElzQShsZXhwciwgUGFyYW0pKQorCQkJ eworCQkJCXYgPSBjYXN0Tm9kZShWYXIsIHJleHByKTsKKwkJCQlwID0gY2FzdE5vZGUoUGFy YW0sIGxleHByKTsKKwkJCX0KKworCQkJaWYgKHYgJiYgcCkKKwkJCXsKKwkJCQlSYW5nZVRi bEVudHJ5ICpydGU7CisKKwkJCQlydGUgPSBydF9mZXRjaCh2LT52YXJubywgY29udGV4dC0+ cXVlcnktPnJ0YWJsZSk7CisJCQkJaWYgKHJ0ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04p CisJCQkJeworCQkJCQljb250ZXh0LT5wYXJhbV9vcmlnX3RibHNbcC0+cGFyYW1pZCAtIDFd ID0gcnRlLT5yZWxpZDsKKwkJCQkJY29udGV4dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFt aWQgLSAxXSA9IHYtPnZhcmF0dG5vOworCQkJCX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gZmFs c2U7CisJfQorCisJLyoKKwkgKiBUYXJnZXRFbnRyeSBpbiBhIHF1ZXJ5IHdpdGggYSByZXN1 bHQgcmVsYXRpb24KKwkgKi8KKwlpZiAoSXNBKG5vZGUsIFRhcmdldEVudHJ5KSAmJiBjb250 ZXh0LT5xdWVyeS0+cmVzdWx0UmVsYXRpb24gPiAwKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRl ID0gKFRhcmdldEVudHJ5ICopIG5vZGU7CisJCVJhbmdlVGJsRW50cnkgKnJlc3J0ZTsKKwor CQlyZXNydGUgPSBydF9mZXRjaChjb250ZXh0LT5xdWVyeS0+cmVzdWx0UmVsYXRpb24sIGNv bnRleHQtPnF1ZXJ5LT5ydGFibGUpOworCQlpZiAocmVzcnRlLT5ydGVraW5kID09IFJURV9S RUxBVElPTikKKwkJeworCQkJLyoKKwkJCSAqIFBhcmFtIGRpcmVjdGx5IGluIGEgdGFyZ2V0 IGxpc3QKKwkJCSAqLworCQkJaWYgKElzQSh0ZS0+ZXhwciwgUGFyYW0pKQorCQkJeworCQkJ CVBhcmFtCSAgICpwID0gKFBhcmFtICopIHRlLT5leHByOworCisJCQkJY29udGV4dC0+cGFy YW1fb3JpZ190YmxzW3AtPnBhcmFtaWQgLSAxXSA9IHJlc3J0ZS0+cmVsaWQ7CisJCQkJY29u dGV4dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHRlLT5yZXNubzsKKwkJ CX0KKwkJCS8qCisJCQkgKiBJZiBpdCdzIGEgVmFyLCBjaGVjayB3aGV0aGVyIGl0IGNvcnJl c3BvbmRzIHRvIGEgVkFMVUVTIGxpc3QKKwkJCSAqIHdpdGggdG9wLWxldmVsIHBhcmFtZXRl cnMuICBUaGlzIGNvdmVycyBtdWx0aS1yb3cgSU5TRVJUUy4KKwkJCSAqLworCQkJZWxzZSBp ZiAoSXNBKHRlLT5leHByLCBWYXIpKQorCQkJeworCQkJCVZhcgkgICAqdiA9IChWYXIgKikg dGUtPmV4cHI7CisJCQkJUmFuZ2VUYmxFbnRyeSAqc3JjcnRlOworCisJCQkJc3JjcnRlID0g cnRfZmV0Y2godi0+dmFybm8sIGNvbnRleHQtPnF1ZXJ5LT5ydGFibGUpOworCQkJCWlmIChz cmNydGUtPnJ0ZWtpbmQgPT0gUlRFX1ZBTFVFUykKKwkJCQl7CisJCQkJCUxpc3RDZWxsICps YzsKKworCQkJCQlmb3JlYWNoIChsYywgc3JjcnRlLT52YWx1ZXNfbGlzdHMpCisJCQkJCXsK KwkJCQkJCUxpc3QgKnZhbHVlc19saXN0ID0gbGZpcnN0X25vZGUoTGlzdCwgbGMpOworCQkJ CQkJTm9kZSAqdmFsdWUgPSBsaXN0X250aCh2YWx1ZXNfbGlzdCwgdi0+dmFyYXR0bm8gLSAx KTsKKworCQkJCQkJaWYgKElzQSh2YWx1ZSwgUGFyYW0pKQorCQkJCQkJeworCQkJCQkJCVBh cmFtCSAgICpwID0gKFBhcmFtICopIHZhbHVlOworCisJCQkJCQkJY29udGV4dC0+cGFyYW1f b3JpZ190YmxzW3AtPnBhcmFtaWQgLSAxXSA9IHJlc3J0ZS0+cmVsaWQ7CisJCQkJCQkJY29u dGV4dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHRlLT5yZXNubzsKKwkJ CQkJCX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gZmFsc2U7CisJfQor CisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxr ZXIoKFF1ZXJ5ICopIG5vZGUsIGZpbmRfcGFyYW1fb3JpZ3Nfd2Fsa2VyLCBjb250ZXh0LCAw KTsKKwl9CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBmaW5kX3Bh cmFtX29yaWdzX3dhbGtlciwgY29udGV4dCk7Cit9CisKK3ZvaWQKK2ZpbmRfcGFyYW1fb3Jp Z3MoTGlzdCAqcXVlcnlfbGlzdCwgT2lkICoqcGFyYW1fb3JpZ190YmxzLCBBdHRyTnVtYmVy ICoqcGFyYW1fb3JpZ19jb2xzKQoreworCXN0cnVjdCBmaW5kX3BhcmFtX29yaWdzX2NvbnRl eHQgY29udGV4dDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWNvbnRleHQucGFyYW1fb3JpZ190 YmxzID0gKnBhcmFtX29yaWdfdGJsczsKKwljb250ZXh0LnBhcmFtX29yaWdfY29scyA9ICpw YXJhbV9vcmlnX2NvbHM7CisKKwlmb3JlYWNoIChsYywgcXVlcnlfbGlzdCkKKwl7CisJCVF1 ZXJ5CSAgICpxdWVyeSA9IGxmaXJzdF9ub2RlKFF1ZXJ5LCBsYyk7CisKKwkJY29udGV4dC5x dWVyeSA9IHF1ZXJ5OworCQlxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwgZmluZF9wYXJhbV9v cmlnc193YWxrZXIsICZjb250ZXh0LCAwKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYwppbmRleCBmNzQzY2Q1NDhjLi4wOThhZjY4MGU5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTEwNDAsOCArMTA0MCwxNiBAQCB0cmFuc2Zvcm1U YWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNl ICp0YWJsZV9saWtlX2NsYQogCQkgKi8KIAkJZGVmID0gbWFrZU5vZGUoQ29sdW1uRGVmKTsK IAkJZGVmLT5jb2xuYW1lID0gcHN0cmR1cChhdHRyaWJ1dGVOYW1lKTsKLQkJZGVmLT50eXBl TmFtZSA9IG1ha2VUeXBlTmFtZUZyb21PaWQoYXR0cmlidXRlLT5hdHR0eXBpZCwKLQkJCQkJ CQkJCQkJYXR0cmlidXRlLT5hdHR0eXBtb2QpOworCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQo YXR0cmlidXRlLT5hdHR0eXBpZCkpCisJCXsKKwkJCWRlZi0+dHlwZU5hbWUgPSBtYWtlVHlw ZU5hbWVGcm9tT2lkKGF0dHJpYnV0ZS0+YXR0cmVhbHR5cGlkLAorCQkJCQkJCQkJCQkJYXR0 cmlidXRlLT5hdHR0eXBtb2QpOworCQkJaWYgKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25z ICYgQ1JFQVRFX1RBQkxFX0xJS0VfRU5DUllQVEVEKQorCQkJCWRlZi0+ZW5jcnlwdGlvbiA9 IG1ha2VDb2x1bW5FbmNyeXB0aW9uKGF0dHJpYnV0ZSk7CisJCX0KKwkJZWxzZQorCQkJZGVm LT50eXBlTmFtZSA9IG1ha2VUeXBlTmFtZUZyb21PaWQoYXR0cmlidXRlLT5hdHR0eXBpZCwK KwkJCQkJCQkJCQkJCWF0dHJpYnV0ZS0+YXR0dHlwbW9kKTsKIAkJZGVmLT5pbmhjb3VudCA9 IDA7CiAJCWRlZi0+aXNfbG9jYWwgPSB0cnVlOwogCQlkZWYtPmlzX25vdF9udWxsID0gYXR0 cmlidXRlLT5hdHRub3RudWxsOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpp bmRleCBmNDU5ZGFiMzYwLi5kMGE0ODkxMjc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bv c3RtYXN0ZXIuYwpAQCAtMjI0NCwxMiArMjI0NCwyNyBAQCBQcm9jZXNzU3RhcnR1cFBhY2tl dChQb3J0ICpwb3J0LCBib29sIHNzbF9kb25lLCBib29sIGdzc19kb25lKQogCQkJCQkJCQkJ dmFscHRyKSwKIAkJCQkJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZTogXCJmYWxzZVwi LCAwLCBcInRydWVcIiwgMSwgXCJkYXRhYmFzZVwiLiIpKSk7CiAJCQl9CisJCQllbHNlIGlm IChzdHJjbXAobmFtZXB0ciwgIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iKSA9PSAwKQorCQkJ eworCQkJCS8qCisJCQkJICogUmlnaHQgbm93LCB0aGUgb25seSBhY2NlcHRlZCB2YWx1ZSBp cyAiMSIuICBUaGlzIGdpdmVzIHJvb20KKwkJCQkgKiB0byBleHBhbmQgdGhpcyBpbnRvIGEg dmVyc2lvbiBudW1iZXIsIGZvciBleGFtcGxlLgorCQkJCSAqLworCQkJCWlmIChzdHJjbXAo dmFscHRyLCAiMSIpID09IDApCisJCQkJCXBvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQgPSB0cnVlOworCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChGQVRBTCwKKwkJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNn KCJpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgXCIlc1wiOiBcIiVzXCIiLAorCQkJCQkJ CQkJImNvbHVtbl9lbmNyeXB0aW9uIiwKKwkJCQkJCQkJCXZhbHB0ciksCisJCQkJCQkJIGVy cmhpbnQoIlZhbGlkIHZhbHVlcyBhcmU6IDEuIikpKTsKKwkJCX0KIAkJCWVsc2UgaWYgKHN0 cm5jbXAobmFtZXB0ciwgIl9wcV8uIiwgNSkgPT0gMCkKIAkJCXsKIAkJCQkvKgogCQkJCSAq IEFueSBvcHRpb24gYmVnaW5uaW5nIHdpdGggX3BxXy4gaXMgcmVzZXJ2ZWQgZm9yIHVzZSBh cyBhCi0JCQkJICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLCBidXQgYXQgcHJlc2VudCBubyBz dWNoIG9wdGlvbnMgYXJlCi0JCQkJICogZGVmaW5lZC4KKwkJCQkgKiBwcm90b2NvbC1sZXZl bCBvcHRpb24uCiAJCQkJICovCiAJCQkJdW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMg PQogCQkJCQlsYXBwZW5kKHVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zLCBwc3RyZHVw KG5hbWVwdHIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBi L3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAwMWQyNjRiNWFiLi4wMjQ1YWZm N2JmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi bm9kZXMvcHJpbnQuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5j bHVkZSAicGFyc2VyL2FuYWx5emUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcGFyYW0u aCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAicGdfZ2V0b3B0Lmgi CiAjaW5jbHVkZSAicGdfdHJhY2UuaCIKQEAgLTcyLDYgKzczLDcgQEAKICNpbmNsdWRlICJ1 dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1 ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2lu Y2x1ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIK IApAQCAtMTgxMyw2ICsxODE1LDE2IEBAIGV4ZWNfYmluZF9tZXNzYWdlKFN0cmluZ0luZm8g aW5wdXRfbWVzc2FnZSkKIAkJCWVsc2UKIAkJCQlwZm9ybWF0ID0gMDsJLyogZGVmYXVsdCA9 IHRleHQgKi8KIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBlKSkKKwkJCXsKKwkJ CQlpZiAocGZvcm1hdCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4RjA7CisJCQkJZWxz ZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9D T0xfVklPTEFUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgJWQgY29ycmVzcG9u ZHMgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwgYnV0IHRoZSBwYXJhbWV0ZXIgdmFsdWUgd2Fz IG5vdCBlbmNyeXB0ZWQiLCBwYXJhbW5vICsgMSkpKTsKKwkJCX0KKwogCQkJaWYgKHBmb3Jt YXQgPT0gMCkJLyogdGV4dCBtb2RlICovCiAJCQl7CiAJCQkJT2lkCQkJdHlwaW5wdXQ7CkBA IC0yNTU0LDYgKzI1NjYsOCBAQCBzdGF0aWMgdm9pZAogZXhlY19kZXNjcmliZV9zdGF0ZW1l bnRfbWVzc2FnZShjb25zdCBjaGFyICpzdG10X25hbWUpCiB7CiAJQ2FjaGVkUGxhblNvdXJj ZSAqcHNyYzsKKwlPaWQJCSAgICpwYXJhbV9vcmlnX3RibHM7CisJQXR0ck51bWJlciAqcGFy YW1fb3JpZ19jb2xzOwogCiAJLyoKIAkgKiBTdGFydCB1cCBhIHRyYW5zYWN0aW9uIGNvbW1h bmQuIChOb3RlIHRoYXQgdGhpcyB3aWxsIG5vcm1hbGx5IGNoYW5nZQpAQCAtMjYxMiwxMSAr MjYyNiw2MSBAQCBleGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNzYWdlKGNvbnN0IGNoYXIg KnN0bXRfbmFtZSkKIAkJCQkJCQkJCQkJCQkJICogbWVzc2FnZSB0eXBlICovCiAJcHFfc2Vu ZGludDE2KCZyb3dfZGVzY3JpcHRpb25fYnVmLCBwc3JjLT5udW1fcGFyYW1zKTsKIAorCS8q CisJICogSWYgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgZmluZCB0aGUgYXNzb2Np YXRlZCB0YWJsZXMgYW5kIGNvbHVtbnMKKwkgKiBmb3IgYW55IHBhcmFtZXRlcnMsIHNvIHRo YXQgd2UgY2FuIGRldGVybWluZSBlbmNyeXB0aW9uIGluZm9ybWF0aW9uIGZvcgorCSAqIHRo ZW0uCisJICovCisJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQg JiYgcHNyYy0+bnVtX3BhcmFtcykKKwl7CisJCXBhcmFtX29yaWdfdGJscyA9IHBhbGxvYzBf YXJyYXkoT2lkLCBwc3JjLT5udW1fcGFyYW1zKTsKKwkJcGFyYW1fb3JpZ19jb2xzID0gcGFs bG9jMF9hcnJheShBdHRyTnVtYmVyLCBwc3JjLT5udW1fcGFyYW1zKTsKKworCQlSZXZhbGlk YXRlQ2FjaGVkUXVlcnkocHNyYywgTlVMTCk7CisJCWZpbmRfcGFyYW1fb3JpZ3MocHNyYy0+ cXVlcnlfbGlzdCwgJnBhcmFtX29yaWdfdGJscywgJnBhcmFtX29yaWdfY29scyk7CisJfQor CiAJZm9yIChpbnQgaSA9IDA7IGkgPCBwc3JjLT5udW1fcGFyYW1zOyBpKyspCiAJewogCQlP aWQJCQlwdHlwZSA9IHBzcmMtPnBhcmFtX3R5cGVzW2ldOworCQlPaWQJCQlwY2VraWQgPSBJ bnZhbGlkT2lkOworCQlpbnQJCQlwY2VrYWxnID0gMDsKKwkJaW50MTYJCXBmbGFncyA9IDA7 CisKKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgJiYgdHlw ZV9pc19lbmNyeXB0ZWQocHR5cGUpKQorCQl7CisJCQlPaWQJCQlwb3JpZ3RibCA9IHBhcmFt X29yaWdfdGJsc1tpXTsKKwkJCUF0dHJOdW1iZXIJcG9yaWdjb2wgPSBwYXJhbV9vcmlnX2Nv bHNbaV07CisJCQlIZWFwVHVwbGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0 dDsKKworCQkJaWYgKHBvcmlndGJsID09IEludmFsaWRPaWQgfHwgcG9yaWdjb2wgPT0gSW52 YWxpZEF0dHJOdW1iZXIpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coInBhcmFtZXRl ciAlZCBjb3JyZXNwb25kcyB0byBhbiBlbmNyeXB0ZWQgY29sdW1uLCBidXQgYW4gdW5kZXJs eWluZyB0YWJsZSBhbmQgY29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIiwgaSArIDEp KSk7CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRHZXREYXR1 bShwb3JpZ3RibCksIEludDE2R2V0RGF0dW0ocG9yaWdjb2wpKTsKKwkJCWlmICghSGVhcFR1 cGxlSXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHBvcmlnY29sLCBwb3JpZ3RibCk7 CisJCQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJ CXB0eXBlID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJCXBjZWtpZCA9IG9yaWdfYXR0 LT5hdHRjZWs7CisJCQlwY2VrYWxnID0gb3JpZ19hdHQtPmF0dGVuY2FsZzsKKwkJCVJlbGVh c2VTeXNDYWNoZSh0cCk7CisKKwkJCWlmIChwc3JjLT5wYXJhbV90eXBlc1tpXSA9PSBQR19F TkNSWVBURURfREVUT0lEKQorCQkJCXBmbGFncyB8PSAweDAxOworCisJCQlNYXliZVNlbmRD b2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShwY2VraWQpOworCQl9CiAKIAkJcHFfc2VuZGlu dDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwdHlwZSk7CisJCWlmIChNeVByb2NQ b3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcV9zZW5kaW50MzIo JnJvd19kZXNjcmlwdGlvbl9idWYsIChpbnQpIHBjZWtpZCk7CisJCQlwcV9zZW5kaW50MzIo JnJvd19kZXNjcmlwdGlvbl9idWYsIHBjZWthbGcpOworCQkJcHFfc2VuZGludDE2KCZyb3df ZGVzY3JpcHRpb25fYnVmLCBwZmxhZ3MpOworCQl9CiAJfQogCXBxX2VuZG1lc3NhZ2VfcmV1 c2UoJnJvd19kZXNjcmlwdGlvbl9idWYpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDI0N2Qw ODE2YWQuLjQ5ZjgxOGQ3MDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0zMCw2ICszMCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3lu Yy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NsdXN0ZXIuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9jb2xlbmNjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb252 ZXJzaW9uY21kcy5oIgpAQCAtMTM3LDYgKzEzOCw4IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1h bmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAlzd2l0Y2ggKG5vZGVUYWcocGFyc2V0 cmVlKSkKIAl7CiAJCWNhc2UgVF9BbHRlckNvbGxhdGlvblN0bXQ6CisJCWNhc2UgVF9BbHRl ckNvbHVtbkVuY3J5cHRpb25LZXlTdG10OgorCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJL ZXlTdG10OgogCQljYXNlIFRfQWx0ZXJEYXRhYmFzZVJlZnJlc2hDb2xsU3RtdDoKIAkJY2Fz ZSBUX0FsdGVyRGF0YWJhc2VTZXRTdG10OgogCQljYXNlIFRfQWx0ZXJEYXRhYmFzZVN0bXQ6 CkBAIC0xNDQxLDYgKzE0NDQsMTQgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCXN0bXQtPmRlZmluaXRpb24sCiAJCQkJCQkJCQkJ CQkJCQkmc2Vjb25kYXJ5T2JqZWN0KTsKIAkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgT0JK RUNUX0NFSzoKKwkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOworCQkJCQkJCWFk ZHJlc3MgPSBDcmVhdGVDRUsocHN0YXRlLCBzdG10KTsKKwkJCQkJCQlicmVhazsKKwkJCQkJ CWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOwor CQkJCQkJCWFkZHJlc3MgPSBDcmVhdGVDTUsocHN0YXRlLCBzdG10KTsKKwkJCQkJCQlicmVh azsKIAkJCQkJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJCQkJCQlBc3NlcnQoc3RtdC0+ YXJncyA9PSBOSUwpOwogCQkJCQkJCWFkZHJlc3MgPSBEZWZpbmVDb2xsYXRpb24ocHN0YXRl LApAQCAtMTkwMyw2ICsxOTE0LDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJYWRkcmVzcyA9IEFsdGVyQ29sbGF0aW9uKChBbHRlckNvbGxhdGlv blN0bXQgKikgcGFyc2V0cmVlKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0FsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQkJYWRkcmVzcyA9IEFsdGVyQ29sdW1uRW5jcnlw dGlvbktleShwc3RhdGUsIChBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10ICopIHBhcnNl dHJlZSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgVF9BbHRlckNvbHVtbk1hc3RlcktleVN0 bXQ6CisJCQkJYWRkcmVzcyA9IEFsdGVyQ29sdW1uTWFzdGVyS2V5KHBzdGF0ZSwgKEFsdGVy Q29sdW1uTWFzdGVyS2V5U3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCiAJCQlk ZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIs CiAJCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpAQCAtMjIyNSw2ICsyMjQ0LDEy IEBAIEFsdGVyT2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQlj YXNlIE9CSkVDVF9DT0xVTU46CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfVEFCTEU7CiAJCQli cmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVN Tl9FTkNSWVBUSU9OX0tFWTsKKwkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQl0 YWcgPSBDTURUQUdfQUxURVJfQ09MVU1OX01BU1RFUl9LRVk7CisJCQlicmVhazsKIAkJY2Fz ZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9DT05WRVJTSU9O OwogCQkJYnJlYWs7CkBAIC0yNjQwLDYgKzI2NjUsMTIgQEAgQ3JlYXRlQ29tbWFuZFRhZyhO b2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJ dGFnID0gQ01EVEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBP QkpFQ1RfQ0VLOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT0xVTU5fRU5DUllQVElPTl9L RVk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJdGFnID0gQ01E VEFHX0RST1BfQ09MVU1OX01BU1RFUl9LRVk7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6 CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMjc2MCw2ICsyNzkxLDEy IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNU X0NPTExBVElPTjoKIAkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xMQVRJT047CiAJCQkJ CWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFHX0NSRUFU RV9DT0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNU X0NNSzoKKwkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xVTU5fTUFTVEVSX0tFWTsKKwkJ CQkJYnJlYWs7CiAJCQkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJCQkJdGFnID0g Q01EVEFHX0NSRUFURV9BQ0NFU1NfTUVUSE9EOwogCQkJCQlicmVhazsKQEAgLTMwNjMsNiAr MzEwMCwxNCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9 IENNRFRBR19BTFRFUl9DT0xMQVRJT047CiAJCQlicmVhazsKIAorCQljYXNlIFRfQWx0ZXJD b2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xVTU5f RU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKworCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0 ZXJLZXlTdG10OgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOwor CQkJYnJlYWs7CisKIAkJY2FzZSBUX1ByZXBhcmVTdG10OgogCQkJdGFnID0gQ01EVEFHX1BS RVBBUkU7CiAJCQlicmVhazsKQEAgLTM2ODgsNiArMzczMywxNCBAQCBHZXRDb21tYW5kTG9n TGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVh azsKIAorCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCWxldiA9 IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKKwkJY2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVy S2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJCS8qIGFs cmVhZHktcGxhbm5lZCBxdWVyaWVzICovCiAJCWNhc2UgVF9QbGFubmVkU3RtdDoKIAkJCXsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IDFjNTJkZWVjNTUuLjA1MjVjNzg3ZmIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpAQCAtNjYzLDYgKzY2MywxMTIgQEAgdW5r bm93bnNlbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQllURUFfUChwcV9lbmR0 eXBzZW5kKCZidWYpKTsKIH0KIAorLyoKKyAqIHBnX2VuY3J5cHRlZF9pbiAtCisgKgorICog SW5wdXQgZnVuY3Rpb24gZm9yIHBnX2VuY3J5cHRlZF8qIHR5cGVzLgorICoKKyAqIFRoZSBm b3JtYXQgYW5kIGFkZGl0aW9uYWwgY2hlY2tzIGVuc3VyZSB0aGF0IG9uZSBjYW5ub3QgZWFz aWx5IGluc2VydCBhCisgKiB2YWx1ZSBkaXJlY3RseSBpbnRvIGFuIGVuY3J5cHRlZCBjb2x1 bW4gYnkgYWNjaWRlbnQuICAoVGhhdCdzIHdoeSB3ZSBkb24ndAorICoganVzdCB1c2UgdGhl IGJ5dGVhIGZvcm1hdCwgZm9yIGV4YW1wbGUuKSAgQnV0IHdlIHN0aWxsIGhhdmUgdG8gc3Vw cG9ydAorICogZGlyZWN0IGluc2VydHMgaW50byBlbmNyeXB0ZWQgY29sdW1ucywgZm9yIGV4 YW1wbGUgZm9yIHJlc3RvcmluZyBiYWNrdXBzCisgKiBtYWRlIGJ5IHBnX2R1bXAuCisgKi8K K0RhdHVtCitwZ19lbmNyeXB0ZWRfaW4oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwljaGFyCSAg ICppbnB1dFRleHQgPSBQR19HRVRBUkdfQ1NUUklORygwKTsKKwljaGFyCSAgICppcDsKKwlz aXplX3QJCWhleGxlbjsKKwlpbnQJCQliYzsKKwlieXRlYQkgICAqcmVzdWx0OworCisJaWYg KHN0cm5jbXAoaW5wdXRUZXh0LCAiZW5jcnlwdGVkJCIsIDEwKSAhPSAwKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCWVycm1zZygiaW52YWxpZCBpbnB1dCB2YWx1ZSBmb3IgZW5jcnlwdGVkIGNv bHVtbiB2YWx1ZTogXCIlc1wiIiwKKwkJCQkJICAgaW5wdXRUZXh0KSk7CisKKwlpcCA9IGlu cHV0VGV4dCArIDEwOworCWhleGxlbiA9IHN0cmxlbihpcCk7CisKKwkvKiBzYW5pdHkgY2hl Y2sgdG8gY2F0Y2ggb2J2aW91cyBtaXN0YWtlcyAqLworCWlmIChoZXhsZW4gLyAyIDwgMzIg fHwgKGhleGxlbiAvIDIpICUgMTYgIT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJtc2co ImludmFsaWQgaW5wdXQgdmFsdWUgZm9yIGVuY3J5cHRlZCBjb2x1bW4gdmFsdWU6IFwiJXNc IiIsCisJCQkJCSAgIGlucHV0VGV4dCkpOworCisJYmMgPSBoZXhsZW4gLyAyICsgVkFSSERS U1o7CS8qIG1heGltdW0gcG9zc2libGUgbGVuZ3RoICovCisJcmVzdWx0ID0gcGFsbG9jKGJj KTsKKwliYyA9IGhleF9kZWNvZGUoaXAsIGhleGxlbiwgVkFSREFUQShyZXN1bHQpKTsKKwlT RVRfVkFSU0laRShyZXN1bHQsIGJjICsgVkFSSERSU1opOyAvKiBhY3R1YWwgbGVuZ3RoICov CisKKwlQR19SRVRVUk5fQllURUFfUChyZXN1bHQpOworfQorCisvKgorICogcGdfZW5jcnlw dGVkX291dCAtCisgKgorICogT3V0cHV0IGZ1bmN0aW9uIGZvciBwZ19lbmNyeXB0ZWRfKiB0 eXBlcy4KKyAqCisgKiBUaGlzIG91dHB1dCBpcyBzZWVuIHdoZW4gcmVhZGluZyBhbiBlbmNy eXB0ZWQgY29sdW1uIHdpdGhvdXQgY29sdW1uCisgKiBlbmNyeXB0aW9uIG1vZGUgZW5hYmxl ZC4gIFRoZXJlZm9yZSwgdGhlIG91dHB1dCBmb3JtYXQgaXMgY2hvc2VuIHNvIHRoYXQgaXQK KyAqIGlzIGVhc2lseSByZWNvZ25pemFibGUuCisgKi8KK0RhdHVtCitwZ19lbmNyeXB0ZWRf b3V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJYnl0ZWEJICAgKnZsZW5hID0gUEdfR0VUQVJH X0JZVEVBX1BQKDApOworCWNoYXIJICAgKnJlc3VsdDsKKwljaGFyCSAgICpycDsKKworCXJw ID0gcmVzdWx0ID0gcGFsbG9jKFZBUlNJWkVfQU5ZX0VYSERSKHZsZW5hKSAqIDIgKyAxMCAr IDEpOworCW1lbWNweShycCwgImVuY3J5cHRlZCQiLCAxMCk7CisJcnAgKz0gMTA7CisJcnAg Kz0gaGV4X2VuY29kZShWQVJEQVRBX0FOWSh2bGVuYSksIFZBUlNJWkVfQU5ZX0VYSERSKHZs ZW5hKSwgcnApOworCSpycCA9ICdcMCc7CisJUEdfUkVUVVJOX0NTVFJJTkcocmVzdWx0KTsK K30KKworLyoKKyAqIHBnX2VuY3J5cHRlZF9yZWN2IC0KKyAqCisgKiBSZWNlaXZlIGZ1bmN0 aW9uIGZvciBwZ19lbmNyeXB0ZWRfKiB0eXBlcy4KKyAqLworRGF0dW0KK3BnX2VuY3J5cHRl ZF9yZWN2KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJU3RyaW5nSW5mbwlidWYgPSAoU3RyaW5n SW5mbykgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJYnl0ZWEJICAgKnJlc3VsdDsKKwlpbnQJ CQluYnl0ZXM7CisKKwluYnl0ZXMgPSBidWYtPmxlbiAtIGJ1Zi0+Y3Vyc29yOworCS8qIHNh bml0eSBjaGVjayB0byBjYXRjaCBvYnZpb3VzIG1pc3Rha2VzICovCisJaWYgKG5ieXRlcyA8 IDMyKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0JJ TkFSWV9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJpbnZhbGlkIGJpbmFyeSBpbnB1 dCB2YWx1ZSBmb3IgZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSIpKTsKKwlyZXN1bHQgPSAoYnl0 ZWEgKikgcGFsbG9jKG5ieXRlcyArIFZBUkhEUlNaKTsKKwlTRVRfVkFSU0laRShyZXN1bHQs IG5ieXRlcyArIFZBUkhEUlNaKTsKKwlwcV9jb3B5bXNnYnl0ZXMoYnVmLCBWQVJEQVRBKHJl c3VsdCksIG5ieXRlcyk7CisJUEdfUkVUVVJOX0JZVEVBX1AocmVzdWx0KTsKK30KKworLyoK KyAqIHBnX2VuY3J5cHRlZF9zZW5kIC0KKyAqCisgKiBTZW5kIGZ1bmN0aW9uIGZvciBwZ19l bmNyeXB0ZWRfKiB0eXBlcy4KKyAqLworRGF0dW0KK3BnX2VuY3J5cHRlZF9zZW5kKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJYnl0ZWEJICAgKnZsZW5hID0gUEdfR0VUQVJHX0JZVEVBX1Bf Q09QWSgwKTsKKworCS8qIGp1c3QgcmV0dXJuIGlucHV0ICovCisJUEdfUkVUVVJOX0JZVEVB X1AodmxlbmEpOworfQorCiAKIC8qID09PT09PT09PT0gUFVCTElDIFJPVVRJTkVTID09PT09 PT09PT0gKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2Nh Y2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCA5NGNh OGUxMjMwLi40OWY3M2NhNGU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YwpAQCAtMjQsNyArMjQsMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Ftb3AuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2FtcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2Fz dC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRp b24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFuZ3Vh Z2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgpAQCAtMjY1OCw2ICsy NjYxLDI1IEBAIHR5cGVfaXNfbXVsdGlyYW5nZShPaWQgdHlwaWQpCiAJcmV0dXJuIChnZXRf dHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9NVUxUSVJBTkdFKTsKIH0KIAorYm9vbAordHlw ZV9pc19lbmNyeXB0ZWQoT2lkIHR5cGlkKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0g U2VhcmNoU3lzQ2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlp ZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0g KEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwkJYm9vbAkJcmVzdWx0OworCisJCXJl c3VsdCA9ICh0eXB0dXAtPnR5cGNhdGVnb3J5ID09IFRZUENBVEVHT1JZX0VOQ1JZUFRFRCk7 CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCWVsc2UK KwkJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVy cmVkCiAgKgpAQCAtMzY4MywzICszNzA1LDkyIEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShP aWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwogfQorCitP aWQKK2dldF9jZWtfb2lkKGNvbnN0IGNoYXIgKmNla25hbWUsIGJvb2wgbWlzc2luZ19vaykK K3sKKwlPaWQJCQlvaWQ7CisKKwlvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ0VLTkFNRSwgQW51 bV9wZ19jb2xlbmNrZXlfb2lkLAorCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oY2VrbmFtZSkp OworCWlmICghT2lkSXNWYWxpZChvaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVy cm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNl a25hbWUpKSk7CisJcmV0dXJuIG9pZDsKK30KKworY2hhciAqCitnZXRfY2VrX25hbWUoT2lk IGNla2lkLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXR1cDsKKwljaGFyCSAg ICpjZWtuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRH ZXREYXR1bShjZWtpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJewor CQlpZiAoIW1pc3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1IiwgY2VraWQpOworCQlyZXR1cm4gTlVM TDsKKwl9CisKKwljZWtuYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19jb2xlbmNr ZXkpIEdFVFNUUlVDVCh0dXApKS0+Y2VrbmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7CisKKwlyZXR1cm4gY2VrbmFtZTsKK30KKworT2lkCitnZXRfY2VrZGF0YV9vaWQoT2lk IGNla2lkLCBPaWQgY21raWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJCQljZWtkYXRh aWQ7CisKKwljZWtkYXRhaWQgPSBHZXRTeXNDYWNoZU9pZDIoQ0VLREFUQUNFS0NNSywgQW51 bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShjZWtp ZCksCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oY21raWQpKTsKKwlpZiAoIU9pZElzVmFs aWQoY2VrZGF0YWlkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVt biBlbmNyeXB0aW9uIGtleSBcIiVzXCIgaGFzIG5vIGRhdGEgZm9yIG1hc3RlciBrZXkgXCIl c1wiIiwKKwkJCQkJCWdldF9jZWtfbmFtZShjZWtpZCwgZmFsc2UpLCBnZXRfY21rX25hbWUo Y21raWQsIGZhbHNlKSkpKTsKKworCXJldHVybiBjZWtkYXRhaWQ7Cit9CisKK09pZAorZ2V0 X2Nta19vaWQoY29uc3QgY2hhciAqY21rbmFtZSwgYm9vbCBtaXNzaW5nX29rKQoreworCU9p ZAkJCW9pZDsKKworCW9pZCA9IEdldFN5c0NhY2hlT2lkMShDTUtOQU1FLCBBbnVtX3BnX2Nv bG1hc3RlcmtleV9vaWQsCisJCQkJCQkgIENTdHJpbmdHZXREYXR1bShjbWtuYW1lKSk7CisJ aWYgKCFPaWRJc1ZhbGlkKG9pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNn KCJjb2x1bW4gbWFzdGVyIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjbWtuYW1lKSkp OworCXJldHVybiBvaWQ7Cit9CisKK2NoYXIgKgorZ2V0X2Nta19uYW1lKE9pZCBjbWtpZCwg Ym9vbCBtaXNzaW5nX29rKQoreworCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkgICAqY21rbmFt ZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0o Y21raWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCXsKKwkJaWYgKCFt aXNzaW5nX29rKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNv bHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlj bWtuYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNU UlVDVCh0dXApKS0+Y21rbmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwly ZXR1cm4gY21rbmFtZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5k ZXggY2M5NDMyMDVkMy4uOWY2NmMzMmJmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxh bmNhY2hlLmMKQEAgLTk3LDggKzk3LDYgQEAgc3RhdGljIGRsaXN0X2hlYWQgc2F2ZWRfcGxh bl9saXN0ID0gRExJU1RfU1RBVElDX0lOSVQoc2F2ZWRfcGxhbl9saXN0KTsKIHN0YXRpYyBk bGlzdF9oZWFkIGNhY2hlZF9leHByZXNzaW9uX2xpc3QgPSBETElTVF9TVEFUSUNfSU5JVChj YWNoZWRfZXhwcmVzc2lvbl9saXN0KTsKIAogc3RhdGljIHZvaWQgUmVsZWFzZUdlbmVyaWNQ bGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpOwotc3RhdGljIExpc3QgKlJldmFs aWRhdGVDYWNoZWRRdWVyeShDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAotCQkJCQkJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CiBzdGF0aWMgYm9vbCBDaGVja0Nh Y2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSk7CiBzdGF0aWMgQ2FjaGVk UGxhbiAqQnVpbGRDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsIExp c3QgKnFsaXN0LAogCQkJCQkJCQkgICBQYXJhbUxpc3RJbmZvIGJvdW5kUGFyYW1zLCBRdWVy eUVudmlyb25tZW50ICpxdWVyeUVudik7CkBAIC01NTEsNyArNTQ5LDcgQEAgUmVsZWFzZUdl bmVyaWNQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpCiAgKiBoYWQgdG8gZG8g cmUtYW5hbHlzaXMsIGFuZCBOSUwgb3RoZXJ3aXNlLiAgKFRoaXMgaXMgcmV0dXJuZWQganVz dCB0byBzYXZlCiAgKiBhIHRyZWUgY29weWluZyBzdGVwIGluIGEgc3Vic2VxdWVudCBCdWls ZENhY2hlZFBsYW4gY2FsbC4pCiAgKi8KLXN0YXRpYyBMaXN0ICoKK0xpc3QgKgogUmV2YWxp ZGF0ZUNhY2hlZFF1ZXJ5KENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiAJCQkJCSAg UXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lz Y2FjaGUuYwppbmRleCBkM2FkZDMzNTI3Li4zMTZlN2I4MmVkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3N5c2NhY2hlLmMKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hdXRoX21lbWJlcnMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s ZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf ZGF0YWJhc2UuaCIKQEAgLTIxOSw2ICsyMjIsMzEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBj YWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJCQlBbnVtX3BnX2Nhc3RfY2FzdHRhcmdldCks CiAJCTI1NgogCX0sCisJW0NFS0RBVEFDRUtDTUtdID0geworCQlDb2x1bW5FbmNLZXlEYXRh UmVsYXRpb25JZCwKKwkJQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsCisJCUtFWShB bnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY2VraWQsCisJCQlBbnVtX3BnX2NvbGVuY2tleWRh dGFfY2tkY21raWQpLAorCQk4CisJfSwKKwlbQ0VLREFUQU9JRF0gPSB7CisJCUNvbHVtbkVu Y0tleURhdGFSZWxhdGlvbklkLAorCQlDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwKKwkJ S0VZKEFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQpLAorCQk4CisJfSwKKwlbQ0VLTkFNRV0g PSB7CisJCUNvbHVtbkVuY0tleVJlbGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleU5hbWVJbmRl eElkLAorCQlLRVkoQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSksCisJCTgKKwl9LAorCVtD RUtPSURdID0geworCQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5FbmNLZXlP aWRJbmRleElkLAorCQlLRVkoQW51bV9wZ19jb2xlbmNrZXlfb2lkKSwKKwkJOAorCX0sCiAJ W0NMQUFNTkFNRU5TUF0gPSB7CiAJCU9wZXJhdG9yQ2xhc3NSZWxhdGlvbklkLAogCQlPcGNs YXNzQW1OYW1lTnNwSW5kZXhJZCwKQEAgLTIzMyw2ICsyNjEsMTggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBjYWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJCUtFWShBbnVtX3BnX29wY2xh c3Nfb2lkKSwKIAkJOAogCX0sCisJW0NNS05BTUVdID0geworCQlDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLAorCQlDb2x1bW5NYXN0ZXJLZXlOYW1lSW5kZXhJZCwKKwkJS0VZKEFudW1f cGdfY29sbWFzdGVya2V5X2Nta25hbWUpLAorCQk4CisJfSwKKwlbQ01LT0lEXSA9IHsKKwkJ Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwKKwkJQ29sdW1uTWFzdGVyS2V5T2lkSW5kZXhJ ZCwKKwkJS0VZKEFudW1fcGdfY29sbWFzdGVya2V5X29pZCksCisJCTgKKwl9LAogCVtDT0xM TkFNRUVOQ05TUF0gPSB7CiAJCUNvbGxhdGlvblJlbGF0aW9uSWQsCiAJCUNvbGxhdGlvbk5h bWVFbmNOc3BJbmRleElkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1 dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jCmluZGV4IDI0ZjM3ZTNl YzkuLjA1YmQwZDQwOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRp bHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKQEAgLTM2LDcgKzM2 LDkgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKKyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1i L3BnX3djaGFyLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMv YnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0 aWxzL3N5c2NhY2hlLmgiCkBAIC0xMjksNiArMTMxLDEyIEBAIFByZXBhcmVDbGllbnRFbmNv ZGluZyhpbnQgZW5jb2RpbmcpCiAJCWVuY29kaW5nID09IFBHX1NRTF9BU0NJSSkKIAkJcmV0 dXJuIDA7CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVu Y3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2Vu Y3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOworCiAJaWYgKElzVHJhbnNhY3Rpb25T dGF0ZSgpKQogCXsKIAkJLyoKQEAgLTIzNiw2ICsyNDQsMTIgQEAgU2V0Q2xpZW50RW5jb2Rp bmcoaW50IGVuY29kaW5nKQogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKgorCSAqIENhbm5vdCBk byBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8K KwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJu IC0xOworCiAJLyoKIAkgKiBTZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgZW50cnkgcHJldmlv dXNseSBwcmVwYXJlZCBieQogCSAqIFByZXBhcmVDbGllbnRFbmNvZGluZzsgaWYgdGhlcmUg aXNuJ3Qgb25lLCB3ZSBsb3NlLiAgV2hpbGUgYXQgaXQsCkBAIC0yOTYsNyArMzEwLDkgQEAg SW5pdGlhbGl6ZUNsaWVudEVuY29kaW5nKHZvaWQpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImNvbnZlcnNpb24gYmV0d2Vl biAlcyBhbmQgJXMgaXMgbm90IHN1cHBvcnRlZCIsCiAJCQkJCQlwZ19lbmMybmFtZV90Ymxb cGVuZGluZ19jbGllbnRfZW5jb2RpbmddLm5hbWUsCi0JCQkJCQlHZXREYXRhYmFzZUVuY29k aW5nTmFtZSgpKSkpOworCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZ05hbWUoKSksCisJCQkJ IChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKSA/CisJCQkJIGVycmRl dGFpbCgiRW5jb2RpbmcgY29udmVyc2lvbiBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4g ZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIpIDogMCkpOwogCX0KIAogCS8qCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMK aW5kZXggNDRmYTUyY2M1NS4uODlmZWNlYjNiZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAtMjAxLDYg KzIwMSwxMiBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVz UHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHVzZXItZGVmaW5lZCBjb2xsYXRpb25zIik7 CiAJKHZvaWQpIGdldENvbGxhdGlvbnMoZm91dCwgJm51bUNvbGxhdGlvbnMpOwogCisJcGdf bG9nX2luZm8oInJlYWRpbmcgY29sdW1uIG1hc3RlciBrZXlzIik7CisJZ2V0Q29sdW1uTWFz dGVyS2V5cyhmb3V0KTsKKworCXBnX2xvZ19pbmZvKCJyZWFkaW5nIGNvbHVtbiBlbmNyeXB0 aW9uIGtleXMiKTsKKwlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cyhmb3V0KTsKKwogCXBnX2xv Z19pbmZvKCJyZWFkaW5nIHVzZXItZGVmaW5lZCBjb252ZXJzaW9ucyIpOwogCWdldENvbnZl cnNpb25zKGZvdXQsICZudW1Db252ZXJzaW9ucyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAppbmRl eCBhYmE3ODBlZjRiLi5hZmJhNzliMmVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC04NSw2 ICs4NSw3IEBAIHR5cGVkZWYgc3RydWN0IF9jb25uUGFyYW1zCiAJY2hhcgkgICAqcGdob3N0 OwogCWNoYXIJICAgKnVzZXJuYW1lOwogCXRyaXZhbHVlCXByb21wdFBhc3N3b3JkOworCWlu dAkJCWNvbHVtbl9lbmNyeXB0aW9uOwogCS8qIElmIG5vdCBOVUxMLCB0aGlzIG92ZXJyaWRl cyB0aGUgZGJuYW1lIG9idGFpbmVkIGZyb20gY29tbWFuZCBsaW5lICovCiAJLyogKGJ1dCAq b25seSogdGhlIERCIG5hbWUsIG5vdCBhbnl0aGluZyBlbHNlIGluIHRoZSBjb25uc3RyaW5n KSAqLwogCWNoYXIJICAgKm92ZXJyaWRlX2RibmFtZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuYwppbmRleCA3ZjdhMGYxY2U3Li41MTlkMmFkNjM1IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zNDI1LDYgKzM0MjUsOCBAQCBfZ2V0 T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUp CiAKIAkvKiBvYmplY3RzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsIGRlY29yYXRpb24g Ki8KIAlpZiAoc3RyY21wKHR5cGUsICJDT0xMQVRJT04iKSA9PSAwIHx8CisJCXN0cmNtcCh0 eXBlLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwg IkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIkNPTlZFUlNJ T04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiRE9NQUlOIikgPT0gMCB8fAogCQlzdHJj bXAodHlwZSwgIkZPUkVJR04gVEFCTEUiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwX2RiLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Ri LmMKaW5kZXggZjc2NmI2NTA1OS4uYzkwYzI4MDNmYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF9kYi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf ZGIuYwpAQCAtMTMzLDggKzEzMyw4IEBAIENvbm5lY3REYXRhYmFzZShBcmNoaXZlICpBSFgs CiAJICovCiAJZG8KIAl7Ci0JCWNvbnN0IGNoYXIgKmtleXdvcmRzWzhdOwotCQljb25zdCBj aGFyICp2YWx1ZXNbOF07CisJCWNvbnN0IGNoYXIgKmtleXdvcmRzWzldOworCQljb25zdCBj aGFyICp2YWx1ZXNbOV07CiAJCWludAkJCWkgPSAwOwogCiAJCS8qCkBAIC0xNTksNiArMTU5 LDExIEBAIENvbm5lY3REYXRhYmFzZShBcmNoaXZlICpBSFgsCiAJCX0KIAkJa2V5d29yZHNb aV0gPSAiZmFsbGJhY2tfYXBwbGljYXRpb25fbmFtZSI7CiAJCXZhbHVlc1tpKytdID0gcHJv Z25hbWU7CisJCWlmIChjcGFyYW1zLT5jb2x1bW5fZW5jcnlwdGlvbikKKwkJeworCQkJa2V5 d29yZHNbaV0gPSAiY29sdW1uX2VuY3J5cHRpb24iOworCQkJdmFsdWVzW2krK10gPSAiMSI7 CisJCX0KIAkJa2V5d29yZHNbaV0gPSBOVUxMOwogCQl2YWx1ZXNbaSsrXSA9IE5VTEw7CiAJ CUFzc2VydChpIDw9IGxlbmd0aG9mKGtleXdvcmRzKSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA0 NGQ5NTdjMDM4Li42MTVlMmEwMDI4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0LDYgKzU0LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHJpZ2dlcl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlX2QuaCIK KyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCiAjaW5jbHVkZSAiY29tbW9uL2Nvbm5lY3Qu aCIKICNpbmNsdWRlICJjb21tb24vcmVscGF0aC5oIgogI2luY2x1ZGUgImR1bXB1dGlscy5o IgpAQCAtMjI4LDYgKzIyOSw4IEBAIHN0YXRpYyB2b2lkIGR1bXBBY2Nlc3NNZXRob2QoQXJj aGl2ZSAqZm91dCwgY29uc3QgQWNjZXNzTWV0aG9kSW5mbyAqYW1pbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBPcGNsYXNzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wY2xhc3NJbmZvICpvcGNp bmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBPcGZhbWlseShBcmNoaXZlICpmb3V0LCBjb25zdCBP cGZhbWlseUluZm8gKm9wZmluZm8pOwogc3RhdGljIHZvaWQgZHVtcENvbGxhdGlvbihBcmNo aXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pOworc3RhdGljIHZvaWQgZHVt cENvbHVtbkVuY3J5cHRpb25LZXkoQXJjaGl2ZSAqZm91dCwgY29uc3QgQ2VrSW5mbyAqY2Vr aW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hpdmUgKmZvdXQs IGNvbnN0IENta0luZm8gKmNla2luZm8pOwogc3RhdGljIHZvaWQgZHVtcENvbnZlcnNpb24o QXJjaGl2ZSAqZm91dCwgY29uc3QgQ29udkluZm8gKmNvbnZpbmZvKTsKIHN0YXRpYyB2b2lk IGR1bXBSdWxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFJ1bGVJbmZvICpyaW5mbyk7CiBzdGF0 aWMgdm9pZCBkdW1wQWdnKEFyY2hpdmUgKmZvdXQsIGNvbnN0IEFnZ0luZm8gKmFnZ2luZm8p OwpAQCAtMzkzLDYgKzM5Niw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7 ImF0dHJpYnV0ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZkb3B0LmNvbHVtbl9pbnNlcnRz LCAxfSwKIAkJeyJiaW5hcnktdXBncmFkZSIsIG5vX2FyZ3VtZW50LCAmZG9wdC5iaW5hcnlf dXBncmFkZSwgMX0sCiAJCXsiY29sdW1uLWluc2VydHMiLCBub19hcmd1bWVudCwgJmRvcHQu Y29sdW1uX2luc2VydHMsIDF9LAorCQl7ImRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMiLCBu b19hcmd1bWVudCwgJmRvcHQuY3BhcmFtcy5jb2x1bW5fZW5jcnlwdGlvbiwgMX0sCiAJCXsi ZGlzYWJsZS1kb2xsYXItcXVvdGluZyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5kaXNhYmxlX2Rv bGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRyaWdnZXJzIiwgbm9fYXJndW1lbnQs ICZkb3B0LmRpc2FibGVfdHJpZ2dlcnMsIDF9LAogCQl7ImVuYWJsZS1yb3ctc2VjdXJpdHki LCBub19hcmd1bWVudCwgJmRvcHQuZW5hYmxlX3Jvd19zZWN1cml0eSwgMX0sCkBAIC02ODUs NiArNjg5LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJICogLS1pbnNlcnRz IGFyZSBhbHJlYWR5IGltcGxpZWQgYWJvdmUgaWYgLS1jb2x1bW4taW5zZXJ0cyBvcgogCSAq IC0tcm93cy1wZXItaW5zZXJ0IHdlcmUgc3BlY2lmaWVkLgogCSAqLworCWlmIChkb3B0LmNw YXJhbXMuY29sdW1uX2VuY3J5cHRpb24gJiYgZG9wdC5kdW1wX2luc2VydHMgPT0gMCkKKwkJ cGdfZmF0YWwoIm9wdGlvbiAtLWRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMgcmVxdWlyZXMg b3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNlcnQsIG9yIC0tY29sdW1uLWluc2Vy dHMiKTsKKwogCWlmIChkb3B0LmRvX25vdGhpbmcgJiYgZG9wdC5kdW1wX2luc2VydHMgPT0g MCkKIAkJcGdfZmF0YWwoIm9wdGlvbiAtLW9uLWNvbmZsaWN0LWRvLW5vdGhpbmcgcmVxdWly ZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNlcnQsIG9yIC0tY29sdW1uLWlu c2VydHMiKTsKIApAQCAtMTA1Nyw2ICsxMDY0LDcgQEAgaGVscChjb25zdCBjaGFyICpwcm9n bmFtZSkKIAlwcmludGYoXygiICAteCwgLS1uby1wcml2aWxlZ2VzICAgICAgICAgIGRvIG5v dCBkdW1wIHByaXZpbGVnZXMgKGdyYW50L3Jldm9rZSlcbiIpKTsKIAlwcmludGYoXygiICAt LWJpbmFyeS11cGdyYWRlICAgICAgICAgICAgIGZvciB1c2UgYnkgdXBncmFkZSB1dGlsaXRp ZXMgb25seVxuIikpOwogCXByaW50ZihfKCIgIC0tY29sdW1uLWluc2VydHMgICAgICAgICAg ICAgZHVtcCBkYXRhIGFzIElOU0VSVCBjb21tYW5kcyB3aXRoIGNvbHVtbiBuYW1lc1xuIikp OworCXByaW50ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyAgZGVjcnlwdCBl bmNyeXB0ZWQgY29sdW1ucyBpbiB0aGUgb3V0cHV0XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1k aXNhYmxlLWRvbGxhci1xdW90aW5nICAgICBkaXNhYmxlIGRvbGxhciBxdW90aW5nLCB1c2Ug U1FMIHN0YW5kYXJkIHF1b3RpbmdcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2FibGUtdHJp Z2dlcnMgICAgICAgICAgIGRpc2FibGUgdHJpZ2dlcnMgZHVyaW5nIGRhdGEtb25seSByZXN0 b3JlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1lbmFibGUtcm93LXNlY3VyaXR5ICAgICAgICBl bmFibGUgcm93IHNlY3VyaXR5IChkdW1wIG9ubHkgY29udGVudCB1c2VyIGhhc1xuIgpAQCAt NTU3MCw2ICs1NTc4LDEzOCBAQCBnZXRDb2xsYXRpb25zKEFyY2hpdmUgKmZvdXQsIGludCAq bnVtQ29sbGF0aW9ucykKIAlyZXR1cm4gY29sbGluZm87CiB9CiAKKy8qCisgKiBnZXRDb2x1 bW5FbmNyeXB0aW9uS2V5cworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgY29sdW1uIGVu Y3J5cHRpb24ga2V5cworICovCit2b2lkCitnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cyhBcmNo aXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsK KwlpbnQJCQludHVwczsKKwlDZWtJbmZvCSAgICpjZWtpbmZvOworCWludAkJCWlfdGFibGVv aWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jZWtuYW1lOworCWludAkJCWlfY2Vrb3du ZXI7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE2MDAwMCkKKwkJcmV0dXJuOwor CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksCisJCQkJCSAgIlNFTEVDVCBjZWsudGFibGVvaWQsIGNlay5vaWQsIGNlay5jZWtu YW1lLFxuIgorCQkJCQkgICIgY2VrLmNla293bmVyXG4iCisJCQkJCSAgIkZST00gcGdfY29s ZW5ja2V5IGNlayIpOworCisJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5k YXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKwor CWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBR Zm51bWJlcihyZXMsICJvaWQiKTsKKwlpX2Nla25hbWUgPSBQUWZudW1iZXIocmVzLCAiY2Vr bmFtZSIpOworCWlfY2Vrb3duZXIgPSBQUWZudW1iZXIocmVzLCAiY2Vrb3duZXIiKTsKKwor CWNla2luZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoQ2VrSW5mbykpOworCisJZm9y IChpbnQgaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJUEdyZXN1bHQJICAgKnJlczI7 CisJCWludAkJCQludHVwczI7CisKKwkJY2VraW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19D RUs7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQljZWtpbmZvW2ldLmRvYmouY2F0SWQub2lk ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQo JmNla2luZm9baV0uZG9iaik7CisJCWNla2luZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nla25hbWUpKTsKKwkJY2VraW5mb1tpXS5yb2xuYW1l ID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfY2Vrb3duZXIpKTsKKworCQly ZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJ CQkJCQkgICJTRUxFQ1QgKFNFTEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xt YXN0ZXJrZXkgV0hFUkUgcGdfY29sbWFzdGVya2V5Lm9pZCA9IGNrZGNta2lkKSBBUyBjZWtj bWtuYW1lLFxuIgorCQkJCQkJICAiIGNrZGNta2FsZywgY2tkZW5jdmFsXG4iCisJCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0YVxuIgorCQkJCQkJICAiV0hFUkUg Y2tkY2VraWQgPSAldSIsIGNla2luZm9baV0uZG9iai5jYXRJZC5vaWQpOworCQlyZXMyID0g RXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwor CQludHVwczIgPSBQUW50dXBsZXMocmVzMik7CisJCWNla2luZm9baV0ubnVtZGF0YSA9IG50 dXBzMjsKKwkJY2VraW5mb1tpXS5jZWtjbWtuYW1lcyA9IHBnX21hbGxvYyhzaXplb2YoY2hh ciAqKSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2VrY21rYWxncyA9IHBnX21hbGxvYyhz aXplb2YoaW50KSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2VrZW5jdmFscyA9IHBnX21h bGxvYyhzaXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJCWZvciAoaW50IGogPSAwOyBqIDwg bnR1cHMyOyBqKyspCisJCXsKKwkJCWNla2luZm9baV0uY2VrY21rbmFtZXNbal0gPSBwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMyLCBqLCBQUWZudW1iZXIocmVzMiwgImNla2Nta25hbWUi KSkpOworCQkJY2VraW5mb1tpXS5jZWtjbWthbGdzW2pdID0gYXRvaShQUWdldHZhbHVlKHJl czIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkY21rYWxnIikpKTsKKwkJCWNla2luZm9baV0u Y2VrZW5jdmFsc1tqXSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlczIsIGosIFBRZm51bWJl cihyZXMyLCAiY2tkZW5jdmFsIikpKTsKKwkJfQorCQlQUWNsZWFyKHJlczIpOworCisJCXNl bGVjdER1bXBhYmxlT2JqZWN0KCYoY2VraW5mb1tpXS5kb2JqKSwgZm91dCk7CisJfQorCVBR Y2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisKKy8qCisg KiBnZXRDb2x1bW5NYXN0ZXJLZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCBjb2x1 bW4gbWFzdGVyIGtleXMKKyAqLwordm9pZAorZ2V0Q29sdW1uTWFzdGVyS2V5cyhBcmNoaXZl ICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsKKwlp bnQJCQludHVwczsKKwlDbWtJbmZvCSAgICpjbWtpbmZvOworCWludAkJCWlfdGFibGVvaWQ7 CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jbWtuYW1lOworCWludAkJCWlfY21rb3duZXI7 CisJaW50CQkJaV9jbWtyZWFsbTsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTYw MDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIGNtay50YWJsZW9pZCwg Y21rLm9pZCwgY21rLmNta25hbWUsXG4iCisJCQkJCSAgIiBjbWsuY21rb3duZXIsIGNtay5j bWtyZWFsbVxuIgorCQkJCQkgICJGUk9NIHBnX2NvbG1hc3RlcmtleSBjbWsiKTsKKworCXJl cyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09L KTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVt YmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7 CisJaV9jbWtuYW1lID0gUFFmbnVtYmVyKHJlcywgImNta25hbWUiKTsKKwlpX2Nta293bmVy ID0gUFFmbnVtYmVyKHJlcywgImNta293bmVyIik7CisJaV9jbWtyZWFsbSA9IFBRZm51bWJl cihyZXMsICJjbWtyZWFsbSIpOworCisJY21raW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNp emVvZihDbWtJbmZvKSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG50dXBzOyBpKyspCisJ eworCQljbWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX0NNSzsKKwkJY21raW5mb1tpXS5k b2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxl b2lkKSk7CisJCWNta2luZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmY21raW5mb1tpXS5kb2JqKTsK KwkJY21raW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfY21rbmFtZSkpOworCQljbWtpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdl dHZhbHVlKHJlcywgaSwgaV9jbWtvd25lcikpOworCQljbWtpbmZvW2ldLmNta3JlYWxtID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nta3JlYWxtKSk7CisKKwkJc2VsZWN0 RHVtcGFibGVPYmplY3QoJihjbWtpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwl9CisJUFFjbGVh cihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKwogLyoKICAqIGdl dENvbnZlcnNpb25zOgogICoJICByZWFkIGFsbCBjb252ZXJzaW9ucyBpbiB0aGUgc3lzdGVt IGNhdGFsb2dzIGFuZCByZXR1cm4gdGhlbSBpbiB0aGUKQEAgLTgxNjAsNiArODMwMCw5IEBA IGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQg bnVtVGFibGVzKQogCWludAkJCWlfdHlwc3RvcmFnZTsKIAlpbnQJCQlpX2F0dGlkZW50aXR5 OwogCWludAkJCWlfYXR0Z2VuZXJhdGVkOworCWludAkJCWlfYXR0Y2VrbmFtZTsKKwlpbnQJ CQlpX2F0dGVuY2FsZzsKKwlpbnQJCQlpX2F0dGVuY2RldDsKIAlpbnQJCQlpX2F0dGlzZHJv cHBlZDsKIAlpbnQJCQlpX2F0dGxlbjsKIAlpbnQJCQlpX2F0dGFsaWduOwpAQCAtODI2OSwx NyArODQxMiwyOSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAq dGJsaW5mbywgaW50IG51bVRhYmxlcykKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49 IDEyMDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgImEuYXR0Z2Vu ZXJhdGVkXG4iKTsKKwkJCQkJCQkgImEuYXR0Z2VuZXJhdGVkLFxuIik7CisJZWxzZQorCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxLAorCQkJCQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVkLFxu Iik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNjAwMDApCisJCWFwcGVuZFBR RXhwQnVmZmVyKHEsCisJCQkJCQkgICIoU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xlbmNr ZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFtZSxcbiIKKwkJ CQkJCSAgIkNBU0UgYXR0dHlwaWQgV0hFTiAldSBUSEVOIHRydWUgV0hFTiAldSBUSEVOIGZh bHNlIEVORCBBUyBhdHRlbmNkZXQsXG4iCisJCQkJCQkgICJhdHRlbmNhbGdcbiIsCisJCQkJ CQkgIFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQpOwogCWVsc2UK IAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIicnIEFTIGF0dGdlbmVyYXRl ZFxuIik7CisJCQkJCQkJICJOVUxMIEFTIGF0dGNla25hbWUsXG4iCisJCQkJCQkJICJOVUxM IEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCQkgIk5VTEwgQVMgYXR0ZW5jYWxnXG4iKTsKIAog CS8qIG5lZWQgbGVmdCBqb2luIHRvIHBnX3R5cGUgdG8gbm90IGZhaWwgb24gZHJvcHBlZCBj b2x1bW5zIC4uLiAqLwogCWFwcGVuZFBRRXhwQnVmZmVyKHEsCiAJCQkJCSAgIkZST00gdW5u ZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4iCiAJCQkJCSAg IkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSBPTiAoc3JjLnRibG9pZCA9IGEuYXR0 cmVsaWQpICIKIAkJCQkJICAiTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfdHlwZSB0ICIKLQkJ CQkJICAiT04gKGEuYXR0dHlwaWQgPSB0Lm9pZClcbiIKKwkJCQkJICAiT04gKENBU0UgV0hF TiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxTRSBhLmF0dHR5 cGlkIEVORCA9IHQub2lkKVxuIgogCQkJCQkgICJXSEVSRSBhLmF0dG51bSA+IDA6OnBnX2Nh dGFsb2cuaW50MlxuIgogCQkJCQkgICJPUkRFUiBCWSBhLmF0dHJlbGlkLCBhLmF0dG51bSIs CiAJCQkJCSAgdGJsb2lkcy0+ZGF0YSk7CkBAIC04Mjk4LDYgKzg0NTMsOSBAQCBnZXRUYWJs ZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxl cykKIAlpX3R5cHN0b3JhZ2UgPSBQUWZudW1iZXIocmVzLCAidHlwc3RvcmFnZSIpOwogCWlf YXR0aWRlbnRpdHkgPSBQUWZudW1iZXIocmVzLCAiYXR0aWRlbnRpdHkiKTsKIAlpX2F0dGdl bmVyYXRlZCA9IFBRZm51bWJlcihyZXMsICJhdHRnZW5lcmF0ZWQiKTsKKwlpX2F0dGNla25h bWUgPSBQUWZudW1iZXIocmVzLCAiYXR0Y2VrbmFtZSIpOworCWlfYXR0ZW5jZGV0ID0gUFFm bnVtYmVyKHJlcywgImF0dGVuY2RldCIpOworCWlfYXR0ZW5jYWxnID0gUFFmbnVtYmVyKHJl cywgImF0dGVuY2FsZyIpOwogCWlfYXR0aXNkcm9wcGVkID0gUFFmbnVtYmVyKHJlcywgImF0 dGlzZHJvcHBlZCIpOwogCWlfYXR0bGVuID0gUFFmbnVtYmVyKHJlcywgImF0dGxlbiIpOwog CWlfYXR0YWxpZ24gPSBQUWZudW1iZXIocmVzLCAiYXR0YWxpZ24iKTsKQEAgLTgzNTksNiAr ODUxNyw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0Ymxp bmZvLCBpbnQgbnVtVGFibGVzKQogCQl0YmluZm8tPnR5cHN0b3JhZ2UgPSAoY2hhciAqKSBw Z19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+YXR0aWRlbnRp dHkgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRi aW5mby0+YXR0Z2VuZXJhdGVkID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXpl b2YoY2hhcikpOworCQl0YmluZm8tPmF0dGNla25hbWUgPSAoY2hhciAqKikgcGdfbWFsbG9j KG51bWF0dHMgKiBzaXplb2YoY2hhciAqKSk7CisJCXRiaW5mby0+YXR0ZW5jZGV0ID0gKGJv b2wgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoYm9vbCkpOworCQl0YmluZm8tPmF0 dGVuY2FsZyA9IChpbnQgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoaW50KSk7CiAJ CXRiaW5mby0+YXR0aXNkcm9wcGVkID0gKGJvb2wgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBz aXplb2YoYm9vbCkpOwogCQl0YmluZm8tPmF0dGxlbiA9IChpbnQgKikgcGdfbWFsbG9jKG51 bWF0dHMgKiBzaXplb2YoaW50KSk7CiAJCXRiaW5mby0+YXR0YWxpZ24gPSAoY2hhciAqKSBw Z19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CkBAIC04Mzg3LDYgKzg1NDgsMTgg QEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGlu dCBudW1UYWJsZXMpCiAJCQl0YmluZm8tPmF0dGlkZW50aXR5W2pdID0gKihQUWdldHZhbHVl KHJlcywgciwgaV9hdHRpZGVudGl0eSkpOwogCQkJdGJpbmZvLT5hdHRnZW5lcmF0ZWRbal0g PSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGdlbmVyYXRlZCkpOwogCQkJdGJpbmZvLT5u ZWVkc19vdmVycmlkZSA9IHRiaW5mby0+bmVlZHNfb3ZlcnJpZGUgfHwgKHRiaW5mby0+YXR0 aWRlbnRpdHlbal0gPT0gQVRUUklCVVRFX0lERU5USVRZX0FMV0FZUyk7CisJCQlpZiAoIVBR Z2V0aXNudWxsKHJlcywgciwgaV9hdHRjZWtuYW1lKSkKKwkJCQl0YmluZm8tPmF0dGNla25h bWVbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Y2VrbmFtZSkpOwor CQkJZWxzZQorCQkJCXRiaW5mby0+YXR0Y2VrbmFtZVtqXSA9IE5VTEw7CisJCQlpZiAoIVBR Z2V0aXNudWxsKHJlcywgciwgaV9hdHRlbmNkZXQpKQorCQkJCXRiaW5mby0+YXR0ZW5jZGV0 W2pdID0gKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGVuY2RldClbMF0gPT0gJ3QnKTsKKwkJ CWVsc2UKKwkJCQl0YmluZm8tPmF0dGVuY2RldFtqXSA9IDA7CisJCQlpZiAoIVBRZ2V0aXNu dWxsKHJlcywgciwgaV9hdHRlbmNhbGcpKQorCQkJCXRiaW5mby0+YXR0ZW5jYWxnW2pdID0g YXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRlbmNhbGcpKTsKKwkJCWVsc2UKKwkJCQl0 YmluZm8tPmF0dGVuY2FsZ1tqXSA9IDA7CiAJCQl0YmluZm8tPmF0dGlzZHJvcHBlZFtqXSA9 IChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRpc2Ryb3BwZWQpWzBdID09ICd0Jyk7CiAJCQl0 YmluZm8tPmF0dGxlbltqXSA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0bGVuKSk7 CiAJCQl0YmluZm8tPmF0dGFsaWduW2pdID0gKihQUWdldHZhbHVlKHJlcywgciwgaV9hdHRh bGlnbikpOwpAQCAtOTkxMSw2ICsxMDA4NCwxMiBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJj aGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fT1BGQU1JTFk6 CiAJCQlkdW1wT3BmYW1pbHkoZm91dCwgKGNvbnN0IE9wZmFtaWx5SW5mbyAqKSBkb2JqKTsK IAkJCWJyZWFrOworCQljYXNlIERPX0NFSzoKKwkJCWR1bXBDb2x1bW5FbmNyeXB0aW9uS2V5 KGZvdXQsIChjb25zdCBDZWtJbmZvICopIGRvYmopOworCQkJYnJlYWs7CisJCWNhc2UgRE9f Q01LOgorCQkJZHVtcENvbHVtbk1hc3RlcktleShmb3V0LCAoY29uc3QgQ21rSW5mbyAqKSBk b2JqKTsKKwkJCWJyZWFrOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWR1bXBDb2xsYXRp b24oZm91dCwgKGNvbnN0IENvbGxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBAIC0xMzMw NCw2ICsxMzQ4MywxMjkgQEAgZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBD b2xsSW5mbyAqY29sbGluZm8pCiAJZnJlZShxY29sbG5hbWUpOwogfQogCisvKgorICogZHVt cENvbHVtbkVuY3J5cHRpb25LZXkKKyAqCSAgZHVtcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUg Z2l2ZW4gY29sdW1uIGVuY3J5cHRpb24ga2V5CisgKi8KK3N0YXRpYyB2b2lkCitkdW1wQ29s dW1uRW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDZWtJbmZvICpjZWtpbmZv KQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1ZmZlciBk ZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFjZWtuYW1lOworCisJLyog RG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChkb3B0LT5kYXRhT25seSkK KwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBj cmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNla25hbWUgPSBwZ19zdHJkdXAoZm10SWQoY2Vr aW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBD T0xVTU4gRU5DUllQVElPTiBLRVkgJXM7XG4iLAorCQkJCQkgIHFjZWtuYW1lKTsKKworCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAl cyBXSVRIIFZBTFVFUyAiLAorCQkJCQkgIHFjZWtuYW1lKTsKKworCWZvciAoaW50IGkgPSAw OyBpIDwgY2VraW5mby0+bnVtZGF0YTsgaSsrKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksICIoIik7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJjb2x1bW5fbWFz dGVyX2tleSA9ICVzLCAiLCBmbXRJZChjZWtpbmZvLT5jZWtjbWtuYW1lc1tpXSkpOworCQlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImFsZ29yaXRobSA9ICclcycsICIsIGdldF9jbWth bGdfbmFtZShjZWtpbmZvLT5jZWtjbWthbGdzW2ldKSk7CisJCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiZW5jcnlwdGVkX3ZhbHVlID0gIik7CisJCWFwcGVuZFN0cmluZ0xpdGVyYWxB SChxdWVyeSwgY2VraW5mby0+Y2VrZW5jdmFsc1tpXSwgZm91dCk7CisKKwkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIpIik7CisJCWlmIChpIDwgY2VraW5mby0+bnVtZGF0YSAtIDEp CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAiKTsKKwl9CisKKwlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIjtcbiIpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCBjZWtp bmZvLT5kb2JqLmNhdElkLCBjZWtpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVf T1BUUygudGFnID0gY2VraW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNl a2luZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBFTkNS WVBUSU9OIEtFWSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAor CQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BT dG10ID0gZGVscS0+ZGF0YSkpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBf Q09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJDT0xVTU4gRU5DUllQ VElPTiBLRVkiLCBxY2VrbmFtZSwKKwkJCQkJTlVMTCwgY2VraW5mby0+cm9sbmFtZSwKKwkJ CQkJY2VraW5mby0+ZG9iai5jYXRJZCwgMCwgY2VraW5mby0+ZG9iai5kdW1wSWQpOworCisJ aWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX1NFQ0xBQkVMKQorCQlk dW1wU2VjTGFiZWwoZm91dCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIHFjZWtuYW1lLAor CQkJCQkgTlVMTCwgY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJIGNla2luZm8tPmRvYmouY2F0 SWQsIDAsIGNla2luZm8tPmRvYmouZHVtcElkKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihk ZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCWZyZWUocWNla25hbWUpOwor fQorCisvKgorICogZHVtcENvbHVtbk1hc3RlcktleQorICoJICBkdW1wIHRoZSBkZWZpbml0 aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4gbWFzdGVyIGtleQorICovCitzdGF0aWMgdm9pZAor ZHVtcENvbHVtbk1hc3RlcktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDbWtJbmZvICpjbWtp bmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1ZmZl ciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFjbWtuYW1lOworCisJ LyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChkb3B0LT5kYXRhT25s eSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkg PSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNta25hbWUgPSBwZ19zdHJkdXAoZm10SWQo Y21raW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJP UCBDT0xVTU4gTUFTVEVSIEtFWSAlcztcbiIsCisJCQkJCSAgcWNta25hbWUpOworCisJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgJXMgV0lU SCAoIiwKKwkJCQkJICBxY21rbmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwg InJlYWxtID0gIik7CisJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjbWtpbmZvLT5j bWtyZWFsbSwgZm91dCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4i KTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklU SU9OKQorCQlBcmNoaXZlRW50cnkoZm91dCwgY21raW5mby0+ZG9iai5jYXRJZCwgY21raW5m by0+ZG9iai5kdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IGNta2luZm8tPmRv YmoubmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQkJ CQkgIC5kZXNjcmlwdGlvbiA9ICJDT0xVTU4gTUFTVEVSIEtFWSIsCisJCQkJCQkJCSAgLnNl Y3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVl cnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJaWYg KGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBD b21tZW50KGZvdXQsICJDT0xVTU4gTUFTVEVSIEtFWSIsIHFjbWtuYW1lLAorCQkJCQlOVUxM LCBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQljbWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtp bmZvLT5kb2JqLmR1bXBJZCk7CisKKwlpZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9D T01QT05FTlRfU0VDTEFCRUwpCisJCWR1bXBTZWNMYWJlbChmb3V0LCAiQ09MVU1OIE1BU1RF UiBLRVkiLCBxY21rbmFtZSwKKwkJCQkJIE5VTEwsIGNta2luZm8tPnJvbG5hbWUsCisJCQkJ CSBjbWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlk ZXN0cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsK KwlmcmVlKHFjbWtuYW1lKTsKK30KKwogLyoKICAqIGR1bXBDb252ZXJzaW9uCiAgKgkgIHdy aXRlIG91dCBhIHNpbmdsZSBjb252ZXJzaW9uIGRlZmluaXRpb24KQEAgLTE1Mzg3LDYgKzE1 Njg5LDIyIEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUlu Zm8gKnRiaW5mbykKIAkJCQkJCQkJCQkgIHRiaW5mby0+YXR0dHlwbmFtZXNbal0pOwogCQkJ CQl9CiAKKwkJCQkJaWYgKHRiaW5mby0+YXR0Y2VrbmFtZVtqXSkKKwkJCQkJeworCQkJCQkJ YXBwZW5kUFFFeHBCdWZmZXIocSwgIiBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRp b25fa2V5ID0gJXMsICIsCisJCQkJCQkJCQkJICBmbXRJZCh0YmluZm8tPmF0dGNla25hbWVb al0pKTsKKwkJCQkJCS8qCisJCQkJCQkgKiBUbyByZWR1Y2Ugb3V0cHV0IHNpemUsIHdlIGRv bid0IHByaW50IHRoZSBkZWZhdWx0CisJCQkJCQkgKiBvZiBlbmNyeXB0aW9uX3R5cGUsIGJ1 dCB3ZSBkbyBwcmludCB0aGUgZGVmYXVsdCBvZgorCQkJCQkJICogYWxnb3JpdGhtLCBzaW5j ZSB3ZSBtaWdodCB3YW50IHRvIGNoYW5nZSB0byBhIG5ldworCQkJCQkJICogZGVmYXVsdCBh bGdvcml0aG0gc29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4KKwkJCQkJCSAqLworCQkJCQkJaWYg KHRiaW5mby0+YXR0ZW5jZGV0W2pdKQorCQkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJl bmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljLCAiKTsKKwkJCQkJCWFwcGVuZFBRRXhw QnVmZmVyKHEsICJhbGdvcml0aG0gPSAnJXMnKSIsCisJCQkJCQkJCQkJICBnZXRfY2VrYWxn X25hbWUodGJpbmZvLT5hdHRlbmNhbGdbal0pKTsKKwkJCQkJfQorCiAJCQkJCWlmIChwcmlu dF9kZWZhdWx0KQogCQkJCQl7CiAJCQkJCQlpZiAodGJpbmZvLT5hdHRnZW5lcmF0ZWRbal0g PT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCkBAIC0xNzk1MSw2ICsxODI2OSw4IEBA IGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBu dW1PYmpzLAogCQkJY2FzZSBET19BQ0NFU1NfTUVUSE9EOgogCQkJY2FzZSBET19PUENMQVNT OgogCQkJY2FzZSBET19PUEZBTUlMWToKKwkJCWNhc2UgRE9fQ0VLOgorCQkJY2FzZSBET19D TUs6CiAJCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWNhc2UgRE9fQ09OVkVSU0lPTjoKIAkJ CWNhc2UgRE9fVEFCTEU6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA0MzZhYzViYjk4Li4wNzI0ZjNh ZTA4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3LDYgKzQ3LDggQEAgdHlwZWRlZiBlbnVtCiAJ RE9fQUNDRVNTX01FVEhPRCwKIAlET19PUENMQVNTLAogCURPX09QRkFNSUxZLAorCURPX0NF SywKKwlET19DTUssCiAJRE9fQ09MTEFUSU9OLAogCURPX0NPTlZFUlNJT04sCiAJRE9fVEFC TEUsCkBAIC0zMzMsNiArMzM1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJv b2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3BwZWQ7IGRvbid0 IGR1bXAgaXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAgICphdHRnZW5l cmF0ZWQ7CisJY2hhcgkgICoqYXR0Y2VrbmFtZTsKKwlpbnQJCSAgICphdHRlbmNhbGc7CisJ Ym9vbAkgICAqYXR0ZW5jZGV0OwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBhdHRyaWJ1dGUg bGVuZ3RoLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJY2hhcgkgICAqYXR0YWxpZ247 CQkvKiBhdHRyaWJ1dGUgYWxpZ24sIHVzZWQgYnkgYmluYXJ5X3VwZ3JhZGUgKi8KIAlib29s CSAgICphdHRpc2xvY2FsOwkJLyogdHJ1ZSBpZiBhdHRyIGhhcyBsb2NhbCBkZWZpbml0aW9u ICovCkBAIC02NjQsNiArNjY5LDMwIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25J bmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogfSBTdWJzY3JpcHRpb25JbmZvOwog CisvKgorICogVGhlIENla0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVt biBlbmNyeXB0aW9uIGtleS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX0Nla0luZm8KK3sKKwlE dW1wYWJsZU9iamVjdCBkb2JqOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJaW50CQkJbnVt ZGF0YTsKKwkvKiBUaGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVtZGF0YSBlbnRyaWVz IGVhY2g6ICovCisJY2hhcgkgICoqY2VrY21rbmFtZXM7CisJaW50CQkgICAqY2VrY21rYWxn czsKKwljaGFyCSAgKipjZWtlbmN2YWxzOworfSBDZWtJbmZvOworCisvKgorICogVGhlIENt a0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVtbiBtYXN0ZXIga2V5Lgor ICovCit0eXBlZGVmIHN0cnVjdCBfQ21rSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7 CisJY29uc3QgY2hhciAqcm9sbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsKK30gQ21rSW5m bzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBAIC03MTEsNiAr NzQwLDggQEAgZXh0ZXJuIEFjY2Vzc01ldGhvZEluZm8gKmdldEFjY2Vzc01ldGhvZHMoQXJj aGl2ZSAqZm91dCwgaW50ICpudW1BY2Nlc3NNZXRob2RzKTsKIGV4dGVybiBPcGNsYXNzSW5m byAqZ2V0T3BjbGFzc2VzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3BjbGFzc2VzKTsKIGV4 dGVybiBPcGZhbWlseUluZm8gKmdldE9wZmFtaWxpZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpu dW1PcGZhbWlsaWVzKTsKIGV4dGVybiBDb2xsSW5mbyAqZ2V0Q29sbGF0aW9ucyhBcmNoaXZl ICpmb3V0LCBpbnQgKm51bUNvbGxhdGlvbnMpOworZXh0ZXJuIHZvaWQgZ2V0Q29sdW1uRW5j cnlwdGlvbktleXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRDb2x1bW5NYXN0 ZXJLZXlzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIENvbnZJbmZvICpnZXRDb252ZXJzaW9u cyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbnZlcnNpb25zKTsKIGV4dGVybiBUYWJsZUlu Zm8gKmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcyk7CiBleHRlcm4g dm9pZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9z b3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMzFjZWU0NmYz ZS4uYmY2NDQ2Zjk1MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29y dC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNjksNiArNjks OCBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX1RTVEVNUExBVEUsCiAJ UFJJT19UU0RJQ1QsCiAJUFJJT19UU0NPTkZJRywKKwlQUklPX0NNSywKKwlQUklPX0NFSywK IAlQUklPX0ZEVywKIAlQUklPX0ZPUkVJR05fU0VSVkVSLAogCVBSSU9fVEFCTEUsCkBAIC0x MTEsNiArMTEzLDggQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtd ID0KIAlQUklPX0FDQ0VTU19NRVRIT0QsCQkJLyogRE9fQUNDRVNTX01FVEhPRCAqLwogCVBS SU9fT1BGQU1JTFksCQkJCS8qIERPX09QQ0xBU1MgKi8KIAlQUklPX09QRkFNSUxZLAkJCQkv KiBET19PUEZBTUlMWSAqLworCVBSSU9fQ0VLLAkJCQkJLyogRE9fQ0VLICovCisJUFJJT19D TUssCQkJCQkvKiBET19DTUsgKi8KIAlQUklPX0NPTExBVElPTiwJCQkJLyogRE9fQ09MTEFU SU9OICovCiAJUFJJT19DT05WRVJTSU9OLAkJCS8qIERPX0NPTlZFUlNJT04gKi8KIAlQUklP X1RBQkxFLAkJCQkJLyogRE9fVEFCTEUgKi8KQEAgLTEzMjIsNiArMTMyNiwxNiBAQCBkZXNj cmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50 IGJ1ZnNpemUpCiAJCQkJCSAiT1BFUkFUT1IgRkFNSUxZICVzICAoSUQgJWQgT0lEICV1KSIs CiAJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQly ZXR1cm47CisJCWNhc2UgRE9fQ0VLOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJ CQkgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmot PmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOworCQljYXNlIERPX0NNSzoK KwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJDT0xVTU4gTUFTVEVSIEtFWSAo SUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwor CQkJcmV0dXJuOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVm c2l6ZSwKIAkJCQkJICJDT0xMQVRJT04gJXMgIChJRCAlZCBPSUQgJXUpIiwKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcGFsbC5jCmluZGV4IDdiNDAwODE2NzguLmEzOTllZjhkNTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXBhbGwuYwpAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgYm9vbCBkb3N5bmMgPSB0cnVlOwog CiBzdGF0aWMgaW50CWJpbmFyeV91cGdyYWRlID0gMDsKIHN0YXRpYyBpbnQJY29sdW1uX2lu c2VydHMgPSAwOworc3RhdGljIGludAlkZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zID0gMDsK IHN0YXRpYyBpbnQJZGlzYWJsZV9kb2xsYXJfcXVvdGluZyA9IDA7CiBzdGF0aWMgaW50CWRp c2FibGVfdHJpZ2dlcnMgPSAwOwogc3RhdGljIGludAlpZl9leGlzdHMgPSAwOwpAQCAtMTU0 LDYgKzE1NSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJeyJhdHRyaWJ1 dGUtaW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1uX2luc2VydHMsIDF9LAogCQl7ImJp bmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZiaW5hcnlfdXBncmFkZSwgMX0sCiAJCXsi Y29sdW1uLWluc2VydHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNlcnRzLCAxfSwKKwkJ eyJkZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJndW1lbnQsICZkZWNyeXB0X2Vu Y3J5cHRlZF9jb2x1bW5zLCAxfSwKIAkJeyJkaXNhYmxlLWRvbGxhci1xdW90aW5nIiwgbm9f YXJndW1lbnQsICZkaXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRy aWdnZXJzIiwgbm9fYXJndW1lbnQsICZkaXNhYmxlX3RyaWdnZXJzLCAxfSwKIAkJeyJleGNs dWRlLWRhdGFiYXNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDZ9LApAQCAtNDI0LDYg KzQyNiw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWJpbmFyeS11cGdyYWRlIik7CiAJaWYgKGNvbHVt bl9pbnNlcnRzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tY29s dW1uLWluc2VydHMiKTsKKwlpZiAoZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucykKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRlY3J5cHQtZW5jcnlwdGVkLWNv bHVtbnMiKTsKIAlpZiAoZGlzYWJsZV9kb2xsYXJfcXVvdGluZykKIAkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRpc2FibGUtZG9sbGFyLXF1b3RpbmciKTsKIAlp ZiAoZGlzYWJsZV90cmlnZ2VycykKQEAgLTY0OSw2ICs2NTMsNyBAQCBoZWxwKHZvaWQpCiAJ cHJpbnRmKF8oIiAgLXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBkbyBub3QgZHVtcCBw cml2aWxlZ2VzIChncmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1iaW5hcnkt dXBncmFkZSAgICAgICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRpbGl0aWVzIG9ubHlc biIpKTsKIAlwcmludGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAgICAgICAgIGR1bXAg ZGF0YSBhcyBJTlNFUlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNcbiIpKTsKKwlwcmlu dGYoXygiICAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5cHQgZW5jcnlwdGVk IGNvbHVtbnMgaW4gdGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS1k b2xsYXItcXVvdGluZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywgdXNlIFNRTCBzdGFu ZGFyZCBxdW90aW5nXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLXRyaWdnZXJzICAg ICAgICAgICBkaXNhYmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkgcmVzdG9yZVxuIikp OwogCXByaW50ZihfKCIgIC0tZXhjbHVkZS1kYXRhYmFzZT1QQVRURVJOICAgZXhjbHVkZSBk YXRhYmFzZXMgd2hvc2UgbmFtZSBtYXRjaGVzIFBBVFRFUk5cbiIpKTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKaW5kZXggN2MzMDY3YTNmNC4uN2IzNzQ1YzAxOCAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTY0NSw2ICs2NDUsMTggQEAKIAkJdW5saWtlICAg ID0+IHsgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgbm9fb3duZXIgPT4gMSwgfSwKIAl9LAog CisJJ0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVSIFRPJyA9PiB7CisJ CXJlZ2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgT1dORVIg VE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEg PT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fb3duZXIgPT4gMSwgfSwKKwl9LAorCisJJ0FM VEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgT1dORVIgVE8nID0+IHsKKwkJcmVnZXhwID0+ IHFyL15BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPIC4rOy9tLAorCQls aWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVu bGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwKKwogCSdBTFRFUiBGT1JFSUdOIERB VEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTycgPT4gewogCQlyZWdleHAgPT4gcXIvXkFMVEVS IEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15IE9XTkVSIFRPIC4rOy9tLAogCQlsaWtlICAg PT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCkBAIC0xMjQ1LDYg KzEyNTcsMjQgQEAKIAkJbGlrZSAgICAgID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVf ZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTUsCisJCWNyZWF0ZV9zcWwgICA9 PiAnQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMQorCQkJCQkgICBJUyBc J2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5XCc7JywKKwkJcmVnZXhwID0+CisJ CSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgSVMgJ2NvbW1l bnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5JzsvbSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NPTU1FTlQgT04gQ09M VU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTUsCisJCWNy ZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxCisJCQkJ CSAgIElTIFwnY29tbWVudCBvbiBjb2x1bW4gbWFzdGVyIGtleVwnOycsCisJCXJlZ2V4cCA9 PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgSVMgJ2NvbW1l bnQgb24gY29sdW1uIG1hc3RlciBrZXknOy9tLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ09NTUVOVCBPTiBMQVJHRSBP QkpFQ1QgLi4uJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2NSwKIAkJY3JlYXRlX3NxbCAg ID0+ICdETyAkJApAQCAtMTY2Myw2ICsxNjkzLDI0IEBACiAJCWxpa2UgPT4geyAlZnVsbF9y dW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUxLAorCQlj cmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRI IFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBhbGdvcml0aG0gPSAnUlNBRVNf T0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHhERUFEQkVFRicpOyIsCisJCXJl Z2V4cCAgICAgICA9PiBxci9eCisJCQlcUUNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBhbGdvcml0aG0g PSAnUlNBRVNfT0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9IFxFCisJCQkveG0sCisJ CWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJfSwK KworCSdDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3Jk ZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgICA9PiAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ IGNtazEgV0lUSCAocmVhbG0gPSAnbXlyZWFsbScpOyIsCisJCXJlZ2V4cCAgICAgICA9PiBx ci9eCisJCQlcUUNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKHJlYWxtID0g J215cmVhbG0nKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlv bl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIERBVEFCQVNFIHBvc3RncmVz JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUNSRUFURSBEQVRBQkFTRSBwb3N0Z3Jl cyBXSVRIIFRFTVBMQVRFID0gdGVtcGxhdGUwIFxFCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCBkZTZhM2E3MWY4 Li5iNjg0NjdhMmRmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBi L3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTgxNCw3ICs4MTQsMTEgQEAgZXhlY19jb21t YW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNv bnN0IGNoYXIgKmNtZCkKIAkJCQlzdWNjZXNzID0gZGVzY3JpYmVUYWJsZXNwYWNlcyhwYXR0 ZXJuLCBzaG93X3ZlcmJvc2UpOwogCQkJCWJyZWFrOwogCQkJY2FzZSAnYyc6Ci0JCQkJaWYg KHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDApCisJCQkJaWYgKHN0cm5jbXAoY21k LCAiZGNlayIsIDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q0VLcyhwYXR0ZXJuLCBz aG93X3ZlcmJvc2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNtayIsIDQpID09 IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q01LcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOwor CQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDApCiAJCQkJCXN1 Y2Nlc3MgPSBkZXNjcmliZUNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzKHBhdHRlcm4sCiAJCQkJ CQkJCQkJCQkJCQkgIHNob3dfdmVyYm9zZSwKIAkJCQkJCQkJCQkJCQkJCSAgc2hvd19zeXN0 ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYwppbmRleCBkZjE2NjM2NWU4Li41NWI5MGFkZjMzIDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwpAQCAtMTUzMiw3ICsxNTMyLDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3Qg Y2hhciAqc2NoZW1hbmFtZSwKIAlib29sCQlwcmludFRhYmxlSW5pdGlhbGl6ZWQgPSBmYWxz ZTsKIAlpbnQJCQlpOwogCWNoYXIJICAgKnZpZXdfZGVmID0gTlVMTDsKLQljaGFyCSAgICpo ZWFkZXJzWzEyXTsKKwljaGFyCSAgICpoZWFkZXJzWzEzXTsKIAlQUUV4cEJ1ZmZlckRhdGEg dGl0bGU7CiAJUFFFeHBCdWZmZXJEYXRhIHRtcGJ1ZjsKIAlpbnQJCQljb2xzOwpAQCAtMTU0 OCw2ICsxNTQ4LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAkJCQlmZHdvcHRzX2NvbCA9IC0xLAogCQkJCWF0dHN0b3JhZ2VfY29sID0g LTEsCiAJCQkJYXR0Y29tcHJlc3Npb25fY29sID0gLTEsCisJCQkJYXR0Y2VrbmFtZV9jb2wg PSAtMSwKIAkJCQlhdHRzdGF0dGFyZ2V0X2NvbCA9IC0xLAogCQkJCWF0dGRlc2NyX2NvbCA9 IC0xOwogCWludAkJCW51bXJvd3M7CkBAIC0xODQ2LDcgKzE4NDcsNyBAQCBkZXNjcmliZU9u ZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWNvbHMgPSAwOwogCXBy aW50ZlBRRXhwQnVmZmVyKCZidWYsICJTRUxFQ1QgYS5hdHRuYW1lIik7CiAJYXR0bmFtZV9j b2wgPSBjb2xzKys7Ci0JYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0 YWxvZy5mb3JtYXRfdHlwZShhLmF0dHR5cGlkLCBhLmF0dHR5cG1vZCkiKTsKKwlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKENBU0Ug V0hFTiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxTRSBhLmF0 dHR5cGlkIEVORCwgYS5hdHR0eXBtb2QpIik7CiAJYXR0dHlwZV9jb2wgPSBjb2xzKys7CiAK IAlpZiAoc2hvd19jb2x1bW5fZGV0YWlscykKQEAgLTE4NjAsNyArMTg2MSw3IEBAIGRlc2Ny aWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWF0dHJkZWZf Y29sID0gY29scysrOwogCQlhdHRub3RudWxsX2NvbCA9IGNvbHMrKzsKIAkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0 YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIHRcbiIKLQkJCQkJCQkg IiAgIFdIRVJFIGMub2lkID0gYS5hdHRjb2xsYXRpb24gQU5EIHQub2lkID0gYS5hdHR0eXBp ZCBBTkQgYS5hdHRjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24pIEFTIGF0dGNvbGxhdGlv biIpOworCQkJCQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxhdGlvbiBBTkQgdC5v aWQgPSAoQ0FTRSBXSEVOIGEuYXR0cmVhbHR5cGlkIDw+IDAgVEhFTiBhLmF0dHJlYWx0eXBp ZCBFTFNFIGEuYXR0dHlwaWQgRU5EKSBBTkQgYS5hdHRjb2xsYXRpb24gPD4gdC50eXBjb2xs YXRpb24pIEFTIGF0dGNvbGxhdGlvbiIpOwogCQlhdHRjb2xsX2NvbCA9IGNvbHMrKzsKIAkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQogCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIixcbiAgYS5hdHRpZGVudGl0eSIpOwpAQCAtMTkxMSw2ICsxOTEyLDE4IEBAIGRl c2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQlhdHRj b21wcmVzc2lvbl9jb2wgPSBjb2xzKys7CiAJCX0KIAorCQkvKiBlbmNyeXB0aW9uIGluZm8g Ki8KKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwICYmCisJCQkhcHNldC5oaWRlX2Nv bHVtbl9lbmNyeXB0aW9uICYmCisJCQkodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9S RUxBVElPTiB8fAorCQkJIHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfVklFVyB8fAor CQkJIHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJIHRhYmxl aW5mby5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpKQorCQl7CisJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICAoU0VMRUNUIGNla25hbWUgRlJPTSBw Z19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFt ZSIpOworCQkJYXR0Y2VrbmFtZV9jb2wgPSBjb2xzKys7CisJCX0KKwogCQkvKiBzdGF0cyB0 YXJnZXQsIGlmIHJlbGV2YW50IHRvIHJlbGtpbmQgKi8KIAkJaWYgKHRhYmxlaW5mby5yZWxr aW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKIAkJCXRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfSU5ERVggfHwKQEAgLTIwMzQsNiArMjA0Nyw4IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWhlYWRlcnNbY29scysrXSA9IGdl dHRleHRfbm9vcCgiU3RvcmFnZSIpOwogCWlmIChhdHRjb21wcmVzc2lvbl9jb2wgPj0gMCkK IAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb21wcmVzc2lvbiIpOworCWlm IChhdHRjZWtuYW1lX2NvbCA+PSAwKQorCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25v b3AoIkVuY3J5cHRpb24iKTsKIAlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJaGVh ZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQiKTsKIAlpZiAoYXR0 ZGVzY3JfY29sID49IDApCkBAIC0yMTI2LDYgKzIxNDEsMTcgQEAgZGVzY3JpYmVPbmVUYWJs ZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkgIGZhbHNlLCBmYWxz ZSk7CiAJCX0KIAorCQkvKiBDb2x1bW4gZW5jcnlwdGlvbiAqLworCQlpZiAoYXR0Y2VrbmFt ZV9jb2wgPj0gMCkKKwkJeworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGF0dGNla25h bWVfY29sKSkKKwkJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMs IGksIGF0dGNla25hbWVfY29sKSwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQkJZWxz ZQorCQkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCAiIiwKKwkJCQkJCQkJICBmYWxzZSwg ZmFsc2UpOworCQl9CisKIAkJLyogU3RhdGlzdGljcyB0YXJnZXQsIGlmIHRoZSByZWxraW5k IHN1cHBvcnRzIHRoaXMgZmVhdHVyZSAqLwogCQlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0g MCkKIAkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgYXR0 c3RhdHRhcmdldF9jb2wpLApAQCAtNDQ3OSw2ICs0NTA1LDEzNCBAQCBsaXN0Q29udmVyc2lv bnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0p CiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qCisgKiBcZGNlaworICoKKyAqIExpc3RzIGNvbHVt biBlbmNyeXB0aW9uIGtleXMuCisgKi8KK2Jvb2wKK2xpc3RDRUtzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCVBHcmVz dWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisJaWYg KHBzZXQuc3ZlcnNpb24gPCAxNjAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKwor CQlwZ19sb2dfZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBv cnQgY29sdW1uIGVuY3J5cHRpb24uIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihw c2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3Zl cmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYp OworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUIGNla25hbWUg QVMgXCIlc1wiLCAiCisJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGNla293 bmVyKSBBUyBcIiVzXCIsICIKKwkJCQkJICAiY21rbmFtZSBBUyBcIiVzXCIiLAorCQkJCQkg IGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwK KwkJCQkJICBnZXR0ZXh0X25vb3AoIk1hc3RlciBrZXkiKSk7CisJaWYgKHZlcmJvc2UpCisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHBnX2NhdGFsb2cub2JqX2Rl c2NyaXB0aW9uKGNlay5vaWQsICdwZ19jb2xlbmNrZXknKSBBUyBcIiVzXCIiLAorCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGVuY2tleSBjZWsgIgor CQkJCQkJICJKT0lOIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0YSBja2QgT04gKGNlay5v aWQgPSBja2QuY2tkY2VraWQpICIKKwkJCQkJCSAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbG1h c3RlcmtleSBjbWsgT04gKGNrZC5ja2RjbWtpZCA9IGNtay5vaWQpICIpOworCisJaWYgKCF2 YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIGZhbHNlLCBmYWxzZSwKKwkJ CQkJCQkJTlVMTCwgImNla25hbWUiLCBOVUxMLCBOVUxMLAorCQkJCQkJCQlOVUxMLCAxKSkK Kwl7CisJCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwor CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLCAzIik7CisKKwlyZXMg PSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICgh cmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCW15 b3B0LnRpdGxlID0gXygiTGlzdCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIik7CisJbXlv cHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0 LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJl cyk7CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBcZGNtaworICoKKyAqIExpc3RzIGNv bHVtbiBtYXN0ZXIga2V5cy4KKyAqLworYm9vbAorbGlzdENNS3MoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1 bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisKKwlpZiAo cHNldC5zdmVyc2lvbiA8IDE2MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJ CXBnX2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9y dCBjb2x1bW4gZW5jcnlwdGlvbi4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBz ZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVy YnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7 CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1QgY21rbmFtZSBB UyBcIiVzXCIsICIKKwkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoY21rb3du ZXIpIEFTIFwiJXNcIiwgIgorCQkJCQkgICJjbWtyZWFsbSBBUyBcIiVzXCIiLAorCQkJCQkg IGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwK KwkJCQkJICBnZXR0ZXh0X25vb3AoIlJlYWxtIikpOworCWlmICh2ZXJib3NlKQorCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBwZ19jYXRhbG9nLm9ial9kZXNjcmlw dGlvbihvaWQsICdwZ19jb2xtYXN0ZXJrZXknKSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0 ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs CisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2NvbG1hc3RlcmtleSAiKTsKKworCWlm ICghdmFsaWRhdGVTUUxOYW1lUGF0dGVybigmYnVmLCBwYXR0ZXJuLCBmYWxzZSwgZmFsc2Us CisJCQkJCQkJCU5VTEwsICJjbWtuYW1lIiwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJTlVMTCwg MSkpCisJeworCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSIpOworCisJcmVz ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAo IXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwlt eW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgY29sdW1uIG1hc3RlciBrZXlzIik7CisJbXlvcHQu dHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBw c2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7 CisJcmV0dXJuIHRydWU7Cit9CisKIC8qCiAgKiBcZGNvbmZpZwogICoKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5k ZXggYmQwNTFlMDljYi4uZGViZGI2MGUxMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTc2LDYgKzc2LDEy IEBAIGV4dGVybiBib29sIGxpc3REb21haW5zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKTsKIC8qIFxkYyAqLwogZXh0ZXJuIGJvb2wgbGlz dENvbnZlcnNpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBz aG93U3lzdGVtKTsKIAorLyogXGRjZWsgKi8KK2V4dGVybiBib29sIGxpc3RDRUtzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CisKKy8qIFxkY21rICovCitleHRlcm4g Ym9vbCBsaXN0Q01Lcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOworCiAv KiBcZGNvbmZpZyAqLwogZXh0ZXJuIGJvb2wgZGVzY3JpYmVDb25maWd1cmF0aW9uUGFyYW1l dGVycyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsCiAJCQkJCQkJCQkJCWJv b2wgc2hvd1N5c3RlbSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3Jj L2Jpbi9wc3FsL2hlbHAuYwppbmRleCBiNGUwZWMyNjg3Li4xYjlkZTE5MWY2IDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAg LTI1Miw2ICsyNTIsOCBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikK IAlIRUxQMCgiICBcXGRBcFsrXSBbQU1QVFJOIFtPUEZQVFJOXV0gICBsaXN0IHN1cHBvcnQg ZnVuY3Rpb25zIG9mIG9wZXJhdG9yIGZhbWlsaWVzXG4iKTsKIAlIRUxQMCgiICBcXGRiWytd ICBbUEFUVEVSTl0gICAgICBsaXN0IHRhYmxlc3BhY2VzXG4iKTsKIAlIRUxQMCgiICBcXGRj W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGNvbnZlcnNpb25zXG4iKTsKKwlIRUxQMCgiICBc XGRjZWtbK10gW1BBVFRFUk5dICAgICBsaXN0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXNcbiIp OworCUhFTFAwKCIgIFxcZGNta1srXSBbUEFUVEVSTl0gICAgIGxpc3QgY29sdW1uIG1hc3Rl ciBrZXlzXG4iKTsKIAlIRUxQMCgiICBcXGRjb25maWdbK10gW1BBVFRFUk5dICBsaXN0IGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyc1xuIik7CiAJSEVMUDAoIiAgXFxkQ1srXSAgW1BBVFRF Uk5dICAgICAgbGlzdCBjYXN0c1xuIik7CiAJSEVMUDAoIiAgXFxkZFtTXSAgW1BBVFRFUk5d ICAgICAgc2hvdyBvYmplY3QgZGVzY3JpcHRpb25zIG5vdCBkaXNwbGF5ZWQgZWxzZXdoZXJl XG4iKTsKQEAgLTQxMyw2ICs0MTUsOCBAQCBoZWxwVmFyaWFibGVzKHVuc2lnbmVkIHNob3J0 IGludCBwYWdlcikKIAkJICAiICAgIHRydWUgaWYgbGFzdCBxdWVyeSBmYWlsZWQsIGVsc2Ug ZmFsc2VcbiIpOwogCUhFTFAwKCIgIEZFVENIX0NPVU5UXG4iCiAJCSAgIiAgICB0aGUgbnVt YmVyIG9mIHJlc3VsdCByb3dzIHRvIGZldGNoIGFuZCBkaXNwbGF5IGF0IGEgdGltZSAoMCA9 IHVubGltaXRlZClcbiIpOworCUhFTFAwKCIgIEhJREVfQ09MVU1OX0VOQ1JZUFRJT05cbiIK KwkJICAiICAgIGlmIHNldCwgY29sdW1uIGVuY3J5cHRpb24gZGV0YWlscyBhcmUgbm90IGRp c3BsYXllZFxuIik7CiAJSEVMUDAoIiAgSElERV9UQUJMRUFNXG4iCiAJCSAgIiAgICBpZiBz ZXQsIHRhYmxlIGFjY2VzcyBtZXRob2RzIGFyZSBub3QgZGlzcGxheWVkXG4iKTsKIAlIRUxQ MCgiICBISURFX1RPQVNUX0NPTVBSRVNTSU9OXG4iCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvc2V0dGluZ3MuaCBiL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oCmluZGV4IDNmY2U3MWI4 NWYuLjRiZTIxNzkwOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oCisr KyBiL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oCkBAIC0xMzcsNiArMTM3LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgX3BzcWxTZXR0aW5ncwogCWJvb2wJCXF1aWV0OwogCWJvb2wJCXNpbmdsZWxp bmU7CiAJYm9vbAkJc2luZ2xlc3RlcDsKKwlib29sCQloaWRlX2NvbHVtbl9lbmNyeXB0aW9u OwogCWJvb2wJCWhpZGVfY29tcHJlc3Npb247CiAJYm9vbAkJaGlkZV90YWJsZWFtOwogCWlu dAkJCWZldGNoX2NvdW50OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyBi L3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKaW5kZXggZjViOWUyNjhmMi4uMGI4MTJmMzMyMiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYworKysgYi9zcmMvYmluL3BzcWwv c3RhcnR1cC5jCkBAIC0xMTg4LDYgKzExODgsMTMgQEAgaGlkZV9jb21wcmVzc2lvbl9ob29r KGNvbnN0IGNoYXIgKm5ld3ZhbCkKIAkJCQkJCQkgJnBzZXQuaGlkZV9jb21wcmVzc2lvbik7 CiB9CiAKK3N0YXRpYyBib29sCitoaWRlX2NvbHVtbl9lbmNyeXB0aW9uX2hvb2soY29uc3Qg Y2hhciAqbmV3dmFsKQoreworCXJldHVybiBQYXJzZVZhcmlhYmxlQm9vbChuZXd2YWwsICJI SURFX0NPTFVNTl9FTkNSWVBUSU9OIiwKKwkJCQkJCQkgJnBzZXQuaGlkZV9jb2x1bW5fZW5j cnlwdGlvbik7Cit9CisKIHN0YXRpYyBib29sCiBoaWRlX3RhYmxlYW1faG9vayhjb25zdCBj aGFyICpuZXd2YWwpCiB7CkBAIC0xMjU5LDYgKzEyNjYsOSBAQCBFc3RhYmxpc2hWYXJpYWJs ZVNwYWNlKHZvaWQpCiAJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJTSE9XX0NPTlRF WFQiLAogCQkJCQkgc2hvd19jb250ZXh0X3N1YnN0aXR1dGVfaG9vaywKIAkJCQkJIHNob3df Y29udGV4dF9ob29rKTsKKwlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywgIkhJREVfQ09M VU1OX0VOQ1JZUFRJT04iLAorCQkJCQkgYm9vbF9zdWJzdGl0dXRlX2hvb2ssCisJCQkJCSBo aWRlX2NvbHVtbl9lbmNyeXB0aW9uX2hvb2spOwogCVNldFZhcmlhYmxlSG9va3MocHNldC52 YXJzLCAiSElERV9UT0FTVF9DT01QUkVTU0lPTiIsCiAJCQkJCSBib29sX3N1YnN0aXR1dGVf aG9vaywKIAkJCQkJIGhpZGVfY29tcHJlc3Npb25faG9vayk7CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMK aW5kZXggMmEzOTIxOTM3Yy4uZGM4YzQzMjQ1MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAt MTE3NSw2ICsxMTc1LDE2IEBAIHN0YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9m b3JfbGlzdF9vZl9zdWJzY3JpcHRpb25zW10gPSB7CiAJezAsIE5VTEx9CiB9OwogCitzdGF0 aWMgY29uc3QgVmVyc2lvbmVkUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrc1tdID0gewor CXsxNjAwMDAsICJTRUxFQ1QgY2VrbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5 IFdIRVJFIGNla25hbWUgTElLRSAnJXMnIn0sCisJezAsIE5VTEx9Cit9OworCitzdGF0aWMg Y29uc3QgVmVyc2lvbmVkUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfY21rc1tdID0geworCXsx NjAwMDAsICJTRUxFQ1QgY21rbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbWFzdGVya2V5 IFdIRVJFIGNta25hbWUgTElLRSAnJXMnIn0sCisJezAsIE5VTEx9Cit9OworCiAvKgogICog VGhpcyBpcyBhIGxpc3Qgb2YgYWxsICJ0aGluZ3MiIGluIFBnc3FsLCB3aGljaCBjYW4gc2hv dyB1cCBhZnRlciBDUkVBVEUgb3IKICAqIERST1A7IGFuZCB0aGVyZSBpcyBhbHNvIGEgcXVl cnkgdG8gZ2V0IGEgbGlzdCBvZiB0aGVtLgpAQCAtMTIwOCw2ICsxMjE4LDggQEAgc3RhdGlj IGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJDQVNU IiwgTlVMTCwgTlVMTCwgTlVMTH0sIC8qIENhc3RzIGhhdmUgY29tcGxleCBzdHJ1Y3R1cmVz IGZvciBuYW1lcywgc28KIAkJCQkJCQkJICogc2tpcCBpdCAqLwogCXsiQ09MTEFUSU9OIiwg TlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2NvbGxhdGlvbnN9LAorCXsiQ09MVU1O IEVOQ1JZUFRJT04gS0VZIiwgTlVMTCwgTlVMTCwgTlVMTH0sCisJeyJDT0xVTU4gTUFTVEVS IEtFWSBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAogCS8qCiAJICogQ1JFQVRFIENPTlNU UkFJTlQgVFJJR0dFUiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgYmVjYXVzZSBpdCBpcyBkZXNp Z25lZApAQCAtMTY5MCw3ICsxNzAyLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIg KnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcY29ubmVjdCIsICJcXGNvbm5pbmZv IiwgIlxcQyIsICJcXGNkIiwgIlxcY29weSIsCiAJCSJcXGNvcHlyaWdodCIsICJcXGNyb3Nz dGFidmlldyIsCiAJCSJcXGQiLCAiXFxkYSIsICJcXGRBIiwgIlxcZEFjIiwgIlxcZEFmIiwg IlxcZEFvIiwgIlxcZEFwIiwKLQkJIlxcZGIiLCAiXFxkYyIsICJcXGRjb25maWciLCAiXFxk QyIsICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAorCQkiXFxkYiIsICJcXGRjIiwgIlxcZGNl ayIsICJcXGRjbWsiLCAiXFxkY29uZmlnIiwgIlxcZEMiLCAiXFxkZCIsICJcXGRkcCIsICJc XGREIiwKIAkJIlxcZGVzIiwgIlxcZGV0IiwgIlxcZGV1IiwgIlxcZGV3IiwgIlxcZEUiLCAi XFxkZiIsCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAi XFxkaSIsICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxk TyIsICJcXGRwIiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLApAQCAtMTkwNyw2ICsxOTE5 LDIyIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGlu dCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09MTEFUSU9OIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRUZSRVNIIFZFUlNJT04iLCAi UkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAorCS8qIEFMVEVSL0RST1AgQ09MVU1OIEVO Q1JZUFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8RFJPUCIsICJDT0xV TU4iLCAiRU5DUllQVElPTiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lUSF9WRVJTSU9ORURf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrcyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xVTU4iLCAi RU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFERCBW QUxVRSAoIiwgIkRST1AgVkFMVUUgKCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iKTsKKwor CS8qIEFMVEVSL0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVz KCJBTFRFUnxEUk9QIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIikpCisJCUNPTVBMRVRF X1dJVEhfVkVSU0lPTkVEX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2Nta3MpOworCisJLyog QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lU SCgiKCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iKTsKKwogCS8qIEFMVEVSIENPTlZFUlNJ T04gPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09OVkVSU0lPTiIs IE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwg IlNFVCBTQ0hFTUEiKTsKQEAgLTI4MjgsNiArMjg1NiwyNiBAQCBwc3FsX2NvbXBsZXRpb24o Y29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJQ09NUExFVEVfV0lU SCgidHJ1ZSIsICJmYWxzZSIpOwogCX0KIAorCS8qIENSRUFURS9BTFRFUi9EUk9QIENPTFVN TiAuLi4gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAi Q09MVU1OIikpCisJCUNPTVBMRVRFX1dJVEgoIkVOQ1JZUFRJT04iLCAiTUFTVEVSIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAiQ09MVU1OIiwgIkVOQ1JZ UFRJT058TUFTVEVSIikpCisJCUNPTVBMRVRFX1dJVEgoIktFWSIpOworCisJLyogQ1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIldJVEgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwg IkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRIIikpCisJCUNPTVBMRVRFX1dJ VEgoIlZBTFVFUyIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAi RU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSwgIldJVEgiLCAiVkFMVUVTIikpCisJCUNP TVBMRVRFX1dJVEgoIigiKTsKKworCS8qIENSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAqLwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIs IE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiV0lUSCIpOworCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNoQW55LCAiV0lU SCIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7CisKIAkvKiBDUkVBVEUgREFUQUJBU0UgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiREFUQUJBU0UiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIk9XTkVSIiwgIlRFTVBMQVRFIiwgIkVOQ09ESU5HIiwgIlRBQkxF U1BBQ0UiLApAQCAtMzU1Myw2ICszNjAxLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkFD Q0VTUyIsICJNRVRIT0QiLCBNYXRjaEFueSkgfHwKIAkJCSAoTWF0Y2hlcygiRFJPUCIsICJB R0dSRUdBVEV8RlVOQ1RJT058UFJPQ0VEVVJFfFJPVVRJTkUiLCBNYXRjaEFueSwgTWF0Y2hB bnkpICYmCiAJCQkgIGVuZHNfd2l0aChwcmV2X3dkLCAnKScpKSB8fAorCQkJIE1hdGNoZXMo IkRST1AiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT058TUFTVEVSIiwgIktFWSIsIE1hdGNoQW55 KSB8fAogCQkJIE1hdGNoZXMoIkRST1AiLCAiRVZFTlQiLCAiVFJJR0dFUiIsIE1hdGNoQW55 KSB8fAogCQkJIE1hdGNoZXMoIkRST1AiLCAiRk9SRUlHTiIsICJEQVRBIiwgIldSQVBQRVIi LCBNYXRjaEFueSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkZPUkVJR04iLCAiVEFCTEUi LCBNYXRjaEFueSkgfHwKZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vTWFrZWZpbGUgYi9zcmMv Y29tbW9uL01ha2VmaWxlCmluZGV4IDg5ODcwMWZhZTEuLjY3ZTk0ZDc1MDYgMTAwNjQ0Ci0t LSBhL3NyYy9jb21tb24vTWFrZWZpbGUKKysrIGIvc3JjL2NvbW1vbi9NYWtlZmlsZQpAQCAt NDksNiArNDksNyBAQCBPQkpTX0NPTU1PTiA9IFwKIAlhcmNoaXZlLm8gXAogCWJhc2U2NC5v IFwKIAljaGVja3N1bV9oZWxwZXIubyBcCisJY29sZW5jLm8gXAogCWNvbXByZXNzaW9uLm8g XAogCWNvbmZpZ19pbmZvLm8gXAogCWNvbnRyb2xkYXRhX3V0aWxzLm8gXApkaWZmIC0tZ2l0 IGEvc3JjL2NvbW1vbi9jb2xlbmMuYyBiL3NyYy9jb21tb24vY29sZW5jLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODZjNzM1ODc4ZQotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9jb21tb24vY29sZW5jLmMKQEAgLTAsMCArMSwxMDQgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuYy5jCisgKgorICogU2hhcmVkIGNvZGUgZm9y IGNvbHVtbiBlbmNyeXB0aW9uIGFsZ29yaXRobXMuCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQkgIHNyYy9jb21tb24vY29sZW5jLmMKKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgRlJPTlRFTkQKKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorI2Vsc2UKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorI2VuZGlm CisKKyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCisKK2ludAorZ2V0X2Nta2FsZ19udW0o Y29uc3QgY2hhciAqbmFtZSkKK3sKKwlpZiAoc3RyY21wKG5hbWUsICJ1bnNwZWNpZmllZCIp ID09IDApCisJCXJldHVybiBQR19DTUtfVU5TUEVDSUZJRUQ7CisJZWxzZSBpZiAoc3RyY21w KG5hbWUsICJSU0FFU19PQUVQX1NIQV8xIikgPT0gMCkKKwkJcmV0dXJuIFBHX0NNS19SU0FF U19PQUVQX1NIQV8xOworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiUlNBRVNfT0FFUF9TSEFf MjU2IikgPT0gMCkKKwkJcmV0dXJuIFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY7CisJZWxz ZQorCQlyZXR1cm4gMDsKK30KKworY29uc3QgY2hhciAqCitnZXRfY21rYWxnX25hbWUoaW50 IG51bSkKK3sKKwlzd2l0Y2ggKG51bSkKKwl7CisJCWNhc2UgUEdfQ01LX1VOU1BFQ0lGSUVE OgorCQkJcmV0dXJuICJ1bnNwZWNpZmllZCI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBf U0hBXzE6CisJCQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzEiOworCQljYXNlIFBHX0NNS19S U0FFU19PQUVQX1NIQV8yNTY6CisJCQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzI1NiI7CisJ fQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBKU09OIFdlYiBBbGdvcml0aG1zIChK V0EpIG5hbWVzIChSRkMgNzUxOCkKKyAqCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3Igc29tZSBr ZXkgbWFuYWdlbWVudCBzeXN0ZW1zIHRoYXQgdXNlIHRoZXNlIG5hbWVzCisgKiBuYXRpdmVs eS4KKyAqLworY29uc3QgY2hhciAqCitnZXRfY21rYWxnX2p3YV9uYW1lKGludCBudW0pCit7 CisJc3dpdGNoIChudW0pCisJeworCQljYXNlIFBHX0NNS19VTlNQRUNJRklFRDoKKwkJCXJl dHVybiBOVUxMOworCQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOgorCQkJcmV0dXJu ICJSU0EtT0FFUCI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCXJl dHVybiAiUlNBLU9BRVAtMjU2IjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworaW50Citn ZXRfY2VrYWxnX251bShjb25zdCBjaGFyICpuYW1lKQoreworCWlmIChzdHJjbXAobmFtZSwg IkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2IikgPT0gMCkKKwkJcmV0dXJuIFBHX0NF S19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjsKKwllbHNlIGlmIChzdHJjbXAobmFt ZSwgIkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJcmV0dXJuIFBH X0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDsKKwllbHNlIGlmIChzdHJjbXAo bmFtZSwgIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJcmV0dXJu IFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDsKKwllbHNlIGlmIChzdHJj bXAobmFtZSwgIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyIikgPT0gMCkKKwkJcmV0 dXJuIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjsKKwllbHNlCisJCXJl dHVybiAwOworfQorCitjb25zdCBjaGFyICoKK2dldF9jZWthbGdfbmFtZShpbnQgbnVtKQor eworCXN3aXRjaCAobnVtKQorCXsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19I TUFDX1NIQV8yNTY6CisJCQlyZXR1cm4gIkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2 IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCQly ZXR1cm4gIkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJY2FzZSBQR19DRUtf QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzI1 Nl9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19I TUFDX1NIQV81MTI6CisJCQlyZXR1cm4gIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEy IjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vbWVz b24uYnVpbGQgYi9zcmMvY29tbW9uL21lc29uLmJ1aWxkCmluZGV4IGE5MmRmYjlmNGEuLjUw MDVkODgxNzUgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vbWVzb24uYnVpbGQKKysrIGIvc3Jj L2NvbW1vbi9tZXNvbi5idWlsZApAQCAtNCw2ICs0LDcgQEAgY29tbW9uX3NvdXJjZXMgPSBm aWxlcygKICAgJ2FyY2hpdmUuYycsCiAgICdiYXNlNjQuYycsCiAgICdjaGVja3N1bV9oZWxw ZXIuYycsCisgICdjb2xlbmMuYycsCiAgICdjb21wcmVzc2lvbi5jJywKICAgJ2NvbnRyb2xk YXRhX3V0aWxzLmMnLAogICAnZW5jbmFtZXMuYycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvcHJpbnR0dXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCmlu ZGV4IDk3MWE3NGNmMjIuLmRiMWYzYjg4MTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9wcmludHR1cC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCkBA IC0yMCw2ICsyMCw4IEBAIGV4dGVybiBEZXN0UmVjZWl2ZXIgKnByaW50dHVwX2NyZWF0ZV9E UihDb21tYW5kRGVzdCBkZXN0KTsKIAogZXh0ZXJuIHZvaWQgU2V0UmVtb3RlRGVzdFJlY2Vp dmVyUGFyYW1zKERlc3RSZWNlaXZlciAqc2VsZiwgUG9ydGFsIHBvcnRhbCk7CiAKK2V4dGVy biB2b2lkIE1heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWsp OworCiBleHRlcm4gdm9pZCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8g YnVmLAogCQkJCQkJCQkJICBUdXBsZURlc2MgdHlwZWluZm8sIExpc3QgKnRhcmdldGxpc3Qs IGludDE2ICpmb3JtYXRzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9k ZXBlbmRlbmN5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaAppbmRleCA5 OGExYTg0Mjg5Li4xYTJhODE3N2QxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L2RlcGVuZGVuY3kuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaApA QCAtOTIsNiArOTIsOSBAQCB0eXBlZGVmIGVudW0gT2JqZWN0Q2xhc3MKIAlPQ0xBU1NfVFlQ RSwJCQkJLyogcGdfdHlwZSAqLwogCU9DTEFTU19DQVNULAkJCQkvKiBwZ19jYXN0ICovCiAJ T0NMQVNTX0NPTExBVElPTiwJCQkvKiBwZ19jb2xsYXRpb24gKi8KKwlPQ0xBU1NfQ0VLLAkJ CQkJLyogcGdfY29sZW5ja2V5ICovCisJT0NMQVNTX0NFS0RBVEEsCQkJCS8qIHBnX2NvbGVu Y2tleWRhdGEgKi8KKwlPQ0xBU1NfQ01LLAkJCQkJLyogcGdfY29sbWFzdGVya2V5ICovCiAJ T0NMQVNTX0NPTlNUUkFJTlQsCQkJLyogcGdfY29uc3RyYWludCAqLwogCU9DTEFTU19DT05W RVJTSU9OLAkJCS8qIHBnX2NvbnZlcnNpb24gKi8KIAlPQ0xBU1NfREVGQVVMVCwJCQkJLyog cGdfYXR0cmRlZiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAppbmRleCA1Nzc0YzQ2NDcxLi5jMDA1ZGVl YjY4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL2hlYXAuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBDSEtB VFlQRV9BTllBUlJBWQkJMHgwMQkvKiBhbGxvdyBBTllBUlJBWSAqLwogI2RlZmluZSBDSEtB VFlQRV9BTllSRUNPUkQJCTB4MDIJLyogYWxsb3cgUkVDT1JEIGFuZCBSRUNPUkRbXSAqLwog I2RlZmluZSBDSEtBVFlQRV9JU19QQVJUS0VZCQkweDA0CS8qIGF0dG5hbWUgaXMgcGFydCBr ZXkgIyBub3QgY29sdW1uICovCisjZGVmaW5lIENIS0FUWVBFX0VOQ1JZUFRFRAkJMHgwOAkv KiBhbGxvdyBpbnRlcm5hbCBlbmNyeXB0ZWQgdHlwZXMgKi8KIAogdHlwZWRlZiBzdHJ1Y3Qg UmF3Q29sdW1uRGVmYXVsdAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMDRh OWEwOTc4YS4uMmRkMWI2MmY4YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02 NSw2ICs2NSw5IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3Jl bC5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbl9yZWwu aCcsCisgICdwZ19jb2xtYXN0ZXJrZXkuaCcsCisgICdwZ19jb2xlbmNrZXkuaCcsCisgICdw Z19jb2xlbmNrZXlkYXRhLmgnLAogXQogCiBia2lfZGF0YSA9IFsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2Ftb3AuZGF0CmluZGV4IDYxY2Q1OTE0MzAuLmEwYmQ3MDgxMzIgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19hbW9wLmRhdApAQCAtMTAyOCw2ICsxMDI4LDExIEBACiAgIGFtb3ByaWdodHR5cGUg PT4gJ2J5dGVhJywgYW1vcHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAnPShieXRlYSxi eXRlYSknLAogICBhbW9wbWV0aG9kID0+ICdoYXNoJyB9LAogCisjIHBnX2VuY3J5cHRlZF9k ZXRfb3BzCit7IGFtb3BmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBh bW9wbGVmdHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBhbW9wcmlnaHR0eXBlID0+ ICdwZ19lbmNyeXB0ZWRfZGV0JywgYW1vcHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAn PShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgYW1vcG1ldGhvZCA9 PiAnaGFzaCcgfSwKKwogIyB4aWRfb3BzCiB7IGFtb3BmYW1pbHkgPT4gJ2hhc2gveGlkX29w cycsIGFtb3BsZWZ0dHlwZSA9PiAneGlkJywgYW1vcHJpZ2h0dHlwZSA9PiAneGlkJywKICAg YW1vcHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAnPSh4aWQseGlkKScsIGFtb3BtZXRo b2QgPT4gJ2hhc2gnIH0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggNGNj MTI5YmViZC4uZGRkYjI3MTEzZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApA QCAtNDAyLDYgKzQwMiwxMSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3Bz JywgYW1wcm9jbGVmdHR5cGUgPT4gJ2J5dGVhJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdi eXRlYScsIGFtcHJvY251bSA9PiAnMicsCiAgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRl bmRlZCcgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3Bz JywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBhbXByb2NyaWdo dHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2Mg PT4gJ2hhc2h2YXJsZW5hJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlw dGVkX2RldF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAn MicsCisgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdoYXNoL3hpZF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAneGlkJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICd4aWQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hh c2hpbnQ0JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICd4aWQnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h dHRyaWJ1dGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKaW5kZXgg MDUzMjk0Yzk5Zi4uNDc0MWIyMjgxNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19hdHRyaWJ1dGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0 ZS5oCkBAIC0xNjQsNiArMTY0LDE1IEBAIENBVEFMT0cocGdfYXR0cmlidXRlLDEyNDksQXR0 cmlidXRlUmVsYXRpb25JZCkgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzUsCiAJ ICovCiAJYm9vbAkJYXR0aXNsb2NhbCBCS0lfREVGQVVMVCh0KTsKIAorCS8qIGNvbHVtbiBl bmNyeXB0aW9uIGtleSAqLworCU9pZAkJCWF0dGNlayBCS0lfREVGQVVMVCgwKSBCS0lfTE9P S1VQX09QVChwZ19jb2xlbmNrZXkpOworCisJLyogcmVhbCB0eXBlIGlmIGVuY3J5cHRlZCAq LworCU9pZAkJCWF0dHJlYWx0eXBpZCBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChw Z190eXBlKTsKKworCS8qIGVuY3J5cHRpb24gYWxnb3JpdGhtIChQR19DRUtfKiB2YWx1ZXMp ICovCisJaW50MzIJCWF0dGVuY2FsZyBCS0lfREVGQVVMVCgwKTsKKwogCS8qIE51bWJlciBv ZiB0aW1lcyBpbmhlcml0ZWQgZnJvbSBkaXJlY3QgcGFyZW50IHJlbGF0aW9uKHMpICovCiAJ aW50MzIJCWF0dGluaGNvdW50IEJLSV9ERUZBVUxUKDApOwogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb2xlbmNrZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5k OGM2MDVkYmM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j b2xlbmNrZXkuaApAQCAtMCwwICsxLDQwIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBwZ19jb2xlbmNrZXkuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIGVu Y3J5cHRpb24ga2V5IiBzeXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVu a2V5LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMg dGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xFTkNLRVlfSAorI2Rl ZmluZSBQR19DT0xFTkNLRVlfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0t LS0KKyAqCQlwZ19jb2xlbmNrZXkgZGVmaW5pdGlvbi4gY3BwIHR1cm5zIHRoaXMgaW50bwor ICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2NvbGVuY2tleQorICogLS0tLS0tLS0t LS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbGVuY2tleSw4MjM0LENvbHVtbkVuY0tleVJl bGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCU5hbWVEYXRhCWNla25hbWU7CisJT2lkCQkJ Y2Vrb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworfSBGb3JtRGF0YV9wZ19jb2xlbmNr ZXk7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sZW5ja2V5ICpGb3JtX3BnX2NvbGVuY2tl eTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNrZXlfb2lkX2luZGV4 LCA4MjQwLCBDb2x1bW5FbmNLZXlPaWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXkgdXNpbmcg YnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX2NvbGVuY2tl eV9jZWtuYW1lX2luZGV4LCA4MjQyLCBDb2x1bW5FbmNLZXlOYW1lSW5kZXhJZCwgb24gcGdf Y29sZW5ja2V5IHVzaW5nIGJ0cmVlKGNla25hbWUgbmFtZV9vcHMpKTsKKworI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM4OGU3ZTY1YWQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaApAQCAtMCwwICsxLDQ2IEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19jb2xlbmNrZXlkYXRhLmgKKyAq CSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiBzeXN0 ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEK KyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVua2V5ZGF0YS5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQg ZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MRU5DS0VZREFUQV9ICisjZGVmaW5lIFBHX0NP TEVOQ0tFWURBVEFfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGFfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0t CisgKgkJcGdfY29sZW5ja2V5ZGF0YSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRv CisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YQorICogLS0t LS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbGVuY2tleWRhdGEsODI1MCxDb2x1 bW5FbmNLZXlEYXRhUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJT2lkCQkJY2tkY2Vr aWQgQktJX0xPT0tVUChwZ19jb2xlbmNrZXkpOworCU9pZAkJCWNrZGNta2lkIEJLSV9MT09L VVAocGdfY29sbWFzdGVya2V5KTsKKwlpbnQzMgkJY2tkY21rYWxnOwkJLyogUEdfQ01LXyog dmFsdWVzICovCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGgg ZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwlieXRlYQkJY2tkZW5jdmFsIEJLSV9GT1JDRV9OT1Rf TlVMTDsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ19jb2xlbmNrZXlkYXRhOworCit0eXBlZGVm IEZvcm1EYXRhX3BnX2NvbGVuY2tleWRhdGEgKkZvcm1fcGdfY29sZW5ja2V5ZGF0YTsKKwor REVDTEFSRV9UT0FTVChwZ19jb2xlbmNrZXlkYXRhLCA4MjM3LCA4MjM4KTsKKworREVDTEFS RV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNrZXlkYXRhX29pZF9pbmRleCwgODI1MSwg Q29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleWRhdGEgdXNpbmcg YnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX2NvbGVuY2tl eWRhdGFfY2tkY2VraWRfY2tkY21raWRfaW5kZXgsIDgyNTIsIENvbHVtbkVuY0tleUNla2lk Q21raWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXlkYXRhIHVzaW5nIGJ0cmVlKGNrZGNla2lk IG9pZF9vcHMsIGNrZGNta2lkIG9pZF9vcHMpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi4wZDI0OGRhMGE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApAQCAtMCwwICsxLDQ1IEBACisvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCisgKiBwZ19jb2xtYXN0ZXJrZXkuaAorICoJICBkZWZpbml0aW9uIG9m IHRoZSAiY29sdW1uIG1hc3RlciBrZXkiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY29sbWFzdGVya2V5LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5w bSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZv cm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19D T0xNQVNURVJLRVlfSAorI2RlZmluZSBQR19DT0xNQVNURVJLRVlfSAorCisjaW5jbHVkZSAi Y2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleV9k LmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19jb2xtYXN0ZXJrZXkgZGVmaW5p dGlvbi4gY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRh X3BnX2NvbG1hc3RlcmtleQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBn X2NvbG1hc3RlcmtleSw4MjMzLENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQpCit7CisJT2lk CQkJb2lkOworCU5hbWVEYXRhCWNta25hbWU7CisJT2lkCQkJY21rb3duZXIgQktJX0xPT0tV UChwZ19hdXRoaWQpOworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVu Z3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJdGV4dAkJY21rcmVhbG0gQktJX0ZPUkNFX05P VF9OVUxMOworI2VuZGlmCit9IEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleTsKKwordHlwZWRl ZiBGb3JtRGF0YV9wZ19jb2xtYXN0ZXJrZXkgKkZvcm1fcGdfY29sbWFzdGVya2V5OworCitE RUNMQVJFX1RPQVNUKHBnX2NvbG1hc3RlcmtleSwgODIzNSwgODIzNik7CisKK0RFQ0xBUkVf VU5JUVVFX0lOREVYX1BLRVkocGdfY29sbWFzdGVya2V5X29pZF9pbmRleCwgODIzOSwgQ29s dW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwgb24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVl KG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xtYXN0ZXJrZXlf Y21rbmFtZV9pbmRleCwgODI0MSwgQ29sdW1uTWFzdGVyS2V5TmFtZUluZGV4SWQsIG9uIHBn X2NvbG1hc3RlcmtleSB1c2luZyBidHJlZShjbWtuYW1lIG5hbWVfb3BzKSk7CisKKyNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQKaW5kZXggZGJjYWU3ZmZkZC4uMGNh NDAxZmZlNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CkBAIC0xNjYsNiAr MTY2LDggQEAKICAgb3BjaW50eXBlID0+ICdib29sJyB9LAogeyBvcGNtZXRob2QgPT4gJ2hh c2gnLCBvcGNuYW1lID0+ICdieXRlYV9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFf b3BzJywKICAgb3BjaW50eXBlID0+ICdieXRlYScgfSwKK3sgb3BjbWV0aG9kID0+ICdoYXNo Jywgb3BjbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hh c2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLAorICBvcGNpbnR5cGUgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnIH0sCiB7IG9wY21ldGhvZCA9PiAnYnRyZWUnLCBvcGNuYW1lID0+ICd0aWRfb3Bz Jywgb3BjZmFtaWx5ID0+ICdidHJlZS90aWRfb3BzJywKICAgb3BjaW50eXBlID0+ICd0aWQn IH0sCiB7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ3hpZF9vcHMnLCBvcGNm YW1pbHkgPT4gJ2hhc2gveGlkX29wcycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX29wZXJhdG9yLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3Iu ZGF0CmluZGV4IGJjNWY4MjEzZjMuLjQ3MzdhN2Y5ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfb3BlcmF0b3IuZGF0CkBAIC0zNDU4LDQgKzM0NTgsMTQgQEAKICAgb3ByY29kZSA9PiAn bXVsdGlyYW5nZV9hZnRlcl9tdWx0aXJhbmdlJywgb3BycmVzdCA9PiAnbXVsdGlyYW5nZXNl bCcsCiAgIG9wcmpvaW4gPT4gJ3NjYWxhcmd0am9pbnNlbCcgfSwKIAoreyBvaWQgPT4gJzgy NDcnLCBkZXNjciA9PiAnZXF1YWwnLAorICBvcHJuYW1lID0+ICc9Jywgb3ByY2FubWVyZ2Ug PT4gJ2YnLCBvcHJjYW5oYXNoID0+ICd0Jywgb3BybGVmdCA9PiAncGdfZW5jcnlwdGVkX2Rl dCcsCisgIG9wcnJpZ2h0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdi b29sJywgb3ByY29tID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCkn LAorICBvcHJuZWdhdGUgPT4gJzw+KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2Rl dCknLCBvcHJjb2RlID0+ICdwZ19lbmNyeXB0ZWRfZGV0X2VxJywgb3BycmVzdCA9PiAnZXFz ZWwnLAorICBvcHJqb2luID0+ICdlcWpvaW5zZWwnIH0sCit7IG9pZCA9PiAnODI0OCcsIGRl c2NyID0+ICdub3QgZXF1YWwnLAorICBvcHJuYW1lID0+ICc8PicsIG9wcmxlZnQgPT4gJ3Bn X2VuY3J5cHRlZF9kZXQnLCBvcHJyaWdodCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJl c3VsdCA9PiAnYm9vbCcsCisgIG9wcmNvbSA9PiAnPD4ocGdfZW5jcnlwdGVkX2RldCxwZ19l bmNyeXB0ZWRfZGV0KScsIG9wcm5lZ2F0ZSA9PiAnPShwZ19lbmNyeXB0ZWRfZGV0LHBnX2Vu Y3J5cHRlZF9kZXQpJywKKyAgb3ByY29kZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIG9w cnJlc3QgPT4gJ25lcXNlbCcsIG9wcmpvaW4gPT4gJ25lcWpvaW5zZWwnIH0sCisKIF0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKaW5kZXggYjNiNmE3ZTYxNi4uNTM0MzU4 MGIwNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKQEAgLTEwOCw2ICsx MDgsOCBAQAogICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdib29sX29wcycg fSwKIHsgb2lkID0+ICcyMjIzJywKICAgb3BmbWV0aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9 PiAnYnl0ZWFfb3BzJyB9LAoreyBvaWQgPT4gJzgyNDknLAorICBvcGZtZXRob2QgPT4gJ2hh c2gnLCBvcGZuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X29wcycgfSwKIHsgb2lkID0+ICcy Nzg5JywKICAgb3BmbWV0aG9kID0+ICdidHJlZScsIG9wZm5hbWUgPT4gJ3RpZF9vcHMnIH0s CiB7IG9pZCA9PiAnMjIyNScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA3MDU2 Yzk1MzcxLi4yYzAzNjc5OTI2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEx ODg3LDQgKzExODg3LDM3IEBACiAgIHByb3JldHR5cGUgPT4gJ2J5dGVhJywgcHJvYXJndHlw ZXMgPT4gJ3BnX2JyaW5fbWlubWF4X211bHRpX3N1bW1hcnknLAogICBwcm9zcmMgPT4gJ2Jy aW5fbWlubWF4X211bHRpX3N1bW1hcnlfc2VuZCcgfSwKIAoreyBvaWQgPT4gJzgyNTMnLCBk ZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9pbicsIHBy b3JldHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBwcm9hcmd0eXBlcyA9PiAnY3N0cmlu ZycsCisgIHByb3NyYyA9PiAncGdfZW5jcnlwdGVkX2luJyB9LAoreyBvaWQgPT4gJzgyNTQn LCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9vdXQn LCBwcm9yZXR0eXBlID0+ICdjc3RyaW5nJywgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLAorICBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9vdXQnIH0sCit7IG9pZCA9PiAn ODI1NScsIGRlc2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0 X3JlY3YnLCBwcm9yZXR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgcHJvYXJndHlwZXMg PT4gJ2ludGVybmFsJywKKyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfcmVjdicgfSwKK3sg b2lkID0+ICc4MjU2JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5 cHRlZF9kZXRfc2VuZCcsIHByb3JldHR5cGUgPT4gJ2J5dGVhJywgcHJvYXJndHlwZXMgPT4g J3BnX2VuY3J5cHRlZF9kZXQnLAorICBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9zZW5kJyB9 LAorCit7IG9pZCA9PiAnODI1NycsIGRlc2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ICdw Z19lbmNyeXB0ZWRfcm5kX2luJywgcHJvcmV0dHlwZSA9PiAncGdfZW5jcnlwdGVkX3JuZCcs IHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nJywKKyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRf aW4nIH0sCit7IG9pZCA9PiAnODI1OCcsIGRlc2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ ICdwZ19lbmNyeXB0ZWRfcm5kX291dCcsIHByb3JldHR5cGUgPT4gJ2NzdHJpbmcnLCBwcm9h cmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX3JuZCcsCisgIHByb3NyYyA9PiAncGdfZW5jcnlw dGVkX291dCcgfSwKK3sgb2lkID0+ICc4MjU5JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25h bWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfcmVjdicsIHByb3JldHR5cGUgPT4gJ3BnX2VuY3J5 cHRlZF9ybmQnLCBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwnLAorICBwcm9zcmMgPT4gJ3Bn X2VuY3J5cHRlZF9yZWN2JyB9LAoreyBvaWQgPT4gJzgyNjAnLCBkZXNjciA9PiAnSS9PJywK KyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZF9zZW5kJywgcHJvcmV0dHlwZSA9PiAn Ynl0ZWEnLCBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX3JuZCcsCisgIHByb3NyYyA9 PiAncGdfZW5jcnlwdGVkX3NlbmQnIH0sCisKK3sgb2lkID0+ICc4MjQ1JywKKyAgcHJvbmFt ZSA9PiAncGdfZW5jcnlwdGVkX2RldF9lcScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3Jl dHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX2RldCBw Z19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYWVxJyB9LAoreyBvaWQgPT4gJzgy NDYnLAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X25lJywgcHJvbGVha3Byb29m ID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdwZ19l bmNyeXB0ZWRfZGV0IHBnX2VuY3J5cHRlZF9kZXQnLCBwcm9zcmMgPT4gJ2J5dGVhbmUnIH0s CisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0CmluZGV4IDA3NjNkZmRlMzkuLjQ2MmFk YzViMjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdApAQCAtNjkyLDQgKzY5MiwxNiBA QAogICB0eXByZWNlaXZlID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3JlY3YnLAog ICB0eXBzZW5kID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnLCB0eXBhbGln biA9PiAnaScsCiAgIHR5cHN0b3JhZ2UgPT4gJ3gnLCB0eXBjb2xsYXRpb24gPT4gJ2RlZmF1 bHQnIH0sCisKK3sgb2lkID0+ICc4MjQzJywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4g KGRldGVybWluaXN0aWMpJywKKyAgdHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIHR5 cGxlbiA9PiAnLTEnLCB0eXBieXZhbCA9PiAnZicsIHR5cHR5cGUgPT4gJ2InLAorICB0eXBj YXRlZ29yeSA9PiAnWScsIHR5cGlucHV0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0X2luJywgdHlw b3V0cHV0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0X291dCcsCisgIHR5cHJlY2VpdmUgPT4gJ3Bn X2VuY3J5cHRlZF9kZXRfcmVjdicsIHR5cHNlbmQgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfc2Vu ZCcsIHR5cGFsaWduID0+ICdpJywKKyAgdHlwc3RvcmFnZSA9PiAnZScgfSwKK3sgb2lkID0+ ICc4MjQ0JywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4gKHJhbmRvbWl6ZWQpJywKKyAg dHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZCcsIHR5cGxlbiA9PiAnLTEnLCB0eXBieXZh bCA9PiAnZicsIHR5cHR5cGUgPT4gJ2InLAorICB0eXBjYXRlZ29yeSA9PiAnWScsIHR5cGlu cHV0ID0+ICdwZ19lbmNyeXB0ZWRfcm5kX2luJywgdHlwb3V0cHV0ID0+ICdwZ19lbmNyeXB0 ZWRfcm5kX291dCcsCisgIHR5cHJlY2VpdmUgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfcmVjdics IHR5cHNlbmQgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfc2VuZCcsIHR5cGFsaWduID0+ICdpJywK KyAgdHlwc3RvcmFnZSA9PiAnZScgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ190eXBlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaAppbmRl eCA0OGEyNTU5MTM3Li5jMWQzMDkwM2I1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaApAQCAt Mjk0LDYgKzI5NCw3IEBAIERFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3R5cGVfdHlwbmFtZV9u c3BfaW5kZXgsIDI3MDQsIFR5cGVOYW1lTnNwSW5kZXhJZCwgb24gcGdfCiAjZGVmaW5lICBU WVBDQVRFR09SWV9VU0VSCQknVScKICNkZWZpbmUgIFRZUENBVEVHT1JZX0JJVFNUUklORwkn VicgLyogZXIgLi4uICJ2YXJiaXQiPyAqLwogI2RlZmluZSAgVFlQQ0FURUdPUllfVU5LTk9X TgknWCcKKyNkZWZpbmUgIFRZUENBVEVHT1JZX0VOQ1JZUFRFRAknWScKICNkZWZpbmUgIFRZ UENBVEVHT1JZX0lOVEVSTkFMCSdaJwogCiAjZGVmaW5lICBUWVBBTElHTl9DSEFSCQkJJ2Mn IC8qIGNoYXIgYWxpZ25tZW50IChpLmUuIHVuYWxpZ25lZCkgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2NvbGVuY2NtZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43 MTI3ZTBjYTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29s ZW5jY21kcy5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK KyAqIGNvbGVuY2NtZHMuaAorICoJICBwcm90b3R5cGVzIGZvciBjb2xlbmNjbWRzLmMuCisg KgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBz cmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworCisjaWZuZGVmIENPTEVOQ0NNRFNfSAorI2RlZmluZSBDT0xFTkNDTURT X0gKKworI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBh cnNlci9wYXJzZV9ub2RlLmgiCisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZUNFSyhQ YXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVz cyBDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKK2V4 dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyQ29sdW1uTWFzdGVyS2V5KFBhcnNlU3RhdGUgKnBz dGF0ZSwgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10ICpzdG10KTsKKworI2VuZGlmCQkJCQkJ CS8qIENPTEVOQ0NNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv dGFibGVjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaAppbmRleCAw N2VhYzlhMjZjLi5jYTg1NDFkNjEzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5k cy90YWJsZWNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaApA QCAtMTA0LDQgKzEwNCw2IEBAIGV4dGVybiB2b2lkIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVs YXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogZXh0ZXJuIGJvb2wgUGFydENvbnN0 cmFpbnRJbXBsaWVkQnlSZWxDb25zdHJhaW50KFJlbGF0aW9uIHNjYW5yZWwsCiAJCQkJCQkJ CQkJCQkgTGlzdCAqcGFydENvbnN0cmFpbnQpOwogCitleHRlcm4gTGlzdCAqbWFrZUNvbHVt bkVuY3J5cHRpb24oY29uc3QgRm9ybURhdGFfcGdfYXR0cmlidXRlICphdHRyKTsKKwogI2Vu ZGlmCQkJCQkJCS8qIFRBQkxFQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tb24vY29sZW5jLmggYi9zcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjEyNTg3ZDIyMgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMuaApAQCAtMCwwICsxLDUxIEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmMuaAorICoKKyAqIFNoYXJlZCBk ZWZpbml0aW9ucyBmb3IgY29sdW1uIGVuY3J5cHRpb24gYWxnb3JpdGhtcy4KKyAqCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCSAgc3JjL2luY2x1 ZGUvY29tbW9uL2NvbGVuYy5oCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZu ZGVmIENPTU1PTl9DT0xFTkNfSAorI2RlZmluZSBDT01NT05fQ09MRU5DX0gKKworLyoKKyAq IENvbnN0YW50cyBmb3IgQ01LIGFuZCBDRUsgYWxnb3JpdGhtcy4gIE5vdGUgdGhhdCB0aGVz ZSBhcmUgcGFydCBvZiB0aGUKKyAqIHByb3RvY29sLiAgSW4gZWl0aGVyIGNhc2UsIGRvbid0 IGFzc2lnbiB6ZXJvLCBzbyB0aGF0IHRoYXQgY2FuIGJlIHVzZWQgYXMKKyAqIGFuIGludmFs aWQgdmFsdWUuCisgKgorICogTmFtZXMgc2hvdWxkIHVzZSBJQU5BLXN0eWxlIGNhcGl0YWxp emF0aW9uIGFuZCBwdW5jdHVhdGlvbiAoIkxJS0VfVEhJUyIpLgorICoKKyAqIFdoZW4gbWFr aW5nIGNoYW5nZXMsIGFsc28gdXBkYXRlIHByb3RvY29sLnNnbWwuCisgKi8KKworI2RlZmlu ZSBQR19DTUtfVU5TUEVDSUZJRUQJCQkJMQorI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9T SEFfMQkJCTIKKyNkZWZpbmUgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NgkJMworCisvKgor ICogVGhlc2UgYWxnb3JpdGhtcyBhcmUgcGFydCBvZiB0aGUgUkZDIDUxMTYgcmVhbG0gb2Yg QUVBRCBhbGdvcml0aG1zIChldmVuCisgKiB0aG91Z2ggdGhleSBuZXZlciBiZWNhbWUgYW4g b2ZmaWNpYWwgSUVURiBzdGFuZGFyZCkuICBTbyBmb3IgcHJvcHJpZXR5LCB3ZQorICogdXNl ICJwcml2YXRlIHVzZSIgbnVtYmVycyBmcm9tCisgKiA8aHR0cHM6Ly93d3cuaWFuYS5vcmcv YXNzaWdubWVudHMvYWVhZC1wYXJhbWV0ZXJzL2FlYWQtcGFyYW1ldGVycy54aHRtbD4uCisg Ki8KKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2CTMyNzY4 CisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NAkzMjc2OQor I2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQJMzI3NzAKKyNk ZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyCTMyNzcxCisKKy8q CisgKiBGdW5jdGlvbnMgdG8gY29udmVydCBiZXR3ZWVuIG5hbWVzIGFuZCBudW1iZXJzCisg Ki8KK2V4dGVybiBpbnQgZ2V0X2Nta2FsZ19udW0oY29uc3QgY2hhciAqbmFtZSk7CitleHRl cm4gY29uc3QgY2hhciAqZ2V0X2Nta2FsZ19uYW1lKGludCBudW0pOworZXh0ZXJuIGNvbnN0 IGNoYXIgKmdldF9jbWthbGdfandhX25hbWUoaW50IG51bSk7CitleHRlcm4gaW50IGdldF9j ZWthbGdfbnVtKGNvbnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIGNvbnN0IGNoYXIgKmdldF9j ZWthbGdfbmFtZShpbnQgbnVtKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9saWJwcS9saWJwcS1iZS5oIGIvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaAppbmRl eCA2ZDQ1MmVjNmQ5Li5lMzJjNzc3OWM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9saWJw cS9saWJwcS1iZS5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKQEAgLTE2 NCw2ICsxNjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBQb3J0CiAJICovCiAJY2hhcgkgICAqZGF0 YWJhc2VfbmFtZTsKIAljaGFyCSAgICp1c2VyX25hbWU7CisJYm9vbAkJY29sdW1uX2VuY3J5 cHRpb25fZW5hYmxlZDsKIAljaGFyCSAgICpjbWRsaW5lX29wdGlvbnM7CiAJTGlzdAkgICAq Z3VjX29wdGlvbnM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAzNGJjNjQwZmYy Li4yZjcxYjliMmFiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC02OTAsNiArNjkw LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29sdW1uRGVmCiAJY2hhcgkgICAqY29sbmFtZTsJCS8q IG5hbWUgb2YgY29sdW1uICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0eXBlIG9m IGNvbHVtbiAqLwogCWNoYXIJICAgKmNvbXByZXNzaW9uOwkvKiBjb21wcmVzc2lvbiBtZXRo b2QgZm9yIGNvbHVtbiAqLworCUxpc3QJICAgKmVuY3J5cHRpb247CQkvKiBlbmNyeXB0aW9u IGluZm8gZm9yIGNvbHVtbiAqLwogCWludAkJCWluaGNvdW50OwkJLyogbnVtYmVyIG9mIHRp bWVzIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KIAlib29sCQlpc19sb2NhbDsJCS8qIGNvbHVt biBoYXMgbG9jYWwgKG5vbi1pbmhlcml0ZWQpIGRlZiduICovCiAJYm9vbAkJaXNfbm90X251 bGw7CS8qIE5PVCBOVUxMIGNvbnN0cmFpbnQgc3BlY2lmaWVkPyAqLwpAQCAtNzI2LDExICs3 MjcsMTIgQEAgdHlwZWRlZiBlbnVtIFRhYmxlTGlrZU9wdGlvbgogCUNSRUFURV9UQUJMRV9M SUtFX0NPTVBSRVNTSU9OID0gMSA8PCAxLAogCUNSRUFURV9UQUJMRV9MSUtFX0NPTlNUUkFJ TlRTID0gMSA8PCAyLAogCUNSRUFURV9UQUJMRV9MSUtFX0RFRkFVTFRTID0gMSA8PCAzLAot CUNSRUFURV9UQUJMRV9MSUtFX0dFTkVSQVRFRCA9IDEgPDwgNCwKLQlDUkVBVEVfVEFCTEVf TElLRV9JREVOVElUWSA9IDEgPDwgNSwKLQlDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTID0g MSA8PCA2LAotCUNSRUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1MgPSAxIDw8IDcsCi0JQ1JF QVRFX1RBQkxFX0xJS0VfU1RPUkFHRSA9IDEgPDwgOCwKKwlDUkVBVEVfVEFCTEVfTElLRV9F TkNSWVBURUQgPSAxIDw8IDQsCisJQ1JFQVRFX1RBQkxFX0xJS0VfR0VORVJBVEVEID0gMSA8 PCA1LAorCUNSRUFURV9UQUJMRV9MSUtFX0lERU5USVRZID0gMSA8PCA2LAorCUNSRUFURV9U QUJMRV9MSUtFX0lOREVYRVMgPSAxIDw8IDcsCisJQ1JFQVRFX1RBQkxFX0xJS0VfU1RBVElT VElDUyA9IDEgPDwgOCwKKwlDUkVBVEVfVEFCTEVfTElLRV9TVE9SQUdFID0gMSA8PCA5LAog CUNSRUFURV9UQUJMRV9MSUtFX0FMTCA9IFBHX0lOVDMyX01BWAogfSBUYWJsZUxpa2VPcHRp b247CiAKQEAgLTE4OTMsNiArMTg5NSw5IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJ T0JKRUNUX0NBU1QsCiAJT0JKRUNUX0NPTFVNTiwKIAlPQkpFQ1RfQ09MTEFUSU9OLAorCU9C SkVDVF9DRUssCisJT0JKRUNUX0NFS0RBVEEsCisJT0JKRUNUX0NNSywKIAlPQkpFQ1RfQ09O VkVSU0lPTiwKIAlPQkpFQ1RfREFUQUJBU0UsCiAJT0JKRUNUX0RFRkFVTFQsCkBAIC0yMDgw LDYgKzIwODUsMzEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJDb2xsYXRpb25TdG10CiB9IEFs dGVyQ29sbGF0aW9uU3RtdDsKIAogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBB bHRlciBDb2x1bW4gRW5jcnlwdGlvbiBLZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBzdHJ1Y3QgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAorewor CU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqY2VrbmFtZTsKKwlib29sCQlpc0Ryb3A7CQkJ LyogQUREIG9yIERST1AgdGhlIGl0ZW1zPyAqLworCUxpc3QJICAgKmRlZmluaXRpb247Cit9 IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQ7CisKKworLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICogQWx0ZXIgQ29sdW1uIE1hc3RlciBLZXkKKyAqIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10 Cit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpjbWtuYW1lOworCUxpc3QJICAgKmRl ZmluaXRpb247Cit9IEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDsKKworCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgKglBbHRlciBEb21haW4KICAqCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK aW5kZXggOTU3ZWUxOGQ4NC4uYTYwODQ1NzRjNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAt MTQ5LDYgKzE0OSw3IEBAIFBHX0tFWVdPUkQoImVsc2UiLCBFTFNFLCBSRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5hYmxlIiwgRU5BQkxFX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuY29kaW5nIiwgRU5D T0RJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVu Y3J5cHRlZCIsIEVOQ1JZUFRFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQor UEdfS0VZV09SRCgiZW5jcnlwdGlvbiIsIEVOQ1JZUFRJT04sIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuZCIsIEVORF9QLCBSRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW51bSIsIEVOVU1fUCwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZXNjYXBlIiwgRVNDQVBFLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0yNTAsNiArMjUxLDcgQEAgUEdf S0VZV09SRCgibG9jayIsIExPQ0tfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibG9ja2VkIiwgTE9DS0VELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsb2dnZWQiLCBMT0dHRUQsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hcHBpbmciLCBNQVBQSU5HLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJtYXN0ZXIiLCBNQVNU RVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGNo IiwgTUFUQ0gsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo Im1hdGNoZWQiLCBNQVRDSEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJtYXRlcmlhbGl6ZWQiLCBNQVRFUklBTElaRUQsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9wYXJhbS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKaW5kZXggZGYx ZWU2NjBkOC4uZDFlNjYxZDU1YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3BhcmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKQEAg LTIxLDUgKzIxLDYgQEAgZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1l dGVycyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMs IGludCAqbnVtUGFyYW1zKTsKIGV4dGVybiB2b2lkIGNoZWNrX3ZhcmlhYmxlX3BhcmFtZXRl cnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXVlcnkpOwogZXh0ZXJuIGJvb2wgcXVl cnlfY29udGFpbnNfZXh0ZXJuX3BhcmFtcyhRdWVyeSAqcXVlcnkpOworZXh0ZXJuIHZvaWQg ZmluZF9wYXJhbV9vcmlncyhMaXN0ICpxdWVyeV9saXN0LCBPaWQgKipwYXJhbV9vcmlnX3Ri bHMsIEF0dHJOdW1iZXIgKipwYXJhbV9vcmlnX2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJLyog UEFSU0VfUEFSQU1fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA5ZTk0ZjQ0YzVm Li5kODJhMmUxMTcxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3Qu aAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMjksNiArMjksOCBA QCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0FDQ0VTU19NRVRIT0QsICJBTFRFUiBBQ0NFU1Mg TUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9B R0dSRUdBVEUsICJBTFRFUiBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0FMVEVSX0NBU1QsICJBTFRFUiBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT0xMQVRJT04sICJBTFRFUiBDT0xMQVRJ T04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTFVN Tl9FTkNSWVBUSU9OX0tFWSwgIkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIHRydWUs IGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09MVU1OX01BU1RFUl9L RVksICJBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfQUxURVJfQ09OU1RSQUlOVCwgIkFMVEVSIENPTlNUUkFJTlQiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTlZFUlNJT04s ICJBTFRFUiBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19BTFRFUl9EQVRBQkFTRSwgIkFMVEVSIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBm YWxzZSkKQEAgLTg2LDYgKzg4LDggQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUNDRVNT X01FVEhPRCwgIkNSRUFURSBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHMKIFBH X0NNRFRBRyhDTURUQUdfQ1JFQVRFX0FHR1JFR0FURSwgIkNSRUFURSBBR0dSRUdBVEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DQVNULCAiQ1JF QVRFIENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFU RV9DT0xMQVRJT04sICJDUkVBVEUgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQ1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRB RyhDTURUQUdfQ1JFQVRFX0NPTFVNTl9NQVNURVJfS0VZLCAiQ1JFQVRFIENPTFVNTiBNQVNU RVIgS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf Q09OU1RSQUlOVCwgIkNSRUFURSBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09OVkVSU0lPTiwgIkNSRUFURSBDT05WRVJTSU9O IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfREFUQUJB U0UsICJDUkVBVEUgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTM4LDYg KzE0Miw4IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBB Q0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E Uk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19EUk9QX0NBU1QsICJEUk9QIENBU1QiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MTEFUSU9OLCAiRFJPUCBDT0xMQVRJ T04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MVU1O X0VOQ1JZUFRJT05fS0VZLCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MVU1OX01BU1RFUl9LRVks ICJEUk9QIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19EUk9QX0NPTlNUUkFJTlQsICJEUk9QIENPTlNUUkFJTlQiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OVkVSU0lPTiwgIkRST1Ag Q09OVkVSU0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJP UF9EQVRBQkFTRSwgIkRST1AgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAppbmRleCA1MGYwMjg4MzA1Li43MjU4ZDQwMDc3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaApAQCAtMTYzLDYgKzE2Myw3IEBAIGV4dGVybiBib29sIHR5cGVf aXNfcm93dHlwZShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlwZV9pc19lbnVtKE9pZCB0 eXBpZCk7CiBleHRlcm4gYm9vbCB0eXBlX2lzX3JhbmdlKE9pZCB0eXBpZCk7CiBleHRlcm4g Ym9vbCB0eXBlX2lzX211bHRpcmFuZ2UoT2lkIHR5cGlkKTsKK2V4dGVybiBib29sIHR5cGVf aXNfZW5jcnlwdGVkKE9pZCB0eXBpZCk7CiBleHRlcm4gdm9pZCBnZXRfdHlwZV9jYXRlZ29y eV9wcmVmZXJyZWQoT2lkIHR5cGlkLAogCQkJCQkJCQkJCWNoYXIgKnR5cGNhdGVnb3J5LAog CQkJCQkJCQkJCWJvb2wgKnR5cGlzcHJlZmVycmVkKTsKQEAgLTIwMiw2ICsyMDMsMTEgQEAg ZXh0ZXJuIE9pZAlnZXRfcHVibGljYXRpb25fb2lkKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJv b2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25hbWUoT2lk IHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2NyaXB0aW9u X29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNo YXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7 CitleHRlcm4gT2lkCWdldF9jZWtfb2lkKGNvbnN0IGNoYXIgKmNla25hbWUsIGJvb2wgbWlz c2luZ19vayk7CitleHRlcm4gY2hhciAqZ2V0X2Nla19uYW1lKE9pZCBjZWtpZCwgYm9vbCBt aXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X2Nla2RhdGFfb2lkKE9pZCBjZWtpZCwgT2lk IGNta2lkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfY21rX29pZChjb25z dCBjaGFyICpjbWtuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGNoYXIgKmdldF9j bWtfbmFtZShPaWQgY21raWQsIGJvb2wgbWlzc2luZ19vayk7CiAKICNkZWZpbmUgdHlwZV9p c19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lk KQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBh bmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvcGxhbmNhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAppbmRleCAw NDk5NjM1ZjU5Li42ODZhOTExYWM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9w bGFuY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaApAQCAtMjA3 LDYgKzIwNyw5IEBAIGV4dGVybiB2b2lkIENvbXBsZXRlQ2FjaGVkUGxhbihDYWNoZWRQbGFu U291cmNlICpwbGFuc291cmNlLAogZXh0ZXJuIHZvaWQgU2F2ZUNhY2hlZFBsYW4oQ2FjaGVk UGxhblNvdXJjZSAqcGxhbnNvdXJjZSk7CiBleHRlcm4gdm9pZCBEcm9wQ2FjaGVkUGxhbihD YWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlKTsKIAorZXh0ZXJuIExpc3QgKlJldmFsaWRh dGVDYWNoZWRRdWVyeShDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAorCQkJCQkJCQkg ICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CisKIGV4dGVybiB2b2lkIENhY2hlZFBs YW5TZXRQYXJlbnRDb250ZXh0KENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiAJCQkJ CQkJCQkgICBNZW1vcnlDb250ZXh0IG5ld2NvbnRleHQpOwogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9zeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUu aAppbmRleCA0NDYzZWE2NmJlLi40ODljNmVlNzM0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS91dGlscy9zeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgK QEAgLTQ0LDggKzQ0LDE0IEBAIGVudW0gU3lzQ2FjaGVJZGVudGlmaWVyCiAJQVVUSE5BTUUs CiAJQVVUSE9JRCwKIAlDQVNUU09VUkNFVEFSR0VULAorCUNFS0RBVEFDRUtDTUssCisJQ0VL REFUQU9JRCwKKwlDRUtOQU1FLAorCUNFS09JRCwKIAlDTEFBTU5BTUVOU1AsCiAJQ0xBT0lE LAorCUNNS05BTUUsCisJQ01LT0lELAogCUNPTExOQU1FRU5DTlNQLAogCUNPTExPSUQsCiAJ Q09OREVGQVVMVCwKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxl IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggMWQzMWIyNTZmYy4uNDgx MmY4NjJjYSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKQEAgLTU0LDYgKzU0LDcgQEAgZW5k aWYKIAogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKIE9CSlMgKz0gXAorCWZlLWVuY3J5 cHQtb3BlbnNzbC5vIFwKIAlmZS1zZWN1cmUtb3BlbnNzbC5vCiBlbmRpZgogCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IGU4YmNjODgzNzAuLjg4OTdhYTI0M2MgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0xODYsMyArMTg2LDcgQEAgUFFwaXBlbGlu ZVN0YXR1cyAgICAgICAgICAxODMKIFBRc2V0VHJhY2VGbGFncyAgICAgICAgICAgMTg0CiBQ UW1ibGVuQm91bmRlZCAgICAgICAgICAgIDE4NQogUFFzZW5kRmx1c2hSZXF1ZXN0ICAgICAg ICAxODYKK1BRZXhlY1ByZXBhcmVkRGVzY3JpYmVkICAgMTg3CitQUXNlbmRRdWVyeVByZXBh cmVkRGVzY3JpYmVkIDE4OAorUFFmaXNlbmNyeXB0ZWQgICAgICAgICAgICAxODkKK1BRcGFy YW1pc2VuY3J5cHRlZCAgICAgICAgMTkwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMK aW5kZXggZjg4ZDY3MmM2Yy4uNDhiNDFmOTcwOSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNv bm5lY3QuYwpAQCAtMzQxLDYgKzM0MSwxNCBAQCBzdGF0aWMgY29uc3QgaW50ZXJuYWxQUWNv bm5pbmZvT3B0aW9uIFBRY29ubmluZm9PcHRpb25zW10gPSB7CiAJCSJUYXJnZXQtU2Vzc2lv bi1BdHRycyIsICIiLCAxNSwgLyogc2l6ZW9mKCJwcmVmZXItc3RhbmRieSIpID0gMTUgKi8K IAlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgdGFyZ2V0X3Nlc3Npb25fYXR0cnMpfSwKIAor CXsiY21rbG9va3VwIiwgIlBHQ01LTE9PS1VQIiwgIiIsIE5VTEwsCisJCSJDTUstTG9va3Vw IiwgIiIsIDY0LAorCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBjbWtsb29rdXApfSwKKwor CXsiY29sdW1uX2VuY3J5cHRpb24iLCAiUEdDT0xVTU5FTkNSWVBUSU9OIiwgIjAiLCBOVUxM LAorCQkiQ29sdW1uLUVuY3J5cHRpb24iLCAiIiwgMSwKKwlvZmZzZXRvZihzdHJ1Y3QgcGdf Y29ubiwgY29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyl9LAorCiAJLyogVGVybWluYXRpbmcg ZW50cnkgLS0tIE1VU1QgQkUgTEFTVCAqLwogCXtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLAog CU5VTEwsIE5VTEwsIDB9CkBAIC0yNDIyLDYgKzI0MzAsNyBAQCBQUWNvbm5lY3RQb2xsKFBH Y29ubiAqY29ubikKICNpZmRlZiBFTkFCTEVfR1NTCiAJCWNvbm4tPnRyeV9nc3MgPSAoY29u bi0+Z3NzZW5jbW9kZVswXSAhPSAnZCcpOwkvKiAiZGlzYWJsZSIgKi8KICNlbmRpZgorCQlj b25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gKGNvbm4tPmNvbHVtbl9lbmNyeXB0 aW9uX3NldHRpbmdbMF0gPT0gJzEnKTsKIAogCQlyZXNldF9jb25uZWN0aW9uX3N0YXRlX21h Y2hpbmUgPSBmYWxzZTsKIAkJbmVlZF9uZXdfY29ubmVjdGlvbiA9IHRydWU7CkBAIC00MDI5 LDYgKzQwMzgsMjIgQEAgZnJlZVBHY29ubihQR2Nvbm4gKmNvbm4pCiAJZnJlZShjb25uLT5r cmJzcnZuYW1lKTsKIAlmcmVlKGNvbm4tPmdzc2xpYik7CiAJZnJlZShjb25uLT5jb25uaXAp OworCWZyZWUoY29ubi0+Y21rbG9va3VwKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4t Pm5jbWtzOyBpKyspCisJeworCQlmcmVlKGNvbm4tPmNta3NbaV0uY21rbmFtZSk7CisJCWZy ZWUoY29ubi0+Y21rc1tpXS5jbWtyZWFsbSk7CisJfQorCWZyZWUoY29ubi0+Y21rcyk7CisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY2VrczsgaSsrKQorCXsKKwkJaWYgKGNvbm4t PmNla3NbaV0uY2VrZGF0YSkKKwkJeworCQkJZXhwbGljaXRfYnplcm8oY29ubi0+Y2Vrc1tp XS5jZWtkYXRhLCBjb25uLT5jZWtzW2ldLmNla2RhdGFsZW4pOworCQkJZnJlZShjb25uLT5j ZWtzW2ldLmNla2RhdGEpOworCQl9CisJfQorCWZyZWUoY29ubi0+Y2Vrcyk7CiAJLyogTm90 ZSB0aGF0IGNvbm4tPlBmZGVidWcgaXMgbm90IG91cnMgdG8gY2xvc2Ugb3IgZnJlZSAqLwog CWZyZWUoY29ubi0+d3JpdGVfZXJyX21zZyk7CiAJZnJlZShjb25uLT5pbkJ1ZmZlcik7CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYyBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmFiNmM3MDk2N2YKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwpAQCAtMCww ICsxLDg0MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZmUtZW5jcnlwdC1v cGVuc3NsLmMKKyAqCisgKiBjbGllbnQtc2lkZSBjb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0 IHVzaW5nIE9wZW5TU0wKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy MywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJmZS1lbmNyeXB0 LmgiCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKKyNpbmNsdWRlICJjb21tb24vY29sZW5j LmgiCisjaW5jbHVkZSAicG9ydC9wZ19ic3dhcC5oIgorCisjaW5jbHVkZSA8b3BlbnNzbC9l dnAuaD4KKworCisvKgorICogV2hlbiBURVNUX0VOQ1JZUFQgaXMgZGVmaW5lZCwgdGhpcyBm aWxlIGJ1aWxkcyBhIHN0YW5kYWxvbmUgcHJvZ3JhbSB0aGF0CisgKiBjaGVja3MgZW5jcnlw dGlvbiB0ZXN0IGNhc2VzIGFnYWluc3QgdGhlIHNwZWNpZmljYXRpb24gZG9jdW1lbnQuCisg KgorICogV2UgaGF2ZSB0byByZXBsYWNlIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdCBh dmFpbGFibGUgaW4gdGhhdAorICogZW52aXJvbm1lbnQuCisgKi8KKyNpZmRlZiBURVNUX0VO Q1JZUFQKKworI2RlZmluZSBsaWJwcV9nZXR0ZXh0KHgpICh4KQorI2RlZmluZSBsaWJwcV9h cHBlbmRfY29ubl9lcnJvcihjb25uLCAuLi4pIGRvIHsgZnByaW50ZihzdGRlcnIsIF9fVkFf QVJHU19fKTsgZnByaW50ZihzdGRlcnIsICJcbiIpOyBleGl0KDEpOyB9IHdoaWxlKDApCisK KyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KKworCisvKgorICogRGVjcnlwdCB0 aGUgQ0VLIGdpdmVuIGJ5ICJmcm9tIiBhbmQgImZyb21sZW4iIChkYXRhIHR5cGljYWxseSBz ZW50IGZyb20gdGhlCisgKiBzZXJ2ZXIpIHVzaW5nIHRoZSBDTUsgaW4gY21rZmlsZW5hbWUu CisgKi8KK3Vuc2lnbmVkIGNoYXIgKgorZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqY21rZmlsZW5hbWUsIGludCBjbWthbGcsCisJCQkJCSAgaW50 IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCSAgaW50ICp0b2xl bikKK3sKKwljb25zdCBFVlBfTUQgKm1kID0gTlVMTDsKKwlFVlBfUEtFWSAgICprZXkgPSBO VUxMOworCVJTQQkJICAgKnJzYSA9IE5VTEw7CisJQklPCQkgICAqYmlvID0gTlVMTDsKKwlF VlBfUEtFWV9DVFggKmN0eCA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqb3V0ID0gTlVMTDsK KwlzaXplX3QJCW91dGxlbjsKKworCXN3aXRjaCAoY21rYWxnKQorCXsKKwkJY2FzZSBQR19D TUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCW1kID0gRVZQX3NoYTEoKTsKKwkJCWJyZWFrOwor CQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY6CisJCQltZCA9IEVWUF9zaGEyNTYo KTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NNS19VTlNQRUNJRklFRDoKKwkJCWxpYnBxX2Fw cGVuZF9jb25uX2Vycm9yKGNvbm4sICJ1bnNwZWNpZmllZCBDTUsgYWxnb3JpdGhtIG5vdCBz dXBwb3J0ZWQgd2l0aCBmaWxlIGxvb2t1cCBzY2hlbWUiKTsKKwkJCWdvdG8gZmFpbDsKKwkJ ZGVmYXVsdDoKKwkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJ1bnN1cHBvcnRl ZCBDTUsgYWxnb3JpdGhtIElEOiAlZCIsIGNta2FsZyk7CisJCQlnb3RvIGZhaWw7CisJfQor CisJYmlvID0gQklPX25ld19maWxlKGNta2ZpbGVuYW1lLCAiciIpOworCWlmICghYmlvKQor CXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBvcGVuIGZp bGUgXCIlc1wiOiAlbSIsIGNta2ZpbGVuYW1lKTsKKwkJZ290byBmYWlsOworCX0KKworCXJz YSA9IFJTQV9uZXcoKTsKKwlpZiAoIXJzYSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJjb3VsZCBub3QgYWxsb2NhdGUgUlNBIHN0cnVjdHVyZTogJXMiLAorCQkJ CQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKwkvKgorCSAqIE5vdGU6IFdlIG11c3QgZ28gdGhyb3VnaCBCSU8gYW5k IG5vdCBzYXkgdXNlIFBFTV9yZWFkX1JTQVByaXZhdGVLZXkoKQorCSAqIGRpcmVjdGx5IG9u IGEgRklMRS4gIE90aGVyd2lzZSwgd2UgZ2V0IGludG8gIm5vIE9QRU5TU0xfQXBwbGluayIg aGVsbAorCSAqIG9uIFdpbmRvd3MgKHdoaWNoIGhhcHBlbnMgd2hlbmV2ZXIgeW91IHBhc3Mg YSBzdGRpbyBoYW5kbGUgZnJvbSB0aGUKKwkgKiBhcHBsaWNhdGlvbiBpbnRvIE9wZW5TU0wp LgorCSAqLworCXJzYSA9IFBFTV9yZWFkX2Jpb19SU0FQcml2YXRlS2V5KGJpbywgJnJzYSwg TlVMTCwgTlVMTCk7CisJaWYgKCFyc2EpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihjb25uLCAiY291bGQgbm90IHJlYWQgUlNBIHByaXZhdGUga2V5OiAlcyIsCisJCQkJCQkJ CUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZh aWw7CisJfQorCisJa2V5ID0gRVZQX1BLRVlfbmV3KCk7CisJaWYgKCFrZXkpCisJeworCQls aWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IGFsbG9jYXRlIHByaXZh dGUga2V5IHN0cnVjdHVyZTogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX1BL RVlfYXNzaWduX1JTQShrZXksIHJzYSkpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihjb25uLCAiY291bGQgbm90IGFzc2lnbiBwcml2YXRlIGtleTogJXMiLAorCQkJCQkJCQlF UlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWls OworCX0KKworCWN0eCA9IEVWUF9QS0VZX0NUWF9uZXcoa2V5LCBOVUxMKTsKKwlpZiAoIWN0 eCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgYWxs b2NhdGUgcHVibGljIGtleSBhbGdvcml0aG0gY29udGV4dDogJXMiLAorCQkJCQkJCQlFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOwor CX0KKworCWlmIChFVlBfUEtFWV9kZWNyeXB0X2luaXQoY3R4KSA8PSAwKQorCXsKKwkJbGli cHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImRlY3J5cHRpb24gaW5pdGlhbGl6YXRpb24g ZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZX0NUWF9zZXRf cnNhX3BhZGRpbmcoY3R4LCBSU0FfUEtDUzFfT0FFUF9QQURESU5HKSA8PSAwIHx8CisJCUVW UF9QS0VZX0NUWF9zZXRfcnNhX21nZjFfbWQoY3R4LCBtZCkgPD0gMCB8fAorCQlFVlBfUEtF WV9DVFhfc2V0X3JzYV9vYWVwX21kKGN0eCwgbWQpIDw9IDApCisJeworCQlsaWJwcV9hcHBl bmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHNldCBSU0EgcGFyYW1ldGVyOiAlcyIs CisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOwor CQlnb3RvIGZhaWw7CisJfQorCisJLyogZ2V0IG91dHB1dCBsZW5ndGggKi8KKwlpZiAoRVZQ X1BLRVlfZGVjcnlwdChjdHgsIE5VTEwsICZvdXRsZW4sIGZyb20sIGZyb21sZW4pIDw9IDAp CisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiUlNBIGRlY3J5cHRpb24g c2V0dXAgZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVS Ul9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJb3V0ID0gbWFsbG9jKG91 dGxlbik7CisJaWYgKCFvdXQpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25u LCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZ X2RlY3J5cHQoY3R4LCBvdXQsICZvdXRsZW4sIGZyb20sIGZyb21sZW4pIDw9IDApCisJewor CQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiUlNBIGRlY3J5cHRpb24gZmFpbGVk OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3Io KSkpOworCQlmcmVlKG91dCk7CisJCW91dCA9IE5VTEw7CisJCWdvdG8gZmFpbDsKKwl9CisK KwkqdG9sZW4gPSBvdXRsZW47CisKK2ZhaWw6CisJRVZQX1BLRVlfQ1RYX2ZyZWUoY3R4KTsK KwlFVlBfUEtFWV9mcmVlKGtleSk7CisJQklPX2ZyZWUoYmlvKTsKKworCXJldHVybiBvdXQ7 Cit9CisKKworLyoKKyAqIFRoZSByb3V0aW5lcyBiZWxvdyBpbXBsZW1lbnQgdGhlIEFFQUQg YWxnb3JpdGhtcyBzcGVjaWZpZWQgaW4KKyAqIDxodHRwczovL2RhdGF0cmFja2VyLmlldGYu b3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Pgor ICogZm9yIGVuY3J5cHRpbmcgYW5kIGRlY3J5cHRpbmcgY29sdW1uIHZhbHVlcy4KKyAqLwor CisjaWZkZWYgVEVTVF9FTkNSWVBUCisKKy8qCisgKiBUZXN0IGRhdGEgZnJvbQorICogPGh0 dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQt YWVzLWNiYy1obWFjLXNoYTItMDUjc2VjdGlvbi01PgorICovCisKKy8qCisgKiBUaGUgZGlm ZmVyZW50IHRlc3QgY2FzZXMganVzdCB1c2UgZGlmZmVyZW50IHByZWZpeGVzIG9mIEssIHNv IG9uZSBjb25zdGFudAorICogaXMgZW5vdWdoIGhlcmUuCisgKi8KK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIEtbXSA9IHsKKwkweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAw eDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBhLCAweDBiLCAweDBjLCAweDBkLCAw eDBlLCAweDBmLAorCTB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYs IDB4MTcsIDB4MTgsIDB4MTksIDB4MWEsIDB4MWIsIDB4MWMsIDB4MWQsIDB4MWUsIDB4MWYs CisJMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwgMHgyNSwgMHgyNiwgMHgyNywgMHgy OCwgMHgyOSwgMHgyYSwgMHgyYiwgMHgyYywgMHgyZCwgMHgyZSwgMHgyZiwKKwkweDMwLCAw eDMxLCAweDMyLCAweDMzLCAweDM0LCAweDM1LCAweDM2LCAweDM3LCAweDM4LCAweDM5LCAw eDNhLCAweDNiLCAweDNjLCAweDNkLCAweDNlLCAweDNmLAorfTsKKworc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgUFtdID0geworCTB4NDEsIDB4MjAsIDB4NjMsIDB4NjksIDB4NzAs IDB4NjgsIDB4NjUsIDB4NzIsIDB4MjAsIDB4NzMsIDB4NzksIDB4NzMsIDB4NzQsIDB4NjUs IDB4NmQsIDB4MjAsCisJMHg2ZCwgMHg3NSwgMHg3MywgMHg3NCwgMHgyMCwgMHg2ZSwgMHg2 ZiwgMHg3NCwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwgMHg3MiwgMHg2NSwgMHg3MSwgMHg3 NSwKKwkweDY5LCAweDcyLCAweDY1LCAweDY0LCAweDIwLCAweDc0LCAweDZmLCAweDIwLCAw eDYyLCAweDY1LCAweDIwLCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LAorCTB4NzQs IDB4MmMsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NjksIDB4NzQsIDB4MjAs IDB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NjIsCisJMHg2NSwgMHgyMCwgMHg2 MSwgMHg2MiwgMHg2YywgMHg2NSwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg2NiwgMHg2 MSwgMHg2YywgMHg2YywgMHgyMCwgMHg2OSwKKwkweDZlLCAweDc0LCAweDZmLCAweDIwLCAw eDc0LCAweDY4LCAweDY1LCAweDIwLCAweDY4LCAweDYxLCAweDZlLCAweDY0LCAweDczLCAw eDIwLCAweDZmLCAweDY2LAorCTB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjUs IDB4NmUsIDB4NjUsIDB4NmQsIDB4NzksIDB4MjAsIDB4NzcsIDB4NjksIDB4NzQsIDB4Njgs IDB4NmYsCisJMHg3NSwgMHg3NCwgMHgyMCwgMHg2OSwgMHg2ZSwgMHg2MywgMHg2ZiwgMHg2 ZSwgMHg3NiwgMHg2NSwgMHg2ZSwgMHg2OSwgMHg2NSwgMHg2ZSwgMHg2MywgMHg2NSwKK307 CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfSVZbXSA9IHsKKwkweDFhLCAw eGYzLCAweDhjLCAweDJkLCAweGMyLCAweGI5LCAweDZmLCAweGZkLCAweGQ4LCAweDY2LCAw eDk0LCAweDA5LCAweDIzLCAweDQxLCAweGJjLCAweDA0LAorfTsKKworc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgdGVzdF9BW10gPSB7CisJMHg1NCwgMHg2OCwgMHg2NSwgMHgyMCwg MHg3MywgMHg2NSwgMHg2MywgMHg2ZiwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg3MCwgMHg3Miwg MHg2OSwgMHg2ZSwgMHg2MywKKwkweDY5LCAweDcwLCAweDZjLCAweDY1LCAweDIwLCAweDZm LCAweDY2LCAweDIwLCAweDQxLCAweDc1LCAweDY3LCAweDc1LCAweDczLCAweDc0LCAweDY1 LCAweDIwLAorCTB4NGIsIDB4NjUsIDB4NzIsIDB4NjMsIDB4NmIsIDB4NjgsIDB4NmYsIDB4 NjYsIDB4NjYsIDB4NzMsCit9OworCisjZW5kaWYJCQkJCQkJLyogVEVTVF9FTkNSWVBUICov CisKKworLyoKKyAqIEdldCBPcGVuU1NMIGNpcGhlciB0aGF0IGNvcnJlc3BvbmRzIHRvIHRo ZSBDRUsgYWxnb3JpdGhtIG51bWJlci4KKyAqLworc3RhdGljIGNvbnN0IEVWUF9DSVBIRVIg KgorcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVyKGludCBjZWthbGcpCit7CisJY29uc3Qg RVZQX0NJUEhFUiAqY2lwaGVyOworCisJc3dpdGNoIChjZWthbGcpCisJeworCQljYXNlIFBH X0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCWNpcGhlciA9IEVWUF9h ZXNfMTI4X2NiYygpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9D QkNfSE1BQ19TSEFfMzg0OgorCQkJY2lwaGVyID0gRVZQX2Flc18xOTJfY2JjKCk7CisJCQli cmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJ CWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyOgorCQkJY2lwaGVy ID0gRVZQX2Flc18yNTZfY2JjKCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWNpcGhl ciA9IE5VTEw7CisJfQorCisJcmV0dXJuIGNpcGhlcjsKK30KKworLyoKKyAqIEdldCBPcGVu U1NMIGRpZ2VzdCAoZm9yIE1BQykgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgQ0VLIGFsZ29y aXRobSBudW1iZXIuCisgKi8KK3N0YXRpYyBjb25zdCBFVlBfTUQgKgorcGdfY2VrYWxnX3Rv X29wZW5zc2xfbWQoaW50IGNla2FsZykKK3sKKwljb25zdCBFVlBfTUQgKm1kOworCisJc3dp dGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNf U0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJYnJlYWs7CisJCWNhc2UgUEdf Q0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0OgorCQljYXNlIFBHX0NFS19BRUFE X0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCW1kID0gRVZQX3NoYTM4NCgpOworCQkJ YnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyOgor CQkJbWQgPSBFVlBfc2hhNTEyKCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCW1kID0g TlVMTDsKKwl9CisKKwlyZXR1cm4gbWQ7Cit9CisKKy8qCisgKiBHZXQgdGhlIE1BQyBrZXkg bGVuZ3RoIChpbiBvY3RldHMpIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIENFSyBhbGdvcml0 aG0gbnVtYmVyLgorICoKKyAqIFRoaXMgaXMgTUFDX0tFWV9MRU4gaW4gdGhlIG1jZ3JldyBw YXBlci4KKyAqLworc3RhdGljIGludAorbWRfa2V5X2xlbmd0aChjb25zdCBFVlBfTUQgKm1k KQoreworCWlmIChtZCA9PSBFVlBfc2hhMjU2KCkpCisJCXJldHVybiAxNjsKKwllbHNlIGlm IChtZCA9PSBFVlBfc2hhMzg0KCkpCisJCXJldHVybiAyNDsKKwllbHNlIGlmIChtZCA9PSBF VlBfc2hhNTEyKCkpCisJCXJldHVybiAzMjsKKwllbHNlCisJCXJldHVybiAtMTsKK30KKwor LyoKKyAqIEdldCB0aGUgSE1BQyBvdXRwdXQgbGVuZ3RoIChpbiBvY3RldHMpIHRoYXQgY29y cmVzcG9uZHMgdG8gdGhlIENFSworICogYWxnb3JpdGhtIG51bWJlci4KKyAqLworc3RhdGlj IGludAorbWRfaGFzaF9sZW5ndGgoY29uc3QgRVZQX01EICptZCkKK3sKKwlpZiAobWQgPT0g RVZQX3NoYTI1NigpKQorCQlyZXR1cm4gMzI7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTM4 NCgpKQorCQlyZXR1cm4gNDg7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTUxMigpKQorCQly ZXR1cm4gNjQ7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKKy8qCisgKiBMZW5ndGggb2Yg YXNzb2NpYXRlZCBkYXRhIChBIGluIG1jZ3JldyBwYXBlcikKKyAqLworI2lmbmRlZiBURVNU X0VOQ1JZUFQKKyNkZWZpbmUgUEdfQURfTEVOIDQKKyNlbHNlCisjZGVmaW5lIFBHX0FEX0xF TiBzaXplb2YodGVzdF9BKQorI2VuZGlmCisKKy8qCisgKiBDb21wdXRlIG1lc3NhZ2UgYXV0 aGVudGljYXRpb24gdGFnIChUIGluIHRoZSBtY2dyZXcgcGFwZXIpLCBmcm9tIE1BQyBrZXkK KyAqIGFuZCBjaXBoZXJ0ZXh0LgorICoKKyAqIFJldHVybnMgZmFsc2Ugb24gZXJyb3IsIHdp dGggZXJyb3IgbWVzc2FnZSBpbiBlcnJtc2dwLgorICovCitzdGF0aWMgYm9vbAorZ2V0X21l c3NhZ2VfYXV0aF90YWcoY29uc3QgRVZQX01EICptZCwKKwkJCQkJIGNvbnN0IHVuc2lnbmVk IGNoYXIgKm1hY19rZXksIGludCBtYWNfa2V5X2xlbiwKKwkJCQkJIGNvbnN0IHVuc2lnbmVk IGNoYXIgKmVuY3IsIGludCBlbmNybGVuLAorCQkJCQkgdW5zaWduZWQgY2hhciAqbWRfdmFs dWUsIHNpemVfdCAqbWRfbGVuX3AsCisJCQkJCSBjb25zdCBjaGFyICoqZXJybXNncCkKK3sK KwlzdGF0aWMgY2hhciBtc2didWZbMTAyNF07CisJRVZQX01EX0NUWCAqZXZwX21kX2N0eCA9 IE5VTEw7CisJRVZQX1BLRVkgICAqcGtleSA9IE5VTEw7CisJc2l6ZV90CQlidWZzaXplOwor CXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJaW50NjQJCWFsOworCWJvb2wJCXJlc3Vs dCA9IGZhbHNlOworCisJaWYgKGVuY3JsZW4gPCAwKQorCXsKKwkJc25wcmludGYobXNnYnVm LCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGVkIHZhbHVl IGhhcyBpbnZhbGlkIGxlbmd0aCIpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8g ZmFpbDsKKwl9CisKKwlldnBfbWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKworCXBrZXkg PSBFVlBfUEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5VTEwsIG1h Y19rZXksIG1hY19rZXlfbGVuKTsKKwlpZiAoIXBrZXkpCisJeworCQlzbnByaW50Zihtc2di dWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxs b2NhdGUga2V5IGZvciBITUFDOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisKKwkvKgorCSAqIEJ1aWxkIGlucHV0IHRvIE1BQyBjYWxsIChBIHx8IFMgfHwg QUwgaW4gbWNncmV3IHBhcGVyKQorCSAqLworCWJ1ZnNpemUgPSBQR19BRF9MRU4gKyBlbmNy bGVuICsgc2l6ZW9mKGludDY0KTsKKwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisJaWYgKCFi dWYpCisJeworCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnkiKTsK KwkJZ290byBmYWlsOworCX0KKwkvKiBBIChhc3NvY2lhdGVkIGRhdGEpICovCisjaWZuZGVm IFRFU1RfRU5DUllQVAorCWJ1ZlswXSA9ICdQJzsKKwlidWZbMV0gPSAnRyc7CisJKihpbnQx NiAqKSAoYnVmICsgMikgPSBwZ19odG9uMTYoMSk7CisjZWxzZQorCW1lbWNweShidWYsIHRl c3RfQSwgc2l6ZW9mKHRlc3RfQSkpOworI2VuZGlmCisJLyogUyAoY2lwaGVydGV4dCkgKi8K KwltZW1jcHkoYnVmICsgUEdfQURfTEVOLCBlbmNyLCBlbmNybGVuKTsKKwkvKiBBTCAobnVt YmVyIG9mICpiaXRzKiBpbiBBKSAqLworCWFsID0gcGdfaHRvbjY0KFBHX0FEX0xFTiAqIDgp OworCW1lbWNweShidWYgKyBQR19BRF9MRU4gKyBlbmNybGVuLCAmYWwsIHNpemVvZihhbCkp OworCisJLyoKKwkgKiBDYWxsIE1BQworCSAqLworCWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0 KGV2cF9tZF9jdHgsIE5VTEwsIG1kLCBOVUxMLCBwa2V5KSkKKwl7CisJCXNucHJpbnRmKG1z Z2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBpbml0 aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWls OworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25VcGRhdGUoZXZwX21kX2N0eCwgYnVmLCBi dWZzaXplKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJ IGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJS X3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0g bXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnbkZpbmFs KGV2cF9tZF9jdHgsIG1kX3ZhbHVlLCBtZF9sZW5fcCkpCisJeworCQlzbnByaW50Zihtc2di dWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmlu ZyBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlB c3NlcnQoKm1kX2xlbl9wID09IG1kX2hhc2hfbGVuZ3RoKG1kKSk7CisKKwkvKiB0cnVuY2F0 ZSBvdXRwdXQgdG8gaGFsZiB0aGUgbGVuZ3RoLCBwZXIgc3BlYyAqLworCSptZF9sZW5fcCAv PSAyOworCisJcmVzdWx0ID0gdHJ1ZTsKK2ZhaWw6CisJZnJlZShidWYpOworCUVWUF9QS0VZ X2ZyZWUocGtleSk7CisJRVZQX01EX0NUWF9mcmVlKGV2cF9tZF9jdHgpOworCXJldHVybiBy ZXN1bHQ7Cit9CisKKy8qCisgKiBEZWNyeXB0IGEgY29sdW1uIHZhbHVlCisgKi8KK3Vuc2ln bmVkIGNoYXIgKgorZGVjcnlwdF92YWx1ZShQR3Jlc3VsdCAqcmVzLCBjb25zdCBQR0NFSyAq Y2VrLCBpbnQgY2VrYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgaW50IGlucHV0 bGVuLCBjb25zdCBjaGFyICoqZXJybXNncCkKK3sKKwlzdGF0aWMgY2hhciBtc2didWZbMTAy NF07CisKKwljb25zdCB1bnNpZ25lZCBjaGFyICppdiA9IE5VTEw7CisJc2l6ZV90CQlpdmxl bjsKKworCWNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKwljb25zdCBFVlBfTUQgKm1kOwor CUVWUF9DSVBIRVJfQ1RYICpldnBfY2lwaGVyX2N0eCA9IE5VTEw7CisJaW50CQkJZW5jX2tl eV9sZW47CisJaW50CQkJbWFjX2tleV9sZW47CisJaW50CQkJaXZfa2V5X2xlbjsKKwlpbnQJ CQlrZXlfbGVuOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuY19rZXk7CisJY29uc3QgdW5z aWduZWQgY2hhciAqbWFjX2tleTsKKwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhf TURfU0laRV07CisJc2l6ZV90CQltZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVf dAkJYnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNo YXIgKmRlY3I7CisJaW50CQkJZGVjcmxlbiwKKwkJCQlkZWNybGVuMjsKKworCXVuc2lnbmVk IGNoYXIgKnJlc3VsdCA9IE5VTEw7CisKKwljaXBoZXIgPSBwZ19jZWthbGdfdG9fb3BlbnNz bF9jaXBoZXIoY2VrYWxnKTsKKwlpZiAoIWNpcGhlcikKKwl7CisJCXNucHJpbnRmKG1zZ2J1 Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoInVucmVjb2duaXplZCBl bmNyeXB0aW9uIGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkqZXJy bXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3Rv X29wZW5zc2xfbWQoY2VrYWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJc25wcmludGYobXNnYnVm LCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGRp Z2VzdCBhbGdvcml0aG0gaWRlbnRpZmllcjogJWQiKSwgY2VrYWxnKTsKKwkJKmVycm1zZ3Ag PSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlldnBfY2lwaGVyX2N0eCA9IEVWUF9D SVBIRVJfQ1RYX25ldygpOworCisJaWYgKCFFVlBfRGVjcnlwdEluaXRfZXgoZXZwX2NpcGhl cl9jdHgsIGNpcGhlciwgTlVMTCwgTlVMTCwgTlVMTCkpCisJeworCQlzbnByaW50Zihtc2di dWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGlu aXRpYWxpemF0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJp bmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZh aWw7CisJfQorCisJZW5jX2tleV9sZW4gPSBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGV2 cF9jaXBoZXJfY3R4KTsKKwltYWNfa2V5X2xlbiA9IGl2X2tleV9sZW4gPSBtZF9rZXlfbGVu Z3RoKG1kKTsKKwlrZXlfbGVuID0gbWFjX2tleV9sZW4gKyBlbmNfa2V5X2xlbiArIGl2X2tl eV9sZW47CisKKwlpZiAoY2VrLT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlzbnBy aW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgaGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6 ICV6dSwgcmVxdWlyZWQ6ICVkKSIpLAorCQkJCSBjZWstPmNla2RhdGFsZW4sIGtleV9sZW4p OworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCW1hY19rZXkg PSBjZWstPmNla2RhdGE7CisJZW5jX2tleSA9IGNlay0+Y2VrZGF0YSArIG1hY19rZXlfbGVu OworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tleSwgbWFjX2tleV9s ZW4sCisJCQkJCQkJICBpbnB1dCwgaW5wdXRsZW4gLSAobWRfaGFzaF9sZW5ndGgobWQpIC8g MiksCisJCQkJCQkJICBtZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgIGVycm1zZ3ApKQor CXsKKwkJZ290byBmYWlsOworCX0KKworCS8qIHVzZSBjb25zdGFudC10aW1lIGNvbXBhcmlz b24sIHBlciBtY2dyZXcgcGFwZXIgKi8KKwlpZiAoQ1JZUFRPX21lbWNtcChpbnB1dCArIChp bnB1dGxlbiAtIG1kX2xlbiksIG1kX3ZhbHVlLCBtZF9sZW4pICE9IDApCisJeworCQkqZXJy bXNncCA9IGxpYnBxX2dldHRleHQoIk1BQyBtaXNtYXRjaCIpOworCQlnb3RvIGZhaWw7CisJ fQorCisJaXZsZW4gPSBFVlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgoZXZwX2NpcGhlcl9jdHgp OworCWl2ID0gaW5wdXQ7CisJaW5wdXQgKz0gaXZsZW47CisJaW5wdXRsZW4gLT0gaXZsZW47 CisJaWYgKCFFVlBfRGVjcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIE5VTEwsIE5VTEws IGVuY19rZXksIGl2KSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1Ziks CisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVk OiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlidWZzaXpl ID0gaW5wdXRsZW4gKyBFVlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9jaXBoZXJfY3R4 KSArIDE7CisjaWZuZGVmIFRFU1RfRU5DUllQVAorCWJ1ZiA9IHBxUmVzdWx0QWxsb2MocmVz LCBidWZzaXplLCBmYWxzZSk7CisjZWxzZQorCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKyNl bmRpZgorCWlmICghYnVmKQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJvdXQg b2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisJZGVjciA9IGJ1ZjsKKwlpZiAoIUVW UF9EZWNyeXB0VXBkYXRlKGV2cF9jaXBoZXJfY3R4LCBkZWNyLCAmZGVjcmxlbiwgaW5wdXQs IGlucHV0bGVuIC0gbWRfbGVuKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1z Z2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gZmFpbGVkOiAlcyIpLAor CQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVy cm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisJaWYgKCFFVlBfRGVjcnlwdEZp bmFsX2V4KGV2cF9jaXBoZXJfY3R4LCBkZWNyICsgZGVjcmxlbiwgJmRlY3JsZW4yKSkKKwl7 CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRl eHQoImRlY3J5cHRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8g ZmFpbDsKKwl9CisJZGVjcmxlbiArPSBkZWNybGVuMjsKKwlBc3NlcnQoZGVjcmxlbiA8IGJ1 ZnNpemUpOworCWRlY3JbZGVjcmxlbl0gPSAnXDAnOworCXJlc3VsdCA9IGRlY3I7CisKK2Zh aWw6CisJRVZQX0NJUEhFUl9DVFhfZnJlZShldnBfY2lwaGVyX2N0eCk7CisKKwlyZXR1cm4g cmVzdWx0OworfQorCisvKgorICogQ29tcHV0ZSBhIHN5bnRoZXRpYyBpbml0aWFsaXphdGlv biB2ZWN0b3IgKFNJViksIGZvciBkZXRlcm1pbmlzdGljCisgKiBlbmNyeXB0aW9uLgorICoK KyAqIFBlciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uLCB0aGUgU0lWIGlzIGNvbXB1dGVkIGFz OgorICoKKyAqIFNVQlNUUklORyhITUFDKEssIFApIEZPUiBJVkxFTikKKyAqLworI2lmbmRl ZiBURVNUX0VOQ1JZUFQKK3N0YXRpYyBib29sCittYWtlX3NpdihQR2Nvbm4gKmNvbm4sCisJ CSB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2bGVuLAorCQkgY29uc3QgRVZQX01EICpt ZCwKKwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2X2tleSwgaW50IGl2X2tleV9sZW4sCisJ CSBjb25zdCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQsIGludCBwbGFpbnRleHRfbGVuKQor eworCUVWUF9NRF9DVFggKmV2cF9tZF9jdHggPSBOVUxMOworCUVWUF9QS0VZICAgKnBrZXkg PSBOVUxMOworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9NRF9TSVpFXTsKKwlz aXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJYm9vbAkJcmVzdWx0ID0gZmFs c2U7CisKKwlldnBfbWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKworCXBrZXkgPSBFVlBf UEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5VTEwsIGl2X2tleSwg aXZfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoY29ubiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBrZXkgZm9yIEhNQUM6ICVzIiwKKwkJCQkJ CQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8g ZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduSW5pdChldnBfbWRfY3R4LCBOVUxM LCBtZCwgTlVMTCwgcGtleSkpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25u LCAiZGlnZXN0IGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVh c29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0K KworCWlmICghRVZQX0RpZ2VzdFNpZ25VcGRhdGUoZXZwX21kX2N0eCwgcGxhaW50ZXh0LCBw bGFpbnRleHRfbGVuKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJk aWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9z dHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVW UF9EaWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwgbWRfdmFsdWUsICZtZF9sZW4pKQorCXsK KwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImRpZ2VzdCBzaWduaW5nIGZhaWxl ZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9y KCkpKTsKKwkJZ290byBmYWlsOworCX0KKwlBc3NlcnQobWRfbGVuID09IG1kX2hhc2hfbGVu Z3RoKG1kKSk7CisJbWVtY3B5KGl2LCBtZF92YWx1ZSwgaXZsZW4pOworCisJcmVzdWx0ID0g dHJ1ZTsKK2ZhaWw6CisJRVZQX1BLRVlfZnJlZShwa2V5KTsKKwlFVlBfTURfQ1RYX2ZyZWUo ZXZwX21kX2N0eCk7CisJcmV0dXJuIHJlc3VsdDsKK30KKyNlbmRpZgkJCQkJCQkvKiBURVNU X0VOQ1JZUFQgKi8KKworLyoKKyAqIEVuY3J5cHQgYSBjb2x1bW4gdmFsdWUKKyAqLwordW5z aWduZWQgY2hhciAqCitlbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29ubiwgY29uc3QgUEdDRUsg KmNlaywgaW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCAqbmJ5 dGVzcCwgYm9vbCBlbmNfZGV0KQoreworCWludAkJCW5ieXRlcyA9ICpuYnl0ZXNwOworCXVu c2lnbmVkIGNoYXIgaXZbRVZQX01BWF9JVl9MRU5HVEhdOworCXNpemVfdAkJaXZsZW47CisJ Y29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJRVZQX0NJ UEhFUl9DVFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5X2xlbjsK KwlpbnQJCQltYWNfa2V5X2xlbjsKKwlpbnQJCQlpdl9rZXlfbGVuOworCWludAkJCWtleV9s ZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwljb25zdCB1bnNpZ25lZCBj aGFyICptYWNfa2V5OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKml2X2tleTsKKwlzaXplX3QJ CWJ1ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFy ICplbmNyOworCWludAkJCWVuY3JsZW4sCisJCQkJZW5jcmxlbjI7CisKKwljb25zdCBjaGFy ICplcnJtc2c7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVdOwor CXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlzaXplX3QJCWJ1ZjJzaXpl OworCXVuc2lnbmVkIGNoYXIgKmJ1ZjIgPSBOVUxMOworCisJdW5zaWduZWQgY2hhciAqcmVz dWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihj ZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Io Y29ubiwgInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobSBpZGVudGlmaWVyOiAl ZCIsIGNla2FsZyk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwltZCA9IHBnX2Nla2FsZ190b19v cGVuc3NsX21kKGNla2FsZyk7CisJaWYgKCFtZCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25u X2Vycm9yKGNvbm4sICJ1bnJlY29nbml6ZWQgZGlnZXN0IGFsZ29yaXRobSBpZGVudGlmaWVy OiAlZCIsIGNla2FsZyk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlldnBfY2lwaGVyX2N0eCA9 IEVWUF9DSVBIRVJfQ1RYX25ldygpOworCisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZw X2NpcGhlcl9jdHgsIGNpcGhlciwgTlVMTCwgTlVMTCwgTlVMTCkpCisJeworCQlsaWJwcV9h cHBlbmRfY29ubl9lcnJvcihjb25uLCAiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWls ZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJv cigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJf Q1RYX2tleV9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gaXZfa2V5 X2xlbiA9IG1kX2tleV9sZW5ndGgobWQpOworCWtleV9sZW4gPSBtYWNfa2V5X2xlbiArIGVu Y19rZXlfbGVuICsgaXZfa2V5X2xlbjsKKworCWlmIChjZWstPmNla2RhdGFsZW4gIT0ga2V5 X2xlbikKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb2x1bW4gZW5j cnlwdGlvbiBrZXkgaGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6ICV6dSwg cmVxdWlyZWQ6ICVkKSIsCisJCQkJCQkJCWNlay0+Y2VrZGF0YWxlbiwga2V5X2xlbik7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCWVuY19rZXkg PSBjZWstPmNla2RhdGEgKyBtYWNfa2V5X2xlbjsKKwlpdl9rZXkgPSBjZWstPmNla2RhdGEg KyBtYWNfa2V5X2xlbiArIGVuY19rZXlfbGVuOworCisJaXZsZW4gPSBFVlBfQ0lQSEVSX0NU WF9pdl9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCUFzc2VydChpdmxlbiA8PSBzaXplb2Yo aXYpKTsKKwlpZiAoZW5jX2RldCkKKwl7CisjaWZuZGVmIFRFU1RfRU5DUllQVAorCQltYWtl X3Npdihjb25uLCBpdiwgaXZsZW4sIG1kLCBpdl9rZXksIGl2X2tleV9sZW4sIHZhbHVlLCBu Ynl0ZXMpOworI2Vsc2UKKwkJKHZvaWQpIGl2X2tleTsJLyogdW51c2VkICovCisJCW1lbWNw eShpdiwgdGVzdF9JViwgaXZsZW4pOworI2VuZGlmCisJfQorCWVsc2UKKwkJcGdfc3Ryb25n X3JhbmRvbShpdiwgaXZsZW4pOworCWlmICghRVZQX0VuY3J5cHRJbml0X2V4KGV2cF9jaXBo ZXJfY3R4LCBOVUxMLCBOVUxMLCBlbmNfa2V5LCBpdikpCisJeworCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVz IiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlidWZzaXplID0gaXZsZW4gKyAobmJ5dGVzICsgMiAq IEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3NpemUoZXZwX2NpcGhlcl9jdHgpIC0gMSk7CisJYnVm ID0gbWFsbG9jKGJ1ZnNpemUpOworCWlmICghYnVmKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nv bm5fZXJyb3IoY29ubiwgIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwlt ZW1jcHkoYnVmLCBpdiwgaXZsZW4pOworCWVuY3IgPSBidWYgKyBpdmxlbjsKKwlpZiAoIUVW UF9FbmNyeXB0VXBkYXRlKGV2cF9jaXBoZXJfY3R4LCBlbmNyLCAmZW5jcmxlbiwgdmFsdWUs IG5ieXRlcykpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZW5jcnlw dGlvbiBmYWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJaWYgKCFFVlBfRW5jcnlwdEZp bmFsX2V4KGV2cF9jaXBoZXJfY3R4LCBlbmNyICsgZW5jcmxlbiwgJmVuY3JsZW4yKSkKKwl7 CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGZhaWxlZDog JXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJZ290byBmYWlsOworCX0KKwllbmNybGVuICs9IGVuY3JsZW4yOworCisJZW5jciAt PSBpdmxlbjsKKwllbmNybGVuICs9IGl2bGVuOworCisJQXNzZXJ0KGVuY3JsZW4gPD0gYnVm c2l6ZSk7CisKKwlpZiAoIWdldF9tZXNzYWdlX2F1dGhfdGFnKG1kLCBtYWNfa2V5LCBtYWNf a2V5X2xlbiwKKwkJCQkJCQkgIGVuY3IsIGVuY3JsZW4sCisJCQkJCQkJICBtZF92YWx1ZSwg Jm1kX2xlbiwKKwkJCQkJCQkgICZlcnJtc2cpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwgIiVzXG4iLCBlcnJtc2cpOworCQlnb3RvIGZhaWw7CisJ fQorCisJYnVmMnNpemUgPSBlbmNybGVuICsgbWRfbGVuOworCWJ1ZjIgPSBtYWxsb2MoYnVm MnNpemUpOworCWlmICghYnVmMikKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sICJvdXQgb2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisJbWVtY3B5KGJ1ZjIs IGVuY3IsIGVuY3JsZW4pOworCW1lbWNweShidWYyICsgZW5jcmxlbiwgbWRfdmFsdWUsIG1k X2xlbik7CisKKwlyZXN1bHQgPSBidWYyOworCW5ieXRlcyA9IGJ1ZjJzaXplOworCitmYWls OgorCWZyZWUoYnVmKTsKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJfY3R4KTsK KworCSpuYnl0ZXNwID0gbmJ5dGVzOworCXJldHVybiByZXN1bHQ7Cit9CisKKworLyoKKyAq IFJ1biB0ZXN0IGNhc2VzCisgKi8KKyNpZmRlZiBURVNUX0VOQ1JZUFQKKworc3RhdGljIHZv aWQKK2RlYnVnX3ByaW50X2hleChjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNpZ25lZCBj aGFyICp2YWwsIGludCBsZW4pCit7CisJcHJpbnRmKCIlcyA9IiwgbmFtZSk7CisJZm9yIChp bnQgaSA9IDA7IGkgPCBsZW47IGkrKykKKwl7CisJCWlmIChpICUgMTYgPT0gMCkKKwkJCXBy aW50ZigiXG4iKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgIik7CisJCXByaW50ZigiJTAyeCIs IHZhbFtpXSk7CisJfQorCXByaW50ZigiXG4iKTsKK30KKworLyoKKyAqIEsgYW5kIFAgYXJl IGZyb20gdGhlIG1jZ3JldyBwYXBlciwgS19sZW4gYW5kIFBfbGVuIGFyZSB0aGVpciByZXNw ZWN0aXZlCisgKiBsZW5ndGhzLiAgZW5jcnlwdF92YWx1ZSgpIHJlcXVpcmVzIHRoZSBrZXkg bGVuZ3RoIHRvIGNvbnRhaW4gdGhlIElWIGtleSwgc28KKyAqIHdlIHBhc3MgaXQgaGVyZSwg dG9vLCBidXQgaXQgd2lsbCBub3QgYmUgdXNlZC4KKyAqLworc3RhdGljIHZvaWQKK3Rlc3Rf Y2FzZShpbnQgYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICpLLCBzaXplX3QgS19sZW4sIHNp emVfdCBJVl9rZXlfbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpQLCBzaXplX3QgUF9sZW4p Cit7CisJdW5zaWduZWQgY2hhciAqQzsKKwlpbnQJCQluYnl0ZXM7CisJUEdDRUsJCWNlazsK KworCW5ieXRlcyA9IFBfbGVuOworCWNlay5jZWtkYXRhbGVuID0gS19sZW4gKyBJVl9rZXlf bGVuOworCWNlay5jZWtkYXRhID0gbWFsbG9jKGNlay5jZWtkYXRhbGVuKTsKKwltZW1jcHko Y2VrLmNla2RhdGEsIEssIEtfbGVuKTsKKworCUMgPSBlbmNyeXB0X3ZhbHVlKE5VTEwsICZj ZWssIGFsZywgUCwgJm5ieXRlcywgdHJ1ZSk7CisJZGVidWdfcHJpbnRfaGV4KCJDIiwgQywg bmJ5dGVzKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlw cmludGYoIjUuMVxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hN QUNfU0hBXzI1NiwgSywgMzIsIDE2LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS4yXG4i KTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0LCBL LCA0OCwgMjQsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjNcbiIpOworCXRlc3RfY2Fz ZShQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQsIEssIDU2LCAyNCwgUCwg c2l6ZW9mKFApKTsKKwlwcmludGYoIjUuNFxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFE X0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMiwgSywgNjQsIDMyLCBQLCBzaXplb2YoUCkpOwor CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaCBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi4wYjY1ZjkxM2RhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtZW5jcnlwdC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICoKKyAqIGZlLWVuY3J5cHQuaAorICoKKyAqIGNsaWVudC1zaWRlIGNvbHVt biBlbmNyeXB0aW9uIHN1cHBvcnQKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtZW5jcnlwdC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwor I2lmbmRlZiBGRV9FTkNSWVBUX0gKKyNkZWZpbmUgRkVfRU5DUllQVF9ICisKKyNpbmNsdWRl ICJsaWJwcS1mZS5oIgorI2luY2x1ZGUgImxpYnBxLWludC5oIgorCitleHRlcm4gdW5zaWdu ZWQgY2hhciAqZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwgY29uc3QgY2hh ciAqY21rZmlsZW5hbWUsIGludCBjbWthbGcsCisJCQkJCQkJCQkJCWludCBmcm9tbGVuLCBj b25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkJCQkJCQlpbnQgKnRvbGVuKTsKKwor ZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmRlY3J5cHRfdmFsdWUoUEdyZXN1bHQgKnJlcywgY29u c3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVuc2lnbmVkIGNo YXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCisJCQkJCQkJCQljb25zdCBjaGFyICoqZXJybXNn cCk7CisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICplbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29u biwgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVuc2ln bmVkIGNoYXIgKnZhbHVlLCBpbnQgKm5ieXRlc3AsIGJvb2wgZW5jX2RldCk7CisKKyNlbmRp ZgkJCQkJCQkvKiBGRV9FTkNSWVBUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWV4ZWMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwppbmRl eCBkYTIyOWQ2MzJhLi5iMTFmZTQ3MmZmIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1leGVjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBA IC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAorI2luY2x1 ZGUgImNvbW1vbi9jb2xlbmMuaCIKKyNpbmNsdWRlICJmZS1lbmNyeXB0LmgiCiAjaW5jbHVk ZSAibGlicHEtZmUuaCIKICNpbmNsdWRlICJsaWJwcS1pbnQuaCIKICNpbmNsdWRlICJtYi9w Z193Y2hhci5oIgpAQCAtNzIsNyArNzQsOCBAQCBzdGF0aWMgaW50CVBRc2VuZFF1ZXJ5R3V0 cyhQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVz LAogCQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCWNvbnN0IGludCAq cGFyYW1Gb3JtYXRzLAotCQkJCQkJCWludCByZXN1bHRGb3JtYXQpOworCQkJCQkJCWludCBy ZXN1bHRGb3JtYXQsCisJCQkJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiBzdGF0aWMgdm9p ZCBwYXJzZUlucHV0KFBHY29ubiAqY29ubik7CiBzdGF0aWMgUEdyZXN1bHQgKmdldENvcHlS ZXN1bHQoUEdjb25uICpjb25uLCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMg Ym9vbCBQUWV4ZWNTdGFydChQR2Nvbm4gKmNvbm4pOwpAQCAtMTE4Myw2ICsxMTg2LDQxNCBA QCBwcVNhdmVQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICp2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBwcVNhdmVDb2x1bW5NYXN0 ZXJLZXkgLSBzYXZlIGNvbHVtbiBtYXN0ZXIga2V5IHNlbnQgYnkgYmFja2VuZAorICovCitp bnQKK3BxU2F2ZUNvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgY29u c3QgY2hhciAqa2V5bmFtZSwKKwkJCQkJICBjb25zdCBjaGFyICprZXlyZWFsbSkKK3sKKwlj aGFyCSAgICprZXluYW1lX2NvcHk7CisJY2hhcgkgICAqa2V5cmVhbG1fY29weTsKKwlib29s CQlmb3VuZDsKKworCWtleW5hbWVfY29weSA9IHN0cmR1cChrZXluYW1lKTsKKwlpZiAoIWtl eW5hbWVfY29weSkKKwkJcmV0dXJuIEVPRjsKKwlrZXlyZWFsbV9jb3B5ID0gc3RyZHVwKGtl eXJlYWxtKTsKKwlpZiAoIWtleXJlYWxtX2NvcHkpCisJeworCQlmcmVlKGtleW5hbWVfY29w eSk7CisJCXJldHVybiBFT0Y7CisJfQorCisJZm91bmQgPSBmYWxzZTsKKwlmb3IgKGludCBp ID0gMDsgaSA8IGNvbm4tPm5jbWtzOyBpKyspCisJeworCQlzdHJ1Y3QgcGdfY21rICpjaGVj a2NtayA9ICZjb25uLT5jbWtzW2ldOworCisJCS8qIHJlcGxhY2UgZXhpc3Rpbmc/ICovCisJ CWlmIChjaGVja2Ntay0+Y21raWQgPT0ga2V5aWQpCisJCXsKKwkJCWZyZWUoY2hlY2tjbWst PmNta25hbWUpOworCQkJZnJlZShjaGVja2Ntay0+Y21rcmVhbG0pOworCQkJY2hlY2tjbWst PmNta25hbWUgPSBrZXluYW1lX2NvcHk7CisJCQljaGVja2Ntay0+Y21rcmVhbG0gPSBrZXly ZWFsbV9jb3B5OworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkv KiBhcHBlbmQgbmV3PyAqLworCWlmICghZm91bmQpCisJeworCQlpbnQJCQluZXduY21rczsK KwkJc3RydWN0IHBnX2NtayAqbmV3Y21rczsKKwkJc3RydWN0IHBnX2NtayAqbmV3Y21rOwor CisJCW5ld25jbWtzID0gY29ubi0+bmNta3MgKyAxOworCQlpZiAobmV3bmNta3MgPD0gMCkK KwkJCXJldHVybiBFT0Y7CisJCW5ld2Nta3MgPSByZWFsbG9jKGNvbm4tPmNta3MsIG5ld25j bWtzICogc2l6ZW9mKHN0cnVjdCBwZ19jbWspKTsKKwkJaWYgKCFuZXdjbWtzKQorCQl7CisJ CQlmcmVlKGtleW5hbWVfY29weSk7CisJCQlmcmVlKGtleXJlYWxtX2NvcHkpOworCQkJcmV0 dXJuIEVPRjsKKwkJfQorCisJCW5ld2NtayA9ICZuZXdjbWtzW25ld25jbWtzIC0gMV07CisJ CW5ld2Ntay0+Y21raWQgPSBrZXlpZDsKKwkJbmV3Y21rLT5jbWtuYW1lID0ga2V5bmFtZV9j b3B5OworCQluZXdjbWstPmNta3JlYWxtID0ga2V5cmVhbG1fY29weTsKKworCQljb25uLT5u Y21rcyA9IG5ld25jbWtzOworCQljb25uLT5jbWtzID0gbmV3Y21rczsKKwl9CisKKwlyZXR1 cm4gMDsKK30KKworLyoKKyAqIFJlcGxhY2UgcGxhY2Vob2xkZXJzIGluIGlucHV0IHN0cmlu Zy4gIFJldHVybiB2YWx1ZSBtYWxsb2MnZWQuCisgKi8KK3N0YXRpYyBjaGFyICoKK3JlcGxh Y2VfY21rX3BsYWNlaG9sZGVycyhjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqY21rbmFt ZSwgY29uc3QgY2hhciAqY21rcmVhbG0sIGludCBjbWthbGcsIGNvbnN0IGNoYXIgKnRtcGZp bGUpCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKworCWluaXRQUUV4cEJ1ZmZlcigmYnVm KTsKKworCWZvciAoY29uc3QgY2hhciAqcCA9IGluOyAqcDsgcCsrKQorCXsKKwkJaWYgKHBb MF0gPT0gJyUnKQorCQl7CisJCQlzd2l0Y2ggKHBbMV0pCisJCQl7CisJCQkJY2FzZSAnYSc6 CisJCQkJCXsKKwkJCQkJCWNvbnN0IGNoYXIgKnMgPSBnZXRfY21rYWxnX25hbWUoY21rYWxn KTsKKworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgcyA/IHMgOiAiSU5WQUxJ RCIpOworCQkJCQl9CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnaic6CisJ CQkJCXsKKwkJCQkJCWNvbnN0IGNoYXIgKnMgPSBnZXRfY21rYWxnX2p3YV9uYW1lKGNta2Fs Zyk7CisKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIHMgPyBzIDogIklOVkFM SUQiKTsKKwkJCQkJfQorCQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ2snOgor CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBjbWtuYW1lKTsKKwkJCQkJcCsrOwor CQkJCQlicmVhazsKKwkJCQljYXNlICdwJzoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgdG1wZmlsZSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAncic6 CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta3JlYWxtKTsKKwkJCQkJcCsr OworCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlckNo YXIoJmJ1ZiwgcFswXSk7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJYXBwZW5kUFFFeHBCdWZm ZXJDaGFyKCZidWYsIHBbMF0pOworCX0KKworCXJldHVybiBidWYuZGF0YTsKK30KKworI2lm bmRlZiBVU0VfU1NMCisvKgorICogRHVtbXkgaW1wbGVtZW50YXRpb24gZm9yIG5vbi1TU0wg YnVpbGRzCisgKi8KK3Vuc2lnbmVkIGNoYXIgKgorZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBH Y29ubiAqY29ubiwgY29uc3QgY2hhciAqY21rZmlsZW5hbWUsIGludCBjbWthbGcsCisJCQkJ CSAgaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCSAgaW50 ICp0b2xlbikKK3sKKwlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY29sdW1uIGVu Y3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CisJcmV0dXJuIE5VTEw7 Cit9CisjZW5kaWYKKworLyoKKyAqIERlY3J5cHQgYSBDRUsgdXNpbmcgdGhlIGdpdmVuIENN Sy4gIFRoZSBjaXBoZXJ0ZXh0IGlzIHBhc3NlZCBpbgorICogImZyb20iIGFuZCAiZnJvbWxl biIuICBSZXR1cm4gdGhlIGRlY3J5cHRlZCB2YWx1ZSBpbiBhIG1hbGxvYydlZCBhcmVhLCBp dHMKKyAqIGxlbmd0aCB2aWEgInRvbGVuIi4gIFJldHVybiBOVUxMIG9uIGVycm9yOyBhZGQg ZXJyb3IgbWVzc2FnZXMgZGlyZWN0bHkgdG8KKyAqICJjb25uIi4KKyAqLworc3RhdGljIHVu c2lnbmVkIGNoYXIgKgorZGVjcnlwdF9jZWsoUEdjb25uICpjb25uLCBjb25zdCBQR0NNSyAq Y21rLCBpbnQgY21rYWxnLAorCQkJaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmZyb20sCisJCQlpbnQgKnRvbGVuKQoreworCWNoYXIJICAgKmNta2xvb2t1cDsKKwlib29s CQlmb3VuZCA9IGZhbHNlOworCXVuc2lnbmVkIGNoYXIgKnJlc3VsdCA9IE5VTEw7CisKKwlj bWtsb29rdXAgPSBzdHJkdXAoY29ubi0+Y21rbG9va3VwID8gY29ubi0+Y21rbG9va3VwIDog IiIpOworCisJaWYgKCFjbWtsb29rdXApCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwkvKgor CSAqIEFuYWx5emUgc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0CisJICovCisJZm9yIChjaGFy ICpzID0gc3RydG9rKGNta2xvb2t1cCwgIjsiKTsgczsgcyA9IHN0cnRvayhOVUxMLCAiOyIp KQorCXsKKwkJY2hhcgkgICAqc2VwOworCisJCS8qIHNwbGl0IGZvdW5kIHRva2VuIGF0ICc9 JyAqLworCQlzZXAgPSBzdHJjaHIocywgJz0nKTsKKwkJaWYgKCFzZXApCisJCXsKKwkJCWxp YnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJzeW50YXggZXJyb3IgaW4gQ01LIGxvb2t1 cCBzcGVjaWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXMiLCAnPScsIHMpOworCQkJYnJl YWs7CisJCX0KKworCQkvKiBtYXRjaGluZyByZWFsbT8gKi8KKwkJaWYgKHN0cm5jbXAocywg IioiLCBzZXAgLSBzKSA9PSAwIHx8IHN0cm5jbXAocywgY21rLT5jbWtyZWFsbSwgc2VwIC0g cykgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqc2VwMjsKKworCQkJZm91bmQgPSB0cnVlOwor CisJCQlzZXAyID0gc3RyY2hyKHNlcCwgJzonKTsKKwkJCWlmICghc2VwMikKKwkJCXsKKwkJ CQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAic3ludGF4IGVycm9yIGluIENNSyBs b29rdXAgc3BlY2lmaWNhdGlvbiwgbWlzc2luZyBcIiVjXCI6ICVzIiwgJzonLCBzKTsKKwkJ CQlnb3RvIGZhaWw7CisJCQl9CisKKwkJCWlmIChzdHJuY21wKHNlcCArIDEsICJmaWxlIiwg c2VwMiAtIChzZXAgKyAxKSkgPT0gMCkKKwkJCXsKKwkJCQljaGFyCSAgICpjbWtmaWxlbmFt ZTsKKworCQkJCWNta2ZpbGVuYW1lID0gcmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKHNlcDIg KyAxLCBjbWstPmNta25hbWUsIGNtay0+Y21rcmVhbG0sIGNta2FsZywgIklOVkFMSUQiKTsK KwkJCQlyZXN1bHQgPSBkZWNyeXB0X2Nla19mcm9tX2ZpbGUoY29ubiwgY21rZmlsZW5hbWUs IGNta2FsZywgZnJvbWxlbiwgZnJvbSwgdG9sZW4pOworCQkJCWZyZWUoY21rZmlsZW5hbWUp OworCQkJfQorCQkJZWxzZSBpZiAoc3RybmNtcChzZXAgKyAxLCAicnVuIiwgc2VwMiAtIChz ZXAgKyAxKSkgPT0gMCkKKwkJCXsKKwkJCQljaGFyCQl0bXBmaWxlW01BWFBHUEFUSF0gPSB7 MH07CisJCQkJaW50CQkJZmQ7CisJCQkJY2hhcgkgICAqY29tbWFuZDsKKwkJCQlGSUxFCSAg ICpmcDsKKwkJCQkvKiBvbmx5IG5lZWRzIGVub3VnaCByb29tIGZvciBDRUsga2V5IG1hdGVy aWFsICovCisJCQkJY2hhcgkJYnVmWzEwMjRdOworCQkJCXNpemVfdAkJbnJlYWQ7CisJCQkJ aW50CQkJcmM7CisKKyNpZm5kZWYgV0lOMzIKKwkJCQl7CisJCQkJCWNvbnN0IGNoYXIgKnRt cGRpcjsKKworCQkJCQl0bXBkaXIgPSBnZXRlbnYoIlRNUERJUiIpOworCQkJCQlpZiAoIXRt cGRpcikKKwkJCQkJCXRtcGRpciA9ICIvdG1wIjsKKwkJCQkJc3RybGNweSh0bXBmaWxlLCB0 bXBkaXIsIHNpemVvZih0bXBmaWxlKSk7CisJCQkJCXN0cmxjYXQodG1wZmlsZSwgIi9saWJw cS1YWFhYWFgiLCBzaXplb2YodG1wZmlsZSkpOworCQkJCQlmZCA9IG1rc3RlbXAodG1wZmls ZSk7CisJCQkJCWlmIChmZCA8IDApCisJCQkJCXsKKwkJCQkJCWxpYnBxX2FwcGVuZF9jb25u X2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZTogJW0i KTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJCQkJfQorCQkJCX0KKyNlbHNlCisJCQkJeworCQkJ CQljaGFyCQl0bXBkaXJbTUFYUEdQQVRIXTsKKwkJCQkJaW50CQkJcmV0OworCisJCQkJCXJl dCA9IEdldFRlbXBQYXRoKE1BWFBHUEFUSCwgdG1wZGlyKTsKKwkJCQkJaWYgKHJldCA9PSAw IHx8IHJldCA+IE1BWFBHUEFUSCkKKwkJCQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgImNvdWxkIG5vdCBsb2NhdGUgdGVtcG9yYXJ5IGRpcmVjdG9yeTogJXMi LAorCQkJCQkJCQkJCQkJIXJldCA/IHN0cmVycm9yKGVycm5vKSA6ICIiKTsKKwkJCQkJCXJl dHVybiBmYWxzZTsKKwkJCQkJfQorCisJCQkJCWlmIChHZXRUZW1wRmlsZU5hbWUodG1wZGly LCAibGlicHEiLCAwLCB0bXBmaWxlKSA9PSAwKQorCQkJCQl7CisJCQkJCQlsaWJwcV9hcHBl bmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJ1biBjcmVhdGUgdGVtcG9yYXJ5IGZp bGU6IGVycm9yIGNvZGUgJWx1IiwKKwkJCQkJCQkJCQkJCUdldExhc3RFcnJvcigpKTsKKwkJ CQkJCWdvdG8gZmFpbDsKKwkJCQkJfQorCisJCQkJCWZkID0gb3Blbih0bXBmaWxlLCBPX1dS T05MWSB8IE9fVFJVTkMgfCBQR19CSU5BUlksIDApOworCQkJCQlpZiAoZmQgPCAwKQorCQkJ CQl7CisJCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJ1 biBvcGVuIHRlbXBvcmFyeSBmaWxlOiAlbSIpOworCQkJCQkJZ290byBmYWlsOworCQkJCQl9 CisJCQkJfQorI2VuZGlmCisJCQkJaWYgKHdyaXRlKGZkLCBmcm9tLCBmcm9tbGVuKSA8IGZy b21sZW4pCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291 bGQgbm90IHdyaXRlIHRvIHRlbXBvcmFyeSBmaWxlOiAlbSIpOworCQkJCQljbG9zZShmZCk7 CisJCQkJCXVubGluayh0bXBmaWxlKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQlp ZiAoY2xvc2UoZmQpIDwgMCkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3QgY2xvc2UgdGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCXVu bGluayh0bXBmaWxlKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCWNvbW1hbmQg PSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2VwMiArIDEsIGNtay0+Y21rbmFtZSwgY21r LT5jbWtyZWFsbSwgY21rYWxnLCB0bXBmaWxlKTsKKwkJCQlmcCA9IHBvcGVuKGNvbW1hbmQs ICJyIik7CisJCQkJaWYgKCFmcCkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIGNvbW1hbmQgXCIlc1wiOiAlbSIsIGNvbW1hbmQp OworCQkJCQlmcmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdv dG8gZmFpbDsKKwkJCQl9CisJCQkJbnJlYWQgPSBmcmVhZChidWYsIDEsIHNpemVvZihidWYp LCBmcCk7CisJCQkJaWYgKGZlcnJvcihmcCkpCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJlYWQgZnJvbSBjb21tYW5kOiAlbSIpOwor CQkJCQlwY2xvc2UoZnApOworCQkJCQlmcmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1w ZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJZWxzZSBpZiAoIWZlb2YoZnAp KQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dHB1dCBm cm9tIGNvbW1hbmQgdG9vIGxvbmciKTsKKwkJCQkJcGNsb3NlKGZwKTsKKwkJCQkJZnJlZShj b21tYW5kKTsKKwkJCQkJdW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJ fQorCQkJCXJjID0gcGNsb3NlKGZwKTsKKwkJCQlpZiAocmMgIT0gMCkKKwkJCQl7CisJCQkJ CS8qCisJCQkJCSAqIFhYWCB3b3VsZCBsaWtlIHRvIHVzZSB3YWl0X3Jlc3VsdF90b19zdHIo cmMpIGJ1dCB0aGF0CisJCQkJCSAqIGNhbm5vdCBiZSBjYWxsZWQgZnJvbSBsaWJwcSBiZWNh dXNlIGl0IGNhbGxzIGV4aXQoKQorCQkJCQkgKi8KKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgImNvdWxkIG5vdCBydW4gY29tbWFuZCBcIiVzXCIiLCBjb21tYW5kKTsK KwkJCQkJZnJlZShjb21tYW5kKTsKKwkJCQkJdW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3Rv IGZhaWw7CisJCQkJfQorCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJdW5saW5rKHRtcGZpbGUp OworCisJCQkJcmVzdWx0ID0gbWFsbG9jKG5yZWFkKTsKKwkJCQlpZiAoIXJlc3VsdCkKKwkJ CQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJvdXQgb2YgbWVtb3J5 Iik7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJbWVtY3B5KHJlc3VsdCwgYnVmLCBu cmVhZCk7CisJCQkJKnRvbGVuID0gbnJlYWQ7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIkNNSyBsb29rdXAgc2NoZW1lIFwiJXNc IiBub3QgcmVjb2duaXplZCIsIHNlcCArIDEpOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKwkJ fQorCX0KKworCWlmICghZm91bmQpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAibm8gQ01LIGxvb2t1cCBmb3VuZCBmb3IgcmVhbG0gXCIlc1wiIiwgY21rLT5jbWty ZWFsbSk7CisJfQorCitmYWlsOgorCWZyZWUoY21rbG9va3VwKTsKKwlyZXR1cm4gcmVzdWx0 OworfQorCisvKgorICogcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleSAtIHNhdmUgY29sdW1u IGVuY3J5cHRpb24ga2V5IHNlbnQgYnkgYmFja2VuZAorICovCitpbnQKK3BxU2F2ZUNvbHVt bkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50 IGNta2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4pCit7CisJUEdD TUsJICAgKmNtayA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqcGxhaW52YWwgPSBOVUxMOwor CWludAkJCXBsYWludmFsbGVuID0gMDsKKwlib29sCQlmb3VuZDsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWlmIChjb25uLT5jbWtzW2ldLmNt a2lkID09IGNta2lkKQorCQl7CisJCQljbWsgPSAmY29ubi0+Y21rc1tpXTsKKwkJCWJyZWFr OworCQl9CisJfQorCisJaWYgKCFjbWspCisJCXJldHVybiBFT0Y7CisKKwlwbGFpbnZhbCA9 IGRlY3J5cHRfY2VrKGNvbm4sIGNtaywgY21rYWxnLCBsZW4sIHZhbHVlLCAmcGxhaW52YWxs ZW4pOworCWlmICghcGxhaW52YWwpCisJCXJldHVybiBFT0Y7CisKKwlmb3VuZCA9IGZhbHNl OworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJCXN0cnVj dCBwZ19jZWsgKmNoZWNrY2VrID0gJmNvbm4tPmNla3NbaV07CisKKwkJLyogcmVwbGFjZSBl eGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY2VrLT5jZWtpZCA9PSBrZXlpZCkKKwkJeworCQkJ ZnJlZShjaGVja2Nlay0+Y2VrZGF0YSk7CisJCQljaGVja2Nlay0+Y2VrZGF0YSA9IHBsYWlu dmFsOworCQkJY2hlY2tjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsKKwkJCWZvdW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlp ZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5l d2Nla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2NlazsKKworCQluZXduY2VrcyA9IGNvbm4t Pm5jZWtzICsgMTsKKwkJaWYgKG5ld25jZWtzIDw9IDApCisJCXsKKwkJCWZyZWUocGxhaW52 YWwpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCQluZXdjZWtzID0gcmVhbGxvYyhjb25uLT5j ZWtzLCBuZXduY2VrcyAqIHNpemVvZihzdHJ1Y3QgcGdfY2VrKSk7CisJCWlmICghbmV3Y2Vr cykKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJ bmV3Y2VrID0gJm5ld2Nla3NbbmV3bmNla3MgLSAxXTsKKwkJbmV3Y2VrLT5jZWtpZCA9IGtl eWlkOworCQluZXdjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJbmV3Y2VrLT5jZWtkYXRh bGVuID0gcGxhaW52YWxsZW47CisKKwkJY29ubi0+bmNla3MgPSBuZXduY2VrczsKKwkJY29u bi0+Y2VrcyA9IG5ld2Nla3M7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBwcVJv d1Byb2Nlc3NvcgpAQCAtMTI1MSw2ICsxNjYyLDQzIEBAIHBxUm93UHJvY2Vzc29yKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQlib29sCQlpc2JpbmFyeSA9IChy ZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKIAkJCWNoYXIJICAgKnZhbDsKIAorCQkJ aWYgKHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQl7CisJCQkJLyogZW5jcnlwdGVkIGNv bHVtbiAqLworI2lmZGVmIFVTRV9TU0wKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKwor CQkJCWlmICghaXNiaW5hcnkpCisJCQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRl eHQoImVuY3J5cHRlZCBjb2x1bW4gd2FzIG5vdCBzZW50IGluIGJpbmFyeSBmb3JtYXQiKTsK KwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29u bi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lkID09 IHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQkJCXsKKwkJCQkJCWNlayA9ICZjb25uLT5j ZWtzW2pdOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQkJaWYgKCFjZWspCisJ CQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9u IGtleSBub3QgZm91bmQiKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCXZhbCA9 IChjaGFyICopIGRlY3J5cHRfdmFsdWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3NbaV0uY2Vr YWxnLAorCQkJCQkJCQkJCQkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgY29sdW1uc1tpXS52 YWx1ZSwgY2xlbiwgZXJybXNncCk7CisJCQkJaWYgKHZhbCA9PSBOVUxMKQorCQkJCQlnb3Rv IGZhaWw7CisjZWxzZQorCQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVu Y3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CisJCQkJZ290byBmYWls OworI2VuZGlmCisJCQl9CisJCQllbHNlCisJCQl7CiAJCQl2YWwgPSAoY2hhciAqKSBwcVJl c3VsdEFsbG9jKHJlcywgY2xlbiArIDEsIGlzYmluYXJ5KTsKIAkJCWlmICh2YWwgPT0gTlVM TCkKIAkJCQlnb3RvIGZhaWw7CkBAIC0xMjU4LDYgKzE3MDYsNyBAQCBwcVJvd1Byb2Nlc3Nv cihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKQogCQkJLyogY29weSBhbmQg emVyby10ZXJtaW5hdGUgdGhlIGRhdGEgKGV2ZW4gaWYgaXQncyBiaW5hcnkpICovCiAJCQlt ZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuKTsKIAkJCXZhbFtjbGVuXSA9ICdc MCc7CisJCQl9CiAKIAkJCXR1cFtpXS5sZW4gPSBjbGVuOwogCQkJdHVwW2ldLnZhbHVlID0g dmFsOwpAQCAtMTUwMCw2ICsxOTQ5LDggQEAgUFFzZW5kUXVlcnlQYXJhbXMoUEdjb25uICpj b25uLAogCQkJCSAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJICBpbnQgcmVzdWx0 Rm9ybWF0KQogeworCVBHcmVzdWx0ICAgKnBhcmFtRGVzYyA9IE5VTEw7CisKIAlpZiAoIVBR c2VuZFF1ZXJ5U3RhcnQoY29ubiwgdHJ1ZSkpCiAJCXJldHVybiAwOwogCkBAIC0xNTE2LDYg KzE5NjcsMzcgQEAgUFFzZW5kUXVlcnlQYXJhbXMoUEdjb25uICpjb25uLAogCQlyZXR1cm4g MDsKIAl9CiAKKwlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwl7CisJ CVBHcmVzdWx0ICAgKnJlczsKKwkJYm9vbAkJZXJyb3I7CisKKwkJaWYgKGNvbm4tPnBpcGVs aW5lU3RhdHVzICE9IFBRX1BJUEVMSU5FX09GRikKKwkJeworCQkJbGlicHFfYXBwZW5kX2Nv bm5fZXJyb3IoY29ubiwgInN5bmNocm9ub3VzIGNvbW1hbmQgZXhlY3V0aW9uIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gcGlwZWxpbmUgbW9kZSIpOworCQkJcmV0dXJuIDA7CisJ CX0KKworCQlpZiAoIVBRc2VuZFByZXBhcmUoY29ubiwgIiIsIGNvbW1hbmQsIG5QYXJhbXMs IHBhcmFtVHlwZXMpKQorCQkJcmV0dXJuIDA7CisJCWVycm9yID0gZmFsc2U7CisJCXdoaWxl ICgocmVzID0gUFFnZXRSZXN1bHQoY29ubikpICE9IE5VTEwpCisJCXsKKwkJCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJCQkJZXJyb3IgPSB0cnVl OworCQkJUFFjbGVhcihyZXMpOworCQl9CisJCWlmIChlcnJvcikKKwkJCXJldHVybiAwOwor CisJCXBhcmFtRGVzYyA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJCWlmIChQ UXJlc3VsdFN0YXR1cyhwYXJhbURlc2MpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJCQlyZXR1 cm4gMDsKKworCQljb21tYW5kID0gTlVMTDsKKwkJcGFyYW1UeXBlcyA9IE5VTEw7CisJfQor CiAJcmV0dXJuIFBRc2VuZFF1ZXJ5R3V0cyhjb25uLAogCQkJCQkJICAgY29tbWFuZCwKIAkJ CQkJCSAgICIiLAkvKiB1c2UgdW5uYW1lZCBzdGF0ZW1lbnQgKi8KQEAgLTE1MjQsNyArMjAw Niw4IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBHY29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFt VmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRz LAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJCSAgIHJlc3VsdEZvcm1hdCwKKwkJ CQkJCSAgIHBhcmFtRGVzYyk7CiB9CiAKIC8qCkBAIC0xNjM5LDYgKzIxMjIsMjQgQEAgUFFz ZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCWNvbnN0IGludCAqcGFyYW1M ZW5ndGhzLAogCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCQkJaW50IHJlc3Vs dEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZChjb25u LCBzdG10TmFtZSwgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywgcGFyYW1G b3JtYXRzLCByZXN1bHRGb3JtYXQsIE5VTEwpOworfQorCisvKgorICogUFFzZW5kUXVlcnlQ cmVwYXJlZERlc2NyaWJlZAorICoJCUxpa2UgUFFzZW5kUXVlcnlQcmVwYXJlZCwgYnV0IHdp dGggYWRkaXRpb25hbCBhcmd1bWVudCB0byBwYXNzCisgKgkJcGFyYW1ldGVyIGRlc2NyaXB0 aW9ucywgZm9yIGNvbHVtbiBlbmNyeXB0aW9uLgorICovCitpbnQKK1BRc2VuZFF1ZXJ5UHJl cGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJCSBjb25zdCBjaGFyICpzdG10 TmFtZSwKKwkJCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0 ICpwYXJhbVZhbHVlcywKKwkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJ CQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0 LAorCQkJCQkJCSBQR3Jlc3VsdCAqcGFyYW1EZXNjKQogewogCWlmICghUFFzZW5kUXVlcnlT dGFydChjb25uLCB0cnVlKSkKIAkJcmV0dXJuIDA7CkBAIC0xNjY0LDcgKzIxNjUsOCBAQCBQ UXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFtVmFsdWVz LAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJ CQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJCSAgIHJlc3VsdEZvcm1hdCwKKwkJCQkJCSAg IHBhcmFtRGVzYyk7CiB9CiAKIC8qCkBAIC0xNzYyLDcgKzIyNjQsOCBAQCBQUXNlbmRRdWVy eUd1dHMoUEdjb25uICpjb25uLAogCQkJCWNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVl cywKIAkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQljb25zdCBpbnQgKnBhcmFt Rm9ybWF0cywKLQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQorCQkJCWludCByZXN1bHRGb3JtYXQs CisJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpbnQJCQlpOwogCVBHY21kUXVldWVF bnRyeSAqZW50cnk7CkBAIC0xODEwLDEzICsyMzEzLDQ3IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQ R2Nvbm4gKmNvbm4sCiAJCWdvdG8gc2VuZEZhaWxlZDsKIAogCS8qIFNlbmQgcGFyYW1ldGVy IGZvcm1hdHMgKi8KLQlpZiAoblBhcmFtcyA+IDAgJiYgcGFyYW1Gb3JtYXRzKQorCWlmIChu UGFyYW1zID4gMCAmJiAocGFyYW1Gb3JtYXRzIHx8IChwYXJhbURlc2MgJiYgcGFyYW1EZXNj LT5wYXJhbURlc2NzKSkpCiAJewogCQlpZiAocHFQdXRJbnQoblBhcmFtcywgMiwgY29ubikg PCAwKQogCQkJZ290byBzZW5kRmFpbGVkOworCiAJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1z OyBpKyspCiAJCXsKLQkJCWlmIChwcVB1dEludChwYXJhbUZvcm1hdHNbaV0sIDIsIGNvbm4p IDwgMCkKKwkJCWludAkJCWZvcm1hdCA9IHBhcmFtRm9ybWF0cyA/IHBhcmFtRm9ybWF0c1tp XSA6IDA7CisKKwkJCS8qIENoZWNrIGZvcmNlIGNvbHVtbiBlbmNyeXB0aW9uICovCisJCQlp ZiAoZm9ybWF0ICYgMHgxMCkKKwkJCXsKKwkJCQlpZiAoIShwYXJhbURlc2MgJiYKKwkJCQkJ ICBwYXJhbURlc2MtPnBhcmFtRGVzY3MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVz Y3NbaV0uY2VraWQpKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29u biwgInBhcmFtZXRlciB3aXRoIGZvcmNlZCBlbmNyeXB0aW9uIGlzIG5vdCB0byBiZSBlbmNy eXB0ZWQiKTsKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCX0KKwkJCX0KKwkJCWZvcm1h dCAmPSB+MHgxMDsKKworCQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVz Y3MpCisJCQl7CisJCQkJUEdyZXNQYXJhbURlc2MgKnBkID0gJnBhcmFtRGVzYy0+cGFyYW1E ZXNjc1tpXTsKKworCQkJCWlmIChwZC0+Y2VraWQpCisJCQkJeworCQkJCQlpZiAoZm9ybWF0 ICE9IDApCisJCQkJCXsKKwkJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJm b3JtYXQgbXVzdCBiZSB0ZXh0IGZvciBlbmNyeXB0ZWQgcGFyYW1ldGVyIik7CisJCQkJCQln b3RvIHNlbmRGYWlsZWQ7CisJCQkJCX0KKwkJCQkJLyogU2VuZCBlbmNyeXB0ZWQgdmFsdWUg aW4gYmluYXJ5ICovCisJCQkJCWZvcm1hdCA9IDE7CisJCQkJCS8qIEFuZCBtYXJrIGl0IGFz IGVuY3J5cHRlZCAqLworCQkJCQlmb3JtYXQgfD0gMHgxMDsKKwkJCQl9CisJCQl9CisKKwkJ CWlmIChwcVB1dEludChmb3JtYXQsIDIsIGNvbm4pIDwgMCkKIAkJCQlnb3RvIHNlbmRGYWls ZWQ7CiAJCX0KIAl9CkBAIC0xODM1LDggKzIzNzIsOSBAQCBQUXNlbmRRdWVyeUd1dHMoUEdj b25uICpjb25uLAogCQlpZiAocGFyYW1WYWx1ZXMgJiYgcGFyYW1WYWx1ZXNbaV0pCiAJCXsK IAkJCWludAkJCW5ieXRlczsKKwkJCWNvbnN0IGNoYXIgKnBhcmFtVmFsdWU7CiAKLQkJCWlm IChwYXJhbUZvcm1hdHMgJiYgcGFyYW1Gb3JtYXRzW2ldICE9IDApCisJCQlpZiAocGFyYW1G b3JtYXRzICYmIChwYXJhbUZvcm1hdHNbaV0gJiAweDAxKSAhPSAwKQogCQkJewogCQkJCS8q IGJpbmFyeSBwYXJhbWV0ZXIgKi8KIAkJCQlpZiAocGFyYW1MZW5ndGhzKQpAQCAtMTg1Miw5 ICsyMzkwLDUzIEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJLyogdGV4 dCBwYXJhbWV0ZXIsIGRvIG5vdCB1c2UgcGFyYW1MZW5ndGhzICovCiAJCQkJbmJ5dGVzID0g c3RybGVuKHBhcmFtVmFsdWVzW2ldKTsKIAkJCX0KKworCQkJcGFyYW1WYWx1ZSA9IHBhcmFt VmFsdWVzW2ldOworCisJCQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNj cyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpCisJCQl7CisJCQkJLyogZW5j cnlwdGVkIGNvbHVtbiAqLworI2lmZGVmIFVTRV9TU0wKKwkJCQlib29sCQllbmNfZGV0ID0g KHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5mbGFncyAmIDB4MDEpICE9IDA7CisJCQkJUEdD RUsJICAgKmNlayA9IE5VTEw7CisJCQkJY2hhcgkgICAqZW5jX3BhcmFtVmFsdWU7CisJCQkJ aW50CQkJZW5jX25ieXRlcyA9IG5ieXRlczsKKworCQkJCWZvciAoaW50IGogPSAwOyBqIDwg Y29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lk ID09IHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2Vr ID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlp ZiAoIWNlaykKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJj b2x1bW4gZW5jcnlwdGlvbiBrZXkgbm90IGZvdW5kIik7CisJCQkJCWdvdG8gc2VuZEZhaWxl ZDsKKwkJCQl9CisKKwkJCQllbmNfcGFyYW1WYWx1ZSA9IChjaGFyICopIGVuY3J5cHRfdmFs dWUoY29ubiwgY2VrLCBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VrYWxnLAorCQkJCQkJ CQkJCQkJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqKSBwYXJhbVZhbHVlLCAmZW5jX25ieXRl cywgZW5jX2RldCk7CisJCQkJaWYgKCFlbmNfcGFyYW1WYWx1ZSkKKwkJCQkJZ290byBzZW5k RmFpbGVkOworCisJCQkJaWYgKHBxUHV0SW50KGVuY19uYnl0ZXMsIDQsIGNvbm4pIDwgMCB8 fAorCQkJCQlwcVB1dG5jaGFyKGVuY19wYXJhbVZhbHVlLCBlbmNfbmJ5dGVzLCBjb25uKSA8 IDApCisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKworCQkJCWZyZWUoZW5jX3BhcmFtVmFsdWUp OworI2Vsc2UKKwkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY29sdW1uIGVu Y3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CisJCQkJZ290byBzZW5k RmFpbGVkOworI2VuZGlmCisJCQl9CisJCQllbHNlCisJCQl7CiAJCQlpZiAocHFQdXRJbnQo bmJ5dGVzLCA0LCBjb25uKSA8IDAgfHwKLQkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWVzW2ld LCBuYnl0ZXMsIGNvbm4pIDwgMCkKKwkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWUsIG5ieXRl cywgY29ubikgPCAwKQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCX0KIAkJfQogCQllbHNl CiAJCXsKQEAgLTIyOTAsMTIgKzI4NzIsMzEgQEAgUFFleGVjUHJlcGFyZWQoUEdjb25uICpj b25uLAogCQkJICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkgICBjb25zdCBpbnQg KnBhcmFtRm9ybWF0cywKIAkJCSAgIGludCByZXN1bHRGb3JtYXQpCit7CisJcmV0dXJuIFBR ZXhlY1ByZXBhcmVkRGVzY3JpYmVkKGNvbm4sIHN0bXROYW1lLCBuUGFyYW1zLCBwYXJhbVZh bHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIHJlc3VsdEZvcm1hdCwgTlVMTCk7 Cit9CisKKy8qCisgKiBQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZAorICoJCUxpa2UgUFFleGVj UHJlcGFyZWQsIGJ1dCB3aXRoIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyBwYXJhbWV0 ZXIKKyAqCQlkZXNjcmlwdGlvbnMsIGZvciBjb2x1bW4gZW5jcnlwdGlvbi4KKyAqLworUEdy ZXN1bHQgKgorUFFleGVjUHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJ Y29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQlpbnQgblBhcmFtcywKKwkJCQkJCWNvbnN0 IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5n dGhzLAorCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJCQlpbnQgcmVzdWx0 Rm9ybWF0LAorCQkJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRZXhlY1N0 YXJ0KGNvbm4pKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAoIVBRc2VuZFF1ZXJ5UHJlcGFyZWQo Y29ubiwgc3RtdE5hbWUsCi0JCQkJCQkJIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxl bmd0aHMsCi0JCQkJCQkJIHBhcmFtRm9ybWF0cywgcmVzdWx0Rm9ybWF0KSkKKwlpZiAoIVBR c2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoY29ubiwgc3RtdE5hbWUsCisJCQkJCQkJCQkg IG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCisJCQkJCQkJCQkgIHBhcmFt Rm9ybWF0cywKKwkJCQkJCQkJCSAgcmVzdWx0Rm9ybWF0LCBwYXJhbURlc2MpKQogCQlyZXR1 cm4gTlVMTDsKIAlyZXR1cm4gUFFleGVjRmluaXNoKGNvbm4pOwogfQpAQCAtMzUzOSw3ICs0 MTQwLDE3IEBAIFBRZmZvcm1hdChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVt KQogCWlmICghY2hlY2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKIAkJcmV0dXJu IDA7CiAJaWYgKHJlcy0+YXR0RGVzY3MpCisJeworCQkvKgorCQkgKiBBbiBlbmNyeXB0ZWQg Y29sdW1uIGlzIGFsd2F5cyBwcmVzZW50ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGluIHRleHQK KwkJICogZm9ybWF0LiAgVGhlIC5mb3JtYXQgZmllbGQgYXBwbGllcyB0byB0aGUgY2lwaGVy dGV4dCwgd2hpY2ggbWlnaHQKKwkJICogYmUgaW4gZWl0aGVyIGZvcm1hdCwgYnV0IHRoZSBw bGFpbnRleHQgaW5zaWRlIGlzIGFsd2F5cyBpbiB0ZXh0CisJCSAqIGZvcm1hdC4KKwkJICov CisJCWlmIChyZXMtPmF0dERlc2NzW2ZpZWxkX251bV0uY2VraWQgIT0gMCkKKwkJCXJldHVy biAwOwogCQlyZXR1cm4gcmVzLT5hdHREZXNjc1tmaWVsZF9udW1dLmZvcm1hdDsKKwl9CiAJ ZWxzZQogCQlyZXR1cm4gMDsKIH0KQEAgLTM1NzcsNiArNDE4OCwxNyBAQCBQUWZtb2QoY29u c3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkKIAkJcmV0dXJuIDA7CiB9CiAKK2lu dAorUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkK K3sKKwlpZiAoIWNoZWNrX2ZpZWxkX251bWJlcihyZXMsIGZpZWxkX251bSkpCisJCXJldHVy biBmYWxzZTsKKwlpZiAocmVzLT5hdHREZXNjcykKKwkJcmV0dXJuIChyZXMtPmF0dERlc2Nz W2ZpZWxkX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisK IGNoYXIgKgogUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcykKIHsKQEAgLTM3NjIsNiArNDM4 NCwxNyBAQCBQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVt KQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAoraW50CitQUXBhcmFtaXNlbmNyeXB0ZWQo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKK3sKKwlpZiAoIWNoZWNrX3Bh cmFtX251bWJlcihyZXMsIHBhcmFtX251bSkpCisJCXJldHVybiBmYWxzZTsKKwlpZiAocmVz LT5wYXJhbURlc2NzKQorCQlyZXR1cm4gKHJlcy0+cGFyYW1EZXNjc1twYXJhbV9udW1dLmNl a2lkICE9IDApOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAKIC8qIFBRc2V0bm9u YmxvY2tpbmc6CiAgKglzZXRzIHRoZSBQR2Nvbm4ncyBkYXRhYmFzZSBjb25uZWN0aW9uIG5v bi1ibG9ja2luZyBpZiB0aGUgYXJnIGlzIHRydWUKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJv dG9jb2wzLmMKaW5kZXggMzY0YmFkMmI4OC4uNGJkYjQ1YjUwMyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtcHJvdG9jb2wzLmMKQEAgLTQzLDYgKzQzLDggQEAgc3RhdGljIGludAlnZXRS b3dEZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBp bnQJZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsK IHN0YXRpYyBpbnQJZ2V0QW5vdGhlclR1cGxlKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0 aCk7CiBzdGF0aWMgaW50CWdldFBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4pOworc3Rh dGljIGludAlnZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKTsKK3N0YXRpYyBpbnQJ Z2V0Q29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRO b3RpZnkoUEdjb25uICpjb25uKTsKIHN0YXRpYyBpbnQJZ2V0Q29weVN0YXJ0KFBHY29ubiAq Y29ubiwgRXhlY1N0YXR1c1R5cGUgY29weXR5cGUpOwogc3RhdGljIGludAlnZXRSZWFkeUZv clF1ZXJ5KFBHY29ubiAqY29ubik7CkBAIC0yOTcsNiArMjk5LDEyIEBAIHBxUGFyc2VJbnB1 dDMoUEdjb25uICpjb25uKQogCQkJCQlpZiAocHFHZXRJbnQoJihjb25uLT5iZV9rZXkpLCA0 LCBjb25uKSkKIAkJCQkJCXJldHVybjsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSAneSc6CQkv KiBDb2x1bW4gTWFzdGVyIEtleSAqLworCQkJCQlnZXRDb2x1bW5NYXN0ZXJLZXkoY29ubik7 CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1knOgkJLyogQ29sdW1uIEVuY3J5cHRpb24gS2V5 ICovCisJCQkJCWdldENvbHVtbkVuY3J5cHRpb25LZXkoY29ubik7CisJCQkJCWJyZWFrOwog CQkJCWNhc2UgJ1QnOgkJLyogUm93IERlc2NyaXB0aW9uICovCiAJCQkJCWlmIChjb25uLT5l cnJvcl9yZXN1bHQgfHwKIAkJCQkJCShjb25uLT5yZXN1bHQgIT0gTlVMTCAmJgpAQCAtNTQ3 LDYgKzU1NSw4IEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dM ZW5ndGgpCiAJCWludAkJCXR5cGxlbjsKIAkJaW50CQkJYXR0dHlwbW9kOwogCQlpbnQJCQlm b3JtYXQ7CisJCWludAkJCWNla2lkOworCQlpbnQJCQljZWthbGc7CiAKIAkJaWYgKHBxR2V0 cygmY29ubi0+d29ya0J1ZmZlciwgY29ubikgfHwKIAkJCXBxR2V0SW50KCZ0YWJsZWlkLCA0 LCBjb25uKSB8fApAQCAtNTYxLDYgKzU3MSwyMSBAQCBnZXRSb3dEZXNjcmlwdGlvbnMoUEdj b25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKQogCQkJZ290byBhZHZhbmNlX2FuZF9lcnJvcjsK IAkJfQogCisJCWlmIChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJ CQlpZiAocHFHZXRJbnQoJmNla2lkLCA0LCBjb25uKSB8fAorCQkJCXBxR2V0SW50KCZjZWth bGcsIDQsIGNvbm4pKQorCQkJeworCQkJCWVycm1zZyA9IGxpYnBxX2dldHRleHQoImluc3Vm ZmljaWVudCBkYXRhIGluIFwiVFwiIG1lc3NhZ2UiKTsKKwkJCQlnb3RvIGFkdmFuY2VfYW5k X2Vycm9yOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJY2VraWQgPSAwOworCQkJY2Vr YWxnID0gMDsKKwkJfQorCiAJCS8qCiAJCSAqIFNpbmNlIHBxR2V0SW50IHRyZWF0cyAyLWJ5 dGUgaW50ZWdlcnMgYXMgdW5zaWduZWQsIHdlIG5lZWQgdG8KIAkJICogY29lcmNlIHRoZXNl IHJlc3VsdHMgdG8gc2lnbmVkIGZvcm0uCkBAIC01ODIsOCArNjA3LDEwIEBAIGdldFJvd0Rl c2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCXJlc3VsdC0+YXR0 RGVzY3NbaV0udHlwaWQgPSB0eXBpZDsKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBsZW4g PSB0eXBsZW47CiAJCXJlc3VsdC0+YXR0RGVzY3NbaV0uYXR0dHlwbW9kID0gYXR0dHlwbW9k OworCQlyZXN1bHQtPmF0dERlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3VsdC0+YXR0 RGVzY3NbaV0uY2VrYWxnID0gY2VrYWxnOwogCi0JCWlmIChmb3JtYXQgIT0gMSkKKwkJaWYg KChmb3JtYXQgJiAweDBGKSAhPSAxKQogCQkJcmVzdWx0LT5iaW5hcnkgPSAwOwogCX0KIApA QCAtNjg1LDEwICs3MTIsMzEgQEAgZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25u LCBpbnQgbXNnTGVuZ3RoKQogCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCiAJewog CQlpbnQJCQl0eXBpZDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKKwkJaW50 CQkJZmxhZ3M7CiAKIAkJaWYgKHBxR2V0SW50KCZ0eXBpZCwgNCwgY29ubikpCiAJCQlnb3Rv IG5vdF9lbm91Z2hfZGF0YTsKKwkJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpCisJCXsKKwkJCWlmIChwcUdldEludCgmY2VraWQsIDQsIGNvbm4pKQorCQkJCWdvdG8g bm90X2Vub3VnaF9kYXRhOworCQkJaWYgKHBxR2V0SW50KCZjZWthbGcsIDQsIGNvbm4pKQor CQkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOworCQkJaWYgKHBxR2V0SW50KCZmbGFncywgMiwg Y29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCX0KKwkJZWxzZQorCQl7CisJ CQljZWtpZCA9IDA7CisJCQljZWthbGcgPSAwOworCQkJZmxhZ3MgPSAwOworCQl9CiAJCXJl c3VsdC0+cGFyYW1EZXNjc1tpXS50eXBpZCA9IHR5cGlkOworCQlyZXN1bHQtPnBhcmFtRGVz Y3NbaV0uY2VraWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmNla2FsZyA9 IGNla2FsZzsKKwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmZsYWdzID0gZmxhZ3M7CiAJfQog CiAJLyogU3VjY2VzcyEgKi8KQEAgLTE0NjgsNiArMTUxNiw5MiBAQCBnZXRQYXJhbWV0ZXJT dGF0dXMoUEdjb25uICpjb25uKQogCXJldHVybiAwOwogfQogCisvKgorICogQXR0ZW1wdCB0 byByZWFkIGEgQ29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ3knIG1lc3Nh Z2UgdHlwZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhp dDogcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSBy ZXR1cm5zIEVPRiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENv bHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4pCit7CisJaW50CQkJa2V5aWQ7CisJY2hhcgkg ICAqa2V5bmFtZTsKKwljaGFyCSAgICprZXlyZWFsbTsKKwlpbnQJCQlyZXQ7CisKKwkvKiBH ZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdldEludCgma2V5aWQsIDQsIGNvbm4pICE9IDAp CisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgbmFtZSAqLworCWlmIChwcUdldHMo JmNvbm4tPndvcmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5bmFt ZSA9IHN0cmR1cChjb25uLT53b3JrQnVmZmVyLmRhdGEpOworCWlmICgha2V5bmFtZSkKKwkJ cmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIGtleSByZWFsbSAqLworCWlmIChwcUdldHMoJmNv bm4tPndvcmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5cmVhbG0g PSBzdHJkdXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleXJlYWxtKQorCQly ZXR1cm4gRU9GOworCS8qIEFuZCBzYXZlIGl0ICovCisJcmV0ID0gcHFTYXZlQ29sdW1uTWFz dGVyS2V5KGNvbm4sIGtleWlkLCBrZXluYW1lLCBrZXlyZWFsbSk7CisJaWYgKHJldCAhPSAw KQorCQlwcVNhdmVFcnJvclJlc3VsdChjb25uKTsKKworCWZyZWUoa2V5bmFtZSk7CisJZnJl ZShrZXlyZWFsbSk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogQXR0ZW1wdCB0byBy ZWFkIGEgQ29sdW1uRW5jcnlwdGlvbktleSBtZXNzYWdlLgorICogRW50cnk6ICdZJyBtZXNz YWdlIHR5cGUgYW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVlbiBjb25zdW1lZC4KKyAqIEV4 aXQ6IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3VtZWQgbWVzc2FnZS4KKyAqCQkg cmV0dXJucyBFT0YgaWYgbm90IGVub3VnaCBkYXRhLgorICovCitzdGF0aWMgaW50CitnZXRD b2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubikKK3sKKwlpbnQJCQlrZXlpZDsKKwlp bnQJCQljbWtpZDsKKwlpbnQJCQljbWthbGc7CisJY2hhcgkgICAqYnVmOworCWludAkJCXZh bGxlbjsKKwlpbnQJCQlyZXQ7CisKKwkvKiBHZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdl dEludCgma2V5aWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRo ZSBDTUsgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmNta2lkLCA0LCBjb25uKSAhPSAwKQorCQly ZXR1cm4gRU9GOworCS8qIEdldCB0aGUgQ01LIGFsZ29yaXRobSAqLworCWlmIChwcUdldElu dCgmY21rYWxnLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUg a2V5IGRhdGEgbGVuICovCisJaWYgKHBxR2V0SW50KCZ2YWxsZW4sIDQsIGNvbm4pICE9IDAp CisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgZGF0YSAqLworCWJ1ZiA9IG1hbGxv Yyh2YWxsZW4pOworCWlmICghYnVmKQorCQlyZXR1cm4gRU9GOworCWlmIChwcUdldG5jaGFy KGJ1ZiwgdmFsbGVuLCBjb25uKSAhPSAwKQorCXsKKwkJZnJlZShidWYpOworCQlyZXR1cm4g RU9GOworCX0KKwkvKiBBbmQgc2F2ZSBpdCAqLworCXJldCA9IHBxU2F2ZUNvbHVtbkVuY3J5 cHRpb25LZXkoY29ubiwga2V5aWQsIGNta2lkLCBjbWthbGcsICh1bnNpZ25lZCBjaGFyICop IGJ1ZiwgdmFsbGVuKTsKKwlpZiAocmV0ICE9IDApCisJCXBxU2F2ZUVycm9yUmVzdWx0KGNv bm4pOworCisJZnJlZShidWYpOworCisJcmV0dXJuIHJldDsKK30KIAogLyoKICAqIEF0dGVt cHQgdG8gcmVhZCBhIE5vdGlmeSByZXNwb25zZSBtZXNzYWdlLgpAQCAtMjI4Niw2ICsyNDIw LDkgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpjb25uLCBjaGFyICpw YWNrZXQsCiAJaWYgKGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsICYmIGNvbm4tPmNs aWVudF9lbmNvZGluZ19pbml0aWFsWzBdKQogCQlBRERfU1RBUlRVUF9PUFRJT04oImNsaWVu dF9lbmNvZGluZyIsIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsKTsKIAorCWlmIChj b25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlBRERfU1RBUlRVUF9PUFRJT04o Il9wcV8uY29sdW1uX2VuY3J5cHRpb24iLCAiMSIpOworCiAJLyogQWRkIGFueSBlbnZpcm9u bWVudC1kcml2ZW4gR1VDIHNldHRpbmdzIG5lZWRlZCAqLwogCWZvciAobmV4dF9lbyA9IG9w dGlvbnM7IG5leHRfZW8tPmVudk5hbWU7IG5leHRfZW8rKykKIAl7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtdHJhY2UuYwppbmRleCA1ZDY4Y2YyZWIzLi44NmI3ZTY0ZTFmIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLXRyYWNlLmMKQEAgLTQ1MCw3ICs0NTAsOCBAQCBwcVRyYWNlT3V0cHV0UyhGSUxF ICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAogLyogUGFyYW1ldGVy RGVzY3JpcHRpb24gKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0dChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQorcHFUcmFj ZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJv b2wgcmVncmVzcywKKwkJCSAgIGJvb2wgY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKIHsK IAlpbnQJCQluZmllbGRzOwogCkBAIC00NTgsMTIgKzQ1OSwyMSBAQCBwcVRyYWNlT3V0cHV0 dChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdy ZXNzKQogCW5maWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29y KTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQorCXsKIAkJcHFUcmFj ZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCWlmIChjb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwg bWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBt ZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNz YWdlLCBjdXJzb3IpOworCQl9CisJfQogfQogCiAvKiBSb3dEZXNjcmlwdGlvbiAqLwogc3Rh dGljIHZvaWQKLXBxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCitwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzLAorCQkJICAg Ym9vbCBjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQogewogCWludAkJCW5maWVsZHM7CiAK QEAgLTQ3OSw2ICs0ODksMTEgQEAgcHFUcmFjZU91dHB1dFQoRklMRSAqZiwgY29uc3QgY2hh ciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAkJcHFUcmFjZU91dHB1 dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBt ZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3Nh Z2UsIGN1cnNvcik7CisJCWlmIChjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJ CQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJ CXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwkJfQog CX0KIH0KIApAQCAtNTE0LDYgKzUyOSwzMCBAQCBwcVRyYWNlT3V0cHV0VyhGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgaW50IGxlbmd0aCkKIAkJcHFUcmFj ZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiB9CiAKKy8qIENvbHVtbk1hc3Rl cktleSAqLworc3RhdGljIHZvaWQKK3BxVHJhY2VPdXRwdXR5KEZJTEUgKmYsIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCit7CisJZnByaW50Zihm LCAiQ29sdW1uTWFzdGVyS2V5XHQiKTsKKwlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2Fn ZSwgY3Vyc29yLCByZWdyZXNzKTsKKwlwcVRyYWNlT3V0cHV0U3RyaW5nKGYsIG1lc3NhZ2Us IGN1cnNvciwgZmFsc2UpOworCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vy c29yLCBmYWxzZSk7Cit9CisKKy8qIENvbHVtbkVuY3J5cHRpb25LZXkgKi8KK3N0YXRpYyB2 b2lkCitwcVRyYWNlT3V0cHV0WShGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQg KmN1cnNvciwgYm9vbCByZWdyZXNzKQoreworCWludAkJCWxlbjsKKworCWZwcmludGYoZiwg IkNvbHVtbkVuY3J5cHRpb25LZXlcdCIpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNz YWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdl LCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBj dXJzb3IsIGZhbHNlKTsKKwlsZW4gPSBwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwg Y3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1dE5jaGFyKGYsIGxlbiwgbWVzc2FnZSwg Y3Vyc29yKTsKK30KKwogLyogUmVhZHlGb3JRdWVyeSAqLwogc3RhdGljIHZvaWQKIHBxVHJh Y2VPdXRwdXRaKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yKQpA QCAtNjQ3LDEwICs2ODYsMTIgQEAgcHFUcmFjZU91dHB1dE1lc3NhZ2UoUEdjb25uICpjb25u LCBjb25zdCBjaGFyICptZXNzYWdlLCBib29sIHRvU2VydmVyKQogCQkJCWZwcmludGYoY29u bi0+UGZkZWJ1ZywgIlN5bmMiKTsgLyogbm8gbWVzc2FnZSBjb250ZW50ICovCiAJCQlicmVh azsKIAkJY2FzZSAndCc6CQkJCS8qIFBhcmFtZXRlciBEZXNjcmlwdGlvbiAqLwotCQkJcHFU cmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVz cyk7CisJCQlwcVRyYWNlT3V0cHV0dChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vy c29yLCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxl ZCk7CiAJCQlicmVhazsKIAkJY2FzZSAnVCc6CQkJCS8qIFJvdyBEZXNjcmlwdGlvbiAqLwot CQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwg cmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0VChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAm bG9nQ3Vyc29yLCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25f ZW5hYmxlZCk7CiAJCQlicmVhazsKIAkJY2FzZSAndic6CQkJCS8qIE5lZ290aWF0ZSBQcm90 b2NvbCBWZXJzaW9uICovCiAJCQlwcVRyYWNlT3V0cHV0dihjb25uLT5QZmRlYnVnLCBtZXNz YWdlLCAmbG9nQ3Vyc29yKTsKQEAgLTY2NSw2ICs3MDYsMTIgQEAgcHFUcmFjZU91dHB1dE1l c3NhZ2UoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICptZXNzYWdlLCBib29sIHRvU2VydmVy KQogCQkJZnByaW50Zihjb25uLT5QZmRlYnVnLCAiVGVybWluYXRlIik7CiAJCQkvKiBObyBt ZXNzYWdlIGNvbnRlbnQgKi8KIAkJCWJyZWFrOworCQljYXNlICd5JzoKKwkJCXBxVHJhY2VP dXRwdXR5KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOwor CQkJYnJlYWs7CisJCWNhc2UgJ1knOgorCQkJcHFUcmFjZU91dHB1dFkoY29ubi0+UGZkZWJ1 ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlicmVhazsKIAkJY2FzZSAn Wic6CQkJCS8qIFJlYWR5IEZvciBRdWVyeSAqLwogCQkJcHFUcmFjZU91dHB1dFooY29ubi0+ UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1mZS5oCmluZGV4IGI3ZGYzMjI0YzAuLmQ0YzkxZGNlNzQgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtZmUuaApAQCAtMjY3LDYgKzI2Nyw4IEBAIHR5cGVkZWYgc3RydWN0IHBn cmVzQXR0RGVzYwogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8KIAlpbnQJCQl0eXBs ZW47CQkJLyogdHlwZSBzaXplICovCiAJaW50CQkJYXR0dHlwbW9kOwkJLyogdHlwZS1zcGVj aWZpYyBtb2RpZmllciBpbmZvICovCisJT2lkCQkJY2VraWQ7CisJaW50CQkJY2VrYWxnOwog fSBQR3Jlc0F0dERlc2M7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTQzOCw2ICs0NDAs MTQgQEAgZXh0ZXJuIFBHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJ CQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCQljb25zdCBpbnQgKnBh cmFtRm9ybWF0cywKIAkJCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CitleHRlcm4gUEdyZXN1 bHQgKlBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKwkJCQkJCQkJCQkg Y29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkJ CQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJCQkJIGNvbnN0 IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0 cywKKwkJCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJCQkgUEdyZXN1bHQg KnBhcmFtRGVzYyk7CiAKIC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9yIGFz eW5jaHJvbm91cyBxdWVyaWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9MSU1J VCA2NTUzNQpAQCAtNDYxLDYgKzQ3MSwxNCBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJl cGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywK IAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRG b3JtYXQpOworZXh0ZXJuIGludAlQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkKFBHY29u biAqY29ubiwKKwkJCQkJCQkJCQkgY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQkJCQkJ IGludCBuUGFyYW1zLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1 ZXMsCisJCQkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkJCSBj b25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwK KwkJCQkJCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiBleHRlcm4gaW50CVBRc2V0U2lu Z2xlUm93TW9kZShQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIFBHcmVzdWx0ICpQUWdldFJlc3Vs dChQR2Nvbm4gKmNvbm4pOwogCkBAIC01MzEsNiArNTQ5LDcgQEAgZXh0ZXJuIGludAlQUWZm b3JtYXQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gT2lk CVBRZnR5cGUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4g aW50CVBRZnNpemUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRl cm4gaW50CVBRZm1vZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKK2V4 dGVybiBpbnQJUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxk X251bSk7CiBleHRlcm4gY2hhciAqUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcyk7CiBleHRl cm4gY2hhciAqUFFvaWRTdGF0dXMoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8qIG9sZCBhbmQg dWdseSAqLwogZXh0ZXJuIE9pZAlQUW9pZFZhbHVlKGNvbnN0IFBHcmVzdWx0ICpyZXMpOwkv KiBuZXcgYW5kIGltcHJvdmVkICovCkBAIC01NDAsNiArNTU5LDcgQEAgZXh0ZXJuIGludAlQ UWdldGxlbmd0aChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxk X251bSk7CiBleHRlcm4gaW50CVBRZ2V0aXNudWxsKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGlu dCB0dXBfbnVtLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFucGFyYW1zKGNvbnN0 IFBHcmVzdWx0ICpyZXMpOwogZXh0ZXJuIE9pZAlQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3Vs dCAqcmVzLCBpbnQgcGFyYW1fbnVtKTsKK2V4dGVybiBpbnQJUFFwYXJhbWlzZW5jcnlwdGVk KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW0pOwogCiAvKiBEZXNjcmliZSBw cmVwYXJlZCBzdGF0ZW1lbnRzIGFuZCBwb3J0YWxzICovCiBleHRlcm4gUEdyZXN1bHQgKlBR ZGVzY3JpYmVQcmVwYXJlZChQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnN0bXQpOwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCA1MTI3NjJmOTk5Li45NzgzYmE3NzM2IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAorKysgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaApAQCAtMTEyLDYgKzExMiw5IEBAIHVuaW9u IHBncmVzdWx0X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBncmVzUGFyYW1EZXNjCiB7CiAJT2lk CQkJdHlwaWQ7CQkJLyogdHlwZSBpZCAqLworCU9pZAkJCWNla2lkOworCWludAkJCWNla2Fs ZzsKKwlpbnQJCQlmbGFnczsKIH0gUEdyZXNQYXJhbURlc2M7CiAKIC8qCkBAIC0zNDMsNiAr MzQ2LDI2IEBAIHR5cGVkZWYgc3RydWN0IHBnX2Nvbm5faG9zdAogCQkJCQkJCQkgKiBmb3Vu ZCBpbiBwYXNzd29yZCBmaWxlLiAqLwogfSBwZ19jb25uX2hvc3Q7CiAKKy8qCisgKiBDb2x1 bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEKKyAqLworCisvKiBjb2x1bW4gbWFzdGVyIGtl eSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY21rCit7CisJT2lkCQkJY21raWQ7CisJY2hhcgkg ICAqY21rbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsKK30gUEdDTUs7CisKKy8qIGNvbHVt biBlbmNyeXB0aW9uIGtleSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY2VrCit7CisJT2lkCQkJ Y2VraWQ7CisJdW5zaWduZWQgY2hhciAqY2VrZGF0YTsJCS8qIChkZWNyeXB0ZWQpICovCisJ c2l6ZV90CQljZWtkYXRhbGVuOworfSBQR0NFSzsKKwogLyoKICAqIFBHY29ubiBzdG9yZXMg YWxsIHRoZSBzdGF0ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHNpbmdsZSBjb25uZWN0aW9u CiAgKiB0byBhIGJhY2tlbmQuCkBAIC0zOTYsNiArNDE5LDggQEAgc3RydWN0IHBnX2Nvbm4K IAljaGFyCSAgICpzc2xfbWluX3Byb3RvY29sX3ZlcnNpb247CS8qIG1pbmltdW0gVExTIHBy b3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICpzc2xfbWF4X3Byb3RvY29sX3ZlcnNpb247 CS8qIG1heGltdW0gVExTIHByb3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICp0YXJnZXRf c2Vzc2lvbl9hdHRyczsJLyogZGVzaXJlZCBzZXNzaW9uIHByb3BlcnRpZXMgKi8KKwljaGFy CSAgICpjbWtsb29rdXA7CQkvKiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24gKi8KKwljaGFy CSAgICpjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nOwkvKiBjb2x1bW5fZW5jcnlwdGlvbiBj b25uZWN0aW9uIHBhcmFtZXRlciAoMCBvciAxKSAqLwogCiAJLyogT3B0aW9uYWwgZmlsZSB0 byB3cml0ZSB0cmFjZSBpbmZvIHRvICovCiAJRklMRQkgICAqUGZkZWJ1ZzsKQEAgLTQ3Nyw2 ICs1MDIsMTMgQEAgc3RydWN0IHBnX2Nvbm4KIAlQR1ZlcmJvc2l0eSB2ZXJib3NpdHk7CQkv KiBlcnJvci9ub3RpY2UgbWVzc2FnZSB2ZXJib3NpdHkgKi8KIAlQR0NvbnRleHRWaXNpYmls aXR5IHNob3dfY29udGV4dDsJLyogd2hldGhlciB0byBzaG93IENPTlRFWFQgZmllbGQgKi8K IAlQR2xvYmpmdW5jcyAqbG9iamZ1bmNzOwkJLyogcHJpdmF0ZSBzdGF0ZSBmb3IgbGFyZ2Ut b2JqZWN0IGFjY2VzcyBmbnMgKi8KKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk OwkvKiBwYXJzZWQgdmVyc2lvbiBvZiBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nICovCisK KwkvKiBDb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEgKi8KKwlpbnQJCQluY21rczsK KwlQR0NNSwkgICAqY21rczsKKwlpbnQJCQluY2VrczsKKwlQR0NFSwkgICAqY2VrczsKIAog CS8qIEJ1ZmZlciBmb3IgZGF0YSByZWNlaXZlZCBmcm9tIGJhY2tlbmQgYW5kIG5vdCB5ZXQg cHJvY2Vzc2VkICovCiAJY2hhcgkgICAqaW5CdWZmZXI7CQkvKiBjdXJyZW50bHkgYWxsb2Nh dGVkIGJ1ZmZlciAqLwpAQCAtNjczLDYgKzcwNSwxMCBAQCBleHRlcm4gdm9pZCBwcVNhdmVN ZXNzYWdlRmllbGQoUEdyZXN1bHQgKnJlcywgY2hhciBjb2RlLAogCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKnZhbHVlKTsKIGV4dGVybiB2b2lkIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqdmFs dWUpOworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uLCBp bnQga2V5aWQsIGNvbnN0IGNoYXIgKmtleW5hbWUsCisJCQkJCQkJCSAgY29uc3QgY2hhciAq a2V5cmVhbG0pOworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29u biAqY29ubiwgaW50IGtleWlkLCBpbnQgY21raWQsIGludCBjbWthbGcsCisJCQkJCQkJCQkg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlLCBpbnQgbGVuKTsKIGV4dGVybiBpbnQJcHFS b3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCk7CiBleHRl cm4gdm9pZCBwcUNvbW1hbmRRdWV1ZUFkdmFuY2UoUEdjb25uICpjb25uKTsKIGV4dGVybiBp bnQJUFFzZW5kUXVlcnlDb250aW51ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1ZXJ5 KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggZTU2MTA5ZGQ1OC4uMmJlMDZk ZmZjMyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKQEAgLTI5LDYgKzI5LDcgQEAg ZW5kaWYKIAogaWYgc3NsLmZvdW5kKCkKICAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUt c2VjdXJlLWNvbW1vbi5jJykKKyAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUtZW5jcnlw dC1vcGVuc3NsLmMnKQogICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1zZWN1cmUtb3Bl bnNzbC5jJykKIGVuZGlmCiAKQEAgLTExNiw2ICsxMTcsNyBAQCB0ZXN0cyArPSB7CiAgICAg J3Rlc3RzJzogWwogICAgICAgJ3QvMDAxX3VyaS5wbCcsCiAgICAgICAndC8wMDJfYXBpLnBs JywKKyAgICAgICd0LzAwM19lbmNyeXB0LnBsJywKICAgICBdLAogICAgICdlbnYnOiB7J3dp dGhfc3NsJzogZ2V0X29wdGlvbignc3NsJyl9LAogICB9LApkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvbmxzLm1rIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCmlu ZGV4IDRkZjU0NGVjZWYuLjBjMzZhYTVmMzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL25scy5taworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKQEAgLTEs NiArMSw2IEBACiAjIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawogQ0FUQUxPR19OQU1F ICAgICA9IGxpYnBxCi1HRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2Ny YW0uYyBmZS1jb25uZWN0LmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2Jq LmMgZmUtbWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21t b24uYyBmZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4u Ly4uL3BvcnQvdGhyZWFkLmMKK0dFVFRFWFRfRklMRVMgICAgPSBmZS1hdXRoLmMgZmUtYXV0 aC1zY3JhbS5jIGZlLWNvbm5lY3QuYyBmZS1lbmNyeXB0LW9wZW5zc2wuYyBmZS1leGVjLmMg ZmUtZ3NzYXBpLWNvbW1vbi5jIGZlLWxvYmouYyBmZS1taXNjLmMgZmUtcHJvdG9jb2wzLmMg ZmUtc2VjdXJlLmMgZmUtc2VjdXJlLWNvbW1vbi5jIGZlLXNlY3VyZS1nc3NhcGkuYyBmZS1z ZWN1cmUtb3BlbnNzbC5jIHdpbjMyLmMgLi4vLi4vcG9ydC90aHJlYWQuYwogR0VUVEVYVF9U UklHR0VSUyA9IGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yOjIgXAogICAgICAgICAgICAgICAg ICAgIGxpYnBxX2FwcGVuZF9lcnJvcjoyIFwKICAgICAgICAgICAgICAgICAgICBsaWJwcV9n ZXR0ZXh0IHBxSW50ZXJuYWxOb3RpY2U6MgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv bGlicHEvdC8wMDNfZW5jcnlwdC5wbCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDAzX2Vu Y3J5cHQucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTRhNzQ0 MTAzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDAzX2Vu Y3J5cHQucGwKQEAgLTAsMCArMSw3MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjMsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p bmdzOworCit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsK KworcGxhbiBza2lwX2FsbCA9PiAnT3BlblNTTCBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVp bGQnIGlmICRFTlZ7d2l0aF9zc2x9IG5lICdvcGVuc3NsJzsKKworIyB0ZXN0IGRhdGEgZnJv bSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1h ZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNQorY29tbWFuZF9saWtlKFsgJ2xp YnBxX3Rlc3RfZW5jcnlwdCcgXSwKKwlxcns1LjEKK0MgPQorMWEgZjMgOGMgMmQgYzIgYjkg NmYgZmQgZDggNjYgOTQgMDkgMjMgNDEgYmMgMDQKK2M4IDBlIGRmIGEzIDJkIGRmIDM5IGQ1 IGVmIDAwIGMwIGI0IDY4IDgzIDQyIDc5CithMiBlNCA2YSAxYiA4MCA0OSBmNyA5MiBmNyA2 YiBmZSA1NCBiOSAwMyBhOSBjOQorYTkgNGEgYzkgYjQgN2EgZDIgNjUgNWMgNWYgMTAgZjkg YWUgZjcgMTQgMjcgZTIKK2ZjIDZmIDliIDNmIDM5IDlhIDIyIDE0IDg5IGYxIDYzIDYyIGM3 IDAzIDIzIDM2CiswOSBkNCA1YSBjNiA5OCA2NCBlMyAzMiAxYyBmOCAyOSAzNSBhYyA0MCA5 NiBjOAorNmUgMTMgMzMgMTQgYzUgNDAgMTkgZTggY2EgNzkgODAgZGYgYTQgYjkgY2YgMWIK KzM4IDRjIDQ4IDZmIDNhIDU0IGM1IDEwIDc4IDE1IDhlIGU1IGQ3IDlkIGU1IDlmCitiZCAz NCBkOCA0OCBiMyBkNiA5NSA1MCBhNiA3NiA0NiAzNCA0NCAyNyBhZCBlNQorNGIgODggNTEg ZmYgYjUgOTggZjcgZjggMDAgNzQgYjkgNDcgM2MgODIgZTIgZGIKKzY1IDJjIDNmIGEzIDZi IDBhIDdjIDViIDMyIDE5IGZhIGIzIGEzIDBiIGMxIGM0Cis1LjIKK0MgPQorMWEgZjMgOGMg MmQgYzIgYjkgNmYgZmQgZDggNjYgOTQgMDkgMjMgNDEgYmMgMDQKK2VhIDY1IGRhIDZiIDU5 IGU2IDFlIGRiIDQxIDliIGU2IDJkIDE5IDcxIDJhIGU1CitkMyAwMyBlZSBiNSAwMCA1MiBk MCBkZiBkNiA2OSA3ZiA3NyAyMiA0YyA4ZSBkYgorMDAgMGQgMjcgOWIgZGMgMTQgYzEgMDcg MjYgNTQgYmQgMzAgOTQgNDIgMzAgYzYKKzU3IGJlIGQ0IGNhIDBjIDlmIDRhIDg0IDY2IGYy IDJiIDIyIDZkIDE3IDQ2IDIxCis0YiBmOCBjZiBjMiA0MCAwYSBkZCA5ZiA1MSAyNiBlNCA3 OSA2NiAzZiBjOSAwYgorM2IgZWQgNzggN2EgMmYgMGYgZmMgYmYgMzkgMDQgYmUgMmEgNjQg MWQgNWMgMjEKKzA1IGJmIGU1IDkxIGJhIGUyIDNiIDFkIDc0IDQ5IGU1IDMyIGVlIGY2IDBh IDlhCitjOCBiYiA2YyA2YiAwMSBkMyA1ZCA0OSA3OCA3YiBjZCA1NyBlZiA0OCA0OSAyNwor ZjIgODAgYWQgYzkgMWEgYzAgYzQgZTcgOWMgN2IgMTEgZWYgYzYgMDAgNTQgZTMKKzg0IDkw IGFjIDBlIDU4IDk0IDliIGZlIDUxIDg3IDVkIDczIDNmIDkzIGFjIDIwCis3NSAxNiA4MCAz OSBjYyBjNyAzMyBkNworNS4zCitDID0KKzFhIGYzIDhjIDJkIGMyIGI5IDZmIGZkIGQ4IDY2 IDk0IDA5IDIzIDQxIGJjIDA0Cis4OSAzMSAyOSBiMCBmNCBlZSA5ZSBiMSA4ZCA3NSBlZCBh NiBmMiBhYSBhOSBmMworNjAgN2MgOTggYzQgYmEgMDQgNDQgZDMgNDEgNjIgMTcgMGQgODkg NjEgODggNGUKKzU4IGYyIDdkIDRhIDM1IGE1IGUzIGUzIDIzIDRhIGE5IDk0IDA0IGYzIDI3 IGY1CitjMiBkNyA4ZSA5OCA2ZSA1NyA0OSA4NSA4YiA4OCBiYyBkZCBjMiBiYSAwNSAyMQor OGYgMTkgNTEgMTIgZDYgYWQgNDggZmEgM2IgMWUgODkgYWEgN2YgMjAgZDUgOTYKKzY4IDJm IDEwIGIzIDY0IDhkIDNiIGIwIGM5IDgzIGMzIDE4IDVmIDU5IGUzIDZkCisyOCBmNiA0NyBj MSBjMSAzOSA4OCBkZSA4ZSBhMCBkOCAyMSAxOSA4YyAxNSAwOQorNzcgZTIgOGMgYTcgNjgg MDggMGIgYzcgOGMgMzUgZmEgZWQgNjkgZDggYzAgYjcKK2Q5IGY1IDA2IDIzIDIxIDk4IGE0 IDg5IGExIGE2IGFlIDAzIGEzIDE5IGZiIDMwCitkZCAxMyAxZCAwNSBhYiAzNCA2NyBkZCAw NSA2ZiA4ZSA4OCAyYiBhZCA3MCA2MworN2YgMWUgOWEgNTQgMWQgOWMgMjMgZTcKKzUuNAor QyA9CisxYSBmMyA4YyAyZCBjMiBiOSA2ZiBmZCBkOCA2NiA5NCAwOSAyMyA0MSBiYyAwNAor NGEgZmYgYWEgYWQgYjcgOGMgMzEgYzUgZGEgNGIgMWIgNTkgMGQgMTAgZmYgYmQKKzNkIGQ4 IGQ1IGQzIDAyIDQyIDM1IDI2IDkxIDJkIGEwIDM3IGVjIGJjIGM3IGJkCis4MiAyYyAzMCAx ZCBkNiA3YyAzNyAzYiBjYyBiNSA4NCBhZCAzZSA5MiA3OSBjMgorZTYgZDEgMmEgMTMgNzQg YjcgN2YgMDcgNzUgNTMgZGYgODIgOTQgMTAgNDQgNmIKKzM2IGViIGQ5IDcwIDY2IDI5IDZh IGU2IDQyIDdlIGE3IDVjIDJlIDA4IDQ2IGExCisxYSAwOSBjYyBmNSAzNyAwZCBjOCAwYiBm ZSBjYiBhZCAyOCBjNyAzZiAwOSBiMworYTMgYjcgNWUgNjYgMmEgMjUgOTQgNDEgMGEgZTQg OTYgYjIgZTIgZTYgNjAgOWUKKzMxIGU2IGUwIDJjIGM4IDM3IGYwIDUzIGQyIDFmIDM3IGZm IDRmIDUxIDk1IDBiCitiZSAyNiAzOCBkMCA5ZCBkNyBhNCA5MyAwOSAzMCA4MCA2ZCAwNyAw MyBiMSBmNgorNGQgZDMgYjQgYzAgODggYTcgZjQgNWMgMjEgNjggMzkgNjQgNWIgMjAgMTIg YmYKKzJlIDYyIDY5IGE4IGM1IDZhIDgxIDZkIGJjIDFiIDI2IDc3IDYxIDk1IDViIGM1Cit9 LAorCSdBRUFEX0FFU18qX0NCQ19ITUFDX1NIQV8qIHRlc3QgY2FzZXMnKTsKKworZG9uZV90 ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRp Z25vcmUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKaW5kZXggNmJh NzhhZGI2Ny4uMTg0NjU5NGVjNSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC8uZ2l0aWdub3JlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGln bm9yZQpAQCAtMSwyICsxLDMgQEAKKy9saWJwcV90ZXN0X2VuY3J5cHQKIC9saWJwcV90ZXN0 Y2xpZW50CiAvbGlicHFfdXJpX3JlZ3Jlc3MKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL3Rlc3QvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2Vm aWxlCmluZGV4IDc1YWMwOGY5NDMuLmIxZWJhYjkwZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC9NYWtlZmlsZQpAQCAtMTUsMTAgKzE1LDE3IEBAIG92ZXJyaWRlIENQUEZMQUdTIDo9 IC1JJChsaWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCiBMREZMQUdTX0lOVEVSTkFMICs9ICQo bGlicHFfcGdwb3J0KQogCiBQUk9HUyA9IGxpYnBxX3Rlc3RjbGllbnQgbGlicHFfdXJpX3Jl Z3Jlc3MKK2lmZXEgKCQod2l0aF9zc2wpLG9wZW5zc2wpCitQUk9HUyArPSBsaWJwcV90ZXN0 X2VuY3J5cHQKK2VuZGlmCisKIAogYWxsOiAkKFBST0dTKQogCiAkKFBST0dTKTogJChXSU4z MlJFUykKIAorbGlicHFfdGVzdF9lbmNyeXB0OiAuLi9mZS1lbmNyeXB0LW9wZW5zc2wuYwor CSQoQ0MpICQoQ1BQRkxBR1MpIC1EVEVTVF9FTkNSWVBUICQoQ0ZMQUdTKSAkXiAkKExERkxB R1MpICQoTERGTEFHU19FWCkgJChMSUJTKSAtbyAkQCQoWCkKKwogY2xlYW4gZGlzdGNsZWFu IG1haW50YWluZXItY2xlYW46CiAJcm0gLWYgJChQUk9HUykgKi5vCmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvdGVzdC9tZXNvbi5idWlsZAppbmRleCBkZGVjZmQ0ZmM0Li5kMGZmMGViZjgwIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkCisrKyBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQKQEAgLTM2LDMgKzM2LDI2 IEBAIGV4ZWN1dGFibGUoJ2xpYnBxX3Rlc3RjbGllbnQnLAogICAgICdpbnN0YWxsJzogZmFs c2UsCiAgIH0KICkKKworCitsaWJwcV90ZXN0X2VuY3J5cHRfc291cmNlcyA9IGZpbGVzKAor ICAnLi4vZmUtZW5jcnlwdC1vcGVuc3NsLmMnLAorKQorCitpZiBob3N0X3N5c3RlbSA9PSAn d2luZG93cycKKyAgbGlicHFfdGVzdF9lbmNyeXB0X3NvdXJjZXMgKz0gcmNfYmluX2dlbi5w cm9jZXNzKHdpbjMydmVyX3JjLCBleHRyYV9hcmdzOiBbCisgICAgJy0tTkFNRScsICdsaWJw cV90ZXN0X2VuY3J5cHQnLAorICAgICctLUZJTEVERVNDJywgJ2xpYnBxIHRlc3QgcHJvZ3Jh bScsXSkKK2VuZGlmCisKK2lmIHNzbC5mb3VuZCgpCisgIGV4ZWN1dGFibGUoJ2xpYnBxX3Rl c3RfZW5jcnlwdCcsCisgICAgbGlicHFfdGVzdF9lbmNyeXB0X3NvdXJjZXMsCisgICAgaW5j bHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLi4vLi4vLi4vcG9ydCcp LAorICAgIGRlcGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGxpYnBxLCBzc2xdLAorICAg IGNfYXJnczogWyctRFRFU1RfRU5DUllQVCddLAorICAgIGt3YXJnczogZGVmYXVsdF9iaW5f YXJncyArIHsKKyAgICAgICdpbnN0YWxsJzogZmFsc2UsCisgICAgfQorICApCitlbmRpZgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMvdGVzdC9NYWtlZmlsZQppbmRl eCBkYmQzMTkyODc0Li5jOGJhMTcwNTAzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9NYWtlZmls ZQorKysgYi9zcmMvdGVzdC9NYWtlZmlsZQpAQCAtMjQsNyArMjQsNyBAQCBpZmVxICgkKHdp dGhfbGRhcCkseWVzKQogU1VCRElSUyArPSBsZGFwCiBlbmRpZgogaWZlcSAoJCh3aXRoX3Nz bCksb3BlbnNzbCkKLVNVQkRJUlMgKz0gc3NsCitTVUJESVJTICs9IGNvbHVtbl9lbmNyeXB0 aW9uIHNzbAogZW5kaWYKIAogIyBUZXN0IHN1aXRlcyB0aGF0IGFyZSBub3Qgc2FmZSBieSBk ZWZhdWx0IGJ1dCBjYW4gYmUgcnVuIGlmIHNlbGVjdGVkCkBAIC0zNiw3ICszNiw3IEBAIGV4 cG9ydCBQR19URVNUX0VYVFJBCiAjIGNsZWFuIiBldGMgdG8gcmVjdXJzZSBpbnRvIHRoZW0u ICAoV2UgbXVzdCBmaWx0ZXIgb3V0IHRob3NlIHRoYXQgd2UKICMgaGF2ZSBjb25kaXRpb25h bGx5IGluY2x1ZGVkIGludG8gU1VCRElSUyBhYm92ZSwgZWxzZSB0aGVyZSB3aWxsIGJlCiAj IG1ha2UgY29uZnVzaW9uLikKLUFMV0FZU19TVUJESVJTID0gJChmaWx0ZXItb3V0ICQoU1VC RElSUyksZXhhbXBsZXMga2VyYmVyb3MgaWN1IGxkYXAgc3NsKQorQUxXQVlTX1NVQkRJUlMg PSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBz c2wgY29sdW1uX2VuY3J5cHRpb24pCiAKICMgV2Ugd2FudCB0byByZWN1cnNlIHRvIGFsbCBz dWJkaXJzIGZvciBhbGwgc3RhbmRhcmQgdGFyZ2V0cywgZXhjZXB0IHRoYXQKICMgaW5zdGFs bGNoZWNrIGFuZCBpbnN0YWxsIHNob3VsZCBub3QgcmVjdXJzZSBpbnRvIHRoZSBzdWJkaXJl Y3RvcnkgIm1vZHVsZXMiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDU2ZGJmNjlkMgotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUK QEAgLTAsMCArMSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2VuZXJhdGVkIGJ5IHRlc3Qgc3Vp dGUKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi9NYWtlZmlsZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ1ZWFkODc0ZTUKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQpAQCAtMCww ICsxLDMxIEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZSBmb3Igc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24KKyMKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisjCisjIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCisj CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitzdWJkaXIgPSBzcmMvdGVzdC9jb2x1bW5fZW5j cnlwdGlvbgordG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRk aXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKKworZXhwb3J0IE9QRU5TU0wgUEVSTAorCitvdmVy cmlkZSBDUFBGTEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQorTERGTEFH U19JTlRFUk5BTCArPSAtTCQodG9wX2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMgLWxwZ2ZldXRp bHMgJChsaWJwcV9wZ3BvcnQpCisKK2FsbDogdGVzdF9jbGllbnQKKworY2hlY2s6IGFsbAor CSQocHJvdmVfY2hlY2spCisKK2luc3RhbGxjaGVjazoKKwkkKHByb3ZlX2luc3RhbGxjaGVj aykKKworY2xlYW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xlYW46CisJcm0gLWYgdGVzdF9j bGllbnQubyB0ZXN0X2NsaWVudAorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uNDdmODhjNDFjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVt bl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsMjQgQEAKK2NvbHVtbl9lbmNy eXB0aW9uX3Rlc3RfY2xpZW50ID0gZXhlY3V0YWJsZSgndGVzdF9jbGllbnQnLAorICBmaWxl cygndGVzdF9jbGllbnQuYycpLAorICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBs aWJwcV0sCisgIGt3YXJnczogZGVmYXVsdF9iaW5fYXJncyArIHsKKyAgICAnaW5zdGFsbCc6 IGZhbHNlLAorICB9LAorKQordGVzdHByZXBfdGFyZ2V0cyArPSBjb2x1bW5fZW5jcnlwdGlv bl90ZXN0X2NsaWVudAorCit0ZXN0cyArPSB7CisgICduYW1lJzogJ2NvbHVtbl9lbmNyeXB0 aW9uJywKKyAgJ3NkJzogbWVzb24uY3VycmVudF9zb3VyY2VfZGlyKCksCisgICdiZCc6IG1l c29uLmN1cnJlbnRfYnVpbGRfZGlyKCksCisgICd0YXAnOiB7CisgICAgJ3Rlc3RzJzogWwor ICAgICAgJ3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsJywKKyAgICAgICd0LzAwMl9jbWtf cm90YXRpb24ucGwnLAorICAgIF0sCisgICAgJ2Vudic6IHsKKyAgICAgICdPUEVOU1NMJzog b3BlbnNzbC5wYXRoKCksCisgICAgICAnUEVSTCc6IHBlcmwucGF0aCgpLAorICAgIH0sCisg IH0sCit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9j b2x1bW5fZW5jcnlwdGlvbi5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAx X2NvbHVtbl9lbmNyeXB0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjFlMjA0NjA1Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbApAQCAtMCwwICsxLDI1NSBA QAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNl IFRlc3Q6Ok1vcmU7CisKK215ICRvcGVuc3NsID0gJEVOVntPUEVOU1NMfTsKK215ICRwZXJs ID0gJEVOVntQRVJMfTsKKworIyBDYW4gYmUgY2hhbmdlZCBtYW51YWxseSBmb3IgdGVzdGlu ZyBvdGhlciBhbGdvcml0aG1zLiAgTm90ZSB0aGF0CisjIFJTQUVTX09BRVBfU0hBXzI1NiBy ZXF1aXJlcyBPcGVuU1NMIDEuMS4wLgorbXkgJGNta2FsZyA9ICdSU0FFU19PQUVQX1NIQV8x JzsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUn KTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7 CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1f b3JfYmFpbCAkb3BlbnNzbCwgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScsICdyc2EnLCAnLW91 dCcsICRjbWtmaWxlbmFtZTsKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSAke2Nta25hbWV9fSk7CisJcmV0dXJuICRjbWtmaWxl bmFtZTsKK30KKworc3ViIGNyZWF0ZV9jZWsKK3sKKwlteSAoJGNla25hbWUsICRieXRlcywg JGNta25hbWUsICRjbWtmaWxlbmFtZSkgPSBAXzsKKworCW15ICRkaWdlc3QgPSAkY21rYWxn OworCSRkaWdlc3QgPX4gcy8uKig/PVNIQSkvLzsKKwkkZGlnZXN0ID1+IHMvXy8vZzsKKwor CSMgZ2VuZXJhdGUgcmFuZG9tIGJ5dGVzCisJc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdy YW5kJywgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8k e2Nla25hbWV9LmJpbiIsICRieXRlczsKKworCSMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCisJ bXkgQGNtZCA9ICgKKwkJJG9wZW5zc2wsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKwkJJy1p bmtleScsICRjbWtmaWxlbmFtZSwKKwkJJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6 b2FlcCcsCisJCSctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fS8ke2Nla25hbWV9LmJpbiIsCisJCSctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIgorCSk7CisJaWYgKCRkaWdlc3Qg bmUgJ1NIQTEnKQorCXsKKwkJIyBUaGVzZSBvcHRpb25zIHJlcXVpcmUgT3BlblNTTCA+PTEu MS4wLCBzbyBpZiB0aGUgZGlnZXN0IGlzCisJCSMgU0hBMSwgd2hpY2ggaXMgdGhlIGRlZmF1 bHQsIG9taXQgdGhlIG9wdGlvbnMuCisJCXB1c2ggQGNtZCwKKwkJICAnLXBrZXlvcHQnLCAi cnNhX21nZjFfbWQ6JGRpZ2VzdCIsCisJCSAgJy1wa2V5b3B0JywgInJzYV9vYWVwX21kOiRk aWdlc3QiOworCX0KKwlzeXN0ZW1fb3JfYmFpbCBAY21kOworCisJbXkgJGNla2VuY2hleCA9 IHVucGFjaygnSConLCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0 bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyIpOworCisJIyBjcmVhdGUgQ0VLIGluIGRh dGFiYXNlCisJJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1O IEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJf a2V5ID0gJHtjbWtuYW1lfSwgYWxnb3JpdGhtID0gJyR7Y21rYWxnfScsIGVuY3J5cHRlZF92 YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKworCXJldHVybjsKK30KKworCitteSAk Y21rMWZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMScpOworbXkgJGNtazJmaWxlbmFtZSA9 IGNyZWF0ZV9jbWsoJ2NtazInKTsKK2NyZWF0ZV9jZWsoJ2NlazEnLCA0OCwgJ2NtazEnLCAk Y21rMWZpbGVuYW1lKTsKK2NyZWF0ZV9jZWsoJ2NlazInLCA3MiwgJ2NtazInLCAkY21rMmZp bGVuYW1lKTsKKworJEVOVntQR0NPTFVNTkVOQ1JZUFRJT059ID0gJzEnOworJEVOVntQR0NN S0xPT0tVUH0gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9IC4gJy8lay5wZW0nOworCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZ UFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHNtYWxs aW50IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsK K30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0 YmwxIChhLCBiLCBjKSBWQUxVRVMgKDEsICQxLCAkMikgXGJpbmQgJ3ZhbDEnIDExIFxnCitJ TlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKDIsICQxLCAkMikgXGJpbmQgJ3Zh bDInIDIyIFxnCit9KTsKKworIyBFeHBlY3RlZCBjaXBoZXJ0ZXh0IGxlbmd0aCBpcyAyIGJs b2NrcyBvZiBBRVMgb3V0cHV0ICgyICogMTYpIHBsdXMKKyMgaGFsZiBTSEEtMjU2IG91dHB1 dCAoMTYpIGluIGhleCBlbmNvZGluZzogKDIgKiAxNiArIDE2KSAqIDIgPSA5NgorbGlrZSgk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0Ymwx KSBUTyBTVERPVVR9KSwKKwlxci8xXHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fVx0ZW5jcnlw dGVkXCRbMC05YS1mXXs5Nn1cbjJcdGVuY3J5cHRlZFwkWzAtOWEtZl17OTZ9XHRlbmNyeXB0 ZWRcJFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlwdGVkJyk7CisK K215ICRyZXN1bHQ7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxIFxnZGVzY30pOworaXMoJHJlc3VsdCwKKwlx KGF8aW50ZWdlcgorYnx0ZXh0CitjfHNtYWxsaW50KSwKKwkncXVlcnkgcmVzdWx0IGRlc2Ny aXB0aW9uIGhhcyBvcmlnaW5hbCB0eXBlJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVz dWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVz dWx0Jyk7CisKK3sKKwlsb2NhbCAkRU5We1BHQ01LTE9PS1VQfSA9ICcqPXJ1bjpicm9rZW4g JWsgJXAnOworCSRyZXN1bHQgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBh LCBiLCBjIEZST00gdGJsMX0pOworCWlzbnQoJHJlc3VsdCwgMCwgJ3F1ZXJ5IGZhaWxzIHdp dGggYnJva2VuIGNta2xvb2t1cCBydW4gc2V0dGluZycpOworfQorCit7CisJbG9jYWwgJEVO VntURVNUV09SS0RJUn0gPSAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9 OworCWxvY2FsICRFTlZ7UEdDTUtMT09LVVB9ID0gIio9cnVuOiRwZXJsIC4vdGVzdF9ydW5f ZGVjcnlwdC5wbCAlayAlYSAlcCI7CisKKwlteSAkc3Rkb3V0OworCSRyZXN1bHQgPSAkbm9k ZS0+cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0sIHN0ZG91 dCA9PiBcJHN0ZG91dCk7CisJaXMoJHN0ZG91dCwKKwkJcSgxfHZhbDF8MTEKKzJ8dmFsMnwy MiksCisJCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggY21rbG9va3VwIHJ1bicpOwor fQorCisKKyRub2RlLT5jb21tYW5kX2ZhaWxzX2xpa2UoWyd0ZXN0X2NsaWVudCcsICd0ZXN0 MSddLCBxci9ub3QgZW5jcnlwdGVkLywgJ3Rlc3QgY2xpZW50IGZhaWxzIGJlY2F1c2UgcGFy YW1ldGVycyBub3QgZW5jcnlwdGVkJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0 LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0 IGFmdGVyIHRlc3QgY2xpZW50IGluc2VydCcpOworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rl c3RfY2xpZW50JywgJ3Rlc3QyJ10sICd0ZXN0IGNsaWVudCB0ZXN0IDInKTsKKworJHJlc3Vs dCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9N IHRibDF9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwz fDMzKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNl cnQgMicpOworCitsaWtlKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtDT1BZIChT RUxFQ1QgKiBGUk9NIHRibDEgV0hFUkUgYSA9IDMpIFRPIFNURE9VVH0pLAorCXFyLzNcdGVu Y3J5cHRlZFwkWzAtOWEtZl17OTZ9LywKKwknaW5zZXJ0ZWQgZGF0YSBpcyBlbmNyeXB0ZWQn KTsKKworCisjIFRlc3RzIHdpdGggYmluYXJ5IGZvcm1hdAorCisjIFN1cHBseWluZyBhIHBh cmFtZXRlciBpbiBiaW5hcnkgZm9ybWF0IHdoZW4gdGhlIHBhcmFtZXRlciBpcyB0byBiZQor IyBlbmNyeXB0ZWQgcmVzdWx0cyBpbiBhbiBlcnJvciBmcm9tIGxpYnBxLgorJG5vZGUtPmNv bW1hbmRfZmFpbHNfbGlrZShbJ3Rlc3RfY2xpZW50JywgJ3Rlc3QzJ10sCisJcXIvZm9ybWF0 IG11c3QgYmUgdGV4dCBmb3IgZW5jcnlwdGVkIHBhcmFtZXRlci8sCisJJ3Rlc3QgY2xpZW50 IGZhaWxzIGJlY2F1c2UgdG8tYmUtZW5jcnlwdGVkIHBhcmFtZXRlciBpcyBpbiBiaW5hcnkg Zm9ybWF0Jyk7CisKKyMgUmVxdWVzdGluZyBhIGJpbmFyeSByZXN1bHQgc2V0IHN0aWxsIGNh dXNlcyBhbnkgZW5jcnlwdGVkIGNvbHVtbnMgdG8KKyMgYmUgcmV0dXJuZWQgYXMgdGV4dCBm cm9tIHRoZSBsaWJwcSBBUEkuCiskbm9kZS0+Y29tbWFuZF9saWtlKFsndGVzdF9jbGllbnQn LCAndGVzdDQnXSwKKwlxci88MCwwPj0xOlxuPDAsMT49MDp2YWwxXG48MCwyPj0wOjExLywK KwknYmluYXJ5IHJlc3VsdCBzZXQgd2l0aCBlbmNyeXB0ZWQgY29sdW1uczogZW5jcnlwdGVk IGNvbHVtbnMgcmV0dXJuZWQgYXMgdGV4dCcpOworCisKKyMgVGVzdCBVUERBVEUKKworJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworVVBEQVRFIHRibDEgU0VUIGIgPSAkMiBX SEVSRSBhID0gJDEgXGJpbmQgJzMnICd2YWwzdXBkJyBcZworfSk7CisKKyRyZXN1bHQgPSAk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0Ymwx fSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIKKzN8dmFsM3VwZHwz MyksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIgdXBkYXRlJyk7CisKKworIyBU ZXN0IHZpZXdzCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtDUkVBVEUgVklF VyB2MSBBUyBTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKKworJG5vZGUtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxe1VQREFURSB2MSBTRVQgYiA9ICQyIFdIRVJFIGEgPSAkMSBcYmlu ZCAnMycgJ3ZhbDN1cGQyJyBcZ30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdjEgV0hFUkUgYSBJTiAoMSwgMyl9 KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzN8dmFsM3VwZDJ8MzMpLAorCSdkZWNy eXB0ZWQgcXVlcnkgcmVzdWx0IGZyb20gdmlldycpOworCisKKyMgVGVzdCBkZXRlcm1pbmlz dGljIGVuY3J5cHRpb24KKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKK0NS RUFURSBUQUJMRSB0YmwyICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJ VEggKGVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMsIGNvbHVtbl9lbmNyeXB0aW9u X2tleSA9IGNlazEpCispOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXsKK0lOU0VSVCBJTlRPIHRibDIgKGEsIGIpIFZBTFVFUyAoJDEsICQyKSwgKCQzLCAkNCks ICgkNSwgJDYpIFxiaW5kICcxJyAndmFsQScgJzInICd2YWxCJyAnMycgJ3ZhbEEnIFxnCit9 KTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1Qg YSwgYiBGUk9NIHRibDJ9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbEEKKzJ8dmFsQgorM3x2 YWxBKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBpbiB0YWJsZSBmb3IgZGV0ZXJtaW5p c3RpYyBlbmNyeXB0aW9uJyk7CisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXtTRUxFQ1QgYiwgY291bnQoKikgRlJPTSB0YmwyIEdST1VQIEJZIGIgT1JERVIgQlkgMn0p LAorCXEodmFsQnwxCit2YWxBfDIpLAorCSdncm91cCBieSBkZXRlcm1pbmlzdGljYWxseSBl bmNyeXB0ZWQgY29sdW1uJyk7CisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXtTRUxFQ1QgYSBGUk9NIHRibDIgV0hFUkUgYiA9ICQxIFxiaW5kICd2YWxCJyBcZ30pLAor CXEoMiksCisJJ3NlbGVjdCBieSBkZXRlcm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1u Jyk7CisKKworIyBUZXN0IG11bHRpcGxlIGtleXMgaW4gb25lIHRhYmxlCisKKyRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMyAoCisgICAgYSBp bnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkg PSBjZWsxKSwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9u X2tleSA9IGNlazIsIGFsZ29yaXRobSA9ICdBRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4 NCcpCispOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VS VCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoMSwgJDEsICQyKSBcYmluZCAndmFsQjEn ICd2YWxDMScgXGcKK30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlxKDF8 dmFsQjF8dmFsQzEpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMn KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJs MyAoYSwgYiwgYykgVkFMVUVTICgkMSwgJDIsICQzKSwgKCQ0LCAkNSwgJDYpIFxiaW5kICcy JyAndmFsQjInICd2YWxDMicgJzMnICd2YWxCMycgJ3ZhbEMzJyBcZworfSk7CisKKyRyZXN1 bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJP TSB0YmwzfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWxCMXx2YWxDMQorMnx2YWxCMnx2YWxD MgorM3x2YWxCM3x2YWxDMyksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgbXVsdGlwbGUg a2V5cyBhZnRlciBzZWNvbmQgaW5zZXJ0Jyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24u cGwgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMWEwMTJjY2QyMQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19y b3RhdGlvbi5wbApAQCAtMCwwICsxLDExMiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAy MywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IGNvbHVt biBtYXN0ZXIga2V5IHJvdGF0aW9uLiAgRmlyc3QsIHdlIGdlbmVyYXRlIENNSzEgYW5kIGEg Q0VLCisjIGVuY3J5cHRlZCB3aXRoIGl0LiAgVGhlbiB3ZSBhZGQgYSBDTUsyIGFuZCBlbmNy eXB0IHRoZSBDRUsgd2l0aCBpdAorIyBhcyB3ZWxsLiAgKFJlY2FsbCB0aGF0IGEgQ0VLIGNh biBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgQ01LcywKKyMgZm9yIHRoaXMgcmVhc29u LiAgVGhhdCdzIHdoeSBwZ19jb2xlbmNrZXlkYXRhIGlzIHNwbGl0IG91dCBmcm9tCisjIHBn X2NvbGVuY2tleS4pICBUaGVuIHdlIHJlbW92ZSBDTUsxLiAgV2UgdGVzdCB0aGF0IHdlIGNh biBnZXQKKyMgZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdHMgYXQgZWFjaCBzdGVwLgorCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkg JG9wZW5zc2wgPSAkRU5We09QRU5TU0x9OworCitteSAkY21rYWxnID0gJ1JTQUVTX09BRVBf U0hBXzEnOworCitteSAkbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygn bm9kZScpOworJG5vZGUtPmluaXQ7Ciskbm9kZS0+c3RhcnQ7CisKKworc3ViIGNyZWF0ZV9j bWsKK3sKKwlteSAoJGNta25hbWUpID0gQF87CisJbXkgJGNta2ZpbGVuYW1lID0gIiR7UG9z dGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjbWtuYW1lfS5wZW0iOworCXN5 c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAnZ2VucGtleScsICctYWxnb3JpdGhtJywgJ3JzYScs ICctb3V0JywgJGNta2ZpbGVuYW1lOworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICR7Y21rbmFtZX19KTsKKwlyZXR1cm4gJGNt a2ZpbGVuYW1lOworfQorCisKK215ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsx Jyk7CisKKyMgY3JlYXRlIENFSworbXkgKCRjZWtuYW1lLCAkYnl0ZXMpID0gKCdjZWsxJywg NDgpOworCisjIGdlbmVyYXRlIHJhbmRvbSBieXRlcworc3lzdGVtX29yX2JhaWwgJG9wZW5z c2wsICdyYW5kJywgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2No ZWNrfS8ke2Nla25hbWV9LmJpbiIsICRieXRlczsKKworIyBlbmNyeXB0IENFSyB1c2luZyBD TUsKK3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncGtleXV0bCcsICctZW5jcnlwdCcsCisg ICctaW5rZXknLCAkY21rMWZpbGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdf bW9kZTpvYWVwJywKKyAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0 OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiOworCitteSAkY2VrZW5j aGV4ID0gdW5wYWNrKCdIKicsIHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKyMgY3JlYXRlIENFSyBp biBkYXRhYmFzZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMSwgYWxnb3JpdGhtID0gJyRjbWthbGcnLCBlbmNyeXB0ZWRfdmFsdWUg PSAnXFx4JHtjZWtlbmNoZXh9Jyk7fSk7CisKKyRFTlZ7UEdDT0xVTU5FTkNSWVBUSU9OfSA9 ICcxJzsKKyRFTlZ7UEdDTUtMT09LVVB9ID0gJyo9ZmlsZTonIC4gJHtQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dG1wX2NoZWNrfSAuICcvJWsucGVtJzsKKworJG5vZGUtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0YmwxICgKKyAgICBhIGludCwKKyAg ICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEp CispOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJ TlRPIHRibDEgKGEsIGIpIFZBTFVFUyAoMSwgJDEpIFxiaW5kICd2YWwxJyBcZworSU5TRVJU IElOVE8gdGJsMSAoYSwgYikgVkFMVUVTICgyLCAkMSkgXGJpbmQgJ3ZhbDInIFxnCit9KTsK KworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00g dGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0 IHdpdGggb25lIENNSycpOworCisKKyMgY3JlYXRlIG5ldyBDTUsKK215ICRjbWsyZmlsZW5h bWUgPSBjcmVhdGVfY21rKCdjbWsyJyk7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgbmV3IENN SworIworIyAoSGVyZSwgd2Ugc3RpbGwgaGF2ZSB0aGUgcGxhaW50ZXh0IG9mIHRoZSBDRUsg YXZhaWxhYmxlIGZyb20KKyMgZWFybGllci4gIEluIHJlYWxpdHksIG9uZSB3b3VsZCBkZWNy eXB0IHRoZSBDRUsgd2l0aCB0aGUgZmlyc3QgQ01LCisjIGFuZCB0aGVuIHJlLWVuY3J5cHQg aXQgd2l0aCB0aGUgc2Vjb25kIENNSy4pCitzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ3Br ZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNtazJmaWxlbmFtZSwKKyAgJy1w a2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisgICctaW4nLCAiJHtQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsCisgICctb3V0 JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5i aW4uZW5jIjsKKworJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9maWxlICIke1Bv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyIp OworCisjIGFkZCBuZXcgZGF0YSByZWNvcmQgZm9yIENFSyBpbiBkYXRhYmFzZQorJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg JHtjZWtuYW1lfSBBREQgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMiwgYWxnb3Jp dGhtID0gJyRjbWthbGcnLCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9Jyk7 fSk7CisKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBi IEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkg cmVzdWx0IHdpdGggdHdvIENNS3MnKTsKKworCisjIGRlbGV0ZSBDRUsgcmVjb3JkIGZvciBm aXJzdCBDTUsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7QUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9r ZXkgPSBjbWsxKTt9KTsKKworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSksCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5 cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBvbmx5IG5ldyBDTUsnKTsKKworCitkb25lX3Rlc3Rp bmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xp ZW50LmMgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjljMjU3YTNkZGIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jCkBA IC0wLDAgKzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxLTIwMjMsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKi8KKworI2luY2x1ZGUgInBvc3Rn cmVzX2ZlLmgiCisKKyNpbmNsdWRlICJsaWJwcS1mZS5oIgorCisKKy8qCisgKiBUZXN0IGNh bGxzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBlbmNyeXB0aW9uCisgKi8KK3N0YXRpYyBpbnQKK3Rl c3QxKFBHY29ubiAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXM7CisJY29uc3QgY2hhciAq dmFsdWVzW10gPSB7IjMiLCAidmFsMyIsICIzMyJ9OworCisJcmVzID0gUFFwcmVwYXJlKGNv bm4sICIiLCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgkMSwgJDIsICQz KSIsCisJCQkJCTMsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVT X0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJlcGFyZSgpIGZhaWxl ZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9 CisKKwlyZXMgPSBQUWV4ZWNQcmVwYXJlZChjb25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBO VUxMLCAwKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09L KQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDogJXNc biIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwly ZXR1cm4gMDsKK30KKworLyoKKyAqIFRlc3QgZm9yY2VkIGVuY3J5cHRpb24KKyAqLworc3Rh dGljIGludAordGVzdDIoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlcywKKwkJ CSAgICpyZXMyOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMiLCAiMzMi fTsKKwlpbnQJCQlmb3JtYXRzW10gPSB7MHgwMCwgMHgxMCwgMHgwMH07CisKKwlyZXMgPSBQ UXByZXBhcmUoY29ubiwgIiIsICJJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMg KCQxLCAkMiwgJDMpIiwKKwkJCQkJMywgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJl cykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVw YXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJl dHVybiAxOworCX0KKworCXJlczIgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOwor CWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJ ZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAor CQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKCEo IVBRcGFyYW1pc2VuY3J5cHRlZChyZXMyLCAwKSAmJgorCQkgIFBRcGFyYW1pc2VuY3J5cHRl ZChyZXMyLCAxKSkpCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIndyb25nIHJlc3VsdHMgZnJv bSBQUXBhcmFtaXNlbmNyeXB0ZWQoKVxuIik7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9 IFBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkKGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEwsIGZv cm1hdHMsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NP TU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFp bGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOwor CX0KKworCXJldHVybiAwOworfQorCisvKgorICogVGVzdCB3aGF0IGhhcHBlbnMgd2hlbiB5 b3Ugc3VwcGx5IGEgYmluYXJ5IHBhcmFtZXRlciB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlCisg KiBlbmNyeXB0ZWQuCisgKi8KK3N0YXRpYyBpbnQKK3Rlc3QzKFBHY29ubiAqY29ubikKK3sK KwlQR3Jlc3VsdCAgICpyZXM7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IiJ9OworCWlu dAkJCWxlbmd0aHNbXSA9IHsxfTsKKwlpbnQJCQlmb3JtYXRzW10gPSB7MX07CisKKwlyZXMg PSBQUWV4ZWNQYXJhbXMoY29ubiwgIklOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVF UyAoMTAwLCBOVUxMLCAkMSkiLAorCQkJCQkgICAzLCBOVUxMLCB2YWx1ZXMsIGxlbmd0aHMs IGZvcm1hdHMsIDApOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1B TkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1BhcmFtcygpIGZhaWxlZDog JXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisK KwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4geW91IHJl cXVlc3QgcmVzdWx0cyBpbiBiaW5hcnkgYW5kIHRoZSByZXN1bHQgcm93cworICogY29udGFp biBhbiBlbmNyeXB0ZWQgY29sdW1uLgorICovCitzdGF0aWMgaW50Cit0ZXN0NChQR2Nvbm4g KmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzOworCisJcmVzID0gUFFleGVjUGFyYW1zKGNv bm4sICJTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDEgV0hFUkUgYSA9IDEiLCAwLCBOVUxMLCBO VUxMLCBOVUxMLCBOVUxMLCAxKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JF U19UVVBMRVNfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1BhcmFtcygpIGZh aWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsK Kwl9CisKKwlmb3IgKGludCByb3cgPSAwOyByb3cgPCBQUW50dXBsZXMocmVzKTsgcm93Kysp CisJCWZvciAoaW50IGNvbCA9IDA7IGNvbCA8IFBRbmZpZWxkcyhyZXMpOyBjb2wrKykKKwkJ CXByaW50ZigiPCVkLCVkPj0lZDolc1xuIiwgcm93LCBjb2wsIFBRZmZvcm1hdChyZXMsIGNv bCksIFBRZ2V0dmFsdWUocmVzLCByb3csIGNvbCkpOworCXJldHVybiAwOworfQorCitpbnQK K21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCVBHY29ubgkgICAqY29ubjsKKwlp bnQJCQlyZXQgPSAwOworCisJY29ubiA9IFBRY29ubmVjdGRiKCIiKTsKKwlpZiAoUFFzdGF0 dXMoY29ubikgIT0gQ09OTkVDVElPTl9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiQ29u bmVjdGlvbiB0byBkYXRhYmFzZSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdl KGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKGFyZ2MgPCAyIHx8IGFyZ3ZbMV0g PT0gTlVMTCkKKwkJcmV0dXJuIDg3OworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVz dDEiKSA9PSAwKQorCQlyZXQgPSB0ZXN0MShjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJn dlsxXSwgInRlc3QyIikgPT0gMCkKKwkJcmV0ID0gdGVzdDIoY29ubik7CisJZWxzZSBpZiAo c3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MyIpID09IDApCisJCXJldCA9IHRlc3QzKGNvbm4pOwor CWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDQiKSA9PSAwKQorCQlyZXQgPSB0ZXN0 NChjb25uKTsKKwllbHNlCisJCXJldCA9IDg4OworCisJUFFmaW5pc2goY29ubik7CisJcmV0 dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rl c3RfcnVuX2RlY3J5cHQucGwgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1 bl9kZWNyeXB0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAuLjY2 ODcxY2I0MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi90ZXN0X3J1bl9kZWNyeXB0LnBsCkBAIC0wLDAgKzEsNTggQEAKKyMhL3Vzci9iaW4vcGVy bAorCisjIFRlc3Qvc2FtcGxlIGNvbW1hbmQgZm9yIGxpYnBxIGNta2xvb2t1cCBydW4gc2No ZW1lCisjCisjIFRoaXMganVzdCBwbGFjZXMgdGhlIGRhdGEgaW50byB0ZW1wb3JhcnkgZmls ZXMgYW5kIHJ1bnMgdGhlIG9wZW5zc2wKKyMgY29tbWFuZCBvbiBpdC4gIChJbiBwcmFjdGlj ZSwgdGhpcyBjb3VsZCBtb3JlIHNpbXBseSBiZSB3cml0dGVuIGFzIGEKKyMgc2hlbGwgc2Ny aXB0LCBidXQgdGhpcyB3YXkgaXQncyBtb3JlIHBvcnRhYmxlLikKKworIyBDb3B5cmlnaHQg KGMpIDIwMjEtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwor dXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKworbXkgKCRjbWtuYW1lLCAkYWxnLCAkZmls ZW5hbWUpID0gQEFSR1Y7CisKK2RpZSB1bmxlc3MgJGFsZyA9fiAnUlNBRVNfT0FFUF9TSEEn OworCitteSAkZGlnZXN0ID0gJGFsZzsKKyRkaWdlc3QgPX4gcy8uKig/PVNIQSkvLzsKKyRk aWdlc3QgPX4gcy9fLy9nOworCitteSAkdG1wZGlyID0gJEVOVntURVNUV09SS0RJUn07CisK K215ICRvcGVuc3NsID0gJEVOVntPUEVOU1NMfTsKKworbXkgQGNtZCA9ICgKKwkkb3BlbnNz bCwgJ3BrZXl1dGwnLCAnLWRlY3J5cHQnLAorCSctaW5rZXknLCAiJHt0bXBkaXJ9LyR7Y21r bmFtZX0ucGVtIiwgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJJy1p bicsICRmaWxlbmFtZSwgJy1vdXQnLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiCispOworCitp ZiAoJGRpZ2VzdCBuZSAnU0hBMScpCit7CisJIyBUaGVzZSBvcHRpb25zIHJlcXVpcmUgT3Bl blNTTCA+PTEuMS4wLCBzbyBpZiB0aGUgZGlnZXN0IGlzCisJIyBTSEExLCB3aGljaCBpcyB0 aGUgZGVmYXVsdCwgb21pdCB0aGUgb3B0aW9ucy4KKwlwdXNoIEBjbWQsCisJICAnLXBrZXlv cHQnLCAicnNhX21nZjFfbWQ6JGRpZ2VzdCIsCisJICAnLXBrZXlvcHQnLCAicnNhX29hZXBf bWQ6JGRpZ2VzdCI7Cit9CisKK3N5c3RlbShAY21kKSA9PSAwIG9yIGRpZSAic3lzdGVtIGZh aWxlZDogJD8iOworCitvcGVuIG15ICRmaCwgJzw6cmF3JywgIiR7dG1wZGlyfS9vdXRwdXQu dG1wIiBvciBkaWUgJCE7CitteSAkZGF0YSA9ICcnOworCit3aGlsZSAoMSkgeworCW15ICRz dWNjZXNzID0gcmVhZCAkZmgsICRkYXRhLCAxMDAsIGxlbmd0aCgkZGF0YSk7CisJZGllICQh IGlmIG5vdCBkZWZpbmVkICRzdWNjZXNzOworCWxhc3QgaWYgbm90ICRzdWNjZXNzOworfQor CitjbG9zZSAkZmg7CisKK3VubGluayAiJHt0bXBkaXJ9L291dHB1dC50bXAiOworCitiaW5t b2RlIFNURE9VVDsKKworcHJpbnQgJGRhdGE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tZXNv bi5idWlsZCBiL3NyYy90ZXN0L21lc29uLmJ1aWxkCmluZGV4IGYxNmUwMGE4YTAuLjBiNGZi YjI1YWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0 L21lc29uLmJ1aWxkCkBAIC05LDYgKzksNyBAQCBzdWJkaXIoJ3N1YnNjcmlwdGlvbicpCiBz dWJkaXIoJ21vZHVsZXMnKQogCiBpZiBzc2wuZm91bmQoKQorICBzdWJkaXIoJ2NvbHVtbl9l bmNyeXB0aW9uJykKICAgc3ViZGlyKCdzc2wnKQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iMTZlMDM1MTY1Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKQEAg LTAsMCArMSwyMzEgQEAKK1xzZXQgSElERV9DT0xVTU5fRU5DUllQVElPTiBmYWxzZQorQ1JF QVRFIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKK0NPTU1FTlQgT04gQ09MVU1O IE1BU1RFUiBLRVkgY21rMSBJUyAnY29sdW1uIG1hc3RlciBrZXknOworQ1JFQVRFIENPTFVN TiBNQVNURVIgS0VZIGNtazFhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworQ1JF QVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazI7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMmEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdHgnCispOworQUxURVIgQ09MVU1OIE1B U1RFUiBLRVkgY21rMmEgKHJlYWxtID0gJ3Rlc3QyJyk7CitDUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGZhaWwgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMSwKKyAgICBhbGdvcml0aG0gPSAnZm9vJywgIC0tIGludmFsaWQKKyAgICBlbmNyeXB0 ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIHVucmVjb2duaXplZCBlbmNy eXB0aW9uIGFsZ29yaXRobTogZm9vCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBh bGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0g J1x4REVBREJFRUYnCispOworQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5JzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwK KyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3Zh bHVlID0gJ1x4REVBREJFRUYnCispOworLS0gZHVwbGljYXRlCitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5 cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRp b24ga2V5ICJjZWsxIiBhbHJlYWR5IGhhcyBkYXRhIGZvciBtYXN0ZXIga2V5ICJjbWsxYSIK K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIEFERCBWQUxVRSAoCisgICAgY29s dW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9T SEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworRVJST1I6 ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9t YXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScs CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispLAorKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21h c3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywK KyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitDUkVBVEUgVEFCTEUg dGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQ VEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IG5vdGV4aXN0KQorKTsKK0VSUk9S OiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJub3RleGlzdCIgZG9lcyBub3QgZXhpc3QKK0NS RUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMg dGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgYWxn b3JpdGhtID0gJ2ZvbycpCispOworRVJST1I6ICB1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBh bGdvcml0aG06IGZvbworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAg ICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxLCBlbmNyeXB0aW9uX3R5cGUgPSB3cm9uZykKKyk7CitFUlJPUjogIHVu cmVjb2duaXplZCBlbmNyeXB0aW9uIHR5cGU6IHdyb25nCitDUkVBVEUgVEFCTEUgdGJsXzI5 ZjMgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJ VEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworXGQgdGJsXzI5ZjMKKyAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfMjlmMyIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisKK1xkKyB0YmxfMjlmMworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlv biB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCBleHRlcm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKKworQ1JFQVRFIFRB QkxFIHRibF80NDdmICgKKyAgICBhIGludCwKKyAgICBiIHRleHQKKyk7CitBTFRFUiBUQUJM RSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gY2VrMSk7CitcZCB0YmxfNDQ3ZgorICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnRibF80NDdmIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKworXGQrIHRi bF80NDdmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy50YmxfNDQ3ZiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0 IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAK KyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwg ZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4 dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2Vr MSAgICAgICB8ICAgICAgICAgICAgICB8IAorCitDUkVBVEUgVEFCTEUgdGJsXzQ4OTcgKExJ S0UgdGJsXzQ0N2YpOworQ1JFQVRFIFRBQkxFIHRibF82OTc4IChMSUtFIHRibF80NDdmIElO Q0xVRElORyBFTkNSWVBURUQpOworXGQrIHRibF80ODk3CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfNDg5NyIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAg fCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAor CitcZCsgdGJsXzY5NzgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRibF82OTc4IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0 cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBjICAg ICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZXJu YWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK0NSRUFURSBWSUVXIHZpZXdf M2JjOSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzOworXGQrIHZpZXdfM2JjOQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyAicHVibGljLnZpZXdfM2JjOSIKKyBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3Rv cmFnZSAgfCBFbmNyeXB0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0 ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAg ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8IAorVmlldyBkZWZpbml0aW9u OgorIFNFTEVDVCB0YmxfMjlmMy5hLAorICAgIHRibF8yOWYzLmIsCisgICAgdGJsXzI5ZjMu YworICAgRlJPTSB0YmxfMjlmMzsKKworQ1JFQVRFIFRBQkxFIHRibF8yMzg2IEFTIFNFTEVD VCAqIEZST00gdGJsXzI5ZjMgV0lUSCBOTyBEQVRBOworXGQrIHRibF8yMzg2CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfMjM4 NiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24g CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0 ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8ICAgICAg ICAgICAgICB8IAorCitDUkVBVEUgVEFCTEUgdGJsXzI5NDEgQVMgU0VMRUNUICogRlJPTSB0 YmxfMjlmMyBXSVRIIERBVEE7CitFUlJPUjogIGVuY3J5cHRlZCBjb2x1bW5zIG5vdCB5ZXQg aW1wbGVtZW50ZWQgZm9yIHRoaXMgY29tbWFuZAorXGQrIHRibF8yOTQxCitDUkVBVEUgVEFC TEUgdGJsXzEzZmEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAo Y29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKykgUEFSVElUSU9OIEJZIFJBTkdFIChh KTsKK0NSRUFURSBUQUJMRSB0YmxfMTNmYV8xIFBBUlRJVElPTiBPRiB0YmxfMTNmYSBGT1Ig VkFMVUVTIEZST00gKDEpIFRPICgxMDApOworXGQrIHRibF8xM2ZhCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy50YmxfMTNm YSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24g CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0 ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsx ICAgICAgIHwgICAgICAgICAgICAgIHwgCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAoYSkKK1Bh cnRpdGlvbnM6IHRibF8xM2ZhXzEgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTAwKQorCitc ZCsgdGJsXzEzZmFfMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VGFibGUgInB1YmxpYy50YmxfMTNmYV8xIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0 cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBleHRlcm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKK1BhcnRp dGlvbiBvZjogdGJsXzEzZmEgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTAwKQorUGFydGl0 aW9uIGNvbnN0cmFpbnQ6ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChhID49IDEpIEFORCAoYSA8 IDEwMCkpCisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRVNUUklDVDsgIC0tIGZh aWwKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIG1hc3RlciBrZXkgY21rMSBiZWNhdXNl IG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gZW5jcnlwdGlv biBrZXkgY2VrMSBkYXRhIGZvciBtYXN0ZXIga2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4g bWFzdGVyIGtleSBjbWsxCitjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2VrNCBkYXRhIGZvciBt YXN0ZXIga2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVyIGtleSBjbWsxCitISU5U OiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMg dG9vLgorQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8gY21rMzsKK0FM VEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAtLSBmYWlsCitF UlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJjbWszIiBhbHJlYWR5IGV4aXN0cworQUxURVIg Q09MVU1OIE1BU1RFUiBLRVkgY21reCBSRU5BTUUgVE8gY21reTsgIC0tIGZhaWwKK0VSUk9S OiAgY29sdW1uIG1hc3RlciBrZXkgImNta3giIGRvZXMgbm90IGV4aXN0CitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMiBSRU5BTUUgVE8gY2VrMzsKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIFJFTkFNRSBUTyBjZWszOyAgLS0gZmFpbAorRVJST1I6ICBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgImNlazMiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwKK0VSUk9S OiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWt4IiBkb2VzIG5vdCBleGlzdAorU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19lbmNfdXNlcjEnOworRFJPUCBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZhaWwKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBv ZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2VrMworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBj bWszOyAgLS0gZmFpbAorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIg a2V5IGNtazMKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05FUiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsKK0RST1AgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAtLSBvayBub3cKK0RST1AgQ09MVU1OIE1BU1RF UiBLRVkgY21rMzsgIC0tIG9rIG5vdworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwor QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21h c3Rlcl9rZXkgPSBjbWsxYSk7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBE Uk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsgIC0tIGZhaWwKK0VSUk9S OiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWsxIiBoYXMgbm8gZGF0YSBmb3IgbWFzdGVy IGtleSAiY21rMWEiCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZB TFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGZhaWwpOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1 bW4gbWFzdGVyIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0FMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEs IGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZhaWwKK0VSUk9SOiAgYXR0cmlidXRlICJhbGdv cml0aG0iIG11c3Qgbm90IGJlIHNwZWNpZmllZAorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWw7CitFUlJPUjogIGNv bHVtbiBlbmNyeXB0aW9uIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0RST1AgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIElGIEVYSVNUUyBub25leGlzdGVudDsKK05PVElDRTogIGNvbHVt biBlbmNyeXB0aW9uIGtleSAibm9uZXhpc3RlbnQiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxYTsKK0RST1AgQ09MVU1OIE1BU1RFUiBL RVkgZmFpbDsKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgImZhaWwiIGRvZXMgbm90IGV4 aXN0CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIElGIEVYSVNUUyBub25leGlzdGVudDsKK05P VElDRTogIGNvbHVtbiBtYXN0ZXIga2V5ICJub25leGlzdGVudCIgZG9lcyBub3QgZXhpc3Qs IHNraXBwaW5nCitEUk9QIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0CmluZGV4IDI1YzE3NGYyNzUu LmZlMDQ1ZGZmNGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2Jq ZWN0X2FkZHJlc3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0 X2FkZHJlc3Mub3V0CkBAIC0zOCw2ICszOCw4IEBAIENSRUFURSBTRVJWRVIgImludGVnZXIi IEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3OwogQ1JFQVRFIFVTRVIgTUFQUElORyBG T1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJpbnRlZ2VyIjsKIEFMVEVSIERFRkFVTFQg UFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBJTiBTQ0hFTUEgcHVibGlj IEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVzc19hZGRyX3VzZXI7CiBBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgUkVWT0tFIERFTEVU RSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJfdXNlcjsKK0NSRUFURSBDT0xVTU4gTUFT VEVSIEtFWSBhZGRyX2NtazsKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9j ZWsgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gYWRkcl9jbWssIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5jcnlwdGVkX3ZhbHVlID0gJycpOwogLS0gdGhp cyB0cmFuc2Zvcm0gd291bGQgYmUgcXVpdGUgdW5zYWZlIHRvIGxlYXZlIGx5aW5nIGFyb3Vu ZCwKIC0tIGV4Y2VwdCB0aGF0IHRoZSBTUUwgbGFuZ3VhZ2UgcGF5cyBubyBhdHRlbnRpb24g dG8gdHJhbnNmb3JtczoKIENSRUFURSBUUkFOU0ZPUk0gRk9SIGludCBMQU5HVUFHRSBTUUwg KApAQCAtMTA3LDcgKzEwOSw4IEBAIEJFR0lOCiAgICAgICAgICgndGV4dCBzZWFyY2ggdGVt cGxhdGUnKSwgKCd0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uJyksCiAgICAgICAgICgncG9s aWN5JyksICgndXNlciBtYXBwaW5nJyksICgnZGVmYXVsdCBhY2wnKSwgKCd0cmFuc2Zvcm0n KSwKICAgICAgICAgKCdvcGVyYXRvciBvZiBhY2Nlc3MgbWV0aG9kJyksICgnZnVuY3Rpb24g b2YgYWNjZXNzIG1ldGhvZCcpLAotICAgICAgICAoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScp LCAoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJykKKyAgICAgICAgKCdwdWJsaWNhdGlvbiBuYW1l c3BhY2UnKSwgKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpLAorICAgICAgICAoJ2NvbHVtbiBl bmNyeXB0aW9uIGtleScpLCAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhJyksICgnY29s dW1uIG1hc3RlciBrZXknKQogICAgIExPT1AKICAgICAgICAgRk9SIG5hbWVzIElOIFZBTFVF UyAoJ3tlaW5zfScpLCAoJ3thZGRyX25zcCwgendlaX0nKSwgKCd7ZWlucywgendlaSwgZHJl aX0nKQogICAgICAgICBMT09QCkBAIC0zMjcsNiArMzMwLDI0IEBAIFdBUk5JTkc6ICBlcnJv ciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2FkZHJfbnNwLHp3ZWl9LHt9OiBhcmd1bWVu dCBsaXN0IGxlbmd0CiBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9u LHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25zcC56d2VpIiBk b2VzIG5vdCBleGlzdAogV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxhdGlv bix7ZWlucyx6d2VpLGRyZWl9LHt9OiBhcmd1bWVudCBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4 YWN0bHkgMQogV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxhdGlvbix7ZWlu cyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUg bm90IGltcGxlbWVudGVkOiAiZWlucy56d2VpLmRyZWkiCitXQVJOSU5HOiAgZXJyb3IgZm9y IGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWluc30se306IGNvbHVtbiBlbmNyeXB0aW9uIGtl eSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5LHtlaW5zfSx7aW50ZWdlcn06IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAi ZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5 cHRpb24ga2V5LHthZGRyX25zcCx6d2VpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJl IGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXks e2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4 YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2Vp bnMsendlaSxkcmVpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQor V0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2VpbnMsendlaSxk cmVpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dB Uk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnN9LHt9 OiBhcmd1bWVudCBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVy cm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWluc30se2ludGVnZXJ9OiBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAg ZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHthZGRyX25zcCx6d2VpfSx7 fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9y IGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7YWRkcl9uc3AsendlaX0se2ludGVn ZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJy b3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zLHp3ZWksZHJlaX0se306 IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBm b3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnMsendlaSxkcmVpfSx7aW50ZWdl cn06IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJv ciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2VpbnN9LHt9OiBjb2x1bW4gbWFzdGVyIGtleSAi ZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIG1hc3Rl ciBrZXkse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG1hc3RlciBrZXkgImVpbnMiIGRvZXMg bm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHthZGRy X25zcCx6d2VpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FS TklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRkcl9uc3AsendlaX0se2lu dGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAg ZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zLHp3ZWksZHJlaX0se306IG5hbWUg bGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIG1hc3RlciBrZXkse2VpbnMsendlaSxkcmVpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBs ZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKIC0tIHRoZXNlIG9iamVjdCB0eXBlcyBjYW5ub3Qg YmUgcXVhbGlmaWVkIG5hbWVzCiBTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdsYW5n dWFnZScsICd7b25lfScsICd7fScpOwogRVJST1I6ICBsYW5ndWFnZSAib25lIiBkb2VzIG5v dCBleGlzdApAQCAtMzgyLDYgKzQwMywxNCBAQCBTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRy ZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZX0nLCAne30nKTsKIEVSUk9SOiAgc3Vic2NyaXB0 aW9uICJvbmUiIGRvZXMgbm90IGV4aXN0CiBTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNz KCdzdWJzY3JpcHRpb24nLCAne29uZSx0d299JywgJ3t9Jyk7CiBFUlJPUjogIG5hbWUgbGlz dCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJl c3MoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7b25lfScsICd7fScpOworRVJST1I6ICBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgIm9uZSIgZG9lcyBub3QgZXhpc3QKK1NFTEVDVCBwZ19n ZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7b25lLHR3b30n LCAne30nKTsKK0VSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQor U0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnY29sdW1uIG1hc3RlciBrZXknLCAne29u ZX0nLCAne30nKTsKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgIm9uZSIgZG9lcyBub3Qg ZXhpc3QKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5 JywgJ3tvbmUsdHdvfScsICd7fScpOworRVJST1I6ICBuYW1lIGxpc3QgbGVuZ3RoIG11c3Qg YmUgZXhhY3RseSAxCiAtLSBNYWtlIHN1cmUgdGhhdCBOVUxMIGhhbmRsaW5nIGlzIGNvcnJl Y3QuCiBccHNldCBudWxsICdOVUxMJwogLS0gVGVtcG9yYXJpbHkgZGlzYWJsZSBmYW5jeSBv dXRwdXQsIHNvIGFzIGZ1dHVyZSBhZGRpdGlvbnMgbmV2ZXIgY3JlYXRlCkBAIC00MDksNiAr NDM4LDkgQEAgV0lUSCBvYmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAg ICAgKCd0eXBlJywgJ3thZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogICAgICgnY2FzdCcs ICd7aW50OH0nLCAne2ludDR9JyksCiAgICAgKCdjb2xsYXRpb24nLCAne2RlZmF1bHR9Jywg J3t9JyksCisgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJfY2VrfScsICd7 fScpLAorICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2FkZHJfY2VrfScs ICd7YWRkcl9jbWt9JyksCisgICAgKCdjb2x1bW4gbWFzdGVyIGtleScsICd7YWRkcl9jbWt9 JywgJ3t9JyksCiAgICAgKCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25zcCwgZ2VudGFi bGUsIGFfY2hrfScsICd7fScpLAogICAgICgnZG9tYWluIGNvbnN0cmFpbnQnLCAne2FkZHJf bnNwLmdlbmRvbWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKICAgICAoJ2NvbnZlcnNpb24nLCAn e3BnX2NhdGFsb2csIGtvaThfcl90b19taWN9JywgJ3t9JyksCkBAIC01MDUsNiArNTM3LDkg QEAgc3Vic2NyaXB0aW9ufE5VTEx8cmVncmVzc19hZGRyX3N1YnxyZWdyZXNzX2FkZHJfc3Vi fHQKIHB1YmxpY2F0aW9ufE5VTEx8YWRkcl9wdWJ8YWRkcl9wdWJ8dAogcHVibGljYXRpb24g cmVsYXRpb258TlVMTHxOVUxMfGFkZHJfbnNwLmdlbnRhYmxlIGluIHB1YmxpY2F0aW9uIGFk ZHJfcHVifHQKIHB1YmxpY2F0aW9uIG5hbWVzcGFjZXxOVUxMfE5VTEx8YWRkcl9uc3AgaW4g cHVibGljYXRpb24gYWRkcl9wdWJfc2NoZW1hfHQKK2NvbHVtbiBtYXN0ZXIga2V5fE5VTEx8 YWRkcl9jbWt8YWRkcl9jbWt8dAorY29sdW1uIGVuY3J5cHRpb24ga2V5fE5VTEx8YWRkcl9j ZWt8YWRkcl9jZWt8dAorY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGF8TlVMTHxOVUxMfG9m IGFkZHJfY2VrIGZvciBhZGRyX2Nta3x0CiAtLS0KIC0tLSBDbGVhbnVwIHJlc291cmNlcwog LS0tCkBAIC01MTcsNiArNTUyLDggQEAgZHJvcCBjYXNjYWRlcyB0byB1c2VyIG1hcHBpbmcg Zm9yIHJlZ3Jlc3NfYWRkcl91c2VyIG9uIHNlcnZlciBpbnRlZ2VyCiBEUk9QIFBVQkxJQ0FU SU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hlbWE7CiBEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOworRFJPUCBDT0xVTU4gRU5DUllQVElP TiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOwogRFJP UCBTQ0hFTUEgYWRkcl9uc3AgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g MTQgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJj aCBkaWN0aW9uYXJ5IGFkZHJfdHNfZGljdApAQCAtNTQ3LDYgKzU4NCw5IEBAIFdJVEggb2Jq ZWN0cyAoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBBUyAoVkFMVUVTCiAgICAgKCdwZ190 eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVn Y2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdwZ19jb2xsYXRpb24nOjpyZWdjbGFz cywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgncGdfY29sZW5ja2V5Jzo6cmVnY2xh c3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAoJ3BnX2NvbGVu Y2tleWRhdGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhCisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNvbHVtbiBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MsIDAs IDApLCAtLSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19jb252ZXJzaW9uJzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdwZ19hdHRyZGVmJzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpAQCAtNjM0LDUgKzY3NCw4IEBAIE9S REVSIEJZIG9iamVjdHMuY2xhc3NpZCwgb2JqZWN0cy5vYmppZCwgb2JqZWN0cy5vYmpzdWJp ZDsKICgiKCIicHVibGljYXRpb24gcmVsYXRpb24iIiwsLCkiKXwoIigiInB1YmxpY2F0aW9u IHJlbGF0aW9uIiIsLCkiKXxOVUxMCiAoIigiInB1YmxpY2F0aW9uIG5hbWVzcGFjZSIiLCws KSIpfCgiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIsLCkiKXxOVUxMCiAoIigiInBhcmFt ZXRlciBBQ0wiIiwsLCkiKXwoIigiInBhcmFtZXRlciBBQ0wiIiwsKSIpfE5VTEwKKygiKCIi Y29sdW1uIG1hc3RlciBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBtYXN0ZXIga2V5IiIsLCki KXxOVUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSIiLCwsKSIpfCgiKCIiY29sdW1u IGVuY3J5cHRpb24ga2V5IiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhIiIsLCwpIil8KCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIiLCwpIil8 TlVMTAogLS0gcmVzdG9yZSBub3JtYWwgb3V0cHV0IG1vZGUKIFxhXHQKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZS4uMmFhMGUxNjMy MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTczLDYg KzczLDggQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfdHlwZSB7dHlwYmFzZXR5cGV9ID0+IHBn X3R5cGUge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGNvbGxhdGlvbn0g PT4gcGdfY29sbGF0aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUg e2F0dHJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0 cmlidXRlIHthdHR0eXBpZH0gPT4gcGdfdHlwZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcg cGdfYXR0cmlidXRlIHthdHRjZWt9ID0+IHBnX2NvbGVuY2tleSB7b2lkfQorTk9USUNFOiAg Y2hlY2tpbmcgcGdfYXR0cmlidXRlIHthdHRyZWFsdHlwaWR9ID0+IHBnX3R5cGUge29pZH0K IE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0Y29sbGF0aW9ufSA9PiBwZ19j b2xsYXRpb24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2NsYXNzIHtyZWxuYW1lc3Bh Y2V9ID0+IHBnX25hbWVzcGFjZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfY2xhc3Mg e3JlbHR5cGV9ID0+IHBnX3R5cGUge29pZH0KQEAgLTI2NiwzICsyNjgsNyBAQCBOT1RJQ0U6 ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtv aWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBw Z19hdXRoaWQge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwg e3Nyc3ViaWR9ID0+IHBnX3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElD RTogIGNoZWNraW5nIHBnX2NvbG1hc3RlcmtleSB7Y21rb3duZXJ9ID0+IHBnX2F1dGhpZCB7 b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5IHtjZWtvd25lcn0gPT4gcGdf YXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xlbmNrZXlkYXRhIHtja2Rj ZWtpZH0gPT4gcGdfY29sZW5ja2V5IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xl bmNrZXlkYXRhIHtja2RjbWtpZH0gPT4gcGdfY29sbWFzdGVya2V5IHtvaWR9CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRleCAwMmY1MzQ4YWIxLi5k NDkzYWM1ZjdjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9z YW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5v dXQKQEAgLTE1OSw3ICsxNTksOCBAQCBPUkRFUiBCWSAxLCAyOwogIHRleHQgICAgICAgICAg ICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nCiAgdGltZXN0YW1wIHdpdGhvdXQg dGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lCiAgdHhpZF9zbmFwc2hvdCAg ICAgICAgICAgICAgIHwgcGdfc25hcHNob3QKLSg0IHJvd3MpCisgcGdfZW5jcnlwdGVkX2Rl dCAgICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX3JuZAorKDUgcm93cykKIAogU0VMRUNUIERJ U1RJTkNUIHAxLnByb2FyZ3R5cGVzWzBdOjpyZWd0eXBlLCBwMi5wcm9hcmd0eXBlc1swXTo6 cmVndHlwZQogRlJPTSBwZ19wcm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBAIC0xNzUsMTMg KzE3NiwxNSBAQCBXSEVSRSBwMS5vaWQgIT0gcDIub2lkIEFORAogT1JERVIgQlkgMSwgMjsK ICAgICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAgfCAgICAgICBwcm9hcmd0eXBlcyAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGJ5dGVhICAgICAgICAgICAgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9k ZXQKICBiaWdpbnQgICAgICAgICAgICAgICAgICAgICAgfCB4aWQ4CiAgdGV4dCAgICAgICAg ICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyCiAgdGV4dCAgICAgICAgICAgICAgICAgICAg ICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcKICB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUKICBiaXQgICAgICAgICAgICAgICAgICAgICAg ICAgfCBiaXQgdmFyeWluZwogIHR4aWRfc25hcHNob3QgICAgICAgICAgICAgICB8IHBnX3Nu YXBzaG90Ci0oNiByb3dzKQorIHBnX2VuY3J5cHRlZF9kZXQgICAgICAgICAgICB8IHBnX2Vu Y3J5cHRlZF9ybmQKKyg4IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0eXBl c1sxXTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMV06OnJlZ3R5cGUKIEZST00gcGdfcHJv YyBBUyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtMTk3LDEyICsyMDAsMTMgQEAgV0hFUkUgcDEu b2lkICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBl cyAgICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAg ICAgICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgaW50ZWdlciAgICAgICAg ICAgICAgICAgICAgIHwgeGlkCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGlt ZXN0YW1wIHdpdGggdGltZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwg Yml0IHZhcnlpbmcKICB0eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hv dAogIGFueXJhbmdlICAgICAgICAgICAgICAgICAgICB8IGFueW11bHRpcmFuZ2UKLSg1IHJv d3MpCisoNiByb3dzKQogCiBTRUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMl06OnJl Z3R5cGUsIHAyLnByb2FyZ3R5cGVzWzJdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEs IHBnX3Byb2MgQVMgcDIKQEAgLTg3Miw2ICs4NzYsOCBAQCB4aWQ4Z2UoeGlkOCx4aWQ4KQog eGlkOGVxKHhpZDgseGlkOCkKIHhpZDhuZSh4aWQ4LHhpZDgpCiB4aWQ4Y21wKHhpZDgseGlk OCkKK3BnX2VuY3J5cHRlZF9kZXRfZXEocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRf ZGV0KQorcGdfZW5jcnlwdGVkX2RldF9uZShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRl ZF9kZXQpCiAtLSByZXN0b3JlIG5vcm1hbCBvdXRwdXQgbW9kZQogXGFcdAogLS0gTGlzdCBv ZiBmdW5jdGlvbnMgdXNlZCBieSBsaWJwcSdzIGZlLWxvYmouYwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dAppbmRleCBhNjQwY2ZjNDc2Li43NDIyNzIy MjVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dApA QCAtNzUsNyArNzUsOSBAQCBPUkRFUiBCWSB0MS5vaWQ7CiAgNDYwMCB8IHBnX2JyaW5fYmxv b21fc3VtbWFyeQogIDQ2MDEgfCBwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5CiAgNTAx NyB8IHBnX21jdl9saXN0Ci0oNiByb3dzKQorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0Cisg ODI0NCB8IHBnX2VuY3J5cHRlZF9ybmQKKyg4IHJvd3MpCiAKIC0tIE1ha2Ugc3VyZSB0eXBh cnJheSBwb2ludHMgdG8gYSAidHJ1ZSIgYXJyYXkgdHlwZSBvZiBvdXIgb3duIGJhc2UKIFNF TEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUgYXMgYmFzZXR5cGUsIHQyLnR5cG5hbWUgYXMgYXJy YXl0eXBlLApAQCAtNzE2LDYgKzcxOCw4IEBAIFNFTEVDVCBvaWQsIHR5cG5hbWUsIHR5cHR5 cGUsIHR5cGVsZW0sIHR5cGFycmF5CiAgIFdIRVJFIG9pZCA8IDE2Mzg0IEFORAogICAgIC0t IEV4Y2x1ZGUgcHNldWRvdHlwZXMgYW5kIGNvbXBvc2l0ZSB0eXBlcy4KICAgICB0eXB0eXBl IE5PVCBJTiAoJ3AnLCAnYycpIEFORAorICAgIC0tIEV4Y2x1ZGUgZW5jcnlwdGlvbiBpbnRl cm5hbCB0eXBlcy4KKyAgICBvaWQgIT0gQUxMKEFSUkFZWydwZ19lbmNyeXB0ZWRfZGV0Jywg J3BnX2VuY3J5cHRlZF9ybmQnXTo6cmVndHlwZVtdKSBBTkQKICAgICAtLSBUaGVzZSByZWcq IHR5cGVzIGNhbm5vdCBiZSBwZ191cGdyYWRlZCwgc28gZGlzY2FyZCB0aGVtLgogICAgIG9p ZCAhPSBBTEwoQVJSQVlbJ3JlZ3Byb2MnLCAncmVncHJvY2VkdXJlJywgJ3JlZ29wZXInLAog ICAgICAgICAgICAgICAgICAgICAgJ3JlZ29wZXJhdG9yJywgJ3JlZ2NvbmZpZycsICdyZWdk aWN0aW9uYXJ5JywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDlhMTM5 ZjFlMjQuLjA4YTAwZTFkZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpA QCAtMTA2LDcgKzEwNiw3IEBAIHRlc3Q6IHB1YmxpY2F0aW9uIHN1YnNjcmlwdGlvbgogIyBB bm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCiAjIHNlbGVjdF92aWV3cyBkZXBlbmRz IG9uIGNyZWF0ZV92aWV3CiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHNlbGVjdF92aWV3cyBwb3J0 YWxzX3AyIGZvcmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBndWMgYml0bWFwb3BzIGNv bWJvY2lkIHRzZWFyY2ggdHNkaWN0cyBmb3JlaWduX2RhdGEgd2luZG93IHhtbG1hcCBmdW5j dGlvbmFsX2RlcHMgYWR2aXNvcnlfbG9jayBpbmRpcmVjdF90b2FzdCBlcXVpdmNsYXNzCit0 ZXN0OiBzZWxlY3Rfdmlld3MgcG9ydGFsc19wMiBmb3JlaWduX2tleSBjbHVzdGVyIGRlcGVu ZGVuY3kgZ3VjIGJpdG1hcG9wcyBjb21ib2NpZCB0c2VhcmNoIHRzZGljdHMgZm9yZWlnbl9k YXRhIHdpbmRvdyB4bWxtYXAgZnVuY3Rpb25hbF9kZXBzIGFkdmlzb3J5X2xvY2sgaW5kaXJl Y3RfdG9hc3QgZXF1aXZjbGFzcyBjb2x1bW5fZW5jcnlwdGlvbgogCiAjIC0tLS0tLS0tLS0K ICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cyAoSlNPTiByZWxhdGVkKQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKaW5kZXggYTRiMzU0YzllNi4uOGFkMWY0NThk NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYworKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCkBAIC04Miw3ICs4Miw3IEBA IHBzcWxfc3RhcnRfdGVzdChjb25zdCBjaGFyICp0ZXN0bmFtZSwKIAkJCQkJICAgYmluZGly ID8gYmluZGlyIDogIiIsCiAJCQkJCSAgIGJpbmRpciA/ICIvIiA6ICIiLAogCQkJCQkgICBk Ymxpc3QtPnN0ciwKLQkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1vbiAtdiBISURFX1RPQVNU X0NPTVBSRVNTSU9OPW9uIiwKKwkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1vbiAtdiBISURF X1RPQVNUX0NPTVBSRVNTSU9OPW9uIC12IEhJREVfQ09MVU1OX0VOQ1JZUFRJT049b24iLAog CQkJCQkgICBpbmZpbGUsCiAJCQkJCSAgIG91dGZpbGUpOwogCWlmIChvZmZzZXQgPj0gc2l6 ZW9mKHBzcWxfY21kKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVt bl9lbmNyeXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0 aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41MDkwY2Rh ZWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2Vu Y3J5cHRpb24uc3FsCkBAIC0wLDAgKzEsMTcxIEBACitcc2V0IEhJREVfQ09MVU1OX0VOQ1JZ UFRJT04gZmFsc2UKKworQ1JFQVRFIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CisKK0NSRUFU RSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCisp OworCitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgSVMgJ2NvbHVtbiBtYXN0 ZXIga2V5JzsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazFhIFdJVEggKAorICAg IHJlYWxtID0gJ3Rlc3QnCispOworCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMjsK KworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIFdJVEggKAorICAgIHJlYWxtID0g J3Rlc3R4JworKTsKKworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMmEgKHJlYWxtID0g J3Rlc3QyJyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbCBXSVRIIFZB TFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9 ICdmb28nLCAgLS0gaW52YWxpZAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVG JworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVT ICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JT QUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJwor KTsKKworQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1u IGVuY3J5cHRpb24ga2V5JzsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg QUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29y aXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhE RUFEQkVFRicKKyk7CisKKy0tIGR1cGxpY2F0ZQorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAor ICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFs dWUgPSAnXHhERUFEQkVFRicKKyk7CisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBm YWlsIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBh bGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0g J1x4REVBREJFRUYnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIg V0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdv cml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4 REVBREJFRUYnCispLAorKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAg YWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9 ICdceERFQURCRUVGJworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0 IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxn b3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdc eERFQURCRUVGJworKTsKKworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwK KyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlw dGlvbl9rZXkgPSBub3RleGlzdCkKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisg ICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29s dW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgYWxnb3JpdGhtID0gJ2ZvbycpCispOworCitD UkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBj IHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIGVu Y3J5cHRpb25fdHlwZSA9IHdyb25nKQorKTsKKworQ1JFQVRFIFRBQkxFIHRibF8yOWYzICgK KyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChj b2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworXGQgdGJsXzI5ZjMKK1xkKyB0 YmxfMjlmMworCitDUkVBVEUgVEFCTEUgdGJsXzQ0N2YgKAorICAgIGEgaW50LAorICAgIGIg dGV4dAorKTsKKworQUxURVIgVEFCTEUgdGJsXzQ0N2YgQUREIENPTFVNTiBjIHRleHQgRU5D UllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpOworCitcZCB0Ymxf NDQ3ZgorXGQrIHRibF80NDdmCisKK0NSRUFURSBUQUJMRSB0YmxfNDg5NyAoTElLRSB0Ymxf NDQ3Zik7CitDUkVBVEUgVEFCTEUgdGJsXzY5NzggKExJS0UgdGJsXzQ0N2YgSU5DTFVESU5H IEVOQ1JZUFRFRCk7CisKK1xkKyB0YmxfNDg5NworXGQrIHRibF82OTc4CisKK0NSRUFURSBW SUVXIHZpZXdfM2JjOSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzOworCitcZCsgdmlld18z YmM5CisKK0NSRUFURSBUQUJMRSB0YmxfMjM4NiBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYz IFdJVEggTk8gREFUQTsKKworXGQrIHRibF8yMzg2CisKK0NSRUFURSBUQUJMRSB0YmxfMjk0 MSBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzIFdJVEggREFUQTsKKworXGQrIHRibF8yOTQx CisKK0NSRUFURSBUQUJMRSB0YmxfMTNmYSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKSBQQVJUSVRJ T04gQlkgUkFOR0UgKGEpOworQ1JFQVRFIFRBQkxFIHRibF8xM2ZhXzEgUEFSVElUSU9OIE9G IHRibF8xM2ZhIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwMCk7CisKK1xkKyB0YmxfMTNm YQorXGQrIHRibF8xM2ZhXzEKKworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RS SUNUOyAgLS0gZmFpbAorCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyIFJFTkFNRSBU TyBjbWszOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMzsg IC0tIGZhaWwKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7 ICAtLSBmYWlsCisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFNRSBU TyBjZWszOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNl azM7ICAtLSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUg VE8gY2VreTsgIC0tIGZhaWwKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVz c19lbmNfdXNlcjEnOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZh aWwKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIGZhaWwKK1JFU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIg VE8gcmVncmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MyBPV05FUiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azM7ICAtLSBvayBub3cKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIG9rIG5v dworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworCitBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsK K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9t YXN0ZXJfa2V5ID0gY21rMWEpOyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZh aWwKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZhaWwKKwor RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGZhaWw7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBJRiBFWElTVFMgbm9u ZXhpc3RlbnQ7CisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVN TiBNQVNURVIgS0VZIGZhaWw7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIElGIEVYSVNUUyBu b25leGlzdGVudDsKKworRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCmluZGV4IDFhNmM2MWY0OWQuLjI1YTdm MmFlOTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNz LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKQEAg LTQxLDYgKzQxLDggQEAgQ1JFQVRFIFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdS QVBQRVIgYWRkcl9mZHc7CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJf dXNlciBTRVJWRVIgImludGVnZXIiOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBS T0xFIHJlZ3Jlc3NfYWRkcl91c2VyIElOIFNDSEVNQSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRB QkxFUyBUTyByZWdyZXNzX2FkZHJfdXNlcjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBG T1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBSRVZPS0UgREVMRVRFIE9OIFRBQkxFUyBGUk9N IHJlZ3Jlc3NfYWRkcl91c2VyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21r OworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlayBXSVRIIFZBTFVFUyAo Y29sdW1uX21hc3Rlcl9rZXkgPSBhZGRyX2NtaywgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBf U0hBXzEnLCBlbmNyeXB0ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5zZm9ybSB3b3Vs ZCBiZSBxdWl0ZSB1bnNhZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0gZXhjZXB0IHRo YXQgdGhlIFNRTCBsYW5ndWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFuc2Zvcm1zOgog Q1JFQVRFIFRSQU5TRk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC05OSw3ICsxMDEs OCBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIg RlJPTSBhZGRyX25zcC5nZW50YWJsZTsKICAgICAgICAgKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0 ZScpLCAoJ3RleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24nKSwKICAgICAgICAgKCdwb2xpY3kn KSwgKCd1c2VyIG1hcHBpbmcnKSwgKCdkZWZhdWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAog ICAgICAgICAoJ29wZXJhdG9yIG9mIGFjY2VzcyBtZXRob2QnKSwgKCdmdW5jdGlvbiBvZiBh Y2Nlc3MgbWV0aG9kJyksCi0gICAgICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyksICgn cHVibGljYXRpb24gcmVsYXRpb24nKQorICAgICAgICAoJ3B1YmxpY2F0aW9uIG5hbWVzcGFj ZScpLCAoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJyksCisgICAgICAgICgnY29sdW1uIGVuY3J5 cHRpb24ga2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnKSwgKCdjb2x1bW4g bWFzdGVyIGtleScpCiAgICAgTE9PUAogICAgICAgICBGT1IgbmFtZXMgSU4gVkFMVUVTICgn e2VpbnN9JyksICgne2FkZHJfbnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBkcmVpfScp CiAgICAgICAgIExPT1AKQEAgLTE0NCw2ICsxNDcsMTAgQEAgQ1JFQVRFIFNUQVRJU1RJQ1Mg YWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7 CiBTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdwdWJsaWNhdGlvbicsICd7b25lLHR3 b30nLCAne30nKTsKIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3N1YnNjcmlwdGlv bicsICd7b25lfScsICd7fScpOwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vi c2NyaXB0aW9uJywgJ3tvbmUsdHdvfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3Rf YWRkcmVzcygnY29sdW1uIGVuY3J5cHRpb24ga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitTRUxF Q1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29u ZSx0d299JywgJ3t9Jyk7CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4g bWFzdGVyIGtleScsICd7b25lfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3RfYWRk cmVzcygnY29sdW1uIG1hc3RlciBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7CiAKIC0tIE1h a2Ugc3VyZSB0aGF0IE5VTEwgaGFuZGxpbmcgaXMgY29ycmVjdC4KIFxwc2V0IG51bGwgJ05V TEwnCkBAIC0xNzQsNiArMTgxLDkgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2Vu dGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiAgICAgKCd0eXBl JywgJ3thZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogICAgICgnY2FzdCcsICd7aW50OH0n LCAne2ludDR9JyksCiAgICAgKCdjb2xsYXRpb24nLCAne2RlZmF1bHR9JywgJ3t9JyksCisg ICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJfY2VrfScsICd7fScpLAorICAg ICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2FkZHJfY2VrfScsICd7YWRkcl9j bWt9JyksCisgICAgKCdjb2x1bW4gbWFzdGVyIGtleScsICd7YWRkcl9jbWt9JywgJ3t9Jyks CiAgICAgKCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGFfY2hr fScsICd7fScpLAogICAgICgnZG9tYWluIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLmdlbmRv bWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKICAgICAoJ2NvbnZlcnNpb24nLCAne3BnX2NhdGFs b2csIGtvaThfcl90b19taWN9JywgJ3t9JyksCkBAIC0yMjgsNiArMjM4LDggQEAgQ1JFQVRF IFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9u c3AuZ2VudGFibGU7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNB VElPTiBhZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJf c3ViOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVN TiBNQVNURVIgS0VZIGFkZHJfY21rOwogCiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVNDQURF OwogCkBAIC0yNDcsNiArMjU5LDkgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2Vu dGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiAgICAgKCdwZ190 eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVn Y2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdwZ19jb2xsYXRpb24nOjpyZWdjbGFz cywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgncGdfY29sZW5ja2V5Jzo6cmVnY2xh c3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAoJ3BnX2NvbGVu Y2tleWRhdGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhCisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNvbHVtbiBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MsIDAs IDApLCAtLSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19jb252ZXJzaW9uJzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdwZ19hdHRyZGVmJzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlw ZV9zYW5pdHkuc3FsCmluZGV4IDc5ZWM0MTBhNmMuLjJiYTRjOWE1NDUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwKQEAgLTU0NCw2ICs1NDQsOCBAQCBDUkVBVEUg VEFCTEUgdGFiX2NvcmVfdHlwZXMgQVMgU0VMRUNUCiAgIFdIRVJFIG9pZCA8IDE2Mzg0IEFO RAogICAgIC0tIEV4Y2x1ZGUgcHNldWRvdHlwZXMgYW5kIGNvbXBvc2l0ZSB0eXBlcy4KICAg ICB0eXB0eXBlIE5PVCBJTiAoJ3AnLCAnYycpIEFORAorICAgIC0tIEV4Y2x1ZGUgZW5jcnlw dGlvbiBpbnRlcm5hbCB0eXBlcy4KKyAgICBvaWQgIT0gQUxMKEFSUkFZWydwZ19lbmNyeXB0 ZWRfZGV0JywgJ3BnX2VuY3J5cHRlZF9ybmQnXTo6cmVndHlwZVtdKSBBTkQKICAgICAtLSBU aGVzZSByZWcqIHR5cGVzIGNhbm5vdCBiZSBwZ191cGdyYWRlZCwgc28gZGlzY2FyZCB0aGVt LgogICAgIG9pZCAhPSBBTEwoQVJSQVlbJ3JlZ3Byb2MnLCAncmVncHJvY2VkdXJlJywgJ3Jl Z29wZXInLAogICAgICAgICAgICAgICAgICAgICAgJ3JlZ29wZXJhdG9yJywgJ3JlZ2NvbmZp ZycsICdyZWdkaWN0aW9uYXJ5JywKCmJhc2UtY29tbWl0OiA4YWQ1MWI1ZjQ0NmI1YzE5YmEy YzAwMzNhMGY3YjMxODBiM2I2ZDk1Ci0tIAoyLjM5LjAKCg== --------------zB7MHliRHOtldxpGOgi7MEqD--