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 1w2Exq-00078x-28 for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 20:55:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2Exp-00CsIw-1X for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 20:55:01 +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 1w2Exo-00CsIn-28 for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 20:55:01 +0000 Received: from mail-yw1-x1131.google.com ([2607:f8b0:4864:20::1131]) 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 1w2Exj-000000004Xm-0i4Q for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 20:54:59 +0000 Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-794719afcd4so44567347b3.1 for ; Mon, 16 Mar 2026 13:54:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773694495; cv=none; d=google.com; s=arc-20240605; b=FPTOhhJRYaGy3nwIXO+RVOCI9ERL1TekdnXqjXq0+DU06kBTvxiGUjSHp0/txrfBr5 lKkuHCYf4vc5n1Bke8aPVNGbPAGnlMglxhelEtnClfbJset+kLHEpNCGrMytwSZpjvgZ ZUPtfhIXTQ2VZK3gTxFj1kt9Gr/sCQL+hzDQNfpbYN4x6cie5EBhRtWQcOLvRJKpXO3V 3Qg29SLllsKZ1aikEIfPBuzi7qJBgmFZcv68aqywW5zvhi8JtS3sH3I8U7G3joX9GnUv sX2jcJcIkR34L7oBxvqO2Gl/S+52alqpcXIGwI7qip2dMWFiWkd0YeoGI0Zzide/w6NS bL7w== 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=ks7/Ybf+o1c0QvLpFhG7YsHbGgPwy998f+hUmEuvBwk=; fh=K/wxFLWRxELHWZi05YcnoQ9HT6otnOpLjDi5fut/5PU=; b=le+LsHjWiBcduB/tnLqqGowVi75fBikik5FpHXCqAHO9AtIuSC+iBYiWfciW1smgQG Iz2RX40u1pyaz6z3WjqdV/F+/53pAAwffHf2Hg8/7z+gh/5TJYXcme7/oMyITgDbXePz EMsRBXChdPQj/bG/oaqBjZGjB4PiDCn1W+hkrnmx5hJf2n9fXqcKnUQ6CJ54CJgcBVrR aHK1PRO4jw70GzoNTKJZ307aZ2aYJjbFqeW1pI3lNUQMCEjn49poCO8qW7kH2mB7PMPt 4vQ35cShTnu8/SHVDcul77PKnRYJUKurTU4vYqGdwyPXSsv9eOz11B1md8LoW64XDfis K0kw==; 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=20230601; t=1773694495; x=1774299295; 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=ks7/Ybf+o1c0QvLpFhG7YsHbGgPwy998f+hUmEuvBwk=; b=eMqgqhOm4cjqcO2Terp4Mx9wtRUWnMuc7KlEEcyL//XJ55+UUvvjf5pa37Pt4YbrHW cPyX+ZDXxI9JG9LxkwvZEDEJp8SP3ngokmD7b7s/Fkm7GubRFXJouXhVO1LELy/cok09 gLrGQvFoGSEqel/iUo4i8yyjLYY5fcaDCheLx6aCM/RaMC14PIUfs9Y9R6lCvEmAOlHV Dms/wM+wjKcLGZYLqAMNITGJN/o/wWfoq3zcnOXEjuy89sjWm9OKpHS+oKblRpDWV1// 17IflDNadzlYfLz5ajfGoSbui0dtsBb0WlMcBfRn/tXOBxbpCzxP2f3yvjW3ieKidzbZ GWkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773694495; x=1774299295; 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=ks7/Ybf+o1c0QvLpFhG7YsHbGgPwy998f+hUmEuvBwk=; b=IpQ/YNmL2p50Z17GrGAtSDGTlAkLjSDLMwfZE1DfXgf21dF/MKCGCrWJwccR+SYebt 6Jt/W02CeZEYzYkffmOX969PHVZ+IuB6MY3LtefD/4Oc6/bjJksatj9fS1Vlr53FFe9W C3xSnqUlIzwP9IzRiqlaqoIE861fMuOMYUgcHf17z939goHiFC/BkdJRKcq9pamuNpPz nFpzMLn5evNU3odousbli3CrTyYB0onmDOBX4BWfdBFNruSfMpgGq/mTb36iunamRQvu y+Vv8COaJenrChHnc2iSNzBQ4dE3zAh+fZvIUmujTND9uV4IL1CeRPYux1od0jNQH5Zn sZuQ== X-Forwarded-Encrypted: i=1; AJvYcCVuc5+Ib5++VnKlgFHCOyWaFCFiQRD33H/4gS/cwQ5zAPPU3a3KTAbB/Owl9p811zCf+Ri5gx4pg1bWiqMT@lists.postgresql.org X-Gm-Message-State: AOJu0Yxkx3yFQpgFSl45pe6d3nQzLpRErYLZ0y2nUKMHKr+SnNV/tX3A lTN17xrizE1JGe6lh/hufXh6xTKi86jpv9801RwaVm09MAZhcRW0TBLvwLeGvcOTJofhvGN3i15 A9lAGUJhp/thQZUV4IrthcAVtxgiAIlM= X-Gm-Gg: ATEYQzy5sgvCTIJomVLZPCTne1MwwXLO5RKivccrutH9GylVJytvQOsvGiDWed6T2tZ 1z+/vERNDbVjkXnDtIcffQrENMG6T8tsUyvyLGXEgUUyO+nG4sIzW8uJbDJ2r48ACu+wk+eMnpK J2STQnd4JiS9wIsUdD11BVRc1MZTzZA9WNG6K1yPD0I95A0LMZ2niyJPMc2tSbq98tuhvXL9iQo INevG3bZguThpYFknzrdxAt6K1cqkNptzKYAElZOm2BYyyjqanGETSR0bt1TlhygCoVa1bdjix9 ZHIebjA= X-Received: by 2002:a05:690c:112:b0:796:4f04:bbc1 with SMTP id 00721157ae682-79a1c18819amr140166917b3.36.1773694495505; Mon, 16 Mar 2026 13:54:55 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Tue, 17 Mar 2026 03:54:43 +0700 X-Gm-Features: AaiRm52bi3Z7tVf8pSfTKMKPZz-IMEXOEBqYLGT9OBRptQKpZAg57weQOr0VdDg Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Masahiko Sawada Cc: Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="00000000000058dc21064d2a6ef8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000058dc21064d2a6ef8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Mon, Mar 16, 2026 at 11:46=E2=80=AFPM Masahiko Sawada wrote: > > While both ideas can achieve our goal of this feature in general, the > new idea doesn't require an additional layer of reserve/release logic > on top of the existing bgworker pool, which is good. I've not tried > coding this idea but I believe the patch can be simplified very much. > So I agree to move to this idea. > OK, let's do it! Please, see an updated set of patches. Main changes are : 0001 patch - removed all logic related to the parallel workers reserving. 0002 patch - no changes regarding v26. 0003 patch - no changes regarding v26. 0004 patch - removed all stuff related to the "test_autovacuum" extension. Also removed 3th, 4th and 5th tests, because they were related only to the workers reserving logic. 0005 patch - minor changes reflecting the new GUC parameter's purpose. I have maintained the independence of the tests from the user-facing loggin= g. Instead of "nworkers released" logs I have added a single log at the end of one round of parallel processing : "av worker: finished parallel index processing with N parallel workers". This is the only code that I added rather than deleted within the 0001 patc= h. I hope I didn't miss anything. -- Best regards, Daniil Davydov --00000000000058dc21064d2a6ef8 Content-Type: text/x-patch; charset="US-ASCII"; name="v27-0005-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v27-0005-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmtntysp0 RnJvbSA5MjNmNmYzZDc1OGVkYjFmNjRlYWRlZjFmNWJiMWRmYjg3M2Y0YjIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAzOjIzOjM4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjcgNS81XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAgfCAxMiArKysrKysrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgfCAyMCArKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDhjZGQ4 MjZmYmQzLi43NzQxNzk2YzZiMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMjkxOCw2ICsyOTE4LDcgQEAgaW5j bHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaGVuIGNoYW5naW5n IHRoaXMgdmFsdWUsIGNvbnNpZGVyIGFsc28gYWRqdXN0aW5nCiAgICAgICAgICA8eHJlZiBsaW5r ZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4sCisgICAgICAgICA8eHJlZiBsaW5rZW5k PSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIvPiwKICAgICAgICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtbWFpbnRlbmFuY2Utd29ya2VycyIvPiwgYW5kCiAg ICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMtcGVyLWdhdGhl ciIvPi4KICAgICAgICAgPC9wYXJhPgpAQCAtOTM5NSw2ICs5Mzk2LDIzIEBAIENPUFkgcG9zdGdy ZXNfbG9nIEZST00gJy9mdWxsL3BhdGgvdG8vbG9nZmlsZS5jc3YnIFdJVEggY3N2OwogICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRy eSBpZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiIHhyZWZsYWJlbD0iYXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyI+CisgICAgICAgIDx0ZXJtPjx2YXJuYW1lPmF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90 eXBlPikKKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM8L3Zhcm5hbWU+PC9wcmltYXJ5PgorICAgICAg ICAgPHNlY29uZGFyeT5jb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvc2Vjb25kYXJ5PgorICAgICAg ICA8L2luZGV4dGVybT4KKyAgICAgICAgPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJhbGxl bCBhdXRvdmFjdXVtIHdvcmtlcnMgdGhhdAorICAgICAgICAgIGNhbiBiZSB1c2VkIGZvciBwYXJh bGxlbCBpbmRleCB2YWN1dW1pbmcgYXQgb25lIHRpbWUgYnkgYSBzaW5nbGUKKyAgICAgICAgICBh dXRvdmFjdXVtIHdvcmtlci4gSXMgY2FwcGVkIGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFy YWxsZWwtd29ya2VycyIvPi4KKyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyAyLgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg ICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbWFpbnRlbmFuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCmluZGV4 IDdjOTU4YjA2MjczLi5mMmEyODBkYjU2OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21haW50 ZW5hbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKQEAgLTkyNiw2 ICs5MjYsMTggQEAgSElOVDogIEV4ZWN1dGUgYSBkYXRhYmFzZS13aWRlIFZBQ1VVTSBpbiB0aGF0 IGRhdGFiYXNlLgogICAgIGF1dG92YWN1dW0gd29ya2VycycgYWN0aXZpdHkuCiAgICA8L3BhcmE+ CiAKKyAgIDxwYXJhPgorICAgIElmIGFuIGF1dG92YWN1dW0gd29ya2VyIHByb2Nlc3MgY29tZXMg YWNyb3NzIGEgdGFibGUgd2l0aCB0aGUgZW5hYmxlZAorICAgIDx4cmVmIGxpbmtlbmQ9InJlbG9w dGlvbi1hdXRvdmFjdXVtLXBhcmFsbGVsLXdvcmtlcnMiLz4gc3RvcmFnZSBwYXJhbWV0ZXIsCisg ICAgaXQgd2lsbCBsYXVuY2ggcGFyYWxsZWwgd29ya2VycyBpbiBvcmRlciB0byB2YWN1dW0gaW5k ZXhlcyBvZiB0aGlzIHRhYmxlCisgICAgaW4gYSBwYXJhbGxlbCBtb2RlLiBQYXJhbGxlbCB3b3Jr ZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBwb29sIG9mIHByb2Nlc3NlcworICAgIGVzdGFibGlzaGVk IGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtd29ya2VyLXByb2Nlc3NlcyIvPiwgbGltaXRlZCBi eQorICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIvPi4KKyAgICBU aGUgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgdGhhdCBjYW4gYmUgdGFrZW4gZnJvbSBwb29s IGJ5IGEgc2luZ2xlCisgICAgYXV0b3ZhY3V1bSB3b3JrZXIgaXMgbGltaXRlZCBieSB0aGUgPHhy ZWYgbGlua2VuZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4KKyAgICBj b25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgIDwvcGFyYT4KKwogICAgPHBhcmE+CiAgICAgSWYg c2V2ZXJhbCBsYXJnZSB0YWJsZXMgYWxsIGJlY29tZSBlbGlnaWJsZSBmb3IgdmFjdXVtaW5nIGlu IGEgc2hvcnQKICAgICBhbW91bnQgb2YgdGltZSwgYWxsIGF1dG92YWN1dW0gd29ya2VycyBtaWdo dCBiZWNvbWUgb2NjdXBpZWQgd2l0aApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXgg OTgyNTMyZmU3MjUuLjQ4OTRkZTAyMWNkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwK QEAgLTE3MTgsNiArMTcxOCwyNiBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICA8dmFybGlzdGVudHJ5IGlkPSJyZWxvcHRp b24tYXV0b3ZhY3V1bS1wYXJhbGxlbC13b3JrZXJzIiB4cmVmbGFiZWw9ImF1dG92YWN1dW1fcGFy YWxsZWxfd29ya2VycyI+CisgICAgPHRlcm0+PGxpdGVyYWw+YXV0b3ZhY3V1bV9wYXJhbGxlbF93 b3JrZXJzPC9saXRlcmFsPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgPGluZGV4dGVybT4K KyAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzPC92YXJu YW1lPiBzdG9yYWdlIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICA8L2luZGV4dGVybT4KKyAgICA8 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNldHMgdGhlIG1heGlt dW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyB0aGF0IGNhbiBwcm9jZXNz CisgICAgICBpbmRleGVzIG9mIHRoaXMgdGFibGUuCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBp cyAtMSwgd2hpY2ggbWVhbnMgbm8gcGFyYWxsZWwgaW5kZXggdmFjdXVtaW5nIGZvcgorICAgICAg dGhpcyB0YWJsZS4gSWYgdmFsdWUgaXMgMCB0aGVuIHBhcmFsbGVsIGRlZ3JlZSB3aWxsIGNvbXB1 dGVkIGJhc2VkIG9uCisgICAgICBudW1iZXIgb2YgaW5kZXhlcy4KKyAgICAgIE5vdGUgdGhhdCB0 aGUgY29tcHV0ZWQgbnVtYmVyIG9mIHdvcmtlcnMgbWF5IG5vdCBhY3R1YWxseSBiZSBhdmFpbGFi bGUgYXQKKyAgICAgIHJ1biB0aW1lLiBJZiB0aGlzIG9jY3VycywgdGhlIGF1dG92YWN1dW0gd2ls bCBydW4gd2l0aCBmZXdlciB3b3JrZXJzCisgICAgICB0aGFuIGV4cGVjdGVkLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5IGlkPSJyZWxvcHRpb24tYXV0b3ZhY3V1bS12YWN1dW0tdGhyZXNob2xkIiB4cmVmbGFiZWw9 ImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+YXV0b3Zh Y3V1bV92YWN1dW1fdGhyZXNob2xkPC9saXRlcmFsPiwgPGxpdGVyYWw+dG9hc3QuYXV0b3ZhY3V1 bV92YWN1dW1fdGhyZXNob2xkPC9saXRlcmFsPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCiAgICAg PGluZGV4dGVybT4KLS0gCjIuNDMuMAoK --00000000000058dc21064d2a6ef8 Content-Type: text/x-patch; charset="US-ASCII"; name="v27-0004-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v27-0004-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmtntyt71 RnJvbSA0MjE5YjJjZjQ4NjljM2JhYjEzMDY0MmZiMjQzNDQxYWYyNjkwNmFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjUwOjIzICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjcgNC81XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDI1ICsrKwogc3JjL3Rlc3QvbW9k dWxlcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L21vZHVs ZXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlICAgfCAgIDIgKwogc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUgICAgIHwgIDIwICsrKwogc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQgIHwgIDE1ICsrCiAuLi4vdC8wMDFfcGFyYWxsZWxf YXV0b3ZhY3V1bS5wbCAgICAgICAgICAgICAgfCAxNjkgKysrKysrKysrKysrKysrKysrCiA4IGZp bGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJh bGxlbF9hdXRvdmFjdXVtLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4 IGNjY2FlZTViNjIwLi40Zjk3YmFjZWQyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwpAQCAtMTUyLDYgKzE1Miw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcmVhZF9zdHJlYW0uaCIK KyNpbmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lz Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19ydXNhZ2UuaCIKICNpbmNsdWRlICJ1dGlscy90 aW1lc3RhbXAuaCIKQEAgLTg3Myw2ICs4NzQsMTQgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9u IHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAlsYXp5X2NoZWNrX3dyYXBhcm91bmRf ZmFpbHNhZmUodmFjcmVsKTsKIAlkZWFkX2l0ZW1zX2FsbG9jKHZhY3JlbCwgcGFyYW1zLm53b3Jr ZXJzKTsKIAorI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJLyoKKwkgKiBUcmlnZ2VyIGlu amVjdGlvbiBwb2ludCwgaWYgcGFyYWxsZWwgYXV0b3ZhY3V1bSBpcyBhYm91dCB0byBiZSBzdGFy dGVkLgorCSAqLworCWlmIChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYgUGFyYWxsZWxW YWN1dW1Jc0FjdGl2ZSh2YWNyZWwpKQorCQlJTkpFQ1RJT05fUE9JTlQoImF1dG92YWN1dW0tc3Rh cnQtcGFyYWxsZWwtdmFjdXVtIiwgTlVMTCk7CisjZW5kaWYKKwogCS8qCiAJICogQ2FsbCBsYXp5 X3NjYW5faGVhcCB0byBwZXJmb3JtIGFsbCByZXF1aXJlZCBoZWFwIHBydW5pbmcsIGluZGV4CiAJ ICogdmFjdXVtaW5nLCBhbmQgaGVhcCB2YWN1dW1pbmcgKHBsdXMgcmVsYXRlZCBwcm9jZXNzaW5n KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggZjRmY2ViOTY4NzQuLjg5 ZWFjZWJhNTVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxl bC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTQ2LDYg KzQ2LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9pbmpl Y3Rpb25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKIApAQCAtNjU1LDYgKzY1NiwxNCBAQCBwYXJhbGxlbF92YWN1dW1fdXBkYXRl X3NoYXJlZF9kZWxheV9wYXJhbXModm9pZCkKIAlWYWN1dW1VcGRhdGVDb3N0cygpOwogCiAJc2hh cmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsID0gcGFyYW1zX2dlbmVyYXRpb247CisKKwllbG9n KERFQlVHMiwKKwkJICJwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciBjb3N0IHBhcmFtczogY29z dF9saW1pdD0lZCwgY29zdF9kZWxheT0lZywgY29zdF9wYWdlX21pc3M9JWQsIGNvc3RfcGFnZV9k aXJ0eT0lZCwgY29zdF9wYWdlX2hpdD0lZCIsCisJCSB2YWN1dW1fY29zdF9saW1pdCwKKwkJIHZh Y3V1bV9jb3N0X2RlbGF5LAorCQkgVmFjdXVtQ29zdFBhZ2VNaXNzLAorCQkgVmFjdXVtQ29zdFBh Z2VEaXJ0eSwKKwkJIFZhY3V1bUNvc3RQYWdlSGl0KTsKIH0KIAogLyoKQEAgLTg5OCw2ICs5MDcs MTUgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1T dGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJCQkJCQlwdnMtPnBjeHQtPm53b3JrZXJz X2xhdW5jaGVkLCBud29ya2VycykpKTsKIAl9CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5U UworCS8qCisJICogVGhpcyBpbmplY3Rpb24gcG9pbnQgaXMgdXNlZCB0byB3YWl0IHVudGlsIHBh cmFsbGVsIGF1dG92YWN1dW0gd29ya2VycworCSAqIGZpbmlzaGVzIHRoZWlyIHBhcnQgb2YgaW5k ZXggcHJvY2Vzc2luZy4KKwkgKi8KKwlpZiAobndvcmtlcnMgPiAwKQorCQlJTkpFQ1RJT05fUE9J TlQoImF1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmciLCBOVUxMKTsK KyNlbmRpZgorCiAJLyogVmFjdXVtIHRoZSBpbmRleGVzIHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBi eSBvbmx5IGxlYWRlciBwcm9jZXNzICovCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfdW5zYWZl X2luZGV4ZXMocHZzKTsKIApAQCAtOTE4LDYgKzkzNiwxMyBAQCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhf c2NhbgogCiAJCWZvciAoaW50IGkgPSAwOyBpIDwgcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hl ZDsgaSsrKQogCQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJnB2cy0+YnVmZmVyX3VzYWdlW2ld LCAmcHZzLT53YWxfdXNhZ2VbaV0pOworCisJCWlmIChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNz KCkpCisJCQllbG9nKERFQlVHMiwKKwkJCQkgbmdldHRleHQoImF1dG92YWN1dW0gd29ya2VyOiBm aW5pc2hlZCBwYXJhbGxlbCBpbmRleCBwcm9jZXNzaW5nIHdpdGggJWQgcGFyYWxsZWwgd29ya2Vy IiwKKwkJCQkJCSAgImF1dG92YWN1dW0gd29ya2VyOiBmaW5pc2hlZCBwYXJhbGxlbCBpbmRleCBw cm9jZXNzaW5nIHdpdGggJWQgcGFyYWxsZWwgd29ya2VycyIsCisJCQkJCQkgIG53b3JrZXJzKSwK KwkJCQkgbndvcmtlcnMpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQppbmRleCA0YWM1Yzg0ZGI0My4u MDFmZTAwNDFjOTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKKysrIGIv c3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQpAQCAtMTYsNiArMTYsNyBAQCBTVUJESVJTID0gXAog CQkgIHBsc2FtcGxlIFwKIAkJICBzcGdpc3RfbmFtZV9vcHMgXAogCQkgIHRlc3RfYWlvIFwKKwkJ ICB0ZXN0X2F1dG92YWN1dW0gXAogCQkgIHRlc3RfYmluYXJ5aGVhcCBcCiAJCSAgdGVzdF9iaXRt YXBzZXQgXAogCQkgIHRlc3RfYmxvb21maWx0ZXIgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggZTJi M2VlZjQxMzYuLjlkY2RjNjhiYzg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29u LmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTE2LDYgKzE2LDcg QEAgc3ViZGlyKCdwbHNhbXBsZScpCiBzdWJkaXIoJ3NwZ2lzdF9uYW1lX29wcycpCiBzdWJkaXIo J3NzbF9wYXNzcGhyYXNlX2NhbGxiYWNrJykKIHN1YmRpcigndGVzdF9haW8nKQorc3ViZGlyKCd0 ZXN0X2F1dG92YWN1dW0nKQogc3ViZGlyKCd0ZXN0X2JpbmFyeWhlYXAnKQogc3ViZGlyKCd0ZXN0 X2JpdG1hcHNldCcpCiBzdWJkaXIoJ3Rlc3RfYmxvb21maWx0ZXInKQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjcxNmUxN2Y1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDIgQEAKKyMgR2VuZXJh dGVkIHN1YmRpcmVjdG9yaWVzCisvdG1wX2NoZWNrLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MTg4ZWM5Zjk2YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQpAQCAtMCwwICsxLDIwIEBACisjIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL01ha2VmaWxlCisKK1BHRklMRURFU0MgPSAidGVzdF9hdXRvdmFjdXVtIC0g dGVzdCBjb2RlIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtIgorCitUQVBfVEVTVFMgPSAxCisKK0VY VFJBX0lOU1RBTEwgPSBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMKKworZXhwb3J0 IGVuYWJsZV9pbmplY3Rpb25fcG9pbnRzCisKK2lmZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBw Z19jb25maWcKK1BHWFMgOj0gJChzaGVsbCAkKFBHX0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAk KFBHWFMpCitlbHNlCitzdWJkaXIgPSBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bQor dG9wX2J1aWxkZGlyID0gLi4vLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9N YWtlZmlsZS5nbG9iYWwKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmliL2NvbnRyaWItZ2xv YmFsLm1rCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNvbi5i dWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODZlMzkyYmMwZGUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNv bi5idWlsZApAQCAtMCwwICsxLDE1IEBACisjIENvcHlyaWdodCAoYykgMjAyNC0yMDI2LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit0ZXN0cyArPSB7CisgICduYW1lJzog J3Rlc3RfYXV0b3ZhY3V1bScsCisgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLAor ICAnYmQnOiBtZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpLAorICAndGFwJzogeworICAgICdlbnYn OiB7CisgICAgICAgJ2VuYWJsZV9pbmplY3Rpb25fcG9pbnRzJzogZ2V0X29wdGlvbignaW5qZWN0 aW9uX3BvaW50cycpID8gJ3llcycgOiAnbm8nLAorICAgIH0sCisgICAgJ3Rlc3RzJzogWworICAg ICAgJ3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwnLAorICAgIF0sCisgIH0sCit9CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9h dXRvdmFjdXVtLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFy YWxsZWxfYXV0b3ZhY3V1bS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uOWFkODdkNDhiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf YXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsCkBAIC0wLDAgKzEsMTY5IEBA CisjIFRlc3QgcGFyYWxsZWwgYXV0b3ZhY3V1bSBiZWhhdmlvcgorCit1c2Ugd2FybmluZ3MgRkFU QUwgPT4gJ2FsbCc7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitpZiAoJEVOVntlbmFibGVfaW5q ZWN0aW9uX3BvaW50c30gbmUgJ3llcycpCit7CisJcGxhbiBza2lwX2FsbCA9PiAnSW5qZWN0aW9u IHBvaW50cyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQnOworfQorCisjIEJlZm9yZSBlYWNo IHRlc3Qgd2Ugc2hvdWxkIGRpc2FibGUgYXV0b3ZhY3V1bSBmb3IgJ3Rlc3RfYXV0b3ZhYycgdGFi bGUgYW5kCisjIGdlbmVyYXRlIHNvbWUgZGVhZCB0dXBsZXMgaW4gaXQuCisKK3N1YiBwcmVwYXJl X2Zvcl9uZXh0X3Rlc3QKK3sKKwlteSAoJG5vZGUsICR0ZXN0X251bWJlcikgPSBAXzsKKworCSRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3Zh YyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsKKwkJVVBEQVRFIHRlc3RfYXV0b3Zh YyBTRVQgY29sXzEgPSAkdGVzdF9udW1iZXI7CisJfSk7Cit9CisKKworbXkgJHBzcWxfb3V0Owor CitteSAkbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZTEnKTsKKyRu b2RlLT5pbml0OworCisjIENvbmZpZ3VyZSBwb3N0Z3Jlcywgc28gaXQgY2FuIGxhdW5jaCBwYXJh bGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMsIGxvZyBhbGwKKyMgaW5mb3JtYXRpb24gd2UgYXJlIGlu dGVyZXN0ZWQgaW4gYW5kIGF1dG92YWN1dW0gd29ya3MgZnJlcXVlbnRseQorJG5vZGUtPmFwcGVu ZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxcXsKKwltYXhfd29ya2VyX3Byb2Nlc3NlcyA9IDIw CisJbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyMAorCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dv cmtlcnMgPSA0CisJbG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnMgorCWF1dG92YWN1dW1fbmFwdGlt ZSA9ICcxcycKKwltaW5fcGFyYWxsZWxfaW5kZXhfc2Nhbl9zaXplID0gMAorfSk7Ciskbm9kZS0+ c3RhcnQ7CisKKyMgQ2hlY2sgaWYgdGhlIGV4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRzIGlzIGF2 YWlsYWJsZSwgYXMgaXQgbWF5IGJlCisjIHBvc3NpYmxlIHRoYXQgdGhpcyBzY3JpcHQgaXMgcnVu IHdpdGggaW5zdGFsbGNoZWNrLCB3aGVyZSB0aGUgbW9kdWxlCisjIHdvdWxkIG5vdCBiZSBpbnN0 YWxsZWQgYnkgZGVmYXVsdC4KK2lmICghJG5vZGUtPmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9u X3BvaW50cycpKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0V4dGVuc2lvbiBpbmplY3Rpb25fcG9p bnRzIG5vdCBpbnN0YWxsZWQnOworfQorCisjIENyZWF0ZSBhbGwgZnVuY3Rpb25zIG5lZWRlZCBm b3IgdGVzdGluZworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlDUkVBVEUgRVhU RU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9KTsKKworbXkgJGluZGV4ZXNfbnVtID0gNDsKK215 ICRpbml0aWFsX3Jvd3NfbnVtID0gMTBfMDAwOworbXkgJGF1dG92YWN1dW1fcGFyYWxsZWxfd29y a2VycyA9IDI7CisKKyMgQ3JlYXRlIHRhYmxlIGFuZCBmaWxsIGl0IHdpdGggc29tZSBkYXRhCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUNSRUFURSBUQUJMRSB0ZXN0X2F1dG92 YWMgKAorCQlpZCBTRVJJQUwgUFJJTUFSWSBLRVksCisJCWNvbF8xIElOVEVHRVIsICBjb2xfMiBJ TlRFR0VSLCAgY29sXzMgSU5URUdFUiwgIGNvbF80IElOVEVHRVIKKwkpIFdJVEggKGF1dG92YWN1 dW1fcGFyYWxsZWxfd29ya2VycyA9ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMsCisJCQls b2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSAwKTsKKworCUlOU0VSVCBJTlRPIHRlc3RfYXV0 b3ZhYworCVNFTEVDVAorCQlnIEFTIGNvbDEsCisJCWcgKyAxIEFTIGNvbDIsCisJCWcgKyAyIEFT IGNvbDMsCisJCWcgKyAzIEFTIGNvbDQKKwlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkaW5pdGlh bF9yb3dzX251bSkgQVMgZzsKK30pOworCisjIENyZWF0ZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGIt dHJlZSBpbmRleGVzIG9uIHRoZSB0YWJsZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cXsKKwlETyBcJFwkCisJREVDTEFSRQorCQlpIElOVEVHRVI7CisJQkVHSU4KKwkJRk9SIGkgSU4g MS4uJGluZGV4ZXNfbnVtIExPT1AKKwkJCUVYRUNVVEUgZm9ybWF0KCdDUkVBVEUgSU5ERVggaWR4 X2NvbF9cJXMgT04gdGVzdF9hdXRvdmFjIChjb2xfXCVzKTsnLCBpLCBpKTsKKwkJRU5EIExPT1A7 CisJRU5EIFwkXCQ7Cit9KTsKKworIyBUZXN0IDEgOgorIyBPdXIgdGFibGUgaGFzIGVub3VnaCBp bmRleGVzIGFuZCBhcHByb3ByaWF0ZSByZWxvcHRpb25zLCBzbyBhdXRvdmFjdXVtIG11c3QKKyMg YmUgYWJsZSB0byBwcm9jZXNzIGl0IGluIHBhcmFsbGVsIG1vZGUuIEp1c3QgY2hlY2sgaWYgaXQg Y2FuIGRvIGl0LgorCitwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDEpOworCiskbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQg KGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1bnRpbCB0aGUgcGFy YWxsZWwgYXV0b3ZhY3V1bSBvbiB0YWJsZSBpcyBjb21wbGV0ZWQuIEF0IHRoZSBzYW1lIHRpbWUs CisjIHdlIGNoZWNrIHRoYXQgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJz IGhhcyBiZWVuIHN0YXJ0ZWQuCiskbG9nX3N0YXJ0ID0gJG5vZGUtPndhaXRfZm9yX2xvZygKKwlx ci9hdXRvdmFjdXVtIHdvcmtlcjogZmluaXNoZWQgcGFyYWxsZWwgaW5kZXggcHJvY2Vzc2luZyB3 aXRoIDIgcGFyYWxsZWwgd29ya2Vycy8sCisJJGxvZ19zdGFydAorKTsKKworIyBUZXN0IDI6Cisj IENoZWNrIHdoZXRoZXIgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIgY2FuIHByb3BhZ2F0ZSBj b3N0LWJhc2VkIHBhcmFtZXRlcnMKKyMgdG8gdGhlIHBhcmFsbGVsIHdvcmtlcnMuCisKK3ByZXBh cmVfZm9yX25leHRfdGVzdCgkbm9kZSwgMik7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXF7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0 LXBhcmFsbGVsLXZhY3V1bScsICd3YWl0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0 YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJywgJ3dhaXQn KTsKKworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fcGFyYWxsZWxf d29ya2VycyA9IDEsIGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1 bnRpbCBwYXJhbGxlbCBhdXRvdmFjdXVtIGlzIGluaXRlZAorJG5vZGUtPndhaXRfZm9yX2V2ZW50 KAorCSdhdXRvdmFjdXVtIHdvcmtlcicsCisJJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFj dXVtJworKTsKKworIyBSZWxvYWQgY29uZmlnIC0gbGVhZGVyIHdvcmtlciBtdXN0IHVwZGF0ZSBp dHMgb3duIHBhcmFtZXRlcnMgZHVyaW5nIGluZGV4ZXMKKyMgcHJvY2Vzc2luZworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0X2xp bWl0ID0gNTAwOworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfcGFnZV9taXNzID0gMTA7 CisJQUxURVIgU1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX2RpcnR5ID0gMTA7CisJQUxURVIg U1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX2hpdCA9IDEwOworCVNFTEVDVCBwZ19yZWxvYWRf Y29uZigpOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1 bScpOworfSk7CisKKyMgTm93IHdhaXQgdW50aWwgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIg Y29tcGxldGVzIHByb2Nlc3NpbmcgdGFibGUgKGkuZS4KKyMgZ3VhcmFudGVlZCB0byBjYWxsIHZh Y3V1bV9kZWxheV9wb2ludCkgYW5kIGxhdW5jaGVzIHBhcmFsbGVsIHdvcmtlci4KKyRub2RlLT53 YWl0X2Zvcl9ldmVudCgKKwknYXV0b3ZhY3V1bSB3b3JrZXInLAorCSdhdXRvdmFjdXVtLWxlYWRl ci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJworKTsKKworIyBDaGVjayB3aGV0aGVyIHBhcmFs bGVsIHdvcmtlciBzdWNjZXNzZnVsbHkgdXBkYXRlZCBhbGwgcGFyYW1ldGVycyBkdXJpbmcKKyMg aW5kZXggcHJvY2Vzc2luZworJGxvZ19zdGFydCA9ICRub2RlLT53YWl0X2Zvcl9sb2coCisJcXIv cGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgY29zdCBwYXJhbXM6IGNvc3RfbGltaXQ9NTAwLCBj b3N0X2RlbGF5PTIsIC8gLgorCXFyL2Nvc3RfcGFnZV9taXNzPTEwLCBjb3N0X3BhZ2VfZGlydHk9 MTAsIGNvc3RfcGFnZV9oaXQ9MTAvLAorCSRsb2dfc3RhcnQKKyk7CisKKyMgQ2xlYW51cAorJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193 YWtldXAoJ2F1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKKwor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxl bC12YWN1dW0nKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1dW0t bGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKKworCUFMVEVSIFRBQkxFIHRlc3Rf YXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9ICRhdXRvdmFjdXVtX3Bh cmFsbGVsX3dvcmtlcnMpOworfSk7CisKKyMgV2Ugd2VyZSBhYmxlIHRvIGdldCB0byB0aGlzIHBv aW50LCBzbyBldmVyeXRoaW5nIGlzIGZpbmUuCitvaygxKTsKKworJG5vZGUtPnN0b3A7Citkb25l X3Rlc3RpbmcoKTsKLS0gCjIuNDMuMAoK --00000000000058dc21064d2a6ef8 Content-Type: text/x-patch; charset="US-ASCII"; name="v27-0002-Logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v27-0002-Logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmtntytn3 RnJvbSA1YmNjZjJhZGI1MmY1N2UxYWI5YWMwNjE2YWQyYTUyYTdjZjEyNWNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE5OjAxOjA1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjcgMi81XSBMb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgfCAzMiArKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAyNiArKysrKysr KysrKysrKysrKy0tLS0tCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgIHwg MjggKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgfCAgMiArKwogNCBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAxMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggODJjNWIy OGUwYWQuLmNjY2FlZTViNjIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC0zNDMsNiArMzQzLDEzIEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAlpbnQJCQludW1f aW5kZXhfc2NhbnM7CiAJaW50CQkJbnVtX2RlYWRfaXRlbXNfcmVzZXRzOwogCVNpemUJCXRvdGFs X2RlYWRfaXRlbXNfYnl0ZXM7CisKKwkvKgorCSAqIFRvdGFsIG51bWJlciBvZiBwbGFubmVkIGFu ZCBhY3R1YWxseSBsYXVuY2hlZCBwYXJhbGxlbCB3b3JrZXJzIGZvcgorCSAqIGluZGV4IHNjYW5z LgorCSAqLworCVBWV29ya2Vyc1VzYWdlIHdvcmtlcnNfdXNhZ2U7CisKIAkvKiBDb3VudGVycyB0 aGF0IGZvbGxvdyBhcmUgb25seSBmb3Igc2Nhbm5lZF9wYWdlcyAqLwogCWludDY0CQl0dXBsZXNf ZGVsZXRlZDsgLyogIyBkZWxldGVkIGZyb20gdGFibGUgKi8KIAlpbnQ2NAkJdHVwbGVzX2Zyb3pl bjsJLyogIyBuZXdseSBmcm96ZW4gKi8KQEAgLTc4MSw2ICs3ODgsMTEgQEAgaGVhcF92YWN1dW1f cmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAl2YWNyZWwtPm5l d19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzID0gMDsKIAl2YWNyZWwtPm5ld19hbGxfZnJv emVuX3BhZ2VzID0gMDsKIAorCXZhY3JlbC0+d29ya2Vyc191c2FnZS52YWN1dW0ubmxhdW5jaGVk ID0gMDsKKwl2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFubmVkID0gMDsKKwl2YWNy ZWwtPndvcmtlcnNfdXNhZ2UuY2xlYW51cC5ubGF1bmNoZWQgPSAwOworCXZhY3JlbC0+d29ya2Vy c191c2FnZS5jbGVhbnVwLm5wbGFubmVkID0gMDsKKwogCS8qCiAJICogR2V0IGN1dG9mZnMgdGhh dCBkZXRlcm1pbmUgd2hpY2ggZGVsZXRlZCB0dXBsZXMgYXJlIGNvbnNpZGVyZWQgREVBRCwKIAkg KiBub3QganVzdCBSRUNFTlRMWV9ERUFELCBhbmQgd2hpY2ggWElEcy9NWElEcyB0byBmcmVlemUu ICBUaGVuIGRldGVybWluZQpAQCAtMTEyMyw2ICsxMTM1LDIwIEBAIGhlYXBfdmFjdXVtX3JlbChS ZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkJIG9yaWdfcmVs X3BhZ2VzID09IDAgPyAxMDAuMCA6CiAJCQkJCQkJIDEwMC4wICogdmFjcmVsLT5scGRlYWRfaXRl bV9wYWdlcyAvIG9yaWdfcmVsX3BhZ2VzLAogCQkJCQkJCSB2YWNyZWwtPmxwZGVhZF9pdGVtcyk7 CisJCQlpZiAodmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ucGxhbm5lZCA+IDApCisJCQl7 CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLAorCQkJCQkJCQkgXygicGFyYWxsZWwgd29ya2Vy czogaW5kZXggdmFjdXVtOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZCBpbiB0b3RhbFxuIiksCisJ CQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFubmVkLAorCQkJCQkJCQkg dmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ubGF1bmNoZWQpOworCQkJfQorCQkJaWYgKHZh Y3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5wbGFubmVkID4gMCkKKwkJCXsKKwkJCQlhcHBl bmRTdHJpbmdJbmZvKCZidWYsCisJCQkJCQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRleCBj bGVhbnVwOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZFxuIiksCisJCQkJCQkJCSB2YWNyZWwtPndv cmtlcnNfdXNhZ2UuY2xlYW51cC5ucGxhbm5lZCwKKwkJCQkJCQkJIHZhY3JlbC0+d29ya2Vyc191 c2FnZS5jbGVhbnVwLm5sYXVuY2hlZCk7CisJCQl9CiAJCQlmb3IgKGludCBpID0gMDsgaSA8IHZh Y3JlbC0+bmluZGV4ZXM7IGkrKykKIAkJCXsKIAkJCQlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlz dGF0ID0gdmFjcmVsLT5pbmRzdGF0c1tpXTsKQEAgLTI2NjksNyArMjY5NSw4IEBAIGxhenlfdmFj dXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAl7CiAJCS8qIE91dHNvdXJjZSBl dmVyeXRoaW5nIHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2J1bGtk ZWxfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIG9sZF9saXZlX3R1cGxlcywKLQkJCQkJCQkJCQkJ dmFjcmVsLT5udW1faW5kZXhfc2NhbnMpOworCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9z Y2FucywKKwkJCQkJCQkJCQkJJnZhY3JlbC0+d29ya2Vyc191c2FnZSk7CiAKIAkJLyoKIAkJICog RG8gYSBwb3N0Y2hlY2sgdG8gY29uc2lkZXIgYXBwbHlpbmcgd3JhcGFyb3VuZCBmYWlsc2FmZSBu b3cuICBOb3RlCkBAIC0zMTAzLDcgKzMxMzAsOCBAQCBsYXp5X2NsZWFudXBfYWxsX2luZGV4ZXMo TFZSZWxTdGF0ZSAqdmFjcmVsKQogCQkvKiBPdXRzb3VyY2UgZXZlcnl0aGluZyB0byBwYXJhbGxl bCB2YXJpYW50ICovCiAJCXBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKHZhY3Jl bC0+cHZzLCByZWx0dXBsZXMsCiAJCQkJCQkJCQkJCXZhY3JlbC0+bnVtX2luZGV4X3NjYW5zLAot CQkJCQkJCQkJCQllc3RpbWF0ZWRfY291bnQpOworCQkJCQkJCQkJCQllc3RpbWF0ZWRfY291bnQs CisJCQkJCQkJCQkJCSZ2YWNyZWwtPndvcmtlcnNfdXNhZ2UpOwogCX0KIAogCS8qIFJlc2V0IHRo ZSBwcm9ncmVzcyBjb3VudGVycyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMK aW5kZXggY2FmYTBhNGQ0OTQuLjVkZWE0Mzc0ZWM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdHJ1Y3QgUGFyYWxsZWxWYWN1dW1TdGF0 ZQogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICpp bmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCQkJCQkJCQkJCQlib29sICp3 aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vz c19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2Nh bnMsCi0JCQkJCQkJCQkJCQlib29sIHZhY3V1bSk7CisJCQkJCQkJCQkJCQlib29sIHZhY3V1bSwg UFZXb3JrZXJzU3RhdHMgKndzdGF0cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19zYWZlX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIHN0YXRpYyB2b2lk IHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Vuc2FmZV9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgo UGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCkBAIC01MDIsNyArNTAy LDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Jlc2V0X2RlYWRfaXRlbXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzKQogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQ YXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJ CWludCBudW1faW5kZXhfc2NhbnMpCisJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLCBQVldv cmtlcnNVc2FnZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApA QCAtNTEzLDcgKzUxMyw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBh cmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQt PnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9j b3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMs IG51bV9pbmRleF9zY2FucywgdHJ1ZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2lu ZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIHRydWUsCisJCQkJCQkJCQkJJnd1c2FnZS0+dmFj dXVtKTsKIH0KIAogLyoKQEAgLTUyMSw3ICs1MjIsOCBAQCBwYXJhbGxlbF92YWN1dW1fYnVsa2Rl bF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1 cAogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxl bFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJCWludCBu dW1faW5kZXhfc2NhbnMsIGJvb2wgZXN0aW1hdGVkX2NvdW50KQorCQkJCQkJCQkJaW50IG51bV9p bmRleF9zY2FucywgYm9vbCBlc3RpbWF0ZWRfY291bnQsCisJCQkJCQkJCQlQVldvcmtlcnNVc2Fn ZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTMzLDcg KzUzNSw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxl cyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IGVz dGltYXRlZF9jb3VudDsKIAotCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKHB2 cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxs X2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIGZhbHNlLAorCQkJCQkJCQkJCSZ3dXNhZ2Ut PmNsZWFudXApOwogfQogCiAvKgpAQCAtNjE1LDEwICs2MTgsMTMgQEAgcGFyYWxsZWxfdmFjdXVt X2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJl cXVlc3RlZCwKIC8qCiAgKiBQZXJmb3JtIGluZGV4IHZhY3V1bSBvciBpbmRleCBjbGVhbnVwIHdp dGggcGFyYWxsZWwgd29ya2Vycy4gIFRoaXMgZnVuY3Rpb24KICAqIG11c3QgYmUgdXNlZCBieSB0 aGUgcGFyYWxsZWwgdmFjdXVtIGxlYWRlciBwcm9jZXNzLgorICoKKyAqIElmIHdzdGF0cyBpcyBu b3QgTlVMTCwgdGhlIHN0YXRpc3RpY3MgaXQgc3RvcmVzIHdpbGwgYmUgdXBkYXRlZCBhY2NvcmRp bmcKKyAqIHRvIHdoYXQgaGFwcGVucyBkdXJpbmcgZnVuY3Rpb24gZXhlY3V0aW9uLgogICovCiBz dGF0aWMgdm9pZAogcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1 dW0pCisJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJzU3RhdHMgKndzdGF0cykKIHsKIAlp bnQJCQlud29ya2VyczsKIAlQVkluZFZhY1N0YXR1cyBuZXdfc3RhdHVzOwpAQCAtNjU1LDYgKzY2 MSwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1 bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCSAqLwogCW53b3JrZXJzID0gTWluKG53 b3JrZXJzLCBwdnMtPnBjeHQtPm53b3JrZXJzKTsKIAorCS8qIFJlbWVtYmVyIHRoaXMgdmFsdWUs IGlmIHdlIGFza2VkIHRvICovCisJaWYgKHdzdGF0cyAhPSBOVUxMICYmIG53b3JrZXJzID4gMCkK KwkJd3N0YXRzLT5ucGxhbm5lZCArPSBud29ya2VyczsKKwogCS8qCiAJICogU2V0IGluZGV4IHZh Y3V1bSBzdGF0dXMgYW5kIG1hcmsgd2hldGhlciBwYXJhbGxlbCB2YWN1dW0gd29ya2VyIGNhbgog CSAqIHByb2Nlc3MgaXQuCkBAIC03MTEsNiArNzIxLDEwIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9j ZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9z Y2FuCiAJCQkvKiBFbmFibGUgc2hhcmVkIGNvc3QgYmFsYW5jZSBmb3IgbGVhZGVyIGJhY2tlbmQg Ki8KIAkJCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihwdnMtPnNoYXJlZC0+Y29zdF9iYWxh bmNlKTsKIAkJCVZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gJihwdnMtPnNoYXJlZC0+YWN0aXZlX253 b3JrZXJzKTsKKworCQkJLyogUmVtZW1iZXIgdGhpcyB2YWx1ZSwgaWYgd2UgYXNrZWQgdG8gKi8K KwkJCWlmICh3c3RhdHMgIT0gTlVMTCkKKwkJCQl3c3RhdHMtPm5sYXVuY2hlZCArPSBwdnMtPnBj eHQtPm53b3JrZXJzX2xhdW5jaGVkOwogCQl9CiAKIAkJaWYgKHZhY3V1bSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmgKaW5kZXggZTg4NWE0YjljNzcuLjFkODIwOTE1ZDcxIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0u aApAQCAtMzAwLDYgKzMwMCwyOCBAQCB0eXBlZGVmIHN0cnVjdCBWYWNEZWFkSXRlbXNJbmZvCiAJ aW50NjQJCW51bV9pdGVtczsJCS8qIGN1cnJlbnQgIyBvZiBlbnRyaWVzICovCiB9IFZhY0RlYWRJ dGVtc0luZm87CiAKKy8qCisgKiBIZWxwZXIgZm9yIHRoZSBQVldvcmtlcnNVc2FnZSBzdHJ1Y3R1 cmUgKHNlZSBiZWxvdyksIHRvIGF2b2lkIHJlcGV0aXRpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0 IFBWV29ya2Vyc1N0YXRzCit7CisJLyogTnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgd2UgYXJl IHBsYW5uZWQgdG8gbGF1bmNoICovCisJaW50CQkJbnBsYW5uZWQ7CisKKwkvKiBOdW1iZXIgb2Yg bGF1bmNoZWQgcGFyYWxsZWwgd29ya2VycyAqLworCWludAkJCW5sYXVuY2hlZDsKK30gUFZXb3Jr ZXJzU3RhdHM7CisKKy8qCisgKiBQVldvcmtlcnNVc2FnZSBzdG9yZXMgaW5mb3JtYXRpb24gYWJv dXQgdG90YWwgbnVtYmVyIG9mIGxhdW5jaGVkIGFuZAorICogcGxhbm5lZCB3b3JrZXJzIGR1cmlu ZyBwYXJhbGxlbCB2YWN1dW0gKGJvdGggZm9yIHZhY3V1bSBhbmQgY2xlYW51cCkuCisgKi8KK3R5 cGVkZWYgc3RydWN0IFBWV29ya2Vyc1VzYWdlCit7CisJUFZXb3JrZXJzU3RhdHMgdmFjdXVtOwor CVBWV29ya2Vyc1N0YXRzIGNsZWFudXA7Cit9IFBWV29ya2Vyc1VzYWdlOworCiAvKiBHVUMgcGFy YW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBkZWZhdWx0X3N0YXRpc3RpY3NfdGFy Z2V0OwkvKiBQR0RMTElNUE9SVCBmb3IgUG9zdEdJUyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCB2YWN1dW1fZnJlZXplX21pbl9hZ2U7CkBAIC0zOTQsMTEgKzQxNiwxMyBAQCBleHRlcm4gVGlk U3RvcmUgKnBhcmFsbGVsX3ZhY3V1bV9nZXRfZGVhZF9pdGVtcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsCiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fcmVzZXRfZGVhZF9pdGVtcyhQYXJh bGxlbFZhY3V1bVN0YXRlICpwdnMpOwogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2J1bGtk ZWxfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJbG9u ZyBudW1fdGFibGVfdHVwbGVzLAotCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2Fucyk7CisJ CQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLAorCQkJCQkJCQkJCQkJUFZXb3JrZXJzVXNh Z2UgKnd1c2FnZSk7CiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5k ZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlsb25nIG51bV90YWJs ZV90dXBsZXMsCiAJCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJCQkJ Ym9vbCBlc3RpbWF0ZWRfY291bnQpOworCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQs CisJCQkJCQkJCQkJCQlQVldvcmtlcnNVc2FnZSAqd3VzYWdlKTsKIGV4dGVybiB2b2lkIHBhcmFs bGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGlu IGNvbW1hbmRzL2FuYWx5emUuYyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA1MmY4 NjAzYTdiZS4uYTY3ZDU0ZTE4MTkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4 LDYgKzIwODgsOCBAQCBQVkluZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVk CitQVldvcmtlcnNVc2FnZQorUFZXb3JrZXJzU3RhdHMKIFBYX0FsaWFzCiBQWF9DaXBoZXIKIFBY X0NvbWJvCi0tIAoyLjQzLjAKCg== --00000000000058dc21064d2a6ef8 Content-Type: text/x-patch; charset="US-ASCII"; name="v27-0001-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v27-0001-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmtntytt4 RnJvbSAwNDFiODY3ZTA3YTYxZjUxNjNlYzM1YTFmYjVmZGQ2ZmJlMjZiNDMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjE4OjA5ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjcgMS81XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8IDExICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8IDIwICsrKysrKysrKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgICAgICAgICB8ICA4ICsrKysr Ky0tCiBzcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgICAgICAgICAgfCAgMSAr CiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jICAgICAgICAgICAgICAgICAgfCAgOCArKysr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgICAgIHwgIDgg KysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8 ICAxICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAx ICsKIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsK IHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysr KysrCiAxMCBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDIzN2FiOGQwZWQ5Li45 NDU5YTAxMGNjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRp b25zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKQEAgLTIz NSw2ICsyMzUsMTUgQEAgc3RhdGljIHJlbG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAkJfSwKIAkJ U1BHSVNUX0RFRkFVTFRfRklMTEZBQ1RPUiwgU1BHSVNUX01JTl9GSUxMRkFDVE9SLCAxMDAKIAl9 LAorCXsKKwkJeworCQkJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCisJCQkiTWF4aW11 bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQgY2FuIGJlIHVzZWQg Zm9yIHByb2Nlc3NpbmcgdGhpcyB0YWJsZS4iLAorCQkJUkVMT1BUX0tJTkRfSEVBUCwKKwkJCVNo YXJlVXBkYXRlRXhjbHVzaXZlTG9jaworCQl9LAorCQktMSwgLTEsIDEwMjQKKwl9LAogCXsKIAkJ ewogCQkJImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCIsCkBAIC0xOTY4LDYgKzE5NzcsOCBA QCBkZWZhdWx0X3JlbG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0ZSwgcmVs b3B0X2tpbmQga2luZCkKIAkJeyJmaWxsZmFjdG9yIiwgUkVMT1BUX1RZUEVfSU5ULCBvZmZzZXRv ZihTdGRSZE9wdGlvbnMsIGZpbGxmYWN0b3IpfSwKIAkJeyJhdXRvdmFjdXVtX2VuYWJsZWQiLCBS RUxPUFRfVFlQRV9CT09MLAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsg b2Zmc2V0b2YoQXV0b1ZhY09wdHMsIGVuYWJsZWQpfSwKKwkJeyJhdXRvdmFjdXVtX3BhcmFsbGVs X3dvcmtlcnMiLCBSRUxPUFRfVFlQRV9JTlQsCisJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0 b3ZhY3V1bSkgKyBvZmZzZXRvZihBdXRvVmFjT3B0cywgYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3Jr ZXJzKX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5U LAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0b1Zh Y09wdHMsIHZhY3V1bV90aHJlc2hvbGQpfSwKIAkJeyJhdXRvdmFjdXVtX3ZhY3V1bV9tYXhfdGhy ZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5ULApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKaW5kZXggMjc5MTA4Y2E4OWYuLmNhZmEwYTRkNDk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKQEAgLTEsNyArMSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAg KiB2YWN1dW1wYXJhbGxlbC5jCi0gKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBhcmFsbGVsIHZh Y3V1bSBleGVjdXRpb24uCisgKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBhcmFsbGVsIHZhY3V1 bSBhbmQgYXV0b3ZhY3V1bSBleGVjdXRpb24uIEluIHRoZQorICoJICBjb21tZW50cyBiZWxvdywg dGhlIHdvcmQgInZhY3V1bSIgd2lsbCByZWZlciB0byBib3RoIHZhY3V1bSBhbmQKKyAqCSAgYXV0 b3ZhY3V1bS4KICAqCiAgKiBUaGlzIGZpbGUgY29udGFpbnMgcm91dGluZXMgdGhhdCBhcmUgaW50 ZW5kZWQgdG8gc3VwcG9ydCBzZXR0aW5nIHVwLCB1c2luZywKICAqIGFuZCB0ZWFyaW5nIGRvd24g YSBQYXJhbGxlbFZhY3V1bVN0YXRlLgpAQCAtMzc0LDggKzM3Niw5IEBAIHBhcmFsbGVsX3ZhY3V1 bV9pbml0KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlz aGFyZWQtPnF1ZXJ5aWQgPSBwZ3N0YXRfZ2V0X215X3F1ZXJ5X2lkKCk7CiAJc2hhcmVkLT5tYWlu dGVuYW5jZV93b3JrX21lbV93b3JrZXIgPQogCQkobmluZGV4ZXNfbXdtID4gMCkgPwotCQltYWlu dGVuYW5jZV93b3JrX21lbSAvIE1pbihwYXJhbGxlbF93b3JrZXJzLCBuaW5kZXhlc19td20pIDoK LQkJbWFpbnRlbmFuY2Vfd29ya19tZW07CisJCXZhY193b3JrX21lbSAvIE1pbihwYXJhbGxlbF93 b3JrZXJzLCBuaW5kZXhlc19td20pIDoKKwkJdmFjX3dvcmtfbWVtOworCiAJc2hhcmVkLT5kZWFk X2l0ZW1zX2luZm8ubWF4X2J5dGVzID0gdmFjX3dvcmtfbWVtICogKHNpemVfdCkgMTAyNDsKIAog CS8qIFByZXBhcmUgRFNBIHNwYWNlIGZvciBkZWFkIGl0ZW1zICovCkBAIC01NTQsMTIgKzU1Nywx NyBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBp bnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCWludAkJCW5pbmRleGVzX3BhcmFsbGVsX2J1 bGtkZWwgPSAwOwogCWludAkJCW5pbmRleGVzX3BhcmFsbGVsX2NsZWFudXAgPSAwOwogCWludAkJ CXBhcmFsbGVsX3dvcmtlcnM7CisJaW50CQkJbWF4X3dvcmtlcnM7CisKKwltYXhfd29ya2VycyA9 IEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSA/CisJCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVs X3dvcmtlcnMgOgorCQltYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VyczsKIAogCS8qCiAJ ICogV2UgZG9uJ3QgYWxsb3cgcGVyZm9ybWluZyBwYXJhbGxlbCBvcGVyYXRpb24gaW4gc3RhbmRh bG9uZSBiYWNrZW5kIG9yCiAJICogd2hlbiBwYXJhbGxlbGlzbSBpcyBkaXNhYmxlZC4KIAkgKi8K LQlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IG1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3Jr ZXJzID09IDApCisJaWYgKCFJc1VuZGVyUG9zdG1hc3RlciB8fCBtYXhfd29ya2VycyA9PSAwKQog CQlyZXR1cm4gMDsKIAogCS8qCkBAIC01OTgsOCArNjA2LDggQEAgcGFyYWxsZWxfdmFjdXVtX2Nv bXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJlcXVl c3RlZCwKIAlwYXJhbGxlbF93b3JrZXJzID0gKG5yZXF1ZXN0ZWQgPiAwKSA/CiAJCU1pbihucmVx dWVzdGVkLCBuaW5kZXhlc19wYXJhbGxlbCkgOiBuaW5kZXhlc19wYXJhbGxlbDsKIAotCS8qIENh cCBieSBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VycyAqLwotCXBhcmFsbGVsX3dvcmtl cnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtl cnMpOworCS8qIENhcCBieSBHVUMgdmFyaWFibGUgKi8KKwlwYXJhbGxlbF93b3JrZXJzID0gTWlu KHBhcmFsbGVsX3dvcmtlcnMsIG1heF93b3JrZXJzKTsKIAogCXJldHVybiBwYXJhbGxlbF93b3Jr ZXJzOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwppbmRleCAyMTk2NzNkYjkzMC4u ZjE1M2QwMzQzYzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC0yODU4LDgg KzI4NTgsMTIgQEAgdGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVf dG9hc3RfbWFwLAogCQkgKi8KIAkJdGFiLT5hdF9wYXJhbXMuaW5kZXhfY2xlYW51cCA9IFZBQ09Q VFZBTFVFX1VOU1BFQ0lGSUVEOwogCQl0YWItPmF0X3BhcmFtcy50cnVuY2F0ZSA9IFZBQ09QVFZB TFVFX1VOU1BFQ0lGSUVEOwotCQkvKiBBcyBvZiBub3csIHdlIGRvbid0IHN1cHBvcnQgcGFyYWxs ZWwgdmFjdXVtIGZvciBhdXRvdmFjdXVtICovCi0JCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0g LTE7CisKKwkJLyogRGVjaWRlIHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMgb2Yg dGFibGUgaW4gcGFyYWxsZWwuICovCisJCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gYXZvcHRz CisJCQk/IGF2b3B0cy0+YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzCisJCQk6IC0xOworCiAJ CXRhYi0+YXRfcGFyYW1zLmZyZWV6ZV9taW5fYWdlID0gZnJlZXplX21pbl9hZ2U7CiAJCXRhYi0+ YXRfcGFyYW1zLmZyZWV6ZV90YWJsZV9hZ2UgPSBmcmVlemVfdGFibGVfYWdlOwogCQl0YWItPmF0 X3BhcmFtcy5tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UgPSBtdWx0aXhhY3RfZnJlZXplX21pbl9h Z2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCmluZGV4IDM2YWQ3MDhiMzYwLi44MjY1YTgyYjYz OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKQEAgLTE0Myw2ICsxNDMsNyBAQCBpbnQJCQlO QnVmZmVycyA9IDE2Mzg0OwogaW50CQkJTWF4Q29ubmVjdGlvbnMgPSAxMDA7CiBpbnQJCQltYXhf d29ya2VyX3Byb2Nlc3NlcyA9IDg7CiBpbnQJCQltYXhfcGFyYWxsZWxfd29ya2VycyA9IDg7Citp bnQJCQlhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzID0gMjsKIGludAkJCU1heEJhY2tl bmRzID0gMDsKIAogLyogR1VDIHBhcmFtZXRlcnMgZm9yIHZhY3V1bSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKaW5kZXggZDc3NTAyODM4YzQuLjUzNGU1OGEzOThjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAg LTMzMjYsOSArMzMyNiwxMyBAQCBzZXRfY29uZmlnX3dpdGhfaGFuZGxlKGNvbnN0IGNoYXIgKm5h bWUsIGNvbmZpZ19oYW5kbGUgKmhhbmRsZSwKIAkgKgogCSAqIEFsc28gYWxsb3cgbm9ybWFsIHNl dHRpbmcgaWYgdGhlIEdVQyBpcyBtYXJrZWQgR1VDX0FMTE9XX0lOX1BBUkFMTEVMLgogCSAqCi0J ICogT3RoZXIgY2hhbmdlcyBtaWdodCBuZWVkIHRvIGFmZmVjdCBvdGhlciB3b3JrZXJzLCBzbyBm b3JiaWQgdGhlbS4KKwkgKiBPdGhlciBjaGFuZ2VzIG1pZ2h0IG5lZWQgdG8gYWZmZWN0IG90aGVy IHdvcmtlcnMsIHNvIGZvcmJpZCB0aGVtLiBOb3RlLAorCSAqIHRoYXQgcGFyYWxsZWwgYXV0b3Zh Y3V1bSBsZWFkZXIgaXMgYW4gZXhjZXB0aW9uLCBiZWNhdXNlIG9ubHkKKwkgKiBjb3N0LWJhc2Vk IGRlbGF5cyBuZWVkIHRvIGJlIGFmZmVjdGVkIGFsc28gdG8gcGFyYWxsZWwgYXV0b3ZhY3V1bQor CSAqIHdvcmtlcnMsIGFuZCB3ZSB3aWxsIGhhbmRsZSBpdCBlbHNld2hlcmUgaWYgYXBwcm9wcmlh dGUuCiAJICovCi0JaWYgKElzSW5QYXJhbGxlbE1vZGUoKSAmJiBjaGFuZ2VWYWwgJiYgYWN0aW9u ICE9IEdVQ19BQ1RJT05fU0FWRSAmJgorCWlmIChJc0luUGFyYWxsZWxNb2RlKCkgJiYgIUFtQXV0 b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiBjaGFuZ2VWYWwgJiYKKwkJYWN0aW9uICE9IEdVQ19B Q1RJT05fU0FWRSAmJgogCQkocmVjb3JkLT5mbGFncyAmIEdVQ19BTExPV19JTl9QQVJBTExFTCkg PT0gMCkKIAl7CiAJCWVyZXBvcnQoZWxldmVsLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19w YXJhbWV0ZXJzLmRhdAppbmRleCBhNWEwZWRmMjUzNC4uMTIzOTNjMTIxNGIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0xNTQsNiArMTU0LDE0IEBACiAg IG1heCA9PiAnMjAwMDAwMDAwMCcsCiB9LAogCit7IG5hbWUgPT4gJ2F1dG92YWN1dW1fbWF4X3Bh cmFsbGVsX3dvcmtlcnMnLCB0eXBlID0+ICdpbnQnLCBjb250ZXh0ID0+ICdQR0NfU0lHSFVQJywg Z3JvdXAgPT4gJ1ZBQ1VVTV9BVVRPVkFDVVVNJywKKyAgc2hvcnRfZGVzYyA9PiAnTWF4aW11bSBu dW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyB0aGF0IGEgc2luZ2xlIGF1dG92YWN1dW0gd29ya2Vy IGNhbiB0YWtlIGZyb20gYmd3b3JrZXJzIHBvb2wuJywKKyAgdmFyaWFibGUgPT4gJ2F1dG92YWN1 dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMnLAorICBib290X3ZhbCA9PiAnMicsCisgIG1pbiA9PiAn MCcsCisgIG1heCA9PiAnTUFYX0JBQ0tFTkRTJywKK30sCisKIHsgbmFtZSA9PiAnYXV0b3ZhY3V1 bV9tYXhfd29ya2VycycsIHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBn cm91cCA9PiAnVkFDVVVNX0FVVE9WQUNVVU0nLAogICBzaG9ydF9kZXNjID0+ICdTZXRzIHRoZSBt YXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXNseSBydW5uaW5nIGF1dG92YWN1dW0gd29ya2Vy IHByb2Nlc3Nlcy4nLAogICB2YXJpYWJsZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZTY4 NmQ4OGFmYzQuLjVlMWM2MmQ2MTZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTAsNiArNzEwLDcgQEAKICNhdXRvdmFjdXVtX3dvcmtl cl9zbG90cyA9IDE2ICAgICAgICAgICAjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9j YXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoY2hhbmdlIHJl cXVpcmVzIHJlc3RhcnQpCiAjYXV0b3ZhY3V1bV9tYXhfd29ya2VycyA9IDMgICAgICAgICAgICAg IyBtYXggbnVtYmVyIG9mIGF1dG92YWN1dW0gc3VicHJvY2Vzc2VzCisjYXV0b3ZhY3V1bV9tYXhf cGFyYWxsZWxfd29ya2VycyA9IDIgICAgIyBsaW1pdGVkIGJ5IG1heF9wYXJhbGxlbF93b3JrZXJz CiAjYXV0b3ZhY3V1bV9uYXB0aW1lID0gMW1pbiAgICAgICAgICAgICAgIyB0aW1lIGJldHdlZW4g YXV0b3ZhY3V1bSBydW5zCiAjYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkID0gNTAgICAgICAg IyBtaW4gbnVtYmVyIG9mIHJvdyB1cGRhdGVzIGJlZm9yZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgdmFjdXVtCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNWJk YmYxNTMwYTIuLjI5MTcxZWZiYzFiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xNDMyLDYg KzE0MzIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdGFibGVfc3RvcmFnZV9wYXJhbWV0 ZXJzW10gPSB7CiAJImF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIiwKIAkiYXV0 b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UiLAogCSJhdXRvdmFjdXVtX211bHRpeGFj dF9mcmVlemVfdGFibGVfYWdlIiwKKwkiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwKIAki YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSIsCiAJImF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf bGltaXQiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NhbGVfZmFjdG9yIiwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgK aW5kZXggZjE2ZjM1NjU5YjkuLjAwMTkwYzY3ZWNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9t aXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMTc4LDYgKzE3OCw3 IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4QmFja2VuZHM7CiBleHRlcm4gUEdETExJTVBP UlQgaW50IE1heENvbm5lY3Rpb25zOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfd29ya2Vy X3Byb2Nlc3NlczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtlcnM7 CitleHRlcm4gUEdETExJTVBPUlQgaW50IGF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM7 CiAKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tbWl0X3RpbWVzdGFtcF9idWZmZXJzOwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZlcnM7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4 IDIzNjgzMGY2YjkzLi4xMWRkM2FlYmM2YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv cmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTMxMSw2ICszMTEsMTQgQEAg dHlwZWRlZiBzdHJ1Y3QgRm9yZWlnbktleUNhY2hlSW5mbwogdHlwZWRlZiBzdHJ1Y3QgQXV0b1Zh Y09wdHMKIHsKIAlib29sCQllbmFibGVkOworCisJLyoKKwkgKiBUYXJnZXQgbnVtYmVyIG9mIHBh cmFsbGVsIGF1dG92YWN1dW0gd29ya2Vycy4gLTEgYnkgZGVmYXVsdCBkaXNhYmxlcworCSAqIHBh cmFsbGVsIHZhY3V1bSBkdXJpbmcgYXV0b3ZhY3V1bS4gMCBtZWFucyBjaG9vc2UgdGhlIHBhcmFs bGVsIGRlZ3JlZQorCSAqIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgaW5kZXhlcy4KKwkgKi8KKwlp bnQJCQlhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnM7CisKIAlpbnQJCQl2YWN1dW1fdGhyZXNo b2xkOwogCWludAkJCXZhY3V1bV9tYXhfdGhyZXNob2xkOwogCWludAkJCXZhY3V1bV9pbnNfdGhy ZXNob2xkOwotLSAKMi40My4wCgo= --00000000000058dc21064d2a6ef8 Content-Type: text/x-patch; charset="US-ASCII"; name="v27-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Disposition: attachment; filename="v27-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmtntytg2 RnJvbSA5ZjIxYzBlMDgxZDhhMzZmZDE5YWNlZTc1Y2ZhNDdkYmY3NGUxOWUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE1IEphbiAyMDI2IDIzOjE1OjQ4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjcgMy81XSBDb3N0IGJhc2VkIHBhcmFtZXRlcnMgcHJvcGFnYXRpb24gZm9yIHBhcmFsbGVs CiBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAg fCAgMjEgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8IDE2MyAr KysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8 ICAgMiArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgIHwgICAxICsKIDUg ZmlsZXMgY2hhbmdlZCwgMTg2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYwppbmRleCBiY2UzYTJkYWEyNC4uMWI1YmEzY2UxZWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bS5jCkBAIC0yNDM1LDggKzI0MzUsMTkgQEAgdmFjdXVtX2RlbGF5X3BvaW50KGJvb2wgaXNf YW5hbHl6ZSkKIAkvKiBBbHdheXMgY2hlY2sgZm9yIGludGVycnVwdHMgKi8KIAlDSEVDS19GT1Jf SU5URVJSVVBUUygpOwogCi0JaWYgKEludGVycnVwdFBlbmRpbmcgfHwKLQkJKCFWYWN1dW1Db3N0 QWN0aXZlICYmICFDb25maWdSZWxvYWRQZW5kaW5nKSkKKwlpZiAoSW50ZXJydXB0UGVuZGluZykK KwkJcmV0dXJuOworCisJaWYgKElzUGFyYWxsZWxXb3JrZXIoKSkKKwl7CisJCS8qCisJCSAqIFVw ZGF0ZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIGZvciBhIHBhcmFsbGVsIGF1 dG92YWN1dW0KKwkJICogd29ya2VyIGlmIGFueSBjaGFuZ2VzIGFyZSBkZXRlY3RlZC4KKwkJICov CisJCXBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcygpOworCX0KKwor CWlmICghVmFjdXVtQ29zdEFjdGl2ZSAmJiAhQ29uZmlnUmVsb2FkUGVuZGluZykKIAkJcmV0dXJu OwogCiAJLyoKQEAgLTI0NTAsNiArMjQ2MSwxMiBAQCB2YWN1dW1fZGVsYXlfcG9pbnQoYm9vbCBp c19hbmFseXplKQogCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CiAJCVByb2Nlc3NDb25m aWdGaWxlKFBHQ19TSUdIVVApOwogCQlWYWN1dW1VcGRhdGVDb3N0cygpOworCisJCS8qCisJCSAq IFByb3BhZ2F0ZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIHRvIHNoYXJlZCBt ZW1vcnkgaWYKKwkJICogYW55IG9mIHRoZW0gaGF2ZSBjaGFuZ2VkIGR1cmluZyB0aGUgY29uZmln IHJlbG9hZC4KKwkJICovCisJCXBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVkX2RlbGF5 X3BhcmFtcygpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpp bmRleCA1ZGVhNDM3NGVjNy4uZjRmY2ViOTY4NzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwpAQCAtMTgsNiArMTgsMTMgQEAKICAqIHRoZSBwYXJhbGxlbCBjb250ZXh0IGlz IHJlLWluaXRpYWxpemVkIHNvIHRoYXQgdGhlIHNhbWUgRFNNIGNhbiBiZSB1c2VkIGZvcgogICog bXVsdGlwbGUgcGFzc2VzIG9mIGluZGV4IGJ1bGstZGVsZXRpb24gYW5kIGluZGV4IGNsZWFudXAu CiAgKgorICogRm9yIHBhcmFsbGVsIGF1dG92YWN1dW0sIHdlIG5lZWQgdG8gcHJvcGFnYXRlIGNv c3QtYmFzZWQgdmFjdXVtIGRlbGF5CisgKiBwYXJhbWV0ZXJzIGZyb20gdGhlIGxlYWRlciB0byBp dHMgd29ya2VycywgYXMgdGhlIGxlYWRlcidzIHBhcmFtZXRlcnMgY2FuCisgKiBjaGFuZ2UgZXZl biB3aGlsZSBwcm9jZXNzaW5nIGEgdGFibGUgKGUuZy4sIGR1ZSB0byBhIGNvbmZpZyByZWxvYWQp LgorICogVGhlIFBWU2hhcmVkQ29zdFBhcmFtcyBzdHJ1Y3QgbWFuYWdlcyB0aGVzZSBwYXJhbWV0 ZXJzIHVzaW5nIGEKKyAqIGdlbmVyYXRpb24gY291bnRlci4gRWFjaCBwYXJhbGxlbCB3b3JrZXIg cG9sbHMgdGhpcyBzaGFyZWQgc3RhdGUgYW5kCisgKiByZWZyZXNoZXMgaXRzIGxvY2FsIGRlbGF5 IHBhcmFtZXRlcnMgd2hlbmV2ZXIgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQuCisgKgogICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKQEAgLTUzLDYgKzYwLDMxIEBACiAjZGVmaW5lIFBB UkFMTEVMX1ZBQ1VVTV9LRVlfV0FMX1VTQUdFCQk0CiAjZGVmaW5lIFBBUkFMTEVMX1ZBQ1VVTV9L RVlfSU5ERVhfU1RBVFMJCTUKIAorLyoKKyAqIFN0cnVjdCBmb3IgY29zdC1iYXNlZCB2YWN1dW0g ZGVsYXkgcmVsYXRlZCBwYXJhbWV0ZXJzIHRvIHNoYXJlIGFtb25nIGFuCisgKiBhdXRvdmFjdXVt IHdvcmtlciBhbmQgaXRzIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXJzLgorICovCit0eXBlZGVmIHN0 cnVjdCBQVlNoYXJlZENvc3RQYXJhbXMKK3sKKwkvKgorCSAqIFRoZSBnZW5lcmF0aW9uIGNvdW50 ZXIgaXMgaW5jcmVtZW50ZWQgYnkgdGhlIGxlYWRlciBwcm9jZXNzIGVhY2ggdGltZQorCSAqIGl0 IHVwZGF0ZXMgdGhlIHNoYXJlZCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzLiBQ YXJhbGVsbAorCSAqIHZhY3V1bSB3b3JrZXJzIGNvbXBhcmVzIGl0IHdpdGggdGhlaXIgbG9jYWwg Z2VuZXJhdGlvbiwKKwkgKiBzaGFyZWRfcGFyYW1zX2dlbmVyYXRpb25fbG9jYWwsIHRvIGRldGVj dCB3aGV0aGVyIHRoZXkgbmVlZCB0byByZWZyZXNoCisJICogdGhlaXIgbG9jYWwgcGFyYW1ldGVy cy4KKwkgKi8KKwlwZ19hdG9taWNfdWludDMyIGdlbmVyYXRpb247CisKKwlzbG9ja190CQltdXRl eDsJCQkvKiBwcm90ZWN0cyBhbGwgZmllbGRzIGJlbG93ICovCisKKwkvKiBQYXJhbWV0ZXJzIHRv IHNoYXJlIHdpdGggcGFyYWxsZWwgd29ya2VycyAqLworCWRvdWJsZQkJY29zdF9kZWxheTsKKwlp bnQJCQljb3N0X2xpbWl0OworCWludAkJCWNvc3RfcGFnZV9kaXJ0eTsKKwlpbnQJCQljb3N0X3Bh Z2VfaGl0OworCWludAkJCWNvc3RfcGFnZV9taXNzOworfSBQVlNoYXJlZENvc3RQYXJhbXM7CisK IC8qCiAgKiBTaGFyZWQgaW5mb3JtYXRpb24gYW1vbmcgcGFyYWxsZWwgd29ya2Vycy4gIFNvIHRo aXMgaXMgYWxsb2NhdGVkIGluIHRoZSBEU00KICAqIHNlZ21lbnQuCkBAIC0xMjIsNiArMTU0LDE4 IEBAIHR5cGVkZWYgc3RydWN0IFBWU2hhcmVkCiAKIAkvKiBTdGF0aXN0aWNzIG9mIHNoYXJlZCBk ZWFkIGl0ZW1zICovCiAJVmFjRGVhZEl0ZW1zSW5mbyBkZWFkX2l0ZW1zX2luZm87CisKKwkvKgor CSAqIElmICd0cnVlJyB0aGVuIHdlIGFyZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1dW0uIE90 aGVyd2lzZSwgd2UgYXJlCisJICogcnVubmluZyBwYXJhbGxlbCBtYWludGVuZW5jZSBWQUNVVU0u CisJICovCisJYm9vbAkJaXNfYXV0b3ZhY3V1bTsKKworCS8qCisJICogU3RydWN0IGZvciBzeW5j aW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgYmV0d2VlbgorCSAqIHN1cHBv cnRpdmUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHdpdGggbGVhZGVyIHdvcmtlci4KKwkg Ki8KKwlQVlNoYXJlZENvc3RQYXJhbXMgY29zdF9wYXJhbXM7CiB9IFBWU2hhcmVkOwogCiAvKiBT dGF0dXMgdXNlZCBkdXJpbmcgcGFyYWxsZWwgaW5kZXggdmFjdXVtIG9yIGNsZWFudXAgKi8KQEAg LTIyNCw2ICsyNjgsMTEgQEAgc3RydWN0IFBhcmFsbGVsVmFjdXVtU3RhdGUKIAlQVkluZFZhY1N0 YXR1cyBzdGF0dXM7CiB9OwogCitzdGF0aWMgUFZTaGFyZWRDb3N0UGFyYW1zICpwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCisvKiBTZWUgY29tbWVudHMgaW4gdGhlIFBWU2hhcmVkQ29z dFBhcmFtcyBmb3IgdGhlIGRldGFpbHMgKi8KK3N0YXRpYyB1aW50MzIgc2hhcmVkX3BhcmFtc19n ZW5lcmF0aW9uX2xvY2FsID0gMDsKKwogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0 ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVk LAogCQkJCQkJCQkJCQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIGludCBudW1faW5kZXhfc2NhbnMsCkBAIC0yMzUsNiArMjg0LDcgQEAgc3RhdGljIHZvaWQg cGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2 cywgUmVsYXRpb24KIHN0YXRpYyBib29sIHBhcmFsbGVsX3ZhY3V1bV9pbmRleF9pc19wYXJhbGxl bF9zYWZlKFJlbGF0aW9uIGluZHJlbCwgaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJ CSAgIGJvb2wgdmFjdXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxs YmFjayh2b2lkICphcmcpOworc3RhdGljIGlubGluZSB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9zZXRf Y29zdF9wYXJhbWV0ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKTsKIAogLyoKICAqIFRy eSB0byBlbnRlciBwYXJhbGxlbCBtb2RlIGFuZCBjcmVhdGUgYSBwYXJhbGxlbCBjb250ZXh0LiAg VGhlbiBpbml0aWFsaXplCkBAIC0zOTUsNiArNDQ1LDIxIEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0 KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlwZ19hdG9t aWNfaW5pdF91MzIoJihzaGFyZWQtPmFjdGl2ZV9ud29ya2VycyksIDApOwogCXBnX2F0b21pY19p bml0X3UzMigmKHNoYXJlZC0+aWR4KSwgMCk7CiAKKwlzaGFyZWQtPmlzX2F1dG92YWN1dW0gPSBB bUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCk7CisKKwkvKgorCSAqIEluaXRpYWxpemUgc2hhcmVk IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgaWYgaXQncyBmb3IKKwkgKiBhdXRv dmFjdXVtLgorCSAqLworCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJeworCQlwYXJhbGxl bF92YWN1dW1fc2V0X2Nvc3RfcGFyYW1ldGVycygmc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisJCXBn X2F0b21pY19pbml0X3UzMigmc2hhcmVkLT5jb3N0X3BhcmFtcy5nZW5lcmF0aW9uLCAwKTsKKwkJ U3BpbkxvY2tJbml0KCZzaGFyZWQtPmNvc3RfcGFyYW1zLm11dGV4KTsKKworCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCX0KKwogCXNobV90b2NfaW5z ZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9TSEFSRUQsIHNoYXJlZCk7CiAJcHZz LT5zaGFyZWQgPSBzaGFyZWQ7CiAKQEAgLTQ2MCw2ICs1MjUsOSBAQCBwYXJhbGxlbF92YWN1dW1f ZW5kKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICoqaXN0 YXRzKQogCURlc3Ryb3lQYXJhbGxlbENvbnRleHQocHZzLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxN b2RlKCk7CiAKKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCiAJcGZyZWUocHZzLT53aWxsX3BhcmFsbGVsX3ZhY3V1bSk7 CiAJcGZyZWUocHZzKTsKIH0KQEAgLTUzOSw2ICs2MDcsOTUgQEAgcGFyYWxsZWxfdmFjdXVtX2Ns ZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJs ZV90dXAKIAkJCQkJCQkJCQkmd3VzYWdlLT5jbGVhbnVwKTsKIH0KIAorLyoKKyAqIEZpbGwgaW4g dGhlIGdpdmVuIHN0cnVjdHVyZSB3aXRoIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRl ciB2YWx1ZXMuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorcGFyYWxsZWxfdmFjdXVtX3NldF9j b3N0X3BhcmFtZXRlcnMoUFZTaGFyZWRDb3N0UGFyYW1zICpwYXJhbXMpCit7CisJcGFyYW1zLT5j b3N0X2RlbGF5ID0gdmFjdXVtX2Nvc3RfZGVsYXk7CisJcGFyYW1zLT5jb3N0X2xpbWl0ID0gdmFj dXVtX2Nvc3RfbGltaXQ7CisJcGFyYW1zLT5jb3N0X3BhZ2VfZGlydHkgPSBWYWN1dW1Db3N0UGFn ZURpcnR5OworCXBhcmFtcy0+Y29zdF9wYWdlX2hpdCA9IFZhY3V1bUNvc3RQYWdlSGl0OworCXBh cmFtcy0+Y29zdF9wYWdlX21pc3MgPSBWYWN1dW1Db3N0UGFnZU1pc3M7Cit9CisKKy8qCisgKiBV cGRhdGVzIHRoZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIGZvciBwYXJhbGxl bCBhdXRvdmFjdXVtCisgKiB3b3JrZXJzLgorICoKKyAqIEZvciBub24tYXV0b3ZhY3V1bSBwYXJh bGxlbCB3b3JrZXIgdGhpcyBmdW5jdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0LgorICovCit2b2lk CitwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXModm9pZCkKK3sKKwl1 aW50MzIJCXBhcmFtc19nZW5lcmF0aW9uOworCisJQXNzZXJ0KElzUGFyYWxsZWxXb3JrZXIoKSk7 CisKKwkvKiBRdWljayByZXR1cm4gaWYgdGhlIHdva3JlciBpcyBub3QgcnVubmluZyBmb3IgdGhl IGF1dG92YWN1dW0gKi8KKwlpZiAocHZfc2hhcmVkX2Nvc3RfcGFyYW1zID09IE5VTEwpCisJCXJl dHVybjsKKworCXBhcmFtc19nZW5lcmF0aW9uID0gcGdfYXRvbWljX3JlYWRfdTMyKCZwdl9zaGFy ZWRfY29zdF9wYXJhbXMtPmdlbmVyYXRpb24pOworCUFzc2VydChzaGFyZWRfcGFyYW1zX2dlbmVy YXRpb25fbG9jYWwgPD0gcGFyYW1zX2dlbmVyYXRpb24pOworCisJLyogUmV0dXJuIGlmIHBhcmFt ZXRlcnMgaGFkIG5vdCBjaGFuZ2VkIGluIHRoZSBsZWFkZXIgKi8KKwlpZiAocGFyYW1zX2dlbmVy YXRpb24gPT0gc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsKQorCQlyZXR1cm47CisKKwlT cGluTG9ja0FjcXVpcmUoJnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+bXV0ZXgpOworCVZhY3V1bUNv c3REZWxheSA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9kZWxheTsKKwlWYWN1dW1Db3N0 TGltaXQgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfbGltaXQ7CisJVmFjdXVtQ29zdFBh Z2VEaXJ0eSA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2RpcnR5OworCVZhY3V1 bUNvc3RQYWdlSGl0ID0gcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5jb3N0X3BhZ2VfaGl0OworCVZh Y3V1bUNvc3RQYWdlTWlzcyA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX21pc3M7 CisJU3BpbkxvY2tSZWxlYXNlKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKworCVZh Y3V1bVVwZGF0ZUNvc3RzKCk7CisKKwlzaGFyZWRfcGFyYW1zX2dlbmVyYXRpb25fbG9jYWwgPSBw YXJhbXNfZ2VuZXJhdGlvbjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBjb3N0LWJhc2VkIHZhY3V1 bSBkZWxheSBwYXJhbWV0ZXJzIGluIHRoZSBzaGFyZWQgbWVtb3J5IHNvIHRoYXQKKyAqIHBhcmFs bGVsIHZhY3V1bSB3b3JrZXJzIGNhbiBjb25zdW1lIHRoZW0gKHNlZQorICogcGFyYWxsZWxfdmFj dXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKCkpLgorICovCit2b2lkCitwYXJhbGxlbF92 YWN1dW1fcHJvcGFnYXRlX3NoYXJlZF9kZWxheV9wYXJhbXModm9pZCkKK3sKKwlBc3NlcnQoQW1B dXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKTsKKworCS8qCisJICogUXVpY2sgcmV0dXJuIGlmIHRo ZSBsZWFkZXIgcHJvY2VzcyBpcyBub3Qgc2hhcmluZyB0aGUgZGVsYXkgcGFyYW1ldGVycy4KKwkg Ki8KKwlpZiAocHZfc2hhcmVkX2Nvc3RfcGFyYW1zID09IE5VTEwpCisJCXJldHVybjsKKworCS8q CisJICogQ2hlY2sgaWYgYW55IGRlbGF5IHBhcmFtZXRlcnMgaGFzIGNoYW5nZWQuIFdlIGNhbiBy ZWFkIHRoZW0gd2l0aG91dAorCSAqIGxvY2tzIGFzIG9ubHkgdGhlIGxlYWRlciBjYW4gbW9kaWZ5 IHRoZW0uCisJICovCisJaWYgKHZhY3V1bV9jb3N0X2RlbGF5ID09IHB2X3NoYXJlZF9jb3N0X3Bh cmFtcy0+Y29zdF9kZWxheSAmJgorCQl2YWN1dW1fY29zdF9saW1pdCA9PSBwdl9zaGFyZWRfY29z dF9wYXJhbXMtPmNvc3RfbGltaXQgJiYKKwkJVmFjdXVtQ29zdFBhZ2VEaXJ0eSA9PSBwdl9zaGFy ZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9kaXJ0eSAmJgorCQlWYWN1dW1Db3N0UGFnZUhpdCA9 PSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9oaXQgJiYKKwkJVmFjdXVtQ29zdFBh Z2VNaXNzID09IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX21pc3MpCisJCXJldHVy bjsKKworCS8qIFVwZGF0ZSB0aGUgc2hhcmVkIGRlbGF5IHBhcmFtZXRlcnMgKi8KKwlTcGluTG9j a0FjcXVpcmUoJnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+bXV0ZXgpOworCXBhcmFsbGVsX3ZhY3V1 bV9zZXRfY29zdF9wYXJhbWV0ZXJzKHB2X3NoYXJlZF9jb3N0X3BhcmFtcyk7CisJU3BpbkxvY2tS ZWxlYXNlKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKworCS8qCisJICogSW5jcmVt ZW50IHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBwYXJhbWV0ZXJzLCBpLmUuIGxldCBwYXJhbGxlbCB3 b3JrZXJzCisJICoga25vdyB0aGF0IHRoZXkgc2hvdWxkIHJlLXJlYWQgc2hhcmVkIGNvc3QgcGFy YW1zLgorCSAqLworCXBnX2F0b21pY19mZXRjaF9hZGRfdTMyKCZwdl9zaGFyZWRfY29zdF9wYXJh bXMtPmdlbmVyYXRpb24sIDEpOworfQorCiAvKgogICogQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHBh cmFsbGVsIHdvcmtlciBwcm9jZXNzZXMgdG8gcmVxdWVzdC4gIEJvdGggaW5kZXgKICAqIHZhY3V1 bSBhbmQgaW5kZXggY2xlYW51cCBjYW4gYmUgZXhlY3V0ZWQgd2l0aCBwYXJhbGxlbCB3b3JrZXJz LgpAQCAtMTA4MSw2ICsxMjM4LDkgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQg KnNlZywgc2htX3RvYyAqdG9jKQogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihzaGFyZWQt PmNvc3RfYmFsYW5jZSk7CiAJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAmKHNoYXJlZC0+YWN0aXZl X253b3JrZXJzKTsKIAorCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJCXB2X3NoYXJlZF9j b3N0X3BhcmFtcyA9ICYoc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisKIAkvKiBTZXQgcGFyYWxsZWwg dmFjdXVtIHN0YXRlICovCiAJcHZzLmluZHJlbHMgPSBpbmRyZWxzOwogCXB2cy5uaW5kZXhlcyA9 IG5pbmRleGVzOwpAQCAtMTEzMCw2ICsxMjkwLDkgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNt X3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCXZhY19jbG9zZV9pbmRleGVzKG5pbmRleGVz LCBpbmRyZWxzLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAl0YWJsZV9jbG9zZShyZWwsIFNoYXJlVXBk YXRlRXhjbHVzaXZlTG9jayk7CiAJRnJlZUFjY2Vzc1N0cmF0ZWd5KHB2cy5ic3RyYXRlZ3kpOwor CisJaWYgKHNoYXJlZC0+aXNfYXV0b3ZhY3V1bSkKKwkJcHZfc2hhcmVkX2Nvc3RfcGFyYW1zID0g TlVMTDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggZjE1M2Qw MzQzYzguLmYzNWFjZjNkNzVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1 dG92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAt MTY1OSw3ICsxNjU5LDcgQEAgVmFjdXVtVXBkYXRlQ29zdHModm9pZCkKIAl9CiAJZWxzZQogCXsK LQkJLyogTXVzdCBiZSBleHBsaWNpdCBWQUNVVU0gb3IgQU5BTFlaRSAqLworCQkvKiBNdXN0IGJl IGV4cGxpY2l0IFZBQ1VVTSBvciBBTkFMWVpFIG9yIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2Vy ICovCiAJCXZhY3V1bV9jb3N0X2RlbGF5ID0gVmFjdXVtQ29zdERlbGF5OwogCQl2YWN1dW1fY29z dF9saW1pdCA9IFZhY3V1bUNvc3RMaW1pdDsKIAl9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCmluZGV4IDFk ODIwOTE1ZDcxLi5jZjBjM2M5ZGJmNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv dmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKQEAgLTQyMyw2ICs0 MjMsOCBAQCBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQ YXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5z LAogCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQsCiAJCQkJCQkJCQkJCQlQVldvcmtl cnNVc2FnZSAqd3VzYWdlKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hh cmVkX2RlbGF5X3BhcmFtcyh2b2lkKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9w YWdhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcyh2b2lkKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3Zh Y3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1h bmRzL2FuYWx5emUuYyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBhNjdkNTRlMTgx OS4uMTViOGM5NjZiZjggMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4LDYgKzIw ODgsNyBAQCBQVkluZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVkCitQVlNo YXJlZENvc3RQYXJhbXMKIFBWV29ya2Vyc1VzYWdlCiBQVldvcmtlcnNTdGF0cwogUFhfQWxpYXMK LS0gCjIuNDMuMAoK --00000000000058dc21064d2a6ef8--