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 1vBX1f-000Chf-4t for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Oct 2025 11:29:07 +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 1vBX1d-00Fbv7-QO for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Oct 2025 11:29:04 +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 ) id 1vBX1c-00Fbuy-U9 for pgsql-hackers@lists.postgresql.org; Wed, 22 Oct 2025 11:29:04 +0000 Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vBX1Z-0039Nu-2j for pgsql-hackers@lists.postgresql.org; Wed, 22 Oct 2025 11:29:03 +0000 Received: by mail-qk1-x72d.google.com with SMTP id af79cd13be357-88f79ae58d9so852849385a.2 for ; Wed, 22 Oct 2025 04:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fittl.com; s=google; t=1761132541; x=1761737341; 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=0z/ZwEU717D/bgyXVSdXP/W91lVUe4lm8L+7PV1nuSo=; b=PlzsBvqvh+SeaJ6+JgKVxo6JijPeNf6GRP6eXB4V5i7rBlNBcmeIr+ZQpvtVuignsn QYO2+ImFtZmwslATFpMhmcLnfdHNlS4t3pye3mHLApdz6eO35h14GmKHiZVXK1iaBdM5 slsaiqwnOpW49kBPjJMsHsbxN3TQYznms+3is= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761132541; x=1761737341; 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=0z/ZwEU717D/bgyXVSdXP/W91lVUe4lm8L+7PV1nuSo=; b=CUEBgQSG49eh4dotqx9Cdiyz3WmhoCzG7piJ4nTYCFytj07RojvD3MiyOI0FlGbsGO GFtvl5GaZXeXYldtCSEoWsQC330rsQeNFR6pR+IOqIo5HcQ7vIUXk+3JSM9YYIRNOGj6 tBw17MX14spMB/iF3Bt9XEWg7hmqit/hoBw4BILzwLWhKcgrtVQIu0684jdLnTQvxV19 O5587RhVomKvPv7yhwXQGRZ6RzfZlNPhpUR2m9kJrLOgZk4VoEUH6iSW36APjIzHjaZ3 GZyDZaxkaoQV603IKflaJw89PQEKKMr1vj9Ziji8SugTdS0AvdqR9ejc+6QUDck7sjdV V0Yg== X-Gm-Message-State: AOJu0YwGlL6BdUdI8dAB9OmQgQsIdBtqFx3sNWM8qs+z+5OXFLFq1ZBt e6qs66bYAfX60GcUzjugfGSBcNgoHAiCDkb/2bV7DNdWDuJOBs/Q48huMoy/d8OFpxb1/BJInrt he4cX4T5AvJqtaL8IRC0IqimTlyzUtUUorFwZigQ1 X-Gm-Gg: ASbGncs4e3cWg8kzvupL1+B6qH6sG7owl3upT1k4S+NriA5AopQcoZUkXlMje54PbjG P/tfDW9VHGbA+Ogtje6il/rM/lTspesC0Mf2lOG76PvYlKlyUaO874VXZux63Ma5KThAqCRPwSG 2IkSUiBp2nzdEqtnvTGXgU93ne+BSXEtoWbXUhD0EOny4xwZcihyPgGb2qRjFAXlzIFEJdrq6jr IDglM6jWfHlI4FCzBCTasTZBOntANPrnHGsfMybSruP+B8PxuSI08aed/jQQBCzW3T97I7HuXlS 0ReIwuqucaA4GU89xwwqNqgPnHlrHA== X-Google-Smtp-Source: AGHT+IEkwL1R7kgeqMfpwmNBrlhw/Uk7Y763ppozPHwfmMP1Mu9nEZOReTTbC7jxWJR9ZhZUm1LNZJw7rkspIYPl5LA= X-Received: by 2002:a05:6214:62c:b0:7e3:cfe5:9972 with SMTP id 6a1803df08f44-87c2062d001mr257661476d6.45.1761132540557; Wed, 22 Oct 2025 04:29:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lukas Fittl Date: Wed, 22 Oct 2025 14:28:24 +0300 X-Gm-Features: AS18NWAr1DmkNR0Dj0qKz5gMw0xF4GE1GzydUuOI9C4eaavRVHknGrg80cUD-fU Message-ID: Subject: Re: Stack-based tracking of per-node WAL/buffer usage To: Andres Freund Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000007c06b00641bd9f3d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007c06b00641bd9f3d Content-Type: multipart/alternative; boundary="0000000000007c06af0641bd9f3b" --0000000000007c06af0641bd9f3b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Sep 9, 2025 at 10:35=E2=80=AFPM Lukas Fittl wrote= : > Attached an updated patch set that addresses the feedback, and also adds > the complete removal of the global pgBufferUsage variable in later patche= s > (0005-0007), to avoid counting both the stack and the variable. > See attached the same patch set rebased on latest master. Thanks, Lukas --=20 Lukas Fittl --0000000000007c06af0641bd9f3b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Sep 9, 2025 at 10:35=E2=80=AFPM L= ukas Fittl <lukas@fittl.com> w= rote:
Attached an updated patch= set that addresses the feedback, and also adds the complete removal of the= global pgBufferUsage variable in later patches (0005-0007), to avoid count= ing both the stack and the variable.

See attached the same patch set rebased on la= test master.=C2=A0

Thanks,
Lukas

