Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHf6c-0001qe-Pp for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Aug 2021 04:29:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mHf6Z-0008Iy-AO for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Aug 2021 04:29:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHf6Y-0008Fy-62 for pgsql-hackers@lists.postgresql.org; Sun, 22 Aug 2021 04:29:06 +0000 Received: from smtp-fw-6002.amazon.com ([52.95.49.90]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHf6V-0007Jv-CT for pgsql-hackers@postgresql.org; Sun, 22 Aug 2021 04:29:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1629606543; x=1661142543; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=ElJI0S1jnZxfk/zCqPsaYsuuNjsC471e5gpNPH43+QA=; b=dyukl3o4q4Vk7KEuyERtfkJxeNX8piloxvhwHy1S9CWHbcy+O9LdUzaG lLR1QcFs91FUXv2zX62k2yFtwSnnY3W62Y6OfbOd7lkbmg4gggbyhrm86 HtPYIg3bJmdlvrT/H1uM8hwdG+WtcAMbaZVzfvY9MXnhJxOMYYZ8LyJaZ c=; X-Amazon-filename: v1-0001-Improve-performance-of-pgarch_readyXlog-with-many.patch X-IronPort-AV: E=Sophos;i="5.84,341,1620691200"; d="scan'208,223";a="134238601" Subject: Re: .ready and .done files considered harmful Thread-Topic: .ready and .done files considered harmful Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2c-397e131e.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-6002.iad6.amazon.com with ESMTP; 22 Aug 2021 04:28:55 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-2c-397e131e.us-west-2.amazon.com (Postfix) with ESMTPS id 1DF0FA20A9; Sun, 22 Aug 2021 04:28:54 +0000 (UTC) Received: from EX13D03UWC003.ant.amazon.com (10.43.162.79) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Sun, 22 Aug 2021 04:28:52 +0000 Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13D03UWC003.ant.amazon.com (10.43.162.79) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Sun, 22 Aug 2021 04:28:52 +0000 Received: from EX13D03UWC004.ant.amazon.com ([10.43.162.49]) by EX13D03UWC004.ant.amazon.com ([10.43.162.49]) with mapi id 15.00.1497.023; Sun, 22 Aug 2021 04:28:52 +0000 From: "Bossart, Nathan" To: Dipesh Pandit CC: Robert Haas , Kyotaro Horiguchi , Jeevan Ladhe , Stephen Frost , Andres Freund , Hannu Krosing , "pgsql-hackers@postgresql.org" Thread-Index: AQHXci02tLcaEMz+AU6YhPne6AFvK6s18xIAgBZTwYCAAmezgIAAD1MAgAIA4ICABKHjAP//uEcAgAF4zgCAAKkYgIABHQwAgAAsYwCAB9W1AIAB0kOA///LgoCAA+gBAP//nb0AABMNwQABPNgWAACsRtKAAFFLHAD//8h0AIAAlSkA//+p2YCAAaRCAP//8nwAgAGC4ICAA7h1gA== Date: Sun, 22 Aug 2021 04:28:51 +0000 Message-ID: <620F3CE1-0255-4D66-9D87-0EADE866985A@amazon.com> References: <32FCEE06-C094-4B3F-BA6A-CCAF90FB90E2@amazon.com> <20210806.102606.1567426789036874091.horikyota.ntt@gmail.com> <2E74AA08-9BA1-495A-B782-3D7A1B6DDBA0@amazon.com> <20210806.133958.962850705445445360.horikyota.ntt@gmail.com> <05564140-9567-49FA-AFB5-252F5868BBCA@amazon.com> <273A6E6D-DCC1-4719-96D2-609D5ADA3EA7@amazon.com> <27F8BC15-6242-44C8-9818-5D02A3BF8F5C@amazon.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.162.164] Content-Type: multipart/mixed; boundary="_002_620F3CE102554D669D870EADE866985Aamazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_620F3CE102554D669D870EADE866985Aamazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <610184CC2C792142BCF03782E5F51061@amazon.com> Content-Transfer-Encoding: base64 T24gNS80LzIxLCA3OjA3IEFNLCAiUm9iZXJ0IEhhYXMiIDxyb2JlcnRtaGFhc0BnbWFpbC5jb20+ IHdyb3RlOg0KPiBPbiBUdWUsIE1heSA0LCAyMDIxIGF0IDEyOjI3IEFNIEFuZHJlcyBGcmV1bmQg PGFuZHJlc0BhbmFyYXplbC5kZT4gd3JvdGU6DQo+PiBPbiAyMDIxLTA1LTAzIDE2OjQ5OjE2IC0w NDAwLCBSb2JlcnQgSGFhcyB3cm90ZToNCj4+ID4gSSBoYXZlIHR3byBwb3NzaWJsZSBpZGVhcyBm b3IgYWRkcmVzc2luZyB0aGlzOyBwZXJoYXBzIG90aGVyIHBlb3BsZQ0KPj4gPiB3aWxsIGhhdmUg ZnVydGhlciBzdWdnZXN0aW9ucy4gQSByZWxhdGl2ZWx5IG5vbi1pbnZhc2l2ZSBmaXggd291bGQg YmUNCj4+ID4gdG8gdGVhY2ggcGdhcmNoLmMgaG93IHRvIGluY3JlbWVudCBhIFdBTCBmaWxlIG5h bWUuIEFmdGVyIGFyY2hpdmluZw0KPj4gPiBzZWdtZW50IE4sIGNoZWNrIHVzaW5nIHN0YXQoKSB3 aGV0aGVyIHRoZXJlJ3MgYW4gLnJlYWR5IGZpbGUgZm9yDQo+PiA+IHNlZ21lbnQgTisxLiBJZiBz bywgZG8gdGhhdCBvbmUgbmV4dC4gSWYgbm90LCB0aGVuIGZhbGwgYmFjayB0bw0KPj4gPiBwZXJm b3JtaW5nIGEgZnVsbCBkaXJlY3Rvcnkgc2Nhbi4NCj4+DQo+PiBIbS4gSSB3b25kZXIgaWYgaXQn ZCBub3QgYmUgYmV0dGVyIHRvIGRldGVybWluZSBtdWx0aXBsZSBmaWxlcyB0byBiZQ0KPj4gYXJj aGl2ZWQgaW4gb25lIHJlYWRkaXIoKSBwYXNzPw0KPg0KPiBJIHRoaW5rIGJvdGggbWV0aG9kcyBo YXZlIHNvbWUgbWVyaXQuIElmIHdlIGhhZCBhIHdheSB0byBwYXNzIGEgcmFuZ2UNCj4gb2YgZmls ZXMgdG8gYXJjaGl2ZV9jb21tYW5kIGluc3RlYWQgb2YganVzdCBvbmUsIHRoZW4geW91ciB3YXkg aXMNCj4gZGlzdGluY3RseSBiZXR0ZXIsIGFuZCBwZXJoYXBzIHdlIHNob3VsZCBqdXN0IGdvIGFo ZWFkIGFuZCBpbnZlbnQgc3VjaA0KPiBhIHRoaW5nLiBJZiBub3QsIHlvdXIgd2F5IGRvZXNuJ3Qg ZW50aXJlbHkgc29sdmUgdGhlIE8obl4yKSBwcm9ibGVtLA0KPiBzaW5jZSB5b3UgaGF2ZSB0byBj aG9vc2Ugc29tZSB1cHBlciBib3VuZCBvbiB0aGUgbnVtYmVyIG9mIGZpbGUgbmFtZXMNCj4geW91 J3JlIHdpbGxpbmcgdG8gYnVmZmVyIGluIG1lbW9yeSwgYnV0IGl0IG1heSBsb3dlciBpdCBlbm91 Z2ggdGhhdCBpdA0KPiBtYWtlcyBubyBwcmFjdGljYWwgZGlmZmVyZW5jZS4gSSBhbSBzb21ld2hh dCBpbmNsaW5lZCB0byB0aGluayB0aGF0IGl0DQo+IHdvdWxkIGJlIGdvb2QgdG8gc3RhcnQgd2l0 aCB0aGUgbWV0aG9kIEknbSBwcm9wb3NpbmcsIHNpbmNlIGl0IGlzIGENCj4gY2xlYXItY3V0IGlt cHJvdmVtZW50IG92ZXIgd2hhdCB3ZSBoYXZlIHRvZGF5IGFuZCBjYW4gYmUgZG9uZSB3aXRoIGEN Cj4gcmVsYXRpdmVseSBsaW1pdGVkIGFtb3VudCBvZiBjb2RlIGNoYW5nZSBhbmQgbm8gcmVkZXNp Z24sIGFuZCB0aGVuDQo+IHBlcmhhcHMgZG8gc29tZXRoaW5nIG1vcmUgYW1iaXRpb3VzIGFmdGVy d2FyZC4NCg0KSSB3YXMgY3VyaW91cyBhYm91dCB0aGlzLCBzbyBJIHdyb3RlIGEgcGF0Y2ggKGF0 dGFjaGVkKSB0byBzdG9yZQ0KbXVsdGlwbGUgZmlsZXMgcGVyIGRpcmVjdG9yeSBzY2FuIGFuZCB0 ZXN0ZWQgaXQgYWdhaW5zdCB0aGUgbGF0ZXN0DQpwYXRjaCBpbiB0aGlzIHRocmVhZCAodjkpIFsw XS4gIFNwZWNpZmljYWxseSwgSSBzZXQgYXJjaGl2ZV9jb21tYW5kIHRvDQonZmFsc2UnLCBjcmVh dGVkIH4yMEsgV0FMIHNlZ21lbnRzLCB0aGVuIHJlc3RhcnRlZCB0aGUgc2VydmVyIHdpdGgNCmFy Y2hpdmVfY29tbWFuZCBzZXQgdG8gJ3RydWUnLiAgQm90aCB0aGUgdjkgcGF0Y2ggYW5kIHRoZSBh dHRhY2hlZA0KcGF0Y2ggY29tcGxldGVkIGFyY2hpdmluZyBhbGwgc2VnbWVudHMgaW4ganVzdCB1 bmRlciBhIG1pbnV0ZS4gIChJDQp0ZXN0ZWQgdGhlIGF0dGFjaGVkIHBhdGNoIHdpdGggTlVNX0ZJ TEVTX1BFUl9ESVJFQ1RPUllfU0NBTiBzZXQgdG8gNjQsDQoxMjgsIGFuZCAyNTYgYW5kIGRpZG4n dCBvYnNlcnZlIGFueSBzaWduaWZpY2FudCBkaWZmZXJlbmNlLikgIFRoZQ0KZXhpc3RpbmcgbG9n aWMgdG9vayBvdmVyIDQgbWludXRlcyB0byBjb21wbGV0ZS4NCg0KSSdtIGhvcGluZyB0byBkbyB0 aGlzIHRlc3QgYWdhaW4gd2l0aCBtYW55IG1vcmUgKDEwMEsrKSBzdGF0dXMgZmlsZXMsDQphcyBJ IGJlbGlldmUgdGhhdCB0aGUgdjkgcGF0Y2ggd2lsbCBiZSBmYXN0ZXIgYXQgdGhhdCBzY2FsZSwg YnV0IEknbQ0Kbm90IHN1cmUgaG93IG11Y2ggZmFzdGVyIGl0IHdpbGwgYmUuDQoNCk5hdGhhbg0K DQpbMF0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9hdHRhY2htZW50LzEy NTU0My92OS0wMDAxLW1pdGlnYXRlLWRpcmVjdG9yeS1zY2FuLWZvci1XQUwtYXJjaGl2ZXIucGF0 Y2gNCg0K --_002_620F3CE102554D669D870EADE866985Aamazoncom_ Content-Type: application/octet-stream; name="v1-0001-Improve-performance-of-pgarch_readyXlog-with-many.patch" Content-Description: v1-0001-Improve-performance-of-pgarch_readyXlog-with-many.patch Content-Disposition: attachment; filename="v1-0001-Improve-performance-of-pgarch_readyXlog-with-many.patch"; size=10554; creation-date="Sun, 22 Aug 2021 04:28:51 GMT"; modification-date="Sun, 22 Aug 2021 04:28:51 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSAwZmUxOTlmOTIwMTg5YTI0OGQ2ZTk2Yzk1MDFhMTFmZTIxNTU5ZTY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogU3VuLCAyMiBBdWcgMjAyMSAwNDoxOToxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjEg MS8xXSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mIHBnYXJjaF9yZWFkeVhsb2coKSB3aXRoIG1hbnkK IHN0YXR1cyBmaWxlcy4KClByZXNlbnRseSwgdGhlIGFyY2hpdmVfc3RhdHVzIGRpcmVjdG9yeSBp cyBzY2FubmVkIGZvciBlYWNoIGZpbGUgdG8KYXJjaGl2ZS4gIFdoZW4gdGhlcmUgYXJlIG1hbnkg c3RhdHVzIGZpbGVzIChlLmcuLCBhcmNoaXZlX2NvbW1hbmQKaGFzIGJlZW4gZmFpbGluZyBmb3Ig YSBsb25nIHRpbWUpLCB0aGVzZSBkaXJlY3Rvcnkgc2NhbnMgY2FuIHRha2UKbXVjaCBsb25nZXIs IHdoaWNoIHNpZ25pZmljYW50bHkgc2xvd3MgdGhlIHJhdGUgb2YgYXJjaGl2YWwuICBXaXRoCnRo aXMgY2hhbmdlLCB0aGUgYXJjaGl2ZXIgc3RvcmVzIHNldmVyYWwgZmlsZXMgdG8gYXJjaGl2ZSBp biBlYWNoCmRpcmVjdG9yeSBzY2FuLCB3aGljaCBpbXByb3ZlcyB0aGUgcmF0ZSBvZiBhcmNoaXZh bCB3aGVuIHRoZXJlIGFyZQptYW55IGZpbGVzIGluIGFyY2hpdmVfc3RhdHVzLiAgVG8gZW5zdXJl IHRpbWVsaW5lIGhpc3RvcnkgZmlsZXMgYXJlCmFyY2hpdmVkIGFzIHF1aWNrbHkgYXMgcG9zc2li bGUsIFhMb2dBcmNoaXZlTm90aWZ5KCkgZm9yY2VzIHRoZQphcmNoaXZlciB0byBkbyBhIG5ldyBk aXJlY3Rvcnkgc2NhbiBhcyBzb29uIGFzIHRoZSAucmVhZHkgZmlsZSBmb3IKb25lIGlzIGNyZWF0 ZWQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyB8ICAgNCAr CiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3BnYXJjaC5jICAgICAgICAgIHwgMTc3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmgg ICAgICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjIgaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z2FyY2hpdmUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKaW5k ZXggMjZiMDIzZTc1NC4uMzgwOTc5NjcwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ2FyY2hpdmUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nYXJjaGl2ZS5jCkBAIC00ODksNiArNDg5LDEwIEBAIFhMb2dBcmNoaXZlTm90aWZ5KGNvbnN0 IGNoYXIgKnhsb2cpCiAJCXJldHVybjsKIAl9CiAKKwkvKiBBcmNoaXZlIHRpbWVsaW5lIGhpc3Rv cnkgZmlsZXMgYXMgc29vbiBhcyBwb3NzaWJsZS4gKi8KKwlpZiAoSXNUTEhpc3RvcnlGaWxlTmFt ZSh4bG9nKSkKKwkJUGdBcmNoRm9yY2VEaXJTY2FuKCk7CisKIAkvKiBOb3RpZnkgYXJjaGl2ZXIg dGhhdCBpdCdzIGdvdCBzb21ldGhpbmcgdG8gZG8gKi8KIAlpZiAoSXNVbmRlclBvc3RtYXN0ZXIp CiAJCVBnQXJjaFdha2V1cCgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9w Z2FyY2guYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdhcmNoLmMKaW5kZXggNzRhN2Q3YzRk MC4uNDEyMWQwNWE2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2gu YworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3BnYXJjaC5jCkBAIC0zNSw2ICszNSw3IEBA CiAKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9nX2ludGVy bmFsLmgiCisjaW5jbHVkZSAibGliL2JpbmFyeWhlYXAuaCIKICNpbmNsdWRlICJsaWJwcS9wcXNp Z25hbC5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgpAQCAt NDcsNiArNDgsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvcHJvY3NpZ25hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNsdWRlICJz dG9yYWdlL3NwaW4uaCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9w c19zdGF0dXMuaCIKIApAQCAtNzIsMTAgKzc0LDIzIEBACiAgKi8KICNkZWZpbmUgTlVNX09SUEhB Tl9DTEVBTlVQX1JFVFJJRVMgMwogCisvKgorICogTWF4aW11bSBudW1iZXIgb2YgLnJlYWR5IGZp bGVzIHRvIGdhdGhlciBwZXIgZGlyZWN0b3J5IHNjYW4uCisgKi8KKyNkZWZpbmUgTlVNX0ZJTEVT X1BFUl9ESVJFQ1RPUllfU0NBTiA2NAorCiAvKiBTaGFyZWQgbWVtb3J5IGFyZWEgZm9yIGFyY2hp dmVyIHByb2Nlc3MgKi8KIHR5cGVkZWYgc3RydWN0IFBnQXJjaERhdGEKIHsKIAlpbnQJCQlwZ3By b2NubzsJCS8qIHBncHJvY25vIG9mIGFyY2hpdmVyIHByb2Nlc3MgKi8KKworCS8qCisJICogRm9y Y2VzIGEgZGlyZWN0b3J5IHNjYW4gaW4gcGdhcmNoX3JlYWR5WGxvZygpLiAgUHJvdGVjdGVkIGJ5 CisJICogYXJjaF9sY2suCisJICovCisJYm9vbAkJZm9yY2VfZGlyX3NjYW47CisKKwlzbG9ja190 CQlhcmNoX2xjazsKIH0gUGdBcmNoRGF0YTsKIAogCkBAIC04Niw2ICsxMDEsMjIgQEAgdHlwZWRl ZiBzdHJ1Y3QgUGdBcmNoRGF0YQogc3RhdGljIHRpbWVfdCBsYXN0X3NpZ3Rlcm1fdGltZSA9IDA7 CiBzdGF0aWMgUGdBcmNoRGF0YSAqUGdBcmNoID0gTlVMTDsKIAorLyoKKyAqIFN0dWZmIGZvciB0 cmFja2luZyBtdWx0aXBsZSBmaWxlcyB0byBhcmNoaXZlIGZvciBlYWNoIGRpcmVjdG9yeSBzY2Fu LgorICogTWluaW1pemluZyB0aGUgbnVtYmVyIG9mIGRpcmVjdG9yeSBzY2FucyB3aGVuIHRoZXJl IGFyZSBtYW55IGZpbGVzIHRvCisgKiBhcmNoaXZlIGNhbiBzaWduaWZpY2FudGx5IGltcHJvdmUg YXJjaGl2YWwgcmF0ZS4KKyAqCisgKiBhcmNoX2hlYXAgaXMgYSBtYXgtaGVhcCB0aGF0IGlzIHVz ZWQgZHVyaW5nIHRoZSBkaXJlY3Rvcnkgc2NhbiB0byB0cmFjaworICogdGhlIGhpZ2hlc3QtcHJp b3JpdHkgZmlsZXMgdG8gYXJjaGl2ZS4gIEFmdGVyIHRoZSBkaXJlY3Rvcnkgc2NhbgorICogY29t cGxldGVzLCB0aGUgZmlsZSBuYW1lcyBhcmUgc3RvcmVkIGluIGFzY2VuZGluZyBvcmRlciBvZiBw cmlvcml0eSBpbgorICogYXJjaF9maWxlcy4gIHBnYXJjaF9yZWFkeVhsb2coKSByZXR1cm5zIGZp bGVzIGZyb20gYXJjaF9maWxlcyB1bnRpbCBpdAorICogaXMgZW1wdHksIGF0IHdoaWNoIHBvaW50 IGFub3RoZXIgZGlyZWN0b3J5IHNjYW4gbXVzdCBiZSBwZXJmb3JtZWQuCisgKi8KK3N0YXRpYyBi aW5hcnloZWFwICphcmNoX2hlYXAgPSBOVUxMOworc3RhdGljIGNoYXIgYXJjaF9maWxlbmFtZXNb TlVNX0ZJTEVTX1BFUl9ESVJFQ1RPUllfU0NBTl1bTUFYX1hGTl9DSEFSU107CitzdGF0aWMgY2hh ciAqYXJjaF9maWxlc1tOVU1fRklMRVNfUEVSX0RJUkVDVE9SWV9TQ0FOXTsKK3N0YXRpYyBpbnQg YXJjaF9maWxlc19zaXplID0gMDsKKwogLyoKICAqIEZsYWdzIHNldCBieSBpbnRlcnJ1cHQgaGFu ZGxlcnMgZm9yIGxhdGVyIHNlcnZpY2UgaW4gdGhlIG1haW4gbG9vcC4KICAqLwpAQCAtMTAzLDYg KzEzNCw3IEBAIHN0YXRpYyBib29sIHBnYXJjaF9yZWFkeVhsb2coY2hhciAqeGxvZyk7CiBzdGF0 aWMgdm9pZCBwZ2FyY2hfYXJjaGl2ZURvbmUoY2hhciAqeGxvZyk7CiBzdGF0aWMgdm9pZCBwZ2Fy Y2hfZGllKGludCBjb2RlLCBEYXR1bSBhcmcpOwogc3RhdGljIHZvaWQgSGFuZGxlUGdBcmNoSW50 ZXJydXB0cyh2b2lkKTsKK3N0YXRpYyBpbnQgcmVhZHlfZmlsZV9jb21wYXJhdG9yKERhdHVtIGEs IERhdHVtIGIsIHZvaWQgKmFyZyk7CiAKIC8qIFJlcG9ydCBzaGFyZWQgbWVtb3J5IHNwYWNlIG5l ZWRlZCBieSBQZ0FyY2hTaG1lbUluaXQgKi8KIFNpemUKQEAgLTEyOSw2ICsxNjEsNyBAQCBQZ0Fy Y2hTaG1lbUluaXQodm9pZCkKIAkJLyogRmlyc3QgdGltZSB0aHJvdWdoLCBzbyBpbml0aWFsaXpl ICovCiAJCU1lbVNldChQZ0FyY2gsIDAsIFBnQXJjaFNobWVtU2l6ZSgpKTsKIAkJUGdBcmNoLT5w Z3Byb2NubyA9IElOVkFMSURfUEdQUk9DTk87CisJCVNwaW5Mb2NrSW5pdCgmUGdBcmNoLT5hcmNo X2xjayk7CiAJfQogfQogCkBAIC0xOTgsNiArMjMxLDEwIEBAIFBnQXJjaGl2ZXJNYWluKHZvaWQp CiAJICovCiAJUGdBcmNoLT5wZ3Byb2NubyA9IE15UHJvYy0+cGdwcm9jbm87CiAKKwkvKiBJbml0 aWFsaXplIG91ciBtYXgtaGVhcCBmb3IgcHJpb3JpdGl6aW5nIGZpbGVzIHRvIGFyY2hpdmUuICov CisJYXJjaF9oZWFwID0gYmluYXJ5aGVhcF9hbGxvY2F0ZShOVU1fRklMRVNfUEVSX0RJUkVDVE9S WV9TQ0FOLAorCQkJCQkJCQkJcmVhZHlfZmlsZV9jb21wYXJhdG9yLCBOVUxMKTsKKwogCXBnYXJj aF9NYWluTG9vcCgpOwogCiAJcHJvY19leGl0KDApOwpAQCAtMzYzLDYgKzQwMCwxMCBAQCBwZ2Fy Y2hfQXJjaGl2ZXJDb3B5TG9vcCh2b2lkKQogCQkJewogCQkJCWVyZXBvcnQoV0FSTklORywKIAkJ CQkJCShlcnJtc2coImFyY2hpdmVfbW9kZSBlbmFibGVkLCB5ZXQgYXJjaGl2ZV9jb21tYW5kIGlz IG5vdCBzZXQiKSkpOworCisJCQkJLyogZm9yY2UgZGlyZWN0b3J5IHNjYW4gZHVyaW5nIG5leHQg Y2FsbCAqLworCQkJCWFyY2hfZmlsZXNfc2l6ZSA9IDA7CisKIAkJCQlyZXR1cm47CiAJCQl9CiAK QEAgLTM5Nyw2ICs0MzgsOSBAQCBwZ2FyY2hfQXJjaGl2ZXJDb3B5TG9vcCh2b2lkKQogCQkJCQkJ CShlcnJtc2coInJlbW92YWwgb2Ygb3JwaGFuIGFyY2hpdmUgc3RhdHVzIGZpbGUgXCIlc1wiIGZh aWxlZCB0b28gbWFueSB0aW1lcywgd2lsbCB0cnkgYWdhaW4gbGF0ZXIiLAogCQkJCQkJCQkJeGxv Z3JlYWR5KSkpOwogCisJCQkJCS8qIGZvcmNlIGRpcmVjdG9yeSBzY2FuIGR1cmluZyBuZXh0IGNh bGwgKi8KKwkJCQkJYXJjaF9maWxlc19zaXplID0gMDsKKwogCQkJCQkvKiBnaXZlIHVwIGNsZWFu dXAgb2Ygb3JwaGFuIHN0YXR1cyBmaWxlcyAqLwogCQkJCQlyZXR1cm47CiAJCQkJfQpAQCAtNDMy LDYgKzQ3NiwxMCBAQCBwZ2FyY2hfQXJjaGl2ZXJDb3B5TG9vcCh2b2lkKQogCQkJCQllcmVwb3J0 KFdBUk5JTkcsCiAJCQkJCQkJKGVycm1zZygiYXJjaGl2aW5nIHdyaXRlLWFoZWFkIGxvZyBmaWxl IFwiJXNcIiBmYWlsZWQgdG9vIG1hbnkgdGltZXMsIHdpbGwgdHJ5IGFnYWluIGxhdGVyIiwKIAkJ CQkJCQkJCXhsb2cpKSk7CisKKwkJCQkJLyogZm9yY2UgZGlyZWN0b3J5IHNjYW4gZHVyaW5nIG5l eHQgY2FsbCAqLworCQkJCQlhcmNoX2ZpbGVzX3NpemUgPSAwOworCiAJCQkJCXJldHVybjsJCS8q IGdpdmUgdXAgYXJjaGl2aW5nIGZvciBub3cgKi8KIAkJCQl9CiAJCQkJcGdfdXNsZWVwKDEwMDAw MDBMKTsJLyogd2FpdCBhIGJpdCBiZWZvcmUgcmV0cnlpbmcgKi8KQEAgLTYwOSw4ICs2NTcsMzUg QEAgcGdhcmNoX3JlYWR5WGxvZyhjaGFyICp4bG9nKQogCWNoYXIJCVhMb2dBcmNoaXZlU3RhdHVz RGlyW01BWFBHUEFUSF07CiAJRElSCQkgICAqcmxkaXI7CiAJc3RydWN0IGRpcmVudCAqcmxkZTsK LQlib29sCQlmb3VuZCA9IGZhbHNlOwotCWJvb2wJCWhpc3RvcnlGb3VuZCA9IGZhbHNlOworCisJ LyoKKwkgKiBJZiB3ZSBzdGlsbCBoYXZlIGZpbGVzIGZyb20gdGhlIGxhc3QgZGlyZWN0b3J5IHNj YW4gdG8gcHJvY2VzcywgcmV0dXJuCisJICogdGhvc2UuCisJICovCisJaWYgKGFyY2hfZmlsZXNf c2l6ZSA+IDApCisJeworCQlib29sIGZvcmNlX2Rpcl9zY2FuOworCisJCVNwaW5Mb2NrQWNxdWly ZSgmUGdBcmNoLT5hcmNoX2xjayk7CisJCWZvcmNlX2Rpcl9zY2FuID0gUGdBcmNoLT5mb3JjZV9k aXJfc2NhbjsKKwkJUGdBcmNoLT5mb3JjZV9kaXJfc2NhbiA9IGZhbHNlOworCQlTcGluTG9ja1Jl bGVhc2UoJlBnQXJjaC0+YXJjaF9sY2spOworCisJCS8qCisJCSAqIElmIGEgZGlyZWN0b3J5IHNj YW4gd2FzIHJlcXVlc3RlZCwgY2xlYXIgdGhlIHN0b3JlZCBmaWxlIG5hbWVzIGFuZAorCQkgKiBw cm9jZWVkLiAgT3RoZXJ3aXNlLCByZXR1cm4gdGhlIGhpZ2hlc3QgcHJpb3JpdHkgZmlsZSBmcm9t IHRoZSBhcnJheSwKKwkJICogd2hpY2ggd2lsbCBiZSB0aGUgbGFzdCBlbGVtZW50LgorCQkgKi8K KwkJaWYgKGZvcmNlX2Rpcl9zY2FuKQorCQkJYXJjaF9maWxlc19zaXplID0gMDsKKwkJZWxzZQor CQl7CisJCQlhcmNoX2ZpbGVzX3NpemUtLTsKKwkJCXN0cmNweSh4bG9nLCBhcmNoX2ZpbGVzW2Fy Y2hfZmlsZXNfc2l6ZV0pOworCisJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KIAogCXNucHJpbnRm KFhMb2dBcmNoaXZlU3RhdHVzRGlyLCBNQVhQR1BBVEgsIFhMT0dESVIgIi9hcmNoaXZlX3N0YXR1 cyIpOwogCXJsZGlyID0gQWxsb2NhdGVEaXIoWExvZ0FyY2hpdmVTdGF0dXNEaXIpOwpAQCAtNjE5 LDcgKzY5NCw3IEBAIHBnYXJjaF9yZWFkeVhsb2coY2hhciAqeGxvZykKIAl7CiAJCWludAkJCWJh c2VuYW1lbGVuID0gKGludCkgc3RybGVuKHJsZGUtPmRfbmFtZSkgLSA2OwogCQljaGFyCQliYXNl bmFtZVtNQVhfWEZOX0NIQVJTICsgMV07Ci0JCWJvb2wJCWlzaGlzdG9yeTsKKwkJY2hhcgkgICAq YXJjaF9maWxlOwogCiAJCS8qIElnbm9yZSBlbnRyaWVzIHdpdGggdW5leHBlY3RlZCBudW1iZXIg b2YgY2hhcmFjdGVycyAqLwogCQlpZiAoYmFzZW5hbWVsZW4gPCBNSU5fWEZOX0NIQVJTIHx8CkBA IC02MzgsMzIgKzcxMyw5NCBAQCBwZ2FyY2hfcmVhZHlYbG9nKGNoYXIgKnhsb2cpCiAJCW1lbWNw eShiYXNlbmFtZSwgcmxkZS0+ZF9uYW1lLCBiYXNlbmFtZWxlbik7CiAJCWJhc2VuYW1lW2Jhc2Vu YW1lbGVuXSA9ICdcMCc7CiAKLQkJLyogSXMgdGhpcyBhIGhpc3RvcnkgZmlsZT8gKi8KLQkJaXNo aXN0b3J5ID0gSXNUTEhpc3RvcnlGaWxlTmFtZShiYXNlbmFtZSk7Ci0KIAkJLyoKLQkJICogQ29u c3VtZSB0aGUgZmlsZSB0byBhcmNoaXZlLiAgSGlzdG9yeSBmaWxlcyBoYXZlIHRoZSBoaWdoZXN0 Ci0JCSAqIHByaW9yaXR5LiAgSWYgdGhpcyBpcyB0aGUgZmlyc3QgZmlsZSBvciB0aGUgZmlyc3Qg aGlzdG9yeSBmaWxlCi0JCSAqIGV2ZXIsIGNvcHkgaXQuICBJbiB0aGUgcHJlc2VuY2Ugb2YgYSBo aXN0b3J5IGZpbGUgYWxyZWFkeSBjaG9zZW4gYXMKLQkJICogdGFyZ2V0LCBpZ25vcmUgYWxsIG90 aGVyIGZpbGVzIGV4Y2VwdCBoaXN0b3J5IGZpbGVzIHdoaWNoIGhhdmUgYmVlbgotCQkgKiBnZW5l cmF0ZWQgZm9yIGFuIG9sZGVyIHRpbWVsaW5lIHRoYW4gd2hhdCBpcyBhbHJlYWR5IGNob3NlbiBh cwotCQkgKiB0YXJnZXQgdG8gYXJjaGl2ZS4KKwkJICogU3RvcmUgdGhlIGZpbGUgaW4gb3VyIG1h eC1oZWFwIGlmIGl0IGhhcyBhIGhpZ2ggZW5vdWdoIHByaW9yaXR5LgogCQkgKi8KLQkJaWYgKCFm b3VuZCB8fCAoaXNoaXN0b3J5ICYmICFoaXN0b3J5Rm91bmQpKQorCQlpZiAoYXJjaF9oZWFwLT5i aF9zaXplIDwgTlVNX0ZJTEVTX1BFUl9ESVJFQ1RPUllfU0NBTikKIAkJewotCQkJc3RyY3B5KHhs b2csIGJhc2VuYW1lKTsKLQkJCWZvdW5kID0gdHJ1ZTsKLQkJCWhpc3RvcnlGb3VuZCA9IGlzaGlz dG9yeTsKKwkJCS8qIElmIHRoZSBoZWFwIGlzbid0IGZ1bGwgeWV0LCBxdWlja2x5IGFkZCBpdC4g Ki8KKwkJCWFyY2hfZmlsZSA9IGFyY2hfZmlsZW5hbWVzW2FyY2hfaGVhcC0+Ymhfc2l6ZV07CisJ CQlzdHJjcHkoYXJjaF9maWxlLCBiYXNlbmFtZSk7CisJCQliaW5hcnloZWFwX2FkZF91bm9yZGVy ZWQoYXJjaF9oZWFwLCBDU3RyaW5nR2V0RGF0dW0oYXJjaF9maWxlKSk7CisKKwkJCS8qIElmIHdl IGp1c3QgZmlsbGVkIHRoZSBoZWFwLCBtYWtlIGl0IGEgdmFsaWQgb25lLiAqLworCQkJaWYgKGFy Y2hfaGVhcC0+Ymhfc2l6ZSA9PSBOVU1fRklMRVNfUEVSX0RJUkVDVE9SWV9TQ0FOKQorCQkJCWJp bmFyeWhlYXBfYnVpbGQoYXJjaF9oZWFwKTsKIAkJfQotCQllbHNlIGlmIChpc2hpc3RvcnkgfHwg IWhpc3RvcnlGb3VuZCkKKwkJZWxzZSBpZiAocmVhZHlfZmlsZV9jb21wYXJhdG9yKGJpbmFyeWhl YXBfZmlyc3QoYXJjaF9oZWFwKSwKKwkJCQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bShiYXNlbmFt ZSksIE5VTEwpID4gMCkKIAkJewotCQkJaWYgKHN0cmNtcChiYXNlbmFtZSwgeGxvZykgPCAwKQot CQkJCXN0cmNweSh4bG9nLCBiYXNlbmFtZSk7CisJCQkvKgorCQkJICogUmVtb3ZlIHRoZSBsb3dl c3QgcHJpb3JpdHkgZmlsZSBhbmQgYWRkIHRoZSBjdXJyZW50IG9uZSB0bworCQkJICogdGhlIGhl YXAuCisJCQkgKi8KKwkJCWFyY2hfZmlsZSA9IERhdHVtR2V0Q1N0cmluZyhiaW5hcnloZWFwX3Jl bW92ZV9maXJzdChhcmNoX2hlYXApKTsKKwkJCXN0cmNweShhcmNoX2ZpbGUsIGJhc2VuYW1lKTsK KwkJCWJpbmFyeWhlYXBfYWRkKGFyY2hfaGVhcCwgQ1N0cmluZ0dldERhdHVtKGFyY2hfZmlsZSkp OwogCQl9CiAJfQogCUZyZWVEaXIocmxkaXIpOwogCi0JcmV0dXJuIGZvdW5kOworCS8qIElmIG5v IGZpbGVzIHdlcmUgZm91bmQsIHNpbXBseSByZXR1cm4uICovCisJaWYgKGFyY2hfaGVhcC0+Ymhf c2l6ZSA9PSAwKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIElmIHdlIGRpZG4ndCBmaWxs IHRoZSBoZWFwLCB3ZSBkaWRuJ3QgbWFrZSBpdCBhIHZhbGlkIG9uZS4gIERvIHRoYXQKKwkgKiBu b3cuCisJICovCisJaWYgKGFyY2hfaGVhcC0+Ymhfc2l6ZSA8IE5VTV9GSUxFU19QRVJfRElSRUNU T1JZX1NDQU4pCisJCWJpbmFyeWhlYXBfYnVpbGQoYXJjaF9oZWFwKTsKKworCS8qCisJICogRmls bCBhcmNoX2ZpbGVzIGFycmF5IHdpdGggdGhlIGZpbGVzIHRvIGFyY2hpdmUgaW4gYXNjZW5kaW5n IG9yZGVyCisJICogb2YgcHJpb3JpdHkuCisJICovCisJYXJjaF9maWxlc19zaXplID0gYXJjaF9o ZWFwLT5iaF9zaXplOworCWZvciAoaW50IGkgPSAwOyBpIDwgYXJjaF9maWxlc19zaXplOyBpKysp CisJCWFyY2hfZmlsZXNbaV0gPSBEYXR1bUdldENTdHJpbmcoYmluYXJ5aGVhcF9yZW1vdmVfZmly c3QoYXJjaF9oZWFwKSk7CisKKwkvKiBSZXR1cm4gdGhlIGhpZ2hlc3QgcHJpb3JpdHkgZmlsZS4g Ki8KKwlhcmNoX2ZpbGVzX3NpemUtLTsKKwlzdHJjcHkoeGxvZywgYXJjaF9maWxlc1thcmNoX2Zp bGVzX3NpemVdKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogcmVhZHlfZmlsZV9jb21w YXJhdG9yCisgKgorICogQ29tcGFyZXMgdGhlIGFyY2hpdmFsIHByaW9yaXR5IG9mIHRoZSBnaXZl biBmaWxlcyB0byBhcmNoaXZlLgorICovCitzdGF0aWMgaW50CityZWFkeV9maWxlX2NvbXBhcmF0 b3IoRGF0dW0gYSwgRGF0dW0gYiwgdm9pZCAqYXJnKQoreworCWNoYXIgKmFfc3RyID0gRGF0dW1H ZXRDU3RyaW5nKGEpOworCWNoYXIgKmJfc3RyID0gRGF0dW1HZXRDU3RyaW5nKGIpOworCWJvb2wg YV9oaXN0b3J5ID0gSXNUTEhpc3RvcnlGaWxlTmFtZShhX3N0cik7CisJYm9vbCBiX2hpc3Rvcnkg PSBJc1RMSGlzdG9yeUZpbGVOYW1lKGJfc3RyKTsKKworCS8qIFRpbWVsaW5lIGhpc3RvcnkgZmls ZXMgYWx3YXlzIGhhdmUgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuICovCisJaWYgKGFfaGlzdG9yeSAh PSBiX2hpc3RvcnkpCisJCXJldHVybiBhX2hpc3RvcnkgPyAtMSA6IDE7CisKKwkvKiBQcmlvcml0 eSBpcyBnaXZlbiB0byBvbGRlciBmaWxlcy4gKi8KKwlyZXR1cm4gc3RyY21wKGFfc3RyLCBiX3N0 cik7Cit9CisKKy8qCisgKiBQZ0FyY2hGb3JjZURpclNjYW4KKyAqCisgKiBXaGVuIGNhbGxlZCwg dGhlIG5leHQgY2FsbCB0byBwZ2FyY2hfcmVhZHlYbG9nKCkgd2lsbCBwZXJmb3JtIGEKKyAqIGRp cmVjdG9yeSBzY2FuLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGVuc3VyaW5nIHRoYXQgaW1wb3J0YW50 IGZpbGVzIHN1Y2gKKyAqIGFzIHRpbWVsaW5lIGhpc3RvcnkgZmlsZXMgYXJlIGFyY2hpdmVkIGFz IHF1aWNrbHkgYXMgcG9zc2libGUuCisgKi8KK3ZvaWQKK1BnQXJjaEZvcmNlRGlyU2Nhbih2b2lk KQoreworCVNwaW5Mb2NrQWNxdWlyZSgmUGdBcmNoLT5hcmNoX2xjayk7CisJUGdBcmNoLT5mb3Jj ZV9kaXJfc2NhbiA9IHRydWU7CisJU3BpbkxvY2tSZWxlYXNlKCZQZ0FyY2gtPmFyY2hfbGNrKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmggYi9z cmMvaW5jbHVkZS9wb3N0bWFzdGVyL3BnYXJjaC5oCmluZGV4IDFlNDdhMTQzZTEuLjczMjYxNWJl NTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmgKKysrIGIvc3Jj L2luY2x1ZGUvcG9zdG1hc3Rlci9wZ2FyY2guaApAQCAtMzEsNSArMzEsNiBAQCBleHRlcm4gdm9p ZCBQZ0FyY2hTaG1lbUluaXQodm9pZCk7CiBleHRlcm4gYm9vbCBQZ0FyY2hDYW5SZXN0YXJ0KHZv aWQpOwogZXh0ZXJuIHZvaWQgUGdBcmNoaXZlck1haW4odm9pZCkgcGdfYXR0cmlidXRlX25vcmV0 dXJuKCk7CiBleHRlcm4gdm9pZCBQZ0FyY2hXYWtldXAodm9pZCk7CitleHRlcm4gdm9pZCBQZ0Fy Y2hGb3JjZURpclNjYW4odm9pZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBfUEdBUkNIX0ggKi8KLS0g CjIuMTYuNgoK --_002_620F3CE102554D669D870EADE866985Aamazoncom_--