X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 42011D1B184 for ; Mon, 2 Aug 2004 16:00:44 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 61759-10 for ; Mon, 2 Aug 2004 19:00:40 +0000 (GMT) Received: from mail.sells.com (mail.sells.com [204.107.136.10]) by svr1.postgresql.org (Postfix) with ESMTP id 7B547D1B1EC for ; Mon, 2 Aug 2004 16:00:37 -0300 (ADT) Received: from [192.168.5.55] (192.168.5.55) by mail.sells.com with ESMTP (Eudora Internet Mail Server 3.2.5) for ; Mon, 2 Aug 2004 14:00:37 -0500 Mime-Version: 1.0 X-Sender: aspeitia@mail.int.sells.com Message-Id: Date: Mon, 2 Aug 2004 14:00:36 -0500 To: pgsql-sql@postgresql.org From: Ray Aspeitia Subject: Query execution differences Content-Type: multipart/mixed; boundary="============_-1120649259==_============" X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.1 tagged_above=0.0 required=5.0 tests=MIME_SUSPECT_NAME X-Spam-Level: X-Archive-Number: 200408/15 X-Sequence-Number: 18512 --============_-1120649259==_============ Content-Type: text/plain; charset="us-ascii" ; format="flowed" Hello, I am running into some runtime differences that do not seem to make sense and would like some help interpreting the EXPLAIN ANALYZE output. I have run 2 identical queries, one for each company. Company 1 returns 628 records in a time of 674ms and Company 2 returns 73 records in a time of 4051ms. Because of the table structure it is possible that Company 2 could have more rows in specific queries but not at anywhere near the records currently in the system. I am including/attaching the explain analyze output for both companies, it's kind of wide so I hope the email servers don't munge the pasted version. Some info on what each section does would help or if someone knows of a reference I could check out would work too. I checked the Docs on explain but did not see anything that helped me out. Thanks. Ray A. Sort (cost=2323.82..2323.91 rows=35 width=78) (actual time=650.345..650.775 rows=628 loops=1) Sort Key: oa.date_created -> Hash Left Join (cost=2304.35..2322.92 rows=35 width=78) (actual time=609.815..646.398 rows=628 loops=1) Hash Cond: ("outer".order_number = "inner".order_number) -> Merge Left Join (cost=2141.36..2159.22 rows=35 width=66) (actual time=568.392..595.386 rows=628 loops=1) Merge Cond: ("outer".order_number = "inner".order_number) -> Merge Left Join (cost=1920.33..1927.06 rows=35 width=58) (actual time=489.753..504.345 rows=628 loops=1) Merge Cond: ("outer".order_number = "inner".order_number) -> Sort (cost=1490.02..1490.11 rows=35 width=50) (actual time=339.998..340.466 rows=628 loops=1) Sort Key: oa.order_number -> Nested Loop (cost=1320.09..1489.13 rows=35 width=50) (actual time=271.391..332.113 rows=628 loops=1) -> Merge Join (cost=1320.09..1335.74 rows=39 width=44) (actual time=270.675..300.962 rows=628 loops=1) Merge Cond: ("outer"."?column4?" = "inner"."?column8?") -> Sort (cost=873.62..880.80 rows=2874 width=18) (actual time=178.135..180.123 rows=2714 loops=1) Sort Key: (ci.storeno)::text -> Seq Scan on customer_information ci (cost=0.00..708.52 rows=2874 width=18) (actual time=0.264..119.093 rows=2781 loops=1) Filter: ('deere'::text = (company_name)::text) -> Sort (cost=446.47..446.91 rows=177 width=51) (actual time=92.411..92.970 rows=628 loops=1) Sort Key: (oa.storeno)::text -> Seq Scan on order_admin oa (cost=0.00..439.86 rows=177 width=51) (actual time=2.634..77.551 rows=628 loops=1) Filter: (((order_status)::text = 'completed'::text) AND ((company_name)::text = 'deere'::text) AND ((group_code)::text = '2005'::text)) -> Index Scan using order_address_pkey on order_address oad (cost=0.00..3.92 rows=1 width=10) (actual time=0.029..0.033 rows=1 loops=628) Index Cond: ("outer".order_number = oad.order_number) -> Sort (cost=430.30..433.56 rows=1302 width=12) (actual time=144.569..146.378 rows=2436 loops=1) Sort Key: impn.order_number -> Subquery Scan impn (cost=346.67..362.95 rows=1302 width=12) (actual time=109.041..129.276 rows=2436 loops=1) -> HashAggregate (cost=346.67..349.93 rows=1302 width=8) (actual time=109.025..119.439 rows=2436 loops=1) -> Hash Join (cost=17.98..340.16 rows=1302 width=8) (actual time=24.299..92.981 rows=2644 loops=1) Hash Cond: ("outer".item_id = "inner".item_id) -> Seq Scan on order_items oi (cost=0.00..279.15 rows=6002 width=8) (actual time=0.203..64.595 rows=5902 loops=1) Filter: (has_imprint = true) -> Hash (cost=17.89..17.89 rows=36 width=12) (actual time=2.991..2.991 rows=0 loops=1) -> Hash Join (cost=14.07..17.89 rows=36 width=12) (actual time=2.522..2.862 rows=36 loops=1) Hash Cond: ("outer".item_id = "inner".item_id) -> Seq Scan on items_imprint ii (cost=0.00..1.36 rows=36 width=8) (actual time=0.084..0.178 rows=36 loops=1) -> Hash (cost=13.66..13.66 rows=166 width=4) (actual time=2.319..2.319 rows=0 loops=1) -> Seq Scan on items i (cost=0.00..13.66 rows=166 width=4) (actual time=0.150..1.814 rows=166 loops=1) -> Sort (cost=221.04..226.52 rows=2192 width=12) (actual time=73.412..75.043 rows=2273 loops=1) Sort Key: impv.order_number -> Subquery Scan impv (cost=72.00..99.40 rows=2192 width=12) (actual time=28.835..47.994 rows=2273 loops=1) -> HashAggregate (cost=72.00..77.48 rows=2192 width=8) (actual time=28.822..38.805 rows=2273 loops=1) -> Seq Scan on imprint_bridge ib (cost=0.00..60.29 rows=2343 width=8) (actual time=0.178..12.879 rows=2344 loops=1) Filter: (imprint_verified = true) -> Hash (cost=162.85..162.85 rows=55 width=16) (actual time=41.242..41.242 rows=0 loops=1) -> Subquery Scan un (cost=162.03..162.85 rows=55 width=16) (actual time=40.045..40.882 rows=91 loops=1) -> HashAggregate (cost=162.03..162.30 rows=55 width=12) (actual time=40.027..40.490 rows=91 loops=1) -> Seq Scan on customer_relations cr (cost=0.00..161.31 rows=95 width=12) (actual time=0.307..38.249 rows=111 loops=1) Filter: ((order_number IS NOT NULL) AND ((status)::text <> 'resolved'::text)) Total runtime: 674.458 ms Sort (cost=996.26..996.27 rows=1 width=78) (actual time=4027.483..4027.535 rows=73 loops=1) Sort Key: oa.date_created -> Nested Loop Left Join (cost=580.70..996.25 rows=1 width=78) (actual time=244.610..4025.749 rows=73 loops=1) Join Filter: ("outer".order_number = "inner".order_number) -> Nested Loop Left Join (cost=418.67..832.71 rows=1 width=66) (actual time=211.388..3911.800 rows=73 loops=1) Join Filter: ("outer".order_number = "inner".order_number) -> Nested Loop Left Join (cost=346.67..705.91 rows=1 width=58) (actual time=153.052..2093.386 rows=73 loops=1) Join Filter: ("outer".order_number = "inner".order_number) -> Nested Loop (cost=0.00..326.69 rows=1 width=50) (actual time=22.476..102.703 rows=73 loops=1) -> Nested Loop (cost=0.00..322.76 rows=1 width=44) (actual time=21.600..91.037 rows=73 loops=1) -> Index Scan using idx_order_admin_company_name on order_admin oa (cost=0.00..292.82 rows=5 width=51) (actual time=12.154..63.989 rows=73 loops=1) Index Cond: ((company_name)::text = 'harley'::text) Filter: (((order_status)::text = 'completed'::text) AND ((group_code)::text = '2005'::text)) -> Index Scan using customer_information_pkey on customer_information ci (cost=0.00..5.97 rows=1 width=18) (actual time=0.314..0.320 rows=1 loops=73) Index Cond: (((ci.storeno)::text = ("outer".storeno)::text) AND ('harley'::text = (ci.company_name)::text)) -> Index Scan using order_address_pkey on order_address oad (cost=0.00..3.92 rows=1 width=10) (actual time=0.105..0.127 rows=1 loops=73) Index Cond: ("outer".order_number = oad.order_number) -> Subquery Scan impn (cost=346.67..362.95 rows=1302 width=12) (actual time=1.792..21.237 rows=2436 loops=73) -> HashAggregate (cost=346.67..349.93 rows=1302 width=8) (actual time=1.788..12.441 rows=2436 loops=73) -> Hash Join (cost=17.98..340.16 rows=1302 width=8) (actual time=38.136..114.149 rows=2644 loops=1) Hash Cond: ("outer".item_id = "inner".item_id) -> Seq Scan on order_items oi (cost=0.00..279.15 rows=6002 width=8) (actual time=0.236..75.019 rows=5902 loops=1) Filter: (has_imprint = true) -> Hash (cost=17.89..17.89 rows=36 width=12) (actual time=13.865..13.865 rows=0 loops=1) -> Hash Join (cost=14.07..17.89 rows=36 width=12) (actual time=13.384..13.741 rows=36 loops=1) Hash Cond: ("outer".item_id = "inner".item_id) -> Seq Scan on items_imprint ii (cost=0.00..1.36 rows=36 width=8) (actual time=9.804..9.902 rows=36 loops=1) -> Hash (cost=13.66..13.66 rows=166 width=4) (actual time=3.442..3.442 rows=0 loops=1) -> Seq Scan on items i (cost=0.00..13.66 rows=166 width=4) (actual time=0.173..2.922 rows=166 loops=1) -> Subquery Scan impv (cost=72.00..99.40 rows=2192 width=12) (actual time=0.498..19.018 rows=2273 loops=73) -> HashAggregate (cost=72.00..77.48 rows=2192 width=8) (actual time=0.493..10.664 rows=2273 loops=73) -> Seq Scan on imprint_bridge ib (cost=0.00..60.29 rows=2343 width=8) (actual time=6.099..20.142 rows=2344 loops=1) Filter: (imprint_verified = true) -> Subquery Scan un (cost=162.03..162.85 rows=55 width=16) (actual time=0.457..1.292 rows=91 loops=73) -> HashAggregate (cost=162.03..162.30 rows=55 width=12) (actual time=0.451..0.926 rows=91 loops=73) -> Seq Scan on customer_relations cr (cost=0.00..161.31 rows=95 width=12) (actual time=0.295..30.163 rows=111 loops=1) Filter: ((order_number IS NOT NULL) AND ((status)::text <> 'resolved'::text)) Total runtime: 4051.941 ms -- --============_-1120649259==_============ Content-Id: Content-Type: multipart/appledouble; boundary="============_-1120649259==_D============" --============_-1120649259==_D============ Content-Transfer-Encoding: base64 Content-Type: application/applefile; name="%explain_analyze.txt" Content-Disposition: attachment; filename="%explain_analyze.txt" ; modification-date="Mon, 2 Aug 2004 13:59:27 -0500" AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAPgAAABMAAAAJAAAA UQAAACAAAAAIAAAAcQAAABBleHBsYWluX2FuYWx5emUudHh0VEVYVFIqY2gA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoQU/CKEFP0ttDAAIoQWG --============_-1120649259==_D============ Content-Type: application/octet-stream; name="explain_analyze.txt" Content-Disposition: attachment; filename="explain_analyze.txt" Content-Transfer-Encoding: base64 U29ydCAgKGNvc3Q9MjMyMy44Mi4uMjMyMy45MSByb3dzPTM1IHdpZHRoPTc4 KSAoYWN0dWFsIHRpbWU9NjUwLjM0NS4uNjUwLjc3NSByb3dzPTYyOCBsb29w cz0xKQogIFNvcnQgS2V5OiBvYS5kYXRlX2NyZWF0ZWQKICAtPiAgSGFzaCBM ZWZ0IEpvaW4gIChjb3N0PTIzMDQuMzUuLjIzMjIuOTIgcm93cz0zNSB3aWR0 aD03OCkgKGFjdHVhbCB0aW1lPTYwOS44MTUuLjY0Ni4zOTggcm93cz02Mjgg bG9vcHM9MSkKICAgICAgICBIYXNoIENvbmQ6ICgib3V0ZXIiLm9yZGVyX251 bWJlciA9ICJpbm5lciIub3JkZXJfbnVtYmVyKQogICAgICAgIC0+ICBNZXJn ZSBMZWZ0IEpvaW4gIChjb3N0PTIxNDEuMzYuLjIxNTkuMjIgcm93cz0zNSB3 aWR0aD02NikgKGFjdHVhbCB0aW1lPTU2OC4zOTIuLjU5NS4zODYgcm93cz02 MjggbG9vcHM9MSkKICAgICAgICAgICAgICBNZXJnZSBDb25kOiAoIm91dGVy Ii5vcmRlcl9udW1iZXIgPSAiaW5uZXIiLm9yZGVyX251bWJlcikKICAgICAg ICAgICAgICAtPiAgTWVyZ2UgTGVmdCBKb2luICAoY29zdD0xOTIwLjMzLi4x OTI3LjA2IHJvd3M9MzUgd2lkdGg9NTgpIChhY3R1YWwgdGltZT00ODkuNzUz Li41MDQuMzQ1IHJvd3M9NjI4IGxvb3BzPTEpCiAgICAgICAgICAgICAgICAg ICAgTWVyZ2UgQ29uZDogKCJvdXRlciIub3JkZXJfbnVtYmVyID0gImlubmVy Ii5vcmRlcl9udW1iZXIpCiAgICAgICAgICAgICAgICAgICAgLT4gIFNvcnQg IChjb3N0PTE0OTAuMDIuLjE0OTAuMTEgcm93cz0zNSB3aWR0aD01MCkgKGFj dHVhbCB0aW1lPTMzOS45OTguLjM0MC40NjYgcm93cz02MjggbG9vcHM9MSkK ICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogb2Eub3JkZXJf bnVtYmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIE5lc3RlZCBM b29wICAoY29zdD0xMzIwLjA5Li4xNDg5LjEzIHJvd3M9MzUgd2lkdGg9NTAp IChhY3R1YWwgdGltZT0yNzEuMzkxLi4zMzIuMTEzIHJvd3M9NjI4IGxvb3Bz PTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIE1lcmdl IEpvaW4gIChjb3N0PTEzMjAuMDkuLjEzMzUuNzQgcm93cz0zOSB3aWR0aD00 NCkgKGFjdHVhbCB0aW1lPTI3MC42NzUuLjMwMC45NjIgcm93cz02MjggbG9v cHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN ZXJnZSBDb25kOiAoIm91dGVyIi4iP2NvbHVtbjQ/IiA9ICJpbm5lciIuIj9j b2x1bW44PyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLT4gIFNvcnQgIChjb3N0PTg3My42Mi4uODgwLjgwIHJvd3M9Mjg3NCB3 aWR0aD0xOCkgKGFjdHVhbCB0aW1lPTE3OC4xMzUuLjE4MC4xMjMgcm93cz0y NzE0IGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29ydCBLZXk6IChjaS5zdG9yZW5vKTo6dGV4dAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBjdXN0b21lcl9pbmZvcm1hdGlvbiBjaSAgKGNvc3Q9MC4w MC4uNzA4LjUyIHJvd3M9Mjg3NCB3aWR0aD0xOCkgKGFjdHVhbCB0aW1lPTAu MjY0Li4xMTkuMDkzIHJvd3M9Mjc4MSBsb29wcz0xKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjog KCdkZWVyZSc6OnRleHQgPSAoY29tcGFueV9uYW1lKTo6dGV4dCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydCAgKGNv c3Q9NDQ2LjQ3Li40NDYuOTEgcm93cz0xNzcgd2lkdGg9NTEpIChhY3R1YWwg dGltZT05Mi40MTEuLjkyLjk3MCByb3dzPTYyOCBsb29wcz0xKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5 OiAob2Euc3RvcmVubyk6OnRleHQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gb3JkZXJfYWRt aW4gb2EgIChjb3N0PTAuMDAuLjQzOS44NiByb3dzPTE3NyB3aWR0aD01MSkg KGFjdHVhbCB0aW1lPTIuNjM0Li43Ny41NTEgcm93cz02MjggbG9vcHM9MSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoKG9yZGVyX3N0YXR1cyk6OnRleHQgPSAnY29tcGxl dGVkJzo6dGV4dCkgQU5EICgoY29tcGFueV9uYW1lKTo6dGV4dCA9ICdkZWVy ZSc6OnRleHQpIEFORCAoKGdyb3VwX2NvZGUpOjp0ZXh0ID0gJzIwMDUnOjp0 ZXh0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5k ZXggU2NhbiB1c2luZyBvcmRlcl9hZGRyZXNzX3BrZXkgb24gb3JkZXJfYWRk cmVzcyBvYWQgIChjb3N0PTAuMDAuLjMuOTIgcm93cz0xIHdpZHRoPTEwKSAo YWN0dWFsIHRpbWU9MC4wMjkuLjAuMDMzIHJvd3M9MSBsb29wcz02MjgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKCJvdXRlciIub3JkZXJfbnVtYmVyID0gb2FkLm9yZGVyX251bWJlcikK ICAgICAgICAgICAgICAgICAgICAtPiAgU29ydCAgKGNvc3Q9NDMwLjMwLi40 MzMuNTYgcm93cz0xMzAyIHdpZHRoPTEyKSAoYWN0dWFsIHRpbWU9MTQ0LjU2 OS4uMTQ2LjM3OCByb3dzPTI0MzYgbG9vcHM9MSkKICAgICAgICAgICAgICAg ICAgICAgICAgICBTb3J0IEtleTogaW1wbi5vcmRlcl9udW1iZXIKICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBpbXBuICAo Y29zdD0zNDYuNjcuLjM2Mi45NSByb3dzPTEzMDIgd2lkdGg9MTIpIChhY3R1 YWwgdGltZT0xMDkuMDQxLi4xMjkuMjc2IHJvd3M9MjQzNiBsb29wcz0xKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoQWdncmVn YXRlICAoY29zdD0zNDYuNjcuLjM0OS45MyByb3dzPTEzMDIgd2lkdGg9OCkg KGFjdHVhbCB0aW1lPTEwOS4wMjUuLjExOS40Mzkgcm93cz0yNDM2IGxvb3Bz PTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IEhhc2ggSm9pbiAgKGNvc3Q9MTcuOTguLjM0MC4xNiByb3dzPTEzMDIgd2lk dGg9OCkgKGFjdHVhbCB0aW1lPTI0LjI5OS4uOTIuOTgxIHJvd3M9MjY0NCBs b29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEhhc2ggQ29uZDogKCJvdXRlciIuaXRlbV9pZCA9ICJpbm5lciIu aXRlbV9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gb3JkZXJfaXRlbXMgb2kgIChjb3N0 PTAuMDAuLjI3OS4xNSByb3dzPTYwMDIgd2lkdGg9OCkgKGFjdHVhbCB0aW1l PTAuMjAzLi42NC41OTUgcm93cz01OTAyIGxvb3BzPTEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy OiAoaGFzX2ltcHJpbnQgPSB0cnVlKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoICAoY29zdD0xNy44OS4u MTcuODkgcm93cz0zNiB3aWR0aD0xMikgKGFjdHVhbCB0aW1lPTIuOTkxLi4y Ljk5MSByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSGFzaCBKb2luICAoY29z dD0xNC4wNy4uMTcuODkgcm93cz0zNiB3aWR0aD0xMikgKGFjdHVhbCB0aW1l PTIuNTIyLi4yLjg2MiByb3dzPTM2IGxvb3BzPTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFz aCBDb25kOiAoIm91dGVyIi5pdGVtX2lkID0gImlubmVyIi5pdGVtX2lkKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBpdGVtc19pbXByaW50IGlpICAo Y29zdD0wLjAwLi4xLjM2IHJvd3M9MzYgd2lkdGg9OCkgKGFjdHVhbCB0aW1l PTAuMDg0Li4wLjE3OCByb3dzPTM2IGxvb3BzPTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IEhhc2ggIChjb3N0PTEzLjY2Li4xMy42NiByb3dzPTE2NiB3aWR0aD00KSAo YWN0dWFsIHRpbWU9Mi4zMTkuLjIuMzE5IHJvd3M9MCBsb29wcz0xKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBpdGVtcyBpICAoY29zdD0w LjAwLi4xMy42NiByb3dzPTE2NiB3aWR0aD00KSAoYWN0dWFsIHRpbWU9MC4x NTAuLjEuODE0IHJvd3M9MTY2IGxvb3BzPTEpCiAgICAgICAgICAgICAgLT4g IFNvcnQgIChjb3N0PTIyMS4wNC4uMjI2LjUyIHJvd3M9MjE5MiB3aWR0aD0x MikgKGFjdHVhbCB0aW1lPTczLjQxMi4uNzUuMDQzIHJvd3M9MjI3MyBsb29w cz0xKQogICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBpbXB2Lm9yZGVy X251bWJlcgogICAgICAgICAgICAgICAgICAgIC0+ICBTdWJxdWVyeSBTY2Fu IGltcHYgIChjb3N0PTcyLjAwLi45OS40MCByb3dzPTIxOTIgd2lkdGg9MTIp IChhY3R1YWwgdGltZT0yOC44MzUuLjQ3Ljk5NCByb3dzPTIyNzMgbG9vcHM9 MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0 ZSAgKGNvc3Q9NzIuMDAuLjc3LjQ4IHJvd3M9MjE5MiB3aWR0aD04KSAoYWN0 dWFsIHRpbWU9MjguODIyLi4zOC44MDUgcm93cz0yMjczIGxvb3BzPTEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IGltcHJpbnRfYnJpZGdlIGliICAoY29zdD0wLjAwLi42MC4yOSByb3dzPTIz NDMgd2lkdGg9OCkgKGFjdHVhbCB0aW1lPTAuMTc4Li4xMi44Nzkgcm93cz0y MzQ0IGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmlsdGVyOiAoaW1wcmludF92ZXJpZmllZCA9IHRydWUpCiAgICAg ICAgLT4gIEhhc2ggIChjb3N0PTE2Mi44NS4uMTYyLjg1IHJvd3M9NTUgd2lk dGg9MTYpIChhY3R1YWwgdGltZT00MS4yNDIuLjQxLjI0MiByb3dzPTAgbG9v cHM9MSkKICAgICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiB1biAgKGNv c3Q9MTYyLjAzLi4xNjIuODUgcm93cz01NSB3aWR0aD0xNikgKGFjdHVhbCB0 aW1lPTQwLjA0NS4uNDAuODgyIHJvd3M9OTEgbG9vcHM9MSkKICAgICAgICAg ICAgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZSAgKGNvc3Q9MTYyLjAzLi4x NjIuMzAgcm93cz01NSB3aWR0aD0xMikgKGFjdHVhbCB0aW1lPTQwLjAyNy4u NDAuNDkwIHJvd3M9OTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gY3VzdG9tZXJfcmVsYXRpb25zIGNyICAo Y29zdD0wLjAwLi4xNjEuMzEgcm93cz05NSB3aWR0aD0xMikgKGFjdHVhbCB0 aW1lPTAuMzA3Li4zOC4yNDkgcm93cz0xMTEgbG9vcHM9MSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgob3JkZXJfbnVtYmVy IElTIE5PVCBOVUxMKSBBTkQgKChzdGF0dXMpOjp0ZXh0IDw+ICdyZXNvbHZl ZCc6OnRleHQpKQpUb3RhbCBydW50aW1lOiA2NzQuNDU4IG1zCgoKCgpTb3J0 ICAoY29zdD05OTYuMjYuLjk5Ni4yNyByb3dzPTEgd2lkdGg9NzgpIChhY3R1 YWwgdGltZT00MDI3LjQ4My4uNDAyNy41MzUgcm93cz03MyBsb29wcz0xKQog IFNvcnQgS2V5OiBvYS5kYXRlX2NyZWF0ZWQKICAtPiAgTmVzdGVkIExvb3Ag TGVmdCBKb2luICAoY29zdD01ODAuNzAuLjk5Ni4yNSByb3dzPTEgd2lkdGg9 NzgpIChhY3R1YWwgdGltZT0yNDQuNjEwLi40MDI1Ljc0OSByb3dzPTczIGxv b3BzPTEpCiAgICAgICAgSm9pbiBGaWx0ZXI6ICgib3V0ZXIiLm9yZGVyX251 bWJlciA9ICJpbm5lciIub3JkZXJfbnVtYmVyKQogICAgICAgIC0+ICBOZXN0 ZWQgTG9vcCBMZWZ0IEpvaW4gIChjb3N0PTQxOC42Ny4uODMyLjcxIHJvd3M9 MSB3aWR0aD02NikgKGFjdHVhbCB0aW1lPTIxMS4zODguLjM5MTEuODAwIHJv d3M9NzMgbG9vcHM9MSkKICAgICAgICAgICAgICBKb2luIEZpbHRlcjogKCJv dXRlciIub3JkZXJfbnVtYmVyID0gImlubmVyIi5vcmRlcl9udW1iZXIpCiAg ICAgICAgICAgICAgLT4gIE5lc3RlZCBMb29wIExlZnQgSm9pbiAgKGNvc3Q9 MzQ2LjY3Li43MDUuOTEgcm93cz0xIHdpZHRoPTU4KSAoYWN0dWFsIHRpbWU9 MTUzLjA1Mi4uMjA5My4zODYgcm93cz03MyBsb29wcz0xKQogICAgICAgICAg ICAgICAgICAgIEpvaW4gRmlsdGVyOiAoIm91dGVyIi5vcmRlcl9udW1iZXIg PSAiaW5uZXIiLm9yZGVyX251bWJlcikKICAgICAgICAgICAgICAgICAgICAt PiAgTmVzdGVkIExvb3AgIChjb3N0PTAuMDAuLjMyNi42OSByb3dzPTEgd2lk dGg9NTApIChhY3R1YWwgdGltZT0yMi40NzYuLjEwMi43MDMgcm93cz03MyBs b29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBOZXN0ZWQg TG9vcCAgKGNvc3Q9MC4wMC4uMzIyLjc2IHJvd3M9MSB3aWR0aD00NCkgKGFj dHVhbCB0aW1lPTIxLjYwMC4uOTEuMDM3IHJvd3M9NzMgbG9vcHM9MSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyBpZHhfb3JkZXJfYWRtaW5fY29tcGFueV9uYW1lIG9uIG9yZGVyX2Fk bWluIG9hICAoY29zdD0wLjAwLi4yOTIuODIgcm93cz01IHdpZHRoPTUxKSAo YWN0dWFsIHRpbWU9MTIuMTU0Li42My45ODkgcm93cz03MyBsb29wcz0xKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICgoY29tcGFueV9uYW1lKTo6dGV4dCA9ICdoYXJsZXknOjp0ZXh0KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjog KCgob3JkZXJfc3RhdHVzKTo6dGV4dCA9ICdjb21wbGV0ZWQnOjp0ZXh0KSBB TkQgKChncm91cF9jb2RlKTo6dGV4dCA9ICcyMDA1Jzo6dGV4dCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgY3VzdG9tZXJfaW5mb3JtYXRpb25fcGtleSBvbiBjdXN0b21lcl9pbmZv cm1hdGlvbiBjaSAgKGNvc3Q9MC4wMC4uNS45NyByb3dzPTEgd2lkdGg9MTgp IChhY3R1YWwgdGltZT0wLjMxNC4uMC4zMjAgcm93cz0xIGxvb3BzPTczKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICgoKGNpLnN0b3Jlbm8pOjp0ZXh0ID0gKCJvdXRlciIuc3RvcmVubyk6 OnRleHQpIEFORCAoJ2hhcmxleSc6OnRleHQgPSAoY2kuY29tcGFueV9uYW1l KTo6dGV4dCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgb3JkZXJfYWRkcmVzc19wa2V5IG9uIG9yZGVyX2FkZHJl c3Mgb2FkICAoY29zdD0wLjAwLi4zLjkyIHJvd3M9MSB3aWR0aD0xMCkgKGFj dHVhbCB0aW1lPTAuMTA1Li4wLjEyNyByb3dzPTEgbG9vcHM9NzMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCJvdXRl ciIub3JkZXJfbnVtYmVyID0gb2FkLm9yZGVyX251bWJlcikKICAgICAgICAg ICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBpbXBuICAoY29zdD0zNDYu NjcuLjM2Mi45NSByb3dzPTEzMDIgd2lkdGg9MTIpIChhY3R1YWwgdGltZT0x Ljc5Mi4uMjEuMjM3IHJvd3M9MjQzNiBsb29wcz03MykKICAgICAgICAgICAg ICAgICAgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZSAgKGNvc3Q9MzQ2LjY3 Li4zNDkuOTMgcm93cz0xMzAyIHdpZHRoPTgpIChhY3R1YWwgdGltZT0xLjc4 OC4uMTIuNDQxIHJvd3M9MjQzNiBsb29wcz03MykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtPiAgSGFzaCBKb2luICAoY29zdD0xNy45OC4u MzQwLjE2IHJvd3M9MTMwMiB3aWR0aD04KSAoYWN0dWFsIHRpbWU9MzguMTM2 Li4xMTQuMTQ5IHJvd3M9MjY0NCBsb29wcz0xKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKCJvdXRlciIuaXRl bV9pZCA9ICJpbm5lciIuaXRlbV9pZCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gb3JkZXJfaXRlbXMg b2kgIChjb3N0PTAuMDAuLjI3OS4xNSByb3dzPTYwMDIgd2lkdGg9OCkgKGFj dHVhbCB0aW1lPTAuMjM2Li43NS4wMTkgcm93cz01OTAyIGxvb3BzPTEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoaGFzX2ltcHJpbnQgPSB0cnVlKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoICAoY29zdD0xNy44OS4uMTcu ODkgcm93cz0zNiB3aWR0aD0xMikgKGFjdHVhbCB0aW1lPTEzLjg2NS4uMTMu ODY1IHJvd3M9MCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4gIChjb3N0PTE0LjA3 Li4xNy44OSByb3dzPTM2IHdpZHRoPTEyKSAoYWN0dWFsIHRpbWU9MTMuMzg0 Li4xMy43NDEgcm93cz0zNiBsb29wcz0xKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKCJv dXRlciIuaXRlbV9pZCA9ICJpbm5lciIuaXRlbV9pZCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gaXRlbXNfaW1wcmludCBpaSAgKGNvc3Q9MC4wMC4uMS4zNiBy b3dzPTM2IHdpZHRoPTgpIChhY3R1YWwgdGltZT05LjgwNC4uOS45MDIgcm93 cz0zNiBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoICAoY29zdD0xMy42Ni4uMTMu NjYgcm93cz0xNjYgd2lkdGg9NCkgKGFjdHVhbCB0aW1lPTMuNDQyLi4zLjQ0 MiByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g aXRlbXMgaSAgKGNvc3Q9MC4wMC4uMTMuNjYgcm93cz0xNjYgd2lkdGg9NCkg KGFjdHVhbCB0aW1lPTAuMTczLi4yLjkyMiByb3dzPTE2NiBsb29wcz0xKQog ICAgICAgICAgICAgIC0+ICBTdWJxdWVyeSBTY2FuIGltcHYgIChjb3N0PTcy LjAwLi45OS40MCByb3dzPTIxOTIgd2lkdGg9MTIpIChhY3R1YWwgdGltZT0w LjQ5OC4uMTkuMDE4IHJvd3M9MjI3MyBsb29wcz03MykKICAgICAgICAgICAg ICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZSAgKGNvc3Q9NzIuMDAuLjc3LjQ4 IHJvd3M9MjE5MiB3aWR0aD04KSAoYWN0dWFsIHRpbWU9MC40OTMuLjEwLjY2 NCByb3dzPTIyNzMgbG9vcHM9NzMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIGltcHJpbnRfYnJpZGdlIGliICAoY29zdD0w LjAwLi42MC4yOSByb3dzPTIzNDMgd2lkdGg9OCkgKGFjdHVhbCB0aW1lPTYu MDk5Li4yMC4xNDIgcm93cz0yMzQ0IGxvb3BzPTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaW1wcmludF92ZXJpZmllZCA9 IHRydWUpCiAgICAgICAgLT4gIFN1YnF1ZXJ5IFNjYW4gdW4gIChjb3N0PTE2 Mi4wMy4uMTYyLjg1IHJvd3M9NTUgd2lkdGg9MTYpIChhY3R1YWwgdGltZT0w LjQ1Ny4uMS4yOTIgcm93cz05MSBsb29wcz03MykKICAgICAgICAgICAgICAt PiAgSGFzaEFnZ3JlZ2F0ZSAgKGNvc3Q9MTYyLjAzLi4xNjIuMzAgcm93cz01 NSB3aWR0aD0xMikgKGFjdHVhbCB0aW1lPTAuNDUxLi4wLjkyNiByb3dzPTkx IGxvb3BzPTczKQogICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBjdXN0b21lcl9yZWxhdGlvbnMgY3IgIChjb3N0PTAuMDAuLjE2MS4zMSBy b3dzPTk1IHdpZHRoPTEyKSAoYWN0dWFsIHRpbWU9MC4yOTUuLjMwLjE2MyBy b3dzPTExMSBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgICAgIEZp bHRlcjogKChvcmRlcl9udW1iZXIgSVMgTk9UIE5VTEwpIEFORCAoKHN0YXR1 cyk6OnRleHQgPD4gJ3Jlc29sdmVkJzo6dGV4dCkpClRvdGFsIHJ1bnRpbWU6 IDQwNTEuOTQxIG1zCgoK --============_-1120649259==_D============-- --============_-1120649259==_============--