--
Lukas Fittl
--0000000000007c06af0641bd9f3b-- --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0001-Instrumentation-Keep-time-fields-as-instrtime-req.patch" Content-Disposition: attachment; filename="v3-0001-Instrumentation-Keep-time-fields-as-instrtime-req.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w630 RnJvbSBkNDBmNjljY2UxNWRmYTEwNDc5YzhiZTMxOTE3YjMzYTQ5ZDAxNDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDMxIEF1ZyAyMDI1IDE2OjM3OjA1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyAxLzddIElu c3RydW1lbnRhdGlvbjogS2VlcCB0aW1lIGZpZWxkcyBhcyBpbnN0cnRpbWUsCiByZXF1aXJlIGNh bGxlciB0byBjb252ZXJ0CgpQcmV2aW91c2x5IHRoZSBJbnN0cnVtZW50YXRpb24gbG9naWMgYWx3 YXlzIGNvbnZlcnRlZCB0byBzZWNvbmRzLCBvbmx5IGZvciBtYW55Cm9mIHRoZSBjYWxsZXJzIHRv IGRvIHVubmVjZXNzYXJ5IGRpdmlzaW9uIHRvIGdldCB0byBtaWxsaXNlY29uZHMuIFNpbmNlIGFu IHVwY29taW5nCnJlZmFjdG9yaW5nIHdpbGwgc3BsaXQgdGhlIEluc3RydW1lbnRhdGlvbiBzdHJ1 Y3QsIHV0aWxpemUgaW5zdHJ0aW1lIGFsd2F5cyB0bwprZWVwIHRoaW5ncyBzaW1wbGVyLgotLS0K IGNvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jICAgICAgICAgICB8ICAyICstCiAu Li4vcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAgICAgICB8IDIwICsrKysr KysrLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgICAgICAg ICAgICB8ICA2ICsrKy0tLQogc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oICAg ICAgICAgIHwgIDIgKysKIDYgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMjEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWlu LmMgYi9jb250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYwppbmRleCAxZjRiYWRiNDky OC4uYzEwZjJmYzBmMjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhw bGFpbi5jCisrKyBiL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCkBAIC0zODgs NyArMzg4LDcgQEAgZXhwbGFpbl9FeGVjdXRvckVuZChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJ SW5zdHJFbmRMb29wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKIAogCQkvKiBMb2cgcGxhbiBpZiBk dXJhdGlvbiBpcyBleGNlZWRlZC4gKi8KLQkJbXNlYyA9IHF1ZXJ5RGVzYy0+dG90YWx0aW1lLT50 b3RhbCAqIDEwMDAuMDsKKwkJbXNlYyA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHF1ZXJ5RGVz Yy0+dG90YWx0aW1lLT50b3RhbCk7CiAJCWlmIChtc2VjID49IGF1dG9fZXhwbGFpbl9sb2dfbWlu X2R1cmF0aW9uKQogCQl7CiAJCQlFeHBsYWluU3RhdGUgKmVzID0gTmV3RXhwbGFpblN0YXRlKCk7 CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVu dHMuYyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCmlu ZGV4IGYyMTg3MTY3YzVjLi5mZTk4N2NlYWY0MCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0 YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKQEAgLTEwOTMsNyArMTA5Myw3IEBAIHBnc3Nf RXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJCQkJICAgcXVlcnlEZXNjLT5wbGFu bmVkc3RtdC0+c3RtdF9sb2NhdGlvbiwKIAkJCQkgICBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5z dG10X2xlbiwKIAkJCQkgICBQR1NTX0VYRUMsCi0JCQkJICAgcXVlcnlEZXNjLT50b3RhbHRpbWUt PnRvdGFsICogMTAwMC4wLAkvKiBjb252ZXJ0IHRvIG1zZWMgKi8KKwkJCQkgICBJTlNUUl9USU1F X0dFVF9NSUxMSVNFQyhxdWVyeURlc2MtPnRvdGFsdGltZS0+dG90YWwpLAogCQkJCSAgIHF1ZXJ5 RGVzYy0+ZXN0YXRlLT5lc190b3RhbF9wcm9jZXNzZWQsCiAJCQkJICAgJnF1ZXJ5RGVzYy0+dG90 YWx0aW1lLT5idWZ1c2FnZSwKIAkJCQkgICAmcXVlcnlEZXNjLT50b3RhbHRpbWUtPndhbHVzYWdl LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGU2ZWRhZTA4NDVjLi40NmM1YmYyNTJmYyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgzNSw4ICsxODM1LDggQEAgRXhwbGFpbk5vZGUoUGxh blN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAkJcGxhbnN0YXRlLT5pbnN0cnVt ZW50ICYmIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+bmxvb3BzID4gMCkKIAl7CiAJCWRvdWJsZQkJ bmxvb3BzID0gcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5ubG9vcHM7Ci0JCWRvdWJsZQkJc3RhcnR1 cF9tcyA9IDEwMDAuMCAqIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhcnR1cCAvIG5sb29wczsK LQkJZG91YmxlCQl0b3RhbF9tcyA9IDEwMDAuMCAqIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+dG90 YWwgLyBubG9vcHM7CisJCWRvdWJsZQkJc3RhcnR1cF9tcyA9IElOU1RSX1RJTUVfR0VUX01JTExJ U0VDKHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhcnR1cCkgLyBubG9vcHM7CisJCWRvdWJsZQkJ dG90YWxfbXMgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhwbGFuc3RhdGUtPmluc3RydW1lbnQt PnRvdGFsKSAvIG5sb29wczsKIAkJZG91YmxlCQlyb3dzID0gcGxhbnN0YXRlLT5pbnN0cnVtZW50 LT5udHVwbGVzIC8gbmxvb3BzOwogCiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFU X1RFWFQpCkBAIC0xOTAxLDggKzE5MDEsOCBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5z dGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAogCiAJCQlpZiAobmxvb3BzIDw9IDApCiAJCQkJY29udGlu dWU7Ci0JCQlzdGFydHVwX21zID0gMTAwMC4wICogaW5zdHJ1bWVudC0+c3RhcnR1cCAvIG5sb29w czsKLQkJCXRvdGFsX21zID0gMTAwMC4wICogaW5zdHJ1bWVudC0+dG90YWwgLyBubG9vcHM7CisJ CQlzdGFydHVwX21zID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoaW5zdHJ1bWVudC0+c3RhcnR1 cCkgLyBubG9vcHM7CisJCQl0b3RhbF9tcyA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGluc3Ry dW1lbnQtPnRvdGFsKSAvIG5sb29wczsKIAkJCXJvd3MgPSBpbnN0cnVtZW50LT5udHVwbGVzIC8g bmxvb3BzOwogCiAJCQlFeHBsYWluT3BlbldvcmtlcihuLCBlcyk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0 cnVtZW50LmMKaW5kZXggNTZlNjM1ZjQ3MDAuLjFjOTJhYmU2NzYxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv aW5zdHJ1bWVudC5jCkBAIC0xMTQsNyArMTE0LDcgQEAgSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50 YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIAlpZiAoIWluc3RyLT5ydW5uaW5nKQogCXsK IAkJaW5zdHItPnJ1bm5pbmcgPSB0cnVlOwotCQlpbnN0ci0+Zmlyc3R0dXBsZSA9IElOU1RSX1RJ TUVfR0VUX0RPVUJMRShpbnN0ci0+Y291bnRlcik7CisJCWluc3RyLT5maXJzdHR1cGxlID0gaW5z dHItPmNvdW50ZXI7CiAJfQogCWVsc2UKIAl7CkBAIC0xMjMsNyArMTIzLDcgQEAgSW5zdHJTdG9w Tm9kZShJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIAkJICogdGhpcyBt aWdodCBiZSB0aGUgZmlyc3QgdHVwbGUKIAkJICovCiAJCWlmIChpbnN0ci0+YXN5bmNfbW9kZSAm JiBzYXZlX3R1cGxlY291bnQgPCAxLjApCi0JCQlpbnN0ci0+Zmlyc3R0dXBsZSA9IElOU1RSX1RJ TUVfR0VUX0RPVUJMRShpbnN0ci0+Y291bnRlcik7CisJCQlpbnN0ci0+Zmlyc3R0dXBsZSA9IGlu c3RyLT5jb3VudGVyOwogCX0KIH0KIApAQCAtMTM5LDggKzEzOSw2IEBAIEluc3RyVXBkYXRlVHVw bGVDb3VudChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIHZvaWQKIElu c3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogewotCWRvdWJsZQkJdG90YWx0aW1l OwotCiAJLyogU2tpcCBpZiBub3RoaW5nIGhhcyBoYXBwZW5lZCwgb3IgYWxyZWFkeSBzaHV0IGRv d24gKi8KIAlpZiAoIWluc3RyLT5ydW5uaW5nKQogCQlyZXR1cm47CkBAIC0xNDksMTAgKzE0Nyw4 IEBAIEluc3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCQllbG9nKEVSUk9SLCAi SW5zdHJFbmRMb29wIGNhbGxlZCBvbiBydW5uaW5nIG5vZGUiKTsKIAogCS8qIEFjY3VtdWxhdGUg cGVyLWN5Y2xlIHN0YXRpc3RpY3MgaW50byB0b3RhbHMgKi8KLQl0b3RhbHRpbWUgPSBJTlNUUl9U SU1FX0dFVF9ET1VCTEUoaW5zdHItPmNvdW50ZXIpOwotCi0JaW5zdHItPnN0YXJ0dXAgKz0gaW5z dHItPmZpcnN0dHVwbGU7Ci0JaW5zdHItPnRvdGFsICs9IHRvdGFsdGltZTsKKwlJTlNUUl9USU1F X0FERChpbnN0ci0+c3RhcnR1cCwgaW5zdHItPmZpcnN0dHVwbGUpOworCUlOU1RSX1RJTUVfQURE KGluc3RyLT50b3RhbCwgaW5zdHItPmNvdW50ZXIpOwogCWluc3RyLT5udHVwbGVzICs9IGluc3Ry LT50dXBsZWNvdW50OwogCWluc3RyLT5ubG9vcHMgKz0gMTsKIApAQCAtMTYwLDcgKzE1Niw3IEBA IEluc3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCWluc3RyLT5ydW5uaW5nID0g ZmFsc2U7CiAJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKIAlJTlNUUl9U SU1FX1NFVF9aRVJPKGluc3RyLT5jb3VudGVyKTsKLQlpbnN0ci0+Zmlyc3R0dXBsZSA9IDA7CisJ SU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+Zmlyc3R0dXBsZSk7CiAJaW5zdHItPnR1cGxlY291 bnQgPSAwOwogfQogCkBAIC0xNzMsMTQgKzE2OSwxNCBAQCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVu dGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCQlkc3QtPnJ1bm5pbmcgPSB0cnVl OwogCQlkc3QtPmZpcnN0dHVwbGUgPSBhZGQtPmZpcnN0dHVwbGU7CiAJfQotCWVsc2UgaWYgKGRz dC0+cnVubmluZyAmJiBhZGQtPnJ1bm5pbmcgJiYgZHN0LT5maXJzdHR1cGxlID4gYWRkLT5maXJz dHR1cGxlKQorCWVsc2UgaWYgKGRzdC0+cnVubmluZyAmJiBhZGQtPnJ1bm5pbmcgJiYgSU5TVFJf VElNRV9DTVBfTFQoZHN0LT5maXJzdHR1cGxlLCBhZGQtPmZpcnN0dHVwbGUpKQogCQlkc3QtPmZp cnN0dHVwbGUgPSBhZGQtPmZpcnN0dHVwbGU7CiAKIAlJTlNUUl9USU1FX0FERChkc3QtPmNvdW50 ZXIsIGFkZC0+Y291bnRlcik7CiAKIAlkc3QtPnR1cGxlY291bnQgKz0gYWRkLT50dXBsZWNvdW50 OwotCWRzdC0+c3RhcnR1cCArPSBhZGQtPnN0YXJ0dXA7Ci0JZHN0LT50b3RhbCArPSBhZGQtPnRv dGFsOworCUlOU1RSX1RJTUVfQUREKGRzdC0+c3RhcnR1cCwgYWRkLT5zdGFydHVwKTsKKwlJTlNU Ul9USU1FX0FERChkc3QtPnRvdGFsLCBhZGQtPnRvdGFsKTsKIAlkc3QtPm50dXBsZXMgKz0gYWRk LT5udHVwbGVzOwogCWRzdC0+bnR1cGxlczIgKz0gYWRkLT5udHVwbGVzMjsKIAlkc3QtPm5sb29w cyArPSBhZGQtPm5sb29wczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAppbmRleCAwMzY1M2Fi NmM2Yy4uYmE1Yzk4NjkwN2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKQEAgLTc3LDEz ICs3NywxMyBAQCB0eXBlZGVmIHN0cnVjdCBJbnN0cnVtZW50YXRpb24KIAlib29sCQlydW5uaW5n OwkJLyogdHJ1ZSBpZiB3ZSd2ZSBjb21wbGV0ZWQgZmlyc3QgdHVwbGUgKi8KIAlpbnN0cl90aW1l CXN0YXJ0dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgY3VycmVudCBpdGVyYXRpb24gb2Ygbm9kZSAq LwogCWluc3RyX3RpbWUJY291bnRlcjsJCS8qIGFjY3VtdWxhdGVkIHJ1bnRpbWUgZm9yIHRoaXMg bm9kZSAqLwotCWRvdWJsZQkJZmlyc3R0dXBsZTsJCS8qIHRpbWUgZm9yIGZpcnN0IHR1cGxlIG9m IHRoaXMgY3ljbGUgKi8KKwlpbnN0cl90aW1lCWZpcnN0dHVwbGU7CQkvKiB0aW1lIGZvciBmaXJz dCB0dXBsZSBvZiB0aGlzIGN5Y2xlICovCiAJZG91YmxlCQl0dXBsZWNvdW50OwkJLyogIyBvZiB0 dXBsZXMgZW1pdHRlZCBzbyBmYXIgdGhpcyBjeWNsZSAqLwogCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdl X3N0YXJ0OyAvKiBidWZmZXIgdXNhZ2UgYXQgc3RhcnQgKi8KIAlXYWxVc2FnZQl3YWx1c2FnZV9z dGFydDsgLyogV0FMIHVzYWdlIGF0IHN0YXJ0ICovCiAJLyogQWNjdW11bGF0ZWQgc3RhdGlzdGlj cyBhY3Jvc3MgYWxsIGNvbXBsZXRlZCBjeWNsZXM6ICovCi0JZG91YmxlCQlzdGFydHVwOwkJLyog dG90YWwgc3RhcnR1cCB0aW1lIChpbiBzZWNvbmRzKSAqLwotCWRvdWJsZQkJdG90YWw7CQkJLyog dG90YWwgdGltZSAoaW4gc2Vjb25kcykgKi8KKwlpbnN0cl90aW1lCXN0YXJ0dXA7CQkvKiB0b3Rh bCBzdGFydHVwIHRpbWUgKi8KKwlpbnN0cl90aW1lCXRvdGFsOwkJCS8qIHRvdGFsIHRpbWUgKi8K IAlkb3VibGUJCW50dXBsZXM7CQkvKiB0b3RhbCB0dXBsZXMgcHJvZHVjZWQgKi8KIAlkb3VibGUJ CW50dXBsZXMyOwkJLyogc2Vjb25kYXJ5IG5vZGUtc3BlY2lmaWMgdHVwbGUgY291bnRlciAqLwog CWRvdWJsZQkJbmxvb3BzOwkJCS8qICMgb2YgcnVuIGN5Y2xlcyBmb3IgdGhpcyBub2RlICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmggYi9zcmMvaW5j bHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKaW5kZXggZjcxYTg1MWIxOGQuLjY0NjkzNDAy MGQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKKysr IGIvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCkBAIC0xODQsNiArMTg0LDgg QEAgR2V0VGltZXJGcmVxdWVuY3kodm9pZCkKICNkZWZpbmUgSU5TVFJfVElNRV9BQ0NVTV9ESUZG KHgseSx6KSBcCiAJKCh4KS50aWNrcyArPSAoeSkudGlja3MgLSAoeikudGlja3MpCiAKKyNkZWZp bmUgSU5TVFJfVElNRV9DTVBfTFQoeCx5KSBcCisJKCh4KS50aWNrcyA+ICh5KS50aWNrcykKIAog I2RlZmluZSBJTlNUUl9USU1FX0dFVF9ET1VCTEUodCkgXAogCSgoZG91YmxlKSBJTlNUUl9USU1F X0dFVF9OQU5PU0VDKHQpIC8gTlNfUEVSX1MpCi0tIAoyLjQ3LjEKCg== --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0004-Introduce-stack-for-tracking-per-node-WAL-buffer-.patch" Content-Disposition: attachment; filename="v3-0004-Introduce-stack-for-tracking-per-node-WAL-buffer-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w6c3 RnJvbSBhYTFhY2NjYjNkZmE2YTVkODFhOWEwNDlkOGNiNjM3NjJhM2Q3Y2Y3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MTY6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzIDQvN10gSW50 cm9kdWNlIHN0YWNrIGZvciB0cmFja2luZyBwZXItbm9kZSBXQUwvYnVmZmVyIHVzYWdlCgotLS0K IC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICA4ICstCiBz cmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAyNSArKy0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jICAgICAgICAgICB8ICAyOSArKysKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAgICAgICB8IDE5OSArKysrKysr KysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICAgICAgICAg fCAgNTMgKysrKy0KIDggZmlsZXMgY2hhbmdlZCwgMjYwIGluc2VydGlvbnMoKyksIDYzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRf c3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmMKaW5kZXggZjQzYTMzYjM3ODcuLmVlYWJkODIwZDhlIDEwMDY0NAotLS0gYS9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpAQCAtMTA4OSw4ICsxMDg5LDgg QEAgcGdzc19FeGVjdXRvckVuZChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJCQkgICBQR1NTX0VY RUMsCiAJCQkJICAgSU5TVFJfVElNRV9HRVRfTUlMTElTRUMocXVlcnlEZXNjLT50b3RhbHRpbWUt PnRvdGFsKSwKIAkJCQkgICBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfdG90YWxfcHJvY2Vzc2VkLAot CQkJCSAgICZxdWVyeURlc2MtPnRvdGFsdGltZS0+YnVmdXNhZ2UsCi0JCQkJICAgJnF1ZXJ5RGVz Yy0+dG90YWx0aW1lLT53YWx1c2FnZSwKKwkJCQkgICAmSU5TVFJfR0VUX0JVRlVTQUdFKHF1ZXJ5 RGVzYy0+dG90YWx0aW1lKSwKKwkJCQkgICAmSU5TVFJfR0VUX1dBTFVTQUdFKHF1ZXJ5RGVzYy0+ dG90YWx0aW1lKSwKIAkJCQkgICBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfaml0ID8gJnF1ZXJ5RGVz Yy0+ZXN0YXRlLT5lc19qaXQtPmluc3RyIDogTlVMTCwKIAkJCQkgICBOVUxMLAogCQkJCSAgIHF1 ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wYXJhbGxlbF93b3JrZXJzX3RvX2xhdW5jaCwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4cGxhaW4uYwppbmRleCBkZTY2ZTQ4MzY2ZC4uYmIwNjg5Yjk1ZDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9l eHBsYWluLmMKQEAgLTIyODYsOSArMjI4Niw5IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxh bnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkvKiBTaG93IGJ1ZmZlci9XQUwgdXNhZ2UgKi8K IAlpZiAoZXMtPmJ1ZmZlcnMgJiYgcGxhbnN0YXRlLT5pbnN0cnVtZW50KQotCQlzaG93X2J1ZmZl cl91c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+YnVmdXNhZ2UpOworCQlzaG93X2J1 ZmZlcl91c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhY2suYnVmdXNhZ2UpOwog CWlmIChlcy0+d2FsICYmIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudCkKLQkJc2hvd193YWxfdXNhZ2Uo ZXMsICZwbGFuc3RhdGUtPmluc3RydW1lbnQtPndhbHVzYWdlKTsKKwkJc2hvd193YWxfdXNhZ2Uo ZXMsICZwbGFuc3RhdGUtPmluc3RydW1lbnQtPnN0YWNrLndhbHVzYWdlKTsKIAogCS8qIFByZXBh cmUgcGVyLXdvcmtlciBidWZmZXIvV0FMIHVzYWdlICovCiAJaWYgKGVzLT53b3JrZXJzX3N0YXRl ICYmIChlcy0+YnVmZmVycyB8fCBlcy0+d2FsKSAmJiBlcy0+dmVyYm9zZSkKQEAgLTIzMDUsOSAr MjMwNSw5IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3Rv cnMsCiAKIAkJCUV4cGxhaW5PcGVuV29ya2VyKG4sIGVzKTsKIAkJCWlmIChlcy0+YnVmZmVycykK LQkJCQlzaG93X2J1ZmZlcl91c2FnZShlcywgJmluc3RydW1lbnQtPmJ1ZnVzYWdlKTsKKwkJCQlz aG93X2J1ZmZlcl91c2FnZShlcywgJmluc3RydW1lbnQtPnN0YWNrLmJ1ZnVzYWdlKTsKIAkJCWlm IChlcy0+d2FsKQotCQkJCXNob3dfd2FsX3VzYWdlKGVzLCAmaW5zdHJ1bWVudC0+d2FsdXNhZ2Up OworCQkJCXNob3dfd2FsX3VzYWdlKGVzLCAmaW5zdHJ1bWVudC0+c3RhY2sud2FsdXNhZ2UpOwog CQkJRXhwbGFpbkNsb3NlV29ya2VyKG4sIGVzKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwppbmRleCA5YjUzZGQ5OWU5OS4uNjdhMmZkZDAzNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMK QEAgLTIzOTIsNyArMjM5Miw3IEBAIEV4ZWNDYWxsVHJpZ2dlckZ1bmMoVHJpZ2dlckRhdGEgKnRy aWdkYXRhLAogCSAqIG9uZSAidHVwbGUgcmV0dXJuZWQiIChyZWFsbHkgdGhlIG51bWJlciBvZiBm aXJpbmdzKS4KIAkgKi8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwg MSk7CisJCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwgMSwgZmFsc2UpOwogCiAJcmV0dXJuIChI ZWFwVHVwbGUpIERhdHVtR2V0UG9pbnRlcihyZXN1bHQpOwogfQpAQCAtNDYwNyw3ICs0NjA3LDcg QEAgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwKIAkgKiBvbmUgInR1cGxlIHJl dHVybmVkIiAocmVhbGx5IHRoZSBudW1iZXIgb2YgZmlyaW5ncykuCiAJICovCiAJaWYgKGluc3Ry KQotCQlJbnN0clN0b3AoaW5zdHIgKyB0Z2luZHgsIDEpOworCQlJbnN0clN0b3AoaW5zdHIgKyB0 Z2luZHgsIDEsIGZhbHNlKTsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA5YmM3 YjRlMjBmNy4uNmNlZGFjMzczYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMzI5LDYg KzMyOSwxMyBAQCBzdGFuZGFyZF9FeGVjdXRvclJ1bihRdWVyeURlc2MgKnF1ZXJ5RGVzYywKIAkg Ki8KIAlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlf Y3h0KTsKIAorCS8qCisJICogU3RhcnQgdXAgcmVxdWlyZWQgdG9wLWxldmVsIGluc3RydW1lbnRh dGlvbiBzdGFjayBmb3IgV0FML2J1ZmZlcgorCSAqIHRyYWNraW5nCisJICovCisJaWYgKCFxdWVy eURlc2MtPnRvdGFsdGltZSAmJiAoZXN0YXRlLT5lc19pbnN0cnVtZW50ICYgKElOU1RSVU1FTlRf QlVGRkVSUyB8IElOU1RSVU1FTlRfV0FMKSkpCisJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5z dHJBbGxvYygxLCBlc3RhdGUtPmVzX2luc3RydW1lbnQpOworCiAJLyogQWxsb3cgaW5zdHJ1bWVu dGF0aW9uIG9mIEV4ZWN1dG9yIG92ZXJhbGwgcnVudGltZSAqLwogCWlmIChxdWVyeURlc2MtPnRv dGFsdGltZSkKIAkJSW5zdHJTdGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CkBAIC0zODMsNyAr MzkwLDcgQEAgc3RhbmRhcmRfRXhlY3V0b3JSdW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAJCWRl c3QtPnJTaHV0ZG93bihkZXN0KTsKIAogCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5z dHJTdG9wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lLCBlc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisJCUlu c3RyU3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSwgZXN0YXRlLT5lc19wcm9jZXNzZWQsIGZhbHNl KTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIH0KQEAgLTQ0Miw4ICs0 NDksMTUgQEAgc3RhbmRhcmRfRXhlY3V0b3JGaW5pc2goUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJ aWYgKCEoZXN0YXRlLT5lc190b3BfZWZsYWdzICYgRVhFQ19GTEFHX1NLSVBfVFJJR0dFUlMpKQog CQlBZnRlclRyaWdnZXJFbmRRdWVyeShlc3RhdGUpOwogCisJLyoKKwkgKiBBY2N1bXVsYXRlIHBl ciBub2RlIHN0YXRpc3RpY3MsIGFuZCB0aGVuIHNodXQgZG93biBpbnN0cnVtZW50YXRpb24KKwkg KiBzdGFjaworCSAqLworCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSAmJiBlc3RhdGUtPmVzX2lu c3RydW1lbnQpCisJCUV4ZWNBY2N1bU5vZGVJbnN0cnVtZW50YXRpb24ocXVlcnlEZXNjLT5wbGFu c3RhdGUpOworCiAJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJbnN0clN0b3AocXVlcnlE ZXNjLT50b3RhbHRpbWUsIDApOworCQlJbnN0clN0b3AocXVlcnlEZXNjLT50b3RhbHRpbWUsIDAs IHRydWUpOwogCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCkBAIC0xMjY2 LDcgKzEyODAsMTIgQEAgSW5pdFJlc3VsdFJlbEluZm8oUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKIAkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ1doZW5FeHBycyA9IChFeHByU3RhdGUgKiop CiAJCQlwYWxsb2MwKG4gKiBzaXplb2YoRXhwclN0YXRlICopKTsKIAkJaWYgKGluc3RydW1lbnRf b3B0aW9ucykKLQkJCXJlc3VsdFJlbEluZm8tPnJpX1RyaWdJbnN0cnVtZW50ID0gSW5zdHJBbGxv YyhuLCBpbnN0cnVtZW50X29wdGlvbnMpOworCQl7CisJCQlpZiAoKGluc3RydW1lbnRfb3B0aW9u cyAmIElOU1RSVU1FTlRfVElNRVIpICE9IDApCisJCQkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ0lu c3RydW1lbnQgPSBJbnN0ckFsbG9jKG4sIElOU1RSVU1FTlRfVElNRVIpOworCQkJZWxzZQorCQkJ CXJlc3VsdFJlbEluZm8tPnJpX1RyaWdJbnN0cnVtZW50ID0gSW5zdHJBbGxvYyhuLCBJTlNUUlVN RU5UX1JPV1MpOworCQl9CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUHJvY25vZGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9k ZS5jCmluZGV4IGQyODY0NzEyNTRiLi4xYjNiMzkyMjJhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1Byb2Nub2RlLmMKQEAgLTEyMiw2ICsxMjIsNyBAQAogc3RhdGljIFR1cGxlVGFibGVTbG90ICpF eGVjUHJvY05vZGVGaXJzdChQbGFuU3RhdGUgKm5vZGUpOwogc3RhdGljIFR1cGxlVGFibGVTbG90 ICpFeGVjUHJvY05vZGVJbnN0cihQbGFuU3RhdGUgKm5vZGUpOwogc3RhdGljIGJvb2wgRXhlY1No dXRkb3duTm9kZV93YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRp YyBib29sIEV4ZWNBY2N1bU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyKFBsYW5TdGF0ZSAqbm9k ZSwgdm9pZCAqY29udGV4dCk7CiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04MjgsNiArODI5 LDM0IEBAIEV4ZWNTaHV0ZG93bk5vZGVfd2Fsa2VyKFBsYW5TdGF0ZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBFeGVjQWNjdW1Ob2RlSW5zdHJ1bWVu dGF0aW9uCisgKgorICogQWNjdW11bGF0ZSBpbnN0cnVtZW50YXRpb24gc3RhdHMgZnJvbSBhbGwg ZXhlY3V0aW9uIG5vZGVzIHRvIHRoZWlyIHJlc3BlY3RpdmUKKyAqIHBhcmVudHMgKG9yIHRoZSBv cmlnaW5hbCBwYXJlbnQgaW5zdHJ1bWVudGF0aW9uIHN0YWNrKS4KKyAqLwordm9pZAorRXhlY0Fj Y3VtTm9kZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKm5vZGUpCit7CisJKHZvaWQpIEV4ZWNB Y2N1bU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyKG5vZGUsIE5VTEwpOworfQorCitzdGF0aWMg Ym9vbAorRXhlY0FjY3VtTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0YXRlICpub2Rl LCB2b2lkICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsK KworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKKwlwbGFuc3RhdGVfdHJlZV93YWxrZXIobm9kZSwg RXhlY0FjY3VtTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIsIGNvbnRleHQpOworCisJaWYgKG5v ZGUtPmluc3RydW1lbnQgJiYgbm9kZS0+aW5zdHJ1bWVudC0+c3RhY2sucHJldmlvdXMpCisJCUlu c3RyU3RhY2tBZGQobm9kZS0+aW5zdHJ1bWVudC0+c3RhY2sucHJldmlvdXMsICZub2RlLT5pbnN0 cnVtZW50LT5zdGFjayk7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBFeGVjU2V0VHVw bGVCb3VuZAogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCAxZmUwZjQyMDRlNS4u OGVmNjI2NzIxZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTE2LDU2ICsxNiwx NTAgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1l bnQuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogCiBCdWZmZXJVc2FnZSBwZ0J1ZmZl clVzYWdlOwogc3RhdGljIEJ1ZmZlclVzYWdlIHNhdmVfcGdCdWZmZXJVc2FnZTsKIFdhbFVzYWdl CXBnV2FsVXNhZ2U7CitJbnN0clN0YWNrICpwZ0luc3RyU3RhY2sgPSBOVUxMOwogc3RhdGljIFdh bFVzYWdlIHNhdmVfcGdXYWxVc2FnZTsKIAogc3RhdGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVm ZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxV c2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAqYWRkKTsKIAorLyoKKyAqIFVzZSBSZXNv dXJjZU93bmVyIG1lY2hhbmlzbSB0byBjb3JyZWN0bHkgcmVzZXQgcGdJbnN0clN0YWNrIG9uIGFi b3J0LgorICovCitzdGF0aWMgdm9pZCBSZXNPd25lclJlbGVhc2VJbnN0cnVtZW50YXRpb24oRGF0 dW0gcmVzKTsKK3N0YXRpYyBjb25zdCBSZXNvdXJjZU93bmVyRGVzYyBpbnN0cnVtZW50YXRpb25f cmVzb3duZXJfZGVzYyA9Cit7CisJLm5hbWUgPSAiaW5zdHJ1bWVudGF0aW9uIiwKKwkucmVsZWFz ZV9waGFzZSA9IFJFU09VUkNFX1JFTEVBU0VfQkVGT1JFX0xPQ0tTLAorCS5yZWxlYXNlX3ByaW9y aXR5ID0gUkVMRUFTRV9QUklPX0ZJUlNULAorCS5SZWxlYXNlUmVzb3VyY2UgPSBSZXNPd25lclJl bGVhc2VJbnN0cnVtZW50YXRpb24sCisJLkRlYnVnUHJpbnQgPSBOVUxMLAkJCS8qIGRlZmF1bHQg bWVzc2FnZSBpcyBmaW5lICovCit9OworCitzdGF0aWMgaW5saW5lIHZvaWQKK1Jlc291cmNlT3du ZXJSZW1lbWJlckluc3RyU3RhY2soUmVzb3VyY2VPd25lciBvd25lciwgSW5zdHJ1bWVudGF0aW9u ICppbnN0cikKK3sKKwlSZXNvdXJjZU93bmVyUmVtZW1iZXIob3duZXIsIFBvaW50ZXJHZXREYXR1 bShpbnN0ciksICZpbnN0cnVtZW50YXRpb25fcmVzb3duZXJfZGVzYyk7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZAorUmVzb3VyY2VPd25lckZvcmdldEluc3RyU3RhY2soUmVzb3VyY2VPd25lciBv d25lciwgSW5zdHJ1bWVudGF0aW9uICppbnN0cikKK3sKKwlSZXNvdXJjZU93bmVyRm9yZ2V0KG93 bmVyLCBQb2ludGVyR2V0RGF0dW0oaW5zdHIpLCAmaW5zdHJ1bWVudGF0aW9uX3Jlc293bmVyX2Rl c2MpOworfQorCitzdGF0aWMgdm9pZAorSW5zdHJQdXNoU3RhY2tSZXNvdXJjZShJbnN0cnVtZW50 YXRpb24gKnJlcykKK3sKKwlSZXNvdXJjZU93bmVyIG93bmVyID0gQ3VycmVudFJlc291cmNlT3du ZXI7CisKKwlBc3NlcnQob3duZXIgIT0gTlVMTCk7CisKKwlyZXMtPm93bmVyID0gb3duZXI7CisK KwlSZXNvdXJjZU93bmVyRW5sYXJnZShvd25lcik7CisJUmVzb3VyY2VPd25lclJlbWVtYmVySW5z dHJTdGFjayhvd25lciwgcmVzKTsKKworCXJlcy0+c3RhY2sucHJldmlvdXMgPSBwZ0luc3RyU3Rh Y2s7CisJcGdJbnN0clN0YWNrID0gJnJlcy0+c3RhY2s7Cit9CisKK3N0YXRpYyB2b2lkCitJbnN0 clBvcFN0YWNrUmVzb3VyY2UoSW5zdHJ1bWVudGF0aW9uICpyZXMpCit7CisJQXNzZXJ0KHJlcyAh PSBOVUxMKTsKKwlBc3NlcnQocmVzLT5vd25lciAhPSBOVUxMKTsKKworCXBnSW5zdHJTdGFjayA9 IHJlcy0+c3RhY2sucHJldmlvdXM7CisKKwlSZXNvdXJjZU93bmVyRm9yZ2V0SW5zdHJTdGFjayhy ZXMtPm93bmVyLCByZXMpOworfQorCitzdGF0aWMgYm9vbAorU3RhY2tJc1BhcmVudChJbnN0clN0 YWNrICogc3RhY2ssIEluc3RyU3RhY2sgKiBlbnRyeSkKK3sKKwlpZiAoZW50cnktPnByZXZpb3Vz ID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChlbnRyeS0+cHJldmlvdXMgPT0gc3Rh Y2spCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIFN0YWNrSXNQYXJlbnQoc3RhY2ssIGVudHJ5 LT5wcmV2aW91cyk7Cit9CisKK3N0YXRpYyB2b2lkCitSZXNPd25lclJlbGVhc2VJbnN0cnVtZW50 YXRpb24oRGF0dW0gcmVzKQoreworCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSAoSW5zdHJ1bWVu dGF0aW9uICopIERhdHVtR2V0UG9pbnRlcihyZXMpOworCisJLyoKKwkgKiBCZWNhdXNlIHJlZ2lz dGVyZWQgcmVzb3VyY2VzIGFyZSAqbm90KiBjYWxsZWQgaW4gcmV2ZXJzZSBvcmRlciwgd2UnbGwK KwkgKiBnZXQgd2hhdCB3YXMgZmlyc3QgcmVnaXN0ZXJlZCBmaXJzdCBhdCBzaHV0ZG93bi4gVGh1 cywgb24gYW55IGxhdGVyCisJICogcmVzb3VyY2VzIHdlIG5lZWQgdG8gbm90IGNoYW5nZSB0aGUg c3RhY2ssIHdoaWNoIHdhcyBhbHJlYWR5IHNldCB0byB0aGUKKwkgKiBjb3JyZWN0IHByZXZpb3Vz IGVudHJ5LgorCSAqLworCWlmIChwZ0luc3RyU3RhY2sgJiYgIVN0YWNrSXNQYXJlbnQocGdJbnN0 clN0YWNrLCAmaW5zdHItPnN0YWNrKSkKKwkJcGdJbnN0clN0YWNrID0gaW5zdHItPnN0YWNrLnBy ZXZpb3VzOworCisJLyoKKwkgKiBBbHdheXMgYWNjdW11bGF0ZSBhbGwgY29sbGVjdGVkIHN0YXRz IGJlZm9yZSB0aGUgYWJvcnQsIGV2ZW4gaWYgd2UKKwkgKiBhbHJlYWR5IHdhbGtlZCB1cCB0aGUg c3RhY2sgd2l0aCBhbiBlYXJsaWVyIHJlc291cmNlLgorCSAqLworCWlmIChwZ0luc3RyU3RhY2sp CisJCUluc3RyU3RhY2tBZGQocGdJbnN0clN0YWNrLCAmaW5zdHItPnN0YWNrKTsKKworCWluc3Ry LT5maW5hbGl6ZWQgPSB0cnVlOworfQogCiAvKiBHZW5lcmFsIHB1cnBvc2UgaW5zdHJ1bWVudGF0 aW9uIGhhbmRsaW5nICovCiBJbnN0cnVtZW50YXRpb24gKgogSW5zdHJBbGxvYyhpbnQgbiwgaW50 IGluc3RydW1lbnRfb3B0aW9ucykKIHsKLQlJbnN0cnVtZW50YXRpb24gKmluc3RyOworCUluc3Ry dW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOworCWJvb2wJCW5lZWRfYnVmZmVycyA9IChpbnN0cnVt ZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9IDA7CisJYm9vbAkJbmVlZF93YWwg PSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9XQUwpICE9IDA7CisJYm9vbAkJbmVl ZF90aW1lciA9IChpbnN0cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX1RJTUVSKSAhPSAwOwor CWludAkJCWk7CisKKwkvKgorCSAqIElmIHJlc291cmNlIG93bmVyIHdpbGwgYmUgdXNlZCwgd2Ug bXVzdCBhbGxvY2F0ZSBpbiB0aGUgdHJhbnNhY3Rpb24KKwkgKiBjb250ZXh0IChub3QgdGhlIGNh bGxpbmcgY29udGV4dCwgdXN1YWxseSBhIGxvd2VyIGNvbnRleHQpLCBiZWNhdXNlIHRoZQorCSAq IG1lbW9yeSBtaWdodCBvdGhlcndpc2UgYmUgZnJlZWQgdG9vIGVhcmx5IGluIGFuIGFib3J0IHNp dHVhdGlvbi4KKwkgKi8KKwlpZiAobmVlZF9idWZmZXJzIHx8IG5lZWRfd2FsKQorCQlpbnN0ciA9 IE1lbW9yeUNvbnRleHRBbGxvY1plcm8oQ3VyVHJhbnNhY3Rpb25Db250ZXh0LCBuICogc2l6ZW9m KEluc3RydW1lbnRhdGlvbikpOworCWVsc2UKKwkJaW5zdHIgPSBwYWxsb2MwKG4gKiBzaXplb2Yo SW5zdHJ1bWVudGF0aW9uKSk7CiAKLQkvKiBpbml0aWFsaXplIGFsbCBmaWVsZHMgdG8gemVyb2Vz LCB0aGVuIG1vZGlmeSBhcyBuZWVkZWQgKi8KLQlpbnN0ciA9IHBhbGxvYzAobiAqIHNpemVvZihJ bnN0cnVtZW50YXRpb24pKTsKLQlpZiAoaW5zdHJ1bWVudF9vcHRpb25zICYgKElOU1RSVU1FTlRf QlVGRkVSUyB8IElOU1RSVU1FTlRfVElNRVIgfCBJTlNUUlVNRU5UX1dBTCkpCisJZm9yIChpID0g MDsgaSA8IG47IGkrKykKIAl7Ci0JCWJvb2wJCW5lZWRfYnVmZmVycyA9IChpbnN0cnVtZW50X29w dGlvbnMgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9IDA7Ci0JCWJvb2wJCW5lZWRfd2FsID0gKGlu c3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfV0FMKSAhPSAwOwotCQlib29sCQluZWVkX3Rp bWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfVElNRVIpICE9IDA7Ci0JCWlu dAkJCWk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKLQkJewotCQkJaW5zdHJbaV0ubmVl ZF9idWZ1c2FnZSA9IG5lZWRfYnVmZmVyczsKLQkJCWluc3RyW2ldLm5lZWRfd2FsdXNhZ2UgPSBu ZWVkX3dhbDsKLQkJCWluc3RyW2ldLm5lZWRfdGltZXIgPSBuZWVkX3RpbWVyOwotCQl9CisJCWlu c3RyW2ldLm5lZWRfYnVmdXNhZ2UgPSBuZWVkX2J1ZmZlcnM7CisJCWluc3RyW2ldLm5lZWRfd2Fs dXNhZ2UgPSBuZWVkX3dhbDsKKwkJaW5zdHJbaV0ubmVlZF90aW1lciA9IG5lZWRfdGltZXI7CiAJ fQogCiAJcmV0dXJuIGluc3RyOwogfQorCiB2b2lkCiBJbnN0clN0YXJ0KEluc3RydW1lbnRhdGlv biAqaW5zdHIpCiB7CisJQXNzZXJ0KCFpbnN0ci0+ZmluYWxpemVkKTsKKwogCWlmIChpbnN0ci0+ bmVlZF90aW1lciAmJgogCQkhSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKGluc3RyLT5zdGFy dHRpbWUpKQogCQllbG9nKEVSUk9SLCAiSW5zdHJTdGFydCBjYWxsZWQgdHdpY2UgaW4gYSByb3ci KTsKIAotCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSkKLQkJaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0 ID0gcGdCdWZmZXJVc2FnZTsKLQotCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkKLQkJaW5zdHIt PndhbHVzYWdlX3N0YXJ0ID0gcGdXYWxVc2FnZTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2Ug fHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJCUluc3RyUHVzaFN0YWNrUmVzb3VyY2UoaW5zdHIp OwogfQorCiB2b2lkCi1JbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5U dXBsZXMpCitJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMs IGJvb2wgZmluYWxpemUpCiB7CiAJaW5zdHJfdGltZQllbmR0aW1lOwogCkBAIC04NCwxNCArMTc4 LDE1IEBAIEluc3RyU3RvcChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykK IAkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKIAl9CiAKLQkvKiBBZGQg ZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8KLQlp ZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+ YnVmdXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVzYWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0 KTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UgfHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJ CUluc3RyUG9wU3RhY2tSZXNvdXJjZShpbnN0cik7CiAKLQlpZiAoaW5zdHItPm5lZWRfd2FsdXNh Z2UpCi0JCVdhbFVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+d2FsdXNhZ2UsCi0JCQkJCQkgICZwZ1dh bFVzYWdlLCAmaW5zdHItPndhbHVzYWdlX3N0YXJ0KTsKKwlpZiAoZmluYWxpemUpCisJeworCQlp bnN0ci0+ZmluYWxpemVkID0gdHJ1ZTsKKwkJaWYgKHBnSW5zdHJTdGFjaykKKwkJCUluc3RyU3Rh Y2tBZGQocGdJbnN0clN0YWNrLCAmaW5zdHItPnN0YWNrKTsKKwl9CiB9CiAKIC8qIEFsbG9jYXRl IG5ldyBub2RlIGluc3RydW1lbnRhdGlvbiBzdHJ1Y3R1cmUocykgKi8KQEAgLTEzOSwxMiArMjM0 LDE0IEBAIEluc3RyU3RhcnROb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKiBpbnN0cikKIAkJIUlO U1RSX1RJTUVfU0VUX0NVUlJFTlRfTEFaWShpbnN0ci0+c3RhcnR0aW1lKSkKIAkJZWxvZyhFUlJP UiwgIkluc3RyU3RhcnROb2RlIGNhbGxlZCB0d2ljZSBpbiBhIHJvdyIpOwogCi0JLyogc2F2ZSBi dWZmZXIgdXNhZ2UgdG90YWxzIGF0IG5vZGUgZW50cnksIGlmIG5lZWRlZCAqLwotCWlmIChpbnN0 ci0+bmVlZF9idWZ1c2FnZSkKLQkJaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2Fn ZTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UgfHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJ eworCQkvKiBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgaGF2ZSBhIHBhcmVudCwgZXZlbiBhdCB0aGUg dG9wIG1vc3Qgbm9kZSAqLworCQlBc3NlcnQocGdJbnN0clN0YWNrICE9IE5VTEwpOwogCi0JaWYg KGluc3RyLT5uZWVkX3dhbHVzYWdlKQotCQlpbnN0ci0+d2FsdXNhZ2Vfc3RhcnQgPSBwZ1dhbFVz YWdlOworCQlpbnN0ci0+c3RhY2sucHJldmlvdXMgPSBwZ0luc3RyU3RhY2s7CisJCXBnSW5zdHJT dGFjayA9ICZpbnN0ci0+c3RhY2s7CisJfQogfQogCiAvKiBFeGl0IGZyb20gYSBwbGFuIG5vZGUg Ki8KQEAgLTE2OSwxNCArMjY2LDEyIEBAIEluc3RyU3RvcE5vZGUoTm9kZUluc3RydW1lbnRhdGlv biAqIGluc3RyLCBkb3VibGUgblR1cGxlcykKIAkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+ c3RhcnR0aW1lKTsKIAl9CiAKLQkvKiBBZGQgZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVu dHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8KLQlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1 ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+YnVmdXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVz YWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0KTsKLQotCWlmIChpbnN0ci0+bmVlZF93YWx1c2Fn ZSkKLQkJV2FsVXNhZ2VBY2N1bURpZmYoJmluc3RyLT53YWx1c2FnZSwKLQkJCQkJCSAgJnBnV2Fs VXNhZ2UsICZpbnN0ci0+d2FsdXNhZ2Vfc3RhcnQpOworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2Fn ZSB8fCBpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwl7CisJCS8qIEVuc3VyZSB0aGF0IHdlIGFsd2F5 cyBoYXZlIGEgcGFyZW50LCBldmVuIGF0IHRoZSB0b3AgbW9zdCBub2RlICovCisJCUFzc2VydChp bnN0ci0+c3RhY2sucHJldmlvdXMgIT0gTlVMTCk7CisJCXBnSW5zdHJTdGFjayA9IGluc3RyLT5z dGFjay5wcmV2aW91czsKKwl9CiAKIAkvKiBJcyB0aGlzIHRoZSBmaXJzdCB0dXBsZSBvZiB0aGlz IGN5Y2xlPyAqLwogCWlmICghaW5zdHItPnJ1bm5pbmcpCkBAIC0yNTMsMTAgKzM0OCwyMCBAQCBJ bnN0ckFnZ05vZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqIGRzdCwgTm9kZUluc3RydW1lbnRhdGlv biAqIGFkZCkKIAogCS8qIEFkZCBkZWx0YSBvZiBidWZmZXIgdXNhZ2Ugc2luY2UgZW50cnkgdG8g bm9kZSdzIHRvdGFscyAqLwogCWlmIChkc3QtPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdl QWRkKCZkc3QtPmJ1ZnVzYWdlLCAmYWRkLT5idWZ1c2FnZSk7CisJCUJ1ZmZlclVzYWdlQWRkKCZk c3QtPnN0YWNrLmJ1ZnVzYWdlLCAmYWRkLT5zdGFjay5idWZ1c2FnZSk7CiAKIAlpZiAoZHN0LT5u ZWVkX3dhbHVzYWdlKQotCQlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNh Z2UpOworCQlXYWxVc2FnZUFkZCgmZHN0LT5zdGFjay53YWx1c2FnZSwgJmFkZC0+c3RhY2sud2Fs dXNhZ2UpOworfQorCit2b2lkCitJbnN0clN0YWNrQWRkKEluc3RyU3RhY2sgKiBkc3QsIEluc3Ry U3RhY2sgKiBhZGQpCit7CisJQXNzZXJ0KGRzdCAhPSBOVUxMKTsKKwlBc3NlcnQoYWRkICE9IE5V TEwpOworCisJQnVmZmVyVXNhZ2VBZGQoJmRzdC0+YnVmdXNhZ2UsICZhZGQtPmJ1ZnVzYWdlKTsK KwlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNhZ2UpOwogfQogCiAvKiBu b3RlIGN1cnJlbnQgdmFsdWVzIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCkBA IC0yODEsNiArMzg2LDE0IEBAIEluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVm dXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKIHZvaWQKIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5 KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQogeworCWlmIChwZ0lu c3RyU3RhY2sgIT0gTlVMTCkKKwl7CisJCUluc3RyU3RhY2sgKmRzdCA9IHBnSW5zdHJTdGFjazsK KworCQlCdWZmZXJVc2FnZUFkZCgmZHN0LT5idWZ1c2FnZSwgYnVmdXNhZ2UpOworCQlXYWxVc2Fn ZUFkZCgmZHN0LT53YWx1c2FnZSwgd2FsdXNhZ2UpOworCX0KKwogCUJ1ZmZlclVzYWdlQWRkKCZw Z0J1ZmZlclVzYWdlLCBidWZ1c2FnZSk7CiAJV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVz YWdlKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDMyNDhlNzhjZDI4Li42NmMzMDg1 MDZhYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC0yOTcsNiArMjk3LDcgQEAgZXh0ZXJu IHZvaWQgRXhlY1NldEV4ZWNQcm9jTm9kZShQbGFuU3RhdGUgKm5vZGUsIEV4ZWNQcm9jTm9kZU10 ZCBmdW5jdGlvbik7CiBleHRlcm4gTm9kZSAqTXVsdGlFeGVjUHJvY05vZGUoUGxhblN0YXRlICpu b2RlKTsKIGV4dGVybiB2b2lkIEV4ZWNFbmROb2RlKFBsYW5TdGF0ZSAqbm9kZSk7CiBleHRlcm4g dm9pZCBFeGVjU2h1dGRvd25Ob2RlKFBsYW5TdGF0ZSAqbm9kZSk7CitleHRlcm4gdm9pZCBFeGVj QWNjdW1Ob2RlSW5zdHJ1bWVudGF0aW9uKFBsYW5TdGF0ZSAqbm9kZSk7CiBleHRlcm4gdm9pZCBF eGVjU2V0VHVwbGVCb3VuZChpbnQ2NCB0dXBsZXNfbmVlZGVkLCBQbGFuU3RhdGUgKmNoaWxkX25v ZGUpOwogCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAppbmRleCA3OGQzNjUzOTk3Yi4uZDA0 NjA3Y2U0MGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKQEAgLTE0LDYgKzE0LDcgQEAK ICNkZWZpbmUgSU5TVFJVTUVOVF9ICiAKICNpbmNsdWRlICJwb3J0YWJpbGl0eS9pbnN0cl90aW1l LmgiCisjaW5jbHVkZSAidXRpbHMvcmVzb3duZXIuaCIKIAogCiAvKgpAQCAtNjYsMTEgKzY3LDIz IEBAIHR5cGVkZWYgZW51bSBJbnN0cnVtZW50T3B0aW9uCiAJSU5TVFJVTUVOVF9BTEwgPSBQR19J TlQzMl9NQVgKIH0gSW5zdHJ1bWVudE9wdGlvbjsKIAorLyogU3RhY2sgb2YgV0FML2J1ZmZlciB1 c2FnZSB1c2VkIGZvciBwZXItbm9kZSBpbnN0cnVtZW50YXRpb24gKi8KK3R5cGVkZWYgc3RydWN0 IEluc3RyU3RhY2sKK3sKKwlzdHJ1Y3QgSW5zdHJTdGFjayAqcHJldmlvdXM7CisJQnVmZmVyVXNh Z2UgYnVmdXNhZ2U7CisJV2FsVXNhZ2UJd2FsdXNhZ2U7Cit9CQkJSW5zdHJTdGFjazsKKwogLyoK ICAqIEdlbmVyYWwgcHVycG9zZSBpbnN0cnVtZW50YXRpb24gdGhhdCBjYW4gY2FwdHVyZSB0aW1l LCBXQUwvYnVmZmVyIHVzYWdlIGFuZCB0dXBsZXMKICAqCiAgKiBJbml0aWFsaXplZCB0aHJvdWdo IEluc3RyQWxsb2MsIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGNhbGxzIHRvIGEgcGFpciBvZgog ICogSW5zdHJTdGFydC9JbnN0clN0b3AgKGFjdGl2aXR5IGlzIG1lYXN1cmVkIGluYmV0d2Vlbiku CisgKgorICogVXNlcyByZXNvdXJjZSBvd25lciBtZWNoYW5pc20gZm9yIGhhbmRsaW5nIGFib3J0 cywgYXMgc3VjaCwgdGhlIGNhbGxlciAqbXVzdCogbm90IGV4aXQgb3V0IG9mCisgKiB0b3AgbGV2 ZWwgdHJhbnNhY3Rpb24gYmV0d2VlbiBJbnN0clN0YXJ0L0luc3RyU3RvcCBjYWxscyBpbiByZWd1 bGFyIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBuZWVkZWQsCisgKiBkaXJlY3RseSB1c2UgSW5zdHJQ dXNoU3RhY2svSW5zdHJQb3BTdGFjayBpbiBhIFBHX1RSWS9QR19GSU5BTExZIGJsb2NrIGluc3Rl YWQuCiAgKi8KIHR5cGVkZWYgc3RydWN0IEluc3RydW1lbnRhdGlvbgogewpAQCAtNzksMTggKzky LDIyIEBAIHR5cGVkZWYgc3RydWN0IEluc3RydW1lbnRhdGlvbgogCWJvb2wJCW5lZWRfYnVmdXNh Z2U7CS8qIHRydWUgaWYgd2UgbmVlZCBidWZmZXIgdXNhZ2UgZGF0YSAqLwogCWJvb2wJCW5lZWRf d2FsdXNhZ2U7CS8qIHRydWUgaWYgd2UgbmVlZCBXQUwgdXNhZ2UgZGF0YSAqLwogCS8qIEludGVy bmFsIHN0YXRlIGtlZXBpbmc6ICovCisJYm9vbAkJZmluYWxpemVkOwkJLyogdHJ1ZSBpZiBubyBt b3JlIEluc3RyU3RhcnQgY2FsbHMgYXJlCisJCQkJCQkJCSAqIGFsbG93ZWQgKi8KIAlpbnN0cl90 aW1lCXN0YXJ0dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgbGFzdCBJbnN0clN0YXJ0ICovCi0JQnVm ZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQ7IC8qIGJ1ZmZlciB1c2FnZSBhdCBzdGFydCAqLwotCVdh bFVzYWdlCXdhbHVzYWdlX3N0YXJ0OyAvKiBXQUwgdXNhZ2UgYXQgc3RhcnQgKi8KIAkvKiBBY2N1 bXVsYXRlZCBzdGF0aXN0aWNzOiAqLwogCWluc3RyX3RpbWUJdG90YWw7CQkJLyogdG90YWwgcnVu dGltZSAqLwogCWRvdWJsZQkJbnR1cGxlczsJCS8qIHRvdGFsIHR1cGxlcyBjb3VudGVkIGluIElu c3RyU3RvcCAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyogdG90YWwgYnVmZmVyIHVzYWdl ICovCi0JV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwgdXNhZ2UgKi8KKwlJbnN0clN0 YWNrCXN0YWNrOwkJCS8qIHN0YWNrIHRyYWNraW5nIGJ1ZmZlci9XQUwgdXNhZ2UgKi8KKwlSZXNv dXJjZU93bmVyIG93bmVyOwogfSBJbnN0cnVtZW50YXRpb247CiAKIC8qCiAgKiBTcGVjaWFsaXpl ZCBpbnN0cnVtZW50YXRpb24gZm9yIHBlci1ub2RlIGV4ZWN1dGlvbiBzdGF0aXN0aWNzCisgKgor ICogUmVxdWlyZXMgdXNlIG9mIGFuIG91dGVyIEluc3RyU3RhcnQvSW5zdHJTdG9wIHRvIGhhbmRs ZSB0aGUgc3RhY2sgdXNlZCBmb3IgV0FML2J1ZmZlcgorICogdXNhZ2Ugc3RhdGlzdGljcywgYW5k IHJlbGllcyBvbiBpdCBmb3IgbWFuYWdpbmcgYWJvcnRzLiBTb2xlbHkgaW50ZW5kZWQgZm9yCisg KiB0aGUgZXhlY3V0b3IgYW5kIGFueW9uZSByZXBvcnRpbmcgYWJvdXQgaXRzIGFjdGl2aXRpZXMg KGUuZy4gRVhQTEFJTiBBTkFMWVpFKS4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgTm9kZUluc3RydW1l bnRhdGlvbgogewpAQCAtMTA1LDggKzEyMiw2IEBAIHR5cGVkZWYgc3RydWN0IE5vZGVJbnN0cnVt ZW50YXRpb24KIAlpbnN0cl90aW1lCWNvdW50ZXI7CQkvKiBhY2N1bXVsYXRlZCBydW50aW1lIGZv ciB0aGlzIG5vZGUgKi8KIAlpbnN0cl90aW1lCWZpcnN0dHVwbGU7CQkvKiB0aW1lIGZvciBmaXJz dCB0dXBsZSBvZiB0aGlzIGN5Y2xlICovCiAJZG91YmxlCQl0dXBsZWNvdW50OwkJLyogIyBvZiB0 dXBsZXMgZW1pdHRlZCBzbyBmYXIgdGhpcyBjeWNsZSAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdl X3N0YXJ0OyAvKiBidWZmZXIgdXNhZ2UgYXQgc3RhcnQgKi8KLQlXYWxVc2FnZQl3YWx1c2FnZV9z dGFydDsgLyogV0FMIHVzYWdlIGF0IHN0YXJ0ICovCiAJLyogQWNjdW11bGF0ZWQgc3RhdGlzdGlj cyBhY3Jvc3MgYWxsIGNvbXBsZXRlZCBjeWNsZXM6ICovCiAJaW5zdHJfdGltZQlzdGFydHVwOwkJ LyogdG90YWwgc3RhcnR1cCB0aW1lICovCiAJaW5zdHJfdGltZQl0b3RhbDsJCQkvKiB0b3RhbCB0 aW1lICovCkBAIC0xMTUsOCArMTMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTm9kZUluc3RydW1lbnRh dGlvbgogCWRvdWJsZQkJbmxvb3BzOwkJCS8qICMgb2YgcnVuIGN5Y2xlcyBmb3IgdGhpcyBub2Rl ICovCiAJZG91YmxlCQluZmlsdGVyZWQxOwkJLyogIyBvZiB0dXBsZXMgcmVtb3ZlZCBieSBzY2Fu cXVhbCBvciBqb2lucXVhbCAqLwogCWRvdWJsZQkJbmZpbHRlcmVkMjsJCS8qICMgb2YgdHVwbGVz IHJlbW92ZWQgYnkgIm90aGVyIiBxdWFscyAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyog dG90YWwgYnVmZmVyIHVzYWdlICovCi0JV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwg dXNhZ2UgKi8KKwlJbnN0clN0YWNrCXN0YWNrOwkJCS8qIHN0YWNrIHRyYWNraW5nIGJ1ZmZlci9X QUwgdXNhZ2UgKi8KIH0JCQlOb2RlSW5zdHJ1bWVudGF0aW9uOwogCiB0eXBlZGVmIHN0cnVjdCBX b3JrZXJJbnN0cnVtZW50YXRpb24KQEAgLTEyNywxMCArMTQxLDExIEBAIHR5cGVkZWYgc3RydWN0 IFdvcmtlckluc3RydW1lbnRhdGlvbgogCiBleHRlcm4gUEdETExJTVBPUlQgQnVmZmVyVXNhZ2Ug cGdCdWZmZXJVc2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxVc2FnZSBwZ1dhbFVzYWdlOwor ZXh0ZXJuIFBHRExMSU1QT1JUIEluc3RyU3RhY2sgKiBwZ0luc3RyU3RhY2s7CiAKIGV4dGVybiBJ bnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMp OwogZXh0ZXJuIHZvaWQgSW5zdHJTdGFydChJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKLWV4dGVy biB2b2lkIEluc3RyU3RvcChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7 CitleHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5U dXBsZXMsIGJvb2wgZmluYWxpemUpOwogCiBleHRlcm4gTm9kZUluc3RydW1lbnRhdGlvbiAqIElu c3RyQWxsb2NOb2RlKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAogCQkJCQkJCQkJCQli b29sIGFzeW5jX21vZGUpOwpAQCAtMTQ2LDI2ICsxNjEsNDYgQEAgZXh0ZXJuIHZvaWQgSW5zdHJF bmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdl KTsKIGV4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1 c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKIGV4dGVybiB2b2lkIEJ1ZmZlclVzYWdlQWNjdW1E aWZmKEJ1ZmZlclVzYWdlICpkc3QsCiAJCQkJCQkJCSBjb25zdCBCdWZmZXJVc2FnZSAqYWRkLCBj b25zdCBCdWZmZXJVc2FnZSAqc3ViKTsKK2V4dGVybiB2b2lkIEluc3RyU3RhY2tBZGQoSW5zdHJT dGFjayAqIGRzdCwgSW5zdHJTdGFjayAqIGFkZCk7CiBleHRlcm4gdm9pZCBXYWxVc2FnZUFjY3Vt RGlmZihXYWxVc2FnZSAqZHN0LCBjb25zdCBXYWxVc2FnZSAqYWRkLAogCQkJCQkJCSAgY29uc3Qg V2FsVXNhZ2UgKnN1Yik7CiAKKyNkZWZpbmUgSU5TVFJfR0VUX0JVRlVTQUdFKGluc3RyKSBcCisJ aW5zdHItPnN0YWNrLmJ1ZnVzYWdlCisKKyNkZWZpbmUgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3Ry KSBcCisJaW5zdHItPnN0YWNrLndhbHVzYWdlCisKICNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfSU5D UihmbGQpIGRvIHsgXAogCQlwZ0J1ZmZlclVzYWdlLmZsZCsrOyBcCisJCWlmIChwZ0luc3RyU3Rh Y2spIFwKKwkJCXBnSW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkKys7IFwKIAl9IHdoaWxlKDApCiAj ZGVmaW5lIElOU1RSX0JVRlVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKIAkJcGdCdWZmZXJVc2Fn ZS5mbGQgKz0gdmFsOyBcCisJCWlmIChwZ0luc3RyU3RhY2spIFwKKwkJCXBnSW5zdHJTdGFjay0+ YnVmdXNhZ2UuZmxkICs9IHZhbDsgXAogCX0gd2hpbGUoMCkKICNkZWZpbmUgSU5TVFJfQlVGVVNB R0VfVElNRV9BREQoZmxkLHZhbCkgZG8geyBcCiAJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2Fn ZS5mbGQsIHZhbCk7IFwKKwlpZiAocGdJbnN0clN0YWNrKSBcCisJCUlOU1RSX1RJTUVfQUREKHBn SW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkLCB2YWwpOyBcCiAJfSB3aGlsZSAoMCkKICNkZWZpbmUg SU5TVFJfQlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKGZsZCxlbmR2YWwsc3RhcnR2YWwpIGRvIHsg XAogCUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVzYWdlLmZsZCwgZW5kdmFsLCBzdGFy dHZhbCk7IFwKKwlpZiAocGdJbnN0clN0YWNrKSBcCisJCUlOU1RSX1RJTUVfQUNDVU1fRElGRihw Z0luc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCwgZW5kdmFsLCBzdGFydHZhbCk7IFwKIAl9IHdoaWxl ICgwKQorCiAjZGVmaW5lIElOU1RSX1dBTFVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKIAkJcGdXYWxV c2FnZS5mbGQrKzsgXAorCQlpZiAocGdJbnN0clN0YWNrKSBcCisJCQlwZ0luc3RyU3RhY2stPndh bHVzYWdlLmZsZCsrOyBcCiAJfSB3aGlsZSgwKQogI2RlZmluZSBJTlNUUl9XQUxVU0FHRV9BREQo ZmxkLHZhbCkgZG8geyBcCiAJCXBnV2FsVXNhZ2UuZmxkICs9IHZhbDsgXAorCQlpZiAocGdJbnN0 clN0YWNrKSBcCisJCQlwZ0luc3RyU3RhY2stPndhbHVzYWdlLmZsZCArPSB2YWw7IFwKIAl9IHdo aWxlKDApCiAKICNlbmRpZgkJCQkJCQkvKiBJTlNUUlVNRU5UX0ggKi8KLS0gCjIuNDcuMQoK --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0005-Use-Instrumentation-stack-for-parallel-query-aggr.patch" Content-Disposition: attachment; filename="v3-0005-Use-Instrumentation-stack-for-parallel-query-aggr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w6d4 RnJvbSBlZDhlOGRhZjkxM2VkODU0N2IwNWQ3NDg1YWNjZDA2NWE2ZjEwOWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjQ6NDkgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzIDUvN10gVXNl IEluc3RydW1lbnRhdGlvbiBzdGFjayBmb3IgcGFyYWxsZWwgcXVlcnkKIGFnZ3JlZ2F0aW9uIGlu IHdvcmtlcnMKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICB8ICA2 ICsrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyAgICB8ICA2ICsrKyst LQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMgICB8ICA2ICsrKystLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8ICA2ICsrKystLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICB8ICA2ICsrKystLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvaW5zdHJ1bWVudC5jICAgICB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICB8ICA0ICsrLS0KIDcgZmlsZXMgY2hhbmdl ZCwgMzIgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5j CmluZGV4IDJmN2QxNDM3OTE5Li5hMzY2MDZlZWQwZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpA QCAtMjg3MCw2ICsyODcwLDcgQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVu dCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUmVsYXRpb24JaW5kZXhSZWw7CiAJTE9DS01PREUJaGVh cExvY2ttb2RlOwogCUxPQ0tNT0RFCWluZGV4TG9ja21vZGU7CisJSW5zdHJ1bWVudGF0aW9uICpp bnN0cjsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZTsKIAlCdWZmZXJVc2FnZSAqYnVmZmVydXNhZ2U7 CiAJaW50CQkJc29ydG1lbTsKQEAgLTI5MTksNyArMjkyMCw3IEBAIF9icmluX3BhcmFsbGVsX2J1 aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRh Y2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZl ciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVs UXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CiAKIAkvKgogCSAq IE1pZ2h0IGFzIHdlbGwgdXNlIHJlbGlhYmxlIGZpZ3VyZSB3aGVuIGRvbGluZyBvdXQgbWFpbnRl bmFuY2Vfd29ya19tZW0KQEAgLTI5MzQsNyArMjkzNSw4IEBAIF9icmluX3BhcmFsbGVsX2J1aWxk X21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBXQUwvYnVm ZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJ1c2FnZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdh bHVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBmYWxz ZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51 bWJlcl0sCisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVydXNh Z2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAogCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3Jr ZXJOdW1iZXJdKTsKIAogCWluZGV4X2Nsb3NlKGluZGV4UmVsLCBpbmRleExvY2ttb2RlKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IDNkNzFiNDQyYWE5Li5iNDU0OTM0YzEwOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC0yMDgzLDYgKzIwODMsNyBAQCBfZ2lu X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVJl bGF0aW9uCWluZGV4UmVsOwogCUxPQ0tNT0RFCWhlYXBMb2NrbW9kZTsKIAlMT0NLTU9ERQlpbmRl eExvY2ttb2RlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHI7CiAJV2FsVXNhZ2UgICAqd2FsdXNh Z2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWludAkJCXNvcnRtZW07CkBAIC0yMTUx LDcgKzIxNTIsNyBAQCBfZ2luX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRhY2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7 CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhl Y3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3Rh cnRQYXJhbGxlbFF1ZXJ5KCk7CiAKIAkvKgogCSAqIE1pZ2h0IGFzIHdlbGwgdXNlIHJlbGlhYmxl IGZpZ3VyZSB3aGVuIGRvbGluZyBvdXQgbWFpbnRlbmFuY2Vfd29ya19tZW0KQEAgLTIxNjYsNyAr MjE2Nyw4IEBAIF9naW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4 ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9L RVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnko JmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoaW5zdHIsCisJCQkJCQkgICZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJ CQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOwogCiAJaW5kZXhfY2xvc2Uo aW5kZXhSZWwsIGluZGV4TG9ja21vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpp bmRleCA4ODI4YTdhOGY4OS4uNjE1ZmQxZTAzZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jCkBAIC0xNzUyLDYgKzE3NTIsNyBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21f c2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUmVsYXRpb24JaW5kZXhSZWw7CiAJTE9DS01P REUJaGVhcExvY2ttb2RlOwogCUxPQ0tNT0RFCWluZGV4TG9ja21vZGU7CisJSW5zdHJ1bWVudGF0 aW9uICppbnN0cjsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZTsKIAlCdWZmZXJVc2FnZSAqYnVmZmVy dXNhZ2U7CiAJaW50CQkJc29ydG1lbTsKQEAgLTE4MjcsNyArMTgyOCw3IEBAIF9idF9wYXJhbGxl bF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAl9CiAKIAkvKiBQ cmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICov Ci0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3RhcnRQYXJhbGxl bFF1ZXJ5KCk7CiAKIAkvKiBQZXJmb3JtIHNvcnRpbmcgb2Ygc3Bvb2wsIGFuZCBwb3NzaWJseSBh IHNwb29sMiAqLwogCXNvcnRtZW0gPSBtYWludGVuYW5jZV93b3JrX21lbSAvIGJ0c2hhcmVkLT5z Y2FudHVwbGVzb3J0c3RhdGVzOwpAQCAtMTgzNyw3ICsxODM4LDggQEAgX2J0X3BhcmFsbGVsX2J1 aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBXQUwv YnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJ1c2FnZSA9 IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwog CXdhbHVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBm YWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtl ck51bWJlcl0sCisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVy dXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAogCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxX b3JrZXJOdW1iZXJdKTsKIAogI2lmZGVmIEJUUkVFX0JVSUxEX1NUQVRTCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCAwZmVlYTFkMzBlYy4uYzUzMDlhMDE1ZTYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtOTk0LDYgKzk5NCw3IEBAIHBhcmFs bGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlQVkluZFN0 YXRzICppbmRzdGF0czsKIAlQVlNoYXJlZCAgICpzaGFyZWQ7CiAJVGlkU3RvcmUgICAqZGVhZF9p dGVtczsKKwlJbnN0cnVtZW50YXRpb24gKmluc3RyOwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNh Z2U7CiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwogCWludAkJCW5pbmRleGVzOwpAQCAtMTA4Myw3 ICsxMDg0LDcgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3Rv YyAqdG9jKQogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKIAkvKiBQcmVw YXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0J SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3RhcnRQYXJhbGxlbFF1 ZXJ5KCk7CiAKIAkvKiBQcm9jZXNzIGluZGV4ZXMgdG8gcGVyZm9ybSB2YWN1dW0vY2xlYW51cCAq LwogCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcygmcHZzKTsKQEAgLTEwOTEs NyArMTA5Miw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAkvKiBSZXBvcnQgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhl Y3V0aW9uICovCiAJYnVmZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9W QUNVVU1fS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2NfbG9v a3VwKHRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVu ZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCisJSW5z dHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVyX3VzYWdlW1BhcmFsbGVs V29ya2VyTnVtYmVyXSwKIAkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0p OwogCiAJLyogUmVwb3J0IGFueSByZW1haW5pbmcgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgdGlt ZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwppbmRleCBlODc4MTBkMjkyZS4uMDYx YzZhNGFhNjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC0xNDM0LDYgKzE0 MzQsNyBAQCB2b2lkCiBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiB7CiAJRml4ZWRQYXJhbGxlbEV4ZWN1dG9yU3RhdGUgKmZwZXM7CisJSW5zdHJ1bWVu dGF0aW9uICppbnN0cjsKIAlCdWZmZXJVc2FnZSAqYnVmZmVyX3VzYWdlOwogCVdhbFVzYWdlICAg KndhbF91c2FnZTsKIAlEZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOwpAQCAtMTQ5NCw3ICsxNDk1LDcg QEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCSAq IGxlYWRlciwgd2hpY2ggYWxzbyBkb2Vzbid0IGNvdW50IGJ1ZmZlciBhY2Nlc3NlcyBhbmQgV0FM IGFjdGl2aXR5IHRoYXQKIAkgKiBvY2N1ciBkdXJpbmcgZXhlY3V0b3Igc3RhcnR1cC4KIAkgKi8K LQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCWluc3RyID0gSW5zdHJTdGFydFBhcmFsbGVs UXVlcnkoKTsKIAogCS8qCiAJICogUnVuIHRoZSBwbGFuLiAgSWYgd2Ugc3BlY2lmaWVkIGEgdHVw bGUgYm91bmQsIGJlIGNhcmVmdWwgbm90IHRvIGRlbWFuZApAQCAtMTUxMCw3ICsxNTExLDggQEAg UGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJl cG9ydCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24uICovCiAJYnVm ZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdF LCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlf V0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJfdXNhZ2Vb UGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3RyRW5kUGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJ CQkJCSAgJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJCQkJCQkgICZ3YWxf dXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCS8qIFJlcG9ydCBpbnN0cnVtZW50YXRp b24gZGF0YSBpZiBhbnkgaW5zdHJ1bWVudGF0aW9uIG9wdGlvbnMgYXJlIHNldC4gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCA4ZWY2MjY3MjFmMy4uZDVmZGJlY2IwMjUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTE5LDEwICsxOSw4IEBACiAjaW5jbHVkZSAidXRp bHMvbWVtdXRpbHMuaCIKIAogQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKLXN0YXRpYyBCdWZm ZXJVc2FnZSBzYXZlX3BnQnVmZmVyVXNhZ2U7CiBXYWxVc2FnZQlwZ1dhbFVzYWdlOwogSW5zdHJT dGFjayAqcGdJbnN0clN0YWNrID0gTlVMTDsKLXN0YXRpYyBXYWxVc2FnZSBzYXZlX3BnV2FsVXNh Z2U7CiAKIHN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0 IEJ1ZmZlclVzYWdlICphZGQpOwogc3RhdGljIHZvaWQgV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRz dCwgV2FsVXNhZ2UgKmFkZCk7CkBAIC0zNjQsMjIgKzM2MiwyMyBAQCBJbnN0clN0YWNrQWRkKElu c3RyU3RhY2sgKiBkc3QsIEluc3RyU3RhY2sgKiBhZGQpCiAJV2FsVXNhZ2VBZGQoJmRzdC0+d2Fs dXNhZ2UsICZhZGQtPndhbHVzYWdlKTsKIH0KIAotLyogbm90ZSBjdXJyZW50IHZhbHVlcyBkdXJp bmcgcGFyYWxsZWwgZXhlY3V0b3Igc3RhcnR1cCAqLwotdm9pZAorLyogc3RhcnQgaW5zdHJ1bWVu dGF0aW9uIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCitJbnN0cnVtZW50YXRp b24gKgogSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCkKIHsKLQlzYXZlX3BnQnVmZmVyVXNh Z2UgPSBwZ0J1ZmZlclVzYWdlOwotCXNhdmVfcGdXYWxVc2FnZSA9IHBnV2FsVXNhZ2U7CisJSW5z dHJ1bWVudGF0aW9uICppbnN0ciA9IEluc3RyQWxsb2MoMSwgSU5TVFJVTUVOVF9CVUZGRVJTIHwg SU5TVFJVTUVOVF9XQUwpOworCisJSW5zdHJTdGFydChpbnN0cik7CisJcmV0dXJuIGluc3RyOwog fQogCiAvKiByZXBvcnQgdXNhZ2UgYWZ0ZXIgcGFyYWxsZWwgZXhlY3V0b3Igc2h1dGRvd24gKi8K IHZvaWQKLUluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVz YWdlICp3YWx1c2FnZSkKK0luc3RyRW5kUGFyYWxsZWxRdWVyeShJbnN0cnVtZW50YXRpb24gKmlu c3RyLCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKIHsKLQltZW1z ZXQoYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwotCUJ1ZmZlclVzYWdlQWNjdW1E aWZmKGJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnNhdmVfcGdCdWZmZXJVc2FnZSk7Ci0JbWVt c2V0KHdhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKLQlXYWxVc2FnZUFjY3VtRGlmZih3 YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZzYXZlX3BnV2FsVXNhZ2UpOworCUluc3RyU3RvcChpbnN0 ciwgMCwgdHJ1ZSk7CisJbWVtY3B5KGJ1ZnVzYWdlLCAmSU5TVFJfR0VUX0JVRlVTQUdFKGluc3Ry KSwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CisJbWVtY3B5KHdhbHVzYWdlLCAmSU5TVFJfR0VUX1dB TFVTQUdFKGluc3RyKSwgc2l6ZW9mKFdhbFVzYWdlKSk7CiB9CiAKIC8qIGFjY3VtdWxhdGUgd29y ayBkb25lIGJ5IHdvcmtlcnMgaW4gbGVhZGVyJ3Mgc3RhdHMgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaAppbmRleCBkMDQ2MDdjZTQwYy4uYmY3NjY3MDY1ODAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9p bnN0cnVtZW50LmgKQEAgLTE1Niw4ICsxNTYsOCBAQCBleHRlcm4gdm9pZCBJbnN0clVwZGF0ZVR1 cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyLCBkb3VibGUgblR1cGxlcyk7CiBl eHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyKTsKIGV4 dGVybiB2b2lkIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogZHN0LCBOb2RlSW5z dHJ1bWVudGF0aW9uICogYWRkKTsKIAotZXh0ZXJuIHZvaWQgSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkodm9pZCk7Ci1leHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2Ug KmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOworZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAq SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCk7CitleHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFs bGVsUXVlcnkoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBX YWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnko QnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQg QnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKIAkJCQkJCQkJIGNvbnN0IEJ1 ZmZlclVzYWdlICphZGQsIGNvbnN0IEJ1ZmZlclVzYWdlICpzdWIpOwotLSAKMi40Ny4xCgo= --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0002-Separate-node-instrumentation-from-other-use-of-I.patch" Content-Disposition: attachment; filename="v3-0002-Separate-node-instrumentation-from-other-use-of-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w681 RnJvbSA3NTQ2Zjg1NWQxMzhkMGRhYzBkOGMyMmVhNTkxNTMxNDgxMGYxM2U1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDEgTWFyIDIwMjUgMTk6MzE6MzAgLTA4MDAKU3ViamVjdDogW1BBVENIIHYzIDIvN10gU2Vw YXJhdGUgbm9kZSBpbnN0cnVtZW50YXRpb24gZnJvbSBvdGhlciB1c2Ugb2YKIEluc3RydW1lbnRh dGlvbiBzdHJ1Y3QKClByZXZpb3VzbHkgZGlmZmVyZW50IHBsYWNlcyAoZS5nLiBxdWVyeSAidG90 YWwgdGltZSIpIHdlcmUgcmVwdXJwb3NpbmcKdGhlIEluc3RydW1lbnRhdGlvbiBzdHJ1Y3QgaW5p dGlhbGx5IGludHJvZHVjZWQgZm9yIGNhcHR1cmluZyBwZXItbm9kZQpzdGF0aXN0aWNzIGR1cmlu ZyBleGVjdXRpb24uIFRoaXMgZHVhbCB1c2Ugb2YgdGhlIHN0cnVjdCBpcyBjb25mdXNpbmcsCmUu Zy4gYnkgY2x1dHRlcmluZyBjYWxscyBvZiBJbnN0clN0YXJ0Tm9kZS9JbnN0clN0b3BOb2RlIGlu IHVucmVsYXRlZApjb2RlIHBhdGhzLCBhbmQgcHJldmVudHMgZnV0dXJlIHJlZmFjdG9yaW5ncy4K Ckluc3RlYWQsIHNpbXBsaWZ5IHRoZSBJbnN0cnVtZW50YXRpb24gc3RydWN0IHRvIG9ubHkgdHJh Y2sgdGltZSwKV0FML2J1ZmZlciB1c2FnZSwgYW5kIHR1cGxlIGNvdW50cy4gU2ltaWxhcmx5LCBk cm9wIHRoZSB1c2Ugb2YgSW5zdHJFbmRMb29wCm91dHNpZGUgb2YgcGVyLW5vZGUgaW5zdHJ1bWVu dGF0aW9uLiBJbnRyb2R1Y2UgdGhlIE5vZGVJbnN0cnVtZW50YXRpb24Kc3RydWN0IHRvIGNhcnJ5 IGZvcndhcmQgdGhlIHBlci1ub2RlIGluc3RydW1lbnRhdGlvbiBpbmZvcm1hdGlvbi4KLS0tCiBj b250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYyAgICAgICAgICAgfCAgOCArLQogLi4u L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyAgIHwgIDggKy0KIGNvbnRy aWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jICAgICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgICAgICAgICAgICAgfCAxMSArLS0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyAgICAgICAgICAgICAgICB8ICA4ICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8IDIyICsrKy0tCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUHJvY25vZGUuYyAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvaW5zdHJ1bWVudC5jICAgICAgICAgICAgIHwgODYgKysrKysrKysrKysrKysrKyst LQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICAgICAgICAgIHwgNTEgKysr KysrKystLS0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8 ICAzICstCiAxMSBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMgYi9j b250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYwppbmRleCBjMTBmMmZjMGYyNS4uZWUw YzNiNGM5MWIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5j CisrKyBiL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCkBAIC0zMTUsNyArMzE1 LDcgQEAgZXhwbGFpbl9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZs YWdzKQogCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAKIAkJCW9sZGN4dCA9IE1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKLQkJCXF1ZXJ5RGVz Yy0+dG90YWx0aW1lID0gSW5zdHJBbGxvYygxLCBJTlNUUlVNRU5UX0FMTCwgZmFsc2UpOworCQkJ cXVlcnlEZXNjLT50b3RhbHRpbWUgPSBJbnN0ckFsbG9jKDEsIElOU1RSVU1FTlRfQUxMKTsKIAkJ CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CiAJfQpAQCAtMzgxLDEyICszODEs NiBAQCBleHBsYWluX0V4ZWN1dG9yRW5kKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKQogCQkgKi8KIAkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19xdWVy eV9jeHQpOwogCi0JCS8qCi0JCSAqIE1ha2Ugc3VyZSBzdGF0cyBhY2N1bXVsYXRpb24gaXMgZG9u ZS4gIChOb3RlOiBpdCdzIG9rYXkgaWYgc2V2ZXJhbAotCQkgKiBsZXZlbHMgb2YgaG9vayBhbGwg ZG8gdGhpcy4pCi0JCSAqLwotCQlJbnN0ckVuZExvb3AocXVlcnlEZXNjLT50b3RhbHRpbWUpOwot CiAJCS8qIExvZyBwbGFuIGlmIGR1cmF0aW9uIGlzIGV4Y2VlZGVkLiAqLwogCQltc2VjID0gSU5T VFJfVElNRV9HRVRfTUlMTElTRUMocXVlcnlEZXNjLT50b3RhbHRpbWUtPnRvdGFsKTsKIAkJaWYg KG1zZWMgPj0gYXV0b19leHBsYWluX2xvZ19taW5fZHVyYXRpb24pCmRpZmYgLS1naXQgYS9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyBiL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCmluZGV4IGZlOTg3Y2VhZjQwLi5m NDNhMzNiMzc4NyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3Rh dF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9z dGF0ZW1lbnRzLmMKQEAgLTEwMjMsNyArMTAyMyw3IEBAIHBnc3NfRXhlY3V0b3JTdGFydChRdWVy eURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCU1lbW9yeUNvbnRleHQgb2xkY3h0Owog CiAJCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocXVlcnlEZXNjLT5lc3RhdGUtPmVz X3F1ZXJ5X2N4dCk7Ci0JCQlxdWVyeURlc2MtPnRvdGFsdGltZSA9IEluc3RyQWxsb2MoMSwgSU5T VFJVTUVOVF9BTEwsIGZhbHNlKTsKKwkJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5zdHJBbGxv YygxLCBJTlNUUlVNRU5UX0FMTCk7CiAJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsK IAkJfQogCX0KQEAgLTEwODIsMTIgKzEwODIsNiBAQCBwZ3NzX0V4ZWN1dG9yRW5kKFF1ZXJ5RGVz YyAqcXVlcnlEZXNjKQogCWlmIChxdWVyeUlkICE9IElOVDY0Q09OU1QoMCkgJiYgcXVlcnlEZXNj LT50b3RhbHRpbWUgJiYKIAkJcGdzc19lbmFibGVkKG5lc3RpbmdfbGV2ZWwpKQogCXsKLQkJLyoK LQkJICogTWFrZSBzdXJlIHN0YXRzIGFjY3VtdWxhdGlvbiBpcyBkb25lLiAgKE5vdGU6IGl0J3Mg b2theSBpZiBzZXZlcmFsCi0JCSAqIGxldmVscyBvZiBob29rIGFsbCBkbyB0aGlzLikKLQkJICov Ci0JCUluc3RyRW5kTG9vcChxdWVyeURlc2MtPnRvdGFsdGltZSk7Ci0KIAkJcGdzc19zdG9yZShx dWVyeURlc2MtPnNvdXJjZVRleHQsCiAJCQkJICAgcXVlcnlJZCwKIAkJCQkgICBxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zdG10X2xvY2F0aW9uLApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvcG9zdGdyZXNfZmR3LmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcu YwppbmRleCA0NTZiMjY3ZjcwYi4uNzYxOWFjNDg2YzAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3Rn cmVzX2Zkdy5jCkBAIC0yNzc4LDcgKzI3NzgsNyBAQCBwb3N0Z3Jlc0l0ZXJhdGVEaXJlY3RNb2Rp ZnkoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAlpZiAoIXJlc3VsdFJlbEluZm8tPnJpX3Byb2pl Y3RSZXR1cm5pbmcpCiAJewogCQlUdXBsZVRhYmxlU2xvdCAqc2xvdCA9IG5vZGUtPnNzLnNzX1Nj YW5UdXBsZVNsb3Q7Ci0JCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBub2RlLT5zcy5wcy5pbnN0 cnVtZW50OworCQlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IG5vZGUtPnNzLnBzLmluc3Ry dW1lbnQ7CiAKIAkJQXNzZXJ0KCFkbXN0YXRlLT5oYXNfcmV0dXJuaW5nKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jCmluZGV4IDQ2YzViZjI1MmZjLi5kZTY2ZTQ4MzY2ZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYwpAQCAtMTEwMyw5ICsxMTAzLDYgQEAgcmVwb3J0X3RyaWdnZXJzKFJlc3VsdFJlbElu Zm8gKnJJbmZvLCBib29sIHNob3dfcmVsbmFtZSwgRXhwbGFpblN0YXRlICplcykKIAkJY2hhcgkg ICAqcmVsbmFtZTsKIAkJY2hhcgkgICAqY29ubmFtZSA9IE5VTEw7CiAKLQkJLyogTXVzdCBjbGVh biB1cCBpbnN0cnVtZW50YXRpb24gc3RhdGUgKi8KLQkJSW5zdHJFbmRMb29wKGluc3RyKTsKLQog CQkvKgogCQkgKiBXZSBpZ25vcmUgdHJpZ2dlcnMgdGhhdCB3ZXJlIG5ldmVyIGludm9rZWQ7IHRo ZXkgbGlrZWx5IGFyZW4ndAogCQkgKiByZWxldmFudCB0byB0aGUgY3VycmVudCBxdWVyeSB0eXBl LgpAQCAtMTEzNiw3ICsxMTMzLDcgQEAgcmVwb3J0X3RyaWdnZXJzKFJlc3VsdFJlbEluZm8gKnJJ bmZvLCBib29sIHNob3dfcmVsbmFtZSwgRXhwbGFpblN0YXRlICplcykKIAkJCQlhcHBlbmRTdHJp bmdJbmZvKGVzLT5zdHIsICIgb24gJXMiLCByZWxuYW1lKTsKIAkJCWlmIChlcy0+dGltaW5nKQog CQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIjogdGltZT0lLjNmIGNhbGxzPSUuMGZcbiIs Ci0JCQkJCQkJCSAxMDAwLjAgKiBpbnN0ci0+dG90YWwsIGluc3RyLT5udHVwbGVzKTsKKwkJCQkJ CQkJIDEwMDAuMCAqIElOU1RSX1RJTUVfR0VUX0RPVUJMRShpbnN0ci0+dG90YWwpLCBpbnN0ci0+ bnR1cGxlcyk7CiAJCQllbHNlCiAJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiOiBjYWxs cz0lLjBmXG4iLCBpbnN0ci0+bnR1cGxlcyk7CiAJCX0KQEAgLTExNDcsNyArMTE0NCw3IEBAIHJl cG9ydF90cmlnZ2VycyhSZXN1bHRSZWxJbmZvICpySW5mbywgYm9vbCBzaG93X3JlbG5hbWUsIEV4 cGxhaW5TdGF0ZSAqZXMpCiAJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiQ29uc3RyYWludCBOYW1l IiwgY29ubmFtZSwgZXMpOwogCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiUmVsYXRpb24iLCByZWxu YW1lLCBlcyk7CiAJCQlpZiAoZXMtPnRpbWluZykKLQkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgi VGltZSIsICJtcyIsIDEwMDAuMCAqIGluc3RyLT50b3RhbCwgMywKKwkJCQlFeHBsYWluUHJvcGVy dHlGbG9hdCgiVGltZSIsICJtcyIsIDEwMDAuMCAqIElOU1RSX1RJTUVfR0VUX0RPVUJMRShpbnN0 ci0+dG90YWwpLCAzLAogCQkJCQkJCQkJIGVzKTsKIAkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJD YWxscyIsIE5VTEwsIGluc3RyLT5udHVwbGVzLCAwLCBlcyk7CiAJCX0KQEAgLTE4OTMsNyArMTg5 MCw3IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMs CiAKIAkJZm9yIChpbnQgbiA9IDA7IG4gPCB3LT5udW1fd29ya2VyczsgbisrKQogCQl7Ci0JCQlJ bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKKwkJCU5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKIAkJCWRvdWJs ZQkJbmxvb3BzID0gaW5zdHJ1bWVudC0+bmxvb3BzOwogCQkJZG91YmxlCQlzdGFydHVwX21zOwog CQkJZG91YmxlCQl0b3RhbF9tczsKQEAgLTIzMDAsNyArMjI5Nyw3IEBAIEV4cGxhaW5Ob2RlKFBs YW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkJZm9yIChpbnQgbiA9IDA7 IG4gPCB3LT5udW1fd29ya2VyczsgbisrKQogCQl7Ci0JCQlJbnN0cnVtZW50YXRpb24gKmluc3Ry dW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKKwkJCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3Ry dW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKIAkJCWRvdWJsZQkJbmxvb3BzID0gaW5zdHJ1bWVu dC0+bmxvb3BzOwogCiAJCQlpZiAobmxvb3BzIDw9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5k ZXggNTc5YWM4ZDc2YWUuLjliNTNkZDk5ZTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC0y MzQ0LDcgKzIzNDQsNyBAQCBFeGVjQ2FsbFRyaWdnZXJGdW5jKFRyaWdnZXJEYXRhICp0cmlnZGF0 YSwKIAkgKiBJZiBkb2luZyBFWFBMQUlOIEFOQUxZWkUsIHN0YXJ0IGNoYXJnaW5nIHRpbWUgdG8g dGhpcyB0cmlnZ2VyLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdGFydE5vZGUoaW5zdHIg KyB0Z2luZHgpOworCQlJbnN0clN0YXJ0KGluc3RyICsgdGdpbmR4KTsKIAogCS8qCiAJICogRG8g dGhlIGZ1bmN0aW9uIGV2YWx1YXRpb24gaW4gdGhlIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCwg c28gdGhhdApAQCAtMjM5Miw3ICsyMzkyLDcgQEAgRXhlY0NhbGxUcmlnZ2VyRnVuYyhUcmlnZ2Vy RGF0YSAqdHJpZ2RhdGEsCiAJICogb25lICJ0dXBsZSByZXR1cm5lZCIgKHJlYWxseSB0aGUgbnVt YmVyIG9mIGZpcmluZ3MpLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdG9wTm9kZShpbnN0 ciArIHRnaW5keCwgMSk7CisJCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwgMSk7CiAKIAlyZXR1 cm4gKEhlYXBUdXBsZSkgRGF0dW1HZXRQb2ludGVyKHJlc3VsdCk7CiB9CkBAIC00MzgxLDcgKzQz ODEsNyBAQCBBZnRlclRyaWdnZXJFeGVjdXRlKEVTdGF0ZSAqZXN0YXRlLAogCSAqIHRvIGluY2x1 ZGUgdGltZSBzcGVudCByZS1mZXRjaGluZyB0dXBsZXMgaW4gdGhlIHRyaWdnZXIgY29zdC4KIAkg Ki8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3RhcnROb2RlKGluc3RyICsgdGdpbmR4KTsKKwkJSW5z dHJTdGFydChpbnN0ciArIHRnaW5keCk7CiAKIAkvKgogCSAqIEZldGNoIHRoZSByZXF1aXJlZCB0 dXBsZShzKS4KQEAgLTQ2MDcsNyArNDYwNyw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUoRVN0YXRl ICplc3RhdGUsCiAJICogb25lICJ0dXBsZSByZXR1cm5lZCIgKHJlYWxseSB0aGUgbnVtYmVyIG9m IGZpcmluZ3MpLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdG9wTm9kZShpbnN0ciArIHRn aW5keCwgMSk7CisJCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwgMSk7CiB9CiAKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggNzEzZTkyNjMyOWMuLjliYzdiNGUyMGY3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKQEAgLTMzMSw3ICszMzEsNyBAQCBzdGFuZGFyZF9FeGVjdXRvclJ1bihR dWVyeURlc2MgKnF1ZXJ5RGVzYywKIAogCS8qIEFsbG93IGluc3RydW1lbnRhdGlvbiBvZiBFeGVj dXRvciBvdmVyYWxsIHJ1bnRpbWUgKi8KIAlpZiAocXVlcnlEZXNjLT50b3RhbHRpbWUpCi0JCUlu c3RyU3RhcnROb2RlKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKKwkJSW5zdHJTdGFydChxdWVyeURl c2MtPnRvdGFsdGltZSk7CiAKIAkvKgogCSAqIGV4dHJhY3QgaW5mb3JtYXRpb24gZnJvbSB0aGUg cXVlcnkgZGVzY3JpcHRvciBhbmQgdGhlIHF1ZXJ5IGZlYXR1cmUuCkBAIC0zODMsNyArMzgzLDcg QEAgc3RhbmRhcmRfRXhlY3V0b3JSdW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAJCWRlc3QtPnJT aHV0ZG93bihkZXN0KTsKIAogCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5zdHJTdG9w Tm9kZShxdWVyeURlc2MtPnRvdGFsdGltZSwgZXN0YXRlLT5lc19wcm9jZXNzZWQpOworCQlJbnN0 clN0b3AocXVlcnlEZXNjLT50b3RhbHRpbWUsIGVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsKIAogCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIH0KQEAgLTQzMyw3ICs0MzMsNyBAQCBz dGFuZGFyZF9FeGVjdXRvckZpbmlzaChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAogCS8qIEFsbG93 IGluc3RydW1lbnRhdGlvbiBvZiBFeGVjdXRvciBvdmVyYWxsIHJ1bnRpbWUgKi8KIAlpZiAocXVl cnlEZXNjLT50b3RhbHRpbWUpCi0JCUluc3RyU3RhcnROb2RlKHF1ZXJ5RGVzYy0+dG90YWx0aW1l KTsKKwkJSW5zdHJTdGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CiAKIAkvKiBSdW4gTW9kaWZ5 VGFibGUgbm9kZXMgdG8gY29tcGxldGlvbiAqLwogCUV4ZWNQb3N0cHJvY2Vzc1BsYW4oZXN0YXRl KTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBzdGFuZGFyZF9FeGVjdXRvckZpbmlzaChRdWVyeURlc2Mg KnF1ZXJ5RGVzYykKIAkJQWZ0ZXJUcmlnZ2VyRW5kUXVlcnkoZXN0YXRlKTsKIAogCWlmIChxdWVy eURlc2MtPnRvdGFsdGltZSkKLQkJSW5zdHJTdG9wTm9kZShxdWVyeURlc2MtPnRvdGFsdGltZSwg MCk7CisJCUluc3RyU3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSwgMCk7CiAKIAlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKQEAgLTEyNjYsNyArMTI2Niw3IEBAIEluaXRSZXN1 bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3VsdFJlbEluZm8t PnJpX1RyaWdXaGVuRXhwcnMgPSAoRXhwclN0YXRlICoqKQogCQkJcGFsbG9jMChuICogc2l6ZW9m KEV4cHJTdGF0ZSAqKSk7CiAJCWlmIChpbnN0cnVtZW50X29wdGlvbnMpCi0JCQlyZXN1bHRSZWxJ bmZvLT5yaV9UcmlnSW5zdHJ1bWVudCA9IEluc3RyQWxsb2MobiwgaW5zdHJ1bWVudF9vcHRpb25z LCBmYWxzZSk7CisJCQlyZXN1bHRSZWxJbmZvLT5yaV9UcmlnSW5zdHJ1bWVudCA9IEluc3RyQWxs b2MobiwgaW5zdHJ1bWVudF9vcHRpb25zKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1BhcmFsbGVsLmMKaW5kZXggZjA5OGE1NTU3Y2YuLmU4NzgxMGQyOTJlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtODUsNyArODUsNyBAQCB0eXBlZGVmIHN0cnVjdCBG aXhlZFBhcmFsbGVsRXhlY3V0b3JTdGF0ZQogICogaW5zdHJ1bWVudF9vcHRpb25zOiBTYW1lIG1l YW5pbmcgaGVyZSBhcyBpbiBpbnN0cnVtZW50LmMuCiAgKgogICogaW5zdHJ1bWVudF9vZmZzZXQ6 IE9mZnNldCwgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoaXMgc3RydWN0dXJlLAotICogb2Yg dGhlIGZpcnN0IEluc3RydW1lbnRhdGlvbiBvYmplY3QuICBUaGlzIHdpbGwgZGVwZW5kIG9uIHRo ZSBsZW5ndGggb2YKKyAqIG9mIHRoZSBmaXJzdCBOb2RlSW5zdHJ1bWVudGF0aW9uIG9iamVjdC4g IFRoaXMgd2lsbCBkZXBlbmQgb24gdGhlIGxlbmd0aCBvZgogICogdGhlIHBsYW5fbm9kZV9pZCBh cnJheS4KICAqCiAgKiBudW1fd29ya2VyczogTnVtYmVyIG9mIHdvcmtlcnMuCkBAIC0xMDIsMTEg KzEwMiwxNSBAQCBzdHJ1Y3QgU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24KIAlpbnQJCQlu dW1fd29ya2VyczsKIAlpbnQJCQludW1fcGxhbl9ub2RlczsKIAlpbnQJCQlwbGFuX25vZGVfaWRb RkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKLQkvKiBhcnJheSBvZiBudW1fcGxhbl9ub2RlcyAqIG51 bV93b3JrZXJzIEluc3RydW1lbnRhdGlvbiBvYmplY3RzIGZvbGxvd3MgKi8KKworCS8qCisJICog YXJyYXkgb2YgbnVtX3BsYW5fbm9kZXMgKiBudW1fd29ya2VycyBOb2RlSW5zdHJ1bWVudGF0aW9u IG9iamVjdHMKKwkgKiBmb2xsb3dzCisJICovCiB9OwogI2RlZmluZSBHZXRJbnN0cnVtZW50YXRp b25BcnJheShzZWkpIFwKIAkoQXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKHNlaSwgU2hhcmVk RXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKiksIFwKLQkgKEluc3RydW1lbnRhdGlvbiAqKSAoKChj aGFyICopIHNlaSkgKyBzZWktPmluc3RydW1lbnRfb2Zmc2V0KSkKKwkgKE5vZGVJbnN0cnVtZW50 YXRpb24gKikgKCgoY2hhciAqKSBzZWkpICsgc2VpLT5pbnN0cnVtZW50X29mZnNldCkpCiAKIC8q IENvbnRleHQgb2JqZWN0IGZvciBFeGVjUGFyYWxsZWxFc3RpbWF0ZS4gKi8KIHR5cGVkZWYgc3Ry dWN0IEV4ZWNQYXJhbGxlbEVzdGltYXRlQ29udGV4dApAQCAtNzEzLDcgKzcxNyw3IEBAIEV4ZWNJ bml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJ aW5zdHJ1bWVudGF0aW9uX2xlbiA9IE1BWEFMSUdOKGluc3RydW1lbnRhdGlvbl9sZW4pOwogCQlp bnN0cnVtZW50X29mZnNldCA9IGluc3RydW1lbnRhdGlvbl9sZW47CiAJCWluc3RydW1lbnRhdGlv bl9sZW4gKz0KLQkJCW11bF9zaXplKHNpemVvZihJbnN0cnVtZW50YXRpb24pLAorCQkJbXVsX3Np emUoc2l6ZW9mKE5vZGVJbnN0cnVtZW50YXRpb24pLAogCQkJCQkgbXVsX3NpemUoZS5ubm9kZXMs IG53b3JrZXJzKSk7CiAJCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwg aW5zdHJ1bWVudGF0aW9uX2xlbik7CiAJCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0 aW1hdG9yLCAxKTsKQEAgLTc5OSw3ICs4MDMsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFu U3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJICovCiAJaWYgKGVzdGF0ZS0+ZXNf aW5zdHJ1bWVudCkKIAl7Ci0JCUluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudDsKKwkJTm9kZUlu c3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudDsKIAkJaW50CQkJaTsKIAogCQlpbnN0cnVtZW50YXRp b24gPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgaW5zdHJ1bWVudGF0aW9uX2xlbik7CkBA IC04MDksNyArODEzLDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3Rh dGUsIEVTdGF0ZSAqZXN0YXRlLAogCQlpbnN0cnVtZW50YXRpb24tPm51bV9wbGFuX25vZGVzID0g ZS5ubm9kZXM7CiAJCWluc3RydW1lbnQgPSBHZXRJbnN0cnVtZW50YXRpb25BcnJheShpbnN0cnVt ZW50YXRpb24pOwogCQlmb3IgKGkgPSAwOyBpIDwgbndvcmtlcnMgKiBlLm5ub2RlczsgKytpKQot CQkJSW5zdHJJbml0KCZpbnN0cnVtZW50W2ldLCBlc3RhdGUtPmVzX2luc3RydW1lbnQpOworCQkJ SW5zdHJJbml0Tm9kZSgmaW5zdHJ1bWVudFtpXSwgZXN0YXRlLT5lc19pbnN0cnVtZW50KTsKIAkJ c2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfSU5TVFJVTUVOVEFUSU9OLAog CQkJCQkgICBpbnN0cnVtZW50YXRpb24pOwogCQlwZWktPmluc3RydW1lbnRhdGlvbiA9IGluc3Ry dW1lbnRhdGlvbjsKQEAgLTEwMzYsNyArMTA0MCw3IEBAIHN0YXRpYyBib29sCiBFeGVjUGFyYWxs ZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJCQkJCQkJ CVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50YXRpb24pCiB7Ci0JSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50OworCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1l bnQ7CiAJaW50CQkJaTsKIAlpbnQJCQluOwogCWludAkJCWlieXRlczsKQEAgLTEwNjQsNyArMTA2 OCw3IEBAIEV4ZWNQYXJhbGxlbFJldHJpZXZlSW5zdHJ1bWVudGF0aW9uKFBsYW5TdGF0ZSAqcGxh bnN0YXRlLAogCSAqIFN3aXRjaCBpbnRvIHBlci1xdWVyeSBtZW1vcnkgY29udGV4dC4KIAkgKi8K IAlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHBsYW5zdGF0ZS0+c3RhdGUtPmVz X3F1ZXJ5X2N4dCk7Ci0JaWJ5dGVzID0gbXVsX3NpemUoaW5zdHJ1bWVudGF0aW9uLT5udW1fd29y a2Vycywgc2l6ZW9mKEluc3RydW1lbnRhdGlvbikpOworCWlieXRlcyA9IG11bF9zaXplKGluc3Ry dW1lbnRhdGlvbi0+bnVtX3dvcmtlcnMsIHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSk7CiAJ cGxhbnN0YXRlLT53b3JrZXJfaW5zdHJ1bWVudCA9CiAJCXBhbGxvYyhpYnl0ZXMgKyBvZmZzZXRv ZihXb3JrZXJJbnN0cnVtZW50YXRpb24sIGluc3RydW1lbnQpKTsKIAlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY29udGV4dCk7CkBAIC0xMjk2LDcgKzEzMDAsNyBAQCBFeGVjUGFyYWxsZWxSZXBv cnRJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiB7CiAJaW50CQkJaTsKIAlp bnQJCQlwbGFuX25vZGVfaWQgPSBwbGFuc3RhdGUtPnBsYW4tPnBsYW5fbm9kZV9pZDsKLQlJbnN0 cnVtZW50YXRpb24gKmluc3RydW1lbnQ7CisJTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVu dDsKIAogCUluc3RyRW5kTG9vcChwbGFuc3RhdGUtPmluc3RydW1lbnQpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQcm9jbm9kZS5jCmluZGV4IGY1ZjljZmJlZWFkLi5kMjg2NDcxMjU0YiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKQEAgLTQxMyw4ICs0MTMsOCBAQCBFeGVjSW5pdE5v ZGUoUGxhbiAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAKIAkvKiBTZXQgdXAg aW5zdHJ1bWVudGF0aW9uIGZvciB0aGlzIG5vZGUgaWYgcmVxdWVzdGVkICovCiAJaWYgKGVzdGF0 ZS0+ZXNfaW5zdHJ1bWVudCkKLQkJcmVzdWx0LT5pbnN0cnVtZW50ID0gSW5zdHJBbGxvYygxLCBl c3RhdGUtPmVzX2luc3RydW1lbnQsCi0JCQkJCQkJCQkJcmVzdWx0LT5hc3luY19jYXBhYmxlKTsK KwkJcmVzdWx0LT5pbnN0cnVtZW50ID0gSW5zdHJBbGxvY05vZGUoMSwgZXN0YXRlLT5lc19pbnN0 cnVtZW50LAorCQkJCQkJCQkJCQlyZXN1bHQtPmFzeW5jX2NhcGFibGUpOwogCiAJcmV0dXJuIHJl c3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCAxYzkyYWJlNjc2MS4uMWZl MGY0MjA0ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTI2LDkgKzI2LDkgQEAg c3RhdGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVy VXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxV c2FnZSAqYWRkKTsKIAogCi0vKiBBbGxvY2F0ZSBuZXcgaW5zdHJ1bWVudGF0aW9uIHN0cnVjdHVy ZShzKSAqLworLyogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlvbiBoYW5kbGluZyAqLwog SW5zdHJ1bWVudGF0aW9uICoKLUluc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlv bnMsIGJvb2wgYXN5bmNfbW9kZSkKK0luc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29w dGlvbnMpCiB7CiAJSW5zdHJ1bWVudGF0aW9uICppbnN0cjsKIApAQCAtNDEsNiArNDEsNzQgQEAg SW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywgYm9vbCBhc3luY19tb2Rl KQogCQlib29sCQluZWVkX3RpbWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRf VElNRVIpICE9IDA7CiAJCWludAkJCWk7CiAKKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJ eworCQkJaW5zdHJbaV0ubmVlZF9idWZ1c2FnZSA9IG5lZWRfYnVmZmVyczsKKwkJCWluc3RyW2ld Lm5lZWRfd2FsdXNhZ2UgPSBuZWVkX3dhbDsKKwkJCWluc3RyW2ldLm5lZWRfdGltZXIgPSBuZWVk X3RpbWVyOworCQl9CisJfQorCisJcmV0dXJuIGluc3RyOworfQordm9pZAorSW5zdHJTdGFydChJ bnN0cnVtZW50YXRpb24gKmluc3RyKQoreworCWlmIChpbnN0ci0+bmVlZF90aW1lciAmJgorCQkh SU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKGluc3RyLT5zdGFydHRpbWUpKQorCQllbG9nKEVS Uk9SLCAiSW5zdHJTdGFydCBjYWxsZWQgdHdpY2UgaW4gYSByb3ciKTsKKworCWlmIChpbnN0ci0+ bmVlZF9idWZ1c2FnZSkKKwkJaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsK KworCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwkJaW5zdHItPndhbHVzYWdlX3N0YXJ0ID0g cGdXYWxVc2FnZTsKK30KK3ZvaWQKK0luc3RyU3RvcChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBk b3VibGUgblR1cGxlcykKK3sKKwlpbnN0cl90aW1lCWVuZHRpbWU7CisKKwkvKiBjb3VudCB0aGUg c3BlY2lmaWVkIHR1cGxlcyAqLworCWluc3RyLT5udHVwbGVzICs9IG5UdXBsZXM7CisKKwkvKiBs ZXQncyB1cGRhdGUgdGhlIHRpbWUgb25seSBpZiB0aGUgdGltZXIgd2FzIHJlcXVlc3RlZCAqLwor CWlmIChpbnN0ci0+bmVlZF90aW1lcikKKwl7CisJCWlmIChJTlNUUl9USU1FX0lTX1pFUk8oaW5z dHItPnN0YXJ0dGltZSkpCisJCQllbG9nKEVSUk9SLCAiSW5zdHJTdG9wIGNhbGxlZCB3aXRob3V0 IHN0YXJ0Iik7CisKKwkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChlbmR0aW1lKTsKKwkJSU5TVFJf VElNRV9BQ0NVTV9ESUZGKGluc3RyLT50b3RhbCwgZW5kdGltZSwgaW5zdHItPnN0YXJ0dGltZSk7 CisKKwkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKKwl9CisKKwkvKiBB ZGQgZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8K KwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCisJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0 ci0+YnVmdXNhZ2UsCisJCQkJCQkJICZwZ0J1ZmZlclVzYWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0 YXJ0KTsKKworCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwkJV2FsVXNhZ2VBY2N1bURpZmYo Jmluc3RyLT53YWx1c2FnZSwKKwkJCQkJCSAgJnBnV2FsVXNhZ2UsICZpbnN0ci0+d2FsdXNhZ2Vf c3RhcnQpOworfQorCisvKiBBbGxvY2F0ZSBuZXcgbm9kZSBpbnN0cnVtZW50YXRpb24gc3RydWN0 dXJlKHMpICovCitOb2RlSW5zdHJ1bWVudGF0aW9uICoKK0luc3RyQWxsb2NOb2RlKGludCBuLCBp bnQgaW5zdHJ1bWVudF9vcHRpb25zLCBib29sIGFzeW5jX21vZGUpCit7CisJTm9kZUluc3RydW1l bnRhdGlvbiAqaW5zdHI7CisKKwkvKiBpbml0aWFsaXplIGFsbCBmaWVsZHMgdG8gemVyb2VzLCB0 aGVuIG1vZGlmeSBhcyBuZWVkZWQgKi8KKwlpbnN0ciA9IHBhbGxvYzAobiAqIHNpemVvZihOb2Rl SW5zdHJ1bWVudGF0aW9uKSk7CisJaWYgKGluc3RydW1lbnRfb3B0aW9ucyAmIChJTlNUUlVNRU5U X0JVRkZFUlMgfCBJTlNUUlVNRU5UX1RJTUVSIHwgSU5TVFJVTUVOVF9XQUwpKQorCXsKKwkJYm9v bAkJbmVlZF9idWZmZXJzID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfQlVGRkVS UykgIT0gMDsKKwkJYm9vbAkJbmVlZF93YWwgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJV TUVOVF9XQUwpICE9IDA7CisJCWJvb2wJCW5lZWRfdGltZXIgPSAoaW5zdHJ1bWVudF9vcHRpb25z ICYgSU5TVFJVTUVOVF9USU1FUikgIT0gMDsKKwkJaW50CQkJaTsKKwogCQlmb3IgKGkgPSAwOyBp IDwgbjsgaSsrKQogCQl7CiAJCQlpbnN0cltpXS5uZWVkX2J1ZnVzYWdlID0gbmVlZF9idWZmZXJz OwpAQCAtNTUsOSArMTIzLDkgQEAgSW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0 aW9ucywgYm9vbCBhc3luY19tb2RlKQogCiAvKiBJbml0aWFsaXplIGEgcHJlLWFsbG9jYXRlZCBp bnN0cnVtZW50YXRpb24gc3RydWN0dXJlLiAqLwogdm9pZAotSW5zdHJJbml0KEluc3RydW1lbnRh dGlvbiAqaW5zdHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpCitJbnN0ckluaXROb2RlKE5vZGVJ bnN0cnVtZW50YXRpb24gKiBpbnN0ciwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKIHsKLQltZW1z ZXQoaW5zdHIsIDAsIHNpemVvZihJbnN0cnVtZW50YXRpb24pKTsKKwltZW1zZXQoaW5zdHIsIDAs IHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSk7CiAJaW5zdHItPm5lZWRfYnVmdXNhZ2UgPSAo aW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9CVUZGRVJTKSAhPSAwOwogCWluc3RyLT5u ZWVkX3dhbHVzYWdlID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfV0FMKSAhPSAw OwogCWluc3RyLT5uZWVkX3RpbWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRf VElNRVIpICE9IDA7CkBAIC02NSw3ICsxMzMsNyBAQCBJbnN0ckluaXQoSW5zdHJ1bWVudGF0aW9u ICppbnN0ciwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKIAogLyogRW50cnkgdG8gYSBwbGFuIG5v ZGUgKi8KIHZvaWQKLUluc3RyU3RhcnROb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCitJbnN0 clN0YXJ0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogaW5zdHIpCiB7CiAJaWYgKGluc3RyLT5u ZWVkX3RpbWVyICYmCiAJCSFJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0xBWlkoaW5zdHItPnN0YXJ0 dGltZSkpCkBAIC04MSw3ICsxNDksNyBAQCBJbnN0clN0YXJ0Tm9kZShJbnN0cnVtZW50YXRpb24g Kmluc3RyKQogCiAvKiBFeGl0IGZyb20gYSBwbGFuIG5vZGUgKi8KIHZvaWQKLUluc3RyU3RvcE5v ZGUoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCitJbnN0clN0b3BOb2Rl KE5vZGVJbnN0cnVtZW50YXRpb24gKiBpbnN0ciwgZG91YmxlIG5UdXBsZXMpCiB7CiAJZG91Ymxl CQlzYXZlX3R1cGxlY291bnQgPSBpbnN0ci0+dHVwbGVjb3VudDsKIAlpbnN0cl90aW1lCWVuZHRp bWU7CkBAIC0xMjksNyArMTk3LDcgQEAgSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50YXRpb24gKmlu c3RyLCBkb3VibGUgblR1cGxlcykKIAogLyogVXBkYXRlIHR1cGxlIGNvdW50ICovCiB2b2lkCi1J bnN0clVwZGF0ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBs ZXMpCitJbnN0clVwZGF0ZVR1cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyLCBk b3VibGUgblR1cGxlcykKIHsKIAkvKiBjb3VudCB0aGUgcmV0dXJuZWQgdHVwbGVzICovCiAJaW5z dHItPnR1cGxlY291bnQgKz0gblR1cGxlczsKQEAgLTEzNyw3ICsyMDUsNyBAQCBJbnN0clVwZGF0 ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCiAKIC8q IEZpbmlzaCBhIHJ1biBjeWNsZSBmb3IgYSBwbGFuIG5vZGUgKi8KIHZvaWQKLUluc3RyRW5kTG9v cChJbnN0cnVtZW50YXRpb24gKmluc3RyKQorSW5zdHJFbmRMb29wKE5vZGVJbnN0cnVtZW50YXRp b24gKiBpbnN0cikKIHsKIAkvKiBTa2lwIGlmIG5vdGhpbmcgaGFzIGhhcHBlbmVkLCBvciBhbHJl YWR5IHNodXQgZG93biAqLwogCWlmICghaW5zdHItPnJ1bm5pbmcpCkBAIC0xNjIsNyArMjMwLDcg QEAgSW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAKIC8qIGFnZ3JlZ2F0ZSBp bnN0cnVtZW50YXRpb24gaW5mb3JtYXRpb24gKi8KIHZvaWQKLUluc3RyQWdnTm9kZShJbnN0cnVt ZW50YXRpb24gKmRzdCwgSW5zdHJ1bWVudGF0aW9uICphZGQpCitJbnN0ckFnZ05vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqIGRzdCwgTm9kZUluc3RydW1lbnRhdGlvbiAqIGFkZCkKIHsKIAlpZiAo IWRzdC0+cnVubmluZyAmJiBhZGQtPnJ1bm5pbmcpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVu dC5oCmluZGV4IGJhNWM5ODY5MDdlLi4xYWU1MzNmNjcwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaApAQCAtNjYsNyArNjYsMzMgQEAgdHlwZWRlZiBlbnVtIEluc3RydW1lbnRPcHRpb24K IAlJTlNUUlVNRU5UX0FMTCA9IFBHX0lOVDMyX01BWAogfSBJbnN0cnVtZW50T3B0aW9uOwogCisv KgorICogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlvbiB0aGF0IGNhbiBjYXB0dXJlIHRp bWUsIFdBTC9idWZmZXIgdXNhZ2UgYW5kIHR1cGxlcworICoKKyAqIEluaXRpYWxpemVkIHRocm91 Z2ggSW5zdHJBbGxvYywgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY2FsbHMgdG8gYSBwYWlyIG9m CisgKiBJbnN0clN0YXJ0L0luc3RyU3RvcCAoYWN0aXZpdHkgaXMgbWVhc3VyZWQgaW5iZXR3ZWVu KS4KKyAqLwogdHlwZWRlZiBzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9uCit7CisJLyogUGFyYW1ldGVy cyBzZXQgYXQgY3JlYXRpb246ICovCisJYm9vbAkJbmVlZF90aW1lcjsJCS8qIHRydWUgaWYgd2Ug bmVlZCB0aW1lciBkYXRhICovCisJYm9vbAkJbmVlZF9idWZ1c2FnZTsJLyogdHJ1ZSBpZiB3ZSBu ZWVkIGJ1ZmZlciB1c2FnZSBkYXRhICovCisJYm9vbAkJbmVlZF93YWx1c2FnZTsJLyogdHJ1ZSBp ZiB3ZSBuZWVkIFdBTCB1c2FnZSBkYXRhICovCisJLyogSW50ZXJuYWwgc3RhdGUga2VlcGluZzog Ki8KKwlpbnN0cl90aW1lCXN0YXJ0dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgbGFzdCBJbnN0clN0 YXJ0ICovCisJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQ7IC8qIGJ1ZmZlciB1c2FnZSBhdCBz dGFydCAqLworCVdhbFVzYWdlCXdhbHVzYWdlX3N0YXJ0OyAvKiBXQUwgdXNhZ2UgYXQgc3RhcnQg Ki8KKwkvKiBBY2N1bXVsYXRlZCBzdGF0aXN0aWNzOiAqLworCWluc3RyX3RpbWUJdG90YWw7CQkJ LyogdG90YWwgcnVudGltZSAqLworCWRvdWJsZQkJbnR1cGxlczsJCS8qIHRvdGFsIHR1cGxlcyBj b3VudGVkIGluIEluc3RyU3RvcCAqLworCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyogdG90YWwg YnVmZmVyIHVzYWdlICovCisJV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwgdXNhZ2Ug Ki8KK30gSW5zdHJ1bWVudGF0aW9uOworCisvKgorICogU3BlY2lhbGl6ZWQgaW5zdHJ1bWVudGF0 aW9uIGZvciBwZXItbm9kZSBleGVjdXRpb24gc3RhdGlzdGljcworICovCit0eXBlZGVmIHN0cnVj dCBOb2RlSW5zdHJ1bWVudGF0aW9uCiB7CiAJLyogUGFyYW1ldGVycyBzZXQgYXQgbm9kZSBjcmVh dGlvbjogKi8KIAlib29sCQluZWVkX3RpbWVyOwkJLyogdHJ1ZSBpZiB3ZSBuZWVkIHRpbWVyIGRh dGEgKi8KQEAgLTkxLDI1ICsxMTcsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9u CiAJZG91YmxlCQluZmlsdGVyZWQyOwkJLyogIyBvZiB0dXBsZXMgcmVtb3ZlZCBieSAib3RoZXIi IHF1YWxzICovCiAJQnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CQkvKiB0b3RhbCBidWZmZXIgdXNhZ2Ug Ki8KIAlXYWxVc2FnZQl3YWx1c2FnZTsJCS8qIHRvdGFsIFdBTCB1c2FnZSAqLwotfSBJbnN0cnVt ZW50YXRpb247Cit9CQkJTm9kZUluc3RydW1lbnRhdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgV29y a2VySW5zdHJ1bWVudGF0aW9uCiB7CiAJaW50CQkJbnVtX3dvcmtlcnM7CS8qICMgb2Ygc3RydWN0 dXJlcyB0aGF0IGZvbGxvdyAqLwotCUluc3RydW1lbnRhdGlvbiBpbnN0cnVtZW50W0ZMRVhJQkxF X0FSUkFZX01FTUJFUl07CisJTm9kZUluc3RydW1lbnRhdGlvbiBpbnN0cnVtZW50W0ZMRVhJQkxF X0FSUkFZX01FTUJFUl07CiB9IFdvcmtlckluc3RydW1lbnRhdGlvbjsKIAogZXh0ZXJuIFBHRExM SU1QT1JUIEJ1ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgV2Fs VXNhZ2UgcGdXYWxVc2FnZTsKIAotZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAqSW5zdHJBbGxvYyhp bnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywKLQkJCQkJCQkJICAgYm9vbCBhc3luY19tb2Rl KTsKLWV4dGVybiB2b2lkIEluc3RySW5pdChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5z dHJ1bWVudF9vcHRpb25zKTsKLWV4dGVybiB2b2lkIEluc3RyU3RhcnROb2RlKEluc3RydW1lbnRh dGlvbiAqaW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50YXRpb24g Kmluc3RyLCBkb3VibGUgblR1cGxlcyk7Ci1leHRlcm4gdm9pZCBJbnN0clVwZGF0ZVR1cGxlQ291 bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOwotZXh0ZXJuIHZvaWQg SW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5zdHJB Z2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0LCBJbnN0cnVtZW50YXRpb24gKmFkZCk7CitleHRl cm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRp b25zKTsKK2V4dGVybiB2b2lkIEluc3RyU3RhcnQoSW5zdHJ1bWVudGF0aW9uICppbnN0cik7Citl eHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBs ZXMpOworCitleHRlcm4gTm9kZUluc3RydW1lbnRhdGlvbiAqIEluc3RyQWxsb2NOb2RlKGludCBu LCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAorCQkJCQkJCQkJCQlib29sIGFzeW5jX21vZGUpOwor ZXh0ZXJuIHZvaWQgSW5zdHJJbml0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogaW5zdHIsIGlu dCBpbnN0cnVtZW50X29wdGlvbnMpOworZXh0ZXJuIHZvaWQgSW5zdHJTdGFydE5vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqIGluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyU3RvcE5vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqIGluc3RyLCBkb3VibGUgblR1cGxlcyk7CitleHRlcm4gdm9pZCBJbnN0 clVwZGF0ZVR1cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyLCBkb3VibGUgblR1 cGxlcyk7CitleHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoTm9kZUluc3RydW1lbnRhdGlvbiAqIGlu c3RyKTsKK2V4dGVybiB2b2lkIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogZHN0 LCBOb2RlSW5zdHJ1bWVudGF0aW9uICogYWRkKTsKKwogZXh0ZXJuIHZvaWQgSW5zdHJTdGFydFBh cmFsbGVsUXVlcnkodm9pZCk7CiBleHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVm ZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgSW5z dHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2Fs dXNhZ2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBhMzY2NTNjMzdmOS4uZWIwYjhmODM1YzIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMTY2LDcgKzExNjYsOCBAQCB0eXBlZGVmIHN0cnVj dCBQbGFuU3RhdGUKIAlFeGVjUHJvY05vZGVNdGQgRXhlY1Byb2NOb2RlUmVhbDsJLyogYWN0dWFs IGZ1bmN0aW9uLCBpZiBhYm92ZSBpcyBhCiAJCQkJCQkJCQkJICogd3JhcHBlciAqLwogCi0JSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50OwkvKiBPcHRpb25hbCBydW50aW1lIHN0YXRzIGZvciB0 aGlzIG5vZGUgKi8KKwlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50OwkvKiBPcHRpb25h bCBydW50aW1lIHN0YXRzIGZvciB0aGlzCisJCQkJCQkJCQkJICogbm9kZSAqLwogCVdvcmtlcklu c3RydW1lbnRhdGlvbiAqd29ya2VyX2luc3RydW1lbnQ7CS8qIHBlci13b3JrZXIgaW5zdHJ1bWVu dGF0aW9uICovCiAKIAkvKiBQZXItd29ya2VyIEpJVCBpbnN0cnVtZW50YXRpb24gKi8KLS0gCjIu NDcuMQoK --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0006-Introduce-alternate-Instrumentation-stack-mechani.patch" Content-Disposition: attachment; filename="v3-0006-Introduce-alternate-Instrumentation-stack-mechani.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w6e5 RnJvbSAzMTRlM2U3MzA1ZGE3NDBhOGZhZGIyYzQ4MWEwOTZjYzBjYTdmZmYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjY6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzIDYvN10gSW50 cm9kdWNlIGFsdGVybmF0ZSBJbnN0cnVtZW50YXRpb24gc3RhY2sgbWVjaGFuaXNtCiByZWx5aW5n IG9uIFBHX0ZJTkFMTFkKClRoZSByZXNvdXJjZSBvd25lci1iYXNlZCBJbnN0cnVtZW50YXRpb24g c3RhY2sgY2Fubm90IGhhbmRsZSB3cmFwcGluZwpjZXJ0YWluIHV0aWxpdHkgY29tbWFuZHMgdGhh dCBjbG9zZSBhbmQgcmUtb3BlbiB0aGUgdG9wLWxldmVsIHRyYW5zYWN0aW9uLApsaWtlIHRoZSBD TFVTVEVSIGNvbW1hbmQuIFRoaXMgaXMgYSBwcm9ibGVtIGZvciBwZ19zdGF0X3N0YXRlbWVudHMg dHJhY2tpbmcKb2YgdXRpbGl0eSBjb21tYW5kcyBzcGVjaWZpY2FsbHkuIFRvIHN1cHBvcnQgdHJh Y2tpbmcgc3VjaCBhY3Rpdml0eSwgYWxsb3cKaXNzdWluZyBleHBsaWNpdCBJbnN0clB1c2hTdGFj ay9JbnN0clBvcFN0YWNrIGNvbW1hbmRzIHRvIG1vZGlmeSB0aGUgc3RhY2ssCndpdGggdGhlIElu c3RyUG9wU3RhY2sgaW4gYSBQR19GSU5BTExZIHRvIGVuc3VyZSBjbGVhbnVwIG9uIGFib3J0Lgot LS0KIC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgICB8IDUwICsr KysrLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgICAg ICAgICAgICB8ICAzICsrCiAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDM4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0 YXRfc3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLmMKaW5kZXggZWVhYmQ4MjBkOGUuLjBlNTdjZTY1MDYyIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpAQCAtOTExLDIxICs5MTEs MTMgQEAgcGdzc19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAl7CiAJCWluc3RyX3RpbWUJc3RhcnQ7 CiAJCWluc3RyX3RpbWUJZHVyYXRpb247Ci0JCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0LAot CQkJCQlidWZ1c2FnZTsKLQkJV2FsVXNhZ2UJd2FsdXNhZ2Vfc3RhcnQsCi0JCQkJCXdhbHVzYWdl OworCQlJbnN0clN0YWNrICpzdGFjazsKIAotCQkvKiBXZSBuZWVkIHRvIHRyYWNrIGJ1ZmZlciB1 c2FnZSBhcyB0aGUgcGxhbm5lciBjYW4gYWNjZXNzIHRoZW0uICovCi0JCWJ1ZnVzYWdlX3N0YXJ0 ID0gcGdCdWZmZXJVc2FnZTsKLQotCQkvKgotCQkgKiBTaW1pbGFybHkgdGhlIHBsYW5uZXIgY291 bGQgd3JpdGUgc29tZSBXQUwgcmVjb3JkcyBpbiBzb21lIGNhc2VzCi0JCSAqIChlLmcuIHNldHRp bmcgYSBoaW50IGJpdCB3aXRoIHRob3NlIGJlaW5nIFdBTC1sb2dnZWQpCi0JCSAqLwotCQl3YWx1 c2FnZV9zdGFydCA9IHBnV2FsVXNhZ2U7CiAJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoc3RhcnQp OwogCisJCS8qIFdlIG5lZWQgdG8gdHJhY2sgYnVmZmVyL1dBTCB1c2FnZSBhcyB0aGUgcGxhbm5l ciBjYW4gYWNjZXNzIHRoZW0uICovCisJCXN0YWNrID0gSW5zdHJQdXNoU3RhY2soKTsKKwogCQlu ZXN0aW5nX2xldmVsKys7CiAJCVBHX1RSWSgpOwogCQl7CkBAIC05MzgsNiArOTMwLDcgQEAgcGdz c19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAkJfQogCQlQR19GSU5BTExZKCk7CiAJCXsKKwkJCUlu c3RyUG9wU3RhY2soc3RhY2spOwogCQkJbmVzdGluZ19sZXZlbC0tOwogCQl9CiAJCVBHX0VORF9U UlkoKTsKQEAgLTk0NSwxNCArOTM4LDYgQEAgcGdzc19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAkJ SU5TVFJfVElNRV9TRVRfQ1VSUkVOVChkdXJhdGlvbik7CiAJCUlOU1RSX1RJTUVfU1VCVFJBQ1Qo ZHVyYXRpb24sIHN0YXJ0KTsKIAotCQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIGJ1ZmZlciBjb3Vu dGVycy4gKi8KLQkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7Ci0J CUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1c2Fn ZV9zdGFydCk7Ci0KLQkJLyogY2FsYyBkaWZmZXJlbmNlcyBvZiBXQUwgY291bnRlcnMuICovCi0J CW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwotCQlXYWxVc2FnZUFjY3Vt RGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmd2FsdXNhZ2Vfc3RhcnQpOwotCiAJCXBnc3Nf c3RvcmUocXVlcnlfc3RyaW5nLAogCQkJCSAgIHBhcnNlLT5xdWVyeUlkLAogCQkJCSAgIHBhcnNl LT5zdG10X2xvY2F0aW9uLApAQCAtOTYwLDggKzk0NSw4IEBAIHBnc3NfcGxhbm5lcihRdWVyeSAq cGFyc2UsCiAJCQkJICAgUEdTU19QTEFOLAogCQkJCSAgIElOU1RSX1RJTUVfR0VUX01JTExJU0VD KGR1cmF0aW9uKSwKIAkJCQkgICAwLAotCQkJCSAgICZidWZ1c2FnZSwKLQkJCQkgICAmd2FsdXNh Z2UsCisJCQkJICAgJnN0YWNrLT5idWZ1c2FnZSwKKwkJCQkgICAmc3RhY2stPndhbHVzYWdlLAog CQkJCSAgIE5VTEwsCiAJCQkJICAgTlVMTCwKIAkJCQkgICAwLApAQCAtMTE1NywxNCArMTE0Miwx MCBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwgY29uc3QgY2hhciAq cXVlcnlTdHJpbmcsCiAJCWluc3RyX3RpbWUJc3RhcnQ7CiAJCWluc3RyX3RpbWUJZHVyYXRpb247 CiAJCXVpbnQ2NAkJcm93czsKLQkJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQsCi0JCQkJCWJ1 ZnVzYWdlOwotCQlXYWxVc2FnZQl3YWx1c2FnZV9zdGFydCwKLQkJCQkJd2FsdXNhZ2U7CisJCUlu c3RyU3RhY2sgKnN0YWNrOwogCi0JCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKLQkJ d2FsdXNhZ2Vfc3RhcnQgPSBwZ1dhbFVzYWdlOwogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHN0 YXJ0KTsKKwkJc3RhY2sgPSBJbnN0clB1c2hTdGFjaygpOwogCiAJCW5lc3RpbmdfbGV2ZWwrKzsK IAkJUEdfVFJZKCk7CkBAIC0xMTgwLDYgKzExNjEsNyBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBs YW5uZWRTdG10ICpwc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCX0KIAkJUEdfRklO QUxMWSgpOwogCQl7CisJCQlJbnN0clBvcFN0YWNrKHN0YWNrKTsKIAkJCW5lc3RpbmdfbGV2ZWwt LTsKIAkJfQogCQlQR19FTkRfVFJZKCk7CkBAIC0xMjA4LDE0ICsxMTkwLDYgQEAgcGdzc19Qcm9j ZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAog CQkJCQkgICBxYy0+Y29tbWFuZFRhZyA9PSBDTURUQUdfUkVGUkVTSF9NQVRFUklBTElaRURfVklF VykpID8KIAkJCXFjLT5ucHJvY2Vzc2VkIDogMDsKIAotCQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9m IGJ1ZmZlciBjb3VudGVycy4gKi8KLQkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZl clVzYWdlKSk7Ci0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNh Z2UsICZidWZ1c2FnZV9zdGFydCk7Ci0KLQkJLyogY2FsYyBkaWZmZXJlbmNlcyBvZiBXQUwgY291 bnRlcnMuICovCi0JCW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwotCQlX YWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmd2FsdXNhZ2Vfc3RhcnQp OwotCiAJCXBnc3Nfc3RvcmUocXVlcnlTdHJpbmcsCiAJCQkJICAgc2F2ZWRfcXVlcnlJZCwKIAkJ CQkgICBzYXZlZF9zdG10X2xvY2F0aW9uLApAQCAtMTIyMyw4ICsxMTk3LDggQEAgcGdzc19Qcm9j ZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAog CQkJCSAgIFBHU1NfRVhFQywKIAkJCQkgICBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhkdXJhdGlv biksCiAJCQkJICAgcm93cywKLQkJCQkgICAmYnVmdXNhZ2UsCi0JCQkJICAgJndhbHVzYWdlLAor CQkJCSAgICZzdGFjay0+YnVmdXNhZ2UsCisJCQkJICAgJnN0YWNrLT53YWx1c2FnZSwKIAkJCQkg ICBOVUxMLAogCQkJCSAgIE5VTEwsCiAJCQkJICAgMCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQu aAppbmRleCBiZjc2NjcwNjU4MC4uODgwNGVlNjQzMTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVt ZW50LmgKQEAgLTE0Nyw2ICsxNDcsOSBAQCBleHRlcm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFs bG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKIGV4dGVybiB2b2lkIEluc3RyU3Rh cnQoSW5zdHJ1bWVudGF0aW9uICppbnN0cik7CiBleHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1 bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMsIGJvb2wgZmluYWxpemUpOwogCitleHRl cm4gSW5zdHJTdGFjayAqIEluc3RyUHVzaFN0YWNrKHZvaWQpOworZXh0ZXJuIHZvaWQgSW5zdHJQ b3BTdGFjayhJbnN0clN0YWNrICogcmVzKTsKKwogZXh0ZXJuIE5vZGVJbnN0cnVtZW50YXRpb24g KiBJbnN0ckFsbG9jTm9kZShpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywKIAkJCQkJCQkJ CQkJYm9vbCBhc3luY19tb2RlKTsKIGV4dGVybiB2b2lkIEluc3RySW5pdE5vZGUoTm9kZUluc3Ry dW1lbnRhdGlvbiAqIGluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKLS0gCjIuNDcuMQoK --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0007-Convert-remaining-users-of-pgBufferUsage-to-use-I.patch" Content-Disposition: attachment; filename="v3-0007-Convert-remaining-users-of-pgBufferUsage-to-use-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w6f6 RnJvbSA1OTgzNTg5YTE4ZjI4NjAyOWQxNzk2YzNkNjM2M2RlMzI2ZmY0NDYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjY6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzIDcvN10gQ29u dmVydCByZW1haW5pbmcgdXNlcnMgb2YgcGdCdWZmZXJVc2FnZSB0byB1c2UKIEluc3RyU3RhcnQv SW5zdHJTdG9wLCBkcm9wIHRoZSBnbG9iYWwKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIHwgMzUgKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2FuYWx5emUuYyAgICAgICB8IDM1ICsrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9leHBsYWluLmMgICAgICAgfCAyNiArKysrKy0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9leHBsYWluX2RyLmMgICAgfCAzMSArKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICB8IDI2ICsrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2luc3RydW1lbnQuYyAgICB8IDU2ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0K IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgICB8ICA4ICstLS0KIDcgZmlsZXMg Y2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMTI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBkMmIwMzFmZGQwNi4uMzM4ZDU0MGFhMDEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTY0MSw4ICs2NDEsNyBAQCBoZWFwX3Zh Y3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCVRpbWVz dGFtcFR6IHN0YXJ0dGltZSA9IDA7CiAJUGdTdGF0X0NvdW50ZXIgc3RhcnRyZWFkdGltZSA9IDAs CiAJCQkJc3RhcnR3cml0ZXRpbWUgPSAwOwotCVdhbFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dh bFVzYWdlOwotCUJ1ZmZlclVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwor CUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOwogCUVycm9yQ29udGV4dENhbGxiYWNrIGVy cmNhbGxiYWNrOwogCWNoYXIJICAqKmluZG5hbWVzID0gTlVMTDsKIApAQCAtNjU3LDYgKzY1Niw4 IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJh bXMsCiAJCQlzdGFydHJlYWR0aW1lID0gcGdTdGF0QmxvY2tSZWFkVGltZTsKIAkJCXN0YXJ0d3Jp dGV0aW1lID0gcGdTdGF0QmxvY2tXcml0ZVRpbWU7CiAJCX0KKwkJaW5zdHIgPSBJbnN0ckFsbG9j KDEsIElOU1RSVU1FTlRfQlVGRkVSUyB8IElOU1RSVU1FTlRfV0FMKTsKKwkJSW5zdHJTdGFydChp bnN0cik7CiAJfQogCiAJLyogVXNlZCBmb3IgaW5zdHJ1bWVudGF0aW9uIGFuZCBzdGF0cyByZXBv cnQgKi8KQEAgLTk1OSwxNCArOTYwLDE0IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWws IGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJewogCQlUaW1lc3RhbXBUeiBlbmR0aW1lID0g R2V0Q3VycmVudFRpbWVzdGFtcCgpOwogCisJCUluc3RyU3RvcChpbnN0ciwgMCwgdHJ1ZSk7CisK IAkJaWYgKHZlcmJvc2UgfHwgcGFyYW1zLmxvZ192YWN1dW1fbWluX2R1cmF0aW9uID09IDAgfHwK IAkJCVRpbWVzdGFtcERpZmZlcmVuY2VFeGNlZWRzKHN0YXJ0dGltZSwgZW5kdGltZSwKIAkJCQkJ CQkJCSAgIHBhcmFtcy5sb2dfdmFjdXVtX21pbl9kdXJhdGlvbikpCiAJCXsKIAkJCWxvbmcJCXNl Y3NfZHVyOwogCQkJaW50CQkJdXNlY3NfZHVyOwotCQkJV2FsVXNhZ2UJd2FsdXNhZ2U7Ci0JCQlC dWZmZXJVc2FnZSBidWZmZXJ1c2FnZTsKIAkJCVN0cmluZ0luZm9EYXRhIGJ1ZjsKIAkJCWNoYXIJ ICAgKm1zZ2ZtdDsKIAkJCWludDMyCQlkaWZmOwpAQCAtOTc3LDE3ICs5NzgsMTMgQEAgaGVhcF92 YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJCWlu dDY0CQl0b3RhbF9ibGtzX2RpcnRpZWQ7CiAKIAkJCVRpbWVzdGFtcERpZmZlcmVuY2Uoc3RhcnR0 aW1lLCBlbmR0aW1lLCAmc2Vjc19kdXIsICZ1c2Vjc19kdXIpOwotCQkJbWVtc2V0KCZ3YWx1c2Fn ZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7Ci0JCQlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2Us ICZwZ1dhbFVzYWdlLCAmc3RhcnR3YWx1c2FnZSk7Ci0JCQltZW1zZXQoJmJ1ZmZlcnVzYWdlLCAw LCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKLQkJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZmZXJ1 c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZzdGFydGJ1ZmZlcnVzYWdlKTsKLQotCQkJdG90YWxfYmxr c19oaXQgPSBidWZmZXJ1c2FnZS5zaGFyZWRfYmxrc19oaXQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxv Y2FsX2Jsa3NfaGl0OwotCQkJdG90YWxfYmxrc19yZWFkID0gYnVmZmVydXNhZ2Uuc2hhcmVkX2Js a3NfcmVhZCArCi0JCQkJYnVmZmVydXNhZ2UubG9jYWxfYmxrc19yZWFkOwotCQkJdG90YWxfYmxr c19kaXJ0aWVkID0gYnVmZmVydXNhZ2Uuc2hhcmVkX2Jsa3NfZGlydGllZCArCi0JCQkJYnVmZmVy dXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkOworCisJCQl0b3RhbF9ibGtzX2hpdCA9IElOU1RSX0dF VF9CVUZVU0FHRShpbnN0cikuc2hhcmVkX2Jsa3NfaGl0ICsKKwkJCQlJTlNUUl9HRVRfQlVGVVNB R0UoaW5zdHIpLmxvY2FsX2Jsa3NfaGl0OworCQkJdG90YWxfYmxrc19yZWFkID0gSU5TVFJfR0VU X0JVRlVTQUdFKGluc3RyKS5zaGFyZWRfYmxrc19yZWFkICsKKwkJCQlJTlNUUl9HRVRfQlVGVVNB R0UoaW5zdHIpLmxvY2FsX2Jsa3NfcmVhZDsKKwkJCXRvdGFsX2Jsa3NfZGlydGllZCA9IElOU1RS X0dFVF9CVUZVU0FHRShpbnN0cikuc2hhcmVkX2Jsa3NfZGlydGllZCArCisJCQkJSU5TVFJfR0VU X0JVRlVTQUdFKGluc3RyKS5sb2NhbF9ibGtzX2RpcnRpZWQ7CiAKIAkJCWluaXRTdHJpbmdJbmZv KCZidWYpOwogCQkJaWYgKHZlcmJvc2UpCkBAIC0xMTQ5LDEwICsxMTQ2LDEwIEBAIGhlYXBfdmFj dXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkJ IHRvdGFsX2Jsa3NfZGlydGllZCk7CiAJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsCiAJCQkJCQkJ IF8oIldBTCB1c2FnZTogJSIgUFJJZDY0ICIgcmVjb3JkcywgJSIgUFJJZDY0ICIgZnVsbCBwYWdl IGltYWdlcywgJSIgUFJJdTY0ICIgYnl0ZXMsICUiIFBSSWQ2NCAiIGJ1ZmZlcnMgZnVsbFxuIiks Ci0JCQkJCQkJIHdhbHVzYWdlLndhbF9yZWNvcmRzLAotCQkJCQkJCSB3YWx1c2FnZS53YWxfZnBp LAotCQkJCQkJCSB3YWx1c2FnZS53YWxfYnl0ZXMsCi0JCQkJCQkJIHdhbHVzYWdlLndhbF9idWZm ZXJzX2Z1bGwpOworCQkJCQkJCSBJTlNUUl9HRVRfV0FMVVNBR0UoaW5zdHIpLndhbF9yZWNvcmRz LAorCQkJCQkJCSBJTlNUUl9HRVRfV0FMVVNBR0UoaW5zdHIpLndhbF9mcGksCisJCQkJCQkJIElO U1RSX0dFVF9XQUxVU0FHRShpbnN0cikud2FsX2J5dGVzLAorCQkJCQkJCSBJTlNUUl9HRVRfV0FM VVNBR0UoaW5zdHIpLndhbF9idWZmZXJzX2Z1bGwpOwogCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVm LCBfKCJzeXN0ZW0gdXNhZ2U6ICVzIiksIHBnX3J1c2FnZV9zaG93KCZydTApKTsKIAogCQkJZXJl cG9ydCh2ZXJib3NlID8gSU5GTyA6IExPRywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYwppbmRleCBjMmUy MTY1NjNjNi4uOTJjYTU5Nzc4YzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fu YWx5emUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKQEAgLTMwMiw5ICsz MDIsNyBAQCBkb19hbmFseXplX3JlbChSZWxhdGlvbiBvbmVyZWwsIGNvbnN0IFZhY3V1bVBhcmFt cyBwYXJhbXMsCiAJT2lkCQkJc2F2ZV91c2VyaWQ7CiAJaW50CQkJc2F2ZV9zZWNfY29udGV4dDsK IAlpbnQJCQlzYXZlX25lc3RsZXZlbDsKLQlXYWxVc2FnZQlzdGFydHdhbHVzYWdlID0gcGdXYWxV c2FnZTsKLQlCdWZmZXJVc2FnZSBzdGFydGJ1ZmZlcnVzYWdlID0gcGdCdWZmZXJVc2FnZTsKLQlC dWZmZXJVc2FnZSBidWZmZXJ1c2FnZTsKKwlJbnN0cnVtZW50YXRpb24gKmluc3RyID0gTlVMTDsK IAlQZ1N0YXRfQ291bnRlciBzdGFydHJlYWR0aW1lID0gMDsKIAlQZ1N0YXRfQ291bnRlciBzdGFy dHdyaXRldGltZSA9IDA7CiAKQEAgLTM1NSw2ICszNTMsOSBAQCBkb19hbmFseXplX3JlbChSZWxh dGlvbiBvbmVyZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCX0KIAogCQlwZ19ydXNh Z2VfaW5pdCgmcnUwKTsKKworCQlpbnN0ciA9IEluc3RyQWxsb2MoMSwgSU5TVFJVTUVOVF9CVUZG RVJTIHwgSU5TVFJVTUVOVF9XQUwpOworCQlJbnN0clN0YXJ0KGluc3RyKTsKIAl9CiAKIAkvKiBV c2VkIGZvciBpbnN0cnVtZW50YXRpb24gYW5kIHN0YXRzIHJlcG9ydCAqLwpAQCAtNzM1LDEyICs3 MzYsMTMgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBjb25zdCBWYWN1dW1QYXJh bXMgcGFyYW1zLAogCXsKIAkJVGltZXN0YW1wVHogZW5kdGltZSA9IEdldEN1cnJlbnRUaW1lc3Rh bXAoKTsKIAorCQlJbnN0clN0b3AoaW5zdHIsIDAsIHRydWUpOworCiAJCWlmICh2ZXJib3NlIHx8 IHBhcmFtcy5sb2dfYW5hbHl6ZV9taW5fZHVyYXRpb24gPT0gMCB8fAogCQkJVGltZXN0YW1wRGlm ZmVyZW5jZUV4Y2VlZHMoc3RhcnR0aW1lLCBlbmR0aW1lLAogCQkJCQkJCQkJICAgcGFyYW1zLmxv Z19hbmFseXplX21pbl9kdXJhdGlvbikpCiAJCXsKIAkJCWxvbmcJCWRlbGF5X2luX21zOwotCQkJ V2FsVXNhZ2UJd2FsdXNhZ2U7CiAJCQlkb3VibGUJCXJlYWRfcmF0ZSA9IDA7CiAJCQlkb3VibGUJ CXdyaXRlX3JhdGUgPSAwOwogCQkJY2hhcgkgICAqbXNnZm10OwpAQCAtNzQ5LDE3ICs3NTEsMTIg QEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFy YW1zLAogCQkJaW50NjQJCXRvdGFsX2Jsa3NfcmVhZDsKIAkJCWludDY0CQl0b3RhbF9ibGtzX2Rp cnRpZWQ7CiAKLQkJCW1lbXNldCgmYnVmZmVydXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkp OwotCQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZmZlcnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwg JnN0YXJ0YnVmZmVydXNhZ2UpOwotCQkJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVz YWdlKSk7Ci0JCQlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmc3Rh cnR3YWx1c2FnZSk7Ci0KLQkJCXRvdGFsX2Jsa3NfaGl0ID0gYnVmZmVydXNhZ2Uuc2hhcmVkX2Js a3NfaGl0ICsKLQkJCQlidWZmZXJ1c2FnZS5sb2NhbF9ibGtzX2hpdDsKLQkJCXRvdGFsX2Jsa3Nf cmVhZCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9ibGtzX3JlYWQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxv Y2FsX2Jsa3NfcmVhZDsKLQkJCXRvdGFsX2Jsa3NfZGlydGllZCA9IGJ1ZmZlcnVzYWdlLnNoYXJl ZF9ibGtzX2RpcnRpZWQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZDsKKwkJ CXRvdGFsX2Jsa3NfaGl0ID0gSU5TVFJfR0VUX0JVRlVTQUdFKGluc3RyKS5zaGFyZWRfYmxrc19o aXQgKworCQkJCUlOU1RSX0dFVF9CVUZVU0FHRShpbnN0cikubG9jYWxfYmxrc19oaXQ7CisJCQl0 b3RhbF9ibGtzX3JlYWQgPSBJTlNUUl9HRVRfQlVGVVNBR0UoaW5zdHIpLnNoYXJlZF9ibGtzX3Jl YWQgKworCQkJCUlOU1RSX0dFVF9CVUZVU0FHRShpbnN0cikubG9jYWxfYmxrc19yZWFkOworCQkJ dG90YWxfYmxrc19kaXJ0aWVkID0gSU5TVFJfR0VUX0JVRlVTQUdFKGluc3RyKS5zaGFyZWRfYmxr c19kaXJ0aWVkICsKKwkJCQlJTlNUUl9HRVRfQlVGVVNBR0UoaW5zdHIpLmxvY2FsX2Jsa3NfZGly dGllZDsKIAogCQkJLyoKIAkJCSAqIFdlIGRvIG5vdCBleHBlY3QgYW4gYW5hbHl6ZSB0byB0YWtl ID4gMjUgZGF5cyBhbmQgaXQgc2ltcGxpZmllcwpAQCAtODMyLDEwICs4MjksMTAgQEAgZG9fYW5h bHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJ CQkJCSB0b3RhbF9ibGtzX2RpcnRpZWQpOwogCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLAogCQkJ CQkJCSBfKCJXQUwgdXNhZ2U6ICUiIFBSSWQ2NCAiIHJlY29yZHMsICUiIFBSSWQ2NCAiIGZ1bGwg cGFnZSBpbWFnZXMsICUiIFBSSXU2NCAiIGJ5dGVzLCAlIiBQUklkNjQgIiBidWZmZXJzIGZ1bGxc biIpLAotCQkJCQkJCSB3YWx1c2FnZS53YWxfcmVjb3JkcywKLQkJCQkJCQkgd2FsdXNhZ2Uud2Fs X2ZwaSwKLQkJCQkJCQkgd2FsdXNhZ2Uud2FsX2J5dGVzLAotCQkJCQkJCSB3YWx1c2FnZS53YWxf YnVmZmVyc19mdWxsKTsKKwkJCQkJCQkgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3RyKS53YWxfcmVj b3JkcywKKwkJCQkJCQkgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3RyKS53YWxfZnBpLAorCQkJCQkJ CSBJTlNUUl9HRVRfV0FMVVNBR0UoaW5zdHIpLndhbF9ieXRlcywKKwkJCQkJCQkgSU5TVFJfR0VU X1dBTFVTQUdFKGluc3RyKS53YWxfYnVmZmVyc19mdWxsKTsKIAkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZiwgXygic3lzdGVtIHVzYWdlOiAlcyIpLCBwZ19ydXNhZ2Vfc2hvdygmcnUwKSk7CiAKIAkJ CWVyZXBvcnQodmVyYm9zZSA/IElORk8gOiBMT0csCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXgg YmIwNjg5Yjk1ZDQuLjRhMzk2NTc1YmFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjIs MTQgKzMyMiwxNiBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQg Y3Vyc29yT3B0aW9ucywKIAkJCQkJCSBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudikKIHsKIAlQ bGFubmVkU3RtdCAqcGxhbjsKLQlpbnN0cl90aW1lCXBsYW5zdGFydCwKLQkJCQlwbGFuZHVyYXRp b247Ci0JQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQsCi0JCQkJYnVmdXNhZ2U7CisJSW5zdHJ1 bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJzIG1lbV9jb3Vu dGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0 IHNhdmVkX2N0eCA9IE5VTEw7CiAKKwlpZiAoZXMtPmJ1ZmZlcnMpCisJCWluc3RyID0gSW5zdHJB bGxvYygxLCBJTlNUUlVNRU5UX1RJTUVSIHwgSU5TVFJVTUVOVF9CVUZGRVJTKTsKKwllbHNlCisJ CWluc3RyID0gSW5zdHJBbGxvYygxLCBJTlNUUlVNRU5UX1RJTUVSKTsKKwogCWlmIChlcy0+bWVt b3J5KQogCXsKIAkJLyoKQEAgLTM0NiwxNSArMzQ4LDEyIEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVR dWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25zLAogCQlzYXZlZF9jdHggPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8ocGxhbm5lcl9jdHgpOwogCX0KIAotCWlmIChlcy0+YnVmZmVycykK LQkJYnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOwotCUlOU1RSX1RJTUVfU0VUX0NVUlJF TlQocGxhbnN0YXJ0KTsKKwlJbnN0clN0YXJ0KGluc3RyKTsKIAogCS8qIHBsYW4gdGhlIHF1ZXJ5 ICovCiAJcGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHF1ZXJ5U3RyaW5nLCBjdXJzb3JPcHRp b25zLCBwYXJhbXMsIGVzKTsKIAotCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQocGxhbmR1cmF0aW9u KTsKLQlJTlNUUl9USU1FX1NVQlRSQUNUKHBsYW5kdXJhdGlvbiwgcGxhbnN0YXJ0KTsKKwlJbnN0 clN0b3AoaW5zdHIsIDAsIHRydWUpOwogCiAJaWYgKGVzLT5tZW1vcnkpCiAJewpAQCAtMzYyLDE2 ICszNjEsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vy c29yT3B0aW9ucywKIAkJTWVtb3J5Q29udGV4dE1lbUNvbnN1bWVkKHBsYW5uZXJfY3R4LCAmbWVt X2NvdW50ZXJzKTsKIAl9CiAKLQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIGJ1ZmZlciBjb3VudGVy cy4gKi8KLQlpZiAoZXMtPmJ1ZmZlcnMpCi0JewotCQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXpl b2YoQnVmZmVyVXNhZ2UpKTsKLQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdC dWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKLQl9Ci0KIAkvKiBydW4gaXQgKGlmIG5lZWRl ZCkgYW5kIHByb2R1Y2Ugb3V0cHV0ICovCiAJRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMs IHF1ZXJ5U3RyaW5nLCBwYXJhbXMsIHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChl cy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCSAgICZpbnN0ci0+dG90YWwsIChl cy0+YnVmZmVycyA/ICZJTlNUUl9HRVRfQlVGVVNBR0UoaW5zdHIpIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9kci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbl9kci5jCmluZGV4IDk1Njg1ZDdlODhkLi45ZmEwYjUxZTYyYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9kci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4cGxhaW5fZHIuYwpAQCAtMTEwLDE1ICsxMTAsMjAgQEAgc2VyaWFsaXplQW5hbHl6ZVJlY2Vp dmUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RSZWNlaXZlciAqc2VsZikKIAlNZW1vcnlDb250 ZXh0IG9sZGNvbnRleHQ7CiAJU3RyaW5nSW5mbwlidWYgPSAmbXlTdGF0ZS0+YnVmOwogCWludAkJ CW5hdHRzID0gdHlwZWluZm8tPm5hdHRzOwotCWluc3RyX3RpbWUJc3RhcnQsCi0JCQkJZW5kOwot CUJ1ZmZlclVzYWdlIGluc3RyX3N0YXJ0OworCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxM OwogCiAJLyogb25seSBtZWFzdXJlIHRpbWUsIGJ1ZmZlcnMgaWYgcmVxdWVzdGVkICovCi0JaWYg KG15U3RhdGUtPmVzLT50aW1pbmcpCi0JCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoc3RhcnQpOwot CWlmIChteVN0YXRlLT5lcy0+YnVmZmVycykKLQkJaW5zdHJfc3RhcnQgPSBwZ0J1ZmZlclVzYWdl OworCWlmIChteVN0YXRlLT5lcy0+dGltaW5nIHx8IG15U3RhdGUtPmVzLT5idWZmZXJzKQorCXsK KwkJSW5zdHJ1bWVudE9wdGlvbiBpbnN0cnVtZW50X29wdGlvbnMgPSAwOworCisJCWlmIChteVN0 YXRlLT5lcy0+dGltaW5nKQorCQkJaW5zdHJ1bWVudF9vcHRpb25zIHw9IElOU1RSVU1FTlRfVElN RVI7CisJCWlmIChteVN0YXRlLT5lcy0+YnVmZmVycykKKwkJCWluc3RydW1lbnRfb3B0aW9ucyB8 PSBJTlNUUlVNRU5UX0JVRkZFUlM7CisJCWluc3RyID0gSW5zdHJBbGxvYygxLCBpbnN0cnVtZW50 X29wdGlvbnMpOworCQlJbnN0clN0YXJ0KGluc3RyKTsKKwl9CiAKIAkvKiBTZXQgb3IgdXBkYXRl IG15IGRlcml2ZWQgYXR0cmlidXRlIGluZm8sIGlmIG5lZWRlZCAqLwogCWlmIChteVN0YXRlLT5h dHRyaW5mbyAhPSB0eXBlaW5mbyB8fCBteVN0YXRlLT5uYXR0cnMgIT0gbmF0dHMpCkBAIC0xODYs MTggKzE5MSwxNiBAQCBzZXJpYWxpemVBbmFseXplUmVjZWl2ZShUdXBsZVRhYmxlU2xvdCAqc2xv dCwgRGVzdFJlY2VpdmVyICpzZWxmKQogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0 KTsKIAlNZW1vcnlDb250ZXh0UmVzZXQobXlTdGF0ZS0+dG1wY29udGV4dCk7CiAKKwlpZiAobXlT dGF0ZS0+ZXMtPnRpbWluZyB8fCBteVN0YXRlLT5lcy0+YnVmZmVycykKKwkJSW5zdHJTdG9wKGlu c3RyLCAwLCB0cnVlKTsKKwogCS8qIFVwZGF0ZSB0aW1pbmcgZGF0YSAqLwogCWlmIChteVN0YXRl LT5lcy0+dGltaW5nKQotCXsKLQkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChlbmQpOwotCQlJTlNU Ul9USU1FX0FDQ1VNX0RJRkYobXlTdGF0ZS0+bWV0cmljcy50aW1lU3BlbnQsIGVuZCwgc3RhcnQp OwotCX0KKwkJSU5TVFJfVElNRV9BREQobXlTdGF0ZS0+bWV0cmljcy50aW1lU3BlbnQsIGluc3Ry LT50b3RhbCk7CiAKIAkvKiBVcGRhdGUgYnVmZmVyIG1ldHJpY3MgKi8KIAlpZiAobXlTdGF0ZS0+ ZXMtPmJ1ZmZlcnMpCi0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZteVN0YXRlLT5tZXRyaWNzLmJ1 ZmZlclVzYWdlLAotCQkJCQkJCSAmcGdCdWZmZXJVc2FnZSwKLQkJCQkJCQkgJmluc3RyX3N0YXJ0 KTsKKwkJQnVmZmVyVXNhZ2VBZGQoJm15U3RhdGUtPm1ldHJpY3MuYnVmZmVyVXNhZ2UsICZJTlNU Ul9HRVRfQlVGVVNBR0UoaW5zdHIpKTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jCmluZGV4IDM0YjY0MTBkNmEyLi5kOTJhZWI2YTFkZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBh cmUuYwpAQCAtNTc4LDE0ICs1NzgsMTYgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3Rt dCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJTGlzdENl bGwgICAqcDsKIAlQYXJhbUxpc3RJbmZvIHBhcmFtTEkgPSBOVUxMOwogCUVTdGF0ZQkgICAqZXN0 YXRlID0gTlVMTDsKLQlpbnN0cl90aW1lCXBsYW5zdGFydDsKLQlpbnN0cl90aW1lCXBsYW5kdXJh dGlvbjsKLQlCdWZmZXJVc2FnZSBidWZ1c2FnZV9zdGFydCwKLQkJCQlidWZ1c2FnZTsKKwlJbnN0 cnVtZW50YXRpb24gKmluc3RyID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0Q291bnRlcnMgbWVtX2Nv dW50ZXJzOwogCU1lbW9yeUNvbnRleHQgcGxhbm5lcl9jdHggPSBOVUxMOwogCU1lbW9yeUNvbnRl eHQgc2F2ZWRfY3R4ID0gTlVMTDsKIAorCWlmIChlcy0+YnVmZmVycykKKwkJaW5zdHIgPSBJbnN0 ckFsbG9jKDEsIElOU1RSVU1FTlRfVElNRVIgfCBJTlNUUlVNRU5UX0JVRkZFUlMpOworCWVsc2UK KwkJaW5zdHIgPSBJbnN0ckFsbG9jKDEsIElOU1RSVU1FTlRfVElNRVIpOworCiAJaWYgKGVzLT5t ZW1vcnkpCiAJewogCQkvKiBTZWUgRXhwbGFpbk9uZVF1ZXJ5IGFib3V0IHRoaXMgKi8KQEAgLTU5 Niw5ICs1OTgsNyBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwg SW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJc2F2ZWRfY3R4ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKHBsYW5uZXJfY3R4KTsKIAl9CiAKLQlpZiAoZXMtPmJ1ZmZlcnMpCi0J CWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKLQlJTlNUUl9USU1FX1NFVF9DVVJSRU5U KHBsYW5zdGFydCk7CisJSW5zdHJTdGFydChpbnN0cik7CiAKIAkvKiBMb29rIGl0IHVwIGluIHRo ZSBoYXNoIHRhYmxlICovCiAJZW50cnkgPSBGZXRjaFByZXBhcmVkU3RhdGVtZW50KGV4ZWNzdG10 LT5uYW1lLCB0cnVlKTsKQEAgLTYzMyw4ICs2MzMsNyBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4 ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywK IAljcGxhbiA9IEdldENhY2hlZFBsYW4oZW50cnktPnBsYW5zb3VyY2UsIHBhcmFtTEksCiAJCQkJ CQkgIEN1cnJlbnRSZXNvdXJjZU93bmVyLCBwc3RhdGUtPnBfcXVlcnlFbnYpOwogCi0JSU5TVFJf VElNRV9TRVRfQ1VSUkVOVChwbGFuZHVyYXRpb24pOwotCUlOU1RSX1RJTUVfU1VCVFJBQ1QocGxh bmR1cmF0aW9uLCBwbGFuc3RhcnQpOworCUluc3RyU3RvcChpbnN0ciwgMCwgdHJ1ZSk7CiAKIAlp ZiAoZXMtPm1lbW9yeSkKIAl7CkBAIC02NDIsMTMgKzY0MSw2IEBAIEV4cGxhaW5FeGVjdXRlUXVl cnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUg KmVzLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZtZW1fY291bnRl cnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAqLwot CWlmIChlcy0+YnVmZmVycykKLQl7Ci0JCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZm ZXJVc2FnZSkpOwotCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVz YWdlLCAmYnVmdXNhZ2Vfc3RhcnQpOwotCX0KLQogCXBsYW5fbGlzdCA9IGNwbGFuLT5zdG10X2xp c3Q7CiAKIAkvKiBFeHBsYWluIGVhY2ggcXVlcnkgKi8KQEAgLTY1OCw3ICs2NTAsNyBAQCBFeHBs YWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywg RXhwbGFpblN0YXRlICplcywKIAogCQlpZiAocHN0bXQtPmNvbW1hbmRUeXBlICE9IENNRF9VVElM SVRZKQogCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBh cmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+ YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCQkJICAgJmluc3RyLT50b3RhbCwgKGVz LT5idWZmZXJzID8gJklOU1RSX0dFVF9CVUZVU0FHRShpbnN0cikgOiBOVUxMKSwKIAkJCQkJCSAg IGVzLT5tZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5P bmVVdGlsaXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKaW5kZXggZDVmZGJlY2IwMjUuLmQ2MTgzMGE3ZmQ4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBAIC0xOCwxMSArMTgsOSBAQAogI2luY2x1 ZGUgImV4ZWN1dG9yL2luc3RydW1lbnQuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgog Ci1CdWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdlOwogV2FsVXNhZ2UJcGdXYWxVc2FnZTsKIEluc3Ry U3RhY2sgKnBnSW5zdHJTdGFjayA9IE5VTEw7CiAKLXN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdlQWRk KEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQpOwogc3RhdGljIHZvaWQg V2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRzdCwgV2FsVXNhZ2UgKmFkZCk7CiAKIC8qCkBAIC0xMTMs NiArMTExLDI3IEBAIFJlc093bmVyUmVsZWFzZUluc3RydW1lbnRhdGlvbihEYXR1bSByZXMpCiAJ aW5zdHItPmZpbmFsaXplZCA9IHRydWU7CiB9CiAKK0luc3RyU3RhY2sgKgorSW5zdHJQdXNoU3Rh Y2soKQoreworCUluc3RyU3RhY2sgKnN0YWNrID0gcGFsbG9jMChzaXplb2YoSW5zdHJTdGFjaykp OworCisJc3RhY2stPnByZXZpb3VzID0gcGdJbnN0clN0YWNrOworCXBnSW5zdHJTdGFjayA9IHN0 YWNrOworCisJcmV0dXJuIHN0YWNrOworfQorCit2b2lkCitJbnN0clBvcFN0YWNrKEluc3RyU3Rh Y2sgKiBzdGFjaykKK3sKKwlBc3NlcnQoc3RhY2sgIT0gTlVMTCk7CisKKwlwZ0luc3RyU3RhY2sg PSBzdGFjay0+cHJldmlvdXM7CisJaWYgKHBnSW5zdHJTdGFjaykKKwkJSW5zdHJTdGFja0FkZChw Z0luc3RyU3RhY2ssIHN0YWNrKTsKK30KKwogLyogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRh dGlvbiBoYW5kbGluZyAqLwogSW5zdHJ1bWVudGF0aW9uICoKIEluc3RyQWxsb2MoaW50IG4sIGlu dCBpbnN0cnVtZW50X29wdGlvbnMpCkBAIC0zOTMsMTIgKzQxMiwxMSBAQCBJbnN0ckFjY3VtUGFy YWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKIAkJ V2FsVXNhZ2VBZGQoJmRzdC0+d2FsdXNhZ2UsIHdhbHVzYWdlKTsKIAl9CiAKLQlCdWZmZXJVc2Fn ZUFkZCgmcGdCdWZmZXJVc2FnZSwgYnVmdXNhZ2UpOwogCVdhbFVzYWdlQWRkKCZwZ1dhbFVzYWdl LCB3YWx1c2FnZSk7CiB9CiAKIC8qIGRzdCArPSBhZGQgKi8KLXN0YXRpYyB2b2lkCit2b2lkCiBC dWZmZXJVc2FnZUFkZChCdWZmZXJVc2FnZSAqZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAqYWRkKQog ewogCWRzdC0+c2hhcmVkX2Jsa3NfaGl0ICs9IGFkZC0+c2hhcmVkX2Jsa3NfaGl0OwpAQCAtNDE5 LDM2ICs0MzcsNiBAQCBCdWZmZXJVc2FnZUFkZChCdWZmZXJVc2FnZSAqZHN0LCBjb25zdCBCdWZm ZXJVc2FnZSAqYWRkKQogCUlOU1RSX1RJTUVfQUREKGRzdC0+dGVtcF9ibGtfd3JpdGVfdGltZSwg YWRkLT50ZW1wX2Jsa193cml0ZV90aW1lKTsKIH0KIAotLyogZHN0ICs9IGFkZCAtIHN1YiAqLwot dm9pZAotQnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKLQkJCQkJIGNvbnN0 IEJ1ZmZlclVzYWdlICphZGQsCi0JCQkJCSBjb25zdCBCdWZmZXJVc2FnZSAqc3ViKQotewotCWRz dC0+c2hhcmVkX2Jsa3NfaGl0ICs9IGFkZC0+c2hhcmVkX2Jsa3NfaGl0IC0gc3ViLT5zaGFyZWRf Ymxrc19oaXQ7Ci0JZHN0LT5zaGFyZWRfYmxrc19yZWFkICs9IGFkZC0+c2hhcmVkX2Jsa3NfcmVh ZCAtIHN1Yi0+c2hhcmVkX2Jsa3NfcmVhZDsKLQlkc3QtPnNoYXJlZF9ibGtzX2RpcnRpZWQgKz0g YWRkLT5zaGFyZWRfYmxrc19kaXJ0aWVkIC0gc3ViLT5zaGFyZWRfYmxrc19kaXJ0aWVkOwotCWRz dC0+c2hhcmVkX2Jsa3Nfd3JpdHRlbiArPSBhZGQtPnNoYXJlZF9ibGtzX3dyaXR0ZW4gLSBzdWIt PnNoYXJlZF9ibGtzX3dyaXR0ZW47Ci0JZHN0LT5sb2NhbF9ibGtzX2hpdCArPSBhZGQtPmxvY2Fs X2Jsa3NfaGl0IC0gc3ViLT5sb2NhbF9ibGtzX2hpdDsKLQlkc3QtPmxvY2FsX2Jsa3NfcmVhZCAr PSBhZGQtPmxvY2FsX2Jsa3NfcmVhZCAtIHN1Yi0+bG9jYWxfYmxrc19yZWFkOwotCWRzdC0+bG9j YWxfYmxrc19kaXJ0aWVkICs9IGFkZC0+bG9jYWxfYmxrc19kaXJ0aWVkIC0gc3ViLT5sb2NhbF9i bGtzX2RpcnRpZWQ7Ci0JZHN0LT5sb2NhbF9ibGtzX3dyaXR0ZW4gKz0gYWRkLT5sb2NhbF9ibGtz X3dyaXR0ZW4gLSBzdWItPmxvY2FsX2Jsa3Nfd3JpdHRlbjsKLQlkc3QtPnRlbXBfYmxrc19yZWFk ICs9IGFkZC0+dGVtcF9ibGtzX3JlYWQgLSBzdWItPnRlbXBfYmxrc19yZWFkOwotCWRzdC0+dGVt cF9ibGtzX3dyaXR0ZW4gKz0gYWRkLT50ZW1wX2Jsa3Nfd3JpdHRlbiAtIHN1Yi0+dGVtcF9ibGtz X3dyaXR0ZW47Ci0JSU5TVFJfVElNRV9BQ0NVTV9ESUZGKGRzdC0+c2hhcmVkX2Jsa19yZWFkX3Rp bWUsCi0JCQkJCQkgIGFkZC0+c2hhcmVkX2Jsa19yZWFkX3RpbWUsIHN1Yi0+c2hhcmVkX2Jsa19y ZWFkX3RpbWUpOwotCUlOU1RSX1RJTUVfQUNDVU1fRElGRihkc3QtPnNoYXJlZF9ibGtfd3JpdGVf dGltZSwKLQkJCQkJCSAgYWRkLT5zaGFyZWRfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+c2hhcmVkX2Js a193cml0ZV90aW1lKTsKLQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoZHN0LT5sb2NhbF9ibGtfcmVh ZF90aW1lLAotCQkJCQkJICBhZGQtPmxvY2FsX2Jsa19yZWFkX3RpbWUsIHN1Yi0+bG9jYWxfYmxr X3JlYWRfdGltZSk7Ci0JSU5TVFJfVElNRV9BQ0NVTV9ESUZGKGRzdC0+bG9jYWxfYmxrX3dyaXRl X3RpbWUsCi0JCQkJCQkgIGFkZC0+bG9jYWxfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+bG9jYWxfYmxr X3dyaXRlX3RpbWUpOwotCUlOU1RSX1RJTUVfQUNDVU1fRElGRihkc3QtPnRlbXBfYmxrX3JlYWRf dGltZSwKLQkJCQkJCSAgYWRkLT50ZW1wX2Jsa19yZWFkX3RpbWUsIHN1Yi0+dGVtcF9ibGtfcmVh ZF90aW1lKTsKLQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoZHN0LT50ZW1wX2Jsa193cml0ZV90aW1l LAotCQkJCQkJICBhZGQtPnRlbXBfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+dGVtcF9ibGtfd3JpdGVf dGltZSk7Ci19Ci0KIC8qIGhlbHBlciBmdW5jdGlvbnMgZm9yIFdBTCB1c2FnZSBhY2N1bXVsYXRp b24gKi8KIHN0YXRpYyB2b2lkCiBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAq YWRkKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCmluZGV4IDg4MDRlZTY0MzExLi5lNDVjNDUy YmM3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaApAQCAtMTM5LDcgKzEzOSw2IEBAIHR5 cGVkZWYgc3RydWN0IFdvcmtlckluc3RydW1lbnRhdGlvbgogCU5vZGVJbnN0cnVtZW50YXRpb24g aW5zdHJ1bWVudFtGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOwogfSBXb3JrZXJJbnN0cnVtZW50YXRp b247CiAKLWV4dGVybiBQR0RMTElNUE9SVCBCdWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdlOwogZXh0 ZXJuIFBHRExMSU1QT1JUIFdhbFVzYWdlIHBnV2FsVXNhZ2U7CiBleHRlcm4gUEdETExJTVBPUlQg SW5zdHJTdGFjayAqIHBnSW5zdHJTdGFjazsKIApAQCAtMTYyLDkgKzE2MSw4IEBAIGV4dGVybiB2 b2lkIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogZHN0LCBOb2RlSW5zdHJ1bWVu dGF0aW9uICogYWRkKTsKIGV4dGVybiBJbnN0cnVtZW50YXRpb24gKkluc3RyU3RhcnRQYXJhbGxl bFF1ZXJ5KHZvaWQpOwogZXh0ZXJuIHZvaWQgSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEluc3RydW1l bnRhdGlvbiAqaW5zdHIsIEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdl KTsKIGV4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1 c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKLWV4dGVybiB2b2lkIEJ1ZmZlclVzYWdlQWNjdW1E aWZmKEJ1ZmZlclVzYWdlICpkc3QsCi0JCQkJCQkJCSBjb25zdCBCdWZmZXJVc2FnZSAqYWRkLCBj b25zdCBCdWZmZXJVc2FnZSAqc3ViKTsKIGV4dGVybiB2b2lkIEluc3RyU3RhY2tBZGQoSW5zdHJT dGFjayAqIGRzdCwgSW5zdHJTdGFjayAqIGFkZCk7CitleHRlcm4gdm9pZCBCdWZmZXJVc2FnZUFk ZChCdWZmZXJVc2FnZSAqZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAqYWRkKTsKIGV4dGVybiB2b2lk IFdhbFVzYWdlQWNjdW1EaWZmKFdhbFVzYWdlICpkc3QsIGNvbnN0IFdhbFVzYWdlICphZGQsCiAJ CQkJCQkJICBjb25zdCBXYWxVc2FnZSAqc3ViKTsKIApAQCAtMTc1LDIyICsxNzMsMTggQEAgZXh0 ZXJuIHZvaWQgV2FsVXNhZ2VBY2N1bURpZmYoV2FsVXNhZ2UgKmRzdCwgY29uc3QgV2FsVXNhZ2Ug KmFkZCwKIAlpbnN0ci0+c3RhY2sud2FsdXNhZ2UKIAogI2RlZmluZSBJTlNUUl9CVUZVU0FHRV9J TkNSKGZsZCkgZG8geyBcCi0JCXBnQnVmZmVyVXNhZ2UuZmxkKys7IFwKIAkJaWYgKHBnSW5zdHJT dGFjaykgXAogCQkJcGdJbnN0clN0YWNrLT5idWZ1c2FnZS5mbGQrKzsgXAogCX0gd2hpbGUoMCkK ICNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfQUREKGZsZCx2YWwpIGRvIHsgXAotCQlwZ0J1ZmZlclVz YWdlLmZsZCArPSB2YWw7IFwKIAkJaWYgKHBnSW5zdHJTdGFjaykgXAogCQkJcGdJbnN0clN0YWNr LT5idWZ1c2FnZS5mbGQgKz0gdmFsOyBcCiAJfSB3aGlsZSgwKQogI2RlZmluZSBJTlNUUl9CVUZV U0FHRV9USU1FX0FERChmbGQsdmFsKSBkbyB7IFwKLQlJTlNUUl9USU1FX0FERChwZ0J1ZmZlclVz YWdlLmZsZCwgdmFsKTsgXAogCWlmIChwZ0luc3RyU3RhY2spIFwKIAkJSU5TVFJfVElNRV9BREQo cGdJbnN0clN0YWNrLT5idWZ1c2FnZS5mbGQsIHZhbCk7IFwKIAl9IHdoaWxlICgwKQogI2RlZmlu ZSBJTlNUUl9CVUZVU0FHRV9USU1FX0FDQ1VNX0RJRkYoZmxkLGVuZHZhbCxzdGFydHZhbCkgZG8g eyBcCi0JSU5TVFJfVElNRV9BQ0NVTV9ESUZGKHBnQnVmZmVyVXNhZ2UuZmxkLCBlbmR2YWwsIHN0 YXJ0dmFsKTsgXAogCWlmIChwZ0luc3RyU3RhY2spIFwKIAkJSU5TVFJfVElNRV9BQ0NVTV9ESUZG KHBnSW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkLCBlbmR2YWwsIHN0YXJ0dmFsKTsgXAogCX0gd2hp bGUgKDApCi0tIAoyLjQ3LjEKCg== --0000000000007c06b00641bd9f3d Content-Type: application/octet-stream; name="v3-0003-Replace-direct-changes-of-pgBufferUsage-pgWalUsag.patch" Content-Disposition: attachment; filename="v3-0003-Replace-direct-changes-of-pgBufferUsage-pgWalUsag.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh1w4w6b2 RnJvbSA0YjdkMTVhNjk1MGY5Mzc0ZGY2ZDA1Zjg0ZTIxM2Q4NGUxMWQ1NGExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDMxIEF1ZyAyMDI1IDE2OjM0OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyAzLzddIFJl cGxhY2UgZGlyZWN0IGNoYW5nZXMgb2YgcGdCdWZmZXJVc2FnZS9wZ1dhbFVzYWdlCiB3aXRoIElO U1RSXyogbWFjcm9zCgpUaGlzIGVuY2Fwc3VsYXRlcyB0aGUgb3duZXJzaGlwIG9mIHRoZXNlIGds b2JhbHMgYmV0dGVyLCBhbmQgd2lsbCBhbGxvdwphIHN1YnNlcXVlbnQgcmVmYWN0b3JpbmcuCi0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAgfCAgOCArKysrLS0tLQog c3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICAgfCAyNCArKysrKysrKysrKyst LS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMgIHwgIDYg KysrLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jICAgICB8ICA4ICsrKyst LS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYyB8ICA4ICsrKystLS0t CiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICB8IDE5ICsrKysrKysrKysr KysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGVjZWFiMzQxMjU1Li5lMzI0ZTVh NzhjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtMTA3OCw5ICsxMDc4LDkgQEAg WExvZ0luc2VydFJlY29yZChYTG9nUmVjRGF0YSAqcmRhdGEsCiAJLyogUmVwb3J0IFdBTCB0cmFm ZmljIHRvIHRoZSBpbnN0cnVtZW50YXRpb24uICovCiAJaWYgKGluc2VydGVkKQogCXsKLQkJcGdX YWxVc2FnZS53YWxfYnl0ZXMgKz0gcmVjaGRyLT54bF90b3RfbGVuOwotCQlwZ1dhbFVzYWdlLndh bF9yZWNvcmRzKys7Ci0JCXBnV2FsVXNhZ2Uud2FsX2ZwaSArPSBudW1fZnBpOworCQlJTlNUUl9X QUxVU0FHRV9BREQod2FsX2J5dGVzLCByZWNoZHItPnhsX3RvdF9sZW4pOworCQlJTlNUUl9XQUxV U0FHRV9JTkNSKHdhbF9yZWNvcmRzKTsKKwkJSU5TVFJfV0FMVVNBR0VfQUREKHdhbF9mcGksIG51 bV9mcGkpOwogCiAJCS8qIFJlcXVpcmVkIGZvciB0aGUgZmx1c2ggb2YgcGVuZGluZyBzdGF0cyBX QUwgZGF0YSAqLwogCQlwZ3N0YXRfcmVwb3J0X2ZpeGVkID0gdHJ1ZTsKQEAgLTIwNjAsNyArMjA2 MCw3IEBAIEFkdmFuY2VYTEluc2VydEJ1ZmZlcihYTG9nUmVjUHRyIHVwdG8sIFRpbWVMaW5lSUQg dGxpLCBib29sIG9wcG9ydHVuaXN0aWMpCiAJCQkJCVdyaXRlUnFzdC5GbHVzaCA9IDA7CiAJCQkJ CVhMb2dXcml0ZShXcml0ZVJxc3QsIHRsaSwgZmFsc2UpOwogCQkJCQlMV0xvY2tSZWxlYXNlKFdB TFdyaXRlTG9jayk7Ci0JCQkJCXBnV2FsVXNhZ2Uud2FsX2J1ZmZlcnNfZnVsbCsrOworCQkJCQlJ TlNUUl9XQUxVU0FHRV9JTkNSKHdhbF9idWZmZXJzX2Z1bGwpOwogCQkJCQlUUkFDRV9QT1NUR1JF U1FMX1dBTF9CVUZGRVJfV1JJVEVfRElSVFlfRE9ORSgpOwogCiAJCQkJCS8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IGU4NTQ0YWNiNzg0Li45MmNiNGVhNTY0NSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTcwNiw3ICs3MDYsNyBAQCBSZWFkUmVjZW50 QnVmZmVyKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVtYmVyIGZvcmtOdW0sIEJsb2Nr TnVtYmVyIGJsb2NrTgogCQl7CiAJCQlQaW5Mb2NhbEJ1ZmZlcihidWZIZHIsIHRydWUpOwogCi0J CQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfaGl0Kys7CisJCQlJTlNUUl9CVUZVU0FHRV9JTkNS KGxvY2FsX2Jsa3NfaGl0KTsKIAogCQkJcmV0dXJuIHRydWU7CiAJCX0KQEAgLTcyNyw3ICs3Mjcs NyBAQCBSZWFkUmVjZW50QnVmZmVyKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVtYmVy IGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTgogCQl7CiAJCQlpZiAoQnVmZmVyVGFnc0VxdWFs KCZ0YWcsICZidWZIZHItPnRhZykpCiAJCQl7Ci0JCQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxr c19oaXQrKzsKKwkJCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtzX2hpdCk7CiAJCQkJ cmV0dXJuIHRydWU7CiAJCQl9CiAJCQlVbnBpbkJ1ZmZlcihidWZIZHIpOwpAQCAtMTEyOCwxNCAr MTEyOCwxNCBAQCBQaW5CdWZmZXJGb3JCbG9jayhSZWxhdGlvbiByZWwsCiAJewogCQlidWZIZHIg PSBMb2NhbEJ1ZmZlckFsbG9jKHNtZ3IsIGZvcmtOdW0sIGJsb2NrTnVtLCBmb3VuZFB0cik7CiAJ CWlmICgqZm91bmRQdHIpCi0JCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfaGl0Kys7CisJCQlJ TlNUUl9CVUZVU0FHRV9JTkNSKGxvY2FsX2Jsa3NfaGl0KTsKIAl9CiAJZWxzZQogCXsKIAkJYnVm SGRyID0gQnVmZmVyQWxsb2Moc21nciwgcGVyc2lzdGVuY2UsIGZvcmtOdW0sIGJsb2NrTnVtLAog CQkJCQkJCSBzdHJhdGVneSwgZm91bmRQdHIsIGlvX2NvbnRleHQpOwogCQlpZiAoKmZvdW5kUHRy KQotCQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrc19oaXQrKzsKKwkJCUlOU1RSX0JVRlVTQUdF X0lOQ1Ioc2hhcmVkX2Jsa3NfaGl0KTsKIAl9CiAJaWYgKHJlbCkKIAl7CkBAIC0xODY5LDkgKzE4 NjksOSBAQCBBc3luY1JlYWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVyYXRpb24s IGludCAqbmJsb2Nrc19wcm9ncmVzcykKIAkJCQkJCQkJCQkgIHRydWUpOwogCiAJCWlmIChwZXJz aXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQotCQkJcGdCdWZmZXJVc2FnZS5sb2NhbF9i bGtzX2hpdCArPSAxOworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihsb2NhbF9ibGtzX2hpdCk7CiAJ CWVsc2UKLQkJCXBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0ICs9IDE7CisJCQlJTlNUUl9C VUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtzX2hpdCk7CiAKIAkJaWYgKG9wZXJhdGlvbi0+cmVsKQog CQkJcGdzdGF0X2NvdW50X2J1ZmZlcl9oaXQob3BlcmF0aW9uLT5yZWwpOwpAQCAtMTkzOSw5ICsx OTM5LDkgQEAgQXN5bmNSZWFkQnVmZmVycyhSZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9u LCBpbnQgKm5ibG9ja3NfcHJvZ3Jlc3MpCiAJCQkJCQkJCWlvX3N0YXJ0LCAxLCBpb19idWZmZXJz X2xlbiAqIEJMQ0tTWik7CiAKIAkJaWYgKHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1RF TVApCi0JCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfcmVhZCArPSBpb19idWZmZXJzX2xlbjsK KwkJCUlOU1RSX0JVRlVTQUdFX0FERChsb2NhbF9ibGtzX3JlYWQsIGlvX2J1ZmZlcnNfbGVuKTsK IAkJZWxzZQotCQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrc19yZWFkICs9IGlvX2J1ZmZlcnNf bGVuOworCQkJSU5TVFJfQlVGVVNBR0VfQUREKHNoYXJlZF9ibGtzX3JlYWQsIGlvX2J1ZmZlcnNf bGVuKTsKIAogCQkvKgogCQkgKiBUcmFjayB2YWN1dW0gY29zdCB3aGVuIGlzc3VpbmcgSU8sIG5v dCBhZnRlciB3YWl0aW5nIGZvciBpdC4KQEAgLTI4MTksNyArMjgxOSw3IEBAIEV4dGVuZEJ1ZmZl cmVkUmVsU2hhcmVkKEJ1ZmZlck1hbmFnZXJSZWxhdGlvbiBibXIsCiAJCVRlcm1pbmF0ZUJ1ZmZl cklPKGJ1Zl9oZHIsIGZhbHNlLCBCTV9WQUxJRCwgdHJ1ZSwgZmFsc2UpOwogCX0KIAotCXBnQnVm ZmVyVXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbiArPSBleHRlbmRfYnk7CisJSU5TVFJfQlVGVVNB R0VfQUREKHNoYXJlZF9ibGtzX3dyaXR0ZW4sIGV4dGVuZF9ieSk7CiAKIAkqZXh0ZW5kZWRfYnkg PSBleHRlbmRfYnk7CiAKQEAgLTI5NzUsNyArMjk3NSw3IEBAIE1hcmtCdWZmZXJEaXJ0eShCdWZm ZXIgYnVmZmVyKQogCSAqLwogCWlmICghKG9sZF9idWZfc3RhdGUgJiBCTV9ESVJUWSkpCiAJewot CQlwZ0J1ZmZlclVzYWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQrKzsKKwkJSU5TVFJfQlVGVVNBR0Vf SU5DUihzaGFyZWRfYmxrc19kaXJ0aWVkKTsKIAkJaWYgKFZhY3V1bUNvc3RBY3RpdmUpCiAJCQlW YWN1dW1Db3N0QmFsYW5jZSArPSBWYWN1dW1Db3N0UGFnZURpcnR5OwogCX0KQEAgLTQzOTQsNyAr NDM5NCw3IEBAIEZsdXNoQnVmZmVyKEJ1ZmZlckRlc2MgKmJ1ZiwgU01nclJlbGF0aW9uIHJlbG4s IElPT2JqZWN0IGlvX29iamVjdCwKIAlwZ3N0YXRfY291bnRfaW9fb3BfdGltZShJT09CSkVDVF9S RUxBVElPTiwgaW9fY29udGV4dCwKIAkJCQkJCQlJT09QX1dSSVRFLCBpb19zdGFydCwgMSwgQkxD S1NaKTsKIAotCXBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbisrOworCUlOU1RSX0JV RlVTQUdFX0lOQ1Ioc2hhcmVkX2Jsa3Nfd3JpdHRlbik7CiAKIAkvKgogCSAqIE1hcmsgdGhlIGJ1 ZmZlciBhcyBjbGVhbiAodW5sZXNzIEJNX0pVU1RfRElSVElFRCBoYXMgYmVjb21lIHNldCkgYW5k CkBAIC01NTU3LDcgKzU1NTcsNyBAQCBNYXJrQnVmZmVyRGlydHlIaW50KEJ1ZmZlciBidWZmZXIs IGJvb2wgYnVmZmVyX3N0ZCkKIAogCQlpZiAoZGlydGllZCkKIAkJewotCQkJcGdCdWZmZXJVc2Fn ZS5zaGFyZWRfYmxrc19kaXJ0aWVkKys7CisJCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9i bGtzX2RpcnRpZWQpOwogCQkJaWYgKFZhY3V1bUNvc3RBY3RpdmUpCiAJCQkJVmFjdXVtQ29zdEJh bGFuY2UgKz0gVmFjdXVtQ29zdFBhZ2VEaXJ0eTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvbG9jYWxidWYuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVy L2xvY2FsYnVmLmMKaW5kZXggMTVhYWM3ZDFjOWYuLjQ0ODE5MjBlYTVmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jCisrKyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMKQEAgLTIxNyw3ICsyMTcsNyBAQCBGbHVzaExvY2FsQnVm ZmVyKEJ1ZmZlckRlc2MgKmJ1ZkhkciwgU01nclJlbGF0aW9uIHJlbG4pCiAJLyogTWFyayBub3Qt ZGlydHkgKi8KIAlUZXJtaW5hdGVMb2NhbEJ1ZmZlcklPKGJ1ZkhkciwgdHJ1ZSwgMCwgZmFsc2Up OwogCi0JcGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtzX3dyaXR0ZW4rKzsKKwlJTlNUUl9CVUZVU0FH RV9JTkNSKGxvY2FsX2Jsa3Nfd3JpdHRlbik7CiB9CiAKIHN0YXRpYyBCdWZmZXIKQEAgLTQ3OCw3 ICs0NzgsNyBAQCBFeHRlbmRCdWZmZXJlZFJlbExvY2FsKEJ1ZmZlck1hbmFnZXJSZWxhdGlvbiBi bXIsCiAKIAkqZXh0ZW5kZWRfYnkgPSBleHRlbmRfYnk7CiAKLQlwZ0J1ZmZlclVzYWdlLmxvY2Fs X2Jsa3Nfd3JpdHRlbiArPSBleHRlbmRfYnk7CisJSU5TVFJfQlVGVVNBR0VfQUREKGxvY2FsX2Js a3Nfd3JpdHRlbiwgZXh0ZW5kX2J5KTsKIAogCXJldHVybiBmaXJzdF9ibG9jazsKIH0KQEAgLTUw OSw3ICs1MDksNyBAQCBNYXJrTG9jYWxCdWZmZXJEaXJ0eShCdWZmZXIgYnVmZmVyKQogCWJ1Zl9z dGF0ZSA9IHBnX2F0b21pY19yZWFkX3UzMigmYnVmSGRyLT5zdGF0ZSk7CiAKIAlpZiAoIShidWZf c3RhdGUgJiBCTV9ESVJUWSkpCi0JCXBnQnVmZmVyVXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkKys7 CisJCUlOU1RSX0JVRlVTQUdFX0lOQ1IobG9jYWxfYmxrc19kaXJ0aWVkKTsKIAogCWJ1Zl9zdGF0 ZSB8PSBCTV9ESVJUWTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2J1 ZmZpbGUuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMKaW5kZXggMzY2ZDcw ZDM4YTEuLjlkMzlkZjk5OGNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUv YnVmZmlsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMKQEAgLTQ3 NCwxMyArNDc0LDEzIEBAIEJ1ZkZpbGVMb2FkQnVmZmVyKEJ1ZkZpbGUgKmZpbGUpCiAJaWYgKHRy YWNrX2lvX3RpbWluZykKIAl7CiAJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoaW9fdGltZSk7Ci0J CUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVzYWdlLnRlbXBfYmxrX3JlYWRfdGltZSwg aW9fdGltZSwgaW9fc3RhcnQpOworCQlJTlNUUl9CVUZVU0FHRV9USU1FX0FDQ1VNX0RJRkYodGVt cF9ibGtfcmVhZF90aW1lLCBpb190aW1lLCBpb19zdGFydCk7CiAJfQogCiAJLyogd2UgY2hvb3Nl IG5vdCB0byBhZHZhbmNlIGN1ck9mZnNldCBoZXJlICovCiAKIAlpZiAoZmlsZS0+bmJ5dGVzID4g MCkKLQkJcGdCdWZmZXJVc2FnZS50ZW1wX2Jsa3NfcmVhZCsrOworCQlJTlNUUl9CVUZVU0FHRV9J TkNSKHRlbXBfYmxrc19yZWFkKTsKIH0KIAogLyoKQEAgLTU0OCwxMyArNTQ4LDEzIEBAIEJ1ZkZp bGVEdW1wQnVmZmVyKEJ1ZkZpbGUgKmZpbGUpCiAJCWlmICh0cmFja19pb190aW1pbmcpCiAJCXsK IAkJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoaW9fdGltZSk7Ci0JCQlJTlNUUl9USU1FX0FDQ1VN X0RJRkYocGdCdWZmZXJVc2FnZS50ZW1wX2Jsa193cml0ZV90aW1lLCBpb190aW1lLCBpb19zdGFy dCk7CisJCQlJTlNUUl9CVUZVU0FHRV9USU1FX0FDQ1VNX0RJRkYodGVtcF9ibGtfd3JpdGVfdGlt ZSwgaW9fdGltZSwgaW9fc3RhcnQpOwogCQl9CiAKIAkJZmlsZS0+Y3VyT2Zmc2V0ICs9IGJ5dGVz dG93cml0ZTsKIAkJd3BvcyArPSBieXRlc3Rvd3JpdGU7CiAKLQkJcGdCdWZmZXJVc2FnZS50ZW1w X2Jsa3Nfd3JpdHRlbisrOworCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHRlbXBfYmxrc193cml0dGVu KTsKIAl9CiAJZmlsZS0+ZGlydHkgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0X2lvLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9w Z3N0YXRfaW8uYwppbmRleCAxM2FlNTdlZDY0OS4uNGY2Mjc0ZWI1NzMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jCkBAIC0xMzUsMTcgKzEzNSwxNyBAQCBwZ3N0YXRfY291 bnRfaW9fb3BfdGltZShJT09iamVjdCBpb19vYmplY3QsIElPQ29udGV4dCBpb19jb250ZXh0LCBJ T09wIGlvX29wLAogCQkJewogCQkJCXBnc3RhdF9jb3VudF9idWZmZXJfd3JpdGVfdGltZShJTlNU Ul9USU1FX0dFVF9NSUNST1NFQyhpb190aW1lKSk7CiAJCQkJaWYgKGlvX29iamVjdCA9PSBJT09C SkVDVF9SRUxBVElPTikKLQkJCQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5zaGFyZWRf YmxrX3dyaXRlX3RpbWUsIGlvX3RpbWUpOworCQkJCQlJTlNUUl9CVUZVU0FHRV9USU1FX0FERChz aGFyZWRfYmxrX3dyaXRlX3RpbWUsIGlvX3RpbWUpOwogCQkJCWVsc2UgaWYgKGlvX29iamVjdCA9 PSBJT09CSkVDVF9URU1QX1JFTEFUSU9OKQotCQkJCQlJTlNUUl9USU1FX0FERChwZ0J1ZmZlclVz YWdlLmxvY2FsX2Jsa193cml0ZV90aW1lLCBpb190aW1lKTsKKwkJCQkJSU5TVFJfQlVGVVNBR0Vf VElNRV9BREQobG9jYWxfYmxrX3dyaXRlX3RpbWUsIGlvX3RpbWUpOwogCQkJfQogCQkJZWxzZSBp ZiAoaW9fb3AgPT0gSU9PUF9SRUFEKQogCQkJewogCQkJCXBnc3RhdF9jb3VudF9idWZmZXJfcmVh ZF90aW1lKElOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKGlvX3RpbWUpKTsKIAkJCQlpZiAoaW9fb2Jq ZWN0ID09IElPT0JKRUNUX1JFTEFUSU9OKQotCQkJCQlJTlNUUl9USU1FX0FERChwZ0J1ZmZlclVz YWdlLnNoYXJlZF9ibGtfcmVhZF90aW1lLCBpb190aW1lKTsKKwkJCQkJSU5TVFJfQlVGVVNBR0Vf VElNRV9BREQoc2hhcmVkX2Jsa19yZWFkX3RpbWUsIGlvX3RpbWUpOwogCQkJCWVsc2UgaWYgKGlv X29iamVjdCA9PSBJT09CSkVDVF9URU1QX1JFTEFUSU9OKQotCQkJCQlJTlNUUl9USU1FX0FERChw Z0J1ZmZlclVzYWdlLmxvY2FsX2Jsa19yZWFkX3RpbWUsIGlvX3RpbWUpOworCQkJCQlJTlNUUl9C VUZVU0FHRV9USU1FX0FERChsb2NhbF9ibGtfcmVhZF90aW1lLCBpb190aW1lKTsKIAkJCX0KIAkJ fQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggYi9zcmMv aW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKaW5kZXggMWFlNTMzZjY3MDQuLjc4ZDM2NTM5 OTdiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKKysrIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCkBAIC0xNDksNCArMTQ5LDIzIEBAIGV4 dGVybiB2b2lkIEJ1ZmZlclVzYWdlQWNjdW1EaWZmKEJ1ZmZlclVzYWdlICpkc3QsCiBleHRlcm4g dm9pZCBXYWxVc2FnZUFjY3VtRGlmZihXYWxVc2FnZSAqZHN0LCBjb25zdCBXYWxVc2FnZSAqYWRk LAogCQkJCQkJCSAgY29uc3QgV2FsVXNhZ2UgKnN1Yik7CiAKKyNkZWZpbmUgSU5TVFJfQlVGVVNB R0VfSU5DUihmbGQpIGRvIHsgXAorCQlwZ0J1ZmZlclVzYWdlLmZsZCsrOyBcCisJfSB3aGlsZSgw KQorI2RlZmluZSBJTlNUUl9CVUZVU0FHRV9BREQoZmxkLHZhbCkgZG8geyBcCisJCXBnQnVmZmVy VXNhZ2UuZmxkICs9IHZhbDsgXAorCX0gd2hpbGUoMCkKKyNkZWZpbmUgSU5TVFJfQlVGVVNBR0Vf VElNRV9BREQoZmxkLHZhbCkgZG8geyBcCisJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5m bGQsIHZhbCk7IFwKKwl9IHdoaWxlICgwKQorI2RlZmluZSBJTlNUUl9CVUZVU0FHRV9USU1FX0FD Q1VNX0RJRkYoZmxkLGVuZHZhbCxzdGFydHZhbCkgZG8geyBcCisJSU5TVFJfVElNRV9BQ0NVTV9E SUZGKHBnQnVmZmVyVXNhZ2UuZmxkLCBlbmR2YWwsIHN0YXJ0dmFsKTsgXAorCX0gd2hpbGUgKDAp CisjZGVmaW5lIElOU1RSX1dBTFVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKKwkJcGdXYWxVc2FnZS5m bGQrKzsgXAorCX0gd2hpbGUoMCkKKyNkZWZpbmUgSU5TVFJfV0FMVVNBR0VfQUREKGZsZCx2YWwp IGRvIHsgXAorCQlwZ1dhbFVzYWdlLmZsZCArPSB2YWw7IFwKKwl9IHdoaWxlKDApCisKICNlbmRp ZgkJCQkJCQkvKiBJTlNUUlVNRU5UX0ggKi8KLS0gCjIuNDcuMQoK --0000000000007c06b00641bd9f3d--