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 1tAoKb-000FBU-6u for pgsql-performance@arkaria.postgresql.org; Tue, 12 Nov 2024 10:41:08 +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 1tAoKY-005GUe-Kx for pgsql-performance@arkaria.postgresql.org; Tue, 12 Nov 2024 10:41:07 +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 1tAoKX-005GU0-VI for pgsql-performance@lists.postgresql.org; Tue, 12 Nov 2024 10:41:06 +0000 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tAoKW-001Syd-07 for pgsql-performance@lists.postgresql.org; Tue, 12 Nov 2024 10:41:05 +0000 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-539fbe22ac0so5330788e87.2 for ; Tue, 12 Nov 2024 02:41:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731408062; x=1732012862; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=aK3ADTAVNOwHU3svzv8aqpgtHOQYgKAClO03sxGE4Uo=; b=jnPGymFwPfw4toObdxBQpLrD7TYUTfPU460/Zxo6nLCy75Lx2MLe5IGu9nXxhKq6mQ esqNoiyj9hCp8XgR2J9BQe4+HaliD29J5fzYL48XwjAxVstrBPQEl24bfX7VkgFQBLxG d+BJvx//u5sLXZhsUF6XGJmea7coTj7h5B0OwywgtdFPalCrXrwLZ+3MdvwzrqIzvAVb ey0CxnuZwSeK9+uQNPG/Ec/fi6YttqD1WiORXGpeFrmO4pQ/X9N66WXdbLR141StEViy oHcx1vxD3OuPioCJFiXUQOUKgg/s8HeNxmRIHgeTvjch6MV7jfCfI/m85tppEhs/YQkJ smVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731408062; x=1732012862; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=aK3ADTAVNOwHU3svzv8aqpgtHOQYgKAClO03sxGE4Uo=; b=iRT7HTrVuPC+Vx51kCEUIHiyiL83FOCQQT4jXAfzrFv5pK5p8eSMLQxVd8olmTYImI RsECoU5jBDXHxlIJVHI8OcbjhPSq++fhLTemosiThtdxFZSeU1StESV8fzEl3lluxF1b XLRmCQZGwp7XNHtnLCBfXWLUbxAGU8hVSSOhV+dws4yqPXIXG0ssHQKAoiFqYSjyLNbm y/HUs7hCpD4UVrRA/KLdN2l33dd3m6Bl8aE4fj8imBeuDbL3HXS83qMddLU1hGxhS8Oj 6UaZcInM99FmoAj1RsYqREGQcblpJqXyM3Aoh41QCAPKgIBvWPL4k6SbEGHwwP2pXPUN txkw== X-Forwarded-Encrypted: i=1; AJvYcCXoAG2IhfFiDM14F3azhkPZoVUowK7nGBhwOp+sR5EelIdszol8X0Eduzvviq4WSOpOLhEX+y9t77KRtIiXcl0gqA==@lists.postgresql.org X-Gm-Message-State: AOJu0YzcrFZDZ7JCb/0ZXzE8eWeP2hpZUyzqGLLuRPIOw0eeiw9GuIZu oTGBXm4ZlUDVxFOjSt0N7pP4nrBKcgYi6BNzmVklk7fMr2UIm6CU X-Google-Smtp-Source: AGHT+IESJmg4SOBTZW/zst8gXI6g4NPOvU6pCbdRQSAGp7KSkScQ5nKvlgQCxJkd5QqUXY332g8fEA== X-Received: by 2002:a05:651c:1506:b0:2fb:7e65:cb27 with SMTP id 38308e7fff4ca-2ff201e73a4mr78944721fa.6.1731408061870; Tue, 12 Nov 2024 02:41:01 -0800 (PST) Received: from [10.4.15.162] ([93.174.131.141]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2ff179918a0sm19977481fa.81.2024.11.12.02.41.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Nov 2024 02:41:00 -0800 (PST) Content-Type: multipart/mixed; boundary="------------5CdHEtIM3wb4XI8Bt60UUrc2" Message-ID: Date: Tue, 12 Nov 2024 17:40:59 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Performance of Query 4 on TPC-DS Benchmark To: Ba Jinsheng , "pgsql-performance@lists.postgresql.org" References: Content-Language: en-AU From: Andrei Lepikhov In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------5CdHEtIM3wb4XI8Bt60UUrc2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/11/24 17:49, Ba Jinsheng wrote: > > >It is all the time a challenge for PostgreSQL to estimate such a filter > >because of absent information on joint column distribution. > >Can you research this way by building extended statistics on these > >clauses? It could move the plan to the more optimal direction. > > Thanks a lot for your effort to analyze this issue, and we really > appreciate your suggestions!  Currently, we focus on exposing these > issues that affect performance. In the future, we may consider to look > into such a direction as you suggested. It would be better to participate in further analysis - at least, to find out general solution and classify your findings. For example in your query, if you replace CTE with a table (see in the attachment) and execute vacuum analyze on this table you will have well-estimated query which executes fast. > > > > Have you tried any tools to improve the cardinality yet, like aqo [0]? > Yes, but it takes nearly 1 hour to run this query at a time, so I only > run "EXPLAIN ANALYZE" once, and the performance seems slightly improved. Hmm, AQO iteratively approaches optimal decision. Sometimes it is a local optimum, but we still don't have a method practical enough to kick its out of the trap of local optimum. -- regards, Andrei Lepikhov --------------5CdHEtIM3wb4XI8Bt60UUrc2 Content-Type: application/sql; name="tpcds-1.sql" Content-Disposition: attachment; filename="tpcds-1.sql" Content-Transfer-Encoding: base64 CkVYUExBSU4gQU5BTFlaRQpTRUxFQ1QKICB0X3Nfc2VjeWVhci5jdXN0b21lcl9pZCwgdF9z X3NlY3llYXIuY3VzdG9tZXJfZmlyc3RfbmFtZSwKICB0X3Nfc2VjeWVhci5jdXN0b21lcl9s YXN0X25hbWUsIHRfc19zZWN5ZWFyLmN1c3RvbWVyX2VtYWlsX2FkZHJlc3MKRlJPTSB5ZWFy X3RvdGFsIHRfc19maXJzdHllYXIKICAgICAseWVhcl90b3RhbCB0X3Nfc2VjeWVhcgogICAg ICx5ZWFyX3RvdGFsIHRfY19maXJzdHllYXIKICAgICAseWVhcl90b3RhbCB0X2Nfc2VjeWVh cgogICAgICx5ZWFyX3RvdGFsIHRfd19maXJzdHllYXIKICAgICAseWVhcl90b3RhbCB0X3df c2VjeWVhcgpXSEVSRSB0X3Nfc2VjeWVhci5jdXN0b21lcl9pZCA9IHRfc19maXJzdHllYXIu Y3VzdG9tZXJfaWQKICAgYW5kIHRfc19maXJzdHllYXIuY3VzdG9tZXJfaWQgPSB0X2Nfc2Vj eWVhci5jdXN0b21lcl9pZAogICBhbmQgdF9zX2ZpcnN0eWVhci5jdXN0b21lcl9pZCA9IHRf Y19maXJzdHllYXIuY3VzdG9tZXJfaWQKICAgYW5kIHRfc19maXJzdHllYXIuY3VzdG9tZXJf aWQgPSB0X3dfZmlyc3R5ZWFyLmN1c3RvbWVyX2lkCiAgIGFuZCB0X3NfZmlyc3R5ZWFyLmN1 c3RvbWVyX2lkID0gdF93X3NlY3llYXIuY3VzdG9tZXJfaWQKICAgYW5kIHRfc19maXJzdHll YXIuc2FsZV90eXBlID0gJ3MnCiAgIGFuZCB0X2NfZmlyc3R5ZWFyLnNhbGVfdHlwZSA9ICdj JwogICBhbmQgdF93X2ZpcnN0eWVhci5zYWxlX3R5cGUgPSAndycKICAgYW5kIHRfc19zZWN5 ZWFyLnNhbGVfdHlwZSA9ICdzJwogICBhbmQgdF9jX3NlY3llYXIuc2FsZV90eXBlID0gJ2Mn CiAgIGFuZCB0X3dfc2VjeWVhci5zYWxlX3R5cGUgPSAndycKICAgYW5kIHRfc19maXJzdHll YXIuZHllYXIgPSAgMjAwMQogICBhbmQgdF9zX3NlY3llYXIuZHllYXIgPSAyMDAxKzEKICAg YW5kIHRfY19maXJzdHllYXIuZHllYXIgPSAgMjAwMQogICBhbmQgdF9jX3NlY3llYXIuZHll YXIgPSAgMjAwMSsxCiAgIGFuZCB0X3dfZmlyc3R5ZWFyLmR5ZWFyID0gMjAwMQogICBhbmQg dF93X3NlY3llYXIuZHllYXIgPSAyMDAxKzEKICAgYW5kIHRfc19maXJzdHllYXIueWVhcl90 b3RhbCA+IDAKICAgYW5kIHRfY19maXJzdHllYXIueWVhcl90b3RhbCA+IDAKICAgYW5kIHRf d19maXJzdHllYXIueWVhcl90b3RhbCA+IDAKICAgYW5kIGNhc2Ugd2hlbiB0X2NfZmlyc3R5 ZWFyLnllYXJfdG90YWwgPiAwIHRoZW4gdF9jX3NlY3llYXIueWVhcl90b3RhbCAvIHRfY19m aXJzdHllYXIueWVhcl90b3RhbCBlbHNlIG51bGwgZW5kCiAgICAgICAgICAgPiBjYXNlIHdo ZW4gdF9zX2ZpcnN0eWVhci55ZWFyX3RvdGFsID4gMCB0aGVuIHRfc19zZWN5ZWFyLnllYXJf dG90YWwgLyB0X3NfZmlyc3R5ZWFyLnllYXJfdG90YWwgZWxzZSBudWxsIGVuZAogICBhbmQg Y2FzZSB3aGVuIHRfY19maXJzdHllYXIueWVhcl90b3RhbCA+IDAgdGhlbiB0X2Nfc2VjeWVh ci55ZWFyX3RvdGFsIC8gdF9jX2ZpcnN0eWVhci55ZWFyX3RvdGFsIGVsc2UgbnVsbCBlbmQK ICAgICAgICAgICA+IGNhc2Ugd2hlbiB0X3dfZmlyc3R5ZWFyLnllYXJfdG90YWwgPiAwIHRo ZW4gdF93X3NlY3llYXIueWVhcl90b3RhbCAvIHRfd19maXJzdHllYXIueWVhcl90b3RhbCBl bHNlIG51bGwgZW5kCk9SREVSIEJZIHRfc19zZWN5ZWFyLmN1c3RvbWVyX2lkCiAgICAgICAg ICx0X3Nfc2VjeWVhci5jdXN0b21lcl9maXJzdF9uYW1lCiAgICAgICAgICx0X3Nfc2VjeWVh ci5jdXN0b21lcl9sYXN0X25hbWUKICAgICAgICAgLHRfc19zZWN5ZWFyLmN1c3RvbWVyX2Vt YWlsX2FkZHJlc3MKTElNSVQgMTAwOwoKLyoKIExpbWl0ICAoY29zdD02OTMxNy4wMS4uNjkz MTcuMjQgcm93cz0yIHdpZHRoPTEyMCkgKGFjdHVhbCB0aW1lPTIxMy42MTIuLjIxNi4wMjkg cm93cz04IGxvb3BzPTEpCiAgIC0+ICBHYXRoZXIgTWVyZ2UgIChjb3N0PTY5MzE3LjAxLi42 OTMxNy4yNCByb3dzPTIgd2lkdGg9MTIwKSAoYWN0dWFsIHRpbWU9MjEzLjYxMC4uMjE2LjAy NiByb3dzPTggbG9vcHM9MSkKICAgICAgICAgV29ya2VycyBQbGFubmVkOiAyCiAgICAgICAg IFdvcmtlcnMgTGF1bmNoZWQ6IDIKICAgICAgICAgLT4gIFNvcnQgIChjb3N0PTY4MzE2Ljk4 Li42ODMxNi45OSByb3dzPTEgd2lkdGg9MTIwKSAoYWN0dWFsIHRpbWU9MTk2LjIzMy4uMTk2 LjIzOSByb3dzPTMgbG9vcHM9MykKICAgICAgICAgICAgICAgU29ydCBLZXk6IHRfc19zZWN5 ZWFyLmN1c3RvbWVyX2lkLCB0X3Nfc2VjeWVhci5jdXN0b21lcl9maXJzdF9uYW1lLCB0X3Nf c2VjeWVhci5jdXN0b21lcl9sYXN0X25hbWUsIHRfc19zZWN5ZWFyLmN1c3RvbWVyX2VtYWls X2FkZHJlc3MKICAgICAgICAgICAgICAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5 OiAyNWtCCiAgICAgICAgICAgICAgIFdvcmtlciAwOiAgU29ydCBNZXRob2Q6IHF1aWNrc29y dCAgTWVtb3J5OiAyNWtCCiAgICAgICAgICAgICAgIFdvcmtlciAxOiAgU29ydCBNZXRob2Q6 IHF1aWNrc29ydCAgTWVtb3J5OiAyNWtCCiAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBI YXNoIEpvaW4gIChjb3N0PTU3MTIyLjMyLi42ODMxNi45NyByb3dzPTEgd2lkdGg9MTIwKSAo YWN0dWFsIHRpbWU9MTczLjUxNi4uMTk2LjE1MSByb3dzPTMgbG9vcHM9MykKICAgICAgICAg ICAgICAgICAgICAgSGFzaCBDb25kOiAodF9zX3NlY3llYXIuY3VzdG9tZXJfaWQgPSB0X3Nf Zmlyc3R5ZWFyLmN1c3RvbWVyX2lkKQogICAgICAgICAgICAgICAgICAgICBKb2luIEZpbHRl cjogKENBU0UgV0hFTiAodF9jX2ZpcnN0eWVhci55ZWFyX3RvdGFsID4gJzAnOjpudW1lcmlj KSBUSEVOICh0X2Nfc2VjeWVhci55ZWFyX3RvdGFsIC8gdF9jX2ZpcnN0eWVhci55ZWFyX3Rv dGFsKSBFTFNFIE5VTEw6Om51bWVyaWMgRU5EID4gQ0FTRSBXSEVOICh0X3NfZmlyc3R5ZWFy LnllYXJfdG90YWwgPiAnMCc6Om51bWVyaWMpIFRIRU4gKHRfc19zZWN5ZWFyLnllYXJfdG90 YWwgLyB0XwpzX2ZpcnN0eWVhci55ZWFyX3RvdGFsKSBFTFNFIE5VTEw6Om51bWVyaWMgRU5E KQogICAgICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgSm9pbiBGaWx0ZXI6IDEK ICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHllYXJfdG90 YWwgdF9zX3NlY3llYXIgIChjb3N0PTAuMDAuLjExMTM1LjMwIHJvd3M9MTU4MTcgd2lkdGg9 MTI4KSAoYWN0dWFsIHRpbWU9MC4wMTYuLjI0LjYyOCByb3dzPTEyNzI1IGxvb3BzPTMpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChzYWxlX3R5cGUgPSAncyc6OnRl eHQpIEFORCAoZHllYXIgPSAyMDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgUm93 cyBSZW1vdmVkIGJ5IEZpbHRlcjogMTE1MzQ0CiAgICAgICAgICAgICAgICAgICAgIC0+ICBQ YXJhbGxlbCBIYXNoICAoY29zdD01NzEyMi4yMC4uNTcxMjIuMjAgcm93cz05IHdpZHRoPTEw OSkgKGFjdHVhbCB0aW1lPTE2OS44MTUuLjE2OS44MTkgcm93cz05IGxvb3BzPTMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJ1Y2tldHM6IDEwMjQgIEJhdGNoZXM6IDEgIE1lbW9y eSBVc2FnZTogMTA0a0IKICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVs IEhhc2ggSm9pbiAgKGNvc3Q9NDU1MjcuNTguLjU3MTIyLjIwIHJvd3M9OSB3aWR0aD0xMDkp IChhY3R1YWwgdGltZT0xMzIuNjYyLi4xNjkuNzY1IHJvd3M9OSBsb29wcz0zKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICh0X3NfZmlyc3R5ZWFyLmN1 c3RvbWVyX2lkID0gdF9jX3NlY3llYXIuY3VzdG9tZXJfaWQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB5ZWFyX3RvdGFsIHRf c19maXJzdHllYXIgIChjb3N0PTAuMDAuLjExNTM1LjUyIHJvd3M9MTU3NTEgd2lkdGg9MjUp IChhY3R1YWwgdGltZT0wLjAxMy4uMzguMDQxIHJvd3M9MTI2NDEgbG9vcHM9MykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKHllYXJfdG90YWwg PiAnMCc6Om51bWVyaWMpIEFORCAoc2FsZV90eXBlID0gJ3MnOjp0ZXh0KSBBTkQgKGR5ZWFy ID0gMjAwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd3Mg UmVtb3ZlZCBieSBGaWx0ZXI6IDExNTQyOAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtPiAgUGFyYWxsZWwgSGFzaCAgKGNvc3Q9NDU1MjcuMzIuLjQ1NTI3LjMyIHJvd3M9 MjEgd2lkdGg9ODQpIChhY3R1YWwgdGltZT0xMzAuMTgwLi4xMzAuMTg0IHJvd3M9MTggbG9v cHM9MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0czog MTAyNCAgQmF0Y2hlczogMSAgTWVtb3J5IFVzYWdlOiAxMDRrQgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCBKb2luICAoY29zdD0z NDM0Ni45Ny4uNDU1MjcuMzIgcm93cz0yMSB3aWR0aD04NCkgKGFjdHVhbCB0aW1lPTExNy42 MjkuLjEzMC4xNjAgcm93cz0xOCBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICh0X2Nfc2VjeWVhci5jdXN0b21lcl9p ZCA9IHRfY19maXJzdHllYXIuY3VzdG9tZXJfaWQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoQ0FTRSBXSEVOICh0X2NfZmly c3R5ZWFyLnllYXJfdG90YWwgPiAnMCc6Om51bWVyaWMpIFRIRU4gKHRfY19zZWN5ZWFyLnll YXJfdG90YWwgLyB0X2NfZmlyc3R5ZWFyLnllYXJfdG90YWwpIEVMU0UgTlVMTDo6bnVtZXJp YyBFTkQgPiBDQVNFIFdIRU4gKHRfd19maXJzdHllYXIueWVhcl90b3RhbCA+ICcwJzo6bnVt ZXJpYykgVEhFTiAodF93Cl9zZWN5ZWFyLnllYXJfdG90YWwgLyB0X3dfZmlyc3R5ZWFyLnll YXJfdG90YWwpIEVMU0UgTlVMTDo6bnVtZXJpYyBFTkQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBKb2luIEZpbHRlcjog MTMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFBh cmFsbGVsIFNlcSBTY2FuIG9uIHllYXJfdG90YWwgdF9jX3NlY3llYXIgIChjb3N0PTAuMDAu LjExMTM1LjMwIHJvd3M9MTE4NTIgd2lkdGg9MjUpIChhY3R1YWwgdGltZT0xMi4zMDguLjI0 LjA5OSByb3dzPTkwNTkgbG9vcHM9MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKHNhbGVfdHlwZSA9ICdjJzo6dGV4dCkg QU5EIChkeWVhciA9IDIwMDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiAxMTkwMTAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIEhh c2ggIChjb3N0PTM0MzQ0LjUwLi4zNDM0NC41MCByb3dzPTE5NyB3aWR0aD03NSkgKGFjdHVh bCB0aW1lPTEwNC44OTYuLjEwNC44OTkgcm93cz0xMjMgbG9vcHM9MykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0czogMTAyNCAg QmF0Y2hlczogMSAgTWVtb3J5IFVzYWdlOiAxMDRrQgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCBKb2luICAo Y29zdD0yMjc2Ni4yMi4uMzQzNDQuNTAgcm93cz0xOTcgd2lkdGg9NzUpIChhY3R1YWwgdGlt ZT04NC43NjYuLjEwNC43OTcgcm93cz0xMjMgbG9vcHM9MykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaCBDb25kOiAodF9j X2ZpcnN0eWVhci5jdXN0b21lcl9pZCA9IHRfd19maXJzdHllYXIuY3VzdG9tZXJfaWQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB5ZWFyX3RvdGFsIHRfY19maXJzdHllYXIgIChj b3N0PTAuMDAuLjExNTM1LjUyIHJvd3M9MTExODYgd2lkdGg9MjUpIChhY3R1YWwgdGltZT0x OS4wNTYuLjM3LjkzOCByb3dzPTg3NzEgbG9vcHM9MykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKHll YXJfdG90YWwgPiAnMCc6Om51bWVyaWMpIEFORCAoc2FsZV90eXBlID0gJ2MnOjp0ZXh0KSBB TkQgKGR5ZWFyID0gMjAwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDEx OTI5OAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCAgKGNvc3Q9MjI3NTguMTguLjIyNzU4LjE4IHJv d3M9NjQzIHdpZHRoPTUwKSAoYWN0dWFsIHRpbWU9NjUuNTg0Li42NS41ODYgcm93cz00MzUg bG9vcHM9MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQnVja2V0czogMjA0OCAgQmF0Y2hlczogMSAgTWVtb3J5IFVz YWdlOiAyMDhrQgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCBKb2luICAoY29zdD0xMTU5 NS43OS4uMjI3NTguMTggcm93cz02NDMgd2lkdGg9NTApIChhY3R1YWwgdGltZT02MS4wMjMu LjY1LjIxNyByb3dzPTQzNSBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICh0 X3dfc2VjeWVhci5jdXN0b21lcl9pZCA9IHRfd19maXJzdHllYXIuY3VzdG9tZXJfaWQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB5ZWFyX3RvdGFsIHRfd19z ZWN5ZWFyICAoY29zdD0wLjAwLi4xMTEzNS4zMCByb3dzPTQ4ODIgd2lkdGg9MjUpIChhY3R1 YWwgdGltZT0yMC41MjkuLjI0LjAwNCByb3dzPTM3NTEgbG9vcHM9MykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmlsdGVyOiAoKHNhbGVfdHlwZSA9ICd3Jzo6dGV4dCkgQU5EIChkeWVhciA9 IDIwMDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiAx MjQzMTkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIEhhc2ggIChjb3N0PTExNTM1LjUy Li4xMTUzNS41MiByb3dzPTQ4MjIgd2lkdGg9MjUpIChhY3R1YWwgdGltZT00MC40MTYuLjQw LjQxNiByb3dzPTM3NzUgbG9vcHM9MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0czog MTYzODQgIEJhdGNoZXM6IDEgIE1lbW9yeSBVc2FnZTogODMya0IKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHllYXJfdG90YWwgdF93X2ZpcnN0eWVh ciAgKGNvc3Q9MC4wMC4uMTE1MzUuNTIgcm93cz00ODIyIHdpZHRoPTI1KSAoYWN0dWFsIHRp bWU9MzMuNTI0Li4zOS40MjUgcm93cz0zNzc1IGxvb3BzPTMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZpbHRlcjogKCh5ZWFyX3RvdGFsID4gJzAnOjpudW1lcmljKSBBTkQgKHNh bGVfdHlwZSA9ICd3Jzo6dGV4dCkgQU5EIChkeWVhciA9IDIwMDEpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiAxMjQyOTUKIFBsYW5uaW5n IFRpbWU6IDEzLjE1MCBtcwogRXhlY3V0aW9uIFRpbWU6IDIxNi4yMDYgbXMKICovCgovKgot LSBOTyBzdGF0czoKTGltaXQgIChjb3N0PTY5MzE3LjA5Li42OTMxNy4zMyByb3dzPTIgd2lk dGg9MTIwKSAoYWN0dWFsIHRpbWU9MjA0LjA1OC4uMjA2LjM2NyByb3dzPTggbG9vcHM9MSkK ICAgLT4gIEdhdGhlciBNZXJnZSAgKGNvc3Q9NjkzMTcuMDkuLjY5MzE3LjMzIHJvd3M9MiB3 aWR0aD0xMjApIChhY3R1YWwgdGltZT0yMDQuMDU2Li4yMDYuMzYzIHJvd3M9OCBsb29wcz0x KQogICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDIKICAgICAgICAgV29ya2VycyBMYXVuY2hl ZDogMgogICAgICAgICAtPiAgU29ydCAgKGNvc3Q9NjgzMTcuMDcuLjY4MzE3LjA3IHJvd3M9 MSB3aWR0aD0xMjApIChhY3R1YWwgdGltZT0xOTUuMTEzLi4xOTUuMTE5IHJvd3M9MyBsb29w cz0zKQogICAgICAgICAgICAgICBTb3J0IEtleTogdF9zX3NlY3llYXIuY3VzdG9tZXJfaWQs IHRfc19zZWN5ZWFyLmN1c3RvbWVyX2ZpcnN0X25hbWUsIHRfc19zZWN5ZWFyLmN1c3RvbWVy X2xhc3RfbmFtZSwgdF9zX3NlY3llYXIuY3VzdG9tZXJfZW1haWxfYWRkcmVzcwogICAgICAg ICAgICAgICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1vcnk6IDI1a0IKICAgICAgICAg ICAgICAgV29ya2VyIDA6ICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1vcnk6IDI1a0IK ICAgICAgICAgICAgICAgV29ya2VyIDE6ICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1v cnk6IDI1a0IKICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIEhhc2ggSm9pbiAgKGNvc3Q9 NTcxMjEuNTguLjY4MzE3LjA2IHJvd3M9MSB3aWR0aD0xMjApIChhY3R1YWwgdGltZT0xNzMu MjQ1Li4xOTUuMDE2IHJvd3M9MyBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICBIYXNo IENvbmQ6ICh0X3Nfc2VjeWVhci5jdXN0b21lcl9pZCA9IHRfc19maXJzdHllYXIuY3VzdG9t ZXJfaWQpCiAgICAgICAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoQ0FTRSBXSEVOICh0 X2NfZmlyc3R5ZWFyLnllYXJfdG90YWwgPiAnMCc6Om51bWVyaWMpIFRIRU4gKHRfY19zZWN5 ZWFyLnllYXJfdG90YWwgLyB0X2NfZmlyc3R5ZWFyLnllYXJfdG90YWwpIEVMU0UgTlVMTDo6 bnVtZXJpYyBFTkQgPiBDQVNFIFdIRU4gKHRfc19maXJzdHllYXIueWVhcl90b3RhbCA+ICcw Jzo6bnVtZXJpYykgVEhFTiAodF9zX3NlY3llYXIueWVhcl90b3RhbCAvIHRfCnNfZmlyc3R5 ZWFyLnllYXJfdG90YWwpIEVMU0UgTlVMTDo6bnVtZXJpYyBFTkQpCiAgICAgICAgICAgICAg ICAgICAgIFJvd3MgUmVtb3ZlZCBieSBKb2luIEZpbHRlcjogMQogICAgICAgICAgICAgICAg ICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24geWVhcl90b3RhbCB0X3Nfc2VjeWVhciAg KGNvc3Q9MC4wMC4uMTExMzUuMzAgcm93cz0xNjAzNSB3aWR0aD0xMjgpIChhY3R1YWwgdGlt ZT0wLjAyMC4uMjQuMTY1IHJvd3M9MTI3MjUgbG9vcHM9MykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmlsdGVyOiAoKHNhbGVfdHlwZSA9ICdzJzo6dGV4dCkgQU5EIChkeWVhciA9 IDIwMDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmls dGVyOiAxMTUzNDQKICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIEhhc2ggIChj b3N0PTU3MTIxLjQ3Li41NzEyMS40NyByb3dzPTkgd2lkdGg9MTA5KSAoYWN0dWFsIHRpbWU9 MTY5LjIwNS4uMTY5LjIxMCByb3dzPTkgbG9vcHM9MykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgQnVja2V0czogMTAyNCAgQmF0Y2hlczogMSAgTWVtb3J5IFVzYWdlOiAxMDRrQgog ICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCBKb2luICAoY29z dD00NTUyNy4yNC4uNTcxMjEuNDcgcm93cz05IHdpZHRoPTEwOSkgKGFjdHVhbCB0aW1lPTEz MS4yODkuLjE2OS4xMjUgcm93cz05IGxvb3BzPTMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEhhc2ggQ29uZDogKHRfc19maXJzdHllYXIuY3VzdG9tZXJfaWQgPSB0X2Nf c2VjeWVhci5jdXN0b21lcl9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHllYXJfdG90YWwgdF9zX2ZpcnN0eWVhciAgKGNv c3Q9MC4wMC4uMTE1MzUuNTIgcm93cz0xNTY0NSB3aWR0aD0yNSkgKGFjdHVhbCB0aW1lPTAu MDEyLi4zNy44NzMgcm93cz0xMjY0MSBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoeWVhcl90b3RhbCA+ICcwJzo6bnVtZXJpYykg QU5EIChzYWxlX3R5cGUgPSAncyc6OnRleHQpIEFORCAoZHllYXIgPSAyMDAxKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRl cjogMTE1NDI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBQYXJhbGxl bCBIYXNoICAoY29zdD00NTUyNi45OC4uNDU1MjYuOTggcm93cz0yMSB3aWR0aD04NCkgKGFj dHVhbCB0aW1lPTEyOS43MDUuLjEyOS43MDkgcm93cz0xOCBsb29wcz0zKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWNrZXRzOiAxMDI0ICBCYXRjaGVzOiAx ICBNZW1vcnkgVXNhZ2U6IDEwNGtCCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0+ICBQYXJhbGxlbCBIYXNoIEpvaW4gIChjb3N0PTM0MzQ3LjY2Li40NTUyNi45 OCByb3dzPTIxIHdpZHRoPTg0KSAoYWN0dWFsIHRpbWU9MTE3LjM0MC4uMTI5LjY4NCByb3dz PTE4IGxvb3BzPTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEhhc2ggQ29uZDogKHRfY19zZWN5ZWFyLmN1c3RvbWVyX2lkID0gdF9jX2ZpcnN0eWVh ci5jdXN0b21lcl9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSm9pbiBGaWx0ZXI6IChDQVNFIFdIRU4gKHRfY19maXJzdHllYXIueWVhcl90b3Rh bCA+ICcwJzo6bnVtZXJpYykgVEhFTiAodF9jX3NlY3llYXIueWVhcl90b3RhbCAvIHRfY19m aXJzdHllYXIueWVhcl90b3RhbCkgRUxTRSBOVUxMOjpudW1lcmljIEVORCA+IENBU0UgV0hF TiAodF93X2ZpcnN0eWVhci55ZWFyX3RvdGFsID4gJzAnOjpudW1lcmljKSBUSEVOICh0X3cK X3NlY3llYXIueWVhcl90b3RhbCAvIHRfd19maXJzdHllYXIueWVhcl90b3RhbCkgRUxTRSBO VUxMOjpudW1lcmljIEVORCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEpvaW4gRmlsdGVyOiAxMwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4g b24geWVhcl90b3RhbCB0X2Nfc2VjeWVhciAgKGNvc3Q9MC4wMC4uMTExMzUuMzAgcm93cz0x MTU4NCB3aWR0aD0yNSkgKGFjdHVhbCB0aW1lPTEyLjMzMS4uMjMuOTM0IHJvd3M9OTA1OSBs b29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoc2FsZV90eXBlID0gJ2MnOjp0ZXh0KSBBTkQgKGR5ZWFyID0gMjAw MikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDExOTAxMAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCAgKGNvc3Q9MzQzNDUu MTYuLjM0MzQ1LjE2IHJvd3M9MjAwIHdpZHRoPTc1KSAoYWN0dWFsIHRpbWU9MTA0LjU5MC4u MTA0LjU5NCByb3dzPTEyMyBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCdWNrZXRzOiAxMDI0ICBCYXRjaGVzOiAxICBNZW1v cnkgVXNhZ2U6IDEwNGtCCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBIYXNoIEpvaW4gIChjb3N0PTIyNzY2LjQzLi4z NDM0NS4xNiByb3dzPTIwMCB3aWR0aD03NSkgKGFjdHVhbCB0aW1lPTg0Ljc2Ny4uMTA0LjQ5 MyByb3dzPTEyMyBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICh0X2NfZmlyc3R5ZWFyLmN1c3Rv bWVyX2lkID0gdF93X2ZpcnN0eWVhci5jdXN0b21lcl9pZCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNl cSBTY2FuIG9uIHllYXJfdG90YWwgdF9jX2ZpcnN0eWVhciAgKGNvc3Q9MC4wMC4uMTE1MzUu NTIgcm93cz0xMTMwMiB3aWR0aD0yNSkgKGFjdHVhbCB0aW1lPTE5LjExMS4uMzcuNzAwIHJv d3M9ODc3MSBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoeWVhcl90b3RhbCA+ICcwJzo6 bnVtZXJpYykgQU5EIChzYWxlX3R5cGUgPSAnYyc6OnRleHQpIEFORCAoZHllYXIgPSAyMDAx KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogMTE5Mjk4CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBQYXJh bGxlbCBIYXNoICAoY29zdD0yMjc1OC4zMy4uMjI3NTguMzMgcm93cz02NDggd2lkdGg9NTAp IChhY3R1YWwgdGltZT02NS41MDEuLjY1LjUwMyByb3dzPTQzNSBsb29wcz0zKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCdWNrZXRzOiAyMDQ4ICBCYXRjaGVzOiAxICBNZW1vcnkgVXNhZ2U6IDIwOGtCCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0+ICBQYXJhbGxlbCBIYXNoIEpvaW4gIChjb3N0PTExNTk1LjY3Li4yMjc1OC4zMyBy b3dzPTY0OCB3aWR0aD01MCkgKGFjdHVhbCB0aW1lPTYwLjc5Ni4uNjQuOTgyIHJvd3M9NDM1 IGxvb3BzPTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKHRfd19zZWN5ZWFyLmN1c3Rv bWVyX2lkID0gdF93X2ZpcnN0eWVhci5jdXN0b21lcl9pZCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IFBhcmFsbGVsIFNlcSBTY2FuIG9uIHllYXJfdG90YWwgdF93X3NlY3llYXIgIChjb3N0PTAu MDAuLjExMTM1LjMwIHJvd3M9NDkzMiB3aWR0aD0yNSkgKGFjdHVhbCB0aW1lPTIwLjIyNS4u MjMuNjgwIHJvd3M9Mzc1MSBsb29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6 ICgoc2FsZV90eXBlID0gJ3cnOjp0ZXh0KSBBTkQgKGR5ZWFyID0gMjAwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDEyNDMxOQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtPiAgUGFyYWxsZWwgSGFzaCAgKGNvc3Q9MTE1MzUuNTIuLjExNTM1LjUyIHJvd3M9 NDgxMiB3aWR0aD0yNSkgKGFjdHVhbCB0aW1lPTQwLjUwNi4uNDAuNTA3IHJvd3M9Mzc3NSBs b29wcz0zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWNrZXRzOiAxNjM4NCAgQmF0Y2hlczog MSAgTWVtb3J5IFVzYWdlOiA4NjRrQgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxs ZWwgU2VxIFNjYW4gb24geWVhcl90b3RhbCB0X3dfZmlyc3R5ZWFyICAoY29zdD0wLjAwLi4x MTUzNS41MiByb3dzPTQ4MTIgd2lkdGg9MjUpIChhY3R1YWwgdGltZT0zMy40MTMuLjM5LjUx MCByb3dzPTM3NzUgbG9vcHM9MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy OiAoKHllYXJfdG90YWwgPiAnMCc6Om51bWVyaWMpIEFORCAoc2FsZV90eXBlID0gJ3cnOjp0 ZXh0KSBBTkQgKGR5ZWFyID0gMjAwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJv d3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDEyNDI5NQogUGxhbm5pbmcgVGltZTogMTIuNTE1IG1z CiBFeGVjdXRpb24gVGltZTogMjA2LjUxOSBtcwoqLwo= --------------5CdHEtIM3wb4XI8Bt60UUrc2 Content-Type: application/sql; name="year_total.sql" Content-Disposition: attachment; filename="year_total.sql" Content-Transfer-Encoding: base64 Q1JFQVRFIFRBQkxFIHllYXJfdG90YWwgQVMgKApTRUxFQ1QgY19jdXN0b21lcl9pZCBjdXN0 b21lcl9pZCAsY19maXJzdF9uYW1lIGN1c3RvbWVyX2ZpcnN0X25hbWUsCiAgY19sYXN0X25h bWUgY3VzdG9tZXJfbGFzdF9uYW1lLAogIGNfcHJlZmVycmVkX2N1c3RfZmxhZyBjdXN0b21l cl9wcmVmZXJyZWRfY3VzdF9mbGFnLAogIGNfYmlydGhfY291bnRyeSBjdXN0b21lcl9iaXJ0 aF9jb3VudHJ5LAogIGNfbG9naW4gY3VzdG9tZXJfbG9naW4sCiAgY19lbWFpbF9hZGRyZXNz IGN1c3RvbWVyX2VtYWlsX2FkZHJlc3MsCiAgZF95ZWFyIGR5ZWFyLAogIHN1bSgoKHNzX2V4 dF9saXN0X3ByaWNlLXNzX2V4dF93aG9sZXNhbGVfY29zdC1zc19leHRfZGlzY291bnRfYW10 KStzc19leHRfc2FsZXNfcHJpY2UpLzIpIHllYXJfdG90YWwsCiAgJ3MnIHNhbGVfdHlwZQpG Uk9NIGN1c3RvbWVyLCBzdG9yZV9zYWxlcywgZGF0ZV9kaW0KV0hFUkUgY19jdXN0b21lcl9z ayA9IHNzX2N1c3RvbWVyX3NrIEFORCBzc19zb2xkX2RhdGVfc2sgPSBkX2RhdGVfc2sKR1JP VVAgQlkgY19jdXN0b21lcl9pZCAsY19maXJzdF9uYW1lICxjX2xhc3RfbmFtZSAsY19wcmVm ZXJyZWRfY3VzdF9mbGFnLAogIGNfYmlydGhfY291bnRyeSwgY19sb2dpbiwgY19lbWFpbF9h ZGRyZXNzLCBkX3llYXIKVU5JT04gQUxMClNFTEVDVCBjX2N1c3RvbWVyX2lkIGN1c3RvbWVy X2lkCiAgICAgICAsY19maXJzdF9uYW1lIGN1c3RvbWVyX2ZpcnN0X25hbWUKICAgICAgICxj X2xhc3RfbmFtZSBjdXN0b21lcl9sYXN0X25hbWUKICAgICAgICxjX3ByZWZlcnJlZF9jdXN0 X2ZsYWcgY3VzdG9tZXJfcHJlZmVycmVkX2N1c3RfZmxhZwogICAgICAgLGNfYmlydGhfY291 bnRyeSBjdXN0b21lcl9iaXJ0aF9jb3VudHJ5CiAgICAgICAsY19sb2dpbiBjdXN0b21lcl9s b2dpbgogICAgICAgLGNfZW1haWxfYWRkcmVzcyBjdXN0b21lcl9lbWFpbF9hZGRyZXNzCiAg ICAgICAsZF95ZWFyIGR5ZWFyCiAgICAgICAsc3VtKCgoKGNzX2V4dF9saXN0X3ByaWNlLWNz X2V4dF93aG9sZXNhbGVfY29zdC1jc19leHRfZGlzY291bnRfYW10KStjc19leHRfc2FsZXNf cHJpY2UpLzIpICkgeWVhcl90b3RhbAogICAgICAgLCdjJyBzYWxlX3R5cGUKRlJPTSBjdXN0 b21lciwgY2F0YWxvZ19zYWxlcywgZGF0ZV9kaW0KV0hFUkUgY19jdXN0b21lcl9zayA9IGNz X2JpbGxfY3VzdG9tZXJfc2sgQU5EIGNzX3NvbGRfZGF0ZV9zayA9IGRfZGF0ZV9zawpHUk9V UCBCWSBjX2N1c3RvbWVyX2lkCiAgICAgICAgICxjX2ZpcnN0X25hbWUKICAgICAgICAgLGNf bGFzdF9uYW1lCiAgICAgICAgICxjX3ByZWZlcnJlZF9jdXN0X2ZsYWcKICAgICAgICAgLGNf YmlydGhfY291bnRyeQogICAgICAgICAsY19sb2dpbgogICAgICAgICAsY19lbWFpbF9hZGRy ZXNzCiAgICAgICAgICxkX3llYXIKVU5JT04gQUxMClNFTEVDVCBjX2N1c3RvbWVyX2lkIGN1 c3RvbWVyX2lkCiAgICAgICAsY19maXJzdF9uYW1lIGN1c3RvbWVyX2ZpcnN0X25hbWUKICAg ICAgICxjX2xhc3RfbmFtZSBjdXN0b21lcl9sYXN0X25hbWUKICAgICAgICxjX3ByZWZlcnJl ZF9jdXN0X2ZsYWcgY3VzdG9tZXJfcHJlZmVycmVkX2N1c3RfZmxhZwogICAgICAgLGNfYmly dGhfY291bnRyeSBjdXN0b21lcl9iaXJ0aF9jb3VudHJ5CiAgICAgICAsY19sb2dpbiBjdXN0 b21lcl9sb2dpbgogICAgICAgLGNfZW1haWxfYWRkcmVzcyBjdXN0b21lcl9lbWFpbF9hZGRy ZXNzCiAgICAgICAsZF95ZWFyIGR5ZWFyCiAgICAgICAsc3VtKCgoKHdzX2V4dF9saXN0X3By aWNlLXdzX2V4dF93aG9sZXNhbGVfY29zdC13c19leHRfZGlzY291bnRfYW10KSt3c19leHRf c2FsZXNfcHJpY2UpLzIpICkgeWVhcl90b3RhbAogICAgICAgLCd3JyBzYWxlX3R5cGUKRlJP TSBjdXN0b21lciwgd2ViX3NhbGVzLCBkYXRlX2RpbQpXSEVSRSBjX2N1c3RvbWVyX3NrID0g d3NfYmlsbF9jdXN0b21lcl9zayBBTkQgd3Nfc29sZF9kYXRlX3NrID0gZF9kYXRlX3NrCkdS T1VQIEJZIGNfY3VzdG9tZXJfaWQKICAgICAgICAgLGNfZmlyc3RfbmFtZQogICAgICAgICAs Y19sYXN0X25hbWUKICAgICAgICAgLGNfcHJlZmVycmVkX2N1c3RfZmxhZwogICAgICAgICAs Y19iaXJ0aF9jb3VudHJ5CiAgICAgICAgICxjX2xvZ2luCiAgICAgICAgICxjX2VtYWlsX2Fk ZHJlc3MKICAgICAgICAgLGRfeWVhcgopOwoKVkFDVVVNIEFOQUxZWkU7Cg== --------------5CdHEtIM3wb4XI8Bt60UUrc2--