Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hsADe-0005gC-P0 for pgsql-performance@arkaria.postgresql.org; Mon, 29 Jul 2019 18:17:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hsADd-0001Co-HI for pgsql-performance@arkaria.postgresql.org; Mon, 29 Jul 2019 18:17:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hs8kC-0005qa-Dz for pgsql-performance@lists.postgresql.org; Mon, 29 Jul 2019 16:43:28 +0000 Received: from mail.index.de ([213.160.90.22]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hs8k9-0001E8-Pm for pgsql-performance@lists.postgresql.org; Mon, 29 Jul 2019 16:43:27 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.index.de (Postfix) with ESMTP id 69149446800 for ; Mon, 29 Jul 2019 16:43:24 +0000 (UTC) Received: from mail.index.de ([127.0.0.1]) by localhost (mail.index.de [127.0.0.1]) (amavisd-new, port 10024) with LMTP id NPK_Ocv6ExLq for ; Mon, 29 Jul 2019 16:43:24 +0000 (UTC) Received: from remote.index.de (unknown [217.199.72.165]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.index.de (Postfix) with ESMTPSA id E42414467FB for ; Mon, 29 Jul 2019 16:43:23 +0000 (UTC) Received: from invidia.index-gruppe.local (192.168.3.140) by acedia.index-gruppe.local (192.168.3.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1034.26; Mon, 29 Jul 2019 18:43:06 +0200 Received: from acedia.index-gruppe.local (192.168.3.121) by invidia.index-gruppe.local (192.168.3.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1034.26; Mon, 29 Jul 2019 18:43:06 +0200 Received: from acedia.index-gruppe.local ([fe80::ecd1:5d0a:a834:dd56]) by acedia.index-gruppe.local ([fe80::ecd1:5d0a:a834:dd56%5]) with mapi id 15.01.1034.033; Mon, 29 Jul 2019 18:43:05 +0200 From: Arne Roland To: "pgsql-performance@lists.postgresql.org" Subject: Partial join Thread-Topic: Partial join Thread-Index: AQHVRhDNZ8hUeRNKjUmj3sfzUQx80g== Date: Mon, 29 Jul 2019 16:43:05 +0000 Message-ID: <9dc03e949e9b4327a0d074da9ab44318@index.de> Accept-Language: en-US, de-DE Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [192.168.3.146] Content-Type: multipart/mixed; boundary="_005_9dc03e949e9b4327a0d074da9ab44318indexde_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --_005_9dc03e949e9b4327a0d074da9ab44318indexde_ Content-Type: multipart/alternative; boundary="_000_9dc03e949e9b4327a0d074da9ab44318indexde_" --_000_9dc03e949e9b4327a0d074da9ab44318indexde_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello, I attached one example of a partitioned table with multi column partition k= ey. I also attached the output. Disabling the hash_join is not really necessary, it just shows the more dra= stic result in the case of low work_mem. Comparing the first and the second query I was surprised to see that SET en= able_partitionwise_join could cause the costs to go up. Shouldn't the paths= of the first query be generated as well? The third query seems to have a different issue. That one is close to my or= iginal performance problem. It looks to me like the push down of the sl con= dition stops the optimizer considering a partial join. If so would it be sane to keep a copy of the original quals to make the par= tial join possible? Regards Arne --_000_9dc03e949e9b4327a0d074da9ab44318indexde_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hello,


I attached one example of a partitioned table with multi column partitio= n key. I also attached the output.

Disabling the hash_join is not really necessary, it just shows the more = drastic result in the case of low work_mem.


Comparing the first and the second query I was surprised to see that SET enable_partitionwise_join could cause the costs to go up. Shouldn't = the paths of the first query be generated as well?



The third query seems to have a different issue. That one is close to my= original performance problem. It looks to me like the push down of the sl = condition stops the optimizer considering a partial join.

If so would it be sane to keep a copy of the original quals to make the = partial join possible?


Regards

Arne

--_000_9dc03e949e9b4327a0d074da9ab44318indexde_-- --_005_9dc03e949e9b4327a0d074da9ab44318indexde_ Content-Type: application/sql; name="querys.sql" Content-Description: querys.sql Content-Disposition: attachment; filename="querys.sql"; size=2387; creation-date="Mon, 29 Jul 2019 16:26:14 GMT"; modification-date="Mon, 29 Jul 2019 16:26:14 GMT" Content-Transfer-Encoding: base64 Q1JFQVRFIFRBQkxFIHNnICgKaWQgYmlnaW50IE5PVCBOVUxMLApzY19mayBiaWdpbnQsCmdlb19p ZCBiaWdpbnQsCnNsIHNtYWxsaW50IE5PVCBOVUxMLAphIGRhdGUgTk9UIE5VTEwsCm8gYm9vbGVh biBOT1QgTlVMTAopClBBUlRJVElPTiBCWSBSQU5HRSAobywgc2wsIGEpOwoKQ1JFQVRFIFRBQkxF IHNnXzE5XzAxX2QgUEFSVElUSU9OIE9GIHNnIEZPUiBWQUxVRVMgRlJPTSAoZmFsc2UsICc1Jywg JzIwMTktMDEtMDEnKSBUTyAoZmFsc2UsICc1JywgJzIwMTktMDItMDEnKTsKQ1JFQVRFIFRBQkxF IHNnXzE5XzAyX2QgUEFSVElUSU9OIE9GIHNnIEZPUiBWQUxVRVMgRlJPTSAoZmFsc2UsICc1Jywg JzIwMTktMDItMDEnKSBUTyAoZmFsc2UsICc1JywgJzIwMTktMDMtMDEnKTsKCkNSRUFURSBUQUJM RSBzYyAoCmlkIGJpZ2ludCwKYSBkYXRlIE5PVCBOVUxMLApzbCBzbWFsbGludCBOT1QgTlVMTCwK byBib29sZWFuIE5PVCBOVUxMCikKUEFSVElUSU9OIEJZIFJBTkdFIChvLCBzbCwgYSk7CgpDUkVB VEUgVEFCTEUgc2NfMTlfMDFfZCBQQVJUSVRJT04gT0Ygc2MgRk9SIFZBTFVFUyBGUk9NIChmYWxz ZSwgJzUnLCAnMjAxOS0wMS0wMScpIFRPIChmYWxzZSwgJzUnLCAnMjAxOS0wMi0wMScpOwpDUkVB VEUgVEFCTEUgc2NfMTlfMDJfZCBQQVJUSVRJT04gT0Ygc2MgRk9SIFZBTFVFUyBGUk9NIChmYWxz ZSwgJzUnLCAnMjAxOS0wMi0wMScpIFRPIChmYWxzZSwgJzUnLCAnMjAxOS0wMy0wMScpOwoKSU5T RVJUIElOVE8gc2dfMTlfMDFfZChpZCwgc2NfZmssIGdlb19pZCwgc2wsIGEsIG8pClNFTEVDVCBu LCBuLCAwLCA1LCAnMjAxOS0wMS0wMScsIGZhbHNlCiAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwMCkgQVMgZyhuKTsKCklOU0VSVCBJTlRPIHNnXzE5XzAyX2QoaWQsIHNjX2ZrLCBnZW9faWQs IHNsLCBhLCBvKQpTRUxFQ1QgbiwgbiwgMCwgNSwgJzIwMTktMDItMDEnLCBmYWxzZQogIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIGcobik7CgpJTlNFUlQgSU5UTyBzY18xOV8wMV9k KGlkLCBhLCBzbCwgbykKU0VMRUNUIG4sICcyMDE5LTAxLTAxJywgNSwgZmFsc2UKICBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBnKG4pOwoKSU5TRVJUIElOVE8gc2NfMTlfMDJfZChp ZCwgYSwgc2wsIG8pClNFTEVDVCBuLCAnMjAxOS0wMi0wMScsIDUsIGZhbHNlCiAgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgZyhuKTsKCkFOQUxZWkUgc2dfMTlfMDFfZDsKQU5BTFla RSBzZ18xOV8wMl9kOwpBTkFMWVpFIHNjXzE5XzAxX2Q7CkFOQUxZWkUgc2NfMTlfMDJfZDsKCi0t Zmlyc3QKU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pvaW4gPSBmYWxzZTsKU0VUIGVuYWJsZV9w YXJ0aXRpb253aXNlX2FnZ3JlZ2F0ZSA9IGZhbHNlOwpTRVQgZW5hYmxlX2hhc2hqb2luID0gZmFs c2U7CkVYUExBSU4gKFZFUkJPU0UsIEFOQUxZWkUpClNFTEVDVCBDT1VOVCgqKQogIEZST00gc2MK IFdIRVJFIEVYSVNUUyAoCiAgICAgICBTRUxFQ1QgMQogICAgICAgICBGUk9NIHNnCiAgICAgICAg V0hFUkUgc2MuaWQgPSBzZy5zY19mawogICAgICAgICAgQU5EIHNjLmEgPSBzZy5hCiAgICAgICAg ICBBTkQgc2MubyA9IHNnLm8KICAgICAgICAgIEFORCBzYy5zbCA9IHNnLnNsCiAgICAgICApOwoK LS1zZWNvbmQKU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pvaW4gPSB0cnVlOwpTRVQgZW5hYmxl X3BhcnRpdGlvbndpc2VfYWdncmVnYXRlID0gdHJ1ZTsKLS1TRVQgZW5hYmxlX2hhc2hqb2luID0g ZmFsc2U7CkVYUExBSU4gKFZFUkJPU0UsIEFOQUxZWkUpClNFTEVDVCBDT1VOVCgqKQogIEZST00g c2MKIFdIRVJFIEVYSVNUUyAoCiAgICAgICBTRUxFQ1QgMQogICAgICAgICBGUk9NIHNnCiAgICAg ICAgV0hFUkUgc2MuaWQgPSBzZy5zY19mawogICAgICAgICAgQU5EIHNjLmEgPSBzZy5hCiAgICAg ICAgICBBTkQgc2MubyA9IHNnLm8KICAgICAgICAgIEFORCBzYy5zbCA9IHNnLnNsCiAgICAgICAp OwoKCi0tdGhpcmQKLS1TRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbiA9IHRydWU7Ci0tU0VU IGVuYWJsZV9wYXJ0aXRpb253aXNlX2FnZ3JlZ2F0ZSA9IHRydWU7Ci0tU0VUIGVuYWJsZV9oYXNo am9pbiA9IGZhbHNlOwpTRVQgZW5hYmxlX21lcmdlam9pbiA9IGZhbHNlOwpFWFBMQUlOIChWRVJC T1NFLCBBTkFMWVpFKQpTRUxFQ1QgQ09VTlQoKikKICBGUk9NIHNjCiBXSEVSRSBzbCA9IDUKIGFu ZCBFWElTVFMgKAogICAgICAgU0VMRUNUIDEKICAgICAgICAgRlJPTSBzZwogICAgICAgIFdIRVJF IHNjLmlkID0gc2cuc2NfZmsKICAgICAgICAgIEFORCBzYy5hID0gc2cuYQogICAgICAgICAgQU5E IHNjLm8gPSBzZy5vCiAgICAgICAgICBBTkQgc2Muc2wgPSBzZy5zbAogICAgICAgKQo= --_005_9dc03e949e9b4327a0d074da9ab44318indexde_ Content-Type: application/sql; name="explain_analyze.sql" Content-Description: explain_analyze.sql Content-Disposition: attachment; filename="explain_analyze.sql"; size=7846; creation-date="Mon, 29 Jul 2019 16:26:25 GMT"; modification-date="Mon, 29 Jul 2019 16:26:25 GMT" Content-Transfer-Encoding: base64 QWdncmVnYXRlICAoY29zdD0xODExOS42Mi4uMTgxMTkuNjMgcm93cz0xIHdpZHRoPTgpIChhY3R1 YWwgdGltZT01MTAuMDQwLi41MTAuMDQwIHJvd3M9MSBsb29wcz0xKQogIE91dHB1dDogY291bnQo KikKICAtPiAgTmVzdGVkIExvb3AgIChjb3N0PTY4LjAwLi4xODExOS4wMCByb3dzPTI1MCB3aWR0 aD0wKSAoYWN0dWFsIHRpbWU9MS43MDAuLjUwOS44NDggcm93cz0yMDAwIGxvb3BzPTEpCiAgICAg ICAgSm9pbiBGaWx0ZXI6ICgoc2NfMTlfMDFfZC5pZCA9IHNnXzE5XzAxX2Quc2NfZmspIEFORCAo c2NfMTlfMDFfZC5hID0gc2dfMTlfMDFfZC5hKSBBTkQgKHNjXzE5XzAxX2QubyA9IHNnXzE5XzAx X2QubykgQU5EIChzY18xOV8wMV9kLnNsID0gc2dfMTlfMDFfZC5zbCkpCiAgICAgICAgUm93cyBS ZW1vdmVkIGJ5IEpvaW4gRmlsdGVyOiAzOTk4MDAwCiAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUg IChjb3N0PTY4LjAwLi43Mi4wMCByb3dzPTQwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTEuMTUz Li4yLjcwMCByb3dzPTIwMDAgbG9vcHM9MSkKICAgICAgICAgICAgICBPdXRwdXQ6IHNnXzE5XzAx X2Quc2NfZmssIHNnXzE5XzAxX2QuYSwgc2dfMTlfMDFfZC5vLCBzZ18xOV8wMV9kLnNsCiAgICAg ICAgICAgICAgR3JvdXAgS2V5OiBzZ18xOV8wMV9kLnNjX2ZrLCBzZ18xOV8wMV9kLmEsIHNnXzE5 XzAxX2Qubywgc2dfMTlfMDFfZC5zbAogICAgICAgICAgICAgIC0+ICBBcHBlbmQgIChjb3N0PTAu MDAuLjQ4LjAwIHJvd3M9MjAwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTAuMDEzLi4wLjUwOCBy b3dzPTIwMDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gc2df MTlfMDFfZCAgKGNvc3Q9MC4wMC4uMTkuMDAgcm93cz0xMDAwIHdpZHRoPTE1KSAoYWN0dWFsIHRp bWU9MC4wMTMuLjAuMTkwIHJvd3M9MTAwMCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogc2dfMTlfMDFfZC5zY19maywgc2dfMTlfMDFfZC5hLCBzZ18xOV8wMV9kLm8s IHNnXzE5XzAxX2Quc2wKICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gc2dfMTlf MDJfZCAgKGNvc3Q9MC4wMC4uMTkuMDAgcm93cz0xMDAwIHdpZHRoPTE1KSAoYWN0dWFsIHRpbWU9 MC4wMDguLjAuMTc0IHJvd3M9MTAwMCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAg IE91dHB1dDogc2dfMTlfMDJfZC5zY19maywgc2dfMTlfMDJfZC5hLCBzZ18xOV8wMl9kLm8sIHNn XzE5XzAyX2Quc2wKICAgICAgICAtPiAgTWF0ZXJpYWxpemUgIChjb3N0PTAuMDAuLjUyLjAwIHJv d3M9MjAwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTAuMDAwLi4wLjEwMSByb3dzPTIwMDAgbG9v cHM9MjAwMCkKICAgICAgICAgICAgICBPdXRwdXQ6IHNjXzE5XzAxX2QuaWQsIHNjXzE5XzAxX2Qu YSwgc2NfMTlfMDFfZC5vLCBzY18xOV8wMV9kLnNsCiAgICAgICAgICAgICAgLT4gIEFwcGVuZCAg KGNvc3Q9MC4wMC4uNDIuMDAgcm93cz0yMDAwIHdpZHRoPTE1KSAoYWN0dWFsIHRpbWU9MC4wMDku LjAuNDc3IHJvd3M9MjAwMCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBzY18xOV8wMV9kICAoY29zdD0wLjAwLi4xNi4wMCByb3dzPTEwMDAgd2lkdGg9MTUpIChh Y3R1YWwgdGltZT0wLjAwOC4uMC4xNjUgcm93cz0xMDAwIGxvb3BzPTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiBzY18xOV8wMV9kLmlkLCBzY18xOV8wMV9kLmEsIHNjXzE5XzAx X2Qubywgc2NfMTlfMDFfZC5zbAogICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBz Y18xOV8wMl9kICAoY29zdD0wLjAwLi4xNi4wMCByb3dzPTEwMDAgd2lkdGg9MTUpIChhY3R1YWwg dGltZT0wLjAwOC4uMC4xNjcgcm93cz0xMDAwIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgT3V0cHV0OiBzY18xOV8wMl9kLmlkLCBzY18xOV8wMl9kLmEsIHNjXzE5XzAyX2Qubywg c2NfMTlfMDJfZC5zbApQbGFubmluZyBUaW1lOiAwLjIwOCBtcwpFeGVjdXRpb24gVGltZTogNTEw LjEzNSBtcwoKRmluYWxpemUgQWdncmVnYXRlICAoY29zdD0yMzU0MC40Mi4uMjM1NDAuNDMgcm93 cz0xIHdpZHRoPTgpIChhY3R1YWwgdGltZT0xNDUuOTYxLi4xNDUuOTYxIHJvd3M9MSBsb29wcz0x KQogIE91dHB1dDogY291bnQoKikKICAtPiAgR2F0aGVyICAoY29zdD0yMzU0MC4wMC4uMjM1NDAu NDIgcm93cz00IHdpZHRoPTgpIChhY3R1YWwgdGltZT0xMzguMTI1Li4xNDcuNzczIHJvd3M9MiBs b29wcz0xKQogICAgICAgIE91dHB1dDogKFBBUlRJQUwgY291bnQoKikpCiAgICAgICAgV29ya2Vy cyBQbGFubmVkOiAyCiAgICAgICAgV29ya2VycyBMYXVuY2hlZDogMgogICAgICAgIC0+ICBQYXJh bGxlbCBBcHBlbmQgIChjb3N0PTIyNTQwLjAwLi4yMjU0MC4wMSByb3dzPTIgd2lkdGg9OCkgKGFj dHVhbCB0aW1lPTg2LjQzNS4uODYuNDM1IHJvd3M9MSBsb29wcz0zKQogICAgICAgICAgICAgIFdv cmtlciAwOiBhY3R1YWwgdGltZT0xMjQuNTIzLi4xMjQuNTI0IHJvd3M9MSBsb29wcz0xCiAgICAg ICAgICAgICAgV29ya2VyIDE6IGFjdHVhbCB0aW1lPTAuMDAxLi4wLjAwMSByb3dzPTAgbG9vcHM9 MQogICAgICAgICAgICAgIC0+ICBQYXJ0aWFsIEFnZ3JlZ2F0ZSAgKGNvc3Q9MjI1NDAuMDAuLjIy NTQwLjAxIHJvd3M9MSB3aWR0aD04KSAoYWN0dWFsIHRpbWU9MTI0LjUyMi4uMTI0LjUyMiByb3dz PTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IFBBUlRJQUwgY291bnQoKikK ICAgICAgICAgICAgICAgICAgICBXb3JrZXIgMDogYWN0dWFsIHRpbWU9MTI0LjUyMi4uMTI0LjUy MiByb3dzPTEgbG9vcHM9MQogICAgICAgICAgICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcCBTZW1p IEpvaW4gIChjb3N0PTAuMDAuLjIyNTM3LjUwIHJvd3M9MTAwMCB3aWR0aD0wKSAoYWN0dWFsIHRp bWU9MC4wNDUuLjEyNC40NDUgcm93cz0xMDAwIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgSm9pbiBGaWx0ZXI6ICgoc2NfMTlfMDFfZC5pZCA9IHNnXzE5XzAxX2Quc2NfZmspIEFO RCAoc2NfMTlfMDFfZC5hID0gc2dfMTlfMDFfZC5hKSBBTkQgKHNjXzE5XzAxX2QubyA9IHNnXzE5 XzAxX2QubykgQU5EIChzY18xOV8wMV9kLnNsID0gc2dfMTlfMDFfZC5zbCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEpvaW4gRmlsdGVyOiA0OTk1MDAKICAgICAg ICAgICAgICAgICAgICAgICAgICBXb3JrZXIgMDogYWN0dWFsIHRpbWU9MC4wNDUuLjEyNC40NDUg cm93cz0xMDAwIGxvb3BzPTEKICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gc2NfMTlfMDFfZCAgKGNvc3Q9MC4wMC4uMTYuMDAgcm93cz0xMDAwIHdpZHRoPTE1KSAoYWN0 dWFsIHRpbWU9MC4wMjUuLjAuMjI2IHJvd3M9MTAwMCBsb29wcz0xKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogc2NfMTlfMDFfZC5pZCwgc2NfMTlfMDFfZC5hLCBzY18x OV8wMV9kLm8sIHNjXzE5XzAxX2Quc2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX b3JrZXIgMDogYWN0dWFsIHRpbWU9MC4wMjUuLjAuMjI2IHJvd3M9MTAwMCBsb29wcz0xCiAgICAg ICAgICAgICAgICAgICAgICAgICAgLT4gIE1hdGVyaWFsaXplICAoY29zdD0wLjAwLi4yNC4wMCBy b3dzPTEwMDAgd2lkdGg9MTUpIChhY3R1YWwgdGltZT0wLjAwMC4uMC4wNTcgcm93cz01MDAgbG9v cHM9MTAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHNnXzE5XzAx X2Quc2NfZmssIHNnXzE5XzAxX2QuYSwgc2dfMTlfMDFfZC5vLCBzZ18xOV8wMV9kLnNsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV29ya2VyIDA6IGFjdHVhbCB0aW1lPTAuMDAwLi4w LjA1NyByb3dzPTUwMCBsb29wcz0xMDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHNnXzE5XzAxX2QgIChjb3N0PTAuMDAuLjE5LjAwIHJvd3M9MTAwMCB3 aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTAuMDEyLi4wLjI0MCByb3dzPTEwMDAgbG9vcHM9MSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHNnXzE5XzAxX2Quc2Nf ZmssIHNnXzE5XzAxX2QuYSwgc2dfMTlfMDFfZC5vLCBzZ18xOV8wMV9kLnNsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV29ya2VyIDA6IGFjdHVhbCB0aW1lPTAuMDEyLi4w LjI0MCByb3dzPTEwMDAgbG9vcHM9MQogICAgICAgICAgICAgIC0+ICBQYXJ0aWFsIEFnZ3JlZ2F0 ZSAgKGNvc3Q9MjI1NDAuMDAuLjIyNTQwLjAxIHJvd3M9MSB3aWR0aD04KSAoYWN0dWFsIHRpbWU9 MTM0Ljc3OS4uMTM0Ljc3OSByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICBPdXRw dXQ6IFBBUlRJQUwgY291bnQoKikKICAgICAgICAgICAgICAgICAgICAtPiAgTmVzdGVkIExvb3Ag U2VtaSBKb2luICAoY29zdD0wLjAwLi4yMjUzNy41MCByb3dzPTEwMDAgd2lkdGg9MCkgKGFjdHVh bCB0aW1lPTAuMDM4Li4xMzQuNjg1IHJvd3M9MTAwMCBsb29wcz0xKQogICAgICAgICAgICAgICAg ICAgICAgICAgIEpvaW4gRmlsdGVyOiAoKHNjXzE5XzAyX2QuaWQgPSBzZ18xOV8wMl9kLnNjX2Zr KSBBTkQgKHNjXzE5XzAyX2QuYSA9IHNnXzE5XzAyX2QuYSkgQU5EIChzY18xOV8wMl9kLm8gPSBz Z18xOV8wMl9kLm8pIEFORCAoc2NfMTlfMDJfZC5zbCA9IHNnXzE5XzAyX2Quc2wpKQogICAgICAg ICAgICAgICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBKb2luIEZpbHRlcjogNDk5NTAwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHNjXzE5XzAyX2QgIChjb3N0 PTAuMDAuLjE2LjAwIHJvd3M9MTAwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTAuMDIwLi4wLjIy MSByb3dzPTEwMDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRw dXQ6IHNjXzE5XzAyX2QuaWQsIHNjXzE5XzAyX2QuYSwgc2NfMTlfMDJfZC5vLCBzY18xOV8wMl9k LnNsCiAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIE1hdGVyaWFsaXplICAoY29zdD0wLjAw Li4yNC4wMCByb3dzPTEwMDAgd2lkdGg9MTUpIChhY3R1YWwgdGltZT0wLjAwMC4uMC4wNDcgcm93 cz01MDAgbG9vcHM9MTAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHNnXzE5XzAyX2Quc2NfZmssIHNnXzE5XzAyX2QuYSwgc2dfMTlfMDJfZC5vLCBzZ18xOV8wMl9k LnNsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHNnXzE5 XzAyX2QgIChjb3N0PTAuMDAuLjE5LjAwIHJvd3M9MTAwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1l PTAuMDExLi4wLjI2NiByb3dzPTEwMDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IHNnXzE5XzAyX2Quc2NfZmssIHNnXzE5XzAyX2QuYSwgc2df MTlfMDJfZC5vLCBzZ18xOV8wMl9kLnNsClBsYW5uaW5nIFRpbWU6IDAuMjI5IG1zCkV4ZWN1dGlv biBUaW1lOiAxNDcuODMzIG1zCgpBZ2dyZWdhdGUgIChjb3N0PTE2MTMwLjI1Li4xNjEzMC4yNiBy b3dzPTEgd2lkdGg9OCkgKGFjdHVhbCB0aW1lPTQ5NC41MDAuLjQ5NC41MDAgcm93cz0xIGxvb3Bz PTEpCiAgT3V0cHV0OiBjb3VudCgqKQogIC0+ICBOZXN0ZWQgTG9vcCAgKGNvc3Q9NzMuMDAuLjE2 MTI5LjAwIHJvd3M9NTAwIHdpZHRoPTApIChhY3R1YWwgdGltZT00LjMwNC4uNDk0LjMzMiByb3dz PTIwMDAgbG9vcHM9MSkKICAgICAgICBKb2luIEZpbHRlcjogKChzY18xOV8wMV9kLmlkID0gc2df MTlfMDFfZC5zY19maykgQU5EIChzY18xOV8wMV9kLmEgPSBzZ18xOV8wMV9kLmEpIEFORCAoc2Nf MTlfMDFfZC5vID0gc2dfMTlfMDFfZC5vKSkKICAgICAgICBSb3dzIFJlbW92ZWQgYnkgSm9pbiBG aWx0ZXI6IDM5OTgwMDAKICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZSAgKGNvc3Q9NzMuMDAuLjc3 LjAwIHJvd3M9NDAwIHdpZHRoPTE1KSAoYWN0dWFsIHRpbWU9My41MDMuLjUuMTg3IHJvd3M9MjAw MCBsb29wcz0xKQogICAgICAgICAgICAgIE91dHB1dDogc2dfMTlfMDFfZC5zY19maywgc2dfMTlf MDFfZC5hLCBzZ18xOV8wMV9kLm8sIHNnXzE5XzAxX2Quc2wKICAgICAgICAgICAgICBHcm91cCBL ZXk6IHNnXzE5XzAxX2Quc2NfZmssIHNnXzE5XzAxX2QuYSwgc2dfMTlfMDFfZC5vLCBzZ18xOV8w MV9kLnNsCiAgICAgICAgICAgICAgLT4gIEFwcGVuZCAgKGNvc3Q9MC4wMC4uNTMuMDAgcm93cz0y MDAwIHdpZHRoPTE1KSAoYWN0dWFsIHRpbWU9MC4wMzIuLjEuNDc1IHJvd3M9MjAwMCBsb29wcz0x KQogICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzZ18xOV8wMV9kICAoY29zdD0w LjAwLi4yMS41MCByb3dzPTEwMDAgd2lkdGg9MTUpIChhY3R1YWwgdGltZT0wLjAzMC4uMC41NjIg cm93cz0xMDAwIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBzZ18x OV8wMV9kLnNjX2ZrLCBzZ18xOV8wMV9kLmEsIHNnXzE5XzAxX2Qubywgc2dfMTlfMDFfZC5zbAog ICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKHNnXzE5XzAxX2Quc2wgPSA1KQogICAg ICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzZ18xOV8wMl9kICAoY29zdD0wLjAwLi4y MS41MCByb3dzPTEwMDAgd2lkdGg9MTUpIChhY3R1YWwgdGltZT0wLjAzMS4uMC41NTMgcm93cz0x MDAwIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBzZ18xOV8wMl9k LnNjX2ZrLCBzZ18xOV8wMl9kLmEsIHNnXzE5XzAyX2Qubywgc2dfMTlfMDJfZC5zbAogICAgICAg ICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKHNnXzE5XzAyX2Quc2wgPSA1KQogICAgICAgIC0+ ICBNYXRlcmlhbGl6ZSAgKGNvc3Q9MC4wMC4uNTcuMDAgcm93cz0yMDAwIHdpZHRoPTE1KSAoYWN0 dWFsIHRpbWU9MC4wMDAuLjAuMDk5IHJvd3M9MjAwMCBsb29wcz0yMDAwKQogICAgICAgICAgICAg IE91dHB1dDogc2NfMTlfMDFfZC5pZCwgc2NfMTlfMDFfZC5hLCBzY18xOV8wMV9kLm8sIHNjXzE5 XzAxX2Quc2wKICAgICAgICAgICAgICAtPiAgQXBwZW5kICAoY29zdD0wLjAwLi40Ny4wMCByb3dz PTIwMDAgd2lkdGg9MTUpIChhY3R1YWwgdGltZT0wLjAzMC4uMC43MTkgcm93cz0yMDAwIGxvb3Bz PTEpCiAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHNjXzE5XzAxX2QgIChjb3N0 PTAuMDAuLjE4LjUwIHJvd3M9MTAwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTAuMDI5Li4wLjI3 MiByb3dzPTEwMDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHNj XzE5XzAxX2QuaWQsIHNjXzE5XzAxX2QuYSwgc2NfMTlfMDFfZC5vLCBzY18xOV8wMV9kLnNsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoc2NfMTlfMDFfZC5zbCA9IDUpCiAgICAg ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHNjXzE5XzAyX2QgIChjb3N0PTAuMDAuLjE4 LjUwIHJvd3M9MTAwMCB3aWR0aD0xNSkgKGFjdHVhbCB0aW1lPTAuMDE0Li4wLjIzMSByb3dzPTEw MDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHNjXzE5XzAyX2Qu aWQsIHNjXzE5XzAyX2QuYSwgc2NfMTlfMDJfZC5vLCBzY18xOV8wMl9kLnNsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgRmlsdGVyOiAoc2NfMTlfMDJfZC5zbCA9IDUpClBsYW5uaW5nIFRpbWU6 IDEuMjkwIG1zCkV4ZWN1dGlvbiBUaW1lOiA0OTQuNzkzIG1zCg== --_005_9dc03e949e9b4327a0d074da9ab44318indexde_--