Return-Path: X-Original-To: apmail-hive-user-archive@www.apache.org Delivered-To: apmail-hive-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8F2FE109FB for ; Sat, 24 Aug 2013 00:56:17 +0000 (UTC) Received: (qmail 47008 invoked by uid 500); 24 Aug 2013 00:56:15 -0000 Delivered-To: apmail-hive-user-archive@hive.apache.org Received: (qmail 46958 invoked by uid 500); 24 Aug 2013 00:56:15 -0000 Mailing-List: contact user-help@hive.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hive.apache.org Delivered-To: mailing list user@hive.apache.org Received: (qmail 46950 invoked by uid 99); 24 Aug 2013 00:56:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 24 Aug 2013 00:56:15 +0000 X-ASF-Spam-Status: No, hits=-0.1 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mchettiar@rocketfuelinc.com designates 74.125.245.96 as permitted sender) Received: from [74.125.245.96] (HELO na3sys010aog114.obsmtp.com) (74.125.245.96) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 24 Aug 2013 00:56:11 +0000 Received: from mail-wi0-f171.google.com ([209.85.212.171]) (using TLSv1) by na3sys010aob114.postini.com ([74.125.244.12]) with SMTP ID DSNKUhgEls9+5luuYt6cNBJquyKiuZrgVMFO@postini.com; Fri, 23 Aug 2013 17:55:50 PDT Received: by mail-wi0-f171.google.com with SMTP id hr7so2567359wib.10 for ; Fri, 23 Aug 2013 17:55:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketfuelinc.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ofRf+aJMZ5h4YO3kAxB7lYRfZ1/RQWrLm1sg+uEuScI=; b=W2iVEQbTixlOAzObVA0MFGEq42B0FtBno/7bsJDWI040/ZLyHwHKJiRKimdCJrmIhA Pm5/yRdQafOK4bUWjHY83ae+GzbAl1+OtI93r4QbC/TCXNKEv2wouJvAsnR5f1Q5vEPr Fuxn7Q6sEwmZmxCOnY7AcKEJKLymWdogPjFAU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ofRf+aJMZ5h4YO3kAxB7lYRfZ1/RQWrLm1sg+uEuScI=; b=RLD5peWtoQQLVoKR1Eiqpa7VcprTdT0rr84jrUsC+CPl9ge/q/OWbmJgigcYIg0y8F JiFaQvHWrk7ytP6bQFmE6ZAicyjmUsYaiLrFuaLRVwYeAVCXvVcYff2rP9pIIxJL0J+B 2/hUXprisp0mha2mQTAuFXznwd0aqhxU7pFYyLw4jIPyPDFRa0Yvduy3yKTL0z3wb+IF TQ/S/npzn3N/WeC2zjqTsK2xQ1oxfrMRNUNS1AxmITqOKDraQKtSqc8ED+wtnbL5s6YT tDhcP2GXJCFQnQVSe+RK5VZAyhr1ILj79aF3GK1KURClE0LqHWiwJWZFhJ/Irp9Rj3V6 VpZg== X-Gm-Message-State: ALoCoQkskdaIbbOJPsnSjiNCKMrehfkwt5odAAERb9Zcy2g7bbAZDfLA/V7PiNwwoBUUmkC11C/0lCPPvIp6OBnV8ViNCz3QL0BDG4zTAV69qNv/UO0qgvL7y5t1SHYljWnvDigv6T4DjYnRXepZ0tcN+bXCaQ9qhLJHy5NAVHajP4Lyk3A+s+Q= X-Received: by 10.180.75.239 with SMTP id f15mr4029206wiw.42.1377305749200; Fri, 23 Aug 2013 17:55:49 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.180.75.239 with SMTP id f15mr4029199wiw.42.1377305749093; Fri, 23 Aug 2013 17:55:49 -0700 (PDT) Received: by 10.217.11.68 with HTTP; Fri, 23 Aug 2013 17:55:49 -0700 (PDT) In-Reply-To: References: Date: Fri, 23 Aug 2013 17:55:49 -0700 Message-ID: Subject: Re: DISTRIBUTE BY works incorrectly in Hive 0.11 in some cases From: Pala M Muthaia To: dev , user Cc: Eric Chu Content-Type: multipart/mixed; boundary=f46d0438952dec14e404e4a6fb64 X-Virus-Checked: Checked by ClamAV on apache.org --f46d0438952dec14e404e4a6fb64 Content-Type: multipart/alternative; boundary=f46d0438952dec14df04e4a6fb62 --f46d0438952dec14df04e4a6fb62 Content-Type: text/plain; charset=ISO-8859-1 I have attached the hive 10 and 11 query plans, for the sample query below, for illustration. On Fri, Aug 23, 2013 at 5:35 PM, Pala M Muthaia wrote: > Hi, > > We are using DISTRIBUTE BY with custom reducer scripts in our query > workload. > > After upgrade to Hive 0.11, queries with GROUP BY/DISTRIBUTE BY/SORT BY > and custom reducer scripts produced incorrect results. Particularly, rows > with same value on DISTRIBUTE BY column ends up in multiple reducers and > thus produce multiple rows in final result, when we expect only one. > > I investigated a little bit and discovered the following behavior for Hive > 0.11: > > - Hive 0.11 produces a different plan for these queries with incorrect > results. The extra stage for the DISTRIBUTE BY + Transform is missing and > the Transform operator for the custom reducer script is pushed into the > reduce operator tree containing GROUP BY itself. > > - However, *if the SORT BY in the query has a DESC order in it*, the > right plan is produced, and the results look correct too. > > Hive 0.10 produces the expected plan with right results in all cases. > > > To illustrate, here is a simplified repro setup: > > Table: > > *CREATE TABLE test_cluster (grp STRING, val1 STRING, val2 INT, val3 > STRING, val4 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES > TERMINATED BY '\n' STORED AS TEXTFILE;* > > Query: > > *ADD FILE reducer.py;* > > *FROM(* > * SELECT grp, val2 * > * FROM test_cluster * > * GROUP BY grp, val2 * > * DISTRIBUTE BY grp * > * SORT BY grp, val2 -- add DESC here to get correct results* > *) **a* > * > * > *REDUCE a.** > *USING 'reducer.py'* > *AS grp, reducedValue* > > > If i understand correctly, this is a bug. Is this a known issue? Any other > insights? We have reverted to Hive 0.10 to avoid the incorrect results > while we investigate this. > > I have the repro sample, with test data and scripts, if anybody is > interested. > > > > Thanks, > pala > --f46d0438952dec14df04e4a6fb62 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I have attached the hive 10 and 11 query plans, for the sa= mple query below, for illustration.


On Fri, Aug 23, 2013 at 5:35 PM, Pala M Muthaia <mchettiar@rocketfuelinc.com> wrote:
Hi,

We a= re using DISTRIBUTE BY with custom reducer scripts in our query workload.

After upgrade to Hive 0.11, queries with GROUP BY/DISTR= IBUTE BY/SORT BY and custom reducer scripts produced incorrect results. Par= ticularly, rows with same value on DISTRIBUTE BY column ends up in multiple= reducers and thus produce multiple rows in final result, when we expect on= ly one.

I investigated a little bit and discovered the followin= g behavior for Hive 0.11:

- Hive 0.11 produces a d= ifferent plan for these queries with incorrect results. The extra stage for= the DISTRIBUTE BY + Transform is missing and the Transform operator for th= e custom reducer script is pushed into the reduce operator tree containing = GROUP BY itself.=A0

- However, if the SORT BY in the query has a DESC or= der in it, the right plan is produced, and the results look correct too= .

Hive 0.10 produces the expected plan with right = results in all cases.


To illustrate, here is a simplified repr= o setup:

Table:

CREAT= E TABLE test_cluster (grp STRING, val1 STRING, val2 INT, val3 STRING, val4 = INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED= BY '\n' STORED AS TEXTFILE;

Query:

ADD FILE reducer.py;

= FROM(
=A0 SELECT grp, val2=A0
=A0 FROM test_cluster=A0
=A0 GROUP BY grp, val2=A0
=A0 DISTRIBUTE BY grp=A0
= =A0 SORT BY grp, val2 =A0-- add DESC here to get= correct results
)=A0a=

= REDUCE a.*
USING 'reducer.py'
AS grp, reducedValue
=


If i understand correctly, this is a bug= . Is this a known issue? Any other insights? We have reverted to Hive 0.10 = to avoid the incorrect results while we investigate this.

I have the repro sample, with test data and scripts, if= anybody is interested.



<= div>Thanks,
pala

--f46d0438952dec14df04e4a6fb62-- --f46d0438952dec14e404e4a6fb64 Content-Type: text/plain; charset=US-ASCII; name="hive10_plan.txt" Content-Disposition: attachment; filename="hive10_plan.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hkq49n4x0 QUJTVFJBQ1QgU1lOVEFYIFRSRUU6CiAgKFRPS19RVUVSWSAoVE9LX0ZST00gKFRPS19TVUJRVUVS WSAoVE9LX1FVRVJZIChUT0tfRlJPTSAoVE9LX1RBQlJFRiAoVE9LX1RBQk5BTUUgdGVzdF9jbHVz dGVyKSkpIChUT0tfSU5TRVJUIChUT0tfREVTVElOQVRJT04gKFRPS19ESVIgVE9LX1RNUF9GSUxF KSkgKFRPS19TRUxFQ1QgKFRPS19TRUxFWFBSIChUT0tfVEFCTEVfT1JfQ09MIGdycCkpIChUT0tf U0VMRVhQUiAoVE9LX1RBQkxFX09SX0NPTCB2YWwyKSkpIChUT0tfR1JPVVBCWSAoVE9LX1RBQkxF X09SX0NPTCBncnApIChUT0tfVEFCTEVfT1JfQ09MIHZhbDIpKSAoVE9LX0RJU1RSSUJVVEVCWSAo VE9LX1RBQkxFX09SX0NPTCBncnApKSAoVE9LX1NPUlRCWSAoVE9LX1RBQlNPUlRDT0xOQU1FQVND IChUT0tfVEFCTEVfT1JfQ09MIGdycCkpIChUT0tfVEFCU09SVENPTE5BTUVBU0MgKFRPS19UQUJM RV9PUl9DT0wgdmFsMikpKSkpIGEpKSAoVE9LX0lOU0VSVCAoVE9LX0RFU1RJTkFUSU9OIChUT0tf RElSIFRPS19UTVBfRklMRSkpIChUT0tfU0VMRUNUIChUT0tfU0VMRVhQUiAoVE9LX1RSQU5TRk9S TSAoVE9LX0VYUExJU1QgKFRPS19BTExDT0xSRUYgKFRPS19UQUJOQU1FIGEpKSkgVE9LX1NFUkRF IFRPS19SRUNPUkRXUklURVIgJ3JlZHVjZXIucHknIFRPS19TRVJERSBUT0tfUkVDT1JEUkVBREVS IChUT0tfQUxJQVNMSVNUIGdycCByZWR1Y2VkVmFsdWUpKSkpKSkKClNUQUdFIERFUEVOREVOQ0lF UzoKICBTdGFnZS0xIGlzIGEgcm9vdCBzdGFnZQogIFN0YWdlLTIgZGVwZW5kcyBvbiBzdGFnZXM6 IFN0YWdlLTEKICBTdGFnZS0wIGlzIGEgcm9vdCBzdGFnZQoKU1RBR0UgUExBTlM6CiAgU3RhZ2U6 IFN0YWdlLTEKICAgIE1hcCBSZWR1Y2UKICAgICAgQWxpYXMgLT4gTWFwIE9wZXJhdG9yIFRyZWU6 CiAgICAgICAgYTp0ZXN0X2NsdXN0ZXIKICAgICAgICAgIFRhYmxlU2NhbgogICAgICAgICAgICBh bGlhczogdGVzdF9jbHVzdGVyCiAgICAgICAgICAgIFNlbGVjdCBPcGVyYXRvcgogICAgICAgICAg ICAgIGV4cHJlc3Npb25zOgogICAgICAgICAgICAgICAgICAgIGV4cHI6IGdycAogICAgICAgICAg ICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIGV4cHI6IHZhbDIKICAg ICAgICAgICAgICAgICAgICB0eXBlOiBpbnQKICAgICAgICAgICAgICBvdXRwdXRDb2x1bW5OYW1l czogZ3JwLCB2YWwyCiAgICAgICAgICAgICAgR3JvdXAgQnkgT3BlcmF0b3IKICAgICAgICAgICAg ICAgIGJ1Y2tldEdyb3VwOiBmYWxzZQogICAgICAgICAgICAgICAga2V5czoKICAgICAgICAgICAg ICAgICAgICAgIGV4cHI6IGdycAogICAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAg ICAgICAgICAgICAgICAgICAgICBleHByOiB2YWwyCiAgICAgICAgICAgICAgICAgICAgICB0eXBl OiBpbnQKICAgICAgICAgICAgICAgIG1vZGU6IGhhc2gKICAgICAgICAgICAgICAgIG91dHB1dENv bHVtbk5hbWVzOiBfY29sMCwgX2NvbDEKICAgICAgICAgICAgICAgIFJlZHVjZSBPdXRwdXQgT3Bl cmF0b3IKICAgICAgICAgICAgICAgICAga2V5IGV4cHJlc3Npb25zOgogICAgICAgICAgICAgICAg ICAgICAgICBleHByOiBfY29sMAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcK ICAgICAgICAgICAgICAgICAgICAgICAgZXhwcjogX2NvbDEKICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZTogaW50CiAgICAgICAgICAgICAgICAgIHNvcnQgb3JkZXI6ICsrCiAgICAgICAgICAg ICAgICAgIE1hcC1yZWR1Y2UgcGFydGl0aW9uIGNvbHVtbnM6CiAgICAgICAgICAgICAgICAgICAg ICAgIGV4cHI6IF9jb2wwCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAg ICAgICAgICAgICAgICAgICAgICBleHByOiBfY29sMQogICAgICAgICAgICAgICAgICAgICAgICB0 eXBlOiBpbnQKICAgICAgICAgICAgICAgICAgdGFnOiAtMQogICAgICBSZWR1Y2UgT3BlcmF0b3Ig VHJlZToKICAgICAgICBHcm91cCBCeSBPcGVyYXRvcgogICAgICAgICAgYnVja2V0R3JvdXA6IGZh bHNlCiAgICAgICAgICBrZXlzOgogICAgICAgICAgICAgICAgZXhwcjogS0VZLl9jb2wwCiAgICAg ICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGV4cHI6IEtFWS5fY29sMQog ICAgICAgICAgICAgICAgdHlwZTogaW50CiAgICAgICAgICBtb2RlOiBtZXJnZXBhcnRpYWwKICAg ICAgICAgIG91dHB1dENvbHVtbk5hbWVzOiBfY29sMCwgX2NvbDEKICAgICAgICAgIFNlbGVjdCBP cGVyYXRvcgogICAgICAgICAgICBleHByZXNzaW9uczoKICAgICAgICAgICAgICAgICAgZXhwcjog X2NvbDAKICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgIGV4 cHI6IF9jb2wxCiAgICAgICAgICAgICAgICAgIHR5cGU6IGludAogICAgICAgICAgICBvdXRwdXRD b2x1bW5OYW1lczogX2NvbDAsIF9jb2wxCiAgICAgICAgICAgIEZpbGUgT3V0cHV0IE9wZXJhdG9y CiAgICAgICAgICAgICAgY29tcHJlc3NlZDogdHJ1ZQogICAgICAgICAgICAgIEdsb2JhbFRhYmxl SWQ6IDAKICAgICAgICAgICAgICB0YWJsZToKICAgICAgICAgICAgICAgICAgaW5wdXQgZm9ybWF0 OiBvcmcuYXBhY2hlLmhhZG9vcC5tYXByZWQuU2VxdWVuY2VGaWxlSW5wdXRGb3JtYXQKICAgICAg ICAgICAgICAgICAgb3V0cHV0IGZvcm1hdDogb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5I aXZlU2VxdWVuY2VGaWxlT3V0cHV0Rm9ybWF0CgogIFN0YWdlOiBTdGFnZS0yCiAgICBNYXAgUmVk dWNlCiAgICAgIEFsaWFzIC0+IE1hcCBPcGVyYXRvciBUcmVlOgogICAgICAgIGhkZnM6Ly9tYXN0 ZXItaGFkb29wMi5pbnctaGVyY3VsZXMucmZpc2VydmUubmV0OjgwMjAvc3J2L2dyaWQtdG1wL2hp dmUtbWNoZXR0aWFyL2hpdmVfMjAxMy0wOC0yM18yMC01NC0xOV85MThfNTI3NTU4NzQxMTk4MDcw OTk3My8tbXItMTAwMDIKICAgICAgICAgICAgUmVkdWNlIE91dHB1dCBPcGVyYXRvcgogICAgICAg ICAgICAgIGtleSBleHByZXNzaW9uczoKICAgICAgICAgICAgICAgICAgICBleHByOiBfY29sMAog ICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIGV4cHI6 IF9jb2wxCiAgICAgICAgICAgICAgICAgICAgdHlwZTogaW50CiAgICAgICAgICAgICAgc29ydCBv cmRlcjogKysKICAgICAgICAgICAgICBNYXAtcmVkdWNlIHBhcnRpdGlvbiBjb2x1bW5zOgogICAg ICAgICAgICAgICAgICAgIGV4cHI6IF9jb2wwCiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3Ry aW5nCiAgICAgICAgICAgICAgdGFnOiAtMQogICAgICAgICAgICAgIHZhbHVlIGV4cHJlc3Npb25z OgogICAgICAgICAgICAgICAgICAgIGV4cHI6IF9jb2wwCiAgICAgICAgICAgICAgICAgICAgdHlw ZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZXhwcjogX2NvbDEKICAgICAgICAgICAgICAg ICAgICB0eXBlOiBpbnQKICAgICAgUmVkdWNlIE9wZXJhdG9yIFRyZWU6CiAgICAgICAgRXh0cmFj dAogICAgICAgICAgU2VsZWN0IE9wZXJhdG9yCiAgICAgICAgICAgIGV4cHJlc3Npb25zOgogICAg ICAgICAgICAgICAgICBleHByOiBfY29sMAogICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcK ICAgICAgICAgICAgICAgICAgZXhwcjogX2NvbDEKICAgICAgICAgICAgICAgICAgdHlwZTogaW50 CiAgICAgICAgICAgIG91dHB1dENvbHVtbk5hbWVzOiBfY29sMCwgX2NvbDEKICAgICAgICAgICAg VHJhbnNmb3JtIE9wZXJhdG9yCiAgICAgICAgICAgICAgY29tbWFuZDogcmVkdWNlci5weQogICAg ICAgICAgICAgIG91dHB1dCBpbmZvOgogICAgICAgICAgICAgICAgICBpbnB1dCBmb3JtYXQ6IG9y Zy5hcGFjaGUuaGFkb29wLm1hcHJlZC5UZXh0SW5wdXRGb3JtYXQKICAgICAgICAgICAgICAgICAg b3V0cHV0IGZvcm1hdDogb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5IaXZlSWdub3JlS2V5 VGV4dE91dHB1dEZvcm1hdAogICAgICAgICAgICAgIEZpbGUgT3V0cHV0IE9wZXJhdG9yCiAgICAg ICAgICAgICAgICBjb21wcmVzc2VkOiB0cnVlCiAgICAgICAgICAgICAgICBHbG9iYWxUYWJsZUlk OiAwCiAgICAgICAgICAgICAgICB0YWJsZToKICAgICAgICAgICAgICAgICAgICBpbnB1dCBmb3Jt YXQ6IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZC5UZXh0SW5wdXRGb3JtYXQKICAgICAgICAgICAg ICAgICAgICBvdXRwdXQgZm9ybWF0OiBvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLkhpdmVJ Z25vcmVLZXlUZXh0T3V0cHV0Rm9ybWF0CgogIFN0YWdlOiBTdGFnZS0wCiAgICBGZXRjaCBPcGVy YXRvcgogICAgICBsaW1pdDogLTEK --f46d0438952dec14e404e4a6fb64 Content-Type: text/plain; charset=US-ASCII; name="hive11_plan.txt" Content-Disposition: attachment; filename="hive11_plan.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hkq49n551 QUJTVFJBQ1QgU1lOVEFYIFRSRUU6CiAgKFRPS19RVUVSWSAoVE9LX0ZST00gKFRPS19TVUJRVUVS WSAoVE9LX1FVRVJZIChUT0tfRlJPTSAoVE9LX1RBQlJFRiAoVE9LX1RBQk5BTUUgdGVzdF9jbHVz dGVyKSkpIChUT0tfSU5TRVJUIChUT0tfREVTVElOQVRJT04gKFRPS19ESVIgVE9LX1RNUF9GSUxF KSkgKFRPS19TRUxFQ1QgKFRPS19TRUxFWFBSIChUT0tfVEFCTEVfT1JfQ09MIGdycCkpIChUT0tf U0VMRVhQUiAoVE9LX1RBQkxFX09SX0NPTCB2YWwyKSkpIChUT0tfR1JPVVBCWSAoVE9LX1RBQkxF X09SX0NPTCBncnApIChUT0tfVEFCTEVfT1JfQ09MIHZhbDIpKSAoVE9LX0RJU1RSSUJVVEVCWSAo VE9LX1RBQkxFX09SX0NPTCBncnApKSAoVE9LX1NPUlRCWSAoVE9LX1RBQlNPUlRDT0xOQU1FQVND IChUT0tfVEFCTEVfT1JfQ09MIGdycCkpIChUT0tfVEFCU09SVENPTE5BTUVBU0MgKFRPS19UQUJM RV9PUl9DT0wgdmFsMikpKSkpIGEpKSAoVE9LX0lOU0VSVCAoVE9LX0RFU1RJTkFUSU9OIChUT0tf RElSIFRPS19UTVBfRklMRSkpIChUT0tfU0VMRUNUIChUT0tfU0VMRVhQUiAoVE9LX1RSQU5TRk9S TSAoVE9LX0VYUExJU1QgKFRPS19BTExDT0xSRUYgKFRPS19UQUJOQU1FIGEpKSkgVE9LX1NFUkRF IFRPS19SRUNPUkRXUklURVIgJ3JlZHVjZXIucHknIFRPS19TRVJERSBUT0tfUkVDT1JEUkVBREVS IChUT0tfQUxJQVNMSVNUIGdycCByZWR1Y2VkVmFsdWUpKSkpKSkKClNUQUdFIERFUEVOREVOQ0lF UzoKICBTdGFnZS0xIGlzIGEgcm9vdCBzdGFnZQogIFN0YWdlLTAgaXMgYSByb290IHN0YWdlCgpT VEFHRSBQTEFOUzoKICBTdGFnZTogU3RhZ2UtMQogICAgTWFwIFJlZHVjZQogICAgICBBbGlhcyAt PiBNYXAgT3BlcmF0b3IgVHJlZToKICAgICAgICBhOnRlc3RfY2x1c3RlcgogICAgICAgICAgVGFi bGVTY2FuCiAgICAgICAgICAgIGFsaWFzOiB0ZXN0X2NsdXN0ZXIKICAgICAgICAgICAgU2VsZWN0 IE9wZXJhdG9yCiAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6CiAgICAgICAgICAgICAgICAgICAg ZXhwcjogZ3JwCiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAg ICAgICAgZXhwcjogdmFsMgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGludAogICAgICAgICAg ICAgIG91dHB1dENvbHVtbk5hbWVzOiBncnAsIHZhbDIKICAgICAgICAgICAgICBHcm91cCBCeSBP cGVyYXRvcgogICAgICAgICAgICAgICAgYnVja2V0R3JvdXA6IGZhbHNlCiAgICAgICAgICAgICAg ICBrZXlzOgogICAgICAgICAgICAgICAgICAgICAgZXhwcjogZ3JwCiAgICAgICAgICAgICAgICAg ICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgIGV4cHI6IHZhbDIKICAgICAg ICAgICAgICAgICAgICAgIHR5cGU6IGludAogICAgICAgICAgICAgICAgbW9kZTogaGFzaAogICAg ICAgICAgICAgICAgb3V0cHV0Q29sdW1uTmFtZXM6IF9jb2wwLCBfY29sMQogICAgICAgICAgICAg ICAgUmVkdWNlIE91dHB1dCBPcGVyYXRvcgogICAgICAgICAgICAgICAgICBrZXkgZXhwcmVzc2lv bnM6CiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHI6IF9jb2wwCiAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICBleHByOiBfY29sMQog ICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnQKICAgICAgICAgICAgICAgICAgc29ydCBv cmRlcjogKysKICAgICAgICAgICAgICAgICAgTWFwLXJlZHVjZSBwYXJ0aXRpb24gY29sdW1uczoK ICAgICAgICAgICAgICAgICAgICAgICAgZXhwcjogX2NvbDAKICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHI6IF9jb2wxCiAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGU6IGludAogICAgICAgICAgICAgICAgICB0YWc6IC0xCiAg ICAgIFJlZHVjZSBPcGVyYXRvciBUcmVlOgogICAgICAgIEdyb3VwIEJ5IE9wZXJhdG9yCiAgICAg ICAgICBidWNrZXRHcm91cDogZmFsc2UKICAgICAgICAgIGtleXM6CiAgICAgICAgICAgICAgICBl eHByOiBLRVkuX2NvbDAKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAg ICAgZXhwcjogS0VZLl9jb2wxCiAgICAgICAgICAgICAgICB0eXBlOiBpbnQKICAgICAgICAgIG1v ZGU6IG1lcmdlcGFydGlhbAogICAgICAgICAgb3V0cHV0Q29sdW1uTmFtZXM6IF9jb2wwLCBfY29s MQogICAgICAgICAgU2VsZWN0IE9wZXJhdG9yCiAgICAgICAgICAgIGV4cHJlc3Npb25zOgogICAg ICAgICAgICAgICAgICBleHByOiBfY29sMAogICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcK ICAgICAgICAgICAgICAgICAgZXhwcjogX2NvbDEKICAgICAgICAgICAgICAgICAgdHlwZTogaW50 CiAgICAgICAgICAgIG91dHB1dENvbHVtbk5hbWVzOiBfY29sMCwgX2NvbDEKICAgICAgICAgICAg VHJhbnNmb3JtIE9wZXJhdG9yCiAgICAgICAgICAgICAgY29tbWFuZDogcmVkdWNlci5weQogICAg ICAgICAgICAgIG91dHB1dCBpbmZvOgogICAgICAgICAgICAgICAgICBpbnB1dCBmb3JtYXQ6IG9y Zy5hcGFjaGUuaGFkb29wLm1hcHJlZC5UZXh0SW5wdXRGb3JtYXQKICAgICAgICAgICAgICAgICAg b3V0cHV0IGZvcm1hdDogb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5IaXZlSWdub3JlS2V5 VGV4dE91dHB1dEZvcm1hdAogICAgICAgICAgICAgIEZpbGUgT3V0cHV0IE9wZXJhdG9yCiAgICAg ICAgICAgICAgICBjb21wcmVzc2VkOiB0cnVlCiAgICAgICAgICAgICAgICBHbG9iYWxUYWJsZUlk OiAwCiAgICAgICAgICAgICAgICB0YWJsZToKICAgICAgICAgICAgICAgICAgICBpbnB1dCBmb3Jt YXQ6IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZC5UZXh0SW5wdXRGb3JtYXQKICAgICAgICAgICAg ICAgICAgICBvdXRwdXQgZm9ybWF0OiBvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLkhpdmVJ Z25vcmVLZXlUZXh0T3V0cHV0Rm9ybWF0CgogIFN0YWdlOiBTdGFnZS0wCiAgICBGZXRjaCBPcGVy YXRvcgogICAgICBsaW1pdDogLTEKCg== --f46d0438952dec14e404e4a6fb64--