Received: from maia.hub.org (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 12B0063285F for ; Sat, 13 Feb 2010 03:58:28 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 17260-07 for ; Sat, 13 Feb 2010 07:58:17 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from out-0.mx.aerioconnect.net (outb.internet-mail-service.net [216.240.47.225]) by mail.postgresql.org (Postfix) with ESMTP id 2E237632843 for ; Sat, 13 Feb 2010 03:58:17 -0400 (AST) Received: from idiom.com (postfix@mx0.idiom.com [216.240.32.160]) by out-0.mx.aerioconnect.net (8.13.8/8.13.8) with ESMTP id o1D7wE6g020461; Fri, 12 Feb 2010 23:58:14 -0800 X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from [192.168.2.113] (adsl-71-135-173-32.dsl.pltn13.pacbell.net [71.135.173.32]) by idiom.com (Postfix) with ESMTP id 50EA72D603A; Fri, 12 Feb 2010 23:58:13 -0800 (PST) Message-ID: <4B765B94.4000602@obviously.com> Date: Fri, 12 Feb 2010 23:58:12 -0800 From: Bryce Nesbitt User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.23) Gecko/20090410 SUSE/1.1.18-0.1 SeaMonkey/1.1.18 MIME-Version: 1.0 To: pgsql-performance@postgresql.org CC: Robert Haas Subject: Re: 512,600ms query becomes 7500ms... but why? Postgres 8.3 query planner quirk? References: <4B723042.7090406@obviously.com> <4B751AD5020000250002F248@gw.wicourts.gov> <4B757C59.8070500@denninger.net> <4B752934020000250002F24E@gw.wicourts.gov> <4B75851E.6070909@denninger.net> <26772.1266005254@sss.pgh.pa.us> In-Reply-To: <26772.1266005254@sss.pgh.pa.us> Content-Type: multipart/mixed; boundary="------------070505010608070002090403" X-Scanned-By: MIMEDefang 2.67 on 216.240.47.51 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-2.598 tagged_above=-10 required=5 tests=BAYES_00=-2.599, HTML_MESSAGE=0.001 X-Spam-Level: X-Archive-Number: 201002/220 X-Sequence-Number: 37641 This is a multi-part message in MIME format. --------------070505010608070002090403 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit So as the op, back to the original posting....

In the real world, what should I do?  Does it make sense to pull the "AND articles.indexed" clause into an outer query?  Will that query simply perform poorly on other arbitrary combinations of words?


I'm happy to test any given query against the same set of servers. If it involves a persistent change
it has to run on a test server).  For example, the Robert Haas method:
# ...
Total runtime: 254207.857 ms

# ALTER TABLE article_words ALTER COLUMN word_key SET STATISTICS 1000;
# ANALYZE VERBOSE article_words
INFO:  analyzing "public.article_words"
INFO:  "article_words": scanned 300000 of 1342374 pages, containing 64534899 live rows and 3264839 dead rows; 300000 rows in sample, 288766568 estimated total rows
ANALYZE
# ...
Total runtime: 200591.751 ms

# ALTER TABLE article_words ALTER COLUMN word_key SET STATISTICS 50;
# ANALYZE VERBOSE article_words
# ...
Total runtime: 201204.972 ms


Sadly, it made essentially zero difference.  Attached.


