Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pGf0T-00077s-Pm for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Jan 2023 11:47:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pGf0S-0002VG-D1 for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Jan 2023 11:47:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pGf0R-0002V7-V3 for pgsql-hackers@lists.postgresql.org; Sat, 14 Jan 2023 11:47:28 +0000 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pGf0Q-0004gw-6J for pgsql-hackers@lists.postgresql.org; Sat, 14 Jan 2023 11:47:27 +0000 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-12c8312131fso24950153fac.4 for ; Sat, 14 Jan 2023 03:47:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wO6MelBEIp6O3nc5OegWFsMLTUBxLG2xaidjQtpNpW0=; b=fwcr0K1uBPkziFZy2rEMygBk5iVISMwvxlsrO3OVGZ8RLOMurK9npazGEK9VAommfy WUbUaiGFiXu7OLXBiW7IuSRHnUEEao/IITL0+iP+ajzE+n7wJqAGv/P4IDq8cAyibItO Dx65AEeupp2cttPlH4gBiP1gzRn9e0qLI1RetYSkhOGmwp+e1GZ8Sme0OD7N8f9/L8DP R7RFXxachdyBaXfueNgMEa1Zpo/pC8k55NAevhhNc5wTzi9qPFTATTeqDYxHoNuVTumG Tnf6Slgj8W+1KOYneNJzXxPDeWIiPHP9mNaDPMezmg/FOdqO0JB0AoMALcfSIj9BzlIV 6ycw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=wO6MelBEIp6O3nc5OegWFsMLTUBxLG2xaidjQtpNpW0=; b=s/wJYTmGJ7I3V8U+mWJk7pHI9lCtjvJHpGMcHnV2AUZRR75uO21PINWNemn7Pi1F/l FSWeP8XYKDfb0zpf52N20QzQyMFKCIaU/mE32Ekd0J8VJ/EStX7SQpf33bBRTSEGoI20 1ON4Vabql/O+oD/CQR2beKFzdIe4cZnyd+Uikd6UPlmxMH+seL3MWtPx9+zXQQEI/tya U90jcX+zCMDTlV02ua2NqTxOqgdz3UzQzvm6dX4x6VEOGoGyfDPkbsavfj91XENYJt0n f3nIUaSJX3m9m4SEVoyCAW30J2IVbJYzVjG7O6XNAFToaANd2gEMO6rg9rZNUF3azLdI o6Iw== X-Gm-Message-State: AFqh2kogRwTlRdnKK43ZziVu+kC9aitpaiwTDhcRVOkGUVYEBlI+NjJ9 RpItSbh8wrF8sNAMe8JFUBhe4sVjAlUi9fT7HjY= X-Google-Smtp-Source: AMrXdXv8CjqhrFrFo4vdVAe2ibcdwTRDoYqYKMhRpCXzg9o6+erhOXEpjYSsuaafeBZACyafzM8XX1tZjoIi47kaA6w= X-Received: by 2002:a05:6871:8a3:b0:144:c77a:1467 with SMTP id r35-20020a05687108a300b00144c77a1467mr7045529oaq.272.1673696843858; Sat, 14 Jan 2023 03:47:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Amit Kapila Date: Sat, 14 Jan 2023 17:17:11 +0530 Message-ID: Subject: Re: Perform streaming logical transactions by background workers and parallel apply To: "houzj.fnst@fujitsu.com" Cc: Masahiko Sawada , shveta malik , Peter Smith , "wangw.fnst@fujitsu.com" , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers , Dilip Kumar Content-Type: multipart/mixed; boundary="000000000000d7415d05f237e995" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d7415d05f237e995 Content-Type: text/plain; charset="UTF-8" On Fri, Jan 13, 2023 at 3:44 PM houzj.fnst@fujitsu.com wrote: > > On Friday, January 13, 2023 1:43 PM Masahiko Sawada wrote: > > On Thu, Jan 12, 2023 at 9:34 PM houzj.fnst@fujitsu.com > > wrote: In GetLogicalLeaderApplyWorker(), we can use shared lock instead exclusive as we are just reading the workers array. Also, the function name looks a bit odd to me, so I changed it to GetLeaderApplyWorkerPid(). Also, it is better to use InvalidPid instead of 0 when there is no valid value for leader_pid in GetLeaderApplyWorkerPid(). Apart from that, I have made minor changes in the comments, docs, and commit message. I am planning to push this next week by Tuesday unless you or others have any major comments. -- With Regards, Amit Kapila. --000000000000d7415d05f237e995 Content-Type: application/octet-stream; name="v81-0001-Display-the-leader-apply-worker-s-PID-for-parall.patch" Content-Disposition: attachment; filename="v81-0001-Display-the-leader-apply-worker-s-PID-for-parall.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lcvvuojg0 RnJvbSBiOWI2NjRhYzE2N2Q0Zjk2YWE3NWFiMmY5ZDJlOWZjZTY2ZWZlOTQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiaG91emouZm5zdCIgPGhvdXpqLmZuc3RAY24uZnVqaXRzdS5j b20+CkRhdGU6IFRodSwgNiBPY3QgMjAyMiAxNDo0MjoyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0gg djgxXSBEaXNwbGF5IHRoZSBsZWFkZXIgYXBwbHkgd29ya2VyJ3MgUElEIGZvciBwYXJhbGxlbCBh cHBseQogd29ya2Vycy4KCkFkZCBsZWFkZXJfcGlkIHRvIHBnX3N0YXRfc3Vic2NyaXB0aW9uLiBs ZWFkZXJfcGlkIGlzIHRoZSBwcm9jZXNzIElEIG9mCnRoZSBsZWFkZXIgYXBwbHkgd29ya2VyIGlm IHRoaXMgcHJvY2VzcyBpcyBhIHBhcmFsbGVsIGFwcGx5IHdvcmtlci4gSWYKdGhpcyBmaWVsZCBp cyBOVUxMLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcHJvY2VzcyBpcyBhIGxlYWRlciBhcHBseQp3 b3JrZXIgb3IgYSBzeW5jaHJvbml6YXRpb24gd29ya2VyLiBUaGUgbmV3IGNvbHVtbiBtYWtlcyBp dCBlYXNpZXIgdG8KZGlzdGluZ3Vpc2ggcGFyYWxsZWwgYXBwbHkgd29ya2VycyBmcm9tIG90aGVy IGtpbmRzIG9mIHdvcmtlcnMgYW5kIGhlbHBzCnRvIGlkZW50aWZ5IHRoZSBsZWFkZXIgZm9yIHRo ZSBwYXJhbGxlbCB3b3JrZXJzIGNvcnJlc3BvbmRpbmcgdG8gYQpwYXJ0aWN1bGFyIHN1YnNjcmlw dGlvbi4KCkFkZGl0aW9uYWxseSwgdXBkYXRlIHRoZSBsZWFkZXJfcGlkIGNvbHVtbiBpbiBwZ19z dGF0X2FjdGl2aXR5IGFzIHdlbGwgdG8KZGlzcGxheSB0aGUgUElEIG9mIHRoZSBsZWFkZXIgYXBw bHkgd29ya2VyIGZvciBwYXJhbGxlbCBhcHBseSB3b3JrZXJzLgoKQXV0aG9yOiBIb3UgWmhpamll ClJldmlld2VkLWJ5OiBQZXRlciBTbWl0aCwgU2F3YWRhIE1hc2FoaWtvLCBBbWl0IEthcGlsYQpE aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQTRlSzErd3lONnpwYUhVa0NMb3JFV054 NzVNRzB4aE13Y0ZodmpxbTJLVVJaRUFHd0BtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dt bC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgICAgICAgICAgIHwgIDMgKy0KIGRvYy9zcmMv c2dtbC9tb25pdG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICAgICAgIHwgMzYgKysrKysrKyst LS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgICAgICB8 ICAxICsKIC4uLi9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYyAgICAg IHwgIDYgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyAgICAg ICAgIHwgNjQgKysrKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMgICAgICAgICAgICAgICAgfCAxMSArKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgICAgICB8ICA2ICstCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaCAgICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAgICAgICAgIHwgIDQgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICAgICAgIHwgIDMgKy0KIDEwIGZpbGVz IGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9n aWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDU0ZjQ4YmUuLmY0YjRlNjQgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMTY5Miw3ICsxNjkyLDggQEAgQ09OVEVYVDog IHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUi IGR1cmluZyAiSU5TRVIKICAgIHN1YnNjcmlwdGlvbi4gIEEgZGlzYWJsZWQgc3Vic2NyaXB0aW9u IG9yIGEgY3Jhc2hlZCBzdWJzY3JpcHRpb24gd2lsbCBoYXZlCiAgICB6ZXJvIHJvd3MgaW4gdGhp cyB2aWV3LiAgSWYgdGhlIGluaXRpYWwgZGF0YSBzeW5jaHJvbml6YXRpb24gb2YgYW55CiAgICB0 YWJsZSBpcyBpbiBwcm9ncmVzcywgdGhlcmUgd2lsbCBiZSBhZGRpdGlvbmFsIHdvcmtlcnMgZm9y IHRoZSB0YWJsZXMKLSAgIGJlaW5nIHN5bmNocm9uaXplZC4KKyAgIGJlaW5nIHN5bmNocm9uaXpl ZC4gTW9yZW92ZXIsIGlmIHRoZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24gaXMgYXBwbGllZCBpbgor ICAgcGFyYWxsZWwsIHRoZXJlIG1heSBiZSBhZGRpdGlvbmFsIHBhcmFsbGVsIGFwcGx5IHdvcmtl cnMuCiAgIDwvcGFyYT4KICA8L3NlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9u aXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCAzNThkMmZm Li5lM2E3ODNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTc0Myw5ICs3NDMsMTEgQEAgcG9zdGdy ZXMgICAyNzA5MyAgMC4wICAwLjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNzICAgMTE6MzQgICAw OjAwIHBvc3RncmVzOiBzZXIKICAgICAgICA8c3RydWN0ZmllbGQ+bGVhZGVyX3BpZDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludGVnZXI8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4K LSAgICAgICBQcm9jZXNzIElEIG9mIHRoZSBwYXJhbGxlbCBncm91cCBsZWFkZXIsIGlmIHRoaXMg cHJvY2VzcyBpcyBhCi0gICAgICAgcGFyYWxsZWwgcXVlcnkgd29ya2VyLiAgPGxpdGVyYWw+TlVM TDwvbGl0ZXJhbD4gaWYgdGhpcyBwcm9jZXNzIGlzIGEKLSAgICAgICBwYXJhbGxlbCBncm91cCBs ZWFkZXIgb3IgZG9lcyBub3QgcGFydGljaXBhdGUgaW4gcGFyYWxsZWwgcXVlcnkuCisgICAgICAg UHJvY2VzcyBJRCBvZiB0aGUgcGFyYWxsZWwgZ3JvdXAgbGVhZGVyIGlmIHRoaXMgcHJvY2VzcyBp cyBhIHBhcmFsbGVsCisgICAgICAgcXVlcnkgd29ya2VyLCBvciBwcm9jZXNzIElEIG9mIHRoZSBs ZWFkZXIgYXBwbHkgd29ya2VyIGlmIHRoaXMgcHJvY2VzcworICAgICAgIGlzIGEgcGFyYWxsZWwg YXBwbHkgd29ya2VyLiAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQgdGhp cworICAgICAgIHByb2Nlc3MgaXMgYSBwYXJhbGxlbCBncm91cCBsZWFkZXIgb3IgbGVhZGVyIGFw cGx5IHdvcmtlciwgb3IgZG9lcyBub3QKKyAgICAgICBwYXJ0aWNpcGF0ZSBpbiBhbnkgcGFyYWxs ZWwgb3BlcmF0aW9uLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC0z MjA4LDExICszMjEwLDIyIEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVu dCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAKICAgICAgPHJvdz4K ICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmxlYWRlcl9waWQ8L3N0cnVjdGZp ZWxkPiA8dHlwZT5pbnRlZ2VyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgUHJvY2VzcyBJRCBvZiB0aGUgbGVhZGVyIGFwcGx5IHdvcmtlciBpZiB0aGlzIHByb2Nl c3MgaXMgYSBwYXJhbGxlbAorICAgICAgIGFwcGx5IHdvcmtlcjsgTlVMTCBpZiB0aGlzIHByb2Nl c3MgaXMgYSBsZWFkZXIgYXBwbHkgd29ya2VyIG9yIGEKKyAgICAgICBzeW5jaHJvbml6YXRpb24g d29ya2VyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+b2lkPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgT0lE IG9mIHRoZSByZWxhdGlvbiB0aGF0IHRoZSB3b3JrZXIgaXMgc3luY2hyb25pemluZzsgbnVsbCBm b3IgdGhlCi0gICAgICAgbWFpbiBhcHBseSB3b3JrZXIKKyAgICAgICBPSUQgb2YgdGhlIHJlbGF0 aW9uIHRoYXQgdGhlIHdvcmtlciBpcyBzeW5jaHJvbml6aW5nOyBOVUxMIGZvciB0aGUKKyAgICAg ICBsZWFkZXIgYXBwbHkgd29ya2VyIGFuZCBwYXJhbGxlbCBhcHBseSB3b3JrZXJzCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKQEAgLTMyMjIsNyArMzIzNSw3IEBAIFNFTEVD VCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkg V0hFUkUgd2FpdF9ldmVudCBpCiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBM YXN0IHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlvbiByZWNlaXZlZCwgdGhlIGluaXRpYWwgdmFsdWUg b2YKLSAgICAgICB0aGlzIGZpZWxkIGJlaW5nIDAKKyAgICAgICB0aGlzIGZpZWxkIGJlaW5nIDA7 IE5VTEwgZm9yIHBhcmFsbGVsIGFwcGx5IHdvcmtlcnMKICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICA8L3Jvdz4KIApAQCAtMzIzMSw3ICszMjQ0LDggQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVu dF90eXBlLCB3YWl0X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50 IGkKICAgICAgICA8c3RydWN0ZmllbGQ+bGFzdF9tc2dfc2VuZF90aW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+dGltZXN0YW1wIHdpdGggdGltZSB6b25lPC90eXBlPgogICAgICAgPC9wYXJhPgogICAg ICAgPHBhcmE+Ci0gICAgICAgU2VuZCB0aW1lIG9mIGxhc3QgbWVzc2FnZSByZWNlaXZlZCBmcm9t IG9yaWdpbiBXQUwgc2VuZGVyCisgICAgICAgU2VuZCB0aW1lIG9mIGxhc3QgbWVzc2FnZSByZWNl aXZlZCBmcm9tIG9yaWdpbiBXQUwgc2VuZGVyOyBOVUxMIGZvcgorICAgICAgIHBhcmFsbGVsIGFw cGx5IHdvcmtlcnMKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtMzI0 MCw3ICszMjU0LDggQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50IEZS T00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50IGkKICAgICAgICA8c3RydWN0Zmll bGQ+bGFzdF9tc2dfcmVjZWlwdF90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGltZXN0YW1wIHdp dGggdGltZSB6b25lPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAg UmVjZWlwdCB0aW1lIG9mIGxhc3QgbWVzc2FnZSByZWNlaXZlZCBmcm9tIG9yaWdpbiBXQUwgc2Vu ZGVyCisgICAgICAgUmVjZWlwdCB0aW1lIG9mIGxhc3QgbWVzc2FnZSByZWNlaXZlZCBmcm9tIG9y aWdpbiBXQUwgc2VuZGVyOyBOVUxMIGZvcgorICAgICAgIHBhcmFsbGVsIGFwcGx5IHdvcmtlcnMK ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtMzI0OSw3ICszMjY0LDgg QEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50IEZST00gcGdfc3RhdF9h Y3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50IGkKICAgICAgICA8c3RydWN0ZmllbGQ+bGF0ZXN0X2Vu ZF9sc248L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19sc248L3R5cGU+CiAgICAgICA8L3BhcmE+CiAg ICAgICA8cGFyYT4KLSAgICAgICBMYXN0IHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlvbiByZXBvcnRl ZCB0byBvcmlnaW4gV0FMIHNlbmRlcgorICAgICAgIExhc3Qgd3JpdGUtYWhlYWQgbG9nIGxvY2F0 aW9uIHJlcG9ydGVkIHRvIG9yaWdpbiBXQUwgc2VuZGVyOyBOVUxMIGZvcgorICAgICAgIHBhcmFs bGVsIGFwcGx5IHdvcmtlcnMKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApA QCAtMzI1OSw3ICszMjc1LDcgQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2 ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50IGkKICAgICAgIDwvcGFy YT4KICAgICAgIDxwYXJhPgogICAgICAgIFRpbWUgb2YgbGFzdCB3cml0ZS1haGVhZCBsb2cgbG9j YXRpb24gcmVwb3J0ZWQgdG8gb3JpZ2luIFdBTAotICAgICAgIHNlbmRlcgorICAgICAgIHNlbmRl cjsgTlVMTCBmb3IgcGFyYWxsZWwgYXBwbHkgd29ya2VycwogICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKaW5kZXggZDJhOGM4Mi4uODYwOGUzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbApAQCAtOTQ4LDYgKzk0OCw3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9u IEFTCiAgICAgICAgICAgICBzdS5vaWQgQVMgc3ViaWQsCiAgICAgICAgICAgICBzdS5zdWJuYW1l LAogICAgICAgICAgICAgc3QucGlkLAorICAgICAgICAgICAgc3QubGVhZGVyX3BpZCwKICAgICAg ICAgICAgIHN0LnJlbGlkLAogICAgICAgICAgICAgc3QucmVjZWl2ZWRfbHNuLAogICAgICAgICAg ICAgc3QubGFzdF9tc2dfc2VuZF90aW1lLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwppbmRleCAzZGZjZmYyLi4zNTc5ZTcw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxs ZWx3b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFy YWxsZWx3b3JrZXIuYwpAQCAtODQ5LDcgKzg0OSw3IEBAIExvZ2ljYWxQYXJhbGxlbEFwcGx5TG9v cChzaG1fbXFfaGFuZGxlICptcWgpCiBzdGF0aWMgdm9pZAogcGFfc2h1dGRvd24oaW50IGNvZGUs IERhdHVtIGFyZykKIHsKLQlTZW5kUHJvY1NpZ25hbChNeUxvZ2ljYWxSZXBXb3JrZXItPmFwcGx5 X2xlYWRlcl9waWQsCisJU2VuZFByb2NTaWduYWwoTXlMb2dpY2FsUmVwV29ya2VyLT5sZWFkZXJf cGlkLAogCQkJCSAgIFBST0NTSUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FHRSwKIAkJCQkgICBJbnZh bGlkQmFja2VuZElkKTsKIApAQCAtOTMyLDcgKzkzMiw3IEBAIFBhcmFsbGVsQXBwbHlXb3JrZXJN YWluKERhdHVtIG1haW5fYXJnKQogCWVycm9yX21xaCA9IHNobV9tcV9hdHRhY2gobXEsIHNlZywg TlVMTCk7CiAKIAlwcV9yZWRpcmVjdF90b19zaG1fbXEoc2VnLCBlcnJvcl9tcWgpOwotCXBxX3Nl dF9wYXJhbGxlbF9sZWFkZXIoTXlMb2dpY2FsUmVwV29ya2VyLT5hcHBseV9sZWFkZXJfcGlkLAor CXBxX3NldF9wYXJhbGxlbF9sZWFkZXIoTXlMb2dpY2FsUmVwV29ya2VyLT5sZWFkZXJfcGlkLAog CQkJCQkJICAgSW52YWxpZEJhY2tlbmRJZCk7CiAKIAlNeUxvZ2ljYWxSZXBXb3JrZXItPmxhc3Rf c2VuZF90aW1lID0gTXlMb2dpY2FsUmVwV29ya2VyLT5sYXN0X3JlY3ZfdGltZSA9CkBAIC05NTAs NyArOTUwLDcgQEAgUGFyYWxsZWxBcHBseVdvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCiAJICog VGhlIHBhcmFsbGVsIGFwcGx5IHdvcmtlciBkb2Vzbid0IG5lZWQgdG8gbW9ub3BvbGl6ZSB0aGlz IHJlcGxpY2F0aW9uCiAJICogb3JpZ2luIHdoaWNoIHdhcyBhbHJlYWR5IGFjcXVpcmVkIGJ5IGl0 cyBsZWFkZXIgcHJvY2Vzcy4KIAkgKi8KLQlyZXBsb3JpZ2luX3Nlc3Npb25fc2V0dXAob3JpZ2lu aWQsIE15TG9naWNhbFJlcFdvcmtlci0+YXBwbHlfbGVhZGVyX3BpZCk7CisJcmVwbG9yaWdpbl9z ZXNzaW9uX3NldHVwKG9yaWdpbmlkLCBNeUxvZ2ljYWxSZXBXb3JrZXItPmxlYWRlcl9waWQpOwog CXJlcGxvcmlnaW5fc2Vzc2lvbl9vcmlnaW4gPSBvcmlnaW5pZDsKIAlDb21taXRUcmFuc2FjdGlv bkNvbW1hbmQoKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9sYXVuY2hlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5j CmluZGV4IGFmYjdhY2QuLmZmOTdhZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2xhdW5jaGVyLmMKQEAgLTQxMCw3ICs0MTAsNyBAQCByZXRyeToKIAl3b3JrZXItPnJlbHN0 YXRlID0gU1VCUkVMX1NUQVRFX1VOS05PV047CiAJd29ya2VyLT5yZWxzdGF0ZV9sc24gPSBJbnZh bGlkWExvZ1JlY1B0cjsKIAl3b3JrZXItPnN0cmVhbV9maWxlc2V0ID0gTlVMTDsKLQl3b3JrZXIt PmFwcGx5X2xlYWRlcl9waWQgPSBpc19wYXJhbGxlbF9hcHBseV93b3JrZXIgPyBNeVByb2NQaWQg OiBJbnZhbGlkUGlkOworCXdvcmtlci0+bGVhZGVyX3BpZCA9IGlzX3BhcmFsbGVsX2FwcGx5X3dv cmtlciA/IE15UHJvY1BpZCA6IEludmFsaWRQaWQ7CiAJd29ya2VyLT5wYXJhbGxlbF9hcHBseSA9 IGlzX3BhcmFsbGVsX2FwcGx5X3dvcmtlcjsKIAl3b3JrZXItPmxhc3RfbHNuID0gSW52YWxpZFhM b2dSZWNQdHI7CiAJVElNRVNUQU1QX05PQkVHSU4od29ya2VyLT5sYXN0X3NlbmRfdGltZSk7CkBA IC03MzIsNyArNzMyLDcgQEAgbG9naWNhbHJlcF93b3JrZXJfY2xlYW51cChMb2dpY2FsUmVwV29y a2VyICp3b3JrZXIpCiAJd29ya2VyLT51c2VyaWQgPSBJbnZhbGlkT2lkOwogCXdvcmtlci0+c3Vi aWQgPSBJbnZhbGlkT2lkOwogCXdvcmtlci0+cmVsaWQgPSBJbnZhbGlkT2lkOwotCXdvcmtlci0+ YXBwbHlfbGVhZGVyX3BpZCA9IEludmFsaWRQaWQ7CisJd29ya2VyLT5sZWFkZXJfcGlkID0gSW52 YWxpZFBpZDsKIAl3b3JrZXItPnBhcmFsbGVsX2FwcGx5ID0gZmFsc2U7CiB9CiAKQEAgLTEwNjcs MTIgKzEwNjcsNDAgQEAgSXNMb2dpY2FsTGF1bmNoZXIodm9pZCkKIH0KIAogLyoKKyAqIFJldHVy biB0aGUgcGlkIG9mIHRoZSBsZWFkZXIgYXBwbHkgd29ya2VyIGlmIHRoZSBnaXZlbiBwaWQgaXMg dGhlIHBpZCBvZiBhCisgKiBwYXJhbGxlbCBhcHBseSB3b3JrZXIsIG90aGVyd2lzZSByZXR1cm4g SW52YWxpZFBpZC4KKyAqLworcGlkX3QKK0dldExlYWRlckFwcGx5V29ya2VyUGlkKHBpZF90IHBp ZCkKK3sKKwlpbnQJCQlsZWFkZXJfcGlkID0gSW52YWxpZFBpZDsKKwlpbnQJCQlpOworCisJTFdM b2NrQWNxdWlyZShMb2dpY2FsUmVwV29ya2VyTG9jaywgTFdfU0hBUkVEKTsKKworCWZvciAoaSA9 IDA7IGkgPCBtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzOyBpKyspCisJeworCQlMb2dp Y2FsUmVwV29ya2VyICp3ID0gJkxvZ2ljYWxSZXBDdHgtPndvcmtlcnNbaV07CisKKwkJaWYgKGlz UGFyYWxsZWxBcHBseVdvcmtlcih3KSAmJiB3LT5wcm9jICYmIHBpZCA9PSB3LT5wcm9jLT5waWQp CisJCXsKKwkJCWxlYWRlcl9waWQgPSB3LT5sZWFkZXJfcGlkOworCQkJYnJlYWs7CisJCX0KKwl9 CisKKwlMV0xvY2tSZWxlYXNlKExvZ2ljYWxSZXBXb3JrZXJMb2NrKTsKKworCXJldHVybiBsZWFk ZXJfcGlkOworfQorCisvKgogICogUmV0dXJucyBzdGF0ZSBvZiB0aGUgc3Vic2NyaXB0aW9ucy4K ICAqLwogRGF0dW0KIHBnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbihQR19GVU5DVElPTl9BUkdTKQog ewotI2RlZmluZSBQR19TVEFUX0dFVF9TVUJTQ1JJUFRJT05fQ09MUwk4CisjZGVmaW5lIFBHX1NU QVRfR0VUX1NVQlNDUklQVElPTl9DT0xTCTkKIAlPaWQJCQlzdWJpZCA9IFBHX0FSR0lTTlVMTCgw KSA/IEludmFsaWRPaWQgOiBQR19HRVRBUkdfT0lEKDApOwogCWludAkJCWk7CiAJUmV0dXJuU2V0 SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZvOwpAQCAt MTA5OCwxMCArMTEyNiw2IEBAIHBnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbihQR19GVU5DVElPTl9B UkdTKQogCQlpZiAoT2lkSXNWYWxpZChzdWJpZCkgJiYgd29ya2VyLnN1YmlkICE9IHN1YmlkKQog CQkJY29udGludWU7CiAKLQkJLyogU2tpcCBpZiB0aGlzIGlzIGEgcGFyYWxsZWwgYXBwbHkgd29y a2VyICovCi0JCWlmIChpc1BhcmFsbGVsQXBwbHlXb3JrZXIoJndvcmtlcikpCi0JCQljb250aW51 ZTsKLQogCQl3b3JrZXJfcGlkID0gd29ya2VyLnByb2MtPnBpZDsKIAogCQl2YWx1ZXNbMF0gPSBP YmplY3RJZEdldERhdHVtKHdvcmtlci5zdWJpZCk7CkBAIC0xMTEwLDI2ICsxMTM0LDMyIEBAIHBn X3N0YXRfZ2V0X3N1YnNjcmlwdGlvbihQR19GVU5DVElPTl9BUkdTKQogCQllbHNlCiAJCQludWxs c1sxXSA9IHRydWU7CiAJCXZhbHVlc1syXSA9IEludDMyR2V0RGF0dW0od29ya2VyX3BpZCk7Ci0J CWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHdvcmtlci5sYXN0X2xzbikpCisKKwkJaWYgKGlzUGFy YWxsZWxBcHBseVdvcmtlcigmd29ya2VyKSkKKwkJCXZhbHVlc1szXSA9IEludDMyR2V0RGF0dW0o d29ya2VyLmxlYWRlcl9waWQpOworCQllbHNlCiAJCQludWxsc1szXSA9IHRydWU7CisKKwkJaWYg KFhMb2dSZWNQdHJJc0ludmFsaWQod29ya2VyLmxhc3RfbHNuKSkKKwkJCW51bGxzWzRdID0gdHJ1 ZTsKIAkJZWxzZQotCQkJdmFsdWVzWzNdID0gTFNOR2V0RGF0dW0od29ya2VyLmxhc3RfbHNuKTsK KwkJCXZhbHVlc1s0XSA9IExTTkdldERhdHVtKHdvcmtlci5sYXN0X2xzbik7CiAJCWlmICh3b3Jr ZXIubGFzdF9zZW5kX3RpbWUgPT0gMCkKLQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCW51bGxzWzVd ID0gdHJ1ZTsKIAkJZWxzZQotCQkJdmFsdWVzWzRdID0gVGltZXN0YW1wVHpHZXREYXR1bSh3b3Jr ZXIubGFzdF9zZW5kX3RpbWUpOworCQkJdmFsdWVzWzVdID0gVGltZXN0YW1wVHpHZXREYXR1bSh3 b3JrZXIubGFzdF9zZW5kX3RpbWUpOwogCQlpZiAod29ya2VyLmxhc3RfcmVjdl90aW1lID09IDAp Ci0JCQludWxsc1s1XSA9IHRydWU7CisJCQludWxsc1s2XSA9IHRydWU7CiAJCWVsc2UKLQkJCXZh bHVlc1s1XSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0od29ya2VyLmxhc3RfcmVjdl90aW1lKTsKKwkJ CXZhbHVlc1s2XSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0od29ya2VyLmxhc3RfcmVjdl90aW1lKTsK IAkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQod29ya2VyLnJlcGx5X2xzbikpCi0JCQludWxsc1s2 XSA9IHRydWU7CisJCQludWxsc1s3XSA9IHRydWU7CiAJCWVsc2UKLQkJCXZhbHVlc1s2XSA9IExT TkdldERhdHVtKHdvcmtlci5yZXBseV9sc24pOworCQkJdmFsdWVzWzddID0gTFNOR2V0RGF0dW0o d29ya2VyLnJlcGx5X2xzbik7CiAJCWlmICh3b3JrZXIucmVwbHlfdGltZSA9PSAwKQotCQkJbnVs bHNbN10gPSB0cnVlOworCQkJbnVsbHNbOF0gPSB0cnVlOwogCQllbHNlCi0JCQl2YWx1ZXNbN10g PSBUaW1lc3RhbXBUekdldERhdHVtKHdvcmtlci5yZXBseV90aW1lKTsKKwkJCXZhbHVlc1s4XSA9 IFRpbWVzdGFtcFR6R2V0RGF0dW0od29ya2VyLnJlcGx5X3RpbWUpOwogCiAJCXR1cGxlc3RvcmVf cHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsCiAJCQkJCQkJIHZh bHVlcywgbnVsbHMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1 bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCA1OGJkMTM2 Li40MTVlNzExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjUsNiArMjUs NyBAQAogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXJf aW50ZXJuYWxzLmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCisjaW5jbHVk ZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9j LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wu aCIKQEAgLTQzNCw2ICs0MzUsMTYgQEAgcGdfc3RhdF9nZXRfYWN0aXZpdHkoUEdfRlVOQ1RJT05f QVJHUykKIAkJCQkJdmFsdWVzWzI4XSA9IEludDMyR2V0RGF0dW0obGVhZGVyLT5waWQpOwogCQkJ CQludWxsc1syOF0gPSBmYWxzZTsKIAkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJaW50CQkJ bGVhZGVyX3BpZCA9IEdldExlYWRlckFwcGx5V29ya2VyUGlkKGJlZW50cnktPnN0X3Byb2NwaWQp OworCisJCQkJCWlmIChsZWFkZXJfcGlkICE9IEludmFsaWRQaWQpCisJCQkJCXsKKwkJCQkJCXZh bHVlc1syOF0gPSBJbnQzMkdldERhdHVtKGxlYWRlcl9waWQpOworCQkJCQkJbnVsbHNbMjhdID0g ZmFsc2U7CisJCQkJCX0KKwkJCQl9CiAJCQl9CiAKIAkJCWlmICh3YWl0X2V2ZW50X3R5cGUpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzODEwZGU3Li44NmViOGU4IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTU0MzAsOSArNTQzMCw5IEBACiAgIHByb25hbWUgPT4gJ3BnX3N0YXRf Z2V0X3N1YnNjcmlwdGlvbicsIHByb3Jvd3MgPT4gJzEwJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAog ICBwcm9yZXRzZXQgPT4gJ3QnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdy JywKICAgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCi0gIHBy b2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxvaWQsaW50NCxwZ19sc24sdGltZXN0YW1wdHosdGlt ZXN0YW1wdHoscGdfbHNuLHRpbWVzdGFtcHR6fScsCi0gIHByb2FyZ21vZGVzID0+ICd7aSxvLG8s byxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzdWJpZCxzdWJpZCxyZWxpZCxwaWQs cmVjZWl2ZWRfbHNuLGxhc3RfbXNnX3NlbmRfdGltZSxsYXN0X21zZ19yZWNlaXB0X3RpbWUsbGF0 ZXN0X2VuZF9sc24sbGF0ZXN0X2VuZF90aW1lfScsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lk LG9pZCxvaWQsaW50NCxpbnQ0LHBnX2xzbix0aW1lc3RhbXB0eix0aW1lc3RhbXB0eixwZ19sc24s dGltZXN0YW1wdHp9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvfScs CisgIHByb2FyZ25hbWVzID0+ICd7c3ViaWQsc3ViaWQscmVsaWQscGlkLGxlYWRlcl9waWQscmVj ZWl2ZWRfbHNuLGxhc3RfbXNnX3NlbmRfdGltZSxsYXN0X21zZ19yZWNlaXB0X3RpbWUsbGF0ZXN0 X2VuZF9sc24sbGF0ZXN0X2VuZF90aW1lfScsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfc3Vi c2NyaXB0aW9uJyB9LAogeyBvaWQgPT4gJzIwMjYnLCBkZXNjciA9PiAnc3RhdGlzdGljczogY3Vy cmVudCBiYWNrZW5kIFBJRCcsCiAgIHByb25hbWUgPT4gJ3BnX2JhY2tlbmRfcGlkJywgcHJvdm9s YXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L2xvZ2ljYWxsYXVuY2hlci5oCmluZGV4IGM4NTU5M2EuLjM2MGU5ODcgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oCkBAIC0yNyw0ICsyNyw2IEBAIGV4dGVybiB2 b2lkIEF0RU9YYWN0X0FwcGx5TGF1bmNoZXIoYm9vbCBpc0NvbW1pdCk7CiAKIGV4dGVybiBib29s IElzTG9naWNhbExhdW5jaGVyKHZvaWQpOwogCitleHRlcm4gcGlkX3QgR2V0TGVhZGVyQXBwbHlX b3JrZXJQaWQocGlkX3QgcGlkKTsKKwogI2VuZGlmCQkJCQkJCS8qIExPR0lDQUxMQVVOQ0hFUl9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwu aCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IGRiODkx ZWUuLmRjODdhNGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9p bnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5o CkBAIC03MSw3ICs3MSw3IEBAIHR5cGVkZWYgc3RydWN0IExvZ2ljYWxSZXBXb3JrZXIKIAkgKiBQ SUQgb2YgbGVhZGVyIGFwcGx5IHdvcmtlciBpZiB0aGlzIHNsb3QgaXMgdXNlZCBmb3IgYSBwYXJh bGxlbCBhcHBseQogCSAqIHdvcmtlciwgSW52YWxpZFBpZCBvdGhlcndpc2UuCiAJICovCi0JcGlk X3QJCWFwcGx5X2xlYWRlcl9waWQ7CisJcGlkX3QJCWxlYWRlcl9waWQ7CiAKIAkvKiBJbmRpY2F0 ZXMgd2hldGhlciBhcHBseSBjYW4gYmUgcGVyZm9ybWVkIGluIHBhcmFsbGVsLiAqLwogCWJvb2wJ CXBhcmFsbGVsX2FwcGx5OwpAQCAtMzAzLDcgKzMwMyw3IEBAIGV4dGVybiB2b2lkIHBhX2RlY3Jf YW5kX3dhaXRfc3RyZWFtX2Jsb2NrKHZvaWQpOwogZXh0ZXJuIHZvaWQgcGFfeGFjdF9maW5pc2go UGFyYWxsZWxBcHBseVdvcmtlckluZm8gKndpbmZvLAogCQkJCQkJICAgWExvZ1JlY1B0ciByZW1v dGVfbHNuKTsKIAotI2RlZmluZSBpc1BhcmFsbGVsQXBwbHlXb3JrZXIod29ya2VyKSAoKHdvcmtl ciktPmFwcGx5X2xlYWRlcl9waWQgIT0gSW52YWxpZFBpZCkKKyNkZWZpbmUgaXNQYXJhbGxlbEFw cGx5V29ya2VyKHdvcmtlcikgKCh3b3JrZXIpLT5sZWFkZXJfcGlkICE9IEludmFsaWRQaWQpCiAK IHN0YXRpYyBpbmxpbmUgYm9vbAogYW1fdGFibGVzeW5jX3dvcmtlcih2b2lkKQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBhOTY5YWU2Li4wNWVlYzJhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjA5NCw2ICsyMDk0LDcgQEAgcGdfc3RhdF9zc2x8IFNF TEVDVCBzLnBpZCwKIHBnX3N0YXRfc3Vic2NyaXB0aW9ufCBTRUxFQ1Qgc3Uub2lkIEFTIHN1Ymlk LAogICAgIHN1LnN1Ym5hbWUsCiAgICAgc3QucGlkLAorICAgIHN0LmxlYWRlcl9waWQsCiAgICAg c3QucmVsaWQsCiAgICAgc3QucmVjZWl2ZWRfbHNuLAogICAgIHN0Lmxhc3RfbXNnX3NlbmRfdGlt ZSwKQEAgLTIxMDEsNyArMjEwMiw3IEBAIHBnX3N0YXRfc3Vic2NyaXB0aW9ufCBTRUxFQ1Qgc3Uu b2lkIEFTIHN1YmlkLAogICAgIHN0LmxhdGVzdF9lbmRfbHNuLAogICAgIHN0LmxhdGVzdF9lbmRf dGltZQogICAgRlJPTSAocGdfc3Vic2NyaXB0aW9uIHN1Ci0gICAgIExFRlQgSk9JTiBwZ19zdGF0 X2dldF9zdWJzY3JpcHRpb24oTlVMTDo6b2lkKSBzdChzdWJpZCwgcmVsaWQsIHBpZCwgcmVjZWl2 ZWRfbHNuLCBsYXN0X21zZ19zZW5kX3RpbWUsIGxhc3RfbXNnX3JlY2VpcHRfdGltZSwgbGF0ZXN0 X2VuZF9sc24sIGxhdGVzdF9lbmRfdGltZSkgT04gKChzdC5zdWJpZCA9IHN1Lm9pZCkpKTsKKyAg ICAgTEVGVCBKT0lOIHBnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbihOVUxMOjpvaWQpIHN0KHN1Ymlk LCByZWxpZCwgcGlkLCBsZWFkZXJfcGlkLCByZWNlaXZlZF9sc24sIGxhc3RfbXNnX3NlbmRfdGlt ZSwgbGFzdF9tc2dfcmVjZWlwdF90aW1lLCBsYXRlc3RfZW5kX2xzbiwgbGF0ZXN0X2VuZF90aW1l KSBPTiAoKHN0LnN1YmlkID0gc3Uub2lkKSkpOwogcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHN8 IFNFTEVDVCBzcy5zdWJpZCwKICAgICBzLnN1Ym5hbWUsCiAgICAgc3MuYXBwbHlfZXJyb3JfY291 bnQsCi0tIAoxLjguMy4xCgo= --000000000000d7415d05f237e995--