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.96) (envelope-from ) id 1w833Q-000ABi-1q for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 21:24:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w833O-002N1f-2o for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 21:24:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1w833O-002N1W-0D for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 21:24:46 +0000 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from <3danissimo@gmail.com>) id 1w833J-000000004lV-46xH for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 21:24:45 +0000 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-79a60975dc5so2252107b3.0 for ; Wed, 01 Apr 2026 14:24:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775078681; cv=none; d=google.com; s=arc-20240605; b=lf+lmNpU7c7xiYWLZ/1D7n/qaKyT13BM0ePoCC0ifdNvpzPpUOFVQtRcGabQBYK2IC nZUwBTmWxI7vcURsUTQX0EmvBz16M4WiPLhHgSxB6SJGNpm+lqp/JHmfdU67uuSt4h9E NN4+UaFRVn0iztnxvWCn2P4j5w6DGCQ1ZludsfNNMGfIoJPFQbr6wcG1lUXvzdEHTxLc v1LsmQ9/A0yuBRVlLtronFHsJjMxJB8JyaB8BTRSol1Df5MpJXjmfjpwi8jeKW1plqnG zEUwu3o01OP9ntXEp5bMYMLxwBj/zU4qufXMGFNo+70z2BX9yov1P9YsPMHllds52DUL 5zHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=9Xg5bV041FtpGP3PPTvmvMQos1q3GEoOk12m6Ud513s=; fh=bAdIFI688YaiNjUKfnaXbe1AbM7tCnbyQVcQm7hINdU=; b=IG59Mj5YlEpcW8kLV0JJJjll0qn7pDqd3lbrsPFsFo3xwWdkj5krwURnM9SRmd14Ru GDOnA96kzwAUWUg6hpKp2EJMtbeEzf6lEGl310w8R6xZ9YjmCnJWvCCBVTGCfMf5LlK8 2RHpy/W6TdAxT8jTTCCyF/Qi4Jabxu8T89f8EvqJ7YuCnU0fma/4o6lUeINAj+85T+C2 QB9m5H5OghwhTLo4c0Px3ky68q1FpKyxn9Xe7UhbyLN1DxnuMoDRzrDSTjDgA1p9WiTO bd+525ZSTZizrIjbuMZ9QI5bpht3PuJVrZ840hl2MBoxz53mYuHh7b2Olc1to8TJWrPz gZgQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775078681; x=1775683481; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=9Xg5bV041FtpGP3PPTvmvMQos1q3GEoOk12m6Ud513s=; b=Kz7sazYFIobjQ4Qrzox25Iig//j5OVYWW1hR6B367yrkyaW6PbOLnCYxv6a8rf7FNR 3JyYeEjYfBFWLAKe+ZYCjdEffQywgoZX2gIr+xMFadas4UjzMRVCPEdaGyA10SbqbpQe Z0ydVVOzcmrn63lGcLKjWQWjH+D5K2+u6DG7P+Ruc7zNp2ECxDjMmhncoZrNhoEmjE5y Z4DTMDGwdco57p8Re02McATI2Ly5NQnb5Fyj3neP2hsZL57ZWFHjLrjfs+qrMLR+XKLr cJa57W01ncXwtG/BaoztXu94fC87A0OOmaVVEKZANN8YXBwTlsRe2xeXYFkK+gc8CCph Cfzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775078681; x=1775683481; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9Xg5bV041FtpGP3PPTvmvMQos1q3GEoOk12m6Ud513s=; b=ocAuous3X72dWDeedQRasSmVFxoEapc5XHfjzcF40I3Tj7WmgFK2Bm9f/l/jze4qz2 9SJY1GXyzq8b3iW64awW/lJn+gqy4mYHHFsX7La2Z5Y0e0Je+PMzIjOyv4SO6gu6SDTt n0kbnJEsGyv+akOjTDq+25yMzl9sULbdpTCWIxfTswORrT+Y+mUrI496DO7GS/tpIlF/ ZMgzh64D/sEkpGQINVZb9pI0OFukpKtnr3L4vCTbrZZeb6CYhBxaeESEqX6+4rruwsIT lyr2APUiUq3EZh485QNxRBXie8mO0WdNy33eeIB4BFIi0I7CEqphIG1+0FUCJrEXv5eI RVDw== X-Forwarded-Encrypted: i=1; AJvYcCWF96amDjlfH2Bn81KW5DTEmTxClDZrKfPTcwHLgD32iXSqd/dcE43pV9wfIRldH5iufib8ke1PtcihTZez@lists.postgresql.org X-Gm-Message-State: AOJu0YwxCdUUJBqzxaquBm2smuqOOYTjRGzpygHizpY2q81YeBZ+FW0+ Yy5ee+HlfLsz8IPcEAnxPQ1p83oot8pvcQRiHpZnDPERefZBXpOc4D2XQMxFH04uMgdoEek6bQy hP4PSx1JbQj9Jttcj6COb99QevjSvPBg= X-Gm-Gg: ATEYQzxK1pn+zn1z2VZwY3xGZW562B0uNggN748Boz2ZvsAkZF3Q7HD/8A14gUtleTl u8OAMTxz7wHzx8Ql8Q0IiH4zfATSy5yvheD9CFBui8XffPqFacduWOufC9Egx3nFlVKRhtciARm GWE2FxBiybtNPT2utK72MKNhkptptmk0sVwCTNtlAj4e8TAAICWGB+YVx+6UnBHVDTC7hqPvQdA mUzNAFHA4alTHcpNJmoLNbCyXQQWo5O5R2vF6BcOUmbewrsxWdl4AfzS4wblW669uNv5Xyd+n23 i1tSGmoK+N4LTmNBqQ== X-Received: by 2002:a05:690c:c196:b0:79c:3750:48a3 with SMTP id 00721157ae682-7a212b26c55mr53430427b3.53.1775078681289; Wed, 01 Apr 2026 14:24:41 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Thu, 2 Apr 2026 04:24:29 +0700 X-Gm-Features: AQROBzAuhGYeLxkKyLPL7Krp-wh-LkcSeqYcXSDxG4CWtrbucX0h-syoevs7Maw Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Alexander Korotkov Cc: Masahiko Sawada , SATYANARAYANA NARLAPURAM , Bharath Rupireddy , Sami Imseih , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000003f770f064e6cb6eb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003f770f064e6cb6eb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Wed, Apr 1, 2026 at 7:10=E2=80=AFPM Alexander Korotkov wrote: > > Thank you for your work on this subject! I've some notes about the patch= . > Thank you very much for the review! > 1) The changes in guc.c allows autovacuum parallel leader to accept > changes in not just cost-based GUCs, but any GUCs. That should be no > problem, because parallel workers have their own copies of GUC > variables, but I think this worth comment. OK, I will clarify it in the code. > 2) Maximum value for autovacuum_parallel_workers reloption is defined > as literally 1024, while max value for autovacuum_max_parallel_workers > is defined as MAX_PARALLEL_WORKER_LIMIT (also 1024). Should we define > max value for reloption as MAX_PARALLEL_WORKER_LIMIT as well? I agree. > 3) Some paragraphs were moved from vacuum.sgml to maintenance.sgml. > It particular it references class=3D"parameter">integer option syntax: (PARALLEL integer). Now it becoming unclear and needs > to be revised. Good catch! You are right. > 4) I also think maintenance.sgml should mention the new reloption. Do you mean that we should mention it in the "parallel-vacuum" chapter? If = so, I think that we should also mention that max_parallel_maintenance_workers c= an affect the parallel degree of manual VACUUM command. Yes, we have already written about this in the description of the PARALLEL option. But now the "vacuum-parallel" chapter doesn't mention limiting by GUC for manual VACUUM= and limiting by reloption for autovacuum. IMHO it is better to have redundancy = than an incomplete description. > 5) I think it worth having a test which check that setting > autovacuum_parallel_workers to 0 disables the parallel autovacuum for > given table. I see that VACUUM (PARALLEL) doesn't have such a test. Both manual VACUUM a= nd autovacuum have similar logic with parallelism disabling. Is the increase i= n test completion time really worth checking these logic? I don't mind adding= a new test, actually. Just want to make sure that this is necessary. > 6) Minor grammar issue in PVSharedCostParams comment, it must be > "vacuum workers compare" (plural subject). Yep, I'll fix it. Please, see an updated patch. -- Best regards, Daniil Davydov --0000000000003f770f064e6cb6eb Content-Type: text/x-patch; charset="US-ASCII"; name="v36-0001-Allow-autovacuum-to-use-parallel-vacuum-workers.patch" Content-Disposition: attachment; filename="v36-0001-Allow-autovacuum-to-use-parallel-vacuum-workers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mngjzahc0 RnJvbSBhN2Q2YmJhOTA1Mjg4NTg5NmZiZTJlZDdhNjAxODdkY2VjYTY5NTQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjE4OjA5ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzZdIEFsbG93IGF1dG92YWN1dW0gdG8gdXNlIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXJzLgoK UHJldmlvdXNseSwgYXV0b3ZhY3V1bSBhbHdheXMgZGlzYWJsZWQgcGFyYWxsZWwgdmFjdXVtIHJl Z2FyZGxlc3Mgb2YKdGhlIHRhYmxlJ3MgaW5kZXggY291bnQgb3IgY29uZmlndXJhdGlvbi4gVGhp cyBjb21taXQgZW5hYmxlcwphdXRvdmFjdXVtIHdvcmtlcnMgdG8gdXNlIHBhcmFsbGVsIGluZGV4 IHZhY3V1bWluZyBhbmQgaW5kZXggY2xlYW51cCwKdXNpbmcgdGhlIHNhbWUgcGFyYWxsZWwgdmFj dXVtIGluZnJhc3RydWN0dXJlIGFzIG1hbnVhbCBWQUNVVU0uCgpUd28gbmV3IGNvbmZpZ3VyYXRp b24gb3B0aW9ucyBjb250cm9sIHRoZSBmZWF0dXJlLiBUaGUgR1VDCmF1dG92YWN1dW1fbWF4X3Bh cmFsbGVsX3dvcmtlcnMgc2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwKd29ya2Vy cyBhIHNpbmdsZSBhdXRvdmFjdXVtIHdvcmtlciBtYXkgbGF1bmNoOyBpdCBkZWZhdWx0cyB0byAw LApwcmVzZXJ2aW5nIGV4aXN0aW5nIGJlaGF2aW9yIHVubGVzcyBleHBsaWNpdGx5IGVuYWJsZWQu IFRoZSBwZXItdGFibGUKc3RvcmFnZSBwYXJhbWV0ZXIgYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3Jr ZXJzIHByb3ZpZGVzIHBlci10YWJsZSBsaW1pdHMuCkEgdmFsdWUgb2YgMCBkaXNhYmxlcyBwYXJh bGxlbCB2YWN1dW0gZm9yIHRoZSB0YWJsZSwgYSBwb3NpdGl2ZSB2YWx1ZQpjYXBzIHRoZSB3b3Jr ZXIgY291bnQgKHN0aWxsIGJvdW5kZWQgYnkgdGhlIEdVQyksIGFuZCAtMSAodGhlIGRlZmF1bHQp CmRlZmVycyB0byB0aGUgR1VDLgoKVG8gaGFuZGxlIGNhc2VzIHdoZXJlIGF1dG92YWN1dW0gd29y a2VycyByZWNlaXZlIGEgU0lHSFVQIGFuZCB1cGRhdGUKdGhlaXIgY29zdC1iYXNlZCB2YWN1dW0g ZGVsYXkgcGFyYW1ldGVycyBtaWQtb3BlcmF0aW9uLCBhIG5ldwpwcm9wYWdhdGlvbiBtZWNoYW5p c20gaXMgYWRkZWQgdG8gdmFjdXVtcGFyYWxsZWwuYy4gVGhlIGxlYWRlciBzdG9yZXMKaXRzIGVm ZmVjdGl2ZSBjb3N0IHBhcmFtZXRlcnMgaW4gYSBEU00gc2VnbWVudC4gUGFyYWxsZWwgdmFjdXVt CndvcmtlcnMgcG9sbCBmb3IgY2hhbmdlcyBpbiB2YWN1dW1fZGVsYXlfcG9pbnQoKTsgaWYgYW4g dXBkYXRlIGlzCmRldGVjdGVkLCB0aGV5IGFwcGx5IHRoZSBuZXcgdmFsdWVzIGxvY2FsbHkgdmlh IFZhY3V1bVVwZGF0ZUNvc3RzKCkuCgpBIG5ldyB0ZXN0IG1vZHVsZSwgc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2F1dG92YWN1dW0sIGlzIGFkZGVkIHRvCnZlcmlmeSB0aGF0IHBhcmFsbGVsIGF1dG92 YWN1dW0gd29ya2VycyBhcmUgY29ycmVuY3RseSBsYXVuY2hlZCBhbmQKdGhhdCBjb3N0LXBhcmFt ZXRlciB1cGRhdGVzIGFyZSBwcm9wYWdhdGVkIGFzIGV4cGVjdGVkLgoKQXV0aG9yOiBEYW5paWwg RGF2eWRvdiA8M2Rhbmlzc2ltb0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBNYXNhaGlrbyBTYXdh ZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFNhbWkgSW1zZWloIDxzYW1p bXNlaWhAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEgPG1hdGhldXNz c2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEJoYXJhdGggUnVwaXJlZGR5IDxiaGFyYXRo LnJ1cGlyZWRkeWZvcnBvc3RncmVzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBL b3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiB6ZW5nbWFuIDx6ZW5n bWFuQGhhbG9kYnRlY2guY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0c9 ZXpaT3JOc3VMb0VUTEQxZ0Fzd1pNdUgybkdHcTdPZ2NjMFFPRTVoaFdhdz1jd0BtYWlsLmdtYWls LmNvbQotLS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8 ICAyNCArKwogZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwgICAgICAgICAgICAgICAgIHwg IDMzICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwg IDE2ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5zZ21sICAgICAgICAgICAgICAgICAgfCAg MjMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8ICAx MiArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMTIg Kwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAgICAgICAgIHwgIDIxICst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAyMjMgKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyAgICAg ICAgICAgfCAgMjUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jICAgICAgICAgICAgICAg ICAgfCAgMTAgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0ICAg ICB8ICAgOCArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUg fCAgIDEgKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAg MiArCiBzcmMvaW5jbHVkZS9taXNjYWRtaW4uaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsK IHNyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZSAgIHwgICAyICsKIHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlICAgICB8ICAyMCArKwogc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQgIHwgIDE1ICsrCiAuLi4vdC8w MDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbCAgICAgICAgICAgICAgfCAxOTcgKysrKysrKysrKysr KysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAx ICsKIDI0IGZpbGVzIGNoYW5nZWQsIDYxOSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS8uZ2l0 aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9tZXNvbi5idWlsZAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5k ZXggMjI5ZjQxMzUzZWIuLjUyMGMzOGU4MmE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0yOTE4LDYgKzI5MTgs NyBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgICA8cGFyYT4KICAgICAgICAgIFdoZW4g Y2hhbmdpbmcgdGhpcyB2YWx1ZSwgY29uc2lkZXIgYWxzbyBhZGp1c3RpbmcKICAgICAgICAgIDx4 cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIvPiwKKyAgICAgICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+LAogICAgICAg ICAgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC1tYWludGVuYW5jZS13b3JrZXJzIi8+ LCBhbmQKICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2Vycy1w ZXItZ2F0aGVyIi8+LgogICAgICAgICA8L3BhcmE+CkBAIC05NDg1LDYgKzk0ODYsMjkgQEAgQ09Q WSBwb3N0Z3Jlc19sb2cgRlJPTSAnL2Z1bGwvcGF0aC90by9sb2dmaWxlLmNzdicgV0lUSCBjc3Y7 CiAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIgeHJlZmxh YmVsPSJhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIj4KKyAgICAgICAgPHRlcm0+PHZh cm5hbWU+YXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczwvdmFybmFtZT4gKDx0eXBlPmlu dGVnZXI8L3R5cGU+KQorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+PHZh cm5hbWU+YXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczwvdmFybmFtZT48L3ByaW1hcnk+ CisgICAgICAgICA8c2Vjb25kYXJ5PmNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9zZWNvbmRhcnk+ CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8L3Rlcm0+CisgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9m IHBhcmFsbGVsIHdvcmtlcnMgdGhhdCBjYW4gYmUgdXNlZCBieSBhCisgICAgICAgICAgc2luZ2xl IGF1dG92YWN1dW0gd29ya2VyIHRvIHByb2Nlc3MgaW5kZXhlcy4gVGhpcyBsaW1pdCBhcHBsaWVz CisgICAgICAgICAgc3BlY2lmaWNhbGx5IHRvIHRoZSBpbmRleCB2YWN1dW1pbmcgYW5kIGluZGV4 IGNsZWFudXAgcGhhc2VzIChmb3IgdGhlCisgICAgICAgICAgZGV0YWlscyBvZiBlYWNoIGF1dG92 YWN1dW0gcGhhc2UsIHBsZWFzZSByZWZlciB0byA8eHJlZiBsaW5rZW5kPSJ2YWN1dW0tcGhhc2Vz Ii8+KS4KKyAgICAgICAgICBUaGUgYWN0dWFsIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIGlz IGZ1cnRoZXIgbGltaXRlZCBieQorICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFy YWxsZWwtd29ya2VycyIvPi4gVGhpcyBpcyB0aGUKKyAgICAgICAgICBwZXItYXV0b3ZhY3V1bSB3 b3JrZXIgZXF1aXZhbGVudCBvZiB0aGUgPGxpdGVyYWw+UEFSQUxMRUw8L2xpdGVyYWw+CisgICAg ICAgICAgb3B0aW9uIG9mIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtdmFjdXVtIj48Y29tbWFuZD5W QUNVVU08L2NvbW1hbmQ+PC9saW5rPgorICAgICAgICAgIGNvbW1hbmQuIFNldHRpbmcgdGhpcyB2 YWx1ZSB0byAwIGRpc2FibGVzIHBhcmFsbGVsIHZhY3V1bSBkdXJpbmcgYXV0b3ZhY3V1bS4KKyAg ICAgICAgICBUaGUgZGVmYXVsdCBpcyAwLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8L3ZhcmlhYmxlbGlzdD4KICAg ICA8L3NlY3QyPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCmluZGV4IDBkMmEyODIwN2VkLi44ODRhYzg5 ODA2NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKQEAgLTEwMzgsNiArMTAzOCwxMCBAQCBhbmFseXpl IHRocmVzaG9sZCA9IGFuYWx5emUgYmFzZSB0aHJlc2hvbGQgKyBhbmFseXplIHNjYWxlIGZhY3Rv ciAqIG51bWJlciBvZiB0dQogICAgIHBlci10YWJsZSA8bGl0ZXJhbD5hdXRvdmFjdXVtX3ZhY3V1 bV9jb3N0X2RlbGF5PC9saXRlcmFsPiBvcgogICAgIDxsaXRlcmFsPmF1dG92YWN1dW1fdmFjdXVt X2Nvc3RfbGltaXQ8L2xpdGVyYWw+IHN0b3JhZ2UgcGFyYW1ldGVycyBoYXZlIGJlZW4gc2V0CiAg ICAgYXJlIG5vdCBjb25zaWRlcmVkIGluIHRoZSBiYWxhbmNpbmcgYWxnb3JpdGhtLgorICAgIFBh cmFsbGVsIHdvcmtlcnMgbGF1bmNoZWQgZm9yIDx4cmVmIGxpbmtlbmQ9InBhcmFsbGVsLXZhY3V1 bSIvPiBhcmUgdXNpbmcKKyAgICB0aGUgc2FtZSBjb3N0IGRlbGF5IHBhcmFtZXRlcnMgYXMgdGhl IGxlYWRlciB3b3JrZXIuIElmIGFueSBvZiB0aGVzZQorICAgIHBhcmFtZXRlcnMgYXJlIGNoYW5n ZWQgaW4gdGhlIGxlYWRlciB3b3JrZXIsIGl0IHdpbGwgcHJvcGFnYXRlIHRoZSBuZXcKKyAgICBw YXJhbWV0ZXIgdmFsdWVzIHRvIGFsbCBvZiBpdHMgcGFyYWxsZWwgd29ya2Vycy4KICAgIDwvcGFy YT4KIAogICAgPHBhcmE+CkBAIC0xMTY2LDYgKzExNzAsMzUgQEAgYW5hbHl6ZSB0aHJlc2hvbGQg PSBhbmFseXplIGJhc2UgdGhyZXNob2xkICsgYW5hbHl6ZSBzY2FsZSBmYWN0b3IgKiBudW1iZXIg b2YgdHUKICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgogICA8L3NlY3QyPgorCisgIDxzZWN0MiBp ZD0icGFyYWxsZWwtdmFjdXVtIiB4cmVmbGFiZWw9IlBhcmFsbGVsIFZhY3V1bSI+CisgICA8dGl0 bGU+UGFyYWxsZWwgVmFjdXVtPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgPGNvbW1hbmQ+VkFD VVVNPC9jb21tYW5kPiBjYW4gcGVyZm9ybSBpbmRleCB2YWN1dW1pbmcgYW5kIGluZGV4IGNsZWFu dXAKKyAgICBwaGFzZXMgaW4gcGFyYWxsZWwgdXNpbmcgYmFja2dyb3VuZCB3b3JrZXJzIChmb3Ig dGhlIGRldGFpbHMgb2YgZWFjaAorICAgIHZhY3V1bSBwaGFzZSwgcGxlYXNlIHJlZmVyIHRvIDx4 cmVmIGxpbmtlbmQ9InZhY3V1bS1waGFzZXMiLz4pLiBUaGUKKyAgICBkZWdyZWUgb2YgcGFyYWxs ZWxpc20gaXMgZGV0ZXJtaW5lZCBieSB0aGUgbnVtYmVyIG9mIGluZGV4ZXMgb24gdGhlCisgICAg cmVsYXRpb24gdGhhdCBzdXBwb3J0IHBhcmFsbGVsIHZhY3V1bS4gIEZvciBtYW51YWwgPGNvbW1h bmQ+VkFDVVVNPC9jb21tYW5kPgorICAgIGl0IGlzIGxpbWl0ZWQgYnkgdGhlIDxsaXRlcmFsPlBB UkFMTEVMPC9saXRlcmFsPiBvcHRpb24gaWYgYW55IHdoaWNoIGlzCisgICAgZnVydGhlciBsaW1p dGVkIGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtbWFpbnRlbmFuY2Utd29ya2Vy cyIvPi4KKyAgICBGb3IgYXV0b3ZhY3V1bSBpdCBpcyBsaW1pdGVkIGJ5IHRoZSA8eHJlZiBsaW5r ZW5kPSJndWMtYXV0b3ZhY3V1bS1tYXgtd29ya2VycyIvPgorICAgIHJlbG9wdGlvbiBpZiBzcGVj aWZpZWQgd2hpY2ggaXMgZnVydGhlciBsaW1pdGVkIGJ5CisgICAgPHhyZWYgbGlua2VuZD0iZ3Vj LWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4gcGFyYW1ldGVyLiAgUGxlYXNlCisg ICAgbm90ZSB0aGF0IGl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIG51bWJlciBvZiBwYXJh bGxlbCB3b3JrZXJzIHRoYXQgd2FzCisgICAgY2FsY3VsYXRlZCB3aWxsIGJlIHVzZWQgZHVyaW5n IGV4ZWN1dGlvbi4gIEl0IGlzIHBvc3NpYmxlIGZvciBhIHZhY3V1bSB0bworICAgIHJ1biB3aXRo IGZld2VyIHdvcmtlcnMgdGhhbiBzcGVjaWZpZWQsIG9yIGV2ZW4gd2l0aCBubyB3b3JrZXJzIGF0 IGFsbC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQW4gaW5kZXggY2FuIHBhcnRpY2lw YXRlIGluIHBhcmFsbGVsIHZhY3V1bSBpZiBhbmQgb25seSBpZiB0aGUgc2l6ZSBvZiB0aGUKKyAg ICBpbmRleCBpcyBtb3JlIHRoYW4gPHhyZWYgbGlua2VuZD0iZ3VjLW1pbi1wYXJhbGxlbC1pbmRl eC1zY2FuLXNpemUiLz4uCisgICAgT25seSBvbmUgd29ya2VyIGNhbiBiZSB1c2VkIHBlciBpbmRl eC4gIFNvIHBhcmFsbGVsIHdvcmtlcnMgYXJlIGxhdW5jaGVkCisgICAgb25seSB3aGVuIHRoZXJl IGFyZSBhdCBsZWFzdCA8bGl0ZXJhbD4yPC9saXRlcmFsPiBpbmRleGVzIGluIHRoZSB0YWJsZS4K KyAgICBXb3JrZXJzIGZvciB2YWN1dW0gYXJlIGxhdW5jaGVkIGJlZm9yZSB0aGUgc3RhcnQgb2Yg ZWFjaCBwaGFzZSBhbmQgZXhpdCBhdAorICAgIHRoZSBlbmQgb2YgdGhlIHBoYXNlLiAgVGhlc2Ug YmVoYXZpb3JzIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgPC9wYXJhPgor ICA8L3NlY3QyPgogIDwvc2VjdDE+CiAKIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5k ZXggODA4MjliMjM5NDUuLmUzNDI1ODVjN2YwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNn bWwKQEAgLTE3MzgsNiArMTczOCwyMiBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICA8dmFybGlzdGVudHJ5IGlkPSJyZWxv cHRpb24tYXV0b3ZhY3V1bS1wYXJhbGxlbC13b3JrZXJzIiB4cmVmbGFiZWw9ImF1dG92YWN1dW1f cGFyYWxsZWxfd29ya2VycyI+CisgICAgPHRlcm0+PGxpdGVyYWw+YXV0b3ZhY3V1bV9wYXJhbGxl bF93b3JrZXJzPC9saXRlcmFsPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgPGluZGV4dGVy bT4KKyAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzPC92 YXJuYW1lPiBzdG9yYWdlIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICA8L2luZGV4dGVybT4KKyAg ICA8L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUGVyLXRhYmxl IHZhbHVlIGZvciA8eHJlZiBsaW5rZW5kPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29y a2VycyIvPgorICAgICAgIHBhcmFtZXRlci4gSWYgLTEgaXMgc3BlY2lmaWVkLCA8dmFybmFtZT5h dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzPC92YXJuYW1lPgorICAgICAgIHZhbHVlIHdp bGwgYmUgdXNlZC4gSWYgc2V0IHRvIDAsIHBhcmFsbGVsIHZhY3V1bSBpcyBkaXNhYmxlZCBmb3IK KyAgICAgICB0aGlzIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAtMS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRy eSBpZD0icmVsb3B0aW9uLWF1dG92YWN1dW0tdmFjdXVtLXRocmVzaG9sZCIgeHJlZmxhYmVsPSJh dXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiPgogICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92YWN1 dW1fdmFjdXVtX3RocmVzaG9sZDwvbGl0ZXJhbD4sIDxsaXRlcmFsPnRvYXN0LmF1dG92YWN1dW1f dmFjdXVtX3RocmVzaG9sZDwvbGl0ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQogICAgIDxp bmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi92YWN1dW0uc2dtbAppbmRleCBhYzVkMDgzZDQ2OC4uMzhlZTk3M2VhMDUg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvdmFjdXVtLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi92YWN1dW0uc2dtbApAQCAtODEsNyArODEsNyBAQCBWQUNVVU0gWyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSBb IDxyZQogICAgaXMgbm90IG9idGFpbmVkLiAgSG93ZXZlciwgZXh0cmEgc3BhY2UgaXMgbm90IHJl dHVybmVkIHRvIHRoZSBvcGVyYXRpbmcKICAgIHN5c3RlbSAoaW4gbW9zdCBjYXNlcyk7IGl0J3Mg anVzdCBrZXB0IGF2YWlsYWJsZSBmb3IgcmUtdXNlIHdpdGhpbiB0aGUKICAgIHNhbWUgdGFibGUu ICBJdCBhbHNvIGFsbG93cyB1cyB0byBsZXZlcmFnZSBtdWx0aXBsZSBDUFVzIGluIG9yZGVyIHRv IHByb2Nlc3MKLSAgIGluZGV4ZXMuICBUaGlzIGZlYXR1cmUgaXMga25vd24gYXMgPGZpcnN0dGVy bT5wYXJhbGxlbCB2YWN1dW08L2ZpcnN0dGVybT4uCisgICBpbmRleGVzLiAgVGhpcyBmZWF0dXJl IGlzIGtub3duIGFzIDxmaXJzdHRlcm0+PHhyZWYgbGlua2VuZD0icGFyYWxsZWwtdmFjdXVtIi8+ PC9maXJzdHRlcm0+LgogICAgVG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUsIG9uZSBjYW4gdXNlIDxs aXRlcmFsPlBBUkFMTEVMPC9saXRlcmFsPiBvcHRpb24gYW5kCiAgICBzcGVjaWZ5IHBhcmFsbGVs IHdvcmtlcnMgYXMgemVyby4gIDxjb21tYW5kPlZBQ1VVTSBGVUxMPC9jb21tYW5kPiByZXdyaXRl cwogICAgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgdGFibGUgaW50byBhIG5ldyBkaXNrIGZp bGUgd2l0aCBubyBleHRyYSBzcGFjZSwKQEAgLTI2NiwyNCArMjY2LDkgQEAgVkFDVVVNIFsgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4u XSApIF0gWyA8cmUKICAgICA8dGVybT48bGl0ZXJhbD5QQVJBTExFTDwvbGl0ZXJhbD48L3Rlcm0+ CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFBlcmZvcm0gaW5kZXggdmFjdXVt IGFuZCBpbmRleCBjbGVhbnVwIHBoYXNlcyBvZiA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+Ci0g ICAgICBpbiBwYXJhbGxlbCB1c2luZyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW50 ZWdlcjwvcmVwbGFjZWFibGU+Ci0gICAgICBiYWNrZ3JvdW5kIHdvcmtlcnMgKGZvciB0aGUgZGV0 YWlscyBvZiBlYWNoIHZhY3V1bSBwaGFzZSwgcGxlYXNlCi0gICAgICByZWZlciB0byA8eHJlZiBs aW5rZW5kPSJ2YWN1dW0tcGhhc2VzIi8+KS4gIFRoZSBudW1iZXIgb2Ygd29ya2VycyB1c2VkCi0g ICAgICB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24gaXMgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBp bmRleGVzIG9uIHRoZQotICAgICAgcmVsYXRpb24gdGhhdCBzdXBwb3J0IHBhcmFsbGVsIHZhY3V1 bSB3aGljaCBpcyBsaW1pdGVkIGJ5IHRoZSBudW1iZXIgb2YKLSAgICAgIHdvcmtlcnMgc3BlY2lm aWVkIHdpdGggPGxpdGVyYWw+UEFSQUxMRUw8L2xpdGVyYWw+IG9wdGlvbiBpZiBhbnkgd2hpY2gg aXMKLSAgICAgIGZ1cnRoZXIgbGltaXRlZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFs bGVsLW1haW50ZW5hbmNlLXdvcmtlcnMiLz4uCi0gICAgICBBbiBpbmRleCBjYW4gcGFydGljaXBh dGUgaW4gcGFyYWxsZWwgdmFjdXVtIGlmIGFuZCBvbmx5IGlmIHRoZSBzaXplIG9mIHRoZQotICAg ICAgaW5kZXggaXMgbW9yZSB0aGFuIDx4cmVmIGxpbmtlbmQ9Imd1Yy1taW4tcGFyYWxsZWwtaW5k ZXgtc2Nhbi1zaXplIi8+LgotICAgICAgUGxlYXNlIG5vdGUgdGhhdCBpdCBpcyBub3QgZ3VhcmFu dGVlZCB0aGF0IHRoZSBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycwotICAgICAgc3BlY2lmaWVk IGluIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbnRlZ2VyPC9yZXBsYWNlYWJsZT4g d2lsbCBiZQotICAgICAgdXNlZCBkdXJpbmcgZXhlY3V0aW9uLiAgSXQgaXMgcG9zc2libGUgZm9y IGEgdmFjdXVtIHRvIHJ1biB3aXRoIGZld2VyCi0gICAgICB3b3JrZXJzIHRoYW4gc3BlY2lmaWVk LCBvciBldmVuIHdpdGggbm8gd29ya2VycyBhdCBhbGwuICBPbmx5IG9uZSB3b3JrZXIKLSAgICAg IGNhbiBiZSB1c2VkIHBlciBpbmRleC4gIFNvIHBhcmFsbGVsIHdvcmtlcnMgYXJlIGxhdW5jaGVk IG9ubHkgd2hlbiB0aGVyZQotICAgICAgYXJlIGF0IGxlYXN0IDxsaXRlcmFsPjI8L2xpdGVyYWw+ IGluZGV4ZXMgaW4gdGhlIHRhYmxlLiAgV29ya2VycyBmb3IKLSAgICAgIHZhY3V1bSBhcmUgbGF1 bmNoZWQgYmVmb3JlIHRoZSBzdGFydCBvZiBlYWNoIHBoYXNlIGFuZCBleGl0IGF0IHRoZSBlbmQg b2YKLSAgICAgIHRoZSBwaGFzZS4gIFRoZXNlIGJlaGF2aW9ycyBtaWdodCBjaGFuZ2UgaW4gYSBm dXR1cmUgcmVsZWFzZS4gIFRoaXMKKyAgICAgIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIg b2YgcGFyYWxsZWwgd29ya2VycyB0aGF0IGNhbiBiZSB1c2VkCisgICAgICBmb3IgPHhyZWYgbGlu a2VuZD0icGFyYWxsZWwtdmFjdXVtIi8+LCB3aGljaCBpcyBmdXJ0aGVyIGxpbWl0ZWQKKyAgICAg IGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtbWFpbnRlbmFuY2Utd29ya2VycyIv Pi4gVGhpcwogICAgICAgb3B0aW9uIGNhbid0IGJlIHVzZWQgd2l0aCB0aGUgPGxpdGVyYWw+RlVM TDwvbGl0ZXJhbD4gb3B0aW9uLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5kZXggYjQxZWFmZDc2OTEuLmQ2NzVkNTI1 MzFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwpAQCAtMjgsNiArMjgs NyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh Ymxlc3BhY2UuaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKKyNpbmNsdWRlICJwb3N0 bWFzdGVyL2Jnd29ya2VyX2ludGVybmFscy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgog I2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYXR0b3B0Y2FjaGUuaCIK QEAgLTIzNiw2ICsyMzcsMTUgQEAgc3RhdGljIHJlbG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAkJ fSwKIAkJU1BHSVNUX0RFRkFVTFRfRklMTEZBQ1RPUiwgU1BHSVNUX01JTl9GSUxMRkFDVE9SLCAx MDAKIAl9LAorCXsKKwkJeworCQkJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCisJCQki TWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQgY2FuIGJl IHVzZWQgZm9yIHByb2Nlc3NpbmcgdGhpcyB0YWJsZS4iLAorCQkJUkVMT1BUX0tJTkRfSEVBUCwK KwkJCVNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jaworCQl9LAorCQktMSwgLTEsIE1BWF9QQVJBTExF TF9XT1JLRVJfTElNSVQKKwl9LAogCXsKIAkJewogCQkJImF1dG92YWN1dW1fdmFjdXVtX3RocmVz aG9sZCIsCkBAIC0xOTY5LDYgKzE5NzksOCBAQCBkZWZhdWx0X3JlbG9wdGlvbnMoRGF0dW0gcmVs b3B0aW9ucywgYm9vbCB2YWxpZGF0ZSwgcmVsb3B0X2tpbmQga2luZCkKIAkJeyJmaWxsZmFjdG9y IiwgUkVMT1BUX1RZUEVfSU5ULCBvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGZpbGxmYWN0b3IpfSwK IAkJeyJhdXRvdmFjdXVtX2VuYWJsZWQiLCBSRUxPUFRfVFlQRV9CT09MLAogCQlvZmZzZXRvZihT dGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0b1ZhY09wdHMsIGVuYWJsZWQp fSwKKwkJeyJhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMiLCBSRUxPUFRfVFlQRV9JTlQsCisJ CW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0b3ZhY3V1bSkgKyBvZmZzZXRvZihBdXRvVmFjT3B0 cywgYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzKX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1f dGhyZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5ULAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1 dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0b1ZhY09wdHMsIHZhY3V1bV90aHJlc2hvbGQpfSwKIAkJ eyJhdXRvdmFjdXVtX3ZhY3V1bV9tYXhfdGhyZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5ULApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDg4YzcxY2Q4NWI2Li4zOTM5NWFlZDBk NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTUyLDYgKzE1Miw3IEBA CiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgog I2luY2x1ZGUgInN0b3JhZ2UvcmVhZF9zdHJlYW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbmplY3Rp b25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy9wZ19ydXNhZ2UuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKQEAgLTg2Miw2ICs4 NjMsMTcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1z ICpwYXJhbXMsCiAJbGF6eV9jaGVja193cmFwYXJvdW5kX2ZhaWxzYWZlKHZhY3JlbCk7CiAJZGVh ZF9pdGVtc19hbGxvYyh2YWNyZWwsIHBhcmFtcy0+bndvcmtlcnMpOwogCisjaWZkZWYgVVNFX0lO SkVDVElPTl9QT0lOVFMKKworCS8qCisJICogVXNlZCBieSB0ZXN0cyB0byBwYXVzZSBiZWZvcmUg cGFyYWxsZWwgdmFjdXVtIGlzIGxhdW5jaGVkLCBhbGxvd2luZworCSAqIHRlc3QgY29kZSB0byBt b2RpZnkgY29uZmlndXJhdGlvbiB0aGF0IHRoZSBsZWFkZXIgdGhlbiBwcm9wYWdhdGVzIHRvCisJ ICogd29ya2Vycy4KKwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIFBh cmFsbGVsVmFjdXVtSXNBY3RpdmUodmFjcmVsKSkKKwkJSU5KRUNUSU9OX1BPSU5UKCJhdXRvdmFj dXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bSIsIE5VTEwpOworI2VuZGlmCisKIAkvKgogCSAqIENh bGwgbGF6eV9zY2FuX2hlYXAgdG8gcGVyZm9ybSBhbGwgcmVxdWlyZWQgaGVhcCBwcnVuaW5nLCBp bmRleAogCSAqIHZhY3V1bWluZywgYW5kIGhlYXAgdmFjdXVtaW5nIChwbHVzIHJlbGF0ZWQgcHJv Y2Vzc2luZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKaW5kZXggMGVkMzYzZDFjODUuLjYyZDAzYzhlMTkw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy92YWN1dW0uYwpAQCAtMjQzNSw4ICsyNDM1LDE5IEBAIHZhY3V1bV9kZWxh eV9wb2ludChib29sIGlzX2FuYWx5emUpCiAJLyogQWx3YXlzIGNoZWNrIGZvciBpbnRlcnJ1cHRz ICovCiAJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIAotCWlmIChJbnRlcnJ1cHRQZW5kaW5nIHx8 Ci0JCSghVmFjdXVtQ29zdEFjdGl2ZSAmJiAhQ29uZmlnUmVsb2FkUGVuZGluZykpCisJaWYgKElu dGVycnVwdFBlbmRpbmcpCisJCXJldHVybjsKKworCWlmIChJc1BhcmFsbGVsV29ya2VyKCkpCisJ eworCQkvKgorCQkgKiBVcGRhdGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyBm b3IgYSBwYXJhbGxlbCBhdXRvdmFjdXVtCisJCSAqIHdvcmtlciBpZiBhbnkgY2hhbmdlcyBhcmUg ZGV0ZWN0ZWQuCisJCSAqLworCQlwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9w YXJhbXMoKTsKKwl9CisKKwlpZiAoIVZhY3V1bUNvc3RBY3RpdmUgJiYgIUNvbmZpZ1JlbG9hZFBl bmRpbmcpCiAJCXJldHVybjsKIAogCS8qCkBAIC0yNDUwLDYgKzI0NjEsMTIgQEAgdmFjdXVtX2Rl bGF5X3BvaW50KGJvb2wgaXNfYW5hbHl6ZSkKIAkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNl OwogCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKIAkJVmFjdXVtVXBkYXRlQ29zdHMo KTsKKworCQkvKgorCQkgKiBQcm9wYWdhdGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1l dGVycyB0byBzaGFyZWQgbWVtb3J5IGlmCisJCSAqIGFueSBvZiB0aGVtIGhhdmUgY2hhbmdlZCBk dXJpbmcgdGhlIGNvbmZpZyByZWxvYWQuCisJCSAqLworCQlwYXJhbGxlbF92YWN1dW1fcHJvcGFn YXRlX3NoYXJlZF9kZWxheV9wYXJhbXMoKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKaW5kZXggNzc4MzRiOTZhMjEuLmJhYzNiZDI4MjE0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTEsNyArMSw5IEBACiAvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAqCiAgKiB2YWN1dW1wYXJhbGxlbC5jCi0gKgkgIFN1cHBvcnQgcm91dGluZXMgZm9y IHBhcmFsbGVsIHZhY3V1bSBleGVjdXRpb24uCisgKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBh cmFsbGVsIHZhY3V1bSBhbmQgYXV0b3ZhY3V1bSBleGVjdXRpb24uIEluIHRoZQorICoJICBjb21t ZW50cyBiZWxvdywgdGhlIHdvcmQgInZhY3V1bSIgd2lsbCByZWZlciB0byBib3RoIHZhY3V1bSBh bmQKKyAqCSAgYXV0b3ZhY3V1bS4KICAqCiAgKiBUaGlzIGZpbGUgY29udGFpbnMgcm91dGluZXMg dGhhdCBhcmUgaW50ZW5kZWQgdG8gc3VwcG9ydCBzZXR0aW5nIHVwLCB1c2luZywKICAqIGFuZCB0 ZWFyaW5nIGRvd24gYSBQYXJhbGxlbFZhY3V1bVN0YXRlLgpAQCAtMTYsNiArMTgsMTMgQEAKICAq IHRoZSBwYXJhbGxlbCBjb250ZXh0IGlzIHJlLWluaXRpYWxpemVkIHNvIHRoYXQgdGhlIHNhbWUg RFNNIGNhbiBiZSB1c2VkIGZvcgogICogbXVsdGlwbGUgcGFzc2VzIG9mIGluZGV4IGJ1bGstZGVs ZXRpb24gYW5kIGluZGV4IGNsZWFudXAuCiAgKgorICogRm9yIHBhcmFsbGVsIGF1dG92YWN1dW0s IHdlIG5lZWQgdG8gcHJvcGFnYXRlIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5CisgKiBwYXJhbWV0 ZXJzIGZyb20gdGhlIGxlYWRlciB0byBpdHMgd29ya2VycywgYXMgdGhlIGxlYWRlcidzIHBhcmFt ZXRlcnMgY2FuCisgKiBjaGFuZ2UgZXZlbiB3aGlsZSBwcm9jZXNzaW5nIGEgdGFibGUgKGUuZy4s IGR1ZSB0byBhIGNvbmZpZyByZWxvYWQpLgorICogVGhlIFBWU2hhcmVkQ29zdFBhcmFtcyBzdHJ1 Y3QgbWFuYWdlcyB0aGVzZSBwYXJhbWV0ZXJzIHVzaW5nIGEKKyAqIGdlbmVyYXRpb24gY291bnRl ci4gRWFjaCBwYXJhbGxlbCB3b3JrZXIgcG9sbHMgdGhpcyBzaGFyZWQgc3RhdGUgYW5kCisgKiBy ZWZyZXNoZXMgaXRzIGxvY2FsIGRlbGF5IHBhcmFtZXRlcnMgd2hlbmV2ZXIgYSBjaGFuZ2UgaXMg ZGV0ZWN0ZWQuCisgKgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKQEAgLTM3 LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvcHJvYy5oIgogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9p bmplY3Rpb25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRl ICJ1dGlscy9yZWwuaCIKIApAQCAtNTEsNiArNjEsMzMgQEAKICNkZWZpbmUgUEFSQUxMRUxfVkFD VVVNX0tFWV9XQUxfVVNBR0UJCTQKICNkZWZpbmUgUEFSQUxMRUxfVkFDVVVNX0tFWV9JTkRFWF9T VEFUUwkJNQogCisvKgorICogU3RydWN0IGZvciBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSByZWxh dGVkIHBhcmFtZXRlcnMgdG8gc2hhcmUgYW1vbmcgYW4KKyAqIGF1dG92YWN1dW0gd29ya2VyIGFu ZCBpdHMgcGFyYWxsZWwgdmFjdXVtIHdvcmtlcnMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFBWU2hh cmVkQ29zdFBhcmFtcworeworCS8qCisJICogVGhlIGdlbmVyYXRpb24gY291bnRlciBpcyBpbmNy ZW1lbnRlZCBieSB0aGUgbGVhZGVyIHByb2Nlc3MgZWFjaCB0aW1lCisJICogaXQgdXBkYXRlcyB0 aGUgc2hhcmVkIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMuIFBhcmFsbGVsCisJ ICogdmFjdXVtIHdvcmtlcnMgY29tcGFyZSBpdCB3aXRoIHRoZWlyIGxvY2FsIGdlbmVyYXRpb24s CisJICogc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsLCB0byBkZXRlY3Qgd2hldGhlciB0 aGV5IG5lZWQgdG8gcmVmcmVzaAorCSAqIHRoZWlyIGxvY2FsIHBhcmFtZXRlcnMuIFRoZSBnZW5l cmF0aW9uIHN0YXJ0cyBmcm9tIDEgc28gdGhhdCBhIGZyZXNobHkKKwkgKiBzdGFydGVkIHdvcmtl ciAod2hvc2UgbG9jYWwgY29weSBpcyAwKSB3aWxsIGFsd2F5cyBsb2FkIHRoZSBpbml0aWFsCisJ ICogcGFyYW1ldGVycyBvbiBpdHMgZmlyc3QgY2hlY2suCisJICovCisJcGdfYXRvbWljX3VpbnQz MiBnZW5lcmF0aW9uOworCisJc2xvY2tfdAkJbXV0ZXg7CQkJLyogcHJvdGVjdHMgYWxsIGZpZWxk cyBiZWxvdyAqLworCisJLyogUGFyYW1ldGVycyB0byBzaGFyZSB3aXRoIHBhcmFsbGVsIHdvcmtl cnMgKi8KKwlkb3VibGUJCWNvc3RfZGVsYXk7CisJaW50CQkJY29zdF9saW1pdDsKKwlpbnQJCQlj b3N0X3BhZ2VfZGlydHk7CisJaW50CQkJY29zdF9wYWdlX2hpdDsKKwlpbnQJCQljb3N0X3BhZ2Vf bWlzczsKK30gUFZTaGFyZWRDb3N0UGFyYW1zOworCiAvKgogICogU2hhcmVkIGluZm9ybWF0aW9u IGFtb25nIHBhcmFsbGVsIHdvcmtlcnMuICBTbyB0aGlzIGlzIGFsbG9jYXRlZCBpbiB0aGUgRFNN CiAgKiBzZWdtZW50LgpAQCAtMTIwLDYgKzE1NywxOCBAQCB0eXBlZGVmIHN0cnVjdCBQVlNoYXJl ZAogCiAJLyogU3RhdGlzdGljcyBvZiBzaGFyZWQgZGVhZCBpdGVtcyAqLwogCVZhY0RlYWRJdGVt c0luZm8gZGVhZF9pdGVtc19pbmZvOworCisJLyoKKwkgKiBJZiAndHJ1ZScgdGhlbiB3ZSBhcmUg cnVubmluZyBwYXJhbGxlbCBhdXRvdmFjdXVtLiBPdGhlcndpc2UsIHdlIGFyZQorCSAqIHJ1bm5p bmcgcGFyYWxsZWwgbWFpbnRlbmFuY2UgVkFDVVVNLgorCSAqLworCWJvb2wJCWlzX2F1dG92YWN1 dW07CisKKwkvKgorCSAqIENvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgc2hhcmVk IGJldHdlZW4gdGhlIGF1dG92YWN1dW0gbGVhZGVyCisJICogYW5kIGl0cyBwYXJhbGxlbCB3b3Jr ZXJzLgorCSAqLworCVBWU2hhcmVkQ29zdFBhcmFtcyBjb3N0X3BhcmFtczsKIH0gUFZTaGFyZWQ7 CiAKIC8qIFN0YXR1cyB1c2VkIGR1cmluZyBwYXJhbGxlbCBpbmRleCB2YWN1dW0gb3IgY2xlYW51 cCAqLwpAQCAtMjIyLDYgKzI3MSwxNyBAQCBzdHJ1Y3QgUGFyYWxsZWxWYWN1dW1TdGF0ZQogCVBW SW5kVmFjU3RhdHVzIHN0YXR1czsKIH07CiAKK3N0YXRpYyBQVlNoYXJlZENvc3RQYXJhbXMgKnB2 X3NoYXJlZF9jb3N0X3BhcmFtcyA9IE5VTEw7CisKKy8qCisgKiBXb3JrZXItbG9jYWwgY29weSBv ZiB0aGUgbGFzdCBjb3N0LXBhcmFtZXRlciBnZW5lcmF0aW9uIHRoaXMgd29ya2VyIGhhcworICog YXBwbGllZC4gIEluaXRpYWxpemVkIHRvIDA7IHNpbmNlIHRoZSBsZWFkZXIgaW5pdGlhbGl6ZXMg dGhlIHNoYXJlZAorICogZ2VuZXJhdGlvbiBjb3VudGVyIHRvIDEsIHRoZSBmaXJzdCBjYWxsIHRv CisgKiBwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXMoKSB3aWxsIGFs d2F5cyBkZXRlY3QgYQorICogbWlzbWF0Y2ggYW5kIHJlYWQgdGhlIGluaXRpYWwgcGFyYW1ldGVy cyBmcm9tIHNoYXJlZCBtZW1vcnkuCisgKi8KK3N0YXRpYyB1aW50MzIgc2hhcmVkX3BhcmFtc19n ZW5lcmF0aW9uX2xvY2FsID0gMDsKKwogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0 ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVk LAogCQkJCQkJCQkJCQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIGludCBudW1faW5kZXhfc2NhbnMsCkBAIC0yMzMsNiArMjkzLDcgQEAgc3RhdGljIHZvaWQg cGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2 cywgUmVsYXRpb24KIHN0YXRpYyBib29sIHBhcmFsbGVsX3ZhY3V1bV9pbmRleF9pc19wYXJhbGxl bF9zYWZlKFJlbGF0aW9uIGluZHJlbCwgaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJ CSAgIGJvb2wgdmFjdXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxs YmFjayh2b2lkICphcmcpOworc3RhdGljIGlubGluZSB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9zZXRf Y29zdF9wYXJhbWV0ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKTsKIAogLyoKICAqIFRy eSB0byBlbnRlciBwYXJhbGxlbCBtb2RlIGFuZCBjcmVhdGUgYSBwYXJhbGxlbCBjb250ZXh0LiAg VGhlbiBpbml0aWFsaXplCkBAIC0zNzQsOCArNDM1LDkgQEAgcGFyYWxsZWxfdmFjdXVtX2luaXQo UmVsYXRpb24gcmVsLCBSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLAogCXNoYXJlZC0+ cXVlcnlpZCA9IHBnc3RhdF9nZXRfbXlfcXVlcnlfaWQoKTsKIAlzaGFyZWQtPm1haW50ZW5hbmNl X3dvcmtfbWVtX3dvcmtlciA9CiAJCShuaW5kZXhlc19td20gPiAwKSA/Ci0JCW1haW50ZW5hbmNl X3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgotCQltYWlu dGVuYW5jZV93b3JrX21lbTsKKwkJdmFjX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMs IG5pbmRleGVzX213bSkgOgorCQl2YWNfd29ya19tZW07CisKIAlzaGFyZWQtPmRlYWRfaXRlbXNf aW5mby5tYXhfYnl0ZXMgPSB2YWNfd29ya19tZW0gKiAoc2l6ZV90KSAxMDI0OwogCiAJLyogUHJl cGFyZSBEU0Egc3BhY2UgZm9yIGRlYWQgaXRlbXMgKi8KQEAgLTM5Miw2ICs0NTQsMjEgQEAgcGFy YWxsZWxfdmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiAqaW5kcmVscywgaW50IG5p bmRleGVzLAogCXBnX2F0b21pY19pbml0X3UzMigmKHNoYXJlZC0+YWN0aXZlX253b3JrZXJzKSwg MCk7CiAJcGdfYXRvbWljX2luaXRfdTMyKCYoc2hhcmVkLT5pZHgpLCAwKTsKIAorCXNoYXJlZC0+ aXNfYXV0b3ZhY3V1bSA9IEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKTsKKworCS8qCisJICog SW5pdGlhbGl6ZSBzaGFyZWQgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyBpZiBp dCdzIGZvcgorCSAqIGF1dG92YWN1dW0uCisJICovCisJaWYgKHNoYXJlZC0+aXNfYXV0b3ZhY3V1 bSkKKwl7CisJCXBhcmFsbGVsX3ZhY3V1bV9zZXRfY29zdF9wYXJhbWV0ZXJzKCZzaGFyZWQtPmNv c3RfcGFyYW1zKTsKKwkJcGdfYXRvbWljX2luaXRfdTMyKCZzaGFyZWQtPmNvc3RfcGFyYW1zLmdl bmVyYXRpb24sIDEpOworCQlTcGluTG9ja0luaXQoJnNoYXJlZC0+Y29zdF9wYXJhbXMubXV0ZXgp OworCisJCXB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9ICYoc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisJ fQorCiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9WQUNVVU1fS0VZX1NIQVJF RCwgc2hhcmVkKTsKIAlwdnMtPnNoYXJlZCA9IHNoYXJlZDsKIApAQCAtNDU3LDYgKzUzNCw5IEBA IHBhcmFsbGVsX3ZhY3V1bV9lbmQoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBJbmRleEJ1bGtE ZWxldGVSZXN1bHQgKippc3RhdHMpCiAJRGVzdHJveVBhcmFsbGVsQ29udGV4dChwdnMtPnBjeHQp OwogCUV4aXRQYXJhbGxlbE1vZGUoKTsKIAorCWlmIChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNz KCkpCisJCXB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9IE5VTEw7CisKIAlwZnJlZShwdnMtPndpbGxf cGFyYWxsZWxfdmFjdXVtKTsKIAlwZnJlZShwdnMpOwogfQpAQCAtNTM0LDYgKzYxNCwxMDMgQEAg cGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAq cHZzLCBsb25nIG51bV90YWJsZV90dXAKIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5k ZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgZmFsc2UsIHdzdGF0cyk7CiB9CiAKKy8qCisgKiBG aWxsIGluIHRoZSBnaXZlbiBzdHJ1Y3R1cmUgd2l0aCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBw YXJhbWV0ZXIgdmFsdWVzLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK3BhcmFsbGVsX3ZhY3V1 bV9zZXRfY29zdF9wYXJhbWV0ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKQoreworCXBh cmFtcy0+Y29zdF9kZWxheSA9IHZhY3V1bV9jb3N0X2RlbGF5OworCXBhcmFtcy0+Y29zdF9saW1p dCA9IHZhY3V1bV9jb3N0X2xpbWl0OworCXBhcmFtcy0+Y29zdF9wYWdlX2RpcnR5ID0gVmFjdXVt Q29zdFBhZ2VEaXJ0eTsKKwlwYXJhbXMtPmNvc3RfcGFnZV9oaXQgPSBWYWN1dW1Db3N0UGFnZUhp dDsKKwlwYXJhbXMtPmNvc3RfcGFnZV9taXNzID0gVmFjdXVtQ29zdFBhZ2VNaXNzOworfQorCisv KgorICogVXBkYXRlcyB0aGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyBmb3Ig cGFyYWxsZWwgYXV0b3ZhY3V1bQorICogd29ya2Vycy4KKyAqCisgKiBGb3Igbm9uLWF1dG92YWN1 dW0gcGFyYWxsZWwgd29ya2VycywgdGhpcyBmdW5jdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0Lgor ICovCit2b2lkCitwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXModm9p ZCkKK3sKKwl1aW50MzIJCXBhcmFtc19nZW5lcmF0aW9uOworCisJQXNzZXJ0KElzUGFyYWxsZWxX b3JrZXIoKSk7CisKKwkvKiBRdWljayByZXR1cm4gaWYgdGhlIHdvcmtlciBpcyBub3QgcnVubmlu ZyBmb3IgdGhlIGF1dG92YWN1dW0gKi8KKwlpZiAocHZfc2hhcmVkX2Nvc3RfcGFyYW1zID09IE5V TEwpCisJCXJldHVybjsKKworCXBhcmFtc19nZW5lcmF0aW9uID0gcGdfYXRvbWljX3JlYWRfdTMy KCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmdlbmVyYXRpb24pOworCUFzc2VydChzaGFyZWRfcGFy YW1zX2dlbmVyYXRpb25fbG9jYWwgPD0gcGFyYW1zX2dlbmVyYXRpb24pOworCisJLyogUmV0dXJu IGlmIHBhcmFtZXRlcnMgaGFkIG5vdCBjaGFuZ2VkIGluIHRoZSBsZWFkZXIgKi8KKwlpZiAocGFy YW1zX2dlbmVyYXRpb24gPT0gc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsKQorCQlyZXR1 cm47CisKKwlTcGluTG9ja0FjcXVpcmUoJnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+bXV0ZXgpOwor CVZhY3V1bUNvc3REZWxheSA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9kZWxheTsKKwlW YWN1dW1Db3N0TGltaXQgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfbGltaXQ7CisJVmFj dXVtQ29zdFBhZ2VEaXJ0eSA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2RpcnR5 OworCVZhY3V1bUNvc3RQYWdlSGl0ID0gcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5jb3N0X3BhZ2Vf aGl0OworCVZhY3V1bUNvc3RQYWdlTWlzcyA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9w YWdlX21pc3M7CisJU3BpbkxvY2tSZWxlYXNlKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4 KTsKKworCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CisKKwlzaGFyZWRfcGFyYW1zX2dlbmVyYXRpb25f bG9jYWwgPSBwYXJhbXNfZ2VuZXJhdGlvbjsKKworCWVsb2coREVCVUcyLAorCQkgInBhcmFsbGVs IGF1dG92YWN1dW0gd29ya2VyIHVwZGF0ZWQgY29zdCBwYXJhbXM6IGNvc3RfbGltaXQ9JWQsIGNv c3RfZGVsYXk9JWcsIGNvc3RfcGFnZV9taXNzPSVkLCBjb3N0X3BhZ2VfZGlydHk9JWQsIGNvc3Rf cGFnZV9oaXQ9JWQiLAorCQkgdmFjdXVtX2Nvc3RfbGltaXQsCisJCSB2YWN1dW1fY29zdF9kZWxh eSwKKwkJIFZhY3V1bUNvc3RQYWdlTWlzcywKKwkJIFZhY3V1bUNvc3RQYWdlRGlydHksCisJCSBW YWN1dW1Db3N0UGFnZUhpdCk7Cit9CisKKy8qCisgKiBTdG9yZSB0aGUgY29zdC1iYXNlZCB2YWN1 dW0gZGVsYXkgcGFyYW1ldGVycyBpbiB0aGUgc2hhcmVkIG1lbW9yeSBzbyB0aGF0CisgKiBwYXJh bGxlbCB2YWN1dW0gd29ya2VycyBjYW4gY29uc3VtZSB0aGVtIChzZWUKKyAqIHBhcmFsbGVsX3Zh Y3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcygpKS4KKyAqLwordm9pZAorcGFyYWxsZWxf dmFjdXVtX3Byb3BhZ2F0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCit7CisJQXNzZXJ0KEFt QXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSk7CisKKwkvKgorCSAqIFF1aWNrIHJldHVybiBpZiB0 aGUgbGVhZGVyIHByb2Nlc3MgaXMgbm90IHNoYXJpbmcgdGhlIGRlbGF5IHBhcmFtZXRlcnMuCisJ ICovCisJaWYgKHB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkv KgorCSAqIENoZWNrIGlmIGFueSBkZWxheSBwYXJhbWV0ZXJzIGhhdmUgY2hhbmdlZC4gV2UgY2Fu IHJlYWQgdGhlbSB3aXRob3V0CisJICogbG9ja3MgYXMgb25seSB0aGUgbGVhZGVyIGNhbiBtb2Rp ZnkgdGhlbS4KKwkgKi8KKwlpZiAodmFjdXVtX2Nvc3RfZGVsYXkgPT0gcHZfc2hhcmVkX2Nvc3Rf cGFyYW1zLT5jb3N0X2RlbGF5ICYmCisJCXZhY3V1bV9jb3N0X2xpbWl0ID09IHB2X3NoYXJlZF9j b3N0X3BhcmFtcy0+Y29zdF9saW1pdCAmJgorCQlWYWN1dW1Db3N0UGFnZURpcnR5ID09IHB2X3No YXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2RpcnR5ICYmCisJCVZhY3V1bUNvc3RQYWdlSGl0 ID09IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2hpdCAmJgorCQlWYWN1dW1Db3N0 UGFnZU1pc3MgPT0gcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5jb3N0X3BhZ2VfbWlzcykKKwkJcmV0 dXJuOworCisJLyogVXBkYXRlIHRoZSBzaGFyZWQgZGVsYXkgcGFyYW1ldGVycyAqLworCVNwaW5M b2NrQWNxdWlyZSgmcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5tdXRleCk7CisJcGFyYWxsZWxfdmFj dXVtX3NldF9jb3N0X3BhcmFtZXRlcnMocHZfc2hhcmVkX2Nvc3RfcGFyYW1zKTsKKwlTcGluTG9j a1JlbGVhc2UoJnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+bXV0ZXgpOworCisJLyoKKwkgKiBJbmNy ZW1lbnQgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHBhcmFtZXRlcnMsIGkuZS4gbGV0IHBhcmFsbGVs IHdvcmtlcnMKKwkgKiBrbm93IHRoYXQgdGhleSBzaG91bGQgcmUtcmVhZCBzaGFyZWQgY29zdCBw YXJhbXMuCisJICovCisJcGdfYXRvbWljX2ZldGNoX2FkZF91MzIoJnB2X3NoYXJlZF9jb3N0X3Bh cmFtcy0+Z2VuZXJhdGlvbiwgMSk7Cit9CisKIC8qCiAgKiBDb21wdXRlIHRoZSBudW1iZXIgb2Yg cGFyYWxsZWwgd29ya2VyIHByb2Nlc3NlcyB0byByZXF1ZXN0LiAgQm90aCBpbmRleAogICogdmFj dXVtIGFuZCBpbmRleCBjbGVhbnVwIGNhbiBiZSBleGVjdXRlZCB3aXRoIHBhcmFsbGVsIHdvcmtl cnMuCkBAIC01NTUsMTIgKzczMiwxNyBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJz KFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCWludAkJ CW5pbmRleGVzX3BhcmFsbGVsX2J1bGtkZWwgPSAwOwogCWludAkJCW5pbmRleGVzX3BhcmFsbGVs X2NsZWFudXAgPSAwOwogCWludAkJCXBhcmFsbGVsX3dvcmtlcnM7CisJaW50CQkJbWF4X3dvcmtl cnM7CisKKwltYXhfd29ya2VycyA9IEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSA/CisJCWF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgOgorCQltYXhfcGFyYWxsZWxfbWFpbnRlbmFu Y2Vfd29ya2VyczsKIAogCS8qCiAJICogV2UgZG9uJ3QgYWxsb3cgcGVyZm9ybWluZyBwYXJhbGxl bCBvcGVyYXRpb24gaW4gc3RhbmRhbG9uZSBiYWNrZW5kIG9yCiAJICogd2hlbiBwYXJhbGxlbGlz bSBpcyBkaXNhYmxlZC4KIAkgKi8KLQlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IG1heF9wYXJh bGxlbF9tYWludGVuYW5jZV93b3JrZXJzID09IDApCisJaWYgKCFJc1VuZGVyUG9zdG1hc3RlciB8 fCBtYXhfd29ya2VycyA9PSAwKQogCQlyZXR1cm4gMDsKIAogCS8qCkBAIC01OTksOCArNzgxLDgg QEAgcGFyYWxsZWxfdmFjdXVtX2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50 IG5pbmRleGVzLCBpbnQgbnJlcXVlc3RlZCwKIAlwYXJhbGxlbF93b3JrZXJzID0gKG5yZXF1ZXN0 ZWQgPiAwKSA/CiAJCU1pbihucmVxdWVzdGVkLCBuaW5kZXhlc19wYXJhbGxlbCkgOiBuaW5kZXhl c19wYXJhbGxlbDsKIAotCS8qIENhcCBieSBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2Vy cyAqLwotCXBhcmFsbGVsX3dvcmtlcnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3BhcmFs bGVsX21haW50ZW5hbmNlX3dvcmtlcnMpOworCS8qIENhcCBieSBHVUMgdmFyaWFibGUgKi8KKwlw YXJhbGxlbF93b3JrZXJzID0gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG1heF93b3JrZXJzKTsKIAog CXJldHVybiBwYXJhbGxlbF93b3JrZXJzOwogfQpAQCAtNzMwLDYgKzkxMiwxNiBAQCBwYXJhbGxl bF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGlu dCBudW1faW5kZXhfc2NhbgogCQkJCQkJCXB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQsIG53 b3JrZXJzKSkpOwogCX0KIAorI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisKKwkvKgorCSAq IFVzZWQgYnkgdGVzdHMgdG8gcGF1c2UgYWZ0ZXIgd29ya2VycyBhcmUgbGF1bmNoZWQgYnV0IGJl Zm9yZSBpbmRleAorCSAqIHZhY3V1bWluZyBiZWdpbnMuCisJICovCisJaWYgKEFtQXV0b1ZhY3V1 bVdvcmtlclByb2Nlc3MoKSAmJiBud29ya2VycyA+IDApCisJCUlOSkVDVElPTl9QT0lOVCgiYXV0 b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZyIsIE5VTEwpOworI2VuZGlm CisKIAkvKiBWYWN1dW0gdGhlIGluZGV4ZXMgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IG9ubHkg bGVhZGVyIHByb2Nlc3MgKi8KIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc191bnNhZmVfaW5kZXhl cyhwdnMpOwogCkBAIC0xMDY0LDcgKzEyNTYsMjEgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNt X3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCQkJCQkJCQlzaGFyZWQtPmRlYWRfaXRlbXNf aGFuZGxlKTsKIAogCS8qIFNldCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSAqLwotCVZhY3V1bVVw ZGF0ZUNvc3RzKCk7CisJaWYgKHNoYXJlZC0+aXNfYXV0b3ZhY3V1bSkKKwl7CisJCS8qCisJCSAq IFBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyBpbml0aWFsaXplIGNvc3QtYmFzZWQgZGVsYXkg cGFyYW1ldGVycworCQkgKiBmcm9tIHRoZSBsZWFkZXIncyBzaGFyZWQgc3RhdGUgcmF0aGVyIHRo YW4gR1VDIGRlZmF1bHRzLCBiZWNhdXNlCisJCSAqIHRoZSBsZWFkZXIgbWF5IGhhdmUgYXBwbGll ZCBwZXItdGFibGUgb3IgYXV0b3ZhY3V1bS1zcGVjaWZpYworCQkgKiBvdmVycmlkZXMuICBwdl9z aGFyZWRfY29zdF9wYXJhbXMgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxpbmcKKwkJICogcGFyYWxs ZWxfdmFjdXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKCkuCisJCSAqLworCQlwdl9zaGFy ZWRfY29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCQlwYXJhbGxlbF92YWN1 dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXMoKTsKKwl9CisJZWxzZQorCQlWYWN1dW1VcGRh dGVDb3N0cygpOworCiAJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwogCVZhY3V1bUNvc3RCYWxhbmNl TG9jYWwgPSAwOwogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihzaGFyZWQtPmNvc3RfYmFs YW5jZSk7CkBAIC0xMTE5LDYgKzEzMjUsOSBAQCBwYXJhbGxlbF92YWN1dW1fbWFpbihkc21fc2Vn bWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJdmFjX2Nsb3NlX2luZGV4ZXMobmluZGV4ZXMsIGlu ZHJlbHMsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCXRhYmxlX2Nsb3NlKHJlbCwgU2hhcmVVcGRhdGVF eGNsdXNpdmVMb2NrKTsKIAlGcmVlQWNjZXNzU3RyYXRlZ3kocHZzLmJzdHJhdGVneSk7CisKKwlp ZiAoc2hhcmVkLT5pc19hdXRvdmFjdXVtKQorCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMgPSBOVUxM OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVt LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwppbmRleCA2Njk0ZjQ4NTIx Ni4uODc4YTExYTZiNGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC0xNjg4 LDcgKzE2ODgsNyBAQCBWYWN1dW1VcGRhdGVDb3N0cyh2b2lkKQogCX0KIAllbHNlCiAJewotCQkv KiBNdXN0IGJlIGV4cGxpY2l0IFZBQ1VVTSBvciBBTkFMWVpFICovCisJCS8qIE11c3QgYmUgZXhw bGljaXQgVkFDVVVNIG9yIEFOQUxZWkUgb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgKi8K IAkJdmFjdXVtX2Nvc3RfZGVsYXkgPSBWYWN1dW1Db3N0RGVsYXk7CiAJCXZhY3V1bV9jb3N0X2xp bWl0ID0gVmFjdXVtQ29zdExpbWl0OwogCX0KQEAgLTI5MjgsOCArMjkyOCw2IEBAIHRhYmxlX3Jl Y2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0X21hcCwKIAkJICovCiAJ CXRhYi0+YXRfcGFyYW1zLmluZGV4X2NsZWFudXAgPSBWQUNPUFRWQUxVRV9VTlNQRUNJRklFRDsK IAkJdGFiLT5hdF9wYXJhbXMudHJ1bmNhdGUgPSBWQUNPUFRWQUxVRV9VTlNQRUNJRklFRDsKLQkJ LyogQXMgb2Ygbm93LCB3ZSBkb24ndCBzdXBwb3J0IHBhcmFsbGVsIHZhY3V1bSBmb3IgYXV0b3Zh Y3V1bSAqLwotCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9IC0xOwogCQl0YWItPmF0X3BhcmFt cy5mcmVlemVfbWluX2FnZSA9IGZyZWV6ZV9taW5fYWdlOwogCQl0YWItPmF0X3BhcmFtcy5mcmVl emVfdGFibGVfYWdlID0gZnJlZXplX3RhYmxlX2FnZTsKIAkJdGFiLT5hdF9wYXJhbXMubXVsdGl4 YWN0X2ZyZWV6ZV9taW5fYWdlID0gbXVsdGl4YWN0X2ZyZWV6ZV9taW5fYWdlOwpAQCAtMjkzOSw2 ICsyOTM3LDI3IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxl X3RvYXN0X21hcCwKIAkJdGFiLT5hdF9wYXJhbXMubG9nX2FuYWx5emVfbWluX2R1cmF0aW9uID0g bG9nX2FuYWx5emVfbWluX2R1cmF0aW9uOwogCQl0YWItPmF0X3BhcmFtcy50b2FzdF9wYXJlbnQg PSBJbnZhbGlkT2lkOwogCisJCS8qIERldGVybWluZSB0aGUgbnVtYmVyIG9mIHBhcmFsbGVsIHZh Y3V1bSB3b3JrZXJzIHRvIHVzZSAqLworCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9IDA7CisJ CWlmIChhdm9wdHMpCisJCXsKKwkJCWlmIChhdm9wdHMtPmF1dG92YWN1dW1fcGFyYWxsZWxfd29y a2VycyA9PSAwKQorCQkJeworCQkJCS8qCisJCQkJICogRGlzYWJsZSBwYXJhbGxlbCB2YWN1dW0s IGlmIHRoZSByZWxvcHRpb24gc2V0cyB0aGUgcGFyYWxsZWwKKwkJCQkgKiBkZWdyZWUgYXMgemVy by4KKwkJCQkgKi8KKwkJCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9IC0xOworCQkJfQorCQkJ ZWxzZSBpZiAoYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPiAwKQorCQkJCXRh Yi0+YXRfcGFyYW1zLm53b3JrZXJzID0gYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtl cnM7CisKKwkJCS8qCisJCQkgKiBhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPT0gLTEgZmFs bHMgdGhyb3VnaCwga2VlcAorCQkJICogbndvcmtlcnM9MAorCQkJICovCisJCX0KKwogCQkvKgog CQkgKiBMYXRlciwgaW4gdmFjdXVtX3JlbCgpLCB3ZSBjaGVjayByZWxvcHRpb25zIGZvciBhbnkK IAkJICogdmFjdXVtX21heF9lYWdlcl9mcmVlemVfZmFpbHVyZV9yYXRlIG92ZXJyaWRlLgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMgYi9zcmMvYmFja2VuZC91 dGlscy9pbml0L2dsb2JhbHMuYwppbmRleCAzNmFkNzA4YjM2MC4uMjRkZGIyNzZmMGMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2luaXQvZ2xvYmFscy5jCkBAIC0xNDMsNiArMTQzLDcgQEAgaW50CQkJTkJ1ZmZlcnMg PSAxNjM4NDsKIGludAkJCU1heENvbm5lY3Rpb25zID0gMTAwOwogaW50CQkJbWF4X3dvcmtlcl9w cm9jZXNzZXMgPSA4OwogaW50CQkJbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSA4OworaW50CQkJYXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDA7CiBpbnQJCQlNYXhCYWNrZW5kcyA9IDA7 CiAKIC8qIEdVQyBwYXJhbWV0ZXJzIGZvciB2YWN1dW0gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCmluZGV4 IGUxNTQ2ZDljOTdhLi5jNGMzZmJjNGZlMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCkBAIC0zMzU4LDkg KzMzNTgsMTUgQEAgc2V0X2NvbmZpZ193aXRoX2hhbmRsZShjb25zdCBjaGFyICpuYW1lLCBjb25m aWdfaGFuZGxlICpoYW5kbGUsCiAJICoKIAkgKiBBbHNvIGFsbG93IG5vcm1hbCBzZXR0aW5nIGlm IHRoZSBHVUMgaXMgbWFya2VkIEdVQ19BTExPV19JTl9QQVJBTExFTC4KIAkgKgotCSAqIE90aGVy IGNoYW5nZXMgbWlnaHQgbmVlZCB0byBhZmZlY3Qgb3RoZXIgd29ya2Vycywgc28gZm9yYmlkIHRo ZW0uCisJICogT3RoZXIgY2hhbmdlcyBtaWdodCBuZWVkIHRvIGFmZmVjdCBvdGhlciB3b3JrZXJz LCBzbyBmb3JiaWQgdGhlbS4gTm90ZSwKKwkgKiB0aGF0IHBhcmFsbGVsIGF1dG92YWN1dW0gbGVh ZGVyIGlzIGFuIGV4Y2VwdGlvbiBiZWNhdXNlIGNvc3QtYmFzZWQKKwkgKiBkZWxheXMgbmVlZCB0 byBiZSBhZmZlY3RlZCB0byBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMuIFRoZXNlCisJICog cGFyYW1ldGVycyBhcmUgcHJvcGFnYXRlZCB0byBpdHMgd29ya2VycyBkdXJpbmcgcGFyYWxsZWwg dmFjdXVtIChzZWUKKwkgKiB2YWN1dW1wYXJhbGxlbC5jIGZvciBkZXRhaWxzKS4gQWxsIG90aGVy IGNoYW5nZXMgd2lsbCBhZmZlY3Qgb25seSB0aGUKKwkgKiBwYXJhbGxlbCBhdXRvdmFjdXVtIGxl YWRlci4KIAkgKi8KLQlpZiAoSXNJblBhcmFsbGVsTW9kZSgpICYmIGNoYW5nZVZhbCAmJiBhY3Rp b24gIT0gR1VDX0FDVElPTl9TQVZFICYmCisJaWYgKElzSW5QYXJhbGxlbE1vZGUoKSAmJiAhQW1B dXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIGNoYW5nZVZhbCAmJgorCQlhY3Rpb24gIT0gR1VD X0FDVElPTl9TQVZFICYmCiAJCShyZWNvcmQtPmZsYWdzICYgR1VDX0FMTE9XX0lOX1BBUkFMTEVM KSA9PSAwKQogCXsKIAkJZXJlcG9ydChlbGV2ZWwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3BhcmFtZXRlcnMuZGF0CmluZGV4IDBhODYyNjkzZmNkLi42ZWY0NmQ4ODE1NSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKQEAgLTE3MCw2ICsxNzAsMTQgQEAK ICAgbWF4ID0+ICcxMC4wJywKIH0sCiAKK3sgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfcGFyYWxs ZWxfd29ya2VycycsIHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91 cCA9PiAnVkFDVVVNX0FVVE9WQUNVVU0nLAorICBzaG9ydF9kZXNjID0+ICdNYXhpbXVtIG51bWJl ciBvZiBwYXJhbGxlbCB3b3JrZXJzIHRoYXQgY2FuIGJlIHVzZWQgYnkgYSBzaW5nbGUgYXV0b3Zh Y3V1bSB3b3JrZXIuJywKKyAgdmFyaWFibGUgPT4gJ2F1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dv cmtlcnMnLAorICBib290X3ZhbCA9PiAnMCcsCisgIG1pbiA9PiAnMCcsCisgIG1heCA9PiAnTUFY X1BBUkFMTEVMX1dPUktFUl9MSU1JVCcsCit9LAorCiB7IG5hbWUgPT4gJ2F1dG92YWN1dW1fbWF4 X3dvcmtlcnMnLCB0eXBlID0+ICdpbnQnLCBjb250ZXh0ID0+ICdQR0NfU0lHSFVQJywgZ3JvdXAg PT4gJ1ZBQ1VVTV9BVVRPVkFDVVVNJywKICAgc2hvcnRfZGVzYyA9PiAnU2V0cyB0aGUgbWF4aW11 bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzbHkgcnVubmluZyBhdXRvdmFjdXVtIHdvcmtlciBwcm9j ZXNzZXMuJywKICAgdmFyaWFibGUgPT4gJ2F1dG92YWN1dW1fbWF4X3dvcmtlcnMnLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGNmMTU1OTcz ODViLi43M2M0OWYwOWFlZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNx bC5jb25mLnNhbXBsZQpAQCAtNzEzLDYgKzcxMyw3IEBACiAjYXV0b3ZhY3V1bV93b3JrZXJfc2xv dHMgPSAxNiAgICAgICAgICAgIyBhdXRvdmFjdXVtIHdvcmtlciBzbG90cyB0byBhbGxvY2F0ZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKGNoYW5nZSByZXF1aXJl cyByZXN0YXJ0KQogI2F1dG92YWN1dW1fbWF4X3dvcmtlcnMgPSAzICAgICAgICAgICAgICMgbWF4 IG51bWJlciBvZiBhdXRvdmFjdXVtIHN1YnByb2Nlc3NlcworI2F1dG92YWN1dW1fbWF4X3BhcmFs bGVsX3dvcmtlcnMgPSAwICAgICMgbGltaXRlZCBieSBtYXhfcGFyYWxsZWxfd29ya2VycwogI2F1 dG92YWN1dW1fbmFwdGltZSA9IDFtaW4gICAgICAgICAgICAgICMgdGltZSBiZXR3ZWVuIGF1dG92 YWN1dW0gcnVucwogI2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCA9IDUwICAgICAgICMgbWlu IG51bWJlciBvZiByb3cgdXBkYXRlcyBiZWZvcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIHZhY3V1bQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDUzYmYxZTIx NzIxLi4xZDk0MWMxMTk5NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTQzMiw2ICsxNDMy LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHRhYmxlX3N0b3JhZ2VfcGFyYW1ldGVyc1td ID0gewogCSJhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSIsCiAJImF1dG92YWN1 dW1fbXVsdGl4YWN0X2ZyZWV6ZV9taW5fYWdlIiwKIAkiYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJl ZXplX3RhYmxlX2FnZSIsCisJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCiAJImF1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0 IiwKIAkiYXV0b3ZhY3V1bV92YWN1dW1faW5zZXJ0X3NjYWxlX2ZhY3RvciIsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Zh Y3V1bS5oCmluZGV4IDViODAyMzYxNmMwLi42OWZlYzA3NDkxYiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVt LmgKQEAgLTQyMiw2ICs0MjIsOCBAQCBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fY2xlYW51 cF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlpbnQg bnVtX2luZGV4X3NjYW5zLAogCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQsCiAJCQkJ CQkJCQkJCQlQVldvcmtlclN0YXRzICp3c3RhdHMpOworZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFj dXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpOworZXh0ZXJuIHZvaWQgcGFyYWxs ZWxfdmFjdXVtX3Byb3BhZ2F0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpOwogZXh0ZXJuIHZv aWQgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsK IAogLyogaW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9t aXNjYWRtaW4uaCBiL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCmluZGV4IDA0ZjI5NzQ4YmU3Li4z ZWFhNDY1NWM4OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKKysrIGIvc3Jj L2luY2x1ZGUvbWlzY2FkbWluLmgKQEAgLTE3OCw2ICsxNzgsNyBAQCBleHRlcm4gUEdETExJTVBP UlQgaW50IE1heEJhY2tlbmRzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNYXhDb25uZWN0aW9u czsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3dvcmtlcl9wcm9jZXNzZXM7CiBleHRlcm4g UEdETExJTVBPUlQgaW50IG1heF9wYXJhbGxlbF93b3JrZXJzOworZXh0ZXJuIFBHRExMSU1QT1JU IGludCBhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzOwogCiBleHRlcm4gUEdETExJTVBP UlQgaW50IGNvbW1pdF90aW1lc3RhbXBfYnVmZmVyczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQg bXVsdGl4YWN0X21lbWJlcl9idWZmZXJzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMv cmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCAyMzY4MzBmNmI5My4uY2QxZTky ZjIzMDIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL3JlbC5oCkBAIC0zMTEsNiArMzExLDggQEAgdHlwZWRlZiBzdHJ1Y3QgRm9yZWln bktleUNhY2hlSW5mbwogdHlwZWRlZiBzdHJ1Y3QgQXV0b1ZhY09wdHMKIHsKIAlib29sCQllbmFi bGVkOworCisJaW50CQkJYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzOwogCWludAkJCXZhY3V1 bV90aHJlc2hvbGQ7CiAJaW50CQkJdmFjdXVtX21heF90aHJlc2hvbGQ7CiAJaW50CQkJdmFjdXVt X2luc190aHJlc2hvbGQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlIGIv c3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQppbmRleCAyOGNlM2IzNWVkYS4uMzM2YTIxMmZhZjQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9k dWxlcy9NYWtlZmlsZQpAQCAtMTYsNiArMTYsNyBAQCBTVUJESVJTID0gXAogCQkgIHBsc2FtcGxl IFwKIAkJICBzcGdpc3RfbmFtZV9vcHMgXAogCQkgIHRlc3RfYWlvIFwKKwkJICB0ZXN0X2F1dG92 YWN1dW0gXAogCQkgIHRlc3RfYmluYXJ5aGVhcCBcCiAJCSAgdGVzdF9iaXRtYXBzZXQgXAogCQkg IHRlc3RfYmxvb21maWx0ZXIgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5i dWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggM2FjMjkxNjU2YzEuLjky OTY1OTk1NmNiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCisrKyBi L3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTE2LDYgKzE2LDcgQEAgc3ViZGlyKCdw bHNhbXBsZScpCiBzdWJkaXIoJ3NwZ2lzdF9uYW1lX29wcycpCiBzdWJkaXIoJ3NzbF9wYXNzcGhy YXNlX2NhbGxiYWNrJykKIHN1YmRpcigndGVzdF9haW8nKQorc3ViZGlyKCd0ZXN0X2F1dG92YWN1 dW0nKQogc3ViZGlyKCd0ZXN0X2JpbmFyeWhlYXAnKQogc3ViZGlyKCd0ZXN0X2JpdG1hcHNldCcp CiBzdWJkaXIoJ3Rlc3RfYmxvb21maWx0ZXInKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjcxNmUxN2Y1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1 dG92YWN1dW0vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDIgQEAKKyMgR2VuZXJhdGVkIHN1YmRpcmVj dG9yaWVzCisvdG1wX2NoZWNrLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1 dG92YWN1dW0vTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtl ZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTg4ZWM5Zjk2YTIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtl ZmlsZQpAQCAtMCwwICsxLDIwIEBACisjIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L01ha2VmaWxlCisKK1BHRklMRURFU0MgPSAidGVzdF9hdXRvdmFjdXVtIC0gdGVzdCBjb2RlIGZv ciBwYXJhbGxlbCBhdXRvdmFjdXVtIgorCitUQVBfVEVTVFMgPSAxCisKK0VYVFJBX0lOU1RBTEwg PSBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMKKworZXhwb3J0IGVuYWJsZV9pbmpl Y3Rpb25fcG9pbnRzCisKK2lmZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBwZ19jb25maWcKK1BH WFMgOj0gJChzaGVsbCAkKFBHX0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAkKFBHWFMpCitlbHNl CitzdWJkaXIgPSBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bQordG9wX2J1aWxkZGly ID0gLi4vLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9i YWwKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmliL2NvbnRyaWItZ2xvYmFsLm1rCitlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVp bGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNvbi5idWlsZApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODZlMzkyYmMwZGUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNvbi5idWlsZApAQCAt MCwwICsxLDE1IEBACisjIENvcHlyaWdodCAoYykgMjAyNC0yMDI2LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCit0ZXN0cyArPSB7CisgICduYW1lJzogJ3Rlc3RfYXV0b3Zh Y3V1bScsCisgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLAorICAnYmQnOiBtZXNv bi5jdXJyZW50X2J1aWxkX2RpcigpLAorICAndGFwJzogeworICAgICdlbnYnOiB7CisgICAgICAg J2VuYWJsZV9pbmplY3Rpb25fcG9pbnRzJzogZ2V0X29wdGlvbignaW5qZWN0aW9uX3BvaW50cycp ID8gJ3llcycgOiAnbm8nLAorICAgIH0sCisgICAgJ3Rlc3RzJzogWworICAgICAgJ3QvMDAxX3Bh cmFsbGVsX2F1dG92YWN1dW0ucGwnLAorICAgIF0sCisgIH0sCit9CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBs IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3Zh Y3V1bS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWU2NWVhZmI1 NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90 LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsCkBAIC0wLDAgKzEsMTk3IEBACisKKyMgQ29weXJp Z2h0IChjKSAyMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRl c3QgcGFyYWxsZWwgYXV0b3ZhY3V1bSBiZWhhdmlvcgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p bmdzIEZBVEFMID0+ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7ZW5h YmxlX2luamVjdGlvbl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0lu amVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworIyBCZWZv cmUgZWFjaCB0ZXN0IHdlIHNob3VsZCBkaXNhYmxlIGF1dG92YWN1dW0gZm9yICd0ZXN0X2F1dG92 YWMnIHRhYmxlIGFuZAorIyBnZW5lcmF0ZSBzb21lIGRlYWQgdHVwbGVzIGluIGl0LiBSZXR1cm5z IHRoZSBjdXJyZW50IGF1dG92YWN1dW1fY291bnQgb2YKKyMgdGhlIHRhYmxlIHRlc3RfYXV0b3Zh Yy4KK3N1YiBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QKK3sKKwlteSAoJG5vZGUsICR0ZXN0X251bWJl cikgPSBAXzsKKworCSRub2RlLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsIHFxeworCQlBTFRF UiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CisJ CVVQREFURSB0ZXN0X2F1dG92YWMgU0VUIGNvbF8xID0gJHRlc3RfbnVtYmVyOworCX0pOworCisJ bXkgJGNvdW50ID0gJG5vZGUtPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVD VCBhdXRvdmFjdXVtX2NvdW50IEZST00gcGdfc3RhdF91c2VyX3RhYmxlcyBXSEVSRSByZWxuYW1l ID0gJ3Rlc3RfYXV0b3ZhYycKKwl9KTsKKworCXJldHVybiAkY291bnQ7Cit9CisKKyMgV2FpdCBm b3IgdGhlIHRhYmxlIHRvIGJlIHZhY3V1bWVkIGJ5IGFuIGF1dG92YWN1dW0gd29ya2VyLgorc3Vi IHdhaXRfZm9yX2F1dG92YWN1dW1fY29tcGxldGUKK3sKKwlteSAoJG5vZGUsICRvbGRfY291bnQp ID0gQF87CisKKwkkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJ CVNFTEVDVCBhdXRvdmFjdXVtX2NvdW50ID4gJG9sZF9jb3VudCBGUk9NIHBnX3N0YXRfdXNlcl90 YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd0ZXN0X2F1dG92YWMnCisJfSk7Cit9CisKK215ICRub2Rl ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdtYWluJyk7Ciskbm9kZS0+aW5pdDsK KworIyBMaW1pdCB0byBvbmUgYXV0b3ZhY3V1bSB3b3JrZXIgYW5kIGRpc2FibGUgYXV0b3ZhY3V1 bSBsb2dnaW5nIGdsb2JhbGx5CisjIChlbmFibGVkIG9ubHkgb24gdGhlIHRlc3QgdGFibGUpIHNv IHRoYXQgbG9nIGNoZWNrcyBiZWxvdyBtYXRjaCBvbmx5CisjIGFjdGl2aXR5IG9uIHRoZSBleHBl Y3RlZCB0YWJsZS4KKyRub2RlLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXF7 CithdXRvdmFjdXVtX21heF93b3JrZXJzID0gMQorYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAx CithdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzID0gMgorbWF4X3dvcmtlcl9wcm9jZXNz ZXMgPSAxMAorbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAxMAorbG9nX21pbl9tZXNzYWdlcyA9IGRl YnVnMgorYXV0b3ZhY3V1bV9uYXB0aW1lID0gJzFzJworbWluX3BhcmFsbGVsX2luZGV4X3NjYW5f c2l6ZSA9IDAKK2xvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlvbiA9IC0xCit9KTsKKyRub2RlLT5z dGFydDsKKworIyBDaGVjayBpZiB0aGUgZXh0ZW5zaW9uIGluamVjdGlvbl9wb2ludHMgaXMgYXZh aWxhYmxlLCBhcyBpdCBtYXkgYmUKKyMgcG9zc2libGUgdGhhdCB0aGlzIHNjcmlwdCBpcyBydW4g d2l0aCBpbnN0YWxsY2hlY2ssIHdoZXJlIHRoZSBtb2R1bGUKKyMgd291bGQgbm90IGJlIGluc3Rh bGxlZCBieSBkZWZhdWx0LgoraWYgKCEkbm9kZS0+Y2hlY2tfZXh0ZW5zaW9uKCdpbmplY3Rpb25f cG9pbnRzJykpCit7CisJcGxhbiBza2lwX2FsbCA9PiAnRXh0ZW5zaW9uIGluamVjdGlvbl9wb2lu dHMgbm90IGluc3RhbGxlZCc7Cit9CisKKyMgQ3JlYXRlIGFsbCBmdW5jdGlvbnMgbmVlZGVkIGZv ciB0ZXN0aW5nCiskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxeworCUNSRUFURSBF WFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK30pOworCitteSAkaW5kZXhlc19udW0gPSAzOwor bXkgJGluaXRpYWxfcm93c19udW0gPSAxMF8wMDA7CitteSAkYXV0b3ZhY3V1bV9wYXJhbGxlbF93 b3JrZXJzID0gMjsKKworIyBDcmVhdGUgdGFibGUgYW5kIGZpbGwgaXQgd2l0aCBzb21lIGRhdGEK KyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CisJQ1JFQVRFIFRBQkxFIHRlc3Rf YXV0b3ZhYyAoCisJCWlkIFNFUklBTCBQUklNQVJZIEtFWSwKKwkJY29sXzEgSU5URUdFUiwgIGNv bF8yIElOVEVHRVIsICBjb2xfMyBJTlRFR0VSLCAgY29sXzQgSU5URUdFUgorCSkgV0lUSCAoYXV0 b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzID0gJGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycywK KwkJCWxvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlvbiA9IDApOworCisJSU5TRVJUIElOVE8gdGVz dF9hdXRvdmFjCisJU0VMRUNUCisJCWcgQVMgY29sMSwKKwkJZyArIDEgQVMgY29sMiwKKwkJZyAr IDIgQVMgY29sMywKKwkJZyArIDMgQVMgY29sNAorCUZST00gZ2VuZXJhdGVfc2VyaWVzKDEsICRp bml0aWFsX3Jvd3NfbnVtKSBBUyBnOworfSk7CisKKyMgQ3JlYXRlIHNwZWNpZmllZCBudW1iZXIg b2YgYi10cmVlIGluZGV4ZXMgb24gdGhlIHRhYmxlCiskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxeworCURPIFwkXCQKKwlERUNMQVJFCisJCWkgSU5URUdFUjsKKwlCRUdJTgorCQlG T1IgaSBJTiAxLi4kaW5kZXhlc19udW0gTE9PUAorCQkJRVhFQ1VURSBmb3JtYXQoJ0NSRUFURSBJ TkRFWCBpZHhfY29sX1wlcyBPTiB0ZXN0X2F1dG92YWMgKGNvbF9cJXMpOycsIGksIGkpOworCQlF TkQgTE9PUDsKKwlFTkQgXCRcJDsKK30pOworCisjIFRlc3QgMSA6CisjIE91ciB0YWJsZSBoYXMg ZW5vdWdoIGluZGV4ZXMgYW5kIGFwcHJvcHJpYXRlIHJlbG9wdGlvbnMsIHNvIGF1dG92YWN1dW0g bXVzdAorIyBiZSBhYmxlIHRvIHByb2Nlc3MgaXQgaW4gcGFyYWxsZWwgbW9kZS4gSnVzdCBjaGVj ayBpZiBpdCBjYW4gZG8gaXQuCisKK215ICRhdl9jb3VudCA9IHByZXBhcmVfZm9yX25leHRfdGVz dCgkbm9kZSwgMSk7CitteSAkbG9nX29mZnNldCA9IC1zICRub2RlLT5sb2dmaWxlOworCiskbm9k ZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3Zh YyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1bnRpbCB0 aGUgcGFyYWxsZWwgYXV0b3ZhY3V1bSBvbiB0YWJsZSBpcyBjb21wbGV0ZWQuIEF0IHRoZSBzYW1l IHRpbWUsCisjIHdlIGNoZWNrIHRoYXQgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBwYXJhbGxlbCB3 b3JrZXJzIGhhcyBiZWVuIHN0YXJ0ZWQuCit3YWl0X2Zvcl9hdXRvdmFjdXVtX2NvbXBsZXRlKCRu b2RlLCAkYXZfY291bnQpOworb2soICRub2RlLT5sb2dfY29udGFpbnMoCisJCXFyL3BhcmFsbGVs IHdvcmtlcnM6IGluZGV4IHZhY3V1bTogMiBwbGFubmVkLCAyIGxhdW5jaGVkIGluIHRvdGFsLywK KwkJJGxvZ19vZmZzZXQpKTsKKworIyBUZXN0IDI6CisjIENoZWNrIHdoZXRoZXIgcGFyYWxsZWwg YXV0b3ZhY3V1bSBsZWFkZXIgY2FuIHByb3BhZ2F0ZSBjb3N0LWJhc2VkIHBhcmFtZXRlcnMKKyMg dG8gdGhlIHBhcmFsbGVsIHdvcmtlcnMuCisKKyRhdl9jb3VudCA9IHByZXBhcmVfZm9yX25leHRf dGVzdCgkbm9kZSwgMik7CiskbG9nX29mZnNldCA9IC1zICRub2RlLT5sb2dmaWxlOworCiskbm9k ZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X2F0dGFjaCgnYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nLCAnd2FpdCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWlu ZGV4ZXMtcHJvY2Vzc2luZycsICd3YWl0Jyk7CisKKwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMg U0VUIChhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAxLCBhdXRvdmFjdXVtX2VuYWJsZWQg PSB0cnVlKTsKK30pOworCisjIFdhaXQgdW50aWwgcGFyYWxsZWwgYXV0b3ZhY3V1bSBpcyBpbml0 ZWQKKyRub2RlLT53YWl0X2Zvcl9ldmVudCgnYXV0b3ZhY3V1bSB3b3JrZXInLAorCSdhdXRvdmFj dXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScpOworCisjIFVwZGF0ZSB0aGUgc2hhcmVkIGNvc3Qt YmFzZWQgZGVsYXkgcGFyYW1ldGVycy4KKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywg cXF7CisJQUxURVIgU1lTVEVNIFNFVCB2YWN1dW1fY29zdF9saW1pdCA9IDUwMDsKKwlBTFRFUiBT WVNURU0gU0VUIHZhY3V1bV9jb3N0X3BhZ2VfbWlzcyA9IDEwOworCUFMVEVSIFNZU1RFTSBTRVQg dmFjdXVtX2Nvc3RfcGFnZV9kaXJ0eSA9IDEwOworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nv c3RfcGFnZV9oaXQgPSAxMDsKKwlTRUxFQ1QgcGdfcmVsb2FkX2NvbmYoKTsKK30pOworCisjIFJl c3VtZSB0aGUgbGVhZGVyIHByb2Nlc3MgdG8gdXBkYXRlIHRoZSBzaGFyZWQgcGFyYW1ldGVycyBk dXJpbmcgaGVhcCBzY2FuIChpLmUuCisjIHZhY3V1bV9kZWxheV9wb2ludCgpIGlzIGNhbGxlZCkg YW5kIGxhdW5jaCBhIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXIsIGJ1dCBpdCBzdG9wcworIyBiZWZv cmUgdmFjdXVtaW5nIGluZGV4ZXMgZHVlIHRvIHRoZSBpbmplY3Rpb24gcG9pbnQuCiskbm9kZS0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgnYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nKTsKK30pOworJG5vZGUtPndh aXRfZm9yX2V2ZW50KCdhdXRvdmFjdXVtIHdvcmtlcicsCisJJ2F1dG92YWN1dW0tbGVhZGVyLWJl Zm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKKworIyBDaGVjayB3aGV0aGVyIHBhcmFsbGVsIHdv cmtlciBzdWNjZXNzZnVsbHkgdXBkYXRlZCBhbGwgcGFyYW1ldGVycyBkdXJpbmcKKyMgaW5kZXgg cHJvY2Vzc2luZworJG5vZGUtPndhaXRfZm9yX2xvZygKKwlxci9wYXJhbGxlbCBhdXRvdmFjdXVt IHdvcmtlciB1cGRhdGVkIGNvc3QgcGFyYW1zOiBjb3N0X2xpbWl0PTUwMCwgY29zdF9kZWxheT0y LCBjb3N0X3BhZ2VfbWlzcz0xMCwgY29zdF9wYWdlX2RpcnR5PTEwLCBjb3N0X3BhZ2VfaGl0PTEw LywKKwkkbG9nX29mZnNldCk7CisKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZv cmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7Cit9KTsKKword2FpdF9mb3JfYXV0b3ZhY3V1bV9jb21w bGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKKworIyBDbGVhbnVwCiskbm9kZS0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXV0b3Zh Y3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19k ZXRhY2goJ2F1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKK30p OworCiskbm9kZS0+c3RvcDsKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAppbmRleCA4ZTljMDY1NDdkNi4uMzk4YzNmMDlmNTkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CkBAIC0yMDk4LDYgKzIwOTgsNyBAQCBQVkluZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZP SUQKIFBWU2hhcmVkCitQVlNoYXJlZENvc3RQYXJhbXMKIFBWV29ya2VyVXNhZ2UKIFBWV29ya2Vy U3RhdHMKIFBYX0FsaWFzCi0tIAoyLjQzLjAKCg== --0000000000003f770f064e6cb6eb Content-Type: text/x-patch; charset="US-ASCII"; name="v35-v36-diff.patch" Content-Disposition: attachment; filename="v35-v36-diff.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mngjzahs1 RnJvbSA3ZjVhNzc0ZDQyNjJlMTBiZTA3N2JlZDhjYjZkNTgwOGNlYjdhN2QyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDIgQXByIDIwMjYgMDQ6MjA6MzUgKzA3MDAKU3ViamVjdDogW1BBVENI XSB2MzUtLXYzNi1kaWZmCgotLS0KIGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAg ICAgIHwgMjUgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9yZWxvcHRpb25zLmMgfCAgMyArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBh cmFsbGVsLmMgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgICAgICAgICAg IHwgIDUgKysrLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbAppbmRleCBlYjZhMDdlMDg2ZC4uODg0YWM4OTgwNjUg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9tYWludGVuYW5jZS5zZ21sCkBAIC0xMTc5LDIzICsxMTc5LDI0IEBAIGFuYWx5emUgdGhy ZXNob2xkID0gYW5hbHl6ZSBiYXNlIHRocmVzaG9sZCArIGFuYWx5emUgc2NhbGUgZmFjdG9yICog bnVtYmVyIG9mIHR1CiAgICAgcGhhc2VzIGluIHBhcmFsbGVsIHVzaW5nIGJhY2tncm91bmQgd29y a2VycyAoZm9yIHRoZSBkZXRhaWxzIG9mIGVhY2gKICAgICB2YWN1dW0gcGhhc2UsIHBsZWFzZSBy ZWZlciB0byA8eHJlZiBsaW5rZW5kPSJ2YWN1dW0tcGhhc2VzIi8+KS4gVGhlCiAgICAgZGVncmVl IG9mIHBhcmFsbGVsaXNtIGlzIGRldGVybWluZWQgYnkgdGhlIG51bWJlciBvZiBpbmRleGVzIG9u IHRoZQotICAgIHJlbGF0aW9uIHRoYXQgc3VwcG9ydCBwYXJhbGxlbCB2YWN1dW0sIGxpbWl0ZWQg YnkgdGhlIDxsaXRlcmFsPlBBUkFMTEVMPC9saXRlcmFsPgotICAgIChmb3IgbWFudWFsIDxjb21t YW5kPlZBQ1VVTTwvY29tbWFuZD4pIG9yIHRoZQotICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hdXRv dmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+IHBhcmFtZXRlcnMgKGZvcgotICAgIGF1dG92 YWN1dW0pLgorICAgIHJlbGF0aW9uIHRoYXQgc3VwcG9ydCBwYXJhbGxlbCB2YWN1dW0uICBGb3Ig bWFudWFsIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4KKyAgICBpdCBpcyBsaW1pdGVkIGJ5IHRo ZSA8bGl0ZXJhbD5QQVJBTExFTDwvbGl0ZXJhbD4gb3B0aW9uIGlmIGFueSB3aGljaCBpcworICAg IGZ1cnRoZXIgbGltaXRlZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLW1haW50 ZW5hbmNlLXdvcmtlcnMiLz4uCisgICAgRm9yIGF1dG92YWN1dW0gaXQgaXMgbGltaXRlZCBieSB0 aGUgPHhyZWYgbGlua2VuZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXdvcmtlcnMiLz4KKyAgICByZWxv cHRpb24gaWYgc3BlY2lmaWVkIHdoaWNoIGlzIGZ1cnRoZXIgbGltaXRlZCBieQorICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+IHBhcmFtZXRl ci4gIFBsZWFzZQorICAgIG5vdGUgdGhhdCBpdCBpcyBub3QgZ3VhcmFudGVlZCB0aGF0IHRoZSBu dW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyB0aGF0IHdhcworICAgIGNhbGN1bGF0ZWQgd2lsbCBi ZSB1c2VkIGR1cmluZyBleGVjdXRpb24uICBJdCBpcyBwb3NzaWJsZSBmb3IgYSB2YWN1dW0gdG8K KyAgICBydW4gd2l0aCBmZXdlciB3b3JrZXJzIHRoYW4gc3BlY2lmaWVkLCBvciBldmVuIHdpdGgg bm8gd29ya2VycyBhdCBhbGwuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgogICAgIEFuIGluZGV4 IGNhbiBwYXJ0aWNpcGF0ZSBpbiBwYXJhbGxlbCB2YWN1dW0gaWYgYW5kIG9ubHkgaWYgdGhlIHNp emUgb2YgdGhlCiAgICAgaW5kZXggaXMgbW9yZSB0aGFuIDx4cmVmIGxpbmtlbmQ9Imd1Yy1taW4t cGFyYWxsZWwtaW5kZXgtc2Nhbi1zaXplIi8+LgotICAgIFBsZWFzZSBub3RlIHRoYXQgaXQgaXMg bm90IGd1YXJhbnRlZWQgdGhhdCB0aGUgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMKLSAgICBz cGVjaWZpZWQgaW4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmludGVnZXI8L3JlcGxh Y2VhYmxlPiB3aWxsIGJlCi0gICAgdXNlZCBkdXJpbmcgZXhlY3V0aW9uLiAgSXQgaXMgcG9zc2li bGUgZm9yIGEgdmFjdXVtIHRvIHJ1biB3aXRoIGZld2VyCi0gICAgd29ya2VycyB0aGFuIHNwZWNp ZmllZCwgb3IgZXZlbiB3aXRoIG5vIHdvcmtlcnMgYXQgYWxsLiAgT25seSBvbmUgd29ya2VyCi0g ICAgY2FuIGJlIHVzZWQgcGVyIGluZGV4LiAgU28gcGFyYWxsZWwgd29ya2VycyBhcmUgbGF1bmNo ZWQgb25seSB3aGVuIHRoZXJlCi0gICAgYXJlIGF0IGxlYXN0IDxsaXRlcmFsPjI8L2xpdGVyYWw+ IGluZGV4ZXMgaW4gdGhlIHRhYmxlLiAgV29ya2VycyBmb3IKLSAgICB2YWN1dW0gYXJlIGxhdW5j aGVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgZWFjaCBwaGFzZSBhbmQgZXhpdCBhdCB0aGUgZW5kIG9m Ci0gICAgdGhlIHBoYXNlLiAgVGhlc2UgYmVoYXZpb3JzIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVy ZSByZWxlYXNlLgorICAgIE9ubHkgb25lIHdvcmtlciBjYW4gYmUgdXNlZCBwZXIgaW5kZXguICBT byBwYXJhbGxlbCB3b3JrZXJzIGFyZSBsYXVuY2hlZAorICAgIG9ubHkgd2hlbiB0aGVyZSBhcmUg YXQgbGVhc3QgPGxpdGVyYWw+MjwvbGl0ZXJhbD4gaW5kZXhlcyBpbiB0aGUgdGFibGUuCisgICAg V29ya2VycyBmb3IgdmFjdXVtIGFyZSBsYXVuY2hlZCBiZWZvcmUgdGhlIHN0YXJ0IG9mIGVhY2gg cGhhc2UgYW5kIGV4aXQgYXQKKyAgICB0aGUgZW5kIG9mIHRoZSBwaGFzZS4gIFRoZXNlIGJlaGF2 aW9ycyBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZS4KICAgIDwvcGFyYT4KICAgPC9z ZWN0Mj4KICA8L3NlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9y ZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwppbmRl eCAzZTgzMmMzNzk3ZS4uZDY3NWQ1MjUzMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVs b3B0aW9ucy5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2Vm dW5jcy5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXJfaW50ZXJuYWxzLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9sb2NrLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKICNpbmNsdWRl ICJ1dGlscy9hdHRvcHRjYWNoZS5oIgpAQCAtMjQzLDcgKzI0NCw3IEBAIHN0YXRpYyByZWxvcHRf aW50IGludFJlbE9wdHNbXSA9CiAJCQlSRUxPUFRfS0lORF9IRUFQLAogCQkJU2hhcmVVcGRhdGVF eGNsdXNpdmVMb2NrCiAJCX0sCi0JCS0xLCAtMSwgMTAyNAorCQktMSwgLTEsIE1BWF9QQVJBTExF TF9XT1JLRVJfTElNSVQKIAl9LAogCXsKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFs bGVsLmMKaW5kZXggNjgzYTBmMzRlMjQuLmJhYzNiZDI4MjE0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTcwLDcgKzcwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUFZTaGFy ZWRDb3N0UGFyYW1zCiAJLyoKIAkgKiBUaGUgZ2VuZXJhdGlvbiBjb3VudGVyIGlzIGluY3JlbWVu dGVkIGJ5IHRoZSBsZWFkZXIgcHJvY2VzcyBlYWNoIHRpbWUKIAkgKiBpdCB1cGRhdGVzIHRoZSBz aGFyZWQgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycy4gUGFyYWxsZWwKLQkgKiB2 YWN1dW0gd29ya2VycyBjb21wYXJlcyBpdCB3aXRoIHRoZWlyIGxvY2FsIGdlbmVyYXRpb24sCisJ ICogdmFjdXVtIHdvcmtlcnMgY29tcGFyZSBpdCB3aXRoIHRoZWlyIGxvY2FsIGdlbmVyYXRpb24s CiAJICogc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsLCB0byBkZXRlY3Qgd2hldGhlciB0 aGV5IG5lZWQgdG8gcmVmcmVzaAogCSAqIHRoZWlyIGxvY2FsIHBhcmFtZXRlcnMuIFRoZSBnZW5l cmF0aW9uIHN0YXJ0cyBmcm9tIDEgc28gdGhhdCBhIGZyZXNobHkKIAkgKiBzdGFydGVkIHdvcmtl ciAod2hvc2UgbG9jYWwgY29weSBpcyAwKSB3aWxsIGFsd2F5cyBsb2FkIHRoZSBpbml0aWFsCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWMuYwppbmRleCAxNTA0OGFhOWU1Ni4uYzRjM2ZiYzRmZTMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWMuYwpAQCAtMzM1OSwxMCArMzM1OSwxMSBAQCBzZXRfY29uZmlnX3dpdGhfaGFuZGxlKGNv bnN0IGNoYXIgKm5hbWUsIGNvbmZpZ19oYW5kbGUgKmhhbmRsZSwKIAkgKiBBbHNvIGFsbG93IG5v cm1hbCBzZXR0aW5nIGlmIHRoZSBHVUMgaXMgbWFya2VkIEdVQ19BTExPV19JTl9QQVJBTExFTC4K IAkgKgogCSAqIE90aGVyIGNoYW5nZXMgbWlnaHQgbmVlZCB0byBhZmZlY3Qgb3RoZXIgd29ya2Vy cywgc28gZm9yYmlkIHRoZW0uIE5vdGUsCi0JICogdGhhdCBwYXJhbGxlbCBhdXRvdmFjdXVtIGxl YWRlciBpcyBhbiBleGNlcHRpb24gYmVjYXVzZSBvbmx5IGNvc3QtYmFzZWQKKwkgKiB0aGF0IHBh cmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyIGlzIGFuIGV4Y2VwdGlvbiBiZWNhdXNlIGNvc3QtYmFz ZWQKIAkgKiBkZWxheXMgbmVlZCB0byBiZSBhZmZlY3RlZCB0byBwYXJhbGxlbCBhdXRvdmFjdXVt IHdvcmtlcnMuIFRoZXNlCiAJICogcGFyYW1ldGVycyBhcmUgcHJvcGFnYXRlZCB0byBpdHMgd29y a2VycyBkdXJpbmcgcGFyYWxsZWwgdmFjdXVtIChzZWUKLQkgKiB2YWN1dW1wYXJhbGxlbC5jIGZv ciBkZXRhaWxzKS4KKwkgKiB2YWN1dW1wYXJhbGxlbC5jIGZvciBkZXRhaWxzKS4gQWxsIG90aGVy IGNoYW5nZXMgd2lsbCBhZmZlY3Qgb25seSB0aGUKKwkgKiBwYXJhbGxlbCBhdXRvdmFjdXVtIGxl YWRlci4KIAkgKi8KIAlpZiAoSXNJblBhcmFsbGVsTW9kZSgpICYmICFBbUF1dG9WYWN1dW1Xb3Jr ZXJQcm9jZXNzKCkgJiYgY2hhbmdlVmFsICYmCiAJCWFjdGlvbiAhPSBHVUNfQUNUSU9OX1NBVkUg JiYKLS0gCjIuNDMuMAoK --0000000000003f770f064e6cb6eb--