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 1uEhoS-00Bnsn-Cn for pgsql-hackers@arkaria.postgresql.org; Tue, 13 May 2025 05:04:20 +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 1uEhnS-003V7t-BR for pgsql-hackers@arkaria.postgresql.org; Tue, 13 May 2025 05:03:18 +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 1uEhnR-003V6D-PZ for pgsql-hackers@lists.postgresql.org; Tue, 13 May 2025 05:03:18 +0000 Received: from bramsgout01.huawei.com ([119.8.89.135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uEhnJ-001X6R-2W for pgsql-hackers@postgresql.org; Tue, 13 May 2025 05:03:12 +0000 Received: from mail.maildlp.com (unknown [172.18.210.75]) by bramsgout01.huawei.com (SkyGuard) with ESMTPS id 4ZxPVJ32gdz3NP07 for ; Tue, 13 May 2025 13:02:32 +0800 (CST) Received: from ytopeml100002.china.huawei.com (unknown [7.184.16.70]) by mail.maildlp.com (Postfix) with ESMTPS id 28854160044 for ; Tue, 13 May 2025 13:03:05 +0800 (CST) Received: from ytopeml500001.china.huawei.com (7.184.16.223) by ytopeml100002.china.huawei.com (7.184.16.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 13 May 2025 01:03:03 -0400 Received: from ytopeml500001.china.huawei.com ([7.184.16.223]) by ytopeml500001.china.huawei.com ([7.184.16.223]) with mapi id 15.01.2507.039; Tue, 13 May 2025 01:03:03 -0400 From: Jack Ng To: Ashutosh Bapat CC: Dmitry Dolgov <9erthalion6@gmail.com>, "pgsql-hackers@postgresql.org" , Robert Haas , Ni Ku Subject: RE: Changing shared_buffers without restart Thread-Topic: Changing shared_buffers without restart Thread-Index: AQHbl7DrFzUaSyTydEunWI983IaxOrNc1X6AgGMtZVaABTbmwIAAlRyAgAEig+CABAOYAIAFYklA Date: Tue, 13 May 2025 05:03:03 +0000 Message-ID: <73f05b290b584e0581c4a96a33daa77b@huawei.com> References: In-Reply-To: Accept-Language: en-CA, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.48.246.228] Content-Type: multipart/mixed; boundary="_004_73f05b290b584e0581c4a96a33daa77bhuaweicom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_73f05b290b584e0581c4a96a33daa77bhuaweicom_ Content-Type: multipart/alternative; boundary="_000_73f05b290b584e0581c4a96a33daa77bhuaweicom_" --_000_73f05b290b584e0581c4a96a33daa77bhuaweicom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXNodXRvc2gsDQoNCj4gPiAqIER1cmluZyByZXNpemUsIHNpbXBseSBjYWxjdWxhdGUgdGhl IG5ldyBzaXplIGFuZCBjYWxsIGZ0cnVuY2F0ZSBvbiBlYWNoDQo+ID4gc2VnbWVudCB0byBhZGp1 c3QgbWVtb3J5IGFjY29yZGluZ2x5LCBubyBuZWVkIHRvIG1tYXAvbXVubWFwIG9yIG1vZGlmeSBh bnkNCj4gPiBtZW1vcnkgbWFwcGluZy4NCj4gPg0KPiA+DQo+IFRoYXQncyBzYW1lIGFzIG15IHVu ZGVyc3RhbmRpbmcuDQpHcmVhdCwgdGhhbmtzIGZvciBjb25maXJtaW5nIQ0KDQo+IEkgdGhvdWdo dCBJIGhhZCBzaGFyZWQgYSB0ZXN0IHByb2dyYW0gdXB0aHJlYWQsIGJ1dCBJIGRvbid0IGZpbmQg aXQgbm93LiBBdHRhY2hlZCBoZXJlLiBDYW4geW91IHBsZWFzZSBzaGFyZSB5b3VyIHRlc3QgcHJv Z3JhbT8NClN1cmUsIG1pbmUgaXMgYXR0YWNoZWQgaGVyZSAoaXTigJlzIGJhc2VkIG9uIGFub3Ro ZXIgdGVzdCBwcm9ncmFtIHlvdSBzaGFyZWQgYmVmb3JlIDotKQ0KDQpSZWdhcmRzLA0KDQpKYWNr IE5nDQo= --_000_73f05b290b584e0581c4a96a33daa77bhuaweicom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUg NSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxARGVuZ1hpYW4i Ow0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg Ki8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBp bjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm O30NCnNwYW4uRW1haWxTdHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0K CWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0K Lk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7fQ0KQHBhZ2UgV29y ZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBp biAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwv c3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJl ZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNv IDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0i ZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwv aGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIiBzdHls ZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPkhpIEFzaHV0b3NoLDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m Z3Q7ICZndDsgKiBEdXJpbmcgcmVzaXplLCBzaW1wbHkgY2FsY3VsYXRlIHRoZSBuZXcgc2l6ZSBh bmQgY2FsbCBmdHJ1bmNhdGUgb24gZWFjaDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+Jmd0OyAmZ3Q7IHNlZ21lbnQgdG8gYWRqdXN0IG1lbW9yeSBhY2NvcmRpbmdseSwgbm8g bmVlZCB0byBtbWFwL211bm1hcCBvciBtb2RpZnkgYW55PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj4mZ3Q7ICZndDsgbWVtb3J5IG1hcHBpbmcuPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ Jmd0OyBUaGF0J3Mgc2FtZSBhcyBteSB1bmRlcnN0YW5kaW5nLjxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+R3JlYXQsIHRoYW5rcyBmb3IgY29uZmlybWluZyE8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+Jmd0OyBJIHRob3VnaHQgSSBoYWQgc2hhcmVkIGEgdGVzdCBwcm9ncmFt IHVwdGhyZWFkLCBidXQgSSBkb24ndCBmaW5kIGl0IG5vdy4gQXR0YWNoZWQgaGVyZS4gQ2FuIHlv dSBwbGVhc2Ugc2hhcmUgeW91ciB0ZXN0IHByb2dyYW0/PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj5TdXJlLCBtaW5lIGlzIGF0dGFjaGVkIGhlcmUgKGl04oCZcyBiYXNlZCBv biBhbm90aGVyIHRlc3QgcHJvZ3JhbSB5b3Ugc2hhcmVkIGJlZm9yZSA6LSk8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+UmVnYXJkcyw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SmFjayBOZzxvOnA+ PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo= --_000_73f05b290b584e0581c4a96a33daa77bhuaweicom_-- --_004_73f05b290b584e0581c4a96a33daa77bhuaweicom_ Content-Type: text/plain; name="test_hugepage_mappings.c" Content-Description: test_hugepage_mappings.c Content-Disposition: attachment; filename="test_hugepage_mappings.c"; size=5833; creation-date="Tue, 13 May 2025 04:57:00 GMT"; modification-date="Tue, 13 May 2025 04:57:00 GMT" Content-Transfer-Encoding: base64 I2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+ CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL21t YW4uaD4KI2luY2x1ZGUgPGxpbnV4L21lbWZkLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1 ZGUgPGVycm5vLmg+CgoKI2RlZmluZSBIVUdFX1BHX1NaICgoc2l6ZV90KSgyMDQ4KjEwMjQpKQp1 bnNpZ25lZCBsb25nIGxvbmcgTUFYX1NaID0gKDEwMCAqICgoc2l6ZV90KSgxMDI0ICogMTAyNCkg KiAoc2l6ZV90KSgxMDI0ICogMTAyNCkpKTsgLy8gMTAwIFRCCgppbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKSB7CiAgaW50IGZkXzEgPSAtMTsKICBpbnQgZmRfMiA9IC0xOwogIHNpemVf dCBvbGRfc2l6ZSA9IGF0b2koYXJndlsxXSkgKiBIVUdFX1BHX1NaOwogIHNpemVfdCBuZXdfc2l6 ZSA9IGF0b2koYXJndlsyXSkgKiBIVUdFX1BHX1NaOwoKICAvLyBQcm9iZSBmb3IgYSB2YWxpZCBh ZGRyZXNzIHRoYXQgY2FuIGdyb3cgdXAgdG8gTUFYX1NaCiAgdm9pZCAqcHJvYmUgPSBtbWFwKE5V TEwsIE1BWF9TWiwKICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwK ICAgICAgICAgICAgICAgICAgICAgTUFQX0FOT05ZTU9VUyB8IE1BUF9OT1JFU0VSVkUgfCBNQVBf U0hBUkVEIHwgTUFQX0hVR0VUTEIsIC0xLCAwKTsKICBpZiAocHJvYmUgPT0gTUFQX0ZBSUxFRCkg ewogICAgcGVycm9yKCJtbWFwIik7CiAgICBleGl0KDEpOwogIH0KCiAgaWYgKG11bm1hcChwcm9i ZSwgTUFYX1NaKSA9PSAtMSkgewogICAgcGVycm9yKCJtdW5tYXAiKTsKICAgIGV4aXQoMSk7CiAg fQoKICAvKgoKICB8LS0tLS0gTWVtb3J5IG1hcHBpbmcgKE1BUF9OT1JFU0VSVkUpICMxIC0tLS0t fC0tLS0tIE1lbW9yeSBtYXBwaW5nIChNQVBfTk9SRVNFUlZFKSAjMiAtLS0tLXwKICB8LS0gSW4t dXNlIHJlZ2lvbiAxIC0tfC0tIFJlc2VydmVkIHJlZ2lvbiAxIC0tfC0tIEluLXVzZSByZWdpb24g MiAtLXwtLSBSZXNlcnZlZCByZWdpb24gMiAtLXwKCiAgKi8KCiAgLy8gQ3JlYXRlIGFub24gbWFw cGluZyAjMSB0aGF0J3MgYmFja2VkIGJ5IGFuIGFub24gZmlsZSBmZF8xCiAgZmRfMSA9IG1lbWZk X2NyZWF0ZSgidGVzdF9odWdlcGFnZV9tYXAxIiwgTUZEX0hVR0VUTEIgfCBNRkRfSFVHRV8yTUIg fCBNRkRfQ0xPRVhFQyk7CiAgaWYgKGZkXzEgPT0gLTEpIHsKICAgIHBlcnJvcigibWVtZmRfY3Jl YXRlIik7CiAgICBleGl0KDEpOwogIH0KCiAgdm9pZCAqbWFwMV9hZGRyID0gbW1hcChwcm9iZSwg TUFYX1NaLzIsCiAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRF LAogICAgICAgICAgICAgICAgICAgICAgICAgTUFQX05PUkVTRVJWRSB8IE1BUF9TSEFSRUQgfCBN QVBfSFVHRVRMQiwgZmRfMSwgMCk7CiAgaWYgKG1hcDFfYWRkciA9PSBNQVBfRkFJTEVEKSB7CiAg ICBwZXJyb3IoIm1tYXAiKTsKICAgIGV4aXQoMSk7CiAgfQoKICAvLyBDcmVhdGUgaW4tdXNlIHJl Z2lvbiAxCiAgaWYgKGZ0cnVuY2F0ZShmZF8xLCBvbGRfc2l6ZSkgPT0gLTEpIHsKICAgIHBlcnJv cigiZnRydW5jYXRlIik7CiAgICBleGl0KDEpOwogIH0KCiAgLy8gVGhlIGRpZmZlcmVuY2UgYmV0 d2VlbiBmdHJ1bmNhdGUgYW5kIGZhbGxvY2F0ZSBpcyB0aGF0IGZ0cnVuY2F0ZSBkb2VzIG5vdCBh Y3R1YWxseQogIC8vIGFsbG9jYXRlIGFueSBtZW1vcnkgeWV0IChyYXRoZXIgaXQncyBhbGxvY2F0 ZWQgb24gImZpcnN0IHRvdWNoIikgYnV0IGZhbGxvY2F0ZQogIC8vIGRvZXMgYW5kIGFsc28gaW5p dGlhbGl6ZXMgdGhlIG1lbW9yeSB3aXRoIHplcm9zLgogIC8qaWYgKGZhbGxvY2F0ZShmZF8xLCAw LCAwLCBvbGRfc2l6ZSkgPT0gLTEpIHsKICAgIHBlcnJvcigiZmFsbG9jYXRlIik7CiAgICBleGl0 KDEpOwogIH0qLwoKICAvLyBPcHRpb25hbGx5LCB3ZSBjYW4gcHJvdGVjdCB0aGUgcmVzZXJ2ZWQg cmVnaW9uIGp1c3QgdG8gYmUgc2FmZQogIGlmIChtcHJvdGVjdChtYXAxX2FkZHIgKyBvbGRfc2l6 ZSwgTUFYX1NaLzIgLSBvbGRfc2l6ZSwgUFJPVF9OT05FKSA9PSAtMSkgewogICAgcGVycm9yKCJt cHJvdGVjdCIpOwogICAgZXhpdCgxKTsKICB9CgoKICAvLyBDcmVhdGUgYW5vbiBtYXBwaW5nICMy IHRoYXQncyBiYWNrZWQgYnkgYW4gYW5vbiBmaWxlIGZkXzIKICBmZF8yID0gbWVtZmRfY3JlYXRl KCJ0ZXN0X2h1Z2VwYWdlX21hcDIiLCBNRkRfSFVHRVRMQiB8IE1GRF9IVUdFXzJNQiB8IE1GRF9D TE9FWEVDKTsKICBpZiAoZmRfMiA9PSAtMSkgewogICAgcGVycm9yKCJtZW1mZF9jcmVhdGUiKTsK ICAgIGV4aXQoMSk7CiAgfQoKICB2b2lkICptYXAyX2FkZHIgPSBtbWFwKHByb2JlICsgTUFYX1Na LzIsIE1BWF9TWi8yLAogICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9X UklURSwKICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9OT1JFU0VSVkUgfCBNQVBfU0hBUkVE IHwgTUFQX0hVR0VUTEIsIGZkXzIsIDApOwogIGlmIChtYXAyX2FkZHIgPT0gTUFQX0ZBSUxFRCkg ewogICAgcGVycm9yKCJtbWFwIik7CiAgICBleGl0KDEpOwogIH0KCiAgLy8gQ3JlYXRlIGluLXVz ZSByZWdpb24gMgogIGlmIChmdHJ1bmNhdGUoZmRfMiwgb2xkX3NpemUpID09IC0xKSB7CiAgICBw ZXJyb3IoImZ0cnVuY2F0ZSIpOwogICAgZXhpdCgxKTsKICB9CiAgLyppZiAoZmFsbG9jYXRlKGZk XzIsIDAsIDAsIG9sZF9zaXplKSA9PSAtMSkgewogICAgcGVycm9yKCJmYWxsb2NhdGUiKTsKICAg IGV4aXQoMSk7CiAgfSovCgogIGlmIChtcHJvdGVjdChtYXAyX2FkZHIgKyBvbGRfc2l6ZSwgTUFY X1NaLzIgLSBvbGRfc2l6ZSwgUFJPVF9OT05FKSA9PSAtMSkgewogICAgcGVycm9yKCJtcHJvdGVj dCIpOwogICAgZXhpdCgxKTsKICB9CgogIHVuc2lnbmVkIGNoYXIgKmluX3VzZTEgPSAodW5zaWdu ZWQgY2hhciopbWFwMV9hZGRyOwogIHVuc2lnbmVkIGNoYXIgKmluX3VzZTIgPSAodW5zaWduZWQg Y2hhciopbWFwMl9hZGRyOwoKICBwcmludGYoIlByZXNzIEVudGVyIHRvIGZpbGwgaW4tdXNlIHNl Z21lbnQgMSBtZW1vcnkuLi5cbiIpOwogIGdldGNoYXIoKTsKICBtZW1zZXQobWFwMV9hZGRyLCAw eGVlLCBvbGRfc2l6ZSk7CgogIHByaW50ZigiUHJlc3MgRW50ZXIgdG8gZmlsbCBpbi11c2Ugc2Vn bWVudCAyIG1lbW9yeS4uLlxuIik7CiAgZ2V0Y2hhcigpOwogIG1lbXNldChtYXAyX2FkZHIsIDB4 ZGQsIG9sZF9zaXplKTsKCiAgZm9yIChpbnQgaT0wOyBpIDwgb2xkX3NpemU7IGkrKykgewogICAg aWYgKGluX3VzZTFbaV0gIT0gMHhlZSkgewogICAgICBwcmludGYoInNlZzEgY29udGVudCBjaGFu Z2VkIVxuIik7CiAgICAgIGV4aXQoMSk7CiAgICB9CiAgfQoKICBmb3IgKGludCBpPTA7IGkgPCBv bGRfc2l6ZTsgaSsrKSB7CiAgICBpZiAoaW5fdXNlMltpXSAhPSAweGRkKSB7CiAgICAgIHByaW50 Zigic2VnMiBjb250ZW50IGNoYW5nZWQhXG4iKTsKICAgICAgZXhpdCgxKTsKICAgIH0KICB9Cgog IHByaW50ZigiUHJlc3MgRW50ZXIgdG8gcmVzaXplIGluLXVzZSBzZWdtZW50IDEgbWVtb3J5Li4u XG4iKTsKICBnZXRjaGFyKCk7CgogIC8vICJVbnByb3RlY3QiIHRoZSBvbGQgcmVzZXJ2ZWQgcmVn aW9uIGZpcnN0CiAgaWYgKG1wcm90ZWN0KG1hcDFfYWRkciArIG9sZF9zaXplLCBNQVhfU1ovMiAt IG9sZF9zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKSA9PSAtMSkgewogICAgcGVycm9yKCJt cHJvdGVjdCIpOwogICAgZXhpdCgxKTsKICB9CgogIGlmIChmdHJ1bmNhdGUoZmRfMSwgbmV3X3Np emUpID09IC0xKSB7CiAgICBwZXJyb3IoImZkXzEgZnRydW5jYXRlIik7CiAgICBleGl0KDEpOwog IH0KCiAgLy8gUHJvdGVjdCB0aGUgbmV3IHJlc2VydmVkIHJlZ2lvbgogIGlmIChtcHJvdGVjdCht YXAxX2FkZHIgKyBuZXdfc2l6ZSwgTUFYX1NaLzIgLSBuZXdfc2l6ZSwgUFJPVF9OT05FKSA9PSAt MSkgewogICAgcGVycm9yKCJtcHJvdGVjdCIpOwogICAgZXhpdCgxKTsKICB9CgogIHByaW50Zigi UHJlc3MgRW50ZXIgdG8gcmVzaXplIGluLXVzZSBzZWdtZW50IDIgbWVtb3J5Li4uXG4iKTsKICBn ZXRjaGFyKCk7CgogIGlmIChtcHJvdGVjdChtYXAyX2FkZHIgKyBvbGRfc2l6ZSwgTUFYX1NaLzIg LSBvbGRfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSkgPT0gLTEpIHsKICAgIHBlcnJvcigi bXByb3RlY3QiKTsKICAgIGV4aXQoMSk7CiAgfQoKICBpZiAoZnRydW5jYXRlKGZkXzIsIG5ld19z aXplKSA9PSAtMSkgewogICAgcGVycm9yKCJmZF8yIGZ0cnVuY2F0ZSIpOwogICAgZXhpdCgxKTsK ICB9CgogIGlmIChtcHJvdGVjdChtYXAyX2FkZHIgKyBuZXdfc2l6ZSwgTUFYX1NaLzIgLSBuZXdf c2l6ZSwgUFJPVF9OT05FKSA9PSAtMSkgewogICAgcGVycm9yKCJtcHJvdGVjdCIpOwogICAgZXhp dCgxKTsKICB9CgogIHNpemVfdCBjaGVja19zaXplID0gKG9sZF9zaXplIDw9IG5ld19zaXplID8g b2xkX3NpemUgOiBuZXdfc2l6ZSk7CiAgZm9yIChpbnQgaT0wOyBpIDwgY2hlY2tfc2l6ZTsgaSsr KSB7CiAgICBpZiAoaW5fdXNlMVtpXSAhPSAweGVlKSB7CiAgICAgIHByaW50ZigibmV3IHNlZzEg Y29udGVudCBjaGFuZ2VkIVxuIik7CiAgICAgIGV4aXQoMSk7CiAgICB9CiAgfQoKICBmb3IgKGlu dCBpPTA7IGkgPCBjaGVja19zaXplOyBpKyspIHsKICAgIGlmIChpbl91c2UyW2ldICE9IDB4ZGQp IHsKICAgICAgcHJpbnRmKCJuZXcgc2VnMiBjb250ZW50IGNoYW5nZWQhXG4iKTsKICAgICAgZXhp dCgxKTsKICAgIH0KICB9CgogIG1lbXNldChtYXAxX2FkZHIsIDB4YWEsIG5ld19zaXplKTsKICBm b3IgKGludCBpPTA7IGkgPCBuZXdfc2l6ZTsgaSsrKSB7CiAgICBpZiAoaW5fdXNlMVtpXSAhPSAw eGFhKSB7CiAgICAgIHByaW50ZigibmV3IHNlZzEgY29ycnVwdGVkIVxuIik7CiAgICAgIGV4aXQo MSk7CiAgICB9CiAgfQoKICBtZW1zZXQobWFwMl9hZGRyLCAweGJiLCBuZXdfc2l6ZSk7CiAgZm9y IChpbnQgaT0wOyBpIDwgbmV3X3NpemU7IGkrKykgewogICAgaWYgKGluX3VzZTJbaV0gIT0gMHhi YikgewogICAgICBwcmludGYoIm5ldyBzZWcyIGNvcnJ1cHRlZCFcbiIpOwogICAgICBleGl0KDEp OwogICAgfQogIH0KCiAgcHJpbnRmKCJQcmVzcyBFbnRlciB0byBzaHJpbmsgc2VnIDEgdG8gMC4u LlxuIik7CiAgZ2V0Y2hhcigpOwogIGlmIChmdHJ1bmNhdGUoZmRfMSwgMCkgPT0gLTEpIHsKICAg IHBlcnJvcigiZnRydW5jYXRlIik7CiAgICBleGl0KDEpOwogIH0KICBjbG9zZShmZF8xKTsKCiAg cHJpbnRmKCJQcmVzcyBFbnRlciB0byBzaHJpbmsgc2VnIDIgdG8gMC4uLlxuIik7CiAgZ2V0Y2hh cigpOwogIGlmIChmdHJ1bmNhdGUoZmRfMiwgMCkgPT0gLTEpIHsKICAgIHBlcnJvcigiZnRydW5j YXRlIik7CiAgICBleGl0KDEpOwogIH0KICBjbG9zZShmZF8yKTsKCiAgcHJpbnRmKCJQcmVzcyBF bnRlciB0byB1bm1hcCBmaXJzdCBtYXBwaW5nLi4uXG4iKTsKICBnZXRjaGFyKCk7CiAgaWYgKG11 bm1hcChtYXAxX2FkZHIsIE1BWF9TWi8yKSA9PSAtMSkgewogICAgcGVycm9yKCJtdW5tYXAiKTsK ICAgIGV4aXQoMSk7CiAgfQoKICBwcmludGYoIlByZXNzIEVudGVyIHRvIHVubWFwIGZpcnN0IG1h cHBpbmcuLi5cbiIpOwogIGdldGNoYXIoKTsKICBpZiAobXVubWFwKG1hcDJfYWRkciwgTUFYX1Na LzIpID09IC0xKSB7CiAgICBwZXJyb3IoIm11bm1hcCIpOwogICAgZXhpdCgxKTsKICB9CiAgCiAg cHJpbnRmKCJQcmVzcyBFbnRlciB0byB0ZXJtaWFudGUgcHJvZ3JhbS4uLlxuIik7CiAgZ2V0Y2hh cigpOwogIHJldHVybiAwOwp9Cg== --_004_73f05b290b584e0581c4a96a33daa77bhuaweicom_--