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 1k7eHj-0002el-8L for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Aug 2020 12:30:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1k7eHi-0007Ul-3V for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Aug 2020 12:30:42 +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 1k7eHh-0007UL-OI for pgsql-hackers@lists.postgresql.org; Mon, 17 Aug 2020 12:30:41 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k7eHc-0005Ly-22 for pgsql-hackers@postgresql.org; Mon, 17 Aug 2020 12:30:38 +0000 Received: from hnk.local (p12054-ipngn2901funabasi.chiba.ocn.ne.jp [153.212.171.54]) by oss.nttdata.com (Postfix) with ESMTPSA id 36815602BA; Mon, 17 Aug 2020 21:30:32 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com Subject: Re: track_planning causing performance regression To: Hamid Akhtar Cc: Pavel Stehule , Peter Geoghegan , Julien Rouhaud , "Tharakan, Robins" , "pgsql-hackers@postgresql.org" References: <2895b53b033c47ccb22972b589050dd9@EX13D05UWC001.ant.amazon.com> <42a13b4c-e60c-c6e7-3475-8eff8050bed4@oss.nttdata.com> <646e5cae-5e8b-feaa-43dc-014bf355bf08@oss.nttdata.com> <73b66e99-b4f3-9c4e-3b70-157ddbe81771@oss.nttdata.com> <773565c1-6508-063a-8872-20c16d283ee8@oss.nttdata.com> From: Fujii Masao Message-ID: <94a5cda2-b814-d4a8-59d3-b5f00f889e71@oss.nttdata.com> Date: Mon, 17 Aug 2020 21:30:31 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: base64 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk DQoNCk9uIDIwMjAvMDgvMTcgMTg6MzQsIEhhbWlkIEFraHRhciB3cm90ZToNCj4gDQo+IA0K PiBPbiBNb24sIEF1ZyAxNywgMjAyMCBhdCAyOjIxIFBNIEZ1amlpIE1hc2FvIDxtYXNhby5m dWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5j b20+PiB3cm90ZToNCj4gDQo+IA0KPiANCj4gICAgIE9uIDIwMjAvMDcvMzEgMjE6NDAsIEhh bWlkIEFraHRhciB3cm90ZToNCj4gICAgICA+IDxodHRwczovL2NvbW1pdGZlc3QucG9zdGdy ZXNxbC5vcmcvMjkvMjYzNC8+DQo+ICAgICAgPg0KPiAgICAgID4gT24gTW9uLCBKdWwgNiwg MjAyMCBhdCAxMDoyOSBBTSBGdWppaSBNYXNhbyA8bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEu Y29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPiA8bWFpbHRvOm1hc2Fv LmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRh LmNvbT4+PiB3cm90ZToNCj4gICAgICA+DQo+ICAgICAgPg0KPiAgICAgID4NCj4gICAgICA+ wqAgwqAgwqBPbiAyMDIwLzA3LzA0IDEyOjIyLCBQYXZlbCBTdGVodWxlIHdyb3RlOg0KPiAg ICAgID7CoCDCoCDCoCA+DQo+ICAgICAgPsKgIMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAg PiBww6EgMy4gNy4gMjAyMCB2wqAxMzowMiBvZGVzw61sYXRlbCBGdWppaSBNYXNhbyA8bWFz YW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRh dGEuY29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1h c2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50 dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPiA8bWFpbHRv Om1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5u dHRkYXRhLmNvbT4+Pj4gbmFwc2FsOg0KPiAgICAgID7CoCDCoCDCoCA+DQo+ICAgICAgPsKg IMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAg wqBPbiAyMDIwLzA3LzAzIDE2OjAyLCBQYXZlbCBTdGVodWxlIHdyb3RlOg0KPiAgICAgID7C oCDCoCDCoCA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPg0KPiAg ICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPiBww6EgMy4gNy4gMjAyMCB2wqA4OjU3IG9kZXPD rWxhdGVsIEZ1amlpIE1hc2FvIDxtYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0 bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3Nz Lm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPj4gPG1h aWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBv c3MubnR0ZGF0YS5jb20+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxt YWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPj4+IDxtYWlsdG86bWFzYW8uZnVq aWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29t PiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1 amlpQG9zcy5udHRkYXRhLmNvbT4+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEu Y29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPiA8bWFpbHRvOm1hc2Fv LmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRh LmNvbT4+Pj4+IG5hcHNhbDoNCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID4NCj4gICAg ICA+wqAgwqAgwqAgPsKgIMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID4N Cj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7CoCDCoCDCoE9uIDIwMjAvMDcvMDMgMTM6 MDUsIFBhdmVsIFN0ZWh1bGUgd3JvdGU6DQo+ICAgICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+ wqAgwqAgwqAgPiBIaQ0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgID4N Cj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7CoCDCoCDCoCA+IHDDoSAzLiA3LiAyMDIw IHbCoDQ6Mzkgb2Rlc8OtbGF0ZWwgRnVqaWkgTWFzYW8gPG1hc2FvLmZ1amlpQG9zcy5udHRk YXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4gPG1haWx0bzpt YXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0 ZGF0YS5jb20+PiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRv Om1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4gPG1haWx0bzptYXNhby5mdWppaUBvc3Mu bnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+Pj4gPG1h aWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBv c3MubnR0ZGF0YS5jb20+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxt YWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPj4gPG1haWx0bzptYXNhby5mdWpp aUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+ IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVq aWlAb3NzLm50dGRhdGEuY29tPj4+PiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRh LmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4gPG1haWx0bzptYXNh by5mdWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0 YS5jb20+PiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1h c2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0 ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+Pj4gPG1haWx0 bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20NCj4gICAgIDxtYWlsdG86bWFzYW8uZnVq aWlAb3NzLm50dGRhdGEuY29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNv bSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+IDxtYWlsdG86bWFzYW8u ZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEu Y29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1hc2Fv LmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+Pj4+PiBuYXBzYWw6DQo+ICAgICAgPsKgIMKgIMKg ID7CoCDCoCDCoCA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKg IMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7CoCDCoCDCoCA+DQo+ICAg ICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgT24gMjAyMC8wNy8w MSA3OjM3LCBQZXRlciBHZW9naGVnYW4gd3JvdGU6DQo+ICAgICAgPsKgIMKgIMKgID7CoCDC oCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgID4gT24gVHVlLCBKdW4gMzAsIDIwMjAgYXQgNjo0 MCBBTSBGdWppaSBNYXNhbyA8bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86 bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5u dHRkYXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+IDxtYWls dG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3Nz Lm50dGRhdGEuY29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFp bHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+PiA8bWFpbHRvOm1hc2FvLmZ1amlp QG9zcy5udHRkYXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4g PG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWpp aUBvc3MubnR0ZGF0YS5jb20+PiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNv bSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4gPG1haWx0bzptYXNhby5m dWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5j b20+Pj4+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFz YW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRk YXRhLmNvbSA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+IDxtYWlsdG86 bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50 dGRhdGEuY29tPiA8bWFpbHRvOm1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbSA8bWFpbHRv Om1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4+Pg0KPiAgICAgPG1haWx0bzptYXNhby5m dWppaUBvc3MubnR0ZGF0YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5j b20+IDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8u ZnVqaWlAb3NzLm50dGRhdGEuY29tPj4gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0 YS5jb20gPG1haWx0bzptYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+IDxtYWlsdG86bWFz YW8uZnVqaWlAb3NzLm50dGRhdGEuY29tIDxtYWlsdG86bWFzYW8uZnVqaWlAb3NzLm50dGRh dGEuY29tPj4+Pj4+IHdyb3RlOg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKg IMKgID7CoCDCoCDCoCA+PiBBbnRzIGFuZCBBbmRyZXMgc3VnZ2VzdGVkIHRvIHJlcGxhY2Ug dGhlIHNwaW5sb2NrIHVzZWQgaW4gcGdzc19zdG9yZSgpIHdpdGgNCj4gICAgICA+wqAgwqAg wqAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAgPj4gTFdMb2NrLiBJIGFncmVlZCB3 aXRoIHRoZW0gYW5kIHBvc3RlZCB0aGUgUE9DIHBhdGNoIGRvaW5nIHRoYXQuIEJ1dCBJIHRo aW5rDQo+ICAgICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgID4+ IHRoZSBwYXRjaCBpcyBhbiBpdGVtIGZvciB2MTQuIFRoZSBwYXRjaCBtYXkgYWRkcmVzcyB0 aGUgcmVwb3J0ZWQgcGVyZm9ybWFuY2UNCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7C oCDCoCDCoCA+wqAgwqAgwqAgPj4gaXNzdWUsIGJ1dCBtYXkgY2F1c2Ugb3RoZXIgcGVyZm9y bWFuY2UgaXNzdWVzIGluIG90aGVyIHdvcmtsb2Fkcy4gV2Ugd291bGQNCj4gICAgICA+wqAg wqAgwqAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAgPj4gbmVlZCB0byBtZWFzdXJl IGhvdyB0aGUgcGF0Y2ggYWZmZWN0cyB0aGUgcGVyZm9ybWFuY2UgaW4gdmFyaW91cyB3b3Jr bG9hZHMuDQo+ICAgICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKg ID4+IEl0IHNlZW1zIHRvbyBsYXRlIHRvIGRvIHRoYXQgYXQgdGhpcyBzdGFnZSBvZiB2MTMu IFRob3VnaHQ/DQo+ICAgICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKg IMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7CoCDCoCDCoCA+wqAgwqAgwqAg PiBJIGFncmVlIHRoYXQgaXQncyB0b28gbGF0ZSBmb3IgdjEzLg0KPiAgICAgID7CoCDCoCDC oCA+wqAgwqAgwqAgPsKgIMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7C oCDCoCDCoCA+wqAgwqAgwqBUaGFua3MgZm9yIHRoZSBjb21tZW50IQ0KPiAgICAgID7CoCDC oCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKg ID7CoCDCoCDCoCA+wqAgwqAgwqBTbyBJIHB1c2hlZCB0aGUgcGF0Y2ggYW5kIGNoYW5nZWQg ZGVmYXVsdCBvZiB0cmFja19wbGFubmluZyB0byBvZmYuDQo+ICAgICAgPsKgIMKgIMKgID7C oCDCoCDCoCA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKg IMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID7CoCDCoCDCoCA+IE1heWJlIHRo ZXJlIGNhbiBiZSBkb2N1bWVudGVkIHNvIGVuYWJsaW5nIHRoaXMgb3B0aW9uIGNhbiBoYXZl IGEgbmVnYXRpdmUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlLg0KPiAgICAgID7CoCDCoCDCoCA+ wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgWWVzLiBX aGF0IGFib3V0IGFkZGluZyBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZ3MgaW50byB0aGUgZG9j Pw0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAg wqAgwqAgPsKgIMKgIMKgIMKgIMKgIMKgRW5hYmxpbmcgdGhpcyBwYXJhbWV0ZXIgbWF5IGlu Y3VyIGEgbm90aWNlYWJsZSBwZXJmb3JtYW5jZSBwZW5hbHR5Lg0KPiAgICAgID7CoCDCoCDC oCA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+wqAgwqAgwqAgPsKgIMKgIMKgb3IN Cj4gICAgICA+wqAgwqAgwqAgPsKgIMKgIMKgID4NCj4gICAgICA+wqAgwqAgwqAgPsKgIMKg IMKgID7CoCDCoCDCoCDCoCDCoCDCoEVuYWJsaW5nIHRoaXMgcGFyYW1ldGVyIG1heSBpbmN1 ciBhIG5vdGljZWFibGUgcGVyZm9ybWFuY2UgcGVuYWx0eSwNCj4gICAgICA+wqAgwqAgwqAg PsKgIMKgIMKgID7CoCDCoCDCoCDCoCDCoCDCoGVzcGVjaWFsbHkgd2hlbiBhIGZld2VyIGtp bmRzIG9mIHF1ZXJpZXMgYXJlIGV4ZWN1dGVkIG9uIG1hbnkNCj4gICAgICA+wqAgwqAgwqAg PsKgIMKgIMKgID7CoCDCoCDCoCDCoCDCoCDCoGNvbmN1cnJlbnQgY29ubmVjdGlvbnMuDQo+ ICAgICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+DQo+ICAgICAgPsKgIMKgIMKgID7CoCDCoCDC oCA+DQo+ICAgICAgPsKgIMKgIMKgID7CoCDCoCDCoCA+IFRoaXMgc2Vjb25kIHZhcmlhbnQg bG9va3MgcGVyZmVjdCBmb3IgdGhpcyBjYXNlLg0KPiAgICAgID7CoCDCoCDCoCA+DQo+ICAg ICAgPsKgIMKgIMKgID7CoCDCoCDCoE9rLCBzbyBwYXRjaCBhdHRhY2hlZC4NCj4gICAgICA+ wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+DQo+ICAgICAgPsKgIMKgIMKgID4gKzEN Cj4gICAgICA+DQo+ICAgICAgPsKgIMKgIMKgVGhhbmtzIGZvciB0aGUgcmV2aWV3ISBQdXNo ZWQuDQo+ICAgICAgPg0KPiAgICAgID7CoCDCoCDCoFJlZ2FyZHMsDQo+ICAgICAgPg0KPiAg ICAgID7CoCDCoCDCoC0tDQo+ICAgICAgPsKgIMKgIMKgRnVqaWkgTWFzYW8NCj4gICAgICA+ wqAgwqAgwqBBZHZhbmNlZCBDb21wdXRpbmcgVGVjaG5vbG9neSBDZW50ZXINCj4gICAgICA+ wqAgwqAgwqBSZXNlYXJjaCBhbmQgRGV2ZWxvcG1lbnQgSGVhZHF1YXJ0ZXJzDQo+ICAgICAg PsKgIMKgIMKgTlRUIERBVEEgQ09SUE9SQVRJT04NCj4gICAgICA+DQo+ICAgICAgPg0KPiAg ICAgID4NCj4gICAgICA+IFlvdSBtaWdodCBhbHNvIHdhbnQgdG8gdXBkYXRlIHRoaXMgcGF0 Y2gncyBzdGF0dXMgaW4gdGhlIGNvbW1pdGZlc3Q6DQo+ICAgICAgPiBodHRwczovL2NvbW1p dGZlc3QucG9zdGdyZXNxbC5vcmcvMjkvMjYzNC8NCj4gDQo+ICAgICBUaGUgcGF0Y2ggYWRk ZWQgaW50byB0aGlzIENGIGVudHJ5IGhhcyBub3QgYmVlbiBjb21taXR0ZWQgeWV0Lg0KPiAg ICAgU28gSSB3YXMgdGhpbmtpbmcgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIHVwZGF0ZSB0 aGUgc3RhdHVzIHlldC4gTm8/DQo+IA0KPiANCj4gWW91ciBwcmV2aW91cyBlbWFpbMKgc3Vn Z2VzdGVkIHRoYXQgaXQncyBiZWVuIHB1c2hlZCwgaGVuY2UgbXkgY29tbWVudC4gQ2hlY2tp bmcgdGhlIGdpdCBsb2csIEkgc2VlIGEgY29tbWl0IHdhcyBwdXNoZWQgb24gSnVseSA2ICgz MjFmYTZhKSB3aXRoIHRoZSBjaGFuZ2VzIHRoYXQgbWF0Y2ggdGhlIGxhdGVzdCBwYXRjaC4N Cg0KWWVzLCBJIHB1c2hlZCB0aGUgZG9jdW1lbnRfb3ZlcmhlYWRfYnlfdHJhY2tfcGxhbm5p bmcucGF0Y2gsIGJ1dCB0aGlzDQpDRiBlbnRyeSBpcyBmb3IgcGdzc19sd2xvY2tfdjEucGF0 Y2ggd2hpY2ggcmVwbGFjZXMgc3BpbmxvY2tzIHdpdGggbHdsb2Nrcw0KaW4gcGdfc3RhdF9z dGF0ZW1lbnRzLiBUaGUgbGF0dGVyIHBhdGNoIGhhcyBub3QgYmVlbiBjb21taXR0ZWQgeWV0 Lg0KUHJvYmFibHkgYXR0YWNoZGluZyB0aGUgZGlmZmVyZW50IHBhdGNoZXMgaW4gdGhlIHNh bWUgdGhyZWFkIHdvdWxkIGNhdXNlDQp0aGlzIGNvbmZ1c2luZyB0aGluZy4uLiBBbnl3YXks IHRoYW5rcyBmb3IgeW91ciBjb21tZW50IQ0KDQpSZWdhcmRzLA0KDQoNCi0tIA0KRnVqaWkg TWFzYW8NCkFkdmFuY2VkIENvbXB1dGluZyBUZWNobm9sb2d5IENlbnRlcg0KUmVzZWFyY2gg YW5kIERldmVsb3BtZW50IEhlYWRxdWFydGVycw0KTlRUIERBVEEgQ09SUE9SQVRJT04NCg==