--------------070505010608070002090403 Content-Type: text/plain; name="Stats_Target.txt" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="Stats_Target.txt" CnByZXByb2R1Y3Rpb24tMjAwOTEyMTQ9IyBFWFBMQUlOIEFOQUxZWkUKU0VMRUNUIGNvbnRl eHRzLmNvbnRleHRfa2V5IEZST00gY29udGV4dHMKSk9JTiBhcnRpY2xlcyBPTiAoYXJ0aWNs ZXMuY29udGV4dF9rZXk9Y29udGV4dHMuY29udGV4dF9rZXkpCkpPSU4gbWF0dmlld184MjAz NCBPTiAoY29udGV4dHMuY29udGV4dF9rZXk9bWF0dmlld184MjAzNC5jb250ZXh0X2tleSkK V0hFUkUgY29udGV4dHMuY29udGV4dF9rZXkgSU4KICAgIChTRUxFQ1QgY29udGV4dF9rZXkg RlJPTSBhcnRpY2xlX3dvcmRzIEpPSU4gd29yZHMgdXNpbmcgKHdvcmRfa2V5KSBXSEVSRSB3 b3JkID0gJ2luc2lkZXInCiAgICAgSU5URVJTRUNUCiAgICAgU0VMRUNUIGNvbnRleHRfa2V5 IEZST00gYXJ0aWNsZV93b3JkcyBKT0lOIHdvcmRzIHVzaW5nICh3b3JkX2tleSkgV0hFUkUg d29yZCA9ICd0cmFkaW5nJykKQU5EIGNvbnRleHRzLmNvbnRleHRfa2V5IElOCiAgICAgICAg IChTRUxFQ1QgYS5jb250ZXh0X2tleSBGUk9NIHZpcnR1YWxfYW5jZXN0b3JzIGEgSk9JTiBi cF9jYXRlZ29yaWVzIE9OIChhLmFuY2VzdG9yX2tleSA9IGJwX2NhdGVnb3JpZXMuY29udGV4 dF9rZXkpCiAgICAgICAgIFdIRVJFIGxvd2VyKGJwX2NhdGVnb3JpZXMuY2F0ZWdvcnkpID0g J2xhdycpIEFORCBhcnRpY2xlcy5pbmRleGVkOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiBOZXN0ZWQgTG9vcCAgKGNvc3Q9MTI4NjEuOTEuLjYyMTUw LjIxIHJvd3M9MiB3aWR0aD00KSAoYWN0dWFsIHRpbWU9MTM2Ljc4OS4uMjAwNzQ0LjQ1NSBy b3dzPTU0NiBsb29wcz0xKQogICAtPiAgTmVzdGVkIExvb3AgSU4gSm9pbiAgKGNvc3Q9MTI4 NjEuOTEuLjYyMTQ4LjMyIHJvd3M9MSB3aWR0aD0xNikgKGFjdHVhbCB0aW1lPTEzNi43Nzcu LjIwMDczNy4wMDQgcm93cz01NDYgbG9vcHM9MSkKICAgICAgICAgSm9pbiBGaWx0ZXI6IChh LmNvbnRleHRfa2V5ID0gYXJ0aWNsZXMuY29udGV4dF9rZXkpCiAgICAgICAgIC0+ICBOZXN0 ZWQgTG9vcCAgKGNvc3Q9MTI4NjEuOTEuLjEyODc1LjQ4IHJvd3M9MiB3aWR0aD0xMikgKGFj dHVhbCB0aW1lPTU1LjY3NC4uMTE2LjQ0MyByb3dzPTEzMDYgbG9vcHM9MSkKICAgICAgICAg ICAgICAgLT4gIE5lc3RlZCBMb29wICAoY29zdD0xMjg2MS45MS4uMTI4NzEuNjggcm93cz0y IHdpZHRoPTgpIChhY3R1YWwgdGltZT01NS42NjIuLjk3Ljg2MyByb3dzPTEzMDYgbG9vcHM9 MSkKICAgICAgICAgICAgICAgICAgICAgLT4gIFN1YnF1ZXJ5IFNjYW4gIklOX3N1YnF1ZXJ5 IiAgKGNvc3Q9MTI4NjEuOTEuLjEyODYyLjE4IHJvd3M9NSB3aWR0aD00KSAoYWN0dWFsIHRp bWU9NTUuNjM5Li43NS43Nzcgcm93cz0xNDczIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0+ICBTZXRPcCBJbnRlcnNlY3QgIChjb3N0PTEyODYxLjkxLi4xMjg2Mi4x NCByb3dzPTUgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTU1LjYzOC4uNzMuNzI0IHJvd3M9MTQ3 MyBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydCAg KGNvc3Q9MTI4NjEuOTEuLjEyODYyLjAyIHJvd3M9NDYgd2lkdGg9NCkgKGFjdHVhbCB0aW1l PTU1LjYzMS4uNjIuMTQwIHJvd3M9MTc4OTIgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6ICIqU0VMRUNUKiAxIi5jb250ZXh0X2tl eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0IE1ldGhvZDog IHF1aWNrc29ydCAgTWVtb3J5OiAxNjA3a0IKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLT4gIEFwcGVuZCAgKGNvc3Q9MC4wMC4uMTI4NjAuNjMgcm93cz00NiB3 aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4wNDAuLjQyLjAyNiByb3dzPTE3ODkyIGxvb3BzPTEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTdWJx dWVyeSBTY2FuICIqU0VMRUNUKiAxIiAgKGNvc3Q9MC4wMC4uNjQzMC4zMiByb3dzPTIzIHdp ZHRoPTQpIChhY3R1YWwgdGltZT0wLjAzOS4uNi45MDkgcm93cz0zNTgzIGxvb3BzPTEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBO ZXN0ZWQgTG9vcCAgKGNvc3Q9MC4wMC4uNjQzMC4wOSByb3dzPTIzIHdpZHRoPTQpIChhY3R1 YWwgdGltZT0wLjAzOC4uNS4xMTAgcm93cz0zNTgzIGxvb3BzPTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIHdvcmRzX3dvcmQgb24gd29yZHMgIChjb3N0PTAuMDAuLjIuMjIgcm93cz0x IHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjAxOS4uMC4wMjAgcm93cz0xIGxvb3BzPTEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICgod29yZCk6OnRleHQgPSAnaW5zaWRlcic6OnRleHQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0+ICBJbmRleCBTY2FuIHVzaW5nIGFydGljbGVfd29yZHNfd2Mgb24gYXJ0aWNsZV93b3Jk cyAgKGNvc3Q9MC4wMC4uNjMyMy44MSByb3dzPTgzMjUgd2lkdGg9OCkgKGFjdHVhbCB0aW1l PTAuMDE1Li4zLjI0MyByb3dzPTM1ODMgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHB1YmxpYy5hcnRpY2xlX3dvcmRzLndvcmRfa2V5ID0gcHVibGljLndvcmRzLndvcmRfa2V5 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU3Vi cXVlcnkgU2NhbiAiKlNFTEVDVCogMiIgIChjb3N0PTAuMDAuLjY0MzAuMzIgcm93cz0yMyB3 aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4wMzYuLjI3LjE2NiByb3dzPTE0MzA5IGxvb3BzPTEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ ICBOZXN0ZWQgTG9vcCAgKGNvc3Q9MC4wMC4uNjQzMC4wOSByb3dzPTIzIHdpZHRoPTQpIChh Y3R1YWwgdGltZT0wLjAzNS4uMjAuMDM3IHJvd3M9MTQzMDkgbG9vcHM9MSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgd29yZHNfd29yZCBvbiB3b3JkcyAgKGNvc3Q9MC4wMC4uMi4yMiBy b3dzPTEgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTAuMDE0Li4wLjAxNSByb3dzPTEgbG9vcHM9 MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKCh3b3JkKTo6dGV4dCA9ICd0cmFkaW5nJzo6dGV4 dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYXJ0aWNsZV93b3Jkc193YyBvbiBhcnRpY2xl X3dvcmRzICAoY29zdD0wLjAwLi42MzIzLjgxIHJvd3M9ODMyNSB3aWR0aD04KSAoYWN0dWFs IHRpbWU9MC4wMTcuLjEyLjYxOCByb3dzPTE0MzA5IGxvb3BzPTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChwdWJsaWMuYXJ0aWNsZV93b3Jkcy53b3JkX2tleSA9IHB1YmxpYy53b3Jkcy53 b3JkX2tleSkKICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYXJ0 aWNsZV9rZXlfaWR4IG9uIGFydGljbGVzICAoY29zdD0wLjAwLi4xLjg5IHJvd3M9MSB3aWR0 aD00KSAoYWN0dWFsIHRpbWU9MC4wMTEuLjAuMDEyIHJvd3M9MSBsb29wcz0xNDczKQogICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYXJ0aWNsZXMuY29udGV4dF9r ZXkgPSAiSU5fc3VicXVlcnkiLmNvbnRleHRfa2V5KQogICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6IGFydGljbGVzLmluZGV4ZWQKICAgICAgICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgY29udGV4dHNfcGtleSBvbiBjb250ZXh0cyAgKGNvc3Q9MC4wMC4uMS44 OSByb3dzPTEgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTAuMDEwLi4wLjAxMSByb3dzPTEgbG9v cHM9MTMwNikKICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbnRleHRzLmNv bnRleHRfa2V5ID0gYXJ0aWNsZXMuY29udGV4dF9rZXkpCiAgICAgICAgIC0+ICBOZXN0ZWQg TG9vcCAgKGNvc3Q9MC4wMC4uNTk4NDguODMgcm93cz0xMTI0ODM0IHdpZHRoPTQpIChhY3R1 YWwgdGltZT0wLjAxMi4uMTQyLjQzNiByb3dzPTM5MTkzIGxvb3BzPTEzMDYpCiAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBicF9jYXRlZ29yaWVzICAoY29zdD0wLjAwLi4xMjMx LjQ5IHJvd3M9MTY2Njkgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTAuMDA2Li4xOS43MzAgcm93 cz0xNDU1MiBsb29wcz0xMzA2KQogICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChsb3dl cihjYXRlZ29yeSkgPSAnbGF3Jzo6dGV4dCkKICAgICAgICAgICAgICAgLT4gIEluZGV4IFNj YW4gdXNpbmcgdmlydHVhbF9hbmNlc3Rvcl9rZXlfaWR4IG9uIHZpcnR1YWxfYW5jZXN0b3Jz IGEgIChjb3N0PTAuMDAuLjIuNTcgcm93cz03NiB3aWR0aD04KSAoYWN0dWFsIHRpbWU9MC4w MDQuLjAuMDA2IHJvd3M9MyBsb29wcz0xOTAwNDMwNCkKICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGEuYW5jZXN0b3Jfa2V5ID0gYnBfY2F0ZWdvcmllcy5jb250ZXh0X2tl eSkKICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWF0dmlld184MjAzNF9jayBvbiBtYXR2aWV3 XzgyMDM0ICAoY29zdD0wLjAwLi4xLjg4IHJvd3M9MSB3aWR0aD00KSAoYWN0dWFsIHRpbWU9 MC4wMTAuLjAuMDExIHJvd3M9MSBsb29wcz01NDYpCiAgICAgICAgIEluZGV4IENvbmQ6ICht YXR2aWV3XzgyMDM0LmNvbnRleHRfa2V5ID0gYXJ0aWNsZXMuY29udGV4dF9rZXkpCiBUb3Rh bCBydW50aW1lOiAyMDA3NDUuMzcyIG1zCigzNiByb3dzKQoKCnByZXByb2R1Y3Rpb24tMjAw OTEyMTQ9IyBBTFRFUiBUQUJMRSBhcnRpY2xlX3dvcmRzIEFMVEVSIENPTFVNTiB3b3JkX2tl eSBTRVQgU1RBVElTVElDUyAxMDAwOwpBTFRFUiBUQUJMRQpwcmVwcm9kdWN0aW9uLTIwMDkx MjE0PSMgQU5BTFlaRSBWRVJCT1NFIGFydGljbGVfd29yZHM7CklORk86ICBhbmFseXppbmcg InB1YmxpYy5hcnRpY2xlX3dvcmRzIgpJTkZPOiAgImFydGljbGVfd29yZHMiOiBzY2FubmVk IDMwMDAwMCBvZiAxMzQyMzc0IHBhZ2VzLCBjb250YWluaW5nIDY0NTM0ODk5IGxpdmUgcm93 cyBhbmQgMzI2NDgzOSBkZWFkIHJvd3M7IDMwMDAwMCByb3dzIGluIHNhbXBsZSwgMjg4NzY2 NTY4IGVzdGltYXRlZCB0b3RhbCByb3dzCkFOQUxZWkUKCgpwcmVwcm9kdWN0aW9uLTIwMDkx MjE0PSMgRVhQTEFJTiBBTkFMWVpFClNFTEVDVCBjb250ZXh0cy5jb250ZXh0X2tleSBGUk9N IGNvbnRleHRzCkpPSU4gYXJ0aWNsZXMgT04gKGFydGljbGVzLmNvbnRleHRfa2V5PWNvbnRl eHRzLmNvbnRleHRfa2V5KQpKT0lOIG1hdHZpZXdfODIwMzQgT04gKGNvbnRleHRzLmNvbnRl eHRfa2V5PW1hdHZpZXdfODIwMzQuY29udGV4dF9rZXkpCldIRVJFIGNvbnRleHRzLmNvbnRl eHRfa2V5IElOCiAgICAoU0VMRUNUIGNvbnRleHRfa2V5IEZST00gYXJ0aWNsZV93b3JkcyBK T0lOIHdvcmRzIHVzaW5nICh3b3JkX2tleSkgV0hFUkUgd29yZCA9ICdpbnNpZGVyJwogICAg IElOVEVSU0VDVAogICAgIFNFTEVDVCBjb250ZXh0X2tleSBGUk9NIGFydGljbGVfd29yZHMg Sk9JTiB3b3JkcyB1c2luZyAod29yZF9rZXkpIFdIRVJFIHdvcmQgPSAndHJhZGluZycpCkFO RCBjb250ZXh0cy5jb250ZXh0X2tleSBJTgogICAgICAgICAoU0VMRUNUIGEuY29udGV4dF9r ZXkgRlJPTSB2aXJ0dWFsX2FuY2VzdG9ycyBhIEpPSU4gYnBfY2F0ZWdvcmllcyBPTiAoYS5h bmNlc3Rvcl9rZXkgPSBicF9jYXRlZ29yaWVzLmNvbnRleHRfa2V5KQogICAgICAgICBXSEVS RSBsb3dlcihicF9jYXRlZ29yaWVzLmNhdGVnb3J5KSA9ICdsYXcnKSBBTkQgYXJ0aWNsZXMu aW5kZXhlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog TmVzdGVkIExvb3AgIChjb3N0PTUxMjAuODEuLjU0NDA5LjExIHJvd3M9MiB3aWR0aD00KSAo YWN0dWFsIHRpbWU9MTM2LjY2Ni4uMjAwNTkwLjg1OCByb3dzPTU0NiBsb29wcz0xKQogICAt PiAgTmVzdGVkIExvb3AgSU4gSm9pbiAgKGNvc3Q9NTEyMC44MS4uNTQ0MDcuMjIgcm93cz0x IHdpZHRoPTE2KSAoYWN0dWFsIHRpbWU9MTM2LjY1NC4uMjAwNTgzLjU4OCByb3dzPTU0NiBs b29wcz0xKQogICAgICAgICBKb2luIEZpbHRlcjogKGEuY29udGV4dF9rZXkgPSBhcnRpY2xl cy5jb250ZXh0X2tleSkKICAgICAgICAgLT4gIE5lc3RlZCBMb29wICAoY29zdD01MTIwLjgx Li41MTM0LjM4IHJvd3M9MiB3aWR0aD0xMikgKGFjdHVhbCB0aW1lPTU1LjU3Ny4uMTE2LjM0 OSByb3dzPTEzMDYgbG9vcHM9MSkKICAgICAgICAgICAgICAgLT4gIE5lc3RlZCBMb29wICAo Y29zdD01MTIwLjgxLi41MTMwLjU4IHJvd3M9MiB3aWR0aD04KSAoYWN0dWFsIHRpbWU9NTUu NTYzLi45Ny40MjUgcm93cz0xMzA2IGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgIC0+ ICBTdWJxdWVyeSBTY2FuICJJTl9zdWJxdWVyeSIgIChjb3N0PTUxMjAuODEuLjUxMjEuMDgg cm93cz01IHdpZHRoPTQpIChhY3R1YWwgdGltZT01NS41MDAuLjc1LjYxNSByb3dzPTE0NzMg bG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNldE9wIEludGVyc2Vj dCAgKGNvc3Q9NTEyMC44MS4uNTEyMS4wNCByb3dzPTUgd2lkdGg9NCkgKGFjdHVhbCB0aW1l PTU1LjQ5OS4uNzMuNDY0IHJvd3M9MTQ3MyBsb29wcz0xKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtPiAgU29ydCAgKGNvc3Q9NTEyMC44MS4uNTEyMC45MiByb3dzPTQ2 IHdpZHRoPTQpIChhY3R1YWwgdGltZT01NS40OTEuLjYyLjA3OCByb3dzPTE3ODkyIGxvb3Bz PTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiAi KlNFTEVDVCogMSIuY29udGV4dF9rZXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU29ydCBNZXRob2Q6ICBxdWlja3NvcnQgIE1lbW9yeTogMTYwN2tCCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQgIChjb3N0PTAu MDAuLjUxMTkuNTQgcm93cz00NiB3aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4wNDEuLjQyLjIw MyByb3dzPTE3ODkyIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBTdWJxdWVyeSBTY2FuICIqU0VMRUNUKiAxIiAgKGNvc3Q9MC4w MC4uMjU1OS43NyByb3dzPTIzIHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjA0MC4uNy4wNDAg cm93cz0zNTgzIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcCAgKGNvc3Q9MC4wMC4uMjU1OS41NCBy b3dzPTIzIHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjAzOS4uNS4xODggcm93cz0zNTgzIGxv b3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHdvcmRzX3dvcmQgb24gd29yZHMgIChj b3N0PTAuMDAuLjIuMjIgcm93cz0xIHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjAxOC4uMC4w MTkgcm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgod29yZCk6OnRleHQg PSAnaW5zaWRlcic6OnRleHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFydGljbGVfd29y ZHNfd2Mgb24gYXJ0aWNsZV93b3JkcyAgKGNvc3Q9MC4wMC4uMjUxNi4xNyByb3dzPTMyOTIg d2lkdGg9OCkgKGFjdHVhbCB0aW1lPTAuMDE3Li4zLjI5OSByb3dzPTM1ODMgbG9vcHM9MSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKHB1YmxpYy5hcnRpY2xlX3dvcmRzLndvcmRfa2V5ID0g cHVibGljLndvcmRzLndvcmRfa2V5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiAiKlNFTEVDVCogMiIgIChjb3N0PTAu MDAuLjI1NTkuNzcgcm93cz0yMyB3aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4wMzYuLjI3LjI4 MiByb3dzPTE0MzA5IGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcCAgKGNvc3Q9MC4wMC4uMjU1OS41 NCByb3dzPTIzIHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjAzNS4uMTkuOTcyIHJvd3M9MTQz MDkgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgd29yZHNfd29yZCBvbiB3b3Jk cyAgKGNvc3Q9MC4wMC4uMi4yMiByb3dzPTEgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTAuMDE0 Li4wLjAxNiByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh3b3JkKTo6 dGV4dCA9ICd0cmFkaW5nJzo6dGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYXJ0aWNs ZV93b3Jkc193YyBvbiBhcnRpY2xlX3dvcmRzICAoY29zdD0wLjAwLi4yNTE2LjE3IHJvd3M9 MzI5MiB3aWR0aD04KSAoYWN0dWFsIHRpbWU9MC4wMTguLjEyLjU0NSByb3dzPTE0MzA5IGxv b3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChwdWJsaWMuYXJ0aWNsZV93b3Jkcy53b3Jk X2tleSA9IHB1YmxpYy53b3Jkcy53b3JkX2tleSkKICAgICAgICAgICAgICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgYXJ0aWNsZV9rZXlfaWR4IG9uIGFydGljbGVzICAoY29zdD0w LjAwLi4xLjg5IHJvd3M9MSB3aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4wMTEuLjAuMDEyIHJv d3M9MSBsb29wcz0xNDczKQogICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYXJ0aWNsZXMuY29udGV4dF9rZXkgPSAiSU5fc3VicXVlcnkiLmNvbnRleHRfa2V5KQog ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IGFydGljbGVzLmluZGV4ZWQKICAg ICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgY29udGV4dHNfcGtleSBvbiBjb250 ZXh0cyAgKGNvc3Q9MC4wMC4uMS44OSByb3dzPTEgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTAu MDA5Li4wLjAxMSByb3dzPTEgbG9vcHM9MTMwNikKICAgICAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGNvbnRleHRzLmNvbnRleHRfa2V5ID0gYXJ0aWNsZXMuY29udGV4dF9rZXkp CiAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcCAgKGNvc3Q9MC4wMC4uNTk4NDguODMgcm93cz0x MTI0ODM0IHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjAxMi4uMTQyLjI5NSByb3dzPTM5MTkz IGxvb3BzPTEzMDYpCiAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBicF9jYXRlZ29y aWVzICAoY29zdD0wLjAwLi4xMjMxLjQ5IHJvd3M9MTY2Njkgd2lkdGg9NCkgKGFjdHVhbCB0 aW1lPTAuMDA2Li4xOS43NDMgcm93cz0xNDU1MiBsb29wcz0xMzA2KQogICAgICAgICAgICAg ICAgICAgICBGaWx0ZXI6IChsb3dlcihjYXRlZ29yeSkgPSAnbGF3Jzo6dGV4dCkKICAgICAg ICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdmlydHVhbF9hbmNlc3Rvcl9rZXlfaWR4 IG9uIHZpcnR1YWxfYW5jZXN0b3JzIGEgIChjb3N0PTAuMDAuLjIuNTcgcm93cz03NiB3aWR0 aD04KSAoYWN0dWFsIHRpbWU9MC4wMDQuLjAuMDA2IHJvd3M9MyBsb29wcz0xOTAwNDMwNCkK ICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEuYW5jZXN0b3Jfa2V5ID0gYnBf Y2F0ZWdvcmllcy5jb250ZXh0X2tleSkKICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWF0dmll d184MjAzNF9jayBvbiBtYXR2aWV3XzgyMDM0ICAoY29zdD0wLjAwLi4xLjg4IHJvd3M9MSB3 aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4wMTAuLjAuMDEwIHJvd3M9MSBsb29wcz01NDYpCiAg ICAgICAgIEluZGV4IENvbmQ6IChtYXR2aWV3XzgyMDM0LmNvbnRleHRfa2V5ID0gYXJ0aWNs ZXMuY29udGV4dF9rZXkpCiBUb3RhbCBydW50aW1lOiAyMDA1OTEuNzUxIG1zCigzNiByb3dz KQoK --------------070505010608070002090403--