Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t5hFV-007m3O-Jk for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Oct 2024 08:06:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t5hFT-00Dp7J-Mn for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Oct 2024 08:06:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t5hFS-00Dp5G-7i for pgsql-hackers@lists.postgresql.org; Tue, 29 Oct 2024 08:06:43 +0000 Received: from fhigh-a2-smtp.messagingengine.com ([103.168.172.153]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t5hFN-003Yes-P2 for pgsql-hackers@postgresql.org; Tue, 29 Oct 2024 08:06:41 +0000 Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfhigh.phl.internal (Postfix) with ESMTP id 1A5081140175 for ; Tue, 29 Oct 2024 04:06:35 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-12.internal (MEProxy); Tue, 29 Oct 2024 04:06:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm2; t=1730189195; x=1730275595; bh=FE1aSb12ZX2Wq0iR+KFYmrTI4r9XkZoj N1Q1hMSTu3s=; b=K1fBfqtcAVhLzsdIYIVhaHbt1IUBNs/NuFAAoNoJeOA+fot2 DrC/WJMZjWnbWY8dOXov2JLKnOXmf5goVyQqjiMV3ZNXZyVD/boCxV/JRwYIBh5R rxOSM9mFbyxX4B+h3A1Sd3q/8pTew9Ae7ebjqN78D0T3j99PhNLzHmEg7BLSj/DN P6JrB0XTyM8bbfMND6ITi9dAMgs/Paars7qWnoblS94nfQJMbHroyfCY36/gl+2B AWwyWVELseBd1+KsdfIVLmvVpI5dCMnXFpSRD4zeXnf4ZH8IGOExc0y7LPF6400Y deNq5jbiIOs5Q3aQgP/7jYY+zb+MaRArKUz1PA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1730189195; x= 1730275595; bh=FE1aSb12ZX2Wq0iR+KFYmrTI4r9XkZojN1Q1hMSTu3s=; b=N F1mFge9YbFMXEwhY6xgXyJqlb80wmadOFFLlygkpf06Fn3nEJI8YjC4ieTzVGg7Z Gjq9zKyk+9z4fEhWcCzjHpFdp34jR4RJARhTFjARajM7+G/Sn18p6qyaCoy7VZXf x+oMhklu5Q6F26F7stNHXrW7Rsq6GNk0oLEJw+c+rGx02cWVhfC16fAnvjkxynR/ 1xBPc044XUl7SvH5L5ALV63GrmE03NJzY58osIzmewqvfaEDtRWu/NgjtrHOc1mc Mjd6fqponX/fT2jojeIibvtz9iSplPdi04kCFm2ll3rim6Gnpk3UgVDNYPyntgn1 NcGlllIy2xiE3d29I9Zow== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdektddgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurheptgfkff ggfgfhuffvsehmtderredtvdejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghu thcuoehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgheqnecuggftrfgrthhtvghrnh epheetkedugedtheettdethfdukeejgfduieehieetffeutdetffekkefgledvffelnecu vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrh esvghishgvnhhtrhgruhhtrdhorhhgpdhnsggprhgtphhtthhopedupdhmohguvgepshhm thhpohhuthdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvsh hqlhdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 29 Oct 2024 04:06:33 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------TvOaHqIqEspDcL9Ce0p9WT2z" Message-ID: <461ea37c-8b58-43b4-9736-52884e862820@eisentraut.org> Date: Tue, 29 Oct 2024 09:06:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Peter Eisentraut Subject: Remove useless casts to (void *) To: pgsql-hackers 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. --------------TvOaHqIqEspDcL9Ce0p9WT2z Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit There are a bunch of (void *) casts in the code that don't make sense to me. I think some of these were once necessary because char * was used in place of void * for some function arguments. And some of these were probably just copied around without further thought. I went through and cleaned up most of these. I didn't find any redeeming value in these. They are just liable to hide actual problems such as incompatible types. But maybe there are other opinions. --------------TvOaHqIqEspDcL9Ce0p9WT2z Content-Type: text/plain; charset=UTF-8; name="0001-Remove-useless-casts-to-void.patch" Content-Disposition: attachment; filename="0001-Remove-useless-casts-to-void.patch" Content-Transfer-Encoding: base64 RnJvbSBkYjRkMTc4MWZlZmI4YTZlYTlmZGZhOTg1YWY2MzFkMzYxNTUwODg3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyOSBPY3QgMjAyNCAwODowMjo1NyArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIFJlbW92ZSB1c2VsZXNzIGNhc3RzIHRvICh2b2lkICopCgpTb21lIG9mIHRo ZXNlIGFyZSBiZWNhdXNlIHRoZSBjb2RlIHByZXZpb3VzbHkgdXNlZCBkaWZmZXJlbnQgdHlw ZXMuCk1hbnkgb2YgdGhlbSBqdXN0IHNlZW0gdG8gaGF2ZSBiZWVuIGNvcGllZCBhcm91bmQg Zm9yIG5vIHJlYWwgcmVhc29uLgotLS0KIGNvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVl LmMgICAgICAgICAgICAgfCAgMiArLQogY29udHJpYi9ibG9vbS9ibGluc2VydC5jICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBjb250cmliL2Jsb29tL2JsdXRpbHMuYyAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9iaXQuYyAg ICAgICAgICAgICAgfCAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Jvb2wuYyAg ICAgICAgICAgICB8ICA0ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYnl0ZWEuYyAg ICAgICAgICAgIHwgIDIgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9jYXNoLmMgICAg ICAgICAgICAgfCAgNiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2RhdGUuYyAgICAg ICAgICAgICB8ICA2ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZW51bS5jICAgICAg ICAgICAgIHwgIDQgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyAgICAg ICAgICAgfCAgNiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jICAgICAg ICAgICB8ICA2ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW5ldC5jICAgICAgICAg ICAgIHwgIDQgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQyLmMgICAgICAgICAg ICAgfCAgNiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludDQuYyAgICAgICAgICAg ICB8ICA2ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5jICAgICAgICAgICAg IHwgIDYgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnRlcnZhbC5jICAgICAgICAg fCAgNiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX21hY2FkZHIuYyAgICAgICAgICB8 ICA0ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfbWFjYWRkcjguYyAgICAgICAgIHwg IDQgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9udW1lcmljLmMgICAgICAgICAgfCAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX29pZC5jICAgICAgICAgICAgICB8ICA2 ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGV4dC5jICAgICAgICAgICAgIHwgIDQg Ky0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90aW1lLmMgICAgICAgICAgICAgfCAgOCAr LQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3RzLmMgICAgICAgICAgICAgICB8IDEwICst LQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3V1aWQuYyAgICAgICAgICAgICB8ICA0ICst CiBjb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMgICAgICAgICAgICAgICAgIHwgIDggKy0K IGNvbnRyaWIvaHN0b3JlL2hzdG9yZV9vcC5jICAgICAgICAgICAgICAgICAgfCAgMiArLQog Y29udHJpYi9pbnRhcnJheS9faW50X2Jvb2wuYyAgICAgICAgICAgICAgICB8ICA2ICstCiBj b250cmliL2x0cmVlL19sdHJlZV9naXN0LmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGNv bnRyaWIvbHRyZWUvX2x0cmVlX29wLmMgICAgICAgICAgICAgICAgICAgfCAxOCArKy0tLQog Y29udHJpYi9wZ190cmdtL3RyZ21fZ2lzdC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBj b250cmliL3BnY3J5cHRvL29wZW5zc2wuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGNv bnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jICAgICAgICAgfCAxMCArLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyAgICAgICAgICAgICAgfCAgNCArLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVsdGkuYyB8ICA4ICstCiBzcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL2RldG9hc3QuYyAgICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2luYnVsay5jICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyAgICAgICAgICB8ICA1ICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaC5jICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMgICAgICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGdpbnNlcnQuYyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3V0aWxzLmMgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMgICAgICAgfCAgNSArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgICB8ICA4ICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmRleC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFjY2Vzcy5jICAgICAgICAgIHwgMTYgKystLQogc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wcm9jLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmMgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2NvcHlmcm9tLmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv Zm9yZWlnbmNtZHMuYyAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9p bmRleGNtZHMuYyAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2xv Y2tjbWRzLmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9s aWN5LmMgICAgICAgICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYyAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jICAgICAgICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl c3BhY2UuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNt ZHMuYyAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0u YyAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxl LmMgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YyAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jICAgICAgIHwgMzQgKysrKy0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVj SW5kZXhpbmcuYyAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2Z1bmN0 aW9ucy5jICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFn Zy5jICAgICAgICAgICAgICB8IDEzICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT b3J0LmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jICAgICAgICB8ICA4ICstCiBzcmMvYmFja2VuZC9saWJwcS9oYmEuYyAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j ICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvbm9kZXMvcGFyYW1zLmMgICAg ICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9ub2Rlcy9yZWFkLmMgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9nZXFvL2dlcW9f bWFpbi5jICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNp emUuYyAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0 aC5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBs YW4uYyAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5j ICAgICAgICB8IDMwICsrKy0tLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zdWJz ZWxlY3QuYyAgICAgIHwgMjEgKystLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwYWdnLmMgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3By ZXBqb2ludHJlZS5jICAgfCAyOCArKystLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9hcHBlbmRpbmZvLmMgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGls L2NsYXVzZXMuYyAgICAgICAgfCAyOSArKysrLS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvcHJlZHRlc3QuYyAgICAgICB8IDEwICstLQogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvdGxpc3QuYyAgICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC92YXIuYyAgICAgICAgICAgIHwgNDUgKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgfCAxMiArLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jb2xsYXRlLmMgICAgICAgICAgfCAxNiArKy0tCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfY3RlLmMgICAgICAgICAgICAgIHwgMTIgKy0tCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2Vfbm9kZS5jICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9wYXJhbS5jICAgICAgICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9zY2FuLmwgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcGFy dGl0aW9uaW5nL3BhcnRwcnVuZS5jICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9wb3J0 L3N5c3Zfc2htZW0uYyAgICAgICAgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jICAgfCA0NCArKysrKy0tLS0tLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyB8ICAyICstCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3N5bmNyZXAuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv cmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMgICAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9y ZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgICAgICAgIHwgIDggKy0KIHNyYy9iYWNrZW5kL3Jl d3JpdGUvcmV3cml0ZU1hbmlwLmMgICAgICAgICAgfCA4MSArKysrKysrKystLS0tLS0tLS0t LS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zl90YWJsZS5jICAgICAgfCAgMiAr LQogc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICAgICAgICB8ICA0ICst CiBzcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jICAgICAgIHwgIDIgKy0K IHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMgICAgICAgICAgICAgfCAgNiArLQog c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICB8ICA2ICstCiBz cmMvYmFja2VuZC90c2VhcmNoL2RpY3RfdGhlc2F1cnVzLmMgICAgICAgIHwgIDIgKy0KIHNy Yy9iYWNrZW5kL3RzZWFyY2gvc3BlbGwuYyAgICAgICAgICAgICAgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYyAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC90c2VhcmNoL3RzX3BhcnNlLmMgICAgICAgICAgICAgIHwgMTIgKy0tCiBzcmMv YmFja2VuZC90c2VhcmNoL3dwYXJzZXIuYyAgICAgICAgICAgICAgIHwgIDggKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FycmF5X3VzZXJmdW5jcy5jICAgICB8ICA4ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgIHwgMTQgKystLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZGF0dW0uYyAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9kb21haW5zLmMgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2VudW0uYyAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZXhwYW5kZWRyZWNvcmQuYyAgICAgIHwgIDggKy0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25mdW5jcy5jICAgICAgICAgICB8IDI2ICsrKy0tLS0KIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMgICAgICAgfCAgMiArLQogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25wYXRoX3NjYW4ubCAgICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvbG9ja2Z1bmNzLmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYyAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L29yZGVyZWRzZXRhZ2dzLmMgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvcGFydGl0aW9uZnVuY3MuYyAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9yYW5nZXR5cGVzLmMgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3JlZ2V4cC5jICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC91dGls cy9hZHQvdHNnaXN0aWR4LmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC90c3JhbmsuYyAgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RzdmVjdG9yX29wLmMgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9h ZHQveG1sLmMgICAgICAgICAgICAgICAgIHwgMTQgKystLQogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS90eXBjYWNoZS5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Vy cm9yL2Vsb2cuYyAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvaGFz aC9keW5haGFzaC5jICAgICAgICAgICB8IDEyICstLQogc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9tY3h0LmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9zb3J0 L3R1cGxlc29ydHZhcmlhbnRzLmMgIHwgMTIgKy0tCiBzcmMvYmFja2VuZC91dGlscy9zb3J0 L3R1cGxlc3RvcmUuYyAgICAgICAgIHwgMTAgKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2FyY2hpdmVyLmMgICAgICAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfY3VzdG9tLmMgICAgICAgICAgfCAgNiArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cF9kaXJlY3RvcnkuYyAgICAgICB8ICA2ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X3Rhci5jICAgICAgICAgICAgIHwgIDggKy0KIHNyYy9iaW4vcHNxbC9tYWlubG9vcC5jICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jb21tb24vcGdfcHJuZy5o ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9j b25uZWN0LmMgICAgICAgfCAgMiArLQogc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2Rl c2NyaXB0b3IuYyAgICB8ICA0ICstCiBzcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWVt b3J5LmMgICAgICAgIHwgIDIgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9jb21wLmMgICAg ICAgICAgICAgICAgfCAgNCArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAg ICAgICAgICAgICB8IDEwICstLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2hhbmRsZXIuYyAg ICAgICAgICAgICB8ICAyICstCiBzcmMvcGwvcGxweXRob24vcGxweV9leGVjLmMgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIHNyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb250ZXN0ZXIu YyAgICAgICAgfCAgMiArLQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3JlZ2V4L3Rlc3RfcmVn ZXguYyAgICB8ICAyICstCiAxNTkgZmlsZXMgY2hhbmdlZCwgNDkzIGluc2VydGlvbnMoKyks IDU1MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5 X25idHJlZS5jIGIvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYwppbmRleCA4Yjgy Nzk3YzEwZi4uZmZlNGY3MjE2NzIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay92ZXJp ZnlfbmJ0cmVlLmMKKysrIGIvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYwpAQCAt NzE5LDcgKzcxOSw3IEBAIGJ0X2NoZWNrX2V2ZXJ5X2xldmVsKFJlbGF0aW9uIHJlbCwgUmVs YXRpb24gaGVhcHJlbCwgYm9vbCBoZWFwa2V5c3BhY2UsCiAJCQkgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUoc3RhdGUtPmhlYXByZWwpKTsKIAogCQl0YWJsZV9pbmRleF9idWlsZF9zY2Fu KHN0YXRlLT5oZWFwcmVsLCBzdGF0ZS0+cmVsLCBpbmRleGluZm8sIHRydWUsIGZhbHNlLAot CQkJCQkJCSAgIGJ0X3R1cGxlX3ByZXNlbnRfY2FsbGJhY2ssICh2b2lkICopIHN0YXRlLCBz Y2FuKTsKKwkJCQkJCQkgICBidF90dXBsZV9wcmVzZW50X2NhbGxiYWNrLCBzdGF0ZSwgc2Nh bik7CiAKIAkJZXJlcG9ydChERUJVRzEsCiAJCQkJKGVycm1zZ19pbnRlcm5hbCgiZmluaXNo ZWQgdmVyaWZ5aW5nIHByZXNlbmNlIG9mICIgSU5UNjRfRk9STUFUICIgdHVwbGVzIGZyb20g dGFibGUgXCIlc1wiIHdpdGggYml0c2V0ICUuMmYlJSBzZXQiLApkaWZmIC0tZ2l0IGEvY29u dHJpYi9ibG9vbS9ibGluc2VydC5jIGIvY29udHJpYi9ibG9vbS9ibGluc2VydC5jCmluZGV4 IGRiYjc5YTUxZWRkLi41ZGEzZGYwNTI4MSAxMDA2NDQKLS0tIGEvY29udHJpYi9ibG9vbS9i bGluc2VydC5jCisrKyBiL2NvbnRyaWIvYmxvb20vYmxpbnNlcnQuYwpAQCAtMTM5LDcgKzEz OSw3IEBAIGJsYnVpbGQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsIEluZGV4SW5m byAqaW5kZXhJbmZvKQogCiAJLyogRG8gdGhlIGhlYXAgc2NhbiAqLwogCXJlbHR1cGxlcyA9 IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwgaW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwg dHJ1ZSwKLQkJCQkJCQkJCSAgIGJsb29tQnVpbGRDYWxsYmFjaywgKHZvaWQgKikgJmJ1aWxk c3RhdGUsCisJCQkJCQkJCQkgICBibG9vbUJ1aWxkQ2FsbGJhY2ssICZidWlsZHN0YXRlLAog CQkJCQkJCQkJICAgTlVMTCk7CiAKIAkvKiBGbHVzaCBsYXN0IHBhZ2UgaWYgbmVlZGVkIChp dCB3aWxsIGJlLCB1bmxlc3MgaGVhcCB3YXMgZW1wdHkpICovCmRpZmYgLS1naXQgYS9jb250 cmliL2Jsb29tL2JsdXRpbHMuYyBiL2NvbnRyaWIvYmxvb20vYmx1dGlscy5jCmluZGV4IGFm MTAxOTkzOTRhLi5lZjc3Njg4YThkMyAxMDA2NDQKLS0tIGEvY29udHJpYi9ibG9vbS9ibHV0 aWxzLmMKKysrIGIvY29udHJpYi9ibG9vbS9ibHV0aWxzLmMKQEAgLTE5OSw3ICsxOTksNyBA QCBpbml0Qmxvb21TdGF0ZShCbG9vbVN0YXRlICpzdGF0ZSwgUmVsYXRpb24gaW5kZXgpCiAK IAkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCi0JCWluZGV4LT5yZF9hbWNhY2hl ID0gKHZvaWQgKikgb3B0czsKKwkJaW5kZXgtPnJkX2FtY2FjaGUgPSBvcHRzOwogCX0KIAog CW1lbWNweSgmc3RhdGUtPm9wdHMsIGluZGV4LT5yZF9hbWNhY2hlLCBzaXplb2Yoc3RhdGUt Pm9wdHMpKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9iaXQuYyBi L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9iaXQuYwppbmRleCA5ZDVlMDFhMTk3Ny4uZjM0 NmI5NTZmYTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9iaXQuYwor KysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYml0LmMKQEAgLTEzNiw3ICsxMzYsNyBA QCBEYXR1bQogZ2J0X2JpdF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR0lT VEVOVFJZICAqZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwot CXZvaWQJICAgKnF1ZXJ5ID0gKHZvaWQgKikgRGF0dW1HZXRCeXRlYVAoUEdfR0VUQVJHX0RB VFVNKDEpKTsKKwl2b2lkCSAgICpxdWVyeSA9IERhdHVtR2V0Qnl0ZWFQKFBHX0dFVEFSR19E QVRVTSgxKSk7CiAJU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3kgPSAoU3RyYXRlZ3lOdW1iZXIp IFBHX0dFVEFSR19VSU5UMTYoMik7CiAKIAkvKiBPaWQJCXN1YnR5cGUgPSBQR19HRVRBUkdf T0lEKDMpOyAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Jvb2wu YyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ib29sLmMKaW5kZXggYmRjNzgzNGJiNmEu LmFkYjcyNGUxNmFjIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYm9v bC5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ib29sLmMKQEAgLTEyMCw3ICsx MjAsNyBAQCBnYnRfYm9vbF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxv d2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9O VU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNp c3RlbnQoJmtleSwgKHZvaWQgKikgJnF1ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JP T0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJ CQkJICBHSVNUX0xFQUYoZW50cnkpLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAK QEAgLTEzMiw3ICsxMzIsNyBAQCBnYnRfYm9vbF91bmlvbihQR19GVU5DVElPTl9BUkdTKQog CXZvaWQJICAgKm91dCA9IHBhbGxvYyhzaXplb2YoYm9vbEtFWSkpOwogCiAJKihpbnQgKikg UEdfR0VUQVJHX1BPSU5URVIoMSkgPSBzaXplb2YoYm9vbEtFWSk7Ci0JUEdfUkVUVVJOX1BP SU5URVIoZ2J0X251bV91bmlvbigodm9pZCAqKSBvdXQsIGVudHJ5dmVjLCAmdGluZm8sIGZj aW5mby0+ZmxpbmZvKSk7CisJUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91bmlvbihvdXQs IGVudHJ5dmVjLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKIApkaWZmIC0tZ2l0 IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2J5dGVhLmMgYi9jb250cmliL2J0cmVlX2dp c3QvYnRyZWVfYnl0ZWEuYwppbmRleCAzOTRlNDBlZDE2Yi4uNWVhY2I4YzU5YTAgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ieXRlYS5jCisrKyBiL2NvbnRyaWIv YnRyZWVfZ2lzdC9idHJlZV9ieXRlYS5jCkBAIC0xMDQsNyArMTA0LDcgQEAgRGF0dW0KIGdi dF9ieXRlYV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR0lTVEVOVFJZICAq ZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwotCXZvaWQJICAg KnF1ZXJ5ID0gKHZvaWQgKikgRGF0dW1HZXRCeXRlYVAoUEdfR0VUQVJHX0RBVFVNKDEpKTsK Kwl2b2lkCSAgICpxdWVyeSA9IERhdHVtR2V0Qnl0ZWFQKFBHX0dFVEFSR19EQVRVTSgxKSk7 CiAJU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3kgPSAoU3RyYXRlZ3lOdW1iZXIpIFBHX0dFVEFS R19VSU5UMTYoMik7CiAKIAkvKiBPaWQJCXN1YnR5cGUgPSBQR19HRVRBUkdfT0lEKDMpOyAq LwpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Nhc2guYyBiL2NvbnRy aWIvYnRyZWVfZ2lzdC9idHJlZV9jYXNoLmMKaW5kZXggNTQ2Yjk0OGVhNDAuLmMxOGMzNGM4 YjgzIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfY2FzaC5jCisrKyBi L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9jYXNoLmMKQEAgLTE1MCw3ICsxNTAsNyBAQCBn YnRfY2FzaF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxvd2VyID0gKEdC VF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkgKikg Jmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQoJmtl eSwgKHZvaWQgKikgJnF1ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JPT0woZ2J0X251 bV9jb25zaXN0ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJCQkJICBHSVNU X0xFQUYoZW50cnkpLCAmdGluZm8sCiAJCQkJCQkJCQkgIGZjaW5mby0+ZmxpbmZvKSk7CiB9 CkBAIC0xNjksNyArMTY5LDcgQEAgZ2J0X2Nhc2hfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJH UykKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBw ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9GTE9BVDgo Z2J0X251bV9kaXN0YW5jZSgma2V5LCAodm9pZCAqKSAmcXVlcnksIEdJU1RfTEVBRihlbnRy eSksCisJUEdfUkVUVVJOX0ZMT0FUOChnYnRfbnVtX2Rpc3RhbmNlKCZrZXksICZxdWVyeSwg R0lTVF9MRUFGKGVudHJ5KSwKIAkJCQkJCQkJCSAgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykp OwogfQogCkBAIC0xODEsNyArMTgxLDcgQEAgZ2J0X2Nhc2hfdW5pb24oUEdfRlVOQ1RJT05f QVJHUykKIAl2b2lkCSAgICpvdXQgPSBwYWxsb2Moc2l6ZW9mKGNhc2hLRVkpKTsKIAogCSoo aW50ICopIFBHX0dFVEFSR19QT0lOVEVSKDEpID0gc2l6ZW9mKGNhc2hLRVkpOwotCVBHX1JF VFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRp bmZvLCBmY2luZm8tPmZsaW5mbykpOworCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5p b24ob3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9kYXRlLmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZGF0ZS5jCmluZGV4IDVlZmI1ZWY5NmY1Li43YTRhOWQ3YTg1MyAx MDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2RhdGUuYworKysgYi9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZGF0ZS5jCkBAIC0xNjcsNyArMTY3LDcgQEAgZ2J0X2Rh dGVfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCWtleS5sb3dlciA9IChHQlRfTlVN S0VZICopICZra2stPmxvd2VyOwogCWtleS51cHBlciA9IChHQlRfTlVNS0VZICopICZra2st PnVwcGVyOwogCi0JUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICh2 b2lkICopICZxdWVyeSwgJnN0cmF0ZWd5LAorCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29u c2lzdGVudCgma2V5LCAmcXVlcnksICZzdHJhdGVneSwKIAkJCQkJCQkJCSAgR0lTVF9MRUFG KGVudHJ5KSwgJnRpbmZvLAogCQkJCQkJCQkJICBmY2luZm8tPmZsaW5mbykpOwogfQpAQCAt MTg2LDcgKzE4Niw3IEBAIGdidF9kYXRlX2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ a2V5Lmxvd2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0g KEdCVF9OVU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KGdidF9u dW1fZGlzdGFuY2UoJmtleSwgKHZvaWQgKikgJnF1ZXJ5LCBHSVNUX0xFQUYoZW50cnkpLAor CVBHX1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCAmcXVlcnksIEdJU1Rf TEVBRihlbnRyeSksCiAJCQkJCQkJCQkgICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0K IApAQCAtMTk4LDcgKzE5OCw3IEBAIGdidF9kYXRlX3VuaW9uKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJdm9pZAkgICAqb3V0ID0gcGFsbG9jKHNpemVvZihkYXRlS0VZKSk7CiAKIAkqKGludCAq KSBQR19HRVRBUkdfUE9JTlRFUigxKSA9IHNpemVvZihkYXRlS0VZKTsKLQlQR19SRVRVUk5f UE9JTlRFUihnYnRfbnVtX3VuaW9uKCh2b2lkICopIG91dCwgZW50cnl2ZWMsICZ0aW5mbywg ZmNpbmZvLT5mbGluZm8pKTsKKwlQR19SRVRVUk5fUE9JTlRFUihnYnRfbnVtX3VuaW9uKG91 dCwgZW50cnl2ZWMsICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIAogCmRpZmYgLS1n aXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZW51bS5jIGIvY29udHJpYi9idHJlZV9n aXN0L2J0cmVlX2VudW0uYwppbmRleCAyNjY4MjEyMmY4ZS4uMDVkMDJlNzA0YTAgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9lbnVtLmMKKysrIGIvY29udHJpYi9i dHJlZV9naXN0L2J0cmVlX2VudW0uYwpAQCAtMTM3LDcgKzEzNyw3IEBAIGdidF9lbnVtX2Nv bnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAq KSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBl cjsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAodm9pZCAq KSAmcXVlcnksICZzdHJhdGVneSwKKwlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3Rl bnQoJmtleSwgJnF1ZXJ5LCAmc3RyYXRlZ3ksCiAJCQkJCQkJCQkgIEdJU1RfTEVBRihlbnRy eSksICZ0aW5mbywKIAkJCQkJCQkJCSAgZmNpbmZvLT5mbGluZm8pKTsKIH0KQEAgLTE0OSw3 ICsxNDksNyBAQCBnYnRfZW51bV91bmlvbihQR19GVU5DVElPTl9BUkdTKQogCXZvaWQJICAg Km91dCA9IHBhbGxvYyhzaXplb2Yob2lkS0VZKSk7CiAKIAkqKGludCAqKSBQR19HRVRBUkdf UE9JTlRFUigxKSA9IHNpemVvZihvaWRLRVkpOwotCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9u dW1fdW5pb24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5m bykpOworCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBlbnRyeXZlYywg JnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9m bG9hdDQuYwppbmRleCA4NGNhNWVlZTUwMS4uZDEzOGFhOTRiZjIgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYworKysgYi9jb250cmliL2J0cmVlX2dp c3QvYnRyZWVfZmxvYXQ0LmMKQEAgLTE0NSw3ICsxNDUsNyBAQCBnYnRfZmxvYXQ0X2NvbnNp c3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAm a2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsK IAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAodm9pZCAqKSAm cXVlcnksICZzdHJhdGVneSwKKwlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQo JmtleSwgJnF1ZXJ5LCAmc3RyYXRlZ3ksCiAJCQkJCQkJCQkgIEdJU1RfTEVBRihlbnRyeSks ICZ0aW5mbywKIAkJCQkJCQkJCSAgZmNpbmZvLT5mbGluZm8pKTsKIH0KQEAgLTE2NCw3ICsx NjQsNyBAQCBnYnRfZmxvYXQ0X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxv d2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9O VU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlz dGFuY2UoJmtleSwgKHZvaWQgKikgJnF1ZXJ5LCBHSVNUX0xFQUYoZW50cnkpLAorCVBHX1JF VFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCAmcXVlcnksIEdJU1RfTEVBRihl bnRyeSksCiAJCQkJCQkJCQkgICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIApAQCAt MTc2LDcgKzE3Niw3IEBAIGdidF9mbG9hdDRfdW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIAl2 b2lkCSAgICpvdXQgPSBwYWxsb2Moc2l6ZW9mKGZsb2F0NEtFWSkpOwogCiAJKihpbnQgKikg UEdfR0VUQVJHX1BPSU5URVIoMSkgPSBzaXplb2YoZmxvYXQ0S0VZKTsKLQlQR19SRVRVUk5f UE9JTlRFUihnYnRfbnVtX3VuaW9uKCh2b2lkICopIG91dCwgZW50cnl2ZWMsICZ0aW5mbywg ZmNpbmZvLT5mbGluZm8pKTsKKwlQR19SRVRVUk5fUE9JTlRFUihnYnRfbnVtX3VuaW9uKG91 dCwgZW50cnl2ZWMsICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIAogCmRpZmYgLS1n aXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMgYi9jb250cmliL2J0cmVl X2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggMDgxYTcxOWIwMDYuLmE3NGNkMjAwNTI5IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKKysrIGIvY29u dHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC0xNTIsNyArMTUyLDcgQEAgZ2J0 X2Zsb2F0OF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxvd2VyID0gKEdC VF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkgKikg Jmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQoJmtl eSwgKHZvaWQgKikgJnF1ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JPT0woZ2J0X251 bV9jb25zaXN0ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJCQkJICBHSVNU X0xFQUYoZW50cnkpLCAmdGluZm8sCiAJCQkJCQkJCQkgIGZjaW5mby0+ZmxpbmZvKSk7CiB9 CkBAIC0xNzEsNyArMTcxLDcgQEAgZ2J0X2Zsb2F0OF9kaXN0YW5jZShQR19GVU5DVElPTl9B UkdTKQogCWtleS5sb3dlciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51 cHBlciA9IChHQlRfTlVNS0VZICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0ZMT0FU OChnYnRfbnVtX2Rpc3RhbmNlKCZrZXksICh2b2lkICopICZxdWVyeSwgR0lTVF9MRUFGKGVu dHJ5KSwKKwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtleSwgJnF1ZXJ5 LCBHSVNUX0xFQUYoZW50cnkpLAogCQkJCQkJCQkJICAmdGluZm8sIGZjaW5mby0+ZmxpbmZv KSk7CiB9CiAKQEAgLTE4Myw3ICsxODMsNyBAQCBnYnRfZmxvYXQ4X3VuaW9uKFBHX0ZVTkNU SU9OX0FSR1MpCiAJdm9pZAkgICAqb3V0ID0gcGFsbG9jKHNpemVvZihmbG9hdDhLRVkpKTsK IAogCSooaW50ICopIFBHX0dFVEFSR19QT0lOVEVSKDEpID0gc2l6ZW9mKGZsb2F0OEtFWSk7 Ci0JUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91bmlvbigodm9pZCAqKSBvdXQsIGVudHJ5 dmVjLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CisJUEdfUkVUVVJOX1BPSU5URVIoZ2J0 X251bV91bmlvbihvdXQsIGVudHJ5dmVjLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9 CiAKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2luZXQuYyBiL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbmV0LmMKaW5kZXggYzY2Y2E5OWUwYzMuLjRjZmZk MzQ5MDkxIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW5ldC5jCisr KyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbmV0LmMKQEAgLTEzOCw3ICsxMzgsNyBA QCBnYnRfaW5ldF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxvd2VyID0g KEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkg KikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQo JmtleSwgKHZvaWQgKikgJnF1ZXJ5LAorCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lz dGVudCgma2V5LCAmcXVlcnksCiAJCQkJCQkJCQkgICZzdHJhdGVneSwgR0lTVF9MRUFGKGVu dHJ5KSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCkBAIC0xNTAsNyArMTUwLDcg QEAgZ2J0X2luZXRfdW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIAl2b2lkCSAgICpvdXQgPSBw YWxsb2Moc2l6ZW9mKGluZXRLRVkpKTsKIAogCSooaW50ICopIFBHX0dFVEFSR19QT0lOVEVS KDEpID0gc2l6ZW9mKGluZXRLRVkpOwotCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5p b24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwor CVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBlbnRyeXZlYywgJnRpbmZv LCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9pbnQyLmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50Mi5jCmlu ZGV4IGZkYmYxNTY1ODZjLi4xNzUxYTZjMDU1ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX2ludDIuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50 Mi5jCkBAIC0xNTAsNyArMTUwLDcgQEAgZ2J0X2ludDJfY29uc2lzdGVudChQR19GVU5DVElP Tl9BUkdTKQogCWtleS5sb3dlciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtl eS51cHBlciA9IChHQlRfTlVNS0VZICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0JP T0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICh2b2lkICopICZxdWVyeSwgJnN0cmF0ZWd5 LAorCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAmcXVlcnksICZz dHJhdGVneSwKIAkJCQkJCQkJCSAgR0lTVF9MRUFGKGVudHJ5KSwgJnRpbmZvLCBmY2luZm8t PmZsaW5mbykpOwogfQogCkBAIC0xNjgsNyArMTY4LDcgQEAgZ2J0X2ludDJfZGlzdGFuY2Uo UEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT5s b3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsKIAotCVBH X1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCAodm9pZCAqKSAmcXVlcnks IEdJU1RfTEVBRihlbnRyeSksCisJUEdfUkVUVVJOX0ZMT0FUOChnYnRfbnVtX2Rpc3RhbmNl KCZrZXksICZxdWVyeSwgR0lTVF9MRUFGKGVudHJ5KSwKIAkJCQkJCQkJCSAgJnRpbmZvLCBm Y2luZm8tPmZsaW5mbykpOwogfQogCkBAIC0xODAsNyArMTgwLDcgQEAgZ2J0X2ludDJfdW5p b24oUEdfRlVOQ1RJT05fQVJHUykKIAl2b2lkCSAgICpvdXQgPSBwYWxsb2Moc2l6ZW9mKGlu dDE2S0VZKSk7CiAKIAkqKGludCAqKSBQR19HRVRBUkdfUE9JTlRFUigxKSA9IHNpemVvZihp bnQxNktFWSk7Ci0JUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91bmlvbigodm9pZCAqKSBv dXQsIGVudHJ5dmVjLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CisJUEdfUkVUVVJOX1BP SU5URVIoZ2J0X251bV91bmlvbihvdXQsIGVudHJ5dmVjLCAmdGluZm8sIGZjaW5mby0+Zmxp bmZvKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2lu dDQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ0LmMKaW5kZXggODkxNWZiNWQw ODcuLjkwZDE4M2JlNmU4IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVf aW50NC5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ0LmMKQEAgLTE1MSw3 ICsxNTEsNyBAQCBnYnRfaW50NF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5 Lmxvd2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdC VF9OVU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2Nv bnNpc3RlbnQoJmtleSwgKHZvaWQgKikgJnF1ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJO X0JPT0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAogCQkJ CQkJCQkJICBHSVNUX0xFQUYoZW50cnkpLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9 CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBnYnRfaW50NF9kaXN0YW5jZShQR19GVU5DVElPTl9B UkdTKQogCWtleS5sb3dlciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51 cHBlciA9IChHQlRfTlVNS0VZICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0ZMT0FU OChnYnRfbnVtX2Rpc3RhbmNlKCZrZXksICh2b2lkICopICZxdWVyeSwgR0lTVF9MRUFGKGVu dHJ5KSwKKwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtleSwgJnF1ZXJ5 LCBHSVNUX0xFQUYoZW50cnkpLAogCQkJCQkJCQkJICAmdGluZm8sIGZjaW5mby0+ZmxpbmZv KSk7CiB9CiAKQEAgLTE4MSw3ICsxODEsNyBAQCBnYnRfaW50NF91bmlvbihQR19GVU5DVElP Tl9BUkdTKQogCXZvaWQJICAgKm91dCA9IHBhbGxvYyhzaXplb2YoaW50MzJLRVkpKTsKIAog CSooaW50ICopIFBHX0dFVEFSR19QT0lOVEVSKDEpID0gc2l6ZW9mKGludDMyS0VZKTsKLQlQ R19SRVRVUk5fUE9JTlRFUihnYnRfbnVtX3VuaW9uKCh2b2lkICopIG91dCwgZW50cnl2ZWMs ICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKKwlQR19SRVRVUk5fUE9JTlRFUihnYnRfbnVt X3VuaW9uKG91dCwgZW50cnl2ZWMsICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIAog CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5jIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2ludDguYwppbmRleCA3YzYzYTViNmRjMS4uNjYxY2Y4MTg5 ZmMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ4LmMKKysrIGIv Y29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludDguYwpAQCAtMTUxLDcgKzE1MSw3IEBAIGdi dF9pbnQ4X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JU X05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAm a2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5 LCAodm9pZCAqKSAmcXVlcnksICZzdHJhdGVneSwKKwlQR19SRVRVUk5fQk9PTChnYnRfbnVt X2NvbnNpc3RlbnQoJmtleSwgJnF1ZXJ5LCAmc3RyYXRlZ3ksCiAJCQkJCQkJCQkgIEdJU1Rf TEVBRihlbnRyeSksICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIApAQCAtMTY5LDcg KzE2OSw3IEBAIGdidF9pbnQ4X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxv d2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9O VU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlz dGFuY2UoJmtleSwgKHZvaWQgKikgJnF1ZXJ5LCBHSVNUX0xFQUYoZW50cnkpLAorCVBHX1JF VFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCAmcXVlcnksIEdJU1RfTEVBRihl bnRyeSksCiAJCQkJCQkJCQkgICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIApAQCAt MTgxLDcgKzE4MSw3IEBAIGdidF9pbnQ4X3VuaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdm9p ZAkgICAqb3V0ID0gcGFsbG9jKHNpemVvZihpbnQ2NEtFWSkpOwogCiAJKihpbnQgKikgUEdf R0VUQVJHX1BPSU5URVIoMSkgPSBzaXplb2YoaW50NjRLRVkpOwotCVBHX1JFVFVSTl9QT0lO VEVSKGdidF9udW1fdW5pb24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2lu Zm8tPmZsaW5mbykpOworCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBl bnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBh L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnRlcnZhbC5jIGIvY29udHJpYi9idHJlZV9n aXN0L2J0cmVlX2ludGVydmFsLmMKaW5kZXggYzJmNmVlZGUyMjYuLjhmOTlhNDE2OTY1IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50ZXJ2YWwuYworKysgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50ZXJ2YWwuYwpAQCAtMjI0LDcgKzIyNCw3IEBA IGdidF9pbnR2X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAo R0JUX05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAq KSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgm a2V5LCAodm9pZCAqKSBxdWVyeSwgJnN0cmF0ZWd5LAorCVBHX1JFVFVSTl9CT09MKGdidF9u dW1fY29uc2lzdGVudCgma2V5LCBxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJCQkJICBHSVNU X0xFQUYoZW50cnkpLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKQEAgLTI0Miw3 ICsyNDIsNyBAQCBnYnRfaW50dl9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogCWtleS5s b3dlciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51cHBlciA9IChHQlRf TlVNS0VZICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChnYnRfbnVtX2Rp c3RhbmNlKCZrZXksICh2b2lkICopIHF1ZXJ5LCBHSVNUX0xFQUYoZW50cnkpLAorCVBHX1JF VFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCBxdWVyeSwgR0lTVF9MRUFGKGVu dHJ5KSwKIAkJCQkJCQkJCSAgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCkBAIC0y NTQsNyArMjU0LDcgQEAgZ2J0X2ludHZfdW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIAl2b2lk CSAgICpvdXQgPSBwYWxsb2Moc2l6ZW9mKGludHZLRVkpKTsKIAogCSooaW50ICopIFBHX0dF VEFSR19QT0lOVEVSKDEpID0gc2l6ZW9mKGludHZLRVkpOwotCVBHX1JFVFVSTl9QT0lOVEVS KGdidF9udW1fdW5pb24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8t PmZsaW5mbykpOworCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBlbnRy eXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9tYWNhZGRyLmMgYi9jb250cmliL2J0cmVlX2dpc3Qv YnRyZWVfbWFjYWRkci5jCmluZGV4IDEzNjdlYWJhNzM1Li41NThjZmEyMTcyZiAxMDA2NDQK LS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX21hY2FkZHIuYworKysgYi9jb250cmli L2J0cmVlX2dpc3QvYnRyZWVfbWFjYWRkci5jCkBAIC0xNDEsNyArMTQxLDcgQEAgZ2J0X21h Y2FkX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JUX05V TUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2tr LT51cHBlcjsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAo dm9pZCAqKSBxdWVyeSwgJnN0cmF0ZWd5LAorCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29u c2lzdGVudCgma2V5LCBxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJCQkJICBHSVNUX0xFQUYo ZW50cnkpLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKQEAgLTE1Myw3ICsxNTMs NyBAQCBnYnRfbWFjYWRfdW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIAl2b2lkCSAgICpvdXQg PSBwYWxsb2MwKHNpemVvZihtYWNLRVkpKTsKIAogCSooaW50ICopIFBHX0dFVEFSR19QT0lO VEVSKDEpID0gc2l6ZW9mKG1hY0tFWSk7Ci0JUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91 bmlvbigodm9pZCAqKSBvdXQsIGVudHJ5dmVjLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7 CisJUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91bmlvbihvdXQsIGVudHJ5dmVjLCAmdGlu Zm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX21hY2FkZHI4LmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfbWFj YWRkcjguYwppbmRleCA5Njc2ZTVhMTViZC4uNWQwYzU1MDlmNTEgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9tYWNhZGRyOC5jCisrKyBiL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9tYWNhZGRyOC5jCkBAIC0xNDEsNyArMTQxLDcgQEAgZ2J0X21hY2FkOF9j b25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxvd2VyID0gKEdCVF9OVU1LRVkg KikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkgKikgJmtray0+dXBw ZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQoJmtleSwgKHZvaWQg KikgcXVlcnksICZzdHJhdGVneSwKKwlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3Rl bnQoJmtleSwgcXVlcnksICZzdHJhdGVneSwKIAkJCQkJCQkJCSAgR0lTVF9MRUFGKGVudHJ5 KSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCkBAIC0xNTMsNyArMTUzLDcgQEAg Z2J0X21hY2FkOF91bmlvbihQR19GVU5DVElPTl9BUkdTKQogCXZvaWQJICAgKm91dCA9IHBh bGxvYzAoc2l6ZW9mKG1hYzhLRVkpKTsKIAogCSooaW50ICopIFBHX0dFVEFSR19QT0lOVEVS KDEpID0gc2l6ZW9mKG1hYzhLRVkpOwotCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5p b24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwor CVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBlbnRyeXZlYywgJnRpbmZv LCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9udW1lcmljLmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfbnVtZXJp Yy5jCmluZGV4IDM1ZTQ2NmNkZDk0Li5kNTMzNjQ4YTI5NSAxMDA2NDQKLS0tIGEvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX251bWVyaWMuYworKysgYi9jb250cmliL2J0cmVlX2dpc3Qv YnRyZWVfbnVtZXJpYy5jCkBAIC0xMDgsNyArMTA4LDcgQEAgRGF0dW0KIGdidF9udW1lcmlj X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHSVNURU5UUlkgICplbnRyeSA9 IChHSVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0Jdm9pZAkgICAqcXVlcnkg PSAodm9pZCAqKSBEYXR1bUdldE51bWVyaWMoUEdfR0VUQVJHX0RBVFVNKDEpKTsKKwl2b2lk CSAgICpxdWVyeSA9IERhdHVtR2V0TnVtZXJpYyhQR19HRVRBUkdfREFUVU0oMSkpOwogCVN0 cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdfVUlO VDE2KDIpOwogCiAJLyogT2lkCQlzdWJ0eXBlID0gUEdfR0VUQVJHX09JRCgzKTsgKi8KZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9vaWQuYyBiL2NvbnRyaWIvYnRy ZWVfZ2lzdC9idHJlZV9vaWQuYwppbmRleCAzY2M3ZDQyNDVkNC4uZDE5NzZmNGYwOTEgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9vaWQuYworKysgYi9jb250cmli L2J0cmVlX2dpc3QvYnRyZWVfb2lkLmMKQEAgLTE1MSw3ICsxNTEsNyBAQCBnYnRfb2lkX2Nv bnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAq KSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBl cjsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAodm9pZCAq KSAmcXVlcnksICZzdHJhdGVneSwKKwlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3Rl bnQoJmtleSwgJnF1ZXJ5LCAmc3RyYXRlZ3ksCiAJCQkJCQkJCQkgIEdJU1RfTEVBRihlbnRy eSksICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIApAQCAtMTY5LDcgKzE2OSw3IEBA IGdidF9vaWRfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JU X05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAm a2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5 LCAodm9pZCAqKSAmcXVlcnksIEdJU1RfTEVBRihlbnRyeSksCisJUEdfUkVUVVJOX0ZMT0FU OChnYnRfbnVtX2Rpc3RhbmNlKCZrZXksICZxdWVyeSwgR0lTVF9MRUFGKGVudHJ5KSwKIAkJ CQkJCQkJCSAgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCkBAIC0xODEsNyArMTgx LDcgQEAgZ2J0X29pZF91bmlvbihQR19GVU5DVElPTl9BUkdTKQogCXZvaWQJICAgKm91dCA9 IHBhbGxvYyhzaXplb2Yob2lkS0VZKSk7CiAKIAkqKGludCAqKSBQR19HRVRBUkdfUE9JTlRF UigxKSA9IHNpemVvZihvaWRLRVkpOwotCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5p b24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwor CVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBlbnRyeXZlYywgJnRpbmZv LCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV90ZXh0LmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGV4dC5jCmlu ZGV4IDI4ZDZiNWM5YzJiLi44ZjgwZjU0MjQwZiAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX3RleHQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGV4 dC5jCkBAIC0xOTMsNyArMTkzLDcgQEAgRGF0dW0KIGdidF90ZXh0X2NvbnNpc3RlbnQoUEdf RlVOQ1RJT05fQVJHUykKIHsKIAlHSVNURU5UUlkgICplbnRyeSA9IChHSVNURU5UUlkgKikg UEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0Jdm9pZAkgICAqcXVlcnkgPSAodm9pZCAqKSBEYXR1 bUdldFRleHRQKFBHX0dFVEFSR19EQVRVTSgxKSk7CisJdm9pZAkgICAqcXVlcnkgPSBEYXR1 bUdldFRleHRQKFBHX0dFVEFSR19EQVRVTSgxKSk7CiAJU3RyYXRlZ3lOdW1iZXIgc3RyYXRl Z3kgPSAoU3RyYXRlZ3lOdW1iZXIpIFBHX0dFVEFSR19VSU5UMTYoMik7CiAKIAkvKiBPaWQJ CXN1YnR5cGUgPSBQR19HRVRBUkdfT0lEKDMpOyAqLwpAQCAtMjIxLDcgKzIyMSw3IEBAIERh dHVtCiBnYnRfYnBjaGFyX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHSVNU RU5UUlkgICplbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0J dm9pZAkgICAqcXVlcnkgPSAodm9pZCAqKSBEYXR1bUdldFRleHRQKFBHX0dFVEFSR19EQVRV TSgxKSk7CisJdm9pZAkgICAqcXVlcnkgPSBEYXR1bUdldFRleHRQKFBHX0dFVEFSR19EQVRV TSgxKSk7CiAJU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3kgPSAoU3RyYXRlZ3lOdW1iZXIpIFBH X0dFVEFSR19VSU5UMTYoMik7CiAKIAkvKiBPaWQJCXN1YnR5cGUgPSBQR19HRVRBUkdfT0lE KDMpOyAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3RpbWUuYyBi L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90aW1lLmMKaW5kZXggMzAzNGJiYjQ1NmIuLjJm Nzg1OTM0MGY2IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGltZS5j CisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90aW1lLmMKQEAgLTIxNiw3ICsyMTYs NyBAQCBnYnRfdGltZV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxvd2Vy ID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1L RVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3Rl bnQoJmtleSwgKHZvaWQgKikgJnF1ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JPT0wo Z2J0X251bV9jb25zaXN0ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJCQkJ ICBHSVNUX0xFQUYoZW50cnkpLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKQEAg LTIzMyw3ICsyMzMsNyBAQCBnYnRfdGltZV9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQog CWtleS5sb3dlciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51cHBlciA9 IChHQlRfTlVNS0VZICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChnYnRf bnVtX2Rpc3RhbmNlKCZrZXksICh2b2lkICopICZxdWVyeSwgR0lTVF9MRUFGKGVudHJ5KSwK KwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtleSwgJnF1ZXJ5LCBHSVNU X0xFQUYoZW50cnkpLAogCQkJCQkJCQkJICAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9 CiAKQEAgLTI1OCw3ICsyNTgsNyBAQCBnYnRfdGltZXR6X2NvbnNpc3RlbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlr ZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9C T09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAodm9pZCAqKSAmcXFxLCAmc3RyYXRlZ3ks CisJUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICZxcXEsICZzdHJh dGVneSwKIAkJCQkJCQkJCSAgR0lTVF9MRUFGKGVudHJ5KSwgJnRpbmZvLCBmY2luZm8tPmZs aW5mbykpOwogfQogCkBAIC0yNzAsNyArMjcwLDcgQEAgZ2J0X3RpbWVfdW5pb24oUEdfRlVO Q1RJT05fQVJHUykKIAl2b2lkCSAgICpvdXQgPSBwYWxsb2Moc2l6ZW9mKHRpbWVLRVkpKTsK IAogCSooaW50ICopIFBHX0dFVEFSR19QT0lOVEVSKDEpID0gc2l6ZW9mKHRpbWVLRVkpOwot CVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24oKHZvaWQgKikgb3V0LCBlbnRyeXZl YywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOworCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9u dW1fdW5pb24ob3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQog CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90cy5jIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX3RzLmMKaW5kZXggYjNjZjJkNmY2MGQuLjllMGQ5NzlkZGE5 IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdHMuYworKysgYi9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfdHMuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIGdidF90c19j b25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJa2V5Lmxvd2VyID0gKEdCVF9OVU1LRVkg KikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkgKikgJmtray0+dXBw ZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQoJmtleSwgKHZvaWQg KikgJnF1ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0 ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAogCQkJCQkJCQkJICBHSVNUX0xFQUYoZW50 cnkpLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKQEAgLTI4Miw3ICsyODIsNyBA QCBnYnRfdHNfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlrZXkubG93ZXIgPSAoR0JU X05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAm a2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5 LCAodm9pZCAqKSAmcXVlcnksIEdJU1RfTEVBRihlbnRyeSksCisJUEdfUkVUVVJOX0ZMT0FU OChnYnRfbnVtX2Rpc3RhbmNlKCZrZXksICZxdWVyeSwgR0lTVF9MRUFGKGVudHJ5KSwKIAkJ CQkJCQkJCSAgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCkBAIC0zMDYsNyArMzA2 LDcgQEAgZ2J0X3RzdHpfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCWtleS51cHBl ciA9IChHQlRfTlVNS0VZICopICZra2tbTUFYQUxJR04odGluZm8uc2l6ZSldOwogCXFxcSA9 IHRzdHpfdG9fdHNfZ210KHF1ZXJ5KTsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29u c2lzdGVudCgma2V5LCAodm9pZCAqKSAmcXFxLCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JP T0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICZxcXEsICZzdHJhdGVneSwKIAkJCQkJCQkJ CSAgR0lTVF9MRUFGKGVudHJ5KSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCkBA IC0zMjUsNyArMzI1LDcgQEAgZ2J0X3RzdHpfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykK IAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trW01BWEFMSUdOKHRpbmZvLnNpemUp XTsKIAlxcXEgPSB0c3R6X3RvX3RzX2dtdChxdWVyeSk7CiAKLQlQR19SRVRVUk5fRkxPQVQ4 KGdidF9udW1fZGlzdGFuY2UoJmtleSwgKHZvaWQgKikgJnFxcSwgR0lTVF9MRUFGKGVudHJ5 KSwKKwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtleSwgJnFxcSwgR0lT VF9MRUFGKGVudHJ5KSwKIAkJCQkJCQkJCSAgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwog fQogCkBAIC0zMzcsNyArMzM3LDcgQEAgZ2J0X3RzX3VuaW9uKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJdm9pZAkgICAqb3V0ID0gcGFsbG9jKHNpemVvZih0c0tFWSkpOwogCiAJKihpbnQgKikg UEdfR0VUQVJHX1BPSU5URVIoMSkgPSBzaXplb2YodHNLRVkpOwotCVBHX1JFVFVSTl9QT0lO VEVSKGdidF9udW1fdW5pb24oKHZvaWQgKikgb3V0LCBlbnRyeXZlYywgJnRpbmZvLCBmY2lu Zm8tPmZsaW5mbykpOworCVBHX1JFVFVSTl9QT0lOVEVSKGdidF9udW1fdW5pb24ob3V0LCBl bnRyeXZlYywgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBh L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dWlkLmMgYi9jb250cmliL2J0cmVlX2dpc3Qv YnRyZWVfdXVpZC5jCmluZGV4IGZlOGM2NzljYmVkLi5mNGM1YzZlNTg5MiAxMDA2NDQKLS0t IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3V1aWQuYworKysgYi9jb250cmliL2J0cmVl X2dpc3QvYnRyZWVfdXVpZC5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgZ2J0X3V1aWRfY29uc2lz dGVudChQR19GVU5DVElPTl9BUkdTKQogCWtleS5sb3dlciA9IChHQlRfTlVNS0VZICopICZr a2stPmxvd2VyOwogCWtleS51cHBlciA9IChHQlRfTlVNS0VZICopICZra2stPnVwcGVyOwog Ci0JUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0ZW50KCZrZXksICh2b2lkICopIHF1 ZXJ5LCAmc3RyYXRlZ3ksCisJUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0ZW50KCZr ZXksIHF1ZXJ5LCAmc3RyYXRlZ3ksCiAJCQkJCQkJCQkgIEdJU1RfTEVBRihlbnRyeSksICZ0 aW5mbywKIAkJCQkJCQkJCSAgZmNpbmZvLT5mbGluZm8pKTsKIH0KQEAgLTE2MCw3ICsxNjAs NyBAQCBnYnRfdXVpZF91bmlvbihQR19GVU5DVElPTl9BUkdTKQogCXZvaWQJICAgKm91dCA9 IHBhbGxvYyhzaXplb2YodXVpZEtFWSkpOwogCiAJKihpbnQgKikgUEdfR0VUQVJHX1BPSU5U RVIoMSkgPSBzaXplb2YodXVpZEtFWSk7Ci0JUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91 bmlvbigodm9pZCAqKSBvdXQsIGVudHJ5dmVjLCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7 CisJUEdfUkVUVVJOX1BPSU5URVIoZ2J0X251bV91bmlvbihvdXQsIGVudHJ5dmVjLCAmdGlu Zm8sIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9jb250cmliL2Zp bGVfZmR3L2ZpbGVfZmR3LmMgYi9jb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMKaW5kZXgg MDQzMjA0YzNlN2UuLjU3MjZhZjZjYzE1IDEwMDY0NAotLS0gYS9jb250cmliL2ZpbGVfZmR3 L2ZpbGVfZmR3LmMKKysrIGIvY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jCkBAIC01MzAs NyArNTMwLDcgQEAgZmlsZUdldEZvcmVpZ25SZWxTaXplKFBsYW5uZXJJbmZvICpyb290LAog CQkJCSAgICZmZHdfcHJpdmF0ZS0+ZmlsZW5hbWUsCiAJCQkJICAgJmZkd19wcml2YXRlLT5p c19wcm9ncmFtLAogCQkJCSAgICZmZHdfcHJpdmF0ZS0+b3B0aW9ucyk7Ci0JYmFzZXJlbC0+ ZmR3X3ByaXZhdGUgPSAodm9pZCAqKSBmZHdfcHJpdmF0ZTsKKwliYXNlcmVsLT5mZHdfcHJp dmF0ZSA9IGZkd19wcml2YXRlOwogCiAJLyogRXN0aW1hdGUgcmVsYXRpb24gc2l6ZSAqLwog CWVzdGltYXRlX3NpemUocm9vdCwgYmFzZXJlbCwgZmR3X3ByaXZhdGUpOwpAQCAtNzEyLDcg KzcxMiw3IEBAIGZpbGVCZWdpbkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUs IGludCBlZmxhZ3MpCiAJZmVzdGF0ZS0+b3B0aW9ucyA9IG9wdGlvbnM7CiAJZmVzdGF0ZS0+ Y3N0YXRlID0gY3N0YXRlOwogCi0Jbm9kZS0+ZmR3X3N0YXRlID0gKHZvaWQgKikgZmVzdGF0 ZTsKKwlub2RlLT5mZHdfc3RhdGUgPSBmZXN0YXRlOwogfQogCiAvKgpAQCAtNzMzLDcgKzcz Myw3IEBAIGZpbGVJdGVyYXRlRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkK IAogCS8qIFNldCB1cCBjYWxsYmFjayB0byBpZGVudGlmeSBlcnJvciBsaW5lIG51bWJlci4g Ki8KIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IENvcHlGcm9tRXJyb3JDYWxsYmFjazsKLQll cnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSBjc3RhdGU7CisJZXJyY2FsbGJhY2suYXJnID0g Y3N0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsK IAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBAIC0xMjIwLDcgKzEy MjAsNyBAQCBmaWxlX2FjcXVpcmVfc2FtcGxlX3Jvd3MoUmVsYXRpb24gb25lcmVsLCBpbnQg ZWxldmVsLAogCiAJLyogU2V0IHVwIGNhbGxiYWNrIHRvIGlkZW50aWZ5IGVycm9yIGxpbmUg bnVtYmVyLiAqLwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gQ29weUZyb21FcnJvckNhbGxi YWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopIGNzdGF0ZTsKKwllcnJjYWxsYmFj ay5hcmcgPSBjc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0 X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKZGlmZiAt LWdpdCBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9vcC5jIGIvY29udHJpYi9oc3RvcmUvaHN0 b3JlX29wLmMKaW5kZXggMGQ0ZWMxNmQxZTUuLjVlNTdlY2VmZmM4IDEwMDY0NAotLS0gYS9j b250cmliL2hzdG9yZS9oc3RvcmVfb3AuYworKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmVf b3AuYwpAQCAtODU4LDcgKzg1OCw3IEBAIHNldHVwX2ZpcnN0Y2FsbChGdW5jQ2FsbENvbnRl eHQgKmZ1bmNjdHgsIEhTdG9yZSAqaHMsCiAJc3QgPSAoSFN0b3JlICopIHBhbGxvYyhWQVJT SVpFKGhzKSk7CiAJbWVtY3B5KHN0LCBocywgVkFSU0laRShocykpOwogCi0JZnVuY2N0eC0+ dXNlcl9mY3R4ID0gKHZvaWQgKikgc3Q7CisJZnVuY2N0eC0+dXNlcl9mY3R4ID0gc3Q7CiAK IAlpZiAoZmNpbmZvKQogCXsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaW50YXJyYXkvX2ludF9i b29sLmMgYi9jb250cmliL2ludGFycmF5L19pbnRfYm9vbC5jCmluZGV4IDhjZjAyYzBlNWRh Li4yYjJjM2Y0MDI5ZSAxMDA2NDQKLS0tIGEvY29udHJpYi9pbnRhcnJheS9faW50X2Jvb2wu YworKysgYi9jb250cmliL2ludGFycmF5L19pbnRfYm9vbC5jCkBAIC0yOTgsNyArMjk4LDcg QEAgYm9vbAogc2lnbmNvbnNpc3RlbnQoUVVFUllUWVBFICpxdWVyeSwgQklUVkVDUCBzaWdu LCBpbnQgc2lnbGVuLCBib29sIGNhbGNub3QpCiB7CiAJcmV0dXJuIGV4ZWN1dGUoR0VUUVVF UlkocXVlcnkpICsgcXVlcnktPnNpemUgLSAxLAotCQkJCSAgICh2b2lkICopIHNpZ24sICh2 b2lkICopIChpbnRwdHJfdCkgc2lnbGVuLCBjYWxjbm90LAorCQkJCSAgIHNpZ24sICh2b2lk ICopIChpbnRwdHJfdCkgc2lnbGVuLCBjYWxjbm90LAogCQkJCSAgIGNoZWNrY29uZGl0aW9u X2JpdCk7CiB9CiAKQEAgLTMxMiw3ICszMTIsNyBAQCBleGVjY29uc2lzdGVudChRVUVSWVRZ UEUgKnF1ZXJ5LCBBcnJheVR5cGUgKmFycmF5LCBib29sIGNhbGNub3QpCiAJY2hrdmFsLmFy cmIgPSBBUlJQVFIoYXJyYXkpOwogCWNoa3ZhbC5hcnJlID0gY2hrdmFsLmFycmIgKyBBUlJO RUxFTVMoYXJyYXkpOwogCXJldHVybiBleGVjdXRlKEdFVFFVRVJZKHF1ZXJ5KSArIHF1ZXJ5 LT5zaXplIC0gMSwKLQkJCQkgICAodm9pZCAqKSAmY2hrdmFsLCBOVUxMLCBjYWxjbm90LAor CQkJCSAgICZjaGt2YWwsIE5VTEwsIGNhbGNub3QsCiAJCQkJICAgY2hlY2tjb25kaXRpb25f YXJyKTsKIH0KIApAQCAtMzU0LDcgKzM1NCw3IEBAIGdpbl9ib29sX2NvbnNpc3RlbnQoUVVF UllUWVBFICpxdWVyeSwgYm9vbCAqY2hlY2spCiAJfQogCiAJcmV0dXJuIGV4ZWN1dGUoR0VU UVVFUlkocXVlcnkpICsgcXVlcnktPnNpemUgLSAxLAotCQkJCSAgICh2b2lkICopICZnY3Ys IE5VTEwsIHRydWUsCisJCQkJICAgJmdjdiwgTlVMTCwgdHJ1ZSwKIAkJCQkgICBjaGVja2Nv bmRpdGlvbl9naW4pOwogfQogCmRpZmYgLS1naXQgYS9jb250cmliL2x0cmVlL19sdHJlZV9n aXN0LmMgYi9jb250cmliL2x0cmVlL19sdHJlZV9naXN0LmMKaW5kZXggZTg5YTM5YTViNWYu LjI4NmFkMjRmYmU4IDEwMDY0NAotLS0gYS9jb250cmliL2x0cmVlL19sdHJlZV9naXN0LmMK KysrIGIvY29udHJpYi9sdHJlZS9fbHRyZWVfZ2lzdC5jCkBAIC01MDYsNyArNTA2LDcgQEAg RGF0dW0KIF9sdHJlZV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR0lTVEVO VFJZICAqZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwotCXZv aWQJICAgKnF1ZXJ5ID0gKHZvaWQgKikgUEdfREVUT0FTVF9EQVRVTShQR19HRVRBUkdfREFU VU0oMSkpOworCXZvaWQJICAgKnF1ZXJ5ID0gUEdfREVUT0FTVF9EQVRVTShQR19HRVRBUkdf REFUVU0oMSkpOwogCVN0cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVy KSBQR19HRVRBUkdfVUlOVDE2KDIpOwogCiAJLyogT2lkCQlzdWJ0eXBlID0gUEdfR0VUQVJH X09JRCgzKTsgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvX2x0cmVlX29wLmMgYi9j b250cmliL2x0cmVlL19sdHJlZV9vcC5jCmluZGV4IDJmZGI1ZWE5N2JmLi5iNGE4MDk3MzI4 ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9sdHJlZS9fbHRyZWVfb3AuYworKysgYi9jb250cmli L2x0cmVlL19sdHJlZV9vcC5jCkBAIC03Myw3ICs3Myw3IEBAIF9sdHJlZV9pc3BhcmVudChQ R19GVU5DVElPTl9BUkdTKQogewogCUFycmF5VHlwZSAgKmxhID0gUEdfR0VUQVJHX0FSUkFZ VFlQRV9QKDApOwogCWx0cmVlCSAgICpxdWVyeSA9IFBHX0dFVEFSR19MVFJFRV9QKDEpOwot CWJvb2wJCXJlcyA9IGFycmF5X2l0ZXJhdG9yKGxhLCBsdHJlZV9pc3BhcmVudCwgKHZvaWQg KikgcXVlcnksIE5VTEwpOworCWJvb2wJCXJlcyA9IGFycmF5X2l0ZXJhdG9yKGxhLCBsdHJl ZV9pc3BhcmVudCwgcXVlcnksIE5VTEwpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGxhLCAwKTsK IAlQR19GUkVFX0lGX0NPUFkocXVlcnksIDEpOwpAQCAtOTQsNyArOTQsNyBAQCBfbHRyZWVf cmlzcGFyZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJQXJyYXlUeXBlICAqbGEgPSBQR19H RVRBUkdfQVJSQVlUWVBFX1AoMCk7CiAJbHRyZWUJICAgKnF1ZXJ5ID0gUEdfR0VUQVJHX0xU UkVFX1AoMSk7Ci0JYm9vbAkJcmVzID0gYXJyYXlfaXRlcmF0b3IobGEsIGx0cmVlX3Jpc3Bh cmVudCwgKHZvaWQgKikgcXVlcnksIE5VTEwpOworCWJvb2wJCXJlcyA9IGFycmF5X2l0ZXJh dG9yKGxhLCBsdHJlZV9yaXNwYXJlbnQsIHF1ZXJ5LCBOVUxMKTsKIAogCVBHX0ZSRUVfSUZf Q09QWShsYSwgMCk7CiAJUEdfRlJFRV9JRl9DT1BZKHF1ZXJ5LCAxKTsKQEAgLTExNSw3ICsx MTUsNyBAQCBfbHRxX3JlZ2V4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJQXJyYXlUeXBlICAq bGEgPSBQR19HRVRBUkdfQVJSQVlUWVBFX1AoMCk7CiAJbHF1ZXJ5CSAgICpxdWVyeSA9IFBH X0dFVEFSR19MUVVFUllfUCgxKTsKLQlib29sCQlyZXMgPSBhcnJheV9pdGVyYXRvcihsYSwg bHRxX3JlZ2V4LCAodm9pZCAqKSBxdWVyeSwgTlVMTCk7CisJYm9vbAkJcmVzID0gYXJyYXlf aXRlcmF0b3IobGEsIGx0cV9yZWdleCwgcXVlcnksIE5VTEwpOwogCiAJUEdfRlJFRV9JRl9D T1BZKGxhLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkocXVlcnksIDEpOwpAQCAtMTUxLDcgKzE1 MSw3IEBAIF9sdF9xX3JlZ2V4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAl3aGlsZSAobnVtID4g MCkKIAl7Ci0JCWlmIChhcnJheV9pdGVyYXRvcihfdHJlZSwgbHRxX3JlZ2V4LCAodm9pZCAq KSBxdWVyeSwgTlVMTCkpCisJCWlmIChhcnJheV9pdGVyYXRvcihfdHJlZSwgbHRxX3JlZ2V4 LCBxdWVyeSwgTlVMTCkpCiAJCXsKIAkJCXJlcyA9IHRydWU7CiAJCQlicmVhazsKQEAgLTE4 MCw3ICsxODAsNyBAQCBfbHR4dHFfZXhlYyhQR19GVU5DVElPTl9BUkdTKQogewogCUFycmF5 VHlwZSAgKmxhID0gUEdfR0VUQVJHX0FSUkFZVFlQRV9QKDApOwogCWx0eHRxdWVyeSAgKnF1 ZXJ5ID0gUEdfR0VUQVJHX0xUWFRRVUVSWV9QKDEpOwotCWJvb2wJCXJlcyA9IGFycmF5X2l0 ZXJhdG9yKGxhLCBsdHh0cV9leGVjLCAodm9pZCAqKSBxdWVyeSwgTlVMTCk7CisJYm9vbAkJ cmVzID0gYXJyYXlfaXRlcmF0b3IobGEsIGx0eHRxX2V4ZWMsIHF1ZXJ5LCBOVUxMKTsKIAog CVBHX0ZSRUVfSUZfQ09QWShsYSwgMCk7CiAJUEdfRlJFRV9JRl9DT1BZKHF1ZXJ5LCAxKTsK QEAgLTIwNSw3ICsyMDUsNyBAQCBfbHRyZWVfZXh0cmFjdF9pc3BhcmVudChQR19GVU5DVElP Tl9BUkdTKQogCWx0cmVlCSAgICpmb3VuZCwKIAkJCSAgICppdGVtOwogCi0JaWYgKCFhcnJh eV9pdGVyYXRvcihsYSwgbHRyZWVfaXNwYXJlbnQsICh2b2lkICopIHF1ZXJ5LCAmZm91bmQp KQorCWlmICghYXJyYXlfaXRlcmF0b3IobGEsIGx0cmVlX2lzcGFyZW50LCBxdWVyeSwgJmZv dW5kKSkKIAl7CiAJCVBHX0ZSRUVfSUZfQ09QWShsYSwgMCk7CiAJCVBHX0ZSRUVfSUZfQ09Q WShxdWVyeSwgMSk7CkBAIC0yMjgsNyArMjI4LDcgQEAgX2x0cmVlX2V4dHJhY3RfcmlzcGFy ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJbHRyZWUJICAgKmZvdW5kLAogCQkJICAgKml0ZW07 CiAKLQlpZiAoIWFycmF5X2l0ZXJhdG9yKGxhLCBsdHJlZV9yaXNwYXJlbnQsICh2b2lkICop IHF1ZXJ5LCAmZm91bmQpKQorCWlmICghYXJyYXlfaXRlcmF0b3IobGEsIGx0cmVlX3Jpc3Bh cmVudCwgcXVlcnksICZmb3VuZCkpCiAJewogCQlQR19GUkVFX0lGX0NPUFkobGEsIDApOwog CQlQR19GUkVFX0lGX0NPUFkocXVlcnksIDEpOwpAQCAtMjUxLDcgKzI1MSw3IEBAIF9sdHFf ZXh0cmFjdF9yZWdleChQR19GVU5DVElPTl9BUkdTKQogCWx0cmVlCSAgICpmb3VuZCwKIAkJ CSAgICppdGVtOwogCi0JaWYgKCFhcnJheV9pdGVyYXRvcihsYSwgbHRxX3JlZ2V4LCAodm9p ZCAqKSBxdWVyeSwgJmZvdW5kKSkKKwlpZiAoIWFycmF5X2l0ZXJhdG9yKGxhLCBsdHFfcmVn ZXgsIHF1ZXJ5LCAmZm91bmQpKQogCXsKIAkJUEdfRlJFRV9JRl9DT1BZKGxhLCAwKTsKIAkJ UEdfRlJFRV9JRl9DT1BZKHF1ZXJ5LCAxKTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBfbHR4dHFf ZXh0cmFjdF9leGVjKFBHX0ZVTkNUSU9OX0FSR1MpCiAJbHRyZWUJICAgKmZvdW5kLAogCQkJ ICAgKml0ZW07CiAKLQlpZiAoIWFycmF5X2l0ZXJhdG9yKGxhLCBsdHh0cV9leGVjLCAodm9p ZCAqKSBxdWVyeSwgJmZvdW5kKSkKKwlpZiAoIWFycmF5X2l0ZXJhdG9yKGxhLCBsdHh0cV9l eGVjLCBxdWVyeSwgJmZvdW5kKSkKIAl7CiAJCVBHX0ZSRUVfSUZfQ09QWShsYSwgMCk7CiAJ CVBHX0ZSRUVfSUZfQ09QWShxdWVyeSwgMSk7CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Ry Z20vdHJnbV9naXN0LmMgYi9jb250cmliL3BnX3RyZ20vdHJnbV9naXN0LmMKaW5kZXggOWVm MmUzODU2MGEuLjdmNDgyZjk1OGZkIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJn bV9naXN0LmMKKysrIGIvY29udHJpYi9wZ190cmdtL3RyZ21fZ2lzdC5jCkBAIC0yOTksNyAr Mjk5LDcgQEAgZ3RyZ21fY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCiAJCWlmIChj YWNoZSkKIAkJCXBmcmVlKGNhY2hlKTsKLQkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJhID0g KHZvaWQgKikgbmV3Y2FjaGU7CisJCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9IG5ld2Nh Y2hlOwogCQljYWNoZSA9IG5ld2NhY2hlOwogCX0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9w Z2NyeXB0by9vcGVuc3NsLmMgYi9jb250cmliL3BnY3J5cHRvL29wZW5zc2wuYwppbmRleCAy NjQ1NGJjM2UyOS4uNDQ4ZGIzMzFhMGYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdjcnlwdG8v b3BlbnNzbC5jCisrKyBiL2NvbnRyaWIvcGdjcnlwdG8vb3BlbnNzbC5jCkBAIC0yMDMsNyAr MjAzLDcgQEAgcHhfZmluZF9kaWdlc3QoY29uc3QgY2hhciAqbmFtZSwgUFhfTUQgKipyZXMp CiAJaC0+dXBkYXRlID0gZGlnZXN0X3VwZGF0ZTsKIAloLT5maW5pc2ggPSBkaWdlc3RfZmlu aXNoOwogCWgtPmZyZWUgPSBkaWdlc3RfZnJlZTsKLQloLT5wLnB0ciA9ICh2b2lkICopIGRp Z2VzdDsKKwloLT5wLnB0ciA9IGRpZ2VzdDsKIAogCSpyZXMgPSBoOwogCXJldHVybiAwOwpk aWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwppbmRleCA1MzczM2Q2NDJkMC4uYzA4 MTBmYmQ3YzggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zk dy5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCkBAIC02MzAs NyArNjMwLDcgQEAgcG9zdGdyZXNHZXRGb3JlaWduUmVsU2l6ZShQbGFubmVySW5mbyAqcm9v dCwKIAkgKiBmdW5jdGlvbnMuCiAJICovCiAJZnBpbmZvID0gKFBnRmR3UmVsYXRpb25JbmZv ICopIHBhbGxvYzAoc2l6ZW9mKFBnRmR3UmVsYXRpb25JbmZvKSk7Ci0JYmFzZXJlbC0+ZmR3 X3ByaXZhdGUgPSAodm9pZCAqKSBmcGluZm87CisJYmFzZXJlbC0+ZmR3X3ByaXZhdGUgPSBm cGluZm87CiAKIAkvKiBCYXNlIGZvcmVpZ24gdGFibGVzIG5lZWQgdG8gYmUgcHVzaGVkIGRv d24gYWx3YXlzLiAqLwogCWZwaW5mby0+cHVzaGRvd25fc2FmZSA9IHRydWU7CkBAIC0xMTMy LDcgKzExMzIsNyBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25QYXRocyhQbGFubmVySW5mbyAqcm9v dCwKIAkJCWNsYXVzZXMgPSBnZW5lcmF0ZV9pbXBsaWVkX2VxdWFsaXRpZXNfZm9yX2NvbHVt bihyb290LAogCQkJCQkJCQkJCQkJCQkJIGJhc2VyZWwsCiAJCQkJCQkJCQkJCQkJCQkgZWNf bWVtYmVyX21hdGNoZXNfZm9yZWlnbiwKLQkJCQkJCQkJCQkJCQkJCSAodm9pZCAqKSAmYXJn LAorCQkJCQkJCQkJCQkJCQkJICZhcmcsCiAJCQkJCQkJCQkJCQkJCQkgYmFzZXJlbC0+bGF0 ZXJhbF9yZWZlcmVuY2Vycyk7CiAKIAkJCS8qIERvbmUgaWYgdGhlcmUgYXJlIG5vIG1vcmUg ZXhwcmVzc2lvbnMgaW4gdGhlIGZvcmVpZ24gcmVsICovCkBAIC0xNTE0LDcgKzE1MTQsNyBA QCBwb3N0Z3Jlc0JlZ2luRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSwgaW50 IGVmbGFncykKIAkgKiBXZSdsbCBzYXZlIHByaXZhdGUgc3RhdGUgaW4gbm9kZS0+ZmR3X3N0 YXRlLgogCSAqLwogCWZzc3RhdGUgPSAoUGdGZHdTY2FuU3RhdGUgKikgcGFsbG9jMChzaXpl b2YoUGdGZHdTY2FuU3RhdGUpKTsKLQlub2RlLT5mZHdfc3RhdGUgPSAodm9pZCAqKSBmc3N0 YXRlOworCW5vZGUtPmZkd19zdGF0ZSA9IGZzc3RhdGU7CiAKIAkvKgogCSAqIElkZW50aWZ5 IHdoaWNoIHVzZXIgdG8gZG8gdGhlIHJlbW90ZSBhY2Nlc3MgYXMuICBUaGlzIHNob3VsZCBt YXRjaCB3aGF0CkBAIC0yNjY0LDcgKzI2NjQsNyBAQCBwb3N0Z3Jlc0JlZ2luRGlyZWN0TW9k aWZ5KEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUsIGludCBlZmxhZ3MpCiAJICogV2UnbGwgc2F2 ZSBwcml2YXRlIHN0YXRlIGluIG5vZGUtPmZkd19zdGF0ZS4KIAkgKi8KIAlkbXN0YXRlID0g KFBnRmR3RGlyZWN0TW9kaWZ5U3RhdGUgKikgcGFsbG9jMChzaXplb2YoUGdGZHdEaXJlY3RN b2RpZnlTdGF0ZSkpOwotCW5vZGUtPmZkd19zdGF0ZSA9ICh2b2lkICopIGRtc3RhdGU7CisJ bm9kZS0+ZmR3X3N0YXRlID0gZG1zdGF0ZTsKIAogCS8qCiAJICogSWRlbnRpZnkgd2hpY2gg dXNlciB0byBkbyB0aGUgcmVtb3RlIGFjY2VzcyBhcy4gIFRoaXMgc2hvdWxkIG1hdGNoIHdo YXQKQEAgLTc2MTgsNyArNzYxOCw3IEBAIG1ha2VfdHVwbGVfZnJvbV9yZXN1bHRfcm93KFBH cmVzdWx0ICpyZXMsCiAJZXJycG9zLnJlbCA9IHJlbDsKIAllcnJwb3MuZnNzdGF0ZSA9IGZz c3RhdGU7CiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBjb252ZXJzaW9uX2Vycm9yX2NhbGxi YWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZlcnJwb3M7CisJZXJyY2FsbGJh Y2suYXJnID0gJmVycnBvczsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVycm9yX2NvbnRl eHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IGMwYjk3ODExOWFjLi4zYWVkZWM4ODJjZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMTIyMiw3ICsxMjIyLDcgQEAgYnJpbmJ1aWxk KFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBJbmRleEluZm8gKmluZGV4SW5mbykK IAkJICogZ2VuZXJhdGUgc3VtbWFyeSBmb3IgdGhlIHNhbWUgcmFuZ2UgdHdpY2UpLgogCQkg Ki8KIAkJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwg aW5kZXhJbmZvLCBmYWxzZSwgdHJ1ZSwKLQkJCQkJCQkJCQkgICBicmluYnVpbGRDYWxsYmFj aywgKHZvaWQgKikgc3RhdGUsIE5VTEwpOworCQkJCQkJCQkJCSAgIGJyaW5idWlsZENhbGxi YWNrLCBzdGF0ZSwgTlVMTCk7CiAKIAkJLyoKIAkJICogcHJvY2VzcyB0aGUgZmluYWwgYmF0 Y2gKQEAgLTE4MDgsNyArMTgwOCw3IEBAIHN1bW1hcml6ZV9yYW5nZShJbmRleEluZm8gKmlu ZGV4SW5mbywgQnJpbkJ1aWxkU3RhdGUgKnN0YXRlLCBSZWxhdGlvbiBoZWFwUmVsLAogCXN0 YXRlLT5ic19jdXJyUmFuZ2VTdGFydCA9IGhlYXBCbGs7CiAJdGFibGVfaW5kZXhfYnVpbGRf cmFuZ2Vfc2NhbihoZWFwUmVsLCBzdGF0ZS0+YnNfaXJlbCwgaW5kZXhJbmZvLCBmYWxzZSwg dHJ1ZSwgZmFsc2UsCiAJCQkJCQkJCSBoZWFwQmxrLCBzY2FuTnVtQmxrcywKLQkJCQkJCQkJ IGJyaW5idWlsZENhbGxiYWNrLCAodm9pZCAqKSBzdGF0ZSwgTlVMTCk7CisJCQkJCQkJCSBi cmluYnVpbGRDYWxsYmFjaywgc3RhdGUsIE5VTEwpOwogCiAJLyoKIAkgKiBOb3cgd2UgdXBk YXRlIHRoZSB2YWx1ZXMgb2J0YWluZWQgYnkgdGhlIHNjYW4gd2l0aCB0aGUgcGxhY2Vob2xk ZXIKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4X211 bHRpLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jCmlu ZGV4IGU1ZDk1ZGU1ZDg0Li5lZGI3NDlmNTg1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVsdGkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jCkBAIC00MTMsNyArNDEzLDcgQEAgQXNzZXJ0 Q2hlY2tSYW5nZXMoUmFuZ2VzICpyYW5nZXMsIEZtZ3JJbmZvICpjbXBGbiwgT2lkIGNvbGxv aWQpCiAKIAkJCUFzc2VydChic2VhcmNoX2FyZygmdmFsdWUsICZyYW5nZXMtPnZhbHVlc1sy ICogcmFuZ2VzLT5ucmFuZ2VzXSwKIAkJCQkJCQkgICByYW5nZXMtPm5zb3J0ZWQsIHNpemVv ZihEYXR1bSksCi0JCQkJCQkJICAgY29tcGFyZV92YWx1ZXMsICh2b2lkICopICZjeHQpID09 IE5VTEwpOworCQkJCQkJCSAgIGNvbXBhcmVfdmFsdWVzLCAmY3h0KSA9PSBOVUxMKTsKIAkJ fQogCX0KICNlbmRpZgpAQCAtNTUwLDcgKzU1MCw3IEBAIHJhbmdlX2RlZHVwbGljYXRlX3Zh bHVlcyhSYW5nZXMgKnJhbmdlKQogCQkvKiBzYW1lIGFzIHByZWNlZGluZyB2YWx1ZSwgc28g c3RvcmUgaXQgKi8KIAkJaWYgKGNvbXBhcmVfdmFsdWVzKCZyYW5nZS0+dmFsdWVzW3N0YXJ0 ICsgaSAtIDFdLAogCQkJCQkJICAgJnJhbmdlLT52YWx1ZXNbc3RhcnQgKyBpXSwKLQkJCQkJ CSAgICh2b2lkICopICZjeHQpID09IDApCisJCQkJCQkgICAmY3h0KSA9PSAwKQogCQkJY29u dGludWU7CiAKIAkJcmFuZ2UtPnZhbHVlc1tzdGFydCArIG5dID0gcmFuZ2UtPnZhbHVlc1tz dGFydCArIGldOwpAQCAtMTA4NSw3ICsxMDg1LDcgQEAgcmFuZ2VfY29udGFpbnNfdmFsdWUo QnJpbkRlc2MgKmJkZXNjLCBPaWQgY29sbG9pZCwKIAogCQlpZiAoYnNlYXJjaF9hcmcoJm5l d3ZhbCwgJnJhbmdlcy0+dmFsdWVzWzIgKiByYW5nZXMtPm5yYW5nZXNdLAogCQkJCQkJcmFu Z2VzLT5uc29ydGVkLCBzaXplb2YoRGF0dW0pLAotCQkJCQkJY29tcGFyZV92YWx1ZXMsICh2 b2lkICopICZjeHQpICE9IE5VTEwpCisJCQkJCQljb21wYXJlX3ZhbHVlcywgJmN4dCkgIT0g TlVMTCkKIAkJCXJldHVybiB0cnVlOwogCX0KIAllbHNlCkBAIC0xMjA2LDcgKzEyMDYsNyBA QCBzb3J0X2V4cGFuZGVkX3JhbmdlcyhGbWdySW5mbyAqY21wLCBPaWQgY29sbG9pZCwKIAlm b3IgKGkgPSAxOyBpIDwgbmVyYW5nZXM7IGkrKykKIAl7CiAJCS8qIGlmIHRoZSBjdXJyZW50 IHJhbmdlIGlzIGVxdWFsIHRvIHRoZSBwcmVjZWRpbmcgb25lLCBkbyBub3RoaW5nICovCi0J CWlmICghY29tcGFyZV9leHBhbmRlZF9yYW5nZXMoJmVyYW5nZXNbaSAtIDFdLCAmZXJhbmdl c1tpXSwgKHZvaWQgKikgJmN4dCkpCisJCWlmICghY29tcGFyZV9leHBhbmRlZF9yYW5nZXMo JmVyYW5nZXNbaSAtIDFdLCAmZXJhbmdlc1tpXSwgJmN4dCkpCiAJCQljb250aW51ZTsKIAog CQkvKiBvdGhlcndpc2UsIGNvcHkgaXQgdG8gbi10aCBwbGFjZSAoaWYgbm90IGFscmVhZHkg dGhlcmUpICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2RldG9h c3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vZGV0b2FzdC5jCmluZGV4IDM1NDdj ZGJhNTZlLi5kOTJlNjgzMzg0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9kZXRvYXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9kZXRvYXN0 LmMKQEAgLTg4LDcgKzg4LDcgQEAgZGV0b2FzdF9leHRlcm5hbF9hdHRyKHN0cnVjdCB2YXJs ZW5hICphdHRyKQogCQllb2ggPSBEYXR1bUdldEVPSFAoUG9pbnRlckdldERhdHVtKGF0dHIp KTsKIAkJcmVzdWx0c2l6ZSA9IEVPSF9nZXRfZmxhdF9zaXplKGVvaCk7CiAJCXJlc3VsdCA9 IChzdHJ1Y3QgdmFybGVuYSAqKSBwYWxsb2MocmVzdWx0c2l6ZSk7Ci0JCUVPSF9mbGF0dGVu X2ludG8oZW9oLCAodm9pZCAqKSByZXN1bHQsIHJlc3VsdHNpemUpOworCQlFT0hfZmxhdHRl bl9pbnRvKGVvaCwgcmVzdWx0LCByZXN1bHRzaXplKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnVsay5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2dpbi9naW5idWxrLmMKaW5kZXggN2Y4OWNkNWU4MjYuLmYwOGI2NmFiNzkxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmJ1bGsuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbmJ1bGsuYwpAQCAtMTE3LDcgKzExNyw3IEBAIGdpbklu aXRCQShCdWlsZEFjY3VtdWxhdG9yICphY2N1bSkKIAkJCQkJCQkgZ2luQ29tYmluZURhdGEs CiAJCQkJCQkJIGdpbkFsbG9jRW50cnlBY2N1bXVsYXRvciwKIAkJCQkJCQkgTlVMTCwJLyog bm8gZnJlZWZ1bmMgbmVlZGVkICovCi0JCQkJCQkJICh2b2lkICopIGFjY3VtKTsKKwkJCQkJ CQkgYWNjdW0pOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dp bi9naW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5k ZXggNzFmMzhiZTkwYzMuLjMxZWU1NjUwNDE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu aW5zZXJ0LmMKQEAgLTM4MCw4ICszODAsNyBAQCBnaW5idWlsZChSZWxhdGlvbiBoZWFwLCBS ZWxhdGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJICogcHJlZmVycyB0byBy ZWNlaXZlIHR1cGxlcyBpbiBUSUQgb3JkZXIuCiAJICovCiAJcmVsdHVwbGVzID0gdGFibGVf aW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5kZXhJbmZvLCBmYWxzZSwgdHJ1ZSwK LQkJCQkJCQkJCSAgIGdpbkJ1aWxkQ2FsbGJhY2ssICh2b2lkICopICZidWlsZHN0YXRlLAot CQkJCQkJCQkJICAgTlVMTCk7CisJCQkJCQkJCQkgICBnaW5CdWlsZENhbGxiYWNrLCAmYnVp bGRzdGF0ZSwgTlVMTCk7CiAKIAkvKiBkdW1wIHJlbWFpbmluZyBlbnRyaWVzIHRvIHRoZSBp bmRleCAqLwogCW9sZEN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhidWlsZHN0YXRlLnRt cEN0eCk7CkBAIC00OTcsNyArNDk2LDcgQEAgZ2luaW5zZXJ0KFJlbGF0aW9uIGluZGV4LCBE YXR1bSAqdmFsdWVzLCBib29sICppc251bGwsCiAJCW9sZEN0eCA9IE1lbW9yeUNvbnRleHRT d2l0Y2hUbyhpbmRleEluZm8tPmlpX0NvbnRleHQpOwogCQlnaW5zdGF0ZSA9IChHaW5TdGF0 ZSAqKSBwYWxsb2Moc2l6ZW9mKEdpblN0YXRlKSk7CiAJCWluaXRHaW5TdGF0ZShnaW5zdGF0 ZSwgaW5kZXgpOwotCQlpbmRleEluZm8tPmlpX0FtQ2FjaGUgPSAodm9pZCAqKSBnaW5zdGF0 ZTsKKwkJaW5kZXhJbmZvLT5paV9BbUNhY2hlID0gZ2luc3RhdGU7CiAJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRDdHgpOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCmluZGV4 IDJkN2EwNjg3ZDRhLi5lOWUwMzBmOWNkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwpA QCAtMTczLDcgKzE3Myw3IEBAIGdpc3RpbnNlcnQoUmVsYXRpb24gciwgRGF0dW0gKnZhbHVl cywgYm9vbCAqaXNudWxsLAogCQlvbGRDeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oaW5k ZXhJbmZvLT5paV9Db250ZXh0KTsKIAkJZ2lzdHN0YXRlID0gaW5pdEdJU1RzdGF0ZShyKTsK IAkJZ2lzdHN0YXRlLT50ZW1wQ3h0ID0gY3JlYXRlVGVtcEdpc3RDb250ZXh0KCk7Ci0JCWlu ZGV4SW5mby0+aWlfQW1DYWNoZSA9ICh2b2lkICopIGdpc3RzdGF0ZTsKKwkJaW5kZXhJbmZv LT5paV9BbUNhY2hlID0gZ2lzdHN0YXRlOwogCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Q3h0KTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Ri dWlsZC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKaW5kZXggYmEw NmRmMzBmYWYuLjYzZDE5MTRiMzdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Z2lzdC9naXN0YnVpbGQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVp bGQuYwpAQCAtMjczLDcgKzI3Myw3IEBAIGdpc3RidWlsZChSZWxhdGlvbiBoZWFwLCBSZWxh dGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJCS8qIFNjYW4gdGhlIHRhYmxl LCBhZGRpbmcgYWxsIHR1cGxlcyB0byB0aGUgdHVwbGVzb3J0ICovCiAJCXJlbHR1cGxlcyA9 IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwgaW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwg dHJ1ZSwKIAkJCQkJCQkJCQkgICBnaXN0U29ydGVkQnVpbGRDYWxsYmFjaywKLQkJCQkJCQkJ CQkgICAodm9pZCAqKSAmYnVpbGRzdGF0ZSwgTlVMTCk7CisJCQkJCQkJCQkJICAgJmJ1aWxk c3RhdGUsIE5VTEwpOwogCiAJCS8qCiAJCSAqIFBlcmZvcm0gdGhlIHNvcnQgYW5kIGJ1aWxk IGluZGV4IHBhZ2VzLgpAQCAtMzEyLDcgKzMxMiw3IEBAIGdpc3RidWlsZChSZWxhdGlvbiBo ZWFwLCBSZWxhdGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJCS8qIFNjYW4g dGhlIHRhYmxlLCBpbnNlcnRpbmcgYWxsIHRoZSB0dXBsZXMgdG8gdGhlIGluZGV4LiAqLwog CQlyZWx0dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGhlYXAsIGluZGV4LCBpbmRl eEluZm8sIHRydWUsIHRydWUsCiAJCQkJCQkJCQkJICAgZ2lzdEJ1aWxkQ2FsbGJhY2ssCi0J CQkJCQkJCQkJICAgKHZvaWQgKikgJmJ1aWxkc3RhdGUsIE5VTEwpOworCQkJCQkJCQkJCSAg ICZidWlsZHN0YXRlLCBOVUxMKTsKIAogCQkvKgogCQkgKiBJZiBidWZmZXJpbmcgd2FzIHVz ZWQsIGZsdXNoIG91dCBhbGwgdGhlIHR1cGxlcyB0aGF0IGFyZSBzdGlsbCBpbgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaC5jCmluZGV4IDVjZTM2MDkzOTQzLi40MmM3M2VhNWViOSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oYXNoL2hhc2guYwpAQCAtMTczLDcgKzE3Myw3IEBAIGhhc2hidWlsZChSZWxh dGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJLyog ZG8gdGhlIGhlYXAgc2NhbiAqLwogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3Nj YW4oaGVhcCwgaW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwgdHJ1ZSwKIAkJCQkJCQkJCSAgIGhh c2hidWlsZENhbGxiYWNrLAotCQkJCQkJCQkJICAgKHZvaWQgKikgJmJ1aWxkc3RhdGUsIE5V TEwpOworCQkJCQkJCQkJICAgJmJ1aWxkc3RhdGUsIE5VTEwpOwogCXBnc3RhdF9wcm9ncmVz c191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURYX1RVUExFU19UT1RBTCwKIAkJCQkJ CQkJIGJ1aWxkc3RhdGUuaW5kdHVwbGVzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCmluZGV4IDc5M2JkMzNjYjRkLi40ODU2NDRmMTJkMSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjQ1Myw3ICsyNDUzLDcgQEAgbGF6eV92 YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0 ICppc3RhdCwKIAkJCQkJCQkgSW52YWxpZEJsb2NrTnVtYmVyLCBJbnZhbGlkT2Zmc2V0TnVt YmVyKTsKIAogCS8qIERvIGJ1bGsgZGVsZXRpb24gKi8KLQlpc3RhdCA9IHZhY19idWxrZGVs X29uZV9pbmRleCgmaXZpbmZvLCBpc3RhdCwgKHZvaWQgKikgdmFjcmVsLT5kZWFkX2l0ZW1z LAorCWlzdGF0ID0gdmFjX2J1bGtkZWxfb25lX2luZGV4KCZpdmluZm8sIGlzdGF0LCB2YWNy ZWwtPmRlYWRfaXRlbXMsCiAJCQkJCQkJCSAgdmFjcmVsLT5kZWFkX2l0ZW1zX2luZm8pOwog CiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJy b3IgdHJhY2ViYWNrICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHJlZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwppbmRleCA0 ODRlZGU4YzJlMS4uZTlkYWNjOWU4ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRy ZWUuYwpAQCAtNTY2LDcgKzU2Niw3IEBAIGJ0cGFyYWxsZWxyZXNjYW4oSW5kZXhTY2FuRGVz YyBzY2FuKQogCiAJQXNzZXJ0KHBhcmFsbGVsX3NjYW4pOwogCi0JYnRzY2FuID0gKEJUUGFy YWxsZWxTY2FuRGVzYykgT2Zmc2V0VG9Qb2ludGVyKCh2b2lkICopIHBhcmFsbGVsX3NjYW4s CisJYnRzY2FuID0gKEJUUGFyYWxsZWxTY2FuRGVzYykgT2Zmc2V0VG9Qb2ludGVyKHBhcmFs bGVsX3NjYW4sCiAJCQkJCQkJCQkJCQkgIHBhcmFsbGVsX3NjYW4tPnBzX29mZnNldCk7CiAK IAkvKgpAQCAtNjQ1LDcgKzY0NSw3IEBAIF9idF9wYXJhbGxlbF9zZWl6ZShJbmRleFNjYW5E ZXNjIHNjYW4sIEJsb2NrTnVtYmVyICpuZXh0X3NjYW5fcGFnZSwKIAkJCXJldHVybiBmYWxz ZTsKIAl9CiAKLQlidHNjYW4gPSAoQlRQYXJhbGxlbFNjYW5EZXNjKSBPZmZzZXRUb1BvaW50 ZXIoKHZvaWQgKikgcGFyYWxsZWxfc2NhbiwKKwlidHNjYW4gPSAoQlRQYXJhbGxlbFNjYW5E ZXNjKSBPZmZzZXRUb1BvaW50ZXIocGFyYWxsZWxfc2NhbiwKIAkJCQkJCQkJCQkJCSAgcGFy YWxsZWxfc2Nhbi0+cHNfb2Zmc2V0KTsKIAogCXdoaWxlICgxKQpAQCAtNzM2LDcgKzczNiw3 IEBAIF9idF9wYXJhbGxlbF9yZWxlYXNlKEluZGV4U2NhbkRlc2Mgc2NhbiwgQmxvY2tOdW1i ZXIgbmV4dF9zY2FuX3BhZ2UsCiAJUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBhcmFsbGVsX3Nj YW4gPSBzY2FuLT5wYXJhbGxlbF9zY2FuOwogCUJUUGFyYWxsZWxTY2FuRGVzYyBidHNjYW47 CiAKLQlidHNjYW4gPSAoQlRQYXJhbGxlbFNjYW5EZXNjKSBPZmZzZXRUb1BvaW50ZXIoKHZv aWQgKikgcGFyYWxsZWxfc2NhbiwKKwlidHNjYW4gPSAoQlRQYXJhbGxlbFNjYW5EZXNjKSBP ZmZzZXRUb1BvaW50ZXIocGFyYWxsZWxfc2NhbiwKIAkJCQkJCQkJCQkJCSAgcGFyYWxsZWxf c2Nhbi0+cHNfb2Zmc2V0KTsKIAogCVNwaW5Mb2NrQWNxdWlyZSgmYnRzY2FuLT5idHBzX211 dGV4KTsKQEAgLTc3Myw3ICs3NzMsNyBAQCBfYnRfcGFyYWxsZWxfZG9uZShJbmRleFNjYW5E ZXNjIHNjYW4pCiAJaWYgKHNvLT5uZWVkUHJpbVNjYW4pCiAJCXJldHVybjsKIAotCWJ0c2Nh biA9IChCVFBhcmFsbGVsU2NhbkRlc2MpIE9mZnNldFRvUG9pbnRlcigodm9pZCAqKSBwYXJh bGxlbF9zY2FuLAorCWJ0c2NhbiA9IChCVFBhcmFsbGVsU2NhbkRlc2MpIE9mZnNldFRvUG9p bnRlcihwYXJhbGxlbF9zY2FuLAogCQkJCQkJCQkJCQkJICBwYXJhbGxlbF9zY2FuLT5wc19v ZmZzZXQpOwogCiAJLyoKQEAgLTgxMSw3ICs4MTEsNyBAQCBfYnRfcGFyYWxsZWxfcHJpbXNj YW5fc2NoZWR1bGUoSW5kZXhTY2FuRGVzYyBzY2FuLCBCbG9ja051bWJlciBjdXJyX3BhZ2Up CiAKIAlBc3NlcnQoc28tPm51bUFycmF5S2V5cyk7CiAKLQlidHNjYW4gPSAoQlRQYXJhbGxl bFNjYW5EZXNjKSBPZmZzZXRUb1BvaW50ZXIoKHZvaWQgKikgcGFyYWxsZWxfc2NhbiwKKwli dHNjYW4gPSAoQlRQYXJhbGxlbFNjYW5EZXNjKSBPZmZzZXRUb1BvaW50ZXIocGFyYWxsZWxf c2NhbiwKIAkJCQkJCQkJCQkJCSAgcGFyYWxsZWxfc2Nhbi0+cHNfb2Zmc2V0KTsKIAogCVNw aW5Mb2NrQWNxdWlyZSgmYnRzY2FuLT5idHBzX211dGV4KTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnRzb3J0LmMKaW5kZXggZmI5YTA1ZjdhZjEuLjE3YTM1MmQwNDBjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtNDc1LDcgKzQ3NSw3IEBAIF9idF9z cG9vbHNfaGVhcHNjYW4oUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsIEJUQnVpbGRT dGF0ZSAqYnVpbGRzdGF0ZSwKIAkvKiBGaWxsIHNwb29sIHVzaW5nIGVpdGhlciBzZXJpYWwg b3IgcGFyYWxsZWwgaGVhcCBzY2FuICovCiAJaWYgKCFidWlsZHN0YXRlLT5idGxlYWRlcikK IAkJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5k ZXhJbmZvLCB0cnVlLCB0cnVlLAotCQkJCQkJCQkJCSAgIF9idF9idWlsZF9jYWxsYmFjaywg KHZvaWQgKikgYnVpbGRzdGF0ZSwKKwkJCQkJCQkJCQkgICBfYnRfYnVpbGRfY2FsbGJhY2ss IGJ1aWxkc3RhdGUsCiAJCQkJCQkJCQkJICAgTlVMTCk7CiAJZWxzZQogCQlyZWx0dXBsZXMg PSBfYnRfcGFyYWxsZWxfaGVhcHNjYW4oYnVpbGRzdGF0ZSwKQEAgLTE5MzAsNyArMTkzMCw3 IEBAIF9idF9wYXJhbGxlbF9zY2FuX2FuZF9zb3J0KEJUU3Bvb2wgKmJ0c3Bvb2wsIEJUU3Bv b2wgKmJ0c3Bvb2wyLAogCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQo YnRzaGFyZWQpKTsKIAlyZWx0dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGJ0c3Bv b2wtPmhlYXAsIGJ0c3Bvb2wtPmluZGV4LCBpbmRleEluZm8sCiAJCQkJCQkJCQkgICB0cnVl LCBwcm9ncmVzcywgX2J0X2J1aWxkX2NhbGxiYWNrLAotCQkJCQkJCQkJICAgKHZvaWQgKikg JmJ1aWxkc3RhdGUsIHNjYW4pOworCQkJCQkJCQkJICAgJmJ1aWxkc3RhdGUsIHNjYW4pOwog CiAJLyogRXhlY3V0ZSB0aGlzIHdvcmtlcidzIHBhcnQgb2YgdGhlIHNvcnQgKi8KIAlpZiAo cHJvZ3Jlc3MpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ2lu c2VydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdpbnNlcnQuYwppbmRleCAx YmVjMTljMmI4OC4uMzA1Y2VkNGRlYTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9zcGdpc3Qvc3BnaW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGdpbnNlcnQuYwpAQCAtMTIyLDcgKzEyMiw3IEBAIHNwZ2J1aWxkKFJlbGF0aW9uIGhlYXAs IFJlbGF0aW9uIGluZGV4LCBJbmRleEluZm8gKmluZGV4SW5mbykKIAkJCQkJCQkJCQkJICBB TExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKIAogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1 aWxkX3NjYW4oaGVhcCwgaW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwgdHJ1ZSwKLQkJCQkJCQkJ CSAgIHNwZ2lzdEJ1aWxkQ2FsbGJhY2ssICh2b2lkICopICZidWlsZHN0YXRlLAorCQkJCQkJ CQkJICAgc3BnaXN0QnVpbGRDYWxsYmFjaywgJmJ1aWxkc3RhdGUsCiAJCQkJCQkJCQkgICBO VUxMKTsKIAogCU1lbW9yeUNvbnRleHREZWxldGUoYnVpbGRzdGF0ZS50bXBDdHgpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd1dGlscy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd1dGlscy5jCmluZGV4IDcyYjc2NjE5NzFmLi5lOTNk OTg2OWIyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd1dGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndXRpbHMuYwpAQCAtMjc5 LDcgKzI3OSw3IEBAIHNwZ0dldENhY2hlKFJlbGF0aW9uIGluZGV4KQogCQkJVW5sb2NrUmVs ZWFzZUJ1ZmZlcihtZXRhYnVmZmVyKTsKIAkJfQogCi0JCWluZGV4LT5yZF9hbWNhY2hlID0g KHZvaWQgKikgY2FjaGU7CisJCWluZGV4LT5yZF9hbWNhY2hlID0gY2FjaGU7CiAJfQogCWVs c2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFz ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYwppbmRleCAyM2Rk MGM2ZWY2ZS4uNDliZTFkZjkxYzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3R3b3BoYXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdv cGhhc2UuYwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIHBnX3ByZXBhcmVkX3hhY3QoUEdfRlVOQ1RJ T05fQVJHUykKIAkJICogb3V0IGFzIGEgcmVzdWx0IHNldC4KIAkJICovCiAJCXN0YXR1cyA9 IChXb3JraW5nX1N0YXRlICopIHBhbGxvYyhzaXplb2YoV29ya2luZ19TdGF0ZSkpOwotCQlm dW5jY3R4LT51c2VyX2ZjdHggPSAodm9pZCAqKSBzdGF0dXM7CisJCWZ1bmNjdHgtPnVzZXJf ZmN0eCA9IHN0YXR1czsKIAogCQlzdGF0dXMtPm5neGFjdHMgPSBHZXRQcmVwYXJlZFRyYW5z YWN0aW9uTGlzdCgmc3RhdHVzLT5hcnJheSk7CiAJCXN0YXR1cy0+Y3VycklkeCA9IDA7CkBA IC0xNzA3LDggKzE3MDcsNyBAQCBQcm9jZXNzUmVjb3JkcyhjaGFyICpidWZwdHIsIFRyYW5z YWN0aW9uSWQgeGlkLAogCQlidWZwdHIgKz0gTUFYQUxJR04oc2l6ZW9mKFR3b1BoYXNlUmVj b3JkT25EaXNrKSk7CiAKIAkJaWYgKGNhbGxiYWNrc1tyZWNvcmQtPnJtaWRdICE9IE5VTEwp Ci0JCQljYWxsYmFja3NbcmVjb3JkLT5ybWlkXSAoeGlkLCByZWNvcmQtPmluZm8sCi0JCQkJ CQkJCQkgKHZvaWQgKikgYnVmcHRyLCByZWNvcmQtPmxlbik7CisJCQljYWxsYmFja3NbcmVj b3JkLT5ybWlkXSAoeGlkLCByZWNvcmQtPmluZm8sIGJ1ZnB0ciwgcmVjb3JkLT5sZW4pOwog CiAJCWJ1ZnB0ciArPSBNQVhBTElHTihyZWNvcmQtPmxlbik7CiAJfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwppbmRleCAzMWNhYTQ5ZDZjMy4uOGZl NTFlYzQ4NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dy ZWNvdmVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVy eS5jCkBAIC0xOTI0LDcgKzE5MjQsNyBAQCBBcHBseVdhbFJlY29yZChYTG9nUmVhZGVyU3Rh dGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGltZUxpbmVJRCAqcmVwbAog CiAJLyogU2V0dXAgZXJyb3IgdHJhY2ViYWNrIHN1cHBvcnQgZm9yIGVyZXBvcnQoKSAqLwog CWVycmNhbGxiYWNrLmNhbGxiYWNrID0gcm1fcmVkb19lcnJvcl9jYWxsYmFjazsKLQllcnJj YWxsYmFjay5hcmcgPSAodm9pZCAqKSB4bG9ncmVhZGVyOworCWVycmNhbGxiYWNrLmFyZyA9 IHhsb2dyZWFkZXI7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0 YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKQEAgLTQ4MzIs NyArNDgzMiw3IEBAIGNoZWNrX3JlY292ZXJ5X3RhcmdldF9sc24oY2hhciAqKm5ld3ZhbCwg dm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogCiAJCW15ZXh0cmEgPSAoWExvZ1Jl Y1B0ciAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoWExvZ1JlY1B0cikpOwogCQkqbXll eHRyYSA9IGxzbjsKLQkJKmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKwkJKmV4dHJhID0g bXlleHRyYTsKIAl9CiAJcmV0dXJuIHRydWU7CiB9CkBAIC00OTk2LDcgKzQ5OTYsNyBAQCBj aGVja19yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogCiAJbXlleHRyYSA9IChSZWNvdmVyeVRhcmdldFRp bWVMaW5lR29hbCAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoUmVjb3ZlcnlUYXJnZXRU aW1lTGluZUdvYWwpKTsKIAkqbXlleHRyYSA9IHJ0dGc7Ci0JKmV4dHJhID0gKHZvaWQgKikg bXlleHRyYTsKKwkqZXh0cmEgPSBteWV4dHJhOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC01 MDMyLDcgKzUwMzIsNyBAQCBjaGVja19yZWNvdmVyeV90YXJnZXRfeGlkKGNoYXIgKipuZXd2 YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAogCQlteWV4dHJhID0gKFRy YW5zYWN0aW9uSWQgKikgZ3VjX21hbGxvYyhFUlJPUiwgc2l6ZW9mKFRyYW5zYWN0aW9uSWQp KTsKIAkJKm15ZXh0cmEgPSB4aWQ7Ci0JCSpleHRyYSA9ICh2b2lkICopIG15ZXh0cmE7CisJ CSpleHRyYSA9IG15ZXh0cmE7CiAJfQogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwppbmRleCAwNDg5Y2JhYmNiOC4uMmFmYzU1MDU0MGMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0yMjQwLDcgKzIyNDAsNyBAQCBmaW5kX2V4cHJf cmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAkJY29udGV4dC0+cnRhYmxlcyA9IGxj b25zKHF1ZXJ5LT5ydGFibGUsIGNvbnRleHQtPnJ0YWJsZXMpOwogCQlyZXN1bHQgPSBxdWVy eV90cmVlX3dhbGtlcihxdWVyeSwKIAkJCQkJCQkJICAgZmluZF9leHByX3JlZmVyZW5jZXNf d2Fsa2VyLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0LAorCQkJCQkJCQkgICBjb250 ZXh0LAogCQkJCQkJCQkgICBRVFdfSUdOT1JFX0pPSU5BTElBU0VTIHwKIAkJCQkJCQkJICAg UVRXX0VYQU1JTkVfU09SVEdST1VQKTsKIAkJY29udGV4dC0+cnRhYmxlcyA9IGxpc3RfZGVs ZXRlX2ZpcnN0KGNvbnRleHQtPnJ0YWJsZXMpOwpAQCAtMjMxMCw3ICsyMzEwLDcgQEAgZmlu ZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJfQogCiAJcmV0dXJuIGV4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2Vy LAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCQkJCQkJCQkgIGNvbnRleHQpOwog fQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCBjNTRhNTQzYzUzNi4uY2QxYzEzNjAyMmMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0yNzMxLDcgKzI3MzEsNyBAQCBjaGVja19uZXN0ZWRf Z2VuZXJhdGVkX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogCX0KIAllbHNl CiAJCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGNoZWNrX25lc3RlZF9n ZW5lcmF0ZWRfd2Fsa2VyLAotCQkJCQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwkJCQkJ CQkJCSAgY29udGV4dCk7CiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5k ZXggNzRkMGYzMDk3ZWIuLjA5ZWQ2MzE2ODVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0z Mzc5LDcgKzMzNzksNyBAQCB2YWxpZGF0ZV9pbmRleChPaWQgaGVhcElkLCBPaWQgaW5kZXhJ ZCwgU25hcHNob3Qgc25hcHNob3QpCiAKIAkvKiBhbWJ1bGtkZWxldGUgdXBkYXRlcyBwcm9n cmVzcyBtZXRyaWNzICovCiAJKHZvaWQpIGluZGV4X2J1bGtfZGVsZXRlKCZpdmluZm8sIE5V TEwsCi0JCQkJCQkJIHZhbGlkYXRlX2luZGV4X2NhbGxiYWNrLCAodm9pZCAqKSAmc3RhdGUp OworCQkJCQkJCSB2YWxpZGF0ZV9pbmRleF9jYWxsYmFjaywgJnN0YXRlKTsKIAogCS8qIEV4 ZWN1dGUgdGhlIHNvcnQgKi8KIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFjY2Vzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhY2Nlc3MuYwpp bmRleCAwZTYwNmRkZDg5NS4uMzliMTgwZGRmNTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvb2JqZWN0YWNjZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmpl Y3RhY2Nlc3MuYwpAQCAtNDIsNyArNDIsNyBAQCBSdW5PYmplY3RQb3N0Q3JlYXRlSG9vayhP aWQgY2xhc3NJZCwgT2lkIG9iamVjdElkLCBpbnQgc3ViSWQsCiAKIAkoKm9iamVjdF9hY2Nl c3NfaG9vaykgKE9BVF9QT1NUX0NSRUFURSwKIAkJCQkJCSAgIGNsYXNzSWQsIG9iamVjdElk LCBzdWJJZCwKLQkJCQkJCSAgICh2b2lkICopICZwY19hcmcpOworCQkJCQkJICAgJnBjX2Fy Zyk7CiB9CiAKIC8qCkBAIC02NCw3ICs2NCw3IEBAIFJ1bk9iamVjdERyb3BIb29rKE9pZCBj bGFzc0lkLCBPaWQgb2JqZWN0SWQsIGludCBzdWJJZCwKIAogCSgqb2JqZWN0X2FjY2Vzc19o b29rKSAoT0FUX0RST1AsCiAJCQkJCQkgICBjbGFzc0lkLCBvYmplY3RJZCwgc3ViSWQsCi0J CQkJCQkgICAodm9pZCAqKSAmZHJvcF9hcmcpOworCQkJCQkJICAgJmRyb3BfYXJnKTsKIH0K IAogLyoKQEAgLTEwMyw3ICsxMDMsNyBAQCBSdW5PYmplY3RQb3N0QWx0ZXJIb29rKE9pZCBj bGFzc0lkLCBPaWQgb2JqZWN0SWQsIGludCBzdWJJZCwKIAogCSgqb2JqZWN0X2FjY2Vzc19o b29rKSAoT0FUX1BPU1RfQUxURVIsCiAJCQkJCQkgICBjbGFzc0lkLCBvYmplY3RJZCwgc3Vi SWQsCi0JCQkJCQkgICAodm9pZCAqKSAmcGFfYXJnKTsKKwkJCQkJCSAgICZwYV9hcmcpOwog fQogCiAvKgpAQCAtMTI1LDcgKzEyNSw3IEBAIFJ1bk5hbWVzcGFjZVNlYXJjaEhvb2soT2lk IG9iamVjdElkLCBib29sIGVyZXBvcnRfb25fdmlvbGF0aW9uKQogCiAJKCpvYmplY3RfYWNj ZXNzX2hvb2spIChPQVRfTkFNRVNQQUNFX1NFQVJDSCwKIAkJCQkJCSAgIE5hbWVzcGFjZVJl bGF0aW9uSWQsIG9iamVjdElkLCAwLAotCQkJCQkJICAgKHZvaWQgKikgJm5zX2FyZyk7CisJ CQkJCQkgICAmbnNfYXJnKTsKIAogCXJldHVybiBuc19hcmcucmVzdWx0OwogfQpAQCAtMTY4 LDcgKzE2OCw3IEBAIFJ1bk9iamVjdFBvc3RDcmVhdGVIb29rU3RyKE9pZCBjbGFzc0lkLCBj b25zdCBjaGFyICpvYmplY3ROYW1lLCBpbnQgc3ViSWQsCiAKIAkoKm9iamVjdF9hY2Nlc3Nf aG9va19zdHIpIChPQVRfUE9TVF9DUkVBVEUsCiAJCQkJCQkJICAgY2xhc3NJZCwgb2JqZWN0 TmFtZSwgc3ViSWQsCi0JCQkJCQkJICAgKHZvaWQgKikgJnBjX2FyZyk7CisJCQkJCQkJICAg JnBjX2FyZyk7CiB9CiAKIC8qCkBAIC0xOTAsNyArMTkwLDcgQEAgUnVuT2JqZWN0RHJvcEhv b2tTdHIoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm9iamVjdE5hbWUsIGludCBzdWJJZCwK IAogCSgqb2JqZWN0X2FjY2Vzc19ob29rX3N0cikgKE9BVF9EUk9QLAogCQkJCQkJCSAgIGNs YXNzSWQsIG9iamVjdE5hbWUsIHN1YklkLAotCQkJCQkJCSAgICh2b2lkICopICZkcm9wX2Fy Zyk7CisJCQkJCQkJICAgJmRyb3BfYXJnKTsKIH0KIAogLyoKQEAgLTIyOSw3ICsyMjksNyBA QCBSdW5PYmplY3RQb3N0QWx0ZXJIb29rU3RyKE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpv YmplY3ROYW1lLCBpbnQgc3ViSWQsCiAKIAkoKm9iamVjdF9hY2Nlc3NfaG9va19zdHIpIChP QVRfUE9TVF9BTFRFUiwKIAkJCQkJCQkgICBjbGFzc0lkLCBvYmplY3ROYW1lLCBzdWJJZCwK LQkJCQkJCQkgICAodm9pZCAqKSAmcGFfYXJnKTsKKwkJCQkJCQkgICAmcGFfYXJnKTsKIH0K IAogLyoKQEAgLTI1MSw3ICsyNTEsNyBAQCBSdW5OYW1lc3BhY2VTZWFyY2hIb29rU3RyKGNv bnN0IGNoYXIgKm9iamVjdE5hbWUsIGJvb2wgZXJlcG9ydF9vbl92aW9sYXRpb24pCiAKIAko Km9iamVjdF9hY2Nlc3NfaG9va19zdHIpIChPQVRfTkFNRVNQQUNFX1NFQVJDSCwKIAkJCQkJ CQkgICBOYW1lc3BhY2VSZWxhdGlvbklkLCBvYmplY3ROYW1lLCAwLAotCQkJCQkJCSAgICh2 b2lkICopICZuc19hcmcpOworCQkJCQkJCSAgICZuc19hcmcpOwogCiAJcmV0dXJuIG5zX2Fy Zy5yZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Byb2Mu YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHJvYy5jCmluZGV4IDUyOGMxN2NkN2Y2Li43 OWE2ZGIwOGM0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wcm9jLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wcm9jLmMKQEAgLTg3Myw3ICs4NzMsNyBA QCBmbWdyX3NxbF92YWxpZGF0b3IoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FsbGJhY2tfYXJn LnByb3NyYyA9IHByb3NyYzsKIAogCQlzcWxlcnJjb250ZXh0LmNhbGxiYWNrID0gc3FsX2Z1 bmN0aW9uX3BhcnNlX2Vycm9yX2NhbGxiYWNrOwotCQlzcWxlcnJjb250ZXh0LmFyZyA9ICh2 b2lkICopICZjYWxsYmFja19hcmc7CisJCXNxbGVycmNvbnRleHQuYXJnID0gJmNhbGxiYWNr X2FyZzsKIAkJc3FsZXJyY29udGV4dC5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7 CiAJCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmc3FsZXJyY29udGV4dDsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDdlNWUzNTdmZDllLi41ZGFiYjQ4ZDI4 MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtMTEzOSw3ICsx MTM5LDcgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CQkJCQkJICAgUEdfTk9ERV9UUkVFT0lELCAtMSwgMCk7CiAKIAkJZnVuY2N0eC0+dHVwbGVf ZGVzYyA9IEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwotCQlmdW5jY3R4LT51c2VyX2ZjdHgg PSAodm9pZCAqKSB0YWJsZV9pbmZvczsKKwkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gdGFibGVf aW5mb3M7CiAKIAkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCX0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb3B5ZnJvbS5jCmluZGV4IDA3Y2JkNWQyMmI4Li4yMTI2ZDBhZDhkZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCkBAIC05NTksNyArOTU5LDcgQEAgQ29weUZy b20oQ29weUZyb21TdGF0ZSBjc3RhdGUpCiAKIAkvKiBTZXQgdXAgY2FsbGJhY2sgdG8gaWRl bnRpZnkgZXJyb3IgbGluZSBudW1iZXIgKi8KIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IENv cHlGcm9tRXJyb3JDYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSBjc3Rh dGU7CisJZXJyY2FsbGJhY2suYXJnID0gY3N0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3Vz ID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNh bGxiYWNrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9mb3JlaWduY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwppbmRleCBjZjYxYmJh YzFmYS4uZGQxNDg5NTE4YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Zv cmVpZ25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwpA QCAtMTUzMiw3ICsxNTMyLDcgQEAgSW1wb3J0Rm9yZWlnblNjaGVtYShJbXBvcnRGb3JlaWdu U2NoZW1hU3RtdCAqc3RtdCkKIAkJY2FsbGJhY2tfYXJnLnRhYmxlbmFtZSA9IE5VTEw7CS8q IG5vdCBrbm93biB5ZXQgKi8KIAkJY2FsbGJhY2tfYXJnLmNtZCA9IGNtZDsKIAkJc3FsZXJy Y29udGV4dC5jYWxsYmFjayA9IGltcG9ydF9lcnJvcl9jYWxsYmFjazsKLQkJc3FsZXJyY29u dGV4dC5hcmcgPSAodm9pZCAqKSAmY2FsbGJhY2tfYXJnOworCQlzcWxlcnJjb250ZXh0LmFy ZyA9ICZjYWxsYmFja19hcmc7CiAJCXNxbGVycmNvbnRleHQucHJldmlvdXMgPSBlcnJvcl9j b250ZXh0X3N0YWNrOwogCQllcnJvcl9jb250ZXh0X3N0YWNrID0gJnNxbGVycmNvbnRleHQ7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggMmY2NTI0NjNlM2MuLjI4YjNi NDViMzQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMzMzNyw3ICszMzM3 LDcgQEAgUmVpbmRleFBhcnRpdGlvbnMoY29uc3QgUmVpbmRleFN0bXQgKnN0bXQsIE9pZCBy ZWxpZCwgY29uc3QgUmVpbmRleFBhcmFtcyAqcGFyYW0KIAllcnJpbmZvLnJlbG5hbWVzcGFj ZSA9IHBzdHJkdXAocmVsbmFtZXNwYWNlKTsKIAllcnJpbmZvLnJlbGtpbmQgPSByZWxraW5k OwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gcmVpbmRleF9lcnJvcl9jYWxsYmFjazsKLQll cnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmZXJyaW5mbzsKKwllcnJjYWxsYmFjay5hcmcg PSAmZXJyaW5mbzsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3Rh Y2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2xvY2tjbWRzLmMKaW5kZXggY2QyMGFlNzZiYWQuLjc2ZDBiMDYxODNkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2xvY2tjbWRzLmMKQEAgLTU0LDcgKzU0LDcgQEAgTG9ja1RhYmxlQ29tbWFu ZChMb2NrU3RtdCAqbG9ja3N0bXQpCiAJCXJlbG9pZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZChydiwgbG9ja3N0bXQtPm1vZGUsCiAJCQkJCQkJCQkJICBsb2Nrc3RtdC0+bm93YWl0 ID8gUlZSX05PV0FJVCA6IDAsCiAJCQkJCQkJCQkJICBSYW5nZVZhckNhbGxiYWNrRm9yTG9j a1RhYmxlLAotCQkJCQkJCQkJCSAgKHZvaWQgKikgJmxvY2tzdG10LT5tb2RlKTsKKwkJCQkJ CQkJCQkgICZsb2Nrc3RtdC0+bW9kZSk7CiAKIAkJaWYgKGdldF9yZWxfcmVsa2luZChyZWxv aWQpID09IFJFTEtJTkRfVklFVykKIAkJCUxvY2tWaWV3UmVjdXJzZShyZWxvaWQsIGxvY2tz dG10LT5tb2RlLCBsb2Nrc3RtdC0+bm93YWl0LCBOSUwpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcG9saWN5LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3ku YwppbmRleCA2ZmYzZWJhODI0OS4uN2I3YjNkNzJjNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3BvbGljeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGlj eS5jCkBAIC02MjcsNyArNjI3LDcgQEAgQ3JlYXRlUG9saWN5KENyZWF0ZVBvbGljeVN0bXQg KnN0bXQpCiAJdGFibGVfaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+dGFi bGUsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCiAJCQkJCQkJCQkJMCwKIAkJCQkJCQkJCQlSYW5n ZVZhckNhbGxiYWNrRm9yUG9saWN5LAotCQkJCQkJCQkJCSh2b2lkICopIHN0bXQpOworCQkJ CQkJCQkJCXN0bXQpOwogCiAJLyogT3BlbiB0YXJnZXRfdGFibGUgdG8gYnVpbGQgcXVhbHMu IE5vIGFkZGl0aW9uYWwgbG9jayBpcyBuZWNlc3NhcnkuICovCiAJdGFyZ2V0X3RhYmxlID0g cmVsYXRpb25fb3Blbih0YWJsZV9pZCwgTm9Mb2NrKTsKQEAgLTgwMyw3ICs4MDMsNyBAQCBB bHRlclBvbGljeShBbHRlclBvbGljeVN0bXQgKnN0bXQpCiAJdGFibGVfaWQgPSBSYW5nZVZh ckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+dGFibGUsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCiAJ CQkJCQkJCQkJMCwKIAkJCQkJCQkJCQlSYW5nZVZhckNhbGxiYWNrRm9yUG9saWN5LAotCQkJ CQkJCQkJCSh2b2lkICopIHN0bXQpOworCQkJCQkJCQkJCXN0bXQpOwogCiAJdGFyZ2V0X3Rh YmxlID0gcmVsYXRpb25fb3Blbih0YWJsZV9pZCwgTm9Mb2NrKTsKIApAQCAtMTEwOCw3ICsx MTA4LDcgQEAgcmVuYW1lX3BvbGljeShSZW5hbWVTdG10ICpzdG10KQogCXRhYmxlX2lkID0g UmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnJlbGF0aW9uLCBBY2Nlc3NFeGNsdXNp dmVMb2NrLAogCQkJCQkJCQkJCTAsCiAJCQkJCQkJCQkJUmFuZ2VWYXJDYWxsYmFja0ZvclBv bGljeSwKLQkJCQkJCQkJCQkodm9pZCAqKSBzdG10KTsKKwkJCQkJCQkJCQlzdG10KTsKIAog CXRhcmdldF90YWJsZSA9IHJlbGF0aW9uX29wZW4odGFibGVfaWQsIE5vTG9jayk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggZDZmZmVmMzc0ZWEu LjYxYjE1YmNlNjAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YwpAQCAtMjQ1LDcgKzI0NSw3IEBAIGNvbnRhaW5faW52YWxpZF9yZmNvbHVtbl93YWxrZXIo Tm9kZSAqbm9kZSwgcmZfY29udGV4dCAqY29udGV4dCkKIAl9CiAKIAlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2Vy LAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCQkJCQkJCQkgIGNvbnRleHQpOwog fQogCiAvKgpAQCAtNTU5LDcgKzU1OSw3IEBAIGNoZWNrX3NpbXBsZV9yb3dmaWx0ZXJfZXhw cl93YWxrZXIoTm9kZSAqbm9kZSwgUGFyc2VTdGF0ZSAqcHN0YXRlKQogCQlpZiAoZXhwclR5 cGUobm9kZSkgPj0gRmlyc3ROb3JtYWxPYmplY3RJZCkKIAkJCWVycmRldGFpbF9tc2cgPSBf KCJVc2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCBhbGxvd2VkLiIpOwogCQllbHNlIGlmIChj aGVja19mdW5jdGlvbnNfaW5fbm9kZShub2RlLCBjb250YWluX211dGFibGVfb3JfdXNlcl9m dW5jdGlvbnNfY2hlY2tlciwKLQkJCQkJCQkJCQkgKHZvaWQgKikgcHN0YXRlKSkKKwkJCQkJ CQkJCQkgcHN0YXRlKSkKIAkJCWVycmRldGFpbF9tc2cgPSBfKCJVc2VyLWRlZmluZWQgb3Ig YnVpbHQtaW4gbXV0YWJsZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkLiIpOwogCQllbHNl IGlmIChleHByQ29sbGF0aW9uKG5vZGUpID49IEZpcnN0Tm9ybWFsT2JqZWN0SWQgfHwKIAkJ CQkgZXhwcklucHV0Q29sbGF0aW9uKG5vZGUpID49IEZpcnN0Tm9ybWFsT2JqZWN0SWQpCkBA IC01NzgsNyArNTc4LDcgQEAgY2hlY2tfc2ltcGxlX3Jvd2ZpbHRlcl9leHByX3dhbGtlcihO b2RlICpub2RlLCBQYXJzZVN0YXRlICpwc3RhdGUpCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGV4cHJMb2NhdGlvbihub2RlKSkpKTsKIAogCXJldHVybiBleHByZXNzaW9u X3RyZWVfd2Fsa2VyKG5vZGUsIGNoZWNrX3NpbXBsZV9yb3dmaWx0ZXJfZXhwcl93YWxrZXIs Ci0JCQkJCQkJCSAgKHZvaWQgKikgcHN0YXRlKTsKKwkJCQkJCQkJICBwc3RhdGUpOwogfQog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBlMTRiYzBjMDU0OC4uZDA0 YjBiMmNmZWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xNTYwLDcgKzE1 NjAsNyBAQCBSZW1vdmVSZWxhdGlvbnMoRHJvcFN0bXQgKmRyb3ApCiAKIAkJcmVsT2lkID0g UmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHJlbCwgbG9ja21vZGUsIFJWUl9NSVNTSU5HX09L LAogCQkJCQkJCQkJCSAgUmFuZ2VWYXJDYWxsYmFja0ZvckRyb3BSZWxhdGlvbiwKLQkJCQkJ CQkJCQkgICh2b2lkICopICZzdGF0ZSk7CisJCQkJCQkJCQkJICAmc3RhdGUpOwogCiAJCS8q IE5vdCB0aGVyZT8gKi8KIAkJaWYgKCFPaWRJc1ZhbGlkKHJlbE9pZCkpCkBAIC00MDg5LDcg KzQwODksNyBAQCBSZW5hbWVSZWxhdGlvbihSZW5hbWVTdG10ICpzdG10KQogCQlyZWxpZCA9 IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChzdG10LT5yZWxhdGlvbiwgbG9ja21vZGUsCiAJ CQkJCQkJCQkJIHN0bXQtPm1pc3Npbmdfb2sgPyBSVlJfTUlTU0lOR19PSyA6IDAsCiAJCQkJ CQkJCQkJIFJhbmdlVmFyQ2FsbGJhY2tGb3JBbHRlclJlbGF0aW9uLAotCQkJCQkJCQkJCSAo dm9pZCAqKSBzdG10KTsKKwkJCQkJCQkJCQkgc3RtdCk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlk KHJlbGlkKSkKIAkJewpAQCAtNDMzNyw3ICs0MzM3LDcgQEAgQWx0ZXJUYWJsZUxvb2t1cFJl bGF0aW9uKEFsdGVyVGFibGVTdG10ICpzdG10LCBMT0NLTU9ERSBsb2NrbW9kZSkKIAlyZXR1 cm4gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnJlbGF0aW9uLCBsb2NrbW9kZSwK IAkJCQkJCQkJCXN0bXQtPm1pc3Npbmdfb2sgPyBSVlJfTUlTU0lOR19PSyA6IDAsCiAJCQkJ CQkJCQlSYW5nZVZhckNhbGxiYWNrRm9yQWx0ZXJSZWxhdGlvbiwKLQkJCQkJCQkJCSh2b2lk ICopIHN0bXQpOworCQkJCQkJCQkJc3RtdCk7CiB9CiAKIC8qCkBAIC0xNzMwMSw3ICsxNzMw MSw3IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10 LCBPaWQgKm9sZHNjaGVtYSkKIAlyZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChz dG10LT5yZWxhdGlvbiwgQWNjZXNzRXhjbHVzaXZlTG9jaywKIAkJCQkJCQkJCSBzdG10LT5t aXNzaW5nX29rID8gUlZSX01JU1NJTkdfT0sgOiAwLAogCQkJCQkJCQkJIFJhbmdlVmFyQ2Fs bGJhY2tGb3JBbHRlclJlbGF0aW9uLAotCQkJCQkJCQkJICh2b2lkICopIHN0bXQpOworCQkJ CQkJCQkJIHN0bXQpOwogCiAJaWYgKCFPaWRJc1ZhbGlkKHJlbGlkKSkKIAl7CkBAIC0xOTk0 Miw3ICsxOTk0Miw3IEBAIEFURXhlY0F0dGFjaFBhcnRpdGlvbklkeChMaXN0ICoqd3F1ZXVl LCBSZWxhdGlvbiBwYXJlbnRJZHgsIFJhbmdlVmFyICpuYW1lKQogCXBhcnRJZHhJZCA9CiAJ CVJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChuYW1lLCBBY2Nlc3NFeGNsdXNpdmVMb2NrLCAw LAogCQkJCQkJCQkgUmFuZ2VWYXJDYWxsYmFja0ZvckF0dGFjaEluZGV4LAotCQkJCQkJCQkg KHZvaWQgKikgJnN0YXRlKTsKKwkJCQkJCQkJICZzdGF0ZSk7CiAJLyogTm90IHRoZXJlPyAq LwogCWlmICghT2lkSXNWYWxpZChwYXJ0SWR4SWQpKQogCQllcmVwb3J0KEVSUk9SLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVzcGFjZS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVzcGFjZS5jCmluZGV4IDAwYzFlZDE5ZmRmLi44ZWJiZDkzNWIw YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVzcGFjZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlc3BhY2UuYwpAQCAtMTI5MCw3ICsxMjkwLDcg QEAgY2hlY2tfdGVtcF90YWJsZXNwYWNlcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEs IEd1Y1NvdXJjZSBzb3VyY2UpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCW15ZXh0cmEtPm51bVNw Y3MgPSBudW1TcGNzOwogCQltZW1jcHkobXlleHRyYS0+dGJsU3BjcywgdGJsU3BjcywgbnVt U3BjcyAqIHNpemVvZihPaWQpKTsKLQkJKmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKwkJ KmV4dHJhID0gbXlleHRyYTsKIAogCQlwZnJlZSh0YmxTcGNzKTsKIAl9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHlwZWNtZHMuYwppbmRleCAyYTY1NTBkZTkwNy4uMmIxZGE4YjFkNDEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMzU1OCw3ICszNTU4LDcgQEAgZG9tYWluQWRkQ2hl Y2tDb25zdHJhaW50KE9pZCBkb21haW5PaWQsIE9pZCBkb21haW5OYW1lc3BhY2UsIE9pZCBi YXNlVHlwZU9pZCwKIAlkb21WYWwtPmxvY2F0aW9uID0gLTE7CQkvKiB3aWxsIGJlIHNldCB3 aGVuL2lmIHVzZWQgKi8KIAogCXBzdGF0ZS0+cF9wcmVfY29sdW1ucmVmX2hvb2sgPSByZXBs YWNlX2RvbWFpbl9jb25zdHJhaW50X3ZhbHVlOwotCXBzdGF0ZS0+cF9yZWZfaG9va19zdGF0 ZSA9ICh2b2lkICopIGRvbVZhbDsKKwlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSBkb21W YWw7CiAKIAlleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGNvbnN0ci0+cmF3X2V4cHIs IEVYUFJfS0lORF9ET01BSU5fQ0hFQ0spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4 IDg2ZjM2YjM2OTU0Li45ZTE3M2Y2YjJkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAg LTI1MTcsNyArMjUxNyw3IEBAIHZhY19idWxrZGVsX29uZV9pbmRleChJbmRleFZhY3V1bUlu Zm8gKml2aW5mbywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIHsKIAkvKiBEbyBi dWxrIGRlbGV0aW9uICovCiAJaXN0YXQgPSBpbmRleF9idWxrX2RlbGV0ZShpdmluZm8sIGlz dGF0LCB2YWNfdGlkX3JlYXBlZCwKLQkJCQkJCQkgICh2b2lkICopIGRlYWRfaXRlbXMpOwor CQkJCQkJCSAgZGVhZF9pdGVtcyk7CiAKIAllcmVwb3J0KGl2aW5mby0+bWVzc2FnZV9sZXZl bCwKIAkJCShlcnJtc2coInNjYW5uZWQgaW5kZXggXCIlc1wiIHRvIHJlbW92ZSAlbGxkIHJv dyB2ZXJzaW9ucyIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YXJpYWJs ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwppbmRleCA3ZGYyNjk0MmFm Zi4uMjk0OTBiMzg2OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwpAQCAtMjMyLDcg KzIzMiw3IEBAIGNoZWNrX2RhdGVzdHlsZShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEs IEd1Y1NvdXJjZSBzb3VyY2UpCiAJCXJldHVybiBmYWxzZTsKIAlteWV4dHJhWzBdID0gbmV3 RGF0ZVN0eWxlOwogCW15ZXh0cmFbMV0gPSBuZXdEYXRlT3JkZXI7Ci0JKmV4dHJhID0gKHZv aWQgKikgbXlleHRyYTsKKwkqZXh0cmEgPSBteWV4dHJhOwogCiAJcmV0dXJuIHRydWU7CiB9 CkBAIC04ODcsNyArODg3LDcgQEAgY2hlY2tfc2Vzc2lvbl9hdXRob3JpemF0aW9uKGNoYXIg KipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAkJcmV0dXJuIGZh bHNlOwogCW15ZXh0cmEtPnJvbGVpZCA9IHJvbGVpZDsKIAlteWV4dHJhLT5pc19zdXBlcnVz ZXIgPSBpc19zdXBlcnVzZXI7Ci0JKmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKwkqZXh0 cmEgPSBteWV4dHJhOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC05OTYsNyArOTk2LDcgQEAg Y2hlY2tfcm9sZShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3Vy Y2UpCiAJCXJldHVybiBmYWxzZTsKIAlteWV4dHJhLT5yb2xlaWQgPSByb2xlaWQ7CiAJbXll eHRyYS0+aXNfc3VwZXJ1c2VyID0gaXNfc3VwZXJ1c2VyOwotCSpleHRyYSA9ICh2b2lkICop IG15ZXh0cmE7CisJKmV4dHJhID0gbXlleHRyYTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggNDU5NTRkOTc5ZjYuLjRhYWEwNzNlMzhkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTI5MDgsOCArMjkwOCw3IEBAIGV4cHJf c2V0dXBfd2Fsa2VyKE5vZGUgKm5vZGUsIEV4cHJTZXR1cEluZm8gKmluZm8pCiAJCXJldHVy biBmYWxzZTsKIAlpZiAoSXNBKG5vZGUsIEdyb3VwaW5nRnVuYykpCiAJCXJldHVybiBmYWxz ZTsKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBleHByX3NldHVwX3dh bGtlciwKLQkJCQkJCQkJICAodm9pZCAqKSBpbmZvKTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLCBleHByX3NldHVwX3dhbGtlciwgaW5mbyk7CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA2YTdmMThmNmRlZC4u ZDJiOTk4OWQwODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpA QCAtMjgxLDQ0ICsyODEsNDQgQEAgRXhlY1JlYWR5SW50ZXJwcmV0ZWRFeHByKEV4cHJTdGF0 ZSAqc3RhdGUpCiAJCWlmIChzdGVwMCA9PSBFRU9QX0lOTkVSX0ZFVENIU09NRSAmJgogCQkJ c3RlcDEgPT0gRUVPUF9JTk5FUl9WQVIpCiAJCXsKLQkJCXN0YXRlLT5ldmFsZnVuY19wcml2 YXRlID0gKHZvaWQgKikgRXhlY0p1c3RJbm5lclZhcjsKKwkJCXN0YXRlLT5ldmFsZnVuY19w cml2YXRlID0gRXhlY0p1c3RJbm5lclZhcjsKIAkJCXJldHVybjsKIAkJfQogCQllbHNlIGlm IChzdGVwMCA9PSBFRU9QX09VVEVSX0ZFVENIU09NRSAmJgogCQkJCSBzdGVwMSA9PSBFRU9Q X09VVEVSX1ZBUikKIAkJewotCQkJc3RhdGUtPmV2YWxmdW5jX3ByaXZhdGUgPSAodm9pZCAq KSBFeGVjSnVzdE91dGVyVmFyOworCQkJc3RhdGUtPmV2YWxmdW5jX3ByaXZhdGUgPSBFeGVj SnVzdE91dGVyVmFyOwogCQkJcmV0dXJuOwogCQl9CiAJCWVsc2UgaWYgKHN0ZXAwID09IEVF T1BfU0NBTl9GRVRDSFNPTUUgJiYKIAkJCQkgc3RlcDEgPT0gRUVPUF9TQ0FOX1ZBUikKIAkJ ewotCQkJc3RhdGUtPmV2YWxmdW5jX3ByaXZhdGUgPSAodm9pZCAqKSBFeGVjSnVzdFNjYW5W YXI7CisJCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9IEV4ZWNKdXN0U2NhblZhcjsKIAkJ CXJldHVybjsKIAkJfQogCQllbHNlIGlmIChzdGVwMCA9PSBFRU9QX0lOTkVSX0ZFVENIU09N RSAmJgogCQkJCSBzdGVwMSA9PSBFRU9QX0FTU0lHTl9JTk5FUl9WQVIpCiAJCXsKLQkJCXN0 YXRlLT5ldmFsZnVuY19wcml2YXRlID0gKHZvaWQgKikgRXhlY0p1c3RBc3NpZ25Jbm5lclZh cjsKKwkJCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gRXhlY0p1c3RBc3NpZ25Jbm5lclZh cjsKIAkJCXJldHVybjsKIAkJfQogCQllbHNlIGlmIChzdGVwMCA9PSBFRU9QX09VVEVSX0ZF VENIU09NRSAmJgogCQkJCSBzdGVwMSA9PSBFRU9QX0FTU0lHTl9PVVRFUl9WQVIpCiAJCXsK LQkJCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gKHZvaWQgKikgRXhlY0p1c3RBc3NpZ25P dXRlclZhcjsKKwkJCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gRXhlY0p1c3RBc3NpZ25P dXRlclZhcjsKIAkJCXJldHVybjsKIAkJfQogCQllbHNlIGlmIChzdGVwMCA9PSBFRU9QX1ND QU5fRkVUQ0hTT01FICYmCiAJCQkJIHN0ZXAxID09IEVFT1BfQVNTSUdOX1NDQU5fVkFSKQog CQl7Ci0JCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9ICh2b2lkICopIEV4ZWNKdXN0QXNz aWduU2NhblZhcjsKKwkJCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gRXhlY0p1c3RBc3Np Z25TY2FuVmFyOwogCQkJcmV0dXJuOwogCQl9CiAJCWVsc2UgaWYgKHN0ZXAwID09IEVFT1Bf Q0FTRV9URVNUVkFMICYmCiAJCQkJIHN0ZXAxID09IEVFT1BfRlVOQ0VYUFJfU1RSSUNUICYm CiAJCQkJIHN0YXRlLT5zdGVwc1swXS5kLmNhc2V0ZXN0LnZhbHVlKQogCQl7Ci0JCQlzdGF0 ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9ICh2b2lkICopIEV4ZWNKdXN0QXBwbHlGdW5jVG9DYXNl OworCQkJc3RhdGUtPmV2YWxmdW5jX3ByaXZhdGUgPSBFeGVjSnVzdEFwcGx5RnVuY1RvQ2Fz ZTsKIAkJCXJldHVybjsKIAkJfQogCX0KQEAgLTMyOCwzNyArMzI4LDM3IEBAIEV4ZWNSZWFk eUludGVycHJldGVkRXhwcihFeHByU3RhdGUgKnN0YXRlKQogCiAJCWlmIChzdGVwMCA9PSBF RU9QX0NPTlNUKQogCQl7Ci0JCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9ICh2b2lkICop IEV4ZWNKdXN0Q29uc3Q7CisJCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9IEV4ZWNKdXN0 Q29uc3Q7CiAJCQlyZXR1cm47CiAJCX0KIAkJZWxzZSBpZiAoc3RlcDAgPT0gRUVPUF9JTk5F Ul9WQVIpCiAJCXsKLQkJCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gKHZvaWQgKikgRXhl Y0p1c3RJbm5lclZhclZpcnQ7CisJCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9IEV4ZWNK dXN0SW5uZXJWYXJWaXJ0OwogCQkJcmV0dXJuOwogCQl9CiAJCWVsc2UgaWYgKHN0ZXAwID09 IEVFT1BfT1VURVJfVkFSKQogCQl7Ci0JCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9ICh2 b2lkICopIEV4ZWNKdXN0T3V0ZXJWYXJWaXJ0OworCQkJc3RhdGUtPmV2YWxmdW5jX3ByaXZh dGUgPSBFeGVjSnVzdE91dGVyVmFyVmlydDsKIAkJCXJldHVybjsKIAkJfQogCQllbHNlIGlm IChzdGVwMCA9PSBFRU9QX1NDQU5fVkFSKQogCQl7Ci0JCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJp dmF0ZSA9ICh2b2lkICopIEV4ZWNKdXN0U2NhblZhclZpcnQ7CisJCQlzdGF0ZS0+ZXZhbGZ1 bmNfcHJpdmF0ZSA9IEV4ZWNKdXN0U2NhblZhclZpcnQ7CiAJCQlyZXR1cm47CiAJCX0KIAkJ ZWxzZSBpZiAoc3RlcDAgPT0gRUVPUF9BU1NJR05fSU5ORVJfVkFSKQogCQl7Ci0JCQlzdGF0 ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9ICh2b2lkICopIEV4ZWNKdXN0QXNzaWduSW5uZXJWYXJW aXJ0OworCQkJc3RhdGUtPmV2YWxmdW5jX3ByaXZhdGUgPSBFeGVjSnVzdEFzc2lnbklubmVy VmFyVmlydDsKIAkJCXJldHVybjsKIAkJfQogCQllbHNlIGlmIChzdGVwMCA9PSBFRU9QX0FT U0lHTl9PVVRFUl9WQVIpCiAJCXsKLQkJCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gKHZv aWQgKikgRXhlY0p1c3RBc3NpZ25PdXRlclZhclZpcnQ7CisJCQlzdGF0ZS0+ZXZhbGZ1bmNf cHJpdmF0ZSA9IEV4ZWNKdXN0QXNzaWduT3V0ZXJWYXJWaXJ0OwogCQkJcmV0dXJuOwogCQl9 CiAJCWVsc2UgaWYgKHN0ZXAwID09IEVFT1BfQVNTSUdOX1NDQU5fVkFSKQogCQl7Ci0JCQlz dGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9ICh2b2lkICopIEV4ZWNKdXN0QXNzaWduU2NhblZh clZpcnQ7CisJCQlzdGF0ZS0+ZXZhbGZ1bmNfcHJpdmF0ZSA9IEV4ZWNKdXN0QXNzaWduU2Nh blZhclZpcnQ7CiAJCQlyZXR1cm47CiAJCX0KIAl9CkBAIC0zNzksNyArMzc5LDcgQEAgRXhl Y1JlYWR5SW50ZXJwcmV0ZWRFeHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJc3RhdGUtPmZsYWdz IHw9IEVFT19GTEFHX0RJUkVDVF9USFJFQURFRDsKICNlbmRpZgkJCQkJCQkvKiBFRU9fVVNF X0NPTVBVVEVEX0dPVE8gKi8KIAotCXN0YXRlLT5ldmFsZnVuY19wcml2YXRlID0gKHZvaWQg KikgRXhlY0ludGVycEV4cHI7CisJc3RhdGUtPmV2YWxmdW5jX3ByaXZhdGUgPSBFeGVjSW50 ZXJwRXhwcjsKIH0KIAogCkBAIC0yMjE0LDcgKzIyMTQsNyBAQCBnZXRfY2FjaGVkX3Jvd3R5 cGUoT2lkIHR5cGVfaWQsIGludDMyIHR5cG1vZCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf V1JPTkdfT0JKRUNUX1RZUEUpLAogCQkJCQkJIGVycm1zZygidHlwZSAlcyBpcyBub3QgY29t cG9zaXRlIiwKIAkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwZV9pZCkpKSk7Ci0JCQlyb3dj YWNoZS0+Y2FjaGVwdHIgPSAodm9pZCAqKSB0eXBlbnRyeTsKKwkJCXJvd2NhY2hlLT5jYWNo ZXB0ciA9IHR5cGVudHJ5OwogCQkJcm93Y2FjaGUtPnR1cGRlc2NfaWQgPSB0eXBlbnRyeS0+ dHVwRGVzY19pZGVudGlmaWVyOwogCQkJaWYgKGNoYW5nZWQpCiAJCQkJKmNoYW5nZWQgPSB0 cnVlOwpAQCAtMjIzOSw3ICsyMjM5LDcgQEAgZ2V0X2NhY2hlZF9yb3d0eXBlKE9pZCB0eXBl X2lkLCBpbnQzMiB0eXBtb2QsCiAJCQl0dXBEZXNjID0gbG9va3VwX3Jvd3R5cGVfdHVwZGVz Yyh0eXBlX2lkLCB0eXBtb2QpOwogCQkJLyogRHJvcCBwaW4gYWNxdWlyZWQgYnkgbG9va3Vw X3Jvd3R5cGVfdHVwZGVzYyAqLwogCQkJUmVsZWFzZVR1cGxlRGVzYyh0dXBEZXNjKTsKLQkJ CXJvd2NhY2hlLT5jYWNoZXB0ciA9ICh2b2lkICopIHR1cERlc2M7CisJCQlyb3djYWNoZS0+ Y2FjaGVwdHIgPSB0dXBEZXNjOwogCQkJcm93Y2FjaGUtPnR1cGRlc2NfaWQgPSAwOwkvKiBu b3QgYSB2YWxpZCB2YWx1ZSBmb3Igbm9uLVJFQ09SRCAqLwogCQkJaWYgKGNoYW5nZWQpCiAJ CQkJKmNoYW5nZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0luZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwpp bmRleCBmOWEyZmFjNzllNC4uZjBhNWY4ODc5YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCkBAIC0xMTMwLDcgKzExMzAsNyBAQCBpbmRleF9leHByZXNzaW9uX2No YW5nZWRfd2Fsa2VyKE5vZGUgKm5vZGUsIEJpdG1hcHNldCAqYWxsVXBkYXRlZENvbHMpCiAJ fQogCiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgaW5kZXhfZXhwcmVz c2lvbl9jaGFuZ2VkX3dhbGtlciwKLQkJCQkJCQkJICAodm9pZCAqKSBhbGxVcGRhdGVkQ29s cyk7CisJCQkJCQkJCSAgYWxsVXBkYXRlZENvbHMpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZnVuY3Rpb25zLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9mdW5jdGlvbnMuYwppbmRleCA2OTI4NTRlMmIzZS4uNGQzMGEyYzIxNTQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2Z1bmN0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2Z1bmN0aW9ucy5jCkBAIC0yNjgsNyArMjY4LDcgQEAgc3FsX2ZuX3BhcnNl cl9zZXR1cChzdHJ1Y3QgUGFyc2VTdGF0ZSAqcHN0YXRlLCBTUUxGdW5jdGlvblBhcnNlSW5m b1B0ciBwaW5mbykKIAlwc3RhdGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9vayA9IHNxbF9mbl9w b3N0X2NvbHVtbl9yZWY7CiAJcHN0YXRlLT5wX3BhcmFtcmVmX2hvb2sgPSBzcWxfZm5fcGFy YW1fcmVmOwogCS8qIG5vIG5lZWQgdG8gdXNlIHBfY29lcmNlX3BhcmFtX2hvb2sgKi8KLQlw c3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSAodm9pZCAqKSBwaW5mbzsKKwlwc3RhdGUtPnBf cmVmX2hvb2tfc3RhdGUgPSBwaW5mbzsKIH0KIAogLyoKQEAgLTYxNCw3ICs2MTQsNyBAQCBp bml0X3NxbF9mY2FjaGUoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIE9pZCBjb2xsYXRpb24s IGJvb2wgbGF6eUV2YWxPSykKIAkgKi8KIAlmY2FjaGUgPSAoU1FMRnVuY3Rpb25DYWNoZVB0 cikgcGFsbG9jMChzaXplb2YoU1FMRnVuY3Rpb25DYWNoZSkpOwogCWZjYWNoZS0+ZmNvbnRl eHQgPSBmY29udGV4dDsKLQlmaW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSBmY2FjaGU7CisJ ZmluZm8tPmZuX2V4dHJhID0gZmNhY2hlOwogCiAJLyoKIAkgKiBnZXQgdGhlIHByb2NlZHVy ZSB0dXBsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBmdW5jdGlvbiBPaWQKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVBZ2cuYwppbmRleCA1M2VhZDc3ZWNlOC4uODRkMzNmZGViYzYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlQWdnLmMKQEAgLTEwODgsNyArMTA4OCw3IEBAIGZpbmFsaXplX2Fn Z3JlZ2F0ZShBZ2dTdGF0ZSAqYWdnc3RhdGUsCiAJCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0 YSgqZmNpbmZvLCAmcGVyYWdnLT5maW5hbGZuLAogCQkJCQkJCQkgbnVtRmluYWxBcmdzLAog CQkJCQkJCQkgcGVydHJhbnMtPmFnZ0NvbGxhdGlvbiwKLQkJCQkJCQkJICh2b2lkICopIGFn Z3N0YXRlLCBOVUxMKTsKKwkJCQkJCQkJIChOb2RlICopIGFnZ3N0YXRlLCBOVUxMKTsKIAog CQkvKiBGaWxsIGluIHRoZSB0cmFuc2l0aW9uIHN0YXRlIHZhbHVlICovCiAJCWZjaW5mby0+ YXJnc1swXS52YWx1ZSA9CkBAIC0xNDQwLDEyICsxNDQwLDExIEBAIGZpbmRfY29sc193YWxr ZXIoTm9kZSAqbm9kZSwgRmluZENvbHNDb250ZXh0ICpjb250ZXh0KQogCXsKIAkJQXNzZXJ0 KCFjb250ZXh0LT5pc19hZ2dyZWYpOwogCQljb250ZXh0LT5pc19hZ2dyZWYgPSB0cnVlOwot CQlleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRfY29sc193YWxrZXIsICh2b2lk ICopIGNvbnRleHQpOworCQlleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRfY29s c193YWxrZXIsIGNvbnRleHQpOwogCQljb250ZXh0LT5pc19hZ2dyZWYgPSBmYWxzZTsKIAkJ cmV0dXJuIGZhbHNlOwogCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2Rl LCBmaW5kX2NvbHNfd2Fsa2VyLAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRfY29sc193YWxrZXIsIGNv bnRleHQpOwogfQogCiAvKgpAQCAtNDEwMSw3ICs0MTAwLDcgQEAgYnVpbGRfcGVydHJhbnNf Zm9yX2FnZ3JlZihBZ2dTdGF0ZVBlclRyYW5zIHBlcnRyYW5zLAogCQkJCQkJCSAmcGVydHJh bnMtPnRyYW5zZm4sCiAJCQkJCQkJIG51bVRyYW5zQXJncywKIAkJCQkJCQkgcGVydHJhbnMt PmFnZ0NvbGxhdGlvbiwKLQkJCQkJCQkgKHZvaWQgKikgYWdnc3RhdGUsIE5VTEwpOworCQkJ CQkJCSAoTm9kZSAqKSBhZ2dzdGF0ZSwgTlVMTCk7CiAKIAkvKiBnZXQgaW5mbyBhYm91dCB0 aGUgc3RhdGUgdmFsdWUncyBkYXRhdHlwZSAqLwogCWdldF90eXBsZW5ieXZhbChhZ2d0cmFu c3R5cGUsCkBAIC00MTIxLDcgKzQxMjAsNyBAQCBidWlsZF9wZXJ0cmFuc19mb3JfYWdncmVm KEFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCiAJCQkJCQkJCSAmcGVydHJhbnMtPnNlcmlh bGZuLAogCQkJCQkJCQkgMSwKIAkJCQkJCQkJIEludmFsaWRPaWQsCi0JCQkJCQkJCSAodm9p ZCAqKSBhZ2dzdGF0ZSwgTlVMTCk7CisJCQkJCQkJCSAoTm9kZSAqKSBhZ2dzdGF0ZSwgTlVM TCk7CiAJfQogCiAJaWYgKE9pZElzVmFsaWQoYWdnZGVzZXJpYWxmbikpCkBAIC00MTM3LDcg KzQxMzYsNyBAQCBidWlsZF9wZXJ0cmFuc19mb3JfYWdncmVmKEFnZ1N0YXRlUGVyVHJhbnMg cGVydHJhbnMsCiAJCQkJCQkJCSAmcGVydHJhbnMtPmRlc2VyaWFsZm4sCiAJCQkJCQkJCSAy LAogCQkJCQkJCQkgSW52YWxpZE9pZCwKLQkJCQkJCQkJICh2b2lkICopIGFnZ3N0YXRlLCBO VUxMKTsKKwkJCQkJCQkJIChOb2RlICopIGFnZ3N0YXRlLCBOVUxMKTsKIAl9CiAKIAkvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNvcnQuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVTb3J0LmMKaW5kZXggM2ZjOTI1ZDdiNDguLjc2MGYyZDhlOGYz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU29ydC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTb3J0LmMKQEAgLTEyMiw3ICsxMjIsNyBAQCBFeGVj U29ydChQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJCQkJCQkJCQkJCSAgdHVwbGVzb3J0b3B0cyk7 CiAJCWlmIChub2RlLT5ib3VuZGVkKQogCQkJdHVwbGVzb3J0X3NldF9ib3VuZCh0dXBsZXNv cnRzdGF0ZSwgbm9kZS0+Ym91bmQpOwotCQlub2RlLT50dXBsZXNvcnRzdGF0ZSA9ICh2b2lk ICopIHR1cGxlc29ydHN0YXRlOworCQlub2RlLT50dXBsZXNvcnRzdGF0ZSA9IHR1cGxlc29y dHN0YXRlOwogCiAJCS8qCiAJCSAqIFNjYW4gdGhlIHN1YnBsYW4gYW5kIGZlZWQgYWxsIHRo ZSB0dXBsZXMgdG8gdHVwbGVzb3J0IHVzaW5nIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVdpbmRvd0FnZy5jCmluZGV4IDUxYTY3MDhhMzkyLi5lNzVlODU3NjcyNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMzM5LDcgKzMzOSw3IEBAIGFkdmFu Y2Vfd2luZG93YWdncmVnYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKIAlJbml0RnVu Y3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgJihwZXJhZ2dzdGF0ZS0+dHJhbnNmbiksCiAJ CQkJCQkJIG51bUFyZ3VtZW50cyArIDEsCiAJCQkJCQkJIHBlcmZ1bmNzdGF0ZS0+d2luQ29s bGF0aW9uLAotCQkJCQkJCSAodm9pZCAqKSB3aW5zdGF0ZSwgTlVMTCk7CisJCQkJCQkJIChO b2RlICopIHdpbnN0YXRlLCBOVUxMKTsKIAlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSBwZXJh Z2dzdGF0ZS0+dHJhbnNWYWx1ZTsKIAlmY2luZm8tPmFyZ3NbMF0uaXNudWxsID0gcGVyYWdn c3RhdGUtPnRyYW5zVmFsdWVJc051bGw7CiAJd2luc3RhdGUtPmN1cmFnZ2NvbnRleHQgPSBw ZXJhZ2dzdGF0ZS0+YWdnY29udGV4dDsKQEAgLTUxMCw3ICs1MTAsNyBAQCBhZHZhbmNlX3dp bmRvd2FnZ3JlZ2F0ZV9iYXNlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKIAlJbml0RnVu Y3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgJihwZXJhZ2dzdGF0ZS0+aW52dHJhbnNmbiks CiAJCQkJCQkJIG51bUFyZ3VtZW50cyArIDEsCiAJCQkJCQkJIHBlcmZ1bmNzdGF0ZS0+d2lu Q29sbGF0aW9uLAotCQkJCQkJCSAodm9pZCAqKSB3aW5zdGF0ZSwgTlVMTCk7CisJCQkJCQkJ IChOb2RlICopIHdpbnN0YXRlLCBOVUxMKTsKIAlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSBw ZXJhZ2dzdGF0ZS0+dHJhbnNWYWx1ZTsKIAlmY2luZm8tPmFyZ3NbMF0uaXNudWxsID0gcGVy YWdnc3RhdGUtPnRyYW5zVmFsdWVJc051bGw7CiAJd2luc3RhdGUtPmN1cmFnZ2NvbnRleHQg PSBwZXJhZ2dzdGF0ZS0+YWdnY29udGV4dDsKQEAgLTYwMSw3ICs2MDEsNyBAQCBmaW5hbGl6 ZV93aW5kb3dhZ2dyZWdhdGUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLAogCQlJbml0RnVu Y3Rpb25DYWxsSW5mb0RhdGEoZmNpbmZvZGF0YS5mY2luZm8sICYocGVyYWdnc3RhdGUtPmZp bmFsZm4pLAogCQkJCQkJCQkgbnVtRmluYWxBcmdzLAogCQkJCQkJCQkgcGVyZnVuY3N0YXRl LT53aW5Db2xsYXRpb24sCi0JCQkJCQkJCSAodm9pZCAqKSB3aW5zdGF0ZSwgTlVMTCk7CisJ CQkJCQkJCSAoTm9kZSAqKSB3aW5zdGF0ZSwgTlVMTCk7CiAJCWZjaW5mby0+YXJnc1swXS52 YWx1ZSA9CiAJCQlNYWtlRXhwYW5kZWRPYmplY3RSZWFkT25seShwZXJhZ2dzdGF0ZS0+dHJh bnNWYWx1ZSwKIAkJCQkJCQkJCSAgIHBlcmFnZ3N0YXRlLT50cmFuc1ZhbHVlSXNOdWxsLApA QCAtMTA0Nyw3ICsxMDQ3LDcgQEAgZXZhbF93aW5kb3dmdW5jdGlvbihXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFdpbmRvd1N0YXRlUGVyRnVuYyBwZXJmdW5jc3RhdGUsCiAJSW5pdEZ1 bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sICYocGVyZnVuY3N0YXRlLT5mbGluZm8pLAog CQkJCQkJCSBwZXJmdW5jc3RhdGUtPm51bUFyZ3VtZW50cywKIAkJCQkJCQkgcGVyZnVuY3N0 YXRlLT53aW5Db2xsYXRpb24sCi0JCQkJCQkJICh2b2lkICopIHBlcmZ1bmNzdGF0ZS0+d2lu b2JqLCBOVUxMKTsKKwkJCQkJCQkgKE5vZGUgKikgcGVyZnVuY3N0YXRlLT53aW5vYmosIE5V TEwpOwogCS8qIEp1c3QgaW4gY2FzZSwgbWFrZSBhbGwgdGhlIHJlZ3VsYXIgYXJndW1lbnQg c2xvdHMgYmUgbnVsbCAqLwogCWZvciAoaW50IGFyZ25vID0gMDsgYXJnbm8gPCBwZXJmdW5j c3RhdGUtPm51bUFyZ3VtZW50czsgYXJnbm8rKykKIAkJZmNpbmZvLT5hcmdzW2FyZ25vXS5p c251bGwgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvaGJhLmMgYi9z cmMvYmFja2VuZC9saWJwcS9oYmEuYwppbmRleCAyZmQ5NmE3MTI5NC4uMzEwNGI4NzFjZjEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2hiYS5jCisrKyBiL3NyYy9iYWNrZW5k L2xpYnBxL2hiYS5jCkBAIC03MDIsNyArNzAyLDcgQEAgdG9rZW5pemVfYXV0aF9maWxlKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBGSUxFICpmaWxlLCBMaXN0ICoqdG9rX2xpbmVzLAogCWNh bGxiYWNrX2FyZy5saW5lbnVtID0gbGluZV9udW1iZXI7CiAKIAl0b2tlbmVycmNvbnRleHQu Y2FsbGJhY2sgPSB0b2tlbml6ZV9lcnJvcl9jYWxsYmFjazsKLQl0b2tlbmVycmNvbnRleHQu YXJnID0gKHZvaWQgKikgJmNhbGxiYWNrX2FyZzsKKwl0b2tlbmVycmNvbnRleHQuYXJnID0g JmNhbGxiYWNrX2FyZzsKIAl0b2tlbmVycmNvbnRleHQucHJldmlvdXMgPSBlcnJvcl9jb250 ZXh0X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmdG9rZW5lcnJjb250ZXh0Owog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGY3NjA3MjIyOGM5Li5jODVkNjNiYmM2MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIwMjEsNyArMjAyMSw3IEBAIGNoZWNrX2Z1 bmN0aW9uc19pbl9ub2RlKE5vZGUgKm5vZGUsIGNoZWNrX2Z1bmN0aW9uX2NhbGxiYWNrIGNo ZWNrZXIsCiAgKgkJCS4uLiBkbyBzcGVjaWFsIGFjdGlvbnMgZm9yIG90aGVyIG5vZGUgdHlw ZXMKICAqCQl9CiAgKgkJLy8gZm9yIGFueSBub2RlIHR5cGUgbm90IHNwZWNpYWxseSBwcm9j ZXNzZWQsIGRvOgotICoJCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG15 X3dhbGtlciwgKHZvaWQgKikgY29udGV4dCk7CisgKgkJcmV0dXJuIGV4cHJlc3Npb25fdHJl ZV93YWxrZXIobm9kZSwgbXlfd2Fsa2VyLCBjb250ZXh0KTsKICAqIH0KICAqCiAgKiBUaGUg ImNvbnRleHQiIGFyZ3VtZW50IHBvaW50cyB0byBhIHN0cnVjdCB0aGF0IGhvbGRzIHdoYXRl dmVyIGNvbnRleHQKQEAgLTI4OTQsNyArMjg5NCw3IEBAIHJhbmdlX3RhYmxlX2VudHJ5X3dh bGtlcl9pbXBsKFJhbmdlVGJsRW50cnkgKnJ0ZSwKICAqCQkJLi4uIGRvIHNwZWNpYWwgdHJh bnNmb3JtYXRpb25zIG9mIG90aGVyIG5vZGUgdHlwZXMKICAqCQl9CiAgKgkJLy8gZm9yIGFu eSBub2RlIHR5cGUgbm90IHNwZWNpYWxseSBwcm9jZXNzZWQsIGRvOgotICoJCXJldHVybiBl eHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBteV9tdXRhdG9yLCAodm9pZCAqKSBjb250 ZXh0KTsKKyAqCQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgbXlfbXV0 YXRvciwgY29udGV4dCk7CiAgKiB9CiAgKgogICogVGhlICJjb250ZXh0IiBhcmd1bWVudCBw b2ludHMgdG8gYSBzdHJ1Y3QgdGhhdCBob2xkcyB3aGF0ZXZlciBjb250ZXh0CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9wYXJhbXMuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3Bh cmFtcy5jCmluZGV4IGNmNTRmZmJlMGQ5Li4zYWNjNzUwOGU3MSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvbm9kZXMvcGFyYW1zLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvcGFyYW1z LmMKQEAgLTU1LDcgKzU1LDcgQEAgbWFrZVBhcmFtTGlzdChpbnQgbnVtUGFyYW1zKQogCXJl dHZhbC0+cGFyYW1Db21waWxlID0gTlVMTDsKIAlyZXR2YWwtPnBhcmFtQ29tcGlsZUFyZyA9 IE5VTEw7CiAJcmV0dmFsLT5wYXJzZXJTZXR1cCA9IHBhcmFtbGlzdF9wYXJzZXJfc2V0dXA7 Ci0JcmV0dmFsLT5wYXJzZXJTZXR1cEFyZyA9ICh2b2lkICopIHJldHZhbDsKKwlyZXR2YWwt PnBhcnNlclNldHVwQXJnID0gcmV0dmFsOwogCXJldHZhbC0+cGFyYW1WYWx1ZXNTdHIgPSBO VUxMOwogCXJldHZhbC0+bnVtUGFyYW1zID0gbnVtUGFyYW1zOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9yZWFkLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkLmMKaW5k ZXggMTkwMDk5ZTVjZjMuLjI3ZDNhYTgwNmVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9u b2Rlcy9yZWFkLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZC5jCkBAIC01MDcsNSAr NTA3LDUgQEAgbm9kZVJlYWQoY29uc3QgY2hhciAqdG9rZW4sIGludCB0b2tfbGVuKQogCQkJ YnJlYWs7CiAJfQogCi0JcmV0dXJuICh2b2lkICopIHJlc3VsdDsKKwlyZXR1cm4gcmVzdWx0 OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL2dlcW8vZ2Vxb19tYWlu LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvZ2Vxby9nZXFvX21haW4uYwppbmRleCAwYzU1 NDBlMmFmNC4uYWVlMmE4M2Q3ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci9nZXFvL2dlcW9fbWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9nZXFvL2dl cW9fbWFpbi5jCkBAIC05OSw3ICs5OSw3IEBAIGdlcW8oUGxhbm5lckluZm8gKnJvb3QsIGlu dCBudW1iZXJfb2ZfcmVscywgTGlzdCAqaW5pdGlhbF9yZWxzKQogI2VuZGlmCiAKIC8qIHNl dCB1cCBwcml2YXRlIGluZm9ybWF0aW9uICovCi0Jcm9vdC0+am9pbl9zZWFyY2hfcHJpdmF0 ZSA9ICh2b2lkICopICZwcml2YXRlOworCXJvb3QtPmpvaW5fc2VhcmNoX3ByaXZhdGUgPSAm cHJpdmF0ZTsKIAlwcml2YXRlLmluaXRpYWxfcmVscyA9IGluaXRpYWxfcmVsczsKIAogLyog aW5pdGlhbGl6ZSBwcml2YXRlIG51bWJlciBnZW5lcmF0b3IgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Nvc3RzaXplLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCmluZGV4IDJiYjZkYjFkZjc3Li5jMzY2ODdhYTRkZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCkBAIC01MDI5LDggKzUw MjksNyBAQCBjb3N0X3F1YWxfZXZhbF93YWxrZXIoTm9kZSAqbm9kZSwgY29zdF9xdWFsX2V2 YWxfY29udGV4dCAqY29udGV4dCkKIAl9CiAKIAkvKiByZWN1cnNlIGludG8gY2hpbGRyZW4g Ki8KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb3N0X3F1YWxfZXZh bF93YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4dCk7CisJcmV0dXJuIGV4cHJl c3Npb25fdHJlZV93YWxrZXIobm9kZSwgY29zdF9xdWFsX2V2YWxfd2Fsa2VyLCBjb250ZXh0 KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2lu ZHhwYXRoLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jCmluZGV4 IGMwZmNjN2Q3OGRmLi40ZTRmMTkwYzYwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BhdGgvaW5keHBhdGguYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0 aC9pbmR4cGF0aC5jCkBAIC0yMDMwLDcgKzIwMzAsNyBAQCBtYXRjaF9lY2xhc3NfY2xhdXNl c190b19pbmRleChQbGFubmVySW5mbyAqcm9vdCwgSW5kZXhPcHRJbmZvICppbmRleCwKIAkJ Y2xhdXNlcyA9IGdlbmVyYXRlX2ltcGxpZWRfZXF1YWxpdGllc19mb3JfY29sdW1uKHJvb3Qs CiAJCQkJCQkJCQkJCQkJCSBpbmRleC0+cmVsLAogCQkJCQkJCQkJCQkJCQkgZWNfbWVtYmVy X21hdGNoZXNfaW5kZXhjb2wsCi0JCQkJCQkJCQkJCQkJCSAodm9pZCAqKSAmYXJnLAorCQkJ CQkJCQkJCQkJCQkgJmFyZywKIAkJCQkJCQkJCQkJCQkJIGluZGV4LT5yZWwtPmxhdGVyYWxf cmVmZXJlbmNlcnMpOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9jcmVhdGVwbGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVh dGVwbGFuLmMKaW5kZXggZjJlZDBkODFmNjEuLjE3OGM1NzJiMDIxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCkBAIC01MDM3LDkgKzUwMzcsNyBAQCBy ZXBsYWNlX25lc3Rsb29wX3BhcmFtc19tdXRhdG9yKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZv ICpyb290KQogCQkvKiBSZXBsYWNlIHRoZSBQbGFjZUhvbGRlclZhciB3aXRoIGEgbmVzdGxv b3AgUGFyYW0gKi8KIAkJcmV0dXJuIChOb2RlICopIHJlcGxhY2VfbmVzdGxvb3BfcGFyYW1f cGxhY2Vob2xkZXJ2YXIocm9vdCwgcGh2KTsKIAl9Ci0JcmV0dXJuIGV4cHJlc3Npb25fdHJl ZV9tdXRhdG9yKG5vZGUsCi0JCQkJCQkJCSAgIHJlcGxhY2VfbmVzdGxvb3BfcGFyYW1zX211 dGF0b3IsCi0JCQkJCQkJCSAgICh2b2lkICopIHJvb3QpOworCXJldHVybiBleHByZXNzaW9u X3RyZWVfbXV0YXRvcihub2RlLCByZXBsYWNlX25lc3Rsb29wX3BhcmFtc19tdXRhdG9yLCBy b290KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRl eCA5MWM3YzRmZTJmZS4uNmQyM2RmMTA4ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9zZXRyZWZzLmMKQEAgLTQ4NSw3ICs0ODUsNyBAQCBmbGF0dGVuX3VucGxhbm5lZF9ydGVz KFBsYW5uZXJHbG9iYWwgKmdsb2IsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKIAkvKiBVc2UgcXVl cnlfdHJlZV93YWxrZXIgdG8gZmluZCBhbGwgUlRFcyBpbiB0aGUgcGFyc2UgdHJlZSAqLwog CSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihydGUtPnN1YnF1ZXJ5LAogCQkJCQkJCSBmbGF0 dGVuX3J0ZXNfd2Fsa2VyLAotCQkJCQkJCSAodm9pZCAqKSAmY3h0LAorCQkJCQkJCSAmY3h0 LAogCQkJCQkJCSBRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7CiB9CiAKQEAgLTUxNiwxMyAr NTE2LDEyIEBAIGZsYXR0ZW5fcnRlc193YWxrZXIoTm9kZSAqbm9kZSwgZmxhdHRlbl9ydGVz X3dhbGtlcl9jb250ZXh0ICpjeHQpCiAJCWN4dC0+cXVlcnkgPSAoUXVlcnkgKikgbm9kZTsK IAkJcmVzdWx0ID0gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCiAJCQkJCQkJ CSAgIGZsYXR0ZW5fcnRlc193YWxrZXIsCi0JCQkJCQkJCSAgICh2b2lkICopIGN4dCwKKwkJ CQkJCQkJICAgY3h0LAogCQkJCQkJCQkgICBRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7CiAJ CWN4dC0+cXVlcnkgPSBzYXZlX3F1ZXJ5OwogCQlyZXR1cm4gcmVzdWx0OwogCX0KLQlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBmbGF0dGVuX3J0ZXNfd2Fsa2VyLAot CQkJCQkJCQkgICh2b2lkICopIGN4dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxr ZXIobm9kZSwgZmxhdHRlbl9ydGVzX3dhbGtlciwgY3h0KTsKIH0KIAogLyoKQEAgLTIyNDMs OCArMjI0Miw3IEBAIGZpeF9zY2FuX2V4cHJfbXV0YXRvcihOb2RlICpub2RlLCBmaXhfc2Nh bl9leHByX2NvbnRleHQgKmNvbnRleHQpCiAJCQkJCQkJCQkJCQkJCQkgY29udGV4dC0+bnVt X2V4ZWMpLAogCQkJCQkJCQkJIGNvbnRleHQpOwogCWZpeF9leHByX2NvbW1vbihjb250ZXh0 LT5yb290LCBub2RlKTsKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwg Zml4X3NjYW5fZXhwcl9tdXRhdG9yLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0KTsK KwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgZml4X3NjYW5fZXhwcl9t dXRhdG9yLCBjb250ZXh0KTsKIH0KIAogc3RhdGljIGJvb2wKQEAgLTIyNTYsOCArMjI1NCw3 IEBAIGZpeF9zY2FuX2V4cHJfd2Fsa2VyKE5vZGUgKm5vZGUsIGZpeF9zY2FuX2V4cHJfY29u dGV4dCAqY29udGV4dCkKIAlBc3NlcnQoIUlzQShub2RlLCBQbGFjZUhvbGRlclZhcikpOwog CUFzc2VydCghSXNBKG5vZGUsIEFsdGVybmF0aXZlU3ViUGxhbikpOwogCWZpeF9leHByX2Nv bW1vbihjb250ZXh0LT5yb290LCBub2RlKTsKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dh bGtlcihub2RlLCBmaXhfc2Nhbl9leHByX3dhbGtlciwKLQkJCQkJCQkJICAodm9pZCAqKSBj b250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBmaXhfc2Nh bl9leHByX3dhbGtlciwgY29udGV4dCk7CiB9CiAKIC8qCkBAIC0yNjEyLDggKzI2MDksNyBA QCBjb252ZXJ0X2NvbWJpbmluZ19hZ2dyZWZzKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQp CiAKIAkJcmV0dXJuIChOb2RlICopIHBhcmVudF9hZ2c7CiAJfQotCXJldHVybiBleHByZXNz aW9uX3RyZWVfbXV0YXRvcihub2RlLCBjb252ZXJ0X2NvbWJpbmluZ19hZ2dyZWZzLAotCQkJ CQkJCQkgICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211 dGF0b3Iobm9kZSwgY29udmVydF9jb21iaW5pbmdfYWdncmVmcywgY29udGV4dCk7CiB9CiAK IC8qCkBAIC0zMTY1LDkgKzMxNjEsNyBAQCBmaXhfam9pbl9leHByX211dGF0b3IoTm9kZSAq bm9kZSwgZml4X2pvaW5fZXhwcl9jb250ZXh0ICpjb250ZXh0KQogCQkJCQkJCQkJCQkJCQkJ IGNvbnRleHQtPm51bV9leGVjKSwKIAkJCQkJCQkJCSBjb250ZXh0KTsKIAlmaXhfZXhwcl9j b21tb24oY29udGV4dC0+cm9vdCwgbm9kZSk7Ci0JcmV0dXJuIGV4cHJlc3Npb25fdHJlZV9t dXRhdG9yKG5vZGUsCi0JCQkJCQkJCSAgIGZpeF9qb2luX2V4cHJfbXV0YXRvciwKLQkJCQkJ CQkJICAgKHZvaWQgKikgY29udGV4dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV9tdXRh dG9yKG5vZGUsIGZpeF9qb2luX2V4cHJfbXV0YXRvciwgY29udGV4dCk7CiB9CiAKIC8qCkBA IC0zMjkyLDkgKzMyODYsNyBAQCBmaXhfdXBwZXJfZXhwcl9tdXRhdG9yKE5vZGUgKm5vZGUs IGZpeF91cHBlcl9leHByX2NvbnRleHQgKmNvbnRleHQpCiAJCQkJCQkJCQkJCQkJCQkgIGNv bnRleHQtPm51bV9leGVjKSwKIAkJCQkJCQkJCSAgY29udGV4dCk7CiAJZml4X2V4cHJfY29t bW9uKGNvbnRleHQtPnJvb3QsIG5vZGUpOwotCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0 YXRvcihub2RlLAotCQkJCQkJCQkgICBmaXhfdXBwZXJfZXhwcl9tdXRhdG9yLAotCQkJCQkJ CQkgICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0 b3Iobm9kZSwgZml4X3VwcGVyX2V4cHJfbXV0YXRvciwgY29udGV4dCk7CiB9CiAKIC8qCkBA IC0zMzkwLDcgKzMzODIsNyBAQCBmaXhfd2luZG93YWdnX2NvbmRpdGlvbl9leHByX211dGF0 b3IoTm9kZSAqbm9kZSwKIAogCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2Rl LAogCQkJCQkJCQkgICBmaXhfd2luZG93YWdnX2NvbmRpdGlvbl9leHByX211dGF0b3IsCi0J CQkJCQkJCSAgICh2b2lkICopIGNvbnRleHQpOworCQkJCQkJCQkgICBjb250ZXh0KTsKIH0K IAogLyoKQEAgLTM2NTYsMTAgKzM2NDgsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNp ZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCiAJCS8qIEFu ZCByZWN1cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0dXJu IHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193 YWxrZXIsCi0JCQkJCQkJCSAodm9pZCAqKSBjb250ZXh0LCAwKTsKKwkJCQkJCQkJIGNvbnRl eHQsIDApOwogCX0KIAkvKiBFeHRyYWN0IGZ1bmN0aW9uIGRlcGVuZGVuY2llcyBhbmQgY2hl Y2sgZm9yIHJlZ2NsYXNzIENvbnN0cyAqLwogCWZpeF9leHByX2NvbW1vbihjb250ZXh0LCBu b2RlKTsKIAlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBleHRyYWN0X3F1 ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4dCk7 CisJCQkJCQkJCSAgY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9zdWJzZWxlY3QuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3N1 YnNlbGVjdC5jCmluZGV4IDA5ZDVmMGY1NzFiLi5lZDYyZTNhMGZjZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMKQEAgLTY5Nyw5ICs2OTcsNyBAQCBjb252 ZXJ0X3Rlc3RleHByX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJICovCiAJCXJldHVybiBub2Rl OwogCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwKLQkJCQkJCQkJ ICAgY29udmVydF90ZXN0ZXhwcl9tdXRhdG9yLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250 ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgY29udmVydF90 ZXN0ZXhwcl9tdXRhdG9yLCBjb250ZXh0KTsKIH0KIAogLyoKQEAgLTExMjEsMTQgKzExMTks MTMgQEAgY29udGFpbl9vdXRlcl9zZWxmcmVmX3dhbGtlcihOb2RlICpub2RlLCBJbmRleCAq ZGVwdGgpCiAJCSgqZGVwdGgpKys7CiAKIAkJcmVzdWx0ID0gcXVlcnlfdHJlZV93YWxrZXIo cXVlcnksIGNvbnRhaW5fb3V0ZXJfc2VsZnJlZl93YWxrZXIsCi0JCQkJCQkJCSAgICh2b2lk ICopIGRlcHRoLCBRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7CisJCQkJCQkJCSAgIGRlcHRo LCBRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7CiAKIAkJKCpkZXB0aCktLTsKIAogCQlyZXR1 cm4gcmVzdWx0OwogCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBj b250YWluX291dGVyX3NlbGZyZWZfd2Fsa2VyLAotCQkJCQkJCQkgICh2b2lkICopIGRlcHRo KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb250YWluX291dGVy X3NlbGZyZWZfd2Fsa2VyLCBkZXB0aCk7CiB9CiAKIC8qCkBAIC0xOTI3LDkgKzE5MjQsNyBA QCByZXBsYWNlX2NvcnJlbGF0aW9uX3ZhcnNfbXV0YXRvcihOb2RlICpub2RlLCBQbGFubmVy SW5mbyAqcm9vdCkKIAkJCXJldHVybiAoTm9kZSAqKSByZXBsYWNlX291dGVyX21lcmdlX3N1 cHBvcnQocm9vdCwKIAkJCQkJCQkJCQkJCQkJKE1lcmdlU3VwcG9ydEZ1bmMgKikgbm9kZSk7 CiAJfQotCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLAotCQkJCQkJCQkg ICByZXBsYWNlX2NvcnJlbGF0aW9uX3ZhcnNfbXV0YXRvciwKLQkJCQkJCQkJICAgKHZvaWQg Kikgcm9vdCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHJlcGxh Y2VfY29ycmVsYXRpb25fdmFyc19tdXRhdG9yLCByb290KTsKIH0KIAogLyoKQEAgLTIwNzcs NyArMjA3Miw3IEBAIHByb2Nlc3Nfc3VibGlua3NfbXV0YXRvcihOb2RlICpub2RlLCBwcm9j ZXNzX3N1YmxpbmtzX2NvbnRleHQgKmNvbnRleHQpCiAKIAlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX211dGF0b3Iobm9kZSwKIAkJCQkJCQkJICAgcHJvY2Vzc19zdWJsaW5rc19tdXRhdG9y LAotCQkJCQkJCQkgICAodm9pZCAqKSAmbG9jQ29udGV4dCk7CisJCQkJCQkJCSAgICZsb2ND b250ZXh0KTsKIH0KIAogLyoKQEAgLTI5ODUsOCArMjk4MCw3IEBAIGZpbmFsaXplX3ByaW1u b2RlKE5vZGUgKm5vZGUsIGZpbmFsaXplX3ByaW1ub2RlX2NvbnRleHQgKmNvbnRleHQpCiAK IAkJcmV0dXJuIGZhbHNlOwkJCS8qIG5vIG1vcmUgdG8gZG8gaGVyZSAqLwogCX0KLQlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBmaW5hbGl6ZV9wcmltbm9kZSwKLQkJ CQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dh bGtlcihub2RlLCBmaW5hbGl6ZV9wcmltbm9kZSwgY29udGV4dCk7CiB9CiAKIC8qCkBAIC0z MDA4LDggKzMwMDIsNyBAQCBmaW5hbGl6ZV9hZ2dfcHJpbW5vZGUoTm9kZSAqbm9kZSwgZmlu YWxpemVfcHJpbW5vZGVfY29udGV4dCAqY29udGV4dCkKIAkJZmluYWxpemVfcHJpbW5vZGUo KE5vZGUgKikgYWdnLT5hZ2dmaWx0ZXIsIGNvbnRleHQpOwogCQlyZXR1cm4gZmFsc2U7CQkJ LyogdGhlcmUgY2FuJ3QgYmUgYW55IEFnZ3JlZnMgYmVsb3cgaGVyZSAqLwogCX0KLQlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBmaW5hbGl6ZV9hZ2dfcHJpbW5vZGUs Ci0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJl ZV93YWxrZXIobm9kZSwgZmluYWxpemVfYWdnX3ByaW1ub2RlLCBjb250ZXh0KTsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBhZ2cuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBhZ2cuYwppbmRleCA0NjA2ZGYzNzlh OC4uZTkzNWM5ZDA5NDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBhZ2cuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwYWdnLmMK QEAgLTM1OSw4ICszNTksNyBAQCBwcmVwcm9jZXNzX2FnZ3JlZnNfd2Fsa2VyKE5vZGUgKm5v ZGUsIFBsYW5uZXJJbmZvICpyb290KQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCUFzc2VydCgh SXNBKG5vZGUsIFN1YkxpbmspKTsKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihu b2RlLCBwcmVwcm9jZXNzX2FnZ3JlZnNfd2Fsa2VyLAotCQkJCQkJCQkgICh2b2lkICopIHJv b3QpOworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHByZXByb2Nlc3Nf YWdncmVmc193YWxrZXIsIHJvb3QpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3ByZXAvcHJlcGpvaW50cmVlLmMKaW5kZXggNGQ3Zjk3MmNhZjEuLjEwNGNkYmY0MGNiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMjQ1 MCw3ICsyNDUwLDcgQEAgcHVsbHVwX3JlcGxhY2VfdmFycyhOb2RlICpleHByLCBwdWxsdXBf cmVwbGFjZV92YXJzX2NvbnRleHQgKmNvbnRleHQpCiAJcmV0dXJuIHJlcGxhY2VfcnRlX3Zh cmlhYmxlcyhleHByLAogCQkJCQkJCQkgY29udGV4dC0+dmFybm8sIDAsCiAJCQkJCQkJCSBw dWxsdXBfcmVwbGFjZV92YXJzX2NhbGxiYWNrLAotCQkJCQkJCQkgKHZvaWQgKikgY29udGV4 dCwKKwkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJCSBjb250ZXh0LT5vdXRlcl9oYXNTdWJM aW5rcyk7CiB9CiAKQEAgLTI3MDcsNyArMjcwNyw3IEBAIHB1bGx1cF9yZXBsYWNlX3ZhcnNf c3VicXVlcnkoUXVlcnkgKnF1ZXJ5LAogCXJldHVybiAoUXVlcnkgKikgcmVwbGFjZV9ydGVf dmFyaWFibGVzKChOb2RlICopIHF1ZXJ5LAogCQkJCQkJCQkJCSAgIGNvbnRleHQtPnZhcm5v LCAxLAogCQkJCQkJCQkJCSAgIHB1bGx1cF9yZXBsYWNlX3ZhcnNfY2FsbGJhY2ssCi0JCQkJ CQkJCQkJICAgKHZvaWQgKikgY29udGV4dCwKKwkJCQkJCQkJCQkgICBjb250ZXh0LAogCQkJ CQkJCQkJCSAgIE5VTEwpOwogfQogCkBAIC0zNzc1LDcgKzM3NzUsNyBAQCBmaW5kX2RlcGVu ZGVudF9waHZzX3dhbGtlcihOb2RlICpub2RlLAogCQljb250ZXh0LT5zdWJsZXZlbHNfdXAr KzsKIAkJcmVzdWx0ID0gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCiAJCQkJ CQkJCSAgIGZpbmRfZGVwZW5kZW50X3BodnNfd2Fsa2VyLAotCQkJCQkJCQkgICAodm9pZCAq KSBjb250ZXh0LCAwKTsKKwkJCQkJCQkJICAgY29udGV4dCwgMCk7CiAJCWNvbnRleHQtPnN1 YmxldmVsc191cC0tOwogCQlyZXR1cm4gcmVzdWx0OwogCX0KQEAgLTM3ODQsOCArMzc4NCw3 IEBAIGZpbmRfZGVwZW5kZW50X3BodnNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJQXNzZXJ0KCFJ c0Eobm9kZSwgUGxhY2VIb2xkZXJJbmZvKSk7CiAJQXNzZXJ0KCFJc0Eobm9kZSwgTWluTWF4 QWdnSW5mbykpOwogCi0JcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZmlu ZF9kZXBlbmRlbnRfcGh2c193YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4dCk7 CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZmluZF9kZXBlbmRlbnRf cGh2c193YWxrZXIsIGNvbnRleHQpOwogfQogCiBzdGF0aWMgYm9vbApAQCAtMzgwMCwxNSAr Mzc5OSwxMiBAQCBmaW5kX2RlcGVuZGVudF9waHZzKFBsYW5uZXJJbmZvICpyb290LCBpbnQg dmFybm8pCiAJY29udGV4dC5yZWxpZHMgPSBibXNfbWFrZV9zaW5nbGV0b24odmFybm8pOwog CWNvbnRleHQuc3VibGV2ZWxzX3VwID0gMDsKIAotCWlmIChxdWVyeV90cmVlX3dhbGtlcihy b290LT5wYXJzZSwKLQkJCQkJCSAgZmluZF9kZXBlbmRlbnRfcGh2c193YWxrZXIsCi0JCQkJ CQkgICh2b2lkICopICZjb250ZXh0LAotCQkJCQkJICAwKSkKKwlpZiAocXVlcnlfdHJlZV93 YWxrZXIocm9vdC0+cGFyc2UsIGZpbmRfZGVwZW5kZW50X3BodnNfd2Fsa2VyLCAmY29udGV4 dCwgMCkpCiAJCXJldHVybiB0cnVlOwogCS8qIFRoZSBhcHBlbmRfcmVsX2xpc3QgY291bGQg YmUgcG9wdWxhdGVkIGFscmVhZHksIHNvIGNoZWNrIGl0IHRvbyAqLwogCWlmIChleHByZXNz aW9uX3RyZWVfd2Fsa2VyKChOb2RlICopIHJvb3QtPmFwcGVuZF9yZWxfbGlzdCwKIAkJCQkJ CQkgICBmaW5kX2RlcGVuZGVudF9waHZzX3dhbGtlciwKLQkJCQkJCQkgICAodm9pZCAqKSAm Y29udGV4dCkpCisJCQkJCQkJICAgJmNvbnRleHQpKQogCQlyZXR1cm4gdHJ1ZTsKIAlyZXR1 cm4gZmFsc2U7CiB9CkBAIC0zODQ3LDEwICszODQzLDcgQEAgZmluZF9kZXBlbmRlbnRfcGh2 c19pbl9qb2ludHJlZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHZhcm5v KQogCQlSYW5nZVRibEVudHJ5ICpydGUgPSBydF9mZXRjaChyZWxpZCwgcm9vdC0+cGFyc2Ut PnJ0YWJsZSk7CiAKIAkJaWYgKHJ0ZS0+bGF0ZXJhbCAmJgotCQkJcmFuZ2VfdGFibGVfZW50 cnlfd2Fsa2VyKHJ0ZSwKLQkJCQkJCQkJCSBmaW5kX2RlcGVuZGVudF9waHZzX3dhbGtlciwK LQkJCQkJCQkJCSAodm9pZCAqKSAmY29udGV4dCwKLQkJCQkJCQkJCSAwKSkKKwkJCXJhbmdl X3RhYmxlX2VudHJ5X3dhbGtlcihydGUsIGZpbmRfZGVwZW5kZW50X3BodnNfd2Fsa2VyLCAm Y29udGV4dCwgMCkpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKQEAgLTM5MDcsNyArMzkwMCw3 IEBAIHN1YnN0aXR1dGVfcGh2X3JlbGlkc193YWxrZXIoTm9kZSAqbm9kZSwKIAkJY29udGV4 dC0+c3VibGV2ZWxzX3VwKys7CiAJCXJlc3VsdCA9IHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVy eSAqKSBub2RlLAogCQkJCQkJCQkgICBzdWJzdGl0dXRlX3Bodl9yZWxpZHNfd2Fsa2VyLAot CQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0LCAwKTsKKwkJCQkJCQkJICAgY29udGV4dCwg MCk7CiAJCWNvbnRleHQtPnN1YmxldmVsc191cC0tOwogCQlyZXR1cm4gcmVzdWx0OwogCX0K QEAgLTM5MTcsOCArMzkxMCw3IEBAIHN1YnN0aXR1dGVfcGh2X3JlbGlkc193YWxrZXIoTm9k ZSAqbm9kZSwKIAlBc3NlcnQoIUlzQShub2RlLCBQbGFjZUhvbGRlckluZm8pKTsKIAlBc3Nl cnQoIUlzQShub2RlLCBNaW5NYXhBZ2dJbmZvKSk7CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLCBzdWJzdGl0dXRlX3Bodl9yZWxpZHNfd2Fsa2VyLAotCQkJCQkJ CQkgICh2b2lkICopIGNvbnRleHQpOworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2Vy KG5vZGUsIHN1YnN0aXR1dGVfcGh2X3JlbGlkc193YWxrZXIsIGNvbnRleHQpOwogfQogCiBz dGF0aWMgdm9pZApAQCAtMzkzNSw3ICszOTI3LDcgQEAgc3Vic3RpdHV0ZV9waHZfcmVsaWRz KE5vZGUgKm5vZGUsIGludCB2YXJubywgUmVsaWRzIHN1YnJlbGlkcykKIAkgKi8KIAlxdWVy eV9vcl9leHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCiAJCQkJCQkJCQlzdWJzdGl0dXRl X3Bodl9yZWxpZHNfd2Fsa2VyLAotCQkJCQkJCQkJKHZvaWQgKikgJmNvbnRleHQsCisJCQkJ CQkJCQkmY29udGV4dCwKIAkJCQkJCQkJCTApOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9hcHBlbmRpbmZvLmMKaW5kZXggNDk4OTcyMjYzNzEuLjQ1ZThiNzRmOTQ0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMKKysr IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvYXBwZW5kaW5mby5jCkBAIC00MjUsNyAr NDI1LDcgQEAgYWRqdXN0X2FwcGVuZHJlbF9hdHRyc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAK IAkJcGh2ID0gKFBsYWNlSG9sZGVyVmFyICopIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5v ZGUsCiAJCQkJCQkJCQkJCQkJCSBhZGp1c3RfYXBwZW5kcmVsX2F0dHJzX211dGF0b3IsCi0J CQkJCQkJCQkJCQkJCSAodm9pZCAqKSBjb250ZXh0KTsKKwkJCQkJCQkJCQkJCQkJIGNvbnRl eHQpOwogCQkvKiBub3cgZml4IFBsYWNlSG9sZGVyVmFyJ3MgcmVsaWQgc2V0cyAqLwogCQlp ZiAocGh2LT5waGxldmVsc3VwID09IDApCiAJCXsKQEAgLTUwOSw4ICs1MDksNyBAQCBhZGp1 c3RfYXBwZW5kcmVsX2F0dHJzX211dGF0b3IoTm9kZSAqbm9kZSwKIAlBc3NlcnQoIUlzQShu b2RlLCBSYW5nZVRibFJlZikpOwogCUFzc2VydCghSXNBKG5vZGUsIEpvaW5FeHByKSk7CiAK LQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgYWRqdXN0X2FwcGVuZHJl bF9hdHRyc19tdXRhdG9yLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgYWRqdXN0X2FwcGVuZHJlbF9hdHRy c19tdXRhdG9yLCBjb250ZXh0KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGls L2NsYXVzZXMuYwppbmRleCA4ZTM5Nzk1ZTI0NS4uYmI3YTliNzcyODAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI2NSw4ICsyNjUsNyBAQCBmaW5kX3dp bmRvd19mdW5jdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIFdpbmRvd0Z1bmNMaXN0cyAqbGlz dHMpCiAJCXJldHVybiBmYWxzZTsKIAl9CiAJQXNzZXJ0KCFJc0Eobm9kZSwgU3ViTGluaykp OwotCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRfd2luZG93X2Z1 bmN0aW9uc193YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgbGlzdHMpOworCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRfd2luZG93X2Z1bmN0aW9uc193YWxr ZXIsIGxpc3RzKTsKIH0KIAogCkBAIC0xMjE3LDcgKzEyMTYsNyBAQCBjb250YWluX2NvbnRl eHRfZGVwZW5kZW50X25vZGVfd2Fsa2VyKE5vZGUgKm5vZGUsIGludCAqZmxhZ3MpCiAJCQkq ZmxhZ3MgfD0gQ0NETl9DQVNFVEVTVEVYUFJfT0s7CiAJCQlyZXMgPSBleHByZXNzaW9uX3Ry ZWVfd2Fsa2VyKG5vZGUsCiAJCQkJCQkJCQkJIGNvbnRhaW5fY29udGV4dF9kZXBlbmRlbnRf bm9kZV93YWxrZXIsCi0JCQkJCQkJCQkJICh2b2lkICopIGZsYWdzKTsKKwkJCQkJCQkJCQkg ZmxhZ3MpOwogCQkJKmZsYWdzID0gc2F2ZV9mbGFnczsKIAkJCXJldHVybiByZXM7CiAJCX0K QEAgLTEyNDEsNyArMTI0MCw3IEBAIGNvbnRhaW5fY29udGV4dF9kZXBlbmRlbnRfbm9kZV93 YWxrZXIoTm9kZSAqbm9kZSwgaW50ICpmbGFncykKIAkJcmV0dXJuIHJlczsKIAl9CiAJcmV0 dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgY29udGFpbl9jb250ZXh0X2RlcGVu ZGVudF9ub2RlX3dhbGtlciwKLQkJCQkJCQkJICAodm9pZCAqKSBmbGFncyk7CisJCQkJCQkJ CSAgZmxhZ3MpOwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI0MTYsNyAr MjQxNSw3IEBAIGVzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUoUGxhbm5lckluZm8gKnJvb3Qs IE5vZGUgKm5vZGUpCiAgKi8KICNkZWZpbmUgZWNlX2dlbmVyaWNfcHJvY2Vzc2luZyhub2Rl KSBcCiAJZXhwcmVzc2lvbl90cmVlX211dGF0b3IoKE5vZGUgKikgKG5vZGUpLCBldmFsX2Nv bnN0X2V4cHJlc3Npb25zX211dGF0b3IsIFwKLQkJCQkJCQkodm9pZCAqKSBjb250ZXh0KQor CQkJCQkJCWNvbnRleHQpCiAKIC8qCiAgKiBDaGVjayB3aGV0aGVyIGFsbCBhcmd1bWVudHMg b2YgdGhlIGdpdmVuIG5vZGUgd2VyZSByZWR1Y2VkIHRvIENvbnN0cy4KQEAgLTI1NTIsNyAr MjU1MSw3IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAog CQkJCWFyZ3MgPSAoTGlzdCAqKQogCQkJCQlleHByZXNzaW9uX3RyZWVfbXV0YXRvcigoTm9k ZSAqKSBhcmdzLAogCQkJCQkJCQkJCQlldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3Is Ci0JCQkJCQkJCQkJCSh2b2lkICopIGNvbnRleHQpOworCQkJCQkJCQkJCQljb250ZXh0KTsK IAkJCQkvKiAuLi4gYW5kIHRoZSBmaWx0ZXIgZXhwcmVzc2lvbiwgd2hpY2ggaXNuJ3QgKi8K IAkJCQlhZ2dmaWx0ZXIgPSAoRXhwciAqKQogCQkJCQlldmFsX2NvbnN0X2V4cHJlc3Npb25z X211dGF0b3IoKE5vZGUgKikgZXhwci0+YWdnZmlsdGVyLApAQCAtMjY5Nyw3ICsyNjk2LDcg QEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJICov CiAJCQkJYXJncyA9IChMaXN0ICopIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKChOb2RlICop IGV4cHItPmFyZ3MsCiAJCQkJCQkJCQkJCQkJCWV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0 YXRvciwKLQkJCQkJCQkJCQkJCQkJKHZvaWQgKikgY29udGV4dCk7CisJCQkJCQkJCQkJCQkJ CWNvbnRleHQpOwogCiAJCQkJLyoKIAkJCQkgKiBXZSBtdXN0IGRvIG91ciBvd24gY2hlY2sg Zm9yIE5VTExzIGJlY2F1c2UgRGlzdGluY3RFeHByIGhhcwpAQCAtNDA5NCw3ICs0MDkzLDcg QEAgc2ltcGxpZnlfZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBpbnQz MiByZXN1bHRfdHlwbW9kLAogCQlhcmdzID0gZXhwYW5kX2Z1bmN0aW9uX2FyZ3VtZW50cyhh cmdzLCBmYWxzZSwgcmVzdWx0X3R5cGUsIGZ1bmNfdHVwbGUpOwogCQlhcmdzID0gKExpc3Qg KikgZXhwcmVzc2lvbl90cmVlX211dGF0b3IoKE5vZGUgKikgYXJncywKIAkJCQkJCQkJCQkJ CWV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvciwKLQkJCQkJCQkJCQkJCSh2b2lkICop IGNvbnRleHQpOworCQkJCQkJCQkJCQkJY29udGV4dCk7CiAJCS8qIEFyZ3VtZW50IHByb2Nl c3NpbmcgZG9uZSwgZ2l2ZSBpdCBiYWNrIHRvIHRoZSBjYWxsZXIgKi8KIAkJKmFyZ3NfcCA9 IGFyZ3M7CiAJfQpAQCAtNDYzNiw3ICs0NjM1LDcgQEAgaW5saW5lX2Z1bmN0aW9uKE9pZCBm dW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJY2FsbGJhY2tf YXJnLnByb3NyYyA9IHNyYzsKIAogCXNxbGVycmNvbnRleHQuY2FsbGJhY2sgPSBzcWxfaW5s aW5lX2Vycm9yX2NhbGxiYWNrOwotCXNxbGVycmNvbnRleHQuYXJnID0gKHZvaWQgKikgJmNh bGxiYWNrX2FyZzsKKwlzcWxlcnJjb250ZXh0LmFyZyA9ICZjYWxsYmFja19hcmc7CiAJc3Fs ZXJyY29udGV4dC5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29u dGV4dF9zdGFjayA9ICZzcWxlcnJjb250ZXh0OwogCkBAIC00OTM4LDggKzQ5MzcsNyBAQCBz dWJzdGl0dXRlX2FjdHVhbF9wYXJhbWV0ZXJzX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJLyog V2UgZG9uJ3QgbmVlZCB0byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0 ZXIpICovCiAJCXJldHVybiBsaXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1p ZCAtIDEpOwogCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgc3Vi c3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19tdXRhdG9yLAotCQkJCQkJCQkgICAodm9pZCAq KSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgc3Vi c3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19tdXRhdG9yLCBjb250ZXh0KTsKIH0KIAogLyoK QEAgLTUxOTAsNyArNTE4OCw3IEBAIGlubGluZV9zZXRfcmV0dXJuaW5nX2Z1bmN0aW9uKFBs YW5uZXJJbmZvICpyb290LCBSYW5nZVRibEVudHJ5ICpydGUpCiAJY2FsbGJhY2tfYXJnLnBy b3NyYyA9IHNyYzsKIAogCXNxbGVycmNvbnRleHQuY2FsbGJhY2sgPSBzcWxfaW5saW5lX2Vy cm9yX2NhbGxiYWNrOwotCXNxbGVycmNvbnRleHQuYXJnID0gKHZvaWQgKikgJmNhbGxiYWNr X2FyZzsKKwlzcWxlcnJjb250ZXh0LmFyZyA9ICZjYWxsYmFja19hcmc7CiAJc3FsZXJyY29u dGV4dC5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9z dGFjayA9ICZzcWxlcnJjb250ZXh0OwogCkBAIC01MzgyLDcgKzUzODAsNyBAQCBzdWJzdGl0 dXRlX2FjdHVhbF9zcmZfcGFyYW1ldGVyc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCWNvbnRl eHQtPnN1YmxldmVsc191cCsrOwogCQlyZXN1bHQgPSAoTm9kZSAqKSBxdWVyeV90cmVlX211 dGF0b3IoKFF1ZXJ5ICopIG5vZGUsCiAJCQkJCQkJCQkJCSBzdWJzdGl0dXRlX2FjdHVhbF9z cmZfcGFyYW1ldGVyc19tdXRhdG9yLAotCQkJCQkJCQkJCQkgKHZvaWQgKikgY29udGV4dCwK KwkJCQkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJCQkJCSAwKTsKIAkJY29udGV4dC0+c3Vi bGV2ZWxzX3VwLS07CiAJCXJldHVybiByZXN1bHQ7CkBAIC01NDA3LDcgKzU0MDUsNyBAQCBz dWJzdGl0dXRlX2FjdHVhbF9zcmZfcGFyYW1ldGVyc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJ fQogCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLAogCQkJCQkJCQkgICBz dWJzdGl0dXRlX2FjdHVhbF9zcmZfcGFyYW1ldGVyc19tdXRhdG9yLAotCQkJCQkJCQkgICAo dm9pZCAqKSBjb250ZXh0KTsKKwkJCQkJCQkJICAgY29udGV4dCk7CiB9CiAKIC8qCkBAIC01 NDM2LDYgKzU0MzQsNSBAQCBwdWxsX3BhcmFtaWRzX3dhbGtlcihOb2RlICpub2RlLCBCaXRt YXBzZXQgKipjb250ZXh0KQogCQkqY29udGV4dCA9IGJtc19hZGRfbWVtYmVyKCpjb250ZXh0 LCBwYXJhbS0+cGFyYW1pZCk7CiAJCXJldHVybiBmYWxzZTsKIAl9Ci0JcmV0dXJuIGV4cHJl c3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF9wYXJhbWlkc193YWxrZXIsCi0JCQkJCQkJ CSAgKHZvaWQgKikgY29udGV4dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIo bm9kZSwgcHVsbF9wYXJhbWlkc193YWxrZXIsIGNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcHJlZHRlc3QuYyBiL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL3ByZWR0ZXN0LmMKaW5kZXggNTBlYTgwNzczNjcuLjBhMTMyNjEwMTQw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wcmVkdGVzdC5jCisr KyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3ByZWR0ZXN0LmMKQEAgLTkwOCw3ICs5 MDgsNyBAQCBzdGF0aWMgdm9pZAogbGlzdF9zdGFydHVwX2ZuKE5vZGUgKmNsYXVzZSwgUHJl ZEl0ZXJJbmZvIGluZm8pCiB7CiAJaW5mby0+c3RhdGVfbGlzdCA9IChMaXN0ICopIGNsYXVz ZTsKLQlpbmZvLT5zdGF0ZSA9ICh2b2lkICopIGxpc3RfaGVhZChpbmZvLT5zdGF0ZV9saXN0 KTsKKwlpbmZvLT5zdGF0ZSA9IGxpc3RfaGVhZChpbmZvLT5zdGF0ZV9saXN0KTsKIH0KIAog c3RhdGljIE5vZGUgKgpAQCAtOTIwLDcgKzkyMCw3IEBAIGxpc3RfbmV4dF9mbihQcmVkSXRl ckluZm8gaW5mbykKIAlpZiAobCA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAluID0gbGZp cnN0KGwpOwotCWluZm8tPnN0YXRlID0gKHZvaWQgKikgbG5leHQoaW5mby0+c3RhdGVfbGlz dCwgbCk7CisJaW5mby0+c3RhdGUgPSBsbmV4dChpbmZvLT5zdGF0ZV9saXN0LCBsKTsKIAly ZXR1cm4gbjsKIH0KIApAQCAtOTM4LDcgKzkzOCw3IEBAIHN0YXRpYyB2b2lkCiBib29sZXhw cl9zdGFydHVwX2ZuKE5vZGUgKmNsYXVzZSwgUHJlZEl0ZXJJbmZvIGluZm8pCiB7CiAJaW5m by0+c3RhdGVfbGlzdCA9ICgoQm9vbEV4cHIgKikgY2xhdXNlKS0+YXJnczsKLQlpbmZvLT5z dGF0ZSA9ICh2b2lkICopIGxpc3RfaGVhZChpbmZvLT5zdGF0ZV9saXN0KTsKKwlpbmZvLT5z dGF0ZSA9IGxpc3RfaGVhZChpbmZvLT5zdGF0ZV9saXN0KTsKIH0KIAogLyoKQEAgLTk2OCw3 ICs5NjgsNyBAQCBhcnJheWNvbnN0X3N0YXJ0dXBfZm4oTm9kZSAqY2xhdXNlLCBQcmVkSXRl ckluZm8gaW5mbykKIAogCS8qIENyZWF0ZSB3b3JraW5nIHN0YXRlIHN0cnVjdCAqLwogCXN0 YXRlID0gKEFycmF5Q29uc3RJdGVyU3RhdGUgKikgcGFsbG9jKHNpemVvZihBcnJheUNvbnN0 SXRlclN0YXRlKSk7Ci0JaW5mby0+c3RhdGUgPSAodm9pZCAqKSBzdGF0ZTsKKwlpbmZvLT5z dGF0ZSA9IHN0YXRlOwogCiAJLyogRGVjb25zdHJ1Y3QgdGhlIGFycmF5IGxpdGVyYWwgKi8K IAlhcnJheWNvbnN0ID0gKENvbnN0ICopIGxzZWNvbmQoc2FvcC0+YXJncyk7CkBAIC0xMDQ3 LDcgKzEwNDcsNyBAQCBhcnJheWV4cHJfc3RhcnR1cF9mbihOb2RlICpjbGF1c2UsIFByZWRJ dGVySW5mbyBpbmZvKQogCiAJLyogQ3JlYXRlIHdvcmtpbmcgc3RhdGUgc3RydWN0ICovCiAJ c3RhdGUgPSAoQXJyYXlFeHBySXRlclN0YXRlICopIHBhbGxvYyhzaXplb2YoQXJyYXlFeHBy SXRlclN0YXRlKSk7Ci0JaW5mby0+c3RhdGUgPSAodm9pZCAqKSBzdGF0ZTsKKwlpbmZvLT5z dGF0ZSA9IHN0YXRlOwogCiAJLyogU2V0IHVwIGEgZHVtbXkgT3BFeHByIHRvIHJldHVybiBh cyB0aGUgcGVyLWl0ZW0gbm9kZSAqLwogCXN0YXRlLT5vcGV4cHIueHByLnR5cGUgPSBUX09w RXhwcjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3RsaXN0LmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC90bGlzdC5jCmluZGV4IDdlZjdmMzRkOGI1 Li40ODIzNTAyODVhMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv dGxpc3QuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC90bGlzdC5jCkBAIC0x MTM5LDggKzExMzksNyBAQCBzcGxpdF9wYXRodGFyZ2V0X3dhbGtlcihOb2RlICpub2RlLCBz cGxpdF9wYXRodGFyZ2V0X2NvbnRleHQgKmNvbnRleHQpCiAJCWNvbnRleHQtPmN1cnJlbnRf ZGVwdGggPSAwOwogCQljb250ZXh0LT5jdXJyZW50X3NncmVmID0gMDsgLyogc3ViZXhwcmVz c2lvbnMgYXJlIG5vdCBzb3J0Z3JvdXAgaXRlbXMgKi8KIAotCQkodm9pZCkgZXhwcmVzc2lv bl90cmVlX3dhbGtlcihub2RlLCBzcGxpdF9wYXRodGFyZ2V0X3dhbGtlciwKLQkJCQkJCQkJ CSAgKHZvaWQgKikgY29udGV4dCk7CisJCSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2Vy KG5vZGUsIHNwbGl0X3BhdGh0YXJnZXRfd2Fsa2VyLCBjb250ZXh0KTsKIAogCQkvKiBEZXB0 aCBpcyBvbmUgbW9yZSB0aGFuIGFueSBTUkYgYmVsb3cgaXQgKi8KIAkJc3JmX2RlcHRoID0g Y29udGV4dC0+Y3VycmVudF9kZXB0aCArIDE7CkBAIC0xMTgxLDggKzExODAsNyBAQCBzcGxp dF9wYXRodGFyZ2V0X3dhbGtlcihOb2RlICpub2RlLCBzcGxpdF9wYXRodGFyZ2V0X2NvbnRl eHQgKmNvbnRleHQpCiAJICogZXhhbWluZSBpdHMgaW5wdXRzLgogCSAqLwogCWNvbnRleHQt PmN1cnJlbnRfc2dyZWYgPSAwOyAvKiBzdWJleHByZXNzaW9ucyBhcmUgbm90IHNvcnRncm91 cCBpdGVtcyAqLwotCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHNwbGl0 X3BhdGh0YXJnZXRfd2Fsa2VyLAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHNwbGl0X3BhdGh0YXJnZXRfd2Fs a2VyLCBjb250ZXh0KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL3Zhci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvdmFyLmMKaW5k ZXggZjc1MzRhZDUzZDYuLjVmNzIxZWI4ZTEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC92YXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC92 YXIuYwpAQCAtMTI0LDcgKzEyNCw3IEBAIHB1bGxfdmFybm9zKFBsYW5uZXJJbmZvICpyb290 LCBOb2RlICpub2RlKQogCSAqLwogCXF1ZXJ5X29yX2V4cHJlc3Npb25fdHJlZV93YWxrZXIo bm9kZSwKIAkJCQkJCQkJCXB1bGxfdmFybm9zX3dhbGtlciwKLQkJCQkJCQkJCSh2b2lkICop ICZjb250ZXh0LAorCQkJCQkJCQkJJmNvbnRleHQsCiAJCQkJCQkJCQkwKTsKIAogCXJldHVy biBjb250ZXh0LnZhcm5vczsKQEAgLTE1MCw3ICsxNTAsNyBAQCBwdWxsX3Zhcm5vc19vZl9s ZXZlbChQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IGxldmVsc3VwKQogCSAq LwogCXF1ZXJ5X29yX2V4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCXB1 bGxfdmFybm9zX3dhbGtlciwKLQkJCQkJCQkJCSh2b2lkICopICZjb250ZXh0LAorCQkJCQkJ CQkJJmNvbnRleHQsCiAJCQkJCQkJCQkwKTsKIAogCXJldHVybiBjb250ZXh0LnZhcm5vczsK QEAgLTI2OSwxMiArMjY5LDExIEBAIHB1bGxfdmFybm9zX3dhbGtlcihOb2RlICpub2RlLCBw dWxsX3Zhcm5vc19jb250ZXh0ICpjb250ZXh0KQogCiAJCWNvbnRleHQtPnN1YmxldmVsc191 cCsrOwogCQlyZXN1bHQgPSBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkgKikgbm9kZSwgcHVs bF92YXJub3Nfd2Fsa2VyLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0LCAwKTsKKwkJ CQkJCQkJICAgY29udGV4dCwgMCk7CiAJCWNvbnRleHQtPnN1YmxldmVsc191cC0tOwogCQly ZXR1cm4gcmVzdWx0OwogCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2Rl LCBwdWxsX3Zhcm5vc193YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4dCk7CisJ cmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF92YXJub3Nfd2Fsa2Vy LCBjb250ZXh0KTsKIH0KIAogCkBAIC0zMjQsOCArMzIzLDcgQEAgcHVsbF92YXJhdHRub3Nf d2Fsa2VyKE5vZGUgKm5vZGUsIHB1bGxfdmFyYXR0bm9zX2NvbnRleHQgKmNvbnRleHQpCiAJ LyogU2hvdWxkIG5vdCBmaW5kIGFuIHVucGxhbm5lZCBzdWJxdWVyeSAqLwogCUFzc2VydCgh SXNBKG5vZGUsIFF1ZXJ5KSk7CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihu b2RlLCBwdWxsX3ZhcmF0dG5vc193YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4 dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF92YXJhdHRu b3Nfd2Fsa2VyLCBjb250ZXh0KTsKIH0KIAogCkBAIC0zNTAsNyArMzQ4LDcgQEAgcHVsbF92 YXJzX29mX2xldmVsKE5vZGUgKm5vZGUsIGludCBsZXZlbHN1cCkKIAkgKi8KIAlxdWVyeV9v cl9leHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCiAJCQkJCQkJCQlwdWxsX3ZhcnNfd2Fs a2VyLAotCQkJCQkJCQkJKHZvaWQgKikgJmNvbnRleHQsCisJCQkJCQkJCQkmY29udGV4dCwK IAkJCQkJCQkJCTApOwogCiAJcmV0dXJuIGNvbnRleHQudmFyczsKQEAgLTM4NSwxMiArMzgz LDExIEBAIHB1bGxfdmFyc193YWxrZXIoTm9kZSAqbm9kZSwgcHVsbF92YXJzX2NvbnRleHQg KmNvbnRleHQpCiAKIAkJY29udGV4dC0+c3VibGV2ZWxzX3VwKys7CiAJCXJlc3VsdCA9IHF1 ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLCBwdWxsX3ZhcnNfd2Fsa2VyLAotCQkJ CQkJCQkgICAodm9pZCAqKSBjb250ZXh0LCAwKTsKKwkJCQkJCQkJICAgY29udGV4dCwgMCk7 CiAJCWNvbnRleHQtPnN1YmxldmVsc191cC0tOwogCQlyZXR1cm4gcmVzdWx0OwogCX0KLQly ZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3ZhcnNfd2Fsa2VyLAot CQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsIHB1bGxfdmFyc193YWxrZXIsIGNvbnRleHQpOwogfQogCiAKQEAgLTQ0 OSw3ICs0NDYsNyBAQCBjb250YWluX3ZhcnNfb2ZfbGV2ZWwoTm9kZSAqbm9kZSwgaW50IGxl dmVsc3VwKQogCiAJcmV0dXJuIHF1ZXJ5X29yX2V4cHJlc3Npb25fdHJlZV93YWxrZXIobm9k ZSwKIAkJCQkJCQkJCQkgICBjb250YWluX3ZhcnNfb2ZfbGV2ZWxfd2Fsa2VyLAotCQkJCQkJ CQkJCSAgICh2b2lkICopICZzdWJsZXZlbHNfdXAsCisJCQkJCQkJCQkJICAgJnN1YmxldmVs c191cCwKIAkJCQkJCQkJCQkgICAwKTsKIH0KIApAQCAtNDg0LDE0ICs0ODEsMTQgQEAgY29u dGFpbl92YXJzX29mX2xldmVsX3dhbGtlcihOb2RlICpub2RlLCBpbnQgKnN1YmxldmVsc191 cCkKIAkJKCpzdWJsZXZlbHNfdXApKys7CiAJCXJlc3VsdCA9IHF1ZXJ5X3RyZWVfd2Fsa2Vy KChRdWVyeSAqKSBub2RlLAogCQkJCQkJCQkgICBjb250YWluX3ZhcnNfb2ZfbGV2ZWxfd2Fs a2VyLAotCQkJCQkJCQkgICAodm9pZCAqKSBzdWJsZXZlbHNfdXAsCisJCQkJCQkJCSAgIHN1 YmxldmVsc191cCwKIAkJCQkJCQkJICAgMCk7CiAJCSgqc3VibGV2ZWxzX3VwKS0tOwogCQly ZXR1cm4gcmVzdWx0OwogCX0KIAlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2Rl LAogCQkJCQkJCQkgIGNvbnRhaW5fdmFyc19vZl9sZXZlbF93YWxrZXIsCi0JCQkJCQkJCSAg KHZvaWQgKikgc3VibGV2ZWxzX3VwKTsKKwkJCQkJCQkJICBzdWJsZXZlbHNfdXApOwogfQog CiAKQEAgLTUyMCw3ICs1MTcsNyBAQCBsb2NhdGVfdmFyX29mX2xldmVsKE5vZGUgKm5vZGUs IGludCBsZXZlbHN1cCkKIAogCSh2b2lkKSBxdWVyeV9vcl9leHByZXNzaW9uX3RyZWVfd2Fs a2VyKG5vZGUsCiAJCQkJCQkJCQkJICAgbG9jYXRlX3Zhcl9vZl9sZXZlbF93YWxrZXIsCi0J CQkJCQkJCQkJICAgKHZvaWQgKikgJmNvbnRleHQsCisJCQkJCQkJCQkJICAgJmNvbnRleHQs CiAJCQkJCQkJCQkJICAgMCk7CiAKIAlyZXR1cm4gY29udGV4dC52YXJfbG9jYXRpb247CkBA IC01NTgsMTQgKzU1NSwxNCBAQCBsb2NhdGVfdmFyX29mX2xldmVsX3dhbGtlcihOb2RlICpu b2RlLAogCQljb250ZXh0LT5zdWJsZXZlbHNfdXArKzsKIAkJcmVzdWx0ID0gcXVlcnlfdHJl ZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCiAJCQkJCQkJCSAgIGxvY2F0ZV92YXJfb2ZfbGV2 ZWxfd2Fsa2VyLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0LAorCQkJCQkJCQkgICBj b250ZXh0LAogCQkJCQkJCQkgICAwKTsKIAkJY29udGV4dC0+c3VibGV2ZWxzX3VwLS07CiAJ CXJldHVybiByZXN1bHQ7CiAJfQogCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5v ZGUsCiAJCQkJCQkJCSAgbG9jYXRlX3Zhcl9vZl9sZXZlbF93YWxrZXIsCi0JCQkJCQkJCSAg KHZvaWQgKikgY29udGV4dCk7CisJCQkJCQkJCSAgY29udGV4dCk7CiB9CiAKIApAQCAtNzA3 LDggKzcwNCw3IEBAIHB1bGxfdmFyX2NsYXVzZV93YWxrZXIoTm9kZSAqbm9kZSwgcHVsbF92 YXJfY2xhdXNlX2NvbnRleHQgKmNvbnRleHQpCiAJCWVsc2UKIAkJCWVsb2coRVJST1IsICJQ bGFjZUhvbGRlclZhciBmb3VuZCB3aGVyZSBub3QgZXhwZWN0ZWQiKTsKIAl9Ci0JcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF92YXJfY2xhdXNlX3dhbGtlciwK LQkJCQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVl X3dhbGtlcihub2RlLCBwdWxsX3Zhcl9jbGF1c2Vfd2Fsa2VyLCBjb250ZXh0KTsKIH0KIAog CkBAIC04NjcsNyArODYzLDcgQEAgZmxhdHRlbl9qb2luX2FsaWFzX3ZhcnNfbXV0YXRvcihO b2RlICpub2RlLAogCiAJCXBodiA9IChQbGFjZUhvbGRlclZhciAqKSBleHByZXNzaW9uX3Ry ZWVfbXV0YXRvcihub2RlLAogCQkJCQkJCQkJCQkJCQkgZmxhdHRlbl9qb2luX2FsaWFzX3Zh cnNfbXV0YXRvciwKLQkJCQkJCQkJCQkJCQkJICh2b2lkICopIGNvbnRleHQpOworCQkJCQkJ CQkJCQkJCQkgY29udGV4dCk7CiAJCS8qIG5vdyBmaXggUGxhY2VIb2xkZXJWYXIncyByZWxp ZCBzZXRzICovCiAJCWlmIChwaHYtPnBobGV2ZWxzdXAgPT0gY29udGV4dC0+c3VibGV2ZWxz X3VwKQogCQl7CkBAIC04ODksNyArODg1LDcgQEAgZmxhdHRlbl9qb2luX2FsaWFzX3ZhcnNf bXV0YXRvcihOb2RlICpub2RlLAogCQljb250ZXh0LT5pbnNlcnRlZF9zdWJsaW5rID0gKChR dWVyeSAqKSBub2RlKS0+aGFzU3ViTGlua3M7CiAJCW5ld25vZGUgPSBxdWVyeV90cmVlX211 dGF0b3IoKFF1ZXJ5ICopIG5vZGUsCiAJCQkJCQkJCQkgZmxhdHRlbl9qb2luX2FsaWFzX3Zh cnNfbXV0YXRvciwKLQkJCQkJCQkJCSAodm9pZCAqKSBjb250ZXh0LAorCQkJCQkJCQkJIGNv bnRleHQsCiAJCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lOQUxJQVNFUyk7CiAJCW5ld25vZGUt Pmhhc1N1YkxpbmtzIHw9IGNvbnRleHQtPmluc2VydGVkX3N1Ymxpbms7CiAJCWNvbnRleHQt Pmluc2VydGVkX3N1YmxpbmsgPSBzYXZlX2luc2VydGVkX3N1Ymxpbms7CkBAIC05MDQsOCAr OTAwLDcgQEAgZmxhdHRlbl9qb2luX2FsaWFzX3ZhcnNfbXV0YXRvcihOb2RlICpub2RlLAog CUFzc2VydCghSXNBKG5vZGUsIFBsYWNlSG9sZGVySW5mbykpOwogCUFzc2VydCghSXNBKG5v ZGUsIE1pbk1heEFnZ0luZm8pKTsKIAotCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRv cihub2RlLCBmbGF0dGVuX2pvaW5fYWxpYXNfdmFyc19tdXRhdG9yLAotCQkJCQkJCQkgICAo dm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9k ZSwgZmxhdHRlbl9qb2luX2FsaWFzX3ZhcnNfbXV0YXRvciwgY29udGV4dCk7CiB9CiAKIC8q CkBAIC0xMDQ0LDcgKzEwMzksNyBAQCBmbGF0dGVuX2dyb3VwX2V4cHJzX211dGF0b3IoTm9k ZSAqbm9kZSwKIAkJY29udGV4dC0+aW5zZXJ0ZWRfc3VibGluayA9ICgoUXVlcnkgKikgbm9k ZSktPmhhc1N1YkxpbmtzOwogCQluZXdub2RlID0gcXVlcnlfdHJlZV9tdXRhdG9yKChRdWVy eSAqKSBub2RlLAogCQkJCQkJCQkJIGZsYXR0ZW5fZ3JvdXBfZXhwcnNfbXV0YXRvciwKLQkJ CQkJCQkJCSAodm9pZCAqKSBjb250ZXh0LAorCQkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJ CQkgUVRXX0lHTk9SRV9HUk9VUEVYUFJTKTsKIAkJbmV3bm9kZS0+aGFzU3ViTGlua3MgfD0g Y29udGV4dC0+aW5zZXJ0ZWRfc3VibGluazsKIAkJY29udGV4dC0+aW5zZXJ0ZWRfc3VibGlu ayA9IHNhdmVfaW5zZXJ0ZWRfc3VibGluazsKQEAgLTEwNTMsNyArMTA0OCw3IEBAIGZsYXR0 ZW5fZ3JvdXBfZXhwcnNfbXV0YXRvcihOb2RlICpub2RlLAogCX0KIAogCXJldHVybiBleHBy ZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBmbGF0dGVuX2dyb3VwX2V4cHJzX211dGF0b3Is Ci0JCQkJCQkJCSAgICh2b2lkICopIGNvbnRleHQpOworCQkJCQkJCQkgICBjb250ZXh0KTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDUwNmUwNjMxNjE1Li4zODY0YTY3 NWQyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0xNjg3LDcgKzE2ODcsNyBAQCB0cmFu c2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10 KQogCQkJTm9kZQkgICAqY29sID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKIAogCQkJY29sID0g Y29lcmNlX3RvX2NvbW1vbl90eXBlKHBzdGF0ZSwgY29sLCBjb2x0eXBlLCAiVkFMVUVTIik7 Ci0JCQlsZmlyc3QobGMpID0gKHZvaWQgKikgY29sOworCQkJbGZpcnN0KGxjKSA9IGNvbDsK IAkJfQogCiAJCWNvbHR5cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBzdGF0ZSwgY29s ZXhwcnNbaV0sIGNvbHR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGVmYTcz MGMxNjc2Li4wNGI0NTk2YTY1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNzk5 LDcgKzc5OSw3IEBAIGNoZWNrX2FnZ19hcmd1bWVudHNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJ CWNvbnRleHQtPnN1YmxldmVsc191cCsrOwogCQlyZXN1bHQgPSBxdWVyeV90cmVlX3dhbGtl cigoUXVlcnkgKikgbm9kZSwKIAkJCQkJCQkJICAgY2hlY2tfYWdnX2FyZ3VtZW50c193YWxr ZXIsCi0JCQkJCQkJCSAgICh2b2lkICopIGNvbnRleHQsCisJCQkJCQkJCSAgIGNvbnRleHQs CiAJCQkJCQkJCSAgIDApOwogCQljb250ZXh0LT5zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJu IHJlc3VsdDsKQEAgLTgwNyw3ICs4MDcsNyBAQCBjaGVja19hZ2dfYXJndW1lbnRzX3dhbGtl cihOb2RlICpub2RlLAogCiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwK IAkJCQkJCQkJICBjaGVja19hZ2dfYXJndW1lbnRzX3dhbGtlciwKLQkJCQkJCQkJICAodm9p ZCAqKSBjb250ZXh0KTsKKwkJCQkJCQkJICBjb250ZXh0KTsKIH0KIAogLyoKQEAgLTE1MTcs MTMgKzE1MTcsMTMgQEAgc3Vic3RpdHV0ZV9ncm91cGVkX2NvbHVtbnNfbXV0YXRvcihOb2Rl ICpub2RlLAogCQljb250ZXh0LT5zdWJsZXZlbHNfdXArKzsKIAkJbmV3bm9kZSA9IHF1ZXJ5 X3RyZWVfbXV0YXRvcigoUXVlcnkgKikgbm9kZSwKIAkJCQkJCQkJCSBzdWJzdGl0dXRlX2dy b3VwZWRfY29sdW1uc19tdXRhdG9yLAotCQkJCQkJCQkJICh2b2lkICopIGNvbnRleHQsCisJ CQkJCQkJCQkgY29udGV4dCwKIAkJCQkJCQkJCSAwKTsKIAkJY29udGV4dC0+c3VibGV2ZWxz X3VwLS07CiAJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCX0KIAlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX211dGF0b3Iobm9kZSwgc3Vic3RpdHV0ZV9ncm91cGVkX2NvbHVtbnNfbXV0 YXRvciwKLQkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CisJCQkJCQkJCSAgIGNvbnRl eHQpOwogfQogCiAvKgpAQCAtMTY5MSwxMyArMTY5MSwxMyBAQCBmaW5hbGl6ZV9ncm91cGlu Z19leHByc193YWxrZXIoTm9kZSAqbm9kZSwKIAkJY29udGV4dC0+c3VibGV2ZWxzX3VwKys7 CiAJCXJlc3VsdCA9IHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAogCQkJCQkJ CQkgICBmaW5hbGl6ZV9ncm91cGluZ19leHByc193YWxrZXIsCi0JCQkJCQkJCSAgICh2b2lk ICopIGNvbnRleHQsCisJCQkJCQkJCSAgIGNvbnRleHQsCiAJCQkJCQkJCSAgIDApOwogCQlj b250ZXh0LT5zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZmluYWxpemVfZ3JvdXBpbmdfZXhwcnNf d2Fsa2VyLAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCQkJCQkJCQkgIGNvbnRl eHQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Nv bGxhdGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKaW5kZXggNDQ1 MjliYjQ5ZTYuLjI4NzQ3MzFjMzUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29sbGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhQYXJzZVN0 YXRlICpwc3RhdGUsIFF1ZXJ5ICpxdWVyeSkKIAkgKi8KIAkodm9pZCkgcXVlcnlfdHJlZV93 YWxrZXIocXVlcnksCiAJCQkJCQkJIGFzc2lnbl9xdWVyeV9jb2xsYXRpb25zX3dhbGtlciwK LQkJCQkJCQkgKHZvaWQgKikgcHN0YXRlLAorCQkJCQkJCSBwc3RhdGUsCiAJCQkJCQkJIFFU V19JR05PUkVfUkFOR0VfVEFCTEUgfAogCQkJCQkJCSBRVFdfSUdOT1JFX0NURV9TVUJRVUVS SUVTKTsKIH0KQEAgLTI5NSw3ICsyOTUsNyBAQCBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIo Tm9kZSAqbm9kZSwgYXNzaWduX2NvbGxhdGlvbnNfY29udGV4dCAqY29udGV4dCkKIAogCQkJ CSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCiAJCQkJCQkJCQkJCSAgYXNz aWduX2NvbGxhdGlvbnNfd2Fsa2VyLAotCQkJCQkJCQkJCQkgICh2b2lkICopICZsb2Njb250 ZXh0KTsKKwkJCQkJCQkJCQkJICAmbG9jY29udGV4dCk7CiAKIAkJCQljb2xsYXRpb24gPSBl eHByLT5jb2xsT2lkOwogCQkJCUFzc2VydChPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOwpAQCAt MzE3LDcgKzMxNyw3IEBAIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlcihOb2RlICpub2RlLCBh c3NpZ25fY29sbGF0aW9uc19jb250ZXh0ICpjb250ZXh0KQogCQkJCS8qIC4uLiBidXQgZmly c3QsIHJlY3Vyc2UgKi8KIAkJCQkodm9pZCkgZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2Rl LAogCQkJCQkJCQkJCQkgIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlciwKLQkJCQkJCQkJCQkJ ICAodm9pZCAqKSAmbG9jY29udGV4dCk7CisJCQkJCQkJCQkJCSAgJmxvY2NvbnRleHQpOwog CiAJCQkJaWYgKE9pZElzVmFsaWQoZXhwci0+cmVzdWx0Y29sbGlkKSkKIAkJCQl7CkBAIC00 MDMsNyArNDAzLDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIGFz c2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQkJLyogLi4uIGJ1dCBmaXJz dCwgcmVjdXJzZSAqLwogCQkJCSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUs CiAJCQkJCQkJCQkJCSAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyLAotCQkJCQkJCQkJCQkg ICh2b2lkICopICZsb2Njb250ZXh0KTsKKwkJCQkJCQkJCQkJICAmbG9jY29udGV4dCk7CiAK IAkJCQlpZiAoT2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQogCQkJCXsKQEAgLTQ0NCw3ICs0 NDQsNyBAQCBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIoTm9kZSAqbm9kZSwgYXNzaWduX2Nv bGxhdGlvbnNfY29udGV4dCAqY29udGV4dCkKIAkJY2FzZSBUX1RhcmdldEVudHJ5OgogCQkJ KHZvaWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCQkgIGFzc2ln bl9jb2xsYXRpb25zX3dhbGtlciwKLQkJCQkJCQkJCQkgICh2b2lkICopICZsb2Njb250ZXh0 KTsKKwkJCQkJCQkJCQkgICZsb2Njb250ZXh0KTsKIAogCQkJLyoKIAkJCSAqIFRhcmdldEVu dHJ5IGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkLCBhbmQgc2hvdWxkIGJ1YmJsZSB0aGF0CkBA IC00ODgsNyArNDg4LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUs IGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNhc2UgVF9NZXJnZUFj dGlvbjoKIAkJCSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCiAJCQkJCQkJ CQkJICBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIsCi0JCQkJCQkJCQkJICAodm9pZCAqKSAm bG9jY29udGV4dCk7CisJCQkJCQkJCQkJICAmbG9jY29udGV4dCk7CiAKIAkJCS8qCiAJCQkg KiBXaGVuIHdlJ3JlIGludm9rZWQgb24gYSBxdWVyeSdzIGpvaW50cmVlLCB3ZSBkb24ndCBu ZWVkIHRvIGRvCkBAIC01MjgsNyArNTI4LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2Vy KE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNh c2UgVF9MaXN0OgogCQkJKHZvaWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKIAkJ CQkJCQkJCQkgIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlciwKLQkJCQkJCQkJCQkgICh2b2lk ICopICZsb2Njb250ZXh0KTsKKwkJCQkJCQkJCQkgICZsb2Njb250ZXh0KTsKIAogCQkJLyoK IAkJCSAqIFdoZW4gcHJvY2Vzc2luZyBhIGxpc3QsIGNvbGxhdGlvbiBzdGF0ZSBqdXN0IGJ1 YmJsZXMgdXAgZnJvbQpAQCAtNjk5LDcgKzY5OSw3IEBAIGFzc2lnbl9jb2xsYXRpb25zX3dh bGtlcihOb2RlICpub2RlLCBhc3NpZ25fY29sbGF0aW9uc19jb250ZXh0ICpjb250ZXh0KQog CQkJCQkJICovCiAJCQkJCQkodm9pZCkgZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLAog CQkJCQkJCQkJCQkJCSAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyLAotCQkJCQkJCQkJCQkJ CSAgKHZvaWQgKikgJmxvY2NvbnRleHQpOworCQkJCQkJCQkJCQkJCSAgJmxvY2NvbnRleHQp OwogCQkJCQkJYnJlYWs7CiAJCQkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfY3RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXgg ZGU5YWU5YjQ4MzQuLjc2YTAwODEwMjkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBA IC03NDYsNyArNzQ2LDcgQEAgbWFrZURlcGVuZGVuY3lHcmFwaFdhbGtlcihOb2RlICpub2Rl LCBDdGVTdGF0ZSAqY3N0YXRlKQogCQkJCX0KIAkJCQkodm9pZCkgcmF3X2V4cHJlc3Npb25f dHJlZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCQkJCSAgbWFrZURlcGVuZGVuY3lHcmFwaFdh bGtlciwKLQkJCQkJCQkJCQkJCSAgKHZvaWQgKikgY3N0YXRlKTsKKwkJCQkJCQkJCQkJCSAg Y3N0YXRlKTsKIAkJCQljc3RhdGUtPmlubmVyd2l0aHMgPSBsaXN0X2RlbGV0ZV9maXJzdChj c3RhdGUtPmlubmVyd2l0aHMpOwogCQkJfQogCQkJZWxzZQpAQCAtNzY4LDcgKzc2OCw3IEBA IG1ha2VEZXBlbmRlbmN5R3JhcGhXYWxrZXIoTm9kZSAqbm9kZSwgQ3RlU3RhdGUgKmNzdGF0 ZSkKIAkJCQl9CiAJCQkJKHZvaWQpIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUs CiAJCQkJCQkJCQkJCQkgIG1ha2VEZXBlbmRlbmN5R3JhcGhXYWxrZXIsCi0JCQkJCQkJCQkJ CQkgICh2b2lkICopIGNzdGF0ZSk7CisJCQkJCQkJCQkJCQkgIGNzdGF0ZSk7CiAJCQkJY3N0 YXRlLT5pbm5lcndpdGhzID0gbGlzdF9kZWxldGVfZmlyc3QoY3N0YXRlLT5pbm5lcndpdGhz KTsKIAkJCX0KIAkJCS8qIFdlJ3JlIGRvbmUgZXhhbWluaW5nIHRoZSBTZWxlY3RTdG10ICov CkBAIC03ODcsNyArNzg3LDcgQEAgbWFrZURlcGVuZGVuY3lHcmFwaFdhbGtlcihOb2RlICpu b2RlLCBDdGVTdGF0ZSAqY3N0YXRlKQogCX0KIAlyZXR1cm4gcmF3X2V4cHJlc3Npb25fdHJl ZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCSAgbWFrZURlcGVuZGVuY3lHcmFwaFdhbGtlciwK LQkJCQkJCQkJCSAgKHZvaWQgKikgY3N0YXRlKTsKKwkJCQkJCQkJCSAgY3N0YXRlKTsKIH0K IAogLyoKQEAgLTExMzAsNyArMTEzMCw3IEBAIGNoZWNrV2VsbEZvcm1lZFJlY3Vyc2lvbldh bGtlcihOb2RlICpub2RlLCBDdGVTdGF0ZSAqY3N0YXRlKQogCX0KIAlyZXR1cm4gcmF3X2V4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCSAgY2hlY2tXZWxsRm9ybWVk UmVjdXJzaW9uV2Fsa2VyLAotCQkJCQkJCQkJICAodm9pZCAqKSBjc3RhdGUpOworCQkJCQkJ CQkJICBjc3RhdGUpOwogfQogCiAvKgpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgY2hlY2tXZWxs Rm9ybWVkU2VsZWN0U3RtdChTZWxlY3RTdG10ICpzdG10LCBDdGVTdGF0ZSAqY3N0YXRlKQog CQkvKiBqdXN0IHJlY3Vyc2Ugd2l0aG91dCBjaGFuZ2luZyBzdGF0ZSAqLwogCQlyYXdfZXhw cmVzc2lvbl90cmVlX3dhbGtlcigoTm9kZSAqKSBzdG10LAogCQkJCQkJCQkgICBjaGVja1dl bGxGb3JtZWRSZWN1cnNpb25XYWxrZXIsCi0JCQkJCQkJCSAgICh2b2lkICopIGNzdGF0ZSk7 CisJCQkJCQkJCSAgIGNzdGF0ZSk7CiAJfQogCWVsc2UKIAl7CkBAIC0xMTU3LDcgKzExNTcs NyBAQCBjaGVja1dlbGxGb3JtZWRTZWxlY3RTdG10KFNlbGVjdFN0bXQgKnN0bXQsIEN0ZVN0 YXRlICpjc3RhdGUpCiAJCQljYXNlIFNFVE9QX1VOSU9OOgogCQkJCXJhd19leHByZXNzaW9u X3RyZWVfd2Fsa2VyKChOb2RlICopIHN0bXQsCiAJCQkJCQkJCQkJICAgY2hlY2tXZWxsRm9y bWVkUmVjdXJzaW9uV2Fsa2VyLAotCQkJCQkJCQkJCSAgICh2b2lkICopIGNzdGF0ZSk7CisJ CQkJCQkJCQkJICAgY3N0YXRlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU0VUT1BfSU5URVJT RUNUOgogCQkJCWlmIChzdG10LT5hbGwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2Vfbm9kZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwppbmRl eCA5MzYxYjUyNTJkOC4uYmRhZWI5MGQyZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHNldHVwX3BhcnNlcl9lcnJwb3NpdGlvbl9jYWxsYmFj ayhQYXJzZUNhbGxiYWNrU3RhdGUgKnBjYnN0YXRlLAogCXBjYnN0YXRlLT5wc3RhdGUgPSBw c3RhdGU7CiAJcGNic3RhdGUtPmxvY2F0aW9uID0gbG9jYXRpb247CiAJcGNic3RhdGUtPmVy cmNhbGxiYWNrLmNhbGxiYWNrID0gcGNiX2Vycm9yX2NhbGxiYWNrOwotCXBjYnN0YXRlLT5l cnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSBwY2JzdGF0ZTsKKwlwY2JzdGF0ZS0+ZXJyY2Fs bGJhY2suYXJnID0gcGNic3RhdGU7CiAJcGNic3RhdGUtPmVycmNhbGxiYWNrLnByZXZpb3Vz ID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJnBjYnN0 YXRlLT5lcnJjYWxsYmFjazsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9wYXJhbS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMKaW5kZXgg YjYxNzU5MWVmNjguLjFlYzZjOTIwZmJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfcGFyYW0uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0u YwpAQCAtNzIsNyArNzIsNyBAQCBzZXR1cF9wYXJzZV9maXhlZF9wYXJhbWV0ZXJzKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAogCXBhcnN0YXRlLT5wYXJhbVR5cGVzID0gcGFyYW1UeXBlczsK IAlwYXJzdGF0ZS0+bnVtUGFyYW1zID0gbnVtUGFyYW1zOwotCXBzdGF0ZS0+cF9yZWZfaG9v a19zdGF0ZSA9ICh2b2lkICopIHBhcnN0YXRlOworCXBzdGF0ZS0+cF9yZWZfaG9va19zdGF0 ZSA9IHBhcnN0YXRlOwogCXBzdGF0ZS0+cF9wYXJhbXJlZl9ob29rID0gZml4ZWRfcGFyYW1y ZWZfaG9vazsKIAkvKiBubyBuZWVkIHRvIHVzZSBwX2NvZXJjZV9wYXJhbV9ob29rICovCiB9 CkBAIC04OCw3ICs4OCw3IEBAIHNldHVwX3BhcnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMoUGFy c2VTdGF0ZSAqcHN0YXRlLAogCiAJcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBwYXJhbVR5cGVz OwogCXBhcnN0YXRlLT5udW1QYXJhbXMgPSBudW1QYXJhbXM7Ci0JcHN0YXRlLT5wX3JlZl9o b29rX3N0YXRlID0gKHZvaWQgKikgcGFyc3RhdGU7CisJcHN0YXRlLT5wX3JlZl9ob29rX3N0 YXRlID0gcGFyc3RhdGU7CiAJcHN0YXRlLT5wX3BhcmFtcmVmX2hvb2sgPSB2YXJpYWJsZV9w YXJhbXJlZl9ob29rOwogCXBzdGF0ZS0+cF9jb2VyY2VfcGFyYW1faG9vayA9IHZhcmlhYmxl X2NvZXJjZV9wYXJhbV9ob29rOwogfQpAQCAtMjc0LDcgKzI3NCw3IEBAIGNoZWNrX3Zhcmlh YmxlX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXVlcnkpCiAJaWYg KCpwYXJzdGF0ZS0+bnVtUGFyYW1zID4gMCkKIAkJKHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2Vy KHF1ZXJ5LAogCQkJCQkJCQkgY2hlY2tfcGFyYW1ldGVyX3Jlc29sdXRpb25fd2Fsa2VyLAot CQkJCQkJCQkgKHZvaWQgKikgcHN0YXRlLCAwKTsKKwkJCQkJCQkJIHBzdGF0ZSwgMCk7CiB9 CiAKIC8qCkBAIC0zMTgsMTAgKzMxOCwxMCBAQCBjaGVja19wYXJhbWV0ZXJfcmVzb2x1dGlv bl93YWxrZXIoTm9kZSAqbm9kZSwgUGFyc2VTdGF0ZSAqcHN0YXRlKQogCQkvKiBSZWN1cnNl IGludG8gUlRFIHN1YnF1ZXJ5IG9yIG5vdC15ZXQtcGxhbm5lZCBzdWJsaW5rIHN1YnF1ZXJ5 ICovCiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkgKikgbm9kZSwKIAkJCQkJ CQkJIGNoZWNrX3BhcmFtZXRlcl9yZXNvbHV0aW9uX3dhbGtlciwKLQkJCQkJCQkJICh2b2lk ICopIHBzdGF0ZSwgMCk7CisJCQkJCQkJCSBwc3RhdGUsIDApOwogCX0KIAlyZXR1cm4gZXhw cmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjaGVja19wYXJhbWV0ZXJfcmVzb2x1dGlvbl93 YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgcHN0YXRlKTsKKwkJCQkJCQkJICBwc3RhdGUp OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKaW5kZXggOTk0ZWQ5OTk1YWMuLjcyNDA0ZTcyZmZm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9zY2FuLmwKQEAgLTEyMDUsNyArMTIwNSw3IEBAIHNldHVwX3NjYW5uZXJf ZXJycG9zaXRpb25fY2FsbGJhY2soU2Nhbm5lckNhbGxiYWNrU3RhdGUgKnNjYnN0YXRlLAog CXNjYnN0YXRlLT55eXNjYW5uZXIgPSB5eXNjYW5uZXI7CiAJc2Nic3RhdGUtPmxvY2F0aW9u ID0gbG9jYXRpb247CiAJc2Nic3RhdGUtPmVycmNhbGxiYWNrLmNhbGxiYWNrID0gc2NiX2Vy cm9yX2NhbGxiYWNrOwotCXNjYnN0YXRlLT5lcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSBz Y2JzdGF0ZTsKKwlzY2JzdGF0ZS0+ZXJyY2FsbGJhY2suYXJnID0gc2Nic3RhdGU7CiAJc2Ni c3RhdGUtPmVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAll cnJvcl9jb250ZXh0X3N0YWNrID0gJnNjYnN0YXRlLT5lcnJjYWxsYmFjazsKIH0KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0cHJ1bmUuYyBiL3NyYy9iYWNr ZW5kL3BhcnRpdGlvbmluZy9wYXJ0cHJ1bmUuYwppbmRleCA5YTFhN2ZhYWM3YS4uNGUxMmFl NWQxZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0cHJ1bmUu YworKysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydHBydW5lLmMKQEAgLTMzNjUs OCArMzM2NSw3IEBAIHB1bGxfZXhlY19wYXJhbWlkc193YWxrZXIoTm9kZSAqbm9kZSwgQml0 bWFwc2V0ICoqY29udGV4dCkKIAkJCSpjb250ZXh0ID0gYm1zX2FkZF9tZW1iZXIoKmNvbnRl eHQsIHBhcmFtLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KLQlyZXR1cm4gZXhw cmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX2V4ZWNfcGFyYW1pZHNfd2Fsa2VyLAot CQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsIHB1bGxfZXhlY19wYXJhbWlkc193YWxrZXIsIGNvbnRleHQpOwogfQog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9zeXN2X3NobWVtLmMgYi9zcmMv YmFja2VuZC9wb3J0L3N5c3Zfc2htZW0uYwppbmRleCAzNjJhMzdkM2IzYS4uYTVhNDUxMWY2 NmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvc3lzdl9zaG1lbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BvcnQvc3lzdl9zaG1lbS5jCkBAIC0yODYsNyArMjg2LDcgQEAgc3RhdGlj IHZvaWQKIElwY01lbW9yeURldGFjaChpbnQgc3RhdHVzLCBEYXR1bSBzaG1hZGRyKQogewog CS8qIERldGFjaCBTeXN0ZW0gViBzaGFyZWQgbWVtb3J5IGJsb2NrLiAqLwotCWlmIChzaG1k dCgodm9pZCAqKSBEYXR1bUdldFBvaW50ZXIoc2htYWRkcikpIDwgMCkKKwlpZiAoc2htZHQo RGF0dW1HZXRQb2ludGVyKHNobWFkZHIpKSA8IDApCiAJCWVsb2coTE9HLCAic2htZHQoJXAp IGZhaWxlZDogJW0iLCBEYXR1bUdldFBvaW50ZXIoc2htYWRkcikpOwogfQogCkBAIC0zMjAs NyArMzIwLDcgQEAgUEdTaGFyZWRNZW1vcnlJc0luVXNlKHVuc2lnbmVkIGxvbmcgaWQxLCB1 bnNpZ25lZCBsb25nIGlkMikKIAlJcGNNZW1vcnlTdGF0ZSBzdGF0ZTsKIAogCXN0YXRlID0g UEdTaGFyZWRNZW1vcnlBdHRhY2goKElwY01lbW9yeUlkKSBpZDIsIE5VTEwsICZtZW1BZGRy ZXNzKTsKLQlpZiAobWVtQWRkcmVzcyAmJiBzaG1kdCgodm9pZCAqKSBtZW1BZGRyZXNzKSA8 IDApCisJaWYgKG1lbUFkZHJlc3MgJiYgc2htZHQobWVtQWRkcmVzcykgPCAwKQogCQllbG9n KExPRywgInNobWR0KCVwKSBmYWlsZWQ6ICVtIiwgbWVtQWRkcmVzcyk7CiAJc3dpdGNoIChz dGF0ZSkKIAl7CkBAIC04MzUsNyArODM1LDcgQEAgUEdTaGFyZWRNZW1vcnlDcmVhdGUoU2l6 ZSBzaXplLAogCQkJCWJyZWFrOwogCQl9CiAKLQkJaWYgKG9sZGhkciAmJiBzaG1kdCgodm9p ZCAqKSBvbGRoZHIpIDwgMCkKKwkJaWYgKG9sZGhkciAmJiBzaG1kdChvbGRoZHIpIDwgMCkK IAkJCWVsb2coTE9HLCAic2htZHQoJXApIGZhaWxlZDogJW0iLCBvbGRoZHIpOwogCX0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwppbmRleCAzZmUx Nzc0YTFlOS4uYTQ4ZTEzNjRiM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbC5jCkBAIC04MDAsNyArODAwLDcgQEAgc3RhcnR1cF9jYl93cmFwcGVy KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgT3V0cHV0UGx1Z2luT3B0aW9ucyAqb3B0 LCBib29sIGkKIAlzdGF0ZS5jYWxsYmFja19uYW1lID0gInN0YXJ0dXAiOwogCXN0YXRlLnJl cG9ydF9sb2NhdGlvbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCWVycmNhbGxiYWNrLmNhbGxi YWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcg PSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJhY2suYXJnID0gJnN0YXRlOwogCWVycmNh bGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0 X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBAIC04MjgsNyArODI4LDcgQEAgc2h1dGRvd25f Y2Jfd3JhcHBlcihMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgpCiAJc3RhdGUuY2FsbGJh Y2tfbmFtZSA9ICJzaHV0ZG93biI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gSW52YWxp ZFhMb2dSZWNQdHI7CiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBvdXRwdXRfcGx1Z2luX2Vy cm9yX2NhbGxiYWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZzdGF0ZTsKKwll cnJjYWxsYmFjay5hcmcgPSAmc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJv cl9jb250ZXh0X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7 CiAKQEAgLTg2Miw3ICs4NjIsNyBAQCBiZWdpbl9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIg KmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4pCiAJc3RhdGUuY2FsbGJhY2tfbmFtZSA9 ICJiZWdpbiI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gdHhuLT5maXJzdF9sc247CiAJ ZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBvdXRwdXRfcGx1Z2luX2Vycm9yX2NhbGxiYWNrOwot CWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZzdGF0ZTsKKwllcnJjYWxsYmFjay5hcmcg PSAmc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0YWNr OwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKQEAgLTg5NCw3ICs4 OTQsNyBAQCBjb21taXRfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRl ckJ1ZmZlclRYTiAqdHhuLAogCXN0YXRlLmNhbGxiYWNrX25hbWUgPSAiY29tbWl0IjsKIAlz dGF0ZS5yZXBvcnRfbG9jYXRpb24gPSB0eG4tPmZpbmFsX2xzbjsgLyogYmVnaW5uaW5nIG9m IGNvbW1pdCByZWNvcmQgKi8KIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVn aW5fZXJyb3JfY2FsbGJhY2s7Ci0JZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRl OworCWVycmNhbGxiYWNrLmFyZyA9ICZzdGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9 IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxs YmFjazsKIApAQCAtOTM1LDcgKzkzNSw3IEBAIGJlZ2luX3ByZXBhcmVfY2Jfd3JhcHBlcihS ZW9yZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuKQogCXN0YXRlLmNh bGxiYWNrX25hbWUgPSAiYmVnaW5fcHJlcGFyZSI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9u ID0gdHhuLT5maXJzdF9sc247CiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBvdXRwdXRfcGx1 Z2luX2Vycm9yX2NhbGxiYWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZzdGF0 ZTsKKwllcnJjYWxsYmFjay5hcmcgPSAmc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMg PSBlcnJvcl9jb250ZXh0X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2Fs bGJhY2s7CiAKQEAgLTk4MCw3ICs5ODAsNyBAQCBwcmVwYXJlX2NiX3dyYXBwZXIoUmVvcmRl ckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFj a19uYW1lID0gInByZXBhcmUiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IHR4bi0+Zmlu YWxfbHNuOyAvKiBiZWdpbm5pbmcgb2YgcHJlcGFyZSByZWNvcmQgKi8KIAllcnJjYWxsYmFj ay5jYWxsYmFjayA9IG91dHB1dF9wbHVnaW5fZXJyb3JfY2FsbGJhY2s7Ci0JZXJyY2FsbGJh Y2suYXJnID0gKHZvaWQgKikgJnN0YXRlOworCWVycmNhbGxiYWNrLmFyZyA9ICZzdGF0ZTsK IAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3Jf Y29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsKIApAQCAtMTAyNSw3ICsxMDI1LDcgQEAg Y29tbWl0X3ByZXBhcmVkX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3Jk ZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFja19uYW1lID0gImNvbW1pdF9wcmVw YXJlZCI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gdHhuLT5maW5hbF9sc247IC8qIGJl Z2lubmluZyBvZiBjb21taXQgcmVjb3JkICovCiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBv dXRwdXRfcGx1Z2luX2Vycm9yX2NhbGxiYWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lk ICopICZzdGF0ZTsKKwllcnJjYWxsYmFjay5hcmcgPSAmc3RhdGU7CiAJZXJyY2FsbGJhY2su cHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sg PSAmZXJyY2FsbGJhY2s7CiAKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHJvbGxiYWNrX3ByZXBh cmVkX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4g KnR4biwKIAlzdGF0ZS5jYWxsYmFja19uYW1lID0gInJvbGxiYWNrX3ByZXBhcmVkIjsKIAlz dGF0ZS5yZXBvcnRfbG9jYXRpb24gPSB0eG4tPmZpbmFsX2xzbjsgLyogYmVnaW5uaW5nIG9m IGNvbW1pdCByZWNvcmQgKi8KIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVn aW5fZXJyb3JfY2FsbGJhY2s7Ci0JZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRl OworCWVycmNhbGxiYWNrLmFyZyA9ICZzdGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9 IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxs YmFjazsKIApAQCAtMTExNCw3ICsxMTE0LDcgQEAgY2hhbmdlX2NiX3dyYXBwZXIoUmVvcmRl ckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFj a19uYW1lID0gImNoYW5nZSI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gY2hhbmdlLT5s c247CiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBvdXRwdXRfcGx1Z2luX2Vycm9yX2NhbGxi YWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZzdGF0ZTsKKwllcnJjYWxsYmFj ay5hcmcgPSAmc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0 X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKQEAgLTEx NTYsNyArMTE1Niw3IEBAIHRydW5jYXRlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2Fj aGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFja19uYW1lID0gInRy dW5jYXRlIjsKIAlzdGF0ZS5yZXBvcnRfbG9jYXRpb24gPSBjaGFuZ2UtPmxzbjsKIAllcnJj YWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVnaW5fZXJyb3JfY2FsbGJhY2s7Ci0JZXJy Y2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRlOworCWVycmNhbGxiYWNrLmFyZyA9ICZz dGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJ ZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsKIApAQCAtMTE5NSw3ICsxMTk1 LDcgQEAgZmlsdGVyX3ByZXBhcmVfY2Jfd3JhcHBlcihMb2dpY2FsRGVjb2RpbmdDb250ZXh0 ICpjdHgsIFRyYW5zYWN0aW9uSWQgeGlkLAogCXN0YXRlLmNhbGxiYWNrX25hbWUgPSAiZmls dGVyX3ByZXBhcmUiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IEludmFsaWRYTG9nUmVj UHRyOwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxs YmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJh Y2suYXJnID0gJnN0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4 dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBAIC0x MjI2LDcgKzEyMjYsNyBAQCBmaWx0ZXJfYnlfb3JpZ2luX2NiX3dyYXBwZXIoTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LCBSZXBPcmlnaW5JZCBvcmlnaW5faWQpCiAJc3RhdGUuY2Fs bGJhY2tfbmFtZSA9ICJmaWx0ZXJfYnlfb3JpZ2luIjsKIAlzdGF0ZS5yZXBvcnRfbG9jYXRp b24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1 dF9wbHVnaW5fZXJyb3JfY2FsbGJhY2s7Ci0JZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikg JnN0YXRlOworCWVycmNhbGxiYWNrLmFyZyA9ICZzdGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2 aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZl cnJjYWxsYmFjazsKIApAQCAtMTI2Miw3ICsxMjYyLDcgQEAgbWVzc2FnZV9jYl93cmFwcGVy KFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJc3RhdGUu Y2FsbGJhY2tfbmFtZSA9ICJtZXNzYWdlIjsKIAlzdGF0ZS5yZXBvcnRfbG9jYXRpb24gPSBt ZXNzYWdlX2xzbjsKIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVnaW5fZXJy b3JfY2FsbGJhY2s7Ci0JZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRlOworCWVy cmNhbGxiYWNrLmFyZyA9ICZzdGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVycm9y X2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsK IApAQCAtMTI5OCw3ICsxMjk4LDcgQEAgc3RyZWFtX3N0YXJ0X2NiX3dyYXBwZXIoUmVvcmRl ckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFj a19uYW1lID0gInN0cmVhbV9zdGFydCI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gZmly c3RfbHNuOwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9j YWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2Fs bGJhY2suYXJnID0gJnN0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29u dGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBA IC0xMzQ3LDcgKzEzNDcsNyBAQCBzdHJlYW1fc3RvcF9jYl93cmFwcGVyKFJlb3JkZXJCdWZm ZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJc3RhdGUuY2FsbGJhY2tfbmFt ZSA9ICJzdHJlYW1fc3RvcCI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gbGFzdF9sc247 CiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBvdXRwdXRfcGx1Z2luX2Vycm9yX2NhbGxiYWNr OwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZzdGF0ZTsKKwllcnJjYWxsYmFjay5h cmcgPSAmc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0 YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKQEAgLTEzOTYs NyArMTM5Niw3IEBAIHN0cmVhbV9hYm9ydF9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNh Y2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJc3RhdGUuY2FsbGJhY2tfbmFtZSA9ICJz dHJlYW1fYWJvcnQiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IGFib3J0X2xzbjsKIAll cnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVnaW5fZXJyb3JfY2FsbGJhY2s7Ci0J ZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRlOworCWVycmNhbGxiYWNrLmFyZyA9 ICZzdGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7 CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsKIApAQCAtMTQ0MSw3ICsx NDQxLDcgQEAgc3RyZWFtX3ByZXBhcmVfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNo ZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCXN0YXRlLmNhbGxiYWNrX25hbWUgPSAic3Ry ZWFtX3ByZXBhcmUiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IHR4bi0+ZmluYWxfbHNu OwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxsYmFj azsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJhY2su YXJnID0gJnN0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9z dGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBAIC0xNDgy LDcgKzE0ODIsNyBAQCBzdHJlYW1fY29tbWl0X2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAq Y2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFja19uYW1lID0g InN0cmVhbV9jb21taXQiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IHR4bi0+ZmluYWxf bHNuOwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxs YmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJh Y2suYXJnID0gJnN0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4 dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBAIC0x NTIzLDcgKzE1MjMsNyBAQCBzdHJlYW1fY2hhbmdlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZl ciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5jYWxsYmFja19uYW1l ID0gInN0cmVhbV9jaGFuZ2UiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IGNoYW5nZS0+ bHNuOwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxs YmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJh Y2suYXJnID0gJnN0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4 dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCkBAIC0x NTc3LDcgKzE1NzcsNyBAQCBzdHJlYW1fbWVzc2FnZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZm ZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJc3RhdGUuY2FsbGJhY2tfbmFt ZSA9ICJzdHJlYW1fbWVzc2FnZSI7CiAJc3RhdGUucmVwb3J0X2xvY2F0aW9uID0gbWVzc2Fn ZV9sc247CiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBvdXRwdXRfcGx1Z2luX2Vycm9yX2Nh bGxiYWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopICZzdGF0ZTsKKwllcnJjYWxs YmFjay5hcmcgPSAmc3RhdGU7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250 ZXh0X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKQEAg LTE2MTgsNyArMTYxOCw3IEBAIHN0cmVhbV90cnVuY2F0ZV9jYl93cmFwcGVyKFJlb3JkZXJC dWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJc3RhdGUuY2FsbGJhY2tf bmFtZSA9ICJzdHJlYW1fdHJ1bmNhdGUiOwogCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IGNo YW5nZS0+bHNuOwogCWVycmNhbGxiYWNrLmNhbGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJv cl9jYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSAmc3RhdGU7CisJZXJy Y2FsbGJhY2suYXJnID0gJnN0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3Jf Y29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwog CkBAIC0xNjU3LDcgKzE2NTcsNyBAQCB1cGRhdGVfcHJvZ3Jlc3NfdHhuX2NiX3dyYXBwZXIo UmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAlzdGF0ZS5j YWxsYmFja19uYW1lID0gInVwZGF0ZV9wcm9ncmVzc190eG4iOwogCXN0YXRlLnJlcG9ydF9s b2NhdGlvbiA9IGxzbjsKIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVnaW5f ZXJyb3JfY2FsbGJhY2s7Ci0JZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRlOwor CWVycmNhbGxiYWNrLmFyZyA9ICZzdGF0ZTsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVy cm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFj azsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJs ZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMK aW5kZXggZDRiNWQyMTBlM2UuLjI0ZDA1MDMyZTcyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTc2MCw3ICs3NjAsNyBAQCBjb3B5 X3JlYWRfZGF0YSh2b2lkICpvdXRidWYsIGludCBtaW5yZWFkLCBpbnQgbWF4cmVhZCkKIAkJ CQlpZiAoYXZhaWwgPiBtYXhyZWFkKQogCQkJCQlhdmFpbCA9IG1heHJlYWQ7CiAJCQkJbWVt Y3B5KG91dGJ1ZiwgJmNvcHlidWYtPmRhdGFbY29weWJ1Zi0+Y3Vyc29yXSwgYXZhaWwpOwot CQkJCW91dGJ1ZiA9ICh2b2lkICopICgoY2hhciAqKSBvdXRidWYgKyBhdmFpbCk7CisJCQkJ b3V0YnVmID0gKGNoYXIgKikgb3V0YnVmICsgYXZhaWw7CiAJCQkJY29weWJ1Zi0+Y3Vyc29y ICs9IGF2YWlsOwogCQkJCW1heHJlYWQgLT0gYXZhaWw7CiAJCQkJYnl0ZXNyZWFkICs9IGF2 YWlsOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDY4MjgxMDBjZjFhLi4wNWI1Yzk1 MDI1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtMjU0Niw3ICsyNTQ2LDcgQEAg Y2hlY2tfc3luY2hyb25pemVkX3N0YW5kYnlfc2xvdHMoY2hhciAqKm5ld3ZhbCwgdm9pZCAq KmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogCQlwdHIgKz0gc3RybGVuKHNsb3RfbmFtZSkg KyAxOwogCX0KIAotCSpleHRyYSA9ICh2b2lkICopIGNvbmZpZzsKKwkqZXh0cmEgPSBjb25m aWc7CiAKIAlwZnJlZShyYXduYW1lKTsKIAlsaXN0X2ZyZWUoZWxlbWxpc3QpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc3luY3JlcC5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc3luY3JlcC5jCmluZGV4IGZhNTk4OGM4MjRlLi5mMWFiYWE2OWNlNiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc3luY3JlcC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3N5bmNyZXAuYwpAQCAtMTAyOCw3ICsxMDI4LDcgQEAg Y2hlY2tfc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoq ZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCW1lbWNweShw Y29uZiwgc3luY3JlcF9wYXJzZV9yZXN1bHQsIHN5bmNyZXBfcGFyc2VfcmVzdWx0LT5jb25m aWdfc2l6ZSk7CiAKLQkJKmV4dHJhID0gKHZvaWQgKikgcGNvbmY7CisJCSpleHRyYSA9IHBj b25mOwogCiAJCS8qCiAJCSAqIFdlIG5lZWQgbm90IGV4cGxpY2l0bHkgY2xlYW4gdXAgc3lu Y3JlcF9wYXJzZV9yZXN1bHQuICBJdCwgYW5kIGFueQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3Jp dGVEZWZpbmUuYwppbmRleCA2Y2M5YThkOGJmZS4uMWE5ZGZjZjYyNGQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZURlZmluZS5jCisrKyBiL3NyYy9iYWNrZW5k L3Jld3JpdGUvcmV3cml0ZURlZmluZS5jCkBAIC02NDQsNyArNjQ0LDcgQEAgc2V0UnVsZUNo ZWNrQXNVc2VyX3dhbGtlcihOb2RlICpub2RlLCBPaWQgKmNvbnRleHQpCiAJCXJldHVybiBm YWxzZTsKIAl9CiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgc2V0UnVs ZUNoZWNrQXNVc2VyX3dhbGtlciwKLQkJCQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwkJ CQkJCQkJICBjb250ZXh0KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTY3OSw3ICs2NzksNyBA QCBzZXRSdWxlQ2hlY2tBc1VzZXJfUXVlcnkoUXVlcnkgKnFyeSwgT2lkIHVzZXJpZCkKIAog CS8qIElmIHRoZXJlIGFyZSBzdWJsaW5rcywgc2VhcmNoIGZvciB0aGVtIGFuZCBwcm9jZXNz IHRoZWlyIFJURXMgKi8KIAlpZiAocXJ5LT5oYXNTdWJMaW5rcykKLQkJcXVlcnlfdHJlZV93 YWxrZXIocXJ5LCBzZXRSdWxlQ2hlY2tBc1VzZXJfd2Fsa2VyLCAodm9pZCAqKSAmdXNlcmlk LAorCQlxdWVyeV90cmVlX3dhbGtlcihxcnksIHNldFJ1bGVDaGVja0FzVXNlcl93YWxrZXIs ICZ1c2VyaWQsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiB9CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9i YWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwppbmRleCA2ZDU5YTJiYjhkYy4uNTJj ODkzZTkxZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRs ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTE5 NzEsNyArMTk3MSw3IEBAIGZpcmVSSVJvblN1YkxpbmsoTm9kZSAqbm9kZSwgTGlzdCAqYWN0 aXZlUklScykKIAkgKiBzdWJzZWxlY3RzIG9mIHN1YnNlbGVjdHMgZm9yIHVzLgogCSAqLwog CXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpcmVSSVJvblN1Ykxpbmss Ci0JCQkJCQkJCSAgKHZvaWQgKikgYWN0aXZlUklScyk7CisJCQkJCQkJCSAgYWN0aXZlUklS cyk7CiB9CiAKIApAQCAtMjE1Miw3ICsyMTUyLDcgQEAgZmlyZVJJUnJ1bGVzKFF1ZXJ5ICpw YXJzZXRyZWUsIExpc3QgKmFjdGl2ZVJJUnMpCiAJICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlz dC4KIAkgKi8KIAlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKLQkJcXVlcnlfdHJlZV93 YWxrZXIocGFyc2V0cmVlLCBmaXJlUklSb25TdWJMaW5rLCAodm9pZCAqKSBhY3RpdmVSSVJz LAorCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIGZpcmVSSVJvblN1YkxpbmssIGFj dGl2ZVJJUnMsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAKIAkvKgpA QCAtMjIyNCwxMCArMjIyNCwxMCBAQCBmaXJlUklScnVsZXMoUXVlcnkgKnBhcnNldHJlZSwg TGlzdCAqYWN0aXZlUklScykKIAkJCQkgKiBnZXRfcm93X3NlY3VyaXR5X3BvbGljaWVzLCBm aXJlIGFueSBSSVIgcnVsZXMgZm9yIHRoZW0uCiAJCQkJICovCiAJCQkJZXhwcmVzc2lvbl90 cmVlX3dhbGtlcigoTm9kZSAqKSBzZWN1cml0eVF1YWxzLAotCQkJCQkJCQkJICAgZmlyZVJJ Um9uU3ViTGluaywgKHZvaWQgKikgYWN0aXZlUklScyk7CisJCQkJCQkJCQkgICBmaXJlUklS b25TdWJMaW5rLCBhY3RpdmVSSVJzKTsKIAogCQkJCWV4cHJlc3Npb25fdHJlZV93YWxrZXIo KE5vZGUgKikgd2l0aENoZWNrT3B0aW9ucywKLQkJCQkJCQkJCSAgIGZpcmVSSVJvblN1Ykxp bmssICh2b2lkICopIGFjdGl2ZVJJUnMpOworCQkJCQkJCQkJICAgZmlyZVJJUm9uU3ViTGlu aywgYWN0aXZlUklScyk7CiAKIAkJCQlhY3RpdmVSSVJzID0gbGlzdF9kZWxldGVfbGFzdChh Y3RpdmVSSVJzKTsKIAkJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3 cml0ZU1hbmlwLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVNYW5pcC5jCmluZGV4 IDhmOTBhZmIzMjY5Li5mNGU2ODdjOTg2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlTWFuaXAuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVN YW5pcC5jCkBAIC05NCw3ICs5NCw3IEBAIGNvbnRhaW5fYWdnc19vZl9sZXZlbChOb2RlICpu b2RlLCBpbnQgbGV2ZWxzdXApCiAJICovCiAJcmV0dXJuIHF1ZXJ5X29yX2V4cHJlc3Npb25f dHJlZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCQkgICBjb250YWluX2FnZ3Nfb2ZfbGV2ZWxf d2Fsa2VyLAotCQkJCQkJCQkJCSAgICh2b2lkICopICZjb250ZXh0LAorCQkJCQkJCQkJCSAg ICZjb250ZXh0LAogCQkJCQkJCQkJCSAgIDApOwogfQogCkBAIC0xMjQsMTIgKzEyNCwxMiBA QCBjb250YWluX2FnZ3Nfb2ZfbGV2ZWxfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJCWNvbnRleHQt PnN1YmxldmVsc191cCsrOwogCQlyZXN1bHQgPSBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkg Kikgbm9kZSwKIAkJCQkJCQkJICAgY29udGFpbl9hZ2dzX29mX2xldmVsX3dhbGtlciwKLQkJ CQkJCQkJICAgKHZvaWQgKikgY29udGV4dCwgMCk7CisJCQkJCQkJCSAgIGNvbnRleHQsIDAp OwogCQljb250ZXh0LT5zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9CiAJ cmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgY29udGFpbl9hZ2dzX29mX2xl dmVsX3dhbGtlciwKLQkJCQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwkJCQkJCQkJICBj b250ZXh0KTsKIH0KIAogLyoKQEAgLTE1OSw3ICsxNTksNyBAQCBsb2NhdGVfYWdnX29mX2xl dmVsKE5vZGUgKm5vZGUsIGludCBsZXZlbHN1cCkKIAkgKi8KIAkodm9pZCkgcXVlcnlfb3Jf ZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLAogCQkJCQkJCQkJCSAgIGxvY2F0ZV9hZ2df b2ZfbGV2ZWxfd2Fsa2VyLAotCQkJCQkJCQkJCSAgICh2b2lkICopICZjb250ZXh0LAorCQkJ CQkJCQkJCSAgICZjb250ZXh0LAogCQkJCQkJCQkJCSAgIDApOwogCiAJcmV0dXJuIGNvbnRl eHQuYWdnX2xvY2F0aW9uOwpAQCAtMTk4LDEyICsxOTgsMTEgQEAgbG9jYXRlX2FnZ19vZl9s ZXZlbF93YWxrZXIoTm9kZSAqbm9kZSwKIAkJY29udGV4dC0+c3VibGV2ZWxzX3VwKys7CiAJ CXJlc3VsdCA9IHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAogCQkJCQkJCQkg ICBsb2NhdGVfYWdnX29mX2xldmVsX3dhbGtlciwKLQkJCQkJCQkJICAgKHZvaWQgKikgY29u dGV4dCwgMCk7CisJCQkJCQkJCSAgIGNvbnRleHQsIDApOwogCQljb250ZXh0LT5zdWJsZXZl bHNfdXAtLTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9Ci0JcmV0dXJuIGV4cHJlc3Npb25fdHJl ZV93YWxrZXIobm9kZSwgbG9jYXRlX2FnZ19vZl9sZXZlbF93YWxrZXIsCi0JCQkJCQkJCSAg KHZvaWQgKikgY29udGV4dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9k ZSwgbG9jYXRlX2FnZ19vZl9sZXZlbF93YWxrZXIsIGNvbnRleHQpOwogfQogCiAvKgpAQCAt MjMyLDggKzIzMSw3IEBAIGNvbnRhaW5fd2luZG93ZnVuY3Nfd2Fsa2VyKE5vZGUgKm5vZGUs IHZvaWQgKmNvbnRleHQpCiAJaWYgKElzQShub2RlLCBXaW5kb3dGdW5jKSkKIAkJcmV0dXJu IHRydWU7CQkJLyogYWJvcnQgdGhlIHRyZWUgdHJhdmVyc2FsIGFuZCByZXR1cm4gdHJ1ZSAq LwogCS8qIE11c3RuJ3QgcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KLQlyZXR1cm4gZXhw cmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb250YWluX3dpbmRvd2Z1bmNzX3dhbGtlciwK LQkJCQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVl X3dhbGtlcihub2RlLCBjb250YWluX3dpbmRvd2Z1bmNzX3dhbGtlciwgY29udGV4dCk7CiB9 CiAKIC8qCkBAIC0yNjIsNyArMjYwLDcgQEAgbG9jYXRlX3dpbmRvd2Z1bmMoTm9kZSAqbm9k ZSkKIAkgKi8KIAkodm9pZCkgcXVlcnlfb3JfZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2Rl LAogCQkJCQkJCQkJCSAgIGxvY2F0ZV93aW5kb3dmdW5jX3dhbGtlciwKLQkJCQkJCQkJCQkg ICAodm9pZCAqKSAmY29udGV4dCwKKwkJCQkJCQkJCQkgICAmY29udGV4dCwKIAkJCQkJCQkJ CQkgICAwKTsKIAogCXJldHVybiBjb250ZXh0Lndpbl9sb2NhdGlvbjsKQEAgLTI4Myw4ICsy ODEsNyBAQCBsb2NhdGVfd2luZG93ZnVuY193YWxrZXIoTm9kZSAqbm9kZSwgbG9jYXRlX3dp bmRvd2Z1bmNfY29udGV4dCAqY29udGV4dCkKIAkJLyogZWxzZSBmYWxsIHRocm91Z2ggdG8g ZXhhbWluZSBhcmd1bWVudCAqLwogCX0KIAkvKiBNdXN0bid0IHJlY3Vyc2UgaW50byBzdWJz ZWxlY3RzICovCi0JcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgbG9jYXRl X3dpbmRvd2Z1bmNfd2Fsa2VyLAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGxvY2F0ZV93aW5kb3dmdW5jX3dh bGtlciwgY29udGV4dCk7CiB9CiAKIC8qCkBAIC00NjgsMTIgKzQ2NSwxMSBAQCBPZmZzZXRW YXJOb2Rlc193YWxrZXIoTm9kZSAqbm9kZSwgT2Zmc2V0VmFyTm9kZXNfY29udGV4dCAqY29u dGV4dCkKIAogCQljb250ZXh0LT5zdWJsZXZlbHNfdXArKzsKIAkJcmVzdWx0ID0gcXVlcnlf dHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsIE9mZnNldFZhck5vZGVzX3dhbGtlciwKLQkJ CQkJCQkJICAgKHZvaWQgKikgY29udGV4dCwgMCk7CisJCQkJCQkJCSAgIGNvbnRleHQsIDAp OwogCQljb250ZXh0LT5zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9Ci0J cmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgT2Zmc2V0VmFyTm9kZXNfd2Fs a2VyLAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJldHVybiBleHByZXNzaW9u X3RyZWVfd2Fsa2VyKG5vZGUsIE9mZnNldFZhck5vZGVzX3dhbGtlciwgY29udGV4dCk7CiB9 CiAKIHZvaWQKQEAgLTUyMSw4ICs1MTcsNyBAQCBPZmZzZXRWYXJOb2RlcyhOb2RlICpub2Rl LCBpbnQgb2Zmc2V0LCBpbnQgc3VibGV2ZWxzX3VwKQogCQkJCXJjLT5ydGkgKz0gb2Zmc2V0 OwogCQkJfQogCQl9Ci0JCXF1ZXJ5X3RyZWVfd2Fsa2VyKHFyeSwgT2Zmc2V0VmFyTm9kZXNf d2Fsa2VyLAotCQkJCQkJICAodm9pZCAqKSAmY29udGV4dCwgMCk7CisJCXF1ZXJ5X3RyZWVf d2Fsa2VyKHFyeSwgT2Zmc2V0VmFyTm9kZXNfd2Fsa2VyLCAmY29udGV4dCwgMCk7CiAJfQog CWVsc2UKIAkJT2Zmc2V0VmFyTm9kZXNfd2Fsa2VyKG5vZGUsICZjb250ZXh0KTsKQEAgLTY2 MiwxMiArNjU3LDExIEBAIENoYW5nZVZhck5vZGVzX3dhbGtlcihOb2RlICpub2RlLCBDaGFu Z2VWYXJOb2Rlc19jb250ZXh0ICpjb250ZXh0KQogCiAJCWNvbnRleHQtPnN1YmxldmVsc191 cCsrOwogCQlyZXN1bHQgPSBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkgKikgbm9kZSwgQ2hh bmdlVmFyTm9kZXNfd2Fsa2VyLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0LCAwKTsK KwkJCQkJCQkJICAgY29udGV4dCwgMCk7CiAJCWNvbnRleHQtPnN1YmxldmVsc191cC0tOwog CQlyZXR1cm4gcmVzdWx0OwogCX0KLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihu b2RlLCBDaGFuZ2VWYXJOb2Rlc193YWxrZXIsCi0JCQkJCQkJCSAgKHZvaWQgKikgY29udGV4 dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgQ2hhbmdlVmFyTm9k ZXNfd2Fsa2VyLCBjb250ZXh0KTsKIH0KIAogdm9pZApAQCAtNzE4LDggKzcxMiw3IEBAIENo YW5nZVZhck5vZGVzKE5vZGUgKm5vZGUsIGludCBydF9pbmRleCwgaW50IG5ld19pbmRleCwg aW50IHN1YmxldmVsc191cCkKIAkJCQkJcmMtPnJ0aSA9IG5ld19pbmRleDsKIAkJCX0KIAkJ fQotCQlxdWVyeV90cmVlX3dhbGtlcihxcnksIENoYW5nZVZhck5vZGVzX3dhbGtlciwKLQkJ CQkJCSAgKHZvaWQgKikgJmNvbnRleHQsIDApOworCQlxdWVyeV90cmVlX3dhbGtlcihxcnks IENoYW5nZVZhck5vZGVzX3dhbGtlciwgJmNvbnRleHQsIDApOwogCX0KIAllbHNlCiAJCUNo YW5nZVZhck5vZGVzX3dhbGtlcihub2RlLCAmY29udGV4dCk7CkBAIC04MzYsMTMgKzgyOSwx MiBAQCBJbmNyZW1lbnRWYXJTdWJsZXZlbHNVcF93YWxrZXIoTm9kZSAqbm9kZSwKIAkJY29u dGV4dC0+bWluX3N1YmxldmVsc191cCsrOwogCQlyZXN1bHQgPSBxdWVyeV90cmVlX3dhbGtl cigoUXVlcnkgKikgbm9kZSwKIAkJCQkJCQkJICAgSW5jcmVtZW50VmFyU3VibGV2ZWxzVXBf d2Fsa2VyLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0LAorCQkJCQkJCQkgICBjb250 ZXh0LAogCQkJCQkJCQkgICBRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7CiAJCWNvbnRleHQt Pm1pbl9zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9Ci0JcmV0dXJuIGV4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgSW5jcmVtZW50VmFyU3VibGV2ZWxzVXBfd2Fs a2VyLAotCQkJCQkJCQkgICh2b2lkICopIGNvbnRleHQpOworCXJldHVybiBleHByZXNzaW9u X3RyZWVfd2Fsa2VyKG5vZGUsIEluY3JlbWVudFZhclN1YmxldmVsc1VwX3dhbGtlciwgY29u dGV4dCk7CiB9CiAKIHZvaWQKQEAgLTg2MCw3ICs4NTIsNyBAQCBJbmNyZW1lbnRWYXJTdWJs ZXZlbHNVcChOb2RlICpub2RlLCBpbnQgZGVsdGFfc3VibGV2ZWxzX3VwLAogCSAqLwogCXF1 ZXJ5X29yX2V4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKIAkJCQkJCQkJCUluY3JlbWVu dFZhclN1YmxldmVsc1VwX3dhbGtlciwKLQkJCQkJCQkJCSh2b2lkICopICZjb250ZXh0LAor CQkJCQkJCQkJJmNvbnRleHQsCiAJCQkJCQkJCQlRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7 CiB9CiAKQEAgLTg3OSw3ICs4NzEsNyBAQCBJbmNyZW1lbnRWYXJTdWJsZXZlbHNVcF9ydGFi bGUoTGlzdCAqcnRhYmxlLCBpbnQgZGVsdGFfc3VibGV2ZWxzX3VwLAogCiAJcmFuZ2VfdGFi bGVfd2Fsa2VyKHJ0YWJsZSwKIAkJCQkJICAgSW5jcmVtZW50VmFyU3VibGV2ZWxzVXBfd2Fs a2VyLAotCQkJCQkgICAodm9pZCAqKSAmY29udGV4dCwKKwkJCQkJICAgJmNvbnRleHQsCiAJ CQkJCSAgIFFUV19FWEFNSU5FX1JURVNfQkVGT1JFKTsKIH0KIApAQCAtOTU0LDEyICs5NDYs MTEgQEAgcmFuZ2VUYWJsZUVudHJ5X3VzZWRfd2Fsa2VyKE5vZGUgKm5vZGUsCiAKIAkJY29u dGV4dC0+c3VibGV2ZWxzX3VwKys7CiAJCXJlc3VsdCA9IHF1ZXJ5X3RyZWVfd2Fsa2VyKChR dWVyeSAqKSBub2RlLCByYW5nZVRhYmxlRW50cnlfdXNlZF93YWxrZXIsCi0JCQkJCQkJCSAg ICh2b2lkICopIGNvbnRleHQsIDApOworCQkJCQkJCQkgICBjb250ZXh0LCAwKTsKIAkJY29u dGV4dC0+c3VibGV2ZWxzX3VwLS07CiAJCXJldHVybiByZXN1bHQ7CiAJfQotCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHJhbmdlVGFibGVFbnRyeV91c2VkX3dhbGtl ciwKLQkJCQkJCQkJICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLCByYW5nZVRhYmxlRW50cnlfdXNlZF93YWxrZXIsIGNvbnRleHQp OwogfQogCiBib29sCkBAIC05NzYsNyArOTY3LDcgQEAgcmFuZ2VUYWJsZUVudHJ5X3VzZWQo Tm9kZSAqbm9kZSwgaW50IHJ0X2luZGV4LCBpbnQgc3VibGV2ZWxzX3VwKQogCSAqLwogCXJl dHVybiBxdWVyeV9vcl9leHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCiAJCQkJCQkJCQkJ ICAgcmFuZ2VUYWJsZUVudHJ5X3VzZWRfd2Fsa2VyLAotCQkJCQkJCQkJCSAgICh2b2lkICop ICZjb250ZXh0LAorCQkJCQkJCQkJCSAgICZjb250ZXh0LAogCQkJCQkJCQkJCSAgIDApOwog fQogCkBAIC0xMjE4LDEzICsxMjA5LDEyIEBAIGFkZF9udWxsaW5nX3JlbGlkc19tdXRhdG9y KE5vZGUgKm5vZGUsCiAJCWNvbnRleHQtPnN1YmxldmVsc191cCsrOwogCQluZXdub2RlID0g cXVlcnlfdHJlZV9tdXRhdG9yKChRdWVyeSAqKSBub2RlLAogCQkJCQkJCQkJIGFkZF9udWxs aW5nX3JlbGlkc19tdXRhdG9yLAotCQkJCQkJCQkJICh2b2lkICopIGNvbnRleHQsCisJCQkJ CQkJCQkgY29udGV4dCwKIAkJCQkJCQkJCSAwKTsKIAkJY29udGV4dC0+c3VibGV2ZWxzX3Vw LS07CiAJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCX0KLQlyZXR1cm4gZXhwcmVzc2lv bl90cmVlX211dGF0b3Iobm9kZSwgYWRkX251bGxpbmdfcmVsaWRzX211dGF0b3IsCi0JCQkJ CQkJCSAgICh2b2lkICopIGNvbnRleHQpOworCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0 YXRvcihub2RlLCBhZGRfbnVsbGluZ19yZWxpZHNfbXV0YXRvciwgY29udGV4dCk7CiB9CiAK IC8qCkBAIC0xMjg5LDcgKzEyNzksNyBAQCByZW1vdmVfbnVsbGluZ19yZWxpZHNfbXV0YXRv cihOb2RlICpub2RlLAogCQkJcGh2ID0gKFBsYWNlSG9sZGVyVmFyICopCiAJCQkJZXhwcmVz c2lvbl90cmVlX211dGF0b3Iobm9kZSwKIAkJCQkJCQkJCQlyZW1vdmVfbnVsbGluZ19yZWxp ZHNfbXV0YXRvciwKLQkJCQkJCQkJCQkodm9pZCAqKSBjb250ZXh0KTsKKwkJCQkJCQkJCQlj b250ZXh0KTsKIAkJCS8qIC4uLiBhbmQgcmVwbGFjZSB0aGUgY29weSdzIHBobnVsbGluZ3Jl bHMgZmllbGQgKi8KIAkJCXBodi0+cGhudWxsaW5ncmVscyA9IGJtc19kaWZmZXJlbmNlKHBo di0+cGhudWxsaW5ncmVscywKIAkJCQkJCQkJCQkJCWNvbnRleHQtPnJlbW92YWJsZV9yZWxp ZHMpOwpAQCAtMTMwOSwxMyArMTI5OSwxMiBAQCByZW1vdmVfbnVsbGluZ19yZWxpZHNfbXV0 YXRvcihOb2RlICpub2RlLAogCQljb250ZXh0LT5zdWJsZXZlbHNfdXArKzsKIAkJbmV3bm9k ZSA9IHF1ZXJ5X3RyZWVfbXV0YXRvcigoUXVlcnkgKikgbm9kZSwKIAkJCQkJCQkJCSByZW1v dmVfbnVsbGluZ19yZWxpZHNfbXV0YXRvciwKLQkJCQkJCQkJCSAodm9pZCAqKSBjb250ZXh0 LAorCQkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJCQkgMCk7CiAJCWNvbnRleHQtPnN1Ymxl dmVsc191cC0tOwogCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAl9Ci0JcmV0dXJuIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHJlbW92ZV9udWxsaW5nX3JlbGlkc19tdXRh dG9yLAotCQkJCQkJCQkgICAodm9pZCAqKSBjb250ZXh0KTsKKwlyZXR1cm4gZXhwcmVzc2lv bl90cmVlX211dGF0b3Iobm9kZSwgcmVtb3ZlX251bGxpbmdfcmVsaWRzX211dGF0b3IsIGNv bnRleHQpOwogfQogCiAKQEAgLTEzNzIsNyArMTM2MSw3IEBAIHJlcGxhY2VfcnRlX3Zhcmlh YmxlcyhOb2RlICpub2RlLCBpbnQgdGFyZ2V0X3Zhcm5vLCBpbnQgc3VibGV2ZWxzX3VwLAog CSAqLwogCXJlc3VsdCA9IHF1ZXJ5X29yX2V4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUs CiAJCQkJCQkJCQkJCSAgcmVwbGFjZV9ydGVfdmFyaWFibGVzX211dGF0b3IsCi0JCQkJCQkJ CQkJCSAgKHZvaWQgKikgJmNvbnRleHQsCisJCQkJCQkJCQkJCSAgJmNvbnRleHQsCiAJCQkJ CQkJCQkJCSAgMCk7CiAKIAlpZiAoY29udGV4dC5pbnNlcnRlZF9zdWJsaW5rKQpAQCAtMTQ0 MiwxNSArMTQzMSwxNCBAQCByZXBsYWNlX3J0ZV92YXJpYWJsZXNfbXV0YXRvcihOb2RlICpu b2RlLAogCQljb250ZXh0LT5pbnNlcnRlZF9zdWJsaW5rID0gKChRdWVyeSAqKSBub2RlKS0+ aGFzU3ViTGlua3M7CiAJCW5ld25vZGUgPSBxdWVyeV90cmVlX211dGF0b3IoKFF1ZXJ5ICop IG5vZGUsCiAJCQkJCQkJCQkgcmVwbGFjZV9ydGVfdmFyaWFibGVzX211dGF0b3IsCi0JCQkJ CQkJCQkgKHZvaWQgKikgY29udGV4dCwKKwkJCQkJCQkJCSBjb250ZXh0LAogCQkJCQkJCQkJ IDApOwogCQluZXdub2RlLT5oYXNTdWJMaW5rcyB8PSBjb250ZXh0LT5pbnNlcnRlZF9zdWJs aW5rOwogCQljb250ZXh0LT5pbnNlcnRlZF9zdWJsaW5rID0gc2F2ZV9pbnNlcnRlZF9zdWJs aW5rOwogCQljb250ZXh0LT5zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJuIChOb2RlICopIG5l d25vZGU7CiAJfQotCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCByZXBs YWNlX3J0ZV92YXJpYWJsZXNfbXV0YXRvciwKLQkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4 dCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHJlcGxhY2VfcnRl X3ZhcmlhYmxlc19tdXRhdG9yLCBjb250ZXh0KTsKIH0KIAogCkBAIC0xNjAxLDEzICsxNTg5 LDEyIEBAIG1hcF92YXJpYWJsZV9hdHRub3NfbXV0YXRvcihOb2RlICpub2RlLAogCQljb250 ZXh0LT5zdWJsZXZlbHNfdXArKzsKIAkJbmV3bm9kZSA9IHF1ZXJ5X3RyZWVfbXV0YXRvcigo UXVlcnkgKikgbm9kZSwKIAkJCQkJCQkJCSBtYXBfdmFyaWFibGVfYXR0bm9zX211dGF0b3Is Ci0JCQkJCQkJCQkgKHZvaWQgKikgY29udGV4dCwKKwkJCQkJCQkJCSBjb250ZXh0LAogCQkJ CQkJCQkJIDApOwogCQljb250ZXh0LT5zdWJsZXZlbHNfdXAtLTsKIAkJcmV0dXJuIChOb2Rl ICopIG5ld25vZGU7CiAJfQotCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2Rl LCBtYXBfdmFyaWFibGVfYXR0bm9zX211dGF0b3IsCi0JCQkJCQkJCSAgICh2b2lkICopIGNv bnRleHQpOworCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBtYXBfdmFy aWFibGVfYXR0bm9zX211dGF0b3IsIGNvbnRleHQpOwogfQogCiBOb2RlICoKQEAgLTE2MzIs NyArMTYxOSw3IEBAIG1hcF92YXJpYWJsZV9hdHRub3MoTm9kZSAqbm9kZSwKIAkgKi8KIAly ZXR1cm4gcXVlcnlfb3JfZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwKIAkJCQkJCQkJ CQkJbWFwX3ZhcmlhYmxlX2F0dG5vc19tdXRhdG9yLAotCQkJCQkJCQkJCQkodm9pZCAqKSAm Y29udGV4dCwKKwkJCQkJCQkJCQkJJmNvbnRleHQsCiAJCQkJCQkJCQkJCTApOwogfQogCkBA IC0xNzg2LDYgKzE3NzMsNiBAQCBSZXBsYWNlVmFyc0Zyb21UYXJnZXRMaXN0KE5vZGUgKm5v ZGUsCiAKIAlyZXR1cm4gcmVwbGFjZV9ydGVfdmFyaWFibGVzKG5vZGUsIHRhcmdldF92YXJu bywgc3VibGV2ZWxzX3VwLAogCQkJCQkJCQkgUmVwbGFjZVZhcnNGcm9tVGFyZ2V0TGlzdF9j YWxsYmFjaywKLQkJCQkJCQkJICh2b2lkICopICZjb250ZXh0LAorCQkJCQkJCQkgJmNvbnRl eHQsCiAJCQkJCQkJCSBvdXRlcl9oYXNTdWJMaW5rcyk7CiB9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZfdGFibGUuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2J1Zl90YWJsZS5jCmluZGV4IDBmYTU0Njg5MzAzLi4xNDFkZDcyNDgwMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmX3RhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmX3RhYmxlLmMKQEAgLTc3LDcgKzc3 LDcgQEAgSW5pdEJ1ZlRhYmxlKGludCBzaXplKQogdWludDMyCiBCdWZUYWJsZUhhc2hDb2Rl KEJ1ZmZlclRhZyAqdGFnUHRyKQogewotCXJldHVybiBnZXRfaGFzaF92YWx1ZShTaGFyZWRC dWZIYXNoLCAodm9pZCAqKSB0YWdQdHIpOworCXJldHVybiBnZXRfaGFzaF92YWx1ZShTaGFy ZWRCdWZIYXNoLCB0YWdQdHIpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv c3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9i dWZtZ3IuYwppbmRleCAwZjAyYmY2MmZhMy4uY2M5NzgyYjcxMzIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBAIC0zODAxLDcgKzM4MDEsNyBAQCBGbHVzaEJ1ZmZl cihCdWZmZXJEZXNjICpidWYsIFNNZ3JSZWxhdGlvbiByZWxuLCBJT09iamVjdCBpb19vYmpl Y3QsCiAKIAkvKiBTZXR1cCBlcnJvciB0cmFjZWJhY2sgc3VwcG9ydCBmb3IgZXJlcG9ydCgp ICovCiAJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBzaGFyZWRfYnVmZmVyX3dyaXRlX2Vycm9y X2NhbGxiYWNrOwotCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopIGJ1ZjsKKwllcnJjYWxs YmFjay5hcmcgPSBidWY7CiAJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0 X3N0YWNrOwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKQEAgLTQ1 MTQsNyArNDUxNCw3IEBAIEZsdXNoUmVsYXRpb25CdWZmZXJzKFJlbGF0aW9uIHJlbCkKIAog CQkJCS8qIFNldHVwIGVycm9yIHRyYWNlYmFjayBzdXBwb3J0IGZvciBlcmVwb3J0KCkgKi8K IAkJCQllcnJjYWxsYmFjay5jYWxsYmFjayA9IGxvY2FsX2J1ZmZlcl93cml0ZV9lcnJvcl9j YWxsYmFjazsKLQkJCQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSBidWZIZHI7CisJCQkJ ZXJyY2FsbGJhY2suYXJnID0gYnVmSGRyOwogCQkJCWVycmNhbGxiYWNrLnByZXZpb3VzID0g ZXJyb3JfY29udGV4dF9zdGFjazsKIAkJCQllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNh bGxiYWNrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2Nh bGJ1Zi5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvbG9jYWxidWYuYwppbmRleCA4 ZGE3ZGQ2Yzk4YS4uNmZkMWE2NDE4ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2xvY2FsYnVmLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIv bG9jYWxidWYuYwpAQCAtMzc5LDcgKzM3OSw3IEBAIEV4dGVuZEJ1ZmZlcmVkUmVsTG9jYWwo QnVmZmVyTWFuYWdlclJlbGF0aW9uIGJtciwKIAkJSW5pdEJ1ZmZlclRhZygmdGFnLCAmYm1y LnNtZ3ItPnNtZ3JfcmxvY2F0b3IubG9jYXRvciwgZm9yaywgZmlyc3RfYmxvY2sgKyBpKTsK IAogCQlocmVzdWx0ID0gKExvY2FsQnVmZmVyTG9va3VwRW50ICopCi0JCQloYXNoX3NlYXJj aChMb2NhbEJ1Zkhhc2gsICh2b2lkICopICZ0YWcsIEhBU0hfRU5URVIsICZmb3VuZCk7CisJ CQloYXNoX3NlYXJjaChMb2NhbEJ1Zkhhc2gsICZ0YWcsIEhBU0hfRU5URVIsICZmb3VuZCk7 CiAJCWlmIChmb3VuZCkKIAkJewogCQkJQnVmZmVyRGVzYyAqZXhpc3RpbmdfaGRyOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htZW0uYyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvaXBjL3NobWVtLmMKaW5kZXggNmQ1ZjA4Mzk4NjQuLjg1NjRhZGE3MWVjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaG1lbS5jCisrKyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMKQEAgLTEwMiw3ICsxMDIsNyBAQCBJbml0U2ht ZW1BY2Nlc3Modm9pZCAqc2VnaGRyKQogCVBHU2htZW1IZWFkZXIgKnNobWhkciA9IChQR1No bWVtSGVhZGVyICopIHNlZ2hkcjsKIAogCVNobWVtU2VnSGRyID0gc2htaGRyOwotCVNobWVt QmFzZSA9ICh2b2lkICopIHNobWhkcjsKKwlTaG1lbUJhc2UgPSBzaG1oZHI7CiAJU2htZW1F bmQgPSAoY2hhciAqKSBTaG1lbUJhc2UgKyBzaG1oZHItPnRvdGFsc2l6ZTsKIH0KIApAQCAt MjEyLDcgKzIxMiw3IEBAIFNobWVtQWxsb2NSYXcoU2l6ZSBzaXplLCBTaXplICphbGxvY2F0 ZWRfc2l6ZSkKIAluZXdGcmVlID0gbmV3U3RhcnQgKyBzaXplOwogCWlmIChuZXdGcmVlIDw9 IFNobWVtU2VnSGRyLT50b3RhbHNpemUpCiAJewotCQluZXdTcGFjZSA9ICh2b2lkICopICgo Y2hhciAqKSBTaG1lbUJhc2UgKyBuZXdTdGFydCk7CisJCW5ld1NwYWNlID0gKGNoYXIgKikg U2htZW1CYXNlICsgbmV3U3RhcnQ7CiAJCVNobWVtU2VnSGRyLT5mcmVlb2Zmc2V0ID0gbmV3 RnJlZTsKIAl9CiAJZWxzZQpAQCAtMjU4LDcgKzI1OCw3IEBAIFNobWVtQWxsb2NVbmxvY2tl ZChTaXplIHNpemUpCiAJCQkJCQlzaXplKSkpOwogCVNobWVtU2VnSGRyLT5mcmVlb2Zmc2V0 ID0gbmV3RnJlZTsKIAotCW5ld1NwYWNlID0gKHZvaWQgKikgKChjaGFyICopIFNobWVtQmFz ZSArIG5ld1N0YXJ0KTsKKwluZXdTcGFjZSA9IChjaGFyICopIFNobWVtQmFzZSArIG5ld1N0 YXJ0OwogCiAJQXNzZXJ0KG5ld1NwYWNlID09ICh2b2lkICopIE1BWEFMSUdOKG5ld1NwYWNl KSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA4Y2MyM2E5Y2VmOC4uOTU1YjRkZTEwMmYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTE4MTYsNyArMTgxNiw3IEBAIGV4ZWNfYmluZF9t ZXNzYWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkKIAkJb25lX3BhcmFtX2RhdGEucGFy YW12YWwgPSBOVUxMOwogCQlwYXJhbXNfZXJyY3h0LnByZXZpb3VzID0gZXJyb3JfY29udGV4 dF9zdGFjazsKIAkJcGFyYW1zX2VycmN4dC5jYWxsYmFjayA9IGJpbmRfcGFyYW1fZXJyb3Jf Y2FsbGJhY2s7Ci0JCXBhcmFtc19lcnJjeHQuYXJnID0gKHZvaWQgKikgJm9uZV9wYXJhbV9k YXRhOworCQlwYXJhbXNfZXJyY3h0LmFyZyA9ICZvbmVfcGFyYW1fZGF0YTsKIAkJZXJyb3Jf Y29udGV4dF9zdGFjayA9ICZwYXJhbXNfZXJyY3h0OwogCiAJCXBhcmFtcyA9IG1ha2VQYXJh bUxpc3QobnVtUGFyYW1zKTsKQEAgLTIwMDYsNyArMjAwNiw3IEBAIGV4ZWNfYmluZF9tZXNz YWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkKIAlwYXJhbXNfZGF0YS5wYXJhbXMgPSBw YXJhbXM7CiAJcGFyYW1zX2VycmN4dC5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7 CiAJcGFyYW1zX2VycmN4dC5jYWxsYmFjayA9IFBhcmFtc0Vycm9yQ2FsbGJhY2s7Ci0JcGFy YW1zX2VycmN4dC5hcmcgPSAodm9pZCAqKSAmcGFyYW1zX2RhdGE7CisJcGFyYW1zX2VycmN4 dC5hcmcgPSAmcGFyYW1zX2RhdGE7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZwYXJhbXNf ZXJyY3h0OwogCiAJLyogR2V0IHRoZSByZXN1bHQgZm9ybWF0IGNvZGVzICovCkBAIC0yMjUx LDcgKzIyNTEsNyBAQCBleGVjX2V4ZWN1dGVfbWVzc2FnZShjb25zdCBjaGFyICpwb3J0YWxf bmFtZSwgbG9uZyBtYXhfcm93cykKIAlwYXJhbXNfZGF0YS5wYXJhbXMgPSBwb3J0YWxQYXJh bXM7CiAJcGFyYW1zX2VycmN4dC5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJ cGFyYW1zX2VycmN4dC5jYWxsYmFjayA9IFBhcmFtc0Vycm9yQ2FsbGJhY2s7Ci0JcGFyYW1z X2VycmN4dC5hcmcgPSAodm9pZCAqKSAmcGFyYW1zX2RhdGE7CisJcGFyYW1zX2VycmN4dC5h cmcgPSAmcGFyYW1zX2RhdGE7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZwYXJhbXNfZXJy Y3h0OwogCiAJaWYgKG1heF9yb3dzIDw9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90 c2VhcmNoL2RpY3RfdGhlc2F1cnVzLmMgYi9zcmMvYmFja2VuZC90c2VhcmNoL2RpY3RfdGhl c2F1cnVzLmMKaW5kZXggMjU5ZjJlOTkwMWQuLjZiMTU5ZjlmNTY5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90c2VhcmNoL2RpY3RfdGhlc2F1cnVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dHNlYXJjaC9kaWN0X3RoZXNhdXJ1cy5jCkBAIC04NTksNyArODU5LDcgQEAgdGhlc2F1cnVz X2xleGl6ZShQR19GVU5DVElPTl9BUkdTKQogCQlpbmZvID0gTlVMTDsJCQkvKiB3b3JkIGlz bid0IHJlY29nbml6ZWQgKi8KIAl9CiAKLQlkc3RhdGUtPnByaXZhdGVfc3RhdGUgPSAodm9p ZCAqKSBpbmZvOworCWRzdGF0ZS0+cHJpdmF0ZV9zdGF0ZSA9IGluZm87CiAKIAlpZiAoIWlu Zm8pCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdHNlYXJjaC9zcGVsbC5jIGIvc3Jj L2JhY2tlbmQvdHNlYXJjaC9zcGVsbC5jCmluZGV4IDFhZWY5Y2ExZWYyLi5hYWVkYjBhYTg1 MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdHNlYXJjaC9zcGVsbC5jCisrKyBiL3NyYy9i YWNrZW5kL3RzZWFyY2gvc3BlbGwuYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIGNvbXBhY3RfcGFs bG9jMChJc3BlbGxEaWN0ICpDb25mLCBzaXplX3Qgc2l6ZSkKIAkJQ29uZi0+YXZhaWwgPSBD T01QQUNUX0FMTE9DX0NIVU5LOwogCX0KIAotCXJlc3VsdCA9ICh2b2lkICopIENvbmYtPmZp cnN0ZnJlZTsKKwlyZXN1bHQgPSBDb25mLT5maXJzdGZyZWU7CiAJQ29uZi0+Zmlyc3RmcmVl ICs9IHNpemU7CiAJQ29uZi0+YXZhaWwgLT0gc2l6ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfbG9j YWxlLmMKaW5kZXggYmM0NDU5OWRlNmEuLmY4MzY3YjQxMzEyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gv dHNfbG9jYWxlLmMKQEAgLTE0Miw3ICsxNDIsNyBAQCB0c2VhcmNoX3JlYWRsaW5lX2JlZ2lu KHRzZWFyY2hfcmVhZGxpbmVfc3RhdGUgKnN0cCwKIAlzdHAtPmN1cmxpbmUgPSBOVUxMOwog CS8qIFNldHVwIGVycm9yIHRyYWNlYmFjayBzdXBwb3J0IGZvciBlcmVwb3J0KCkgKi8KIAlz dHAtPmNiLmNhbGxiYWNrID0gdHNlYXJjaF9yZWFkbGluZV9jYWxsYmFjazsKLQlzdHAtPmNi LmFyZyA9ICh2b2lkICopIHN0cDsKKwlzdHAtPmNiLmFyZyA9IHN0cDsKIAlzdHAtPmNiLnBy ZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0g JnN0cC0+Y2I7CiAJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90c2Vh cmNoL3RzX3BhcnNlLmMgYi9zcmMvYmFja2VuZC90c2VhcmNoL3RzX3BhcnNlLmMKaW5kZXgg NTE3ZjIwMGE5YjQuLjAyYjAxNjMwNjQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90c2Vh cmNoL3RzX3BhcnNlLmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC90c19wYXJzZS5jCkBA IC0zNjYsOSArMzY2LDkgQEAgcGFyc2V0ZXh0KE9pZCBjZmdJZCwgUGFyc2VkVGV4dCAqcHJz LCBjaGFyICpidWYsIGludCBidWZsZW4pCiAJY2ZnID0gbG9va3VwX3RzX2NvbmZpZ19jYWNo ZShjZmdJZCk7CiAJcHJzb2JqID0gbG9va3VwX3RzX3BhcnNlcl9jYWNoZShjZmctPnByc0lk KTsKIAotCXByc2RhdGEgPSAodm9pZCAqKSBEYXR1bUdldFBvaW50ZXIoRnVuY3Rpb25DYWxs MigmcHJzb2JqLT5wcnNzdGFydCwKLQkJCQkJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKGJ1 ZiksCi0JCQkJCQkJCQkJCQkJIEludDMyR2V0RGF0dW0oYnVmbGVuKSkpOworCXByc2RhdGEg PSBEYXR1bUdldFBvaW50ZXIoRnVuY3Rpb25DYWxsMigmcHJzb2JqLT5wcnNzdGFydCwKKwkJ CQkJCQkJCQkJUG9pbnRlckdldERhdHVtKGJ1ZiksCisJCQkJCQkJCQkJCUludDMyR2V0RGF0 dW0oYnVmbGVuKSkpOwogCiAJTGV4aXplSW5pdCgmbGRhdGEsIGNmZyk7CiAKQEAgLTU1Miw5 ICs1NTIsOSBAQCBobHBhcnNldGV4dChPaWQgY2ZnSWQsIEhlYWRsaW5lUGFyc2VkVGV4dCAq cHJzLCBUU1F1ZXJ5IHF1ZXJ5LCBjaGFyICpidWYsIGludCBidQogCWNmZyA9IGxvb2t1cF90 c19jb25maWdfY2FjaGUoY2ZnSWQpOwogCXByc29iaiA9IGxvb2t1cF90c19wYXJzZXJfY2Fj aGUoY2ZnLT5wcnNJZCk7CiAKLQlwcnNkYXRhID0gKHZvaWQgKikgRGF0dW1HZXRQb2ludGVy KEZ1bmN0aW9uQ2FsbDIoJihwcnNvYmotPnByc3N0YXJ0KSwKLQkJCQkJCQkJCQkJCQkgUG9p bnRlckdldERhdHVtKGJ1ZiksCi0JCQkJCQkJCQkJCQkJIEludDMyR2V0RGF0dW0oYnVmbGVu KSkpOworCXByc2RhdGEgPSBEYXR1bUdldFBvaW50ZXIoRnVuY3Rpb25DYWxsMigmKHByc29i ai0+cHJzc3RhcnQpLAorCQkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oYnVmKSwKKwkJCQkJ CQkJCQkJSW50MzJHZXREYXR1bShidWZsZW4pKSk7CiAKIAlMZXhpemVJbml0KCZsZGF0YSwg Y2ZnKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdHNlYXJjaC93cGFyc2VyLmMgYi9z cmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXIuYwppbmRleCBiYzlmYjM4NDI2Yy4uYTBlNDQw OGI5YTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvd3BhcnNlci5jCisrKyBi L3NyYy9iYWNrZW5kL3RzZWFyY2gvd3BhcnNlci5jCkBAIC02Myw3ICs2Myw3IEBAIHR0X3Nl dHVwX2ZpcnN0Y2FsbChGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHgsIEZ1bmN0aW9uQ2FsbElu Zm8gZmNpbmZvLAogCS8qIGxleHR5cGUgdGFrZXMgb25lIGR1bW15IGFyZ3VtZW50ICovCiAJ c3QtPmxpc3QgPSAoTGV4RGVzY3IgKikgRGF0dW1HZXRQb2ludGVyKE9pZEZ1bmN0aW9uQ2Fs bDEocHJzLT5sZXh0eXBlT2lkLAogCQkJCQkJCQkJCQkJCQkJIChEYXR1bSkgMCkpOwotCWZ1 bmNjdHgtPnVzZXJfZmN0eCA9ICh2b2lkICopIHN0OworCWZ1bmNjdHgtPnVzZXJfZmN0eCA9 IHN0OwogCiAJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5mbywgTlVMTCwgJnR1cGRl c2MpICE9IFRZUEVGVU5DX0NPTVBPU0lURSkKIAkJZWxvZyhFUlJPUiwgInJldHVybiB0eXBl IG11c3QgYmUgYSByb3cgdHlwZSIpOwpAQCAtMTc4LDkgKzE3OCw5IEBAIHByc19zZXR1cF9m aXJzdGNhbGwoRnVuY0NhbGxDb250ZXh0ICpmdW5jY3R4LCBGdW5jdGlvbkNhbGxJbmZvIGZj aW5mbywKIAlzdC0+bGVuID0gMTY7CiAJc3QtPmxpc3QgPSAoTGV4ZW1lRW50cnkgKikgcGFs bG9jKHNpemVvZihMZXhlbWVFbnRyeSkgKiBzdC0+bGVuKTsKIAotCXByc2RhdGEgPSAodm9p ZCAqKSBEYXR1bUdldFBvaW50ZXIoRnVuY3Rpb25DYWxsMigmcHJzLT5wcnNzdGFydCwKLQkJ CQkJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKFZBUkRBVEFfQU5ZKHR4dCkpLAotCQkJCQkJ CQkJCQkJCSBJbnQzMkdldERhdHVtKFZBUlNJWkVfQU5ZX0VYSERSKHR4dCkpKSk7CisJcHJz ZGF0YSA9IERhdHVtR2V0UG9pbnRlcihGdW5jdGlvbkNhbGwyKCZwcnMtPnByc3N0YXJ0LAor CQkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oVkFSREFUQV9BTlkodHh0KSksCisJCQkJCQkJ CQkJCUludDMyR2V0RGF0dW0oVkFSU0laRV9BTllfRVhIRFIodHh0KSkpKTsKIAogCXdoaWxl ICgodHlwZSA9IERhdHVtR2V0SW50MzIoRnVuY3Rpb25DYWxsMygmcHJzLT5wcnN0b2tlbiwK IAkJCQkJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHByc2RhdGEpLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Fj bC5jCmluZGV4IDJhNzE2Y2M2YjdmLi41ODNkNmU3Zjg5ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wu YwpAQCAtMTgwOCw3ICsxODA4LDcgQEAgYWNsZXhwbG9kZShQR19GVU5DVElPTl9BUkdTKQog CQlpZHggPSAoaW50ICopIHBhbGxvYyhzaXplb2YoaW50WzJdKSk7CiAJCWlkeFswXSA9IDA7 CQkJCS8qIEFDTCBhcnJheSBpdGVtIGluZGV4ICovCiAJCWlkeFsxXSA9IC0xOwkJCS8qIHBy aXZpbGVnZSB0eXBlIGNvdW50ZXIgKi8KLQkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gKHZvaWQg KikgaWR4OworCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBpZHg7CiAKIAkJTWVtb3J5Q29udGV4 dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheV91c2VyZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJh eV91c2VyZnVuY3MuYwppbmRleCA2NTk5YmUyZWM1ZS4uZDM2YWU5YjY4ZDggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheV91c2VyZnVuY3MuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlfdXNlcmZ1bmNzLmMKQEAgLTY4NSw3ICs2ODUsNyBA QCBhcnJheV9hZ2dfc2VyaWFsaXplKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCQkJCQkmdHlw aXN2YXJsZW5hKTsKIAkJCWZtZ3JfaW5mb19jeHQodHlwc2VuZCwgJmlvZGF0YS0+dHlwc2Vu ZCwKIAkJCQkJCSAgZmNpbmZvLT5mbGluZm8tPmZuX21jeHQpOwotCQkJZmNpbmZvLT5mbGlu Zm8tPmZuX2V4dHJhID0gKHZvaWQgKikgaW9kYXRhOworCQkJZmNpbmZvLT5mbGluZm8tPmZu X2V4dHJhID0gaW9kYXRhOwogCQl9CiAKIAkJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5uZWxl bXM7IGkrKykKQEAgLTc3Niw3ICs3NzYsNyBAQCBhcnJheV9hZ2dfZGVzZXJpYWxpemUoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJICAgJmlvZGF0YS0+dHlwaW9wYXJhbSk7CiAJCQlm bWdyX2luZm9fY3h0KHR5cHJlY2VpdmUsICZpb2RhdGEtPnR5cHJlY2VpdmUsCiAJCQkJCQkg IGZjaW5mby0+ZmxpbmZvLT5mbl9tY3h0KTsKLQkJCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRy YSA9ICh2b2lkICopIGlvZGF0YTsKKwkJCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9IGlv ZGF0YTsKIAkJfQogCiAJCWZvciAoaW50IGkgPSAwOyBpIDwgbmVsZW1zOyBpKyspCkBAIC0x NjQyLDcgKzE2NDIsNyBAQCBhcnJheV9zaHVmZmxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYg KHR5cGVudHJ5ID09IE5VTEwgfHwgdHlwZW50cnktPnR5cGVfaWQgIT0gZWxtdHlwKQogCXsK IAkJdHlwZW50cnkgPSBsb29rdXBfdHlwZV9jYWNoZShlbG10eXAsIDApOwotCQlmY2luZm8t PmZsaW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSB0eXBlbnRyeTsKKwkJZmNpbmZvLT5mbGlu Zm8tPmZuX2V4dHJhID0gdHlwZW50cnk7CiAJfQogCiAJcmVzdWx0ID0gYXJyYXlfc2h1ZmZs ZV9uKGFycmF5LCBBUlJfRElNUyhhcnJheSlbMF0sIHRydWUsIGVsbXR5cCwgdHlwZW50cnkp OwpAQCAtMTY3OCw3ICsxNjc4LDcgQEAgYXJyYXlfc2FtcGxlKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJaWYgKHR5cGVudHJ5ID09IE5VTEwgfHwgdHlwZW50cnktPnR5cGVfaWQgIT0gZWxtdHlw KQogCXsKIAkJdHlwZW50cnkgPSBsb29rdXBfdHlwZV9jYWNoZShlbG10eXAsIDApOwotCQlm Y2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSB0eXBlbnRyeTsKKwkJZmNpbmZv LT5mbGluZm8tPmZuX2V4dHJhID0gdHlwZW50cnk7CiAJfQogCiAJcmVzdWx0ID0gYXJyYXlf c2h1ZmZsZV9uKGFycmF5LCBuLCBmYWxzZSwgZWxtdHlwLCB0eXBlbnRyeSk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYwppbmRleCBhNzE1ZTdlMGI4ZS4uNTkzNzc1YzI3ZjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwpAQCAtMzg2Myw3ICszODYzLDcg QEAgYXJyYXlfZXEoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX0ZVTkNUSU9OKSwKIAkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlm eSBhbiBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsCiAJCQkJCQkJCWZvcm1hdF90 eXBlX2JlKGVsZW1lbnRfdHlwZSkpKSk7Ci0JCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEg PSAodm9pZCAqKSB0eXBlbnRyeTsKKwkJCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9IHR5 cGVudHJ5OwogCQl9CiAJCXR5cGxlbiA9IHR5cGVudHJ5LT50eXBsZW47CiAJCXR5cGJ5dmFs ID0gdHlwZW50cnktPnR5cGJ5dmFsOwpAQCAtNDAyNyw3ICs0MDI3LDcgQEAgYXJyYXlfY21w KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9GVU5DVElPTiksCiAJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhIGNv bXBhcmlzb24gZnVuY3Rpb24gZm9yIHR5cGUgJXMiLAogCQkJCQkJCWZvcm1hdF90eXBlX2Jl KGVsZW1lbnRfdHlwZSkpKSk7Ci0JCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9ICh2b2lk ICopIHR5cGVudHJ5OworCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSB0eXBlbnRyeTsK IAl9CiAJdHlwbGVuID0gdHlwZW50cnktPnR5cGxlbjsKIAl0eXBieXZhbCA9IHR5cGVudHJ5 LT50eXBieXZhbDsKQEAgLTQyMjIsNyArNDIyMiw3IEBAIGhhc2hfYXJyYXkoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCXR5cGVudHJ5ID0gcmVjb3JkX3R5cGVudHJ5OwogCQl9CiAKLQkJZmNp bmZvLT5mbGluZm8tPmZuX2V4dHJhID0gKHZvaWQgKikgdHlwZW50cnk7CisJCWZjaW5mby0+ ZmxpbmZvLT5mbl9leHRyYSA9IHR5cGVudHJ5OwogCX0KIAogCXR5cGxlbiA9IHR5cGVudHJ5 LT50eXBsZW47CkBAIC00MzE2LDcgKzQzMTYsNyBAQCBoYXNoX2FycmF5X2V4dGVuZGVkKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0ZVTkNU SU9OKSwKIAkJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGV4dGVuZGVkIGhh c2ggZnVuY3Rpb24gZm9yIHR5cGUgJXMiLAogCQkJCQkJCWZvcm1hdF90eXBlX2JlKGVsZW1l bnRfdHlwZSkpKSk7Ci0JCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9ICh2b2lkICopIHR5 cGVudHJ5OworCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSB0eXBlbnRyeTsKIAl9CiAJ dHlwbGVuID0gdHlwZW50cnktPnR5cGxlbjsKIAl0eXBieXZhbCA9IHR5cGVudHJ5LT50eXBi eXZhbDsKQEAgLTQ0MTgsNyArNDQxOCw3IEBAIGFycmF5X2NvbnRhaW5fY29tcGFyZShBbnlB cnJheVR5cGUgKmFycmF5MSwgQW55QXJyYXlUeXBlICphcnJheTIsIE9pZCBjb2xsYXRpb24s CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0ZVTkNUSU9OKSwKIAkJCQkJIGVy cm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGVxdWFsaXR5IG9wZXJhdG9yIGZvciB0eXBl ICVzIiwKIAkJCQkJCQlmb3JtYXRfdHlwZV9iZShlbGVtZW50X3R5cGUpKSkpOwotCQkqZm5f ZXh0cmEgPSAodm9pZCAqKSB0eXBlbnRyeTsKKwkJKmZuX2V4dHJhID0gdHlwZW50cnk7CiAJ fQogCXR5cGxlbiA9IHR5cGVudHJ5LT50eXBsZW47CiAJdHlwYnl2YWwgPSB0eXBlbnRyeS0+ dHlwYnl2YWw7CkBAIC02NDM3LDcgKzY0MzcsNyBAQCBhcnJheV9yZXBsYWNlX2ludGVybmFs KEFycmF5VHlwZSAqYXJyYXksCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0ZV TkNUSU9OKSwKIAkJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGVxdWFsaXR5 IG9wZXJhdG9yIGZvciB0eXBlICVzIiwKIAkJCQkJCQlmb3JtYXRfdHlwZV9iZShlbGVtZW50 X3R5cGUpKSkpOwotCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSB0eXBl bnRyeTsKKwkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJhID0gdHlwZW50cnk7CiAJfQogCXR5 cGxlbiA9IHR5cGVudHJ5LT50eXBsZW47CiAJdHlwYnl2YWwgPSB0eXBlbnRyeS0+dHlwYnl2 YWw7CkBAIC02NzIzLDcgKzY3MjMsNyBAQCB3aWR0aF9idWNrZXRfYXJyYXkoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0ZVTkNUSU9OKSwK IAkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhIGNvbXBhcmlzb24gZnVuY3Rp b24gZm9yIHR5cGUgJXMiLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShlbGVtZW50X3R5cGUp KSkpOwotCQkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJhID0gKHZvaWQgKikgdHlwZW50cnk7 CisJCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSB0eXBlbnRyeTsKIAkJfQogCiAJCS8q CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRpbWUuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRldGltZS5jCmluZGV4IDYwMGI1OTE5MGU0Li4wYjE5Y2Rk ZjU0YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMKQEAgLTUwMzEsNyArNTAzMSw3 IEBAIHBnX3RpbWV6b25lX2FiYnJldnMoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyogYWxsb2Nh dGUgbWVtb3J5IGZvciB1c2VyIGNvbnRleHQgKi8KIAkJcGluZGV4ID0gKGludCAqKSBwYWxs b2Moc2l6ZW9mKGludCkpOwogCQkqcGluZGV4ID0gMDsKLQkJZnVuY2N0eC0+dXNlcl9mY3R4 ID0gKHZvaWQgKikgcGluZGV4OworCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBwaW5kZXg7CiAK IAkJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5mbywgTlVMTCwgJnR1cGRlc2MpICE9 IFRZUEVGVU5DX0NPTVBPU0lURSkKIAkJCWVsb2coRVJST1IsICJyZXR1cm4gdHlwZSBtdXN0 IGJlIGEgcm93IHR5cGUiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9k YXR1bS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdHVtLmMKaW5kZXggNDViODU0YTBh ZTcuLmJkNWIwOGUyMTM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0 dW0uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0dW0uYwpAQCAtMTQ5LDcgKzE0 OSw3IEBAIGRhdHVtQ29weShEYXR1bSB2YWx1ZSwgYm9vbCB0eXBCeVZhbCwgaW50IHR5cExl bikKIAogCQkJcmVzdWx0c2l6ZSA9IEVPSF9nZXRfZmxhdF9zaXplKGVvaCk7CiAJCQlyZXN1 bHRwdHIgPSAoY2hhciAqKSBwYWxsb2MocmVzdWx0c2l6ZSk7Ci0JCQlFT0hfZmxhdHRlbl9p bnRvKGVvaCwgKHZvaWQgKikgcmVzdWx0cHRyLCByZXN1bHRzaXplKTsKKwkJCUVPSF9mbGF0 dGVuX2ludG8oZW9oLCByZXN1bHRwdHIsIHJlc3VsdHNpemUpOwogCQkJcmVzID0gUG9pbnRl ckdldERhdHVtKHJlc3VsdHB0cik7CiAJCX0KIAkJZWxzZQpAQCAtNDk1LDcgKzQ5NSw3IEBA IGRhdHVtU2VyaWFsaXplKERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCwgYm9vbCB0eXBCeVZh bCwgaW50IHR5cExlbiwKIAkJCSAqIHNvIHdlIGNhbid0IHN0b3JlIGRpcmVjdGx5IHRvICpz dGFydF9hZGRyZXNzLgogCQkJICovCiAJCQl0bXAgPSAoY2hhciAqKSBwYWxsb2MoaGVhZGVy KTsKLQkJCUVPSF9mbGF0dGVuX2ludG8oZW9oLCAodm9pZCAqKSB0bXAsIGhlYWRlcik7CisJ CQlFT0hfZmxhdHRlbl9pbnRvKGVvaCwgdG1wLCBoZWFkZXIpOwogCQkJbWVtY3B5KCpzdGFy dF9hZGRyZXNzLCB0bXAsIGhlYWRlcik7CiAJCQkqc3RhcnRfYWRkcmVzcyArPSBoZWFkZXI7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kb21haW5zLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZG9tYWlucy5jCmluZGV4IDIxNzkxMTA1ZGE4Li45MDFkODg3 Y2Q0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RvbWFpbnMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZG9tYWlucy5jCkBAIC0yNTUsNyArMjU1LDcgQEAg ZG9tYWluX2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJewogCQlteV9leHRyYSA9IGRvbWFpbl9z dGF0ZV9zZXR1cChkb21haW5UeXBlLCBmYWxzZSwKIAkJCQkJCQkJCSAgZmNpbmZvLT5mbGlu Zm8tPmZuX21jeHQpOwotCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSBt eV9leHRyYTsKKwkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJhID0gbXlfZXh0cmE7CiAJfQog CiAJLyoKQEAgLTMxNCw3ICszMTQsNyBAQCBkb21haW5fcmVjdihQR19GVU5DVElPTl9BUkdT KQogCXsKIAkJbXlfZXh0cmEgPSBkb21haW5fc3RhdGVfc2V0dXAoZG9tYWluVHlwZSwgdHJ1 ZSwKIAkJCQkJCQkJCSAgZmNpbmZvLT5mbGluZm8tPmZuX21jeHQpOwotCQlmY2luZm8tPmZs aW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSBteV9leHRyYTsKKwkJZmNpbmZvLT5mbGluZm8t PmZuX2V4dHJhID0gbXlfZXh0cmE7CiAJfQogCiAJLyoKQEAgLTM4OCw3ICszODgsNyBAQCBk b21haW5fY2hlY2tfaW50ZXJuYWwoRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsLCBPaWQgZG9t YWluVHlwZSwKIAl7CiAJCW15X2V4dHJhID0gZG9tYWluX3N0YXRlX3NldHVwKGRvbWFpblR5 cGUsIHRydWUsIG1jeHQpOwogCQlpZiAoZXh0cmEpCi0JCQkqZXh0cmEgPSAodm9pZCAqKSBt eV9leHRyYTsKKwkJCSpleHRyYSA9IG15X2V4dHJhOwogCX0KIAogCS8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvZW51bS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2VudW0uYwppbmRleCA4MTRjN2ZiNGUzZS4uZDRjMmFhMGU3ZTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9lbnVtLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2VudW0uYwpAQCAtMjk1LDcgKzI5NSw3IEBAIGVudW1fY21wX2ludGVybmFsKE9pZCBhcmcx LCBPaWQgYXJnMiwgRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJCVJlbGVhc2VTeXNDYWNo ZShlbnVtX3R1cCk7CiAJCS8qIE5vdyBsb2NhdGUgYW5kIHJlbWVtYmVyIHRoZSB0eXBjYWNo ZSBlbnRyeSAqLwogCQl0Y2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZSh0eXBlb2lkLCAwKTsK LQkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJhID0gKHZvaWQgKikgdGNhY2hlOworCQlmY2lu Zm8tPmZsaW5mby0+Zm5fZXh0cmEgPSB0Y2FjaGU7CiAJfQogCiAJLyogVGhlIHJlbWFpbmlu ZyBjb21wYXJpc29uIGxvZ2ljIGlzIGluIHR5cGNhY2hlLmMgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9leHBhbmRlZHJlY29yZC5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2V4cGFuZGVkcmVjb3JkLmMKaW5kZXggN2U4NWFlMzgyNWUuLmQyODQyNDk1YjU3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZXhwYW5kZWRyZWNvcmQuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZXhwYW5kZWRyZWNvcmQuYwpAQCAtMTYxLDcg KzE2MSw3IEBAIG1ha2VfZXhwYW5kZWRfcmVjb3JkX2Zyb21fdHlwZWlkKE9pZCB0eXBlX2lk LCBpbnQzMiB0eXBtb2QsCiAJewogCQkvKiBSZWdpc3RlciBjYWxsYmFjayB0byByZWxlYXNl IHRoZSByZWZjb3VudCAqLwogCQllcmgtPmVyX21jYi5mdW5jID0gRVJfbWNfY2FsbGJhY2s7 Ci0JCWVyaC0+ZXJfbWNiLmFyZyA9ICh2b2lkICopIGVyaDsKKwkJZXJoLT5lcl9tY2IuYXJn ID0gZXJoOwogCQlNZW1vcnlDb250ZXh0UmVnaXN0ZXJSZXNldENhbGxiYWNrKGVyaC0+aGRy LmVvaF9jb250ZXh0LAogCQkJCQkJCQkJCSAgICZlcmgtPmVyX21jYik7CiAKQEAgLTI4OSw3 ICsyODksNyBAQCBtYWtlX2V4cGFuZGVkX3JlY29yZF9mcm9tX3R1cGRlc2MoVHVwbGVEZXNj IHR1cGRlc2MsCiAJewogCQkvKiBSZWdpc3RlciBjYWxsYmFjayB0byByZWxlYXNlIHRoZSBy ZWZjb3VudCAqLwogCQllcmgtPmVyX21jYi5mdW5jID0gRVJfbWNfY2FsbGJhY2s7Ci0JCWVy aC0+ZXJfbWNiLmFyZyA9ICh2b2lkICopIGVyaDsKKwkJZXJoLT5lcl9tY2IuYXJnID0gZXJo OwogCQlNZW1vcnlDb250ZXh0UmVnaXN0ZXJSZXNldENhbGxiYWNrKGVyaC0+aGRyLmVvaF9j b250ZXh0LAogCQkJCQkJCQkJCSAgICZlcmgtPmVyX21jYik7CiAKQEAgLTM4NSw3ICszODUs NyBAQCBtYWtlX2V4cGFuZGVkX3JlY29yZF9mcm9tX2V4cHJlY29yZChFeHBhbmRlZFJlY29y ZEhlYWRlciAqb2xkZXJoLAogCXsKIAkJLyogUmVnaXN0ZXIgY2FsbGJhY2sgdG8gcmVsZWFz ZSB0aGUgcmVmY291bnQgKi8KIAkJZXJoLT5lcl9tY2IuZnVuYyA9IEVSX21jX2NhbGxiYWNr OwotCQllcmgtPmVyX21jYi5hcmcgPSAodm9pZCAqKSBlcmg7CisJCWVyaC0+ZXJfbWNiLmFy ZyA9IGVyaDsKIAkJTWVtb3J5Q29udGV4dFJlZ2lzdGVyUmVzZXRDYWxsYmFjayhlcmgtPmhk ci5lb2hfY29udGV4dCwKIAkJCQkJCQkJCQkgICAmZXJoLT5lcl9tY2IpOwogCkBAIC04NDQs NyArODQ0LDcgQEAgZXhwYW5kZWRfcmVjb3JkX2ZldGNoX3R1cGRlc2MoRXhwYW5kZWRSZWNv cmRIZWFkZXIgKmVyaCkKIAkJaWYgKGVyaC0+ZXJfbWNiLmFyZyA9PSBOVUxMKQogCQl7CiAJ CQllcmgtPmVyX21jYi5mdW5jID0gRVJfbWNfY2FsbGJhY2s7Ci0JCQllcmgtPmVyX21jYi5h cmcgPSAodm9pZCAqKSBlcmg7CisJCQllcmgtPmVyX21jYi5hcmcgPSBlcmg7CiAJCQlNZW1v cnlDb250ZXh0UmVnaXN0ZXJSZXNldENhbGxiYWNrKGVyaC0+aGRyLmVvaF9jb250ZXh0LAog CQkJCQkJCQkJCQkgICAmZXJoLT5lcl9tY2IpOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbmIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5j CmluZGV4IDkyODU1MmQ1NTE0Li5kNjAyZGY0ZWViNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25iLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25i LmMKQEAgLTI1Nyw3ICsyNTcsNyBAQCBqc29uYl9mcm9tX2NzdHJpbmcoY2hhciAqanNvbiwg aW50IGxlbiwgYm9vbCB1bmlxdWVfa2V5cywgTm9kZSAqZXNjb250ZXh0KQogCiAJc3RhdGUu dW5pcXVlX2tleXMgPSB1bmlxdWVfa2V5czsKIAlzdGF0ZS5lc2NvbnRleHQgPSBlc2NvbnRl eHQ7Ci0Jc2VtLnNlbXN0YXRlID0gKHZvaWQgKikgJnN0YXRlOworCXNlbS5zZW1zdGF0ZSA9 ICZzdGF0ZTsKIAogCXNlbS5vYmplY3Rfc3RhcnQgPSBqc29uYl9pbl9vYmplY3Rfc3RhcnQ7 CiAJc2VtLmFycmF5X3N0YXJ0ID0ganNvbmJfaW5fYXJyYXlfc3RhcnQ7CkBAIC03NTgsNyAr NzU4LDcgQEAgZGF0dW1fdG9fanNvbmJfaW50ZXJuYWwoRGF0dW0gdmFsLCBib29sIGlzX251 bGwsIEpzb25iSW5TdGF0ZSAqcmVzdWx0LAogCiAJCQkJCW1lbXNldCgmc2VtLCAwLCBzaXpl b2Yoc2VtKSk7CiAKLQkJCQkJc2VtLnNlbXN0YXRlID0gKHZvaWQgKikgcmVzdWx0OworCQkJ CQlzZW0uc2Vtc3RhdGUgPSByZXN1bHQ7CiAKIAkJCQkJc2VtLm9iamVjdF9zdGFydCA9IGpz b25iX2luX29iamVjdF9zdGFydDsKIAkJCQkJc2VtLmFycmF5X3N0YXJ0ID0ganNvbmJfaW5f YXJyYXlfc3RhcnQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmZ1 bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmZ1bmNzLmMKaW5kZXggNjJhMTdh MjY2NzkuLjY4YzBhMzE2NTZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv anNvbmZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25mdW5jcy5jCkBA IC02MTcsNyArNjE3LDcgQEAganNvbmJfb2JqZWN0X2tleXMoUEdfRlVOQ1RJT05fQVJHUykK IAkJfQogCiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKLQkJZnVuY2N0 eC0+dXNlcl9mY3R4ID0gKHZvaWQgKikgc3RhdGU7CisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9 IHN0YXRlOwogCX0KIAogCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOwpAQCAtNzUy LDcgKzc1Miw3IEBAIGpzb25fb2JqZWN0X2tleXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJc3Rh dGUtPnNlbnRfY291bnQgPSAwOwogCQlzdGF0ZS0+cmVzdWx0ID0gcGFsbG9jKDI1NiAqIHNp emVvZihjaGFyICopKTsKIAotCQlzZW0tPnNlbXN0YXRlID0gKHZvaWQgKikgc3RhdGU7CisJ CXNlbS0+c2Vtc3RhdGUgPSBzdGF0ZTsKIAkJc2VtLT5hcnJheV9zdGFydCA9IG9rZXlzX2Fy cmF5X3N0YXJ0OwogCQlzZW0tPnNjYWxhciA9IG9rZXlzX3NjYWxhcjsKIAkJc2VtLT5vYmpl Y3RfZmllbGRfc3RhcnQgPSBva2V5c19vYmplY3RfZmllbGRfc3RhcnQ7CkBAIC03NjUsNyAr NzY1LDcgQEAganNvbl9vYmplY3Rfa2V5cyhQR19GVU5DVElPTl9BUkdTKQogCQlwZnJlZShz ZW0pOwogCiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKLQkJZnVuY2N0 eC0+dXNlcl9mY3R4ID0gKHZvaWQgKikgc3RhdGU7CisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9 IHN0YXRlOwogCX0KIAogCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOwpAQCAtMTEy Myw3ICsxMTIzLDcgQEAgZ2V0X3dvcmtlcih0ZXh0ICpqc29uLAogCWlmIChucGF0aCA+IDAp CiAJCXN0YXRlLT5wYXRob2tbMF0gPSB0cnVlOwogCi0Jc2VtLT5zZW1zdGF0ZSA9ICh2b2lk ICopIHN0YXRlOworCXNlbS0+c2Vtc3RhdGUgPSBzdGF0ZTsKIAogCS8qCiAJICogTm90IGFs bCB2YXJpYW50cyBuZWVkIGFsbCB0aGUgc2VtYW50aWMgcm91dGluZXMuIE9ubHkgc2V0IHRo ZSBvbmVzIHRoYXQKQEAgLTE4NjMsNyArMTg2Myw3IEBAIGpzb25fYXJyYXlfbGVuZ3RoKFBH X0ZVTkNUSU9OX0FSR1MpCiAjZW5kaWYKIAogCXNlbSA9IHBhbGxvYzAoc2l6ZW9mKEpzb25T ZW1BY3Rpb24pKTsKLQlzZW0tPnNlbXN0YXRlID0gKHZvaWQgKikgc3RhdGU7CisJc2VtLT5z ZW1zdGF0ZSA9IHN0YXRlOwogCXNlbS0+b2JqZWN0X3N0YXJ0ID0gYWxlbl9vYmplY3Rfc3Rh cnQ7CiAJc2VtLT5zY2FsYXIgPSBhbGVuX3NjYWxhcjsKIAlzZW0tPmFycmF5X2VsZW1lbnRf c3RhcnQgPSBhbGVuX2FycmF5X2VsZW1lbnRfc3RhcnQ7CkBAIC0yMDcxLDcgKzIwNzEsNyBA QCBlYWNoX3dvcmtlcihGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBhc190ZXh0KQog CXN0YXRlLT50dXBsZV9zdG9yZSA9IHJzaS0+c2V0UmVzdWx0OwogCXN0YXRlLT5yZXRfdGRl c2MgPSByc2ktPnNldERlc2M7CiAKLQlzZW0tPnNlbXN0YXRlID0gKHZvaWQgKikgc3RhdGU7 CisJc2VtLT5zZW1zdGF0ZSA9IHN0YXRlOwogCXNlbS0+YXJyYXlfc3RhcnQgPSBlYWNoX2Fy cmF5X3N0YXJ0OwogCXNlbS0+c2NhbGFyID0gZWFjaF9zY2FsYXI7CiAJc2VtLT5vYmplY3Rf ZmllbGRfc3RhcnQgPSBlYWNoX29iamVjdF9maWVsZF9zdGFydDsKQEAgLTIzMjMsNyArMjMy Myw3IEBAIGVsZW1lbnRzX3dvcmtlcihGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgY29uc3Qg Y2hhciAqZnVuY25hbWUsIGJvb2wgYXNfdGV4dCkKIAlzdGF0ZS0+dHVwbGVfc3RvcmUgPSBy c2ktPnNldFJlc3VsdDsKIAlzdGF0ZS0+cmV0X3RkZXNjID0gcnNpLT5zZXREZXNjOwogCi0J c2VtLT5zZW1zdGF0ZSA9ICh2b2lkICopIHN0YXRlOworCXNlbS0+c2Vtc3RhdGUgPSBzdGF0 ZTsKIAlzZW0tPm9iamVjdF9zdGFydCA9IGVsZW1lbnRzX29iamVjdF9zdGFydDsKIAlzZW0t PnNjYWxhciA9IGVsZW1lbnRzX3NjYWxhcjsKIAlzZW0tPmFycmF5X2VsZW1lbnRfc3RhcnQg PSBlbGVtZW50c19hcnJheV9lbGVtZW50X3N0YXJ0OwpAQCAtMjc5NSw3ICsyNzk1LDcgQEAg cG9wdWxhdGVfYXJyYXlfanNvbihQb3B1bGF0ZUFycmF5Q29udGV4dCAqY3R4LCBjb25zdCBj aGFyICpqc29uLCBpbnQgbGVuKQogCXN0YXRlLmN0eCA9IGN0eDsKIAogCW1lbXNldCgmc2Vt LCAwLCBzaXplb2Yoc2VtKSk7Ci0Jc2VtLnNlbXN0YXRlID0gKHZvaWQgKikgJnN0YXRlOwor CXNlbS5zZW1zdGF0ZSA9ICZzdGF0ZTsKIAlzZW0ub2JqZWN0X3N0YXJ0ID0gcG9wdWxhdGVf YXJyYXlfb2JqZWN0X3N0YXJ0OwogCXNlbS5hcnJheV9lbmQgPSBwb3B1bGF0ZV9hcnJheV9h cnJheV9lbmQ7CiAJc2VtLmFycmF5X2VsZW1lbnRfc3RhcnQgPSBwb3B1bGF0ZV9hcnJheV9l bGVtZW50X3N0YXJ0OwpAQCAtMzgzMSw3ICszODMxLDcgQEAgZ2V0X2pzb25fb2JqZWN0X2Fz X2hhc2goY29uc3QgY2hhciAqanNvbiwgaW50IGxlbiwgY29uc3QgY2hhciAqZnVuY25hbWUs CiAJc3RhdGUtPmxleCA9IG1ha2VKc29uTGV4Q29udGV4dENzdHJpbmdMZW4oTlVMTCwganNv biwgbGVuLAogCQkJCQkJCQkJCQkgIEdldERhdGFiYXNlRW5jb2RpbmcoKSwgdHJ1ZSk7CiAK LQlzZW0tPnNlbXN0YXRlID0gKHZvaWQgKikgc3RhdGU7CisJc2VtLT5zZW1zdGF0ZSA9IHN0 YXRlOwogCXNlbS0+YXJyYXlfc3RhcnQgPSBoYXNoX2FycmF5X3N0YXJ0OwogCXNlbS0+c2Nh bGFyID0gaGFzaF9zY2FsYXI7CiAJc2VtLT5vYmplY3RfZmllbGRfc3RhcnQgPSBoYXNoX29i amVjdF9maWVsZF9zdGFydDsKQEAgLTQxNDQsNyArNDE0NCw3IEBAIHBvcHVsYXRlX3JlY29y ZHNldF93b3JrZXIoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGNvbnN0IGNoYXIgKmZ1bmNu YW1lLAogCiAJCW1ha2VKc29uTGV4Q29udGV4dCgmbGV4LCBqc29uLCB0cnVlKTsKIAotCQlz ZW0tPnNlbXN0YXRlID0gKHZvaWQgKikgc3RhdGU7CisJCXNlbS0+c2Vtc3RhdGUgPSBzdGF0 ZTsKIAkJc2VtLT5hcnJheV9zdGFydCA9IHBvcHVsYXRlX3JlY29yZHNldF9hcnJheV9zdGFy dDsKIAkJc2VtLT5hcnJheV9lbGVtZW50X3N0YXJ0ID0gcG9wdWxhdGVfcmVjb3Jkc2V0X2Fy cmF5X2VsZW1lbnRfc3RhcnQ7CiAJCXNlbS0+c2NhbGFyID0gcG9wdWxhdGVfcmVjb3Jkc2V0 X3NjYWxhcjsKQEAgLTQ1MDQsNyArNDUwNCw3IEBAIGpzb25fc3RyaXBfbnVsbHMoUEdfRlVO Q1RJT05fQVJHUykKIAlzdGF0ZS0+c3RydmFsID0gbWFrZVN0cmluZ0luZm8oKTsKIAlzdGF0 ZS0+c2tpcF9uZXh0X251bGwgPSBmYWxzZTsKIAotCXNlbS0+c2Vtc3RhdGUgPSAodm9pZCAq KSBzdGF0ZTsKKwlzZW0tPnNlbXN0YXRlID0gc3RhdGU7CiAJc2VtLT5vYmplY3Rfc3RhcnQg PSBzbl9vYmplY3Rfc3RhcnQ7CiAJc2VtLT5vYmplY3RfZW5kID0gc25fb2JqZWN0X2VuZDsK IAlzZW0tPmFycmF5X3N0YXJ0ID0gc25fYXJyYXlfc3RhcnQ7CkBAIC01NzE4LDcgKzU3MTgs NyBAQCBpdGVyYXRlX2pzb25fdmFsdWVzKHRleHQgKmpzb24sIHVpbnQzMiBmbGFncywgdm9p ZCAqYWN0aW9uX3N0YXRlLAogCXN0YXRlLT5hY3Rpb25fc3RhdGUgPSBhY3Rpb25fc3RhdGU7 CiAJc3RhdGUtPmZsYWdzID0gZmxhZ3M7CiAKLQlzZW0tPnNlbXN0YXRlID0gKHZvaWQgKikg c3RhdGU7CisJc2VtLT5zZW1zdGF0ZSA9IHN0YXRlOwogCXNlbS0+c2NhbGFyID0gaXRlcmF0 ZV92YWx1ZXNfc2NhbGFyOwogCXNlbS0+b2JqZWN0X2ZpZWxkX3N0YXJ0ID0gaXRlcmF0ZV92 YWx1ZXNfb2JqZWN0X2ZpZWxkX3N0YXJ0OwogCkBAIC01ODM5LDcgKzU4MzksNyBAQCB0cmFu c2Zvcm1fanNvbl9zdHJpbmdfdmFsdWVzKHRleHQgKmpzb24sIHZvaWQgKmFjdGlvbl9zdGF0 ZSwKIAlzdGF0ZS0+YWN0aW9uID0gdHJhbnNmb3JtX2FjdGlvbjsKIAlzdGF0ZS0+YWN0aW9u X3N0YXRlID0gYWN0aW9uX3N0YXRlOwogCi0Jc2VtLT5zZW1zdGF0ZSA9ICh2b2lkICopIHN0 YXRlOworCXNlbS0+c2Vtc3RhdGUgPSBzdGF0ZTsKIAlzZW0tPm9iamVjdF9zdGFydCA9IHRy YW5zZm9ybV9zdHJpbmdfdmFsdWVzX29iamVjdF9zdGFydDsKIAlzZW0tPm9iamVjdF9lbmQg PSB0cmFuc2Zvcm1fc3RyaW5nX3ZhbHVlc19vYmplY3RfZW5kOwogCXNlbS0+YXJyYXlfc3Rh cnQgPSB0cmFuc2Zvcm1fc3RyaW5nX3ZhbHVlc19hcnJheV9zdGFydDsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCmluZGV4IGFjMjE0NTk4MDM3Li5kZTM1YzhjZTQ3 NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCkBAIC0zNjE1LDcg KzM2MTUsNyBAQCBKc29uYlR5cGUoSnNvbmJWYWx1ZSAqamIpCiAKIAlpZiAoamItPnR5cGUg PT0gamJ2QmluYXJ5KQogCXsKLQkJSnNvbmJDb250YWluZXIgKmpiYyA9ICh2b2lkICopIGpi LT52YWwuYmluYXJ5LmRhdGE7CisJCUpzb25iQ29udGFpbmVyICpqYmMgPSBqYi0+dmFsLmJp bmFyeS5kYXRhOwogCiAJCS8qIFNjYWxhcnMgc2hvdWxkIGJlIGFsd2F5cyBleHRyYWN0ZWQg ZHVyaW5nIGpzb25wYXRoIGV4ZWN1dGlvbi4gKi8KIAkJQXNzZXJ0KCFKc29uQ29udGFpbmVy SXNTY2FsYXIoamJjKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bnBhdGhfc2Nhbi5sIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX3NjYW4ubApp bmRleCA3YWNkYTc3ODM3NS4uOGVmYWQ1YWMxMDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29ucGF0aF9zY2FuLmwKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25wYXRoX3NjYW4ubApAQCAtNTY0LDcgKzU2NCw3IEBAIHBhcnNlanNvbnBhdGgoY29u c3QgY2hhciAqc3RyLCBpbnQgbGVuLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogCiAJanNv bnBhdGhfc2Nhbm5lcl9pbml0KHN0ciwgbGVuKTsKIAotCWlmIChqc29ucGF0aF95eXBhcnNl KCh2b2lkICopICZwYXJzZXJlc3VsdCwgZXNjb250ZXh0KSAhPSAwKQorCWlmIChqc29ucGF0 aF95eXBhcnNlKCZwYXJzZXJlc3VsdCwgZXNjb250ZXh0KSAhPSAwKQogCQlqc29ucGF0aF95 eWVycm9yKE5VTEwsIGVzY29udGV4dCwgImludmFsaWQgaW5wdXQiKTsgLyogc2hvdWxkbid0 IGhhcHBlbiAqLwogCiAJanNvbnBhdGhfc2Nhbm5lcl9maW5pc2goKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9sb2NrZnVuY3MuYwppbmRleCBlNzkwZjg1NmFiMy4uMDM0YTZmODQ3MTYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbG9ja2Z1bmNzLmMKQEAgLTE1Myw3ICsxNTMsNyBAQCBwZ19sb2Nr X3N0YXR1cyhQR19GVU5DVElPTl9BUkdTKQogCQkgKiBvdXQgYXMgYSByZXN1bHQgc2V0Lgog CQkgKi8KIAkJbXlzdGF0dXMgPSAoUEdfTG9ja19TdGF0dXMgKikgcGFsbG9jKHNpemVvZihQ R19Mb2NrX1N0YXR1cykpOwotCQlmdW5jY3R4LT51c2VyX2ZjdHggPSAodm9pZCAqKSBteXN0 YXR1czsKKwkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gbXlzdGF0dXM7CiAKIAkJbXlzdGF0dXMt PmxvY2tEYXRhID0gR2V0TG9ja1N0YXR1c0RhdGEoKTsKIAkJbXlzdGF0dXMtPmN1cnJJZHgg PSAwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBl cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jCmluZGV4IDU1 OGM2YzE4YzM0Li4zNWZkODI1YmFiZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L211bHRpcmFuZ2V0eXBlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0 aXJhbmdldHlwZXMuYwpAQCAtNDU4LDcgKzQ1OCw3IEBAIGdldF9tdWx0aXJhbmdlX2lvX2Rh dGEoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIE9pZCBtbHRybmd0eXBpZCwgSU9GdW5jU2Vs ZWN0b3IKIAkJZm1ncl9pbmZvX2N4dCh0eXBpb2Z1bmMsICZjYWNoZS0+dHlwaW9wcm9jLAog CQkJCQkgIGZjaW5mby0+ZmxpbmZvLT5mbl9tY3h0KTsKIAotCQlmY2luZm8tPmZsaW5mby0+ Zm5fZXh0cmEgPSAodm9pZCAqKSBjYWNoZTsKKwkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJh ID0gY2FjaGU7CiAJfQogCiAJcmV0dXJuIGNhY2hlOwpAQCAtNTU1LDcgKzU1NSw3IEBAIG11 bHRpcmFuZ2VfZ2V0X3R5cGNhY2hlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBPaWQgbWx0 cm5ndHlwaWQpCiAJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUobWx0cm5ndHlwaWQs IFRZUEVDQUNIRV9NVUxUSVJBTkdFX0lORk8pOwogCQlpZiAodHlwY2FjaGUtPnJuZ3R5cGUg PT0gTlVMTCkKIAkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBhIG11bHRpcmFuZ2Ug dHlwZSIsIG1sdHJuZ3R5cGlkKTsKLQkJZmNpbmZvLT5mbGluZm8tPmZuX2V4dHJhID0gKHZv aWQgKikgdHlwY2FjaGU7CisJCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9IHR5cGNhY2hl OwogCX0KIAogCXJldHVybiB0eXBjYWNoZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9vcmRlcmVkc2V0YWdncy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L29yZGVy ZWRzZXRhZ2dzLmMKaW5kZXggMDRiM2YzMTgyN2UuLmI4YmRjNjY3ZGJjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvb3JkZXJlZHNldGFnZ3MuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvb3JkZXJlZHNldGFnZ3MuYwpAQCAtMjcwLDcgKzI3MCw3IEBAIG9y ZGVyZWRfc2V0X3N0YXJ0dXAoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgdXNlX3R1 cGxlcykKIAkJCQkJCQkJICZxc3RhdGUtPnR5cEFsaWduKTsKIAkJfQogCi0JCWZjaW5mby0+ ZmxpbmZvLT5mbl9leHRyYSA9ICh2b2lkICopIHFzdGF0ZTsKKwkJZmNpbmZvLT5mbGluZm8t PmZuX2V4dHJhID0gcXN0YXRlOwogCiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250 ZXh0KTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGFydGl0aW9u ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wYXJ0aXRpb25mdW5jcy5jCmluZGV4 IGZlMTkwMDc5NzBkLi42MDYyZjIxZGI0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3BhcnRpdGlvbmZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bh cnRpdGlvbmZ1bmNzLmMKQEAgLTkyLDcgKzkyLDcgQEAgcGdfcGFydGl0aW9uX3RyZWUoUEdf RlVOQ1RJT05fQVJHUykKIAkJZnVuY2N0eC0+dHVwbGVfZGVzYyA9IHR1cGRlc2M7CiAKIAkJ LyogVGhlIG9ubHkgc3RhdGUgd2UgbmVlZCBpcyB0aGUgcGFydGl0aW9uIGxpc3QgKi8KLQkJ ZnVuY2N0eC0+dXNlcl9mY3R4ID0gKHZvaWQgKikgcGFydGl0aW9uczsKKwkJZnVuY2N0eC0+ dXNlcl9mY3R4ID0gcGFydGl0aW9uczsKIAogCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y3h0KTsKIAl9CkBAIC0yMTksNyArMjE5LDcgQEAgcGdfcGFydGl0aW9uX2FuY2VzdG9ycyhQ R19GVU5DVElPTl9BUkdTKQogCQlhbmNlc3RvcnMgPSBsY29uc19vaWQocmVsaWQsIGFuY2Vz dG9ycyk7CiAKIAkJLyogVGhlIG9ubHkgc3RhdGUgd2UgbmVlZCBpcyB0aGUgYW5jZXN0b3Jz IGxpc3QgKi8KLQkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gKHZvaWQgKikgYW5jZXN0b3JzOwor CQlmdW5jY3R4LT51c2VyX2ZjdHggPSBhbmNlc3RvcnM7CiAKIAkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGN4dCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3JhbmdldHlwZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMKaW5k ZXggMmQ5NGE2Yjg3NzQuLmRjNzE0MzQ1MjIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcmFuZ2V0eXBlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5n ZXR5cGVzLmMKQEAgLTM1OSw3ICszNTksNyBAQCBnZXRfcmFuZ2VfaW9fZGF0YShGdW5jdGlv bkNhbGxJbmZvIGZjaW5mbywgT2lkIHJuZ3R5cGlkLCBJT0Z1bmNTZWxlY3RvciBmdW5jKQog CQlmbWdyX2luZm9fY3h0KHR5cGlvZnVuYywgJmNhY2hlLT50eXBpb3Byb2MsCiAJCQkJCSAg ZmNpbmZvLT5mbGluZm8tPmZuX21jeHQpOwogCi0JCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRy YSA9ICh2b2lkICopIGNhY2hlOworCQlmY2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSBjYWNo ZTsKIAl9CiAKIAlyZXR1cm4gY2FjaGU7CkBAIC0xNzEwLDcgKzE3MTAsNyBAQCByYW5nZV9n ZXRfdHlwY2FjaGUoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIE9pZCBybmd0eXBpZCkKIAkJ dHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShybmd0eXBpZCwgVFlQRUNBQ0hFX1JBTkdF X0lORk8pOwogCQlpZiAodHlwY2FjaGUtPnJuZ2VsZW10eXBlID09IE5VTEwpCiAJCQllbG9n KEVSUk9SLCAidHlwZSAldSBpcyBub3QgYSByYW5nZSB0eXBlIiwgcm5ndHlwaWQpOwotCQlm Y2luZm8tPmZsaW5mby0+Zm5fZXh0cmEgPSAodm9pZCAqKSB0eXBjYWNoZTsKKwkJZmNpbmZv LT5mbGluZm8tPmZuX2V4dHJhID0gdHlwY2FjaGU7CiAJfQogCiAJcmV0dXJuIHR5cGNhY2hl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ2V4cC5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JlZ2V4cC5jCmluZGV4IDBlMjUxOWJmZDU3Li40MmFlYzk1NzM4 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ2V4cC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdleHAuYwpAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgcmVn ZXhwX21hdGNoZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJbWF0Y2hjdHgtPm51bGxzID0gKGJv b2wgKikgcGFsbG9jKHNpemVvZihib29sKSAqIG1hdGNoY3R4LT5ucGF0dGVybnMpOwogCiAJ CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKLQkJZnVuY2N0eC0+dXNlcl9m Y3R4ID0gKHZvaWQgKikgbWF0Y2hjdHg7CisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IG1hdGNo Y3R4OwogCX0KIAogCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOwpAQCAtMTcwNyw3 ICsxNzA3LDcgQEAgcmVnZXhwX3NwbGl0X3RvX3RhYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CQkJCQkJCQkJZmFsc2UsIHRydWUsIHRydWUpOwogCiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjb250ZXh0KTsKLQkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gKHZvaWQgKikgc3BsaXRj dHg7CisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IHNwbGl0Y3R4OwogCX0KIAogCWZ1bmNjdHgg PSBTUkZfUEVSQ0FMTF9TRVRVUCgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RzZ2lzdGlkeC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5jCmlu ZGV4IDE0MzhmZjM1MjA5Li5iNmJlYjg4ZGI4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RzZ2lzdGlkeC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c2dp c3RpZHguYwpAQCAtMzU1LDcgKzM1NSw3IEBAIGd0c3ZlY3Rvcl9jb25zaXN0ZW50KFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWNoa3ZhbC5hcnJiID0gR0VUQVJSKGtleSk7CiAJCWNoa3ZhbC5h cnJlID0gY2hrdmFsLmFycmIgKyBBUlJORUxFTShrZXkpOwogCQlQR19SRVRVUk5fQk9PTChU U19leGVjdXRlKEdFVFFVRVJZKHF1ZXJ5KSwKLQkJCQkJCQkJICAodm9pZCAqKSAmY2hrdmFs LAorCQkJCQkJCQkgICZjaGt2YWwsCiAJCQkJCQkJCSAgVFNfRVhFQ19QSFJBU0VfTk9fUE9T LAogCQkJCQkJCQkgIGNoZWNrY29uZGl0aW9uX2FycikpOwogCX0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC90c3JhbmsuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90 c3JhbmsuYwppbmRleCBkNDU2YTAzOTUxMC4uNTg2YTlkNmI4ZDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC90c3JhbmsuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvdHNyYW5rLmMKQEAgLTE4NSw3ICsxODUsNyBAQCBTb3J0QW5kVW5pcUl0ZW1zKFRTUXVl cnkgcSwgaW50ICpzaXplKQogCS8qIHJlbW92ZSBkdXBsaWNhdGVzICovCiAJd2hpbGUgKHB0 ciAtIHJlcyA8ICpzaXplKQogCXsKLQkJaWYgKGNvbXBhcmVRdWVyeU9wZXJhbmQoKHZvaWQg KikgcHRyLCAodm9pZCAqKSBwcmV2cHRyLCAodm9pZCAqKSBvcGVyYW5kKSAhPSAwKQorCQlp ZiAoY29tcGFyZVF1ZXJ5T3BlcmFuZChwdHIsIHByZXZwdHIsIG9wZXJhbmQpICE9IDApCiAJ CXsKIAkJCXByZXZwdHIrKzsKIAkJCSpwcmV2cHRyID0gKnB0cjsKQEAgLTY3MSw3ICs2NzEs NyBAQCBDb3ZlcihEb2NSZXByZXNlbnRhdGlvbiAqZG9jLCBpbnQgbGVuLCBRdWVyeVJlcHJl c2VudGF0aW9uICpxciwgQ292ZXJFeHQgKmV4dCkKIAl7CiAJCWZpbGxRdWVyeVJlcHJlc2Vu dGF0aW9uRGF0YShxciwgcHRyKTsKIAotCQlpZiAoVFNfZXhlY3V0ZShHRVRRVUVSWShxci0+ cXVlcnkpLCAodm9pZCAqKSBxciwKKwkJaWYgKFRTX2V4ZWN1dGUoR0VUUVVFUlkocXItPnF1 ZXJ5KSwgcXIsCiAJCQkJCSAgIFRTX0VYRUNfRU1QVFksIGNoZWNrY29uZGl0aW9uX1F1ZXJ5 T3BlcmFuZCkpCiAJCXsKIAkJCWlmIChXRVBfR0VUUE9TKHB0ci0+cG9zKSA+IGV4dC0+cSkK QEAgLTcwMSw3ICs3MDEsNyBAQCBDb3ZlcihEb2NSZXByZXNlbnRhdGlvbiAqZG9jLCBpbnQg bGVuLCBRdWVyeVJlcHJlc2VudGF0aW9uICpxciwgQ292ZXJFeHQgKmV4dCkKIAkJICovCiAJ CWZpbGxRdWVyeVJlcHJlc2VudGF0aW9uRGF0YShxciwgcHRyKTsKIAotCQlpZiAoVFNfZXhl Y3V0ZShHRVRRVUVSWShxci0+cXVlcnkpLCAodm9pZCAqKSBxciwKKwkJaWYgKFRTX2V4ZWN1 dGUoR0VUUVVFUlkocXItPnF1ZXJ5KSwgcXIsCiAJCQkJCSAgIFRTX0VYRUNfRU1QVFksIGNo ZWNrY29uZGl0aW9uX1F1ZXJ5T3BlcmFuZCkpCiAJCXsKIAkJCWlmIChXRVBfR0VUUE9TKHB0 ci0+cG9zKSA8IGV4dC0+cCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90 c3ZlY3Rvcl9vcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMKaW5k ZXggNjg3YWRjYmQ2OWYuLmY3NWUyNTM4OGNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdHN2ZWN0b3Jfb3AuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2 ZWN0b3Jfb3AuYwpAQCAtMjQ1Miw3ICsyNDUyLDcgQEAgdHNfc2V0dXBfZmlyc3RjYWxsKEZ1 bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHgsCiAJTWVt b3J5Q29udGV4dCBvbGRjb250ZXh0OwogCVN0YXRFbnRyeSAgKm5vZGU7CiAKLQlmdW5jY3R4 LT51c2VyX2ZjdHggPSAodm9pZCAqKSBzdGF0OworCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IHN0 YXQ7CiAKIAlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11 bHRpX2NhbGxfbWVtb3J5X2N0eCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC94bWwuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwppbmRleCAwNDBhODk2 MjYzOS4uNGFkNWUwNGY0OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94 bWwuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKQEAgLTEyMjYsNyArMTIy Niw3IEBAIHBnX3htbF9pbml0KFBnWG1sU3RyaWN0bmVzcyBzdHJpY3RuZXNzKQogCWVycmN4 dC0+c2F2ZWRfZXJyY3h0ID0geG1sR2VuZXJpY0Vycm9yQ29udGV4dDsKICNlbmRpZgogCi0J eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYygodm9pZCAqKSBlcnJjeHQsIHhtbF9lcnJvckhh bmRsZXIpOworCXhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMoZXJyY3h0LCB4bWxfZXJyb3JI YW5kbGVyKTsKIAogCS8qCiAJICogVmVyaWZ5IHRoYXQgeG1sU2V0U3RydWN0dXJlZEVycm9y RnVuYyBzZXQgdGhlIGNvbnRleHQgdmFyaWFibGUgd2UKQEAgLTEyNDgsNyArMTI0OCw3IEBA IHBnX3htbF9pbml0KFBnWG1sU3RyaWN0bmVzcyBzdHJpY3RuZXNzKQogCW5ld19lcnJjeHQg PSB4bWxHZW5lcmljRXJyb3JDb250ZXh0OwogI2VuZGlmCiAKLQlpZiAobmV3X2VycmN4dCAh PSAodm9pZCAqKSBlcnJjeHQpCisJaWYgKG5ld19lcnJjeHQgIT0gZXJyY3h0KQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKIAkJCQkgZXJybXNnKCJjb3VsZCBub3Qgc2V0IHVwIFhNTCBlcnJvciBoYW5kbGVyIiks CkBAIC0xMzAyLDcgKzEzMDIsNyBAQCBwZ194bWxfZG9uZShQZ1htbEVycm9yQ29udGV4dCAq ZXJyY3h0LCBib29sIGlzRXJyb3IpCiAJY3VyX2VycmN4dCA9IHhtbEdlbmVyaWNFcnJvckNv bnRleHQ7CiAjZW5kaWYKIAotCWlmIChjdXJfZXJyY3h0ICE9ICh2b2lkICopIGVycmN4dCkK KwlpZiAoY3VyX2VycmN4dCAhPSBlcnJjeHQpCiAJCWVsb2coV0FSTklORywgImxpYnhtbCBl cnJvciBoYW5kbGluZyBzdGF0ZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHhtbC5jIik7CiAKIAkv KiBSZXN0b3JlIHRoZSBzYXZlZCBoYW5kbGVycyAqLwpAQCAtMjE5Nyw3ICsyMTk3LDcgQEAg eG1sX2Vycm9ySGFuZGxlcih2b2lkICpkYXRhLCBQZ1htbEVycm9yUHRyIGVycm9yKQogCQl4 bWxHZW5lcmljRXJyb3JGdW5jIGVyckZ1bmNTYXZlZCA9IHhtbEdlbmVyaWNFcnJvcjsKIAkJ dm9pZAkgICAqZXJyQ3R4U2F2ZWQgPSB4bWxHZW5lcmljRXJyb3JDb250ZXh0OwogCi0JCXht bFNldEdlbmVyaWNFcnJvckZ1bmMoKHZvaWQgKikgZXJyb3JCdWYsCisJCXhtbFNldEdlbmVy aWNFcnJvckZ1bmMoZXJyb3JCdWYsCiAJCQkJCQkJICAgKHhtbEdlbmVyaWNFcnJvckZ1bmMp IGFwcGVuZFN0cmluZ0luZm8pOwogCiAJCS8qIEFkZCBjb250ZXh0IGluZm9ybWF0aW9uIHRv IGVycm9yQnVmICovCkBAIC00ODg1LDcgKzQ4ODUsNyBAQCBYbWxUYWJsZUZldGNoUm93KFRh YmxlRnVuY1NjYW5TdGF0ZSAqc3RhdGUpCiAJeHRDeHQgPSBHZXRYbWxUYWJsZUJ1aWxkZXJQ cml2YXRlRGF0YShzdGF0ZSwgIlhtbFRhYmxlRmV0Y2hSb3ciKTsKIAogCS8qIFByb3BhZ2F0 ZSBvdXIgb3duIGVycm9yIGNvbnRleHQgdG8gbGlieG1sMiAqLwotCXhtbFNldFN0cnVjdHVy ZWRFcnJvckZ1bmMoKHZvaWQgKikgeHRDeHQtPnhtbGVycmN4dCwgeG1sX2Vycm9ySGFuZGxl cik7CisJeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyh4dEN4dC0+eG1sZXJyY3h0LCB4bWxf ZXJyb3JIYW5kbGVyKTsKIAogCWlmICh4dEN4dC0+eHBhdGhvYmogPT0gTlVMTCkKIAl7CkBA IC00OTM5LDcgKzQ5MzksNyBAQCBYbWxUYWJsZUdldFZhbHVlKFRhYmxlRnVuY1NjYW5TdGF0 ZSAqc3RhdGUsIGludCBjb2xudW0sCiAJCSAgIHh0Q3h0LT54cGF0aG9iai0+bm9kZXNldHZh bCAhPSBOVUxMKTsKIAogCS8qIFByb3BhZ2F0ZSBvdXIgb3duIGVycm9yIGNvbnRleHQgdG8g bGlieG1sMiAqLwotCXhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMoKHZvaWQgKikgeHRDeHQt PnhtbGVycmN4dCwgeG1sX2Vycm9ySGFuZGxlcik7CisJeG1sU2V0U3RydWN0dXJlZEVycm9y RnVuYyh4dEN4dC0+eG1sZXJyY3h0LCB4bWxfZXJyb3JIYW5kbGVyKTsKIAogCSppc251bGwg PSBmYWxzZTsKIApAQCAtNTA4Miw3ICs1MDgyLDcgQEAgWG1sVGFibGVEZXN0cm95T3BhcXVl KFRhYmxlRnVuY1NjYW5TdGF0ZSAqc3RhdGUpCiAJeHRDeHQgPSBHZXRYbWxUYWJsZUJ1aWxk ZXJQcml2YXRlRGF0YShzdGF0ZSwgIlhtbFRhYmxlRGVzdHJveU9wYXF1ZSIpOwogCiAJLyog UHJvcGFnYXRlIG91ciBvd24gZXJyb3IgY29udGV4dCB0byBsaWJ4bWwyICovCi0JeG1sU2V0 U3RydWN0dXJlZEVycm9yRnVuYygodm9pZCAqKSB4dEN4dC0+eG1sZXJyY3h0LCB4bWxfZXJy b3JIYW5kbGVyKTsKKwl4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKHh0Q3h0LT54bWxlcnJj eHQsIHhtbF9lcnJvckhhbmRsZXIpOwogCiAJaWYgKHh0Q3h0LT54cGF0aHNjb21wICE9IE5V TEwpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hl LmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA1YWYxYTE2 OGVjMi4uYzY2YTA4OGY0MDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5j CkBAIC0xOTA3LDggKzE5MDcsNyBAQCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0 cmVlLCBib29sIGFjcXVpcmUpCiAJICovCiAJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3Mp CiAJewotCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwK LQkJCQkJCSAgKHZvaWQgKikgJmFjcXVpcmUsCisJCXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNl dHJlZSwgU2NhblF1ZXJ5V2Fsa2VyLCAmYWNxdWlyZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9S Q19TVUJRVUVSSUVTKTsKIAl9CiB9CkBAIC0xOTM0LDggKzE5MzMsNyBAQCBTY2FuUXVlcnlX YWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKIAkgKiBEbyBOT1QgcmVjdXJzZSBp bnRvIFF1ZXJ5IG5vZGVzLCBiZWNhdXNlIFNjYW5RdWVyeUZvckxvY2tzIGFscmVhZHkKIAkg KiBwcm9jZXNzZWQgc3Vic2VsZWN0cyBvZiBzdWJzZWxlY3RzIGZvciB1cy4KIAkgKi8KLQly ZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBTY2FuUXVlcnlXYWxrZXIsCi0J CQkJCQkJCSAgKHZvaWQgKikgYWNxdWlyZSk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93 YWxrZXIobm9kZSwgU2NhblF1ZXJ5V2Fsa2VyLCBhY3F1aXJlKTsKIH0KIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3R5cGNhY2hlLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS90eXBjYWNoZS5jCmluZGV4IDE5NzJiZDE5NDRiLi42NTkwY2JlNWM2 NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jCkBAIC0xNDA3LDcgKzE0MDcs NyBAQCBJbml0RG9tYWluQ29uc3RyYWludFJlZihPaWQgdHlwZV9pZCwgRG9tYWluQ29uc3Ry YWludFJlZiAqcmVmLAogCXJlZi0+cmVmY3R4ID0gcmVmY3R4OwogCXJlZi0+ZGNjID0gTlVM TDsKIAlyZWYtPmNhbGxiYWNrLmZ1bmMgPSBkY2NyZWZfZGVsZXRpb25fY2FsbGJhY2s7Ci0J cmVmLT5jYWxsYmFjay5hcmcgPSAodm9pZCAqKSByZWY7CisJcmVmLT5jYWxsYmFjay5hcmcg PSByZWY7CiAJTWVtb3J5Q29udGV4dFJlZ2lzdGVyUmVzZXRDYWxsYmFjayhyZWZjdHgsICZy ZWYtPmNhbGxiYWNrKTsKIAkvKiBBY3F1aXJlIHJlZmNvdW50IGlmIHRoZXJlIGFyZSBjb25z dHJhaW50cywgYW5kIHNldCB1cCBleHBvcnRlZCBsaXN0ICovCiAJaWYgKHJlZi0+dGNhY2hl LT5kb21haW5EYXRhKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxv Zy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IDhhY2NhM2UwYTBi Li5jNWIzYjE1YzM5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMjI4NSw3ICsy Mjg1LDcgQEAgY2hlY2tfbG9nX2Rlc3RpbmF0aW9uKGNoYXIgKipuZXd2YWwsIHZvaWQgKipl eHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAogCW15ZXh0cmEgPSAoaW50ICopIGd1Y19tYWxs b2MoRVJST1IsIHNpemVvZihpbnQpKTsKIAkqbXlleHRyYSA9IG5ld2xvZ2Rlc3Q7Ci0JKmV4 dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKwkqZXh0cmEgPSBteWV4dHJhOwogCiAJcmV0dXJu IHRydWU7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9oYXNoL2R5bmFoYXNo LmMgYi9zcmMvYmFja2VuZC91dGlscy9oYXNoL2R5bmFoYXNoLmMKaW5kZXggNWQ5YzYyYjY1 MmEuLjQ5M2VhZTRmNGIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9oYXNoL2R5 bmFoYXNoLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaGFzaC9keW5haGFzaC5jCkBAIC0x MDM4LDcgKzEwMzgsNyBAQCBoYXNoX3NlYXJjaF93aXRoX2hhc2hfdmFsdWUoSFRBQiAqaGFz aHAsCiAJewogCQljYXNlIEhBU0hfRklORDoKIAkJCWlmIChjdXJyQnVja2V0ICE9IE5VTEwp Ci0JCQkJcmV0dXJuICh2b2lkICopIEVMRU1FTlRLRVkoY3VyckJ1Y2tldCk7CisJCQkJcmV0 dXJuIEVMRU1FTlRLRVkoY3VyckJ1Y2tldCk7CiAJCQlyZXR1cm4gTlVMTDsKIAogCQljYXNl IEhBU0hfUkVNT1ZFOgpAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgaGFzaF9zZWFyY2hfd2l0aF9o YXNoX3ZhbHVlKEhUQUIgKmhhc2hwLAogCQkJCSAqIGVsZW1lbnQsIGJlY2F1c2Ugc29tZW9u ZSBlbHNlIGlzIGdvaW5nIHRvIHJldXNlIGl0IHRoZSBuZXh0CiAJCQkJICogdGltZSBzb21l dGhpbmcgaXMgYWRkZWQgdG8gdGhlIHRhYmxlCiAJCQkJICovCi0JCQkJcmV0dXJuICh2b2lk ICopIEVMRU1FTlRLRVkoY3VyckJ1Y2tldCk7CisJCQkJcmV0dXJuIEVMRU1FTlRLRVkoY3Vy ckJ1Y2tldCk7CiAJCQl9CiAJCQlyZXR1cm4gTlVMTDsKIApAQCAtMTA3NSw3ICsxMDc1LDcg QEAgaGFzaF9zZWFyY2hfd2l0aF9oYXNoX3ZhbHVlKEhUQUIgKmhhc2hwLAogCQljYXNlIEhB U0hfRU5URVJfTlVMTDoKIAkJCS8qIFJldHVybiBleGlzdGluZyBlbGVtZW50IGlmIGZvdW5k LCBlbHNlIGNyZWF0ZSBvbmUgKi8KIAkJCWlmIChjdXJyQnVja2V0ICE9IE5VTEwpCi0JCQkJ cmV0dXJuICh2b2lkICopIEVMRU1FTlRLRVkoY3VyckJ1Y2tldCk7CisJCQkJcmV0dXJuIEVM RU1FTlRLRVkoY3VyckJ1Y2tldCk7CiAKIAkJCS8qIGRpc2FsbG93IGluc2VydHMgaWYgZnJv emVuICovCiAJCQlpZiAoaGFzaHAtPmZyb3plbikKQEAgLTExMTQsNyArMTExNCw3IEBAIGhh c2hfc2VhcmNoX3dpdGhfaGFzaF92YWx1ZShIVEFCICpoYXNocCwKIAkJCSAqIGNhbGxlcidz IGRhdGEgc3RydWN0dXJlLgogCQkJICovCiAKLQkJCXJldHVybiAodm9pZCAqKSBFTEVNRU5U S0VZKGN1cnJCdWNrZXQpOworCQkJcmV0dXJuIEVMRU1FTlRLRVkoY3VyckJ1Y2tldCk7CiAJ fQogCiAJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBoYXNoIGFjdGlvbiBjb2RlOiAlZCIs IChpbnQpIGFjdGlvbik7CkBAIC0xNDUzLDcgKzE0NTMsNyBAQCBoYXNoX3NlcV9zZWFyY2go SEFTSF9TRVFfU1RBVFVTICpzdGF0dXMpCiAJCXN0YXR1cy0+Y3VyRW50cnkgPSBjdXJFbGVt LT5saW5rOwogCQlpZiAoc3RhdHVzLT5jdXJFbnRyeSA9PSBOVUxMKQkvKiBlbmQgb2YgdGhp cyBidWNrZXQgKi8KIAkJCSsrc3RhdHVzLT5jdXJCdWNrZXQ7Ci0JCXJldHVybiAodm9pZCAq KSBFTEVNRU5US0VZKGN1ckVsZW0pOworCQlyZXR1cm4gRUxFTUVOVEtFWShjdXJFbGVtKTsK IAl9CiAKIAkvKgpAQCAtMTUwNyw3ICsxNTA3LDcgQEAgaGFzaF9zZXFfc2VhcmNoKEhBU0hf U0VRX1NUQVRVUyAqc3RhdHVzKQogCWlmIChzdGF0dXMtPmN1ckVudHJ5ID09IE5VTEwpCS8q IGVuZCBvZiB0aGlzIGJ1Y2tldCAqLwogCQkrK2N1ckJ1Y2tldDsKIAlzdGF0dXMtPmN1ckJ1 Y2tldCA9IGN1ckJ1Y2tldDsKLQlyZXR1cm4gKHZvaWQgKikgRUxFTUVOVEtFWShjdXJFbGVt KTsKKwlyZXR1cm4gRUxFTUVOVEtFWShjdXJFbGVtKTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9tY3h0LmMgYi9zcmMvYmFja2VuZC91dGlscy9t bWdyL21jeHQuYwppbmRleCBiZGU1NDMyNmM2Ni4uNzBkMzMyMjZjYjkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvbWN4dC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L21tZ3IvbWN4dC5jCkBAIC04ODYsNyArODg2LDcgQEAgTWVtb3J5Q29udGV4dFN0YXRzSW50 ZXJuYWwoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBpbnQgbGV2ZWwsCiAJLyogRXhhbWluZSB0 aGUgY29udGV4dCBpdHNlbGYgKi8KIAljb250ZXh0LT5tZXRob2RzLT5zdGF0cyhjb250ZXh0 LAogCQkJCQkJCU1lbW9yeUNvbnRleHRTdGF0c1ByaW50LAotCQkJCQkJCSh2b2lkICopICZs ZXZlbCwKKwkJCQkJCQkmbGV2ZWwsCiAJCQkJCQkJdG90YWxzLCBwcmludF90b19zdGRlcnIp OwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0 dmFyaWFudHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0dmFyaWFudHMu YwppbmRleCA1NTgzMDljOTg1MC4uZTA3YmE0ZWE0YjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0dmFyaWFudHMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMKQEAgLTY2NCw3ICs2NjQsNyBAQCB0dXBs ZXNvcnRfcHV0dHVwbGVzbG90KFR1cGxlc29ydHN0YXRlICpzdGF0ZSwgVHVwbGVUYWJsZVNs b3QgKnNsb3QpCiAKIAkvKiBjb3B5IHRoZSB0dXBsZSBpbnRvIHNvcnQgc3RvcmFnZSAqLwog CXR1cGxlID0gRXhlY0NvcHlTbG90TWluaW1hbFR1cGxlKHNsb3QpOwotCXN0dXAudHVwbGUg PSAodm9pZCAqKSB0dXBsZTsKKwlzdHVwLnR1cGxlID0gdHVwbGU7CiAJLyogc2V0IHVwIGZp cnN0LWNvbHVtbiBrZXkgdmFsdWUgKi8KIAlodHVwLnRfbGVuID0gdHVwbGUtPnRfbGVuICsg TUlOSU1BTF9UVVBMRV9PRkZTRVQ7CiAJaHR1cC50X2RhdGEgPSAoSGVhcFR1cGxlSGVhZGVy KSAoKGNoYXIgKikgdHVwbGUgLSBNSU5JTUFMX1RVUExFX09GRlNFVCk7CkBAIC03MDIsNyAr NzAyLDcgQEAgdHVwbGVzb3J0X3B1dGhlYXB0dXBsZShUdXBsZXNvcnRzdGF0ZSAqc3RhdGUs IEhlYXBUdXBsZSB0dXApCiAKIAkvKiBjb3B5IHRoZSB0dXBsZSBpbnRvIHNvcnQgc3RvcmFn ZSAqLwogCXR1cCA9IGhlYXBfY29weXR1cGxlKHR1cCk7Ci0Jc3R1cC50dXBsZSA9ICh2b2lk ICopIHR1cDsKKwlzdHVwLnR1cGxlID0gdHVwOwogCiAJLyoKIAkgKiBzZXQgdXAgZmlyc3Qt Y29sdW1uIGtleSB2YWx1ZSwgYW5kIHBvdGVudGlhbGx5IGFiYnJldmlhdGUsIGlmIGl0J3Mg YQpAQCAtMTE3NSw3ICsxMTc1LDcgQEAgcmVhZHR1cF9oZWFwKFR1cGxlc29ydHN0YXRlICpz dGF0ZSwgU29ydFR1cGxlICpzdHVwLAogCUxvZ2ljYWxUYXBlUmVhZEV4YWN0KHRhcGUsIHR1 cGJvZHksIHR1cGJvZHlsZW4pOwogCWlmIChiYXNlLT5zb3J0b3B0ICYgVFVQTEVTT1JUX1JB TkRPTUFDQ0VTUykgLyogbmVlZCB0cmFpbGluZyBsZW5ndGggd29yZD8gKi8KIAkJTG9naWNh bFRhcGVSZWFkRXhhY3QodGFwZSwgJnR1cGxlbiwgc2l6ZW9mKHR1cGxlbikpOwotCXN0dXAt PnR1cGxlID0gKHZvaWQgKikgdHVwbGU7CisJc3R1cC0+dHVwbGUgPSB0dXBsZTsKIAkvKiBz ZXQgdXAgZmlyc3QtY29sdW1uIGtleSB2YWx1ZSAqLwogCWh0dXAudF9sZW4gPSB0dXBsZS0+ dF9sZW4gKyBNSU5JTUFMX1RVUExFX09GRlNFVDsKIAlodHVwLnRfZGF0YSA9IChIZWFwVHVw bGVIZWFkZXIpICgoY2hhciAqKSB0dXBsZSAtIE1JTklNQUxfVFVQTEVfT0ZGU0VUKTsKQEAg LTEzNzIsNyArMTM3Miw3IEBAIHJlYWR0dXBfY2x1c3RlcihUdXBsZXNvcnRzdGF0ZSAqc3Rh dGUsIFNvcnRUdXBsZSAqc3R1cCwKIAlMb2dpY2FsVGFwZVJlYWRFeGFjdCh0YXBlLCB0dXBs ZS0+dF9kYXRhLCB0dXBsZS0+dF9sZW4pOwogCWlmIChiYXNlLT5zb3J0b3B0ICYgVFVQTEVT T1JUX1JBTkRPTUFDQ0VTUykgLyogbmVlZCB0cmFpbGluZyBsZW5ndGggd29yZD8gKi8KIAkJ TG9naWNhbFRhcGVSZWFkRXhhY3QodGFwZSwgJnR1cGxlbiwgc2l6ZW9mKHR1cGxlbikpOwot CXN0dXAtPnR1cGxlID0gKHZvaWQgKikgdHVwbGU7CisJc3R1cC0+dHVwbGUgPSB0dXBsZTsK IAkvKiBzZXQgdXAgZmlyc3QtY29sdW1uIGtleSB2YWx1ZSwgaWYgaXQncyBhIHNpbXBsZSBj b2x1bW4gKi8KIAlpZiAoYmFzZS0+aGF2ZURhdHVtMSkKIAkJc3R1cC0+ZGF0dW0xID0gaGVh cF9nZXRhdHRyKHR1cGxlLApAQCAtMTY4MSw3ICsxNjgxLDcgQEAgcmVhZHR1cF9pbmRleChU dXBsZXNvcnRzdGF0ZSAqc3RhdGUsIFNvcnRUdXBsZSAqc3R1cCwKIAlMb2dpY2FsVGFwZVJl YWRFeGFjdCh0YXBlLCB0dXBsZSwgdHVwbGVuKTsKIAlpZiAoYmFzZS0+c29ydG9wdCAmIFRV UExFU09SVF9SQU5ET01BQ0NFU1MpIC8qIG5lZWQgdHJhaWxpbmcgbGVuZ3RoIHdvcmQ/ICov CiAJCUxvZ2ljYWxUYXBlUmVhZEV4YWN0KHRhcGUsICZ0dXBsZW4sIHNpemVvZih0dXBsZW4p KTsKLQlzdHVwLT50dXBsZSA9ICh2b2lkICopIHR1cGxlOworCXN0dXAtPnR1cGxlID0gdHVw bGU7CiAJLyogc2V0IHVwIGZpcnN0LWNvbHVtbiBrZXkgdmFsdWUgKi8KIAlzdHVwLT5kYXR1 bTEgPSBpbmRleF9nZXRhdHRyKHR1cGxlLAogCQkJCQkJCQkgMSwKQEAgLTE3NTcsNyArMTc1 Nyw3IEBAIHJlYWR0dXBfaW5kZXhfYnJpbihUdXBsZXNvcnRzdGF0ZSAqc3RhdGUsIFNvcnRU dXBsZSAqc3R1cCwKIAlMb2dpY2FsVGFwZVJlYWRFeGFjdCh0YXBlLCAmdHVwbGUtPnR1cGxl LCB0dXBsZW4pOwogCWlmIChiYXNlLT5zb3J0b3B0ICYgVFVQTEVTT1JUX1JBTkRPTUFDQ0VT UykgLyogbmVlZCB0cmFpbGluZyBsZW5ndGggd29yZD8gKi8KIAkJTG9naWNhbFRhcGVSZWFk RXhhY3QodGFwZSwgJnR1cGxlbiwgc2l6ZW9mKHR1cGxlbikpOwotCXN0dXAtPnR1cGxlID0g KHZvaWQgKikgdHVwbGU7CisJc3R1cC0+dHVwbGUgPSB0dXBsZTsKIAogCS8qIHNldCB1cCBm aXJzdC1jb2x1bW4ga2V5IHZhbHVlLCB3aGljaCBpcyBibG9jayBudW1iZXIgKi8KIAlzdHVw LT5kYXR1bTEgPSB0dXBsZS0+dHVwbGUuYnRfYmxrbm87CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9zb3J0L3R1cGxlc3RvcmUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQv dHVwbGVzdG9yZS5jCmluZGV4IGE3MjBkNzAyMDAxLi42MmM5OGRlMjA4NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMKQEAgLTc1MSw3ICs3NTEsNyBAQCB0dXBsZXN0 b3JlX3B1dHR1cGxlc2xvdChUdXBsZXN0b3Jlc3RhdGUgKnN0YXRlLAogCXR1cGxlID0gRXhl Y0NvcHlTbG90TWluaW1hbFR1cGxlKHNsb3QpOwogCVVTRU1FTShzdGF0ZSwgR2V0TWVtb3J5 Q2h1bmtTcGFjZSh0dXBsZSkpOwogCi0JdHVwbGVzdG9yZV9wdXR0dXBsZV9jb21tb24oc3Rh dGUsICh2b2lkICopIHR1cGxlKTsKKwl0dXBsZXN0b3JlX3B1dHR1cGxlX2NvbW1vbihzdGF0 ZSwgdHVwbGUpOwogCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiB9CkBAIC03 NzEsNyArNzcxLDcgQEAgdHVwbGVzdG9yZV9wdXR0dXBsZShUdXBsZXN0b3Jlc3RhdGUgKnN0 YXRlLCBIZWFwVHVwbGUgdHVwbGUpCiAJICovCiAJdHVwbGUgPSBDT1BZVFVQKHN0YXRlLCB0 dXBsZSk7CiAKLQl0dXBsZXN0b3JlX3B1dHR1cGxlX2NvbW1vbihzdGF0ZSwgKHZvaWQgKikg dHVwbGUpOworCXR1cGxlc3RvcmVfcHV0dHVwbGVfY29tbW9uKHN0YXRlLCB0dXBsZSk7CiAK IAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIH0KQEAgLTc5MCw3ICs3OTAsNyBA QCB0dXBsZXN0b3JlX3B1dHZhbHVlcyhUdXBsZXN0b3Jlc3RhdGUgKnN0YXRlLCBUdXBsZURl c2MgdGRlc2MsCiAJdHVwbGUgPSBoZWFwX2Zvcm1fbWluaW1hbF90dXBsZSh0ZGVzYywgdmFs dWVzLCBpc251bGwpOwogCVVTRU1FTShzdGF0ZSwgR2V0TWVtb3J5Q2h1bmtTcGFjZSh0dXBs ZSkpOwogCi0JdHVwbGVzdG9yZV9wdXR0dXBsZV9jb21tb24oc3RhdGUsICh2b2lkICopIHR1 cGxlKTsKKwl0dXBsZXN0b3JlX3B1dHR1cGxlX2NvbW1vbihzdGF0ZSwgdHVwbGUpOwogCiAJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiB9CkBAIC0xNTkyLDcgKzE1OTIsNyBA QCBjb3B5dHVwX2hlYXAoVHVwbGVzdG9yZXN0YXRlICpzdGF0ZSwgdm9pZCAqdHVwKQogCiAJ dHVwbGUgPSBtaW5pbWFsX3R1cGxlX2Zyb21faGVhcF90dXBsZSgoSGVhcFR1cGxlKSB0dXAp OwogCVVTRU1FTShzdGF0ZSwgR2V0TWVtb3J5Q2h1bmtTcGFjZSh0dXBsZSkpOwotCXJldHVy biAodm9pZCAqKSB0dXBsZTsKKwlyZXR1cm4gdHVwbGU7CiB9CiAKIHN0YXRpYyB2b2lkCkBA IC0xNjI5LDUgKzE2MjksNSBAQCByZWFkdHVwX2hlYXAoVHVwbGVzdG9yZXN0YXRlICpzdGF0 ZSwgdW5zaWduZWQgaW50IGxlbikKIAlCdWZGaWxlUmVhZEV4YWN0KHN0YXRlLT5teWZpbGUs IHR1cGJvZHksIHR1cGJvZHlsZW4pOwogCWlmIChzdGF0ZS0+YmFja3dhcmQpCQkvKiBuZWVk IHRyYWlsaW5nIGxlbmd0aCB3b3JkPyAqLwogCQlCdWZGaWxlUmVhZEV4YWN0KHN0YXRlLT5t eWZpbGUsICZ0dXBsZW4sIHNpemVvZih0dXBsZW4pKTsKLQlyZXR1cm4gKHZvaWQgKikgdHVw bGU7CisJcmV0dXJuIHR1cGxlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZl ci5jCmluZGV4IDhjMjBjMjYzYzRiLi4zMWVlYWQ5ZTc2YSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMTQ2Miw3ICsxNDYyLDcgQEAgU3RhcnRSZXN0b3Jl TE8oQXJjaGl2ZUhhbmRsZSAqQUgsIE9pZCBvaWQsIGJvb2wgZHJvcCkKIAl7CiAJCS8qIEZp cnN0IHRpbWUgdGhyb3VnaCAoaW4gdGhpcyBwcm9jZXNzKSBzbyBhbGxvY2F0ZSB0aGUgYnVm ZmVyICovCiAJCUFILT5sb19idWZfc2l6ZSA9IExPQkJVRlNJWkU7Ci0JCUFILT5sb19idWYg PSAodm9pZCAqKSBwZ19tYWxsb2MoTE9CQlVGU0laRSk7CisJCUFILT5sb19idWYgPSBwZ19t YWxsb2MoTE9CQlVGU0laRSk7CiAJfQogCUFILT5sb19idWZfdXNlZCA9IDA7CiAKQEAgLTIx NzgsNyArMjE3OCw3IEBAIFJlYWRTdHIoQXJjaGl2ZUhhbmRsZSAqQUgpCiAJZWxzZQogCXsK IAkJYnVmID0gKGNoYXIgKikgcGdfbWFsbG9jKGwgKyAxKTsKLQkJQUgtPlJlYWRCdWZQdHIo QUgsICh2b2lkICopIGJ1ZiwgbCk7CisJCUFILT5SZWFkQnVmUHRyKEFILCBidWYsIGwpOwog CiAJCWJ1ZltsXSA9ICdcMCc7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9jdXN0b20uYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfY3VzdG9tLmMK aW5kZXggNTUxMDdiMjAwNTguLmQyMWM3ZTBlYWVmIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2N1c3RvbS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfY3VzdG9tLmMKQEAgLTEzOCw3ICsxMzgsNyBAQCBJbml0QXJjaGl2ZUZtdF9DdXN0b20o QXJjaGl2ZUhhbmRsZSAqQUgpCiAKIAkvKiBTZXQgdXAgYSBwcml2YXRlIGFyZWEuICovCiAJ Y3R4ID0gKGxjbENvbnRleHQgKikgcGdfbWFsbG9jMChzaXplb2YobGNsQ29udGV4dCkpOwot CUFILT5mb3JtYXREYXRhID0gKHZvaWQgKikgY3R4OworCUFILT5mb3JtYXREYXRhID0gY3R4 OwogCiAJLyoKIAkgKiBOb3cgb3BlbiB0aGUgZmlsZQpAQCAtMjA2LDcgKzIwNiw3IEBAIF9B cmNoaXZlRW50cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSkKIAllbHNlCiAJ CWN0eC0+ZGF0YVN0YXRlID0gS19PRkZTRVRfTk9fREFUQTsKIAotCXRlLT5mb3JtYXREYXRh ID0gKHZvaWQgKikgY3R4OworCXRlLT5mb3JtYXREYXRhID0gY3R4OwogfQogCiAvKgpAQCAt MjQyLDcgKzI0Miw3IEBAIF9SZWFkRXh0cmFUb2MoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0Vu dHJ5ICp0ZSkKIAlpZiAoY3R4ID09IE5VTEwpCiAJewogCQljdHggPSAobGNsVG9jRW50cnkg KikgcGdfbWFsbG9jMChzaXplb2YobGNsVG9jRW50cnkpKTsKLQkJdGUtPmZvcm1hdERhdGEg PSAodm9pZCAqKSBjdHg7CisJCXRlLT5mb3JtYXREYXRhID0gY3R4OwogCX0KIAogCWN0eC0+ ZGF0YVN0YXRlID0gUmVhZE9mZnNldChBSCwgJihjdHgtPmRhdGFQb3MpKTsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2RpcmVjdG9yeS5jCmluZGV4IDdiZThkNTQ4N2Q0Li5jYjgyZjg3 MzRlZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kaXJlY3Rvcnku YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RpcmVjdG9yeS5jCkBAIC0xNDAs NyArMTQwLDcgQEAgSW5pdEFyY2hpdmVGbXRfRGlyZWN0b3J5KEFyY2hpdmVIYW5kbGUgKkFI KQogCiAJLyogU2V0IHVwIG91ciBwcml2YXRlIGNvbnRleHQgKi8KIAljdHggPSAobGNsQ29u dGV4dCAqKSBwZ19tYWxsb2MwKHNpemVvZihsY2xDb250ZXh0KSk7Ci0JQUgtPmZvcm1hdERh dGEgPSAodm9pZCAqKSBjdHg7CisJQUgtPmZvcm1hdERhdGEgPSBjdHg7CiAKIAljdHgtPmRh dGFGSCA9IE5VTEw7CiAJY3R4LT5MT3NUb2NGSCA9IE5VTEw7CkBAIC0yNDYsNyArMjQ2LDcg QEAgX0FyY2hpdmVFbnRyeShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogCWVs c2UKIAkJdGN0eC0+ZmlsZW5hbWUgPSBOVUxMOwogCi0JdGUtPmZvcm1hdERhdGEgPSAodm9p ZCAqKSB0Y3R4OworCXRlLT5mb3JtYXREYXRhID0gdGN0eDsKIH0KIAogLyoKQEAgLTI4NSw3 ICsyODUsNyBAQCBfUmVhZEV4dHJhVG9jKEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAq dGUpCiAJaWYgKHRjdHggPT0gTlVMTCkKIAl7CiAJCXRjdHggPSAobGNsVG9jRW50cnkgKikg cGdfbWFsbG9jMChzaXplb2YobGNsVG9jRW50cnkpKTsKLQkJdGUtPmZvcm1hdERhdGEgPSAo dm9pZCAqKSB0Y3R4OworCQl0ZS0+Zm9ybWF0RGF0YSA9IHRjdHg7CiAJfQogCiAJdGN0eC0+ ZmlsZW5hbWUgPSBSZWFkU3RyKEFIKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXBfdGFyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jCmluZGV4 IDQxZWU1MmIxZDY5Li5iNWJhM2I0NmRkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF90YXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5j CkBAIC0xNTIsNyArMTUyLDcgQEAgSW5pdEFyY2hpdmVGbXRfVGFyKEFyY2hpdmVIYW5kbGUg KkFIKQogCSAqIFNldCB1cCBzb21lIHNwZWNpYWwgY29udGV4dCB1c2VkIGluIGNvbXByZXNz aW5nIGRhdGEuCiAJICovCiAJY3R4ID0gcGdfbWFsbG9jMF9vYmplY3QobGNsQ29udGV4dCk7 Ci0JQUgtPmZvcm1hdERhdGEgPSAodm9pZCAqKSBjdHg7CisJQUgtPmZvcm1hdERhdGEgPSBj dHg7CiAJY3R4LT5maWxlUG9zID0gMDsKIAljdHgtPmlzU3BlY2lhbFNjcmlwdCA9IDA7CiAK QEAgLTIxOSw3ICsyMTksNyBAQCBJbml0QXJjaGl2ZUZtdF9UYXIoQXJjaGl2ZUhhbmRsZSAq QUgpCiAKIAkJY3R4LT5oYXNTZWVrID0gY2hlY2tTZWVrKGN0eC0+dGFyRkgpOwogCi0JCWN0 eC0+RkggPSAodm9pZCAqKSB0YXJPcGVuKEFILCAidG9jLmRhdCIsICdyJyk7CisJCWN0eC0+ RkggPSB0YXJPcGVuKEFILCAidG9jLmRhdCIsICdyJyk7CiAJCVJlYWRIZWFkKEFIKTsKIAkJ UmVhZFRvYyhBSCk7CiAJCXRhckNsb3NlKEFILCBjdHgtPkZIKTsJLyogTm90aGluZyBlbHNl IGluIHRoZSBmaWxlLi4uICovCkBAIC0yNDcsNyArMjQ3LDcgQEAgX0FyY2hpdmVFbnRyeShB cmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogCQljdHgtPmZpbGVuYW1lID0gTlVM TDsKIAkJY3R4LT5USCA9IE5VTEw7CiAJfQotCXRlLT5mb3JtYXREYXRhID0gKHZvaWQgKikg Y3R4OworCXRlLT5mb3JtYXREYXRhID0gY3R4OwogfQogCiBzdGF0aWMgdm9pZApAQCAtMjY5 LDcgKzI2OSw3IEBAIF9SZWFkRXh0cmFUb2MoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5 ICp0ZSkKIAlpZiAoY3R4ID09IE5VTEwpCiAJewogCQljdHggPSBwZ19tYWxsb2MwX29iamVj dChsY2xUb2NFbnRyeSk7Ci0JCXRlLT5mb3JtYXREYXRhID0gKHZvaWQgKikgY3R4OworCQl0 ZS0+Zm9ybWF0RGF0YSA9IGN0eDsKIAl9CiAKIAljdHgtPmZpbGVuYW1lID0gUmVhZFN0cihB SCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvbWFpbmxvb3AuYyBiL3NyYy9iaW4vcHNx bC9tYWlubG9vcC5jCmluZGV4IGMyNGUzOGQ5ODhjLi40Y2Y1NjAzMzUzZCAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL21haW5sb29wLmMKKysrIGIvc3JjL2Jpbi9wc3FsL21haW5sb29w LmMKQEAgLTY5LDcgKzY5LDcgQEAgTWFpbkxvb3AoRklMRSAqc291cmNlKQogCS8qIENyZWF0 ZSB3b3JraW5nIHN0YXRlICovCiAJc2Nhbl9zdGF0ZSA9IHBzcWxfc2Nhbl9jcmVhdGUoJnBz cWxzY2FuX2NhbGxiYWNrcyk7CiAJY29uZF9zdGFjayA9IGNvbmRpdGlvbmFsX3N0YWNrX2Ny ZWF0ZSgpOwotCXBzcWxfc2Nhbl9zZXRfcGFzc3Rocm91Z2goc2Nhbl9zdGF0ZSwgKHZvaWQg KikgY29uZF9zdGFjayk7CisJcHNxbF9zY2FuX3NldF9wYXNzdGhyb3VnaChzY2FuX3N0YXRl LCBjb25kX3N0YWNrKTsKIAogCXF1ZXJ5X2J1ZiA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAJ cHJldmlvdXNfYnVmID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9zdGFydHVwLmMgYi9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCmluZGV4IDAzNmNh YWVjMmZmLi5kYjMwZGRjOTRkYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAu YworKysgYi9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCkBAIC0zOTksNyArMzk5LDcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJCQkJCQljZWxsLT52YWwsIHN0cmxlbihj ZWxsLT52YWwpLAogCQkJCQkJCQlwc2V0LmVuY29kaW5nLCBzdGFuZGFyZF9zdHJpbmdzKCkp OwogCQkJCWNvbmRfc3RhY2sgPSBjb25kaXRpb25hbF9zdGFja19jcmVhdGUoKTsKLQkJCQlw c3FsX3NjYW5fc2V0X3Bhc3N0aHJvdWdoKHNjYW5fc3RhdGUsICh2b2lkICopIGNvbmRfc3Rh Y2spOworCQkJCXBzcWxfc2Nhbl9zZXRfcGFzc3Rocm91Z2goc2Nhbl9zdGF0ZSwgY29uZF9z dGFjayk7CiAKIAkJCQlzdWNjZXNzUmVzdWx0ID0gSGFuZGxlU2xhc2hDbWRzKHNjYW5fc3Rh dGUsCiAJCQkJCQkJCQkJCQljb25kX3N0YWNrLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y29tbW9uL3BnX3BybmcuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wZ19wcm5nLmgKaW5kZXgg YzExNGM2NDE5ZDAuLjQ5ZmM2Y2ZjNTBiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21t b24vcGdfcHJuZy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wZ19wcm5nLmgKQEAgLTQ0 LDcgKzQ0LDcgQEAgZXh0ZXJuIGJvb2wgcGdfcHJuZ19zZWVkX2NoZWNrKHBnX3Bybmdfc3Rh dGUgKnN0YXRlKTsKICAqIHBnX3N0cm9uZ19yYW5kb20uYyBhbmQgdGhlbmNlIE9wZW5TU0wu CiAgKi8KICNkZWZpbmUgcGdfcHJuZ19zdHJvbmdfc2VlZChzdGF0ZSkgXAotCShwZ19zdHJv bmdfcmFuZG9tKCh2b2lkICopIChzdGF0ZSksIHNpemVvZihwZ19wcm5nX3N0YXRlKSkgPyBc CisJKHBnX3N0cm9uZ19yYW5kb20oc3RhdGUsIHNpemVvZihwZ19wcm5nX3N0YXRlKSkgPyBc CiAJIHBnX3Bybmdfc2VlZF9jaGVjayhzdGF0ZSkgOiBmYWxzZSkKIAogZXh0ZXJuIHVpbnQ2 NCBwZ19wcm5nX3VpbnQ2NChwZ19wcm5nX3N0YXRlICpzdGF0ZSk7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMv ZWNwZy9lY3BnbGliL2Nvbm5lY3QuYwppbmRleCBiMjRiMzEwY2U1OS4uMmJiYjcwMzMzZGMg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9jb25uZWN0LmMKKysr IGIvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2Nvbm5lY3QuYwpAQCAtNjY3LDcgKzY2 Nyw3IEBAIEVDUEdjb25uZWN0KGludCBsaW5lbm8sIGludCBjLCBjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICp1c2VyLCBjb25zdCBjaGFyICpwCiAKIAl0aGlzLT5hdXRvY29tbWl0 ID0gYXV0b2NvbW1pdDsKIAotCVBRc2V0Tm90aWNlUmVjZWl2ZXIodGhpcy0+Y29ubmVjdGlv biwgJkVDUEdub3RpY2VSZWNlaXZlciwgKHZvaWQgKikgdGhpcyk7CisJUFFzZXROb3RpY2VS ZWNlaXZlcih0aGlzLT5jb25uZWN0aW9uLCAmRUNQR25vdGljZVJlY2VpdmVyLCB0aGlzKTsK IAogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9l Y3BnbGliL2Rlc2NyaXB0b3IuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNj cmlwdG9yLmMKaW5kZXggYWQyNzllMjQ1YzQuLjFlYzk0ZTYyNGI3IDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZGVzY3JpcHRvci5jCisrKyBiL3NyYy9pbnRl cmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMKQEAgLTQzNSw3ICs0MzUsNyBAQCBF Q1BHZ2V0X2Rlc2MoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5k ZXgsLi4uKQogCQkJCS8qIGFsbG9jYXRlIHN0b3JhZ2UgaWYgbmVlZGVkICovCiAJCQkJaWYg KGFycnNpemUgPT0gMCAmJiAqKHZvaWQgKiopIHZhciA9PSBOVUxMKQogCQkJCXsKLQkJCQkJ dm9pZAkgICAqbWVtID0gKHZvaWQgKikgZWNwZ19hdXRvX2FsbG9jKG9mZnNldCAqIG50dXBs ZXMsIGxpbmVubyk7CisJCQkJCXZvaWQJICAgKm1lbSA9IGVjcGdfYXV0b19hbGxvYyhvZmZz ZXQgKiBudHVwbGVzLCBsaW5lbm8pOwogCiAJCQkJCWlmICghbWVtKQogCQkJCQl7CkBAIC01 NDAsNyArNTQwLDcgQEAgRUNQR2dldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRl c2NfbmFtZSwgaW50IGluZGV4LC4uLikKIAkJLyogYWxsb2NhdGUgc3RvcmFnZSBpZiBuZWVk ZWQgKi8KIAkJaWYgKGRhdGFfdmFyLmluZF9hcnJzaXplID09IDAgJiYgZGF0YV92YXIuaW5k X3ZhbHVlID09IE5VTEwpCiAJCXsKLQkJCXZvaWQJICAgKm1lbSA9ICh2b2lkICopIGVjcGdf YXV0b19hbGxvYyhkYXRhX3Zhci5pbmRfb2Zmc2V0ICogbnR1cGxlcywgbGluZW5vKTsKKwkJ CXZvaWQJICAgKm1lbSA9IGVjcGdfYXV0b19hbGxvYyhkYXRhX3Zhci5pbmRfb2Zmc2V0ICog bnR1cGxlcywgbGluZW5vKTsKIAogCQkJaWYgKCFtZW0pCiAJCQl7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWVtb3J5LmMgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL2VjcGdsaWIvbWVtb3J5LmMKaW5kZXggYTgzNjM3YWM3NTguLjY5NzliZTJjOTg4IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWVtb3J5LmMKKysrIGIv c3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL21lbW9yeS5jCkBAIC0xMDAsNyArMTAwLDcg QEAgc2V0X2F1dG9fYWxsb2NzKHN0cnVjdCBhdXRvX21lbSAqYW0pCiBjaGFyICoKIGVjcGdf YXV0b19hbGxvYyhsb25nIHNpemUsIGludCBsaW5lbm8pCiB7Ci0Jdm9pZAkgICAqcHRyID0g KHZvaWQgKikgZWNwZ19hbGxvYyhzaXplLCBsaW5lbm8pOworCXZvaWQJICAgKnB0ciA9IGVj cGdfYWxsb2Moc2l6ZSwgbGluZW5vKTsKIAogCWlmICghcHRyKQogCQlyZXR1cm4gTlVMTDsK ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9jb21wLmMgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfY29tcC5jCmluZGV4IDU2MzNlM2M3OTA1Li42MjU1YTg2ZDc1YiAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYworKysgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfY29tcC5jCkBAIC0yMjksNyArMjI5LDcgQEAgcGxwZ3NxbF9jb21waWxl KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGZvclZhbGlkYXRvcikKIAkvKgogCSAq IFNhdmUgcG9pbnRlciBpbiBGbWdySW5mbyB0byBhdm9pZCBzZWFyY2ggb24gc3Vic2VxdWVu dCBjYWxscwogCSAqLwotCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9ICh2b2lkICopIGZ1 bmN0aW9uOworCWZjaW5mby0+ZmxpbmZvLT5mbl9leHRyYSA9IGZ1bmN0aW9uOwogCiAJLyoK IAkgKiBGaW5hbGx5IHJldHVybiB0aGUgY29tcGlsZWQgZnVuY3Rpb24KQEAgLTEwNzksNyAr MTA3OSw3IEBAIHBscGdzcWxfcGFyc2VyX3NldHVwKHN0cnVjdCBQYXJzZVN0YXRlICpwc3Rh dGUsIFBMcGdTUUxfZXhwciAqZXhwcikKIAlwc3RhdGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9v ayA9IHBscGdzcWxfcG9zdF9jb2x1bW5fcmVmOwogCXBzdGF0ZS0+cF9wYXJhbXJlZl9ob29r ID0gcGxwZ3NxbF9wYXJhbV9yZWY7CiAJLyogbm8gbmVlZCB0byB1c2UgcF9jb2VyY2VfcGFy YW1faG9vayAqLwotCXBzdGF0ZS0+cF9yZWZfaG9va19zdGF0ZSA9ICh2b2lkICopIGV4cHI7 CisJcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlID0gZXhwcjsKIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCmluZGV4IDg2YzViZDMyNGE5Li5lMzEyMDZlN2Y0YyAxMDA2NDQKLS0tIGEv c3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCkBAIC04NjMsNyArODYzLDcgQEAgY29lcmNlX2Z1bmN0aW9uX3Jlc3VsdF90 dXBsZShQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBUdXBsZURlc2MgdHVwZGVzYykKIAog CQkJcmVzdWx0c2l6ZSA9IEVPSF9nZXRfZmxhdF9zaXplKCZlcmgtPmhkcik7CiAJCQl0dXBo ZHIgPSAoSGVhcFR1cGxlSGVhZGVyKSBTUElfcGFsbG9jKHJlc3VsdHNpemUpOwotCQkJRU9I X2ZsYXR0ZW5faW50bygmZXJoLT5oZHIsICh2b2lkICopIHR1cGhkciwgcmVzdWx0c2l6ZSk7 CisJCQlFT0hfZmxhdHRlbl9pbnRvKCZlcmgtPmhkciwgdHVwaGRyLCByZXN1bHRzaXplKTsK IAkJCUhlYXBUdXBsZUhlYWRlclNldFR5cGVJZCh0dXBoZHIsIHR1cGRlc2MtPnRkdHlwZWlk KTsKIAkJCUhlYXBUdXBsZUhlYWRlclNldFR5cE1vZCh0dXBoZHIsIHR1cGRlc2MtPnRkdHlw bW9kKTsKIAkJCWVzdGF0ZS0+cmV0dmFsID0gUG9pbnRlckdldERhdHVtKHR1cGhkcik7CkBA IC00MDI2LDcgKzQwMjYsNyBAQCBwbHBnc3FsX2VzdGF0ZV9zZXR1cChQTHBnU1FMX2V4ZWNz dGF0ZSAqZXN0YXRlLAogCS8qIGluaXRpYWxpemUgb3VyIFBhcmFtTGlzdEluZm8gd2l0aCBh cHByb3ByaWF0ZSBob29rIGZ1bmN0aW9ucyAqLwogCWVzdGF0ZS0+cGFyYW1MSSA9IG1ha2VQ YXJhbUxpc3QoMCk7CiAJZXN0YXRlLT5wYXJhbUxJLT5wYXJhbUZldGNoID0gcGxwZ3NxbF9w YXJhbV9mZXRjaDsKLQllc3RhdGUtPnBhcmFtTEktPnBhcmFtRmV0Y2hBcmcgPSAodm9pZCAq KSBlc3RhdGU7CisJZXN0YXRlLT5wYXJhbUxJLT5wYXJhbUZldGNoQXJnID0gZXN0YXRlOwog CWVzdGF0ZS0+cGFyYW1MSS0+cGFyYW1Db21waWxlID0gcGxwZ3NxbF9wYXJhbV9jb21waWxl OwogCWVzdGF0ZS0+cGFyYW1MSS0+cGFyYW1Db21waWxlQXJnID0gTlVMTDsJLyogbm90IG5l ZWRlZCAqLwogCWVzdGF0ZS0+cGFyYW1MSS0+cGFyc2VyU2V0dXAgPSAoUGFyc2VyU2V0dXBI b29rKSBwbHBnc3FsX3BhcnNlcl9zZXR1cDsKQEAgLTQxODUsNyArNDE4NSw3IEBAIGV4ZWNf cHJlcGFyZV9wbGFuKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJICovCiAJbWVtc2V0 KCZvcHRpb25zLCAwLCBzaXplb2Yob3B0aW9ucykpOwogCW9wdGlvbnMucGFyc2VyU2V0dXAg PSAoUGFyc2VyU2V0dXBIb29rKSBwbHBnc3FsX3BhcnNlcl9zZXR1cDsKLQlvcHRpb25zLnBh cnNlclNldHVwQXJnID0gKHZvaWQgKikgZXhwcjsKKwlvcHRpb25zLnBhcnNlclNldHVwQXJn ID0gZXhwcjsKIAlvcHRpb25zLnBhcnNlTW9kZSA9IGV4cHItPnBhcnNlTW9kZTsKIAlvcHRp b25zLmN1cnNvck9wdGlvbnMgPSBjdXJzb3JPcHRpb25zOwogCXBsYW4gPSBTUElfcHJlcGFy ZV9leHRlbmRlZChleHByLT5xdWVyeSwgJm9wdGlvbnMpOwpAQCAtNjE3Miw3ICs2MTcyLDcg QEAgZXhlY19ldmFsX3NpbXBsZV9leHByKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJ ICogcG9zc2libHkgc2V0dGluZyBlY3h0X3BhcmFtX2xpc3RfaW5mbyB0byBOVUxMOyB3ZSd2 ZSBhbHJlYWR5IGZvcmNlZCB1c2UKIAkgKiBvZiBhIGdlbmVyaWMgcGxhbi4KIAkgKi8KLQlw YXJhbUxJLT5wYXJzZXJTZXR1cEFyZyA9ICh2b2lkICopIGV4cHI7CisJcGFyYW1MSS0+cGFy c2VyU2V0dXBBcmcgPSBleHByOwogCWVjb250ZXh0LT5lY3h0X3BhcmFtX2xpc3RfaW5mbyA9 IHBhcmFtTEk7CiAKIAkvKgpAQCAtNjI4MSw3ICs2MjgxLDcgQEAgc2V0dXBfcGFyYW1fbGlz dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCSAq IENhbGxlcnMgbXVzdCBzYXZlIGFuZCByZXN0b3JlIHBhcnNlclNldHVwQXJnIGlmIHRoZXJl IGlzIGFueSBjaGFuY2UKIAkJICogdGhhdCB0aGV5IGFyZSBpbnRlcnJ1cHRpbmcgYW4gYWN0 aXZlIHVzZSBvZiBwYXJhbWV0ZXJzLgogCQkgKi8KLQkJcGFyYW1MSS0+cGFyc2VyU2V0dXBB cmcgPSAodm9pZCAqKSBleHByOworCQlwYXJhbUxJLT5wYXJzZXJTZXR1cEFyZyA9IGV4cHI7 CiAKIAkJLyoKIAkJICogQWxzbyBtYWtlIHN1cmUgdGhpcyBpcyBzZXQgYmVmb3JlIHBhcnNl ciBob29rcyBuZWVkIGl0LiAgVGhlcmUgaXMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9oYW5kbGVyLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfaGFuZGxlci5jCmlu ZGV4IGFkZmJiYzhhN2I3Li5iMThhM2QwYjk3YiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2hhbmRsZXIuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfaGFuZGxl ci5jCkBAIC0xMTgsNyArMTE4LDcgQEAgcGxwZ3NxbF9leHRyYV9jaGVja3NfY2hlY2tfaG9v ayhjaGFyICoqbmV3dmFsdWUsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAlp ZiAoIW15ZXh0cmEpCiAJCXJldHVybiBmYWxzZTsKIAkqbXlleHRyYSA9IGV4dHJhY2hlY2tz OwotCSpleHRyYSA9ICh2b2lkICopIG15ZXh0cmE7CisJKmV4dHJhID0gbXlleHRyYTsKIAog CXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0aG9uL3BscHlfZXhl Yy5jIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfZXhlYy5jCmluZGV4IDlkNTk0NzNkNmFkLi4w ZTg0YmI5MDgyOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3BscHlfZXhlYy5jCisr KyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2V4ZWMuYwpAQCAtODAsMTAgKzgwLDEwIEBAIFBM eV9leGVjX2Z1bmN0aW9uKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBQTHlQcm9jZWR1cmUg KnByb2MpCiAJCQkJCQkJCQkJICAgc2l6ZW9mKFBMeVNSRlN0YXRlKSk7CiAJCQkJLyogSW1t ZWRpYXRlbHkgcmVnaXN0ZXIgY2xlYW51cCBjYWxsYmFjayAqLwogCQkJCXNyZnN0YXRlLT5j YWxsYmFjay5mdW5jID0gcGxweXRob25fc3JmX2NsZWFudXBfY2FsbGJhY2s7Ci0JCQkJc3Jm c3RhdGUtPmNhbGxiYWNrLmFyZyA9ICh2b2lkICopIHNyZnN0YXRlOworCQkJCXNyZnN0YXRl LT5jYWxsYmFjay5hcmcgPSBzcmZzdGF0ZTsKIAkJCQlNZW1vcnlDb250ZXh0UmVnaXN0ZXJS ZXNldENhbGxiYWNrKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCwKIAkJCQkJCQkJ CQkJCSAgICZzcmZzdGF0ZS0+Y2FsbGJhY2spOwotCQkJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9 ICh2b2lkICopIHNyZnN0YXRlOworCQkJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IHNyZnN0YXRl OwogCQkJfQogCQkJLyogRXZlcnkgY2FsbCBzZXR1cCAqLwogCQkJZnVuY2N0eCA9IFNSRl9Q RVJDQUxMX1NFVFVQKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9udGVzdGVyLmMgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9udGVzdGVyLmMKaW5k ZXggMGIzNDJiNWMyYmIuLmUwMWMwYzlkZTkzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29s YXRpb24vaXNvbGF0aW9udGVzdGVyLmMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xh dGlvbnRlc3Rlci5jCkBAIC0xNzgsNyArMTc4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCWlmIChpICE9IDApCiAJCQlQUXNldE5vdGljZVByb2Nlc3Nvcihjb25uc1tp XS5jb25uLAogCQkJCQkJCQkgaXNvdGVzdGVyTm90aWNlUHJvY2Vzc29yLAotCQkJCQkJCQkg KHZvaWQgKikgJmNvbm5zW2ldKTsKKwkJCQkJCQkJICZjb25uc1tpXSk7CiAJCWVsc2UKIAkJ CVBRc2V0Tm90aWNlUHJvY2Vzc29yKGNvbm5zW2ldLmNvbm4sCiAJCQkJCQkJCSBibGFja2hv bGVOb3RpY2VQcm9jZXNzb3IsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf cmVnZXgvdGVzdF9yZWdleC5jIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3JlZ2V4L3Rlc3Rf cmVnZXguYwppbmRleCBjZDUwM2EyY2Q4MS4uYTc4MGM2NzhmYmMgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9yZWdleC90ZXN0X3JlZ2V4LmMKKysrIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X3JlZ2V4L3Rlc3RfcmVnZXguYwpAQCAtMTEzLDcgKzExMyw3IEBAIHRl c3RfcmVnZXgoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCQkgIChtYXRjaGN0eC0+bnBh dHRlcm5zICsgMSkpOwogCiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK LQkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gKHZvaWQgKikgbWF0Y2hjdHg7CisJCWZ1bmNjdHgt PnVzZXJfZmN0eCA9IG1hdGNoY3R4OwogCiAJCS8qCiAJCSAqIFJldHVybiB0aGUgZmlyc3Qg cmVzdWx0IHJvdywgd2hpY2ggaXMgaW5mbyBlcXVpdmFsZW50IHRvIFRjbCdzCgpiYXNlLWNv bW1pdDogNGI3YmJhNDllNzEyNjZlYzM3OGU2NzJhMWFhYTlmMTY4MjM0NDljMgotLSAKMi40 Ny4wCgo= --------------TvOaHqIqEspDcL9Ce0p9WT2z--