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 1w2798-000tQh-1L for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 12:34:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2796-009rWZ-0F for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 12:34:08 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1w2795-009rWQ-1p for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 12:34:08 +0000 Received: from mail-yx1-xb12e.google.com ([2607:f8b0:4864:20::b12e]) by magus.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 1w2792-00000000QK1-2P81 for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 12:34:08 +0000 Received: by mail-yx1-xb12e.google.com with SMTP id 956f58d0204a3-64c9cabfe5dso5467333d50.0 for ; Mon, 16 Mar 2026 05:34:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773664443; cv=none; d=google.com; s=arc-20240605; b=hRrUy5WJMELGfzbnUSHP1osODCWLgilwb5S+hu29xlnVmhP+PO+nz/GL7KMRns7YIE DV5QJsU+br4BRQZ88u/FBkf9wzYzJH6PmELwxkwHpjYUzTawoqjNBIim8f2NTGYp0LAr E+MdkMkKewNW2mzD1jDe8DWa3GdQG2fLm6zQ1jUOSndXTaFFjklUVwod7RmDqVZjdwAq NtMggzqnKX07P2tRNQuBptEAYLB/l9P13Ie/OlZDq2je6Hs1LLgQhfp3tdKw1AwROcYn FGZdZk0Wvk2EdOkd7U0xQ/IUz/IjYcLlroK8ExoXSv7mT7hi1GicKVNxD6Xb4rcwVhJZ /kDQ== 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=ZFd0dQn1s4sxEdf54BC2pqVIq4ocHXQvhJOeBOHzTRw=; fh=c7YxoTnbLgb/m0muXBTyvhEEITdd8Bt0Uov3iUSSTvo=; b=RCUOXIR2CdFApKSwOoSaWEj4EPRCcFR+P7QbuZy1MTQibvirmceSFPqIWqrhaHkm45 ODuSDsqteZ3jClsVmCDeNp44Klm2r506uzgH3wJymAuIrF778hEkJkKlcCCGcBvdfGVc jslcgBuGCVG1NOMZxT7V/QmekJk/1XczTLU9Yn3baxlYNP/FAPqc3odI9PAssfsw7iNJ YDu5ttX6rOu6hHiefDlWocH56K8FtT77ze/quOf3td2dTFzm5s7fbOcpVXrdT8+3WZAG uP+i9OIWLDZHeXsyr1E2taNSE3yYIXrPYIznm+bzgxPU1C+szBUghxXkaA8xKCJH1S2e GlhQ==; 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=1773664443; x=1774269243; 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=ZFd0dQn1s4sxEdf54BC2pqVIq4ocHXQvhJOeBOHzTRw=; b=S2YnOJza+ySFm2Ab+7oaxn52O9ZA0WSFSaz+CIIvoRhBL/X0TBynJfJR8urEv/DxGm /Thm15fmLYWu1u26qmq2IJFKlu4Qshj3kIML4U4YgLdN0yW+ZXOXJO+1eNaoaocTEfa+ G3hn8mb4uxxWkCpN0W2eEH2dP+vDK0Rg28C+RQqtMzzCZ3Oj8mNVj/1s8NZ7uF5Hya89 F6vR2D8tlKRxTtkiMdSO9iJ5QcAuYbo+ar+28/3bYbXNEanCjjnfXfdLZo6jfkifeSMv GfNOjikEXfgNdE3qrXrJz3WoC1DcMWHjSaD14WtyA1UPsrkQlj37CIT/qKKJKg3DLIoT RN1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773664443; x=1774269243; 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=ZFd0dQn1s4sxEdf54BC2pqVIq4ocHXQvhJOeBOHzTRw=; b=QzaEmNjBDXoQmIz2YQZRyrzzZZ5HxNize4HxMUZSlTBF48qZHrqH4O0A76E76OiL+J 3Y+JSG4wrxP+LNTzYIiABM/Krhmb2siuslfGmZpMq54D7kT39+CrmGxbW+wwCHb3ZdRG OJ2Zg6uVhSGokEyKcNL0xuvYMVB3nE/G/FTtZtRfsFzA2EzvPaVaoJj/ZIM8PdILMtXU EdBqfWfRLMsNOFxwgyD1hBLcZfu3c5l84Qfwnh1SR3VXDkx5yNBMoI8ZrYxTw6DwlEqA QsxXaSTABW2GCj04Xm0nVVeNSqq9G8F4U69W7Y3f7OtkoCegCrxY6kfU5ZRf9rBETgAq +XMg== X-Forwarded-Encrypted: i=1; AJvYcCXpAFXVAcZFwuStWSDO7xBKPMh12/GRA1GFjpJlWKOqSsM8ghRr0/Z6EjggxoMnzbVNsORAhE2JTwn5pRv2@lists.postgresql.org X-Gm-Message-State: AOJu0Yw3sMvRz7nQuZmabS1o53A8RsGoB+9ZWsPY3511Bkfl7JRTqSVr YzCyrwBm1z/j01k6zPA7KuyMGHVIuxT/PX57KV9yLTPTJHLbV42T+TCdNvPr8MQdqk4zlabY4vz dSd4RKBlzIEe7E9JVUW1zTqO8IegLmSQ= X-Gm-Gg: ATEYQzy4oKzhHcmetp4RFGP/Ka7XZCMBndA4+BUAgwSr4WnIEkWjBvZUR1chXKvKKF1 NA5yWXmNXSyP6tZj92ZwSwSRFluzBQmVGWoUfu9tTD78EDk7Y76gDKsR/SwjR4NUM2ylsnfBW+z HFBw3ZX+1NfFOXof2slZ5g5nYyt9n6uX+btuLha276pbfQB7QvIHXa17F0Z5EtJSuZbSMtN8g8Y vtv3GkMB4e6VFMMiyBuIwLrLO7q0WEJUaFZvpH2zbtfqHntTbc28YvofxPVWMIQcfKPWrVw1Iau XHDga3E= X-Received: by 2002:a53:c058:0:10b0:644:4eec:22a with SMTP id 956f58d0204a3-64e62561f9dmr9506871d50.2.1773664443295; Mon, 16 Mar 2026 05:34:03 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Mon, 16 Mar 2026 19:33:49 +0700 X-Gm-Features: AaiRm50fRoyamu4BM3A5QjOFjOW0te6rAYkEkAo4v5JUJIikZAYhoQ7k6-SFpzk 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="000000000000185832064d236f14" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000185832064d236f14 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, Mar 12, 2026 at 2:05=E2=80=AFAM Masahiko Sawada wrote: > > BTW thes discussion made me think to change av_max_parallel_workers to > control the number of workers per-autovacuum worker instead (with > renaming it to say max_parallel_workers_per_autovacuum_worker). Users > can compute the maximum number of parallel workers the system requires > by (autovacuum_worker_slots * > max_parallel_workers_per_autovacuum_worker). We would no longer need > the reservation and release logic. I'd like to hear your opinion. > IIUC, one of the main autovacuum's goals is to be "inconspicuous" for the rest of the system. I mean that it should not try to vacuum all the tables as fast as possible. Instead it should try to interfere with other backends as little as possible and try to avoid high resource consumption (assuming there is no hazard of wraparound). I propose to reason based on the case for which the parallel a/v will actually be used : We have a 3 tables which has 80+ indexes each and require a parallel a/v. Ideally, each of these tables should be processed with 20 parallel workers. This is a real example which can be encountered in different productions, where such tables take up about half of all the data in the database. How parallel a/v will handle such a situation? 1. Our current implementation We can set av_max_parallel_workers to 60 and autovacuum_parallel_workers reloption to 20 for each table. 2. Proposed idea We can set max_parallel_workers_per_av_worker to 20 and autovacuum_parallel_workers reloption to 20 for each table. In both cases we have guarantee that all tables will be processed with the desired number of parallel workers. And both cases allows us to limit the CPU consumption via reducing the "av_max_parallel_workers" parameter (for current implementation) or via reducing the "autovacuum_parallel_workers" reloption for each table (for proposed idea). So basically I don't see whet= her current approach has a big advantages over the idea you proposed. I also asked my friend, who is many years working with the clients with big productions. He said that this is super important to process such huge tabl= es with maximum "intensity". I.e. each a/v worker should have ability to launc= h as many parallel workers as required. I guess that this is an argument in favor of your idea. The only argument against this idea that I could come up with is that some users may abuse our parallel a/v feature. For instance, the user can set "autovacuum_parallel_workers" reloption not only for large tables, but also for many smaller ones. In this case the max_parallel_workers_per_av_worker must be pretty large (in order to process the huge table). Thus, the user can face a situation when all a/v workers are launching additional parallel workers =3D> there is high CPU consumption and possibly max_parallel_worker= s shortage. The only way to deal with it is to go through a large amount of smaller tables and reduce "autovacuum_parallel_workers" reloption for each of them. IMHO, this is a pretty unpleasant experience for the user. On the other hand, the user himself is to blame for the occurrence of such a situation. Let's summarize. Proposed idea has several strong advantages over current implementation. The only disadvantage I came up with can be avoided by writing recommendati= ons on how to use this feature in the documentation. So, if I didn't messed up anything and you don't have any doubts, I would rather implement the proposed idea. > > 2) > > I suggest adding a separate log that will be emitted every time we are > > unable to start workers due to a shortage of av_max_parallel_workers. > > For (2), do you mean that the worker writes these logs regardless of > log_autovacuum_min_duration setting? I'm concerned that the server > logs would be flooded with these logs especially when multiple > autovacuum workers are working very actively and the system is facing > a shortage of av_max_parallel_workers. Oh, I didn't take that into account. But this is not a problem - we can accumulate such statistics just as we do now for the "nreserved" ones. And then we will log this value with all other stats. > > Possibly we can introduce a new injection point, or a new log for it. > > But I assume that the subject of discussion in patch 0002 is the > > "nreserved" logic, and "nlaunched/nplanned" logic does not raise any > > questions. > > > > I suggest splitting the 0002 patch into two parts : 1) basic logic and > > 2) additional logic with nreserved or something else. The second part c= an be > > discussed in isolation from the patch set. If we do this, we may not ha= ve to > > change the tests. What do you think? > > Assuming the basic logic means nlaunched/nplanned logic, yes, it would > be a nice idea. I think user-facing logging stuff can be developed as > an improvement independent from the main parallel autovacuum patch. > It's ideal if we can implement the main patch (with tests) without > relying on the user-facing logging. OK, actually we can do it. Thank you very much for the review! Please, see attached patches. The changes are : 1) Fixed segfault with accessing outdated pv_shared_cost_params pointer. 2) "Logging for autovacuum" is divided into two patches - basic logging (nplanned/nlaunched) and advanced logging (nreserved). 3) Tests are now independent of logging. By now I didn't try to change the core logic. I think that first we need to agree on the use of the new GUC parameter. -- Best regards, Daniil Davydov --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v26-0006-Advanced-logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v26-0006-Advanced-logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5znkp0 RnJvbSA4YjZmZDQyNTQxNjVkODU1MWExNWY4NGIwZTI5NzNlMTM0Y2UzOTM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE5OjA5OjAxICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjYgNi82XSBBZHZhbmNlZCBsb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgfCA0MCArKysrKysrKysrKysr KysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAg NiArKysrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgIHwgMTUgKysrKysr KystLQogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNGY5N2JhY2VkMmIuLmRmNzA5 YWZlNjIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC03OTEsOCArNzkx LDEwIEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBw YXJhbXMsCiAKIAl2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5sYXVuY2hlZCA9IDA7CiAJ dmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ucGxhbm5lZCA9IDA7CisJdmFjcmVsLT53b3Jr ZXJzX3VzYWdlLnZhY3V1bS5ucmVzZXJ2ZWQgPSAwOwogCXZhY3JlbC0+d29ya2Vyc191c2FnZS5j bGVhbnVwLm5sYXVuY2hlZCA9IDA7CiAJdmFjcmVsLT53b3JrZXJzX3VzYWdlLmNsZWFudXAubnBs YW5uZWQgPSAwOworCXZhY3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5yZXNlcnZlZCA9IDA7 CiAKIAkvKgogCSAqIEdldCBjdXRvZmZzIHRoYXQgZGV0ZXJtaW5lIHdoaWNoIGRlbGV0ZWQgdHVw bGVzIGFyZSBjb25zaWRlcmVkIERFQUQsCkBAIC0xMTQ2LDE3ICsxMTQ4LDM5IEBAIGhlYXBfdmFj dXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkJ IHZhY3JlbC0+bHBkZWFkX2l0ZW1zKTsKIAkJCWlmICh2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFj dXVtLm5wbGFubmVkID4gMCkKIAkJCXsKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsCi0JCQkJ CQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRleCB2YWN1dW06ICVkIHBsYW5uZWQsICVkIGxh dW5jaGVkIGluIHRvdGFsXG4iKSwKLQkJCQkJCQkJIHZhY3JlbC0+d29ya2Vyc191c2FnZS52YWN1 dW0ubnBsYW5uZWQsCi0JCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5sYXVu Y2hlZCk7CisJCQkJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSkKKwkJCQl7CisJCQkJ CWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwKKwkJCQkJCQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBp bmRleCB2YWN1dW06ICVkIHBsYW5uZWQsICVkIHJlc2VydmVkLCAlZCBsYXVuY2hlZCBpbiB0b3Rh bFxuIiksCisJCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ucGxhbm5lZCwK KwkJCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5yZXNlcnZlZCwKKwkJCQkJ CQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5sYXVuY2hlZCk7CisJCQkJfQorCQkJ CWVsc2UKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwKKwkJCQkJCQkJCSBfKCJw YXJhbGxlbCB3b3JrZXJzOiBpbmRleCB2YWN1dW06ICVkIHBsYW5uZWQsICVkIGxhdW5jaGVkIGlu IHRvdGFsXG4iKSwKKwkJCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFu bmVkLAorCQkJCQkJCQkJIHZhY3JlbC0+d29ya2Vyc191c2FnZS52YWN1dW0ubmxhdW5jaGVkKTsK KwkJCQl9CiAJCQl9CiAJCQlpZiAodmFjcmVsLT53b3JrZXJzX3VzYWdlLmNsZWFudXAubnBsYW5u ZWQgPiAwKQogCQkJewotCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwKLQkJCQkJCQkJIF8oInBh cmFsbGVsIHdvcmtlcnM6IGluZGV4IGNsZWFudXA6ICVkIHBsYW5uZWQsICVkIGxhdW5jaGVkXG4i KSwKLQkJCQkJCQkJIHZhY3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5wbGFubmVkLAotCQkJ CQkJCQkgdmFjcmVsLT53b3JrZXJzX3VzYWdlLmNsZWFudXAubmxhdW5jaGVkKTsKKwkJCQlpZiAo QW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmLAorCQkJCQkJCQkJIF8oInBhcmFsbGVsIHdvcmtlcnM6IGluZGV4IGNsZWFudXA6ICVk IHBsYW5uZWQsICVkIHJlc2VydmVkLCAlZCBsYXVuY2hlZFxuIiksCisJCQkJCQkJCQkgdmFjcmVs LT53b3JrZXJzX3VzYWdlLmNsZWFudXAubnBsYW5uZWQsCisJCQkJCQkJCQkgdmFjcmVsLT53b3Jr ZXJzX3VzYWdlLmNsZWFudXAubnJlc2VydmVkLAorCQkJCQkJCQkJIHZhY3JlbC0+d29ya2Vyc191 c2FnZS5jbGVhbnVwLm5sYXVuY2hlZCk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWFw cGVuZFN0cmluZ0luZm8oJmJ1ZiwKKwkJCQkJCQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRl eCBjbGVhbnVwOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZFxuIiksCisJCQkJCQkJCQkgdmFjcmVs LT53b3JrZXJzX3VzYWdlLmNsZWFudXAubnBsYW5uZWQsCisJCQkJCQkJCQkgdmFjcmVsLT53b3Jr ZXJzX3VzYWdlLmNsZWFudXAubmxhdW5jaGVkKTsKKwkJCQl9CiAJCQl9CiAJCQlmb3IgKGludCBp ID0gMDsgaSA8IHZhY3JlbC0+bmluZGV4ZXM7IGkrKykKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jCmluZGV4IDY1MDA2MDg3MWQzLi41MTA1MTM3Y2UzYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC04MzcsOCArODM3LDE0IEBAIHBhcmFsbGVs X3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50 IG51bV9pbmRleF9zY2FuCiAJICogZmV3ZXIgd29ya2VycyB0aGFuIHdlIHJlcXVlc3RlZC4KIAkg Ki8KIAlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIG53b3JrZXJzID4gMCkKKwl7 CiAJCUF1dG9WYWN1dW1SZXNlcnZlUGFyYWxsZWxXb3JrZXJzKCZud29ya2Vycyk7CiAKKwkJLyog UmVtZW1iZXIgdGhpcyB2YWx1ZSwgaWYgd2UgYXNrZWQgdG8gKi8KKwkJaWYgKHdzdGF0cyAhPSBO VUxMKQorCQkJd3N0YXRzLT5ucmVzZXJ2ZWQgKz0gbndvcmtlcnM7CisJfQorCiAJLyoKIAkgKiBT ZXQgaW5kZXggdmFjdXVtIHN0YXR1cyBhbmQgbWFyayB3aGV0aGVyIHBhcmFsbGVsIHZhY3V1bSB3 b3JrZXIgY2FuCiAJICogcHJvY2VzcyBpdC4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggY2YwYzNj OWRiZjcuLjRiZmViYTgyNjRkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1 dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMzA4LDEzICszMDgs MjQgQEAgdHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJzU3RhdHMKIAkvKiBOdW1iZXIgb2YgcGFyYWxs ZWwgd29ya2VycyB3ZSBhcmUgcGxhbm5lZCB0byBsYXVuY2ggKi8KIAlpbnQJCQlucGxhbm5lZDsK IAorCS8qCisJICogTnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgd2UgaGF2ZSBtYW5hZ2VkIHRv IHJlc2VydmUuCisJICoKKwkgKiBOb3RlLCB0aGF0IHdlIGNvbGxlY3QgdGhpcyBzdGF0cyBvbmx5 IGZvciB0aGUgcGFyYWxsZWwgKmF1dG92YWN1dW0qCisJICogc2luY2UgZHVyaW5nIGl0IHdlIG11 c3QgcmVzZXJ2ZSB3b3JrZXJzIGluIHNoYXJlZCBzdGF0ZSBiZWZvcmUgYWN0dWFsbHkKKwkgKiB0 cnlpbmcgdG8gbGF1bmNoIHRoZW0gKGluIG9yZGVyIHRvIG1lZXQgdGhlCisJICogYXV0b3ZhY3V1 bV9tYXhfcGFyYWxsZWxfd29ya2VycyBsaW1pdCkuIE1hbnVhbCBWQUNVVU0gKFBBUkFMTEVMKSwg b24KKwkgKiB0aGUgY29udHJhcnksIGRvZXNuJ3QgbmVlZCB0byByZXNlcnZlIHdvcmtlcnMuCisJ ICovCisJaW50CQkJbnJlc2VydmVkOworCiAJLyogTnVtYmVyIG9mIGxhdW5jaGVkIHBhcmFsbGVs IHdvcmtlcnMgKi8KIAlpbnQJCQlubGF1bmNoZWQ7CiB9IFBWV29ya2Vyc1N0YXRzOwogCiAvKgot ICogUFZXb3JrZXJzVXNhZ2Ugc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0IHRvdGFsIG51bWJlciBv ZiBsYXVuY2hlZCBhbmQKLSAqIHBsYW5uZWQgd29ya2VycyBkdXJpbmcgcGFyYWxsZWwgdmFjdXVt IChib3RoIGZvciB2YWN1dW0gYW5kIGNsZWFudXApLgorICogUFZXb3JrZXJzVXNhZ2Ugc3RvcmVz IGluZm9ybWF0aW9uIGFib3V0IHRvdGFsIG51bWJlciBvZiBsYXVuY2hlZCwgcmVzZXJ2ZWQKKyAq IGFuZCBwbGFubmVkIHdvcmtlcnMgZHVyaW5nIHBhcmFsbGVsIHZhY3V1bSAoYm90aCBmb3IgdmFj dXVtIGFuZCBjbGVhbnVwKS4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJzVXNhZ2UKIHsK LS0gCjIuNDMuMAoK --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v26-0004-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v26-0004-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5znle2 RnJvbSBkNmEwOTZjZmFkZGYwMWVmNzU3ODZlMzVjYWJmMWEwMDlkNjUyYzY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAxOjA4OjE0ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjYgNC82XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC9w b3N0bWFzdGVyL2F1dG92YWN1dW0uYyAgICAgICAgICAgfCAgMjUgKysKIHNyYy9pbmNsdWRlL3Bv c3RtYXN0ZXIvYXV0b3ZhY3V1bS5oICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVz L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxlcy9t ZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtLy5naXRpZ25vcmUgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf YXV0b3ZhY3V1bS9NYWtlZmlsZSAgICAgfCAgMjggKysKIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9h dXRvdmFjdXVtL21lc29uLmJ1aWxkICB8ICAzNiArKysKIC4uLi90LzAwMV9wYXJhbGxlbF9hdXRv dmFjdXVtLnBsICAgICAgICAgICAgICB8IDI5OSArKysrKysrKysrKysrKysrKysKIC4uLi90ZXN0 X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLS0xLjAuc3FsICB8ICAxMiArCiAuLi4vbW9kdWxl cy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmMgfCAgMzEgKysKIC4uLi90ZXN0X2F1 dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmNvbnRyb2wgICB8ICAgMyArCiAxMyBmaWxlcyBjaGFu Z2VkLCA0NzAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0 b3ZhY3V1bS5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVt LmNvbnRyb2wKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggY2NjYWVlNWI2 MjAuLjRmOTdiYWNlZDJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0x NTIsNiArMTUyLDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xhdGNoLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9yZWFkX3N0cmVhbS5oIgorI2luY2x1ZGUg InV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgog I2luY2x1ZGUgInV0aWxzL3BnX3J1c2FnZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5o IgpAQCAtODczLDYgKzg3NCwxNCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25z dCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCWxhenlfY2hlY2tfd3JhcGFyb3VuZF9mYWlsc2FmZSh2 YWNyZWwpOwogCWRlYWRfaXRlbXNfYWxsb2ModmFjcmVsLCBwYXJhbXMubndvcmtlcnMpOwogCisj aWZkZWYgVVNFX0lOSkVDVElPTl9QT0lOVFMKKwkvKgorCSAqIFRyaWdnZXIgaW5qZWN0aW9uIHBv aW50LCBpZiBwYXJhbGxlbCBhdXRvdmFjdXVtIGlzIGFib3V0IHRvIGJlIHN0YXJ0ZWQuCisJICov CisJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiBQYXJhbGxlbFZhY3V1bUlzQWN0 aXZlKHZhY3JlbCkpCisJCUlOSkVDVElPTl9QT0lOVCgiYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxl bC12YWN1dW0iLCBOVUxMKTsKKyNlbmRpZgorCiAJLyoKIAkgKiBDYWxsIGxhenlfc2Nhbl9oZWFw IHRvIHBlcmZvcm0gYWxsIHJlcXVpcmVkIGhlYXAgcHJ1bmluZywgaW5kZXgKIAkgKiB2YWN1dW1p bmcsIGFuZCBoZWFwIHZhY3V1bWluZyAocGx1cyByZWxhdGVkIHByb2Nlc3NpbmcpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCAyY2FkNmIxNTUxNy4uNjUwMDYwODcxZDMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtNDcsNiArNDcsNyBAQAog I2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCiAj aW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2lu dC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5o IgogCkBAIC02NTYsNiArNjU3LDE0IEBAIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2Rl bGF5X3BhcmFtcyh2b2lkKQogCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAKIAlzaGFyZWRfcGFyYW1z X2dlbmVyYXRpb25fbG9jYWwgPSBwYXJhbXNfZ2VuZXJhdGlvbjsKKworCWVsb2coREVCVUcyLAor CQkgInBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VyIGNvc3QgcGFyYW1zOiBjb3N0X2xpbWl0PSVk LCBjb3N0X2RlbGF5PSVnLCBjb3N0X3BhZ2VfbWlzcz0lZCwgY29zdF9wYWdlX2RpcnR5PSVkLCBj b3N0X3BhZ2VfaGl0PSVkIiwKKwkJIHZhY3V1bV9jb3N0X2xpbWl0LAorCQkgdmFjdXVtX2Nvc3Rf ZGVsYXksCisJCSBWYWN1dW1Db3N0UGFnZU1pc3MsCisJCSBWYWN1dW1Db3N0UGFnZURpcnR5LAor CQkgVmFjdXVtQ29zdFBhZ2VIaXQpOwogfQogCiAvKgpAQCAtOTE2LDYgKzkyNSwxOSBAQCBwYXJh bGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMs IGludCBudW1faW5kZXhfc2NhbgogCQkJCQkJCXB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQs IG53b3JrZXJzKSkpOwogCX0KIAorI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJLyoKKwkg KiBUbyBiZSBhYmxlIHRvIGV4ZXJjaXNlIHdoZXRoZXIgYWxsIHJlc2VydmVkIHBhcmFsbGVsIHdv cmtlcnMgYXJlIGJlaW5nCisJICogcmVsZWFzZWQgYW55d2F5LCBhbGxvdyBpbmplY3Rpb24gcG9p bnRzIHRvIHRyaWdnZXIgYSBmYWlsdXJlIGF0IHRoaXMKKwkgKiBwb2ludC4KKwkgKgorCSAqIFRo aXMgaW5qZWN0aW9uIHBvaW50IGlzIGFsc28gdXNlZCB0byB3YWl0IHVudGlsIHBhcmFsbGVsIHdv cmtlcnMKKwkgKiBmaW5pc2hlcyB0aGVpciBwYXJ0IG9mIGluZGV4IHByb2Nlc3NpbmcuCisJICov CisJaWYgKG53b3JrZXJzID4gMCkKKwkJSU5KRUNUSU9OX1BPSU5UKCJhdXRvdmFjdXVtLWxlYWRl ci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nIiwgTlVMTCk7CisjZW5kaWYKKwogCS8qIFZhY3V1 bSB0aGUgaW5kZXhlcyB0aGF0IGNhbiBiZSBwcm9jZXNzZWQgYnkgb25seSBsZWFkZXIgcHJvY2Vz cyAqLwogCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Vuc2FmZV9pbmRleGVzKHB2cyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggYTBjMDIwZmExYTcuLjdlOTk0ZTg4ODUz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtMzQ0OCw2ICszNDQ4LDEyIEBA IEF1dG9WYWN1dW1SZWxlYXNlUGFyYWxsZWxXb3JrZXJzKGludCBud29ya2VycykKIAogCS8qIERv bid0IGhhdmUgdG8gcmVtZW1iZXIgdGhlc2Ugd29ya2VycyBhbnltb3JlLiAqLwogCWF2X253b3Jr ZXJzX3Jlc2VydmVkIC09IG53b3JrZXJzOworCisJZWxvZyhERUJVRzIsCisJCSBuZ2V0dGV4dCgi YXV0b3ZhY3V1bSB3b3JrZXI6ICVkIHBhcmFsbGVsIHdvcmtlciBoYXMgYmVlbiByZWxlYXNlZCIs CisJCQkJICAiYXV0b3ZhY3V1bSB3b3JrZXI6ICVkIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4g cmVsZWFzZWQiLAorCQkJCSAgbndvcmtlcnMpLAorCQkgbndvcmtlcnMpOwogfQogCiAvKgpAQCAt MzQ2Niw2ICszNDcyLDIxIEBAIEF1dG9WYWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJzKHZv aWQpCiAJQXNzZXJ0KGF2X253b3JrZXJzX3Jlc2VydmVkID09IDApOwogfQogCisvKgorICogR2V0 IG51bWJlciBvZiBmcmVlIGF1dG92YWN1dW0gcGFyYWxsZWwgd29ya2Vycy4KKyAqLworaW50MzIK K0F1dG9WYWN1dW1HZXRGcmVlUGFyYWxsZWxXb3JrZXJzKHZvaWQpCit7CisJaW50MzIJCW5mcmVl X3dvcmtlcnM7CisKKwlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19TSEFSRUQpOwor CW5mcmVlX3dvcmtlcnMgPSBBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnM7 CisJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9jayk7CisKKwlyZXR1cm4gbmZyZWVfd29ya2Vy czsKK30KKwogLyoKICAqIGF1dG92YWNfaW5pdAogICoJCVRoaXMgaXMgY2FsbGVkIGF0IHBvc3Rt YXN0ZXIgaW5pdGlhbGl6YXRpb24uCkBAIC0zNjM0LDUgKzM2NTUsOSBAQCBhZGp1c3RfZnJlZV9w YXJhbGxlbF93b3JrZXJzKGludCBwcmV2X21heF9wYXJhbGxlbF93b3JrZXJzKQogCUF1dG9WYWN1 dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2VycyA9IE1heChuZnJlZV93b3JrZXJzLCAwKTsK IAlBdXRvVmFjdXVtU2htZW0tPmF2X21heFBhcmFsbGVsV29ya2VycyA9IGF1dG92YWN1dW1fbWF4 X3BhcmFsbGVsX3dvcmtlcnM7CiAKKwllbG9nKERFQlVHMiwKKwkJICJudW1iZXIgb2YgZnJlZSBw YXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMgaXMgc2V0IHRvICV1IGR1ZSB0byBjb25maWcgcmVs b2FkIiwKKwkJIEF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2Vycyk7CisKIAlM V0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2NrKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmgKaW5kZXggZjM3ODNhZmI1MWIuLmQ2MDAxMGE0M2I0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVy L2F1dG92YWN1dW0uaApAQCAtNjYsNiArNjYsNyBAQCBleHRlcm4gYm9vbCBBdXRvVmFjdXVtUmVx dWVzdFdvcmsoQXV0b1ZhY3V1bVdvcmtJdGVtVHlwZSB0eXBlLAogZXh0ZXJuIHZvaWQJQXV0b1Zh Y3V1bVJlc2VydmVQYXJhbGxlbFdvcmtlcnMoaW50ICpud29ya2Vycyk7CiBleHRlcm4gdm9pZCBB dXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2VycyhpbnQgbndvcmtlcnMpOwogZXh0ZXJuIHZv aWQgQXV0b1ZhY3V1bVJlbGVhc2VBbGxQYXJhbGxlbFdvcmtlcnModm9pZCk7CitleHRlcm4gaW50 MzIgQXV0b1ZhY3V1bUdldEZyZWVQYXJhbGxlbFdvcmtlcnModm9pZCk7CiAKIC8qIHNoYXJlZCBt ZW1vcnkgc3R1ZmYgKi8KIGV4dGVybiBTaXplIEF1dG9WYWN1dW1TaG1lbVNpemUodm9pZCk7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9N YWtlZmlsZQppbmRleCA0YWM1Yzg0ZGI0My4uMDFmZTAwNDFjOTcgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L21vZHVsZXMvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQpAQCAt MTYsNiArMTYsNyBAQCBTVUJESVJTID0gXAogCQkgIHBsc2FtcGxlIFwKIAkJICBzcGdpc3RfbmFt ZV9vcHMgXAogCQkgIHRlc3RfYWlvIFwKKwkJICB0ZXN0X2F1dG92YWN1dW0gXAogCQkgIHRlc3Rf YmluYXJ5aGVhcCBcCiAJCSAgdGVzdF9iaXRtYXBzZXQgXAogCQkgIHRlc3RfYmxvb21maWx0ZXIg XApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21v ZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggZTJiM2VlZjQxMzYuLjlkY2RjNjhiYzg3IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv bWVzb24uYnVpbGQKQEAgLTE2LDYgKzE2LDcgQEAgc3ViZGlyKCdwbHNhbXBsZScpCiBzdWJkaXIo J3NwZ2lzdF9uYW1lX29wcycpCiBzdWJkaXIoJ3NzbF9wYXNzcGhyYXNlX2NhbGxiYWNrJykKIHN1 YmRpcigndGVzdF9haW8nKQorc3ViZGlyKCd0ZXN0X2F1dG92YWN1dW0nKQogc3ViZGlyKCd0ZXN0 X2JpbmFyeWhlYXAnKQogc3ViZGlyKCd0ZXN0X2JpdG1hcHNldCcpCiBzdWJkaXIoJ3Rlc3RfYmxv b21maWx0ZXInKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0v LmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxNmUxN2Y1YTJhCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9y ZQpAQCAtMCwwICsxLDIgQEAKKyMgR2VuZXJhdGVkIHN1YmRpcmVjdG9yaWVzCisvdG1wX2NoZWNr LwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzIyNTRjNTNhNWQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQpAQCAtMCwwICsxLDI4 IEBACisjIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlCisKK1BHRklM RURFU0MgPSAidGVzdF9hdXRvdmFjdXVtIC0gdGVzdCBjb2RlIGZvciBwYXJhbGxlbCBhdXRvdmFj dXVtIgorCitNT0RVTEVfYmlnID0gdGVzdF9hdXRvdmFjdXVtCitPQkpTID0gXAorCSQoV0lOMzJS RVMpIFwKKwl0ZXN0X2F1dG92YWN1dW0ubworCitFWFRFTlNJT04gPSB0ZXN0X2F1dG92YWN1dW0K K0RBVEEgPSB0ZXN0X2F1dG92YWN1dW0tLTEuMC5zcWwKKworVEFQX1RFU1RTID0gMQorCitFWFRS QV9JTlNUQUxMID0gc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzCisKK2V4cG9ydCBl bmFibGVfaW5qZWN0aW9uX3BvaW50cworCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdf Y29uZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQ R1hTKQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0KK3Rv cF9idWlsZGRpciA9IC4uLy4uLy4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFr ZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2RpcikvY29udHJpYi9jb250cmliLWdsb2Jh bC5taworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVp bGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk2OWFmOGJkNTJhCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24u YnVpbGQKQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQtMjAyNiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordGVzdF9hdXRvdmFjdXVtX3NvdXJjZXMg PSBmaWxlcygKKyAgJ3Rlc3RfYXV0b3ZhY3V1bS5jJywKKykKKworaWYgaG9zdF9zeXN0ZW0gPT0g J3dpbmRvd3MnCisgIHRlc3RfYXV0b3ZhY3V1bV9zb3VyY2VzICs9IHJjX2xpYl9nZW4ucHJvY2Vz cyh3aW4zMnZlcl9yYywgZXh0cmFfYXJnczogWworICAgICctLU5BTUUnLCAndGVzdF9hdXRvdmFj dXVtJywKKyAgICAnLS1GSUxFREVTQycsICd0ZXN0X2F1dG92YWN1dW0gLSB0ZXN0IGNvZGUgZm9y IHBhcmFsbGVsIGF1dG92YWN1dW0nLF0pCitlbmRpZgorCit0ZXN0X2F1dG92YWN1dW0gPSBzaGFy ZWRfbW9kdWxlKCd0ZXN0X2F1dG92YWN1dW0nLAorICB0ZXN0X2F1dG92YWN1dW1fc291cmNlcywK KyAga3dhcmdzOiBwZ190ZXN0X21vZF9hcmdzLAorKQordGVzdF9pbnN0YWxsX2xpYnMgKz0gdGVz dF9hdXRvdmFjdXVtCisKK3Rlc3RfaW5zdGFsbF9kYXRhICs9IGZpbGVzKAorICAndGVzdF9hdXRv dmFjdXVtLmNvbnRyb2wnLAorICAndGVzdF9hdXRvdmFjdXVtLS0xLjAuc3FsJywKKykKKwordGVz dHMgKz0geworICAnbmFtZSc6ICd0ZXN0X2F1dG92YWN1dW0nLAorICAnc2QnOiBtZXNvbi5jdXJy ZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAg J3RhcCc6IHsKKyAgICAnZW52JzogeworICAgICAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50cyc6 IGdldF9vcHRpb24oJ2luamVjdGlvbl9wb2ludHMnKSA/ICd5ZXMnIDogJ25vJywKKyAgICB9LAor ICAgICd0ZXN0cyc6IFsKKyAgICAgICd0LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsJywKKyAg ICBdLAorICB9LAorfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9h dXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM0ZjExMTkzZGZkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5w bApAQCAtMCwwICsxLDI5OSBAQAorIyBUZXN0IHBhcmFsbGVsIGF1dG92YWN1dW0gYmVoYXZpb3IK KwordXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNs dXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKwor aWYgKCRFTlZ7ZW5hYmxlX2luamVjdGlvbl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tp cF9hbGwgPT4gJ0luamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsK K30KKworIyBCZWZvcmUgZWFjaCB0ZXN0IHdlIHNob3VsZCBkaXNhYmxlIGF1dG92YWN1dW0gZm9y ICd0ZXN0X2F1dG92YWMnIHRhYmxlIGFuZAorIyBnZW5lcmF0ZSBzb21lIGRlYWQgdHVwbGVzIGlu IGl0LgorCitzdWIgcHJlcGFyZV9mb3JfbmV4dF90ZXN0Cit7CisJbXkgKCRub2RlLCAkdGVzdF9u dW1iZXIpID0gQF87CisKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCQlBTFRF UiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CisJ fSk7CisKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCQlVUERBVEUgdGVzdF9h dXRvdmFjIFNFVCBjb2xfMSA9ICR0ZXN0X251bWJlcjsKKwl9KTsKK30KKworCitteSAkcHNxbF9v dXQ7CisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlMScp OworJG5vZGUtPmluaXQ7CisKKyMgQ29uZmlndXJlIHBvc3RncmVzLCBzbyBpdCBjYW4gbGF1bmNo IHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycywgbG9nIGFsbAorIyBpbmZvcm1hdGlvbiB3ZSBh cmUgaW50ZXJlc3RlZCBpbiBhbmQgYXV0b3ZhY3V1bSB3b3JrcyBmcmVxdWVudGx5Ciskbm9kZS0+ YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHFxeworCW1heF93b3JrZXJfcHJvY2Vzc2Vz ID0gMjAKKwltYXhfcGFyYWxsZWxfd29ya2VycyA9IDIwCisJbWF4X3BhcmFsbGVsX21haW50ZW5h bmNlX3dvcmtlcnMgPSAyMAorCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyMAor CWxvZ19taW5fbWVzc2FnZXMgPSBkZWJ1ZzIKKwlhdXRvdmFjdXVtX25hcHRpbWUgPSAnMXMnCisJ bWluX3BhcmFsbGVsX2luZGV4X3NjYW5fc2l6ZSA9IDAKKwlzaGFyZWRfcHJlbG9hZF9saWJyYXJp ZXM9dGVzdF9hdXRvdmFjdXVtCit9KTsKKyRub2RlLT5zdGFydDsKKworIyBDaGVjayBpZiB0aGUg ZXh0ZW5zaW9uIGluamVjdGlvbl9wb2ludHMgaXMgYXZhaWxhYmxlLCBhcyBpdCBtYXkgYmUKKyMg cG9zc2libGUgdGhhdCB0aGlzIHNjcmlwdCBpcyBydW4gd2l0aCBpbnN0YWxsY2hlY2ssIHdoZXJl IHRoZSBtb2R1bGUKKyMgd291bGQgbm90IGJlIGluc3RhbGxlZCBieSBkZWZhdWx0LgoraWYgKCEk bm9kZS0+Y2hlY2tfZXh0ZW5zaW9uKCdpbmplY3Rpb25fcG9pbnRzJykpCit7CisJcGxhbiBza2lw X2FsbCA9PiAnRXh0ZW5zaW9uIGluamVjdGlvbl9wb2ludHMgbm90IGluc3RhbGxlZCc7Cit9CisK KyMgQ3JlYXRlIGFsbCBmdW5jdGlvbnMgbmVlZGVkIGZvciB0ZXN0aW5nCiskbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHFxeworCUNSRUFURSBFWFRFTlNJT04gdGVzdF9hdXRvdmFjdXVtOwor CUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK30pOworCitteSAkaW5kZXhlc19u dW0gPSA0OworbXkgJGluaXRpYWxfcm93c19udW0gPSAxMF8wMDA7CitteSAkYXV0b3ZhY3V1bV9w YXJhbGxlbF93b3JrZXJzID0gMjsKKworIyBDcmVhdGUgdGFibGUgYW5kIGZpbGwgaXQgd2l0aCBz b21lIGRhdGEKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJQ1JFQVRFIFRBQkxF IHRlc3RfYXV0b3ZhYyAoCisJCWlkIFNFUklBTCBQUklNQVJZIEtFWSwKKwkJY29sXzEgSU5URUdF UiwgIGNvbF8yIElOVEVHRVIsICBjb2xfMyBJTlRFR0VSLCAgY29sXzQgSU5URUdFUgorCSkgV0lU SCAoYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzID0gJGF1dG92YWN1dW1fcGFyYWxsZWxfd29y a2VycywKKwkJCWxvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlvbiA9IDApOworCisJSU5TRVJUIElO VE8gdGVzdF9hdXRvdmFjCisJU0VMRUNUCisJCWcgQVMgY29sMSwKKwkJZyArIDEgQVMgY29sMiwK KwkJZyArIDIgQVMgY29sMywKKwkJZyArIDMgQVMgY29sNAorCUZST00gZ2VuZXJhdGVfc2VyaWVz KDEsICRpbml0aWFsX3Jvd3NfbnVtKSBBUyBnOworfSk7CisKKyMgQ3JlYXRlIHNwZWNpZmllZCBu dW1iZXIgb2YgYi10cmVlIGluZGV4ZXMgb24gdGhlIHRhYmxlCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworCURPIFwkXCQKKwlERUNMQVJFCisJCWkgSU5URUdFUjsKKwlCRUdJTgor CQlGT1IgaSBJTiAxLi4kaW5kZXhlc19udW0gTE9PUAorCQkJRVhFQ1VURSBmb3JtYXQoJ0NSRUFU RSBJTkRFWCBpZHhfY29sX1wlcyBPTiB0ZXN0X2F1dG92YWMgKGNvbF9cJXMpOycsIGksIGkpOwor CQlFTkQgTE9PUDsKKwlFTkQgXCRcJDsKK30pOworCisjIFRlc3QgMSA6CisjIE91ciB0YWJsZSBo YXMgZW5vdWdoIGluZGV4ZXMgYW5kIGFwcHJvcHJpYXRlIHJlbG9wdGlvbnMsIHNvIGF1dG92YWN1 dW0gbXVzdAorIyBiZSBhYmxlIHRvIHByb2Nlc3MgaXQgaW4gcGFyYWxsZWwgbW9kZS4gSnVzdCBj aGVjayBpZiBpdCBjYW4uCisjIEFsc28gY2hlY2sgd2hldGhlciBhbGwgcmVxdWVzdGVkIHdvcmtl cnM6CisjIAkxKSBsYXVuY2hlZAorIyAJMikgY29ycmVjdGx5IHJlbGVhc2VkCisKK3ByZXBhcmVf Zm9yX25leHRfdGVzdCgkbm9kZSwgMSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7CisJQUxURVIgVEFCTEUgdGVzdF9hdXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0g dHJ1ZSk7Cit9KTsKKworIyBXYWl0IHVudGlsIHRoZSBwYXJhbGxlbCBhdXRvdmFjdXVtIG9uIHRh YmxlIGlzIGNvbXBsZXRlZC4gQXQgdGhlIHNhbWUgdGltZSwKKyMgd2UgY2hlY2sgdGhhdCB0aGUg cmVxdWlyZWQgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gc3RhcnRlZC4KKyRs b2dfc3RhcnQgPSAkbm9kZS0+d2FpdF9mb3JfbG9nKAorCXFyL2F1dG92YWN1dW0gd29ya2VyOiAy IHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gcmVsZWFzZWQvLAorCSRsb2dfc3RhcnQKKyk7CisK KyRwc3FsX291dCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGdl dF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2VycygpOworfSk7CitpcygkcHNxbF9vdXQs IDIwLCAnQWxsIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gcmVsZWFzZWQgYnkgdGhlIGxlYWRl cicpOworCisjIFRlc3QgMjoKKyMgQ2hlY2sgd2hldGhlciBwYXJhbGxlbCBhdXRvdmFjdXVtIGxl YWRlciBjYW4gcHJvcGFnYXRlIGNvc3QtYmFzZWQgcGFyYW1ldGVycworIyB0byBwYXJhbGxlbCB3 b3JrZXJzLgorCitwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDIpOworCiskbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn YXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nLCAnd2FpdCcpOworCVNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2F0dGFjaCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJv Y2Vzc2luZycsICd3YWl0Jyk7CisKKwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRv dmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAxLCBhdXRvdmFjdXVtX2VuYWJsZWQgPSB0cnVlKTsK K30pOworCisjIFdhaXQgdW50aWwgcGFyYWxsZWwgYXV0b3ZhY3V1bSBpcyBpbml0ZWQKKyRub2Rl LT53YWl0X2Zvcl9ldmVudCgKKwknYXV0b3ZhY3V1bSB3b3JrZXInLAorCSdhdXRvdmFjdXVtLXN0 YXJ0LXBhcmFsbGVsLXZhY3V1bScKKyk7CisKKyMgUmVsb2FkIGNvbmZpZyAtIGxlYWRlciB3b3Jr ZXIgbXVzdCB1cGRhdGUgaXRzIG93biBwYXJhbWV0ZXJzIGR1cmluZyBpbmRleGVzCisjIHByb2Nl c3NpbmcKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJQUxURVIgU1lTVEVNIFNF VCB2YWN1dW1fY29zdF9saW1pdCA9IDUwMDsKKwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0 X3BhZ2VfbWlzcyA9IDEwOworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfcGFnZV9kaXJ0 eSA9IDEwOworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfcGFnZV9oaXQgPSAxMDsKKwlT RUxFQ1QgcGdfcmVsb2FkX2NvbmYoKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnYXV0b3ZhY3V1bS1zdGFy dC1wYXJhbGxlbC12YWN1dW0nKTsKK30pOworCisjIE5vdyB3YWl0IHVudGlsIHBhcmFsbGVsIGF1 dG92YWN1dW0gbGVhZGVyIGNvbXBsZXRlcyBwcm9jZXNzaW5nIHRhYmxlIChpLmUuCisjIGd1YXJh bnRlZWQgdG8gY2FsbCB2YWN1dW1fZGVsYXlfcG9pbnQpIGFuZCBsYXVuY2hlcyBwYXJhbGxlbCB3 b3JrZXIuCiskbm9kZS0+d2FpdF9mb3JfZXZlbnQoCisJJ2F1dG92YWN1dW0gd29ya2VyJywKKwkn YXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycKKyk7CisKKyMgQ2hl Y2sgd2hldGhlciBwYXJhbGxlbCB3b3JrZXIgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgYWxsIHBhcmFt ZXRlcnMgZHVyaW5nCisjIGluZGV4IHByb2Nlc3NpbmcKKyRsb2dfc3RhcnQgPSAkbm9kZS0+d2Fp dF9mb3JfbG9nKAorCXFyL3BhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VyIGNvc3QgcGFyYW1zOiBj b3N0X2xpbWl0PTUwMCwgY29zdF9kZWxheT0yLCAvIC4KKwlxci9jb3N0X3BhZ2VfbWlzcz0xMCwg Y29zdF9wYWdlX2RpcnR5PTEwLCBjb3N0X3BhZ2VfaGl0PTEwLywKKwkkbG9nX3N0YXJ0CispOwor CisjIENsZWFudXAKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1w cm9jZXNzaW5nJyk7CisKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1 dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7CisKKwlB TFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMg PSAkYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzKTsKK30pOworCisjIFRlc3QgMzoKKyMgVGVz dCBhZGp1c3RtZW50IG9mIGZyZWUgcGFyYWxsZWwgd29ya2VycyBudW1iZXIgd2hlbiBjaGFuZ2lu ZworIyBhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIHBhcmFtZXRlcgorCitwcmVwYXJl X2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDQpOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnYXV0b3ZhY3V1bS1sZWFkZXIt YmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycsICd3YWl0Jyk7CisJQUxURVIgVEFCTEUgdGVzdF9h dXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gdHJ1ZSk7Cit9KTsKKworJG5vZGUtPndh aXRfZm9yX2V2ZW50KAorCSdhdXRvdmFjdXVtIHdvcmtlcicsCisJJ2F1dG92YWN1dW0tbGVhZGVy LWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnCispOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHFxeworCUFMVEVSIFNZU1RFTSBTRVQgYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29y a2VycyA9IDE7CisJU0VMRUNUIHBnX3JlbG9hZF9jb25mKCk7Cit9KTsKKworIyBTaW5jZSAyIHBh cmFsbGVsIHdvcmtlcnMgYWxyZWFkeSBsYXVuY2hlZCBhbmQgd2lsbCBiZSByZWxlYXNlZCBpbiB0 aGUgZnV0dXJlLAorIyB3ZSBhcmUgZXhwZWN0aW5nIHRoYXQgOgorIyAxKSBudW1iZXIgb2YgZnJl ZSB3b3JrZXJzIHdpbGwgYmUgJzAnIGFmdGVyIGNvbmZpZyByZWxvYWQKKyMgMikgbnVtYmVyIG9m IGZyZWUgd29ya2VycyB3aWxsIGJlICcxJyBhZnRlciByZWxlYXNpbmcgd29ya2VycworCisjIENo ZWNrIHN0YXRlbWVudCAoMSkKKyRsb2dfc3RhcnQgPSAkbm9kZS0+d2FpdF9mb3JfbG9nKAorCXFy L251bWJlciBvZiBmcmVlIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyBpcyBzZXQgdG8gMCBk dWUgdG8gY29uZmlnIHJlbG9hZC8sCisJJGxvZ19zdGFydAorKTsKKworJG5vZGUtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2F1dG92 YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKK30pOworCisjIFdhaXQg dW50aWwgdGhlIGVuZCBvZiBwYXJhbGxlbCBwcm9jZXNzaW5nCiskbG9nX3N0YXJ0ID0gJG5vZGUt PndhaXRfZm9yX2xvZygKKwlxci9hdXRvdmFjdXVtIHdvcmtlcjogMiBwYXJhbGxlbCB3b3JrZXJz IGhhcyBiZWVuIHJlbGVhc2VkLywKKwkkbG9nX3N0YXJ0CispOworCisjIENoZWNrIHN0YXRlbWVu dCAoMikKKyRwc3FsX291dCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VM RUNUIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2VycygpOworfSk7CitpcygkcHNx bF9vdXQsIDEsICdOdW1iZXIgb2YgZnJlZSBwYXJhbGxlbCB3b3JrZXJzIGlzIGNvbnNpc3RlbnQn KTsKKworIyBDbGVhbnVwCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4 ZXMtcHJvY2Vzc2luZycpOworCUFMVEVSIFNZU1RFTSBTRVQgYXV0b3ZhY3V1bV9tYXhfcGFyYWxs ZWxfd29ya2VycyA9IDEwOworCVNFTEVDVCBwZ19yZWxvYWRfY29uZigpOworfSk7CisKKyMgVGVz dCA0OgorIyBXZSB3YW50IHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyB0byBiZSByZWxlYXNl ZCBldmVuIGlmIGxlYWRlciBnZXRzIGFuCisjIGVycm9yLiBBdCBmaXJzdCwgc2ltdWxhdGUgc2l0 dWF0aW9uLCB3aGVuIGxlYWRlciBleGl0cyBkdWUgdG8gYW4gRVJST1IuCisKK3ByZXBhcmVfZm9y X25leHRfdGVzdCgkbm9kZSwgNCk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZv cmUtaW5kZXhlcy1wcm9jZXNzaW5nJywgJ2Vycm9yJyk7CisJQUxURVIgVEFCTEUgdGVzdF9hdXRv dmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gdHJ1ZSk7Cit9KTsKKworJGxvZ19zdGFydCA9 ICRub2RlLT53YWl0X2Zvcl9sb2coCisJcXIvZXJyb3IgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24g cG9pbnQgLyAuCisJcXIvYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2lu Zy8sCisJJGxvZ19zdGFydAorKTsKKworJGxvZ19zdGFydCA9ICRub2RlLT53YWl0X2Zvcl9sb2co CisJcXIvYXV0b3ZhY3V1bSB3b3JrZXI6IDIgcGFyYWxsZWwgd29ya2VycyBoYXMgYmVlbiByZWxl YXNlZC8sCisJJGxvZ19zdGFydAorKTsKKworIyBDbGVhbnVwCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXV0b3ZhY3V1 bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycpOworfSk7CisKKyMgVGVzdCA1Ogor IyBTYW1lIGFzIGFib3ZlIHRlc3QsIGJ1dCBzaW11bGF0ZSBzaXR1YXRpb24sIHdoZW4gbGVhZGVy IGV4aXRzIGR1ZSB0byBGQVRBTC4KKworcHJlcGFyZV9mb3JfbmV4dF90ZXN0KCRub2RlLCA1KTsK KworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19hdHRhY2goJ2F1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3Npbmcn LCAnd2FpdCcpOworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fZW5h YmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1bnRpbCBwYXJhbGxlbCB3b3JrZXJzIGFyZSBy ZXNlcnZlZCBhdXRvdmFjdXVtIGFuZCBraWxsIHRoZSBsZWFkZXIKKyRub2RlLT53YWl0X2Zvcl9l dmVudCgKKwknYXV0b3ZhY3V1bSB3b3JrZXInLAorCSdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUt aW5kZXhlcy1wcm9jZXNzaW5nJworKTsKKworbXkgJGF2X3BpZCA9ICRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIHBpZCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkKKwlXSEVS RSBiYWNrZW5kX3R5cGUgPSAnYXV0b3ZhY3V1bSB3b3JrZXInCisJICBBTkQgd2FpdF9ldmVudCA9 ICdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJworCUxJTUlUIDE7 Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgcGdfdGVy bWluYXRlX2JhY2tlbmQoJyRhdl9waWQnKTsKK30pOworCiskbG9nX3N0YXJ0ID0gJG5vZGUtPndh aXRfZm9yX2xvZygKKwlxci9hdXRvdmFjdXVtIHdvcmtlcjogMiBwYXJhbGxlbCB3b3JrZXJzIGhh cyBiZWVuIHJlbGVhc2VkLywKKwkkbG9nX3N0YXJ0CispOworCisjIENsZWFudXAKKyRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNo KCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7Cit9KTsKKwor JG5vZGUtPnN0b3A7Citkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbCBiL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTU2NDZlMGRlZjUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0tLTEu MC5zcWwKQEAgLTAsMCArMSwxMiBAQAorLyogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vdGVzdF9hdXRvdmFjdXVtLS0xLjAuc3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlwdCBp cyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9OCitcZWNo byBVc2UgIkNSRUFURSBFWFRFTlNJT04gdGVzdF9hdXRvdmFjdXVtIiB0byBsb2FkIHRoaXMgZmls ZS4gXHF1aXQKKworLyoKKyAqIEZ1bmN0aW9ucyBmb3IgZXhwZWN0aW5nIHNoYXJlZCBhdXRvdmFj dXVtIHN0YXRlCisgKi8KKworQ1JFQVRFIEZVTkNUSU9OIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVt X2ZyZWVfd29ya2VycygpCitSRVRVUk5TIElOVEVHRVIgU1RSSUNUCitBUyAnTU9EVUxFX1BBVEhO QU1FJyBMQU5HVUFHRSBDOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1 bS90ZXN0X2F1dG92YWN1dW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZGQ1YzgzOWU4NTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf YXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uYwpAQCAtMCwwICsxLDMxIEBACisvKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCisgKiB0ZXN0X2F1dG92YWN1dW0uYworICoJCUhlbHBlcnMgdG8gd3JpdGUg dGVzdHMgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAt MjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElG SUNBVElPTgorICoJICBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92 YWN1dW0uYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jl cy5oIgorCisjaW5jbHVkZSAiZm1nci5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5oIgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgorCitQR19NT0RVTEVfTUFH SUM7CisKK1BHX0ZVTkNUSU9OX0lORk9fVjEoZ2V0X3BhcmFsbGVsX2F1dG92YWN1dW1fZnJlZV93 b3JrZXJzKTsKK0RhdHVtCitnZXRfcGFyYWxsZWxfYXV0b3ZhY3V1bV9mcmVlX3dvcmtlcnMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwlpbnQzMgkJbmZyZWVfd29ya2VyczsKKworCW5mcmVlX3dvcmtl cnMgPSBBdXRvVmFjdXVtR2V0RnJlZVBhcmFsbGVsV29ya2VycygpOworCisJUEdfUkVUVVJOX0lO VDMyKG5mcmVlX3dvcmtlcnMpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmNvbnRyb2wgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uY29udHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMWI3ZmFkMjU4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uY29udHJvbApAQCAt MCwwICsxLDMgQEAKK2NvbW1lbnQgPSAnVGVzdCBjb2RlIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVt JworZGVmYXVsdF92ZXJzaW9uID0gJzEuMCcKK21vZHVsZV9wYXRobmFtZSA9ICckbGliZGlyL3Rl c3RfYXV0b3ZhY3V1bScKLS0gCjIuNDMuMAoK --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v26-0002-Logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v26-0002-Logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5znly4 RnJvbSA1MTU5MGQ4ODNlNjY2MTkyYzY1MGE1YTRiODg1MDdlZTRjNTRiNzZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE5OjAxOjA1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjYgMi82XSBMb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNr 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 aW5kZXggODA2YTdmNDgzMjYuLjJkNTgzNDM1Njk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMKQEAgLTIyOCw3ICsyMjgsNyBAQCBzdHJ1Y3QgUGFyYWxsZWxWYWN1dW1TdGF0 ZQogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICpp bmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCQkJCQkJCQkJCQlib29sICp3 aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vz c19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2Nh bnMsCi0JCQkJCQkJCQkJCQlib29sIHZhY3V1bSk7CisJCQkJCQkJCQkJCQlib29sIHZhY3V1bSwg UFZXb3JrZXJzU3RhdHMgKndzdGF0cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19zYWZlX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIHN0YXRpYyB2b2lk IHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Vuc2FmZV9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgo UGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCkBAIC01MDMsNyArNTAz LDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Jlc2V0X2RlYWRfaXRlbXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzKQogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQ YXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJ CWludCBudW1faW5kZXhfc2NhbnMpCisJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLCBQVldv cmtlcnNVc2FnZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApA QCAtNTE0LDcgKzUxNCw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBh cmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQt PnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9j b3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMs IG51bV9pbmRleF9zY2FucywgdHJ1ZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2lu ZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIHRydWUsCisJCQkJCQkJCQkJJnd1c2FnZS0+dmFj dXVtKTsKIH0KIAogLyoKQEAgLTUyMiw3ICs1MjMsOCBAQCBwYXJhbGxlbF92YWN1dW1fYnVsa2Rl bF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1 cAogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxl bFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJCWludCBu dW1faW5kZXhfc2NhbnMsIGJvb2wgZXN0aW1hdGVkX2NvdW50KQorCQkJCQkJCQkJaW50IG51bV9p bmRleF9zY2FucywgYm9vbCBlc3RpbWF0ZWRfY291bnQsCisJCQkJCQkJCQlQVldvcmtlcnNVc2Fn ZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTM0LDcg KzUzNiw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxl cyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IGVz dGltYXRlZF9jb3VudDsKIAotCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKHB2 cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxs X2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIGZhbHNlLAorCQkJCQkJCQkJCSZ3dXNhZ2Ut PmNsZWFudXApOwogfQogCiAvKgpAQCAtNjE2LDEwICs2MTksMTMgQEAgcGFyYWxsZWxfdmFjdXVt X2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJl cXVlc3RlZCwKIC8qCiAgKiBQZXJmb3JtIGluZGV4IHZhY3V1bSBvciBpbmRleCBjbGVhbnVwIHdp dGggcGFyYWxsZWwgd29ya2Vycy4gIFRoaXMgZnVuY3Rpb24KICAqIG11c3QgYmUgdXNlZCBieSB0 aGUgcGFyYWxsZWwgdmFjdXVtIGxlYWRlciBwcm9jZXNzLgorICoKKyAqIElmIHdzdGF0cyBpcyBu b3QgTlVMTCwgdGhlIHN0YXRpc3RpY3MgaXQgc3RvcmVzIHdpbGwgYmUgdXBkYXRlZCBhY2NvcmRp bmcKKyAqIHRvIHdoYXQgaGFwcGVucyBkdXJpbmcgZnVuY3Rpb24gZXhlY3V0aW9uLgogICovCiBz dGF0aWMgdm9pZAogcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1 dW0pCisJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJzU3RhdHMgKndzdGF0cykKIHsKIAlp bnQJCQlud29ya2VyczsKIAlQVkluZFZhY1N0YXR1cyBuZXdfc3RhdHVzOwpAQCAtNjU2LDYgKzY2 MiwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1 bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCSAqLwogCW53b3JrZXJzID0gTWluKG53 b3JrZXJzLCBwdnMtPnBjeHQtPm53b3JrZXJzKTsKIAorCS8qIFJlbWVtYmVyIHRoaXMgdmFsdWUs IGlmIHdlIGFza2VkIHRvICovCisJaWYgKHdzdGF0cyAhPSBOVUxMICYmIG53b3JrZXJzID4gMCkK KwkJd3N0YXRzLT5ucGxhbm5lZCArPSBud29ya2VyczsKKwogCS8qCiAJICogUmVzZXJ2ZSB3b3Jr ZXJzIGluIGF1dG92YWN1dW0gZ2xvYmFsIHN0YXRlLiBOb3RlIHRoYXQgd2UgbWF5IGJlIGdpdmVu CiAJICogZmV3ZXIgd29ya2VycyB0aGFuIHdlIHJlcXVlc3RlZC4KQEAgLTcyOSw2ICs3MzksMTAg QEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJCS8qIEVuYWJsZSBzaGFyZWQgY29zdCBiYWxh bmNlIGZvciBsZWFkZXIgYmFja2VuZCAqLwogCQkJVmFjdXVtU2hhcmVkQ29zdEJhbGFuY2UgPSAm KHB2cy0+c2hhcmVkLT5jb3N0X2JhbGFuY2UpOwogCQkJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAm KHB2cy0+c2hhcmVkLT5hY3RpdmVfbndvcmtlcnMpOworCisJCQkvKiBSZW1lbWJlciB0aGlzIHZh bHVlLCBpZiB3ZSBhc2tlZCB0byAqLworCQkJaWYgKHdzdGF0cyAhPSBOVUxMKQorCQkJCXdzdGF0 cy0+bmxhdW5jaGVkICs9IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7CiAJCX0KIAogCQlp ZiAodmFjdXVtKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggYi9z cmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCBlODg1YTRiOWM3Ny4uMWQ4MjA5MTVk NzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC0zMDAsNiArMzAwLDI4IEBAIHR5cGVkZWYgc3Ry dWN0IFZhY0RlYWRJdGVtc0luZm8KIAlpbnQ2NAkJbnVtX2l0ZW1zOwkJLyogY3VycmVudCAjIG9m IGVudHJpZXMgKi8KIH0gVmFjRGVhZEl0ZW1zSW5mbzsKIAorLyoKKyAqIEhlbHBlciBmb3IgdGhl IFBWV29ya2Vyc1VzYWdlIHN0cnVjdHVyZSAoc2VlIGJlbG93KSwgdG8gYXZvaWQgcmVwZXRpdGlv bi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJzU3RhdHMKK3sKKwkvKiBOdW1iZXIgb2Yg cGFyYWxsZWwgd29ya2VycyB3ZSBhcmUgcGxhbm5lZCB0byBsYXVuY2ggKi8KKwlpbnQJCQlucGxh bm5lZDsKKworCS8qIE51bWJlciBvZiBsYXVuY2hlZCBwYXJhbGxlbCB3b3JrZXJzICovCisJaW50 CQkJbmxhdW5jaGVkOworfSBQVldvcmtlcnNTdGF0czsKKworLyoKKyAqIFBWV29ya2Vyc1VzYWdl IHN0b3JlcyBpbmZvcm1hdGlvbiBhYm91dCB0b3RhbCBudW1iZXIgb2YgbGF1bmNoZWQgYW5kCisg KiBwbGFubmVkIHdvcmtlcnMgZHVyaW5nIHBhcmFsbGVsIHZhY3V1bSAoYm90aCBmb3IgdmFjdXVt IGFuZCBjbGVhbnVwKS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJzVXNhZ2UKK3sKKwlQ VldvcmtlcnNTdGF0cyB2YWN1dW07CisJUFZXb3JrZXJzU3RhdHMgY2xlYW51cDsKK30gUFZXb3Jr ZXJzVXNhZ2U7CisKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50 IGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7CS8qIFBHRExMSU1QT1JUIGZvciBQb3N0R0lTICov CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9mcmVlemVfbWluX2FnZTsKQEAgLTM5NCwx MSArNDE2LDEzIEBAIGV4dGVybiBUaWRTdG9yZSAqcGFyYWxsZWxfdmFjdXVtX2dldF9kZWFkX2l0 ZW1zKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1 bV9yZXNldF9kZWFkX2l0ZW1zKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBleHRlcm4gdm9p ZCBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsCiAJCQkJCQkJCQkJCQlsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQkJCQlp bnQgbnVtX2luZGV4X3NjYW5zKTsKKwkJCQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsCisJ CQkJCQkJCQkJCQlQVldvcmtlcnNVc2FnZSAqd3VzYWdlKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVs X3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywKIAkJ CQkJCQkJCQkJCWxvbmcgbnVtX3RhYmxlX3R1cGxlcywKIAkJCQkJCQkJCQkJCWludCBudW1faW5k ZXhfc2NhbnMsCi0JCQkJCQkJCQkJCQlib29sIGVzdGltYXRlZF9jb3VudCk7CisJCQkJCQkJCQkJ CQlib29sIGVzdGltYXRlZF9jb3VudCwKKwkJCQkJCQkJCQkJCVBWV29ya2Vyc1VzYWdlICp3dXNh Z2UpOwogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKTsKIAogLyogaW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1naXQg YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CmluZGV4IDUyZjg2MDNhN2JlLi5hNjdkNTRlMTgxOSAxMDA2NDQKLS0tIGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKQEAgLTIwODgsNiArMjA4OCw4IEBAIFBWSW5kU3RhdHMKIFBWSW5kVmFj U3RhdHVzCiBQVk9JRAogUFZTaGFyZWQKK1BWV29ya2Vyc1VzYWdlCitQVldvcmtlcnNTdGF0cwog UFhfQWxpYXMKIFBYX0NpcGhlcgogUFhfQ29tYm8KLS0gCjIuNDMuMAoK --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v26-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Disposition: attachment; filename="v26-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5znlo3 RnJvbSBlYjE0NDlkMGQ0NTcwMDU5ZjFlMjcxZWNkODFkYWM4YzI2YTYyZGIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE1IEphbiAyMDI2IDIzOjE1OjQ4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjYgMy82XSBDb3N0IGJhc2VkIHBhcmFtZXRlcnMgcHJvcGFnYXRpb24gZm9yIHBhcmFsbGVs 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 bmRleCAyZDU4MzQzNTY5Ni4uMmNhZDZiMTU1MTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwpAQCAtMTgsNiArMTgsMTMgQEAKICAqIHRoZSBwYXJhbGxlbCBjb250ZXh0IGlz IHJlLWluaXRpYWxpemVkIHNvIHRoYXQgdGhlIHNhbWUgRFNNIGNhbiBiZSB1c2VkIGZvcgogICog bXVsdGlwbGUgcGFzc2VzIG9mIGluZGV4IGJ1bGstZGVsZXRpb24gYW5kIGluZGV4IGNsZWFudXAu CiAgKgorICogRm9yIHBhcmFsbGVsIGF1dG92YWN1dW0sIHdlIG5lZWQgdG8gcHJvcGFnYXRlIGNv c3QtYmFzZWQgdmFjdXVtIGRlbGF5CisgKiBwYXJhbWV0ZXJzIGZyb20gdGhlIGxlYWRlciB0byBp dHMgd29ya2VycywgYXMgdGhlIGxlYWRlcidzIHBhcmFtZXRlcnMgY2FuCisgKiBjaGFuZ2UgZXZl biB3aGlsZSBwcm9jZXNzaW5nIGEgdGFibGUgKGUuZy4sIGR1ZSB0byBhIGNvbmZpZyByZWxvYWQp LgorICogVGhlIFBWU2hhcmVkQ29zdFBhcmFtcyBzdHJ1Y3QgbWFuYWdlcyB0aGVzZSBwYXJhbWV0 ZXJzIHVzaW5nIGEKKyAqIGdlbmVyYXRpb24gY291bnRlci4gRWFjaCBwYXJhbGxlbCB3b3JrZXIg cG9sbHMgdGhpcyBzaGFyZWQgc3RhdGUgYW5kCisgKiByZWZyZXNoZXMgaXRzIGxvY2FsIGRlbGF5 IHBhcmFtZXRlcnMgd2hlbmV2ZXIgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQuCisgKgogICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKQEAgLTU0LDYgKzYxLDMxIEBACiAjZGVmaW5lIFBB UkFMTEVMX1ZBQ1VVTV9LRVlfV0FMX1VTQUdFCQk0CiAjZGVmaW5lIFBBUkFMTEVMX1ZBQ1VVTV9L RVlfSU5ERVhfU1RBVFMJCTUKIAorLyoKKyAqIFN0cnVjdCBmb3IgY29zdC1iYXNlZCB2YWN1dW0g ZGVsYXkgcmVsYXRlZCBwYXJhbWV0ZXJzIHRvIHNoYXJlIGFtb25nIGFuCisgKiBhdXRvdmFjdXVt IHdvcmtlciBhbmQgaXRzIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXJzLgorICovCit0eXBlZGVmIHN0 cnVjdCBQVlNoYXJlZENvc3RQYXJhbXMKK3sKKwkvKgorCSAqIFRoZSBnZW5lcmF0aW9uIGNvdW50 ZXIgaXMgaW5jcmVtZW50ZWQgYnkgdGhlIGxlYWRlciBwcm9jZXNzIGVhY2ggdGltZQorCSAqIGl0 IHVwZGF0ZXMgdGhlIHNoYXJlZCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzLiBQ YXJhbGVsbAorCSAqIHZhY3V1bSB3b3JrZXJzIGNvbXBhcmVzIGl0IHdpdGggdGhlaXIgbG9jYWwg Z2VuZXJhdGlvbiwKKwkgKiBzaGFyZWRfcGFyYW1zX2dlbmVyYXRpb25fbG9jYWwsIHRvIGRldGVj dCB3aGV0aGVyIHRoZXkgbmVlZCB0byByZWZyZXNoCisJICogdGhlaXIgbG9jYWwgcGFyYW1ldGVy cy4KKwkgKi8KKwlwZ19hdG9taWNfdWludDMyIGdlbmVyYXRpb247CisKKwlzbG9ja190CQltdXRl eDsJCQkvKiBwcm90ZWN0cyBhbGwgZmllbGRzIGJlbG93ICovCisKKwkvKiBQYXJhbWV0ZXJzIHRv IHNoYXJlIHdpdGggcGFyYWxsZWwgd29ya2VycyAqLworCWRvdWJsZQkJY29zdF9kZWxheTsKKwlp bnQJCQljb3N0X2xpbWl0OworCWludAkJCWNvc3RfcGFnZV9kaXJ0eTsKKwlpbnQJCQljb3N0X3Bh Z2VfaGl0OworCWludAkJCWNvc3RfcGFnZV9taXNzOworfSBQVlNoYXJlZENvc3RQYXJhbXM7CisK IC8qCiAgKiBTaGFyZWQgaW5mb3JtYXRpb24gYW1vbmcgcGFyYWxsZWwgd29ya2Vycy4gIFNvIHRo aXMgaXMgYWxsb2NhdGVkIGluIHRoZSBEU00KICAqIHNlZ21lbnQuCkBAIC0xMjMsNiArMTU1LDE4 IEBAIHR5cGVkZWYgc3RydWN0IFBWU2hhcmVkCiAKIAkvKiBTdGF0aXN0aWNzIG9mIHNoYXJlZCBk ZWFkIGl0ZW1zICovCiAJVmFjRGVhZEl0ZW1zSW5mbyBkZWFkX2l0ZW1zX2luZm87CisKKwkvKgor CSAqIElmICd0cnVlJyB0aGVuIHdlIGFyZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1dW0uIE90 aGVyd2lzZSwgd2UgYXJlCisJICogcnVubmluZyBwYXJhbGxlbCBtYWludGVuZW5jZSBWQUNVVU0u CisJICovCisJYm9vbAkJaXNfYXV0b3ZhY3V1bTsKKworCS8qCisJICogU3RydWN0IGZvciBzeW5j aW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgYmV0d2VlbgorCSAqIHN1cHBv cnRpdmUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHdpdGggbGVhZGVyIHdvcmtlci4KKwkg Ki8KKwlQVlNoYXJlZENvc3RQYXJhbXMgY29zdF9wYXJhbXM7CiB9IFBWU2hhcmVkOwogCiAvKiBT dGF0dXMgdXNlZCBkdXJpbmcgcGFyYWxsZWwgaW5kZXggdmFjdXVtIG9yIGNsZWFudXAgKi8KQEAg LTIyNSw2ICsyNjksMTEgQEAgc3RydWN0IFBhcmFsbGVsVmFjdXVtU3RhdGUKIAlQVkluZFZhY1N0 YXR1cyBzdGF0dXM7CiB9OwogCitzdGF0aWMgUFZTaGFyZWRDb3N0UGFyYW1zICpwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCisvKiBTZWUgY29tbWVudHMgaW4gdGhlIFBWU2hhcmVkQ29z dFBhcmFtcyBmb3IgdGhlIGRldGFpbHMgKi8KK3N0YXRpYyB1aW50MzIgc2hhcmVkX3BhcmFtc19n ZW5lcmF0aW9uX2xvY2FsID0gMDsKKwogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0 ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVk LAogCQkJCQkJCQkJCQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIGludCBudW1faW5kZXhfc2NhbnMsCkBAIC0yMzYsNiArMjg1LDcgQEAgc3RhdGljIHZvaWQg cGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2 cywgUmVsYXRpb24KIHN0YXRpYyBib29sIHBhcmFsbGVsX3ZhY3V1bV9pbmRleF9pc19wYXJhbGxl bF9zYWZlKFJlbGF0aW9uIGluZHJlbCwgaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJ CSAgIGJvb2wgdmFjdXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxs YmFjayh2b2lkICphcmcpOworc3RhdGljIGlubGluZSB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9zZXRf Y29zdF9wYXJhbWV0ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKTsKIAogLyoKICAqIFRy eSB0byBlbnRlciBwYXJhbGxlbCBtb2RlIGFuZCBjcmVhdGUgYSBwYXJhbGxlbCBjb250ZXh0LiAg VGhlbiBpbml0aWFsaXplCkBAIC0zOTYsNiArNDQ2LDIxIEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0 KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlwZ19hdG9t aWNfaW5pdF91MzIoJihzaGFyZWQtPmFjdGl2ZV9ud29ya2VycyksIDApOwogCXBnX2F0b21pY19p bml0X3UzMigmKHNoYXJlZC0+aWR4KSwgMCk7CiAKKwlzaGFyZWQtPmlzX2F1dG92YWN1dW0gPSBB bUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCk7CisKKwkvKgorCSAqIEluaXRpYWxpemUgc2hhcmVk IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgaWYgaXQncyBmb3IKKwkgKiBhdXRv dmFjdXVtLgorCSAqLworCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJeworCQlwYXJhbGxl bF92YWN1dW1fc2V0X2Nvc3RfcGFyYW1ldGVycygmc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisJCXBn X2F0b21pY19pbml0X3UzMigmc2hhcmVkLT5jb3N0X3BhcmFtcy5nZW5lcmF0aW9uLCAwKTsKKwkJ U3BpbkxvY2tJbml0KCZzaGFyZWQtPmNvc3RfcGFyYW1zLm11dGV4KTsKKworCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCX0KKwogCXNobV90b2NfaW5z ZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9TSEFSRUQsIHNoYXJlZCk7CiAJcHZz LT5zaGFyZWQgPSBzaGFyZWQ7CiAKQEAgLTQ2MSw2ICs1MjYsOSBAQCBwYXJhbGxlbF92YWN1dW1f ZW5kKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICoqaXN0 YXRzKQogCURlc3Ryb3lQYXJhbGxlbENvbnRleHQocHZzLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxN b2RlKCk7CiAKKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCiAJcGZyZWUocHZzLT53aWxsX3BhcmFsbGVsX3ZhY3V1bSk7 CiAJcGZyZWUocHZzKTsKIH0KQEAgLTU0MCw2ICs2MDgsOTUgQEAgcGFyYWxsZWxfdmFjdXVtX2Ns 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 LgpAQCAtMTEwMyw2ICsxMjYwLDkgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQg KnNlZywgc2htX3RvYyAqdG9jKQogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihzaGFyZWQt PmNvc3RfYmFsYW5jZSk7CiAJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAmKHNoYXJlZC0+YWN0aXZl X253b3JrZXJzKTsKIAorCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJCXB2X3NoYXJlZF9j b3N0X3BhcmFtcyA9ICYoc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisKIAkvKiBTZXQgcGFyYWxsZWwg dmFjdXVtIHN0YXRlICovCiAJcHZzLmluZHJlbHMgPSBpbmRyZWxzOwogCXB2cy5uaW5kZXhlcyA9 IG5pbmRleGVzOwpAQCAtMTE1Miw2ICsxMzEyLDkgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNt X3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCXZhY19jbG9zZV9pbmRleGVzKG5pbmRleGVz LCBpbmRyZWxzLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAl0YWJsZV9jbG9zZShyZWwsIFNoYXJlVXBk YXRlRXhjbHVzaXZlTG9jayk7CiAJRnJlZUFjY2Vzc1N0cmF0ZWd5KHB2cy5ic3RyYXRlZ3kpOwor CisJaWYgKHNoYXJlZC0+aXNfYXV0b3ZhY3V1bSkKKwkJcHZfc2hhcmVkX2Nvc3RfcGFyYW1zID0g TlVMTDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggZTFjOTk1 ZGQyZWEuLmEwYzAyMGZhMWE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1 dG92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAt MTY5MSw3ICsxNjkxLDcgQEAgVmFjdXVtVXBkYXRlQ29zdHModm9pZCkKIAl9CiAJZWxzZQogCXsK LQkJLyogTXVzdCBiZSBleHBsaWNpdCBWQUNVVU0gb3IgQU5BTFlaRSAqLworCQkvKiBNdXN0IGJl IGV4cGxpY2l0IFZBQ1VVTSBvciBBTkFMWVpFIG9yIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2Vy ICovCiAJCXZhY3V1bV9jb3N0X2RlbGF5ID0gVmFjdXVtQ29zdERlbGF5OwogCQl2YWN1dW1fY29z dF9saW1pdCA9IFZhY3V1bUNvc3RMaW1pdDsKIAl9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCmluZGV4IDFk ODIwOTE1ZDcxLi5jZjBjM2M5ZGJmNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv dmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKQEAgLTQyMyw2ICs0 MjMsOCBAQCBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQ YXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5z LAogCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQsCiAJCQkJCQkJCQkJCQlQVldvcmtl cnNVc2FnZSAqd3VzYWdlKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hh cmVkX2RlbGF5X3BhcmFtcyh2b2lkKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9w YWdhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcyh2b2lkKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3Zh Y3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1h bmRzL2FuYWx5emUuYyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBhNjdkNTRlMTgx OS4uMTViOGM5NjZiZjggMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4LDYgKzIw ODgsNyBAQCBQVkluZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVkCitQVlNo YXJlZENvc3RQYXJhbXMKIFBWV29ya2Vyc1VzYWdlCiBQVldvcmtlcnNTdGF0cwogUFhfQWxpYXMK LS0gCjIuNDMuMAoK --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v26-0005-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v26-0005-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5znl51 RnJvbSA4OWVlMGIzZjgwNjc4MTY0YzZiZDRiOTExN2MxMjZmYzE1YmQxMzI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAyOjMyOjQ0ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjYgNS82XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxNyArKysrKysrKysrKysrKysrKwog ZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwgICAgICB8IDEyICsrKysrKysrKysrKwogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCB8IDIwICsrKysrKysrKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggOGNkZDgy NmZiZDMuLjczZjgzOWI2YThkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0yOTE4LDYgKzI5MTgsNyBAQCBpbmNs dWRlX2RpciAnY29uZi5kJwogICAgICAgICA8cGFyYT4KICAgICAgICAgIFdoZW4gY2hhbmdpbmcg dGhpcyB2YWx1ZSwgY29uc2lkZXIgYWxzbyBhZGp1c3RpbmcKICAgICAgICAgIDx4cmVmIGxpbmtl bmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIvPiwKKyAgICAgICAgIDx4cmVmIGxpbmtlbmQ9 Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+LAogICAgICAgICAgPHhyZWYg bGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC1tYWludGVuYW5jZS13b3JrZXJzIi8+LCBhbmQKICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2Vycy1wZXItZ2F0aGVy Ii8+LgogICAgICAgICA8L3BhcmE+CkBAIC05Mzk1LDYgKzkzOTYsMjIgQEAgQ09QWSBwb3N0Z3Jl c19sb2cgRlJPTSAnL2Z1bGwvcGF0aC90by9sb2dmaWxlLmNzdicgV0lUSCBjc3Y7CiAgICAgICAg PC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIgeHJlZmxhYmVsPSJhdXRv dmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIj4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+YXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczwvdmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5 cGU+KQorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczwvdmFybmFtZT48L3ByaW1hcnk+CisgICAgICAg ICA8c2Vjb25kYXJ5PmNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9zZWNvbmRhcnk+CisgICAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgICA8L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgIDxwYXJhPgorICAgICAgICAgIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVs IGF1dG92YWN1dW0gd29ya2VycyB0aGF0CisgICAgICAgICAgY2FuIGJlIHVzZWQgZm9yIHBhcmFs bGVsIGluZGV4IHZhY3V1bWluZyBhdCBvbmUgdGltZS4gSXMgY2FwcGVkIGJ5CisgICAgICAgICAg PHhyZWYgbGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+LiBUaGUgZGVmYXVsdCBp cyAyLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9tYWludGVu YW5jZS5zZ21sCmluZGV4IDdjOTU4YjA2MjczLi5jOWY5MTYzYzU1MSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNl LnNnbWwKQEAgLTkyNiw2ICs5MjYsMTggQEAgSElOVDogIEV4ZWN1dGUgYSBkYXRhYmFzZS13aWRl IFZBQ1VVTSBpbiB0aGF0IGRhdGFiYXNlLgogICAgIGF1dG92YWN1dW0gd29ya2VycycgYWN0aXZp dHkuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIElmIGFuIGF1dG92YWN1dW0gd29ya2Vy IHByb2Nlc3MgY29tZXMgYWNyb3NzIGEgdGFibGUgd2l0aCB0aGUgZW5hYmxlZAorICAgIDx4cmVm IGxpbmtlbmQ9InJlbG9wdGlvbi1hdXRvdmFjdXVtLXBhcmFsbGVsLXdvcmtlcnMiLz4gc3RvcmFn ZSBwYXJhbWV0ZXIsCisgICAgaXQgd2lsbCBsYXVuY2ggcGFyYWxsZWwgd29ya2VycyBpbiBvcmRl ciB0byB2YWN1dW0gaW5kZXhlcyBvZiB0aGlzIHRhYmxlCisgICAgaW4gYSBwYXJhbGxlbCBtb2Rl LiBQYXJhbGxlbCB3b3JrZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBwb29sIG9mIHByb2Nlc3Nlcwor ICAgIGVzdGFibGlzaGVkIGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtd29ya2VyLXByb2Nlc3Nl cyIvPiwgbGltaXRlZCBieQorICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29y a2VycyIvPi4KKyAgICBUaGUgdG90YWwgbnVtYmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29y a2VycyB0aGF0IGNhbiBiZSBhY3RpdmUgYXQgb25lCisgICAgdGltZSBpcyBsaW1pdGVkIGJ5IHRo ZSA8eHJlZiBsaW5rZW5kPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIvPgor ICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAg ICBJZiBzZXZlcmFsIGxhcmdlIHRhYmxlcyBhbGwgYmVjb21lIGVsaWdpYmxlIGZvciB2YWN1dW1p bmcgaW4gYSBzaG9ydAogICAgIGFtb3VudCBvZiB0aW1lLCBhbGwgYXV0b3ZhY3V1bSB3b3JrZXJz IG1pZ2h0IGJlY29tZSBvY2N1cGllZCB3aXRoCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApp bmRleCA5ODI1MzJmZTcyNS4uNDg5NGRlMDIxY2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbApAQCAtMTcxOCw2ICsxNzE4LDI2IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAg PC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgIDx2YXJsaXN0ZW50cnkgaWQ9InJl bG9wdGlvbi1hdXRvdmFjdXVtLXBhcmFsbGVsLXdvcmtlcnMiIHhyZWZsYWJlbD0iYXV0b3ZhY3V1 bV9wYXJhbGxlbF93b3JrZXJzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5hdXRvdmFjdXVtX3BhcmFs bGVsX3dvcmtlcnM8L2xpdGVyYWw+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICA8aW5kZXh0 ZXJtPgorICAgICA8cHJpbWFyeT48dmFybmFtZT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnM8 L3Zhcm5hbWU+IHN0b3JhZ2UgcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgIDwvaW5kZXh0ZXJtPgor ICAgIDwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgU2V0cyB0aGUg bWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQgY2FuIHBy b2Nlc3MKKyAgICAgIGluZGV4ZXMgb2YgdGhpcyB0YWJsZS4KKyAgICAgIFRoZSBkZWZhdWx0IHZh bHVlIGlzIC0xLCB3aGljaCBtZWFucyBubyBwYXJhbGxlbCBpbmRleCB2YWN1dW1pbmcgZm9yCisg ICAgICB0aGlzIHRhYmxlLiBJZiB2YWx1ZSBpcyAwIHRoZW4gcGFyYWxsZWwgZGVncmVlIHdpbGwg Y29tcHV0ZWQgYmFzZWQgb24KKyAgICAgIG51bWJlciBvZiBpbmRleGVzLgorICAgICAgTm90ZSB0 aGF0IHRoZSBjb21wdXRlZCBudW1iZXIgb2Ygd29ya2VycyBtYXkgbm90IGFjdHVhbGx5IGJlIGF2 YWlsYWJsZSBhdAorICAgICAgcnVuIHRpbWUuIElmIHRoaXMgb2NjdXJzLCB0aGUgYXV0b3ZhY3V1 bSB3aWxsIHJ1biB3aXRoIGZld2VyIHdvcmtlcnMKKyAgICAgIHRoYW4gZXhwZWN0ZWQuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJs aXN0ZW50cnkgaWQ9InJlbG9wdGlvbi1hdXRvdmFjdXVtLXZhY3V1bS10aHJlc2hvbGQiIHhyZWZs YWJlbD0iYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIj4KICAgICA8dGVybT48bGl0ZXJhbD5h dXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD50b2FzdC5hdXRv dmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ8L2xpdGVyYWw+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikK ICAgICA8aW5kZXh0ZXJtPgotLSAKMi40My4wCgo= --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v26-0001-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v26-0001-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5znm75 RnJvbSBkYjQ5YTc3NzZjNmZhYmE2N2E3YzVmMzQwZjkxZGE1YzBlMjY0ZTgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAxOjAzOjI0ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjYgMS82XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDQyICsrKystCiBzcmMvYmFja2VuZC9wb3N0bWFz dGVyL2F1dG92YWN1dW0uYyAgICAgICAgICAgfCAxNjQgKysrKysrKysrKysrKysrKystCiBzcmMv YmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAxICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9t aXNjYWRtaW4uaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcG9z dG1hc3Rlci9hdXRvdmFjdXVtLmggICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3V0aWxz L3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArCiAxMSBmaWxlcyBjaGFuZ2VkLCAy NDAgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYwppbmRleCAyMzdhYjhkMGVkOS4uOTQ1OWEwMTBjYzMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0yMzUsNiArMjM1LDE1IEBAIHN0YXRpYyBy ZWxvcHRfaW50IGludFJlbE9wdHNbXSA9CiAJCX0sCiAJCVNQR0lTVF9ERUZBVUxUX0ZJTExGQUNU T1IsIFNQR0lTVF9NSU5fRklMTEZBQ1RPUiwgMTAwCiAJfSwKKwl7CisJCXsKKwkJCSJhdXRvdmFj dXVtX3BhcmFsbGVsX3dvcmtlcnMiLAorCQkJIk1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1 dG92YWN1dW0gd29ya2VycyB0aGF0IGNhbiBiZSB1c2VkIGZvciBwcm9jZXNzaW5nIHRoaXMgdGFi bGUuIiwKKwkJCVJFTE9QVF9LSU5EX0hFQVAsCisJCQlTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sK KwkJfSwKKwkJLTEsIC0xLCAxMDI0CisJfSwKIAl7CiAJCXsKIAkJCSJhdXRvdmFjdXVtX3ZhY3V1 bV90aHJlc2hvbGQiLApAQCAtMTk2OCw2ICsxOTc3LDggQEAgZGVmYXVsdF9yZWxvcHRpb25zKERh dHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUsIHJlbG9wdF9raW5kIGtpbmQpCiAJCXsiZmls bGZhY3RvciIsIFJFTE9QVF9UWVBFX0lOVCwgb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCBmaWxsZmFj dG9yKX0sCiAJCXsiYXV0b3ZhY3V1bV9lbmFibGVkIiwgUkVMT1BUX1RZUEVfQk9PTCwKIAkJb2Zm c2V0b2YoU3RkUmRPcHRpb25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBl bmFibGVkKX0sCisJCXsiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwgUkVMT1BUX1RZUEVf SU5ULAorCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0 b1ZhY09wdHMsIGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2Vycyl9LAogCQl7ImF1dG92YWN1dW1f dmFjdXVtX3RocmVzaG9sZCIsIFJFTE9QVF9UWVBFX0lOVCwKIAkJb2Zmc2V0b2YoU3RkUmRPcHRp b25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCB2YWN1dW1fdGhyZXNob2xk KX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1fbWF4X3RocmVzaG9sZCIsIFJFTE9QVF9UWVBFX0lO VCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDI3OTEwOGNhODlmLi44 MDZhN2Y0ODMyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxs ZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC0xLDcg KzEsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICogdmFjdXVtcGFyYWxsZWwuYwotICoJ ICBTdXBwb3J0IHJvdXRpbmVzIGZvciBwYXJhbGxlbCB2YWN1dW0gZXhlY3V0aW9uLgorICoJICBT dXBwb3J0IHJvdXRpbmVzIGZvciBwYXJhbGxlbCB2YWN1dW0gYW5kIGF1dG92YWN1dW0gZXhlY3V0 aW9uLiBJbiB0aGUKKyAqCSAgY29tbWVudHMgYmVsb3csIHRoZSB3b3JkICJ2YWN1dW0iIHdpbGwg cmVmZXIgdG8gYm90aCB2YWN1dW0gYW5kCisgKgkgIGF1dG92YWN1dW0uCiAgKgogICogVGhpcyBm aWxlIGNvbnRhaW5zIHJvdXRpbmVzIHRoYXQgYXJlIGludGVuZGVkIHRvIHN1cHBvcnQgc2V0dGlu ZyB1cCwgdXNpbmcsCiAgKiBhbmQgdGVhcmluZyBkb3duIGEgUGFyYWxsZWxWYWN1dW1TdGF0ZS4K QEAgLTM0LDYgKzM2LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5j bHVkZSAib3B0aW1pemVyL3BhdGhzLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAi cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCkBAIC0z NzQsOCArMzc3LDkgQEAgcGFyYWxsZWxfdmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxhdGlv biAqaW5kcmVscywgaW50IG5pbmRleGVzLAogCXNoYXJlZC0+cXVlcnlpZCA9IHBnc3RhdF9nZXRf bXlfcXVlcnlfaWQoKTsKIAlzaGFyZWQtPm1haW50ZW5hbmNlX3dvcmtfbWVtX3dvcmtlciA9CiAJ CShuaW5kZXhlc19td20gPiAwKSA/Ci0JCW1haW50ZW5hbmNlX3dvcmtfbWVtIC8gTWluKHBhcmFs bGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgotCQltYWludGVuYW5jZV93b3JrX21lbTsKKwkJ dmFjX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgorCQl2 YWNfd29ya19tZW07CisKIAlzaGFyZWQtPmRlYWRfaXRlbXNfaW5mby5tYXhfYnl0ZXMgPSB2YWNf d29ya19tZW0gKiAoc2l6ZV90KSAxMDI0OwogCiAJLyogUHJlcGFyZSBEU0Egc3BhY2UgZm9yIGRl YWQgaXRlbXMgKi8KQEAgLTU1NCwxMiArNTU4LDE3IEBAIHBhcmFsbGVsX3ZhY3V1bV9jb21wdXRl X3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0ZWQs CiAJaW50CQkJbmluZGV4ZXNfcGFyYWxsZWxfYnVsa2RlbCA9IDA7CiAJaW50CQkJbmluZGV4ZXNf cGFyYWxsZWxfY2xlYW51cCA9IDA7CiAJaW50CQkJcGFyYWxsZWxfd29ya2VyczsKKwlpbnQJCQlt YXhfd29ya2VyczsKKworCW1heF93b3JrZXJzID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2Vzcygp ID8KKwkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA6CisJCW1heF9wYXJhbGxlbF9t YWludGVuYW5jZV93b3JrZXJzOwogCiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBwZXJmb3JtaW5n IHBhcmFsbGVsIG9wZXJhdGlvbiBpbiBzdGFuZGFsb25lIGJhY2tlbmQgb3IKIAkgKiB3aGVuIHBh cmFsbGVsaXNtIGlzIGRpc2FibGVkLgogCSAqLwotCWlmICghSXNVbmRlclBvc3RtYXN0ZXIgfHwg bWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnMgPT0gMCkKKwlpZiAoIUlzVW5kZXJQb3N0 bWFzdGVyIHx8IG1heF93b3JrZXJzID09IDApCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTU5OCw4 ICs2MDcsOCBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRy ZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCXBhcmFsbGVsX3dvcmtlcnMgPSAo bnJlcXVlc3RlZCA+IDApID8KIAkJTWluKG5yZXF1ZXN0ZWQsIG5pbmRleGVzX3BhcmFsbGVsKSA6 IG5pbmRleGVzX3BhcmFsbGVsOwogCi0JLyogQ2FwIGJ5IG1heF9wYXJhbGxlbF9tYWludGVuYW5j ZV93b3JrZXJzICovCi0JcGFyYWxsZWxfd29ya2VycyA9IE1pbihwYXJhbGxlbF93b3JrZXJzLCBt YXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2Vycyk7CisJLyogQ2FwIGJ5IEdVQyB2YXJpYWJs ZSAqLworCXBhcmFsbGVsX3dvcmtlcnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3dvcmtl cnMpOwogCiAJcmV0dXJuIHBhcmFsbGVsX3dvcmtlcnM7CiB9CkBAIC02NDcsNiArNjU2LDEzIEBA IHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUg KnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJICovCiAJbndvcmtlcnMgPSBNaW4obndvcmtlcnMs IHB2cy0+cGN4dC0+bndvcmtlcnMpOwogCisJLyoKKwkgKiBSZXNlcnZlIHdvcmtlcnMgaW4gYXV0 b3ZhY3V1bSBnbG9iYWwgc3RhdGUuIE5vdGUgdGhhdCB3ZSBtYXkgYmUgZ2l2ZW4KKwkgKiBmZXdl ciB3b3JrZXJzIHRoYW4gd2UgcmVxdWVzdGVkLgorCSAqLworCWlmIChBbUF1dG9WYWN1dW1Xb3Jr ZXJQcm9jZXNzKCkgJiYgbndvcmtlcnMgPiAwKQorCQlBdXRvVmFjdXVtUmVzZXJ2ZVBhcmFsbGVs V29ya2VycygmbndvcmtlcnMpOworCiAJLyoKIAkgKiBTZXQgaW5kZXggdmFjdXVtIHN0YXR1cyBh bmQgbWFyayB3aGV0aGVyIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXIgY2FuCiAJICogcHJvY2VzcyBp dC4KQEAgLTY5MSw2ICs3MDcsMTYgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4 ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAogCQlMYXVu Y2hQYXJhbGxlbFdvcmtlcnMocHZzLT5wY3h0KTsKIAorCQkvKgorCQkgKiBUZWxsIGF1dG92YWN1 dW0gdGhhdCB3ZSBjb3VsZCBub3QgbGF1bmNoIGFsbCB0aGUgcHJldmlvdXNseQorCQkgKiByZXNl cnZlZCB3b3JrZXJzLgorCQkgKi8KKwkJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAm JgorCQkJcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZCA8IG53b3JrZXJzKQorCQl7CisJCQlB dXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2Vycyhud29ya2VycyAtIHB2cy0+cGN4dC0+bndv cmtlcnNfbGF1bmNoZWQpOworCQl9CisKIAkJaWYgKHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNo ZWQgPiAwKQogCQl7CiAJCQkvKgpAQCAtNzM5LDYgKzc2NSwxMCBAQCBwYXJhbGxlbF92YWN1dW1f cHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5k ZXhfc2NhbgogCiAJCWZvciAoaW50IGkgPSAwOyBpIDwgcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVu Y2hlZDsgaSsrKQogCQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJnB2cy0+YnVmZmVyX3VzYWdl W2ldLCAmcHZzLT53YWxfdXNhZ2VbaV0pOworCisJCS8qIFJlbGVhc2UgYWxsIHRoZSByZXNlcnZl ZCBwYXJhbGxlbCB3b3JrZXJzIGZvciBhdXRvdmFjdXVtICovCisJCWlmIChBbUF1dG9WYWN1dW1X b3JrZXJQcm9jZXNzKCkgJiYgcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZCA+IDApCisJCQlB dXRvVmFjdXVtUmVsZWFzZUFsbFBhcmFsbGVsV29ya2VycygpOwogCX0KIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IDY5NWUxODdiYTExLi5lMWM5OTVkZDJlYSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTE1Miw2ICsxNTIsMTMgQEAgaW50CQkJ TG9nX2F1dG9hbmFseXplX21pbl9kdXJhdGlvbiA9IDYwMDAwMDsKIHN0YXRpYyBkb3VibGUgYXZf c3RvcmFnZV9wYXJhbV9jb3N0X2RlbGF5ID0gLTE7CiBzdGF0aWMgaW50CWF2X3N0b3JhZ2VfcGFy YW1fY29zdF9saW1pdCA9IC0xOwogCisvKgorICogVHJhY2tzIHRoZSBudW1iZXIgb2YgcGFyYWxs ZWwgd29ya2VycyBjdXJyZW50bHkgcmVzZXJ2ZWQgYnkgdGhlCisgKiBhdXRvdmFjdXVtIHdvcmtl ci4gVGhpcyBpcyBub24temVybyBvbmx5IGZvciB0aGUgcGFyYWxsZWwgYXV0b3ZhY3V1bQorICog bGVhZGVyIHByb2Nlc3MuCisgKi8KK3N0YXRpYyBpbnQJYXZfbndvcmtlcnNfcmVzZXJ2ZWQgPSAw OworCiAvKiBGbGFncyBzZXQgYnkgc2lnbmFsIGhhbmRsZXJzICovCiBzdGF0aWMgdm9sYXRpbGUg c2lnX2F0b21pY190IGdvdF9TSUdVU1IyID0gZmFsc2U7CiAKQEAgLTI4Niw2ICsyOTMsOCBAQCB0 eXBlZGVmIHN0cnVjdCBBdXRvVmFjdXVtV29ya0l0ZW0KICAqIGF2X3dvcmtJdGVtcwkJd29yayBp dGVtIGFycmF5CiAgKiBhdl9ud29ya2Vyc0ZvckJhbGFuY2UgdGhlIG51bWJlciBvZiBhdXRvdmFj dXVtIHdvcmtlcnMgdG8gdXNlIHdoZW4KICAqIAkJCQkJY2FsY3VsYXRpbmcgdGhlIHBlciB3b3Jr ZXIgY29zdCBsaW1pdAorICogYXZfZnJlZVBhcmFsbGVsV29ya2VycyB0aGUgbnVtYmVyIG9mIGZy ZWUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzCisgKiBhdl9tYXhQYXJhbGxlbFdvcmtlcnMg dGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycwogICoKICAq IFRoaXMgc3RydWN0IGlzIHByb3RlY3RlZCBieSBBdXRvdmFjdXVtTG9jaywgZXhjZXB0IGZvciBh dl9zaWduYWwgYW5kIHBhcnRzCiAgKiBvZiB0aGUgd29ya2VyIGxpc3QgKHNlZSBhYm92ZSkuCkBA IC0zMDAsNiArMzA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlXb3JrZXJJbmZvCWF2X3N0YXJ0aW5n V29ya2VyOwogCUF1dG9WYWN1dW1Xb3JrSXRlbSBhdl93b3JrSXRlbXNbTlVNX1dPUktJVEVNU107 CiAJcGdfYXRvbWljX3VpbnQzMiBhdl9ud29ya2Vyc0ZvckJhbGFuY2U7CisJaW50MzIJCWF2X2Zy ZWVQYXJhbGxlbFdvcmtlcnM7CisJaW50MzIJCWF2X21heFBhcmFsbGVsV29ya2VyczsKIH0gQXV0 b1ZhY3V1bVNobWVtU3RydWN0OwogCiBzdGF0aWMgQXV0b1ZhY3V1bVNobWVtU3RydWN0ICpBdXRv VmFjdXVtU2htZW07CkBAIC0zNjIsNiArMzczLDcgQEAgc3RhdGljIHZvaWQgYXV0b3ZhY19yZXBv cnRfd29ya2l0ZW0oQXV0b1ZhY3V1bVdvcmtJdGVtICp3b3JraXRlbSwKIHN0YXRpYyB2b2lkIGF2 bF9zaWd1c3IyX2hhbmRsZXIoU0lHTkFMX0FSR1MpOwogc3RhdGljIGJvb2wgYXZfd29ya2VyX2F2 YWlsYWJsZSh2b2lkKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2F2X3dvcmtlcl9ndWNzKHZvaWQpOwor c3RhdGljIHZvaWQgYWRqdXN0X2ZyZWVfcGFyYWxsZWxfd29ya2VycyhpbnQgcHJldl9tYXhfcGFy YWxsZWxfd29ya2Vycyk7CiAKIAogCkBAIC03NjAsNiArNzcyLDggQEAgUHJvY2Vzc0F1dG9WYWNM YXVuY2hlckludGVycnVwdHModm9pZCkKIAlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKIAl7CiAJ CWludAkJCWF1dG92YWN1dW1fbWF4X3dvcmtlcnNfcHJldiA9IGF1dG92YWN1dW1fbWF4X3dvcmtl cnM7CisJCWludAkJCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnNfcHJldiA9CisJCQlh dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzOwogCiAJCUNvbmZpZ1JlbG9hZFBlbmRpbmcg PSBmYWxzZTsKIAkJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CkBAIC03NzYsNiArNzkw LDE1IEBAIFByb2Nlc3NBdXRvVmFjTGF1bmNoZXJJbnRlcnJ1cHRzKHZvaWQpCiAJCWlmIChhdXRv dmFjdXVtX21heF93b3JrZXJzX3ByZXYgIT0gYXV0b3ZhY3V1bV9tYXhfd29ya2VycykKIAkJCWNo ZWNrX2F2X3dvcmtlcl9ndWNzKCk7CiAKKwkJLyoKKwkJICogSWYgYXV0b3ZhY3V1bV9tYXhfcGFy YWxsZWxfd29ya2VycyBjaGFuZ2VkLCB3ZSBtdXN0IHRha2UgY2FyZSBvZgorCQkgKiB0aGUgY29y cmVjdCB2YWx1ZSBvZiBhdmFpbGFibGUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIGluCisJ CSAqIHNobWVtLgorCQkgKi8KKwkJaWYgKGF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnNf cHJldiAhPQorCQkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycykKKwkJCWFkanVzdF9m cmVlX3BhcmFsbGVsX3dvcmtlcnMoYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vyc19wcmV2 KTsKKwogCQkvKiByZWJ1aWxkIHRoZSBsaXN0IGluIGNhc2UgdGhlIG5hcHRpbWUgY2hhbmdlZCAq LwogCQlyZWJ1aWxkX2RhdGFiYXNlX2xpc3QoSW52YWxpZE9pZCk7CiAJfQpAQCAtMTM4MCw2ICsx NDAzLDE2IEBAIGF2bF9zaWd1c3IyX2hhbmRsZXIoU0lHTkFMX0FSR1MpCiAgKgkJCQkJICBBVVRP VkFDVVVNIFdPUktFUiBDT0RFCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKKy8qCisgKiBNYWtlIHN1cmUgdGhh dCBhbGwgcmVzZXJ2ZWQgd29ya2VycyBhcmUgcmVsZWFzZWQsIGV2ZW4gaWYgcGFyYWxsZWwKKyAq IGF1dG92YWN1dW0gbGVhZGVyIGlzIGZpbmlzaGluZyBkdWUgdG8gRkFUQUwgZXJyb3IuCisgKi8K K3N0YXRpYyB2b2lkCithdXRvdmFjdXVtX3dvcmtlcl9iZWZvcmVfc2htZW1fZXhpdChpbnQgY29k ZSwgRGF0dW0gYXJnKQoreworCUF1dG9WYWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJzKCk7 Cit9CisKIC8qCiAgKiBNYWluIGVudHJ5IHBvaW50IGZvciBhdXRvdmFjdXVtIHdvcmtlciBwcm9j ZXNzZXMuCiAgKi8KQEAgLTIyNzYsNiArMjMwOSwxMiBAQCBkb19hdXRvdmFjdXVtKHZvaWQpCiAJ CQkJCQkJCQkJICAiQXV0b3ZhY3V1bSBQb3J0YWwiLAogCQkJCQkJCQkJCSAgQUxMT0NTRVRfREVG QVVMVF9TSVpFUyk7CiAKKwkvKgorCSAqIFBhcmFsbGVsIGF1dG92YWN1dW0gY2FuIHJlc2VydmUg cGFyYWxsZWwgd29ya2Vycy4gTWFrZSBzdXJlIHRoYXQgYWxsCisJICogcmVzZXJ2ZWQgd29ya2Vy cyBhcmUgcmVsZWFzZWQgZXZlbiBhZnRlciBGQVRBTCBlcnJvci4KKwkgKi8KKwliZWZvcmVfc2ht ZW1fZXhpdChhdXRvdmFjdXVtX3dvcmtlcl9iZWZvcmVfc2htZW1fZXhpdCwgMCk7CisKIAkvKgog CSAqIFBlcmZvcm0gb3BlcmF0aW9ucyBvbiBjb2xsZWN0ZWQgdGFibGVzLgogCSAqLwpAQCAtMjQ1 Nyw2ICsyNDk2LDEyIEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkJfQogCQlQR19DQVRDSCgpOwog CQl7CisJCQkvKgorCQkJICogUGFyYWxsZWwgYXV0b3ZhY3V1bSBjYW4gcmVzZXJ2ZSBwYXJhbGxl bCB3b3JrZXJzLiBNYWtlIHN1cmUKKwkJCSAqIHRoYXQgYWxsIHJlc2VydmVkIHdvcmtlcnMgYXJl IHJlbGVhc2VkLgorCQkJICovCisJCQlBdXRvVmFjdXVtUmVsZWFzZUFsbFBhcmFsbGVsV29ya2Vy cygpOworCiAJCQkvKgogCQkJICogQWJvcnQgdGhlIHRyYW5zYWN0aW9uLCBzdGFydCBhIG5ldyBv bmUsIGFuZCBwcm9jZWVkIHdpdGggdGhlCiAJCQkgKiBuZXh0IHRhYmxlIGluIG91ciBsaXN0LgpA QCAtMjg1Nyw4ICsyOTAyLDEyIEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhU QUIgKnRhYmxlX3RvYXN0X21hcCwKIAkJICovCiAJCXRhYi0+YXRfcGFyYW1zLmluZGV4X2NsZWFu dXAgPSBWQUNPUFRWQUxVRV9VTlNQRUNJRklFRDsKIAkJdGFiLT5hdF9wYXJhbXMudHJ1bmNhdGUg PSBWQUNPUFRWQUxVRV9VTlNQRUNJRklFRDsKLQkJLyogQXMgb2Ygbm93LCB3ZSBkb24ndCBzdXBw b3J0IHBhcmFsbGVsIHZhY3V1bSBmb3IgYXV0b3ZhY3V1bSAqLwotCQl0YWItPmF0X3BhcmFtcy5u d29ya2VycyA9IC0xOworCisJCS8qIERlY2lkZSB3aGV0aGVyIHdlIG5lZWQgdG8gcHJvY2VzcyBp bmRleGVzIG9mIHRhYmxlIGluIHBhcmFsbGVsLiAqLworCQl0YWItPmF0X3BhcmFtcy5ud29ya2Vy cyA9IGF2b3B0cworCQkJPyBhdm9wdHMtPmF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycworCQkJ OiAtMTsKKwogCQl0YWItPmF0X3BhcmFtcy5mcmVlemVfbWluX2FnZSA9IGZyZWV6ZV9taW5fYWdl OwogCQl0YWItPmF0X3BhcmFtcy5mcmVlemVfdGFibGVfYWdlID0gZnJlZXplX3RhYmxlX2FnZTsK IAkJdGFiLT5hdF9wYXJhbXMubXVsdGl4YWN0X2ZyZWV6ZV9taW5fYWdlID0gbXVsdGl4YWN0X2Zy ZWV6ZV9taW5fYWdlOwpAQCAtMzMzNSw2ICszMzg0LDg4IEBAIEF1dG9WYWN1dW1SZXF1ZXN0V29y ayhBdXRvVmFjdXVtV29ya0l0ZW1UeXBlIHR5cGUsIE9pZCByZWxhdGlvbklkLAogCXJldHVybiBy ZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXNlcnZlcyBwYXJhbGxlbCB3b3JrZXJzIGZvciBhdXRvdmFj dXVtLgorICoKKyAqIG53b3JrZXJzIGlzIGFuIGluL291dCBwYXJhbWV0ZXI7IHRoZSByZXF1ZXN0 ZWQgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMKKyAqIHRvIHJlc2VydmUgYnkgdGhlIGNhbGxl ciwgYW5kIHNldCB0byB0aGUgYWN0dWFsIG51bWJlciBvZiByZXNlcnZlZCB3b3JrZXJzLgorICoK KyAqIFRoZSBjYWxsZXIgbXVzdCBjYWxsIEF1dG9WYWN1dW1SZWxlYXNlW0FsbF1QYXJhbGxlbFdv cmtlcnMoKSB0byByZWxlYXNlIHRoZQorICogcmVzZXJ2ZWQgd29ya2Vycy4KKyAqCisgKiBOT1RF OiBXZSB3aWxsIHRyeSB0byBwcm92aWRlIGFzIG1hbnkgd29ya2VycyBhcyByZXF1ZXN0ZWQsIGV2 ZW4gaWYgY2FsbGVyCisgKiB3aWxsIG9jY3VweSBhbGwgYXZhaWxhYmxlIHdvcmtlcnMuCisgKi8K K3ZvaWQKK0F1dG9WYWN1dW1SZXNlcnZlUGFyYWxsZWxXb3JrZXJzKGludCAqbndvcmtlcnMpCit7 CisJLyogT25seSBsZWFkZXIgYXV0b3ZhY3V1bSB3b3JrZXIgY2FuIGNhbGwgdGhpcyBmdW5jdGlv bi4gKi8KKwlBc3NlcnQoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKTsKKworCS8qIFRoZSB3 b3JrZXIgbXVzdCBub3QgaGF2ZSBhbnkgcmVzZXJ2ZWQgd29ya2VycyB5ZXQgKi8KKwlBc3NlcnQo YXZfbndvcmtlcnNfcmVzZXJ2ZWQgPT0gMCk7CisKKwlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1M b2NrLCBMV19FWENMVVNJVkUpOworCisJLyogUHJvdmlkZSBhcyBtYW55IHdvcmtlcnMgYXMgd2Ug Y2FuLiAqLworCSpud29ya2VycyA9IE1pbihBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxl bFdvcmtlcnMsICpud29ya2Vycyk7CisJQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVlUGFyYWxsZWxX b3JrZXJzIC09ICpud29ya2VyczsKKworCUxXTG9ja1JlbGVhc2UoQXV0b3ZhY3V1bUxvY2spOwor CisJLyogUmVtZW1iZXIgaG93IG1hbnkgd29ya2VycyB3ZSBoYXZlIHJlc2VydmVkLiAqLworCWF2 X253b3JrZXJzX3Jlc2VydmVkID0gKm53b3JrZXJzOworfQorCisvKgorICogUmVsZWFzZXMgdGhl IHJlc2VydmVkIHBhcmFsbGVsIHdvcmtlcnMgZm9yIGF1dG92YWN1dW0uCisgKgorICogVGhpcyBm dW5jdGlvbiBzaG91bGQgYmUgdXNlZCB0byByZWxlYXNlIHRoZSBwYXJhbGxlbCB3b3JrZXJzIHRo YXQgYW4KKyAqIGF1dG92YWN1dW0gd29ya2VyIHJlc2VydmVkIGJ5IEF1dG9WYWN1dW1SZXNlcnZl UGFyYWxsZWxXb3JrZXJzKCkuIG53b3JrZXJzCisgKiBpcyB0aGUgbnVtYmVyIG9mIHdvcmtlcnMg dG8gcmVsZWFzZSwgd2hpY2ggbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIHRoZQorICogbnVtYmVy IG9mIHdvcmtlcnMgY3VycmVudGx5IHJlc2VydmVkLCBhdl9ud29ya2Vyc19yZXNlcnZlZC4KKyAq Lwordm9pZAorQXV0b1ZhY3V1bVJlbGVhc2VQYXJhbGxlbFdvcmtlcnMoaW50IG53b3JrZXJzKQor eworCS8qIE9ubHkgbGVhZGVyIHdvcmtlciBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiAqLworCUFz c2VydChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkpOworCisJLyogQ2Fubm90IHJlbGVhc2Ug bW9yZSB3b3JrZXJzIHRoYW4gcmVzZXJ2ZWQgKi8KKwlud29ya2VycyA9IE1pbihud29ya2Vycywg YXZfbndvcmtlcnNfcmVzZXJ2ZWQpOworCisJTFdMb2NrQWNxdWlyZShBdXRvdmFjdXVtTG9jaywg TFdfRVhDTFVTSVZFKTsKKworCS8qCisJICogSWYgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcmFs bGVsIHdvcmtlcnMgd2FzIHJlZHVjZWQgZHVyaW5nIGV4ZWN1dGlvbiwKKwkgKiB3ZSBtdXN0IGNh cCBhdmFpbGFibGUgd29ya2VycyBudW1iZXIgYnkgaXRzIG5ldyB2YWx1ZS4KKwkgKi8KKwlBdXRv VmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnMgPQorCQlNaW4oQXV0b1ZhY3V1bVNo bWVtLT5hdl9mcmVlUGFyYWxsZWxXb3JrZXJzICsgbndvcmtlcnMsCisJCQlBdXRvVmFjdXVtU2ht ZW0tPmF2X21heFBhcmFsbGVsV29ya2Vycyk7CisKKwlMV0xvY2tSZWxlYXNlKEF1dG92YWN1dW1M b2NrKTsKKworCS8qIERvbid0IGhhdmUgdG8gcmVtZW1iZXIgdGhlc2Ugd29ya2VycyBhbnltb3Jl LiAqLworCWF2X253b3JrZXJzX3Jlc2VydmVkIC09IG53b3JrZXJzOworfQorCisvKgorICogU2Ft ZSBhcyBhYm92ZSwgYnV0IHRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgYWxsIHRoZSBwYXJhbGxlbCB3 b3JrZXJzIHRoYXQKKyAqIHRoaXMgYXV0b3ZhY3V1bSB3b3JrZXIgcmVzZXJ2ZWQuCisgKi8KK3Zv aWQKK0F1dG9WYWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJzKHZvaWQpCit7CisJLyogT25s eSBsZWFkZXIgd29ya2VyIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uICovCisJQXNzZXJ0KEFtQXV0 b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSk7CisKKwlpZiAoYXZfbndvcmtlcnNfcmVzZXJ2ZWQgPiAw KQorCQlBdXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2Vycyhhdl9ud29ya2Vyc19yZXNlcnZl ZCk7CisKKwlBc3NlcnQoYXZfbndvcmtlcnNfcmVzZXJ2ZWQgPT0gMCk7Cit9CisKIC8qCiAgKiBh dXRvdmFjX2luaXQKICAqCQlUaGlzIGlzIGNhbGxlZCBhdCBwb3N0bWFzdGVyIGluaXRpYWxpemF0 aW9uLgpAQCAtMzM5NSw2ICszNTI2LDEwIEBAIEF1dG9WYWN1dW1TaG1lbUluaXQodm9pZCkKIAkJ QXNzZXJ0KCFmb3VuZCk7CiAKIAkJQXV0b1ZhY3V1bVNobWVtLT5hdl9sYXVuY2hlcnBpZCA9IDA7 CisJCUF1dG9WYWN1dW1TaG1lbS0+YXZfbWF4UGFyYWxsZWxXb3JrZXJzID0KKwkJCU1pbihhdXRv dmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzLCBtYXhfcGFyYWxsZWxfd29ya2Vycyk7CisJCUF1 dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2VycyA9CisJCQlBdXRvVmFjdXVtU2ht ZW0tPmF2X21heFBhcmFsbGVsV29ya2VyczsKIAkJZGNsaXN0X2luaXQoJkF1dG9WYWN1dW1TaG1l bS0+YXZfZnJlZVdvcmtlcnMpOwogCQlkbGlzdF9pbml0KCZBdXRvVmFjdXVtU2htZW0tPmF2X3J1 bm5pbmdXb3JrZXJzKTsKIAkJQXV0b1ZhY3V1bVNobWVtLT5hdl9zdGFydGluZ1dvcmtlciA9IE5V TEw7CkBAIC0zNDc2LDMgKzM2MTEsMjggQEAgY2hlY2tfYXZfd29ya2VyX2d1Y3Modm9pZCkKIAkJ CQkgZXJyZGV0YWlsKCJUaGUgc2VydmVyIHdpbGwgb25seSBzdGFydCB1cCB0byBcImF1dG92YWN1 dW1fd29ya2VyX3Nsb3RzXCIgKCVkKSBhdXRvdmFjdXVtIHdvcmtlcnMgYXQgYSBnaXZlbiB0aW1l LiIsCiAJCQkJCQkgICBhdXRvdmFjdXVtX3dvcmtlcl9zbG90cykpKTsKIH0KKworLyoKKyAqIEFk anVzdHMgdGhlIG51bWJlciBvZiBmcmVlIHBhcmFsbGVsIHdvcmtlcnMgY29ycmVzcG9uZHMgdG8g dGhlIG5ldworICogYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyB2YWx1ZS4KKyAqLwor c3RhdGljIHZvaWQKK2FkanVzdF9mcmVlX3BhcmFsbGVsX3dvcmtlcnMoaW50IHByZXZfbWF4X3Bh cmFsbGVsX3dvcmtlcnMpCit7CisJaW50CW5mcmVlX3dvcmtlcnM7CisKKwlMV0xvY2tBY3F1aXJl KEF1dG92YWN1dW1Mb2NrLCBMV19FWENMVVNJVkUpOworCisJLyoKKwkgKiBDYXAgb3IgaW5jcmVh c2UgbnVtYmVyIG9mIGZyZWUgcGFyYWxsZWwgd29ya2VycyBhY2NvcmRpbmcgdG8gdGhlCisJICog cGFyYW1ldGVyIGNoYW5nZS4KKwkgKi8KKwluZnJlZV93b3JrZXJzID0KKwkJYXV0b3ZhY3V1bV9t YXhfcGFyYWxsZWxfd29ya2VycyAtIHByZXZfbWF4X3BhcmFsbGVsX3dvcmtlcnMgKworCQlBdXRv VmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnM7CisKKwlBdXRvVmFjdXVtU2htZW0t PmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnMgPSBNYXgobmZyZWVfd29ya2VycywgMCk7CisJQXV0b1Zh Y3V1bVNobWVtLT5hdl9tYXhQYXJhbGxlbFdvcmtlcnMgPSBhdXRvdmFjdXVtX21heF9wYXJhbGxl bF93b3JrZXJzOworCisJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9jayk7Cit9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2luaXQvZ2xvYmFscy5jCmluZGV4IDM2YWQ3MDhiMzYwLi44MjY1YTgyYjYzOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvaW5pdC9nbG9iYWxzLmMKQEAgLTE0Myw2ICsxNDMsNyBAQCBpbnQJCQlOQnVmZmVycyA9IDE2 Mzg0OwogaW50CQkJTWF4Q29ubmVjdGlvbnMgPSAxMDA7CiBpbnQJCQltYXhfd29ya2VyX3Byb2Nl c3NlcyA9IDg7CiBpbnQJCQltYXhfcGFyYWxsZWxfd29ya2VycyA9IDg7CitpbnQJCQlhdXRvdmFj dXVtX21heF9wYXJhbGxlbF93b3JrZXJzID0gMjsKIGludAkJCU1heEJhY2tlbmRzID0gMDsKIAog LyogR1VDIHBhcmFtZXRlcnMgZm9yIHZhY3V1bSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKaW5kZXggZDc3 NTAyODM4YzQuLjRhNWM3M2E5ZTMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTMzMjYsOSArMzMy NiwxMyBAQCBzZXRfY29uZmlnX3dpdGhfaGFuZGxlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbmZpZ19o YW5kbGUgKmhhbmRsZSwKIAkgKgogCSAqIEFsc28gYWxsb3cgbm9ybWFsIHNldHRpbmcgaWYgdGhl IEdVQyBpcyBtYXJrZWQgR1VDX0FMTE9XX0lOX1BBUkFMTEVMLgogCSAqCi0JICogT3RoZXIgY2hh bmdlcyBtaWdodCBuZWVkIHRvIGFmZmVjdCBvdGhlciB3b3JrZXJzLCBzbyBmb3JiaWQgdGhlbS4K KwkgKiBPdGhlciBjaGFuZ2VzIG1pZ2h0IG5lZWQgdG8gYWZmZWN0IG90aGVyIHdvcmtlcnMsIHNv IGZvcmJpZCB0aGVtLiBOb3RlLAorCSAqIHRoYXQgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIg aXMgYW4gZXhjZXB0aW9uLCBiZWNhdXNlIG9ubHkKKwkgKiBjb3N0LWJhc2VkIGRlbGF5cyBuZWVk IHRvIGJlIGFmZmVjdGVkIGFsc28gdG8gcGFyYWxsZWwgdmFjdXVtIHdvcmtlcnMsCisJICogYW5k IHdlIHdpbGwgaGFuZGxlIGl0IGVsc2V3aGVyZSBpZiBhcHByb3ByaWF0ZS4KIAkgKi8KLQlpZiAo SXNJblBhcmFsbGVsTW9kZSgpICYmIGNoYW5nZVZhbCAmJiBhY3Rpb24gIT0gR1VDX0FDVElPTl9T QVZFICYmCisJaWYgKElzSW5QYXJhbGxlbE1vZGUoKSAmJiAhQW1BdXRvVmFjdXVtV29ya2VyUHJv Y2VzcygpICYmIGNoYW5nZVZhbCAmJgorCQlhY3Rpb24gIT0gR1VDX0FDVElPTl9TQVZFICYmCiAJ CShyZWNvcmQtPmZsYWdzICYgR1VDX0FMTE9XX0lOX1BBUkFMTEVMKSA9PSAwKQogCXsKIAkJZXJl cG9ydChlbGV2ZWwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJh bWV0ZXJzLmRhdCBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0Cmlu ZGV4IGE1YTBlZGYyNTM0Li5jMjM5NWNmNjYzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfcGFyYW1ldGVycy5kYXQKQEAgLTE1NCw2ICsxNTQsMTQgQEAKICAgbWF4ID0+ICcyMDAwMDAw MDAwJywKIH0sCiAKK3sgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vycycs IHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVN X0FVVE9WQUNVVU0nLAorICBzaG9ydF9kZXNjID0+ICdNYXhpbXVtIG51bWJlciBvZiBwYXJhbGxl bCBhdXRvdmFjdXVtIHdvcmtlcnMsIHRoYXQgY2FuIGJlIHRha2VuIGZyb20gYmd3b3JrZXJzIHBv b2wuJywKKyAgdmFyaWFibGUgPT4gJ2F1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMnLAor ICBib290X3ZhbCA9PiAnMicsCisgIG1pbiA9PiAnMCcsCisgIG1heCA9PiAnTUFYX0JBQ0tFTkRT JywKK30sCisKIHsgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsIHR5cGUgPT4gJ2lu dCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVNX0FVVE9WQUNVVU0n LAogICBzaG9ydF9kZXNjID0+ICdTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVv dXNseSBydW5uaW5nIGF1dG92YWN1dW0gd29ya2VyIHByb2Nlc3Nlcy4nLAogICB2YXJpYWJsZSA9 PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZTY4NmQ4OGFmYzQuLjVlMWM2MmQ2MTZjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTAs NiArNzEwLDcgQEAKICNhdXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2ICAgICAgICAgICAjIGF1 dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAjYXV0b3ZhY3V1 bV9tYXhfd29ya2VycyA9IDMgICAgICAgICAgICAgIyBtYXggbnVtYmVyIG9mIGF1dG92YWN1dW0g c3VicHJvY2Vzc2VzCisjYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDIgICAgIyBs aW1pdGVkIGJ5IG1heF9wYXJhbGxlbF93b3JrZXJzCiAjYXV0b3ZhY3V1bV9uYXB0aW1lID0gMW1p biAgICAgICAgICAgICAgIyB0aW1lIGJldHdlZW4gYXV0b3ZhY3V1bSBydW5zCiAjYXV0b3ZhY3V1 bV92YWN1dW1fdGhyZXNob2xkID0gNTAgICAgICAgIyBtaW4gbnVtYmVyIG9mIHJvdyB1cGRhdGVz IGJlZm9yZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdmFjdXVt CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNWJkYmYxNTMwYTIuLjI5MTcxZWZiYzFiIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xNDMyLDYgKzE0MzIsNyBAQCBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgdGFibGVfc3RvcmFnZV9wYXJhbWV0ZXJzW10gPSB7CiAJImF1dG92YWN1dW1fbXVs dGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIiwKIAkiYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21p bl9hZ2UiLAogCSJhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlIiwKKwkiYXV0 b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwKIAkiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxh eSIsCiAJImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQiLAogCSJhdXRvdmFjdXVtX3ZhY3V1 bV9pbnNlcnRfc2NhbGVfZmFjdG9yIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1p bi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKaW5kZXggZjE2ZjM1NjU5YjkuLjAwMTkwYzY3 ZWNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVk ZS9taXNjYWRtaW4uaApAQCAtMTc4LDYgKzE3OCw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQg TWF4QmFja2VuZHM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IE1heENvbm5lY3Rpb25zOwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfd29ya2VyX3Byb2Nlc3NlczsKIGV4dGVybiBQR0RMTElN UE9SVCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IGF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQg Y29tbWl0X3RpbWVzdGFtcF9idWZmZXJzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtdWx0aXhh Y3RfbWVtYmVyX2J1ZmZlcnM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1 dG92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oCmluZGV4IDVh YTBmM2E4YWMxLi5mMzc4M2FmYjUxYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rl ci9hdXRvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgK QEAgLTYyLDYgKzYyLDExIEBAIHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIEF1dG9WYWNXb3JrZXJN YWluKGNvbnN0IHZvaWQgKnN0YXJ0dXBfZGF0YSwgc2l6ZV90IHN0YXJ0CiBleHRlcm4gYm9vbCBB dXRvVmFjdXVtUmVxdWVzdFdvcmsoQXV0b1ZhY3V1bVdvcmtJdGVtVHlwZSB0eXBlLAogCQkJCQkJ CQkgIE9pZCByZWxhdGlvbklkLCBCbG9ja051bWJlciBibGtubyk7CiAKKy8qIHBhcmFsbGVsIGF1 dG92YWN1dW0gc3R1ZmYgKi8KK2V4dGVybiB2b2lkCUF1dG9WYWN1dW1SZXNlcnZlUGFyYWxsZWxX b3JrZXJzKGludCAqbndvcmtlcnMpOworZXh0ZXJuIHZvaWQgQXV0b1ZhY3V1bVJlbGVhc2VQYXJh bGxlbFdvcmtlcnMoaW50IG53b3JrZXJzKTsKK2V4dGVybiB2b2lkIEF1dG9WYWN1dW1SZWxlYXNl QWxsUGFyYWxsZWxXb3JrZXJzKHZvaWQpOworCiAvKiBzaGFyZWQgbWVtb3J5IHN0dWZmICovCiBl eHRlcm4gU2l6ZSBBdXRvVmFjdXVtU2htZW1TaXplKHZvaWQpOwogZXh0ZXJuIHZvaWQgQXV0b1Zh Y3V1bVNobWVtSW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggMjM2ODMwZjZiOTMuLjExZGQzYWViYzZj IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9yZWwuaApAQCAtMzExLDYgKzMxMSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduS2V5 Q2FjaGVJbmZvCiB0eXBlZGVmIHN0cnVjdCBBdXRvVmFjT3B0cwogewogCWJvb2wJCWVuYWJsZWQ7 CisKKwkvKgorCSAqIFRhcmdldCBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJz LiAtMSBieSBkZWZhdWx0IGRpc2FibGVzCisJICogcGFyYWxsZWwgdmFjdXVtIGR1cmluZyBhdXRv dmFjdXVtLiAwIG1lYW5zIGNob29zZSB0aGUgcGFyYWxsZWwgZGVncmVlCisJICogYmFzZWQgb24g dGhlIG51bWJlciBvZiBpbmRleGVzLgorCSAqLworCWludAkJCWF1dG92YWN1dW1fcGFyYWxsZWxf d29ya2VyczsKKwogCWludAkJCXZhY3V1bV90aHJlc2hvbGQ7CiAJaW50CQkJdmFjdXVtX21heF90 aHJlc2hvbGQ7CiAJaW50CQkJdmFjdXVtX2luc190aHJlc2hvbGQ7Ci0tIAoyLjQzLjAKCg== --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v25--v26-diff-for-0004.patch" Content-Disposition: attachment; filename="v25--v26-diff-for-0004.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5zus66 RnJvbSAwMzI2YmNjNWYwZDA1OWVkNGI0ZjFlYzNhZDQ4ZDljZTBkODQwNWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE4OjU3OjA0ICswNzAwClN1YmplY3Q6IFtQQVRD SCAyLzJdIGZpeGVzIGZvciAwMDA0IHBhdGNoCgotLS0KIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9h dXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5w bCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92 YWN1dW0ucGwKaW5kZXggZTVkYWNmNTk5ODAuLjM0ZjExMTkzZGZkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBs CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1 dG92YWN1dW0ucGwKQEAgLTEwOSw3ICsxMDksNyBAQCAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHFxewogIyBXYWl0IHVudGlsIHRoZSBwYXJhbGxlbCBhdXRvdmFjdXVtIG9uIHRhYmxlIGlz IGNvbXBsZXRlZC4gQXQgdGhlIHNhbWUgdGltZSwKICMgd2UgY2hlY2sgdGhhdCB0aGUgcmVxdWly ZWQgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gc3RhcnRlZC4KICRsb2dfc3Rh cnQgPSAkbm9kZS0+d2FpdF9mb3JfbG9nKAotCXFyL3BhcmFsbGVsIHdvcmtlcnM6IGluZGV4IHZh Y3V1bTogMiBwbGFubmVkLCAyIHJlc2VydmVkLCAyIGxhdW5jaGVkLywKKwlxci9hdXRvdmFjdXVt IHdvcmtlcjogMiBwYXJhbGxlbCB3b3JrZXJzIGhhcyBiZWVuIHJlbGVhc2VkLywKIAkkbG9nX3N0 YXJ0CiApOwogCkBAIC0yMTQsNyArMjE0LDcgQEAgJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxcXsKIAogIyBXYWl0IHVudGlsIHRoZSBlbmQgb2YgcGFyYWxsZWwgcHJvY2Vzc2luZwogJGxv Z19zdGFydCA9ICRub2RlLT53YWl0X2Zvcl9sb2coCi0JcXIvcGFyYWxsZWwgd29ya2VyczogaW5k ZXggdmFjdXVtOiAyIHBsYW5uZWQsIDIgcmVzZXJ2ZWQsIDIgbGF1bmNoZWQvLAorCXFyL2F1dG92 YWN1dW0gd29ya2VyOiAyIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gcmVsZWFzZWQvLAogCSRs b2dfc3RhcnQKICk7CiAKLS0gCjIuNDMuMAoK --000000000000185832064d236f14 Content-Type: text/x-patch; charset="US-ASCII"; name="v25--v26-diff-for-0003.patch" Content-Disposition: attachment; filename="v25--v26-diff-for-0003.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmt5zush7 RnJvbSBkZGU1ZjM4MDZhNzBiZWZiMGQwOGQyYzhhZmVlNDIzYjI3YTAyYzdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE4OjU2OjUwICswNzAwClN1YmplY3Q6IFtQQVRD SCAxLzJdIGZpeGVzIGZvciAwMDAzIHBhdGNoCgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDgyNjE4YWIzYWM1Li41 MTA1MTM3Y2UzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxs ZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC01Mjcs NiArNTI3LDkgQEAgcGFyYWxsZWxfdmFjdXVtX2VuZChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMs IEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqKmlzdGF0cykKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0 KHB2cy0+cGN4dCk7CiAJRXhpdFBhcmFsbGVsTW9kZSgpOwogCisJaWYgKEFtQXV0b1ZhY3V1bVdv cmtlclByb2Nlc3MoKSkKKwkJcHZfc2hhcmVkX2Nvc3RfcGFyYW1zID0gTlVMTDsKKwogCXBmcmVl KHB2cy0+d2lsbF9wYXJhbGxlbF92YWN1dW0pOwogCXBmcmVlKHB2cyk7CiB9CkBAIC0xMzM3LDYg KzEzNDAsOSBAQCBwYXJhbGxlbF92YWN1dW1fbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJdmFjX2Nsb3NlX2luZGV4ZXMobmluZGV4ZXMsIGluZHJlbHMsIFJvd0V4Y2x1c2l2 ZUxvY2spOwogCXRhYmxlX2Nsb3NlKHJlbCwgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKIAlG cmVlQWNjZXNzU3RyYXRlZ3kocHZzLmJzdHJhdGVneSk7CisKKwlpZiAoc2hhcmVkLT5pc19hdXRv dmFjdXVtKQorCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMgPSBOVUxMOwogfQogCiAvKgotLSAKMi40 My4wCgo= --000000000000185832064d236f14--