Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEjxw-00H1pK-IH for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Oct 2025 07:54:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vEjxv-00ClIX-Hh for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Oct 2025 07:54:30 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <3danissimo@gmail.com>) id 1vEjxu-00ClIP-RZ for pgsql-hackers@lists.postgresql.org; Fri, 31 Oct 2025 07:54:30 +0000 Received: from mail-yx1-xb130.google.com ([2607:f8b0:4864:20::b130]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1vEjxp-004hS0-2g for pgsql-hackers@lists.postgresql.org; Fri, 31 Oct 2025 07:54:28 +0000 Received: by mail-yx1-xb130.google.com with SMTP id 956f58d0204a3-63f8a31d126so1441836d50.3 for ; Fri, 31 Oct 2025 00:54:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761897264; x=1762502064; 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=TcQaqLctlJiIE94/8XbTWZ1HT6DsNgVS9+8gcc7NihY=; b=PGadTVsxMONBgmZDXXyMsGAT/ZpNgI0Jtnpxgm1txlsuhnZff0g64To5z/GSvp4b9D GVKdtAnmUU1e+1Mq77yJdsk6Qod/FfJEG9kS22Axg9C0snEa0n8YdQ93cONkTd/c3Z4+ fd+w8noXZOv6ngDEC375NDOSJvLVT1zvZ2WKA+yRrxmYomxcvwFHE8tkQwQXU9jpsjBk A/Kz5GhIee6xMIr2+u//SAYY6opg7syJU2f3heOP0KZ0Ro8jMKn86iq+Nh0H3bKd5YxA f7m0XfllVwyT6XjuBXrCGPndmXZ5rxwGrIA8XyPn96gXpom/lpFfj3CHaX/+MGe0VTS1 NFAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761897264; x=1762502064; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TcQaqLctlJiIE94/8XbTWZ1HT6DsNgVS9+8gcc7NihY=; b=phbNoeQOq7e4nrv/aBHPq8TjOAy6CFj678Y+rgVoJ9zz64dzBiZHY7XDdbkiqCzV5k pFfrYBqYTQ014wikTGs9qmksu8sEDsuH1cLE0bqnoYYIZdhVQp+D7oULTXczw0cCkVzB rBWSK671QszYK5s5PqZPsLlRjuSqGKsYgmF2B0Gux3c4xVdHnidutS0LNmvJPg4wXNeD 4heJ5n+98IotgET6fT3CI7eOGhmavVDNKIcgH2QxuyBXXh1UsyZqqyHzC8gnoFOxxSJt OZs/PFHhCwtWWToiHuAdxoB5GdTyH/gVmLBieyWNOBhzxzHJOCsIM+tAxggies6kco1O aMog== X-Forwarded-Encrypted: i=1; AJvYcCXUtPUOX61jVPm0aGOCA6AbVdczua7P0O5I0l88nmyb1NZej8+fkYLKV8iDEmhvICl14dWf2n/kKq9hjAVE@lists.postgresql.org X-Gm-Message-State: AOJu0YxK5jMXIDyFIztEyxBSbjItpW2dM/xWUOhaahro+gd3I5CsAVFY yXVG+GV8nZLBz00DvFmJWNusNc3K9vLcXZy1UP2++0nFucjFBR3s71ZdAX63cWIyy6rY+0x0OZV Xagn/pB4/0i/wsTWKU95lH8cL63F7NXQ= X-Gm-Gg: ASbGncsxB6opIUlA9v2/UwzXK8gehGB0oOlzXS/DcYjhHJFtyW15Hm1bCQitcNe3KQB rbWVdT8cqFzPG5s2XJ5rywfdX3xk0sTS+puA5dK/vwrljU+Z2leJK7PosHsB2su7sCtgUt2TsNC IG4nzUrFYfu0WLLQjrCxnbrt2Nzo/qtMXUVpRITAlfB9oXYZt64PRyMxokaFDL2d/Gs50Yb4GtT NMoszh0UbTDmQcsJan3vl8gUZKZ0PekWH3BN6uHVIfGSVDWY8YNTurTjAt2E1qLxF2kfkz5gA== X-Google-Smtp-Source: AGHT+IGrsjk9jlRFjCgRdfsKt/ENlVc2Ah91JgmARvrEvR/GAbLi5J0bWmxEYMs8+RCLAHUwctI6D7yXtNL5JHp9a+w= X-Received: by 2002:a53:d018:0:b0:63f:556b:5b6 with SMTP id 956f58d0204a3-63f922eff6emr1801502d50.39.1761897264265; Fri, 31 Oct 2025 00:54:24 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Fri, 31 Oct 2025 14:54:12 +0700 X-Gm-Features: AWmQ_bnL4waFNlhMWNBAPdJas0Q6msEb2XmxPn8LrPe7LjjSv8BlIY3Nnnq33Kw Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Masahiko Sawada Cc: Alexander Korotkov , Sami Imseih , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="00000000000091bbac06426fac9e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000091bbac06426fac9e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Tue, Oct 28, 2025 at 8:09=E2=80=AFPM Daniil Davydov <3danissimo@gmail.co= m> wrote: > > Thanks everybody for the review! Please, see v12 patches : > 1) Implement tests for parallel autovacuum I forgot to add a new directory to Makefile and meson.build files. Fixed in v13 patches (only 0003 has changed). -- Best regards, Daniil Davydov --00000000000091bbac06426fac9e Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0002-Logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v13-0002-Logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhek3h812 RnJvbSBkMTU0NGFhYWQ0MjA2Njg3YWZlNzMwYTQzZTgxOGYxNmE0ZjY3NzEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBGcmksIDMxIE9jdCAyMDI1IDE0OjQyOjQ2ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTMgMi80XSBMb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgfCAyNyArKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAyMCArKysrKysr KysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8IDE2 ICsrKysrKysrKysrKysrLS0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAg fCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBkMmIwMzFmZGQwNi4uZDM2 NGNkZTVmZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTM0Nyw2ICsz NDcsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCiAJLyogSW5zdHJ1bWVudGF0aW9u IGNvdW50ZXJzICovCiAJaW50CQkJbnVtX2luZGV4X3NjYW5zOworCisJLyoKKwkgKiBOdW1iZXIg b2YgcGxhbm5lZCBhbmQgYWN0dWFsbHkgbGF1bmNoZWQgcGFyYWxsZWwgd29ya2VycyBmb3IgYWxs IGluZGV4CisJICogc2NhbnMsIG9yIE5VTEwKKwkgKi8KKwlQVldvcmtlcnNVc2FnZSAqd29ya2Vy c191c2FnZTsKIAkvKiBDb3VudGVycyB0aGF0IGZvbGxvdyBhcmUgb25seSBmb3Igc2Nhbm5lZF9w YWdlcyAqLwogCWludDY0CQl0dXBsZXNfZGVsZXRlZDsgLyogIyBkZWxldGVkIGZyb20gdGFibGUg Ki8KIAlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJLyogIyBuZXdseSBmcm96ZW4gKi8KQEAgLTcwMCw2 ICs3MDYsMTYgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFy YW1zIHBhcmFtcywKIAkJaW5kbmFtZXMgPSBwYWxsb2Moc2l6ZW9mKGNoYXIgKikgKiB2YWNyZWwt Pm5pbmRleGVzKTsKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCB2YWNyZWwtPm5pbmRleGVzOyBpKysp CiAJCQlpbmRuYW1lc1tpXSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodmFjcmVs LT5pbmRyZWxzW2ldKSk7CisKKwkJLyoKKwkJICogQWxsb2NhdGUgc3BhY2UgZm9yIHdvcmtlcnMg dXNhZ2Ugc3RhdGlzdGljcy4gVGh1cywgd2UgZXhwbGljaXRseQorCQkgKiBtYWtlIGNsZWFyIHRo YXQgc3VjaCBzdGF0aXN0aWNzIG11c3QgYmUgYWNjdW11bGF0ZWQuIEZvciBub3csIHRoaXMKKwkJ ICogaXMgdXNlZCBvbmx5IGJ5IGF1dG92YWN1dW0gbGVhZGVyIHdvcmtlciwgYmVjYXVzZSBpdCBt dXN0IGxvZyBpdCBpbgorCQkgKiB0aGUgZW5kIG9mIHRhYmxlIHByb2Nlc3NpbmcuCisJCSAqLwor CQl2YWNyZWwtPndvcmtlcnNfdXNhZ2UgPSBBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgPwor CQkJKFBWV29ya2Vyc1VzYWdlICopIHBhbGxvYzAoc2l6ZW9mKFBWV29ya2Vyc1VzYWdlKSkgOgor CQkJTlVMTDsKIAl9CiAKIAkvKgpAQCAtMTAyNCw2ICsxMDQwLDExIEBAIGhlYXBfdmFjdXVtX3Jl bChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkJIHZhY3Jl bC0+cmVsbmFtZXNwYWNlLAogCQkJCQkJCSB2YWNyZWwtPnJlbG5hbWUsCiAJCQkJCQkJIHZhY3Jl bC0+bnVtX2luZGV4X3NjYW5zKTsKKwkJCWlmICh2YWNyZWwtPndvcmtlcnNfdXNhZ2UpCisJCQkJ YXBwZW5kU3RyaW5nSW5mbygmYnVmLAorCQkJCQkJCQkgXygid29ya2VycyB1c2FnZSBzdGF0aXN0 aWNzIGZvciBhbGwgb2YgaW5kZXggc2NhbnMgOiBsYXVuY2hlZCBpbiB0b3RhbCA9ICVkLCBwbGFu bmVkIGluIHRvdGFsID0gJWRcbiIpLAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJzX3VzYWdlLT5u bGF1bmNoZWQsCisJCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UtPm5wbGFubmVkKTsKIAkJ CWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgXygicGFnZXM6ICV1IHJlbW92ZWQsICV1IHJlbWFpbiwg JXUgc2Nhbm5lZCAoJS4yZiUlIG9mIHRvdGFsKSwgJXUgZWFnZXJseSBzY2FubmVkXG4iKSwKIAkJ CQkJCQkgdmFjcmVsLT5yZW1vdmVkX3BhZ2VzLAogCQkJCQkJCSBuZXdfcmVsX3BhZ2VzLApAQCAt MjY1Myw3ICsyNjc0LDggQEAgbGF6eV92YWN1dW1fYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFj cmVsKQogCXsKIAkJLyogT3V0c291cmNlIGV2ZXJ5dGhpbmcgdG8gcGFyYWxsZWwgdmFyaWFudCAq LwogCQlwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyh2YWNyZWwtPnB2cywgb2xk X2xpdmVfdHVwbGVzLAotCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2Fucyk7CisJCQkJ CQkJCQkJCXZhY3JlbC0+bnVtX2luZGV4X3NjYW5zLAorCQkJCQkJCQkJCQl2YWNyZWwtPndvcmtl cnNfdXNhZ2UpOwogCiAJCS8qCiAJCSAqIERvIGEgcG9zdGNoZWNrIHRvIGNvbnNpZGVyIGFwcGx5 aW5nIHdyYXBhcm91bmQgZmFpbHNhZmUgbm93LiAgTm90ZQpAQCAtMzA4NSw3ICszMTA3LDggQEAg bGF6eV9jbGVhbnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJLyogT3V0c291 cmNlIGV2ZXJ5dGhpbmcgdG8gcGFyYWxsZWwgdmFyaWFudCAqLwogCQlwYXJhbGxlbF92YWN1dW1f Y2xlYW51cF9hbGxfaW5kZXhlcyh2YWNyZWwtPnB2cywgcmVsdHVwbGVzLAogCQkJCQkJCQkJCQl2 YWNyZWwtPm51bV9pbmRleF9zY2FucywKLQkJCQkJCQkJCQkJZXN0aW1hdGVkX2NvdW50KTsKKwkJ CQkJCQkJCQkJZXN0aW1hdGVkX2NvdW50LAorCQkJCQkJCQkJCQl2YWNyZWwtPndvcmtlcnNfdXNh Z2UpOwogCX0KIAogCS8qIFJlc2V0IHRoZSBwcm9ncmVzcyBjb3VudGVycyAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggYWNkNTNiODViMWMuLjlhMjU4MjM4NjUwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTIyNyw3ICsyMjcsNyBAQCBz dHJ1Y3QgUGFyYWxsZWxWYWN1dW1TdGF0ZQogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29t cHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVz dGVkLAogCQkJCQkJCQkJCQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9p ZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsIGludCBudW1faW5kZXhfc2NhbnMsCi0JCQkJCQkJCQkJCQlib29sIHZhY3V1bSk7CisJ CQkJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSk7CiBzdGF0aWMg dm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19zYWZlX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1T dGF0ZSAqcHZzKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Vuc2FmZV9p bmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92 YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlv biBpbmRyZWwsCkBAIC01MDIsNyArNTAyLDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Jlc2V0X2RlYWRf aXRlbXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKQogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1 dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVt X3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMpCisJCQkJCQkJCQlp bnQgbnVtX2luZGV4X3NjYW5zLCBQVldvcmtlcnNVc2FnZSAqd3VzYWdlKQogewogCUFzc2VydCgh SXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTEzLDcgKzUxMyw3IEBAIHBhcmFsbGVsX3ZhY3V1 bV9idWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1f dGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJ cHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1f cHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgdHJ1ZSk7CisJcGFyYWxs ZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIHRydWUs IHd1c2FnZSk7CiB9CiAKIC8qCkBAIC01MjEsNyArNTIxLDggQEAgcGFyYWxsZWxfdmFjdXVtX2J1 bGtkZWxfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJs ZV90dXAKICAqLwogdm9pZAogcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFy YWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQlp bnQgbnVtX2luZGV4X3NjYW5zLCBib29sIGVzdGltYXRlZF9jb3VudCkKKwkJCQkJCQkJCWludCBu dW1faW5kZXhfc2NhbnMsIGJvb2wgZXN0aW1hdGVkX2NvdW50LAorCQkJCQkJCQkJUFZXb3JrZXJz VXNhZ2UgKnd1c2FnZSkKIHsKIAlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CiAKQEAgLTUz Myw3ICs1MzQsNyBAQCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxl bFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cAogCXB2cy0+c2hhcmVkLT5yZWx0 dXBsZXMgPSBudW1fdGFibGVfdHVwbGVzOwogCXB2cy0+c2hhcmVkLT5lc3RpbWF0ZWRfY291bnQg PSBlc3RpbWF0ZWRfY291bnQ7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhl cyhwdnMsIG51bV9pbmRleF9zY2FucywgZmFsc2UpOworCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNz X2FsbF9pbmRleGVzKHB2cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSwgd3VzYWdlKTsKIH0KIAog LyoKQEAgLTYxOCw3ICs2MTksNyBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJl bGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogICovCiBzdGF0 aWMgdm9pZAogcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1dW0p CisJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSkKIHsKIAlpbnQJ CQlud29ya2VyczsKIAlQVkluZFZhY1N0YXR1cyBuZXdfc3RhdHVzOwpAQCAtNzQyLDYgKzc0Mywx MyBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0 YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCQkJCQkJCQkJICJsYXVuY2hlZCAlZCBwYXJh bGxlbCB2YWN1dW0gd29ya2VycyBmb3IgaW5kZXggY2xlYW51cCAocGxhbm5lZDogJWQpIiwKIAkJ CQkJCQkJCSBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkKSwKIAkJCQkJCQlwdnMtPnBjeHQt Pm53b3JrZXJzX2xhdW5jaGVkLCBud29ya2VycykpKTsKKworCQkvKiBSZW1lbWJlciB0aGVzZSB2 YWx1ZXMsIGlmIHdlIGFza2VkIHRvLiAqLworCQlpZiAod3VzYWdlICE9IE5VTEwpCisJCXsKKwkJ CXd1c2FnZS0+bmxhdW5jaGVkICs9IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7CisJCQl3 dXNhZ2UtPm5wbGFubmVkICs9IG53b3JrZXJzOworCQl9CiAJfQogCiAJLyogVmFjdXVtIHRoZSBp bmRleGVzIHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBieSBvbmx5IGxlYWRlciBwcm9jZXNzICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3ZhY3V1bS5oCmluZGV4IDFmMzI5MGM3ZmJmLi45MDcwOWNhMzEwNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvdmFjdXVtLmgKQEAgLTMwMCw2ICszMDAsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFjRGVhZEl0 ZW1zSW5mbwogCWludDY0CQludW1faXRlbXM7CQkvKiBjdXJyZW50ICMgb2YgZW50cmllcyAqLwog fSBWYWNEZWFkSXRlbXNJbmZvOwogCisvKgorICogUFZXb3JrZXJzVXNhZ2Ugc3RvcmVzIGluZm9y bWF0aW9uIGFib3V0IHRvdGFsIG51bWJlciBvZiBsYXVuY2hlZCBhbmQgcGxhbm5lZAorICogd29y a2VycyBkdXJpbmcgcGFyYWxsZWwgdmFjdXVtLgorICovCit0eXBlZGVmIHN0cnVjdCBQVldvcmtl cnNVc2FnZQoreworCWludAkJCW5sYXVuY2hlZDsKKwlpbnQJCQlucGxhbm5lZDsKK30gUFZXb3Jr ZXJzVXNhZ2U7CisKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50 IGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7CS8qIFBHRExMSU1QT1JUIGZvciBQb3N0R0lTICov CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9mcmVlemVfbWluX2FnZTsKQEAgLTM5NCwx MSArNDA0LDEzIEBAIGV4dGVybiBUaWRTdG9yZSAqcGFyYWxsZWxfdmFjdXVtX2dldF9kZWFkX2l0 ZW1zKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1 bV9yZXNldF9kZWFkX2l0ZW1zKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBleHRlcm4gdm9p ZCBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsCiAJCQkJCQkJCQkJCQlsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQkJCQlp bnQgbnVtX2luZGV4X3NjYW5zKTsKKwkJCQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsCisJ CQkJCQkJCQkJCQlQVldvcmtlcnNVc2FnZSAqd3VzYWdlKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVs X3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywKIAkJ CQkJCQkJCQkJCWxvbmcgbnVtX3RhYmxlX3R1cGxlcywKIAkJCQkJCQkJCQkJCWludCBudW1faW5k ZXhfc2NhbnMsCi0JCQkJCQkJCQkJCQlib29sIGVzdGltYXRlZF9jb3VudCk7CisJCQkJCQkJCQkJ CQlib29sIGVzdGltYXRlZF9jb3VudCwKKwkJCQkJCQkJCQkJCVBWV29ya2Vyc1VzYWdlICp3dXNh Z2UpOwogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKTsKIAogLyogaW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1naXQg YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CmluZGV4IDAxOGI1OTE5Y2Y2Li4yYzczZmFhMzBlNyAxMDA2NDQKLS0tIGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKQEAgLTIzNzIsNiArMjM3Miw3IEBAIFB1bGxGaWx0ZXJPcHMKIFB1c2hG aWx0ZXIKIFB1c2hGaWx0ZXJPcHMKIFB1c2hGdW5jdGlvbgorUFZXb3JrZXJzVXNhZ2UKIFB5Q0Z1 bmN0aW9uCiBQeU1ldGhvZERlZgogUHlNb2R1bGVEZWYKLS0gCjIuNDMuMAoK --00000000000091bbac06426fac9e Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0004-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v13-0004-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhek3h7g0 RnJvbSAwMWVjZGIyZTZlYmM1N2RkZDdmMzQzZDEzNTYxN2E5MmJhMGViZjczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBGcmksIDMxIE9jdCAyMDI1IDE0OjQ0OjM1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTMgNC80XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAgfCAxMiArKysrKysrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgfCAyMCArKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDBhMmE4 YjQ5ZmRiLi5kM2VhMDJjYmJlMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMjgzNSw2ICsyODM1LDcgQEAgaW5j bHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaGVuIGNoYW5naW5n IHRoaXMgdmFsdWUsIGNvbnNpZGVyIGFsc28gYWRqdXN0aW5nCiAgICAgICAgICA8eHJlZiBsaW5r ZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4sCisgICAgICAgICA8eHJlZiBsaW5rZW5k PSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIvPiwKICAgICAgICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtbWFpbnRlbmFuY2Utd29ya2VycyIvPiwgYW5kCiAg ICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMtcGVyLWdhdGhl ciIvPi4KICAgICAgICAgPC9wYXJhPgpAQCAtOTI1NCw2ICs5MjU1LDIzIEBAIENPUFkgcG9zdGdy ZXNfbG9nIEZST00gJy9mdWxsL3BhdGgvdG8vbG9nZmlsZS5jc3YnIFdJVEggY3N2OwogICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRy eSBpZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiIHhyZWZsYWJlbD0iYXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyI+CisgICAgICAgIDx0ZXJtPjx2YXJuYW1lPmF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90 eXBlPikKKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM8L3Zhcm5hbWU+PC9wcmltYXJ5PgorICAgICAg ICAgPHNlY29uZGFyeT5jb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvc2Vjb25kYXJ5PgorICAgICAg ICA8L2luZGV4dGVybT4KKyAgICAgICAgPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJhbGxl bCBhdXRvdmFjdXVtIHdvcmtlcnMgdGhhdAorICAgICAgICAgIGNhbiBiZSB1c2VkIGZvciBwYXJh bGxlbCBpbmRleCB2YWN1dW1pbmcgYXQgb25lIHRpbWUuIElzIGNhcHBlZCBieQorICAgICAgICAg IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtd29ya2VyLXByb2Nlc3NlcyIvPi4gVGhlIGRlZmF1bHQg aXMgMCwKKyAgICAgICAgICB3aGljaCBtZWFucyBubyBwYXJhbGxlbCBpbmRleCB2YWN1dW1pbmcu CisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvc2VjdDI+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNl LnNnbWwKaW5kZXggZGM1OWM4ODMxOWUuLjJkYjM0Y2VjMGE5IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvbWFpbnRlbmFuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dt bApAQCAtODk3LDYgKzg5NywxOCBAQCBISU5UOiAgRXhlY3V0ZSBhIGRhdGFiYXNlLXdpZGUgVkFD VVVNIGluIHRoYXQgZGF0YWJhc2UuCiAgICAgYXV0b3ZhY3V1bSB3b3JrZXJzJyBhY3Rpdml0eS4K ICAgIDwvcGFyYT4KIAorICAgPHBhcmE+CisgICAgSWYgYW4gYXV0b3ZhY3V1bSB3b3JrZXIgcHJv Y2VzcyBjb21lcyBhY3Jvc3MgYSB0YWJsZSB3aXRoIHRoZSBlbmFibGVkCisgICAgPHhyZWYgbGlu a2VuZD0icmVsb3B0aW9uLWF1dG92YWN1dW0tcGFyYWxsZWwtd29ya2VycyIvPiBzdG9yYWdlIHBh cmFtZXRlciwKKyAgICBpdCB3aWxsIGxhdW5jaCBwYXJhbGxlbCB3b3JrZXJzIGluIG9yZGVyIHRv IHZhY3V1bSBpbmRleGVzIG9mIHRoaXMgdGFibGUKKyAgICBpbiBhIHBhcmFsbGVsIG1vZGUuIFBh cmFsbGVsIHdvcmtlcnMgYXJlIHRha2VuIGZyb20gdGhlIHBvb2wgb2YgcHJvY2Vzc2VzCisgICAg ZXN0YWJsaXNoZWQgYnkgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC13b3JrZXItcHJvY2Vzc2VzIi8+ LCBsaW1pdGVkIGJ5CisgICAgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC13b3JrZXJz Ii8+LgorICAgIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJz IHRoYXQgY2FuIGJlIGFjdGl2ZSBhdCBvbmUKKyAgICB0aW1lIGlzIGxpbWl0ZWQgYnkgdGhlIDx4 cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+CisgICAg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICA8L3BhcmE+CisKICAgIDxwYXJhPgogICAgIElm IHNldmVyYWwgbGFyZ2UgdGFibGVzIGFsbCBiZWNvbWUgZWxpZ2libGUgZm9yIHZhY3V1bWluZyBp biBhIHNob3J0CiAgICAgYW1vdW50IG9mIHRpbWUsIGFsbCBhdXRvdmFjdXVtIHdvcmtlcnMgbWln aHQgYmVjb21lIG9jY3VwaWVkIHdpdGgKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4 IGExNTdhMjQ0ZTRlLi42ZWI1OGM5NWQ5ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CkBAIC0xNzE3LDYgKzE3MTcsMjYgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgPHZhcmxpc3RlbnRyeSBpZD0icmVsb3B0 aW9uLWF1dG92YWN1dW0tcGFyYWxsZWwtd29ya2VycyIgeHJlZmxhYmVsPSJhdXRvdmFjdXVtX3Bh cmFsbGVsX3dvcmtlcnMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92YWN1dW1fcGFyYWxsZWxf d29ya2VyczwvbGl0ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgIDxpbmRleHRlcm0+ CisgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VyczwvdmFy bmFtZT4gc3RvcmFnZSBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgPC9pbmRleHRlcm0+CisgICAg PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTZXRzIHRoZSBtYXhp bXVtIG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMgdGhhdCBjYW4gcHJvY2Vz cworICAgICAgaW5kZXhlcyBvZiB0aGlzIHRhYmxlLgorICAgICAgVGhlIGRlZmF1bHQgdmFsdWUg aXMgLTEsIHdoaWNoIG1lYW5zIG5vIHBhcmFsbGVsIGluZGV4IHZhY3V1bWluZyBmb3IKKyAgICAg IHRoaXMgdGFibGUuIElmIHZhbHVlIGlzIDAgdGhlbiBwYXJhbGxlbCBkZWdyZWUgd2lsbCBjb21w dXRlZCBiYXNlZCBvbgorICAgICAgbnVtYmVyIG9mIGluZGV4ZXMuCisgICAgICBOb3RlIHRoYXQg dGhlIGNvbXB1dGVkIG51bWJlciBvZiB3b3JrZXJzIG1heSBub3QgYWN0dWFsbHkgYmUgYXZhaWxh YmxlIGF0CisgICAgICBydW4gdGltZS4gSWYgdGhpcyBvY2N1cnMsIHRoZSBhdXRvdmFjdXVtIHdp bGwgcnVuIHdpdGggZmV3ZXIgd29ya2VycworICAgICAgdGhhbiBleHBlY3RlZC4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3Rl bnRyeSBpZD0icmVsb3B0aW9uLWF1dG92YWN1dW0tdmFjdXVtLXRocmVzaG9sZCIgeHJlZmxhYmVs PSJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiPgogICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92 YWN1dW1fdmFjdXVtX3RocmVzaG9sZDwvbGl0ZXJhbD4sIDxsaXRlcmFsPnRvYXN0LmF1dG92YWN1 dW1fdmFjdXVtX3RocmVzaG9sZDwvbGl0ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQogICAg IDxpbmRleHRlcm0+Ci0tIAoyLjQzLjAKCg== --00000000000091bbac06426fac9e Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0001-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v13-0001-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhek3h8c3 RnJvbSA3MmJmZTNjNDhiN2M0NDUwMzhjYzhjODNlM2I5ZmQ1YWQ3MmUyN2QyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBGcmksIDMxIE9jdCAyMDI1IDE0OjQyOjI3ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTMgMS80XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDQyICsrKystCiBzcmMvYmFja2VuZC9wb3N0bWFz dGVyL2F1dG92YWN1dW0uYyAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysrKysrKystCiBzcmMv YmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCAgICAgfCAgIDkgKwogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAxICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9t aXNjYWRtaW4uaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcG9z dG1hc3Rlci9hdXRvdmFjdXVtLmggICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3V0aWxz L3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArCiAxMSBmaWxlcyBjaGFuZ2VkLCAy MzkgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYwppbmRleCA5ZTI4OGRmZWNiZi4uM2NjMjlkNDQ1NGEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0yMjIsNiArMjIyLDE1IEBAIHN0YXRpYyBy ZWxvcHRfaW50IGludFJlbE9wdHNbXSA9CiAJCX0sCiAJCVNQR0lTVF9ERUZBVUxUX0ZJTExGQUNU T1IsIFNQR0lTVF9NSU5fRklMTEZBQ1RPUiwgMTAwCiAJfSwKKwl7CisJCXsKKwkJCSJhdXRvdmFj dXVtX3BhcmFsbGVsX3dvcmtlcnMiLAorCQkJIk1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1 dG92YWN1dW0gd29ya2VycyB0aGF0IGNhbiBiZSB1c2VkIGZvciBwcm9jZXNzaW5nIHRoaXMgdGFi bGUuIiwKKwkJCVJFTE9QVF9LSU5EX0hFQVAsCisJCQlTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sK KwkJfSwKKwkJLTEsIC0xLCAxMDI0CisJfSwKIAl7CiAJCXsKIAkJCSJhdXRvdmFjdXVtX3ZhY3V1 bV90aHJlc2hvbGQiLApAQCAtMTg4MSw2ICsxODkwLDggQEAgZGVmYXVsdF9yZWxvcHRpb25zKERh dHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUsIHJlbG9wdF9raW5kIGtpbmQpCiAJCXsiZmls bGZhY3RvciIsIFJFTE9QVF9UWVBFX0lOVCwgb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCBmaWxsZmFj dG9yKX0sCiAJCXsiYXV0b3ZhY3V1bV9lbmFibGVkIiwgUkVMT1BUX1RZUEVfQk9PTCwKIAkJb2Zm c2V0b2YoU3RkUmRPcHRpb25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBl bmFibGVkKX0sCisJCXsiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwgUkVMT1BUX1RZUEVf SU5ULAorCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0 b1ZhY09wdHMsIGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2Vycyl9LAogCQl7ImF1dG92YWN1dW1f dmFjdXVtX3RocmVzaG9sZCIsIFJFTE9QVF9UWVBFX0lOVCwKIAkJb2Zmc2V0b2YoU3RkUmRPcHRp b25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCB2YWN1dW1fdGhyZXNob2xk KX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1fbWF4X3RocmVzaG9sZCIsIFJFTE9QVF9UWVBFX0lO VCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDBmZWVhMWQzMGVjLi5h Y2Q1M2I4NWIxYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxs ZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC0xLDcg KzEsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICogdmFjdXVtcGFyYWxsZWwuYwotICoJ ICBTdXBwb3J0IHJvdXRpbmVzIGZvciBwYXJhbGxlbCB2YWN1dW0gZXhlY3V0aW9uLgorICoJICBT dXBwb3J0IHJvdXRpbmVzIGZvciBwYXJhbGxlbCB2YWN1dW0gYW5kIGF1dG92YWN1dW0gZXhlY3V0 aW9uLiBJbiB0aGUKKyAqCSAgY29tbWVudHMgYmVsb3csIHRoZSB3b3JkICJ2YWN1dW0iIHdpbGwg cmVmZXIgdG8gYm90aCB2YWN1dW0gYW5kCisgKgkgIGF1dG92YWN1dW0uCiAgKgogICogVGhpcyBm aWxlIGNvbnRhaW5zIHJvdXRpbmVzIHRoYXQgYXJlIGludGVuZGVkIHRvIHN1cHBvcnQgc2V0dGlu ZyB1cCwgdXNpbmcsCiAgKiBhbmQgdGVhcmluZyBkb3duIGEgUGFyYWxsZWxWYWN1dW1TdGF0ZS4K QEAgLTM0LDYgKzM2LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5j bHVkZSAib3B0aW1pemVyL3BhdGhzLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAi cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNp bmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBA IC0zNzMsOCArMzc2LDkgQEAgcGFyYWxsZWxfdmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxh dGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLAogCXNoYXJlZC0+cXVlcnlpZCA9IHBnc3RhdF9n ZXRfbXlfcXVlcnlfaWQoKTsKIAlzaGFyZWQtPm1haW50ZW5hbmNlX3dvcmtfbWVtX3dvcmtlciA9 CiAJCShuaW5kZXhlc19td20gPiAwKSA/Ci0JCW1haW50ZW5hbmNlX3dvcmtfbWVtIC8gTWluKHBh cmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgotCQltYWludGVuYW5jZV93b3JrX21lbTsK KwkJdmFjX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgor CQl2YWNfd29ya19tZW07CisKIAlzaGFyZWQtPmRlYWRfaXRlbXNfaW5mby5tYXhfYnl0ZXMgPSB2 YWNfd29ya19tZW0gKiAoc2l6ZV90KSAxMDI0OwogCiAJLyogUHJlcGFyZSBEU0Egc3BhY2UgZm9y IGRlYWQgaXRlbXMgKi8KQEAgLTU1MywxMiArNTU3LDE3IEBAIHBhcmFsbGVsX3ZhY3V1bV9jb21w dXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0 ZWQsCiAJaW50CQkJbmluZGV4ZXNfcGFyYWxsZWxfYnVsa2RlbCA9IDA7CiAJaW50CQkJbmluZGV4 ZXNfcGFyYWxsZWxfY2xlYW51cCA9IDA7CiAJaW50CQkJcGFyYWxsZWxfd29ya2VyczsKKwlpbnQJ CQltYXhfd29ya2VyczsKKworCW1heF93b3JrZXJzID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2Vz cygpID8KKwkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA6CisJCW1heF9wYXJhbGxl bF9tYWludGVuYW5jZV93b3JrZXJzOwogCiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBwZXJmb3Jt aW5nIHBhcmFsbGVsIG9wZXJhdGlvbiBpbiBzdGFuZGFsb25lIGJhY2tlbmQgb3IKIAkgKiB3aGVu IHBhcmFsbGVsaXNtIGlzIGRpc2FibGVkLgogCSAqLwotCWlmICghSXNVbmRlclBvc3RtYXN0ZXIg fHwgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnMgPT0gMCkKKwlpZiAoIUlzVW5kZXJQ b3N0bWFzdGVyIHx8IG1heF93b3JrZXJzID09IDApCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTU5 Nyw4ICs2MDYsOCBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICpp bmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCXBhcmFsbGVsX3dvcmtlcnMg PSAobnJlcXVlc3RlZCA+IDApID8KIAkJTWluKG5yZXF1ZXN0ZWQsIG5pbmRleGVzX3BhcmFsbGVs KSA6IG5pbmRleGVzX3BhcmFsbGVsOwogCi0JLyogQ2FwIGJ5IG1heF9wYXJhbGxlbF9tYWludGVu YW5jZV93b3JrZXJzICovCi0JcGFyYWxsZWxfd29ya2VycyA9IE1pbihwYXJhbGxlbF93b3JrZXJz LCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2Vycyk7CisJLyogQ2FwIGJ5IEdVQyB2YXJp YWJsZSAqLworCXBhcmFsbGVsX3dvcmtlcnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3dv cmtlcnMpOwogCiAJcmV0dXJuIHBhcmFsbGVsX3dvcmtlcnM7CiB9CkBAIC02NDYsNiArNjU1LDEz IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJICovCiAJbndvcmtlcnMgPSBNaW4obndvcmtl cnMsIHB2cy0+cGN4dC0+bndvcmtlcnMpOwogCisJLyoKKwkgKiBSZXNlcnZlIHdvcmtlcnMgaW4g YXV0b3ZhY3V1bSBnbG9iYWwgc3RhdGUuIE5vdGUsIHRoYXQgd2UgbWF5IGJlIGdpdmVuCisJICog ZmV3ZXIgd29ya2VycyB0aGFuIHdlIHJlcXVlc3RlZC4KKwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVt V29ya2VyUHJvY2VzcygpICYmIG53b3JrZXJzID4gMCkKKwkJbndvcmtlcnMgPSBBdXRvVmFjdXVt UmVzZXJ2ZVBhcmFsbGVsV29ya2Vycyhud29ya2Vycyk7CisKIAkvKgogCSAqIFNldCBpbmRleCB2 YWN1dW0gc3RhdHVzIGFuZCBtYXJrIHdoZXRoZXIgcGFyYWxsZWwgdmFjdXVtIHdvcmtlciBjYW4K IAkgKiBwcm9jZXNzIGl0LgpAQCAtNjkwLDYgKzcwNiwxNiBAQCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhf c2NhbgogCiAJCUxhdW5jaFBhcmFsbGVsV29ya2VycyhwdnMtPnBjeHQpOwogCisJCWlmIChBbUF1 dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYKKwkJCXB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNo ZWQgPCBud29ya2VycykKKwkJeworCQkJLyoKKwkJCSAqIFRlbGwgYXV0b3ZhY3V1bSB0aGF0IHdl IGNvdWxkIG5vdCBsYXVuY2ggYWxsIHRoZSBwcmV2aW91c2x5CisJCQkgKiByZXNlcnZlZCB3b3Jr ZXJzLgorCQkJICovCisJCQlBdXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2Vycyhud29ya2Vy cyAtIHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQpOworCQl9CisKIAkJaWYgKHB2cy0+cGN4 dC0+bndvcmtlcnNfbGF1bmNoZWQgPiAwKQogCQl7CiAJCQkvKgpAQCAtNzM4LDYgKzc2NCwxMCBA QCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCiAJCWZvciAoaW50IGkgPSAwOyBpIDwgcHZzLT5w Y3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsrKQogCQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnko JnB2cy0+YnVmZmVyX3VzYWdlW2ldLCAmcHZzLT53YWxfdXNhZ2VbaV0pOworCisJCS8qIEFsc28g cmVsZWFzZSBhbGwgcHJldmlvdXNseSByZXNlcnZlZCBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtl cnMgKi8KKwkJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiBwdnMtPnBjeHQtPm53 b3JrZXJzX2xhdW5jaGVkID4gMCkKKwkJCUF1dG9WYWN1dW1SZWxlYXNlUGFyYWxsZWxXb3JrZXJz KHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IDUwODRhZjdkZmI2Li45NDk5ZDRmMGMxMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTE1MSw2ICsxNTEsMTIgQEAgaW50CQkJTG9nX2F1 dG9hbmFseXplX21pbl9kdXJhdGlvbiA9IDYwMDAwMDsKIHN0YXRpYyBkb3VibGUgYXZfc3RvcmFn ZV9wYXJhbV9jb3N0X2RlbGF5ID0gLTE7CiBzdGF0aWMgaW50CWF2X3N0b3JhZ2VfcGFyYW1fY29z dF9saW1pdCA9IC0xOwogCisvKgorICogVmFyaWFibGUgdG8ga2VlcCBudW1iZXIgb2YgY3VycmVu dGx5IHJlc2VydmVkIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2Vycy4KKyAqIEl0IGlzIG9ubHkg cmVsZXZhbnQgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyIHByb2Nlc3MuCisgKi8KK3N0 YXRpYyBpbnQJYXZfbndvcmtlcnNfcmVzZXJ2ZWQgPSAwOworCiAvKiBGbGFncyBzZXQgYnkgc2ln bmFsIGhhbmRsZXJzICovCiBzdGF0aWMgdm9sYXRpbGUgc2lnX2F0b21pY190IGdvdF9TSUdVU1Iy ID0gZmFsc2U7CiAKQEAgLTI4NSw2ICsyOTEsOCBAQCB0eXBlZGVmIHN0cnVjdCBBdXRvVmFjdXVt V29ya0l0ZW0KICAqIGF2X3dvcmtJdGVtcwkJd29yayBpdGVtIGFycmF5CiAgKiBhdl9ud29ya2Vy c0ZvckJhbGFuY2UgdGhlIG51bWJlciBvZiBhdXRvdmFjdXVtIHdvcmtlcnMgdG8gdXNlIHdoZW4K ICAqIAkJCQkJY2FsY3VsYXRpbmcgdGhlIHBlciB3b3JrZXIgY29zdCBsaW1pdAorICogYXZfZnJl ZVBhcmFsbGVsV29ya2VycyB0aGUgbnVtYmVyIG9mIGZyZWUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3 b3JrZXJzCisgKiBhdl9tYXhQYXJhbGxlbFdvcmtlcnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBh cmFsbGVsIGF1dG92YWN1dW0gd29ya2VycwogICoKICAqIFRoaXMgc3RydWN0IGlzIHByb3RlY3Rl ZCBieSBBdXRvdmFjdXVtTG9jaywgZXhjZXB0IGZvciBhdl9zaWduYWwgYW5kIHBhcnRzCiAgKiBv ZiB0aGUgd29ya2VyIGxpc3QgKHNlZSBhYm92ZSkuCkBAIC0yOTksNiArMzA3LDggQEAgdHlwZWRl ZiBzdHJ1Y3QKIAlXb3JrZXJJbmZvCWF2X3N0YXJ0aW5nV29ya2VyOwogCUF1dG9WYWN1dW1Xb3Jr SXRlbSBhdl93b3JrSXRlbXNbTlVNX1dPUktJVEVNU107CiAJcGdfYXRvbWljX3VpbnQzMiBhdl9u d29ya2Vyc0ZvckJhbGFuY2U7CisJdWludDMyCQlhdl9mcmVlUGFyYWxsZWxXb3JrZXJzOworCXVp bnQzMgkJYXZfbWF4UGFyYWxsZWxXb3JrZXJzOwogfSBBdXRvVmFjdXVtU2htZW1TdHJ1Y3Q7CiAK IHN0YXRpYyBBdXRvVmFjdXVtU2htZW1TdHJ1Y3QgKkF1dG9WYWN1dW1TaG1lbTsKQEAgLTM2NCw2 ICszNzQsNyBAQCBzdGF0aWMgdm9pZCBhdXRvdmFjX3JlcG9ydF93b3JraXRlbShBdXRvVmFjdXVt V29ya0l0ZW0gKndvcmtpdGVtLAogc3RhdGljIHZvaWQgYXZsX3NpZ3VzcjJfaGFuZGxlcihTSUdO QUxfQVJHUyk7CiBzdGF0aWMgYm9vbCBhdl93b3JrZXJfYXZhaWxhYmxlKHZvaWQpOwogc3RhdGlj IHZvaWQgY2hlY2tfYXZfd29ya2VyX2d1Y3Modm9pZCk7CitzdGF0aWMgdm9pZCBhZGp1c3RfZnJl ZV9wYXJhbGxlbF93b3JrZXJzKGludCBwcmV2X21heF9wYXJhbGxlbF93b3JrZXJzKTsKIAogCiAK QEAgLTc2Myw2ICs3NzQsOCBAQCBQcm9jZXNzQXV0b1ZhY0xhdW5jaGVySW50ZXJydXB0cyh2b2lk KQogCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQogCXsKIAkJaW50CQkJYXV0b3ZhY3V1bV9tYXhf d29ya2Vyc19wcmV2ID0gYXV0b3ZhY3V1bV9tYXhfd29ya2VyczsKKwkJaW50CQkJYXV0b3ZhY3V1 bV9tYXhfcGFyYWxsZWxfd29ya2Vyc19wcmV2ID0KKwkJCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVs X3dvcmtlcnM7CiAKIAkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOwogCQlQcm9jZXNzQ29u ZmlnRmlsZShQR0NfU0lHSFVQKTsKQEAgLTc3OSw2ICs3OTIsMTUgQEAgUHJvY2Vzc0F1dG9WYWNM YXVuY2hlckludGVycnVwdHModm9pZCkKIAkJaWYgKGF1dG92YWN1dW1fbWF4X3dvcmtlcnNfcHJl diAhPSBhdXRvdmFjdXVtX21heF93b3JrZXJzKQogCQkJY2hlY2tfYXZfd29ya2VyX2d1Y3MoKTsK IAorCQkvKgorCQkgKiBJZiBhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIGNoYW5nZWQs IHdlIG11c3QgdGFrZSBjYXJlIG9mCisJCSAqIHRoZSBjb3JyZWN0IHZhbHVlIG9mIGF2YWlsYWJs ZSBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMgaW4KKwkJICogc2htZW0uCisJCSAqLworCQlp ZiAoYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vyc19wcmV2ICE9CisJCQlhdXRvdmFjdXVt X21heF9wYXJhbGxlbF93b3JrZXJzKQorCQkJYWRqdXN0X2ZyZWVfcGFyYWxsZWxfd29ya2Vycyhh dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzX3ByZXYpOworCiAJCS8qIHJlYnVpbGQgdGhl IGxpc3QgaW4gY2FzZSB0aGUgbmFwdGltZSBjaGFuZ2VkICovCiAJCXJlYnVpbGRfZGF0YWJhc2Vf bGlzdChJbnZhbGlkT2lkKTsKIAl9CkBAIC0xMzgzLDYgKzE0MDUsMTcgQEAgYXZsX3NpZ3VzcjJf aGFuZGxlcihTSUdOQUxfQVJHUykKICAqCQkJCQkgIEFVVE9WQUNVVU0gV09SS0VSIENPREUKICAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KIAorLyoKKyAqIElmIHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyIGlzIGZp bmlzaGluZyBkdWUgdG8gRkFUQUwgZXJyb3IsIG1ha2Ugc3VyZQorICogdGhhdCBhbGwgcmVzZXJ2 ZWQgd29ya2VycyBhcmUgcmVsZWFzZWQuCisgKi8KK3N0YXRpYyB2b2lkCithdXRvdmFjdXVtX3dv cmtlcl9iZWZvcmVfc2htZW1fZXhpdChpbnQgY29kZSwgRGF0dW0gYXJnKQoreworCWlmIChjb2Rl ICE9IDApCisJCUF1dG9WYWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJzKCk7Cit9CisKIC8q CiAgKiBNYWluIGVudHJ5IHBvaW50IGZvciBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzZXMuCiAg Ki8KQEAgLTE0MjksNiArMTQ2Miw4IEBAIEF1dG9WYWNXb3JrZXJNYWluKGNvbnN0IHZvaWQgKnN0 YXJ0dXBfZGF0YSwgc2l6ZV90IHN0YXJ0dXBfZGF0YV9sZW4pCiAJcHFzaWduYWwoU0lHRlBFLCBG bG9hdEV4Y2VwdGlvbkhhbmRsZXIpOwogCXBxc2lnbmFsKFNJR0NITEQsIFNJR19ERkwpOwogCisJ YmVmb3JlX3NobWVtX2V4aXQoYXV0b3ZhY3V1bV93b3JrZXJfYmVmb3JlX3NobWVtX2V4aXQsIDAp OworCiAJLyoKIAkgKiBDcmVhdGUgYSBwZXItYmFja2VuZCBQR1BST0Mgc3RydWN0IGluIHNoYXJl ZCBtZW1vcnkuICBXZSBtdXN0IGRvIHRoaXMKIAkgKiBiZWZvcmUgd2UgY2FuIHVzZSBMV0xvY2tz IG9yIGFjY2VzcyBhbnkgc2hhcmVkIG1lbW9yeS4KQEAgLTI0ODAsNiArMjUxNSwxMiBAQCBkb19h dXRvdmFjdXVtKHZvaWQpCiAJCX0KIAkJUEdfQ0FUQ0goKTsKIAkJeworCQkJLyoKKwkJCSAqIFBh cmFsbGVsIGF1dG92YWN1dW0gY2FuIHJlc2VydmUgcGFyYWxsZWwgd29ya2Vycy4gTWFrZSBzdXJl IHRoYXQKKwkJCSAqIGFsbCByZXNlcnZlZCB3b3JrZXJzIGFyZSByZWxlYXNlZC4KKwkJCSAqLwor CQkJQXV0b1ZhY3V1bVJlbGVhc2VBbGxQYXJhbGxlbFdvcmtlcnMoKTsKKwogCQkJLyoKIAkJCSAq IEFib3J0IHRoZSB0cmFuc2FjdGlvbiwgc3RhcnQgYSBuZXcgb25lLCBhbmQgcHJvY2VlZCB3aXRo IHRoZQogCQkJICogbmV4dCB0YWJsZSBpbiBvdXIgbGlzdC4KQEAgLTI4NzcsOCArMjkxOCwxMiBA QCB0YWJsZV9yZWNoZWNrX2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAs CiAJCSAqLwogCQl0YWItPmF0X3BhcmFtcy5pbmRleF9jbGVhbnVwID0gVkFDT1BUVkFMVUVfVU5T UEVDSUZJRUQ7CiAJCXRhYi0+YXRfcGFyYW1zLnRydW5jYXRlID0gVkFDT1BUVkFMVUVfVU5TUEVD SUZJRUQ7Ci0JCS8qIEFzIG9mIG5vdywgd2UgZG9uJ3Qgc3VwcG9ydCBwYXJhbGxlbCB2YWN1dW0g Zm9yIGF1dG92YWN1dW0gKi8KLQkJdGFiLT5hdF9wYXJhbXMubndvcmtlcnMgPSAtMTsKKworCQkv KiBEZWNpZGUgd2hldGhlciB3ZSBuZWVkIHRvIHByb2Nlc3MgaW5kZXhlcyBvZiB0YWJsZSBpbiBw YXJhbGxlbC4gKi8KKwkJdGFiLT5hdF9wYXJhbXMubndvcmtlcnMgPSBhdm9wdHMKKwkJCT8gYXZv cHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMKKwkJCTogLTE7CisKIAkJdGFiLT5hdF9w YXJhbXMuZnJlZXplX21pbl9hZ2UgPSBmcmVlemVfbWluX2FnZTsKIAkJdGFiLT5hdF9wYXJhbXMu ZnJlZXplX3RhYmxlX2FnZSA9IGZyZWV6ZV90YWJsZV9hZ2U7CiAJCXRhYi0+YXRfcGFyYW1zLm11 bHRpeGFjdF9mcmVlemVfbWluX2FnZSA9IG11bHRpeGFjdF9mcmVlemVfbWluX2FnZTsKQEAgLTMz NjAsNiArMzQwNSw4NSBAQCBBdXRvVmFjdXVtUmVxdWVzdFdvcmsoQXV0b1ZhY3V1bVdvcmtJdGVt VHlwZSB0eXBlLCBPaWQgcmVsYXRpb25JZCwKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICog SW4gb3JkZXIgdG8gbWVldCB0aGUgJ2F1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMnIGxp bWl0LCBsZWFkZXIKKyAqIGF1dG92YWN1dW0gcHJvY2VzcyBtdXN0IGNhbGwgdGhpcyBmdW5jdGlv bi4gSXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mCisgKiBwYXJhbGxlbCB3b3JrZXJzIHRoYXQgYWN0 dWFsbHkgY2FuIGJlIGxhdW5jaGVkIGFuZCByZXNlcnZlcyB0aGVzZSB3b3JrZXJzCisgKiAoaWYg YW55KSBpbiBnbG9iYWwgYXV0b3ZhY3V1bSBzdGF0ZS4KKyAqCisgKiBOT1RFOiBXZSB3aWxsIHRy eSB0byBwcm92aWRlIGFzIG1hbnkgd29ya2VycyBhcyByZXF1ZXN0ZWQsIGV2ZW4gaWYgY2FsbGVy CisgKiB3aWxsIG9jY3VweSBhbGwgYXZhaWxhYmxlIHdvcmtlcnMuCisgKi8KK2ludAorQXV0b1Zh Y3V1bVJlc2VydmVQYXJhbGxlbFdvcmtlcnMoaW50IG53b3JrZXJzKQoreworCWludAkJCW5yZXNl cnZlZDsKKworCS8qIE9ubHkgbGVhZGVyIHdvcmtlciBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiAq LworCUFzc2VydChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYgIUlzUGFyYWxsZWxXb3Jr ZXIoKSk7CisKKwkvKgorCSAqIFdlIGNhbiBvbmx5IHJlc2VydmUgd29ya2VycyBhdCB0aGUgYmVn aW5uaW5nIG9mIHBhcmFsbGVsIGluZGV4CisJICogcHJvY2Vzc2luZywgc28gd2UgbXVzdCBub3Qg aGF2ZSBhbnkgcmVzZXJ2ZWQgd29ya2VycyByaWdodCBub3cuCisJICovCisJQXNzZXJ0KGF2X253 b3JrZXJzX3Jlc2VydmVkID09IDApOworCisJTFdMb2NrQWNxdWlyZShBdXRvdmFjdXVtTG9jaywg TFdfRVhDTFVTSVZFKTsKKworCS8qIFByb3ZpZGUgYXMgbWFueSB3b3JrZXJzIGFzIHdlIGNhbi4g Ki8KKwlucmVzZXJ2ZWQgPSBNaW4oQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVlUGFyYWxsZWxXb3Jr ZXJzLCBud29ya2Vycyk7CisJQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVlUGFyYWxsZWxXb3JrZXJz IC09IG53b3JrZXJzOworCisJLyogUmVtZW1iZXIgaG93IG1hbnkgd29ya2VycyB3ZSBoYXZlIHJl c2VydmVkLiAqLworCWF2X253b3JrZXJzX3Jlc2VydmVkICs9IG53b3JrZXJzOworCisJTFdMb2Nr UmVsZWFzZShBdXRvdmFjdXVtTG9jayk7CisJcmV0dXJuIG5yZXNlcnZlZDsKK30KKworLyoKKyAq IExlYWRlciBhdXRvdmFjdXVtIHByb2Nlc3MgbXVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gaW4gb3Jk ZXIgdG8gdXBkYXRlIGdsb2JhbAorICogYXV0b3ZhY3V1bSBzdGF0ZSwgc28gb3RoZXIgbGVhZGVy cyB3aWxsIGJlIGFibGUgdG8gdXNlIHRoZXNlIHBhcmFsbGVsCisgKiB3b3JrZXJzLgorICoKKyAq ICdud29ya2VycycgLSBob3cgbWFueSB3b3JrZXJzIGNhbGxlciB3YW50cyB0byByZWxlYXNlLgor ICovCit2b2lkCitBdXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2VycyhpbnQgbndvcmtlcnMp Cit7CisJLyogT25seSBsZWFkZXIgd29ya2VyIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uICovCisJ QXNzZXJ0KEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiAhSXNQYXJhbGxlbFdvcmtlcigp KTsKKworCUxXTG9ja0FjcXVpcmUoQXV0b3ZhY3V1bUxvY2ssIExXX0VYQ0xVU0lWRSk7CisKKwkv KgorCSAqIElmIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIHdhcyByZWR1 Y2VkIGR1cmluZyBleGVjdXRpb24sCisJICogd2UgbXVzdCBjYXAgYXZhaWxhYmxlIHdvcmtlcnMg bnVtYmVyIGJ5IGl0cyBuZXcgdmFsdWUuCisJICovCisJQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVl UGFyYWxsZWxXb3JrZXJzID0KKwkJTWluKEF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVs V29ya2VycyArIG53b3JrZXJzLAorCQkJQXV0b1ZhY3V1bVNobWVtLT5hdl9tYXhQYXJhbGxlbFdv cmtlcnMpOworCisJLyogRG9uJ3QgaGF2ZSB0byByZW1lbWJlciB0aGVzZSB3b3JrZXJzIGFueW1v cmUuICovCisJYXZfbndvcmtlcnNfcmVzZXJ2ZWQgLT0gbndvcmtlcnM7CisKKwlMV0xvY2tSZWxl YXNlKEF1dG92YWN1dW1Mb2NrKTsKK30KKworLyoKKyAqIFNhbWUgYXMgYWJvdmUsIGJ1dCByZWxl YXNlICphbGwqIHBhcmFsbGVsIHdvcmtlcnMsIHRoYXQgd2VyZSByZXNlcnZlZCBieQorICogY3Vy cmVudCBsZWFkZXIgYXV0b3ZhY3V1bSBwcm9jZXNzLgorICovCit2b2lkCitBdXRvVmFjdXVtUmVs ZWFzZUFsbFBhcmFsbGVsV29ya2Vycyh2b2lkKQoreworCS8qIE9ubHkgbGVhZGVyIHdvcmtlciBj YW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiAqLworCUFzc2VydChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9j ZXNzKCkgJiYgIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisKKwlpZiAoYXZfbndvcmtlcnNfcmVzZXJ2 ZWQgPiAwKQorCQlBdXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2Vycyhhdl9ud29ya2Vyc19y ZXNlcnZlZCk7Cit9CisKIC8qCiAgKiBhdXRvdmFjX2luaXQKICAqCQlUaGlzIGlzIGNhbGxlZCBh dCBwb3N0bWFzdGVyIGluaXRpYWxpemF0aW9uLgpAQCAtMzQyMCw2ICszNTQ0LDEwIEBAIEF1dG9W YWN1dW1TaG1lbUluaXQodm9pZCkKIAkJQXNzZXJ0KCFmb3VuZCk7CiAKIAkJQXV0b1ZhY3V1bVNo bWVtLT5hdl9sYXVuY2hlcnBpZCA9IDA7CisJCUF1dG9WYWN1dW1TaG1lbS0+YXZfbWF4UGFyYWxs ZWxXb3JrZXJzID0KKwkJCU1pbihhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzLCBtYXhf d29ya2VyX3Byb2Nlc3Nlcyk7CisJCUF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29y a2VycyA9CisJCQlBdXRvVmFjdXVtU2htZW0tPmF2X21heFBhcmFsbGVsV29ya2VyczsKIAkJZGNs aXN0X2luaXQoJkF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVdvcmtlcnMpOwogCQlkbGlzdF9pbml0 KCZBdXRvVmFjdXVtU2htZW0tPmF2X3J1bm5pbmdXb3JrZXJzKTsKIAkJQXV0b1ZhY3V1bVNobWVt LT5hdl9zdGFydGluZ1dvcmtlciA9IE5VTEw7CkBAIC0zNTAxLDMgKzM2MjksMzQgQEAgY2hlY2tf YXZfd29ya2VyX2d1Y3Modm9pZCkKIAkJCQkgZXJyZGV0YWlsKCJUaGUgc2VydmVyIHdpbGwgb25s eSBzdGFydCB1cCB0byBcImF1dG92YWN1dW1fd29ya2VyX3Nsb3RzXCIgKCVkKSBhdXRvdmFjdXVt IHdvcmtlcnMgYXQgYSBnaXZlbiB0aW1lLiIsCiAJCQkJCQkgICBhdXRvdmFjdXVtX3dvcmtlcl9z bG90cykpKTsKIH0KKworLyoKKyAqIE1ha2Ugc3VyZSB0aGF0IG51bWJlciBvZiBmcmVlIHBhcmFs bGVsIHdvcmtlcnMgY29ycmVzcG9uZHMgdG8gdGhlCisgKiBhdXRvdmFjdXVtX21heF9wYXJhbGxl bF93b3JrZXJzIHBhcmFtZXRlciAoYWZ0ZXIgaXQgd2FzIGNoYW5nZWQpLgorICovCitzdGF0aWMg dm9pZAorYWRqdXN0X2ZyZWVfcGFyYWxsZWxfd29ya2VycyhpbnQgcHJldl9tYXhfcGFyYWxsZWxf d29ya2VycykKK3sKKwlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19FWENMVVNJVkUp OworCisJLyoKKwkgKiBDYXAgdGhlIG51bWJlciBvZiBmcmVlIHdvcmtlcnMgYnkgbmV3IHBhcmFt ZXRlcidzIHZhbHVlLCBpZiBuZWVkZWQuCisJICovCisJQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVl UGFyYWxsZWxXb3JrZXJzID0KKwkJTWluKEF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVs V29ya2VycywKKwkJCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMpOworCisJaWYgKGF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPiBwcmV2X21heF9wYXJhbGxlbF93b3JrZXJz KQorCXsKKwkJLyoKKwkJICogSWYgdXNlciB3YW50cyB0byBpbmNyZWFzZSBudW1iZXIgb2YgcGFy YWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzLCB3ZQorCQkgKiBtdXN0IGluY3JlYXNlIG51bWJlciBv ZiBmcmVlIHdvcmtlcnMuCisJCSAqLworCQlBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxl bFdvcmtlcnMgKz0KKwkJCShhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIC0gcHJldl9t YXhfcGFyYWxsZWxfd29ya2Vycyk7CisJfQorCisJQXV0b1ZhY3V1bVNobWVtLT5hdl9tYXhQYXJh bGxlbFdvcmtlcnMgPSBhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzOworCisJTFdMb2Nr UmVsZWFzZShBdXRvdmFjdXVtTG9jayk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9pbml0L2dsb2JhbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCmluZGV4 IGQzMWNiNDVhMDU4Li5mZDAwZDZmODlkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9nbG9iYWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKQEAg LTE0Myw2ICsxNDMsNyBAQCBpbnQJCQlOQnVmZmVycyA9IDE2Mzg0OwogaW50CQkJTWF4Q29ubmVj dGlvbnMgPSAxMDA7CiBpbnQJCQltYXhfd29ya2VyX3Byb2Nlc3NlcyA9IDg7CiBpbnQJCQltYXhf cGFyYWxsZWxfd29ya2VycyA9IDg7CitpbnQJCQlhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3Jr ZXJzID0gMDsKIGludAkJCU1heEJhY2tlbmRzID0gMDsKIAogLyogR1VDIHBhcmFtZXRlcnMgZm9y IHZhY3V1bSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKaW5kZXggNjc5ODQ2ZGE0MmMuLmQxZDc5NmExYjE4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTMzMTUsOSArMzMxNSwxMyBAQCBzZXRfY29uZmlnX3dp dGhfaGFuZGxlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbmZpZ19oYW5kbGUgKmhhbmRsZSwKIAkgKgog CSAqIEFsc28gYWxsb3cgbm9ybWFsIHNldHRpbmcgaWYgdGhlIEdVQyBpcyBtYXJrZWQgR1VDX0FM TE9XX0lOX1BBUkFMTEVMLgogCSAqCi0JICogT3RoZXIgY2hhbmdlcyBtaWdodCBuZWVkIHRvIGFm ZmVjdCBvdGhlciB3b3JrZXJzLCBzbyBmb3JiaWQgdGhlbS4KKwkgKiBPdGhlciBjaGFuZ2VzIG1p Z2h0IG5lZWQgdG8gYWZmZWN0IG90aGVyIHdvcmtlcnMsIHNvIGZvcmJpZCB0aGVtLiBOb3RlLAor CSAqIHRoYXQgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIgaXMgYW4gZXhjZXB0aW9uLCBiZWNh dXNlIG9ubHkgY29zdC1iYXNlZAorCSAqIGRlbGF5cyBuZWVkIHRvIGJlIGFmZmVjdGVkIGFsc28g dG8gcGFyYWxsZWwgdmFjdXVtIHdvcmtlcnMsIGFuZCB3ZSB3aWxsCisJICogaGFuZGxlIGl0IGVs c2V3aGVyZSBpZiBhcHByb3ByaWF0ZS4KIAkgKi8KLQlpZiAoSXNJblBhcmFsbGVsTW9kZSgpICYm IGNoYW5nZVZhbCAmJiBhY3Rpb24gIT0gR1VDX0FDVElPTl9TQVZFICYmCisJaWYgKElzSW5QYXJh bGxlbE1vZGUoKSAmJiAhQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIGNoYW5nZVZhbCAm JgorCQlhY3Rpb24gIT0gR1VDX0FDVElPTl9TQVZFICYmCiAJCShyZWNvcmQtPmZsYWdzICYgR1VD X0FMTE9XX0lOX1BBUkFMTEVMKSA9PSAwKQogCXsKIAkJZXJlcG9ydChlbGV2ZWwsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CmluZGV4IGQ2ZmM4MzMzODUwLi41ZmJk YTY2YjNkNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVy cy5kYXQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKQEAg LTIxMjksNiArMjEyOSwxNSBAQAogICBtYXggPT4gJ01BWF9CQUNLRU5EUycsCiB9LAogCit7IG5h bWUgPT4gJ2F1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMnLCB0eXBlID0+ICdpbnQnLCBj b250ZXh0ID0+ICdQR0NfU0lHSFVQJywgZ3JvdXAgPT4gJ1ZBQ1VVTV9BVVRPVkFDVVVNJywKKyAg c2hvcnRfZGVzYyA9PiAnTWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3Jr ZXJzLCB0aGF0IGNhbiBiZSB0YWtlbiBmcm9tIGJnd29ya2VycyBwb29sLicsCisgIGxvbmdfZGVz YyA9PiAnVGhpcyBwYXJhbWV0ZXIgaXMgY2FwcGVkIGJ5ICJtYXhfd29ya2VyX3Byb2Nlc3NlcyIg KG5vdCBieSAiYXV0b3ZhY3V1bV9tYXhfd29ya2VycyIhKS4nLAorICB2YXJpYWJsZSA9PiAnYXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycycsCisgIGJvb3RfdmFsID0+ICcwJywKKyAgbWlu ID0+ICcwJywKKyAgbWF4ID0+ICdNQVhfQkFDS0VORFMnLAorfSwKKwogeyBuYW1lID0+ICdtYXhf cGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VycycsIHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4g J1BHQ19VU0VSU0VUJywgZ3JvdXAgPT4gJ1JFU09VUkNFU19XT1JLRVJfUFJPQ0VTU0VTJywKICAg c2hvcnRfZGVzYyA9PiAnU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgcHJvY2Vz c2VzIHBlciBtYWludGVuYW5jZSBvcGVyYXRpb24uJywKICAgdmFyaWFibGUgPT4gJ21heF9wYXJh bGxlbF9tYWludGVuYW5jZV93b3JrZXJzJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBmNjJiNjE5NjdlZi4uYjNlNDcxZWQzM2UgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTY5MSw2 ICs2OTEsNyBAQAogYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1dW0gd29y a2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQog I2F1dG92YWN1dW1fbWF4X3dvcmtlcnMgPSAzCQkjIG1heCBudW1iZXIgb2YgYXV0b3ZhY3V1bSBz dWJwcm9jZXNzZXMKKyNhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzID0gMAkjIGRpc2Fi bGVkIGJ5IGRlZmF1bHQgYW5kIGxpbWl0ZWQgYnkgbWF4X3dvcmtlcl9wcm9jZXNzZXMKICNhdXRv dmFjdXVtX25hcHRpbWUgPSAxbWluCQkjIHRpbWUgYmV0d2VlbiBhdXRvdmFjdXVtIHJ1bnMKICNh dXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQgPSA1MAkjIG1pbiBudW1iZXIgb2Ygcm93IHVwZGF0 ZXMgYmVmb3JlCiAJCQkJCSMgdmFjdXVtCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggMzZlYTZh NGQ1NTcuLmQ4OWRhNjA2OTIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xNDEyLDYgKzE0 MTIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdGFibGVfc3RvcmFnZV9wYXJhbWV0ZXJz W10gPSB7CiAJImF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIiwKIAkiYXV0b3Zh Y3V1bV9tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UiLAogCSJhdXRvdmFjdXVtX211bHRpeGFjdF9m cmVlemVfdGFibGVfYWdlIiwKKwkiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwKIAkiYXV0 b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSIsCiAJImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGlt aXQiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NhbGVfZmFjdG9yIiwKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKaW5k ZXggMWJlZjk4NDcxYzMuLjg1OTI2NDE1NjU3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNj YWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMTc3LDYgKzE3Nyw3IEBA IGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4QmFja2VuZHM7CiBleHRlcm4gUEdETExJTVBPUlQg aW50IE1heENvbm5lY3Rpb25zOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfd29ya2VyX3By b2Nlc3NlczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtlcnM7Citl eHRlcm4gUEdETExJTVBPUlQgaW50IGF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM7CiAK IGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tbWl0X3RpbWVzdGFtcF9idWZmZXJzOwogZXh0ZXJu IFBHRExMSU1QT1JUIGludCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZlcnM7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0 ZXIvYXV0b3ZhY3V1bS5oCmluZGV4IDAyM2FjNmQ1ZmE4Li5mNGI5M2I0NDUzMSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUv cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgKQEAgLTY1LDYgKzY1LDExIEBAIHBnX25vcmV0dXJuIGV4 dGVybiB2b2lkIEF1dG9WYWNXb3JrZXJNYWluKGNvbnN0IHZvaWQgKnN0YXJ0dXBfZGF0YSwgc2l6 ZV90IHN0YXJ0CiBleHRlcm4gYm9vbCBBdXRvVmFjdXVtUmVxdWVzdFdvcmsoQXV0b1ZhY3V1bVdv cmtJdGVtVHlwZSB0eXBlLAogCQkJCQkJCQkgIE9pZCByZWxhdGlvbklkLCBCbG9ja051bWJlciBi bGtubyk7CiAKKy8qIHBhcmFsbGVsIGF1dG92YWN1dW0gc3R1ZmYgKi8KK2V4dGVybiBpbnQJQXV0 b1ZhY3V1bVJlc2VydmVQYXJhbGxlbFdvcmtlcnMoaW50IG53b3JrZXJzKTsKK2V4dGVybiB2b2lk IEF1dG9WYWN1dW1SZWxlYXNlUGFyYWxsZWxXb3JrZXJzKGludCBud29ya2Vycyk7CitleHRlcm4g dm9pZCBBdXRvVmFjdXVtUmVsZWFzZUFsbFBhcmFsbGVsV29ya2Vycyh2b2lkKTsKKwogLyogc2hh cmVkIG1lbW9yeSBzdHVmZiAqLwogZXh0ZXJuIFNpemUgQXV0b1ZhY3V1bVNobWVtU2l6ZSh2b2lk KTsKIGV4dGVybiB2b2lkIEF1dG9WYWN1dW1TaG1lbUluaXQodm9pZCk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IDgw Mjg2MDc2YTExLi5lODc5ZmRjZmM2OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVs LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTMxMSw2ICszMTEsMTMgQEAgdHlw ZWRlZiBzdHJ1Y3QgRm9yZWlnbktleUNhY2hlSW5mbwogdHlwZWRlZiBzdHJ1Y3QgQXV0b1ZhY09w dHMKIHsKIAlib29sCQllbmFibGVkOworCisJLyoKKwkgKiBNYXggbnVtYmVyIG9mIHBhcmFsbGVs IGF1dG92YWN1dW0gd29ya2Vycy4gSWYgdmFsdWUgaXMgMCB0aGVuIHBhcmFsbGVsCisJICogZGVn cmVlIHdpbGwgY29tcHV0ZWQgYmFzZWQgb24gbnVtYmVyIG9mIGluZGV4ZXMuCisJICovCisJaW50 CQkJYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzOworCiAJaW50CQkJdmFjdXVtX3RocmVzaG9s ZDsKIAlpbnQJCQl2YWN1dW1fbWF4X3RocmVzaG9sZDsKIAlpbnQJCQl2YWN1dW1faW5zX3RocmVz aG9sZDsKLS0gCjIuNDMuMAoK --00000000000091bbac06426fac9e Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0003-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v13-0003-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhek3h7t1 RnJvbSA1MzRlZDUzMGE3ZmQxMWNhZDM0ZjZjMzk2NzhiOTkzNzk3MWI4MGIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBGcmksIDMxIE9jdCAyMDI1IDE0OjQ0OjEyICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTMgMy80XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy90ZXN0L21vZHVs ZXMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVz L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZSAgIHwgICAyICsKIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL01ha2VmaWxlICAgICB8ICAyNiArKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2F1dG92YWN1dW0vbWVzb24uYnVpbGQgIHwgIDM2ICsrKwogLi4uL21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3QvMDAxX2Jhc2ljLnBsICAgIHwgMTY1ICsrKysrKysrKysrKwogLi4uL3Rlc3RfYXV0 b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0tLTEuMC5zcWwgIHwgIDM0ICsrKwogLi4uL21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jIHwgMjU1ICsrKysrKysrKysrKysrKysr KwogLi4uL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uY29udHJvbCAgIHwgICAzICsK IDExIGZpbGVzIGNoYW5nZWQsIDU0NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAw MV9iYXNpYy5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVt LmNvbnRyb2wKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxl bC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCA5YTI1ODIz ODY1MC4uMGNmZGY3OWNiNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpA QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgorI2lu Y2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogCkBAIC03NTIsNiArNzUzLDEzIEBAIHBhcmFs bGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywg aW50IG51bV9pbmRleF9zY2FuCiAJCX0KIAl9CiAKKwkvKgorCSAqIFRvIGJlIGFibGUgdG8gZXhl cmNpc2Ugd2hldGhlciBhbGwgcmVzZXJ2ZWQgcGFyYWxsZWwgd29ya2VycyBhcmUgYmVpbmcKKwkg KiByZWxlYXNlZCBhbnl3YXksIGFsbG93IGluamVjdGlvbiBwb2ludHMgdG8gdHJpZ2dlciBhIGZh aWx1cmUgYXQgdGhpcworCSAqIHBvaW50LgorCSAqLworCUlOSkVDVElPTl9QT0lOVCgiYXV0b3Zh Y3V1bS10cmlnZ2VyLWxlYWRlci1mYWlsdXJlIiwgTlVMTCk7CisKIAkvKiBWYWN1dW0gdGhlIGlu ZGV4ZXMgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IG9ubHkgbGVhZGVyIHByb2Nlc3MgKi8KIAlw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc191bnNhZmVfaW5kZXhlcyhwdnMpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IDk0OTlkNGYwYzEyLi5hNjM1ODIwMDYyOSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTM0MzcsNiArMzQzNywxMyBAQCBBdXRvVmFj dXVtUmVzZXJ2ZVBhcmFsbGVsV29ya2VycyhpbnQgbndvcmtlcnMpCiAJLyogUmVtZW1iZXIgaG93 IG1hbnkgd29ya2VycyB3ZSBoYXZlIHJlc2VydmVkLiAqLwogCWF2X253b3JrZXJzX3Jlc2VydmVk ICs9IG53b3JrZXJzOwogCisJLyoKKwkgKiBJbmplY3Rpb24gcG9pbnQgdG8gaGVscCBleGVyY2lz aW5nIG51bWJlciBvZiBhdmFpbGFibGUgcGFyYWxsZWwKKwkgKiBhdXRvdmFjdXVtIHdvcmtlcnMu CisJICovCisJSU5KRUNUSU9OX1BPSU5UKCJhdXRvdmFjdXVtLXNldC1mcmVlLXBhcmFsbGVsLXdv cmtlcnMtbnVtIiwKKwkJCQkJJkF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2Vy cyk7CisKIAlMV0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2NrKTsKIAlyZXR1cm4gbnJlc2VydmVk OwogfQpAQCAtMzQ2Nyw2ICszNDc0LDEzIEBAIEF1dG9WYWN1dW1SZWxlYXNlUGFyYWxsZWxXb3Jr ZXJzKGludCBud29ya2VycykKIAkvKiBEb24ndCBoYXZlIHRvIHJlbWVtYmVyIHRoZXNlIHdvcmtl cnMgYW55bW9yZS4gKi8KIAlhdl9ud29ya2Vyc19yZXNlcnZlZCAtPSBud29ya2VyczsKIAorCS8q CisJICogSW5qZWN0aW9uIHBvaW50IHRvIGhlbHAgZXhlcmNpc2luZyBudW1iZXIgb2YgYXZhaWxh YmxlIHBhcmFsbGVsCisJICogYXV0b3ZhY3V1bSB3b3JrZXJzLgorCSAqLworCUlOSkVDVElPTl9Q T0lOVCgiYXV0b3ZhY3V1bS1zZXQtZnJlZS1wYXJhbGxlbC13b3JrZXJzLW51bSIsCisJCQkJCSZB dXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnMpOworCiAJTFdMb2NrUmVsZWFz ZShBdXRvdmFjdXVtTG9jayk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvTWFr ZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCmluZGV4IDkwMmE3OTU0MTAxLi5mMDlk MDA2MDI0OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQorKysgYi9zcmMv dGVzdC9tb2R1bGVzL01ha2VmaWxlCkBAIC0xNSw2ICsxNSw3IEBAIFNVQkRJUlMgPSBcCiAJCSAg cGxzYW1wbGUgXAogCQkgIHNwZ2lzdF9uYW1lX29wcyBcCiAJCSAgdGVzdF9haW8gXAorCQkgIHRl c3RfYXV0b3ZhY3V1bSBcCiAJCSAgdGVzdF9iaW5hcnloZWFwIFwKIAkJICB0ZXN0X2JpdG1hcHNl dCBcCiAJCSAgdGVzdF9ibG9vbWZpbHRlciBcCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZAppbmRleCAxNGZjNzYx YzRjZi4uZWU3ZTg1NWRlZjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZApAQCAtMTQsNiArMTQsNyBAQCBz dWJkaXIoJ3Bsc2FtcGxlJykKIHN1YmRpcignc3BnaXN0X25hbWVfb3BzJykKIHN1YmRpcignc3Ns X3Bhc3NwaHJhc2VfY2FsbGJhY2snKQogc3ViZGlyKCd0ZXN0X2FpbycpCitzdWJkaXIoJ3Rlc3Rf YXV0b3ZhY3V1bScpCiBzdWJkaXIoJ3Rlc3RfYmluYXJ5aGVhcCcpCiBzdWJkaXIoJ3Rlc3RfYml0 bWFwc2V0JykKIHN1YmRpcigndGVzdF9ibG9vbWZpbHRlcicpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlIGIvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNzE2ZTE3ZjVhMmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMiBAQAorIyBHZW5lcmF0ZWQg c3ViZGlyZWN0b3JpZXMKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFj dXVtL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Y2Y3 MzQ0YjJhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFj dXVtL01ha2VmaWxlCkBAIC0wLDAgKzEsMjYgQEAKKyMgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1 dG92YWN1dW0vTWFrZWZpbGUKKworUEdGSUxFREVTQyA9ICJ0ZXN0X2F1dG92YWN1dW0gLSB0ZXN0 IGNvZGUgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0iCisKK01PRFVMRV9iaWcgPSB0ZXN0X2F1dG92 YWN1dW0KK09CSlMgPSBcCisJJChXSU4zMlJFUykgXAorCXRlc3RfYXV0b3ZhY3V1bS5vCisKK0VY VEVOU0lPTiA9IHRlc3RfYXV0b3ZhY3V1bQorREFUQSA9IHRlc3RfYXV0b3ZhY3V1bS0tMS4wLnNx bAorCitUQVBfVEVTVFMgPSAxCisKK2V4cG9ydCBlbmFibGVfaW5qZWN0aW9uX3BvaW50cworCitp ZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29uZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQ R19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hTKQorZWxzZQorc3ViZGlyID0gc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0KK3RvcF9idWlsZGRpciA9IC4uLy4uLy4uLy4uCitp bmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9w X3NyY2RpcikvY29udHJpYi9jb250cmliLWdsb2JhbC5taworZW5kaWYKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjM0NDFlNWU0OWNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQKQEAgLTAsMCArMSwzNiBAQAorIyBD b3B5cmlnaHQgKGMpIDIwMjQtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKwordGVzdF9hdXRvdmFjdXVtX3NvdXJjZXMgPSBmaWxlcygKKyAgJ3Rlc3RfYXV0b3ZhY3V1 bS5jJywKKykKKworaWYgaG9zdF9zeXN0ZW0gPT0gJ3dpbmRvd3MnCisgIHRlc3RfYXV0b3ZhY3V1 bV9zb3VyY2VzICs9IHJjX2xpYl9nZW4ucHJvY2Vzcyh3aW4zMnZlcl9yYywgZXh0cmFfYXJnczog WworICAgICctLU5BTUUnLCAndGVzdF9hdXRvdmFjdXVtJywKKyAgICAnLS1GSUxFREVTQycsICd0 ZXN0X2F1dG92YWN1dW0gLSB0ZXN0IGNvZGUgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0nLF0pCitl bmRpZgorCit0ZXN0X2F1dG92YWN1dW0gPSBzaGFyZWRfbW9kdWxlKCd0ZXN0X2F1dG92YWN1dW0n LAorICB0ZXN0X2F1dG92YWN1dW1fc291cmNlcywKKyAga3dhcmdzOiBwZ190ZXN0X21vZF9hcmdz LAorKQordGVzdF9pbnN0YWxsX2xpYnMgKz0gdGVzdF9hdXRvdmFjdXVtCisKK3Rlc3RfaW5zdGFs bF9kYXRhICs9IGZpbGVzKAorICAndGVzdF9hdXRvdmFjdXVtLmNvbnRyb2wnLAorICAndGVzdF9h dXRvdmFjdXVtLS0xLjAuc3FsJywKKykKKwordGVzdHMgKz0geworICAnbmFtZSc6ICd0ZXN0X2F1 dG92YWN1dW0nLAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzog bWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAnZW52JzogeworICAg ICAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50cyc6IGdldF9vcHRpb24oJ2luamVjdGlvbl9wb2lu dHMnKSA/ICd5ZXMnIDogJ25vJywKKyAgICB9LAorICAgICd0ZXN0cyc6IFsKKyAgICAgICd0LzAw MV9iYXNpYy5wbCcsCisgICAgXSwKKyAgfSwKK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2F1dG92YWN1dW0vdC8wMDFfYmFzaWMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjIyZWFhYTdkYTlkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfYmFzaWMucGwKQEAgLTAsMCArMSwxNjUgQEAKK3VzZSB3 YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRwc3Fs X291dDsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUx Jyk7Ciskbm9kZS0+aW5pdDsKKworIyBDb25maWd1cmUgcG9zdGdyZXMsIHNvIGl0IGNhbiBsYXVu Y2ggcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzLCBsb2cgYWxsCisjIGluZm9ybWF0aW9uIHdl IGFyZSBpbnRlcmVzdGVkIGluIGFuZCBhdXRvdmFjdXVtIHdvcmtzIGZyZXF1ZW50bHkKKyRub2Rl LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXF7CisJbWF4X3dvcmtlcl9wcm9jZXNz ZXMgPSAyMAorCW1heF9wYXJhbGxlbF93b3JrZXJzID0gMjAKKwltYXhfcGFyYWxsZWxfbWFpbnRl bmFuY2Vfd29ya2VycyA9IDIwCisJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDEw CisJbG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnMgorCWxvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlv biA9IDAKKwlhdXRvdmFjdXVtX25hcHRpbWUgPSAnMXMnCisJbWluX3BhcmFsbGVsX2luZGV4X3Nj YW5fc2l6ZSA9IDAKKwlzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXM9dGVzdF9hdXRvdmFjdXVtCit9 KTsKKyRub2RlLT5zdGFydDsKKworbXkgJGluZGV4ZXNfbnVtID0gNDsKK215ICRpbml0aWFsX3Jv d3NfbnVtID0gMTBfMDAwOworbXkgJGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9IDI7CisK KyMgQ3JlYXRlIHRhYmxlIHdpdGggc3BlY2lmaWVkIG51bWJlciBvZiBiLXRyZWUgaW5kZXhlcyBv biBpdAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlDUkVBVEUgVEFCTEUgdGVz dF9hdXRvdmFjICgKKwkJaWQgU0VSSUFMIFBSSU1BUlkgS0VZLAorCQljb2xfMSBJTlRFR0VSLCAg Y29sXzIgSU5URUdFUiwgIGNvbF8zIElOVEVHRVIsICBjb2xfNCBJTlRFR0VSCisJKSBXSVRIIChh dXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAkYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJz LAorCQkJYXV0b3ZhY3V1bV9lbmFibGVkID0gZmFsc2UpOworCisJRE8gXCRcJAorCURFQ0xBUkUK KwkJaSBJTlRFR0VSOworCUJFR0lOCisJCUZPUiBpIElOIDEuLiRpbmRleGVzX251bSBMT09QCisJ CQlFWEVDVVRFIGZvcm1hdCgnQ1JFQVRFIElOREVYIGlkeF9jb2xfXCVzIE9OIHRlc3RfYXV0b3Zh YyAoY29sX1wlcyk7JywgaSwgaSk7CisJCUVORCBMT09QOworCUVORCBcJFwkOworfSk7CisKKyMg SW5zZXJ0IHNwZWNpZmllZCB0dXBsZXMgbnVtIGludG8gdGhlIHRhYmxlCiskbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHFxeworCURPIFwkXCQKKwlERUNMQVJFCisJCWkgSU5URUdFUjsKKwlC RUdJTgorCQlGT1IgaSBJTiAxLi4kaW5pdGlhbF9yb3dzX251bSBMT09QCisJCQlJTlNFUlQgSU5U TyB0ZXN0X2F1dG92YWMgVkFMVUVTIChpLCBpICsgMSwgaSArIDIsIGkgKyAzKTsKKwkJRU5EIExP T1A7CisJRU5EIFwkXCQ7Cit9KTsKKworIyBOb3csIGNyZWF0ZSBzb21lIGRlYWQgdHVwbGVzIGFu ZCByZWZyZXNoIHRhYmxlIHN0YXRpc3RpY3MKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7CisJVVBEQVRFIHRlc3RfYXV0b3ZhYyBTRVQgY29sXzEgPSAwIFdIRVJFIChjb2xfMSAlIDMp ID0gMDsKKwlBTkFMWVpFIHRlc3RfYXV0b3ZhYzsKK30pOworCisjIENyZWF0ZSBhbGwgZnVuY3Rp b25zIG5lZWRlZCBmb3IgdGVzdGluZworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsK KwlDUkVBVEUgRVhURU5TSU9OIHRlc3RfYXV0b3ZhY3V1bTsKKwlTRUxFQ1QgaW5qX3NldF9mcmVl X3dvcmtlcnNfYXR0YWNoKCk7CisJU0VMRUNUIGlual9sZWFkZXJfZmFpbHVyZV9hdHRhY2goKTsK K30pOworCisjIFRlc3QgMSA6CisjIE91ciB0YWJsZSBoYXMgZW5vdWdoIGluZGV4ZXMgYW5kIGFw cHJvcHJpYXRlIHJlbG9wdGlvbnMsIHNvIGF1dG92YWN1dW0gbXVzdAorIyBiZSBhYmxlIHRvIHBy b2Nlc3MgaXQgaW4gcGFyYWxsZWwgbW9kZS4gSnVzdCBjaGVjayBpZiBpdCBjYW4uCisjIEFsc28g Y2hlY2sgd2hldGhlciBhbGwgcmVxdWVzdGVkIHdvcmtlcnM6CisjIAkxKSBsYXVuY2hlZAorIyAJ MikgY29ycmVjdGx5IHJlbGVhc2VkCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7 CisJQUxURVIgVEFCTEUgdGVzdF9hdXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gdHJ1 ZSk7Cit9KTsKKworIyBXYWl0IHVudGlsIHRoZSBwYXJhbGxlbCBhdXRvdmFjdXVtIG9uIHRhYmxl IGlzIGNvbXBsZXRlZC4gQXQgdGhlIHNhbWUgdGltZSwKKyMgd2UgY2hlY2sgdGhhdCB0aGUgcmVx dWlyZWQgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gc3RhcnRlZC4KKyRub2Rl LT53YWl0X2Zvcl9sb2cocXIvd29ya2VycyB1c2FnZSBzdGF0aXN0aWNzIGZvciBhbGwgb2YgaW5k ZXggc2NhbnMgOiAvIC4KKwkJCQkJcXIvbGF1bmNoZWQgaW4gdG90YWwgPSAyLCBwbGFubmVkIGlu IHRvdGFsID0gMi8pOworCiskbm9kZS0+cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgZ2V0X3Bh cmFsbGVsX2F1dG92YWN1dW1fZnJlZV93b3JrZXJzKCk7IiwKKwlzdGRvdXQgPT4gXCRwc3FsX291 dCwKKyk7CitpcygkcHNxbF9vdXQsIDEwLCAnQWxsIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4g cmVsZWFzZWQgYnkgdGhlIGxlYWRlcicpOworCisjIERpc2FibGUgYXV0b3ZhY3V1bSBvbiB0YWJs ZSBkdXJpbmcgcHJlcGFyYXRpb24gZm9yIHRoZSBuZXh0IHRlc3QKKyRub2RlLT5hcHBlbmRfY29u ZigncG9zdGdyZXNxbC5jb25mJywgcXF7CisJQUxURVIgVEFCTEUgdGVzdF9hdXRvdmFjIFNFVCAo YXV0b3ZhY3V1bV9lbmFibGVkID0gZmFsc2UpOworfSk7CisKKyMgQ3JlYXRlIG1vcmUgZGVhZCB0 dXBsZXMKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJVVBEQVRFIHRlc3RfYXV0 b3ZhYyBTRVQgY29sXzIgPSAwIFdIRVJFIChjb2xfMiAlIDMpID0gMDsKKwlBTkFMWVpFIHRlc3Rf YXV0b3ZhYzsKK30pOworCisjIFRlc3QgMjoKKyMgV2Ugd2FudCBwYXJhbGxlbCBhdXRvdmFjdXVt IHdvcmtlcnMgdG8gYmUgcmVsZWFzZWQgZXZlbiBpZiBsZWFkZXIgZ2V0cyBhbgorIyBlcnJvci4g QXQgZmlyc3QsIHNpbXVsYXRlIHNpdHVhdGlvbiwgd2hlbiBsZWFkZXIgZXhpdGVzIGR1ZSB0byBh biBFUlJPUi4KKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcSgKKwlTRUxFQ1QgdHJp Z2dlcl9sZWFkZXJfZmFpbHVyZSgnRVJST1InKTsKKykpOworCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1f ZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyRub2RlLT53YWl0X2Zvcl9sb2cocXIvZXJyb3IsIHRy aWdnZXJlZCBieSBpbmplY3Rpb24gcG9pbnQvKTsKKworJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2VycygpOyIsCisJc3Rk b3V0ID0+IFwkcHNxbF9vdXQsCispOworaXMoJHBzcWxfb3V0LCAxMCwKKyAgICdBbGwgcGFyYWxs ZWwgd29ya2VycyBoYXMgYmVlbiByZWxlYXNlZCBieSB0aGUgbGVhZGVyIGFmdGVyIEVSUk9SJyk7 CisKKyMgRGlzYWJsZSBhdXRvdmFjdXVtIG9uIHRhYmxlIGR1cmluZyBwcmVwYXJhdGlvbiBmb3Ig dGhlIG5leHQgdGVzdAorJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxcXsK KwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxz ZSk7Cit9KTsKKworIyBDcmVhdGUgbW9yZSBkZWFkIHR1cGxlcworJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxcXsKKwlVUERBVEUgdGVzdF9hdXRvdmFjIFNFVCBjb2xfMyA9IDAgV0hFUkUg KGNvbF8zICUgMykgPSAwOworCUFOQUxZWkUgdGVzdF9hdXRvdmFjOworfSk7CisKKyMgVGVzdCAz OgorIyBTYW1lIGFzIFRlc3QgMiwgYnV0IHNpbXVsYXRlIHNpdHVhdGlvbiwgd2hlbiBsZWFkZXIg ZXhpdGVzIGR1ZSB0byBGQVRBTC4KKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcSgK KwlTRUxFQ1QgdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZSgnRkFUQUwnKTsKKykpOworCiskbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQg KGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyRub2RlLT53YWl0X2Zvcl9sb2co cXIvZmF0YWwsIHRyaWdnZXJlZCBieSBpbmplY3Rpb24gcG9pbnQvKTsKKworJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywKKwkiU0VMRUNUIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2Vy cygpOyIsCisJc3Rkb3V0ID0+IFwkcHNxbF9vdXQsCispOworaXMoJHBzcWxfb3V0LCAxMCwKKyAg ICdBbGwgcGFyYWxsZWwgd29ya2VycyBoYXMgYmVlbiByZWxlYXNlZCBieSB0aGUgbGVhZGVyIGFm dGVyIEZBVEFMJyk7CisKKyMgQ2xlYW51cAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cXsKKwlTRUxFQ1QgaW5qX3NldF9mcmVlX3dvcmtlcnNfZGV0YWNoKCk7CisJU0VMRUNUIGlual9s ZWFkZXJfZmFpbHVyZV9kZXRhY2goKTsKK30pOworCiskbm9kZS0+c3RvcDsKK2RvbmVfdGVzdGlu ZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9h dXRvdmFjdXVtLS0xLjAuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVz dF9hdXRvdmFjdXVtLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4wMTdkNWRhODVlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbApAQCAtMCwwICsxLDM0IEBACisv KiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0tLTEuMC5z cWwgKi8KKworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNxbCwgcmF0aGVy IHRoYW4gdmlhIENSRUFURSBFWFRFTlNJT04KK1xlY2hvIFVzZSAiQ1JFQVRFIEVYVEVOU0lPTiB0 ZXN0X2F1dG92YWN1dW0iIHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCisvKgorICogRnVuY3Rp b25zIGZvciBleHBlY3Rpbmcgb3IgdG8gaW50ZXJmZXJlIGF1dG92YWN1dW0gc3RhdGUKKyAqLwor Q1JFQVRFIEZVTkNUSU9OIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2VycygpCitS RVRVUk5TIElOVEVHRVIgU1RSSUNUCitBUyAnTU9EVUxFX1BBVEhOQU1FJyBMQU5HVUFHRSBDOwor CitDUkVBVEUgRlVOQ1RJT04gdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZShmYWlsdXJlX3R5cGUgdGV4 dCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7 CisKKy8qCisgKiBJbmplY3Rpb24gcG9pbnQgcmVsYXRlZCBmdW5jdGlvbnMKKyAqLworQ1JFQVRF IEZVTkNUSU9OIGlual9zZXRfZnJlZV93b3JrZXJzX2F0dGFjaCgpCitSRVRVUk5TIFZPSUQgU1RS SUNUCitBUyAnTU9EVUxFX1BBVEhOQU1FJyBMQU5HVUFHRSBDOworCitDUkVBVEUgRlVOQ1RJT04g aW5qX3NldF9mcmVlX3dvcmtlcnNfZGV0YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdN T0RVTEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBpbmpfbGVhZGVy X2ZhaWx1cmVfYXR0YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5B TUUnIExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBpbmpfbGVhZGVyX2ZhaWx1cmVfZGV0 YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUnIExBTkdVQUdF IEM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1 dG92YWN1dW0uYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3Zh Y3V1bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzk3OWM0MDVi ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rl c3RfYXV0b3ZhY3V1bS5jCkBAIC0wLDAgKzEsMjU1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiB0ZXN0X2F1dG92YWN1dW0uYworICoJCUhlbHBlcnMgdG8gd3JpdGUgdGVzdHMgZm9yIHBh cmFsbGVsIGF1dG92YWN1dW0KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyNSwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJ ICBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uYworICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5j bHVkZSAiZm1nci5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBvc3RtYXN0 ZXIvYXV0b3ZhY3V1bS5oIgorI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNsdWRlICJz dG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbHdsb2NrLmgiCisjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIKKworUEdf TU9EVUxFX01BR0lDOworCit0eXBlZGVmIGVudW0gQVZMZWFkZXJGYXVsdXJlVHlwZQoreworCUZB SUxfTk9ORSwKKwlGQUlMX0VSUk9SLAorCUZBSUxfRkFUQUwsCit9CQlBVkxlYWRlckZhdWx1cmVU eXBlOworCit0eXBlZGVmIHN0cnVjdCBJbmpQb2ludFN0YXRlCit7CisJYm9vbAkJCQllbmFibGVk X3NldF9mcmVlX3dvcmtlcnM7CisJdWludDMyCQkJCWZyZWVfcGFyYWxsZWxfd29ya2VyczsKKwor CWJvb2wJCQkJZW5hYmxlZF9sZWFkZXJfZmFpbHVyZTsKKwlBVkxlYWRlckZhdWx1cmVUeXBlIGZ0 eXBlOworfQkJSW5qUG9pbnRTdGF0ZTsKKworc3RhdGljIElualBvaW50U3RhdGUgKmlual9wb2lu dF9zdGF0ZTsKKworLyogU2hhcmVkIG1lbW9yeSBpbml0IGNhbGxiYWNrcyAqLworc3RhdGljIHNo bWVtX3JlcXVlc3RfaG9va190eXBlIHByZXZfc2htZW1fcmVxdWVzdF9ob29rID0gTlVMTDsKK3N0 YXRpYyBzaG1lbV9zdGFydHVwX2hvb2tfdHlwZSBwcmV2X3NobWVtX3N0YXJ0dXBfaG9vayA9IE5V TEw7CisKK3N0YXRpYyB2b2lkCit0ZXN0X2F1dG92YWN1dW1fc2htZW1fcmVxdWVzdCh2b2lkKQor eworCWlmIChwcmV2X3NobWVtX3JlcXVlc3RfaG9vaykKKwkJcHJldl9zaG1lbV9yZXF1ZXN0X2hv b2soKTsKKworCVJlcXVlc3RBZGRpblNobWVtU3BhY2Uoc2l6ZW9mKElualBvaW50U3RhdGUpKTsK K30KKworc3RhdGljIHZvaWQKK3Rlc3RfYXV0b3ZhY3V1bV9zaG1lbV9zdGFydHVwKHZvaWQpCit7 CisJYm9vbAkJZm91bmQ7CisKKwlpZiAocHJldl9zaG1lbV9zdGFydHVwX2hvb2spCisJCXByZXZf c2htZW1fc3RhcnR1cF9ob29rKCk7CisKKwkvKiBDcmVhdGUgb3IgYXR0YWNoIHRvIHRoZSBzaGFy ZWQgbWVtb3J5IHN0YXRlICovCisJTFdMb2NrQWNxdWlyZShBZGRpblNobWVtSW5pdExvY2ssIExX X0VYQ0xVU0lWRSk7CisKKwlpbmpfcG9pbnRfc3RhdGUgPSBTaG1lbUluaXRTdHJ1Y3QoImluamVj dGlvbl9wb2ludHMiLAorCQkJCQkJCQkJICBzaXplb2YoSW5qUG9pbnRTdGF0ZSksCisJCQkJCQkJ CQkgICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJLyogRmlyc3QgdGltZSB0aHJvdWdo LCBpbml0aWFsaXplICovCisJCWlual9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9sZWFkZXJfZmFpbHVy ZSA9IGZhbHNlOworCQlpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfc2V0X2ZyZWVfd29ya2VycyA9 IGZhbHNlOworCQlpbmpfcG9pbnRfc3RhdGUtPmZ0eXBlID0gRkFJTF9OT05FOworCisJCS8qIEtl ZXAgaXQgaW4gc3luYyB3aXRoIEF1dG9WYWN1dW1TaG1lbUluaXQgKi8KKwkJaW5qX3BvaW50X3N0 YXRlLT5mcmVlX3BhcmFsbGVsX3dvcmtlcnMgPQorCQkJTWluKGF1dG92YWN1dW1fbWF4X3BhcmFs bGVsX3dvcmtlcnMsIG1heF93b3JrZXJfcHJvY2Vzc2VzKTsKKworCQlJbmplY3Rpb25Qb2ludEF0 dGFjaCgiYXV0b3ZhY3V1bS1zZXQtZnJlZS1wYXJhbGxlbC13b3JrZXJzLW51bSIsCisJCQkJCQkJ ICJ0ZXN0X2F1dG92YWN1dW0iLAorCQkJCQkJCSAiaW5qX3NldF9mcmVlX3dvcmtlcnMiLAorCQkJ CQkJCSBOVUxMLAorCQkJCQkJCSAwKTsKKworCQlJbmplY3Rpb25Qb2ludEF0dGFjaCgiYXV0b3Zh Y3V1bS10cmlnZ2VyLWxlYWRlci1mYWlsdXJlIiwKKwkJCQkJCQkgInRlc3RfYXV0b3ZhY3V1bSIs CisJCQkJCQkJICJpbmpfdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZSIsCisJCQkJCQkJIE5VTEwsCisJ CQkJCQkJIDApOworCX0KKworCUxXTG9ja1JlbGVhc2UoQWRkaW5TaG1lbUluaXRMb2NrKTsKK30K Kwordm9pZAorX1BHX2luaXQodm9pZCkKK3sKKwlpZiAoIXByb2Nlc3Nfc2hhcmVkX3ByZWxvYWRf bGlicmFyaWVzX2luX3Byb2dyZXNzKQorCQlyZXR1cm47CisKKwlwcmV2X3NobWVtX3JlcXVlc3Rf aG9vayA9IHNobWVtX3JlcXVlc3RfaG9vazsKKwlzaG1lbV9yZXF1ZXN0X2hvb2sgPSB0ZXN0X2F1 dG92YWN1dW1fc2htZW1fcmVxdWVzdDsKKwlwcmV2X3NobWVtX3N0YXJ0dXBfaG9vayA9IHNobWVt X3N0YXJ0dXBfaG9vazsKKwlzaG1lbV9zdGFydHVwX2hvb2sgPSB0ZXN0X2F1dG92YWN1dW1fc2ht ZW1fc3RhcnR1cDsKK30KKworZXh0ZXJuIFBHRExMRVhQT1JUIHZvaWQgaW5qX3NldF9mcmVlX3dv cmtlcnMoY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJCQkJCQkJIGNvbnN0IHZvaWQgKnByaXZhdGVf ZGF0YSwKKwkJCQkJCQkJCQkJIHZvaWQgKmFyZyk7CitleHRlcm4gUEdETExFWFBPUlQgdm9pZCBp bmpfdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZShjb25zdCBjaGFyICpuYW1lLAorCQkJCQkJCQkJCQkJ ICAgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLAorCQkJCQkJCQkJCQkJICAgdm9pZCAqYXJnKTsK KworLyoKKyAqIFNldCBudW1iZXIgb2YgY3VycmVudGx5IGF2YWlsYWJsZSBwYXJhbGxlbCBhL3Yg d29ya2Vycy4gVGhpcyB2YWx1ZSBtYXkKKyAqIGNoYW5nZSBhZnRlciByZXNlcnZpbmcgb3IgcmVs ZWFzaW5nIHN1Y2ggd29ya2Vycy4KKyAqCisgKiBGdW5jdGlvbiBjYWxsZWQgZnJvbSBwYXJhbGxl bCBhdXRvdmFjdXVtIGxlYWRlci4KKyAqLwordm9pZAoraW5qX3NldF9mcmVlX3dvcmtlcnMoY29u c3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLCB2b2lkICphcmcpCit7CisJ ZXJlcG9ydChMT0csCisJCQllcnJtc2coInNldCBwYXJhbGxlbCB3b3JrZXJzIGluamVjdGlvbiBw b2ludCBjYWxsZWQiKSwKKwkJCWVycmhpZGVzdG10KHRydWUpLCBlcnJoaWRlY29udGV4dCh0cnVl KSk7CisKKwlpZiAoaW5qX3BvaW50X3N0YXRlLT5lbmFibGVkX3NldF9mcmVlX3dvcmtlcnMpCisJ eworCQlBc3NlcnQoYXJnICE9IE5VTEwpOworCQlpbmpfcG9pbnRfc3RhdGUtPmZyZWVfcGFyYWxs ZWxfd29ya2VycyA9ICoodWludDMyICopIGFyZzsKKwl9Cit9CisKKy8qCisgKiBUaHJvdyBhbiBF UlJPUiBvciBGQVRBTCwgaWYgc29tZWJvZHkgcmVxdWVzdGVkIGl0LgorICoKKyAqIEZ1bmN0aW9u IGNhbGxlZCBmcm9tIHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyLgorICovCit2b2lkCitpbmpf dHJpZ2dlcl9sZWFkZXJfZmFpbHVyZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lkICpwcml2 YXRlX2RhdGEsCisJCQkJCQkgICB2b2lkICphcmcpCit7CisJaW50CQllbGV2ZWw7CisJY2hhcgkq ZWxldmVsX3N0cjsKKworCWVyZXBvcnQoTE9HLAorCQkJZXJybXNnKCJ0cmlnZ2VyIGxlYWRlciBm YWlsdXJlIGluamVjdGlvbiBwb2ludCBjYWxsZWQiKSwKKwkJCWVycmhpZGVzdG10KHRydWUpLCBl cnJoaWRlY29udGV4dCh0cnVlKSk7CisKKwlpZiAoaW5qX3BvaW50X3N0YXRlLT5mdHlwZSA9PSBG QUlMX05PTkUgfHwKKwkJIWlual9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9sZWFkZXJfZmFpbHVyZSkK Kwl7CisJCXJldHVybjsKKwl9CisKKwllbGV2ZWwgPSBpbmpfcG9pbnRfc3RhdGUtPmZ0eXBlID09 IEZBSUxfRVJST1IgPyBFUlJPUiA6IEZBVEFMOworCWVsZXZlbF9zdHIgPSBlbGV2ZWwgPT0gRVJS T1IgPyAiZXJyb3IiIDogImZhdGFsIjsKKworCWVyZXBvcnQoZWxldmVsLCBlcnJtc2coIiVzLCB0 cmlnZ2VyZWQgYnkgaW5qZWN0aW9uIHBvaW50IiwgZWxldmVsX3N0cikpOworfQorCitQR19GVU5D VElPTl9JTkZPX1YxKGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2Vycyk7CitEYXR1 bQorZ2V0X3BhcmFsbGVsX2F1dG92YWN1dW1fZnJlZV93b3JrZXJzKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJdWludDMyCW53b3JrZXJzOworCisjaWZuZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJ ZWxvZyhFUlJPUiwgImluamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCIpOworI2VuZGlmCisK KwlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19FWENMVVNJVkUpOworCW53b3JrZXJz ID0gaW5qX3BvaW50X3N0YXRlLT5mcmVlX3BhcmFsbGVsX3dvcmtlcnM7CisJTFdMb2NrUmVsZWFz ZShBdXRvdmFjdXVtTG9jayk7CisKKwlQR19SRVRVUk5fVUlOVDMyKG53b3JrZXJzKTsKK30KKwor UEdfRlVOQ1RJT05fSU5GT19WMSh0cmlnZ2VyX2xlYWRlcl9mYWlsdXJlKTsKK0RhdHVtCit0cmln Z2VyX2xlYWRlcl9mYWlsdXJlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJY29uc3QgY2hhciAqZmFp bHVyZV90eXBlID0gdGV4dF90b19jc3RyaW5nKFBHX0dFVEFSR19URVhUX1BQKDApKTsKKworI2lm bmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCWVsb2coRVJST1IsICJpbmplY3Rpb24gcG9pbnRz IG5vdCBzdXBwb3J0ZWQiKTsKKyNlbmRpZgorCisJaWYgKHN0cmNtcChmYWlsdXJlX3R5cGUsICJO T05FIikgPT0gMCkKKwkJaW5qX3BvaW50X3N0YXRlLT5mdHlwZSA9IEZBSUxfTk9ORTsKKwllbHNl IGlmIChzdHJjbXAoZmFpbHVyZV90eXBlLCAiRVJST1IiKSA9PSAwKQorCQlpbmpfcG9pbnRfc3Rh dGUtPmZ0eXBlID0gRkFJTF9FUlJPUjsKKwllbHNlIGlmIChzdHJjbXAoZmFpbHVyZV90eXBlLCAi RkFUQUwiKSA9PSAwKQorCQlpbmpfcG9pbnRfc3RhdGUtPmZ0eXBlID0gRkFJTF9GQVRBTDsKKwll bHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygiaW52YWxpZCBsZWFkZXIgZmFpbHVyZSB0eXBlIDog JXMiLCBmYWlsdXJlX3R5cGUpKSk7CisKKwlQR19SRVRVUk5fVk9JRCgpOworfQorCitQR19GVU5D VElPTl9JTkZPX1YxKGlual9zZXRfZnJlZV93b3JrZXJzX2F0dGFjaCk7CitEYXR1bQoraW5qX3Nl dF9mcmVlX3dvcmtlcnNfYXR0YWNoKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjaWZkZWYgVVNFX0lO SkVDVElPTl9QT0lOVFMKKwlpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfc2V0X2ZyZWVfd29ya2Vy cyA9IHRydWU7CisJaW5qX3BvaW50X3N0YXRlLT5mdHlwZSA9IEZBSUxfTk9ORTsKKyNlbHNlCisJ ZWxvZyhFUlJPUiwgImluamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCIpOworI2VuZGlmCisJ UEdfUkVUVVJOX1ZPSUQoKTsKK30KKworUEdfRlVOQ1RJT05fSU5GT19WMShpbmpfc2V0X2ZyZWVf d29ya2Vyc19kZXRhY2gpOworRGF0dW0KK2lual9zZXRfZnJlZV93b3JrZXJzX2RldGFjaChQR19G VU5DVElPTl9BUkdTKQoreworI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJaW5qX3BvaW50 X3N0YXRlLT5lbmFibGVkX3NldF9mcmVlX3dvcmtlcnMgPSBmYWxzZTsKKyNlbHNlCisJZWxvZyhF UlJPUiwgImluamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCIpOworI2VuZGlmCisJUEdfUkVU VVJOX1ZPSUQoKTsKK30KKworUEdfRlVOQ1RJT05fSU5GT19WMShpbmpfbGVhZGVyX2ZhaWx1cmVf YXR0YWNoKTsKK0RhdHVtCitpbmpfbGVhZGVyX2ZhaWx1cmVfYXR0YWNoKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisjaWZkZWYgVVNFX0lOSkVDVElPTl9QT0lOVFMKKwlpbmpfcG9pbnRfc3RhdGUtPmVu YWJsZWRfbGVhZGVyX2ZhaWx1cmUgPSB0cnVlOworI2Vsc2UKKwllbG9nKEVSUk9SLCAiaW5qZWN0 aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7CisjZW5kaWYKKwlQR19SRVRVUk5fVk9JRCgpOwor fQorCitQR19GVU5DVElPTl9JTkZPX1YxKGlual9sZWFkZXJfZmFpbHVyZV9kZXRhY2gpOworRGF0 dW0KK2lual9sZWFkZXJfZmFpbHVyZV9kZXRhY2goUEdfRlVOQ1RJT05fQVJHUykKK3sKKyNpZmRl ZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCWlual9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9sZWFkZXJf ZmFpbHVyZSA9IGZhbHNlOworI2Vsc2UKKwllbG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBu b3Qgc3VwcG9ydGVkIik7CisjZW5kaWYKKwlQR19SRVRVUk5fVk9JRCgpOworfQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmNvbnRy b2wgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uY29u dHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWI3ZmFkMjU4ZjAK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0 X2F1dG92YWN1dW0uY29udHJvbApAQCAtMCwwICsxLDMgQEAKK2NvbW1lbnQgPSAnVGVzdCBjb2Rl IGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtJworZGVmYXVsdF92ZXJzaW9uID0gJzEuMCcKK21vZHVs ZV9wYXRobmFtZSA9ICckbGliZGlyL3Rlc3RfYXV0b3ZhY3V1bScKLS0gCjIuNDMuMAoK --00000000000091bbac06426fac9e--